JP2004252557A - 協調分散システムおよび協調分散システムの構築方法 - Google Patents
協調分散システムおよび協調分散システムの構築方法 Download PDFInfo
- Publication number
- JP2004252557A JP2004252557A JP2003039748A JP2003039748A JP2004252557A JP 2004252557 A JP2004252557 A JP 2004252557A JP 2003039748 A JP2003039748 A JP 2003039748A JP 2003039748 A JP2003039748 A JP 2003039748A JP 2004252557 A JP2004252557 A JP 2004252557A
- Authority
- JP
- Japan
- Prior art keywords
- service
- function module
- communication
- information
- communication devices
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
【課題】協調分散サービスをモデルに基づいて構築することにより柔軟性および拡張性の高い協調分散システムを提供する。
【解決手段】協調分散システムは、好ましくはユースケースに対応するサービスの実現に必要とされる機能群をゆるやかなモデルとして定義しておき、所望の複数の機能を発見した後、それら機能間をネットワーク接続してモデルを構築するとともに、少なくとも1つのモデルコントローラを配置する。好ましくはビューの最適化等も行う。その後、モデルコントローラから、モデルに制御を加えることにより機能モジュール間のデータ転送を実現する。
【選択図】 図2
【解決手段】協調分散システムは、好ましくはユースケースに対応するサービスの実現に必要とされる機能群をゆるやかなモデルとして定義しておき、所望の複数の機能を発見した後、それら機能間をネットワーク接続してモデルを構築するとともに、少なくとも1つのモデルコントローラを配置する。好ましくはビューの最適化等も行う。その後、モデルコントローラから、モデルに制御を加えることにより機能モジュール間のデータ転送を実現する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、協調分散システムおよび協調分散システムの構築方法に関する。
【0002】
【従来の技術】
機能分散の概念自体は古くから存在し、コンピュータ関連の技術分野において協調分散システムについてのさまざまな研究がなされてきた。近年、協調分散システムはオブジェクト指向技術とともにめざましい発展を遂げており、オフィス環境のIT化等において既に利用されている。
【0003】
協調分散システムを実現するための具体的な技術として、例えばCORBA(商標)やJAVA(商標)のRMIなどが知られている。これらは、ネットワーク上に分散する種々の機能をオブジェクト化しそのインターフェースを定義して外部に公開する仕組みを備えており、機能分散/共有のための枠組みを提供するものである。これら従来技術においては、インターフェース記述に従って機能にアクセスするが、同じ目的に対してその都度、利用する機器やオブジェクトを使い分けるような場合、その定義を利用側が事前にきめ細かく理解しておかねばならないことや、ネットワークの前提が静的であるために機器の追加削除や、利用する機能の選択に手間がかかるという問題点がある。
【0004】
一方、家電機器等のデジタル化(いわゆる情報家電等)に伴い、機能やデータの連携の重要性は増しており、その実現に寄与する技術として協調分散システムへの期待は高まっている。
【0005】
計算機環境を中心に捉え、情報家電向けのサービス定義および解決のメカニズムを追加するための仕様(例えば、Jini(商標))が策定されている。同仕様では、機能を分散するという目的の下に、どのように機能を発見し、どのようにその機能を利用するかに着目している。サービス定義および解決のメカニズムは、同じ目的に対して異なる機能を使い分けることを可能にするが、機能共有に必要な定義や記述をその詳細にわたり事前によく承知しておかなければならない。これは上記CORBA等と同様の問題である。
【0006】
協調分散システムの概念は、まず分散配置されている複数の機能モジュールがあり、その静的な組み合わせがサービスやアプリケーションを構成するというものであり、その実現のために機能発見(探索)等のダイナミズムが提供される。しかしながら、機能発見後におけるサービスやアプリケーションの構築プロセスに関しては固定的である。この問題は、従来の協調分散システムが単に計算機処理の負荷分散までしかその範疇としていない点に起因する。したがって、新たに導入された機能モジュールを相互に組み合わせて新しいサービスを実現するような局面では、その都度、必要なモジュールの静的な構成をその詳細にわたり指定する必要があり、よってユーザレベルの視点からすれば極めて固定的なシステムが構築されることとなり柔軟性に欠けるという問題がある。
【0007】
より具体的な従来技術として、例えば、ネットワークに接続された家電機器の機能を統合し、デジタルカメラで得られた画像をテレビに表示して必要な画像をホームサーバに保存するといった監視機能を実現するネットワークシステム及び機器制御方法(下記特許文献1参照。)がある。この従来技術はネットワーク上の機器に分散する機能オブジェクトのメソッドを実行するものであるが、これは従来から行われている。また、同文献には機器が搭載する機能をネットワークを介して他機器に提供し動作させることが記載されているに過ぎず、上述のJiniと同様のメカニズムであり、上述の問題を解決するには至らない。
【0008】
【特許文献1】
特開2002−95071公報
【0009】
【発明が解決しようとする課題】
本発明はかかる事情を考慮してなされたものであり、ネットワークを介して接続された各情報処理装置が搭載する機能モジュールを用いて実現される協調分散サービスをモデルに基づいて構築することにより柔軟性および拡張性の高い協調分散システム及び協調分散システムの構築方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明の一観点に係る協調分散システムは、それぞれが所定の機能を行う機能モジュールを有する1つ以上の通信装置と、この通信装置のいずれかに配置され、すべての通信装置を制御する主制御手段と、を有する協調分散システムである。この協調分散システムにおいて通信装置のいずれかは、協調分散システムが提供可能な1つ以上のサービスと、各サービスを提供するのに必要となる機能モジュールの情報とが定義されたサービス情報定義を記憶する。
【0011】
また通信装置のいずれかは、サービス情報定義で定義されたあるサービスを提供するのに必要となる機能モジュール同士が通信に用いる通信手順が定義された通信情報定義を記憶する。
【0012】
サービスの要求時に動的に分散処理環境を構築する協調分散システムは、通信装置のいずれかが一のサービスの提供要求を受けたとき、1つ以上の通信装置についてそれぞれが有する機能モジュールを検索し、サービス情報定義に定義された機能モジュールの情報に従い一のサービスの提供に必要となる機能モジュールに、どの通信装置が有する機能モジュールを選択するのかを動的に行う。選択された機能モジュールを有する通信装置は、通信情報定義に基づく主制御手段からの指示により当該機能モジュールの実行を制御する。
【0013】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【0014】
図1は本発明の一実施形態に係る協調分散システムの概念的構成を示す図である。図1(a)は協調分散システムに適用される一台の情報処理装置1を示しており、この情報処理装置1は機能モジュール2、ビュー3、コントローラ4を有する。同図において黒点で示されるのは機能モジュール2の1つであり、情報処理装置1が単体で動作する場合には、指定されたサービスやアプリケーションに基づいて必要な機能モジュール2が組み合わされ、モデル5として単位化される。このモデル5はコントローラ4からの指示に基づいて制御され、ビュー3を介してユーザとの間でデータをやりとりする。一台の情報処理装置1は、プロセッサやメモリ等のコンピュータの基本構成要素を備えネットワークを通じて情報を処理することのできる任意の機器からなり、いわゆるパーソナルコンピュータや、携帯型通信機器、情報家電機器などが想定される。
【0015】
本発明に係る協調分散システムは、このような情報処理装置1の少なくとも1つ以上がネットワークを介して協調動作し、サービスを提供するものである。例えば、図1(b)に示すように三台の情報処理装置11,12,13が協調分散システムを構成している。3つの情報処理装置11,12,13は図示しないネットワークを介して相互に接続される。あるサービスを提供するにあたり、各情報処理装置の内部に搭載されている機能モジュール2がネットワークを介して論理的に接続され、協調動作する。このような機能モジュール2の組み合わせからなる論理的な構成単位をモデル5と称する。モデル5は、コントローラ4から操作される。コントローラ4は、全ての情報処理装置1に配備される場合もあるし、特定の情報処理装置にだけ配備される場合もある。ビュー3についても同様であり、1つのモデル5について全ての情報処理装置に配備される場合もあるし、特定の情報処理装置にだけ配備される場合もある。
【0016】
図2は協調分散システムが提供するサービスのモデル構築(セットアップ)に係る情報処理装置の機能構成を示すブロック図である。情報処理装置(例えば12)は、サービス定義およびシナリオ定義(ファイル)120、機能モジュール121、モデル情報格納部122、モデル制御部123を備える。モデル制御部123はネットワーク300を介して他の情報処理装置11,13等と通信が可能である。サービス定義およびシナリオ定義ファイル120はシステムを構成するいずれかの情報処理装置に設けられていればよい。また、サービス定義およびシナリオ定義がそれぞれ別の装置に格納されていてもよい。図2の例において、情報処理装置12および13はサービス定義およびシナリオ定義ファイル120を備えるが、情報処理装置11はこれらを備えていない。したがって、情報処理装置11は専ら機能モジュールの提供のみを担う。
【0017】
以下、例えばサービス定義ファイル120を持つ情報処理装置12が、サービスのモデルを動的にセットアップする主体であるとして説明する。ファイル120に記録されるサービス定義は、当該サービスのモデルを構成するための情報を有し、具体的には機能モジュールのカテゴリ表現とそれらの接続関係を表すサービストポロジを有する。機能モジュールのカテゴリ表現およびサービストポロジについては後に詳細に説明する。
【0018】
サービスのモデルをセットアップするプロセスは、大別すると、当該サービスの実現に必要な機能モジュールをサービス定義に基づいて決定するプロセスと、決定された機能モジュール間の通信の手順をシナリオ定義に基づいて決定するプロセスとから構成される。前者のプロセスによれば、当該サービスについての静的モデルを生成でき、後者のプロセスによれば、同サービスについての動的モデルを生成できる。これら2つのモデルは相補の関係にあり、両者を完備した時点でモデルは完成する。
【0019】
必要な機能モジュールをサービス定義に基づいて決定する前者のプロセスは以下のステップから構成される。すなわち、情報処理装置12のモデル制御部123は、ファイル120からサービス定義を読み出して解釈する。サービス定義の解釈は、ネットワーク300上における機能モジュール間の通信可否を把握することを含む。次に、モデル制御部123は、サービス定義から必要とされる機能モジュールのカテゴリを知り、ネットワーク300に対しその探索手続きを開始する。他の情報処理装置は、発見要求に対して対応可能の場合は返答する。
【0020】
カテゴリに該当する機能モジュールが発見され、全てのカテゴリについて具体的な機能モジュールが発見され探索手続が解決すると、これら発見された機能モジュールの組合せをサービス定義に従い決定することができる。
【0021】
以上に述べたサービス定義に基づく機能モジュールの決定について、具体例を挙げて説明する。
【0022】
図3は、情報処理装置の具体例、および該情報処理装置が備える機能モジュール2およびその一部から構成されるモデル5の具体例を示す図である。ここでは四台の情報処理装置11,12,13,14が示されている。これらは図示しないネットワークを介して相互に接続されている。
【0023】
情報処理装置11は例えばA社製デジタルカメラであり、3つの機能モジュールを備える。以下同様に、情報処理装置12は例えばB社製画像テロッパであり、1つの機能モジュールを備える。情報処理装置13は例えばC社製文字生成器であり、2つの機能モジュールを備える。情報処理装置14は例えばD社製テレビであり、2つの機能モジュールを備える。
【0024】
ここで、アルバム作成サービスという1つのサービスを実現する例を挙げる。同サービスの実現に必要な幾つかの機能要素がモデル5として定義される。図3において、モデル5は点線により囲まれた領域内の機能モジュール2の集合として示されている。モデル5は複数定義することができ、機能モジュールの属性情報など、そのモデルにおいて必要な機能モジュールの特定に必要な情報は、モデル単位で事前に決められる。
【0025】
機能モジュール(オブジェクト)は、識別子により一意に特定するのが一般的であるが、本実施形態では機能モジュールをその属性、振る舞い、相対関係といった緩い制約に基づいて識別することもできるよう構成されている。例えば、ある機能モジュールの識別子により、実際に特定の情報処理装置上に搭載された特定の機能モジュールそのものを特定する場合と、「デジタル画像を生成する機能モジュール」という具合に、機能モジュールをあいまいに特定する場合とがある。後述するが、このような緩い制約によって機能モジュールをあいまいに特定(指定)することにより、多様な機能モジュールを該当させることができシステムの柔軟性を向上できる。
【0026】
機能モジュールの特定を、その機能のカテゴリに基づいて行った例を図4に示す。同図はサービス定義に含まれるサービストポロジの一例を示している。なお、サービストポロジはモデル毎に、必要な機能、およびその接続関係を規定するものである。各機能モジュール、接続パス、パスの両端のノードには必要に応じて識別子が付与される。同図では、「画像生成」、「画像合成」、「画像表示」といったカテゴリに基づいて機能モジュールがあいまいに特定(定義)されていることがわかる。
【0027】
図5は、構築されたモデル5、ビュー3、およびコントローラ41,42の関係を示している。この例では、1つのモデル5について1つのモデルコントローラ41が情報処理装置12上に配置されている。42はローカルコントローラであり、情報処理装置11,13,14のそれぞれに配置されている。また、ビュー3は全ての情報処理装置11〜14上に配置されている。
【0028】
ネットワークを介して接続される情報処理装置11〜14上へのモデル5のマッピングは上述のサービストポロジに基づいている。また、モデル5とビュー3との関係については、各々の情報処理装置が、ビューを構成可能であるか否かの条件に従う。
【0029】
モデル5により定義されたサービスの動作時には、いずれかのビュー3に与えられた操作に応じ、モデルコントローラ41を通じてモデル5を構成する機能モジュール2が実行される。ユーザはいずれかのビュー3を介して機能モジュール2の入出力結果、すなわちサービスを享受することができる。なお、情報処理装置単体の機能を同時に利用できる場合には、機能モジュール2を操作するためのローカルコントローラ42が同時に動作する。機能モジュール2およびビュー3は単体レベルで操作される。
【0030】
本実施形態に係る協調分散システムのセットアップに係る一般的な動作シーケンスは次の通りである。ユーザがある1台の情報処理装置上で利用したいサービスを選択すると、そのサービスに対応するモデルの定義が解釈される。サービスはユースケースに対応していることが好ましい。サービス定義は、事前に機器に格納されているか、もしくは、ネットワーク経由で他から得ることもある。サービス定義を解釈した情報処理装置は、当該サービスの構築に必要な機能モジュールのモデル情報に基づいて、必要な機能モジュールを決定し、それらの接続を行う。機能モジュールは事前に固定されている場合もあるが、オンデマンドで通信可能な範囲から探索し決定する場合もある。必要な機能モジュールとのネットワーク接続を終えた後、モデルに対するコントローラの配置、および、ビューの構成を行う。これらを終えた後、モデルに対応されたサービスが準備完了の状態となる。
【0031】
(機能モジュールのカテゴリ)上述したように、本実施形態では機能モジュールをその属性、振る舞い、相対関係といった緩い制約に基づいて識別することができるよう構成されている。かかる制約を本明細書では「機能モジュールのカテゴリ」と称する。図6は、機能モジュールのカテゴリを説明するための図である。同図においては、機能モジュールのカテゴリがマトリックス形式で分類されており、縦軸には機能モジュールが扱うメディアの種類が列挙され、横軸には機能モジュールがメディアに加える操作の種類が列挙されている。ここで、メディアの種類は機能モジュールの属性に関する情報に相当し、操作の種類は振る舞いに関する情報に相当する。
【0032】
想定される情報処理装置が実際に備える種々の機能モジュールを、図6のマトリックスにおけるいずれか一の要素すなわちカテゴリに当てはめる。このような機能モジュールのカテゴリは、モデル記述を行うとき、機能モジュールをゆるやかに定義指定する際の識別子として用いられる。
【0033】
図7は、各情報処理装置が実際に有する機能(モジュール)と図6に示した機能モジュールのカテゴリとの対応を示す図である。例えば、「デジタルカメラ」が搭載する「画像保存機能」は「画像蓄積(Is)」に対応している。モデルの定義において機能モジュールの識別にはこの「画像蓄積(Is)」が用いられる。この「画像蓄積(Is)」についての機能モジュールの探索においては「デジタルカメラ」の「画像保存機能」が発見されるかも知れない。また、この「デジタルカメラ」の「画像保存機能」が高機能化されたとしても同様である。なお、該機能モジュールを制御するためのインターフェースの問題はモデルコントローラが解決する。
【0034】
機能モジュールの探索の具体例を図8を参照しながら説明する。例えば図8に示すように、ユーザがB社製テロッパ(以下、「テロッパ」)12を操作して、協調分散サービスを実行する場合、テロッパ12は、図6に示したカテゴリに該当する機能モジュールを発見するべく、ネットワーク通信が可能な範囲において探索を行う。上述したように、サービス定義によれば機能モジュール間の通信可否を知ることができる。
【0035】
探索条件に該当する機能モジュール2はテロッパ12に返答する。テロッパ12は必要な機能モジュール2を取捨選択し、最終的にはサービスを提供するために必要な機能モジュール2の全てが決定される。これら機能モジュール2はモデル5の実体となる。
【0036】
機能モジュール探索における各機能モジュール間のメッセージシーケンスの一例を図9を参照しながら説明する。こでは、テロッパ12内部の画像合成(モジュール)90が他の機能モジュールと通信するセットアップシーケンスであり、テロッパ12から他の情報処理装置に向けてまず機能発見要求(Bid1,Bid2)が発せられる。この(Bid1,Bid2)は、画像生成モジュールを探索する要求であり、それに対して2つの機能モジュール91,92が機能要求返答(Offer1,Offer2)を返答している。実際にモジュール間を接続可能かどうかを(Negotiation1,Negotiation2)により確認した後、テロッパ12から例えば機能モジュール92に対して確定(Agree)が発信され、確定している。次に、画像表示モジュールを発見するために、同様にBid3を発し、要求に応答したモジュール93がNegotiationの後、Agreeによって確定している。
【0037】
(シナリオ定義に基づく通信モデルの決定)上述したように、サービスのモデルをセットアップするプロセスは、大別すると、当該サービスの実現に必要な機能モジュールをサービス定義に基づいて決定するプロセスと、決定された機能モジュール間の通信の手順をシナリオ定義に基づいて決定するプロセスとから構成される。前者のプロセスについては詳述した。以下、後者のプロセスについて詳細に説明する。
【0038】
モデル5に対するメソッド、すなわちサービスの実行のための制御インターフェースは、サービスに必要な機能モジュールを操作するために一元的に管理される制御インターフェースであって、ここでは、5つ(画像一覧表示(View_Image_ALL)、選択画像表示(View_Selected_Image)、テロップ文字表示(View_Overlay_Image)、位置選択(Select_Overlay_Image)、実行(Exec_Overlay_Image))を例とする(図10参照)。これらは、図2に示したシナリオ定義ファイル120において定義されている。
【0039】
サービスの実行は、モデルコントローラ41(もしくはいずれかのビュー3)を通じ、モデル5に対するメソッドを呼び出すことにより行われる。いずれかの情報処理装置においてビュー3を操作することによりユーザから与えられたサービス実行要求に応じて、モデルコントローラ41内のプログラムは、モデル5のメソッドを呼び出す。各々の情報処理装置は、そのメソッド呼び出しの情報に応じてモデル内部の所定の機能モジュールを駆動する。これによりモデルの状態はアップデートされ、その結果はビュー3を介して外部に出力される。
【0040】
図11乃至図15を参照して、それぞれのメソッドに対応する制御の流れ(シナリオ)の例を説明する。図11は画像一覧表示、図12は選択画像表示、図13はテロップ文字表示、図14は位置選択、図15は実行、についてのそれぞれのシナリオを示している。例えば図11のシナリオは、ユーザがモデルコントローラ41を介して画像生成モジュールに対し所定の枚数の画像を転送する指示を出すと、その結果がビュー3を介して得られるというものである。図11乃至図15において、各メソッドに対応するシナリオ例(制御及びデータの流れ)は点線又は実線の矢印で示してある。
【0041】
図16は、各機能モジュールのネットワーク入出力制御を掌るネットワーク制御部(EX)6を示している。各装置のネットワーク制御部(EX)6に対し、モデルコントローラ41のネットワーク制御部(EX)6から制御情報が送られる
図17はシナリオ定義に基づくモデルコントローラ41のセットアップを示す図である。情報処理装置12のモデル制御部123は、ファイル120からシナリオ定義を読み出し、同シナリオ定義から、モデル5をコントロールするためのプログラム125を抽出し、モデルコントローラ41にアップロード(転送)する。プログラム125は、必要に応じて、シナリオ定義に基づき自動生成される。
【0042】
上述した図11乃至図15のシナリオは、図18に示すような、シナリオ定義記述に基づいている。サービスを実行させる指示がなされた場合、図18のシナリオ定義の記述内容が解析される。機能モジュールを提供する情報処理装置に対し、図18に記載のコントロール(Control)の単位で、各機能モジュールがどのように振舞うかの通信手順を表すものが、上述のプログラム125である。なお、シナリオ記述の情報が該当する情報処理装置に転送されるか、自身でそのシナリオ情報を解析することで、それぞれの情報処理装置において、各機能モジュールがどのように振舞うかの指定がされる場合もある。本実施形態では、「アルバム作成サービス(Album Service)」という1つのサービスについて、5つのコントロール(Control)が定義されている。例えば2番目のコントロール(View Selected Image)には、「4番ノードから制御されたならば、4番ノードは0番の通信パスに対して情報をGETする要求を出す。あるいは、0番ノードから制御されたならば、0番ノードは0番の通信パスに対して、情報をPUTする要求を出す。あるいは、もし、それ以外のノードからコントロールされた場合、該当ノードは、4番ノードに対して、0番の通信パスに対し、データをGETすることを依頼する」旨が記述されている。このようなシナリオ定義に従い、関連する機能モジュールを持つ情報処理装置は、各機能モジュールが指示とおりに動作可能になるようにセットアップされる。このセットアップに係る情報はモデル情報格納部122に記録される。
【0043】
(インターフェース情報)例えば図10に示したシステム構成例において、ネットワーク動作時には、モデルコントローラ41の制御インターフェースに関する情報として、例えば「操作メニュー」がビュー3を通じてユーザに提示される。その様子を図19に示す。図19に示す操作メニュー200はユーザインターフェースであり、画像一覧表示を指示するためのボタン201、選択画像表示を指示するためのボタン202、テロップ文字表示を指示するためのボタン203、位置選択を指示するためのボタン204、実行を指示するためのボタン205から構成されている。
【0044】
操作メニュー200においていずれかのボタンがユーザにより選択されると、その指示がモデルコントローラ41に通知される。モデルコントローラ41はこれに応じてモデル5に動作の指示を伝える。各情報処理装置内部のモデル制御部は、モデル5からの指示に応じて機能モジュールを実行させる。各情報処理装置内部における機能モジュールの動作による情報処理結果はビューを通じて出力される。
【0045】
(情報処理装置の他の構成例および協調分散動作時の被制御)図20に示すように、情報処理装置11,14は、機能モジュール2およびビュー3を備える。情報処理装置12は、機能モジュール2、ビュー3、およびモデルコントローラ41を備える。情報処理装置13は、機能モジュール2のみを備える。つまり、図5に示したシステム構成例とは異なり、情報処理装置13はビューを備えていない。
【0046】
モデル5を構成する全ての機能モジュールは、モデルコントローラ41を通じて制御されるが、ビューの更新については、モデル5は、全ての情報処理装置ではなく、ビューを搭載している情報処理装置のみを制御する。具体的には、ビューを備える情報処理装置11,12,14のみを制御する。なお、ビューを搭載していても、搭載していない情報処理装置と同じ扱いとし、あえてビュー機能を動作させないような制御がなされる場合もある。
【0047】
(サービス実行制御のみ)また、図21に示すように、情報処理装置17はビュー3およびモデルコントローラ41を備え、機能モジュール2を備えていない。かかるシステム構成例において、情報処理装置17は、シナリオ情報を解析し、その内容に基づいて関連する情報処理装置のネットワーク制御部6を制御する。シナリオ定義(ファイル)は、情報処理装置17又は他の情報処理装置11〜14のいずれかが所有しているものとする。このように、サービスを構成する機能(モジュール)は提供せずに、専らサービス全体の実行制御のみを司るように情報処理装置を構成してもよい。
【0048】
以上説明した本発明の実施形態によれば、ユーザに提供するサービスを実現するために必要な機能モジュールを、固定的に決定せず、その属性情報、またはそのモジュールの振る舞いのみによりゆるやかに指定し、その組み合わせ情報をサービス定義とする。かかるサービス定義に基づいて実際に結合されるモジュールを決定し、システムを構成する。これにより、同じサービスを実現するにあたり、さまざまな機能モジュールを柔軟に結合して構成することを可能とすると共に、高機能サービスを実現するにあたり、機能モジュールの高度化のみで、サービス定義を変更する必要がない。また、実際にそれぞれのモジュールをどのように接続して、どのようなデータを、どの機器のユーザインターフェースを用いて制御するかを示すシナリオ定義に基づき、実際に、モジュールを持つ機器の制御プログラムを生成することで、各機器の制御プログラムをその都度書き換える必要もない、といった作用効果を得ることができる。
【0049】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【0050】
【発明の効果】
以上説明したように、本発明によれば、ネットワークを介して接続された各情報処理装置が搭載する機能モジュールを用いて実現される協調分散サービスをモデルに基づいて構築することにより柔軟性および拡張性の高い協調分散システム及び協調分散システムの構築方法を提供できる。具体的には、本発明ではユーザに提供するサービスを実現するために必要なモジュール(各情報処理装置に搭載される機能モジュールの組み合わせ)を従来のように予め詳細に定めておくのではなく、属性や振る舞いのみによりゆるやかに指定し、その組み合わせ情報をサービス定義とする。サービス定義に基づいて実際に結合されるモジュールを決定し、システムを構成する。したがって、協調分散システムの柔軟性を向上できる。さらに、特定の機器やモジュールが動作しない場合に全体が動作しなくなることを防止できる。また、トポロジが同じサービス定義において、各機能モジュールの高度化がなされた場合であってもサービス全体をスムーズに高度化でき、分散協調システムの新しいアプリケーションを生み出すことが可能となる。また、サービス毎にその操作の手順を規定するシナリオ定義の仕組みによれば、各情報処理装置の各モジュールにそれらの事前設定を行っておくことなしに、必要に応じて機能モジュールに所望の振る舞いを実現するための指示を与えることができることから、各機能モジュールの制御プログラム(特に、ネットワーク制御や、他機能モジュールとの入出力制御モジュール)の汎用化も可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る協調分散システムの概念的構成を示す図
【図2】協調分散システムが提供するサービスのモデル構築(セットアップ)に係る情報処理装置の機能構成を示すブロック図
【図3】情報処理装置の具体例、および該情報処理装置が備える機能モジュールおよびその一部から構成されるモデルの具体例を示す図
【図4】機能モジュールの特定を、その機能のカテゴリに基づいて行った一例を示す図
【図5】構築されたモデル、ビュー、およびコントローラの関係を示す図
【図6】機能モジュールのカテゴリを説明するための図
【図7】各情報処理装置が実際に有する機能(モジュール)と図6に示した機能モジュールのカテゴリとの対応を示す図
【図8】機能モジュールの探索の具体例を説明するための図
【図9】機能モジュール探索における各機能モジュール間のメッセージシーケンスの一例を示す図
【図10】モデルに対するメソッド(サービスの実行のための制御インターフェース)の一例を示す図
【図11】シナリオ例(画像一覧表示)を示す図
【図12】シナリオ例(選択画像表示)を示す図
【図13】シナリオ例(テロップ文字表示)を示す図
【図14】シナリオ例(位置選択)を示す図
【図15】シナリオ例(実行)を示す図
【図16】各機能モジュールのネットワーク入出力制御を掌るネットワーク制御部(EX)を示す図
【図17】シナリオ定義に基づくモデルコントローラのセットアップを示す図
【図18】シナリオ定義の記述例を示す図
【図19】ユーザインターフェースの一例を示す図
【図20】協調分散システムの他の構成例を示す図
【図21】協調分散システムの他の構成例を示す図
【符号の説明】
1,11〜17…情報処理装置、2…機能モジュール、3…ビュー(ユーザインターフェース)、4…コントローラ、5…モデル、6…ネットワーク制御部、41…ネットワーク動作時のモデル制御用のコントローラ(モデルコントローラ)、42…単体動作時のコントローラ(ローカルコントローラ)
【発明の属する技術分野】
本発明は、協調分散システムおよび協調分散システムの構築方法に関する。
【0002】
【従来の技術】
機能分散の概念自体は古くから存在し、コンピュータ関連の技術分野において協調分散システムについてのさまざまな研究がなされてきた。近年、協調分散システムはオブジェクト指向技術とともにめざましい発展を遂げており、オフィス環境のIT化等において既に利用されている。
【0003】
協調分散システムを実現するための具体的な技術として、例えばCORBA(商標)やJAVA(商標)のRMIなどが知られている。これらは、ネットワーク上に分散する種々の機能をオブジェクト化しそのインターフェースを定義して外部に公開する仕組みを備えており、機能分散/共有のための枠組みを提供するものである。これら従来技術においては、インターフェース記述に従って機能にアクセスするが、同じ目的に対してその都度、利用する機器やオブジェクトを使い分けるような場合、その定義を利用側が事前にきめ細かく理解しておかねばならないことや、ネットワークの前提が静的であるために機器の追加削除や、利用する機能の選択に手間がかかるという問題点がある。
【0004】
一方、家電機器等のデジタル化(いわゆる情報家電等)に伴い、機能やデータの連携の重要性は増しており、その実現に寄与する技術として協調分散システムへの期待は高まっている。
【0005】
計算機環境を中心に捉え、情報家電向けのサービス定義および解決のメカニズムを追加するための仕様(例えば、Jini(商標))が策定されている。同仕様では、機能を分散するという目的の下に、どのように機能を発見し、どのようにその機能を利用するかに着目している。サービス定義および解決のメカニズムは、同じ目的に対して異なる機能を使い分けることを可能にするが、機能共有に必要な定義や記述をその詳細にわたり事前によく承知しておかなければならない。これは上記CORBA等と同様の問題である。
【0006】
協調分散システムの概念は、まず分散配置されている複数の機能モジュールがあり、その静的な組み合わせがサービスやアプリケーションを構成するというものであり、その実現のために機能発見(探索)等のダイナミズムが提供される。しかしながら、機能発見後におけるサービスやアプリケーションの構築プロセスに関しては固定的である。この問題は、従来の協調分散システムが単に計算機処理の負荷分散までしかその範疇としていない点に起因する。したがって、新たに導入された機能モジュールを相互に組み合わせて新しいサービスを実現するような局面では、その都度、必要なモジュールの静的な構成をその詳細にわたり指定する必要があり、よってユーザレベルの視点からすれば極めて固定的なシステムが構築されることとなり柔軟性に欠けるという問題がある。
【0007】
より具体的な従来技術として、例えば、ネットワークに接続された家電機器の機能を統合し、デジタルカメラで得られた画像をテレビに表示して必要な画像をホームサーバに保存するといった監視機能を実現するネットワークシステム及び機器制御方法(下記特許文献1参照。)がある。この従来技術はネットワーク上の機器に分散する機能オブジェクトのメソッドを実行するものであるが、これは従来から行われている。また、同文献には機器が搭載する機能をネットワークを介して他機器に提供し動作させることが記載されているに過ぎず、上述のJiniと同様のメカニズムであり、上述の問題を解決するには至らない。
【0008】
【特許文献1】
特開2002−95071公報
【0009】
【発明が解決しようとする課題】
本発明はかかる事情を考慮してなされたものであり、ネットワークを介して接続された各情報処理装置が搭載する機能モジュールを用いて実現される協調分散サービスをモデルに基づいて構築することにより柔軟性および拡張性の高い協調分散システム及び協調分散システムの構築方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明の一観点に係る協調分散システムは、それぞれが所定の機能を行う機能モジュールを有する1つ以上の通信装置と、この通信装置のいずれかに配置され、すべての通信装置を制御する主制御手段と、を有する協調分散システムである。この協調分散システムにおいて通信装置のいずれかは、協調分散システムが提供可能な1つ以上のサービスと、各サービスを提供するのに必要となる機能モジュールの情報とが定義されたサービス情報定義を記憶する。
【0011】
また通信装置のいずれかは、サービス情報定義で定義されたあるサービスを提供するのに必要となる機能モジュール同士が通信に用いる通信手順が定義された通信情報定義を記憶する。
【0012】
サービスの要求時に動的に分散処理環境を構築する協調分散システムは、通信装置のいずれかが一のサービスの提供要求を受けたとき、1つ以上の通信装置についてそれぞれが有する機能モジュールを検索し、サービス情報定義に定義された機能モジュールの情報に従い一のサービスの提供に必要となる機能モジュールに、どの通信装置が有する機能モジュールを選択するのかを動的に行う。選択された機能モジュールを有する通信装置は、通信情報定義に基づく主制御手段からの指示により当該機能モジュールの実行を制御する。
【0013】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【0014】
図1は本発明の一実施形態に係る協調分散システムの概念的構成を示す図である。図1(a)は協調分散システムに適用される一台の情報処理装置1を示しており、この情報処理装置1は機能モジュール2、ビュー3、コントローラ4を有する。同図において黒点で示されるのは機能モジュール2の1つであり、情報処理装置1が単体で動作する場合には、指定されたサービスやアプリケーションに基づいて必要な機能モジュール2が組み合わされ、モデル5として単位化される。このモデル5はコントローラ4からの指示に基づいて制御され、ビュー3を介してユーザとの間でデータをやりとりする。一台の情報処理装置1は、プロセッサやメモリ等のコンピュータの基本構成要素を備えネットワークを通じて情報を処理することのできる任意の機器からなり、いわゆるパーソナルコンピュータや、携帯型通信機器、情報家電機器などが想定される。
【0015】
本発明に係る協調分散システムは、このような情報処理装置1の少なくとも1つ以上がネットワークを介して協調動作し、サービスを提供するものである。例えば、図1(b)に示すように三台の情報処理装置11,12,13が協調分散システムを構成している。3つの情報処理装置11,12,13は図示しないネットワークを介して相互に接続される。あるサービスを提供するにあたり、各情報処理装置の内部に搭載されている機能モジュール2がネットワークを介して論理的に接続され、協調動作する。このような機能モジュール2の組み合わせからなる論理的な構成単位をモデル5と称する。モデル5は、コントローラ4から操作される。コントローラ4は、全ての情報処理装置1に配備される場合もあるし、特定の情報処理装置にだけ配備される場合もある。ビュー3についても同様であり、1つのモデル5について全ての情報処理装置に配備される場合もあるし、特定の情報処理装置にだけ配備される場合もある。
【0016】
図2は協調分散システムが提供するサービスのモデル構築(セットアップ)に係る情報処理装置の機能構成を示すブロック図である。情報処理装置(例えば12)は、サービス定義およびシナリオ定義(ファイル)120、機能モジュール121、モデル情報格納部122、モデル制御部123を備える。モデル制御部123はネットワーク300を介して他の情報処理装置11,13等と通信が可能である。サービス定義およびシナリオ定義ファイル120はシステムを構成するいずれかの情報処理装置に設けられていればよい。また、サービス定義およびシナリオ定義がそれぞれ別の装置に格納されていてもよい。図2の例において、情報処理装置12および13はサービス定義およびシナリオ定義ファイル120を備えるが、情報処理装置11はこれらを備えていない。したがって、情報処理装置11は専ら機能モジュールの提供のみを担う。
【0017】
以下、例えばサービス定義ファイル120を持つ情報処理装置12が、サービスのモデルを動的にセットアップする主体であるとして説明する。ファイル120に記録されるサービス定義は、当該サービスのモデルを構成するための情報を有し、具体的には機能モジュールのカテゴリ表現とそれらの接続関係を表すサービストポロジを有する。機能モジュールのカテゴリ表現およびサービストポロジについては後に詳細に説明する。
【0018】
サービスのモデルをセットアップするプロセスは、大別すると、当該サービスの実現に必要な機能モジュールをサービス定義に基づいて決定するプロセスと、決定された機能モジュール間の通信の手順をシナリオ定義に基づいて決定するプロセスとから構成される。前者のプロセスによれば、当該サービスについての静的モデルを生成でき、後者のプロセスによれば、同サービスについての動的モデルを生成できる。これら2つのモデルは相補の関係にあり、両者を完備した時点でモデルは完成する。
【0019】
必要な機能モジュールをサービス定義に基づいて決定する前者のプロセスは以下のステップから構成される。すなわち、情報処理装置12のモデル制御部123は、ファイル120からサービス定義を読み出して解釈する。サービス定義の解釈は、ネットワーク300上における機能モジュール間の通信可否を把握することを含む。次に、モデル制御部123は、サービス定義から必要とされる機能モジュールのカテゴリを知り、ネットワーク300に対しその探索手続きを開始する。他の情報処理装置は、発見要求に対して対応可能の場合は返答する。
【0020】
カテゴリに該当する機能モジュールが発見され、全てのカテゴリについて具体的な機能モジュールが発見され探索手続が解決すると、これら発見された機能モジュールの組合せをサービス定義に従い決定することができる。
【0021】
以上に述べたサービス定義に基づく機能モジュールの決定について、具体例を挙げて説明する。
【0022】
図3は、情報処理装置の具体例、および該情報処理装置が備える機能モジュール2およびその一部から構成されるモデル5の具体例を示す図である。ここでは四台の情報処理装置11,12,13,14が示されている。これらは図示しないネットワークを介して相互に接続されている。
【0023】
情報処理装置11は例えばA社製デジタルカメラであり、3つの機能モジュールを備える。以下同様に、情報処理装置12は例えばB社製画像テロッパであり、1つの機能モジュールを備える。情報処理装置13は例えばC社製文字生成器であり、2つの機能モジュールを備える。情報処理装置14は例えばD社製テレビであり、2つの機能モジュールを備える。
【0024】
ここで、アルバム作成サービスという1つのサービスを実現する例を挙げる。同サービスの実現に必要な幾つかの機能要素がモデル5として定義される。図3において、モデル5は点線により囲まれた領域内の機能モジュール2の集合として示されている。モデル5は複数定義することができ、機能モジュールの属性情報など、そのモデルにおいて必要な機能モジュールの特定に必要な情報は、モデル単位で事前に決められる。
【0025】
機能モジュール(オブジェクト)は、識別子により一意に特定するのが一般的であるが、本実施形態では機能モジュールをその属性、振る舞い、相対関係といった緩い制約に基づいて識別することもできるよう構成されている。例えば、ある機能モジュールの識別子により、実際に特定の情報処理装置上に搭載された特定の機能モジュールそのものを特定する場合と、「デジタル画像を生成する機能モジュール」という具合に、機能モジュールをあいまいに特定する場合とがある。後述するが、このような緩い制約によって機能モジュールをあいまいに特定(指定)することにより、多様な機能モジュールを該当させることができシステムの柔軟性を向上できる。
【0026】
機能モジュールの特定を、その機能のカテゴリに基づいて行った例を図4に示す。同図はサービス定義に含まれるサービストポロジの一例を示している。なお、サービストポロジはモデル毎に、必要な機能、およびその接続関係を規定するものである。各機能モジュール、接続パス、パスの両端のノードには必要に応じて識別子が付与される。同図では、「画像生成」、「画像合成」、「画像表示」といったカテゴリに基づいて機能モジュールがあいまいに特定(定義)されていることがわかる。
【0027】
図5は、構築されたモデル5、ビュー3、およびコントローラ41,42の関係を示している。この例では、1つのモデル5について1つのモデルコントローラ41が情報処理装置12上に配置されている。42はローカルコントローラであり、情報処理装置11,13,14のそれぞれに配置されている。また、ビュー3は全ての情報処理装置11〜14上に配置されている。
【0028】
ネットワークを介して接続される情報処理装置11〜14上へのモデル5のマッピングは上述のサービストポロジに基づいている。また、モデル5とビュー3との関係については、各々の情報処理装置が、ビューを構成可能であるか否かの条件に従う。
【0029】
モデル5により定義されたサービスの動作時には、いずれかのビュー3に与えられた操作に応じ、モデルコントローラ41を通じてモデル5を構成する機能モジュール2が実行される。ユーザはいずれかのビュー3を介して機能モジュール2の入出力結果、すなわちサービスを享受することができる。なお、情報処理装置単体の機能を同時に利用できる場合には、機能モジュール2を操作するためのローカルコントローラ42が同時に動作する。機能モジュール2およびビュー3は単体レベルで操作される。
【0030】
本実施形態に係る協調分散システムのセットアップに係る一般的な動作シーケンスは次の通りである。ユーザがある1台の情報処理装置上で利用したいサービスを選択すると、そのサービスに対応するモデルの定義が解釈される。サービスはユースケースに対応していることが好ましい。サービス定義は、事前に機器に格納されているか、もしくは、ネットワーク経由で他から得ることもある。サービス定義を解釈した情報処理装置は、当該サービスの構築に必要な機能モジュールのモデル情報に基づいて、必要な機能モジュールを決定し、それらの接続を行う。機能モジュールは事前に固定されている場合もあるが、オンデマンドで通信可能な範囲から探索し決定する場合もある。必要な機能モジュールとのネットワーク接続を終えた後、モデルに対するコントローラの配置、および、ビューの構成を行う。これらを終えた後、モデルに対応されたサービスが準備完了の状態となる。
【0031】
(機能モジュールのカテゴリ)上述したように、本実施形態では機能モジュールをその属性、振る舞い、相対関係といった緩い制約に基づいて識別することができるよう構成されている。かかる制約を本明細書では「機能モジュールのカテゴリ」と称する。図6は、機能モジュールのカテゴリを説明するための図である。同図においては、機能モジュールのカテゴリがマトリックス形式で分類されており、縦軸には機能モジュールが扱うメディアの種類が列挙され、横軸には機能モジュールがメディアに加える操作の種類が列挙されている。ここで、メディアの種類は機能モジュールの属性に関する情報に相当し、操作の種類は振る舞いに関する情報に相当する。
【0032】
想定される情報処理装置が実際に備える種々の機能モジュールを、図6のマトリックスにおけるいずれか一の要素すなわちカテゴリに当てはめる。このような機能モジュールのカテゴリは、モデル記述を行うとき、機能モジュールをゆるやかに定義指定する際の識別子として用いられる。
【0033】
図7は、各情報処理装置が実際に有する機能(モジュール)と図6に示した機能モジュールのカテゴリとの対応を示す図である。例えば、「デジタルカメラ」が搭載する「画像保存機能」は「画像蓄積(Is)」に対応している。モデルの定義において機能モジュールの識別にはこの「画像蓄積(Is)」が用いられる。この「画像蓄積(Is)」についての機能モジュールの探索においては「デジタルカメラ」の「画像保存機能」が発見されるかも知れない。また、この「デジタルカメラ」の「画像保存機能」が高機能化されたとしても同様である。なお、該機能モジュールを制御するためのインターフェースの問題はモデルコントローラが解決する。
【0034】
機能モジュールの探索の具体例を図8を参照しながら説明する。例えば図8に示すように、ユーザがB社製テロッパ(以下、「テロッパ」)12を操作して、協調分散サービスを実行する場合、テロッパ12は、図6に示したカテゴリに該当する機能モジュールを発見するべく、ネットワーク通信が可能な範囲において探索を行う。上述したように、サービス定義によれば機能モジュール間の通信可否を知ることができる。
【0035】
探索条件に該当する機能モジュール2はテロッパ12に返答する。テロッパ12は必要な機能モジュール2を取捨選択し、最終的にはサービスを提供するために必要な機能モジュール2の全てが決定される。これら機能モジュール2はモデル5の実体となる。
【0036】
機能モジュール探索における各機能モジュール間のメッセージシーケンスの一例を図9を参照しながら説明する。こでは、テロッパ12内部の画像合成(モジュール)90が他の機能モジュールと通信するセットアップシーケンスであり、テロッパ12から他の情報処理装置に向けてまず機能発見要求(Bid1,Bid2)が発せられる。この(Bid1,Bid2)は、画像生成モジュールを探索する要求であり、それに対して2つの機能モジュール91,92が機能要求返答(Offer1,Offer2)を返答している。実際にモジュール間を接続可能かどうかを(Negotiation1,Negotiation2)により確認した後、テロッパ12から例えば機能モジュール92に対して確定(Agree)が発信され、確定している。次に、画像表示モジュールを発見するために、同様にBid3を発し、要求に応答したモジュール93がNegotiationの後、Agreeによって確定している。
【0037】
(シナリオ定義に基づく通信モデルの決定)上述したように、サービスのモデルをセットアップするプロセスは、大別すると、当該サービスの実現に必要な機能モジュールをサービス定義に基づいて決定するプロセスと、決定された機能モジュール間の通信の手順をシナリオ定義に基づいて決定するプロセスとから構成される。前者のプロセスについては詳述した。以下、後者のプロセスについて詳細に説明する。
【0038】
モデル5に対するメソッド、すなわちサービスの実行のための制御インターフェースは、サービスに必要な機能モジュールを操作するために一元的に管理される制御インターフェースであって、ここでは、5つ(画像一覧表示(View_Image_ALL)、選択画像表示(View_Selected_Image)、テロップ文字表示(View_Overlay_Image)、位置選択(Select_Overlay_Image)、実行(Exec_Overlay_Image))を例とする(図10参照)。これらは、図2に示したシナリオ定義ファイル120において定義されている。
【0039】
サービスの実行は、モデルコントローラ41(もしくはいずれかのビュー3)を通じ、モデル5に対するメソッドを呼び出すことにより行われる。いずれかの情報処理装置においてビュー3を操作することによりユーザから与えられたサービス実行要求に応じて、モデルコントローラ41内のプログラムは、モデル5のメソッドを呼び出す。各々の情報処理装置は、そのメソッド呼び出しの情報に応じてモデル内部の所定の機能モジュールを駆動する。これによりモデルの状態はアップデートされ、その結果はビュー3を介して外部に出力される。
【0040】
図11乃至図15を参照して、それぞれのメソッドに対応する制御の流れ(シナリオ)の例を説明する。図11は画像一覧表示、図12は選択画像表示、図13はテロップ文字表示、図14は位置選択、図15は実行、についてのそれぞれのシナリオを示している。例えば図11のシナリオは、ユーザがモデルコントローラ41を介して画像生成モジュールに対し所定の枚数の画像を転送する指示を出すと、その結果がビュー3を介して得られるというものである。図11乃至図15において、各メソッドに対応するシナリオ例(制御及びデータの流れ)は点線又は実線の矢印で示してある。
【0041】
図16は、各機能モジュールのネットワーク入出力制御を掌るネットワーク制御部(EX)6を示している。各装置のネットワーク制御部(EX)6に対し、モデルコントローラ41のネットワーク制御部(EX)6から制御情報が送られる
図17はシナリオ定義に基づくモデルコントローラ41のセットアップを示す図である。情報処理装置12のモデル制御部123は、ファイル120からシナリオ定義を読み出し、同シナリオ定義から、モデル5をコントロールするためのプログラム125を抽出し、モデルコントローラ41にアップロード(転送)する。プログラム125は、必要に応じて、シナリオ定義に基づき自動生成される。
【0042】
上述した図11乃至図15のシナリオは、図18に示すような、シナリオ定義記述に基づいている。サービスを実行させる指示がなされた場合、図18のシナリオ定義の記述内容が解析される。機能モジュールを提供する情報処理装置に対し、図18に記載のコントロール(Control)の単位で、各機能モジュールがどのように振舞うかの通信手順を表すものが、上述のプログラム125である。なお、シナリオ記述の情報が該当する情報処理装置に転送されるか、自身でそのシナリオ情報を解析することで、それぞれの情報処理装置において、各機能モジュールがどのように振舞うかの指定がされる場合もある。本実施形態では、「アルバム作成サービス(Album Service)」という1つのサービスについて、5つのコントロール(Control)が定義されている。例えば2番目のコントロール(View Selected Image)には、「4番ノードから制御されたならば、4番ノードは0番の通信パスに対して情報をGETする要求を出す。あるいは、0番ノードから制御されたならば、0番ノードは0番の通信パスに対して、情報をPUTする要求を出す。あるいは、もし、それ以外のノードからコントロールされた場合、該当ノードは、4番ノードに対して、0番の通信パスに対し、データをGETすることを依頼する」旨が記述されている。このようなシナリオ定義に従い、関連する機能モジュールを持つ情報処理装置は、各機能モジュールが指示とおりに動作可能になるようにセットアップされる。このセットアップに係る情報はモデル情報格納部122に記録される。
【0043】
(インターフェース情報)例えば図10に示したシステム構成例において、ネットワーク動作時には、モデルコントローラ41の制御インターフェースに関する情報として、例えば「操作メニュー」がビュー3を通じてユーザに提示される。その様子を図19に示す。図19に示す操作メニュー200はユーザインターフェースであり、画像一覧表示を指示するためのボタン201、選択画像表示を指示するためのボタン202、テロップ文字表示を指示するためのボタン203、位置選択を指示するためのボタン204、実行を指示するためのボタン205から構成されている。
【0044】
操作メニュー200においていずれかのボタンがユーザにより選択されると、その指示がモデルコントローラ41に通知される。モデルコントローラ41はこれに応じてモデル5に動作の指示を伝える。各情報処理装置内部のモデル制御部は、モデル5からの指示に応じて機能モジュールを実行させる。各情報処理装置内部における機能モジュールの動作による情報処理結果はビューを通じて出力される。
【0045】
(情報処理装置の他の構成例および協調分散動作時の被制御)図20に示すように、情報処理装置11,14は、機能モジュール2およびビュー3を備える。情報処理装置12は、機能モジュール2、ビュー3、およびモデルコントローラ41を備える。情報処理装置13は、機能モジュール2のみを備える。つまり、図5に示したシステム構成例とは異なり、情報処理装置13はビューを備えていない。
【0046】
モデル5を構成する全ての機能モジュールは、モデルコントローラ41を通じて制御されるが、ビューの更新については、モデル5は、全ての情報処理装置ではなく、ビューを搭載している情報処理装置のみを制御する。具体的には、ビューを備える情報処理装置11,12,14のみを制御する。なお、ビューを搭載していても、搭載していない情報処理装置と同じ扱いとし、あえてビュー機能を動作させないような制御がなされる場合もある。
【0047】
(サービス実行制御のみ)また、図21に示すように、情報処理装置17はビュー3およびモデルコントローラ41を備え、機能モジュール2を備えていない。かかるシステム構成例において、情報処理装置17は、シナリオ情報を解析し、その内容に基づいて関連する情報処理装置のネットワーク制御部6を制御する。シナリオ定義(ファイル)は、情報処理装置17又は他の情報処理装置11〜14のいずれかが所有しているものとする。このように、サービスを構成する機能(モジュール)は提供せずに、専らサービス全体の実行制御のみを司るように情報処理装置を構成してもよい。
【0048】
以上説明した本発明の実施形態によれば、ユーザに提供するサービスを実現するために必要な機能モジュールを、固定的に決定せず、その属性情報、またはそのモジュールの振る舞いのみによりゆるやかに指定し、その組み合わせ情報をサービス定義とする。かかるサービス定義に基づいて実際に結合されるモジュールを決定し、システムを構成する。これにより、同じサービスを実現するにあたり、さまざまな機能モジュールを柔軟に結合して構成することを可能とすると共に、高機能サービスを実現するにあたり、機能モジュールの高度化のみで、サービス定義を変更する必要がない。また、実際にそれぞれのモジュールをどのように接続して、どのようなデータを、どの機器のユーザインターフェースを用いて制御するかを示すシナリオ定義に基づき、実際に、モジュールを持つ機器の制御プログラムを生成することで、各機器の制御プログラムをその都度書き換える必要もない、といった作用効果を得ることができる。
【0049】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【0050】
【発明の効果】
以上説明したように、本発明によれば、ネットワークを介して接続された各情報処理装置が搭載する機能モジュールを用いて実現される協調分散サービスをモデルに基づいて構築することにより柔軟性および拡張性の高い協調分散システム及び協調分散システムの構築方法を提供できる。具体的には、本発明ではユーザに提供するサービスを実現するために必要なモジュール(各情報処理装置に搭載される機能モジュールの組み合わせ)を従来のように予め詳細に定めておくのではなく、属性や振る舞いのみによりゆるやかに指定し、その組み合わせ情報をサービス定義とする。サービス定義に基づいて実際に結合されるモジュールを決定し、システムを構成する。したがって、協調分散システムの柔軟性を向上できる。さらに、特定の機器やモジュールが動作しない場合に全体が動作しなくなることを防止できる。また、トポロジが同じサービス定義において、各機能モジュールの高度化がなされた場合であってもサービス全体をスムーズに高度化でき、分散協調システムの新しいアプリケーションを生み出すことが可能となる。また、サービス毎にその操作の手順を規定するシナリオ定義の仕組みによれば、各情報処理装置の各モジュールにそれらの事前設定を行っておくことなしに、必要に応じて機能モジュールに所望の振る舞いを実現するための指示を与えることができることから、各機能モジュールの制御プログラム(特に、ネットワーク制御や、他機能モジュールとの入出力制御モジュール)の汎用化も可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る協調分散システムの概念的構成を示す図
【図2】協調分散システムが提供するサービスのモデル構築(セットアップ)に係る情報処理装置の機能構成を示すブロック図
【図3】情報処理装置の具体例、および該情報処理装置が備える機能モジュールおよびその一部から構成されるモデルの具体例を示す図
【図4】機能モジュールの特定を、その機能のカテゴリに基づいて行った一例を示す図
【図5】構築されたモデル、ビュー、およびコントローラの関係を示す図
【図6】機能モジュールのカテゴリを説明するための図
【図7】各情報処理装置が実際に有する機能(モジュール)と図6に示した機能モジュールのカテゴリとの対応を示す図
【図8】機能モジュールの探索の具体例を説明するための図
【図9】機能モジュール探索における各機能モジュール間のメッセージシーケンスの一例を示す図
【図10】モデルに対するメソッド(サービスの実行のための制御インターフェース)の一例を示す図
【図11】シナリオ例(画像一覧表示)を示す図
【図12】シナリオ例(選択画像表示)を示す図
【図13】シナリオ例(テロップ文字表示)を示す図
【図14】シナリオ例(位置選択)を示す図
【図15】シナリオ例(実行)を示す図
【図16】各機能モジュールのネットワーク入出力制御を掌るネットワーク制御部(EX)を示す図
【図17】シナリオ定義に基づくモデルコントローラのセットアップを示す図
【図18】シナリオ定義の記述例を示す図
【図19】ユーザインターフェースの一例を示す図
【図20】協調分散システムの他の構成例を示す図
【図21】協調分散システムの他の構成例を示す図
【符号の説明】
1,11〜17…情報処理装置、2…機能モジュール、3…ビュー(ユーザインターフェース)、4…コントローラ、5…モデル、6…ネットワーク制御部、41…ネットワーク動作時のモデル制御用のコントローラ(モデルコントローラ)、42…単体動作時のコントローラ(ローカルコントローラ)
Claims (8)
- それぞれが所定の機能を行う機能モジュールを有する1つ以上の通信装置と、前記通信装置のいずれかに配置され、すべての前記通信装置を制御する主制御手段と、を有する協調分散システムであって、
前記通信装置のいずれかに設けられ、前記協調分散システムが提供可能な1つ以上のサービスと、各サービスを提供するのに必要となる機能モジュールの情報とが定義されたサービス情報定義を記憶するサービス情報記憶手段と、
前記通信装置のいずれかに設けられ、前記サービス情報定義で定義されたあるサービスを提供するのに必要となる機能モジュール同士が通信に用いる通信手順が定義された通信情報定義を記憶する通信情報記憶手段と、
前記通信装置のいずれかが一のサービスの提供要求を受けたとき、1つ以上の通信装置についてそれぞれが有する機能モジュールを検索し、前記サービス情報定義に定義された機能モジュールの情報に従い前記一のサービスの提供に必要となる機能モジュールに、どの通信装置が有する機能モジュールを選択するのかを動的に行う、前記通信装置のいずれかに配置された機能モジュール選択手段と、を備え、
前記機能モジュール選択手段が選択した機能モジュールを有する前記通信装置が、前記通信情報定義に基づく前記主制御手段からの指示により当該機能モジュールの実行を制御する、あるサービスの要求時に動的に分散処理環境を構築することを特徴とする協調分散システム。 - 前記サービス情報定義は各機能モジュールが提供可能な機能により分類したカテゴリ情報を含み、前記機能モジュール選択手段が機能モジュールを選択するときは、このカテゴリ情報をもとに前記一のサービスの提供に必要となる機能モジュールを選択することを特徴とする請求項1に記載の協調分散システム。
- 前記機能モジュール選択手段が機能モジュールを選択した後、該選択した機能モジュールの情報と、前記通信情報定義に含まれる前記選択した機能モジュール間の通信手順に従った手順を実行するプログラムとを、前記主制御手段に対して送信する通信手順送信手段を、前記通信装置のいずれかに備えることを特徴とする請求項1に記載の協調分散システム。
- 前記通信装置のいずれかが所有する、前記一のサービスの提供に用いるユーザインターフェースをさらに備え、
前記主制御手段が、このユーザインターフェースを介して与えられた指示に応じて、前記プログラムを実行することを特徴とする請求項3に記載の協調分散システム。 - それぞれが所定の機能を行う機能モジュールを有する1つ以上の通信装置と、前記通信装置のいずれかに配置され、すべての前記通信装置を制御する主制御手段と、を有する協調分散システムを構築する方法であって、
前記協調分散システムが提供可能な1つ以上のサービスと、各サービスを提供するのに必要となる機能モジュールの情報とが定義されたサービス情報定義を前記通信装置のいずれかにおいて記憶するサービス情報記憶ステップと、
前記サービス情報定義で定義されたあるサービスを提供するのに必要となる機能モジュール同士が通信に用いる通信手順が定義された通信情報定義を前記通信装置のいずれかにおいて記憶する通信情報記憶ステップと、
前記通信装置のいずれかが一のサービスの提供要求を受けたとき、1つ以上の通信装置についてそれぞれが有する機能モジュールを検索し、前記サービス情報定義に定義された機能モジュールの情報に従い前記一のサービスの提供に必要となる機能モジュールに、どの通信装置が有する機能モジュールを選択するのかを動的に行う機能モジュール選択ステップと、を備え、
あるサービスの要求時に動的に分散処理環境を構築することを特徴とする協調分散システムの構築方法。 - 前記サービス情報定義は各機能モジュールが提供可能な機能により分類したカテゴリ情報を含み、このカテゴリ情報をもとに前記一のサービスの提供に必要となる機能モジュールを前記機能モジュール選択ステップにおいて選択することを特徴とする請求項5に記載の協調分散システムの構築方法。
- 前記機能モジュール選択ステップにおいて機能モジュールが選択された後、該選択された機能モジュールの情報と、前記通信情報定義に含まれる前記選択された機能モジュール間の通信手順に従った手順を実行するプログラムとを、前記主制御手段に対して送信する通信手順送信ステップを備えることを特徴とする請求項5に記載の協調分散システムの構築方法。
- 前記通信装置のいずれかに設けられ、前記一のサービスの提供に用いられるユーザインターフェースを介して与えられた指示に応じ、前記プログラムを実行する主制御ステップを備えることを特徴とする請求項7に記載の協調分散システムの構築方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003039748A JP2004252557A (ja) | 2003-02-18 | 2003-02-18 | 協調分散システムおよび協調分散システムの構築方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003039748A JP2004252557A (ja) | 2003-02-18 | 2003-02-18 | 協調分散システムおよび協調分散システムの構築方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004252557A true JP2004252557A (ja) | 2004-09-09 |
Family
ID=33023836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003039748A Pending JP2004252557A (ja) | 2003-02-18 | 2003-02-18 | 協調分散システムおよび協調分散システムの構築方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004252557A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018146923A1 (ja) * | 2017-02-07 | 2018-08-16 | 三菱電機株式会社 | 分散協調システム、機器行動監視装置及び家電機器 |
-
2003
- 2003-02-18 JP JP2003039748A patent/JP2004252557A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018146923A1 (ja) * | 2017-02-07 | 2018-08-16 | 三菱電機株式会社 | 分散協調システム、機器行動監視装置及び家電機器 |
JPWO2018146923A1 (ja) * | 2017-02-07 | 2019-06-27 | 三菱電機株式会社 | 分散協調システム、機器行動監視装置及び家電機器 |
CN110235114A (zh) * | 2017-02-07 | 2019-09-13 | 三菱电机株式会社 | 分散协调系统、设备行动监视装置和家电设备 |
US11082250B2 (en) | 2017-02-07 | 2021-08-03 | Mitsubishi Electric Corporation | Distributed coordination system, appliance behavior monitoring device, and appliance |
CN110235114B (zh) * | 2017-02-07 | 2023-06-23 | 三菱电机株式会社 | 分散协调系统、设备行动监视装置和家电设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7516201B2 (en) | Communication device and software for operating multimedia applications | |
RU2345406C2 (ru) | Способ уведомления, устройство подключения, способ осуществления связи и программа | |
US20080201723A1 (en) | Method of Automatically Managing Associations Between Services in a Distributed Environment | |
US8365201B2 (en) | Multi-function device ID with unique identifier | |
US11940778B2 (en) | Method of commissioning a field device in an industrial system network | |
US8103363B2 (en) | Device control system | |
JP2006065811A (ja) | リソース管理方法、装置及びプログラム | |
JP4265413B2 (ja) | 仮想私設組織に対するポリシの実施システム及びその方法 | |
Rigole et al. | Using Jini to integrate home automation in a distributed software-system | |
JP2003308264A (ja) | ネットワーク装置とネットワーク装置制御方法 | |
JP2010109650A (ja) | 情報処理装置及びこれを含む画像形成システム | |
JP2004252557A (ja) | 協調分散システムおよび協調分散システムの構築方法 | |
CN108804054A (zh) | 控制数码复合机的方法及应用其的系统 | |
CN101521592B (zh) | 一种建立打印机snmp代理的方法及装置 | |
JP4298600B2 (ja) | ネットワーク機器構築装置および機器構成管理ユニットおよび機器構成管理方法ならびにコンピュータ・プログラム | |
JP5140552B2 (ja) | 情報処理装置及びこれを含む画像形成システム | |
KR20220108967A (ko) | 외부 전자 장치를 제어하기 위한 어플리케이션을 생성하는 방법 및 이를 지원하는 전자 장치 | |
CN101390074B (zh) | 面向对象发现框架 | |
US20050246595A1 (en) | Network system, information processing apparatus, master apparatus, and apparatus information display method | |
JP5084699B2 (ja) | 情報処理装置及びこれを含む画像形成システム | |
KR102016810B1 (ko) | 사물을 제어하는 다수 IoT 플랫폼을 생성하는 액추에이터 컴포지션 시스템 | |
JP2002344961A (ja) | 画面構成方法、画面構成装置、及び画像表示システム | |
JP7189104B2 (ja) | 情報処理システム、及び情報処理システムの制御方法 | |
JP5389413B2 (ja) | 画像形成システム | |
JP4743178B2 (ja) | ネットワークシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070911 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071112 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071211 |