「インタラクション，97」 平成9年2月

UIを分離した複合文書による情報共有
羽根秀宜，河村元夫，横田実

NECC＆C研究所
インタラクティプな情報共有を実現する複合文書アーキテクチャについて提案する。本アーキテクチャではテキストや図形などの複合文書の要素オブジェクトがUI部（Shapeと呼ぶ）と本処理部（Bodyと呼ぶ）から構成され、Shapeのみが各ユーザの端末上で動作しBodyをShapeで共有することで文書共有を実現する。さらに、ユーザが文書の同じページを見る／異なるページを見るといった2種類の共有形態が必要であると考え、Sbapeのコンテキスト情報を分離し、コンテキストの共有を切り替えることで実現する。

InformationSharingbytheCompotlndDocument
basedonUISeparation
Thispaperdescribesthecompounddoc11mentarChi七ectureforinteractive

informationsharing・Acomponentofthecompounddocumentsuchas
texteditororfigvreeditorconsiststheUIpart（calledShape）andtheessentialfunctionone（cal1edBody）．TheShapeonlyrunSOnuSerter−
minal，andashareddocumentisrealizedbyshariI嶋theBodywiththe
ShapesofeachllSerS・Andfurther，thecontextinformationoftheShapeisseparated・Thereforetwotypesofsharing†forexampleusersreadthe＄amepageOrthedi鮎rentpageofadocumentIisaNailablebyswitching
the context．

1 はじめにインタネットに代表されるネットワークの普及に伴い、インタラクティブに情報を共有し利用するための枠組が求められている。例えばWWWはインタネットでの情報発信に盛んに用いられているが、HTMLの表現力はまだ不十分であり、CGIを用いた情報検索や掲示板などのインタラクティ
ブサービスもユーザへのリアルタイムな変更の反映などの点で根本的な問題点がある。また分散オブジェクト技術を用いて複合文書技術であるOLE2【1】やOpenDoc［2】をネットワーク対応させる動きもあるが、文書共有の申ではまだこれからという状況である。

筆者らは、ネットワ一身を介したインタラクティブな情報共有を特徴とするパーソナル端末アーキテクチャとして、エーザインタうエース（叫に特化したシステムアーキテクチャの確立を目指している。本論文では、そのシステムの基本となる、UI分離を特徴とする複合文書アーキテクチャについて述べる。

まず目標とする情報共有の特徴について述べる。次にそれを実現す志方法どして、【￠Ⅰ分醜によりオブジェクトの分散共有を実現するShapedbbjectModel［3］と、そTLを用いた複合文書アーキテク
チャについて述べる。

2 目標とアプローチ

ここでは情報を文書とし、情報のインタラクションを文書共有であると捉えることにする。そこ
で文書共有をベースとしたインタラクティブな情報共有のために、次に示す特徴を持つ文書共有を目標とする。

−95−

r

ユーザ

図2：同じView／異なるViewでの共有

図1：目標とする文書共有

アクティブ文書の共有ここでは、時事刻々と内容の変化する文書をアクティブ文書と呼ぶ。アクティ
ブ文書の共有では、内容の変化が他のユ∵ザウニリアルタイムに反映される（図1‥図形のドラッグ）。これにより、分散プレゼンテーションや文書の共同執筆など文書を介したインタラクションを実現することができる。

様々なメディアを含む文書文書の共有による多様な応用を可能にするには、テキストや図形、表、動画といった様々なメディアを含む文書を取り扱うことがヰきる必要がある（図1：テキストや囲を含む文書）。
文書情報の加工共有文書を有効に利用するには、例えば紙の文書のように切抜きをスクラップブックに粘り付けたりコメントを上書きするといった、自然で使い勝手の良い情報の加工が必要である（図1：上書き）。

同じView／異なるViewでの草有例えば複数ページの文書を共有する場合、分散プレゼンテーションなどが目的であれば各ユーザが同じページ、つまり同じViewを見る必要があり、文昏の共同執筆などが目的であれげユーザ毎に別々のページ、つまり異なるViewを見て編集できる必要がある（図2）。どの文書についてもこれら2種類の共有形態を実現できるようにする。

