Keio Media Space Board for KMSF-CODE の 設計,実装,評価 慶應義塾大学環境情報学部 大越 匡 slash@sfc.wide.ad.jp 岩本健嗣 中澤仁 永田智大 望月祐洋 徳田英幸 情報処理学会コンピュータシステムシンポジウム‘96 @鎌倉 1996/11/6
Outline KMSF環境 KMSB for KSMF-CODE の構造・機能 KMSF-CODEにおける通信機構 実装 性能評価・考察 今後の課題
KMSFでの協調作業 KMSF環境 Keio Media Space Board (KMSB) 複数の主体からなるグループの情報共有・知的 協調作業を支援する環境 Keio Media Space Board (KMSB) サーバプログラム.ネットワーク上の仮想的な掲示板 情報の蓄積・提供・管理を行う Keio Media Space Navigator (KMSN) クライアントプログラム KMSB上の情報を参照,編集する KMSB上に情報を掲示する
既存の実装と問題点 受動オブジェクトモデル 自立分散オブジェクトモデル クライアント・サーバモデルに基づくKMSF実装 テキストデータのメッセージング環境であり,マルチ メディアデータは未対応 KMSN側にすべての機能を用意するため,動的な 機能の拡張が困難 自立分散オブジェクトモデル 計算機ごとに実装されるコネクションマネジャの協調 によるKMSF環境 多人数による使用ではネットワークに過負荷
KMSF-CODEアーキテクチャ 特徴 利点 Collaborative Object on Distributed Environment (CODE) 情報オブジェクト - Collaborative Object (CO) メディアデータ - Media-CO ソフトウェア部品 - Component-CO COの任意の組み合わせによるHyperObject (HO) KMSF環境の機能をオブジェクトとしてKMSBに配置 利点 多様なメディアによる情報の構成 KMSF環境の動的な拡張性 多人数の使用に耐えうる
KMSB for KMSF-CODEの構造 .......... KMSB WAN / LAN / WirelessLAN Connection Manager Media-CO Storage HO Storage Component-CO Storage Object Storage Session Manager .......... KMSB WAN / LAN / WirelessLAN .......... KMSN1 KMSN2 KMSN3 KMSNn
KMSB for KMSF-CODEの機能(1) KMSNとの通信処理機能 SessionManager -KMSN 間の通信 SGMLファイルとして構造化されたオブジェクト COデータファイル,Javaクラスファイル オブジェクトの保存/管理機能 HO Storage, Media-CO Storage, Component-CO Storage 各オブジェクトをMIME-Types別に保存 Date Storage POST順に保存(リンク)
KMSB for KMSF-CODEの機能(2) - Object Storage - date 19960812060012.HO-Sample1.ho 19960812060145.Sample1.mco Link 19960812062039.AIFFPlay.cco / hyperobject HO-Sample1.ho.19960812060012 HO-Sample1.ho SampleHyper.ho.19960920122043 SampleHyper.ho SampleHyper.ho.19960921101054 SampleHyper.ho component-co audio ai f f Sample1.mco.19960812060145 Sample1.mco text au aiff1.mco.19960920122043 AIFFData.aiff ...... ...... aiff2.mco.19960921101054 media-co audio ai f f AIFFPlay.cco.19960812062039 AIFFPlay.cco text au DefaultComponent AIFFPlay.class ...... ...... aiff2.cco.19960921101055 Root Storage MIME-Types Directory Object
KMSF-CODEにおける通信機構(1) クライアント・サーバモデルに基づく通信 TCP/IPプロトコルによるコネクション指向の通信 KMSNからKMSBへの4つのメソッド post-it オブジェクトをKMSB上に掲示する動作 fetch-it オブジェクトをKMSBから取り出す動作 info-it オブジェクトの属性情報を取り出す動作 list-it Object Storage中のオブジェクトのリスト情報 を取り出す動作
KMSF-CODEにおける通信機構(2) - Hyper Object Transfer Protocol - HOTp…KMSF-CODE上でオブジェクトやそれに 付随する情報を転送するためのプロトコル アプリケーションレイヤプロトコル 4メソッド実現のための6メッセージ WWW・HTTPとの互換性 単一コネクションによる転送の効率化 KMSN KMSB HOTp HOTp SocketAPI SocketAPI TCP / IP TCP / IP Kernel Kernel Network
KMSF-CODEにおける通信機構(3) - HOTp 6メッセージ -
KMSF-CODEにおける通信機構(3) - WWW・HTTPとの互換性 - メソッド方式 HTTP ex. GET /index.html HOTp ex. FETCH /date/19960927181114.SampleGif.mco/ World Wide Webとの透過性 KMSB httpd KMSN WWW Client
KMSF-CODEにおける オブジェクトの構造化(1) 全てのオブジェクトをSGMLファイルとして構造化 HO SGMLファイル Media-CO SGMLファイル, COデータファイル Component-CO SGMLファイル, Javaクラスファイル SGMLファイル タイトル 識別子(MIME-Types) 参照URL 著作権表示 コメント など
KMSF-CODEにおけるオブジェクトの構造化(2) - HO-SGMLの記述構造 -
KMSF-CODEにおけるオブジェクトの構造化(3) - CO-SGMLの記述構造 -
HyperObject SGML Sample <HO> <TITLE>test</TITLE> <AUTHOR>Tadashi Okoshi (t94063to@sfc.keio.ac.jp)</AUTHOR> <COPYRIGHT>Tadashi Okoshi 1996</COPYRIGHT> <MCO> <NAME>gif1</NAME> <REF> hotp://shonan.sfc.wide.ad.jp/date/19960812110154/Eri.mco/ </REF> </MCO> <CCO> <NAME>Btn1</NAME> <REF>hotp://axe.sfc.wide.ad.jp/date/component-co/ application/component/KillerB.cco/KillerB.class <MESSAGETO>gif1</MESSAGETO> <MESSAGE>HIDE</MESSAGE> </CCO> </HO>
Media-CO SGML Sample <MCO> <TITLE>LovelyEri</TITLE> <TYPE>image/gif</TYPE> <AUTHOR>Tadashi Okoshi (t94063to@sfc.keio.ac.jp)</AUTHOR> <COPYRIGHT>Tadashi Okoshi 1996</COPYRIGHT> <COMMENT> This picture is my girl friend, Eri. Now, she is so far from me. </COMMENT> <REF> hotp://shonan.sfc.wide.ad.jp/date/19960812110154.Eri.mco/Eri.gif </REF> </MCO>
Component-CO SGML Sample <CCO> <TITLE>KillerButton</TITLE> <TYPE>application/component</TYPE> <AUTHOR>Tadashi Okoshi (t94063to@sfc.keio.ac.jp)</AUTHOR> <COPYRIGHT>Tadashi Okoshi 1996</COPYRIGHT> <COMMENT> This component is KillerButton. </COMMENT> <REF> hotp://axe.sfc.wide.ad.jp/date/component-co/ application/component/KillerB.cco/KillerB.class </REF> </CCO>
実装 動的マルチプロセスモデル 動的マルチスレッドモデル KMSNからの接続要求毎にスレーブプロセス(SessionManager)を生成 RMK95 + 4.4BSDLites (C言語:約1800行) 動的マルチスレッドモデル KMSNからの接続要求毎にスレーブスレッド (SessionManager)を生成 cthreadパッケージ Solaris2.5.1 + JDK1.0.2 (Java言語:約1000行)
性能評価(1) 評価環境 KMSB: Pentium 166MHz, 32MB 性能評価(1) 評価環境 KMSB: Pentium 166MHz, 32MB RMK95 + 4.4BSDLites C言語の実装による測定 Pentium Processorクロックによる1us単位までの測定 KMSN: UltraSPARC x 2 168MHz, 256MB Solaris2.5.1 + JDK1.0.2 Java言語による実装を使用 Network: Ethernet (10Mbps) 100bytesのファイルによる測定 1000回の測定の加重平均
性能評価(2) post-it
性能評価(3) fetch-it
評価結果の考察 マルチスレッド化の効果 最適化の余地 スレーブ(Session Manager)生成の向上 cthread_fork() ←→ fork() ネットワークアクセス速度の若干の低下 スケジューリングによるクラスタリング ディスクアクセスの性能向上 最適化の余地 ネットワーク部門サブシステム メモリアクセス部門サブシステム
今後の課題 実時間マイクロカーネル (RMK95) アーキテクチャ に適したサーバへの再設計・再実装 KMSB間通信の設計・実装 連続メディア処理の設計・実装 “Continuous post-it”, “Continuous fetch-it” 連続メディア処理に適した通信機構への改良 連続メディア・非連続メディアの共存 連続メディア転送時におけるマルチキャスト通信
まとめ やったこと ポイント KMSF-CODEアーキテクチャ上での通信機構・オブジェクトの構造化の設計 KMSB for KMSF-CODEの設計,実装及び,評価考察 ポイント HOTp / TCP / IPプロトコルによる既存のWWW環境との互換性の高い通信機構 SGMLファイルによる全てのオブジェクトの構造化 モデル別実装の評価と比較