• 検索結果がありません。

Vol. 29 No. 2 May Wiki ML Wiki qwikweb ML foobar ML Wiki Wiki 1 qwikweb Wiki Wiki ML Wiki ML Wiki Wik

N/A
N/A
Protected

Academic year: 2021

シェア "Vol. 29 No. 2 May Wiki ML Wiki qwikweb ML foobar ML Wiki Wiki 1 qwikweb Wiki Wiki ML Wiki ML Wiki Wik"

Copied!
18
0
0

読み込み中.... (全文を見る)

全文

(1)

コラボレーションシステム

qwikWeb

の実装

江渡 浩一郎

グループによる共同作業を支援するシステムとして,メーリングリストと Wiki を統合したコラボレーションシステ ム qwikWeb を実装した.本システムは,人々が一般的に利用する電子メールをコミュニケーションの媒体として用 い,そこにコラボレーションのためのシステムとして Wiki を組み合わせることによって,知識の集約・構造化を シームレスに行えるようにした.本論文では,コラボレーションシステムに関わる背景から,設計,実装に係る知見 を述べる.

I implemented a collaboration system “qwikWeb” which integrated mailing lists and a Wiki system. The system uses E-mail as daily communication media and a Wiki system for collaboration. The users can collect and manage knowledge seamlessly. In this paper, I describe background of collaboration system, design choice and implementation.

1 はじめに

近年,知識生産に関わる労働者は,1つの組織の枠 にとどまらずに他のさまざまな専門家と共同作業を行 うことが一般的になってきている.時間や場所を共有 しない人々の共同作業では,必然的にインターネット が中心となる.本論文では,そのようなインターネッ トを使った小規模なグループにおける共同作業に焦点 をあて,グループのメンバが互いにコミュニケーショ ンを行いながら,共同で知識を集約・構造化できるシ ステムを構築する. まず,現在すでに広く一般に利用されているシステ ムから構成する要素技術を選定することとした.電 子メールは,インターネットにおいてWebと並んで もっとも広範囲に利用されているコミュニケーション システムである.Wikiは,ブラウザ上で容易にペー ジを閲覧・編集できるコラボレーションシステムであ

Implementation of Collaboration System qwikWeb. Koichiro Eto, 独立行政法人産業技術総合研究所,

Na-tional Institute of Advanced Industrial Science and Technology (AIST). コンピュータソフトウェア, Vol.29, No.2 (2012), pp.140–157. [ソフトウェア論文] 2010 年 11 月 14 日受付. る.しかし,電子メールは知識を構造化して共有する のに向かないという欠点があり,Wikiは初心者が参 加するにはハードルが高いという欠点がある. このような電子メールとWikiという2つのシステ ムを統合したコラボレーションシステムqwikWebを 構築した.qwikWebでは,日常的に使いなれている プラットフォームとしての電子メールを入り口とし て用いることによって,日常的なコミュニケーション の延長としてコラボレーションを行うことができる. また,Wikiによる柔軟な情報整理能力によって,コ ミュニケーションから生まれた情報を円滑に蓄積・整 理・共有できる.このように電子メールとWikiとい う多くの利用者に支持されているシステムを援用す ることで,学習コストを下げ,動機付けから行為まで を短くすることを目指した. qwikWebは,高林哲と増井俊之によって開発され た,平易な操作でメーリングリスト(以下,ML)の立 ち上げや運用が行えるML管理システムQuickML を基盤技術として採用している.そのため,qwikWeb はQuickMLが持つ平易な操作性や管理者に負担が集 中しないといった特徴を受け継いでいる. qwikWebシステムの利用方法を簡単に説明する.

(2)

1 開設された Wiki.ML でのやりとりがそのまま Wiki ページとなっている. qwikWebシステムの利用は,まずMLの利用から 開始する.利用者は,そのグループ名をfoobarだ とすると,[email protected]にメールを送信するこ とにより,MLを開設できる.同時に,同名のWiki サイトが作られる.この場合のWikiのアドレスは http://qwik.jp/foobar/となる.図1にqwikWeb のWikiサイトの画面を示す.このWikiサイトは, MLの参加者だけがアクセスできるプライベートな Wikiサイトとなる.MLに送られたメールは自動的 にWikiページとしてWikiサイトに蓄積され,メー ルの件名毎に同じWikiページにまとめられるため, 利用者は同じトピックに関するメールをスムーズに閲 覧できる.メンバがWikiサイト上でページの作成・ 編集を行った際には,その編集についての報告メール がMLに送られる.これによって常にWikiサイトを チェックしていなくても,MLのメンバはいつWiki サイトが更新されたのかがわかる.このように,メー ルとWikiの特徴を組み合わせることによってコラボ レーションをスムーズに進めることを狙ったシステム となっている. 本システムは,共同作業に関する既存システムの 調査を元に,要素技術の選択やその組み合わせの手 法を検討し,電子メールとWikiという2つの既存技 術を統合したシステムとして設計することを決めた. そのような背景について2章で述べ,設計について は3章で述べる. 本システムの実装においては,当時黎明期にあった Webアプリケーションの構築手法から,先端的と思 われる手法を積極的に用いて実装することとした.具 体的には,プログラミング言語Ruby,メタプログラ ミング,アジャイルソフトウェア開発,RESTアーキ テクチャスタイルなどを導入している.そのような実 装に関する知見を4章で述べる. 本システムは無償で使えるコラボレーションシステ ムとしてインターネット上で一般に公開した.それに よって,特筆すべき利用が見られた.また,フリーソ フトウェアとして公開することによって,実験環境以 外の利用が見られた.本システムの運用結果と考察に ついて5章で述べる.6章にて,本論文をまとめる.

2 背景

本システムの構想にあたり,既存のコラボレーショ ンシステムやコミュニケーションシステムの調査・分 析を行った.そこから既存システムの問題点について

(3)

まとめた.また,実装において背景となる知見につい ても述べる.

2. 1 既存のシステム

2. 1. 1 コラボレーションシステム

コンピュータを共同作業の道具として用いる研究は,

1968年にDouglas Engelbartが発表した NLS(oN-Line System,オンラインシステム)にまで遡る[3].

Engelbartはマウスの発明者として知られているが, 同時にネットワーク接続されたコンピュータを用いた

利用者間の共同作業,つまりCSCW(Computer

Sup-ported Cooperative Work)[7]という概念の生みの親

でもある.Engelbartに影響を受けたAlan Kayは,

1972年にDynabook構想[8]を発表した.Dynabook 間は無線接続され,利用者間で共同作業を行えること とされていた.このように,ネットワーク接続された コンピュータ間の共同作業という構想は,パーソナル コンピュータという概念の誕生の段階にまで遡ること ができる. 1991年,Tim Berners-Leeは研究所内の研究者間 の文章共有を目的とした情報共有システムWorld

Wide Web (Web)[2]を公開した.異なった文化的 背 景・技 術 力 を持 つ 人々が 協 調 し て作 業 を行 え る ように既存の文章フォーマットの最大公約数として

HTML(HyperText Markup Language)を設計した.

Berners-Leeによる最初のブラウザは閲覧だけではな く編集機能も備えており,ブラウザで閲覧している ページをその場で編集できた.後に普及したNCSA Mosaicなどのブラウザには編集機能は内蔵されてい なかったため,最初期にあった閲覧と編集が共存する 環境は失われてしまった.

1995年,Ward CunninghamはWebページの共