上記の文書共有を実現するために、次の、2つのアプローチをとった。
UIの分離アクティブ文書を共有するl；は、ファイル共有などの静的な共有ではなく、CSCWにおける分散アプリケーション的な枠組が必要である。そこで、UI分離を特徴とするオブジェクトの分散共有方式として筆者らが提案しているShapedObjectModelを用いてアクティブ文書の共有を実現する。
複合文書アーキテクチャ様々なメディアを含む文書を実現するためには、メディアそれぞれを文書の構成要素（コンポーネント）とし、その複合体を文書と捉え皐OLE2やOpenDocに代表される．複合文書アーキテクチャが通している。そこで、Shaped Object Modelを複合文書へ拡張し、分散共有された複合文書を実現する。切り貼りや上書きなどの情報の加工は、それらをオブジェクトとして動的に文書に埋め込むことで実現可能である。また丁同じView／異学るViewでの共有を実現するためにShapedObjectModelを拡張する。

−96−

3 ShapedObjectMode1
3．1UI分離によるアクティブな情報共有

ShapedObjectModelの基本的なアイデアはオブジェクトのUIと本処理の分離である。UI部分をShapeと呼び、描画′／イベント処理を行う。本処理部分をBodyと呼び、UI以外のそのオブジェクトの本質的な機能の処理を行う（図3）。

図3：ShapedObjectModel

オブジェクトがリモートマシンからアクセスされるとShapeを返送する。リモートマシン上でShapeはそのオブジェクトのUIを具現化し、Bodyと通信路を張る。さらに、＿1−ザの振作に従いBodyヘメッセージを送り、Body側で必要な処理が宥われるとともに、Bodyの変更はリアルタイムにShapeに通知される。また、同じBodyを複数のShapeで共有することで、オブジェクトの分散共有を実現できる。

このように、オブジェクトの本処理であるBodyを共有し、その変更をリアルタイムにShapeに通知することで、アクティブな情報共有を実現する。

3．2 簡単なテキストエディタの実現例
以下の仕様を持つ簡単なテキストエディタをShapedObjectModelを用いて実現する例について説明する（図4）。

図4：簡単なテキストエディタの例．ユーザは、テキスト情報とテキストエディタの大きさを共有する0●テキストエティタのカーソル位置はユーザ敏子持つ（非共有）0．ぁるユーザからの文字入力／削除は、即座に他のユーザの画面にも反映される0．テキストのフォントの種類と大きさは1種類で固定。またCut，Copy，Paste等は考えない。

−97−このテキストエディタを実現するために必要なデータと機能を図5（a）に示す。レイアウトがテキストとエディタの大きさから計算され、それに基づきテキストが描画される。またユーザからのキー入力に従いカーソル位置の変更と描画やテキストの変更が行われ、マウス繰作によりエディタの大きさの変更と設定が行われる。
テざ一夕

機能
レイアウト計算l

図5：テキストエディタの実現
ShapedObjectModelではShapeが描画／イベント処理などのUI処理を行い、甲Odyを複数のShapeで共有することで分散共有アプリケ⊥ションを実現する。 したがって、Shapeでユーザ毎のデータや甲／イベアト処理の機能を、Bodyで共有される≠一夕と機能を持づように機能分割する。
この例では次のようになる。

・Bodyは共有されるデータであるテキストセエディタの大きさのデータを管理する。吏に、レイアウト計算は共有されるデータのみを用いるため、Bodyに配置することができる。

・Sbapeはユーザ毎のデータであるカーソルヂ⊥タの管理と†表示／イベント処理に関する機能を持つ。
これを図5（b）に示す0この図でBody」Shape間を跨る線はBody−Shape間で必要なメ？セージ通信に対応すると考えることができる。

また、Bodyはデータが変更されるとそれを即座に全Shapeに通知することで表示内容の同期を行う。一般にCSCWでは内容同期の方法として、大別してpessimisticおよびoptimisticの2つの方法がある【4】が、Shaped Object Modelでは内容同期の方法は規定せず、アプリケーションの実装に委ねている。

4 複合文書への拡張

4．1複合文書の概要とShapedObjectMqdelへの適用
複合文書は従来のアブーjヶ、−ション中心から文書中一トの利用環境を提供する。具体的には、従来のアプリケーションに相当す去廟由痘を文書の構成要素（？ンポ‡ネシト）としその集合を文書とする。つまり、まずアプリケーシヨ㌢があってそれにより作成された文書があるのではなく、まず文書があってそれに様々なアプリケーション機能を含めることができる枠組である。

