1998年度 森泰吉郎記念研究振興基金
修士過程研究助成金報告書
- 題名:
分権的コミュニティウェア開発
「器(メディア)」と「中身(コンテンツ)」
の相互編集によるガヴァナンス
- 研究テーマ(25文字以内):
分権的コミュニティウェア開発-器と中身の相互編集性
- 所属:
- 修士課程2年 ネットワークコミュニティプロジェクト(金子郁容研究室)
- 氏名:
- 久保 裕也
conents
- 修士研究の背景
- 修士研究について
- 修士論文の最終発表のOHP
- リソースへのリンク
修士〜博士課程の長期的な研究課題として,
「持続可能なシステム」を実現するための,
メタ・システムの構造についての研究を行っている.
はじめに,この研究課題について説明する.
情報システムの利用の現場では,「持続可能なシステム」を作り出すことが
求められている.システムが利用できるリソースや,システムに対するニーズは,
時間が経つにつれて変化してゆくものであるが,このような変化に対して,
従来型の静的・固定的なシステム構成では,十分に対応することができない.
その結果,古いシステムの上で行われていた処理を,新しいシステムの上に
移し替える作業が必要となるが,一般に,新旧のシステムを移行する際には
システムの利用には不連続性が生じてしまう.
このような不連続性を最小限にとどめ,新旧の互換性に問題が生じる
部分への対応作業を支援するような基盤的仕組みを提供する必要がある.
本研究では,このような「持続可能なシステム」を作り出すために,
システムを構成する基盤にコンポーネント技術を導入することによって,
システムの「自己記述性」と「動的再構成性」を実現しようと考える.
このことから,様々なサブシステムを実装したり相互接続して運用するための
メタ・ルール,メタ・システムのデザインを行うというものである.
このような,「持続可能なシステム」すなわち動的な変化に対応するような
情報システムを,データベースシステムを例として提示する.
- 情報の入れ物・スキーマを構成するクラス:「器(コンテキスト・メディア)」
- 格納された情報の実体・インスタンス:「中身(コンテンツ・メッセージ)」
このように考えると,データベースが「自己記述性」と「動的再構成性」を実現する
ということは,
「器」がその「中身」を規定するだけでなく,一方で「中身」が「器」の変革を促す
というような,相互編集的な関係を持つものとして見なすことができる.
本研究は,
近年"Knowledge Management"と呼ばれているような,
コミュニティメンバー内での知識共有や組織化の手法について注目し,
これを支援するためのデータベースシステムと
そのアプリケーション環境の設計・実装手法を確立することが具体的な目的である.
一般に,"Knowledge Management"を実現するために,
何らかの情報共有システムを導入を試みた組織の中では,
そのシステム管理者(器を作る人)と,ユーザ(中身を埋める人)とが
互いに隔絶し役割関係を固定化させてしまうことによって,
やがてシステム全体が機能不全に陥ってしまうという傾向が見られる.
この問題は,現実の社会システムにおいて,
法律などのルールの制定と施行の主体(政府)と,
ルール内での実際の活動主体(民間)との間に,
情報のフィードバックや役割関係の流動が起こらなくなることが,
システムの最適化を阻害してゆくという構造とも一致する.
このように,コンテキストが静的で所与のものとなってしまうことは,
コンテンツを陳腐化させ,コンテキストへの参加のモティベーションを
低めていくという悪循環をもたらすと考えられる.
そこで,システム・組織ひいては社会を,閉塞や破綻に陥いることなく
「持続可能なシステム」として維持してゆくために,
管理者・ユーザの関係を動的に再編可能にするような
基盤的機能を,情報システム自体に内蔵することが重要であるという提案を行う.
すなわち,多サイトに分散したサーバ同士の自発的相互接続関係の中から生じた
フラットなメンバーシップの中で,
情報の「器」と「中身」の更新権限権限をそれぞれのユーザに動的に分散させ,
しかも混乱の無いように運用するというモデルを確立すること,
そのための基盤の整備を行うこととして,
具体的な実装によって示すことを行う.
研究の目的
本年度の研究においては,「持続可能なシステム」を作るために
必要な条件として,多ユーザ・分散環境からの利用を通じて
「情報の形式的一貫性」を保証するためシステムが持つべき仕組みについて,
情報の依存関係の記述とそれに基づく情報の更新管理モデルの設計・実装
によって検討することを目的とした.
研究の概要
多ユーザ分散環境において,Webクライアントから利用される
情報共有システム(データベース)を実装した.
この実装は,情報システムの「自己記述性」「動的再構成性」を実現するために,
その前段的な問題となる「情報の整合性管理」に関してモデル化を行うことを
その焦点としている.
この実装は,後で分散オブジェクト基盤の上で,
永続化された名前サービスファシリティとして実装し直すための
プロトタイプシステムとして作成し,評価を行った.
研究の内容
- 情報を取り扱う粒度と,その情報に対するアドレッシングの手法について検討した.
HTMLなどのオブジェクトの中のタイトル・段落・アンカーなどの下部構造に相当する
細粒度の情報についてを操作単位とすることについて検討し,その利点を示した.
また,このような細粒度の情報を操作単位とするhttpdを実装した.
-
情報の整合性管理を行いながら更新操作を行うことができるような
多ユーザ分散型の情報共有システムについて設計・実装し,これを説明した.
-
共有ロック方式によるトランザクションの機能をHTTP上に導入するための
方法について示し,これをWeb上で実装した.
- 「逆向きのリンク」という概念を実現する方法について検討し,
多ユーザ分散型の情報共有システムの中でこの機能をどのように利用するかについて
考察を行った.これをWeb上で実装した.
- データ構造の多様性とユーザ側のニーズの多様性を踏まえると,
単一の種類の実装によって全ての状況に対応することは不可能であることを示した.
そこで,様々な実装をコンポーネント化してネットワーク上にカタログ化しておき,
これを動的に共有することで,多様な状況に対して拡張可能なシステムが実現
できることについて設計し,その基盤的部分について実装を行った.
- 多様なコンポーネント同士を協調させて動作させるためには,
オブジェクト指向プログラミングのアイデアによる抽象化の手法が
有効であることを,自己反映計算の応用的手法によって示した.
- ORB上の名前サービスファシリティを,多ユーザで分散管理する
ことの意義について示した.名前サービス上の,それぞれの名前ノードが,
その名前ノード以下のノードについての内容の表示と更新のためのHTMLを
自己反映的に提供することで,この名前空間をWebクライアントから共有・管理
するというアイデアについて示した.
- コミュニティにおける意味共有の構造は,
スキーマ共有もしくはアドレッシングコンテキストの共有に相当することを示し,
コミュニティによるスキーマの動的な再定義可能性が,コミュニティ指向情報共有システ
ム実現の要点であることについて論考した.
本研究のポイント
1998年度の本研究によって実現されたもののうち,
先行的な研究事例を応用し,拡張したポイントとなる点を示す.
スキーマ進化・MOP
「自己記述性」「動的再構成性」を実現するための,関連する先行研究として,
データベースシステムのスキーマ進化と,この基盤技術としての
MOP(メタオブジェクトプロトコル)について説明する.
スキーマ進化とは,データベース内にデータがある程度格納された後で,
データベース内のスキーマ情報を更新し,その変更にしたがって
オブジェクトの構造を変更するための一連の処理手法によって実現される.
また,スキーマ進化を実現するためには,
すでに定義されているオブジェクトからそのクラス情報を得たり,
クラス情報を動的に更新する機能が必要である.これを提供するものが
MOP(メタオブジェクトプロトコル)と呼ばれる言語機能である.
本研究では,こうした技術を基盤とすることで,
分散環境において予測不可能なスキーマを持つデータベースをアクセスし,
そのスキーマ情報を利用・更新しながら動作させることが
できるようなアプリケーションフレームワークを実現する手法について
モデル化を行っている.本年度の研究では,こうしたモデル化の基礎として,
MOP(メタオブジェクトプロトコル)を備えたデータベース(永続ハッシュテーブル)を
DBMライブラリの上で実装した.
データベースの整合性維持
「自己記述性」「動的再構成性」を実現するためには,
データベースとしての整合性が管理され無矛盾な状態であるという前提が
必要である.
そこで,オブジェクトの生成と更新操作において参照関係を作り出す際に,
同時に被参照関係を保持することをMOPの中で定義する.
こうして管理された被参照情報を,
Observerパターン
(オブジェクト指向プログラミングの再利用におけるデザインパターンのひとつ)
の更新通知手法から利用することで,参照先のオブジェクトにおける情報の参照
コンテキストが矛盾を来たさないようにするためのメソッド起動を行うことができる
(類似のシステムとして,JavaBeansにおけるVetorablePropertyChangedEventが挙げられ
る).今回の方式では,
被参照関係の保持と検索は線形で処理されるとなるので大規模なデータベースでの
利用は難しいと思われるが,そのデータ量の合計は,
参照情報のみを保持するの場合の高々2倍に留まるので,
小〜中規模なデータベース内に限れば,この手法には実用上十分な有効性が認められた.
Web上のコミュニティ型情報共有モデルの設計
〜オブジェクト指向と自己反映計算による抽象構造の応用〜
研究の概要:
「コミュニティ型情報共有モデル」の、設計・実装、利用評価
修士研究の内容(発表の流れ):
上の目的を実現するための作業のうち,以下を行った。
- 問題背景の分析
- システム基盤の設計と一部実装
- アプリケーションモデルのロジック部分をプロトタイプシステムの中で実装
- 3の運用と定性的評価
- 今後の課題の検討
背景(1): CSCWのオープン化の流れ
特定目的化された個別的CSCW群への批判
→ 「異なるサイト・ホストの情報を相互に利用しにくい」
「異なるソフトウェア同士が相互に協調できない」
World Wide Web - “Open” Hyperdocument System
「相互運用可能なCSCW基盤システム」を目的として開発された
自律分散構造:システムの可用性・規模性→爆発的普及を可能に
高い自由度・拡張性
→ 情報発信者の「自発的相互接続関係」
協調のための仕組み(可用性・規模性を制約する)の整備は後回し
人為的協調による自己組織化的な発展への期待
背景(2):「インターネットは空っぽの洞窟?」
| 取引コスト |
低 | 高 |
参 入 コ ス ト | 低 |
完全市場的 | 共有地のジレンマ |
高 |
staticな組織 | 非効率な状態 |
- 普及以前のインターネット上のCSCW:
- 性善的社会観,完全市場的
- 普及以降のインターネット上のCSCW:
- 性悪的社会観,自由さゆえの「共有地のジレンマ」状態,
もしくはstaticな組織への自閉(インターネット以前への退行),協調のlocal maximum化
本研究による「対案」:
- who:
- コミュニティ(動的な組織内ルール・動的なメンバーシップを持ったユーザ集団)による
- what:
- 情報共有のためのメタ・システム(共有情報のスキーマ定義やユーザ管理用の構造を、動的に構築し利用する基盤)と情報共有システムとがシームレスな実装・運用形態(自己記述的システム)
- how:
- 多ユーザ・分散型・自己記述的情報共有システム上での
情報の更新作業(更新ロジックとその実行権限)への着目による
協調促進・秩序形成
→ 「コミュニティ型情報共有システム」 の提案
「コミュニティ型情報共有システム」の形態:
「多ユーザ・分散的で動的な自己記述を行うための情報共有システム」
Webブラウザ・Appletをクライアントとする多層的システム
分散オブジェクト・コンポーネントシステム上で自己記述的に
構成されたサービスファシリティ(アプリケーションサーバ)として,
実装作業中.
設計上の要点:
協調支援ロジックの導入:
多ユーザ・分散型で共有している情報を動的に更新する
共有情報のスキーマ定義やユーザ管理を分散的に行う
(自己記述性を一般ユーザレベルで持たせる)
↓
情報の更新操作を行う際の、
情報の整合性・秩序構造を保持する仕組みが
必要不可欠
… この仕組みを、軽易なロジックに形式化して実現し、
利用しやすいインターフェイスによってユーザに提供するには
どうすればいいか?
協調支援ロジック:参照関係の管理
- 操作単位となる情報を「細粒度化」
- 情報の一意性を保証しやすくするために,情報コンテンツの「コピー」をせずに、Object IDによる「参照」を行う
- 個々のオブジェクトが自分に対する参照の発生を検知することで、「参照の逆引き」(被依存関係にあるオブジェクトのリストの取得)を可能にする
- 更新操作を「トランザクション」という単位で束ねて管理する
プロトタイプの実装: システムの概要
“Web Structured Data Management(Web SDM) Model”
多ユーザ・分散型で共有されたデータベース内の情報を,依存関係に基づいて保持・管理するシステムを実装し,そのインターフェイスをWeb上に構成した.
- httpd(専用) - dbmによるデータベース(専用)
- HTTP/1.1, HTML3.0, JavaScript1.1, Cookieによる通信
- Javaソースファイルによるスキーマ定義
- 自己反映計算可能なデータベース構造の実装
- syslog, signal管理, backup機能などを装備。小規模であれば業務利用も可能
構成
- 使用言語:
- Perl 5.004,JDK1.0.4など
- コードサイズ:
- 計約6000行, 260KB
- プロセス構成:
- 1プロセス1スレッド,モノシリック型
運用に必要なもの
- サーバ側(HTTP1.1サーバ)
- Perl5.004以上
(WindowsNTは不可.GDBMまたBerklayDBなどを利用して,
永続ハッシュテーブル機能が組み込まれていること)
- クライアント側(HTTP1.1クライアント)
- NetscapeNavigator3.0x/Communicator4.0xを使用.
(HTML3.0,JavaScript1.1に準拠すること)
プロトタイプのインターフェイス構成
- ログイン:
- Cookieの発行
- クラス一覧,インスタンス一覧*,内容表示**:
- ツリー上の階層的なページ構成
- 参照・参照の逆引き:
- ハイパーリンクによってブラウズ可能
- 新規作成,内容修正・削除:
- 新しく開いたウィンドウ内でのトランザクション作業
|
プロトタイプの利用画面:
参照関係の管理(a,b):スキーマ設計上の注意
a.「細粒度」オブジェクトを操作単位とする
細粒度オブジェクトでは内容的な無矛盾性の保証が行いやすい.
粗粒度オブジェクトは、細粒度構造のボトムアップ構成で実現.
b.情報コンテンツの「コピー」をせず、object IDによる「参照」を行う
意味的に同一の情報が複数の場所にコピーされていると、
それらの一意性を保持することが難しい.
参照機構を利用することにより、情報の実体は一個所だけで保持し、
情報の一意性・関係構造の整合性管理の問題をひとまず単純化する.
参照関係の管理(c):更新の影響範囲の検知
c.「参照の逆引き」
情報更新時に参照の発生・消滅を検知し、参照先に通知するようなメタ・ルールを設定.
個々のオブジェクトが 自分に対する参照(被依存関係にあるオブジェクト)のリストを
保持する.
↓
オブジェクトの内容更新による変化の影響範囲として利用.
変更要求が起こったら、参照の逆引きリストを利用して、変更要求の認否を問い合わせる.
参照関係の管理(d):更新時の矛盾発生の回避
d.「トランザクション」
同時的な複数の更新要求を、矛盾が起こらないように交通整理する.
HTTPセッションの中でのトランザクションの実現.
アクセスの直列化・遷移状態の保持・参照先タイムスタンプの管理.
共有ロック方式による矛盾発生の回避.
更新の影響範囲のオブジェクトに矛盾が起こらないかどうかのチェックを依頼.
もし矛盾がひとつでもあればロールバックを実行.
考察: 他の「多ユーザ分散型情報共有システム」との定性比較
検討項目:
- 粒度
粗粒度or細粒度(アプリケーション内部で実際に操作される対象である
細粒度オブジェクトと比べた場合の,システム内で表現され格納されている
データの粒度の大きさ)
- 参照
リンクと実体の適切な使い分けがされているかどうか
- 依存関係管理
更新時の矛盾発生を警告する仕組みを持つかどうか
- トランザクション
分散多ユーザによる同時的更新に適切な対応をしているかどうか
- バージョン管理
比較対照:
- AFS+RCS
Andrew File System +
Revision Control System
- CVS
Concurrent Versin System
- Web DAV
Web Distributed Authorizing and Versioning
- LDAP
Lightweight Directory Access Protocol
- RDB
Relational Data Base Management System
- Web SDM (本研究プロトタイプ)
Web Structured Data Management
| 粒度 | 参照 | 依存関係 | トランザクション | バージョン管理 |
AFS+RCS | 粗:file | X | X | X:排他的ロック
| ○ |
CVS | 粗:file | X | △:moduleの依存関係の構造化
| X:共有ロック | ○ |
WebDAV | 粗:file | X | ○:変更イベントの通知
| X:共有ロック | ○ |
LDAP | 細:object | ○:directoryのリンク | △:レプリカ
の作成指示
| X | X |
RDBMS | 細:tuple | △:keyによるjoin | X
| ○:排他的ロック | X |
WebSDM | 細:object | ○:objectID | ◎:変更イベント通
知
| ○:共有ロック | X:future work |
今後の課題:
博士課程において,修士研究によるプロトタイプを反映し、
「コミュニティ型情報共有モデル」の本システムの実装を進める.
- システムの自己記述性
- メタ・ルールに基づいたコンポーネントの動的再構成
- スキーマ動的進化機構
- 一貫性保持のための検査機構の高度化
- オブジェクトの表示・編集インターフェイスの高度化
- 被参照構保持のスケーラビリティへの対応
- バージョン管理
まとめ:
- 「コミュニティ型情報共有モデル」の必要性を示した.
- その実装方法について検討し、設計と一部実装をした.
- アプリケーションモデルの核となる秩序構造を管理するための
メタ・ロジック部分のアイデアについて,
プロトタイプシステムを実装することによって検証した.
- プロトタイプの実装について:
- 実装 :
- 多ユーザ・分散型で共有されたデータベース内の情報を,
参照関係に基づいて管理するシステムをWebをインターフェイスとして実装
- 結論 :
- 情報共有システムの情報管理の複雑性を軽減するには,
参照関係を用いた管理モデルが有効