同編集システムとしてWikiWikiWeb (Wiki)[9]を 公開した.利用者はブラウザからWebページの閲覧 をしつつ,そのページを編集したい場合は「編集」と いうリンクを辿ることで編集画面が現れ,ブラウザ上 で編集できる.当時Cunninghamはプログラミング において繰り返し現われるパターンについて研究し ており,同じテーマに興味を持つメンバとMLで議 論していた.このMLに流れた情報を蓄積・整理する ために作られたのがWikiである[5].このように,最 初期のWikiでは,コミュニケーションシステムとし てのMLを用い,その情報集約のためのコラボレー ションシステムとしてWikiを使っていた.後に,Wiki はコミュニケーションにも用いられるようになり,コ ミュニケーションとコラボレーションが共存する環境 へと発展していった. ネットワークが一般に普及するにつれて,コラボ レーションのためのシステムとしてグループウェアが

誕生した.その代表例が,Lotus Notes†1である.Web

が一般に普及した後には,ブラウザ上で動くグルー プウェアが使われるようになった.サイボウズ2のよ うにスケジュール調整機能やテーブル機能,1つの文 書を共同で作成する機能を持つシステムが普及して いる.一般にグループウェアは多機能なシステムが 多く,MLや掲示板に相当する機能から,データベー ス,共同での文章作成機能など,さまざまな機能を 保持している.そのためグループウェアは,コミュニ ケーションシステムとコラボレーションシステムの両 方の特徴を合わせ持つシステムと言える.一般的に数 千人規模の利用者数を想定しており,メンバをグルー プ化し,階層化する機能を備え,それによって複雑な アクセス制御を可能としている.多機能であるため 機能の習得には時間がかかり,また管理の手間も発生 する. 2. 1. 2 コミュニケーションシステム もっとも代表的なコミュニケーションシステムは, 電子メールだろう.電子メールでは,宛先欄に送信先 メールアドレスを指定し,件名・内容を記入して送信 すると,相手に送信される.宛先に複数のメールアド レスを記入することで同時に複数人にメールを送信 できる.メーリングリスト(ML)は,そのような複数 人への電子メール送信を自動化するシステムである. MLは1つのメールアドレスとして表わされており, そのアドレスにメールを送信すると,登録されている 全てのメンバへとメールが配信される.MLの利用形 態は,大きく2つに分かれる.アナウンス用MLは, 多数の宛先に一度に情報を広報するためのMLであ †1 http://www-06.ibm.com/software/jp/lotus/ †2 http://cybozu.co.jp/

(4)

1 既存のシステムが持つコミュニケーション要素とコラボレーション要素の分類 コミュニケーション コラボレーション 修得の容易さ 電子メール ○ × ◎ ML ◎ × ◎ 掲示板 ○ × ◎ ブログ ○ × ○ グループウェア ◎ ◎ × WikiWikiWeb △ ◎ ○ る.メールマガジン(メルマガ)などと呼ばれるML 利用形態もこの一種であり,少数の情報発信者と多数 の情報受信者とに分かれている.議論用MLは,登 録されたメンバが互いに意見や情報を伝えるための MLである.MLに登録されたメンバは誰でもメール を送信できる.企業内やサークルなど組織内での連携 や共同作業ではMLによる連絡や協働が行われてい るが,それは主にこの議論用MLである. 一般にMLのメンバの参加および脱退はMLの管 理者が行う.少数の管理者のみが権限を持つことで, 適切なメンバ管理を行えるという利点があるが,管理 者に多くの負荷がかかってしまうという問題点があ る.高林哲と増井俊之によって開発されたQuickML [12]は,平易な操作でMLの立ち上げや運用が行える ML管理システムである.QuickMLではメンバ全員 がメンバの参加・脱退操作の権限を持つため,管理者 1人に負荷が集中するという問題が発生しない. 掲示板は,さまざまなカテゴリーで分類された場に 利用者がメッセージを投稿し,同じ掲示板を見ている 他の利用者とメッセージを交換するシステムである. Web誕生以前からネットニュースというシステムが 使われており,Web普及以後はWeb上の掲示板シス テムが一般的となった.各々のメッセージは,日付, 投稿者名,タイトル,内容などのフィールドを持ち, 一般に時系列に並んで表示される.情報を構造化する 手段を持たないため,繰り返し同じ議論が発生すると いった問題がある. ブログは,個人が自分の興味のあるテーマについて 記事を執筆し,継続的に記事を公開するWeb上のシ ステムである.各々の記事は,日付,執筆者名,タイ トル,内容などのフィールドを持ち,一般的には記事 は時系列にまとめられる.閲覧者は各々の記事毎にコ メントを残すことができる. 2. 1. 3 既存システムのまとめ 既存のコラボレーションシステム,コミュニケー ションシステムについて調査・分析した結果を,コ ミュニケーションとコラボレーションという2つの要 素で表1にまとめた.コミュニケーションとコラボ レーションの両方を兼ね備えたシステムとしてグルー プウェアが存在しているが,修得の容易さという面で 問題があることがわかる. 2. 2 コラボレーションシステムの現状分析 2. 2. 1 既存システムの問題点 筆者は,ターゲットとなる利用者の一例として,身 近な研究者の共同作業に着目した.彼らは日常的に メールを主とする連絡手段を利用している.ある特 定のメンバ間の連絡が一定期間以上持続する場合に は,MLを使って連絡することが多い.しかし,ML を使った共同作業の場合には,情報の蓄積・整理・共 有が難しいという欠点がある.添付ファイルを用いて ファイルを共有している場合は,どのファイルが最新 のファイルなのかがすぐにはわからなくなる.全ての メールを読んで修正や統合をしないと最新の状況が 把握できず,知識の構造化や共有上問題がある.時系 列に並べられたメッセージを基本とする掲示板やブロ グも,同様な問題を抱えている. このような共同作業を支援するためのシステムと してグループウェアが存在している.グループウェア は共同作業を支援するために多種多様な機能を備え

(5)