複合文書の本質は、コンテナとコンポーネγトの2つの機能要素であろ（図6）。コンテナは埋め込むコンポーネントの表示領域を管理し、コンポーネントはコンテナが与える表示領域に内容を表示しユーザからのイベントを処理する。上のように、コンテナとコンポーネシトは表示領域にかかわる部分についてのみ関連しており、−それ以外は互いにブラックボックス的な関係にある。これが多様なコンポーネントを複合できる理由でもある。

ー■98−図6：複合ドキュメントの基本構造

図7：ShapedObjectModelによる複合文書

そこでShapedObjectModelによる複合文書では、Shapeにおける描画の枠組を前述のコンテナ／コンポーネントの枠組に拡張する（図7）。具体的には次のようになる。

1．コンテナのShapeは、コンポーネントのShapeの描画領域の管理を行う。
2．センポーネントのShapeは、コンテナのShapeが与える表示領域内に描画し、その領域でのユーザからのイベントを処理する。
なおコンテナ／コンポーネントのBody間では、コンテナのBodyがコンポーネントのBodyぺの参照を保持することで、埋め込みの論理的な関係を維持する。

4．2 本アーキテクチャの利点
ShapedObjectModelによる複合文書の利点を以下に挙げる。

共有コンポーネントの実現上書きは埋め込むコンポーネントの表示領域上に上書き情報を重ねて表示するコンテナにより実現できる（図8）。この場合、上書きコンテナ自体を共有することで、共有するユーザが同時に書き込やるいわゆる白板機能を独自に持つと、個人的なメモ書きの実現できるという特徴

図8：複合文書による上書きの実現

従来の複合文書では避め込みとリンクの2種類の複合方法があり、例えばあるコンポ「ネ・γトを別の文書に複合する場合、埋め込みではそのコンポーネンートのコピーが組み込まれ、リモンクでは参照のみが組み込まれる。†従って、前述の上書きの例のようなコンポーネントの共有にはリンクが用いられるが、この方法では元コンポーネントの変更が即座に反映されなかったり、特別な実装が必要である。これはコンポーネントの基本的な枠組として共有を考慮していないからである。

本アーキテクチャでは、ShapedObjectModelにより基本的な枠組として共有を考慮しセいる
ため、埋め込みとリンクの区別は無く、・どのコンポーネントも複数のコンテナで共有することができる。

−■99−

文書の再現性複合文書で新たなメディアを利用したい場合には、そのメディアのコンポーネントを実装することになる。従来の複合文書アーキテクチャでは、そのメディアのコンポーネントが各ユーザのマシンに無いと表示／編集を行えないという文書の再現性の問題があった。これは多様なメディアを含む文書を共有する場合に顕著な問題となってくる。しかし、Shaped Ob−

jectModelによる複合文書では、Shapeをダウンロードするのであらかじめユーザ側に各メディアに応じたSbapeをインストールしておく必要が無い0したがって、新たなメディアが実現されても、それを表示／編集できない事態を避けることができる04．3 ViewContextの導入
第2節で述べたような同じView／異なるViewでの共有は、各コンポーネントの実装に委ねることも可能であるが、本アーキテクチャにおける標準の枠組として積極的に利用するために、Sbapeの表示に必要な情報、つまりコンテキストをShapeから分離することにしたoこれをViewContextと呼ぶ。

図9は、最上位のコンテナのViewContextにべージ番号が存在する例を示しており、上の2ユーザは同じViewContextのShapeを見ることで同じページを、一番下のユーザは他のユーザとは異なるViewContextのShapeを見ることで異なるページを見ている。このように、ViewContextを切替えることで同じView／異なるViewを容易に実現できる0

図9‥ViewContextによる同じView／異なるViewでの共有

