JP2004038872A - Method and program for changing policy of client equipment and client system in distributed processing system - Google Patents

Method and program for changing policy of client equipment and client system in distributed processing system Download PDF

Info

Publication number
JP2004038872A
JP2004038872A JP2002198755A JP2002198755A JP2004038872A JP 2004038872 A JP2004038872 A JP 2004038872A JP 2002198755 A JP2002198755 A JP 2002198755A JP 2002198755 A JP2002198755 A JP 2002198755A JP 2004038872 A JP2004038872 A JP 2004038872A
Authority
JP
Japan
Prior art keywords
client
policy
access policy
request
corba
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
Application number
JP2002198755A
Other languages
Japanese (ja)
Inventor
Yutaka Irie
入江 豊
Toshihiko Kanda
神田 敏彦
Koichi Shimohara
下原 幸一
Kyoji Yamashita
山下 恭司
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002198755A priority Critical patent/JP2004038872A/en
Publication of JP2004038872A publication Critical patent/JP2004038872A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a client system of a distributed processing system for facilitating a change of an access policy. <P>SOLUTION: Client equipment as remote equipment has client software Ynew for issuing a request to a distributed object X capable of accepting a request from remote equipment B connected via a network and for performing transfer of the request to be issued by communication of the preliminarily provided access policy or operation conditions. The client equipment is provided with an acquisition means 200 for acquiring the access policy being details of the communication or the operation conditions in the remote equipment in the case of transferring the request from a means for holding it so that its contents can be changed; and a means 200 for transferring the access policy obtained via the acquisition means to the client software and for reflecting it on operation setting on the client's side so as to be conditions of communication or operations corresponding to the access policy. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークで接続される複数の計算機要素による分散処理環境、例えば、CORBAを導入した分散処理システムの如き、分散オブジェクト環境に係わり、特にネットワークで接続されたリモート機器からのリクエストを受け付けることが可能な分散オブジェクトのリクエスト授受に当たっての前記リモート機器に対する通信や動作の条件の詳細であるアクセス・ポリシを容易変更可能にした分散処理システムにおけるクライアント機器およびクライアントシステムのアクセス・ポリシ変更方法および分散処理プログラムに関する。
【0002】
【従来の技術】
多数の組み込み機器(エンベッド機器)を用いて構成したシステムであって、そのシステムの組み込み機器それぞれがCPU(プロセッサ)を制御の中枢に持つ独立したインテリジェントなシステムであり、分散環境を持つシステムがある。ここで、分散環境とは、ネットワーク・アプリケーションを構築する主要な技術の一つである分散オブジェクト指向技術による処理環境であって、これはデータの処理や操作を、手続きの流れとしてではなく、「もの(オブジェクト)」同士の関係としてとらえる考え方で、各種オブジェクト(オブジェクト指向プログラミングにおいて、プログラムを構成する基本的なモジュール)を分散配置して処理を分担させて進めていく方式である。
【0003】
そして、複数のオブジェクトがあって、各オブジェクトに定義するオペレーションを、所定のインタフェース言語(IDL)で定義する仕様を与え、定義されたオブジェクトをクライアントから所定の手続で呼べるようにするためのルールを決めたものとしてCORBA仕様がある。
【0004】
周知のように、CORBAとは、“Common Object Request Broker Architecture”の略であり、分散オブジェクト指向技術における標準的技術の一つであって、分散オブジェクト技術の標準化団体であるOMG(Object Management Group) が策定した規格である。
【0005】
CORBAは、個別のハードウエアやOSに依存せずに、分散したオブジェクトをネットワーク上で共有化し、統合するアーキテクチャの開発を目的とした標準仕様であり、CORBAの規格では、バージョン2.4(CORBA 2.4 )において、特にリアルタイム処理分野や、組み込みシステム分野を対象とした処理優先度の概念を分散オブジェクトに導入した規格としてリアルタイム・コルバ(Real−time CORBA、以下、RT−CORBAと称する)が追加された。そして、その処理優先度に関する標準仕様の部分を、特に、RT−CORBA 1.0と呼んでいる。従って、CORBA2.3以前の規格には、RT−CORBA仕様は含まれていない。
【0006】
また、RT−CORBA1.0自体は、CORBAのオプション仕様であるので、CORBA2.4以後に対応するCORBA製品であっても、必ずしもRT−CORBA仕様に準拠しているとは限らない。従って、以下で、「RT−CORBAを含まないCORBA」と記載する場合は、上記の両者を指すものである。
【0007】
RT−CORBAの環境において優先度を扱うひとつの典型的な方法として、オブジェクトは、そのオブジェクトを生成する段階で所望の優先度を指定しておき、当該優先度で活性化しておく方法がある。また、別の方法では、クライアントがリクエストを出す際に、処理優先度をオブジェクトに伝え、その優先度でオブジェクトの処理を実施する方法もある。いずれの方法にしても、そのオブジェクトに対するリクエストが、リモートにあるクライアントから到着したとき、先に指定した優先度を与えたタスクが生成され、リクエストの処理をそのタスク上で実行する。処理の要求(リクエスト)が同時に多数発生した場合、優先度の高いリクエストから実行されることになるが、優先度が同じ場合は、所定のタスク・スケジューリングに従って処理される。これらタスクへの優先度の割り当てや、タスク・スケジューリングなどの処理は、実際にはOSが実施するのであるが、後に説明するORBが、これらの処理の橋渡しを行う。
【0008】
CORBA仕様のORB環境で動作するオブジェクトをCORBAオブジェクトと呼ぶ。一般的な利用方法として、CORBAオブジェクトは一つ以上のオペレーションを提供する。そして、CORBAオブジェクトが用意するオペレーションを呼び出すには、ORBを経由してオペレーションの呼び出しを実施すればよい。
【0009】
すなわち、ORBを利用してオペレーションの呼び出しを実施するプログラムがCORBAのクライアントである。CORBAクライアントは、同時にCORBAオブジェクトであってもよいし、また、そうでなくともよい。
【0010】
また、CORBAの分野では、オペレーションの呼び出しに伴う通信のことを、特に「リクエスト」とよぶ。以下では、「リクエスト」と「オペレーションの呼び出し」は、同じ意味で使用している。
【0011】
あるオブジェクトが、どのようなリクエストを受け付けることが可能であるかという情報は、リクエストを発行する側で知っておく必要がある。故に、どのようなインタフェースを有するかという情報を明らかにするために、IDL(Interface Definition Language)が利用される。
【0012】
このように、CORBAは、ヘテロジニアスな分散環境を許容する。OSが違っていても差し支えないのである。
【0013】
その一方で、特にRT−CORBAを使用する場合においては、ポリシの調整の問題がある。これは、機器の持つCPUの能力や通信能力、ネットワークの伝送速度といったリソースの能力が密接に絡む問題である。すなわち、機器がネットワークで接続され、各機器はハードウエアやソフトウエアとしての能力や要求される機能に差違があり、また、負荷の点から見た余力に差違があり、ネットワークの伝送状態に変動があり、… といったように、種々の要件が重なって、運用状態でのシステム全体の動作にバランスを欠いたり、所望の性能が発揮できなくなったりする可能性があることから、CORBAおよびRT−CORBAでは、数十種類ものポリシ・オブジェクトを定めており、CORBAクライアント・プログラムや、サーバ・プログラムにおいて、そのポリシ・オブジェクトに、所定のポリシの値をパラメータとして設定する記述を追加することにより、ORBの挙動に原則を与え、性能に影響を与えることができる。
【0014】
ところで、特に、RT−CORBAを使ってシステムを構築する立場からは、これらのポリシに与えるべき値の中には、システムの設計段階では決めることができず、システムの構築が完了し、運用開始する段階においてポリシ(方針や原則や方策)を試行錯誤で調整したほうが明確に具合がよいものが多い。
【0015】
例えば、クライアントからサーバにコネクションを確立し、このコネクションを利用して両者の間で伝送を行おうとした場合、コネクションに通常のコネクションとプライベートコネクションをコネクションとプライベートコネクションの双方を確保し、特別のセンサからの信号についてはプライベートコネクションを利用して伝送を行い、他の信号については通常のコネクションを利用して伝送を行うようにして、特別のセンサからの信号の伝送には他の信号の伝送に使われることのない専用のコネクションを用いて優先させるようにするといった設定は、与えられるポリシに従って成され、後述するORBにより管理運用されてその設定された内容のように利用に供されることになるが、このポリシの内容で試験運転してみたところ、敢えてプライベートコネクションを設けずとも、支障無く運用できることがわかった、といったことがあり、この場合、「プライベートコネクションと通常のコネクションの双方を確保する」という当初の構想から、「通常のコネクションのみ」とするといった方針の転換をはかることとなる。これは、一般に性能を確保しようとすればするほど、リソースの消費が多くなるという原則があり、それが設計、実装段階では、どちらが適性であるかを判別することができない例である。
【0016】
これは試運転の結果、はじめて明らかとなって必要となったポリシの変更である。また、あるいは、運用中のシステムに機器を増設したり、機能を変更したりするものが生じとすると、これにより、今までは通常のコネクションのみを利用して全ての信号の伝送を行うようにしていたが、或る信号については支障を来すことになったといったようなこともあり、この場合、『通常のコネクションのみ』という当初の構想から、『プライベートコネクションと通常のコネクションの双方を確保する』とするといった方針の転換をはかることとなったとすると、これはシステム変更の結果、生じることとなったポリシの変更である。
【0017】
このように、ポリシの設定方法は実際の稼動状況に合わせて調整する必要がある。これはクライアント(client;ネットワーク上でほかのコンピュータやソフトウエアにサービスを要求する側のコンピュータまたはソフトウエア)がサーバ(server;サービスを提供する側のコンピュータやソフトウエア)と接続しようとする際に発生する接続条件や動作条件などの設定に関しての問題であるが、極めて厄介な問題でもある。
【0018】
ここでは、このポリシの変更についての問題を中心に考えることとするが、それに先立ち、分散オブジェクトのリクエストについて触れておく。
【0019】
図14は、従来の分散オブジェクトのリクエスト方法を説明する図であり、機器Aと機器Bとの間でのリクエスト法を例として説明する図である。機器Aはサーバ側の構成機器であって、CORBAオブジェクトXとORB(Object Request Broker:オブジェクト・リクエスト・ブローカ)とを持つサービス機器であり、機器Bはクライアント側の構成機器であってCORBAクライアントプログラムYとORBとを持つクライアント機器であり、CはCORBAのネーミング・サービスを提供する手段であり、別機器または機器Aまたは機器Bいずれかに保持されている。そして、例えば、機器A、Bは、それぞれ開発製造会社が異なる製品であるとし、それぞれ異なるOS上で動作しているシステムであると仮定する。そして、これらがネットワーク上で接続されて動作するものとする。
【0020】
機器Aにおいては、CORBAオブジェクトXを生成・活性化するときに当該オブジェクトXについてのリファレンス(その分散オブジェクトに付与した接続条件や動作条件等の必要情報を含む当該オブジェクトを一意に示すことができる情報)を公開する。そのときに、多くの場合に利用されるのが上述したネーミング・サービスである。
【0021】
機器Bにおいては、ネーミング・サービス機能部Cに問い合わせ、リクエスト先となるCORBAオブジェクトXのリファレンスをもらってくる。
【0022】
要するに、CORBAプログラムの開発に当たっては、機能実現に必要な各オブジェクトそれぞれについて、最初からそれぞれ固有の名前を決めておくと便利であることから固有名を利用する。これにより、どの機器でオブジェクトが稼動するかとは独立に、その固有の名前を用いてオブジェクトを特定することができる。
【0023】
ここでは、機器AのオブジェクトXをリクエストするクライアント側(機器A)におけるCORBAクライアントプログラムYでは、ネーミング・サービス機能部Cを利用したオブジェクト・リファレンスの問い合わせを実行し、これによりネーミング・サービス機能部Cから返された機器AにおけるXなる名前のオブジェクトについてのCORBA世界での特定できる情報すなわち、オブジェクト・リファレンスを取得し、これを用いてCORBAオブジェクトXにリクエストを出す。
【0024】
ネーミング・サービスに対するオブジェクト・レファレンスの問い合わせは、具体的には、設計やメンテナンスにおいて、もっとも便宜となる名前の文字列を引数にして対応するオブジェクトのリファレンスをこのネーミング・サービス機能部Cからとってくることであり、これにより、CORBAクライアントプログラムYの実行に伴う当該クライアントプログラムYからオブジェクトXに対するリクエストができることになる。
【0025】
なお、CORBAでは、オブジェクト・リファレンスをクライアントに渡す方法として、ネーミング・サービスを使用しない手段もあり、その1つはオブジェクト・リファレンスをCORBAで定められた文字列形式とよぶ形式に変換し、それをファイルとして別途のネットワーク手段により、クライアントに引き渡す方法もある。本発明は、ネーミング・サービスを使用する場合でも、使用しない場合の両者に対応する。
【0026】
なお、CORBA仕様の機器A,BにはORBを設けるが、このORBとは、CORBAの基本サービスを提供すると共に、分散環境におけるオブジェクト間のやり取りを実現するためのメカニズムを提供するソフトウエアであって、リモートオブジェクト同士の相互的なやり取りを実現するために必要なミドルウエアであり、オブジェクト間での要求と応答をシームレスに実現するための仲介役としての機能を果たすものである。
【0027】
動作を追ってみる。まず、機器AはCORBAサーバプログラムを持つが、このCORBAサーバプログラムはRT−POA(Rial−Time Potable Object Adapter:ポータブル・オブジェクト・アダプタ) を生成する。RT−POAはRT−CORBAで定められている優先度を付けたり、ポリシ(方針や原則や方策)を設定したりするためのもので、このRT−POA を予め用意する。RT−CORBAを利用するためには、このRT−POA は先に作っておかねばならないと規定されているので、まずこれを用意するのである。
【0028】
CORBAサーバプログラムには、前記のCORBAオブジェクトXが含まれているとして、このCORBAオブジェクトXの出番が生じたとする。すると、CORBAサーバプログラムは当該オブジェクトXを生成すると共に活性化する。活性化とは、あるPOAとあるオブジェクトを結びつけてそのPOAの上で、すなわちそのPOAが持つポリシに従って、そのオブジェクトに対するクライアントからのリクエストを受け付けることを可能するということを指すものであり、RT−CORBAの場合、RT−POA 上でそのオブジェクトXを動作できる状態にすることである。そして、この活性化により、そのオブジェクトXにはRT−POA に則った必要な優先度の付与された、しかも、前記ポリシに従った実行が可能となる。
【0029】
ここでCORBAオブジェクトXはクライアント側からのリクエスト待ちとなることから、サーバ側の処理は待ち状態となる。
【0030】
CORBAオブジェクトXはリモートからアクセスしてもらわねばならないので、いま、このようなオブジェクトが利用可能であることを知らせるための公開情報であるオブジェクト・リファレンスを外部に出す(公開する)必要がある。
【0031】
CORBAサーバプログラムはCORBAオブジェクトXを生成・活性化するときに当該オブジェクトXについてのリファレンス(その分散オブジェクトに付与した優先度の情報を含む当該オブジェクトを一意に示すことができる情報)を公開し、ネーミング・サービスで利用できるようにする。
【0032】
クライアント側(クライアント側のCORBAプログラムであるCORBAクライアントプログラムY)は、オブジェクト・リファレンスを辞書引きのようなかたちでネーミング・サービス機能部Cに問い合わせて、リクエスト先となるCORBAオブジェクトXのリファレンスをもらってくる。
【0033】
ここで、クライアントがサーバと接続しようとする段階を眺めてみる。まず、CORBAでは、デフォルトのプロトコルとしてIIOP(Internet Inter−Orb Protocol) を使用する規約であるが、その他のプロトコルを使用することもできる。RT−CORBAでは、使用するプロトコルの優先順位を、1つのポリシとして保持できる。これは、クライアントとサーバで、共通して使用できるプロトコルで通信するように調整する必要があるため、使用するプロトコルの優先順位をプロトコルポリシーとして、保持するのである。つぎに、標準のIIOPを使用する場合は、これはTCPに基づくコネクション型の通信であるので、サーバとクライアントの両者のORB間でコネクションを確立する必要がある。
【0034】
このコネクションの開設であるが、例えば、クライアントである機器Bからサーバである機器Aに対してコネクション確立の手続を開始するに当たり、機器BのCORBAクライアントプログラムYは接続条件や動作条件などについてそのポリシ設定内容に従った内容を持つようにコネクションを確立する。その際の条件は予め設定されたリクエスト(要求)の発信方式や通信方式などの詳細であるポリシ(アクセス・ポリシ)に従うことになるが、当該ポリシに従った条件は機器BのCORBAクライアントプログラムYに埋め込まれるかたちとなり、これがORBに渡されて分散オブジェクトのリクエストの際に、従う条件としてORBで利用されることになる。
【0035】
【発明が解決しようとする課題】
クライアントがサーバと接続しようとする段階において、例えば、クライアント機器Bからサーバ機器Aに対してネットワークを経由するリクエストを開始するに当たり、クライアント機器BのCORBAクライアントプログラムYは接続条件や動作条件などについてその設定内容に従った内容を持つように通信を実施する。その際の条件は予め設定されたアクセス・ポリシに従うことになるが、当該ポリシに従った条件は従来においては、クライアント機器BのCORBAクライアントプログラムYに埋め込むようにしていた。そして、これがCORBAクライアントプログラムYからクライアント機器BのORBに渡され、分散オブジェクトのリクエストの際に、従う条件として当該ORBで利用されることになる。
【0036】
クライアント機器においては、サーバ側にリクエストするなどアクセスするに当たっては、(a)タイムアウト・ポリシ、(b)クライアント・プロトコル・ポリシ、(c)プライオリティ・ポリシ(優先度モデル)、(d)コネクション,oneway,同期スコープといったアクセス・ポリシが関係する。
【0037】
しかも、クライアント機器側でのポリシの設定情報は、自己から見てアクセスするサーバ別にそれぞれ必要となるから、それぞれCORBAクライアントプログラムY内に埋め込んで定義してある現状においては、いずれかに変更の要が生じるたびにソースプログラムの手直しというかたちをとらねばならなくなる。
【0038】
そして、機器BのCORBAクライアントプログラムYはその処理内容などをソースプログラムとして記述したものをコンパイルして実行プログラム化したものを用いるため、ポリシ変更は大変な手間がかかる。その一方で、ポリシ変更の要求は絶えることがない。
【0039】
例えば、クライアントからサーバにリクエストを送信する場合に、コネクション型のプロトコル(IIOPなど)を利用してクライアント側から或る要求を出し、その要求に対するサーバ側からの応答を待つという処理を行おうとした場合に、タイムアウト処理について考慮する必要がある。すなわち、そのタイムアウトの時間設定やタイムアウトの実行の有無などを設定する必要がある。そして、この設定は、予定したポリシに従ってソースプログラム中に記述しておくことにより行えることになるが、これが試験運転してみたところ、適切でないことがわかれば値を変更する必要に迫られる。
【0040】
CORBAを使用するネットワークでは、前述のクライアント、サーバ以外の機器も接続されていることが通常であり、一般に、ネットワークの稼動状況を事前に知ることは困難である。
【0041】
開発現場や調整現場では最適値は値を加減しながら試行錯誤的に見つけ出すことになるので、最適値が見つかるまではその都度、ソースプログラムの手直し、再コンパイルと云った作業を経ることになる。また、最適値が見つかってその値で運用していても、機器の増設などのシステムに変更があった場合、最適値ではなくなってしまうこともあり、再び、最適値を見つけ直さねばならなくなる。ポリシの変更に伴うソースプログラムの変更はシステムの運用前はもちろんのこと、運用後もしばしば遭遇する問題である。
【0042】
このように、多数の組み込み機器をネットワークで接続し、RT−CORBAを適用するようにしたシステムにおいては、CORBAクライアントプログラムよりサーバ(サーバ側のオブジェクト)をリクエストするに当たり、予め予定した接続条件などのポリシに従った接続と運用をORBにより行うようにするが、クライアント側とサーバとの間においては各クライアントはサーバ別にそのポリシの内容を細かく分けて定めるので、システム構成の変更などがあると、ポリシ変更が必要となる。そして、ポリシ変更には、ポリシの変更に伴うソースプログラムの変更が必要であり、この場合、ポリシ変更済みの実行プログラムを得るには、ソースプログラムの手直しと、その手直し済みのソースプログラムのコンパイルという作業が必要で、ポリシの変更には時間と手間がかかることになる。
【0043】
その一方で、ポリシ変更の要求は絶えることがないことから、ポリシ変更をもっと手軽に行い得るようにする仕組みの早急な開発が嘱望されている。
【0044】
本発明はネットワークを用いた分散処理環境におけるクライアントシステムにおいて、当該クライアントにおけるポリシ変更を容易に行えるようにしたクライアントシステムおよびクライアントシステムのポリシ変更方法およびポリシ変更容易なクライアントプログラムを提供することにある。
【0045】
【課題を解決するための手段】
上記目的を達成するため、本発明は次のように構成する。すなわち、ネットワーク上の分散オブジェクトに対して、リクエストを発行し、その発行は予め与えられたアクセス・ポリシによる通信又は動作の条件に従って行うようにするリモート機器としてのクライアント機器において、
前記リクエスト授受に当たっての前記リモート機器における通信又は動作の条件の詳細であるアクセス・ポリシを内容変更可能に保持する手段より取得する取得手段と、この取得手段を介して得たアクセス・ポリシ対応の通信又は動作の条件となるようクライアント側動作設定に反映させる手段とを備えることを特徴とする。
【0046】
また、前記リクエスト授受に当たっての前記リモート機器における通信又は動作の条件の詳細であるアクセス・ポリシを内容変更可能に保持する手段より取得する取得手段と、この取得手段を介して得たアクセス・ポリシをリスト化して参照可能な情報として前記分散オブジェクトに対してリクエストを発行するクライアント・ソフトウエアに渡す手段とを備え、
前記クライアント・ソフトウエアは前記参照可能な情報として渡されたアクセス・ポリシを取り込んで前記通信又は動作の条件となるようクライアント側動作設定に反映させる構成とすることを特徴とする。
【0047】
このような構成によれば、ネットワークで接続されたリモート機器からのリクエストを受け付けることが可能な分散オブジェクトに対して、リクエストを発行するクライアント・ソフトウエアを有するクライアント機器において、システム全体の性能にかかわるそのリクエスト授受に当たっての前記リモート機器における通信や動作の条件の詳細であるアクセス・ポリシを、内容の書き換えが可能でシステム全体で管理可能な保持手段(アクセス・ポリシ・リポジトリ)から取得するようにし、この取得手段を介して得たアクセス・ポリシを前記クライアント・ソフトウエアに渡して前記アクセス・ポリシ対応の通信または動作の条件となるようクライアント側動作設定に反映させる。
【0048】
また、システム全体の性能にかかわるそのリクエスト授受に当たっての前記リモート機器における通信や動作の条件の詳細であるアクセス・ポリシを、内容の書き換えが可能でシステム全体で管理可能な保持手段(アクセス・ポリシ・リポジトリ)から取得し、この取得したアクセス・ポリシをリスト化して参照可能な情報として前記クライアント・ソフトウエアに渡すようにし、クライアント・ソフトウエアはこの渡された情報を用いて前記アクセス・ポリシ対応の通信や動作の条件となるようクライアント側動作設定に反映する。すなわち、アクセス・ポリシをクライアント・ソフトウエアに埋め込んだプログラム形式ではなく、外部に置き、この外部に置いたアクセス・ポリシを参照してクライアント側動作設定に反映する外出し形式とし、アクセス・ポリシの内容を自由に変更できるようにした。
【0049】
従って、本発明によれば、分散システムにおけるサーバ側のオブジェクト実体に対してのリクエスト時にクライアント側で用いる通信や動作の条件等の詳細を与えるための情報であるアクセス・ポリシについての変更の必要が生じた際には、アクセス・ポリシを内容変更可能に保持する手段の該当アクセス・ポリシ内容を変更すればそのポリシが反映されることになり、従って、ポリシ変更が極めて容易となる分散処理システムが実現できるようになる。
【0050】
また、プログラム開発者にとって、RT−CORBAを活用したプログラミングを行うには、通常、それぞれのポリシの効果に関する深い理解が要求されるが、本発明においては、事後にポリシを変更可能としたことによって、RT−CORBAを含まない以前のバージョンのCORBAに習得した作業者であれば、RT−CORBAのレベルを熟知していなくとも、RT−CORBAの機能を活用したシステムを構築することが可能となり、RT−CORBAによるシステム構築参入への門戸を開放して開発者を確保し易くすると共に、RT−CORBAによるシステム構築に必要とされる工数低減をも図ることができる効果も得られる。
【0051】
また、本発明は、ネットワークで接続されたリモート機器からのリクエストを受け付けることが可能な分散オブジェクトに対し、リクエストを発行するクライアント・ソフトウエアを有すると共に、発行するリクエストの授受は予め与えられたアクセス・ポリシに従った通信又は動作の条件にて行うようにするリモート機器としてのクライアント機器における前記アクセス・ポリシを設定変更するためのクライアントシステムのポリシ変更方法であって、
前記クライアント・ソフトウエアは前記リクエスト授受に当たっての前記リモート機器における通信又は動作の条件の詳細であるアクセス・ポリシを外部から受け取って用いるようにするために、前記クライアント・ソフトウエアは外部から受け取ったアクセス・ポリシを取り込んで、このアクセス・ポリシ対応の通信や動作の条件となるようクライアント側通信方式設定する形態とし、
前記アクセス・ポリシは内容変更可能に保持する手段に用意すると共に、前記保持手段から得たアクセス・ポリシを前記クライアント・ソフトウエアに渡して前記アクセス・ポリシ対応の通信又は動作の条件となるようクライアント側動作設定に反映させることを特徴とする。
【0052】
本発明は、例えば、CORBAを適用した分散処理システムを対象とするが、CORBAのようなネットワークで接続された分散処理システムで、リモート機器からのリクエストを受け付けることが可能な分散オブジェクトに対し、リクエストを発行するクライアント・ソフトウエアのアクセス・ポリシを容易に設定変更できるようにするために、前記クライアント・ソフトウエアは前記リクエストの前記リモート機器に対する通信や動作の条件の詳細であるアクセス・ポリシを外部から受け取って用いるようにする。そのために、前記クライアント・ソフトウエアは外部から受け取ったアクセス・ポリシを取り込んでクライアント側通信方式設定する形態とし、
前記アクセス・ポリシは内容変更可能に保持する手段に用意すると共に、前記保持手段から得たアクセス・ポリシを前記クライアント・ソフトウエアに渡してクライアント側動作設定に反映させる。
【0053】
具体的には、前記クライアント・ソフトウエアは前記リクエスト授受に当たっての前記リモート機器に対する通信や動作の条件の詳細であるアクセス・ポリシを外部から受け取って用いるようにするために、
前記アクセス・ポリシは内容変更可能に保持する手段に用意すると共に、この保持手段から得たアクセス・ポリシをリスト化して参照可能な情報にし、前記クライアント・ソフトウエアには前記参照可能な情報となったアクセス・ポリシを取り込んで前記アクセス・ポリシ対応の通信や動作の条件となるようクライアント側動作設定に反映させる。すなわち、アクセス・ポリシをクライアント・ソフトウエアに埋め込んだプログラム形式ではなく、外部に置いたアクセス・ポリシを参照してクライアント側動作設定に反映する外出し形式とし、アクセス・ポリシの内容を自由に変更できるようにした。
【0054】
従って、本発明によれば、分散システムにおけるサーバ側のオブジェクト実体に対してのリクエスト時にクライアント側で用いる通信方式等の詳細を与えるための情報であるアクセス・ポリシについての変更の必要が生じた際には、当該ポリシ変更が極めて容易となるCORBA分散処理システムにおけるクライアントシステムのポリシ変更方法が実現できるようになる。
【0055】
また、プログラム開発者にとって、RT−CORBAを活用したプログラミングを行うには、通常、それぞれのポリシの効果に関する深い理解が要求されるが、本発明においては、事後にポリシを変更可能としたことによって、RT−CORBAを含まない以前のバージョンのCORBAに習得した作業者であれば、RT−CORBAのレベルを熟知していなくとも、RT−CORBAの機能を活用したシステムを構築することが可能となり、RT−CORBAによるシステム構築参入への門戸を開放して開発者を確保し易くすると共に、RT−CORBAによるシステム構築に必要とされる工数低減をも図ることができる効果も得られる。
【0056】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。
【0057】
本発明は、多数の組み込み機器をネットワークで接続して分散環境上で動作させるCORBA仕様のシステムにおいて、クライアントにおけるポリシの設定変更を容易に実施することができるようにする技術を提供する。
【0058】
本発明技術を適用して好適な典型的応用事例としては、単数または複数のリアルタイム・システムや、エンベット型システムをネットワークで接続し、別の計算機により制御または監視するシステムであり、このようなシステムにおいて、クライアント側におけるクライアント側からサーバ側のオブジェクトにリクエスト(要求)を与えてやり取りする場合に両者間で用いる発信方式や通信方式などの詳細であるポリシ(アクセス・ポリシ)の変更を容易にするものである。
【0059】
(本発明の概念)
以下、本発明の一実施例について図面を参照して説明するが、それに先立ち、はじめに、本発明の概念を説明しておく。本発明システムの概念的構成図を図1に示す。図において、Aはサーバ側となるサービス機器であり、CORBAオブジェクトXとORBとを備えている。また、Bはクライアント側となる機器であり、CORBAクライアントプログラムYnewとORBおよびイニシャライザ200とを備えている。ネーミング・サービス機能部CはCORBAのネーミング・サービスを提供するものであり、300はポリシをイニシャライザ200に提供するアクセス・ポリシ・リポジトリ機能部である。サービス機器Aとクライアント機器Bはネットワーク(NW)を介して接続され、ネーミング・サービス機能部Cやアクセス・ポリシ・リポジトリ機能部300は独立したコンピュータ上に置いてネットワーク(NW)で接続してあっても良いし、前記機器A,Bのいずれかに組み込んであっても良い。
【0060】
本発明においては、CORBAにおける従来からのORB(Object RequestBroker)、ネーミング・サービスの利用の他に、今回、新たにイニシャライザ(設定変更反映処理部)200、アクセス・ポリシ・リポジトリ(条件設定指示機能部)300の概念を導入した。
【0061】
ここで、基本的知識としてORB、ネーミング・サービスについて説明しておく。
【0062】
CORBAの基本サービスを提供するソフトウエアであるORB(Object Request Broker:オブジェクト・リクエスト・ブローカ)は、分散環境におけるオブジェクト間の通信方法を実現するメカニズムを提供するソフトウエアであって、リモートオブジェクト同士の相互的なやり取りを実現するミドルウエアであり、オブジェクト間での要求と応答をシームレスに実現するための仲介役としての機能を果たすものである。一般的に、CORBAと呼称する際は、その規格を意味するのに対し、ORBと呼ぶ場合には、CORBA規格を実現したミドルウエアであるソフトウエアを指す。本発明の記載においても、これに従う。
【0063】
RT−CORBAは、CORBA仕様に対する追加として策定された規格である。RT−CORBA規格では、大きく次の2点の仕様を定めている。
【0064】
1つは“プロセッサ・リソースの管理”であり、もう一つは“ORB間の通信の制御”である。
【0065】
“プロセッサ・リソースの管理”とは、分散オブジェクトにおける優先度モデルとその実装手段の提供や、スレッド・プール管理手段の提供などを指しており、また、“ORB間の通信の制御”とは、優先度の逆転を避けるようなコネクションの確立や、プロトコルの選択手段などを指している。
【0066】
また、上述の優先度モデルとは、分散システム上での優先度の与え方や管理方法を定めるモデルのことを指す。RT−CORBA1.0では、“サーバ・デクリアード・モデル”と“クライアント・プロパゲーティッド・モデル”という2つのモデルが定義されている。このモデルの選択は、RT−CORBAに定められた所定の手続きにより、いずれかを選択することができるようになっている。
【0067】
また、上記の“サーバ・デクリアード・モデル”とは、サーバ側で特定の優先度をオブジェクト毎に設定するモデルである。このモデルは、典型的な使用方法としては、一度与えた優先度は変更しない用途向けであり、CORBAオブジェクト毎に固定的な優先度を設定して差し支えないような用途のアプリケーションに向く。
【0068】
また、“クライアント・プロパゲーティッド・モデル”とは、CORBAクライアント側で、希望する優先度を指定してリクエストを発行するモデルであり、優先度は、リクエストの一部として埋め込まれてサーバ側に渡される。このモデルは、リクエストの内容(引数値)や、リクエストを発行するまでの文脈によって優先度を変える必要があるアプリケーションに向いており、サーバ・デクリアード・モデルと比較すれば、より汎用的な用途向けのモデルと云える。
【0069】
CORBA仕様の特徴的な点として、ORBにより分散オブジェクトを実現するための仕様を提供する他に、多くのアプリケーションでしばしば必要となる種々の機能をCORBAオブジェクトとして実現したオブジェクトを仕様として盛り込んでいることがあげられる。これらはCORBAサービスと呼ばれており、CORBAサービスを、分散システム構築を構成する一部品として利用することで、高度な機能を持つ分散オブジェクトシステムを容易に開発できるようにしている。
【0070】
当該CORBAサービスは実装言語に依存しないインタフェース記述ための言語であるIDL(インタフェース定義言語)で定義されたインタフェースを装備するサービスの集合であり、ORBに接続されたCORBAオブジェクトの集まりであって、これらはORBを介して利用できる。
【0071】
一例をあげるとCORBAサービスには、ORBによって接続されたコンポーネント(オブジェクト)をシステム上でユニークに命名した名前で見つけ出すためのサービスを提供するネーミング・サービス(Naming service)、オブジェクト間におけるイベントの登録や管理を行うためのサービスを提供するイベントサービス(Event Service)、オブジェクト間におけるトランザクション制御を行うためのサービスであるトランザクションサービス(Transaction Service)等が用意されている。
【0072】
上述したネーミング・サービス(Naming service)はCORBA分散オブジェクトを、システム開発者が命名した便宜的な名前によって管理するためのサービスであり、ORBに接続されるオブジェクト間で名前による検索を可能にする環境を提供する。
【0073】
ネーミング・サービスでは、オブジェクトの名前と、そのIDL言語上の型と、分散オブジェクトを一意に特定するオブジェクト・リファレンスとの、3つの情報を一件の情報として管理する。オブジェクト・リファレンスとは、分散オブジェクトを一意に特定するデータとして使用するもので、その内容は、CORBA仕様により定められたものである。ORBは、オブジェクト・リファレンスを解析することにより、特定の分散オブジェクトにアクセスできるように構成されている。
【0074】
ネーミング・サービスに対して、bindというオペレーションを用いることにより、前記1件の情報の追加登録を行うことができ、unbindというオペレーションにより、前記1件の情報の削除を行うことができ、更にはresolveというオペレーションにより、名前をキーとして、に対応するオブジェクト・リファレンスの情報を取得することができる。
【0075】
ネーミング・サービスの具体的利用形態について説明しておく。
サーバ側の機器であるサービス機器AにはCORBAサーバプログラムがあり、このサーバプログラムはPOAをまずはじめに生成する。POA はRT−CORBAで定められている優先度を付けたり、ポリシ(方針や原則や方策)を設定したりするためのもので、このPOAを予め用意する。そして、CORBAオブジェクトXが必要なときはCORBAサーバプログラムは当該CORBAオブジェクトXを生成し、活性化する。
【0076】
CORBAオブジェクトXはリモートからアクセスしてもらわねばならないので、いま、このオブジェクトが利用可能であることを知らせるための公開情報であるオブジェクト・リファレンスを外部に出す(公開する)必要がある。
【0077】
CORBAサーバプログラムはCORBAオブジェクトXを生成・活性化するときに当該オブジェクトXについてのリファレンス(その分散オブジェクトに付与した優先度の情報を含む当該オブジェクトを一意に示すことができる情報)を公開する。その際に利用されるのがネーミング・サービスである。
【0078】
クライアント側(クライアント側のCORBAプログラムであるCORBAクライアントプログラムYnew)は、オブジェクト・リファレンスを辞書引きのようなかたちでネーミング・サービスに問い合わせて、リクエスト先となるCORBAオブジェクトXのリファレンスをもらってくる。
【0079】
CORBAプログラムの開発に当たっては、機能実現に必要な各オブジェクトそれぞれについて、最初からそれぞれ固有の名前を決めておくと便利であることから、名前を付けて管理するので、これを利用するわけである。
【0080】
この仕組みにより、機器AのオブジェクトXをリクエストするクライアント側の構成機器BにおけるCORBAクライアントプログラムYnewでは、ネーミング・サービス機能部Cの提供するネーミング・サービスを利用したオブジェクト・リファレンスの問い合わせを実行し、ORBは、これをCORBA仕様で定められた方法によって解釈し、これを用いてCORBAオブジェクトXにリクエストを出す、ということができることになる。
【0081】
このように、各オブジェクトのリファレンスを他が参照して利用できるよう、提供の場として用意されたのがネーミング・サービスであり、本システムではネーミング・サービス機能部Cにより、このようなネーミング・サービスの機能が提供されている。
【0082】
本発明においては、このようなCORBAにおける従来からのORB、ネーミング・サービスの利用の他に、クライアント機器B側で利用する機能として新たにイニシャライザ(設定変更反映処理部)200とアクセス・ポリシ・リポジトリ(条件設定指示機能部)300の概念を導入したものであるが、これらのうち、アクセス・ポリシ・リポジトリ(条件設定指示機能部)300は、クライアント側におけるアクセス・ポリシ(方針や原則や方策等に関する設定条件;以下、単にポリシと呼ぶ)を各クライアント別に持ち、クライアント側からの要求により、その要求のあったクライアントに対するポリシを取り出して当該クライアントに渡す機能を有するもので、各クライアント用のポリシはその仕様を当該アクセス・ポリシ・リポジトリ300に入力することで自由に変更可能である。
【0083】
また、イニシャライザ(設定変更反映処理部)200は、クライアントに搭載される機能であって、当該イニシャライザ200を搭載したクライアントのCORBAクライアントプログラムYnewが必要とするタイミングにおいて、アクセス・ポリシ・リポジトリ300に所定のポリシの転送要求を出し、この要求に対してアクセス・ポリシ・リポジトリ300から送られてきたポリシを取り込み、クライアントのORBやオブジェクト・リファレンスに対してポリシの上書き更新を実施する仕組みを持たせたソフトウエアである。
【0084】
BはCORBAクライアントプログラムYnewを搭載したクライアント機器(クライアント側の機器)であるが、このクライアント機器Bには、イニシャライザ200が搭載されている。サービス機器(サーバ側の機器)Aに搭載されたCORBAオブジェクトXは、CORBAクライアントプログラムYnewによりリクエスト(アクセス)され動作して、結果をCORBAクライアントプログラムYnewに返す。クライアントYnewがCORBAオブジェクトXに対しリクエストを実施する際に、そこで用いるプロトコルの種類や、コネクションの確立方法や、リクエストの優先度などの条件を与えるのがアクセス・ポリシ・リポジトリ300から送られてきたポリシであり、イニシャライザは、このポリシをクライアント側のORBに対しセットし、セット完了後に当該CORBAクライアントプログラムYnewに制御を戻すことで、クライアント機器BのORBは上記ポリシに従った条件で、サービス機器(サーバ側の機器)A側のCORBAオブジェクトXと、サービス側機器A側のORBを介してのやり取りを行うことができる。
【0085】
従来例として図14で説明した構成に当て嵌めて比べてみると、サービス機器Aは従来例の機器Aに相当し、クライアント機器Bは従来例の機器Bに相当する。また、クライアント機器Bが搭載したCORBAクライアントプログラムYnewは、機器BにおけるCORBAクライアントプログラムYと基本的には同じであるが、本発明ではイニシャライザ200により、アクセス・ポリシ・リポジトリ300から与えられる当該クライアント機器B用のアクセス・ポリシの情報に従ったポリシ設定を行えるようにするために、ポリシ関係の部分はイニシャライザの内部に隠蔽された変数としてあり、ポリシ情報に従った値がこの変数に渡されてこの変数の内容による設定で動作するようなプログラムとなっている点が従来と異なる。
【0086】
なお、クライアント機器Bで代表されるクライアント機器や機器Aで段表されるサーバ側の機器は一般に複数有り、ネットワーク(NW)で接続されたシステム構成となっているが、ここでは簡単のため、クライアント機器はB一台のみを、また、サーバ側は機器A一台のみによるシステム構成として説明する。
【0087】
このような構成の本システムにおいては、クライアント機器である機器BのCORBAクライアントプログラムYnewに与えるべきアクセス・ポリシの設定内容は、予め、アクセス・ポリシ・リポジトリ300に設定しておく。
【0088】
アクセス・ポリシは分散オブジェクト(ここではCORBAオブジェクト)等へのリクエスト等の授受に当たっての前記リモート機器に対する通信や動作の各種条件(方針や原則や方策等に関する設定条件)を指すものであるが、ここでの設定対象のポリシ種別としては、例えば、(a)タイムアウト・ポリシ(要求に対する相手側からの応答の許容待ち時間であるタイムアウトの実行の有無や、タイムアウト時間)、(b)クライアント・プロトコル・ポリシ(CORBAでは種々のプロトコルのうちから所望のプロトコルを選択できるのでそのプロトコルについての選択指定)、(c)プライオリティ・ポリシ(優先度モデル(分散システム上での優先度の与え方や管理方法を定めるモデル、サーバ・デクリアードまたはクライアント・プロパゲーティッド)の指定)、(d)コネクション,oneway,同期スコープ(確立させておくコネクションやその動作条件等)などがあり、このようなポリシの設定情報は、クライアント機器別に、しかも、クライアント機器側からみてアクセスするサーバ別にそれぞれ定義してある。
【0089】
図2(a)を参照して動作を説明する。本システムにおいては、クライアント機器Bを起動させると、CORBAクライアントプログラムYnewは、CORBAで定められた手続きである自機の有するORBの初期化を実施し(図2(a)のステップS11)、次にイニシャライザ200の設定を行うべく指令する(図2(a)のステップS12)。イニシャライザ200の設定は、ネーミング・サービスを利用して目的のサーバ・オブジェクトの参照(オブジェクト・リファレンス)を取得し、これをイニシャライザ200に保持させるという処理である。
【0090】
次に、CORBAクライアントプログラムYnewはイニシャライザ200に目的サーバ・オブジェクトの参照(オブジェクト・リファレンス)の取得要求を出し、これにより、イニシャライザ200より目的のサーバ・オブジェクトの参照(オブジェクト・リファレンス)を取得する。このとき、このサーバ・オブジェクトに対するリクエストにおいて採用するポリシ(群)を、イニシャライザ200が、アクセス・ポリシ・リポジトリ300より取得し、CORBA仕様に定められた方法に従ってオブジェクト・リファレンスに対してそのポリシを有効にする処理を実施する。合わせて、CORBAクライアントプログラムYnewに取得したオブジェクト・リファレンスを戻り値として戻す(図2(a)のステップS13)。
【0091】
次にCORBAクライアントプログラムYnewは、ステップS13で取得したオブジェクト・リファレンスに対し、CORBAに定められた手続きであるダウンキャストを実施して目的のサーバ・オブジェクトのリファレンスを取得し(CORBA特有のステップ;(図2(a)のステップS14))、サーバ・オブジェクトに対する分散オブジェクトの呼出を行い、必要に応じてこれを繰り返して実施する(図2(a)のステップS15)。アプリケーションの終了時点においては、ORBをシャットダウンをして(図2(a)のステップS16)から処理を終了する。
【0092】
図には示していないが、サーバ・オブジェクトに対する分散オブジェクトの呼出を行う際にクライアント機器側のORBは指定したポリシ群に従ったポリシでアクセス対象のサーバをアクセスし、分散オブジェクトを呼び出して動作させる。
【0093】
これが指定のポリシに基づいたクライアント機器Bでのサーバ側(機器AにおけるCORBAオブジェクト)に対するアクセスに至る一連のステップの概略である。
【0094】
比較のために、イニシャライザおよびアクセス・ポリシ・リポジトリを備えない図14に示す従来技術の場合の動作例を図2(b)を用いて説明する。
【0095】
図14に示す従来構成のシステムにおいては、クライアント機器である機器BのCORBAクライアントプログラムYに与えるべきポリシの設定内容は、予め、CORBAクライアントプログラムY内に埋め込んである。(a)タイムアウト・ポリシ、(b)クライアント・プロトコル・ポリシ、(c)プライオリティ・ポリシ(優先度モデル)、(d)コネクション,oneway,同期スコープといったクライアント機器側でのポリシの設定情報は、自己から見てアクセスするサーバ別にそれぞれCORBAクライアントプログラムY内に埋め込んで定義してある。
【0096】
図2(b)を参照して動作を説明する。本システムにおいては、クライアント機器Bを起動させると、CORBAクライアントプログラムYはCORBAで定められた手続きであるORBの初期化を実施し(図2(b)のステップS1)、次にネーミング・サービスを利用して目的のサーバ・オブジェクトのリファレンス取得を行い(図2(b)のステップS2)、CORBAクライアントプログラムYはこれを受け取る(図2(b)のステップS3)。
【0097】
次に、CORBAクライアントプログラムYは自己に埋め込まれたポリシの情報からサーバにアクセスする際のポリシを設定したポリシ・リストを作成し(図2(b)のステップS4)、ポリシ・リストをサーバ・オブジェクトにセットする(図2(b)のステップS5)。
【0098】
次にCORBAクライアントプログラムYはダウンキャストによる目的のサーバ・オブジェクトのリファレンスを取得し(CORBA特有のステップ;(図2(b)のステップS6))、サーバ・オブジェクトに対する分散オブジェクトの呼出を行い(図2(b)のステップS7)、ORBのシャットダウンをして(図2(b)のステップS8)処理を終了する。
【0099】
図には示していないが、サーバ・オブジェクトに対する分散オブジェクトの呼出を行う際にORBはポリシ・リストに従ったポリシでアクセス対象のサーバをアクセスし、分散オブジェクトを呼び出して動作させる。
【0100】
これが従来システムにおける指定のポリシに基づいたクライアント機器Bでのサーバ側(機器AにおけるCORBAオブジェクト)に対するアクセスに至る一連のステップの概略である。
【0101】
図2からわかるように、本発明方式と従来技術とを比較すると、ポリシの設定・変更に関してはイニシャライザに機能が移されており、そのため、CORBAクライアントプログラムはポリシ指定に関する処理部分が省略できるので、その分、CORBAクライアントプログラムに要求される処理の内容が低減される。従って、本発明方式ではCORBAクライアントプログラムの開発が従来に比べて容易となる。しかも、本発明方式はアクセス・ポリシ・リポジトリに各クライアント機器別、アクセス対象のサーバ別のポリシ情報内容を記述して保管し、このポリシ情報内容はクライアント機器に設けたイニシャライザにより必要なものを取り込ませてクライアント機器のCORBAクライアントプログラムに渡すようにした可変構造型としたことにより、ポリシ内容を変えるにはポリシ情報の記述を変えるだけで対応でき、従って、システムの変化対応にポリシを自由に調整できるようになり、プログラムの手直しをすることなく、システムを最適に運用できるようになる。
【0102】
差が明確にわかるよう、本発明方式と従来技術とを更に詳細に比較してみる。
【0103】
従来のシステムでは、クライアント機器のCORBAクライアントプログラムにおいては図3に示すように、起動開始するとまずはじめにORBの初期化を行う(図3のP1)。そして、ネーミング・サービスの参照のための情報獲得を、ORBに対して要求する(図3のP2)。このとき、ORBはネーミング・サービスの参照のための情報を、ネーミング・サービス機能部Cから既に獲得しているものとする(図3のP0)。ネーミング・サービスの参照の獲得要求を受けたORBではネーミング・サービスの参照のための情報をCORBAクライアントプログラムに返すので、これを受けたCORBAクライアントプログラムでは、この参照情報から目的のオブジェクト(ターゲットとするオブジェクト)のリファレンスを取得すべくネーミング・サービス機能部Cに問い合わせを行う(図3のP3,P4)。オブジェクトのリファレンスはオブジェクトのメソッドを起動する際に必要な識別子であることから、この情報を得ることでターゲットとするオブジェクトへの要求が可能になる。
【0104】
ネーミング・サービス機能部CはCORBAクライアントプログラムからの上記問い合わせに対して要求に該当するオブジェクトのリファレンスを見つけ出し、CORBAクライアントプログラムに返す(図3のP5)。これを受けてCORBAクライアントプログラムでは、目的のオブジェクトを起動できる準備が整う。
【0105】
CORBAクライアントプログラムでは、次にポリシ・リストを生成し、必要なポリシの数をセットした後、ORBにポリシ生成の依頼を出す(図3のP6〜P8)。ORBではポリシ生成のためのプログラムであるポリシ・オブジェクトを起動し、クライアントプログラム中のポリシを一つ、ポリシ・リストに代入する処理をする(図3のP9,P10)。この処理をCORBAクライアントプログラムは前記セットした数分、繰り返えすことにより、ポリシ・リストには、CORBAクライアントプログラムに記述されたポリシの情報のうち、必要分が代入される。
【0106】
次にCORBAクライアントプログラムはこのポリシ・リストをアクセスに適用するポリシとして登録しておくリストに上書きする(図3のP11)。内容の更新である。
【0107】
このようにして準備が整ったならば、サーバ側とアクセス可能な状態になる。サーバ側に対するアクセスは、目的のオブジェクトに対する目的のリクエストをCORBAクライアントプログラムがORBに対して行うことで、ORBは前記アクセスのポリシと前記取り込んだオブジェクト・リファレンスとを用い、オブジェクトの実体に対してリクエストを行う(図3のP12)。これによりポリシに従った内容で管理運用されてオブジェクトの実体に対してリクエストが成され、当該オブジェクトの実体が機能されることになる(図3のP13)。
【0108】
以上、従来の方法はすべて、CORBA仕様に定められた可能な方法のうちの典型的な方法を示したものである。これに対して本発明方法では、クライアント機器のCORBAクライアントプログラムにおいては図4に示すように、起動開始するとまずはじめにORBの初期化を行う(図4のP21)。そして、次にCORBAクライアントプログラムは、イニシャライザ200を起動する(図4のP22)。これによりイニシャライザ200は、ネーミング・サービスの参照のための情報を、CORBAクライアントプログラムに返す(図4のP23)。
【0109】
但し、これに先駆け、イニシャライザ200はORBよりネーミング・サービスの参照のための情報を、ORBより取得しているものとする。また、当然のことながらORBはネーミング・サービスの参照のための情報を、ネーミング・サービス機能部Cから既に獲得しているものとする(図4のP0)。
【0110】
ネーミング・サービスの参照のための情報をイニシャライザ200から受けたCORBAクライアントプログラムは、次に目的のオブジェクトの参照の情報取得をイニシャライザ200に要求する(図4のP24)。イニシャライザ200は、これを受けてネーミング・サービスの参照のための情報獲得を、ORBに対して要求する(図5のP31)。
【0111】
ネーミング・サービスの参照の獲得要求を受けたORBではネーミング・サービスの参照のための情報をイニシャライザ200に返すので、これを受けたイニシャライザ200では、この参照情報から目的のオブジェクト(ターゲットとするオブジェクト)のリファレンスを取得すべくネーミング・サービス機能部Cに問い合わせを行う(図5のP32,P33)。オブジェクトのリファレンスはオブジェクトのメソッドを起動する際に必要な識別子であることから、この情報を得ることでターゲットとするオブジェクトへの要求が可能になる。
【0112】
ネーミング・サービス機能部Cはイニシャライザ200からの上記問い合わせに対して要求に該当するオブジェクトのリファレンスを見つけ出し、イニシャライザ200に返す(図5のP34)。これをイニシャライザ200はCORBAクライアントプログラムに渡せる状態にするので、CORBAクライアントプログラムでは、目的のオブジェクトを起動できる準備が整う。
【0113】
次にイニシャライザ200は、ポリシ・リストの獲得(ORB名称、オブジェクト名称)をアクセス・ポリシ・リポジトリ300に対し要求する(図5のP35および図4のP35)。アクセス・ポリシ・リポジトリ300はこれにより、該当のポリシ・リストを返す(図5のP36)。このポリシ・リストは新たに渡されたものであり、クライアントのORBがもともと持っている設定は、そのままでは有効でありつづける。従って、新たなポリシ・リストでとデフォルトのポリシを上書き更新するために、イニシャライザ200はポリシの更新を行う(図5のP37)。
【0114】
そして、イニシャライザ200はCORBAクライアントプログラムに対して当該更新によりポリシが更新されることとなったオブジェクトのリファレンスをクライアントプログラムに渡す(図5のP38および図4のP38)。
【0115】
このようにして準備が整ったならば、サーバ側と目的の通信条件によってアクセス可能な状態になる。サーバ側に対するアクセスは、目的のオブジェクトに対する目的のリクエストをCORBAクライアントプログラムがオブジェクト・リファレンスに対する呼び出しを実施することによって、ORBに対して行うことで(図4のP39)、ORBは前記アクセスのポリシと前記取り込んだオブジェクト・リファレンスとを用い、オブジェクトの実体に対して目的とするポリシに従った通信条件によってリクエストを行う。これによりポリシに従った内容で管理運用されてオブジェクトの実体に対してリクエストが成され、当該オブジェクトの実体が機能されることになる(図4のP40)。
【0116】
以上は本発明の動作概要である。
【0117】
(具体例)
次に具体例を説明する。図6は一例としての本発明摘要システムのブロック図である。図中11及び12はサーバであり、サーバ11はCORBAオブジェクトであるサーバプログラム“SVR_A”およびCORBA仕様のミドルウエアであるORBを備えたインテリジェントな例えば測定機器などのサービス機器であり、サーバ12はCORBAオブジェクトであるサーバプログラム“SVR_B”およびCORBA仕様のミドルウエアであるORBを備えたインテリジェントな例えば、測定機器などのサービス機器である。
【0118】
また、21および22はクライアント機器であり、クライアント機器21はクライアントプログラム“CLN_A”およびCORBA仕様のミドルウエアであるORB(ORB名“CLN_A”のORB(CORBAではORB名を定めて使用することが可能))およびCORBAオブジェクトとしてのクライアントプログラム“CLN_A”およびイニシャライザ200Aを備えたサービス機器であり、ORBには“ORB_A”なる名前を付して特定できるようにしてある。
【0119】
クライアント機器22はクライアントプログラム“CLN_B”およびCORBA仕様のミドルウエアであるORB(ORB名“CLN_B”のORB)およびCORBAオブジェクトとしてのクライアントプログラム“CLN_B”およびイニシャライザ200Bを備えたサービス機器であり、ORBには“ORB_B”なる名前を付して特定できるようにしてある。
【0120】
イニシャライザ200A,200Bは、アクセス・ポリシ・リポジトリ300からの定義情報に基づいてクライアントプログラム“CLN_A”および“CLN_B”が自機実装のORB(“ORB_A”,“ORB_B”)に設定すべきポリシを与えるものであり、システムの起動初期時にクライアントプログラム“CLN_A”および“CLN_B”に与える機能を有する。
【0121】
300は既に説明した通りのアクセス・ポリシ・リポジトリであり、クライアント機器21,22のCORBAクライアントプログラム“CLN_A”、 “CLN_B”に与えるべきポリシ(ここではクライアント側で決めてクライアント側で使用するポリシ)の設定内容を与えるものである。CORBAクライアントプログラム“CLN_A”、 “CLN_B”に与えるべきポリシの設定内容は、予め、アクセス・ポリシ・リポジトリ300に設定しておくが、これを定めるのがリポジトリ定義ファイル310である。設定対象のポリシとしては、(a)タイムアウト・ポリシ(要求に対する相手側からの応答の許容待ち時間であるタイムアウトの実行の有無や、タイムアウト時間)、(b)クライアント・プロトコル・ポリシ(所望のプロトコルの選択指定)、(c)プライオリティ・ポリシ(優先度モデル(分散システム上での優先度の与え方や管理方法を定めるモデル)の指定)、(d)コネクション,Oneway,同期スコープ(確立させておくコネクションやその動作条件等)などがあり、これらはいずれもクライアント側で決めてクライアント側で使用するポリシであって、このようなポリシの設定情報は、クライアント機器別に、しかも、クライアント機器側からみてアクセスするサーバ別にそれぞれ定義してある。
【0122】
図6の例では、クライアント機器21はサービス機器11とサービス機器12の双方を相手としており、クライアント機器22はサービス機器12のみを相手として動作するシステムであることを示している。このシステム構成の場合におけるリポジトリ定義ファイル310の例を図7に示す。
【0123】
リポジトリ定義ファイル310は、アクセス・ポリシ・リポジトリ300の設定用のファイルであって、図7に示す例ではXMLで記述したファイル例を示している。なお、XML(extensible markup language;構造をもつ情報を記述するためのマークアップ言語(markup language;特定の記号を用い、テキストファイルに文書の構造やデザイン、レイアウトなどの情報を付加するための言語)であり、ユーザが独自のタグを作って利用することができるので、表示するデータの意味を情報として記述しておくことができ、これを基にWebページ内のデータを検索したり、一部を抜き出して別の形式で保存するなど、データの再利用が可能になる特徴がある。
【0124】
もちろん、リポジトリ定義ファイル31はXML言語記述に限るものではなく、定義内容が記述できれば良いので、例えば、単なるテキストファイルであっても良く、他の言語であってもよい。
【0125】
クライアント機器21,22およびサービス機器11,12がネットワークNWで接続されており、クライアント機器21はサービス機器11とサービス機器12の双方を相手としており、クライアント機器22はサービス機器12のみを相手として動作するシステムとした図6の構成例についてのXMLによるファイル例である図7のファイル内容は次の如きである。
【0126】
まず第1行目の“<?xml version=    … … >”はXMLの規格に基づく記述部分であり、本発明の内容には無関係な部分である。第2行目から第6行目の“<!−−…     …−−>”は注釈文(コメント)である。第7行目以下最終行までがアクセス・ポリシ・リポジトリの定義部分であり、“<CORBA_ACCESS_POLICY_REPOSITORY>”が始まりのタグ、“</CORBA_ACCESS_POLICY_REPOSITORY>”が終わりのタグである。
【0127】
“<RTORB name=“CLN_A””以下第18行目の“</RTORB>”までが“CLN_A”なる名前のリアルタイムORBの内容である。
【0128】
第19行目 “<RTORB name=“CLN_B””以下から第23行目の“</RTORB>”までが“CLN_B”なる名前のリアルタイムORBの内容である。
【0129】
“CLN_A”なる名前のリアルタイムORBの内容は、CORBAオブジェクトの一つである“SVR_A”なる名前のサーバ・オブジェクトについてはその優先度(優先度値“10000”)とタイムアウト・ポリシ(“1,000,000,0”)およびコネクションとして“SVR_A”との通信専用とするように開設される伝送経路であるプライベートコネクションとすることが定められ、“SVR_B”なる名前のサーバ・オブジェクトについてはその優先度(優先度値“5000”)で、リプライを必要としないリクエストすなわち、onewayリクエストにおいて、CORBA仕様が定めるSYNC_WITH_TRANSPORT方式でリクエストを実施することが定められ、“CLN_B”なる名前のリアルタイムORBの内容は、その優先度(優先度値“0”)とタイムアウト・ポリシ(“3,000,000,0”)が定められている、と云った内容である。優先度ポリシについては優先度ポリシクラス名と値、タイムアウト・ポリシはタイムアウトポリシクラス名と値といったように、CORBAで定義されたポリシのインタフェースのクラスと同一クラス名を使用して定義したXMLタグの例である。
【0130】
すなわち、この例は“CLN_A”なるクライアントプログラムにおいては“SVR_A”なる名前のサーバ・オブジェクトに対してアクセスあるいはやり取りする際には優先度(優先度値“10000”の優先度で、且つ、タイムアウト時間は1000[ms](タイムアウト・ポリシ(“1,000,000,0”))、その他は指定なしで実施されるように、また、“SVR_B”なる名前のサーバ・オブジェクトに対してアクセスあるいはやり取りする際には優先度(優先度値“5000”)、その他は指定なしで、すなわち、ORBがデフォルトで持っているポリシを更新しないでそのまま実施される、という具合に定めてある。
【0131】
また、“CLN_B”なるクライアントプログラムにおいてはその動作時には優先度値“0”なる優先度で、且つ、タイムアウト時間は300[ms](タイムアウト・ポリシ“3,000,000,0”)で、その他は指定なしで、すなわり、ORBがデフォルトで持っているポリシを更新しないでそのまま実施される、という具合に定めてある。この例は、クライアント毎に自己あるいは相手先別に動作条件が異なるようにする必要のある場合の例であるが、このようにクライアント毎に動作条件が異なるようにする必要がある場合には、条件が変わったり、システム内容が変更されたり、調整段階などである一部の内容変更が、全体のバランスに影響を与えるようなシステムでは、ポリシ内容を試行錯誤的に設定する必要が多々生じるが、アクセス・ポリシ・リポジトリ定義情報はXMLやテキストなどにより定義して与えれば良いので変更が楽である。
【0132】
アクセス・ポリシ・リポジトリ300は、イニシャライザ200A,200Bからの要求を受けてこの定義情報内容を読み取り、イニシャライザ200A,200Bが理解できるように咀嚼してその定義内容を渡す機能を備えており、その機能は図8に示す如きインタフェースプログラムにより実現される。
【0133】
図8は、IDL言語によるアクセス・ポリシ・リポジトリ300のインタフェース定義の例であるが、その動作内容は図9のフローチャートに示す如く、設定ファイルの読み込んでクライアント毎のORBデフォルト並びにアクセス先オブジェクト毎のポリシ定義を取得(リポジトリ定義ファイル310の読み込み、クライアント毎のORBデフォルト並びにアクセス先オブジェクト毎のポリシ定義を取得;図9のステップS31)、各クライアントにおけるイニシャライザ200A,200Bからのリクエスト待ちとなる(図9のステップS32)。
【0134】
イニシャライザ200Aまたは200Bからリクエストが出されたとすると、そのリクエストがポリシ取得要求であるか否か、ポリシ取得要求であればどのようなポリシ取得要求であるかをステップS33,S34,S35でチェックする。すなわち、リクエストが出されたとすると、それが“getPolicyForOrb”であるか否かをチェックする(ステップS33)。
【0135】
その結果、その要求がORBのポリシ取得要求である“getPolicyForOrb”であったとすると、 その要求を出したイニシャライザ200用の該当ORB用のポリシ・リストを返却する(ステップS36)。要求されたクライアント機器に必要なORB用のポリシ・リストを返却したならば、ステップS32の処理に戻る。
【0136】
図9のステップS33において、出されたイニシャライザ200からのリクエストが“getPolicyForOrb”でなければ、ポリシ取得要求が“getPolicyForObject” であるか否かをチェックする(ステップS34)。
【0137】
その結果、その要求が“getPolicyForObject”であったとすると、このORB名のORB上でこのサーバ・オブジェクト名のサーバにアクセスする場合のポリシが欲しいと云うかたちで要求が来るので、その要求を出したイニシャライザ200に、ORB名、オブジェクト名の該当するポリシ・リストを取り出してそのポリシ・リストを返却する(ステップS37)。要求されたクライアント機器に必要なポリシ・リストを返却したならば、ステップS32の処理に戻る。
【0138】
図9のステップS34でリクエストが“getPolicyForObject”でなかったとすると、“shutDown”を受信したか否かをチェックし(図9のステップS35)、“shutDown”を受信していなければステップS32の処理に戻ってS32以降を繰り返すが、ステップS35において“shutDown”を受信したならば処理を終了する。
【0139】
図8のプログラムによる処理内容はこのようなものである。これにより、アクセス・ポリシ・リポジトリ300はイニシャライザ200Aまたは200Bからの要求に従い、必要なポリシ・リストを受け渡すことができるシステムとなる。
【0140】
C++言語によるイニシャライザ200のAPI(ApplicationProgram Interface)を定義する部分のソースプログラム例を図10に示しておく。図10で定義されているメソッド名は、後に実施例として示す図12および図13における、クライアント・プログラムからイニシャライザを呼び出す際のメソッド名と対応したものになっている。具体的には、図12のP53、P59および、図13のP73、P77に対応する。
【0141】
この結果、図11に示すように、クライアント機器21はサーバ側であるサービス機器11に対してはリクエスト優先度が“10000”、タイムアウトは1000[ms]、プライベートコネクションと云う内容で“ORB_A”が動作し、サービス機器12に対してはリクエスト優先度が“5000”であり、“CORBA仕様が定めるSYNC_WITH_TRANSPORT方式によるonewayリクエスト”であり、かつタイムアウトは100[ms]、プライベートコネクションによる接続と云う内容で“ORB_A”が動作し、クライアント機器22はサーバ側であるサービス機器12に対してのみ、接続可能でリクエスト優先度が“0”、タイムアウトは3000[ms]と云う内容で“ORB_B”が動作するかたちに設定されることになる。
【0142】
CORBAクライアントプログラム“CLN_A”の挙動を、ネーミング・サービスを用いない場合と、ネーミング・サービスを用いる場合とについて説明する。
【0143】
ネーミング・サービスを用いない場合の挙動を図12に示す。
【0144】
本発明方法では、クライアント機器のCORBAクライアントプログラムにおいては図12に示すように、起動開始するとまずはじめにORBの初期化を行う(図12のP51)。そして、次にCORBAクライアントプログラムは、イニシャライザ200Aを生成して起動し、初期化を指示する(図12のP52,P53)。
【0145】
前記の初期化において、イニシャライザ200Aは、“CLN_A”での必要とするORBポリシの取得の要求(問い合わせ)をアクセス・ポリシ・リポジトリ300に対してリクエストする(図12のP54)。これを受けたアクセス・ポリシ・リポジトリ300では、図9に示す動作ステップに従い、あらかじめ登録されている該当のORBポリシを検索または何らかのアルゴリズムにより抽出してイニシャライザ200Aにポリシ・リストとして返す(図12のP55)。
【0146】
イニシャライザ200Aはアクセス・ポリシ・リポジトリから受け取ったポリシ・リストに従って、ORBに対し、そのポリシを有効にするための、CORBA仕様で定められた所定の手続きを実施する。なお、実施例における本動作例においては、返されたポリシ・リストがヌル(リスト長が0)であるため、イニシャライザからORBに対するポリシの更新動作は行われていないという想定である。その後、CORBAクライアントプログラム“CLN_A”に処理を戻す(図12のP56)。
【0147】
つぎに、CORBAクライアントプログラム“CLN_A”は目的のオブジェクト(ここではアクセス対象となるサーバ側のオブジェクトは“SVR_A”と“SVR_B”である)のリファレンスの取得要求を出す(図12のP57)。
【0148】
最初は“SVR_A”の、次に“SVR_B”のリファレンス取得を要求するとすれば、P57では“SVR_A”のリファレンス取得を要求することとなる。ここでは、ネームサービスを使用しない構成であるので、オブジェクト・リファレンスは、ネームサービス以外の手段によって取得することになる。その手段は後述するが、CORBAシステム構築においてよく実施されるいくつかの方法があり、それらのうち、いずれかの方法を用いて取得する。すなわち、取得の方法は、クライアントCLN_A・プログラムに開放されている。
【0149】
“SVR_A”のリファレンス取得の具体例としては、つねに一定値の内容であることを保証する永続IOR(Interoperable Object Reference)を使う方法やCORBA仕様で定められている所定の文字列化形式を書き込んだファイルを渡す方法などがあり、CORBA仕様上で可能な方法ならば何を利用しても差し支えない。
【0150】
なお、本実施例の別の形態として、このリファレンスの検索の機能をアクセス・ポリシ・リポジトリ300に組み込んだ構成とすることも可能である。すなわち、アクセス・ポリシ・リポジトリがネーミング・サービスの機能を代行する構成である。この場合、要求を受けたアクセス・ポリシ・リポジトリ300は、“SVR_A”のリファレンスを抽出し、CORBAクライアントプログラム“CLN_A”に返す(図12のP58)。
【0151】
このように、いずれかの手段によって“CLN_A”に必要な“ORB_A”用のポリシと“SVR_A”のリファレンス取得が終了したならばCORBAクライアントプログラム“CLN_A”は、イニシャライザ200Aに“SVR_A”に対するアクセス(リクエスト)で用いるのポリシのセット(設定)依頼を出す(図12のP59)。
【0152】
これを受けてイニシャライザ200Aは、“ORB_A”における“SVR_A” に対してのポリシ取得(問い合わせ)のリクエストをアクセス・ポリシ・リポジトリ300に対して行う(図12のP60)。要求を受けたアクセス・ポリシ・リポジトリ300は、図9の処理手順に従って、“ORB_A”における“SVR_A” に対してのポリシを検索・抽出し、イニシャライザ200Aに該当するポリシ・リストを返す(図12のP61)。
【0153】
本例の場合、優先度“10000”、タイムアウト“1000[ms]”、“プライベートコネクション”機能利用という3件のポリシが抽出され、イニシャライザ200Aに返されることになる。
【0154】
イニシャライザ200Aはこの3件のポリシをサーバ側のオブジェクト“SVR_A”に対しての接続する場合での条件としてオブジェクト“SVR_A”用リファレンスにセットする(図12のP62)。このセットは、CORBA仕様に定められたオブジェクト・リファレンスに対するset_policy_overridesオペレーションにより、実施することができる。このセットにより、デフォルトのオブジェクト“SVR_A”用リファレンスに対してこれとは別のオブジェクト“SVR_A”用リファレンスが新たに返されるので(図12のP63)、この新たにできたオブジェクト“SVR_A”用リファレンスをクライアントCLN_Aのプログラムに返す(図12のP64)。
【0155】
これによって、クライアントCLN_Aのプログラムにおいて、目的の通信設定によって、サーバ・オブジェクトSVR_Aに対するリクエストが可能な状態となる。その後のアクセス手順や方法は、クライアントCLN_A・プログラムの所望の手順で実施すればよい。同様な手続きを経て、オブジェクト“SVR_B”用レファレンスも取得して作成する。
【0156】
このようにしてオブジェクト“SVR_A”用リファレンスおよびオブジェクト“SVR_B”用レファレンスが作成されたならば、CORBAクライアントプログラム“CLN_A”はオブジェクト“SVR_A”やオブジェクト“SVR_B”に新しいポリシに従ったアクセスが可能になる。例えば、オブジェクト“SVR_A”にアクセスしようとするならば、CORBAクライアントプログラム“CLN_A”はオブジェクト“SVR_A”に対して目的のリモート・リクエストを出す(図12のP65)。
【0157】
このとき、CORBAクライアントプログラム“CLN_A”はオブジェクト“SVR_A”用リファレンスに基づき、“ORB_A”における“SVR_A” に対してのポリシをクライアント機器21のORBである“ORB_A”に対して適用し、ORBはCORBA仕様に基づいてこのポリシに従い、“ORB_A”は“SVR_A” の実体に対してのリクエストを行うことになる(図12のP66)。
【0158】
以上の構成に基づき、総合的な性能上の理由や、個別のクライアント・プログラムの動作上の都合等により、通信動作のポリシを変更したい場合は、ポリシの変更をポリシ定義の書き換え(リポジトリ定義ファイル310の書き換え)により行い、この新たなポリシ定義をアクセス・ポリシ・リポジトリにより解釈して、ポリシ・リストとして定義内容をイニシャライザに渡し、イニシャライザではこの受け取ったポリシ・リストに基づいて、クライアントプログラムから所定のメソッド(図10に例においては、initメソッドや、setPolicyメソッド)が呼び出されたタイミングにより、ORBやオブジェクト・リファレンスのポリシ定義を更新するようにし、サーバ側のオブジェクト実体に対してのリクエスト時に用いるポリシをクライアントプログラムに保持させることができるようにしたので(ポリシ定義外出し形式)、サーバ側のオブジェクト実体に対してのリクエスト時にクライアント側で用いる通信方式等の詳細であるアクセス・ポリシの変更は、アクセス・ポリシ・リポジトリに与えるポリシ定義の定義内容変更のみで可能となり、変更後のポリシ定義の定義内容はアクセス・ポリシ・リポジトリが解釈してイニシャライザに渡し、イニシャライザがリファレンス変更のかたちでクライアントプログラムに渡し、取り込ませORBに反映させるようになるので、このポリシに従った条件で、ORBにリクエスト先のサーバ側のオブジェクト実体にアクセスできるようになる。
【0159】
従って、ポリシを変更する必要が生じた場合に、ポリシ定義の書き換え(リポジトリ定義ファイルの書き換え)のみでその反映ができるようになるので、従来、ポリシ内部埋込み型であったためにポリシ変更に際しては必要であったクライアントプログラムの書き換えが不要となり、ソースプログラムの書き換えとその書き換え後のソースプログラムのコンパイルといった面倒な作業が不要となって、ポリシ変更が極めて容易なCORBAシステムが実現できることになる。
【0160】
以上は、ネーミング・サービスを用いない場合の例であったが、ネーミング・サービスを用いる場合でのCORBAクライアントプログラム“CLN_A”の挙動を、次に説明する。
【0161】
ネーミング・サービスを用いる場合の挙動を図13に示す。
本発明方法では、クライアント機器のCORBAクライアントプログラムにおいては図13に示すように、起動開始するとまずはじめにORBの初期化を行う(図13のP71)。そして、次にCORBAクライアントプログラムは、イニシャライザ200Aを生成して起動し、初期化を指示する(図13のP72,P73)。このとき、ネーミング・サービスに対するオブジェクト・リファレンスを引数としてイニシャライザに渡す点が、ネーミング・サービスを使用しない構成の場合と異なる。
【0162】
前記の初期化において、イニシャライザ200Aは、“CLN_A”での必要とするORBポリシの取得の要求(問い合わせ)をアクセス・ポリシ・リポジトリ300に対してリクエストする(図13のP74)。これを受けたアクセス・ポリシ・リポジトリ300では、図9に示す動作ステップに従い、あらかじめ登録されている該当のORBポリシを検索または何らかのアルゴリズムにより抽出してイニシャライザ200Aにポリシ・リストとして返す(図13のP75)。
【0163】
イニシャライザ200Aはアクセス・ポリシ・リポジトリから受け取ったポリシ・リストに従って、ORBに対し、そのポリシを有効にするための、CORBA仕様で定められた所定の手続きを実施する。なお、実施例における本動作例においては、返されたポリシ・リストがヌル(リスト長が0)であるため、イニシャライザからORBに対するポリシの更新動作は行われていないという想定である。その後、CORBAクライアントプログラム“CLN_A”に処理を戻す(図13のP76)。
【0164】
つぎに、CORBAクライアントプログラム“CLN_A”は目的のオブジェクト(ここではアクセス対象となるサーバ側のオブジェクトは“SVR_A”と“SVR_B”である)のリファレンスの取得要求をイニシャライザ200Aに対して出す(図13のP77)。最初は“SVR_A”の、次に“SVR_B”のリファレンス取得を要求するとすれば、これを受けたイニシャライザ200AにおいてはP78ではネーミング・サービスCに対して“SVR_A”のリファレンス取得を要求することとなる。
【0165】
要求を受けたネーミング・サービスでは、“SVR_A”のリファレンスを抽出し、オブジェクト“SVR_A”用のリファレンス(その1)としてイニシャライザ200Aに返す(図13のP79)。これをイニシャライザ200Aは、一時取り込み、 “CLN_A”に必要な“ORB_A”用のポリシと“SVR_A”のリファレンス取得が終了したならばイニシャライザ200Aは、アクセス・ポリシ・リポジトリ300に“SVR_A”リクエスト用(アクセス用)のポリシの取得要求(問い合わせ)を出す(図13のP80)。
【0166】
要求(問い合わせ)を受けたアクセス・ポリシ・リポジトリ300は、図9の処理手順に従って、“ORB_A”における“SVR_A” に対してのポリシを検索・抽出し、イニシャライザ200Aに該当するポリシ・リストを返す(図13のP80)。
【0167】
本例の場合、優先度“10000”、タイムアウト“1000[ms]”、“プライベートコネクション”機能利用という3件のポリシが抽出され、ポリシ・リストとしてイニシャライザ200Aに返されることになる。イニシャライザ200Aは、この3件のポリシを、サーバ側のオブジェクト“SVR_A”に対して接続する場合の通信の条件として前記オブジェクト“SVR_A”用リファレンス(その1)にセットする。このセットは、CORBA仕様に定められたオブジェクト・リファレンスに対するset_policy_overridesオペレーションにより、実施することができる。
【0168】
この結果として、新たなポリシ設定が有効となったオブジェクト“SVR_A”用リファレンス(その2)がイニシャライザにおいて得られるので、これをCORBAクライアントプログラム“CLN_A”に返す(図13のP82)。CORBAクライアントプログラム“CLN_A”はこれを戻り値として受け取ることにより、上記3件のポリシが埋め込まれたオブジェクト“SVR_A”用リファレンスを得ることになる。
【0169】
同様な手続きを経て、ポリシが更新されたオブジェクト“SVR_B”用レファレンスも取得して作成し、これをCORBAクライアントプログラム“CLN_A”に返す(図13のP82)。CORBAクライアントプログラム“CLN_A”はこれを取り込むことにより、ポリシが埋め込まれたオブジェクト“SVR_B”用リファレンスを得ることになる。
【0170】
このようにして“CLN_A”に必要な“ORB_A”用のポリシと“SVR_A” 、“SVR_B”のリファレンスの取得が終了したならば、CORBAクライアントプログラム“CLN_A”はオブジェクト“SVR_A”やオブジェクト“SVR_B”に新しいポリシに従ったアクセスが可能になる。例えば、オブジェクト“SVR_A”にアクセスしようとするならば、CORBAクライアントプログラム“CLN_A”はオブジェクト“SVR_A”に対して目的のリモート・リクエストを出す(図13のP83)。このとき、CORBAクライアントプログラム“CLN_A”はオブジェクト“SVR_A”用リファレンスに基づき、“ORB_A”における“SVR_A” に対してのポリシをクライアント機器21のORBである“ORB_A”に対して適用し、ORBはCORBA仕様に基づいてこのポリシに従い、“ORB_A”は“SVR_A” の実体に対してのリクエストを行うことになる(図13のP84)。
【0171】
但し、これに先駆け、ネーミング・サービスに対するリファレンスはあらかじめ獲得しているものとする(図13のP0)。
【0172】
以上の構成に基づき、総合的な性能上の理由や、個別のクライアント・プログラムの動作上の都合等により、通信動作のポリシを変更したい場合は、ポリシの変更をポリシ定義の書き換え(リポジトリ定義ファイル310の書き換え)により行い、この新たなポリシ定義をアクセス・ポリシ・リポジトリにより解釈して、ポリシ・リストとして定義内容をイニシャライザに渡し、イニシャライザではこの受け取ったポリシ・リストに基づいて、クライアントプログラムから所定のメソッド(図10に例においては、initメソッドや、setPolicyメソッド)が呼び出されたタイミングにより、ORBやオブジェクト・リファレンスのポリシ定義を更新するようにし、サーバ側のオブジェクト実体に対してのリクエスト時に用いるポリシをクライアントプログラムに保持させることができるようにしたので(ポリシ定義外出し形式)、サーバ側のオブジェクト実体に対してのリクエスト時にクライアント側で用いる通信方式の詳細であるアクセス・ポリシの変更は、アクセス・ポリシ・リポジトリに与えるポリシ定義の定義内容変更のみで可能となる。
【0173】
従って、本実施例によれば、分散システムにおけるサーバ側のオブジェクト実体に対してのリクエスト時にクライアント側で用いる通信方式等の詳細を与えるための情報であるアクセス・ポリシについての変更の必要が生じた際には、当該ポリシ変更が極めて容易となるCORBAシステムが実現できることになる。加えて、本実施例によれば、オブジェクトの名前解決、すなわち、図13の例で言えば名前’SVR_A’に該当するオブジェクト・リファレンスを取得する動作に関しても、イニシャライザが代行して実施するため、クライアントCLN_Aプログラムにおいて記述すべきプログラム・コードを大幅に減少させることができる。
【0174】
また、プログラム開発者にとって、RT−CORBAを活用したプログラミングを行うには、通常、それぞれのポリシの効果に関する深い理解が要求されるが、本発明においては、事後にポリシを変更可能としたことによって、RT−CORBAを含まない以前のバージョンのCORBAに習得した作業者であれば、RT−CORBAのレベルを熟知していなくとも、RT−CORBAの機能を活用したシステムを構築することが可能となり、RT−CORBAによるシステム構築参入への門戸を開放して開発者を確保し易くすると共に、RT−CORBAによるシステム構築に必要とされる工数低減をも図ることができる効果も得られる。
【0175】
なお、上記説明はあくまでも一例であり、種々変形して実施可能である。
【0176】
また、本発明において、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得るものである。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも1つが解決でき、発明の効果の欄で述べられている効果の少なくとも1つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。また、詳細な説明にて説明した本発明は、コンピュータに読み込ませて実行させるプログラムとして頒布して、利用することも可能である。
【0177】
【発明の効果】
以上詳述したように、本発明によれば、分散システムにおけるサーバ側のオブジェクト実体に対してのリクエスト時にその授受に当たってのクライアント側で用いる通信や動作の条件等の詳細を与えるための情報であるアクセス・ポリシについての変更の必要が生じた際には、当該ポリシ変更が極めて容易となるCORBAシステムが実現できることになる。
【0178】
また、RT−CORBAを活用したプログラミングを行うには、通常、それぞれのポリシの効果に関する深い理解が要求されるが、本発明においては、事後にポリシを変更可能としたことによって、RT−CORBAを含まない以前のバージョンのCORBAに習得した作業者であれば、RT−CORBAのレベルを熟知していなくとも、RT−CORBAの機能を活用したシステムを構築することが可能となり、また、RT−CORBAによるシステム構築にかかる工数を低減を図ることができる効果も得られる。
【図面の簡単な説明】
【図1】本発明を説明するための図である。
【図2】本発明を適用した場合と従来技術を適用した場合でのクライアント・プログラムで実施すべき処理内容の違いを比較して説明する図である。
【図3】従来方式における動作遷移例を示す図である。
【図4】図1に示す本発明システムでの一例としての動作遷移図である。
【図5】図1に示す本発明システムでのイニシャライザでの一例としての動作遷移図である。
【図6】本発明システムでの各クライアント機器でのリクエスト対象(アクセス対象)と各クライアント機器での利用ポリシの取得の例を説明する図である。
【図7】本発明システムで用いるアクセス・ポリシ・リポジトリの設定ファイル定義例を説明する図である。
【図8】本発明システムで用いるアクセス・ポリシ・リポジトリのインタフェース定義例(IDL言語記述)を説明する図である。
【図9】本発明システムで用いるアクセス・ポリシ・リポジトリの動作例を示すフローチャートである。
【図10】本発明システムで用いるイニシャライザを実現するための実装プログラムのうち、クライアント・プログラムから操作するAPI(アプリケーション・プログラム・インタフェース)を定義するソースプログラムファイル例(C++言語記述)を説明する図である。
【図11】図6に示す本発明システムにおける各クライアント機器でのリクエスト対象(アクセス対象)に対する各クライアント機器で要求される通信や動作の条件(ポリシ対応)の一設定例を説明する図である。
【図12】本発明システムにおけるクライアント機器AでのCORBAクライアントプログラムの処理の動作遷移を、イニシャライザとアクセス・ポリシ・リポジトリとの関係を含めて説明するための図である(ネーミング・サービスを組み合わせない方式)。
【図13】本発明システムにおけるクライアント機器AでのCORBAクライアントプログラムの処理の動作遷移を、イニシャライザとアクセス・ポリシ・リポジトリとネーミングサービスとの関係を含めて説明するための図である(ネーミング・サービスを組み合わせる方式)。
【図14】従来技術を説明するための図である。
【符号の説明】
11,12,A…サービス機器(サーバ側)
21,22,B…クライアント機器(クライアント側)
200,200A,200B…イニシャライザ(設定変更反映処理部)
300…アクセス・ポリシ・リポジトリ(条件設定指示機能部)
C…ネーミング・サービス機能部。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a distributed processing environment by a plurality of computer elements connected by a network, for example, a distributed object environment such as a distributed processing system in which CORBA is introduced, and in particular, to receive a request from a remote device connected by a network. Device and method for changing access policy of client system and client system in distributed processing system capable of easily changing access policy, which is a detail of communication and operation conditions for the remote device, in sending and receiving a request for a distributed object capable of transmitting and receiving the request About the program.
[0002]
[Prior art]
There is a system configured by using a large number of embedded devices (embedded devices), each of the embedded devices of the system is an independent intelligent system having a CPU (processor) at the center of control, and a system having a distributed environment. . Here, a distributed environment is a processing environment based on a distributed object-oriented technology, which is one of the main technologies for building network applications. This is a method in which various objects (basic modules that constitute a program in object-oriented programming) are distributed and arranged, and the processing is shared and proceeded based on the concept of grasping the relationship between "objects".
[0003]
Then, when there are a plurality of objects, a specification for defining an operation to be defined for each object in a predetermined interface language (IDL) is given, and rules for allowing the client to call the defined object in a predetermined procedure are defined. There is CORBA specification as decided.
[0004]
As is well known, CORBA is an abbreviation of “Common Object Request Broker Architecture”, which is one of the standard technologies in the distributed object-oriented technology, and is an OMG (Object Management Group) which is a standardization organization of the distributed object technology. It is a standard that has been formulated.
[0005]
CORBA is a standard specification for the purpose of developing an architecture for sharing and integrating distributed objects on a network without depending on individual hardware or OS. In the CORBA standard, version 2.4 (CORBA) is used. In 2.4), Real-time CORBA (RT-CORBA) is a standard that introduces the concept of processing priority especially for the real-time processing field and the embedded system field into distributed objects. added. The part of the standard specification relating to the processing priority is particularly called RT-CORBA 1.0. Therefore, the standards before CORBA 2.3 do not include the RT-CORBA specification.
[0006]
Further, since RT-CORBA 1.0 itself is an optional specification of CORBA, even a CORBA product corresponding to CORBA 2.4 or later does not always conform to the RT-CORBA specification. Accordingly, hereinafter, a description of “CORBA not including RT-CORBA” indicates both of the above.
[0007]
As a typical method of handling the priority in the RT-CORBA environment, there is a method of designating a desired priority at the stage of generating the object, and activating the object with the priority. In another method, when a client issues a request, there is a method in which a processing priority is transmitted to an object and the object is processed according to the priority. In either method, when a request for the object arrives from a remote client, a task having the previously specified priority is generated, and the request is processed on the task. If a large number of processing requests (requests) occur at the same time, the request with the highest priority is executed, but if the requests have the same priority, processing is performed according to predetermined task scheduling. Although the OS assigns priorities to these tasks and performs tasks such as task scheduling, the OSB actually implements them. The ORB described later bridges these processes.
[0008]
An object operating in the ORB environment of the CORBA specification is called a CORBA object. As a common use, a CORBA object provides one or more operations. Then, in order to call an operation prepared by the CORBA object, the operation may be called via the ORB.
[0009]
That is, a program that calls an operation using the ORB is a CORBA client. A CORBA client may or may not be a CORBA object at the same time.
[0010]
Further, in the field of CORBA, communication accompanying an operation call is particularly called a “request”. Hereinafter, "request" and "invocation of operation" are used interchangeably.
[0011]
It is necessary for an issuer of a request to know information about what kind of request an object can accept. Therefore, an IDL (Interface Definition Language) is used to clarify information on what kind of interface is provided.
[0012]
Thus, CORBA allows a heterogeneous distributed environment. The OS can be different.
[0013]
On the other hand, particularly when RT-CORBA is used, there is a problem of policy adjustment. This is a problem in which resource abilities such as CPU abilities, communication abilities, and network transmission speeds of the devices are closely involved. In other words, the devices are connected via a network, and each device has a difference in the capabilities and required functions as hardware and software, and there is a difference in the remaining capacity from the viewpoint of load, and the transmission status of the network fluctuates. Since various requirements overlap, as in, etc., there is a possibility that the operation of the entire system in an operational state may be out of balance or the desired performance may not be exhibited. Therefore, CORBA and RT-CORBA Defines dozens of types of policy objects. In the CORBA client program and server program, by adding a description for setting a predetermined policy value as a parameter to the policy object, the ORB of the ORB is defined. It can give principles to behavior and affect performance.
[0014]
By the way, especially from the standpoint of constructing a system using RT-CORBA, some of the values to be given to these policies cannot be determined at the system design stage, and the system construction is completed and operation starts. In many cases, it is clearly better to adjust policies (policies, principles, and measures) by trial and error.
[0015]
For example, when a connection is established from a client to a server and transmission is attempted between the two using this connection, a normal connection and a private connection are secured for the connection, and both the connection and the private connection are secured. The signal from the transmitter is transmitted using the private connection, the other signals are transmitted using the normal connection, and the signal from the special sensor is transmitted to other signals. The setting of giving priority by using a dedicated connection that is not used is made according to a given policy, and is managed and operated by the ORB described later, and is used like the set content. However, when I tried a test drive with the contents of this policy, In some cases, it was found that operation was possible without providing a private connection, and in this case, from the initial concept of "securing both private and normal connections", "only normal connections" Will be changed. This is an example in which, as a general rule, there is a principle that the more the performance is secured, the more the resource is consumed, and it is not possible to determine which is appropriate at the design and implementation stages.
[0016]
This is a policy change that became apparent for the first time as a result of trial operation and became necessary. Also, if it is necessary to add equipment or change functions in the operating system, this means that all signals will be transmitted using only normal connections until now. However, in some cases, a certain signal might be hindered. In this case, from the original concept of "normal connection only", "secure both private connection and normal connection" If you decide to change your policy, this is a policy change that will occur as a result of the system change.
[0017]
As described above, the policy setting method needs to be adjusted according to the actual operation status. This occurs when a client (a computer or software that requests a service from another computer or software on a network) attempts to connect to a server (a computer or software that provides a service). This is a problem concerning the setting of connection conditions and operating conditions that occur, but it is also a very troublesome problem.
[0018]
Here, we will focus on the issue of changing the policy, but before that, let's talk about requests for distributed objects.
[0019]
FIG. 14 is a diagram illustrating a conventional method of requesting a distributed object, and is a diagram illustrating an example of a request method between a device A and a device B. The device A is a component device on the server side, is a service device having a CORBA object X and an ORB (Object Request Broker: Object Request Broker), and the device B is a component device on the client side and has a CORBA client program. A client device having Y and ORB, C is a means for providing a CORBA naming service, and is held in another device or in either device A or device B. For example, it is assumed that the devices A and B have different development and manufacturing companies, and that the devices A and B are systems operating on different OSs. These are connected and operate on a network.
[0020]
In the device A, when generating and activating the CORBA object X, a reference to the object X (information that can uniquely indicate the object including necessary information such as connection conditions and operation conditions given to the distributed object) ). At that time, the naming service described above is often used.
[0021]
The device B makes an inquiry to the naming service function unit C and obtains a reference of the CORBA object X to be requested.
[0022]
In short, in developing a CORBA program, a unique name is used because it is convenient to determine a unique name from the beginning for each object necessary for realizing the function. This allows the object to be specified using its unique name, independent of which device the object runs on.
[0023]
Here, the CORBA client program Y on the client side (device A) that requests the object X of the device A executes an inquiry for an object reference using the naming service function unit C, and thereby the naming service function unit C And obtains information that can be specified in the CORBA world about the object named X in the device A returned from the device A, that is, an object reference, and issues a request to the CORBA object X using this.
[0024]
Inquiry of the object reference to the naming service, specifically, in design and maintenance, a character string of a name which is most convenient in design and maintenance is obtained from the naming service function unit C with a reference of the corresponding object as an argument. This means that the client program Y can make a request for the object X upon execution of the CORBA client program Y.
[0025]
In CORBA, as a method of passing an object reference to a client, there is a method that does not use a naming service. One of the methods is to convert an object reference into a character string format defined by CORBA and convert it into a character string format. There is also a method of delivering the file to the client by a separate network means. The present invention supports both the case where the naming service is used and the case where the naming service is not used.
[0026]
An ORB is provided for the devices A and B of the CORBA specification. The ORB is software that provides a basic service of CORBA and a mechanism for realizing exchange between objects in a distributed environment. This is middleware necessary for realizing mutual exchange between remote objects, and functions as an intermediary for seamlessly realizing requests and responses between objects.
[0027]
Follow the operation. First, the device A has a CORBA server program, and this CORBA server program generates an RT-POA (Rial-Time Portable Object Adapter). The RT-POA is for assigning a priority defined by the RT-CORBA and setting a policy (policy, principle, or measure), and the RT-POA is prepared in advance. In order to use RT-CORBA, it is specified that this RT-POA must be created first, so this is prepared first.
[0028]
It is assumed that the CORBA server program includes the CORBA object X, and that the CORBA object X comes into play. Then, the CORBA server program generates and activates the object X. Activation means that a certain POA is linked to a certain object, and it is possible to receive a request from the client for the object on the POA, that is, in accordance with the policy of the POA. In the case of CORBA, this means that the object X can be operated on the RT-POA. By this activation, the object X is given a necessary priority according to the RT-POA, and can be executed in accordance with the policy.
[0029]
Here, since the CORBA object X waits for a request from the client side, the processing on the server side is in a wait state.
[0030]
Since the CORBA object X must be accessed remotely, it is now necessary to externally publish (publish) an object reference that is public information for notifying that such an object is available.
[0031]
When generating and activating the CORBA object X, the CORBA server program publishes a reference to the object X (information that can uniquely indicate the object including information on the priority assigned to the distributed object) and names the object X・ Make the service available.
[0032]
The client side (the CORBA client program Y which is a CORBA program on the client side) inquires the object reference to the naming service function unit C in the form of a dictionary lookup and obtains the reference of the CORBA object X to be requested. .
[0033]
Now look at the stage where the client tries to connect to the server. First, in CORBA, the protocol uses IIOP (Internet Inter-Orb Protocol) as a default protocol, but other protocols can also be used. In RT-CORBA, the priority of a protocol to be used can be held as one policy. In this case, it is necessary to coordinate between the client and the server so as to communicate using a protocol that can be used in common. Therefore, the priority of the protocol to be used is stored as a protocol policy. Next, when the standard IIOP is used, since this is connection-type communication based on TCP, it is necessary to establish a connection between the ORB of both the server and the client.
[0034]
The connection is established. For example, when starting the procedure of establishing a connection from the device B as a client to the device A as a server, the CORBA client program Y of the device B uses the policy regarding connection conditions and operation conditions. Establish a connection so that it has the contents according to the settings. The condition at that time follows a policy (access policy) that is a detail of a request (request) transmission method and communication method set in advance, and the condition according to the policy is the CORBA client program Y of the device B. This is passed to the ORB and is used by the ORB as a condition to be followed when a request for a distributed object is made.
[0035]
[Problems to be solved by the invention]
At the stage when the client attempts to connect to the server, for example, when starting a request via the network from the client device B to the server device A, the CORBA client program Y of the client device B determines the connection conditions and operation conditions. Communication is performed so as to have the content according to the setting content. The condition at that time is in accordance with a preset access policy, but the condition in accordance with the policy has been conventionally embedded in the CORBA client program Y of the client device B. Then, this is passed from the CORBA client program Y to the ORB of the client device B, and is used in the ORB as a condition to be followed when a request for a distributed object is made.
[0036]
In the client device, when accessing the server by making a request or the like, (a) a timeout policy, (b) a client protocol policy, (c) a priority policy (priority model), (d) a connection, oneway And access policies such as synchronization scope.
[0037]
In addition, since the policy setting information on the client device side is required for each server accessed from the viewpoint of the user, in the present situation where each is embedded and defined in the CORBA client program Y, it is necessary to change any of them. Each time a problem occurs, the source program must be reworked.
[0038]
Since the CORBA client program Y of the device B uses a program in which the processing contents and the like are described as a source program and is compiled into an execution program, it takes a great deal of time to change the policy. On the other hand, requests for policy changes are endless.
[0039]
For example, when a request is transmitted from a client to a server, an attempt is made to issue a request from the client using a connection-type protocol (such as IIOP) and wait for a response from the server to the request. In this case, it is necessary to consider a timeout process. That is, it is necessary to set the time-out time, whether or not to execute the time-out, and the like. This setting can be made by describing it in the source program according to a predetermined policy. However, when this is tested and found to be inappropriate, it is necessary to change the value.
[0040]
In a network using CORBA, devices other than the above-described client and server are usually connected, and it is generally difficult to know in advance the operating status of the network.
[0041]
At the development site or adjustment site, the optimum value is found by trial and error while adjusting the value. Therefore, until the optimum value is found, each time the source program needs to be modified and recompiled. In addition, even if an optimum value is found and operated with that value, if the system is changed, such as the addition of equipment, the value may not be the optimum value, and the optimum value must be found again. The change of the source program accompanying the policy change is a problem that is often encountered not only before the operation of the system but also after the operation.
[0042]
As described above, in a system in which a large number of embedded devices are connected via a network and RT-CORBA is applied, when a CORBA client program requests a server (an object on the server side), a connection condition such as a connection condition that is scheduled in advance is required. The connection and operation according to the policy are performed by the ORB. However, between the client side and the server, since each client determines the contents of the policy finely for each server, if there is a change in the system configuration, etc., Policy change is required. In order to change the policy, it is necessary to change the source program in accordance with the policy change. In this case, in order to obtain an execution program in which the policy has been changed, it is necessary to modify the source program and compile the modified source program. Work is required, and changing policies takes time and effort.
[0043]
On the other hand, since policy change requests are incessant, rapid development of a mechanism that allows policy change to be performed more easily is expected.
[0044]
An object of the present invention is to provide a client system in a client system in a distributed processing environment using a network, a client system capable of easily changing a policy in the client, a policy changing method of the client system, and a client program capable of easily changing the policy.
[0045]
[Means for Solving the Problems]
To achieve the above object, the present invention is configured as follows. That is, a client device as a remote device that issues a request to a distributed object on a network and issues the request in accordance with communication or operation conditions according to a predetermined access policy.
Acquisition means for acquiring the access policy, which is the details of the communication or operation conditions in the remote device at the time of sending and receiving the request, from the means for enabling the content to be changed, and communication corresponding to the access policy obtained via the acquisition means Or means for reflecting the operation conditions on the client-side operation settings.
[0046]
Further, an acquisition unit for acquiring an access policy, which is a detail of communication or operation conditions in the remote device in the case of giving / receiving the request, from a unit for holding the contents in a modifiable manner, and an access policy acquired via the acquisition unit. Means for passing to a client software that issues a request to the distributed object as information that can be listed and referred to,
The client software is characterized in that the access policy passed as the referable information is fetched and reflected in the client-side operation setting so as to be a condition for the communication or operation.
[0047]
According to such a configuration, with respect to a distributed object capable of accepting a request from a remote device connected via a network, a client device having client software that issues a request affects the performance of the entire system. An access policy, which is a detail of communication and operation conditions in the remote device at the time of sending and receiving the request, is acquired from holding means (access policy repository) which can be rewritten and managed by the entire system, The access policy obtained via this acquisition means is passed to the client software and reflected in the client-side operation settings so as to be conditions for communication or operation corresponding to the access policy.
[0048]
In addition, an access policy which is a detail of communication and operation conditions in the remote device in transmitting and receiving the request related to the performance of the entire system is stored in a storage means (access policy. Repository), and the obtained access policy is listed and passed to the client software as information that can be referred to, and the client software uses the passed information to correspond to the access policy. The settings are reflected in the client-side operation settings so that they become communication and operation conditions. In other words, instead of a program format in which the access policy is embedded in the client software, the access policy is set to an external format in which the access policy placed outside is referred to and reflected in the operation settings on the client side. Content can be changed freely.
[0049]
Therefore, according to the present invention, it is necessary to change an access policy, which is information for giving details such as communication and operation conditions used on the client side at the time of a request for an object entity on the server side in a distributed system. When this occurs, if the contents of the relevant access policy of the means for holding the access policy so that the contents can be changed are changed, the policy will be reflected. Therefore, there is a distributed processing system that makes it extremely easy to change the policy. It can be realized.
[0050]
In addition, for a program developer, in order to perform programming utilizing RT-CORBA, a deep understanding of the effect of each policy is generally required. In the present invention, however, the fact that the policy can be changed afterwards makes it possible to change the policy. , Any worker who has learned to the previous version of CORBA that does not include RT-CORBA can construct a system utilizing the function of RT-CORBA without having to be familiar with the level of RT-CORBA, In addition to opening the door to entry into system construction by RT-CORBA, developers can be easily secured, and the effect of reducing man-hours required for system construction by RT-CORBA can be obtained.
[0051]
Further, the present invention has client software for issuing a request to a distributed object capable of accepting a request from a remote device connected via a network, and giving / receiving the issued request is performed by a predetermined access. A policy changing method of a client system for changing settings of the access policy in a client device as a remote device to be performed under communication or operation conditions according to a policy,
In order for the client software to externally receive and use an access policy that is a detail of communication or operation conditions in the remote device at the time of sending and receiving the request, the client software uses an externally received access policy.・ The policy is fetched, and the client side communication method is set so as to be the condition of communication and operation corresponding to this access policy,
The access policy is provided in a means for holding the contents so that the contents can be changed, and the access policy obtained from the holding means is passed to the client software so as to be a condition for communication or operation corresponding to the access policy. It is characterized in that it is reflected in the side operation setting.
[0052]
The present invention is directed to, for example, a distributed processing system to which CORBA is applied. In a distributed processing system connected by a network such as CORBA, a request is issued to a distributed object capable of receiving a request from a remote device. In order to make it easy to change the access policy of the client software that issues the request, the client software externally transmits an access policy that is a detail of the communication and operation conditions of the request to the remote device. To use it. For this purpose, the client software takes in an access policy received from the outside and sets a communication method on the client side.
The access policy is prepared in the means for holding the contents so that the contents can be changed, and the access policy obtained from the holding means is passed to the client software and reflected in the client-side operation settings.
[0053]
Specifically, the client software receives an external access policy that is a detail of communication and operation conditions with respect to the remote device in sending and receiving the request, and uses the access policy from outside.
The access policy is prepared in a means for holding the contents so that the contents can be changed, and the access policy obtained from the holding means is listed as referenceable information, and the client software becomes the referenceable information. The access policy is fetched and reflected in the client-side operation settings so as to be conditions for communication and operation corresponding to the access policy. In other words, instead of a program format in which the access policy is embedded in the client software, an external policy that refers to an external access policy and reflects it in the client-side operation settings is used, and the contents of the access policy can be freely changed Made it possible.
[0054]
Therefore, according to the present invention, when it is necessary to change an access policy which is information for giving details of a communication method and the like used on a client side when a request is made to an object entity on a server side in a distributed system. Thus, a policy change method for a client system in a CORBA distributed processing system in which the policy change becomes extremely easy can be realized.
[0055]
In addition, for a program developer, in order to perform programming utilizing RT-CORBA, a deep understanding of the effect of each policy is generally required. In the present invention, however, the fact that the policy can be changed afterwards makes it possible to change the policy. , Any worker who has learned to the previous version of CORBA that does not include RT-CORBA can construct a system utilizing the function of RT-CORBA without having to be familiar with the level of RT-CORBA, In addition to opening the door to entry into system construction by RT-CORBA, developers can be easily secured, and the effect of reducing man-hours required for system construction by RT-CORBA can be obtained.
[0056]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0057]
The present invention provides a technology that enables a client to easily change a policy setting in a CORBA specification system in which a large number of embedded devices are connected in a network and operate in a distributed environment.
[0058]
Typical application examples suitable for applying the present technology include a system in which one or more real-time systems and an embed type system are connected via a network and controlled or monitored by another computer. In the above, when a request (request) is given from the client side to the server side and exchanged with the object on the client side, it is easy to change a policy (access policy) which is a detail of a transmission method and a communication method used between the two. Things.
[0059]
(Concept of the present invention)
Hereinafter, an embodiment of the present invention will be described with reference to the drawings. Prior to that, the concept of the present invention will be described first. FIG. 1 shows a conceptual configuration diagram of the system of the present invention. In the figure, A is a service device on the server side, and includes a CORBA object X and an ORB. B is a device on the client side, and includes a CORBA client program Ynew, an ORB, and an initializer 200. The naming service function unit C provides a naming service of CORBA, and 300 is an access policy repository function unit that provides a policy to the initializer 200. The service device A and the client device B are connected via a network (NW), and the naming service function unit C and the access policy repository function unit 300 are placed on independent computers and connected via the network (NW). Or may be incorporated in any of the devices A and B.
[0060]
In the present invention, in addition to the use of the conventional ORB (Object Request Broker) and the naming service in CORBA, an initializer (setting change reflection processing unit) 200 and an access policy repository (condition setting instruction function unit) ) 300 concepts were introduced.
[0061]
Here, ORB and naming service will be described as basic knowledge.
[0062]
An ORB (Object Request Broker), which is software for providing a basic CORBA service, is a software for providing a mechanism for realizing a communication method between objects in a distributed environment. Middleware that realizes mutual exchanges, and functions as an intermediary for seamlessly realizing requests and responses between objects. In general, when the term CORBA is used, it means the standard. On the other hand, when the term ORB is used, it is software that is middleware that implements the CORBA standard. In the description of the present invention, this is also followed.
[0063]
RT-CORBA is a standard formulated as an addition to the CORBA specification. The RT-CORBA standard largely defines the following two specifications.
[0064]
One is "management of processor resources" and the other is "control of communication between ORBs".
[0065]
“Management of processor resources” refers to provision of a priority model in distributed objects and implementation means thereof, provision of thread pool management means, and the like, and “control of communication between ORBs”. It refers to the establishment of a connection that avoids the inversion of the priority and the means for selecting a protocol.
[0066]
Further, the above-mentioned priority model refers to a model that determines how to give a priority and a management method on a distributed system. In RT-CORBA1.0, two models, a "server-declared model" and a "client-propagated model" are defined. This model can be selected by a predetermined procedure defined in RT-CORBA.
[0067]
The “server cleared model” is a model in which a server sets a specific priority for each object. This model is typically used for applications in which the priority once given is not changed, and is suitable for applications in which a fixed priority can be set for each CORBA object.
[0068]
The “client propagated model” is a model in which a CORBA client issues a request by designating a desired priority. The priority is embedded as a part of the request and is sent to the server. Passed. This model is suitable for applications that need to change the priority according to the contents of the request (argument value) and the context before issuing the request, and is more general-purpose than the server-cleared model. Model.
[0069]
As a characteristic of the CORBA specification, in addition to providing specifications for realizing a distributed object by the ORB, an object that realizes various functions often required by many applications as a CORBA object is included as a specification. Is raised. These are called CORBA services, and the CORBA service is used as one component of a distributed system construction, so that a distributed object system having advanced functions can be easily developed.
[0070]
The CORBA service is a set of services provided with an interface defined by IDL (Interface Definition Language) which is a language for describing an interface independent of an implementation language, and is a collection of CORBA objects connected to the ORB. Is available via the ORB.
[0071]
For example, the CORBA service includes a naming service (naming service) that provides a service for finding a component (object) connected by the ORB by a uniquely named name on the system, registration of an event between objects, An event service (Event Service) that provides a service for performing management, a transaction service (Transaction Service) that is a service for performing transaction control between objects, and the like are provided.
[0072]
The above-mentioned naming service is a service for managing CORBA distributed objects by a convenient name named by a system developer, and is an environment that enables searching by name between objects connected to the ORB. I will provide a.
[0073]
In the naming service, three pieces of information, that is, the name of an object, its type in the IDL language, and an object reference for uniquely specifying a distributed object are managed as one piece of information. An object reference is used as data for uniquely specifying a distributed object, and its contents are defined by the CORBA specification. The ORB is configured to access a particular distributed object by parsing the object reference.
[0074]
For the naming service, by using an operation called "bind", the one piece of information can be additionally registered. By an operation called "unbind", the one piece of information can be deleted. With the operation described above, the information of the object reference corresponding to can be acquired using the name as a key.
[0075]
A specific use form of the naming service will be described.
The service device A, which is a device on the server side, has a CORBA server program, and this server program first generates a POA. The POA is for assigning priorities defined by RT-CORBA and setting policies (policies, principles, and measures), and this POA is prepared in advance. When the CORBA object X is needed, the CORBA server program generates and activates the CORBA object X.
[0076]
Since the CORBA object X must be accessed remotely, it is now necessary to externally publish (publish) an object reference, which is public information for notifying that this object is available.
[0077]
When generating and activating the CORBA object X, the CORBA server program publishes a reference to the object X (information that can uniquely indicate the object including the priority information assigned to the distributed object). The naming service is used at that time.
[0078]
The client side (the CORBA client program Ynew, which is a CORBA program on the client side) inquires the object reference to the naming service in the form of a dictionary lookup and obtains the reference of the CORBA object X to be requested.
[0079]
In the development of the CORBA program, it is convenient to determine a unique name for each object necessary for realizing the function from the beginning. Therefore, it is used by assigning a name and managing it.
[0080]
According to this mechanism, the CORBA client program Ynew in the component device B on the client side that requests the object X of the device A executes an object reference inquiry using the naming service provided by the naming service function unit C, and Interprets this in accordance with the method defined in the CORBA specification, and makes a request to the CORBA object X using this.
[0081]
As described above, the naming service is provided as a place to be provided so that others can refer to and use the reference of each object. In the present system, the naming service function unit C provides such a naming service. Function is provided.
[0082]
In the present invention, in addition to the conventional use of the ORB and the naming service in CORBA, a new initializer (setting change reflection processing unit) 200 and an access policy repository are used as functions to be used on the client device B side. Although the concept of the (condition setting instruction function unit) 300 is introduced, the access policy repository (condition setting instruction function unit) 300 includes an access policy (policy, principle, policy, etc.) on the client side. (Hereinafter, simply referred to as a policy) for each client, and has a function of extracting a policy for the requested client and passing it to the client in response to a request from the client, and a policy for each client. Defines the specifications in the access policy / repository. It is can be freely changed to be input to the re-300.
[0083]
The initializer (setting change reflection processing unit) 200 is a function installed in the client, and is provided in the access policy repository 300 at a timing required by the CORBA client program Ynew of the client equipped with the initializer 200. A request to transfer the policy is issued, a policy sent from the access policy repository 300 is taken in response to the request, and a mechanism is provided for overwriting and updating the policy with respect to the client ORB and the object reference. It is software.
[0084]
B is a client device (device on the client side) on which the CORBA client program Ynew is mounted, and the client device B has an initializer 200 mounted thereon. The CORBA object X mounted on the service device (server-side device) A is requested (accessed) by the CORBA client program Ynew, operates, and returns a result to the CORBA client program Ynew. When the client Ynew makes a request to the CORBA object X, the access policy repository 300 sends conditions such as the type of protocol to be used there, the method of establishing a connection, and the priority of the request. The initializer sets this policy in the ORB on the client side, and returns the control to the CORBA client program Ynew after the setting is completed, so that the ORB of the client device B becomes a service device under the conditions according to the policy. (Server-side device) The CORBA object X on the A-side can be exchanged with the service-side device A via the ORB.
[0085]
When compared with the configuration described in FIG. 14 as a conventional example, the service device A corresponds to the conventional device A, and the client device B corresponds to the conventional device B. The CORBA client program Ynew installed in the client device B is basically the same as the CORBA client program Y in the device B. However, in the present invention, the client device provided from the access policy repository 300 by the initializer 200 in the present invention. In order to enable policy setting according to the information of the access policy for B, the policy-related portion is a variable hidden inside the initializer, and a value according to the policy information is passed to this variable. The difference is that the program operates according to the settings of the contents of this variable.
[0086]
In general, there are a plurality of client devices represented by the client device B and a plurality of device devices on the server side represented by the device A, and the system configuration is connected by a network (NW). A description will be given of a system configuration using only one client device B and the server side using only one device A.
[0087]
In this system having such a configuration, the setting contents of the access policy to be given to the CORBA client program Ynew of the device B as the client device are set in the access policy repository 300 in advance.
[0088]
The access policy indicates various conditions of communication and operation (setting conditions regarding policies, principles, measures, and the like) with respect to the remote device when a request or the like to a distributed object (here, a CORBA object) is transferred. Examples of the policy type to be set in (a) are: (a) timeout policy (presence or absence of execution of timeout, which is an allowable waiting time for a response from the other party to a request, and timeout time); (b) client protocol Policy (in CORBA, a desired protocol can be selected from various protocols, so selection designation of the protocol), (c) priority policy (priority model (priority assignment method and management method on distributed system) Model, server-cleared or client-defined (D) connection, one-way, synchronization scope (connection to be established and its operating conditions, etc.). Such policy setting information is provided for each client device and from the client device side. It is defined for each server accessed.
[0089]
The operation will be described with reference to FIG. In this system, when the client device B is activated, the CORBA client program Ynew initializes its own ORB, which is a procedure defined by CORBA (step S11 in FIG. 2A), and To set the initializer 200 (step S12 in FIG. 2A). The setting of the initializer 200 is a process of acquiring a reference (object reference) of a target server object using a naming service and causing the initializer 200 to hold the reference.
[0090]
Next, the CORBA client program Ynew issues a request for obtaining a reference (object reference) of the target server object to the initializer 200, and thereby obtains a reference (object reference) of the target server object from the initializer 200. At this time, the initializer 200 acquires a policy (group) to be adopted in the request for the server object from the access policy repository 300, and validates the policy with respect to the object reference according to the method defined in the CORBA specification. Is performed. In addition, the obtained object reference is returned to the CORBA client program Ynew as a return value (step S13 in FIG. 2A).
[0091]
Next, the CORBA client program Ynew obtains a target server object reference by performing downcasting, which is a procedure defined in CORBA, on the object reference acquired in step S13 (corba-specific steps; ( In step S14 in FIG. 2A, a distributed object is called for a server object, and this is repeated as necessary (step S15 in FIG. 2A). At the time of termination of the application, the ORB is shut down (step S16 in FIG. 2A), and the process ends.
[0092]
Although not shown in the figure, when calling a distributed object for a server object, the ORB on the client device accesses the server to be accessed with a policy according to a specified policy group, calls the distributed object, and operates it. .
[0093]
This is an outline of a series of steps leading to an access to the server side (the CORBA object in the device A) on the client device B based on the specified policy.
[0094]
For comparison, an operation example of the conventional technique shown in FIG. 14 without an initializer and an access policy repository will be described with reference to FIG. 2B.
[0095]
In the system having the conventional configuration shown in FIG. 14, the setting contents of the policy to be given to the CORBA client program Y of the device B as the client device are embedded in the CORBA client program Y in advance. (A) timeout policy, (b) client protocol policy, (c) priority policy (priority model), (d) connection setting, oneway, synchronization scope, etc. Are defined in the CORBA client program Y by embedding them for each server to be accessed.
[0096]
The operation will be described with reference to FIG. In this system, when the client device B is activated, the CORBA client program Y initializes the ORB, which is a procedure defined by CORBA (step S1 in FIG. 2B), and then executes the naming service. The reference of the target server object is acquired by using it (Step S2 in FIG. 2B), and the CORBA client program Y receives this (Step S3 in FIG. 2B).
[0097]
Next, the CORBA client program Y creates a policy list in which a policy for accessing the server is set from information of the policy embedded therein (step S4 in FIG. 2B), and stores the policy list in the server. The object is set (step S5 in FIG. 2B).
[0098]
Next, the CORBA client program Y acquires a reference of the target server object by downcasting (a CORBA-specific step; (step S6 in FIG. 2B)), and calls a distributed object for the server object (FIG. 2 (b) (step S7), the ORB is shut down (step S8 in FIG. 2 (b)), and the process ends.
[0099]
Although not shown in the figure, when the distributed object is called for the server object, the ORB accesses the access target server with a policy according to the policy list, calls the distributed object, and operates it.
[0100]
This is an outline of a series of steps leading to access to the server side (the CORBA object in the device A) on the client device B based on the designated policy in the conventional system.
[0101]
As can be seen from FIG. 2, comparing the method of the present invention with the prior art, the function has been moved to the initializer for setting and changing the policy. Therefore, the CORBA client program can omit the processing part relating to the policy specification. To that extent, the content of the processing required for the CORBA client program is reduced. Therefore, in the method of the present invention, the development of the CORBA client program is easier than before. Moreover, according to the method of the present invention, the policy information content for each client device and for each server to be accessed is described and stored in an access policy repository, and the necessary policy information content is fetched by an initializer provided in the client device. Variable structure type that is passed to the CORBA client program of the client device, it is possible to change the contents of the policy only by changing the description of the policy information. Therefore, the policy can be freely adjusted to respond to changes in the system. It will be possible to operate the system optimally without reworking the program.
[0102]
In order to clearly see the difference, the method of the present invention is compared with the prior art in more detail.
[0103]
In the conventional system, in the CORBA client program of the client device, as shown in FIG. 3, when the activation is started, the ORB is first initialized (P1 in FIG. 3). Then, it requests the ORB to acquire information for referencing the naming service (P2 in FIG. 3). At this time, it is assumed that the ORB has already obtained information for referencing the naming service from the naming service function unit C (P0 in FIG. 3). Since the ORB that has received the naming service reference acquisition request returns information for referencing the naming service to the CORBA client program, the CORBA client program that receives the naming service reference obtains a target object (target as a target) from the reference information. An inquiry is made to the naming service function unit C to obtain the reference of the object (P3, P4 in FIG. 3). Since the reference of the object is an identifier necessary for invoking the method of the object, a request to the target object can be made by obtaining this information.
[0104]
In response to the inquiry from the CORBA client program, the naming service function unit C finds the reference of the object corresponding to the request and returns it to the CORBA client program (P5 in FIG. 3). In response to this, the CORBA client program is ready to start the target object.
[0105]
Next, the CORBA client program generates a policy list, sets the required number of policies, and issues a policy generation request to the ORB (P6 to P8 in FIG. 3). In the ORB, a policy object, which is a program for generating a policy, is started, and processing for substituting one policy in the client program into a policy list is performed (P9, P10 in FIG. 3). This process is repeated by the CORBA client program for the set number, so that a necessary portion of the policy information described in the CORBA client program is substituted into the policy list.
[0106]
Next, the CORBA client program overwrites the policy list with a list registered as a policy applied to access (P11 in FIG. 3). Update the content.
[0107]
When the preparation is completed in this way, the server is accessible. For access to the server side, the CORBA client program makes a request to the ORB for a target object, and the ORB requests the entity of the object using the access policy and the fetched object reference. (P12 in FIG. 3). As a result, a request is made to the entity of the object by being managed and operated according to the contents in accordance with the policy, and the entity of the object functions (P13 in FIG. 3).
[0108]
All of the conventional methods described above are typical of the possible methods defined in the CORBA specification. On the other hand, in the method of the present invention, as shown in FIG. 4, in the CORBA client program of the client device, the ORB is first initialized when the activation is started (P21 in FIG. 4). Then, the CORBA client program starts the initializer 200 (P22 in FIG. 4). As a result, the initializer 200 returns information for referencing the naming service to the CORBA client program (P23 in FIG. 4).
[0109]
However, prior to this, it is assumed that the initializer 200 has acquired information for referencing the naming service from the ORB from the ORB. Naturally, it is assumed that the ORB has already obtained information for referencing the naming service from the naming service function unit C (P0 in FIG. 4).
[0110]
The CORBA client program that has received the information for referencing the naming service from the initializer 200 requests the initializer 200 to acquire the reference information of the target object (P24 in FIG. 4). In response to this, the initializer 200 requests the ORB to acquire information for referencing the naming service (P31 in FIG. 5).
[0111]
Since the ORB that has received the naming service reference acquisition request returns information for referencing the naming service to the initializer 200, the initializer 200 that has received the naming service reference obtains a target object (target object) from the reference information. The naming service function unit C is inquired to obtain the reference (P32, P33 in FIG. 5). Since the reference of the object is an identifier necessary for invoking the method of the object, a request to the target object can be made by obtaining this information.
[0112]
In response to the inquiry from the initializer 200, the naming service function unit C finds the reference of the object corresponding to the request and returns it to the initializer 200 (P34 in FIG. 5). Since the initializer 200 makes the CORBA client program ready for passing, the CORBA client program is ready to start a target object.
[0113]
Next, the initializer 200 requests the access policy repository 300 to acquire a policy list (ORB name, object name) (P35 in FIG. 5 and P35 in FIG. 4). Accordingly, the access policy repository 300 returns the relevant policy list (P36 in FIG. 5). This policy list is newly passed, and the setting originally held by the ORB of the client remains valid as it is. Therefore, in order to overwrite and update the default policy with the new policy list, the initializer 200 updates the policy (P37 in FIG. 5).
[0114]
Then, the initializer 200 passes to the client program a reference to the CORBA client program for the object whose policy has been updated by the update (P38 in FIG. 5 and P38 in FIG. 4).
[0115]
When the preparation is completed in this way, the server can be accessed according to the target communication conditions with the server. The access to the server side is performed by making a target request for the target object to the ORB by the CORBA client program making a call to the object reference (P39 in FIG. 4). A request is made to the entity of the object under the communication conditions in accordance with a target policy by using the fetched object reference. As a result, the object is managed and operated with the contents according to the policy, a request is made to the entity of the object, and the entity of the object functions (P40 in FIG. 4).
[0116]
The above is the outline of the operation of the present invention.
[0117]
(Concrete example)
Next, a specific example will be described. FIG. 6 is a block diagram of the summary system of the present invention as an example. In the figure, reference numerals 11 and 12 denote servers. The server 11 is an intelligent service device such as a measuring device provided with a server program "SVR_A" which is a CORBA object and an ORB which is middleware of CORBA specification. The server 12 is a CORBA object. It is an intelligent service device such as a measuring device provided with an object server program “SVR_B” and a CORBA specification middleware ORB.
[0118]
Reference numerals 21 and 22 denote client devices. The client device 21 can use a client program “CLN_A” and an ORB (ORB name “CLN_A”) that is middleware of the CORBA specification (ORB name can be determined and used in CORBA). )) And a service device provided with a client program “CLN_A” as a CORBA object and an initializer 200A, and the ORB can be specified with a name “ORB_A”.
[0119]
The client device 22 is a service device including a client program “CLN_B”, an ORB (ORB having an ORB name “CLN_B”) that is middleware of the CORBA specification, a client program “CLN_B” as a CORBA object, and an initializer 200B. Is specified by giving a name “ORB_B”.
[0120]
The initializers 200A and 200B give a policy to be set by the client programs “CLN_A” and “CLN_B” to the ORB (“ORB_A”, “ORB_B”) mounted on the own device based on the definition information from the access policy repository 300. And has a function of giving to the client programs “CLN_A” and “CLN_B” at the initial stage of system startup.
[0121]
Reference numeral 300 denotes an access policy repository as described above, and a policy to be given to the CORBA client programs “CLN_A” and “CLN_B” of the client devices 21 and 22 (here, a policy determined on the client side and used on the client side) Is given. The setting contents of the policy to be given to the CORBA client programs “CLN_A” and “CLN_B” are set in the access policy repository 300 in advance, and the repository definition file 310 determines this. The policies to be set include (a) a timeout policy (whether or not a timeout, which is a permissible waiting time for a response from a request, to a request, and a timeout period), and (b) a client protocol policy (a desired protocol). ), (C) Priority policy (designation of priority model (model that determines how to give priority and management method on distributed system)), (d) Connection, Oneway, synchronization scope Are set by the client side and are used on the client side. The setting information of such a policy is provided separately for each client device and from the client device side. It is defined for each server accessed.
[0122]
In the example of FIG. 6, the client device 21 is a system that operates on both the service device 11 and the service device 12, and the client device 22 operates on the service device 12 only. FIG. 7 shows an example of the repository definition file 310 in the case of this system configuration.
[0123]
The repository definition file 310 is a file for setting the access policy repository 300. In the example shown in FIG. 7, an example of a file described in XML is shown. XML (extensible markup language; a markup language for describing information having a structure; markup language; a language for adding information such as the structure, design, and layout of a document to a text file using specific symbols) Since the user can create and use a unique tag, the meaning of the data to be displayed can be described as information. Based on this, data in the Web page can be searched, There is a feature that data can be reused, such as extracting the data and saving it in another format.
[0124]
Of course, the repository definition file 31 is not limited to the XML language description, but may be a simple text file or another language, as long as the definition content can be described.
[0125]
The client devices 21 and 22 and the service devices 11 and 12 are connected by a network NW. The client device 21 operates with both the service device 11 and the service device 12 as a partner, and the client device 22 operates with only the service device 12 as a partner. The file contents in FIG. 7 which is an example of a file in XML for the configuration example in FIG.
[0126]
First, “<? Xml version =...>” On the first line is a description part based on the XML standard and is irrelevant to the contents of the present invention. “<! −−−−−−−−>” in the second to sixth lines are commentary sentences (comments). From the seventh line to the last line, the definition part of the access policy repository is a tag starting with “<CORBA_ACCESS_POLICY_REPOSITORY>”, and a tag ending with “</ CORBA_ACCESS_POLICY_REPOSITORY>”.
[0127]
The contents of the real-time ORB named “CLN_A” are described from “<RTORB name =“ CLN_A ”” to “</ RTORB>” on the 18th line.
[0128]
From the 19th line “<RTORB name =“ CLN_B ”” to the 23rd line “</ RTORB>” are the contents of the real-time ORB named “CLN_B”.
[0129]
The contents of the real-time ORB named “CLN_A” include the priority (priority value “10000”) and the timeout policy (“1,000”) of the server object named “SVR_A” which is one of the CORBA objects. , 000,0 ”) and a connection is established as a private connection, which is a transmission path opened to be dedicated to communication with“ SVR_A ”. The priority of a server object named“ SVR_B ”is (Priority value “5000”), it is determined that in a request that does not require a reply, that is, in an one-way request, the request is executed in the SYNC_WITH_TRANSPORT method defined by the CORBA specification. The contents of B are contents say their priorities and (priority value "0") Timeout policy ( "3,000,000,0") is defined, and. An XML tag defined using the same class name as the class of the interface of the policy defined by CORBA, such as the priority policy class name and value for the priority policy, and the timeout policy class name and value for the timeout policy, etc. It is an example.
[0130]
That is, in this example, in the client program “CLN_A”, when accessing or exchanging the server object named “SVR_A”, the priority (priority of the priority value “10000”) and the timeout time Is set to 1000 [ms] (timeout policy (“1,000,000, 0”)), the others are executed without specification, and the server object named “SVR_B” is accessed or exchanged. In this case, the priority (priority value “5000”) and others are not specified, that is, they are implemented as they are without updating the policy that the ORB has by default.
[0131]
In the client program “CLN_B”, the priority is “0” at the time of its operation, and the timeout time is 300 [ms] (timeout policy “3,000,000, 0”). Is specified, that is, the policy is executed without updating the policy that the ORB has by default. In this example, the operating conditions need to be different for each client or for each other. However, when the operating conditions need to be different for each client, the conditions must be different. In a system where some changes, such as changes in the system contents, changes in the system contents, and adjustment stages, etc. affect the overall balance, it is often necessary to set the policy contents by trial and error. The access policy repository definition information may be defined and provided in XML, text, or the like, so that it is easy to change.
[0132]
The access policy repository 300 has a function of reading the definition information content in response to a request from the initializers 200A and 200B, and passing the definition content by masticing so that the initializers 200A and 200B can understand. Is realized by an interface program as shown in FIG.
[0133]
FIG. 8 is an example of the interface definition of the access policy repository 300 in the IDL language. The operation is performed by reading the setting file and reading the ORB default for each client and each access destination object as shown in the flowchart of FIG. The policy definition is acquired (the repository definition file 310 is read, the ORB default for each client and the policy definition for each access destination object are acquired; step S31 in FIG. 9), and each client waits for a request from the initializers 200A and 200B (FIG. Nine steps S32).
[0134]
If a request is issued from the initializer 200A or 200B, it is checked in steps S33, S34 and S35 whether or not the request is a policy acquisition request, and if so, what kind of policy acquisition request is. That is, if a request is issued, it is checked whether or not the request is "getPolicyForOrb" (step S33).
[0135]
As a result, if the request is “getPolicyForOrb” which is an ORB policy acquisition request, a policy list for the corresponding ORB for the initializer 200 that issued the request is returned (step S36). After returning the ORB policy list required for the requested client device, the process returns to step S32.
[0136]
In step S33 of FIG. 9, if the issued request from the initializer 200 is not "getPolicyForOrb", it is checked whether or not the policy acquisition request is "getPolicyForObject" (step S34).
[0137]
As a result, if the request is "getPolicyForObject", the request comes in the form of wanting a policy for accessing the server of this server object name on the ORB of this ORB name, so the request is issued. The policy list corresponding to the ORB name and the object name is taken out to the initializer 200, and the policy list is returned (step S37). When the policy list necessary for the requested client device is returned, the process returns to step S32.
[0138]
If it is determined in step S34 of FIG. 9 that the request is not “getPolicyForObject”, it is checked whether “shutDown” has been received (step S35 in FIG. 9). If “shutDown” has not been received, the process proceeds to step S32. Returning to S32 and subsequent steps, the process ends if "shutDown" is received in step S35.
[0139]
The processing contents by the program in FIG. 8 are as described above. As a result, the access policy repository 300 becomes a system that can transfer a necessary policy list in accordance with a request from the initializer 200A or 200B.
[0140]
FIG. 10 shows an example of a source program of a portion that defines an API (Application Program Interface) of the initializer 200 in the C ++ language. The method names defined in FIG. 10 correspond to the method names when the initializer is called from the client program in FIGS. 12 and 13 to be described later as examples. Specifically, it corresponds to P53 and P59 in FIG. 12 and P73 and P77 in FIG.
[0141]
As a result, as shown in FIG. 11, the client device 21 has a request priority of “10000”, a timeout of 1000 [ms], and a “ORB_A” with the content of a private connection for the service device 11 on the server side. It operates, the request priority for the service device 12 is “5000”, the request is “oneway request according to the SYNC_WITH_TRANSPORT method defined by the CORBA specification”, the timeout is 100 [ms], and the connection is a connection by a private connection. “ORB_A” operates, and the client device 22 can connect to the service device 12 on the server side only, the request priority is “0”, and the timeout is 3000 [ms], and “ORB_B” operates. In form It will be constant.
[0142]
The behavior of the CORBA client program “CLN_A” will be described for a case where the naming service is not used and a case where the naming service is used.
[0143]
FIG. 12 shows the behavior when the naming service is not used.
[0144]
In the method of the present invention, as shown in FIG. 12, in the CORBA client program of the client device, first, when starting up, the ORB is initialized (P51 in FIG. 12). Then, the CORBA client program generates and starts the initializer 200A and instructs initialization (P52, P53 in FIG. 12).
[0145]
In the initialization, the initializer 200A requests the access policy repository 300 for a request (query) for acquiring the required ORB policy in “CLN_A” (P54 in FIG. 12). In response to this, the access policy repository 300 searches for or extracts the relevant ORB policy registered in advance by some algorithm and returns it to the initializer 200A as a policy list in accordance with the operation steps shown in FIG. 9 (see FIG. 12). P55).
[0146]
In accordance with the policy list received from the access policy repository, the initializer 200A performs a predetermined procedure defined by the CORBA specification on the ORB to validate the policy. In this operation example of the embodiment, since the returned policy list is null (the list length is 0), it is assumed that the operation of updating the policy from the initializer to the ORB is not performed. Thereafter, the process returns to the CORBA client program “CLN_A” (P56 in FIG. 12).
[0147]
Next, the CORBA client program “CLN_A” issues a reference acquisition request for a target object (here, the server-side objects to be accessed are “SVR_A” and “SVR_B”) (P57 in FIG. 12).
[0148]
Assuming that a reference acquisition of “SVR_A” is requested first and then a reference acquisition of “SVR_B” is requested, a request to acquire reference of “SVR_A” is made in P57. Here, since the configuration does not use the name service, the object reference is obtained by means other than the name service. Although the means will be described later, there are several methods frequently implemented in the construction of the CORBA system, and the acquisition is performed by using any of these methods. That is, the acquisition method is open to the client CLN_A program.
[0149]
As a specific example of obtaining the reference of “SVR_A”, a method using a permanent IOR (Interoperable Object Reference) that guarantees that the content is always a constant value, or a predetermined character string format defined in the CORBA specification is written. There is a method of transferring files, and any method that is possible according to the CORBA specifications can be used.
[0150]
As another form of the present embodiment, it is also possible to adopt a configuration in which this reference search function is incorporated in the access policy repository 300. That is, the configuration is such that the access policy repository substitutes for the function of the naming service. In this case, the access policy repository 300 that has received the request extracts the reference of “SVR_A” and returns it to the CORBA client program “CLN_A” (P58 in FIG. 12).
[0151]
As described above, when the policy for “ORB_A” necessary for “CLN_A” and the reference of “SVR_A” are completed by any means, the CORBA client program “CLN_A” accesses the initializer 200A for “SVR_A” ( A request for setting (setting) a policy used in the request) is issued (P59 in FIG. 12).
[0152]
In response to this, the initializer 200A makes a request for obtaining (inquiring) a policy for “SVR_A” in “ORB_A” to the access policy repository 300 (P60 in FIG. 12). The access policy repository 300 that has received the request searches and extracts a policy for “SVR_A” in “ORB_A” in accordance with the processing procedure of FIG. 9 and returns a policy list corresponding to the initializer 200A (FIG. 12). P61).
[0153]
In the case of this example, three policies of priority “10000”, timeout “1000 [ms]”, and use of the “private connection” function are extracted and returned to the initializer 200A.
[0154]
The initializer 200A sets the three policies as a reference for the object "SVR_A" as a condition for connecting to the server-side object "SVR_A" (P62 in FIG. 12). This set can be implemented by a set_policy_overrides operation on an object reference as defined in the CORBA specification. According to this set, another reference for the object “SVR_A” is newly returned for the default reference for the object “SVR_A” (P63 in FIG. 12), so that the reference for the newly created object “SVR_A” is obtained. Is returned to the program of the client CLN_A (P64 in FIG. 12).
[0155]
As a result, in the program of the client CLN_A, a request for the server object SVR_A is enabled according to the target communication setting. Subsequent access procedures and methods may be performed according to a desired procedure of the client CLN_A program. Through a similar procedure, a reference for the object “SVR_B” is also obtained and created.
[0156]
When the reference for the object “SVR_A” and the reference for the object “SVR_B” are created in this way, the CORBA client program “CLN_A” can access the object “SVR_A” and the object “SVR_B” according to the new policy. Become. For example, to access the object "SVR_A", the CORBA client program "CLN_A" issues a target remote request to the object "SVR_A" (P65 in FIG. 12).
[0157]
At this time, the CORBA client program “CLN_A” applies the policy for “SVR_A” in “ORB_A” to “ORB_A” which is the ORB of the client device 21 based on the reference for the object “SVR_A”. According to this policy based on the CORBA specification, “ORB_A” makes a request to the entity of “SVR_A” (P66 in FIG. 12).
[0158]
Based on the above configuration, if you want to change the communication operation policy for comprehensive performance reasons or for the convenience of operation of individual client programs, rewrite the policy change by rewriting the policy definition (repository definition file 310, the new policy definition is interpreted by the access policy repository, and the definition contents are passed to the initializer as a policy list, and the initializer sends a predetermined policy from the client program based on the received policy list. (In the example in FIG. 10, the init method and the setPolicy method) are called, and the policy definition of the ORB and the object reference is updated, and is used when a request is made to the server-side object entity. Po Since the client program can be stored in the client program (policy definition outside format), the change of the access policy, which is the details of the communication method used on the client side when requesting the server-side object entity, It is possible only by changing the definition of the policy definition given to the access policy repository.The changed policy definition is interpreted by the access policy repository and passed to the initializer, and the initializer changes the client program in the form of a reference change. To the ORB and reflect it on the ORB, so that the ORB can access the server-side object entity of the request destination under the conditions according to this policy.
[0159]
Therefore, when a policy needs to be changed, it can be reflected only by rewriting the policy definition (rewriting the repository definition file). This eliminates the need to rewrite the client program, and eliminates the need for complicated work such as rewriting the source program and compiling the source program after the rewriting, thereby realizing a CORBA system in which policy change is extremely easy.
[0160]
The above is an example where the naming service is not used, but the behavior of the CORBA client program “CLN_A” when the naming service is used will be described below.
[0161]
FIG. 13 shows the behavior when the naming service is used.
In the method of the present invention, as shown in FIG. 13, in the CORBA client program of the client device, the ORB is first initialized when the activation is started (P71 in FIG. 13). Then, the CORBA client program generates and starts the initializer 200A and instructs initialization (P72, P73 in FIG. 13). At this time, the point that the object reference to the naming service is passed to the initializer as an argument is different from the case where the naming service is not used.
[0162]
In the initialization, the initializer 200A requests the access policy repository 300 for a request (query) for acquiring the required ORB policy in “CLN_A” (P74 in FIG. 13). In response to this, the access policy repository 300 retrieves the pertinent ORB policy registered in advance according to the operation steps shown in FIG. 9 or extracts it by some algorithm, and returns it to the initializer 200A as a policy list (FIG. 13). P75).
[0163]
In accordance with the policy list received from the access policy repository, the initializer 200A performs a predetermined procedure defined by the CORBA specification on the ORB to validate the policy. In this operation example of the embodiment, since the returned policy list is null (the list length is 0), it is assumed that the operation of updating the policy from the initializer to the ORB is not performed. Thereafter, the process returns to the CORBA client program "CLN_A" (P76 in FIG. 13).
[0164]
Next, the CORBA client program “CLN_A” issues a request to acquire a reference to a target object (here, the objects on the server side to be accessed are “SVR_A” and “SVR_B”) to the initializer 200A (FIG. 13). P77). Assuming that the reference acquisition of "SVR_A" is requested first, and then the reference acquisition of "SVR_B" is requested, the initializer 200A that has received the request requests the naming service C to acquire the reference "SVR_A" at P78. .
[0165]
In the naming service that has received the request, the reference of “SVR_A” is extracted and returned to the initializer 200A as a reference (part 1) for the object “SVR_A” (P79 in FIG. 13). The initializer 200A temporarily captures this, and when the acquisition of the policy for “ORB_A” necessary for “CLN_A” and the reference of “SVR_A” is completed, the initializer 200A sends the access policy repository 300 a request for “SVR_A” ( An acquisition request (inquiry) for a policy for access is issued (P80 in FIG. 13).
[0166]
The access policy repository 300 that has received the request (inquiry) searches and extracts a policy for “SVR_A” in “ORB_A” according to the processing procedure of FIG. 9 and returns a policy list corresponding to the initializer 200A. (P80 in FIG. 13).
[0167]
In the case of this example, three policies of priority "10000", timeout "1000 [ms]", and use of the "private connection" function are extracted and returned to the initializer 200A as a policy list. The initializer 200A sets these three policies in the reference for the object "SVR_A" (No. 1) as communication conditions when connecting to the server-side object "SVR_A". This set can be implemented by a set_policy_overrides operation on an object reference as defined in the CORBA specification.
[0168]
As a result, a reference (No. 2) for the object “SVR_A” for which the new policy setting has become effective is obtained in the initializer, and this is returned to the CORBA client program “CLN_A” (P82 in FIG. 13). By receiving this as a return value, the CORBA client program “CLN_A” obtains a reference for the object “SVR_A” in which the above three policies are embedded.
[0169]
Through a similar procedure, a reference for the object “SVR_B” whose policy has been updated is also obtained and created, and this is returned to the CORBA client program “CLN_A” (P82 in FIG. 13). The CORBA client program “CLN_A” obtains the reference and obtains a reference for the object “SVR_B” in which the policy is embedded.
[0170]
When the acquisition of the policies for “ORB_A” necessary for “CLN_A” and the references of “SVR_A” and “SVR_B” is completed, the CORBA client program “CLN_A” executes the object “SVR_A” or the object “SVR_B”. Can be accessed according to the new policy. For example, to access the object “SVR_A”, the CORBA client program “CLN_A” issues a target remote request to the object “SVR_A” (P83 in FIG. 13). At this time, the CORBA client program “CLN_A” applies the policy for “SVR_A” in “ORB_A” to “ORB_A” which is the ORB of the client device 21 based on the reference for the object “SVR_A”. According to this policy based on the CORBA specification, “ORB_A” makes a request to the entity of “SVR_A” (P84 in FIG. 13).
[0171]
However, prior to this, it is assumed that a reference to the naming service has been obtained in advance (P0 in FIG. 13).
[0172]
Based on the above configuration, if you want to change the communication operation policy for comprehensive performance reasons or for the convenience of operation of individual client programs, rewrite the policy change by rewriting the policy definition (repository definition file 310, the new policy definition is interpreted by the access policy repository, and the definition contents are passed to the initializer as a policy list, and the initializer sends a predetermined policy from the client program based on the received policy list. (In the example in FIG. 10, the init method and the setPolicy method) are called, and the policy definition of the ORB and the object reference is updated, and is used when a request is made to the server-side object entity. Po Since the client program can be stored in the client program (policy definition outside format), the change of the access policy, which is the details of the communication method used on the client side when requesting the server-side object entity, It is possible only by changing the definition contents of the policy definition given to the access policy repository.
[0173]
Therefore, according to the present embodiment, it is necessary to change the access policy which is information for giving details such as the communication method used on the client side at the time of a request for the object entity on the server side in the distributed system. In this case, it is possible to realize a CORBA system in which the policy change becomes extremely easy. In addition, according to this embodiment, the initializer also performs the object name resolution, that is, the operation of acquiring the object reference corresponding to the name 'SVR_A' in the example of FIG. The program code to be described in the client CLN_A program can be greatly reduced.
[0174]
In addition, for a program developer, in order to perform programming utilizing RT-CORBA, a deep understanding of the effect of each policy is generally required. In the present invention, however, the fact that the policy can be changed afterwards makes it possible to change the policy. , Any worker who has learned to the previous version of CORBA that does not include RT-CORBA can construct a system utilizing the function of RT-CORBA without having to be familiar with the level of RT-CORBA, In addition to opening the door to entry into system construction by RT-CORBA, developers can be easily secured, and the effect of reducing man-hours required for system construction by RT-CORBA can be obtained.
[0175]
The above description is merely an example, and various modifications can be made.
[0176]
Further, in the present invention, the above embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. For example, even if some components are deleted from all the components shown in the embodiment, at least one of the problems described in the column of the problem to be solved by the invention can be solved, and the problem described in the column of the effect of the invention can be solved. If at least one of the effects described above can be obtained, a configuration from which this configuration requirement is deleted can be extracted as an invention. Further, the present invention described in the detailed description can be distributed and used as a program to be read and executed by a computer.
[0177]
【The invention's effect】
As described in detail above, according to the present invention, at the time of a request for an object entity on the server side in a distributed system, this is information for giving details such as communication and operation conditions used on the client side in giving and receiving the request. When it becomes necessary to change the access policy, a CORBA system in which the policy change becomes extremely easy can be realized.
[0178]
Also, in order to perform programming utilizing RT-CORBA, a deep understanding of the effect of each policy is usually required. In the present invention, however, the fact that the policy can be changed afterwards makes RT-CORBA Any worker who has learned the previous version of CORBA that does not include it can construct a system utilizing the function of RT-CORBA without having to be familiar with the level of RT-CORBA. Also, the effect that the man-hour required for the system construction by the method can be reduced can be obtained.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining the present invention.
FIG. 2 is a diagram for comparing and explaining differences in processing contents to be executed by a client program when the present invention is applied and when a conventional technique is applied.
FIG. 3 is a diagram showing an example of an operation transition in a conventional method.
FIG. 4 is an operation transition diagram as an example in the system of the present invention shown in FIG. 1;
FIG. 5 is an operation transition diagram as an example in an initializer in the system of the present invention shown in FIG. 1;
FIG. 6 is a diagram illustrating an example of a request target (access target) at each client device and an acquisition of a usage policy at each client device in the system of the present invention.
FIG. 7 is a view for explaining an example of a setting file definition of an access policy repository used in the system of the present invention.
FIG. 8 is a diagram illustrating an example of an interface definition (IDL language description) of an access policy repository used in the system of the present invention.
FIG. 9 is a flowchart showing an operation example of an access policy repository used in the system of the present invention.
FIG. 10 is a view for explaining an example (C ++ language description) of a source program file defining an API (application program interface) operated from a client program among implementation programs for realizing an initializer used in the system of the present invention; It is.
11 is a diagram illustrating a setting example of communication and operation conditions (corresponding to policies) required by each client device with respect to a request target (access target) in each client device in the system of the present invention shown in FIG. 6; .
FIG. 12 is a diagram for explaining the operation transition of the processing of the CORBA client program in the client device A in the system of the present invention, including the relationship between the initializer and the access policy repository (the naming service is not combined) method).
FIG. 13 is a diagram for explaining the operation transition of the processing of the CORBA client program in the client device A in the system of the present invention, including the relationship among the initializer, the access policy repository, and the naming service (naming service) Combination method).
FIG. 14 is a diagram for explaining a conventional technique.
[Explanation of symbols]
11, 12, A: Service equipment (server side)
21, 22, B: Client device (client side)
200, 200A, 200B ... Initializer (setting change reflection processing unit)
300 access policy repository (condition setting instruction function section)
C: Naming service function unit.