ているため,グループのメンバ全員がグループウェア の機能を使いこなすことができれば,原理的には問 題は解決するはずである.しかし実際には,グループ ウェアを利用した共同作業は,自発的に行われること はほとんどない.利用者はすでにMLによるコミュ ニケーションを開始していることが多く,確実に連絡 がとれるMLを使って連絡をとってしまう傾向があ る.また,近年は組織の枠を超えた共同作業を行うこ とが多く,その場合にはイントラネット内に設置され たグループウェアを使うことはできない.前述のよう に,グループウェアにはノウハウを修得する時間がか かるという欠点もある. 2. 2. 2 Wikiの特徴 ここで,CunninghamによるWikiに着目する.2 章で述べたように,元々Berners-Leeが考案したWeb は利用者間の共同作業を目的としており,初期のWeb ブラウザは閲覧と編集が共存する環境だった.Wiki は,そのような初期のWebが備えていた共同作業の ための環境,閲覧と編集が共存する環境を,現代の Webによみがえらせたという特徴を持つ.つまり, WikiはWebというメディアの特性を最大限に生か すことができる情報共有システムであると言える. Wikiによるコラボレーションの特徴を考えるため に,利用者から見たメッセージの性質の違いについ て,既存のコミュニケーションシステムとWikiの比 較を行う.一般にメールや掲示板などのコミュニケー ションシステムは,下記の特徴を持つ. 1つのメッセージにつき1人の執筆者が想定され ている.そのため,一般にメッセージ毎に情報発信者 の欄が1つあり,各々の文章は執筆者が主語となった 特定の相手に向けた主観的文章として構成される. 時系列にメッセージが並べられる.メッセージは送 信・投稿時の日時で管理され,時間順にメッセージが 並べられることが多い. 各々のメッセージが独立している.各々のメッセー ジは独立した文章であり,他の文章へのリンクを文中 に埋め込むための簡単な手法は提供されない.メー ルやネットニュースの場合は,メッセージ間の返信の 連なりをスレッドとして表示してくれる場合がある. しかし,あるキーワードから別のメッセージへリンク を張るといったハイパーテキスト機能は存在してい ない. 平文である.一般にメッセージは平文で記述するこ とになっていて,見出しやリスト表記などといった文 章を構造化する手法は用意されていない. Web誕生以後に生まれたシステムであるブログで は,構造化文章を記述できるし,リンクを埋め込むこ ともできるが,1つの記事につき1人の執筆者が想定 されている,一般に記事を時系列で整理するといった 点は変わっていない. これに対して,Wikiにおける文章は下記の特徴を 備える. 全ての文章は共有された文章となる.Wikiにおい ては,各々のページは執筆者という欄を持たない.誰 でもどのページでも書き換えられるし,署名を残さ なければ誰が作成・編集したのかの情報も明示されな い.各々の文章は誰が作成・記述したのかが自動的に 明示されるという文化圏の常識からはかけはなれて おり,さまざまな文化的な摩擦が生じる.そのため, Wikiサイトの利用者間で作法を共有し,システム上 の強制力は無いが,互いにそれを守ることでサイト運 営が進められる.たとえば,元々のCunninghamに よるWikiでは,各々のページはDocumentModeや ThreadModeなどの状態を持っており,ThreadMode のページでは各々の利用者の主観的文章を署名と共に 投稿するが,DocumentModeのページでは主語を持 たない客観的文章を書くという作法になっていた[5]. ハイパーテキストである.ページ中の特定の単語を 鍵として,他のページに容易にリンクを貼ることがで きる.各々のページはリンクされた単語によって一意 に意味が特定される.Wikiサイト全体で1つの全体 的なつながりを持った情報を構築するという作法があ り,リンクによるページ間の結びつきによってサイト 全体が構築される.1つのページで全ての情報を網羅 する必要はなく,既存の情報を参照すればよい場合に は,既存のページへリンクを貼ることで,既存の情報 への集積・再利用が促される. 構造化文章である.基本的には平文で文章を記述 できるが,文頭に「*」や「-」などの記号を置くこと で,見出しやリストなどを容易に記述できる.そのた

(6)

め普段は平文で情報を追加しつつ,構造化が必要な場 合には適宜編集することで,構造化文章へと発展させ ていくことができる. Wiki上の文章は,このような特徴を備えている. 全体として,コミュニケーションにおける文章は,時 系列に並べられた主観的文章の連なりであり,明確 な構造を持たない.それに対してWikiにおける文章 は,各々のページは標題となる単語によって一意に意 味が特定され,相互にリンクされたハイパーテキスト によってサイト全体で意味が構成される. この文章の特性の違いは,情報のフローとストック の違いとして説明することもできる.コミュニケー ションにおける文章はフローとして流れていく情報で あり,その場の状況に応じて必要とされる情報交換が 行えればそれでよい.それに対してWikiにおける文 章はストックとして蓄積される情報であり,必要に応 じて何度も参照されることが想定される.Wikiによ る再利用を前提とした文章は,結果として知識の蓄 積・構造化・共有に大きく役立つと考えられる. つまり,コミュニケーション(フロー)とコラボレー ション(ストック)の両方をシームレスに扱えるシス テムが求められていると言える. 2. 3 実装における背景 本システムの設計を行った2003年8月は,Web上 で動くアプリケーション,いわゆるWebアプリケー ションという言葉が使われる始める黎明期にあたっ た.ちょうどWebアプリケーションを実装するため に必要な要素技術が誕生しつつある時期だった. その代表例がプログラミング言語Ruby†3である. 1995年にまつもとゆきひろ氏によって作られた国産 のオブジェクト指向プログラミング言語であり,現 在はWebアプリケーションを構築するための代表的 な言語となっている.RubyでWebアプリケーショ ンを記述するためのWebアプリケーションフレーム ワークとしてRuby on Railsが有名だが,最初のバー ジョンがリリースされたのが2004年7月である.当 時は広く使われるRuby用のWebアプリケーション †3 http://www.ruby-lang.org/ フレームは存在していなかった. エクストリームプログラミング(以下,XP)[1]は, 1999年にKent Beckによって提唱されたソフトウェ ア開発手法である.ソフトウェア開発において良いと される知見を極端なまでに実践しようという発想か ら考え出されており,各々の知見はプラクティスとい う言葉で表わされている.たとえばテストファース トは,プログラムのテストコードを先に書き,その後 にテストケースを通過するように実際のプログラム を書くという順番で開発を進める手法である.現在で はより一般的にテスト駆動開発という言葉で説明さ れるようになっている. Webシステムの設計においては,Webを分散オ ブジェクトの実行基盤として用いるSOAP (Simple

Object Access Protocol)が提案され,HTTPをオ ブジェクト呼び出しモデルの基盤として使われるこ とが見られるようになっていた.しかし,それに対

してHTTPの仕様策定で重要な役割を果したRoy

Fieldingは,2000年に博士論文の形でREST

Ar-chitectural Style[6]という,最初期のWebの設計

に立ち戻るような設計指針を示した.RESTは,Web をリソースの集合としてとらえ,各々のリソースは URIを持っていて,そのURIに対する少数の動詞 (メソッド)で操作できるように構築するというアーキ テクチャのスタイル(設計指針)を規定している.こ の指針は,Wikiのようにページの表示と編集の組で 設計されるシステムの理念とよく合致していた.

3 設計

3. 1 設計方針 前節で述べたコラボレーションシステムにおける 課題を利用者の立場から捉えなおし,本システムは, すでに慣れ親しんだメールによるコミュニケーション 環境を出発点とし,徐々にWikiを使ったコラボレー ションを行えるようなシステムとすることとした. MLを基盤としたシステムにすることによって,グ ループのメンバはメールによるコミュニケーションを 随時行うことができる.また,メンバがWikiを使っ て編集を行った場合には,その情報がMLだけを読 んでいるメンバにも適切に伝わるように設計すること

(7)

にする.日常的なコミュニケーション手段であるメー ルをシステム利用の入り口として位置付け,必要に応 じてシームレスにWikiによる知識の集約・構造化・ 共有を行えるようにし,メールとWikiが連携するシ ステムを設計することとする. MLのメンバ管理の容易さを確保するために,ML 管理システムとしてQuickMLを採用する.QuickML の特徴により,管理者1人に負荷が集中するという問 題が発生しない. グループウェアはコミュニケーションシステムとコ ラボレーションシステムを統合したシステムだが,管 理と習得の難しさが問題となっていた.グループウェ アには複雑なアクセス管理機構があるため,数千人規 模の大規模な組織でも導入できるという利点がある が,本システムでは数人から数十人規模の比較的小規 模なグループを想定しており,その場合は管理の手間 が大きいということが欠点となる.本システムでは, グループのメンバは全員が同じ権限を持つという前提 条件を置いた.もしどうしても利用者をグループ分け したい場合には,目的毎のMLを別々に作成し,複 数のグループを使い分けるという使い方を想定した. 3. 2 qwikWebの設計

qwikWebは,要素技術としてQuickMLとWiki