vi。WC。nteXtとユーザの対応には、さまざまな方法が考えられる。例えば、MS−Windowsなどの従来システムでは、同じファイルを開いた各ユーザはファイルのコンテンツが同じだけであり、アプリケーションの状態はそれぞれのユーザ毎に異なる。これと同じアナロジーでViewContextを捉えた場合、一つのBodyをアクセスするユーザ毎にViewContextを生成する方法が考えられる0また分散プレゼンテーションなどは、どのユーザも同じViewContextでBodyをアクセスする方法で実現できる。・動こ手の場合、ある文書について分散プレゼンテーション用のSbapeと、各ユーザ毎のViewContex咋おけるShapeを同時にアクセスすることで、説明者の画面を見ながら自分の手元の同じ資料を先読みするといったような利用方法も可能となる。このように、ViewContextとユーザの対応を変化させることで、さまざまな応用を実現できる。
5 関連技術Body−ShapeのUI分離と似た考え方として、MVC［5】のModel−Viewがあり、オブジェクトのある部分権能をBodyに割り振るかShapeに割り振るかという機能分離も同じ視点で捉えることがで

−100−

きる。

しかしShapedObjectModelでは、Shapeをダウンロードし実行することを前提としている点、ViewContextを導入することで表示コンテキストを分離し同じView／異なるViewの動的な切替えを可能としている点が異なる。特に後者については、Model−Viewでも例えばデータを動的にModelとViewのどちらかに配置するような複雑な設計を採ることセさまざまな形態の共有を実現できるが、それはModel−Viewの枠組でなくModel−Viewの実現の一形態となってしまい、統一的に捉えることができない。ここでは、同じView／異なるViewという2つの共有形態を前提に、そのための枠組としてViewContextの導入を提案している。
OLE2やOpenDocなどの既存の複合文書技術は分散オブジェクト技術を用いてコンポーネントの分散化への拡張が行われている。しかしコンポーネントの基本的なアーキテクチャにおいて共有を考慮していないため、第2節で述べたアクティブ文書の共有や、切り貼り／上書き等の情報の加工を実現することは困難と考えられる。

6 まとめ

UI分離を特徴とするShapedObjectModelを用いた分散共有可能な複合文書アーキテクチャについて述べた。このアーキテクチャでは、複合文書の各コンポーネントをShapedObjectModelにより分散共有することで、・様々なメディアを含むアクティブ文書を実現でき、コンポーネントの動的な埋め込みで切り貼りや上書きなどの情報の加工を可能にしている。またViewContextを導入し、同じView／異なるViewでの共有を実現しているoShapedObjectModelによる複合ドキュメントのアイデア検証のためにJava言語［6】を用いたプロトタイプを試作中である【71。Javaを用いた理由は、スクリプト言語よりも複雑なプログラミングが可能であり、クラスダウンロード機能を用いてShapeのダウンロードを実現できること、RMI【8】やHORB［9】などのオブジェクトのリモートメソッド呼び出しの枠組が提供されているのでBody−Shape間の通信を実現しやすいことによる。

謝辞本研究を進めるにあたり、NECC＆C研究所ターミナルシステム研究部の携帯情報端末グループの諸氏に様々なコメントを頂いたことを感謝改します。
参考文献【1】MicrosoftCorp・， InsideOLE2 ，アスキー出版，1994【2］AppleC？mputerInc・， OpenDocProgrammer sGuide ，ht妙〝opendoc・aPPle・COm，1996【3］横由， ShapedObjectによる情報の分散共有 ，情報処理学会マルチメディア通信と分散処理研究会，95−
DPS−73，pp．69−74，1995【41 DavidA．NichoIset・al・， High−Latency，I・OW−BandwidthWindowingintheJupiterCo11aboration
System，，，Proc．qfthACMSymposiumon Uber九ie巾ceandSqPware2tchnolqgy（UIST 95），
llト120，1995【5】GlennE．Krasneret・al・，

Acookbookforusingthemodel−View−COntrO11eruserinterfaceparadigm

inSmalltalk−80，，，JournalqfOりecモーOrientedProgrammin9，1（3）：26−49，1988【6］SunMicrosystems，

TheJaNaLanguage：AWhitePaper，SunMicorsysiemsTmiteP叩er，1994【71羽根他， 分散共有アクティブドキュメントの実現方式 ，情報処理学会第53回全国大会，3J−6，1996［81Wbllrath，Ann，et．al・， ADistributedObjectModelfortheJava（TM）system ，Proc・qfthetLSENTX
2ndCoTtftrenceonOりec士−Oriented2bchnolo9iesandSystems，pP・219−231，June1996【9］平野， HORB：TheMagicCarpetforNetworkComputing ，加如〝rin9・etl・90・jp／openlabルorb，1696−101−