Claims (7)

ネットワーク上の分散オブジェクトに対して、リクエストを発行し、その発行は予め与えられたアクセス・ポリシによる通信又は動作の条件に従って行うようにするリモート機器としてのクライアント機器において、
前記リクエスト授受に当たっての前記リモート機器における通信又は動作の条件の詳細であるアクセス・ポリシを内容変更可能に保持する手段より取得する取得手段と、
この取得手段を介して得たアクセス・ポリシ対応の通信又は動作の条件となるようクライアント側動作設定に反映させる手段と、
を備えることを特徴とする分散処理システムにおけるクライアント機器。
A client device as a remote device that issues a request to a distributed object on a network and issues the request according to communication or operation conditions according to a given access policy.
Acquisition means for acquiring from the means for holding an access policy, which is a detail of communication or operation conditions in the remote device at the time of the request transfer, so that the content can be changed,
Means for reflecting on the client-side operation settings so as to be the condition of the communication or operation corresponding to the access policy obtained through this acquisition means,
A client device in a distributed processing system, comprising:
ネットワークで接続されたリモート機器からのリクエストを受け付けることが可能な分散オブジェクトに対して、リクエストを発行するクライアント・ソフトウエアを有すると共に、発行するリクエストの授受は予め与えられたアクセス・ポリシに従った通信又は動作の条件にて行うようにするリモート機器としてのクライアント機器において、
前記リクエスト授受に当たっての前記リモート機器における通信又は動作の条件の詳細であるアクセス・ポリシを内容変更可能に保持する手段より取得する取得手段と、
この取得手段を介して得たアクセス・ポリシをリスト化して参照可能な情報として前記クライアント・ソフトウエアに渡す手段とを備え、
前記クライアント・ソフトウエアは前記参照可能な情報として渡されたアクセス・ポリシを取り込んで前記アクセス・ポリシ対応の通信又は動作の条件となるようクライアント側動作設定に反映させる構成とすることを特徴とする分散処理システムにおけるクライアント機器。
It has client software that issues requests for distributed objects that can accept requests from remote devices connected via a network, and gives and receives requests in accordance with a given access policy. In the client device as a remote device to be performed under the conditions of communication or operation,
Acquisition means for acquiring from the means for holding an access policy, which is a detail of communication or operation conditions in the remote device at the time of the request transfer, so that the content can be changed,
Means for listing the access policy obtained via the acquisition means and passing the access policy to the client software as information that can be referred to,
The client software is configured to take in an access policy passed as the referable information and reflect the access policy in a client-side operation setting so as to be a condition of communication or operation corresponding to the access policy. Client device in a distributed processing system.
変更可能な前記アクセス・ポリシは、クライアントが発信するリクエストの優先度と、リクエストが使用するプロトコルと、サーバに対する応答待ちの限界をあらかじめ設定するタイムアウト時間と、リクエストに対する応答が見られない場合のリトライ回数のうち、少なくともいずれかを含むことを特徴とする請求項1また2いずれか1項に記載の分散処理システムにおけるクライアント機器。The access policy that can be changed includes the priority of the request issued by the client, the protocol used by the request, the timeout period for setting the limit of waiting for a response to the server, and the retry when no response to the request is found. 3. The client device in the distributed processing system according to claim 1, wherein at least one of the number of times is included. ネットワーク上の分散オブジェクトに対し、リクエストを発行し、その発行は予め与えられたアクセス・ポリシに従った通信または動作の条件にて行うようにするリモート機器としてのクライアント機器における前記アクセス・ポリシを設定変更するためのクライアントシステムのポリシ変更方法であって、
前記クライアント機器は前記リクエスト発行に当たっての前記リモート機器における通信または動作の条件の詳細であるアクセス・ポリシを外部から受け取って用いるようにするために、外部から受け取ったアクセス・ポリシを取り込んで前記通信または動作の条件となるようクライアント側通信方式設定する形態とし、
前記アクセス・ポリシは内容変更可能に保持する手段に用意すると共に、前記保持手段から得たアクセス・ポリシを前記クライアント機器に渡して前記アクセス・ポリシ対応の通信又は動作の条件となるようクライアント側動作設定に反映させることを特徴とする分散処理システムにおけるクライアントシステムのポリシ変更方法。
A request is issued to a distributed object on a network, and the issuance is performed under conditions of communication or operation in accordance with a predetermined access policy, and the access policy is set in the client device as a remote device. A policy change method of a client system for changing,
The client device receives an externally received access policy in order to externally receive and use an access policy which is a detail of communication or operation conditions in the remote device at the time of issuing the request. Set the client side communication method to be the condition of the operation,
The access policy is prepared in a means for holding the contents so that the contents can be changed, and an access policy obtained from the holding means is passed to the client device so that a client-side operation is performed so as to be a condition for communication or operation corresponding to the access policy. A policy change method for a client system in a distributed processing system, wherein the policy is reflected in a setting.
ネットワークで接続されたリモート機器からのリクエストを受け付けることが可能な分散オブジェクトに対し、リクエストを発行するクライアント・ソフトウエアを有すると共に、発行するリクエストの授受は予め与えられたアクセス・ポリシに従った通信又は動作の条件にて行うようにするリモート機器としてのクライアント機器における前記アクセス・ポリシを設定変更するためのクライアントシステムのポリシ変更方法であって、
前記クライアント・ソフトウエアは前記リクエスト授受に当たっての前記リモート機器に対する通信又は動作の条件の詳細であるアクセス・ポリシを外部から受け取って用いるようにするために、
前記アクセス・ポリシは内容変更可能に保持する手段に用意すると共に、この保持手段から得たアクセス・ポリシをリスト化して参照可能な情報にし、前記クライアント・ソフトウエアには前記参照可能な情報となったアクセス・ポリシを取り込んで前記アクセス・ポリシ対応の通信又は動作の条件となるようクライアント側動作設定に反映させることを特徴とする分散処理システムにおけるクライアントシステムのポリシ変更方法。
It has client software that issues requests for distributed objects that can accept requests from remote devices connected via a network, and sends and receives the issued requests in accordance with a given access policy. Or a policy change method of a client system for changing the setting of the access policy in a client device as a remote device to be performed under operation conditions,
The client software receives from outside the access policy which is the details of the condition of the communication or operation with respect to the remote device at the time of sending and receiving the request, and uses the access policy.
The access policy is prepared in a means for holding the contents so that the contents can be changed, and the access policy obtained from the holding means is listed as information that can be referred to, and the client software has the information that can be referred to. A method for changing a policy of a client system in a distributed processing system, characterized in that the access policy is taken in and reflected in a client-side operation setting so as to be a condition of communication or operation corresponding to the access policy.
変更可能な前記アクセス・ポリシは、クライアントが発信するリクエストの優先度と、リクエストが使用するプロトコルと、サーバに対する応答待ちの限界をあらかじめ設定するタイムアウト時間と、リクエストに対する応答が見られない場合のリトライ回数のうち、少なくともいずれかを含むことを特徴とする請求項4また5いずれか1項に記載の分散処理システムにおけるクライアントシステムのポリシ変更方法。The access policy that can be changed includes the priority of the request issued by the client, the protocol used by the request, the timeout period for setting the limit of waiting for a response to the server, and the retry when no response to the request is found. 6. The policy changing method for a client system in a distributed processing system according to claim 4, wherein at least one of the number of times is included. ネットワークで接続されたリモート機器からのリクエストを受け付けることが可能な分散オブジェクトに対して、リクエストを発行するクライアント・ソフトウエアウェアに対して、アクセス・ポリシを設定変更するためのプログラムであって、
前記リクエストの前記リモート機器に対する通信又は動作の条件の詳細であるアクセス・ポリシを内容変更可能に保持する手段と、
この保持手段から得たアクセス・ポリシを前記クライアント・ソフトウエアに渡して前記アクセス・ポリシ対応の通信又は動作の条件となるようクライアント側動作設定に反映させる手段と
からなるコンピュータプログラム。
A program for changing an access policy for client software that issues a request for a distributed object capable of accepting a request from a remote device connected via a network,
Means for holding an access policy, which is a detail of communication or operation conditions of the request to the remote device, so that the content can be changed,
Means for passing the access policy obtained from the holding means to the client software and reflecting the access policy in a client-side operation setting so as to be a condition for communication or operation corresponding to the access policy.
JP2002198755A 2002-07-08 2002-07-08 Method and program for changing policy of client equipment and client system in distributed processing system Pending JP2004038872A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002198755A JP2004038872A (en) 2002-07-08 2002-07-08 Method and program for changing policy of client equipment and client system in distributed processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002198755A JP2004038872A (en) 2002-07-08 2002-07-08 Method and program for changing policy of client equipment and client system in distributed processing system

Publications (1)

Publication Number Publication Date
JP2004038872A true JP2004038872A (en) 2004-02-05

Family

ID=31706125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002198755A Pending JP2004038872A (en) 2002-07-08 2002-07-08 Method and program for changing policy of client equipment and client system in distributed processing system

Country Status (1)

Country Link
JP (1) JP2004038872A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007081512A1 (en) * 2006-01-06 2007-07-19 Microsoft Corporation Peer distribution point feature for system management server
JP2009515252A (en) * 2005-11-02 2009-04-09 マイクロソフト コーポレーション IT operation / policy modeling method
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
JP2014186473A (en) * 2013-03-22 2014-10-02 Fuji Xerox Co Ltd Program and device
JP2017016707A (en) * 2016-10-12 2017-01-19 富士ゼロックス株式会社 Program and device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
JP2009515252A (en) * 2005-11-02 2009-04-09 マイクロソフト コーポレーション IT operation / policy modeling method
WO2007081512A1 (en) * 2006-01-06 2007-07-19 Microsoft Corporation Peer distribution point feature for system management server
US7761503B2 (en) 2006-01-06 2010-07-20 Microsoft Corporation Peer distribution point feature for system management server
JP2014186473A (en) * 2013-03-22 2014-10-02 Fuji Xerox Co Ltd Program and device
JP2017016707A (en) * 2016-10-12 2017-01-19 富士ゼロックス株式会社 Program and device

Similar Documents

Publication Publication Date Title
US5764982A (en) Peer-to-peer communication interface
US7574692B2 (en) Method for building component-software for execution in a standards-compliant programming environment
US7937500B2 (en) Dynamic, real-time integration of software resources through services of a content framework
US6910216B2 (en) IMS transaction messages metamodel
US7035944B2 (en) Programmatic management of software resources in a content framework environment
CA2279382C (en) Web request broker controlling multiple processes
US7571208B2 (en) Creating proxies from service description metadata at runtime
CN100388265C (en) Method and system for application installation and management using an application-based naming system including aliases
EP1257914B1 (en) Self-configurable distributed system
US20020016790A1 (en) Apparatus and method for dynamically verifying information in a distributed system
US20060206903A1 (en) System data interfaces, related architectures, print system data interfaces and related print system architectures
US20030009539A1 (en) Distributed object middleware connection method
WO1999044126A2 (en) Methods and apparatus for remote method invocation
US20030055862A1 (en) Methods, systems, and articles of manufacture for managing systems using operation objects
US7363487B2 (en) Method and system for dynamic client authentication in support of JAAS programming model
US20060023688A1 (en) Mobile exchange infrastructure
JP2004038872A (en) Method and program for changing policy of client equipment and client system in distributed processing system
US8676842B2 (en) Creating multiple Mbeans from a factory Mbean
US20060156296A1 (en) Distributed computing system
Raptis et al. Multi-technology distributed objects and their integration
Stal The broker architectural framework
Hauck et al. A flexible and extensible object middleware: CORBA and beyond
JP2003157242A (en) Distributed processing system and cooperation adaptor, cooperation method in distributed processing system and program
US20070299848A1 (en) System and method for mapping between instrumentation and information model
Little et al. Building configurable applications in Java

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080108