技術を用いているが,利用者にとっては,MLとWiki の機能が連携したシステムと見えるように実装した. 1章で述べたように,利用者はqwikWebシステムに メールを送信することで,MLとWikiサイトを開設 できる.このMLに登録されたメンバの集合を,グ ループと呼ぶ.作成されたWikiサイトはMLのメン バだけがアクセス可能である.メンバの追加はメー ルでもWikiでもいずれからでもできる.Wikiペー ジは全てバージョン管理されているため,誰かが誤っ て削除しても復帰可能である. MLに送られたメールは,新たなWikiページとし てWikiサイトに自動的に蓄積される.メールにファ イルが添付されていた場合は,Wiki上にてそのファ イルが共有される.MLに送られたメールにはその メールのフッタに対応するWikiページのアドレスが 記述される.メーラからこのアドレスをクリックすれ ば,対応するWikiページを即座に表示できる.逆に Wiki上で誰かがページを作成・編集した際には,そ の編集行為を報告するメールがMLに送られるよう にした.このようにして,メールとWikiを相互に行 き来することを容易にした. 利用者は,最初はMLによるコミュニケーション システムとして使い,共同作業を行う場面になった ら,Wikiによるコラボレーションシステムへとシー ムレスに移行できる.Wikiの利用では,さまざまな プラグインの利用など発展的な機能があるが,そのよ うな機能があることを最初から知っている必要は無 く,単に平文で文章を書いていくだけでよい.グルー プのメンバの中に1人でもWikiの使い方に詳しい人 がいれば,その人の使い方を真似ることによって,自 ずとWikiの習得が進むと考えた.このように,段階 的に習得が進むように設計している. 一般に,セキュリティの確保とユーザビリティの確 保はトレードオフの関係にある.qwikWebにおいて は,IDをメールアドレスとし,パスワードはシステ ムが自動生成したもののみを使えるようにした.パス ワードを自分の好きな文字列に設定できる機能を提 供すると,利用者はどうしても他のシステムと共通の パスワードを使ってしまう.システム管理者としては システム管理に万全を期するつもりだったとしても, 万が一システム管理に問題が生じた場合の対応をあ らかじめ考えておくことが重要である.本システムで はユーザのパスワードを保持しないため,本システム の枠を越えて,他システムにまで影響を及ぼすことを あらかじめ避けている. システムの運用の際には,グループが使われなく なった際に,削除される仕組みをあらかじめ検討して おくことが重要である.qwikWebでは,MLとWiki サイトが1ヶ月以上使われなかった場合,警告の後に 自動的に削除される仕組みとした4. †4 しかし,qwik.jp 運用中にバグが見つかったため,現 時点では自動削除機能をオフにして運用を継続して いる.何度かデバッグを試みたが,解決しなかったた め,安全側に倒し,現在は自動削除機能を使用してい ない.必要に応じて,管理者が目視で確認をした上で 不要になったグループを削除している.そのため現時 点では,定期的にグループ削除を行う手間が発生して しまっている.

(8)

4 実装

4. 1 実装方針

qwikWebは,要素技術としてのQuickMLとWiki

サーバが連携したシステムとして実装する.本システ ムのWikiサーバ部分(以下,Wikiサーバ)の開発に おいては,2003年当時のWebシステムにおける知 見を最大限に活用し,単に実用的なWebシステムと してだけではなく,Web上のシステムとして理想的 な解は何かを考え,その理想にできるだけ近付けるよ うに開発を進めることとした.さまざまな先端的な ソフトウェア開発手法を取り入れ,それによって効率 性・安全性・柔軟性がどのように変化するのかを観察 した. 4. 1. 1 プログラミング言語 実装に使う言語としてはプログラミング言語Ruby を選択した.Rubyは1999年に最初の書籍[10]が発 売されるなど普及の兆しが見えていたが,2003年当 時はまだ日本国内での利用事例が主だった.Rubyを 使ったWebアプリケーションとしては,tDiary†5が もっとも知られた存在だった.Rubyは純粋なオブ ジェクト指向プログラミング言語であり,メタプログ ラミングを容易に行えるという性質を持つ.要素技術 として使うQuickMLもRubyで記述されていること と,言語としての性質の良さから,Rubyを選択する ことにした. Webアプリケーションを構築する際には,現在では Webアプリケーションフレームワークを使って記述 することが一般的である.しかし,当時は広く共通に 使われるWebアプリケーションフレームワークは存 在していなかった.Rubyで書かれたCMS(Content Management System)もほとんど存在していなかっ たため,tDiaryをCMSに転じて利用するケースも 見られた.Wikiサーバを構築したいだけならば,ど のような手法でも構築できるが,今回はWikiサーバ を基盤としてさまざまなWebシステムにおける実験 を行いたいと考えた.そのため,独自のWebアプリ ケーションフレームワークを構築する部分から実装す †5 http://www.tdiary.org/ ることとした. 4. 1. 2 Webシステム Webシステムを構築する際は,Apache httpd†6な どのWebサーバ上で,CGIなどのインタフェースを 使って連携させることで構築することが一般的である. しかしこの手法では,インタフェースの制約によって Webシステムとして実現できる範囲が狭まるという 欠点がある.たとえば,CGIを使う場合はURIの設 計の自由度が低くなってしまう傾向がある.Webシ ステムとして最大限の自由度を確保するために,Web サーバと連携して動くのではなく,Webサーバ自体 を含めた単一のプロセスとして実装することとした. Rubyは標準ライブラリの1つとして,Rubyのみで 記述されたWebサーバWEBrick†7が付属する.こ

のWEBrickをWebサーバとして使ったWebアプ リケーションフレームワークを構築することとした. Webシステムの設計では,URIの設計を重視した. URIを見ることだけで,行おうとしている操作がわ かるように,可読性の高いURIを用いることとした. その際の設計指針として,RESTアーキテクチャス タイルに準拠した.RESTでは,多様なリソースを 少数のメソッド(動詞)で操作することを基本として いる.Wikiは,さまざまなページを閲覧・編集の2 つの動詞のみで操作することを基本としている.この ような類似点があることから,Webシステムの設計 指針としてRESTを参考にすることにした. Wikiサイトの運営においては,Wikiページの編 集だけでなく,Wikiサイトのタイトルを決めるなど, サイト全体に関わる設定を編集する場面がある.そ のような場面では,Wikiサイトの設定項目を決める 操作を別途システムに組み込むのではなく,そのよう なメタなパラメータをも1つのWikiページとして扱 い,メタなWikiページを編集することでWikiサイ トの設定を切り替えるという手法を導入した.これに よって,Wikiサイトの設定をする画面を実装するこ となく,単にページ編集のメカニズムをそのまま用い ることで,設定変更を行えるようにした. Webアプリケーションフレームワークとしては, †6 http://httpd.apache.org/ †7 http://www.webrick.org/

(9)

Rubyを使っていること,プロセス内にWebサーバ を内蔵しているためURI設計の自由度が高いこと, RESTアーキテクチャスタイルに準拠していること から,URIとプログラム上の処理を1対1に対応さ せることができる.そのため,メタプログラミングに よってURIとメソッド名が自動的に対応する仕組み にすることにした8.システムに処理を追加する場合 には,そのURIに対応したメソッド名のメソッドを 追加するだけでよい. Wikiの仕組みとして,ページ文中にプラグインを 埋め込む仕組みがあることが一般的だが,本システム でもプラグインを柔軟に埋め込むことができるよう にした.プラグインの仕組みとして,1行の中に収ま るプラグインと,複数行にわたるプラグインの2種 類を想定し,その両方のプラグインを柔軟に記述する ことができるようなフレームワークとした.これに よって,Wikiサーバの運営者は必要に応じて独自の 機能を追加することができる. ストレージとしては,データベースは使わずにファ イルシステムをそのまま使うこととした.ストレージ としてMySQLなどの大規模なデータベースを使う とデータ操作の自由度が高まるという利点があるが, データの中身を見るのにSQLのインタフェースを使 う必要があるなど,システムの保守・運用に手間がか かる.今回はWikiサーバを動かすという目的が特定 されているため,サーバ管理の手間と照らし合わせ て,ファイルシステムのみを使うこととした. 4. 1. 3 ソフトウェア開発手法 一般に,実用に供するシステムと研究のためのシス テムとは相反する性質を持つ.実用に供するシステム では,システムの安定性を重視するため,新機能の追 加は慎重になるべきである.それに対して研究のた めのシステムは,思いついた新機能を即座に導入で †8 Ruby でメタプログラミングを採用した Web アプリ ケーションフレームワークとしては Ruby on Rails がよく知られているが,最初の公開は 2004 年 7 月で あり,qwikWeb のソースコードを公開した 2004 年 4 月時点ではまだ登場していなかった.Web アプリ ケーションフレームワークの URL 設計手法にメタプ ログラミングを使用するアイデアは独自に考案したも のである.しかし,Rails ではメタプログラミングを 徹底的に活用しており,採用レベルには違いがある. きるシステムの方がよい.しかし,新機能を追加すれ ば自ずとバグも発生し,システムは不安定になり,場 合によってはシステムが停止してしまうこともある. この両者を同時に実現しなければ,実用的なシステム であることと研究目的のシステムであることを同時 に満たすことはできない. 筆者は2001年ごろよりXPというソフトウェア開 発手法に興味を持ってきた.XPは一般にチームでの 作業を円滑に進めるためのプラクティスであり,1人 で開発を進める場合には導入できない.しかし,テス トに関わるプラクティスは導入できるため,本システ ムの開発ではテストファーストを導入することとし た.まず最初にWebシステムとしての動作テストの ためのコードを記述し,その後にテストに対応した コードを記述する.この手順を守ることによって,全 ての動作に対応するテストコードが存在することに なる. このテスト記述の徹底は,フレームワークの仕様設 計にも影響を及ぼした.フレームワークの仕様を検討 する際に,いかにテスト記述を効率的に行えるかとい う観点を導入した.コードの記述とテストの記述をで きるだけ物理的に近付けるようにして,互いの記述を 同時に見直していくことができる記述方法にした. このような工夫によって,実装の際に徹底した機能 テストを行うことができた.なんらかの新しい機能を 追加した場合でも,全機能テストを実行するだけで, 他の動作に影響を及ぼしていないかどうかを確認で きる.これによって,長期間にわたって運用を続ける と同時に,適宜機能追加・変更が行えるような開発体 制を作ることができた. 4. 2 Wikiサーバの実装 4. 2. 1 クラス構造 qwikWebの代表的なクラスを紹介し,クラス構造 を説明する. Qwik::Config Wikiサーバ全体の動作を決める 設定を保持する.Wikiサーバ毎に1つのイン スタンスを持つ.Wikiサーバ動作中は変更され ない. Qwik::ServerMemory Wikiサーバの状態保持

(10)

やキャッシュなどに用いる.

Qwik::Session WebブラウザがWikiサーバに アクセスし,情報がやりとりされ,切断されるま での一連の流れをセッションと呼ぶが,そのセッ ション毎にSessionクラスのインスタンスが生成 される.インスタンスは,ブラウザへの返答後に 消滅する. Qwik::Request クライアントからのリクエスト 情報を保持するインスタンス. WEBrick::HTTPRequestによる情報を元に生成 される. Qwik::Response ブラウザへのレスポンス情報 を保持するインスタンス. WEBrick::HTTPResponseへと変換され,クライ アントに渡される. Qwik::Action 1つ の セッション 毎 に ,Action クラスのインスタンスが生成される.Config,

ServerMemory, Request, Responseの4つのイ

ンスタンスを受け取り,Action#runというメ ソッドが実行され,Request情報を元に必要な処 理を行い,ブラウザに戻す情報をReponseに格 納し,クライアントに返して,1つのセッション が終わる.セッション動作の中核となるクラスで ある.

Wikiサーバが起動すると,Config,ServerMemory

のインスタンスが作られる.ブラウザからアクセスが あると,Sessionのインスタンスが作られ,Requestと Responseのインスタンスの組を保持する.Request とResponseの組がActionのインスタンスに渡され, runメソッドが実行される.結果は全てResponseの インスタンスが保持しており,その内容をブラウザに 返して,一連のセッションが終わり,Sessionのイン スタンスが解放される.つまり,1つのセッションは, Requestインスタンスを受け取り,Responseインス タンスを返すという形で抽象化されている. Webアプリケーションは,Webブラウザと情報を やりとりすることによって動作する.そのため,Web アプリケーションのテストは,通常であれば毎回Web ブラウザを人間が操作することによって動作確認を行 わなければならず,大変な手間がかかる.しかし,本 システムのWebアプリケーションフレームワークで は,1つのセッションがRequestとResponseの組で 抽象化されているため,テストしたい状況に対応した Requestインスタンスを作り,実行し,Responseイ ンスタンスが保持する内容が期待した内容と合致す るかどうかを調べることで,1つのSessionに対応し た動作を確認することができる.このようにセッショ ン構造の抽象化が,テスト記述に役に立っている. 4. 2. 2 Actionクラスの構造 クラス構造としては,Session動作に関係するメ ソッドは,全てActionクラス1つが保持する構造に なっている.Actionクラスは,Wikiサーバの動作に 関するあらゆるメソッドが集まっていて,大クラスを 形成している.クラス数が少ないため理解しやすいと いう利点があるが,結果としてKitchen-sinkのよう にごちゃごちゃした構成になってしまい,機能間での 名前空間の分離が適切にできなかったという反省もあ る9. このとき,Actionクラスのメソッド名は,URIに おける識別子をそのままメソッドの一部として使う. ある特定のメソッド名のメソッドを定義するだけで, あるURIに対応した機能をすぐに追加できる.下記 にその対応を述べる. plg ページ中に埋め込まれるプラグインを定義す る.plg_helloというメソッド名は,Wikiペー ジ中における{{hello}}というプラグインに対応 する. ext ページを対象とした処理を行うエクステン ションを定義する.ext_helloは, http://qwik.jp/foobar/TestPage.helloに 対応しており,URIだけを見るとまるで拡張子 のように見える.これは,TestPageというWiki ページに対してhelloという動詞で処理するとい う意味になる. act サイト全体を対象としたアクションを定義 する.act_helloは †9 当時の筆者のメタプログラミングの知識が足りなかっ たことが原因である.現在設計しなおすのであれば, クラスの継承関係を用いて,各々の機能を別クラスと して設計できるようにするだろう.

(11)

2 プラグインを記述するコードのサンプル http://qwik.jp/foobar/.helloに対応する. ある特定のページに対する操作というわけでは なく,そのWikiサイト全体に対する操作を定義 する際に用いる. このように,メタプログラミングによってメソッド 名がそのままプラグイン名やURIに反映される仕組 みとなっている.メソッド定義の実例を,図2に示 す.ここでは,plg_helloとact_helloという2種 類の機能拡張を行っている.

plg_helloは,ページ中に「hello, world」と表示

するというプラグインである.プラグイン引数をとる

ことができ,その場合はworldという表記が置き換

わる.ここで,プラグイン引数はメソッド引数という 形で受渡しされている.

act_helloは,「hello, world!」というタイトルで, 本文に「hi, there.」と書いてあるだけのページを表

示する.実際にはメソッド中でWikiページにアクセ

スしたり,なんらかの処理を行ったりする. このコード前半部分が機能拡張のメソッド記述であ り,その後がテストコードの記述となっている.

(12)

