JP3673540B2 - Information processing method, apparatus and system - Google Patents
Information processing method, apparatus and system Download PDFInfo
- Publication number
- JP3673540B2 JP3673540B2 JP29699494A JP29699494A JP3673540B2 JP 3673540 B2 JP3673540 B2 JP 3673540B2 JP 29699494 A JP29699494 A JP 29699494A JP 29699494 A JP29699494 A JP 29699494A JP 3673540 B2 JP3673540 B2 JP 3673540B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- tool
- user
- information processing
- path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、1台または複数のコンピュータ上で、複数のアプリケーションを連係させて動作させることが可能な情報処理方法及び装置及びシステムに関するものである。
【0002】
【従来の技術】
近年、パーソナル・コンピュータやワークステーション上で、ウィンドウ・システムを利用したGUI(グラフィカル・ユーザ・インタフェース)の普及がめざましい。それに伴い、ユーザに提供されるアプリケーションも、かつてのGUI以前のプログラム環境におけるアプリケーションにくらべ、より複雑かつ多様な機能をより洗練された形で提供することを要求される様になってきた。
【0003】
このような要求に対し単独のアプリケーションの拡張を繰り返すことにより対応するのではなく、アプリケーション間の協調動作メカニズムの提供により比較的単純なアプリケーションを複数組み合わせることを可能にして、さまざまな状況に対応しようという試みが広くおこなわれるようになってきている。このようなアプリケーション間の協調動作のための基本メカニズムとして、一般的にプロセス間通信によるデータ交換機構が使用されている。
【0004】
データ交換機構の代表的なものとしては、Unixオペレーティング・システム(商標)が提供するソケット(商標)やMachオペレーティング・システム(商標)が提供するポート(商標)などが基本メカニズムとして利用されている。また、これらの基本メカニズム上に適当なプログラムを付加することにより、よりアプリケーション開発者にとって利用しやすいインタフェースを提供しているシステムもある。このようなシステムの代表例としては、Sunオペレーティング・システム(商標)のSun RPC(商標)やSolarisオペレーティング・システム(商標)のToolTalk(商標)などが存在する。
【0005】
上記のようなユーザ環境の高度化といえる現象と並行するような形で、ユーザ間の協調作業サポートをおこなうグループウェア・システムが注目を集めている。
【0006】
このグループウェア・システムは、複数の人間による共同作業を支援することを目的としたコンピュータ・ソフトウェアであり、特に近年ネットワークを介した共同作業の支援に大きなウエイトを置いている。一般的なグループウェア・システムはビデオ映像を利用したテレビ会議機能や共同執筆エディタなどを提供し、ネットワークを介した遠隔地との共同作業や会議を可能にしている。このようなグループウェア実現のアプローチとして、前述のユーザ環境を複数のコンピュータを包括する形で利用されるような環境に拡張することが考えられる。そのためには、アプリケーション間の協調動作のための基本メカニズムをグループウェアで要求される協調動作に対応できるように拡張する必要が生じる。
【0007】
【発明が解決しようとする課題】
アプリケーション間通信のメカニズムを、ユーザ間の協調作業環境にまで拡張するためには、次のような制約を解消ないし緩和する必要がある。即ち、各ユーザの作業環境であるユーザ環境は、そこで動作するアプリケーション群によって構成され特徴づけられる。したがって、ユーザ間の協調作業環境の実現はユーザ環境間の協調、ひいてはユーザ環境を構成するアプリケーション群の協調によって実現される。ここで、あるアプリケーションが他のユーザ環境のアプリケーション群との協調動作を実現するためには、そのアプリケーションは他のユーザ環境がどのようなアプリケーション群から構成され、それぞれがどのような役割を担っているのかという情報を、知っていなければならない。
【0008】
例えば、ユーザ環境Aで動作するアプリケーションaがユーザ環境Bで動作しているアプリケーションbと通信をおこなうような状況を想定すると、アプリケーションaは通信相手がアプリケーションbであるという情報を知っていなければならない。
【0009】
しかしながらグループウェア環境では、通信相手がアプリケーションbであることは、この時点でたまたまそうなっただけであり、別の時点ではアプリケーションbがユーザ環境B'で動作しているかもしれないし、また、別の時点においてはユーザ環境Cで動作するアプリケーションcと通信をおこなう必要があるかもしれない。
【0010】
通信相手の管理の一般的手法としては、ユーザないしグループ環境上で動作するプロセスに一意な名前をつけることがおこなわれる。しかしながら、名前の重複を回避する責任はアプリケーション開発者の責任となっているため、上記のように動的にアプリケーションやユーザの構成が頻繁に変化するような環境に対応することが困難であるという問題が発生している。
【0011】
本発明は上記の問題点に鑑みてなされたものであり、1台又は複数のコンピュータで構成されるシステムにおいて、動的に構成要素が変動しうる複雑な環境に対応可能な、柔軟なアプリケーション間協調システムを提供できる情報処理方法及び装置及びシステムを提供することを目的とする。
【0012】
また、本発明の他の目的は、1台又は複数のコンピュータで構成されるシステムにおいて、動的に構成要素が変動しうる複雑な環境におけるアプリケーション管理を、高い抽象度で扱うことを可能とする情報処理方法及び装置及びシステムを提供することを目的とする。
【0013】
また、本発明の他の目的は、1台又は複数のコンピュータで構成されるシステムにおいて、動的に構成要素が変動しうる複雑な環境を特に意識することなく、その環境で動作するアプリケーションを構築することを可能とする情報処理方法及び装置及びシステムを提供することを目的とする。
【0014】
【課題を解決するための手段】
上記の目的を達成するための本発明の情報処理システムは以下の構成を備えている。即ち、
1台または複数のコンピュータ間でアプリケーションを連携させて動作させる情報処理システムであって、
当該システムの各コンピュータにて所有されるアプリケーションを所定の階層構造に割り当てたパスをアプリケーションの識別情報として用いて、第1のアプリケーションから連携すべき第2のアプリケーションを指定する指定手段と、
前記指定手段の用いたパスにおいて、階層の要素が要素名によらずに当該要素と前記第1のアプリケーションにおける当該階層の要素との関係により指定された表現を、当該第1のアプリケーションにおける当該階層の要素名に基づいて実際の要素名に展開する展開手段と、
前記展開手段による展開後のパスにより前記第2のアプリケーションを特定する特定手段とを備える。
【0015】
また、好ましくは、前記指定手段は、連携すべき前記第2のアプリケーションのアプリケーション名を含んだ前記所定の階層構造のパスにより当該第2のアプリケーションの指定を行う。アプリケーション名に階層構造のパスが付加されるので、その環境で動作すべきアプリケーションを容易に指定できるからである。
【0016】
また、好ましくは、前記指定手段は、前記階層の要素が要素名によらずに指定された表現を用いて複数の前記第2のアプリケーションを一括して指定する。複数のアプリケーションを抽象的に指定することが可能となるからである。
【0017】
【作用】
上記の構成によれば、1台または複数のコンピュータ間でアプリケーションを連携させて動作させる情報処理システムにおいて、当該システムの各コンピュータにて所有されるアプリケーションを所定の階層構造に割り当てたパスをアプリケーションの識別情報として用いて、第1のアプリケーションから連携すべき第2のアプリケーションを指定し、この指定で用いたパスにおいて、階層の要素が要素名によらずに、当該要素と第1のアプリケーションにおける当該階層の要素との関係により指定された表現を、当該第1のアプリケーションにおける当該階層の要素名に基づいて実際の要素名に展開し、展開後のパスにより連携すべきアプリケーションの特定が行われる。
【0018】
【実施例】
以下に添付の図面を参照して本発明の好適な実施例について説明する。
【0019】
<実施例1>
図1は、実施例1による協調型グループウェア・システムの概要を説明する図図である。このグループウェア・システムは、複数のユーザが各ユーザ環境で複数のアプリケーションを駆使しつつ、これらのユーザおよびアプリケーション間でさなざまなデータのやり取りをおこなわせることにより、グループ共同作業環境を提供するものである。
【0020】
図1において、パーソナル・コンピュータ101,102,103がイーサ・ケーブル104で結合され、1つのLANを形成している。実際にはさらに数台のワークステーションが結合される。また、本実施例はWANを中心としたコンピュータ・ネットワークにも適用可能なものである。さらにイーサ・ケーブルより高速なFDDIなどから構成されるLANにおいても適用可能である。
【0021】
図1では、各パーソナル・コンピュータ(以降PCとよぶ)は1人づつのユーザ105,106,107によって使用されている。各ユーザがどのPCを使用するかは固定されておらず、ユーザ105がPC102を利用する場合も考えられる。また、ユーザ105がPC101と102の両方を同時に使用するような場合も想定することができる。
【0022】
各PC上では、このグループウェア・システムを管理しサービスの提供をおこなう基本ソフトウェアDesktopMgr108、109と、そのサービスを利用するアプリケーション(以降ツールプロセスないしツールとよぶ)群が動作している。ここで、DesktopMgr108,109は、各ユーザごとに1つ存在する基本ソフトウェアであり、ユーザ環境で動作しているツール群の起動,停止,通信などの制御のサポートを含めたユーザ環境の管理と、ユーザ間ないしネッワーク全体での情報交換の管理をおこなう。
【0023】
DesktopMgr自身は、展開モジュール110、ツール管理モジュール111及びユーザ情報管理モジュール112の3種類のモジュールから構成される。
【0024】
展開モジュール110は、ユーザによっておこなわれたツール指定をDesktopMgrが解釈可能な形に展開する。この展開は、従来正規表現の展開などでおこなわれているように、ある特殊表現をあらわす文字列を、実際のツールの名前などで置換することによって実現される。
【0025】
ツール管理モジュール111は、ユーザ環境で動作しているツールが動作中か否かなどのツール群に関する情報を管理する。ツール情報はこのモジュールにより、ツールの名前をキーとするハッシュ・テーブルを使用して管理される。また、ツール管理モジュール111では、ツール情報に基づきツールの起動をおこなう。ツールの起動自体は、このシステムが動作しているオペレーティングシステムの機構を利用する。
【0026】
ユーザ情報管理モジュール112はユーザ情報の管理をおこなう。ユーザ情報はユーザ情報管理モジュール112により、ユーザの名前をキーとするハッシュ・テーブルを使用して管理される。各ユーザ環境のDesktopMgrの通信ポートもユーザ情報に含まれており、他のユーザ環境を管理しているDesktopMgrとの通信をおこなうためなどに使用される。
【0027】
各ユーザ環境で動作するツール群は、上述のDesktopMgr108,109の提供するサービスを利用して他のユーザ環境に存在するツールとの協調動作をおこなうことが可能である。
【0028】
図2は、このようにして構成されているグループウェア・システムの利用形態の一例を示す図である。ここでは、2つのPCで2人のユーザが共同作業をおこなっており、ディスプレイ201,202上にいくつかのツールのインタフェースが表示されている。
【0029】
図2では、データベース・アクセスツール203,204、テキストエディタ・ツール205,206、ドロー・ツール207,208が各ユーザ環境で使用されている。ユーザ間で形成されている上記のツールのペアは、各ユーザに同じ情報を表示している。たとえば、テキストエディタ・ツール205と206は同じ文書を表示している。ただし、テキストエディタ・ツール205と206はまったく同じツールとは限らないし、また同じ文章を表示していたとしても表示の方式は異なるかもしれない。このグループウェア・システムでは、同じ情報を同等に処理する能力があるツールならばユーザの好みに合わせて使用することが可能である。
【0030】
次に、図2に示すようなグループ共同作業環境におけるユーザおよびツール群の管理方式について図3を用いて説明する。
【0031】
図3において、3人のユーザA,B,Cが存在し、それぞれユーザ環境301,302,303上で作業をおこなっていると仮定する。さらに、ユーザA,B,Cの3人が共同しておこなっている作業304と、またそれと同時に進行しているユーザAとBの共同作業305が存在しているものとする。共同作業304,305はユーザ環境にまたがるグループ環境とみなすことも可能である。
【0032】
本実施例では、この共同作業(ないしグループ環境)をセッションとよび、図3における2つの共同作業をそれぞれセッション304,セッション305とよぶことにする。図3から明らかな様に、1人のユーザが同時に複数のセッションに参加することも可能である(ユーザA及びユーザB)。
【0033】
また、各セッション内の実際の作業にはセッションによって指定されたツール群が利用される。図中の306,307は、セッション304におけるユーザ環境301で利用されているツールを表現している。
【0034】
図4は、あるセッションに参加している1ユーザのユーザ環境の様子をあらわした図である。図4では、ユーザ環境401が1つのセッション402に属している。このセッション401では、3つのツール403,404,405が共同作業に使用されている。ただし、そのうちツール403とツール404はいくつかの小さなツール(サブツールとよぶ)の集まりで形成されている。サブツール自身も単独のツールとして機能することもできる能力を持っている。図4においては、ツール403はツール406とツール407の2つのサブツールで構成されている。また、ツール404は、ツール408,ツール409,ツール410の3つのサブツールで構成されている。さらにサブツールであるツール408自身もサブツール411で構成されている。
【0035】
本実施例では複数のサブツールの集まりとして構成されているツールのことを統合ツールとよぶ。また、サブツールに分割できない(統合ツール以外の)ツールのことを要素ツールとよぶ。以降ツールとよぶときは、統合ツールと要素ツールを総括して指示するときや特に区別する必要がないときとする。なお、実際には統合ツールは管理上の仮想的な存在に過ぎず、その機能は要素ツールが協力することにより実現される。
【0036】
図4において、ツール407,411,409,410,405は要素ツールであり、ツール403,404,406,408は統合ツールであることをあらわしている。図4で示した、ユーザ環境におけるセッション,ユーザ,ツール群の関連をまとめると図5に示す階層構造となる。
【0037】
図5は、図4に示したユーザ環境におけるセッション/ユーザ/ツール群の関連を表す図である。
【0038】
セッション501を階層構造の根(ルート)として、その下にセッション501に参加しているユーザ502,503,504が存在し、さらに各ユーザの下には505,506,507のようなツールが存在する。これらのツールの内、そのツール506のような統合ツールについては、508や509のようなサブ・ツールが付加され、最終的に要素ツールに行き着くまで階層構造が続くことになる。本実施例では、セッションが入れ子になるような場合を禁止しているが、ここで述べる事項はセッションの入れ子を許すシステムにおいても適用可能である。
【0039】
図5と図4の関連を説明すると、セッション501は、図4のセッション402に相当する。また、ユーザA502はユーザ環境401に対応する。ツールA505は、ツールA403に、ツールB506はツールB404に、ツールC507はツールC406に夫々対応している。
【0040】
本実施例では、この階層構造を基に名前空間を形成し、セッションの管理下にあるすべてのツールを指示することを可能にする。すなわち、図5の階層構造をセッションから辿った名前の道筋をツール・パスとよび、これを各ツールを指定する手段として使用する。
【0041】
本実施例におけるツール・パスは、以下に示すようにセッション名,ユーザ名,ツール名の各階層の名前を'&'でつなげた文字列となる。即ち、
&セッション名&ユーザ名&ツール名&サブ・ツール名...
となる。たとえば、図5におけるツール509をあらわすツール・パスは、
&セッション&ユーザA&ツールB&サブ・ツール#2
となる。ここで、セッション名,ユーザ名,ツール名などのツール・パスの構成要素となる各階層の名前をノード名とよぶ。ツール・パスをツールの識別子として使用するためにノード名は各階層において一意でなければならない。
【0042】
また、ツール・パスでは、[と]の中に複数のノード名を”,”で区切って列挙することにより、ノード名を複数指定することも可能である。たとえば、「&セッション&ユーザA&ツールB&サブ・ツール#2」と「&セッション&ユーザB&ツールB&サブ・ツール#2」をまとめて、
&セッション&[ユーザA, ユーザB]&ツールB&サブ・ツール#2
と表記することが可能である。
【0043】
更に、ノード名指定において何種類かの特殊表現を使用することが可能である。特殊表現はノード名の抽象的な指示を可能にするものである。以下に、特殊表現について説明をしておく。
【0044】
まず、セッション名の階層では、
・%current
・%all
・%none
・%ignore
が指定可能である。夫々の特殊表現について詳細を説明すると、
%current … 「%current」を指定すると、その指定がおこなわれたツールがその時点で属しているセッション名と解釈される.
%all … 「%all」を指定すると、その時点で稼働中の全てのセッションの名前と解釈される.
%none … 「%none」を指定すると、特定のセッションに属していないことをあらわす。各ユーザ環境で動作しているプロセスには、セッションとは無関係のものも存在しうる.
%ignore … 「%ignore」は、セッションの有無やその名前が無視できることを表現する.意味的には[%all, %none]を指定することと等価である。
【0045】
次に、ユーザ名の階層では、
・%self
・%all
・%allbutself
が指定できる。夫々の特殊表現の詳細を説明すると、
%self … 「%self」を指定すると、その指定がおこなわれたツールが属しているユーザ環境を利用しているユーザの名前と解釈される.
%all … 「%all」を指定すると、その直前で指定されたセッションに属している全ユーザと解釈される.
%allbutself … 「%allbutself」を指定すると、その直前で指定されたセッションに属しているユーザから、%selfをのぞいた全ユーザと解釈される。したがって、[%self, %allbutself]は%allと同じ意味となる。
【0046】
最後に、ツール名の階層では、
・%self
・%selfonly
・%super
・%parent
・%all
が指定可能となる。夫々の特殊表現の詳細を説明すると、
%self … 「%self」を指定すると、その指定がおこなわれたツール自身のツール名が補われる。そのツールが実は、あるツールのサブ・ツールになっていた場合は、そのツールのユーザ名以降の階層構造がそのまま追加される.
%selfonly … 「%selfonly」を指定すると、その指定がおこなわれたツール自身のツール名が補われる。そのツールがあるツールのサブ・ツールになっていた場合でもツールの階層関係は無視される.
%super … 「%super」を指定すると、その指定がおこなわれたツール自身の1つ上の階層までのツール階層が補われる。このため&%super&%selfonlyと指定することは&%selfと指定したことと同じことになる.
%parent … 「%parent」を指定すると、その直前までのツールパスで指定されたツール階層から1つ上の階層に遡ることになる。%superが直前までで指定されたパスをまったく無視するのに対し、%parentは直前までで指定されたパスに依存した意味をもつ.
%all … 「%all」を指定すると、その直前までのツールパスで指定されたツール階層に属する全てのツールを指定することになる。
【0047】
以上のような特殊表現を組み合わせると、例えば、以下のようなツールパスを表現することが可能となる。
【0048】
例1. &%current&%all&%self
これは、このツールパスの指定をおこなったツールが、その時点で属しているセッションの全ユーザ環境における、指定をおこなったツール自身のコピーをあらわす。ここで"ツールのコピー"とは、ユーザ名をのぞいて全てが同じツール・パスをもつツールのことである。まったく同じ種類のツールを使用していることが多いので、"ツールのコピー"とよぶ。
【0049】
例2. &%current&%all&%super&%all
このツールパスの指定をおこなったツールが、その時点で属しているセッションの全ユーザ環境における、指定をおこなったツールと同一階層に存在するすべてのツールをあらわす。
【0050】
例3. &%none&ユーザC&%super&ツールX
これは、ユーザCのユーザ環境において、指定をおこなったツールと同じ階層に存在するツールXというツール名のツールをあらわす。
【0051】
以上のようにして導入されたツール・パスを本実施例においてはツールの制御に利用している。図6,7はこの様子をあらわした図である。
【0052】
図6は、セッションの起動にともなうツールの起動の様子をあらわした図である。また、そのときのDesktopMgrの振る舞いをあらわしたフローチャートが図8である。
【0053】
2人のユーザA601とユーザB602がそれぞれユーザ環境603,604上で共同作業を開始しようとしているものとする。共同作業の開始は、それを表現するセッションの起動によっておこなわれる。ここでは、ユーザA601がセッションの起動をおこなうものとする。
【0054】
ユーザA601のセッション起動要求605は、PC603上のユーザ環境を管理しているDesktopMgr606に通知される。セッション起動要求605をうけとったDesktopMgr606は(ステップS801)、その要求がユーザから要求されたものか、それとも他のDesktopMgrから転送されてきたものかをチェックする(ステップS802)。この場合はユーザから要求されたものなので、セッション起動要求605を他のDesktopMgrにも転送する(ステップS803)。他のユーザ環境のDesktopMgrと通信を行うために必要な情報は、DesktopMgr606内のユーザ情報管理モジュール612で管理されている。
【0055】
その後DesktopMgr606は、ツール管理モジュール613で管理されているツール情報から、セッション内で使用されるツールA609がすでに起動されているか調べる(ステップS804)。まだ起動されていなかったらツールA609を起動する(ステップS805)。
【0056】
一方、ユーザB602のユーザ環境を管理しているDesktopManager607では、DesktopMgr606から転送されたセッション起動要求608をうけとると、当該起動要求はユーザB602から直接発行されたものではないので、ステップS802からステップS804へ進み、直ちにセッション内で使用されるツールA610を起動する(ステップS804、ステップS805)。
【0057】
ここで、ツールA609の起動は以下のコマンドで実行される。即ち、
launchTool "ツールA" "&セッション&ユーザA&ツールA"
となる。これは、ツールAを起動し、その起動されたプロセスに「&セッション&ユーザA&ツールA」と名前づけせよ、というコマンドである。このようにして起動されたツールA609のプロセスは、以降「&セッション&ユーザA&ツールA」というツール・パスで指定することが可能になる。
【0058】
また、DesktopManager607もセッション起動要求608を受け取ると、
launchTool "ツールA" "&セッション&ユーザB&ツールA"
なるコマンドを実行してツールA610を起動する。起動されたツールA610のプロセスは、以降、"&セッション&ユーザB&ツールA"というツール・パスで指定することが可能になる。
【0059】
図7は、本実施例におけるツール・パスを利用したメッセージ配送の機構を説明する図である。同図は、図6で起動されたセッションでの共同作業の途中の状態をあらわしている。また、図9は、この状況におけるDesktopMgrの振る舞いをフローチャートで表現したものである。図7において、ユーザA601が以下のメッセージ転送コマンド705をDesktopMgr606に発行したと仮定する。
【0060】
メッセージ転送コマンドは、
forwardMessage "&セッション&%all&ツールA" "do-something"
で表わされる。このコマンドは、「セッションに属する全ユーザのツールAに"do-something"というメッセージを転送せよ」、という意味である。
【0061】
DesktopMgr606がこのメッセージ転送コマンド705を受け取ると(ステップS901)、その第1引数であるツール・パス、「&セッション&%all&ツールA」内の特殊表現「%all」を展開モジュール613で具体的なユーザ名に展開する(ステップS902)。この例における展開結果は、
"&セッション&ユーザA&ツールA"
"&セッション&ユーザB&ツールA"
となる。
【0062】
DesktopMgr606は、上記の展開をおこなうと、その結果に基づきメッセージ転送コマンドを再構成する(ステップS903)。ここで再構成されるコマンドは、
forwardMessage "&セッション&ユーザA&ツールA" "do-something"
forwardMessage "&セッション&ユーザB&ツールA" "do-something"
の2つである。
【0063】
このように1つのコマンドがツール・パスの展開により複数のコマンドに変換されうる。本実施例におけるDesktopMgrではこれらのコマンドを順番に処理していくが、同時に処理することも可能である。
【0064】
DesktopMgr606は、再構成されたコマンドを1つ取り出し(ステップS904)、そのコマンドで指定されているツール・パスのセッション名とユーザ名を抜き出して、そのセッションとユーザの組み合わせがDesktopMgr606自身の管理下にあるか確認する(ステップS905)。
【0065】
セッションとユーザの組み合わせがDesktopMgr606自身の管理下に無い場合は、ユーザ情報管理モジュール612で管理されているユーザ情報から、ツール・パスで指定されたユーザの環境を管理しているDesktopMgrとの通信ポートを取り出し(ステップS906)、そのDesktopMgrにコマンドを転送する(ステップS907)。
【0066】
一方、指定されたツールがDesktopMgr606自身の管理下に存在するならば、ツール・パスから指定されたツール・プロセスを特定し(ステップS908)、メッセージを配送する(ステップS909)。
【0067】
以上の処理を、コマンドがなくなるまで繰り返す(ステップS910)。なお、ステップS906、ステップS907の処理によってコマンドを転送される側のDesktopMgr(本例ではDesktopMgr607)においても、転送元と同じく上記の処理をおこなう。
【0068】
なお、図9に示したアルゴリズムでは、最初に要求をうけとったDesktopMgrがツール・パス内の特殊表現をすべて展開するが、別の展開手順としてステップS902における展開をセッション名とユーザ名のみにとどめ、残りのツール名の展開を各ユーザ環境を管理しているDesktopMgrに実行させるというアルゴリズムによっても本実施例を実現することが可能である。
【0069】
図7の例では、1つ目のコマンドのツール・パスがユーザAのユーザ環境に関連することから、1つ目のコマンドはDesktopMgr606自身によって処理される。2つ目のコマンドは、ツール・パスがユーザBのユーザ環境に関連することから、当該コマンドはDesktopMgr607に転送され、DesktopMgr607によって処理される。
【0070】
DesktopMgr606はメッセージ転送コマンド608を送ると、「&セッション&ユーザA&ツールA」で特定されるプロセス609(即ちツールA609)にメッセージ「do-something」を転送する。また、DesktopMgr607においても、メッセージ転送コマンド708が受け取られると、「&セッション&ユーザB&ツールA」で特定されるプロセス610(即ちツールA610)にメッセージ「do-something」が転送される。
【0071】
図7では、たまたまツールAがもう一つ(ツールA711)起動されているが、図6で述べた起動コマンドlaunchToolにより、ツールA711にはツールA610とは異なるツール・パスが指定されているため、ツールA711に当該メッセージが転送されることはない。
【0072】
以上をまとめると、本実施例はグループウェア・システムにおけるアプリケーション間通信機構に本発明を適用した例を示すものである。本実施例において、セッション,ユーザ環境,ツール,サブ・ツールの階層構造を利用したツール・パスと、ツール・パス上における特殊表現を導入した。また、ツール・パスを利用してツールの制御をおこなうDesktopMgrを導入した。
【0073】
また、本実施例では、グループウェア・システムにおけるセッションの構造に則した階層構造の利用により、ツール指示の一意性が管理しやすくなる。また、特殊表現を導入することにより各ツールが通信相手を指定する場合により抽象的な指定が可能となる。このため、グループウェア・システムにおける頻繁なユーザの参加・退席などによる動的な作業環境の変化にも対応することが可能となる。
なお、上記実施例1では、階層構造を管理するためのデータ構造を特に設けず、ツールパスを表す文字列で図5に示すような階層構造を実質的に管理している。しかしながら、図5のような階層構造を、内部的に別のデータ構造で表現して管理することも可能であることはいうまでもない。
【0074】
<実施例2>
上述の実施例1においてグループウェア・システムにおける本発明の適用例を説明したが、本発明はデータベースを中心とした非同期型データ共有システムに対しても適用可能である。ここではデータベースを利用したマルチメディア・データ検索システムへの実施例について説明する。
【0075】
図10は実施例2におけるマルチメディア・データ検索システムの概要を表す図である。同図によれば、データベース1001が存在し、そこでは画像・音声などのマルチメディア・データ1002〜1006が管理されている。このデータベース1001にはクライアントとしてPC1007が結合されており、ユーザ1008によって利用されている。なお、この図では1台のPCのみがデータベース1001のクライアントとなっているが、実際には複数のPCやワークステーションをクライアントとすることが可能である。また、データベース1001自身がネットワーク1009上に分散しているような構成を取ることもありうる。
【0076】
PC1007上では、3種類のデータ・ビューアが起動されており、それぞれ対応するマルチメディア・データの参照に使用される。画像ビューア1010はデータベース1001中の画像データ1002と1005の参照に使用され、動画ビューア1011は動画データ1004と1006、文書ビューア1012は文書データ1003の参照に使用される。これらの対応関係は、図10においては、ビューアとデータにつけられた背景模様(網掛け)の対応関係で示されている。
【0077】
図11は、本実施例をユーザの視点からはどのように見えるかを示したものである。図11では、ユーザ1101がディスプレイ1102上で作業をおこなっている。このディスプレイ1102は、図10で示したデータベースのクライアントとなっているPC1007の表示装置である。
【0078】
ディスプレイ1102上には4つのウィンドウ1103,1104,1105,1106が表示されており、それぞれ対応したマルチメディア・データを表示している。ウィンドウ1103は、データベース内を検索するためのアプリケーション(データベース検索アプリ)のユーザインタフェースを提供する。また、ウィンドウ1104,1105,1106は夫々、静止画像,動画,文書などのビューアのユーザ・インタフェースを提供する。
【0079】
データベース検索アプリはウィンドウ1103上に、データベースで管理されているマルチメディア・データのカタログ1107を表示する。このカタログは、データベース検索アプリから参照することが可能なデータをあらわすアイコンと、そのデータの名前のリストで構成される。カタログには若干の付加情報として、データサイズや作成された日付などの情報も付加される。ユーザがカタログから適当なデータのアイコンを選択すると、そのデータに適したビューアにデータを表示させる(1108,1109,1110)。
【0080】
このようなマルチメディア・データ検索システムを、さまざまなクライアントからアクセス可能な分散システムとして実現するに当たり、各クライアントがまったく同じ環境(すなわちデータ・ビューア)をもっていると仮定することはできない。
【0081】
図12においては、2人のユーザ1201と1202がそれぞれPC1203,1204を使用してデータベース1205にアクセスしている。2人ともデータベース検索アプリ1206,1207を使用し、同じデータのカタログを参照しているが、各データを参照するためのデータ・ビューアには異なるものを使用している。図12においては、ユーザ1201の環境では3つのデータ・ビューア1208,1209,1210でカタログ上のデータが参照されているが、ユーザ1202の環境では2つのデータ・ビューア1211,1212でデータ参照が可能である。
【0082】
次に、図12で示したような状況に対応するための本発明の適用例を以下に説明する。
【0083】
まず、各ユーザ環境におけるデータビューアを実施例1と同様にカタログ名,ユーザ名,ビューア名の階層構造に基づいて名前づけをおこなう。その結果導きだされるパス表現をビューア・パスとよび以下の様に表記する。即ち、
&カタログ名&ユーザ名&データビューア名&サブ・データビューア名...
となる。このように、本実施例2においても、実施例1で述べたようなデータ・ビューアの統合ツール化に対応すべく、データ・ビューア名の階層化をおこなっている。
【0084】
次にパス表記における特殊表現を導入する。本実施例2ではカタログ名とユーザ名の特殊表現が導入される。以下に、各階層毎の特殊表現について詳細に説明する。
【0085】
まず、カタログ名の階層では:
・%all
が指定可能である。「%all」を指定すると、そのデータベース内に存在する全てのカタログの名前と解釈される。
【0086】
また、ユーザ名の階層で指定可能なものは:
・%ignore
・%group
である。各特殊表現を以下に説明すると、
%ignore … 「%ignore」を指定するとユーザ名を無視する.
%group … 「%group」は%group(グループ名)という使い方をする。この場合カッコ内の名前をグループの名前として解釈する。ここでグループはユーザ名のリストとして定義されている。
【0087】
本実施例では、このビューア・パスをデータベース1205中の各データに対するデータ・ビューア指定情報として使用する。ビューア・パスはデータベース1205の各データに付加され、データベース1205で管理される。一般的なデータ用のビューアは、
&%all&%ignore&データビューア名
と指定されている。
【0088】
ここで、ビューア・パスと実際のビューアとの対応関係を管理するサーバとして、DesktopMgrを導入する。DesktopMgrはユーザ環境ごとに1つずつ存在する。これは実施例1におけるDesktopMgrと同名であり、役割も良く似ているため、この2種類のDesktopMgrを統合することも可能である。
【0089】
図13は、ビューア・パスとDesktopMgrを用いた、本実施例2におけるデータ参照処理の様子を示した図である。また、図14は、この処理の中心となるDesktopMgrの動作を示すフローチャートである。
【0090】
図13では、ユーザ1301がデータベース検索アプリ1302において、アイコン1303を指定してデータの参照を要求したという状況での処理をあらわしている。ユーザ1301によるディスプレイ上での操作は、イベント1304としてデータベース検索アプリの本体1305に通知される。データベース検索アプリ1305はイベント1304を解釈し、アイコン1303が指定されたことを検知すると、DesktopMgr1308にアイコン1303の本体であるデータ1307の表示要求を適切なビューアに配送する要求を発行する。
【0091】
DesktopMgr1308は、この要求を受け取ると(ステップS1401)、データ1307に付加されているビューア・パスをデータベース1306から取り出す(ステップS1402)。DesktopMgr1308は、次に、ビューア・パスに対応するデータ・ビューアが既に起動されているかを調べ(ステップS1403)、起動されていないか使用不能状態ならば当該データ・ビューアを起動する(ステップS1404)。図13においては、データ・ビューア1309が起動される。一方、データ・ビューア1309が既に起動されていて、データを表示できる状態ならば、データ1307の表示要求1310をデータ・ビューア1309に配送する(ステップS1405)。データ・ビューア1309が要求された表示要求を実行することにより、ユーザの要求通りデータの参照が可能になる。
【0092】
本実施例2では、以上のように、クライアントごとのカスタマイズを許すマルチメディア・データ検索システムにおける本発明の実施例である。本実施例において、カタログ,ユーザ環境,ビューア,サブ・ビューアの階層構造を利用したビューア・パスと、ビューア・パス上における特殊表現を導入した。また、ビューア・パスを利用してビューアの制御をおこなうDesktopMgrを導入した。
【0093】
以上のように、本実施例2によれば、ビューア・パス上の階層におけるさまざまなレベルで、ユーザ環境ごとに適したデータ・ビューアの指定をおこなうことが可能となる。たとえばビューア・パスのユーザ名を制限することなどにより、特定のユーザのみ参照可能にしたり、部分的な参照を可能にするなどの制御をおこなうことも可能である。また、ユーザ環境におけるビューアの管理をDesktopMgrが肩代わりするので、データベース検索アプリや、さまざまなデータ・ビューアの開発や導入のコストを軽減することが可能となる。
【0094】
尚、本発明は、複数の機器から構成されるシステムに適用しても1つの機器からなる装置に適用しても良い。また、本発明はシステム或いは装置に本発明により規定される処理を実行させるプログラムを供給することによって達成される場合にも適用できることはいうまでもない。
【0095】
【発明の効果】
以上説明したように本発明によれば、複数のコンピュータで構成されるシステムにおいて、動的に構成要素が変動しうる複雑な環境に対応可能な、柔軟なアプリケーション間協調システムを提供できる。
【0096】
また、本発明によれば、動的に構成要素が変動しうる複雑な環境におけるアプリケーション管理を、高い抽象度で扱うことが可能となる、
また、本発明によれば、動的に構成要素が変動しうる複雑な環境を特に意識することなく、その環境で動作するアプリケーションを構築することが可能となる。
【0097】
【図面の簡単な説明】
【図1】実施例1による協調型グループウェア・システムの概要を説明する図図である。
【図2】グループウェア・システムの利用形態の一例を示す図である。
【図3】図2に示すようなグループ共同作業環境におけるユーザおよびツール群の管理方式の一例を説明する図である。
【図4】あるセッションに参加している1ユーザのユーザ環境の様子をあらわした図である。
【図5】図4に示したユーザ環境におけるセッション/ユーザ/ツール群の関連を表す図である。
【図6】セッションの起動にともなうツールの起動の様子をあらわした図である。
【図7】本実施例におけるツール・パスを利用したメッセージ配送の機構を説明する図である。
【図8】セッション起動時のDesktopMgrの動作を表すフローチャートである。
【図9】メッセージ配送時のDesktopMgrの動作を表すフローチャートである。
【図10】実施例2におけるマルチメディア・データ検索システムの概要を表す図である。
【図11】実施例2における表示例を表す図である。
【図12】2人のユーザによるデータベースへのアクセス状態を表す図である。
【図13】実施例2におけるデータ参照処理の様子を説明する図である。
【図14】実施例2におけるDesktopMgrの動作を示すフローチャートである。
【符号の説明】
101,102,103 パーソナル・コンピュータ
104 ネットワークケーブル
105,106,107 ユーザ
108,109 DesktopMgr
110 展開モジュール
111 ツール管理モジュール
112 ユーザ情報管理モジュール[0001]
[Industrial application fields]
The present invention relates to an information processing method, apparatus, and system capable of operating a plurality of applications in cooperation on one or a plurality of computers.
[0002]
[Prior art]
In recent years, GUI (Graphical User Interface) using a window system has been widely spread on personal computers and workstations. As a result, applications provided to users have been required to provide more complex and diverse functions in a more refined form than applications in programming environments before GUI.
[0003]
Instead of responding to such a request by repeating the expansion of a single application, it will be possible to combine multiple relatively simple applications by providing a cooperative operation mechanism between applications, and respond to various situations. An attempt has been made widely. As a basic mechanism for such cooperative operation between applications, a data exchange mechanism by inter-process communication is generally used.
[0004]
As a typical data exchange mechanism, a socket (trademark) provided by a Unix operating system (trademark), a port (trademark) provided by a Mach operating system (trademark), or the like is used as a basic mechanism. In addition, there is a system that provides an interface that can be used more easily by application developers by adding an appropriate program to these basic mechanisms. Typical examples of such a system include Sun RPC (trademark) of Sun Operating System (trademark) and ToolTalk (trademark) of Solaris Operating System (trademark).
[0005]
Groupware systems that support collaborative work support between users in a manner that is parallel to the above-described phenomenon of sophistication of the user environment have attracted attention.
[0006]
This groupware system is computer software for the purpose of supporting collaborative work by a plurality of human beings, and in recent years, in particular, a great weight has been placed on support for collaborative work via a network. A general groupware system provides video conferencing functions using video images and a collaborative writing editor, enabling collaborative work and meetings with remote locations via a network. As an approach for realizing such groupware, it is conceivable to extend the above-described user environment to an environment in which a plurality of computers are used. For this purpose, it is necessary to extend the basic mechanism for cooperative operation between applications so as to be compatible with the cooperative operation required by groupware.
[0007]
[Problems to be solved by the invention]
In order to extend the inter-application communication mechanism to the collaborative work environment between users, it is necessary to eliminate or relax the following restrictions. That is, the user environment, which is the work environment of each user, is configured and characterized by a group of applications that operate there. Therefore, the realization of the collaborative work environment between users is realized by the cooperation between user environments, and by the cooperation of application groups constituting the user environment. Here, in order for an application to realize a cooperative operation with an application group in another user environment, the application is composed of what application group in the other user environment and what role each plays. You must know the information that you are.
[0008]
For example, assuming a situation in which an application a operating in the user environment A communicates with an application b operating in the user environment B, the application a must know information that the communication partner is the application b. .
[0009]
However, in the groupware environment, the fact that the communication partner is the application b just happened to happen at this point, and at another point in time, the application b may be operating in the user environment B ′. At this point, it may be necessary to communicate with the application c running in the user environment C.
[0010]
As a general method of managing communication partners, a unique name is assigned to a process operating in a user or group environment. However, since the responsibility to avoid duplication of names is the responsibility of the application developer, it is difficult to cope with an environment where the configuration of applications and users frequently changes as described above. There is a problem.
[0011]
The present invention has been made in view of the above problems, and in a system constituted by one or a plurality of computers, it is possible to cope with a complicated environment in which components can fluctuate dynamically. It is an object of the present invention to provide an information processing method, apparatus, and system that can provide a cooperative system.
[0012]
Another object of the present invention is to make it possible to handle application management in a complex environment in which components can dynamically change at a high level of abstraction in a system composed of one or a plurality of computers. An object is to provide an information processing method, apparatus, and system.
[0013]
Another object of the present invention is to construct an application that operates in a system composed of one or a plurality of computers without being particularly aware of a complex environment in which components can dynamically change. It is an object of the present invention to provide an information processing method, apparatus, and system that can be used.
[0014]
[Means for Solving the Problems]
In order to achieve the above object, an information processing system of the present invention has the following arrangement. That is,
An information processing system for operating an application in cooperation with one or more computers,
Using the path assigned to the predetermined hierarchical structure of the application owned by each computer of the system as application identification information, From the first application Should work together Second A specification means for specifying an application;
In the path used by the designation means, the elements of the hierarchy are not based on the element names Depending on the relationship between the element and the element of the hierarchy in the first application The specified expression , Based on the element name of the hierarchy in the first application Expansion means to expand to actual element names;
By the path after expansion by the expansion means The second Specifying means for specifying an application.
[0015]
Also preferably, the designation means should cooperate. The second By the path of the predetermined hierarchical structure including the application name of the application The second Specify the application. This is because a hierarchical path is added to the application name, so that an application to be operated in the environment can be easily specified.
[0016]
Preferably, the specifying means uses a representation in which the elements of the hierarchy are specified without depending on element names. The second Specify applications in a batch. This is because it is possible to specify a plurality of applications abstractly.
[0017]
[Action]
According to the above configuration, in an information processing system that operates an application in cooperation with one or a plurality of computers, a path in which an application owned by each computer of the system is assigned to a predetermined hierarchical structure is assigned to the application. Use as identification information, From the first application Should work together Second Specify the application, and in the path used in this specification, the element of the hierarchy is not based on the element name Depending on the relationship between the element and the element of the hierarchy in the first application The specified expression , Based on the element name of the hierarchy in the first application The actual element name is expanded, and the application to be linked is specified by the path after expansion.
[0018]
【Example】
Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.
[0019]
<Example 1>
FIG. 1 is a diagram for explaining the outline of the cooperative groupware system according to the first embodiment. This groupware system provides a group collaborative work environment by allowing multiple users to make full use of multiple applications in each user environment and to exchange various data between these users and applications. Is.
[0020]
In FIG. 1,
[0021]
In FIG. 1, each personal computer (hereinafter referred to as a PC) is used by one
[0022]
On each PC,
[0023]
DesktopMgr itself is composed of three types of modules: a
[0024]
The
[0025]
The
[0026]
The user
[0027]
A group of tools operating in each user environment can perform a cooperative operation with tools existing in other user environments using the services provided by the above-described
[0028]
FIG. 2 is a diagram showing an example of a usage pattern of the groupware system configured as described above. Here, two users are collaborating on two PCs, and interfaces of several tools are displayed on the
[0029]
In FIG. 2,
[0030]
Next, a user and tool group management method in the group collaborative work environment as shown in FIG. 2 will be described with reference to FIG.
[0031]
In FIG. 3, it is assumed that there are three users A, B, and C, and are working on
[0032]
In this embodiment, this collaborative work (or group environment) is called a session, and the two collaborative works in FIG. 3 are called a
[0033]
A tool group specified by the session is used for actual work in each session. 306 and 307 in the figure represent tools used in the
[0034]
FIG. 4 is a diagram showing the user environment of one user participating in a session. In FIG. 4, the
[0035]
In this embodiment, a tool configured as a collection of a plurality of sub tools is called an integrated tool. In addition, tools that cannot be divided into sub tools (other than integrated tools) are called element tools. In the following, the term “tool” refers to when the integrated tool and the element tool are collectively indicated or when it is not necessary to distinguish between them. Actually, the integrated tool is merely a virtual existence in management, and its function is realized by cooperation of the element tools.
[0036]
In FIG. 4,
[0037]
FIG. 5 is a diagram showing the relationship between a session / user / tool group in the user environment shown in FIG.
[0038]
The
[0039]
Referring to FIG. 5 and FIG. 4, the
[0040]
In this embodiment, a name space is formed based on this hierarchical structure, and all tools under the management of the session can be designated. That is, the path of the name obtained by tracing the hierarchical structure of FIG. 5 from the session is called a tool path, and this is used as a means for specifying each tool.
[0041]
The tool path in this embodiment is a character string obtained by connecting the names of the session name, user name, and tool name layers with “&” as shown below. That is,
& Session name & User name & Tool name & Sub tool name ...
It becomes. For example, the tool
& Session & User A & Tool B &
It becomes. Here, the name of each hierarchy that is a component of the tool path such as the session name, user name, and tool name is called a node name. Node names must be unique in each hierarchy in order to use the tool path as a tool identifier.
[0042]
In the tool path, it is also possible to specify a plurality of node names by listing a plurality of node names in [and] separated by “,”. For example, "& Session & User A & Tool B &
& Session & [User A, User B] & Tool B &
Can be written.
[0043]
Furthermore, several types of special expressions can be used in node name designation. Special expressions allow abstract indication of node names. The special expressions will be described below.
[0044]
First, in the session name hierarchy,
・% Current
・% All
・% None
・% Ignore
Can be specified. Explaining in detail about each special expression,
% current… If “% current” is specified, the specified tool is interpreted as the session name to which the tool belongs.
% all… If "% all" is specified, it will be interpreted as the names of all sessions currently running.
% none… If "% none" is specified, it means that the user does not belong to a specific session. Some processes running in each user environment may be independent of the session.
% ignore… “% ignore” expresses that the existence of a session and its name can be ignored. It is semantically equivalent to specifying [% all,% none].
[0045]
Next, in the username hierarchy,
・% Self
・% All
・% Allbutself
Can be specified. To explain the details of each special expression,
% self… If “% self” is specified, it is interpreted as the name of the user using the user environment to which the specified tool belongs.
% all… If "% all" is specified, it is interpreted as all users belonging to the session specified immediately before.
% allbutself… When “% allbutself” is specified, it is interpreted as all users except% self from the users belonging to the session specified immediately before. Therefore, [% self,% allbutself] has the same meaning as% all.
[0046]
Finally, in the tool name hierarchy,
・% Self
・% Selfonly
・% Super
・% Parent
・% All
Can be specified. To explain the details of each special expression,
% self… If “% self” is specified, the tool name of the specified tool is supplemented. If the tool is actually a sub-tool of a tool, the hierarchical structure after the user name of the tool is added as it is.
% selfonly… If “% selfonly” is specified, the tool name of the specified tool is supplemented. Even if the tool is a sub tool of a tool, the hierarchical relationship of the tool is ignored.
% super… When “% super” is specified, the tool hierarchy up to the hierarchy one level above the specified tool itself is supplemented. For this reason, specifying &% super &% selfonly is the same as specifying &% self.
% parent ... If "% parent" is specified, the tool hierarchy specified in the tool path up to that point will be traced back one level higher. % super ignores any path specified up to the previous one, whereas% parent has a meaning that depends on the path specified up to the last.
% all ... If "% all" is specified, all tools belonging to the tool hierarchy specified in the tool path up to that point will be specified.
[0047]
By combining the special expressions as described above, for example, the following tool path can be expressed.
[0048]
Example 1. &% current &% all &% self
This indicates a copy of the specified tool itself in all user environments of the session to which the tool path has been specified. Here, “copy of tool” means a tool that has the same tool path except for the user name. Because we often use the exact same type of tool, we call it a "copy of tool".
[0049]
Example 2. &% current &% all &% super &% all
The tool for which this tool path has been specified represents all tools in the same hierarchy as the specified tool in all user environments of the session to which the tool path belongs at that time.
[0050]
Example 3 &% none & User C &% super & Tool X
This represents a tool with a tool name of tool X that exists in the same hierarchy as the specified tool in the user C user environment.
[0051]
In this embodiment, the tool path introduced as described above is used for controlling the tool. 6 and 7 are diagrams showing this state.
[0052]
FIG. 6 is a diagram showing how the tool is activated in association with the activation of the session. FIG. 8 is a flowchart showing the behavior of DesktopMgr at that time.
[0053]
Assume that two users A 601 and
[0054]
The
[0055]
After that, the
[0056]
On the other hand, when the
[0057]
Here, the
launchTool "Tool A""& Session & User A & Tool A"
It becomes. This is a command to start tool A and name the started process as & session & user A & tool A. The process of the
[0058]
When
launchTool "Tool A""& Session & User B & Tool A"
To start tool A610. The process of the activated
[0059]
FIG. 7 is a diagram illustrating a message delivery mechanism using a tool path in the present embodiment. This figure shows a state in the middle of joint work in the session activated in FIG. FIG. 9 is a flowchart showing the behavior of DesktopMgr in this situation. In FIG. 7, it is assumed that the
[0060]
The message transfer command is
forwardMessage "& Session &% all & Tool A""do-something"
It is represented by This command means “forward the message“ do-something ”to tool A for all users in the session”.
[0061]
When the
"& Session & User A & Tool A"
"& Session & User B & Tool A"
It becomes.
[0062]
When
forwardMessage "& Session & User A & Tool A""do-something"
forwardMessage "& Session & User B & Tool A""do-something"
These are two.
[0063]
In this way, one command can be converted into a plurality of commands by expanding the tool path. In DesktopMgr in this embodiment, these commands are processed in order, but can also be processed simultaneously.
[0064]
[0065]
If the combination of session and user is not under the control of
[0066]
On the other hand, if the designated tool exists under the management of
[0067]
The above processing is repeated until there are no more commands (step S910). Note that the same processing as that of the transfer source is performed in the DesktopMgr (
[0068]
In the algorithm shown in FIG. 9, DesktopMgr that receives the request first expands all the special expressions in the tool path. However, as another expansion procedure, the expansion in step S902 is limited only to the session name and the user name. The present embodiment can also be realized by an algorithm that causes DesktopMgr that manages each user environment to execute the expansion of the remaining tool names.
[0069]
In the example of FIG. 7, since the tool path of the first command is related to the user environment of user A, the first command is processed by
[0070]
When the
[0071]
In FIG. 7, another tool A happens to be activated (tool A711), but a tool path different from the tool A610 is specified for the tool A711 by the launch command launchTool described in FIG. The message is not transferred to the
[0072]
In summary, this embodiment shows an example in which the present invention is applied to an inter-application communication mechanism in a groupware system. In this embodiment, a tool path using a hierarchical structure of sessions, user environments, tools, and sub tools, and special expressions on the tool path are introduced. In addition, DesktopMgr that controls the tool using the tool path was introduced.
[0073]
In this embodiment, the uniqueness of the tool instruction can be easily managed by using a hierarchical structure in accordance with the session structure in the groupware system. In addition, by introducing special expressions, it is possible to specify more abstractly when each tool specifies a communication partner. For this reason, it becomes possible to cope with a dynamic change in the work environment due to frequent participation and leaving of the user in the groupware system.
In the first embodiment, a data structure for managing the hierarchical structure is not particularly provided, and the hierarchical structure as shown in FIG. 5 is substantially managed with a character string representing a tool path. However, it is needless to say that the hierarchical structure as shown in FIG. 5 can be internally expressed and managed in another data structure.
[0074]
<Example 2>
Although the application example of the present invention in the groupware system has been described in the first embodiment, the present invention can also be applied to an asynchronous data sharing system centered on a database. Here, an embodiment for a multimedia data search system using a database will be described.
[0075]
FIG. 10 is a diagram illustrating an overview of the multimedia data search system according to the second embodiment. According to the figure, a
[0076]
On the
[0077]
FIG. 11 shows what this embodiment looks like from the user's point of view. In FIG. 11, the
[0078]
Four
[0079]
The database search application displays a
[0080]
In implementing such a multimedia data retrieval system as a distributed system accessible from various clients, it cannot be assumed that each client has the exact same environment (ie, a data viewer).
[0081]
In FIG. 12, two
[0082]
Next, an application example of the present invention for dealing with the situation as shown in FIG. 12 will be described below.
[0083]
First, the data viewer in each user environment is named based on the hierarchical structure of catalog name, user name, and viewer name as in the first embodiment. The path expression derived as a result is called a viewer path and expressed as follows. That is,
& Catalog Name & User Name & Data Viewer Name & Sub Data Viewer Name ...
It becomes. Thus, also in the second embodiment, the data viewer names are hierarchized in order to cope with the integration of the data viewer as described in the first embodiment.
[0084]
Next, we introduce special expressions in path notation. In the second embodiment, special expressions of a catalog name and a user name are introduced. Hereinafter, the special expression for each layer will be described in detail.
[0085]
First, in the catalog name hierarchy:
・% All
Can be specified. If "% all" is specified, it is interpreted as the names of all catalogs existing in the database.
[0086]
Also, the user name hierarchy that can be specified is:
・% Ignore
・% Group
It is. Each special expression is explained below.
% ignore… If “% ignore” is specified, the user name is ignored.
% group… “% group” is used as% group (group name). In this case, the name in parentheses is interpreted as the name of the group. Here, a group is defined as a list of user names.
[0087]
In this embodiment, this viewer path is used as data viewer designation information for each data in the
&% all &% ignore & data viewer name
Is specified.
[0088]
Here, DesktopMgr is introduced as a server for managing the correspondence between the viewer path and the actual viewer. There is one DesktopMgr for each user environment. This is the same name as DesktopMgr in the first embodiment, and the roles are very similar, so it is possible to integrate these two types of DesktopMgr.
[0089]
FIG. 13 is a diagram illustrating a state of data reference processing in the second embodiment using the viewer path and DesktopMgr. FIG. 14 is a flowchart showing the operation of DesktopMgr which is the center of this processing.
[0090]
FIG. 13 shows processing in a situation where the
[0091]
Upon receiving this request (step S1401), the
[0092]
As described above, the second embodiment is an embodiment of the present invention in a multimedia data search system that allows customization for each client. In this embodiment, a viewer path using a hierarchical structure of a catalog, a user environment, a viewer, and a sub-viewer and a special expression on the viewer path are introduced. In addition, DesktopMgr that controls the viewer using the viewer path was introduced.
[0093]
As described above, according to the second embodiment, it is possible to specify a data viewer suitable for each user environment at various levels in the hierarchy on the viewer path. For example, by restricting the user name of the viewer path, it is possible to perform control such that only a specific user can be referred to, or partial referencing can be performed. In addition, since DesktopMgr takes over the management of viewers in the user environment, it is possible to reduce the cost of developing and deploying database search applications and various data viewers.
[0094]
The present invention may be applied to a system composed of a plurality of devices or an apparatus composed of a single device. Further, it goes without saying that the present invention can also be applied to a case where the present invention is achieved by supplying a program that causes a system or apparatus to execute processing defined by the present invention.
[0095]
【The invention's effect】
As described above, according to the present invention, it is possible to provide a flexible inter-application cooperation system that can cope with a complicated environment in which components can dynamically change in a system constituted by a plurality of computers.
[0096]
Further, according to the present invention, it becomes possible to handle application management in a complex environment in which components can dynamically change with a high level of abstraction.
Further, according to the present invention, it is possible to construct an application that operates in an environment without being particularly aware of a complicated environment in which components can dynamically change.
[0097]
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an outline of a cooperative groupware system according to a first embodiment.
FIG. 2 is a diagram illustrating an example of a usage pattern of a groupware system.
FIG. 3 is a diagram for explaining an example of a user and tool group management method in the group collaborative work environment as shown in FIG. 2;
FIG. 4 is a diagram showing a user environment of one user participating in a session.
FIG. 5 is a diagram showing a relationship between a session / user / tool group in the user environment shown in FIG. 4;
FIG. 6 is a diagram showing a state of starting a tool accompanying the start of a session.
FIG. 7 is a diagram illustrating a message delivery mechanism using a tool path in the present embodiment.
FIG. 8 is a flowchart showing the operation of DesktopMgr at the time of starting a session.
FIG. 9 is a flowchart showing the operation of DesktopMgr at the time of message delivery.
FIG. 10 is a diagram illustrating an overview of a multimedia data search system according to a second embodiment.
FIG. 11 is a diagram illustrating a display example in the second embodiment.
FIG. 12 is a diagram illustrating an access state to a database by two users.
FIG. 13 is a diagram for explaining the state of data reference processing in the second embodiment.
FIG. 14 is a flowchart illustrating the operation of DesktopMgr in the second embodiment.
[Explanation of symbols]
101, 102, 103 Personal computer
104 network cable
105, 106, 107 users
108,109 DesktopMgr
110 Deployment module
111 Tool management module
112 User information management module
Claims (9)
当該システムの各コンピュータにて所有されるアプリケーションを所定の階層構造に割り当てたパスをアプリケーションの識別情報として用いて、第1のアプリケーションから連携すべき第2のアプリケーションを指定する指定手段と、
前記指定手段の用いたパスにおいて、階層の要素が要素名によらずに当該要素と前記第1のアプリケーションにおける当該階層の要素との関係により指定された表現を、当該第1のアプリケーションにおける当該階層の要素名に基づいて実際の要素名に展開する展開手段と、
前記展開手段による展開後のパスにより前記第2のアプリケーションを特定する特定手段とを備えることを特徴とする情報処理システム。An information processing system for operating an application in cooperation with one or more computers,
Designating means for designating a second application to be linked from the first application by using, as application identification information, a path in which an application owned by each computer of the system is assigned to a predetermined hierarchical structure;
In the path used by the designating means, the expression specified by the relationship between the element of the hierarchy and the element of the hierarchy in the first application , regardless of the element name, is the hierarchy in the first application. Expansion means that expands to the actual element name based on the element name of
An information processing system comprising: specifying means for specifying the second application based on a path after expansion by the expansion means.
当該情報処理装置が所有するアプリケーションを所定の階層構造に割り当てたパスをアプリケーションの識別情報として用いて、第1のアプリケーションから連携すべき第2のアプリケーションを指定する指定手段と、
前記指定手段の用いたパスにおいて、階層の要素が要素名によらずに当該要素と前記第1のアプリケーションにおける当該階層の要素との関係により指定された表現を、当該第1のアプリケーションにおける当該階層の要素名に基づいて実際の要素名に展開する展開手段と、
前記展開手段による展開後のパスにより前記第2のアプリケーションを特定する特定手段とを備えることを特徴とする情報処理装置。An information processing apparatus capable of operating in cooperation with an application in a system configured in cooperation with another computer or a system configured in its own apparatus,
Designating means for designating a second application to be linked from the first application using a path in which an application owned by the information processing apparatus is assigned to a predetermined hierarchical structure as application identification information;
In the path used by the designating means, the expression specified by the relationship between the element of the hierarchy and the element of the hierarchy in the first application , regardless of the element name, is the hierarchy in the first application. Expansion means that expands to the actual element name based on the element name of
An information processing apparatus comprising: specifying means for specifying the second application based on a path after expansion by the expansion means.
各情報処理装置が所有するアプリケーションを所定の階層構造に割り当てたパスをアプリケーションの識別情報として用いて、第1のアプリケーションから連携すべき第2のアプリケーションを指定する指定工程と、
前記指定手段の用いたパスにおいて、階層の要素が要素名によらずに当該要素と前記第1のアプリケーションにおける当該階層の要素との関係により指定された表現を、当該第1のアプリケーションにおける当該階層の要素名に基づいて実際の要素名に展開する展開工程と、
前記展開工程による展開後のパスによりアプリケーションを特定する特定工程とを備えることを特徴とする情報処理方法。An information processing method for operating applications in cooperation with each other in a system including one or a plurality of information processing apparatuses,
A designation step of designating a second application to be linked from the first application using a path in which an application owned by each information processing apparatus is assigned to a predetermined hierarchical structure as application identification information;
In the path used by the designating means, the expression specified by the relationship between the element of the hierarchy and the element of the hierarchy in the first application , regardless of the element name, is the hierarchy in the first application. An expansion process that expands to the actual element name based on the element name of
An information processing method comprising: a specifying step of specifying an application by a path after expansion in the expansion step .
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29699494A JP3673540B2 (en) | 1994-11-30 | 1994-11-30 | Information processing method, apparatus and system |
| DE69535478T DE69535478T2 (en) | 1994-11-30 | 1995-11-29 | Information processing system |
| EP95308588A EP0715268B1 (en) | 1994-11-30 | 1995-11-29 | Information processing system |
| US08/564,661 US6021444A (en) | 1994-11-30 | 1995-11-29 | Information processing system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29699494A JP3673540B2 (en) | 1994-11-30 | 1994-11-30 | Information processing method, apparatus and system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08153009A JPH08153009A (en) | 1996-06-11 |
| JP3673540B2 true JP3673540B2 (en) | 2005-07-20 |
Family
ID=17840883
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP29699494A Expired - Fee Related JP3673540B2 (en) | 1994-11-30 | 1994-11-30 | Information processing method, apparatus and system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3673540B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4719987B2 (en) * | 2001-02-09 | 2011-07-06 | ソニー株式会社 | Screen display control method, program, and screen display control device |
-
1994
- 1994-11-30 JP JP29699494A patent/JP3673540B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH08153009A (en) | 1996-06-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3694167B2 (en) | Personal conference method and system | |
| Greenberg et al. | Groupware toolkits for synchronous work | |
| Lauwers et al. | Collaboration awareness in support of collaboration transparency: Requirements for the next generation of shared window systems | |
| US7089278B1 (en) | Anchored conversations: adhesive, in-context, virtual discussion forums | |
| EP0620936B1 (en) | Collaborative working in a network | |
| JP5060018B2 (en) | System and method for one-to-many data projection | |
| US6859928B2 (en) | Shared virtual desktop collaborative application system | |
| JPH06332870A (en) | Method and equipment for linking object manager for cooperation processing in object directive computer environment | |
| KR20110134940A (en) | Application sharing | |
| US6567844B2 (en) | Coordinative work environment construction system, method and medium therefor | |
| KR20000076508A (en) | Annotation layer for synchronous collaboration | |
| Karsenty et al. | GroupDesign: Shared editing in a heterogeneous environment | |
| EP0772114B1 (en) | Apparatus and method for programming a job ticket in a document processing system | |
| Werle et al. | A ubiquitous service environment with active documents for teamwork support | |
| Stork et al. | Enhancing a commercial 3D CAD system by CSCW functionality for enabling co-operative modelling via WAN | |
| Dourish | Software infrastructures | |
| Wang et al. | Design of the DISCIPLE Synchronous Collaboration Framework. | |
| Craighill et al. | SCOOT: An object-oriented toolkit for multimedia collaboration | |
| JP3673540B2 (en) | Information processing method, apparatus and system | |
| EP0715268B1 (en) | Information processing system | |
| Lee | Xsketch: A multi-user sketching tool for X11 | |
| JPH09128343A (en) | Communication system | |
| Chung | Accomodating latecomers in a system for synchronous collaboration | |
| Román et al. | A model for ubiquitous applications | |
| Lashkari et al. | PLX: a proposal to implement a general broadcasting facility in a distributed environment running X windows |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040419 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040618 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040712 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040910 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050404 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050425 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |