ownCloud
への大学教育向け機能の追加
2009SE188村田 絵里奈 2009SE246佐々 真由 指導教員: 後藤 邦夫1
はじ めに
近年, PCやスマ ート フ ォ ン , タ ブレ ッ ト 型PCが普及し たため, 一人で複数台のデバイ スを 持つこ と が珍し く な く な っ て いる . それにと も な い, デバイ ス間でのフ ァ イ ル共 有が普及し , 共有以外にも 様々 な 機能を 持つオン ラ イ ン ス ト レ ージが注目を 集めて いる . ま た, オン ラ イ ン スト レ ー ジはイ ン タ ーネ ッ ト にアク セスでき る 環境があれば, 簡単 にデータ のやり 取り ができ る . 大学では情報通信技術を 利用し た講義が進んでいる . 情 報通信技術を 利用し た講義の例と し て , 手書き や印刷では 表現が困難な 場合には, グラ フ 等を アニメ ーショ ン で表示 し たり , 体験談等を 動画で配信し て いる . し かし , 学生に はその場での解り 易さ と 多少の興味し か与え ら れな い. そ の理由と し て , 講義中にスク リ ーン でアニメ ーショ ン が再 生し て いる だけ であり , 後に行われる 復習時には記憶を 辿 る し か方法はな い. こ う し た問題を 解決する ため, 本研究 ではオン ラ イ ン ス ト レ ージである ownCloud[5]を 使用し , 大学教育向け の機能の追加を 目的と する . フ ァ イ ル共有機能を 利用すれば, 講義資料を 指定の場所 に ア ッ プ ロ ード する だ け で講義を 受講し て いる 学生全員 に資料を 配布する こ と ができ る . ま た, 教員が講義資料を 編集する さ い, 自宅用のデバイ スにデータ を 持ち 込ま な く と も , 一度デバイ スを 登録する こ と で簡単に自宅で資料を 編集, アッ プロ ード , 削除な ど ができ る . 同様に学生も 複 数のデバイ スを 登録さ え すれば, 自宅だけ でな く イ ン タ ー ネ ッ ト 環境があれば通学中でも 資料を 作成, 保存する こ と が可能と な る . こ のシステム の使用者は大学で講義を 担当する 教員およ び学生に限定する . 実現方法と し て , ownCloudを 利用し , 追加のプロ グラ ム によ り 機能を 追加する . 追加機能は, 課題提示を 主と し た分単位でのフ ァ イ ル公 開期間や学生のロ グイ ン 履歴・ フ ァ イ ルのダウ ン ロ ード の 履歴を 記録・ 管理である . システム 実現のため, 処理スク リ プト の変更, 表示画面のプロ グラ ム を 追加する . それぞれの具体的な 追加機能は以下の通り である . フ ァ イ ルの閲覧期間の指定では、 フ ァ イ ルの閲覧を 制限する 処 理スク リ プト を 追加する . 教師のPCから 学生のロ グイ ン 状態を 閲覧では, データ ベース に 学生IDを 格納する テー ブル定義を 追加する . 個人のダウ ン ロ ード 履歴では, デー タ ベースに学生ID, ダウ ン ロ ード し たフ ァ イ ル名を 格納す る テーブルを 追加する . し たがっ て , メ ニュ ー画面に入力 フ ォ ーム , 表示画面を 表示する . 実際に 動作確認を 行い, 追加システム が正常動作する こ と を 確認する . な お, シス テム の機能追加は佐々 , 実験と 評価は村田が担当する .2
オン ラ イ ン スト レ ージの概要
こ の節では,ownCloudの概要と Dropbox[2]の概要, 採 用理由を 説明する . 複数ある オン ラ イ ン スト レ ージの中で Dropboxを 説明する 理由は, Dropboxは多く の大学で利 用さ れて いる オン ラ イ ン スト レ ージdaigakuであり , ま た 本研究で利用する ownCloudと 機能が非常に似て いる から である . 2.1 ownCloudの概要 ownCloudは, フ ァ イ ル保管用にサーバマ シン 内でディ スク スペースを 貸し 出すこ と によ り 、 オン ラ イ ン スト レ ー ジと し て 使用でき る サーバア プ リ ケ ーシ ョ ン の一つ であ る . さ ら に, サーバにデータ を 格納する こ と で, セキュ リ ティ が確保さ れる . オン ラ イ ン スト レ ージを 使用する こ と で, 他の通信デバイ スと 無料でフ ァ イ ルを 自動同期する こ と が可能と な る . ま た, オープン ソ ースな ので, 使用者の 意図に 合わせた 独自のシス テ ム を 改良でき る . ownCloud には主に, データ ベースと し てMySQL[4], Webサーバと し てApache[1]が使用さ れて いる . プロ グラ ミ ン グ言語に ついて は, シス テム と ア プリ ケ ーショ ン と も にPHPで構 成さ れて いる . ま た, コ ード 量は約43万行(php:約42万 行, xml+ txt:約1万行)で構成さ れて いる. ク ラ イ ア ン ト はwebブラ ウ ザでownCloudのロ グイ ン 画面(図1)を 表示し , ロ グイ ン し て 使用する . 図1 ownCloudの変更後のメ ニュ ー画面 2.2 Dropboxの概要 Dropboxは, オン ラ イ ン ス ト レ ージと ロ ーカ ルに あ る 複数のコ ン ピ ュ ータ と の間でデータ の共有や同期を 可能と する オン ラ イ ン ス ト レ ージサービ ス であ る . Dropboxの 有利な 点は, PCの専用フ ォ ルダに データ を 保存する だけ で自動同期が行われる こ と である . 他人と の主な 共有方法と し て , リ ン ク 共有と 共有フ ォ ルダがある . 共有フ ォ ルダ では, 他のDropboxユーザーと フ ォ ルダを 共有でき , 共 有者全員が編集を 行う こ と ができ る . ま たリ ン ク 共有にお いて リ ン ク を 作成し た い場合, Dropboxに よ り 自動的に URLが付加さ れ, そのURLにアク セスする こ と でフ ァ イ ル内容を ブラ ウ ザで表示し たり , ダウ ン ロ ード する こ と が でき る . 2.3 ownCloudの採用理由 他のオープン ソ ースのオン ラ イ ン スト レ ージは開発や機 能が不充分である 中で, ownCloudは日本語が対応し て お り , 機能も 充実し て いる . ま た, セキュ リ ティ 面において も , 最も 優れて いる と いわれて いる . さ ら にownCloudで はブラ ウ ザ経由でロ グイ ン ができ , ド ラ ッ グ& ド ロ ッ プで フ ァ イ ルのアッ プロ ード が可能など と いっ た, Dropboxと 非常に似た機能を 持ち 合わせて いる . し たがっ て , 本研究 に 最も 適し た オン ラ イ ン ス ト レ ージであ る と 考え て いる . ま た, 本研究ではデータ ベースと し てMySQL, Webサー バと し て Apacheを 使用する .
3
大学教育向け機能の追加案
こ こ では本研究で作成する システム の追加案の概要を 記 述する . 3.1 フ ァ イ ルの閲覧期間の指定 講義資料な ど , 特定の期間中のみフ ァ イ ルを 閲覧する こ と を 目的と し て いる . 主な 使用方法と し て , 教員が課題 フ ァ イ ルに公開期間を 設定する 場合がある . 公開終了時間 を 過ぎ る と 課題フ ァ イ ルは見る こ と ができ な い. し かし , 閲覧期限内に課題を 見て いな かっ た学生は当然課題内容が 分ら な い. ただし , 再度見たい場合は教員が課題フ ァ イ ル に公開期間を 設定する こ と で, 何度も 閲覧する こ と ができ る . 次に, おおま かな 流れを 以下に示す. 1. 教員が閲覧期限を 設け たいフ ァ イ ルに対し , 事前に公 開開始, 公開終了の時刻入力し 設定する . 2. 追加し た情報は, データ ベースに資料のデータ と と も に保存さ れる . 3. PHPスク リ プト はデータ ベースから 時刻を 取り 出し , 時刻の比較演算を し て , 公開期間が開始さ れる ま で資 料のデータ を 非公開にする . 4. 公開開始と 時刻が一致し た場合は公開画面と な る . 同 様に, 公開終了と 時刻が一致し た場合は公開が終了し , 非公開の画面に切り 替わる . 上記の追加機能に必要と な る のが, データ ベースへの追加 と PHPスク リ プト の追加である . 3.2 教員のPCから 学生のログイ ン 状態を 閲覧 学生 PCが同期さ れて いる こ と を 前提と する . 主な 使 用方法と し て , 講義中に 教員がロ グ イ ン 状況を 確認する こ と に よ り , 学生の参加人数と 参加し て いる 学生のIDが 把握でき る . 学生のロ グイ ン 確認方法は, ま ずIPア ド レ スよ り 学内と 学外を 判別する . 南山大学では教室名を 付与 する ド メ イ ン 名が与え ら れて おり , 学生が講義教室内に居 る か否かを 判断する こ と ができ る . さ ら に , 学生はIDと し て 学生番号を 登録する こ と で個人が特定でき る . こ こ で は, データ ベースでIDおよ びパスワ ード の一致を 判別し , サーバでIPアド レ スを 取得する と 想定する . 以上によ り , 教員はロ グイ ン 状況を 確認する こ と で, 学生が教室外から ロ グイ ン し て いる 場合にはその学生が講義を 受け て いな い と 簡単に判断ができ る . ゆえ に, 出席確認で講義時間を 使 う 必要も な く , 学生側も 出席が取ら れて いる と 事前に通知 がな さ れて おれば, 出席率が上がる と 判断する . ロ グの記 録はデータ ベースに保存する . 図2 ロ グイ ン ・ ロ グアウ ト のシーケ ン ス図 次に, ownCloudのロ グの手順(図2)を 以下に示す. 1. ownCloudのロ グイ ン 画面に ID・ パス ワ ード を 入力 する . 2. 受け 取っ た情報はサーバを 通し データ ベースに送信さ れ, データ ベースが判定する . 3. データ ベースから サーバにロ グイ ン 許可の返答が送信 さ れる . 4. サーバから ロ グにID・ ロ グイ ン し た時間が送信さ れ, 記録がさ れる . 5. サーバがロ グイ ン 許可を 送信する . 6. ロ グイ ン が可能と な る . ロ グイ ン 状態の表示方法と し て , 学生のロ グイ ン 人数, 学生の個別でのド メ イ ン 情報を 記載する 図(図3)を 教員の PCに表示する .図3 ロ グイ ン 人数表案の図 3.3 ダウ ン ロード 時の履歴情報 講義資料な ど を 学生がダウ ン ロ ード し たさ い, 履歴を 残 すこ と を 目的と する . 図4 ダウ ン ロ ード 処理のシーケ ン ス図 資料のダウ ン ロ ード 時の流れを 以下に示す(図4). 1. サーバにダウ ン ロ ード 命令が送信さ れる . 2. サーバはデータ ベースにデータ を 呼び出す. 3. データ ベースはデータ を サーバに送信する . 4. ロ グにアク セス履歴が記録さ れる . 5. ダウ ン ロ ード が開始さ れる . 資料のア ッ プ ロ ー ド 時に お け る 流れを 以下に 示す (図 5). 1. サーバにアッ プロ ード する . 2. サーバはデータ ベースにデータ を 保存する . 3. デー タ ベー ス はデー タ 保存の確認を サー バに 送信す る . 4. アッ プロ ード が完了し たこ と を ユーザに伝え る . 続いて アク セス記録の確認の流れを 示す. 1. アク セス記録を ロ グに要求する . 2. ロ グはアク セス記録を 表示する . 以上に よ り , いつ ど の資料を 誰がダ ウ ン ロ ー ド し た かの 情報を 教員はロ グ と し て 確認する こ と がで き る . そ のた め, サーバ側でのアク セス履歴を 保存する システム を 作成 する . 主な 使用方法と し て 考え ら れる のは, 学生のダウ ン ロ ー ド 状況を 把握し たい場合が挙げら れる . 課題資料な ど , ダ 図5 ダウ ン ロ ード フ ァ イ ルの保存と ア ク セ ス 記録のシー ケ ン ス図 ウ ン ロ ード によ る 資料配布のさ い, ダウ ン ロ ード を し て い な い学生は課題な ど を 見て いな いこ と にな る . ま た, 前述 の閲覧期間の指定やロ グイ ン 状況と 組み合わせる こ と によ り , 教員側はよ り 課題確認を 正確に行う こ と が可能と なる .
4
機能の追加
こ の節で は, フ ァ イ ルの閲覧期間の指定を 実現す る . フ ァ イ ルを 公開・ 非公開に する 期間を 指定し , 閲覧機能 を 変更可能に し た . 実現する に あ た り , デー タ ベー ス の フ ィ ールド の追加, PHPス ク リ プト でデータ ベース へ入 力内容を 登録, 閲覧期間を 設定する 入力画面を 作成し , フ ァ イ ルの公開・ 非公開処理を 変更する . ただし , プロ グラ ム の追加先はownCloudのソ ースコ ード のみと する . ア ッ プロ ード 時に 閲覧期間を 設定する 予定であ っ た が, シ ス テ ム の追加が困難で あ る め , ア ッ プ ロ ー ド 後に シ ス テム を 追加する . アッ プロ ード 後では, ownCloudフ ォ ル ダ 内(apps/files/templates)の part.list.phpに て ア ッ プ ロ ード フ ァ イ ル一覧が表示さ れる . 個々 のフ ァ イ ルでそれ ぞれ閲覧期間の設定を する システム にする ため, 名前, サ イ ズ, 更新日時を 表示する 欄に閲覧期間の設定を 追加する システム を 考察する . 以下に 追加プ ロ グラ ム [3]と 説明を 述べる . はじ めに , 閲覧公開時刻と 閲覧終了時刻の入力フ ォ ーム を 作成する .formタ グの中に, inputタ グにて 閲覧公開時刻(timeno1)
と 閲覧終了時刻(timeno2)の変数を 作成し , それぞれ時刻 の値を 格納する 一行テ キ ス ト ボッ ク ス を 作成する . PHP の時刻を 取得する さ い, 時刻表記の設定がグリ ニッ ジ標準 時間であっ たため, 日本時間に 変更し た. 次に , if文で閲 覧開始時刻から 閲覧終了時刻ま でフ ァ イ ルを 表示する 条件 を 付け る . if文のプロ グラ ム は以下に示す. < ?php if($ POST[”timeno1”] <= date(”Y/m/d/H/i”) && $ POST[”timeno2”]): ?> フ ァ イ ルの中身を 表示する プロ グラ ム < ?php else: > < ?php endif; ?>
本研究では, フ ァ イ ルの閲覧期間の指定で, データ ベー ス のフ ィ ー ルド の追加, お よ びPHPプ ロ グ ラ ム に よ る データ ベースへの接続は, 調査と プロ グラ ム の試行錯誤を 進めて いく にあたり , データ ベースへの接続は困難と 判断 し た.
5
実験方法
本システム に置け る 実験方法について 述べる . 5.1 システムの動作確認 ま ず, 本システム が正確に動作する かを 以下の手順で確 認する . 1. 教員用PCでロ グイ ン を 試す. 2. 教員用PCで閲覧期限指定のフ ァ イ ルを アッ プロ ード する . 3. 学生用PCでロ グイ ン を 試す. 4. 学生用PCで閲覧期限中のフ ァ イ ルが閲覧や非表示と な る かを 確認する . 5. 学生用PCのロ グアウ ト を 試す. 6. 教員用PCでロ グアウ ト を 試す. 手順ど う り 動作確認を 実施し , 追加機能が正常に動作す る こ と が確認さ れた. 次に, ダウ ン ロ ード や削除な ど 既存 の機能について も 動作を 確認し , 追加機能によ る データ の 破損がな いこ と を 確認し た. 5.2 追加前後の比較 閲覧制限について , 開始時刻と 終了時刻の入力フ ォ ーム を 追加し た. (図6) 図6 ownCloudの変更後のメ ニュ ー画面 図1と 比較し , 入力フ ォ ーム が追加さ れた こ と が確認 でき る . 図6 の入力フ ォ ーム に , startは閲覧開始時刻, stopは閲覧終了時刻を 入力する . 入力する 時刻は分単位で あり , 半角英数字で日本時間の年/月/日/時/分の形式で入 力し , 入力後に 登録ボタ ン を 押し て 設定作業を 終了する . 設定後にブラ ウ ザの更新を する と , 閲覧期間外ではフ ァ イ ルの中身が閲覧不可能と な り , 閲覧期間中はフ ァ イ ルの中 身が閲覧可能と な る . ま た, 設定期間中は入力フ ォ ーム が 非表示と な り , 閲覧終了後は入力フ ォ ーム が表示さ れ閲覧 期間が繰り 返し 設定でき る . フ ァ イ ルを アッ プロ ード し た 後はフ ァ イ ルの中身が非表示と な り , 閲覧制限が必要な い 場合はフ ァ イ ルを ア ッ プロ ード し た 時刻を 開始時刻と し , 終了時刻を 年単位に設定する こ と で長期間の閲覧が可能と な る . こ れによ り , 教員は閲覧期限を 設定し たいフ ァ イ ルに任 意の時間で閲覧期限を 設定する こ と が可能と な っ た. さ ら に学生は登録がさ れたデバイ スを 利用し , イ ン タ ーネ ッ ト 環境のある 場所にて 閲覧時間中にフ ァ イ ルを 開く こ と が可 能と な っ た. よ っ て , 既存の機能よ り 追加機能の方が大学 教育向け の追加である と 判断する .6
おわり に
本研究で は, 大学教育向け の機能の追加で あ る フ ァ イ ルの閲覧期間の指定を 可能にし た. こ の結果よ り , 任意の 時間で閲覧期間を 指定する こ と が可能と な っ た . し かし , ownCloudの膨大な コ ー ド 量に よ り 解読が困難で あ る た め, 必要な ソ ースコ ード が書かれて いる フ ァ イ ルの検索方 法や読み方な ど , 実装前の手段について 様々 な 方法で調べ る 必要があっ た. よ り 良い機能追加の実現には今後の課題も 多く , 現段階 では次のよ う な 課題がある . 1. PHPスク リ プト と データ ベースと の連結. 2. 本研究で未実装に終わっ たロ グイ ン 状況の一覧, ダウ ン ロ ード 時の履歴情報. 3. ど の程度の規模に耐え ら れる のかの負荷実験. ownCloudは膨大な コ ード 量で構成さ れて いる ため, 解 読に時間がかかり , いく つかの追加案が未実装に終わっ た. ま た , 追加プロ グラ ム の試行錯誤に よ り , PHPス ク リ プ ト から 入力する 指定時間を データ ベースに格納する こ と は でき な かっ た. 本研究では少人数の学生がいる 小規模の講 義を 想定と し て いる . そのため, 多人数の学生がいる 大規 模の講義を 想定と し た負荷実験を 試行する こ と で, 大学の 教育現場におけ る 利便性が向上する と 考え ら れる .参考文献
[1] Apache Software Foundation: The Apache HTTP Server Project (accessed Jan. 2014). http://httpd.apache.org/.
[2] Dropbox Inc.: Dropbox (accessed Jan. 2014). https://www.dropbox.com/.
[3] naito: PHP Labo (accessed Jan. 2014). http://www.php-labo.net/tutorial/mysql/
php.html/.
[4] Oracle Corporation: MySQL (accessed Jan. 2014). http://dev.mysql.com/.
[5] ownCloud Inc: ownCloud (accessed Jan. 2014). http://owncloud.com/.