test_plg_helloは,helloというプラグインの動 作確認をしている.ここで,ok_wiという短縮記法の メソッドは,右にある引数をWiki記法のテキストだ として,それがレンダリング後に左のHTMLに置き 換わることをテストするという意味である. test_act_hello は ,Wiki サ ー バ に 対 し て 「/test/.hello」というアクセスがあった場合に返 すページをresに保持する.その結果となるHTML ページから,XPathによって指定されたエレメント を抜き出して,左側の要素と比較する. このように,ページ中のある特定の要素の中身を 確認するというテスト記述を1行だけで書けるよう にしており,このような簡略的な記法を用意すること で,テスト記述に関わる開発者の手間を軽減できる. また,同じファイル中に機能のコード記述とテストの コード記述を同梱することによって,実装とテスト コードとの対応関係をわかりやすくした.

5 運用

5. 1 アクセス解析 実装したqwikWebを用いて,2003年8月から研 究ベースの運用をqwik.jp†10にて開始し,2011年8 月現在も稼働中である.利用者は利用時に利用規約 (個人を特定できない形でデータが研究上利用される ことなど)を承認の上,qwik.jpを利用することがで きる. 5. 1. 1 ML数の時間遷移 2011年8月時点でのML数は累計6,843個,利用 者数は累計42,859人である.図3には,全グループ 数,Wiki閲覧利用グループ,Wiki編集利用グループ の累積値を示した11.各MLの利用者数は,最大が 648人,平均は7.7人であった.半数以上が10人以 下のMLであり,少人数でも手軽にMLを利用する という設計意図に合った利用状況と言える.また約 †10 http://qwik.jp/ †11 システム開発当初のログが残っていなかったため, ML は 2004 年 2 月から,Web は 2004 年 8 月から 始まっている.また,システム障害のため 2011 年 2 月から 6 月までの Web サーバのログが保存され ていなかったため,グラフが平坦になっており,正 確な値が算出できていない. 75%のMLにてWikiが利用されており,多くの利 用者はWikiも利用できる点を考えてqwikWebを選 択していることがわかる.その中でもさらに53%の グループはWikiによる編集も行っている.つまり, Wikiを利用しているグループ中の70%は編集も行っ ており,Wikiを利用し始めたグループは,後にWiki の編集行為も行うようになることが一般的であるこ とがわかる.2007年5月時点でのデータによれば, Wikiを利用した4,538グループの平均活動期間は 145.1日であるのに対し,利用していない1,116グ ループは42.4日であった.長期間利用するものほど Wikiが利用されていることがわかる.閉鎖ML数は その時点で約10%となっており,QuickMLにおける 閉鎖ML数の50%と比較して低い水準となっており, 知識蓄積に貢献していると考えられる12. 5. 1. 2 利用者数の時間遷移 利用者数の累積値を図4に示した13.利用者数, Wiki利用者数,ML作成利用者数,いずれも純増し ている14.利用者数の累計が42,859人で,そのう ち42%(18,401人)がWikiの閲覧を行い,19%(8,230 人)がWikiの編集も行っている.Wiki利用MLが 全体の約75%であり,Wiki利用者は約42%となった のは,前者はグループ中で1人でもWikiを利用し ていればカウントされるのに対して,後者は利用者 単位のカウントであるためであり,Wikiを利用する 人,利用しない人との傾向が分かれていることがわ かる.グループにおけるWiki利用率が高いのは,多 くの利用者がMLから誘導されてWikiを利用して いたためと考えられる.MLを作成した利用者数は 10%(4,369人)となっている.1人が作成したML数 の最大は40個,平均は1.6個であった.1人で最大 †12 2007 年 5 月の時点では,未使用 ML の自動削除機 能は正常に動作していたが,その後に自動削除機能 を停止させたため,現時点では閉鎖 ML 数の数字は 得られなくなっている. †13 図 3 と同様に,ML は 2004 年 2 月から,Web は 2004 年 8 月から始まっている.また,2011 年 2 月 から 6 月までの Web サーバのログが保存されてい なかったため,グラフが平坦になっている. †14 qwikWeb の仕様上,同一の利用者が複数のメール アドレスを使っていても区別できないため,正確に は利用者数ではなくメールアドレス数である.

(13)

3 グループ数の時間遷移

(14)

5 時間帯毎の ML と Wiki との利用状況の違い 40個ものMLを立ち上げる利用者がいることから, 管理者のコストが比較的低く抑えられていることが 示されていると考える.約25%にあたる505人が2 つ以上のMLを作成している.一方,参加している ML数を見ると,18,519人のうち参加ML数最大は 48個,平均は1.3個であった.こちらも約20%にあ たる3,515人が2つ以上のMLに参加していた.こ れは利用目的によって複数のMLを使い分けると想 定した通りの使われ方になっていると言える. 5. 1. 3 時間帯毎のMLWikiの利用状況の 違い WikiとMLの利用形態の違いを,時間帯毎の利 用総数の違いから調べた.図5は10分毎の投稿数, Wikiアクセス数,Wiki編集数であり,縦軸は投稿 (アクセス)総数における割合を示している.全利用 者のうち機械的な方法によるアクセス(ボット)を排 除している.17時の利用が減少しているが,これは 定期メンテナンスのためである.利用者の国毎の分類 などはしていないため,タイムゾーンは日本のものと 仮定して分析した. WikiとMLの時間帯毎の利用の分布を比較する. まず,MLへの投稿には,12時∼13時30分,17∼19 時,そして21∼24時にピークがあることがわかる. それぞれ昼休み,就業終了時,就寝前にあてはまる と考えられる.それに対して,Wikiの閲覧や編集は, 11∼12時にピークがあり,13時30分から17時30 分にむかってなだらかに上昇し,また21∼24時にむ かってなだらかに上昇する.それぞれ午前の仕事,午 後の仕事,夕食後の仕事にあてはまると考えられる. また,0時始まりのグラフであるため読みとりに くいが,0時(24時)ちょうどに大きな山がある.デ フォルトでは1日の更新通知メールが0時ちょうど に送られるため,その送信を受けてWikiを確認する 人が増えるためと考えられる. MLへの投稿はコミュニケーションであるため,休 憩時間や業務の終了後に行われる傾向があるが,Wiki の閲覧や編集は作業と密接に関わるため,午前中,午 後,そして夕食後といった仕事の時間帯に行われてい ることがわかる.特に昼休みの時間帯にはメールの利 用とWikiの利用とが山型と谷型になっていて,明確 に相反しており,休憩時間になったから作業の手を休 めてメールでコミュニケーションするといった利用傾

(15)

6 ML を中心に利用したグループの利用履歴7 Wiki を中心に利用したグループの利用履歴 向の違いがうかがえる. 5. 1. 4 グループ毎のアクセス解析 次に,WikiもMLも利用しているグループでの利 用状況について,2007年5月に分析したデータを見 てみる.ここでは投稿数が50件以上,Wikiページ 編集回数50回以上,継続期間が1年以上のMLに注 目した.この条件を満たすMLは全3,110個のうち 64個あった.各月の投稿数と編集回数の大小を比べ てみたところ,8割にあたる54個のMLが編集回数 よりも投稿数の方が多い月が多かった. 図6はMLを中心に利用したグループの例である. 縦軸のMLへの投稿回数は累計の値であり,Wiki閲 覧回数,Wiki編集回数はそれぞれの累計の値をその 時点でのユーザ数で割った値である.つまり,1ユー ザあたりのWiki閲覧・編集回数を算出している.横 軸は月である.メールの投稿件数は継続的に増加して 図8 ML が中心だが,一時期に Wiki を集中して 利用するグループの利用履歴(1)9 ML が中心だが,一時期に Wiki を集中して 利用するグループの利用履歴(2) いるが,Wikiの閲覧・編集回数は最初に一旦増加し た後に落ち着いた状態となっている. 図7はWikiを中心に利用したグループの例であ る.メールの投稿件数は最初の1年程度は増加し続 け,その後は横ばいとなっている.Wikiの閲覧・編 集回数は継続的に増加しており,Wikiを中心に使っ ていることがわかる. 図8は定常的に増加するメールの投稿数に対して, Wikiの編集回数が一時期急増した例である.メール の投稿件数は一定して増加傾向にあるが,Wikiの閲 覧・編集は最初は増加せず,グループ開始1年後くら いに急激に増加し,3ヶ月間後にまた落ち着いた状態 となる.通常はMLで連絡をとっているグループが, 共同作業をする際に一定期間だけWikiを活用したの

