Vol.1 No.2 2008
27/92
研究論文:だれでも構築運営できるコラボレーションシステムの実現(江渡ほか)−105 Synthesiology Vol.1 No.2(2008)げを行える。MLに送られたメールは、新たなWikiページとしてWikiサイトに自動的に蓄積される。メールの件名がそのままWikiページのページ名となり、同じページ名が既に存在していた場合はそのWikiページの最後に新しいメールが付け加えられる。そのメールに対して返信したメールも同様に親メールのWikiページの最後に付け加えられる。そして同じWikiページ内のメールは、日付と投稿したユーザ名で区切られて表示される。このように関連するメールは1つのWiki ページに蓄積される。作成されたWikiサイトはMLのメンバだけがアクセス可能である。メンバの追加はメールでもWikiでもいずれからでも可能である。ML 宛のメールに追加したいメンバのメールアドレスをccするだけでメンバ追加は完了する。Wikiからは、メンバリストのWikiページを直接編集することでメンバの追加が行える。このメンバ管理操作はメンバであれば誰でも行うことができ、特定の管理者だけに負荷がかかることはない。qwikWebにおいてWikiはアーカイバの役割を果たすが、一般的なMLのアーカイバと異なり、Wikiであるために編集できる。例えば、わざわざメールで連絡するほどでもない小さな誤植もWikiページを直接編集すれば容易に修正できる。他には「日程調整するので、下記の候補日のうち都合の良い日に丸を付けてください」といったメールをMLに投稿した場合、返信せずともWikiページにてそのメールに直接自分の都合の良い日を書き込むといったこともできる。メールにファイルが添付されていた場合は、Wiki上にてそのファイルが共有される。qwikWebでは、このようにMLで行われたやりとりからシームレスに共同編集作業へと移行できる。なお、メールと違ってWikiは全員がチェックしているとは限らないため、このような編集が行われたことが他のユーザに気づかれない可能性がある。そこでqwikWebでは定期的にWikiページの更新情報(更新したユーザおよび更新時刻)をMLにシステムが自動投稿する機能を備えている。また、全てのWikiページはバージョン管理されているため、誰かが誤って削除しても復帰可能である。さらにWikiページの編集状況を容易に閲覧できるタイムマシーン機能も付いている。これはスライドバーを左右に動かすことで、Wikiページの時間変化を連続的に見ていくことができる機能である。ユーザ参加型の場合は、セキュリティの問題が懸念される。そこでこの点も細心の注意を払って設計した。例えば、IDをメールアドレスとし、パスワードはシステムが自動生成したものにしているため、他人のメールアドレスを入力してもパスワードを入手できないため、なりすましは困難である。パスワードを忘れた場合は、メールアドレスを入力すると送られてくるが、そのメールアドレスに送られるため基本的に本人しか受け取れない。もちろん、パスワードを盗まれたり誤って他者に送ってしまった場合は、他の多くのシステムと同様になりすましが可能となる。しかし、なりすましてWebサイトを修正した場合には、その修正結果がメンバーに通知されるため、本人は他者が自分のIDとパスワードで不当な操作を行ったことが分かることになる。すべてのWebページは過去の履歴を保有しているため、希望の状態まで復帰可能であり、ID登録を削除すれば今後なりすましをされることはなくなる。誤った入力をしてしまった場合にも過去の履歴を保有しているため容易に復旧可能である。5.2 実装上の工夫qwikWebの開発は、単に実用的なWebシステムとしてではなく、「Webシステムとして理想的な解は何か」を考え、その理想にできるだけ近付けるよう開発を進めていった。具体的には、URLの設計において、Roy FieldingによるREST Architectural Styleに準拠した。qwikWeb開発当初は使いやすいWebアプリケーションフレームワークは存在していなかったため、テンプレートやプラグインなどといったフレームワークに相当する部分から含めて自作した。インストールや保守を簡単にするために、あえてDBではなくファイルシステムのみをストレージとして用いる仕組みとした。実用に供するシステムとして安定度を高めることと、研究のためのシステムとして随時機能追加を行うことは、一般には相反する行為である。機能を追加すれば自ずとバグも発生し、システムは不安定になる。しかしその両者を同時に実現しなければ、研究であることと実用であることを同時に満たすことはできない。この相反する要求を実現するために、徹底した機能テストを記述することで極力バグを図2 開設されたWikiMLでのやりとりがそのままWikiページとなっている。(24)−
元のページ