(16)

だと考えられる.通常はコミュニケーションシステム として利用し,必要な時にコラボレーションシステム としても使えるというqwikWebの性質がよく現れて いる. 図9は同様に一定期間だけWiki閲覧・編集が増 加した例である.グループ開始から半年後の1ヶ月 間にWiki閲覧・編集が増加している.MLへの投稿 は日常業務での連絡として定常的に利用されている が,Wiki閲覧・編集は特定のイベントのために使わ れるため,その時期だけ活用されているのだと考えら れる. 5. 2 利用者アンケート qwik.jpの利用者を対象に,アンケート調査を行っ た.qwik.jp上で,2004年2月23日から2009年9月 30日の間に運用されているグループのうち,最低で も1回はWikiへのアクセスがあったグループの利用 者をアンケート対象とした.前述のように,qwikWeb の仕様上複数のメールアドレスを利用している場合で も区別できないため,メールアドレス毎の調査となっ ている.対象グループのメンバに対して,アンケート への協力依頼のメールを一斉配信し,利用者はWeb 上でアンケートに回答した. アンケートは,Wikiグループにおける利用者のス キル・役割とWikiグループの活動との関係を分析す るためのものであり,21項目からなるが,ここでは そのうちのqwikWebの設計に関わる2項目の回答に ついて説明する. Q9 あなたは各グループのqwikWebをどのよう に利用していますか(複数回答可) 1. メーリングリストに流れるメールを読む (86.7%) 2. メーリングリストに投稿する(70.1%) 3. Wikiを閲覧する(48.7%) 4. Wikiを編集する(37.6%) 5. 1. 2節での調査における結果から,アンケート 調査を行った2009年9月30日当時の値をとると Wiki閲覧が46%,Wiki編集が20%となっており, それと比較すると,Wiki閲覧が48.7%,Wiki編集が 37.6%と,Wiki閲覧は比較的近い値だが,Wiki編集 は半分程度の値で,アンケート調査に回答した利用者 はWiki編集に関わる利用者である傾向が強いことが わかる.MLに流れるメールを読む利用者が86.7%で あり,13%の利用者はメールを読まない利用方法をし ていることがわかった.これは単にグループに登録さ れただけで,送られたメールは無視している,または 単にWikiとしてだけ使っているという使い方が想定 できる. Q13 あなたはqwikWeb をどの程度使いこなせ ますか(複数回答可) 1. メーリングリストに流れるメールを読むこ とができる(94.7%) 2. メーリングリストに投稿できる(92.1%) 3. Wikiにログインして閲覧できる(86.5%) 4. Wiki の ペ ージを 作成 した り編 集で きる (73.1%) 5. 書式(「*, **, -, --」など)を使って,見 出しやリストを作成できる(67.3%) 6. リンク表記を用いて,ページ間のリンクを 作成できる(58.8%) Q9では,実際にそのグループにおいてWiki閲覧 やWiki編集を行ったかどうかを聞いているのに対し て,Q13においてはqwikWebを使いこなせるかとい う質問である.前述の,Wiki閲覧48.7%,Wiki編集 37.6%とは変わって,Wiki閲覧が86.5%,Wiki編集 が73.1%であり,スキルとしては身につけているが, 単にやっていないだけというスタンスの利用者が多 いことがわかる.これは,qwikWebにおいては通常 はMLによるコミュニケーションのみを行い,必要 になったときに初めてWikiとしての利用を開始する という使い方を想定しており,そのためMLによる コミュニケーションのみを行っている利用者であると 考えられる.また,書式を使えるのが67.3%で,ペー ジ間のリンクを作成できるのが58.8%と,編集でき る人の割合(73.1%)から徐々に下がっている.この ように,Wikiを使って編集できることから,Wiki記 法を使えること,ページ間のリンクを作成できること といった段階で徐々にスキルを発展させる使い方がで きること,つまり段階的にスキルを修得できることは Wikiを使う大きなメリットであり,設計思想に合致

(17)

した使い方がなされていることがわかる. 5. 3 特筆すべき利用事例 このqwik.jpを利用したグループのうち,特に目 立った利用をしたグループをいくつか紹介する. qwikWebを書籍の共同執筆環境として使った事例 がある.高林らによる『Binary Hacks —ハッカー秘 伝のテクニック100選』と,荒川らが翻訳した『Rと Bioconductorを用いたバイオインフォマティクス』 である.著者によれば,各々の執筆分担をWikiペー ジとして分割し,Wikiページとして完成させるとい う手法で共同執筆が行われた.コミュニケーションと コラボレーションの両方をシームレスに行えるという 特徴からqwikWebを選択したとのことである. さらに,国内のさまざまなイベント運営の連絡用 MLとして使われている.Rubyに関する国内最大の カンファレンスである日本Ruby会議の運営にも活 用されており,スタッフ間のイベントに関わる情報共 有に使われている.また,東京大学大学院情報理工 学系研究科の情報理工実践工房では,20件以上のソ フトウェア開発プロジェクトがqwikWebを利用して いる. 技術評論社『Software Design』誌2005年8月号よ り2006年7月号まで,12回に渡ってWikiに関する 記事が連載され,その連載の1つとして「qwikWeb 徹底解説」[4]が掲載された.連載を支えるコミュ ニケーション/コラボレーションシステムとしても qwikWebは利用され,最終回においてqwikWebを 利用した編集作業の実態[11]が紹介された.連載で使 われたグループは,後に参考になるように一般公開 された15.記事によれば,qwikWebが選ばれたのは 「後から追加されたメンバにもプロジェクトの見通し が良いこと」,「メールとドキュメントの両方が閲覧可 能であること」などの理由である. 5. 4 qwikWebの普及  qwikWebは,2004年4月22日よりGPLによる フリーソフトウェアとして一般に公開している.そ †15 http://qwik.jp/wikibana-gihyo/ のため,実験環境として公開しているqwik.jp以外に も,さまざまな組織の内部で利用されている.一般に 組織内部での利用は外部からはわからないため運用 結果を知る機会はあまり無いが,直接つながりのある 担当者から聞くことのできた運用結果についてまと める. 沖電気工業株式会社のソフトウェア開発部門では, 2005年から2008年にかけて,組織内連絡に qwik-Webを使っていた.累計30∼70ユーザによって10 前後のMLが使われていた.2008年に利用を停止し た理由は,組織の再編成による影響が大きいと語って いる. 受託システム開発大手の株式会社永和システムマ ネジメントでは,2006年にqwikWebの利用を開始 し,40個のMLにて,累計127人のユーザによって 利用されている.重複も含めて数えると374人とな り,多くのユーザは複数のMLに重複して登録され ていることがわかる.社内部門やグループの運営,社 内外の開発プロジェクトなどがメインの用途であり, 現在も継続して利用している.社内では基幹システム に位置付けられていると語っている. 株式会社ウニークスでは,qwikWebシステムを社 内にインストールするサービスを提供している16. また,システムのカスタマイズも有償で請け負って いる. このように,フリーソフトウェアとして公開してい るシステムであるが,受託開発大手の情報共有システ ムとして採用され,qwikWebのインストールやカス タマイズを提供する会社が現れるなど,高い完成度を もったシステムとして受容されていることがわかる.

6 まとめ

本論文では,MLとWikiを統合したコラボレー ションシステムqwikWebについて,背景となる知見 と設計,実装と特筆すべき運用について述べた.利用 者はMLによる日常的なコミュニケーションを出発 点として,必要に応じてWikiによるコラボレーショ ンを取り入れることができる.MLに流れるメールは †16 http://qwikweb.jp/

(18)

Wikiに蓄積されるため,必要に応じて適宜参照する ことができる.蓄積されたフロー情報を元に,必要に 応じてストック情報としてのページを作成・編集する ことで,グループにおける知を共有・構造化できる. qwikWebは,ちょうどWebアプリケーションの 実装が頻繁に行われるようになる黎明期に実装を開 始しており,そのため,Ruby,メタプログラミング, REST,XPなど,先端的な技術を積極的に取り入れ て実装している. qwikWebの特筆すべき利用事例として,雑誌での 連載を支える連絡媒体,2冊の書籍の執筆媒体,イベ ント運営の連絡媒体として利用されることとなった. フリーソフトウェアとしてリリースしたところ,さ まざまな会社の内部情報共有に使用され,そのうち2 社にインタビューすることができた.インストールや カスタマイズなどを有償で請け負う会社も誕生して いる. これまでの活動で,コミュニケーションとコラボ レーションをシームレスに融合したWeb上のコラボ レーションシステムの構築という当初の目的を達成 できたと考えている.今後はqwikWebの活動で根本 的な理念として考えてきたコミュニケーションとコラ ボレーションのシームレスな連携を,メールとWiki の組に限らず,さらに多様な情報の流れへと接続し, より有意義な知の集積・構造化が行われるようなシス テム基盤の構築へとつなげたいと考えている. 謝辞 本論文は,博士課程における指導の結果生ま れている.指導教官の竹内郁雄先生に感謝の意を表 する. 参 考 文 献

[ 1 ] Beck, K.: Extreme Programming Explained: Embrace Change, Addison Wesley, 1999. (翻訳:ケ ント・ベック,XP エクストリーム・プログラミング入 門 — ソフトウェア開発の究極の手法,ピアソンエデュ ケーション,2000)

[ 2 ] Berners-Lee, T.: The World-Wide Web, Com-puter Networks and ISDN Systems, Vol. 25, No. 4-5(1992), pp. 454–459.

[ 3 ] Engelbart, D. and English, W.: A Research Cen-ter for Augmenting Human Intellect, in Proceedings of the 1968 Fall Joint Computer Conference, ACM, 1968, pp. 395–410.

[ 4 ] 江渡浩一郎: qwikWeb 徹底解説, Software Design, 5 月号, 2006, pp. 102–111.

[ 5 ] 江渡浩一郎: パターン,Wiki,XP:時を超えた創 造の原則, 技術評論社, 2009.

[ 6 ] Fielding, R.: Architectural Styles and the Design of Network-based Software Architectures, Ph.D. Thesis, University of California, 2000.

[ 7 ] Greif, I.: Computer-Supported Cooperative Work: A Book of Readings, Morgan Kaufmann Pub., 1988. [ 8 ] Kay, A.: A Personal Computer for Children of All Ages, in Proceedings of the ACM National Con-ference, Xerox Palo Alto Research Center, 1972. [ 9 ] Leuf, B. and Cunningham, W.: The Wiki Way:

Quick Collaboration on the Web, Addison Wesley, 2001. (邦訳:ボウ・ルーフ,ウォード・カニンガム, yomoyomo 訳,Wiki Way — コラボレーションツール Wiki,ソフトバンクパブリッシング,東京,2002) [10] まつもとゆきひろ, 石塚圭樹: オブジェクト指向ス

クリプト言語 Ruby, アスキー, 1999.

[11] しばむらしのぶ: qwikWeb 上の Wiki つまみぐい — Wiki つまみぐい運用の舞台裏, Software Design, 7 月号, 2006, pp. 113–115. [12] 高林哲, 増井俊之: QuickML:手軽なグループコ ミュニケーションツール, 情報処理学会論文誌, Vol. 44, No. 11(2003), pp. 2608–2616. 江渡浩一郎 独立行政法人産業技術総合研究所社 会知能技術研究ラボ研究員.1997年, 慶應義塾大学大学院政策・メディア研 究科修了.在学中よりメディア・アー ティストとしてアート作品を発表する.《WebHopper》 (1996),《インターネット物理モデル》(2001),《 Mod-ulobe》(2005)など.2010年,東京大学大学院情報 理工学系研究科博士課程修了.博士(情報理工学).著 書に『パターン,Wiki,XP』(技術評論社).ホーム ページ:http://eto.com/

図 1 開設された Wiki.ML でのやりとりがそのまま Wiki ページとなっている. qwikWeb システムの利用は,まず ML の利用から 開始する.利用者は,そのグループ名を foobar だ とすると, foobar@qwik.jp にメールを送信するこ とにより, ML を開設できる.同時に,同名の Wiki サイトが作られる.この場合の Wiki のアドレスは http://qwik.jp/foobar/ となる.図 1 に qwikWeb の Wiki サイトの画面を示す.この Wiki
表 1 既存のシステムが持つコミュニケーション要素とコラボレーション要素の分類 コミュニケーション コラボレーション 修得の容易さ 電子メール ○ × ◎ ML ◎ × ◎ 掲示板 ○ × ◎ ブログ ○ × ○ グループウェア ◎ ◎ × WikiWikiWeb △ ◎ ○ る.メールマガジン ( メルマガ ) などと呼ばれる ML 利用形態もこの一種であり,少数の情報発信者と多数 の情報受信者とに分かれている.議論用 ML は,登 録されたメンバが互いに意見や情報を伝えるための ML である. ML に
図 2 プラグインを記述するコードのサンプル http://qwik.jp/foobar/.hello に対応する. ある特定のページに対する操作というわけでは なく,その Wiki サイト全体に対する操作を定義 する際に用いる. このように,メタプログラミングによってメソッド 名がそのままプラグイン名や URI に反映される仕組 みとなっている.メソッド定義の実例を,図 2 に示 す.ここでは, plg_hello と act_hello という 2 種 類の機能拡張を行っている.
図 4 利用者数の時間遷移
+3

参照

関連したドキュメント

長尾氏は『通俗三国志』の訳文について、俗語をどのように訳しているか

長尾氏は『通俗三国志』の訳文について、俗語をどのように訳しているか

本節では本研究で実際にスレッドのトレースを行うた めに用いた Linux ftrace 及び ftrace を利用する Android Systrace について説明する.. 2.1

> Eppendorf Quality と、ロット毎にテスト、認証された PCR clean の 2 種類からお選びになれます 製品説明 開けやすく密閉性も高い Eppendorf Tubes

今回の SSLRT において、1 日目の授業を受けた受講者が日常生活でゲートキーパーの役割を実

Corn Alternaria blight, Anthracnose, Ascochyta leaf and pod spot, Bacterial blights (halo, common and brown spot), Bacterial leaf spot, Downy mildew, Gray mold, Southern

「1 つでも、2 つでも、世界を変えるような 事柄について考えましょう。素晴らしいアイデ

№3 の 3 か所において、№3 において現況において環境基準を上回っている場所でございま した。ですので、№3 においては騒音レベルの増加が、昼間で