JP2003303181A - 分散処理システムおよび分散処理プログラム - Google Patents

分散処理システムおよび分散処理プログラム

Info

Publication number
JP2003303181A
JP2003303181A JP2002105990A JP2002105990A JP2003303181A JP 2003303181 A JP2003303181 A JP 2003303181A JP 2002105990 A JP2002105990 A JP 2002105990A JP 2002105990 A JP2002105990 A JP 2002105990A JP 2003303181 A JP2003303181 A JP 2003303181A
Authority
JP
Japan
Prior art keywords
priority
name
distributed
corba
given
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
JP2002105990A
Other languages
English (en)
Inventor
Yutaka Irie
豊 入江
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 JP2002105990A priority Critical patent/JP2003303181A/ja
Publication of JP2003303181A publication Critical patent/JP2003303181A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】分散オブジェクトに持たせる優先度を変更した
い場合に、簡易にこれを行うことができる仕組みを提供
するものである。 【解決手段】OSを搭載してこのOSのもとで動作する
分散オブジェクトにて機能する機器であって、前記分散
オブジェクトはネットワークで接続されたリモート機器
からのリクエストを受け付けることが可能であり、リク
エストを受けた分散オブジェクトは与えられた優先度に
て処理実行されるようにした分散処理システムにおい
て、各分散オブジェクトに与える処理実行の優先度の情
報を保持すると共に、当該情報内容を任意に修正可能な
優先度情報保持手段200,300を設け、各分散オブジェク
トが動作する場合のOS上の優先度の値は、それぞれ優
先度情報保持手段200,300にて取得する構成とすること
を特徴とする分散処理システムを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワークによ
って接続される複数の計算機要素に対して、処理優先度
つきの分散オブジェクト環境、例えば、CORBAを導
入した分散処理システムに係わり、特に分散オブジェク
トの優先度を集中管理可能にして優先度変更を容易にし
た分散処理システムおよび分散処理プログラムに関す
る。
【0002】
【従来の技術】多数の組み込み機器(エンベッド)を用
いて構成したシステムの場合、特にそれぞれの組み込み
機器がCPU(プロセッサ)を制御の中枢に持つ独立し
たインテリジェントなシステムであって、自身に組み込
まれているOS(オペレーティング・システム)の管理
下で稼動するような仕組みを持つ組み込み機器同士がネ
ットワークで繋がっているようなシステムの場合には、
あるいはこのような組み込み機器が組み込み機器制御用
のPC(コンピュータ)に繋がっているようなシステム
の場合には、各組み込み込み機器に対する処理の優先度
(プライオリティ)については、一般化した概念で考え
るようにする必要がある。
【0003】すなわち、要求される処理それぞれに優先
度があり、重要度や緊急性の高い処理ほど、高い優先度
を与えて処理を優先させる必要がある。
【0004】一方、このような組み込み機器において、
優先度の扱いは搭載したOSの仕様に従うことになる。
また、OSとしては様々なものが流通していて、上記組
み込み機器の開発メーカはその中から、自身の使い慣れ
た特定OSや、需要の多いOSを選定し、搭載すること
になるが、優先度の値の扱いとなると、それぞれのOS
世界により、際立った違いがあり、これが障壁になる。
すなわち、それぞれのOS世界により、優先度の高低
(レベル)を決める値の取り扱いに違いがあり、分散処
理にあたって、問題になる。
【0005】例えば、VMEバス上に搭載可能なCPU
上で動作させる計測制御システムに利用されるOSとし
てVxWorksがあるが、このVxWorks(Ver.
5) であれば、取り得る優先度値の範囲は“0”から“2
55”であり、また、パソコンOSであるWindows
NT 4.0(マイクロソフト社の商標)であれば、取り得る
優先度値の範囲は“−15”から“15”であって、間
は飛び飛びであり、Solaris(米サンマイクロシステム
ズ社の商標:米サン・マイクロシステムズによって開発
されたUNIX(米AT&T社の商標)のこと。)の世界、特に
リアルタイム拡張版であるSolaris8ならばリアルタイ
ムでない優先度が“120”程度の範囲で、且つ、リア
ルタイム優先度の段階が“60”程度の範囲の値を用い
る。
【0006】そして、各処理については、重要性や緊急
性に応じて高低最適の優先度を値で設定する。優先度の
高いものほど、OSが有するタスク・スケジューラは、先
に処理をCPUに割り当てる。但し、優先度の値や、スケ
ジューリング・アルゴリズムの詳細はその値が大きい方
と小さい方のどちらが高い優先度となるかといった実際
の扱いは、OSの種類により様々である。
【0007】そして、分散環境の場合、たとえば、後述
するCORBAのような分散環境の場合、この違いは大
きな問題となって跳ね返ることになる。
【0008】周知のように、分散環境というのは、ネッ
トワーク・アプリケーションを構築する主要な技術の一
つである分散オブジェクト指向技術による処理環境であ
って、これはデータの処理や操作を、手続きの流れとし
てではなく、「もの(オブジェクト)」同士の関係とし
てとらえる考え方で、各種オブジェクト(オブジェクト
指向プログラミングにおいて、プログラムを構成する基
本的なモジュール)を分散配置して処理を分担させて進
めていく方式である。そして、複数のオブジェクトがあ
って、各オブジェクトに定義するオペレーションを、所
定のインタフェース言語(IDL)で定義する仕様を与
え、定義されたオブジェクトをクライアントから所定の
手続で呼べるようにするためのルールを決めたものがC
ORBA仕様である。
【0009】リアルタイムCORBA環境においては、
新しいオブジェクトを作成して、所望の優先度を指定し
てこの優先度で活性化しておく。後に、そのオブジェク
トに対するリクエストが、リモートにあるクライアント
から到着したとき、先に指定した優先度を与えたタスク
が生成され、リクエストの処理をそのタスク上で実行す
る。処理の要求(リクエスト)が同時に多数発生した場
合、優先度の高いリクエストから実行されることになる
が、優先度が同じ場合は、所定のタスク・スケジューリ
ングに従って処理される。
【0010】CORBA環境においては、プログラムは
オブジェクト単位で与えられる。そして、CORBA仕
様のORB環境で動作するオブジェクトをCORBAオ
ブジェクトと呼ぶ。 CORBAオブジェクトは一つ以
上のサービスとこれに対応するインタフェースを提供す
る。そして、CORBAオブジェクト同士であれば、場
所や環境に関係なくやり取りができる。
【0011】ここで、本発明が適用対象としているCO
RBAの世界について、もう少し詳しく触れておく。す
なわち、CORBAとは、“Common Object Request Br
okerArchitecture”の略であり、分散オブジェクト指向
技術における標準的技術の一つであって、分散オブジェ
クト技術の標準化団体であるOMG(Object Management
Group) が策定した規格である。
【0012】CORBAは、分散したオブジェクトをネ
ットワークで、ハードウエアやOSに関係なく共有化
し、統合するアーキテクチャの開発を目的とした標準仕
様であって、CORBAの規格では、バージョン2.4
(CORBA 2.4 )において、特にリアルタイム処理
分野や、組み込みシステム分野を対象とした、処理優先
度の概念を分散オブジェクトに導入した規格としてリア
ルタイム・コルバ(Real-time CORBA、以下、RT
−CORBAと称する)を正式に採択した。そして、そ
の優先度処理に関する標準仕様の部分を、特に、RT−
CORBA 1.0と呼んでいる。CORBAは、ヘテロジ
ニアスな分散環境を許容する(OSが違っていても良
い)ので、優先度の有効範囲が異なるOS間でのオペレ
ーションの呼び出しにおいて、その優先度の値をどのよ
うに渡すかが問題になる。
【0013】本発明はCORBAオブジェクトに持たせ
る優先度を変更したい場合での問題点を解決するもので
あるが、ここでは上述のRT−CORBAに注目してみ
る。
【0014】Real-time CORBA 1.0を特徴付ける仕
様のうち、本発明に関連する内容として、プライオリテ
ィ・マッピングの概念がある。
【0015】このプライオリティ・マッピングとは、異
なるオペレーティング・システム(OS)が存在する分
散環境上のオブジェクトに、処理優先度の概念を導入す
るために、必然的に導入された概念であって、ネーティ
ブ・プライオリティとCORBAプライオリティとの間
での優先度変換に用いる概念である。
【0016】CORBAプライオリティは、CORBA
の規格が適用されたシステムにおいて、ネットワーク上
のすべての分散オブジェクトにとって共通の優先度指標
を表すものとして導入された優先度概念であり、これに
対して、個別のOSで使用する優先度を指す用語がネー
ティブ・プライオリティであって、両者間の優先度変換
は、CORBAの基本サービスを提供するソフトウエア
であるORB(ObjectRequest Broker:オブジェクト・
リクエスト・ブローカ)によって図られる。
【0017】ORBは、分散環境におけるオブジェクト
間のやり取りを実現するためのメカニズムを提供するソ
フトウエアであって、リモートオブジェクト同士の相互
的なやり取りを実現するために必要なミドルウエアであ
り、オブジェクト間での要求と応答をシームレスに実現
するための仲介役としての機能を果たすものであるが、
RT−CORBAにおいては、当該ORBによってCO
RBAプライオリティとネーティブ・プライオリティ間
での優先度の変換を図るようにしているわけである。
【0018】そして、マッピングとは、このORBにお
いて用いる変換の規則を指す呼び名であり、CORBA
規格では個別のORBにおいて定義すべきものとして扱
われている。
【0019】RT−CORBA規格が定めるリアルタイ
ム優先度の処理方式は、プログラム記述のために提供さ
れている各プログラミング言語それぞれにおいて各言語
マッピングにより、API(Application Program Inte
rface)として定められている。
【0020】例えば、C++言語であれば、このC++
言語でのAPIとして、また、Java(サンマイクロ
システム社商標)言語ならばJava言語でのAPIと
して、具体的な言語でのCORBA仕様によるAPIと
して定められている(CORBA言語マッピングと呼ばれ
る)。そして、予定したプライオリティ(優先度)の数
値は、プログラミング言語で記述したプログラム記述で
あるソース・コード上から変数を経由して与えることが
可能である。
【0021】このように、CORBAの基本サービスを
提供するソフトウエアであるORBを用いることによ
り、CORBAプライオリティとネーティブ・プライオ
リティ間での優先度の値の変換を図ることができるが、
RT−CORBA規格を搭載するORBは、優先度処理
を有効に機能させるために、大きく次の2点に分類され
る仕様を定めている。1つは“プロセッサ・リソースの
管理”であり、もう一つは“ORB間の通信の制御”で
ある。
【0022】これらのうち、“プロセッサ・リソースの
管理”とは、分散オブジェクトにおける優先度モデルと
その実装手段の提供や、スレッド・プール管理手段の提
供などを指しており、また、“ORB間の通信の制御”
とは、優先度の逆転を避けるようなコネクションの確立
や、プロトコルの選択手段などを指している。
【0023】ここで、上述の優先度モデルとは、分散シ
ステム上での優先度の与え方や管理方法を定めるモデル
のことを指す。RT−CORBA1.0では、“サーバ
・デクリアード・モデル”と“クライアント・プロパゲ
ーティッド・モデル”という2つのモデルが定義されて
いる。このモデルの選択は、一般のCORBAサーバ構
築における一般の方法と同様に、POA(Potable Obje
ct Adapter:ポータブル・オブジェクト・アダプタ)へ
のポリシー指定という形で実装することができる。
【0024】なお、サーバ側におけるオブジェクトリフ
ァレンスの生成や破棄、オブジェクトの実装、活性化や
非活性化などの機能を実現する部分については、ORB
とは切り離したコンポーネントとする(つまり、オブジ
ェクト・アダプタというコンポーネントとする)が、前
記のPOAは、このコンポーネントにおける通信プロト
コルおよびオブジェクト・アダプタの詳細な振る舞いを
定めた仕様を指し、これはCORBA仕様の重要な一部を構
成する。
【0025】また、上記の“サーバ・デクリアード・モ
デル”とは、サーバ側で特定の優先度をオブジェクト毎
に設定するモデルである。このモデルは、典型的な使用
方法としては、一度与えた優先度は変更しない用途向け
であり、CORBAオブジェクト毎に固定的な優先度を
設定して差し支えないような用途のアプリケーションに
向く。
【0026】また、“クライアント・プロパゲーティッ
ド・モデル”とは、CORBAクライアント側で、希望
する優先度を指定してリクエストを発行するモデルであ
り、優先度は、リクエストの一部として埋め込まれてサ
ーバ側に渡される。このモデルは、リクエストの内容
(引数値)や、リクエストを発行するまでの文脈によっ
て優先度を変える必要があるアプリケーションに向いて
おり、サーバ・デクリアード・モデルと比較すれば、よ
り汎用的な用途向けのモデルと云える。
【0027】なお、上述のORBはコンポーネントとし
て提供されていてORBコアと呼ばれており、このOR
Bコアはクライアント側におけるオブジェクトからはス
タブやDII(Dynamic Invocation Interface(動的起
動インタフェース)から、そして、サーバ側におけるオ
ブジェクトからはDSI(Dynamic Skeleton Interface
(動的スケルトンインタフェース)やスケルトンなどか
ら呼び出されることになる。
【0028】また、上述のスタブとは、遠隔リクエスト
をかける(他のオブジェクトに対してメッセージを送信
する)ためのコード部を指し、DII(Dynamic Invoca
tionInterface(動的起動インタフェース)とは、オブ
ジェクトが実行された段階でインタフェースを決定し、
リクエストを発行する方法を指し、DSI(DynamicSke
leton Interface(動的スケルトンインタフェース)と
は、リクエストを受け付けるためのインタフェースにお
いて、専用のスケルトンを用いず、この部分について独
自に開発したインタフェースを指し、スケルトンとは、
ORB仕様に基づいたインタフェースプログラムで、他
のオブジェクトからのリクエストを受け付けることを可
能にするコード部を指す。
【0029】CORBA仕様の特徴的な点として、OR
Bにより分散オブジェクトを実現するための仕様を提供
する他に、多くのアプリケーションから汎用的に必要と
なる種々のサービスをCORBAオブジェクトとして実現し
たものを仕様として盛り込んでいることがあげられる。
このサービスはCORBAサービスと呼ばれており、C
ORBAサービスを利用することで、高度な機能を持つ
分散オブジェクトシステムを容易に開発できるようにし
ている。
【0030】当該CORBAサービスは実装言語に依存
しないインタフェース記述ための言語であるIDL(イ
ンタフェース定義言語)で定義されたインタフェースを
装備するサービスの集合であり、ORBに接続されたC
ORBAオブジェクトの集まりであって、これらはOR
Bを介して利用できる。
【0031】一例をあげるとCORBAサービスには、
ORBによって接続されたコンポーネント(オブジェク
ト)をシステム上でユニークに命名した名前で見つけ出
すためのサービスを提供するネーミングサービス(Nami
ng service)、オブジェクト間におけるイベントの登
録や管理を行うためのサービスを提供するイベントサー
ビス(Event Service)、オブジェクト間におけるトラ
ンザクション制御を行うためのサービスであるトランザ
クションサービス(Transaction Service)、オブジェ
クトの生成やコピー、移動、削除を実現するためのサー
ビスであるライフサイクルサービス(Life Cycle Servi
ce)、ファイルやデータベースなどのオブジェクトを永
続的にセーブするためのサービスである永続化サービス
(Persistent Service)、オブジェクトの排他的制御を
行うためのサービスである並列制御サービス(Concurre
ncy Service)、オブジェクト同士を関係付けるサービ
スであるリレーションサービス(Relationship Servic
e)、オブジェクトデータを外部にセーブしたり、外部
から読み込むためのサービスである外部化サービス(Ex
ternaliztion Service)、SQLなどを用いてデータベ
ースをアクセスするためのサービスであるクエリーサー
ビス(Query Service)、オブジェクトの利用量を監視
し、課金などを制御するためのサービスであるライセン
シングサービス(Licensing Service)、オブジェクト
に対して名前と値を動的に付加するためのサービスであ
るプロパティサービス(Properties Service)、分散オ
ブジェクト間において時間の同期をとるためのサービス
である時間サービス(Time Service)、分散オブジェク
トにおける認証やアクセス制御など、セキュリティに関
するサービスであるセキュリティサービス(Security S
ervice)、キーワードを元にオブジェクトを条件検索す
るためのサービスであるトレーダサービス(TraderServ
ice)、分散環境における共通オブジェクトの集合を管
理するためのサービスであるコレクションサービス(Co
llection Service)、等が用意されている。
【0032】上述したネーミングサービス(Naming se
rvice)はオブジェクトを名前によって管理するための
サービスであり、ORBに接続されるオブジェクト間で
名前による検索を可能にする環境を提供する。ネーミン
グサービスではネーミングコンテキスト(Naming Conte
xt)と呼ばれるいわゆるオブジェクト検索用のデータベ
ースを用いる。ネーミングコンテキストではオブジェク
トの名前とそのタイプ、そして、分散オブジェクトを一
意に示すことができるオブジェクトリファレンスの情報
の3つを1つのレコードという単位で構成する。オブジ
ェクト・リファレンスとは、ネーミング・サービスに限
らず、分散オブジェクトを一意に特定するデータとして
使用するもので、その内容は、CORBA仕様により定めら
れたものである。
【0033】ネーミングサービスでは、bindというオペ
レーションによりネーミングコンテキストへのオブジェ
クト情報登録が、unbindというオペレーションによりネ
ーミングコンテキストからのオブジェクト情報削除が、
更にはresolveというオペレーションにより、名前に対
応するオブジェクトリファレンスの情報を取得すること
ができる。
【0034】なお、オブジェクトリファレンスはオブジ
ェクトのメソッドを起動する際に必要な識別子であるこ
とから、この情報を得ることで、ターゲットとするオブ
ジェクトへの要求が可能になる。従って、オブジェクト
リファレンスが含まれるネーミングコンテキストの操作
により、分散オブジェクトを名前で管理することができ
ることになる。また、ネーミングコンテキスト自体がオ
ブジェクトであるため、これに名前を付けてネーミング
コンテキストへ登録することが可能でありこれにより、
ネーミングコンテキストの階層的な管理も実現できる。
【0035】ところで、RT−CORBAを含めて現在
のCORBA仕様においては、実装の詳細に関する定義
は、サーバ側ORBを単位として与えることを暗黙の原
則としている。そして、RT−CORBAでは、特定の
CORBAオブジェクトに与える優先度の値の定義は、
サーバプログラムのソース・コード中で与えるための仕
様のみが定められているだけである。
【0036】この原則は、例えば、1対nのサーバとク
ライアントからなる組み合わせのシステムを対象とする
範囲においては十分であり、何らの支障もない。
【0037】しかし、CORBAオブジェクトによる分
散環境を持つ多数のエンベッドを組み合わせてネットワ
ーク上で利用するシステムでは、サーバとクライアント
の関係が多対多となることから、このようなシステムで
は問題は確実に顕在化する。例えば、開発製造会社が異
なるようなエンベッド・システムであり、それぞれが独
自に機能し、また、他との間でも処理を指令したり、情
報を交換したりして処理を進めていくような機能を有す
る監視・制御対象機器を複数台(例えば、10機器程
度)接続したリアルタイム型の制御・監視ネットワーク
システムに対してRT−CORBAを導入し、多数の種
類の分散リクエストに対して優先度処理を実現しようと
する場合で、しかも、エンベッドによっては搭載OSが
他と異なるような場合を考えてみる。
【0038】確かに、ネーティブ・プライオリティとC
ORBAプライオリティとの間での優先度変換を行う仕
組みを提供するのがORBではあるが、これは中心とな
るものが1つで、他は従となる関係にある場合には有効
に機能するものである。
【0039】しかし、例えば、組み込んだ監視・制御対
象機器により搭載OSの種類が異なっているような場
合、このような機器各種をネットワークで接続し、他と
の関係を持たせたときに、それぞれの機器における各オ
ブジェクトに既に設定した優先度が、本来の必要な優先
度に満たない結果を呈してしまうような場合が存在し得
る。例えば、同じネットワーク上の優先度の高いオブジ
ェクトに対するリクエストが、たまたま同じ優先度に割
り当てられてしまい、どちらのリクエストが優先される
かが一定せず、結果としてシステム全体の外部仕様とし
て本来求められる振る舞いとは異なる挙動を示すといっ
たケースである。
【0040】このように、ネットワーク上で接続される
他の機器やネットワークの伝送状態などの絡みで動作の
状況に変化が生じるような場合には、設計段階で想定す
る優先度処理の結果の予測は、分散でない一般のシステ
ムでの優先度処理に比べて困難である。そこで、一般的
には、実際にネットワーク上で機器を稼動させ、各通信
の要求性能に対する達成状況を見ながら総合的に優先度
を調整していくことになる。
【0041】しかし、従来のシステムの場合、これが簡
単にはいかない。図8に従来システムを示す。ここで
は、RT−CORBA優先度処理の従来の優先度定義方
式として、サーバ・デクリアード・ポリシーを利用した
際のRT−CORBAの処理方式を説明する。
【0042】図8において、Aがサーバ側の構成機器で
あり、Bがクライアント側の構成機器であって、それぞ
れ開発製造会社が異なる製品であるとする。これらがネ
ットワーク上で接続されて動作するものとする。構成機
器AはあるOSの管理下で機能するものであり、そのた
めに、ネーティブ・プライオリティとCORBAプライ
オリティとの間での優先度変換を行う仕組みを提供する
ためにORBが用意されている。また、構成機器Bも別
のあるOSの管理下で機能するものであり、そのため
に、ネーティブ・プライオリティとCORBAプライオ
リティとの間での優先度変換を行う仕組みを提供するた
めにORBが用意されている。
【0043】今、このような環境下の構成機器Aにおけ
るプログラム(CORBAサーバプログラム)900
と、構成機器Bにおけるプログラム(CORBAクライ
アントプログラム)950とが所要の優先度で機能する
様子を考えてみる。CORBAサーバプログラム900
には、必要な各種のCORBAオブジェクトが含まれて
おり、CORBAオブジェクトを動作させる場合に必要
な優先度(CORBAプライオリティ)を、具体的な
“値”としてCORBAサーバプログラム900中に持
たせてある。
【0044】まず、CORBAサーバプログラム900
はRT−POA 910を生成する(ステップST1で
の生成)。RT−POA はリアルタイムCORBAで
定められている優先度を付けたり、ポリシー(方針や原
則や方策)を設定したりするためのもので、このRT−
POA 910を予め用意する(すなわち、CORBA
を利用するためには、このRT−POA 910は先に
作っておかねばならないと規定されているので、まずこ
れを用意する)。
【0045】CORBAサーバプログラム900には、
CORBAオブジェクトXが含まれているとして、この
CORBAオブジェクトXの出番が生じたとする。する
と、CORBAサーバプログラム900は当該オブジェ
クトXを生成すると共に活性化する(ステップST2で
の生成・活性化)。活性化とはあるPOAとあるオブジ
ェクトを結びつけてそのPOAの上でそのオブジェクト
が動くようにするということを指す。RT−CORBA
では、このときに優先度が与えられる。
【0046】従って、活性化とは、リアルタイムCOR
BAの場合、RT−POA(リアルタイムPOA) 9
10の上でそのオブジェクトXが動作するように加工す
ることである。従って、この活性化により、そのオブジ
ェクトXにはRT−POA100に則った必要な優先度
の付与された、しかも、前記ポリシーに従った実行が可
能となる。なお、リアルタイムCORBAでは、優先度の与
え方として、サーバ・デクリアード・モデルと、クライ
アント・プロパゲーティッド・モデルの2種類の方法が
あり、前者のサーバ・デクリアード・モデルの場合は、
この活性化の際に与えた優先度がオブジェクトを破棄す
るまで有効となる。また、クライアント・プロパゲーテ
ィッド・モデルとは、リクエスト毎にクライアントから
優先度を指定できるモデルであるが、リクエスト中に優
先度に関する指示が含まれていなかった場合のデフォル
トの優先度として有効となる。
【0047】ここでCORBAオブジェクトXはクライ
アント側からのリクエスト待ちとなることから、サーバ
側の処理は待ち状態となる。
【0048】CORBAオブジェクトXはリモートから
アクセスしてもらわねばならないので、いま、このよう
なオブジェクトが利用可能であることを知らせるための
公開情報であるオブジェクトリファレンスを外部に出す
(公開する)必要がある。
【0049】CORBAサーバプログラム900はCO
RBAオブジェクトXを生成・活性化するときに当該オ
ブジェクトXについてのリファレンス(その分散オブジ
ェクトに付与した優先度の情報を含む当該オブジェクト
を一意に示すことができる情報)を公開する(ステップ
ST3)。そのときに、普通に利用されるのがネームサ
ービスである。
【0050】CORBAの規格上、CORBAオブジェ
クトには優先度情報も中に含んでいる。クライアント側
(クライアント側のCORBAプログラムであるCOR
BAクライアントプログラム950)は、オブジェクト
リファレンスを辞書引きのようなかたちでネームサービ
スに問い合わせて、リクエスト先となるCORBAオブ
ジェクトXのリファレンスをもらってくる(ステップS
T4)。
【0051】要するに、CORBAプログラムの開発に
当たっては、機能実現に必要な各オブジェクトそれぞれ
について、最初からそれぞれ固有の名前を決めておく。
これにより、どの機器でどのような名前のどのようなオ
ブジェクトが用意されるかを予め知ることができるの
で、例えば、あるクライアント側のあるオブジェクトY
において、機器AにおけるXなる名前のオブジェクトを
リクエストする必要がある場合には、機器Aにおけるオ
ブジェクト名Xのオブジェクトを指定してリクエストす
るようにプログラミングすれば良いこととなる。
【0052】しかし、機器Aなる名前は人間世界の便宜
的な呼び名であり、この呼び名は機器B(クライアント
側)からは全く識別できないし、特定できない。COR
BAでは機器名による識別はできないわけである。そこ
で、用意されたのがネームサービスであり、CORBA
の世界では、便宜的な機器名Aの持つオブジェクトXが
必ず特定できる情報があって、それをAと云う名前と結
びつけて情報管理しているのがネームサービスであり、
ネームサービスの提供する情報を利用したい場合には、
オブジェクトリファレンスの問い合わせという処理を当
該ネームサービスに対し実行することで、上記管理して
いる情報をネームサービスの側から提供して貰い、取得
することができるようになる。
【0053】従って、機器AのオブジェクトXをリクエ
ストするクライアント側の構成機器BにおけるCORB
Aクライアントプログラム950では、ネームサービス
960を利用したオブジェクトリファレンスの問い合わ
せを実行し、これによりネームサービスから返された機
器AにおけるXなる名前のオブジェクトについてのCO
RBA世界での特定できる情報を取得して、これを用い
てCORBAオブジェクトXにリクエストを出す。
【0054】すなわち、各オブジェクトのリファレンス
を他が参照して利用できるよう、提供の場として用意さ
れたのがネームサービスであり、ネームサービスにオブ
ジェクトレファレンスの問い合わせをすることで、具体
的には、名前を引数にして対応するオブジェクトのリフ
ァレンスをこのネームサービスからとってくることで
(ST4)、CORBAクライアントプログラム950
の実行に伴う当該クライアントプログラム950からオ
ブジェクトXに対するリクエスト(ステップST5)が
できることになる。これがRT−CORBAの一般的な
動きである。
【0055】
【発明が解決しようとする課題】このように、多数の組
み込み機器をネットワークで接続し、RT−CORBA
を適用するようにしたシステムにおいては、ある機器A
におけるXなる名前のCORBAオブジェクトを生成す
るにあたっては、処理の優先度を予め組み込んでおき、
また、CORBA上で特定できる情報と上記優先度の情
報をリファレンスとして公開し、CORBA世界で提供
されるネームサービスの機能により、情報提供できるよ
うにしてある。
【0056】そして、当該Xなる名前のオブジェクトを
リクエストするクライアント側の構成機器BにおけるC
ORBAクライアントプログラムでは、ネームサービス
を利用したオブジェクトリファレンスの問い合わせを行
い、これによりネームサービスから返された機器Aにお
けるXなる名前のオブジェクトについてのCORBA世
界での特定できる情報を取得して、これを手掛かりにC
ORBAオブジェクトXに対するリクエストを行うこと
になる。
【0057】このような従来技術の場合、サーバプログ
ラムの側に設定した優先度の情報(値)は、生成時にサ
ーバ側のオブジェクトXに与えられており、また、この
オブジェクトXにリクエストをするクライアント側のプ
ログラムもその実行時に、ネームサービスを利用したオ
ブジェクトリファレンスの問い合わせによって返された
リファレンス情報に基づき、設定した優先度でリクエス
トを実施することができる。なお、オブジェクト・リフ
ァレンスには、優先度の数値が直接入っているわけでは
ない。 そのオブジェクトを、活性化時に与えた優先度
によって呼び出すために必要な情報という形で、(間接
的に)優先度情報が含まれている。
【0058】従って、サーバ側では、サーバプログラム
に組み込まれたCORBAオブジェクトXを生成する際
に、そのCORBAオブジェクトXにはソースコード中
に記述した所望優先度を持たせることができ、また、こ
の優先度の情報は当該オブジェクトXについてのリファ
レンスとして公開し、ネームサービスにて情報管理させ
て、他のオブジェクト生成時に情報提供することで、サ
ーバ側オブジェクトおよびクライアント側オブジェクト
相互に予定の優先度を割り当てるようにする結果、優先
度を変えようとすると、サーバプログラムを修正しなけ
ればならなくなる。
【0059】CPU(プロセッサ)を制御の中枢に持つ
各構成機器をエンベッド機器として組み込み、ネットワ
ークを介して多数を接続した構成の場合、リソース制約
として、各構成機器のCPUの処理状態や処理性能と、
ネットワークの状態とがそれぞれ機器の処理動作状態に
少なからず影響を及ぼすことになる。従って、このよう
なシステムでは一般に設計段階における各機器のオブジ
ェクトの優先度処理の結果の予測は、一般の分散でない
優先度処理よりも困難である。ここで、優先度処理の結
果とは、ネットワーク・全体の中で、どのオブジェクト
が実際に優先的に処理されたか、ということである。
【0060】処理の優先度は、相対的な概念であるの
で、分散処理の環境下においては、あるリクエストの優
先度を上げることにより、他のリクエストは相対的に優
先度が低下することになるため、ある処理に対して優先
度変更があった場合、別の他の処理においては優先され
なくなると云う事態が発生しかねない。従って、機器の
新増設や撤去、或いは更新のために入れ替えるなど、組
み合わせが変更されるようなことがあると、組み込んだ
制御対象(エンベッド)が多数台構成のシステムにおい
ては、それぞれの機器の優先度はある処理の優先度変更
は他の処理に、何らかの影響を与えてしまう危険を払拭
できない。
【0061】そこで、一般的には、実際に機器を稼動さ
せ、各通信の要求性能に対する達成状況をみながら、総
合的に優先度を調整する必要がでてくる。
【0062】しかしながら、実装の詳細に関する定義
は、各機器のORBを単位として与える仕様のみをCO
RBAで定義しているだけであるため、こうした方法を
とると、各機器においてそれぞれ優先度定義をやり直す
だけでなく、ソースコードの書き直しとコンパイルのや
り直しの必要がでてくる。
【0063】従って、これを簡易に実施できる仕組みの
早急な開発が嘱望される。
【0064】本発明は、このような事情に鑑みてなされ
たものであり、その目的とするところは、分散環境のシ
ステムにおいて、分散処理の各オブジェクトの優先度変
更を容易に行えるようにした分散処理システムを提供す
ることにある。
【0065】また、本発明は、CORBAを適用した分
散処理環境のシステムにおいて、リアルタイムCORB
A優先度の集中管理を可能にし、各オブジェクトの優先
度変更を容易に行えるようにする分散処理システムを提
供することにある。
【0066】
【課題を解決するための手段】上記目的を達成するた
め、本発明は次のように構成する。すなわち、オペレー
ション・システムを搭載してこのオペレーション・シス
テムのもとで動作する分散オブジェクトにて機能する機
器であって、前記分散オブジェクトはネットワークで接
続されたリモート機器からのリクエストを受け付けるこ
とが可能であり、前記リクエストを受けた分散オブジェ
クトは与えられた優先度にて処理実行されるようにした
分散処理システムにおいて、各分散オブジェクトに与え
る処理優先度の情報をそれぞれ優先度名との対応で保持
すると共に、当該情報内容を任意に修正可能な優先度情
報保持手段を設け、また、優先度名から優先度値を取得
する優先度ハンドラを設けると共に、各分散オブジェク
トには優先度名が与えられ、分散オブジェクトが動作す
る場合の前記オペレーティング・システム上の優先度の
値は、分散オブジェクトに対して与えられた優先度名か
ら前記優先度ハンドラが前記優先度情報保持手段より対
応する優先度値を取得する構成とする。
【0067】本システムは、機器がネットワークで接続
されており、機器はオペレーション・システムを搭載し
てこのオペレーション・システムのもとで動作する分散
オブジェクトにて機能する。そして、前記分散オブジェ
クトはネットワークで接続されたリモート機器からのリ
クエストを受け付けることが可能であり、前記リクエス
トを受けた分散オブジェクトは与えられた優先度にて処
理実行される構成である。そして、このような本システ
ムにおいては、優先度情報保持手段を設けてあり、この
優先度情報保持手段には各分散オブジェクトに与える処
理優先度の情報をそれぞれ優先度名との対応で保持させ
てある。この優先度情報保持手段は、システム共有のも
のであり、保持する情報内容を任意に修正可能な構成と
なっている。
【0068】各分散オブジェクトには優先度名が与えら
れ、分散オブジェクトが動作する場合の前記オペレーテ
ィング・システム上の優先度の値は、分散オブジェクト
に対して与えられた優先度名から前記優先度ハンドラが
前記優先度情報保持手段より対応する優先度値を取得す
る。
【0069】すなわち、ネットワークで接続されたリモ
ート機器からのリクエストを受け付けることが可能な分
散オブジェクトにおいて、優先度を表す特定の名前を指
定し、対応する優先度は、共有の優先度情報保持手段よ
り取得するようにした分散処理システムとなる。
【0070】本発明システムにおいては“優先度名”と
いう概念を導入するようにした。優先度名は、ユーザが
ひとまとまりの調整単位とするもの毎に付与するように
するもので、優先度の調整は、優先度名に対して与える
優先度値の変更という形で実施する。
【0071】本発明システムにおいては、優先度情報保
持手段を設けてあり、この優先度情報保持手段には各分
散オブジェクトに与える処理優先度の情報をそれぞれ優
先度名との対応で保持させてあるが、この優先度情報保
持手段は、システム共有のものであり、保持する情報内
容を任意に修正可能な構成となっている。よって、本発
明システムにおいては、優先度の調整は、優先度名に対
して与える優先度値の変更という形で実施することがで
きるシステムとなる。
【0072】この結果、各分散オブジェクトの優先度設
定を変更を容易に実施可能となる効果が得られる。
【0073】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照して説明する。
【0074】本発明は、多数の組み込み機器をネットワ
ークで接続して分散環境上で動作させるCORBA仕様
のシステムにおいて、あるオブジェクトの優先度を変更
した時にその影響が他のものに波及して不具合を起こし
た場合などにおいて、影響のあったオブジェクトについ
ての優先度を、容易に変更することができるようにする
優先度変更容易なリアルタイムCORBA優先度管理方
法を提供する。
【0075】本発明技術を適用して好適な典型的応用事
例としては、単数または複数のリアルタイム・システム
や、エンベット型システムをネットワークで接続し、別
の計算機により制御または監視するシステムであり、こ
のようなシステムにおいて、分散オブジェクトの優先度
を集中管理可能にするものである。
【0076】以下、本発明の一実施例について図面を参
照して説明する。本発明においては、CORBAにおけ
る従来からのRT−POA(Rial-Time Potable Object
Adapter)、ORB、ネームサービスの利用の他に、今
回、新たにローカル優先度ハンドラ200、優先度サー
ビスサーバ300の概念を導入した。
【0077】優先度名から優先度を取得するために用意
した新たなCORBAサービスの一つである優先度サー
ビスを実施するためのサーバが優先度サービスサーバ3
00であり、当該優先度サービスサーバ300は、優先
度名から優先度を取得するために用意したデータを保持
して、優先度名を指定した問い合わせに対して、その優
先度名で定まる優先度の情報を提供する機能を有してい
る。また、ローカル優先度ハンドラ200は、エンベッ
ド機器におけるサーバ側として機能するある機器Aで使
用するオブジェクトXを生成する処理の際に用いるため
に新たに用意したものであって、優先度の名前を与える
と、その優先度名で定まる優先度(CORBA優先度の
値)を優先度サービスサーバ300から取得して数値と
してORBに返すような仕組みを持たせたソフトウエア
部品である。
【0078】ローカル優先度ハンドラ200において、
ORBに返す優先度の数値はこの場合、機器Aで搭載し
たOSにおける前記優先度対応の優先度をあらわす数値
である。
【0079】なお、RT−POA(Potable Object Ada
pter)100は、サーバ側におけるオブジェクトリファ
レンスの生成や破棄、オブジェクトの実装、活性化や非
活性化などの機能を実現する部分であり、通信プロトコ
ルやオブジェクトアダプタ(OA)の振る舞いについて
の標準的な仕様に則った仕様によるコンポーネントで、
ORB製品の違いを超えたオブジェクト間の相互運用が
可能な仕組みを構築する。
【0080】オブジェクトアダプタ(OA)は、オブジ
ェクトの情報が管理されるオブジェクトリファレンスを
参照し、これを元にサーバプロセスを起動するようにす
ることで、クライアントはサーバオブジェクトが起動し
ているか否かを気にすることなく遠隔リクエストをかけ
ることが可能になる。
【0081】また、ORBは、分散環境におけるオブジ
ェクト間のやり取りを実現するためのメカニズム提供の
ためのソフトウエアであり、リモートオブジェクト同士
の相互的なやり取りを実現するために必要なミドルウエ
アであって、オブジェクト間での要求と応答をシームレ
スに実現するための仲介役としての機能を果たすもので
ある。
【0082】RT−CORBAにおいては、このORB
によってCORBAプライオリティとネーティブ・プラ
イオリティ間での優先度の変換を図るようにしている。
【0083】また、ネームサービスは、便宜的なある機
器名の機器上に活性化された分散オブジェクトを特定で
きる情報を、前記機器名と結びつけて情報管理するもの
で、クライアント側がサーバ側にリクエストする場合等
において利用するもので、ネームサービスの提供する情
報を利用するには、オブジェクトリファレンスの問い合
わせ処理を当該ネームサービスに対し実行することで、
上記管理している情報を返すものである。
【0084】図1は本発明を適用した場合におけるCO
RBAプログラムの辿ることになるステップを示してい
て、ここでは、サーバ側にリクエスト対象のCORBA
オブジェクトXがある、すなわち、読み出されるオブジ
ェクトXがあり、そして、クライアント側にCORBA
オブジェクトXに対してのリクエストを発生するプログ
ラムがあるものとする。
【0085】まず、プログラマは目的とする処理を含ん
だ目的のCORBAオブジェクトXのソースコードを記
述する。このソースコードの記述には、ここでの処理に
必要な優先度を与えるための優先度名が組み込まれてい
るものとする。つまり、ここでの処理に必要な優先度
は、具体的な“値”としてソースコード中に記述してお
くのではなく、必要な優先度を与えるための優先度名で
与えるようにする。優先度名はネーム・サービスで使用
するオブジェクト名と同名であっても良い。
【0086】なお、優先度名と、その優先度名に対して
割り当てようとする優先度の値は、優先度サービスサー
バ300に登録するが、これは追加や変更、抹消など、
必要に応じていつでも行うことができる。この作業は、
必要が生じたときに、人の手により行うものとする。
【0087】次に、このソースコードをコンパイルして
CORBAオブジェクトXを作成し、CORBAサーバ
プログラム110中に組み込んでおく。
【0088】そして、CORBAサーバプログラム11
0を実行させると、当該CORBAサーバプログラム1
10は、まずはじめにRT−POA 100を作成する
(ステップS1の生成)。RT−POA 100はリア
ルタイムCORBAで定められている優先度を付けた
り、ポリシー(POAを使用する上で採用するオプション
機能を決める。
【0089】CORBA仕様において、その種類と取り
える値の選択肢が定められている。)を設定したりする
ためのもので、CORBAオブジェクトを得るにはこの
RT−POA 100を予め用意しておく(すなわち、
CORBAを利用するためには、このRT−POA 1
00は先に作っておかねばならないと規定されているの
で、これを生成して用意するわけである)。
【0090】次にCORBAサーバプログラム110
は、オブジェクトXを生成する。これに先だち、COR
BAサーバプログラム110は、ローカル優先度ハンド
ラ200を初期化する(ステップS2の初期化処理)。
そして、CORBAサーバプログラム110は、オブジ
ェクトXを生成すると共に活性化する(ステップS3の
生成・活性化処理)。活性化とはあるPOAとあるオブ
ジェクトを結びつけてそのPOAの上でそのオブジェク
トが動くようにするということを指す。
【0091】RT−CORBAでは、この活性化の際に
そのオブジェクトXに対して、実行時の優先度が与えら
れるが、これはローカル優先度ハンドラ200によって
成される。
【0092】ローカル優先度ハンドラ200は、優先度
名対応の優先度の値を取得すべく、優先度サービスサー
バ300に問い合わせを行い、これによって、優先度サ
ービスサーバ300が対応の優先度値を検索してローカ
ル優先度ハンドラ200に渡すので、ローカル優先度ハ
ンドラ200はこの優先度値を受け取り、RT−POA
100へと渡す。
【0093】RT−POA 100はこの受け取った優
先度値を優先度値としてその値で決まる優先度でオブジ
ェクトXが動作するようにRT−POA 100が自動
的に自身の内部を設定する。これに基づいてORBがC
ORBAプライオリティとネーティブプライオリティの
間での優先度変換を図る。
【0094】優先度サービスサーバ300に書き換え可
能に登録しておく優先度値はリアルタイムCORBAで
定められているCORBA優先度に基づいて、ユーザが優先
度名とその優先度名に与えようとする優先度の値とを設
定しておく。そのため、特定の用途に対する優先度値を
変更したいときは、どの優先度名について優先度値をい
くつにするかを自由に変えることができ、オブジェクト
の優先度の変更優先度サービスサーバ300の登録内容
の変更で容易に対処できるようになる。
【0095】上述の活性化により、優先度名対応に優先
度を自動的に自身の内部を設定されたRT−POA(リ
アルタイムPOA) 100の上で、そのオブジェクト
Xが動作するように加工されることになり、従って、オ
ブジェクトXはRT−POA100に則った必要な優先
度の付与されたしかも、前記ポリシーに従った実行が可
能となる。
【0096】ここでCORBAオブジェクトXはクライ
アント側からのリクエスト待ちとなることから、COR
BAサーバプログラム110によるサーバ側でのオブジ
ェクトXは待ち状態となる。
【0097】CORBAオブジェクトXはリモートから
アクセスしてもらわねばならないので、いま、このよう
なオブジェクトが利用可能になったということを知らせ
るための公開情報であるオブジェクトリファレンス(オ
ブジェクトを見つけるためのリファレンス)を外部に出
す(公開する)必要がある。
【0098】CORBAサーバプログラム110はオブ
ジェクトXの生成・活性化の際に、当該オブジェクトX
についてのリファレンスを公開する(ステップS6)。
この公開する情報は、RT−POA 100が提供す
る。
【0099】RT−POA 100は、サーバ側におけ
るオブジェクトリファレンスを生成し、これによってC
ORBAオブジェクトXについてのオブジェクトリファ
レンスを生成してCORBAサーバプログラム110に
出力し、これを受けたCORBAサーバプログラム11
0がネームサービスに対して当該レファレンスを提供す
ることで外部に公開する。
【0100】この公開されたリファレンスはネームサー
ビスで利用される。ネームサービスはこの公開されたオ
ブジェクトリファレンスを取り込み、保管する。
【0101】CORBAの規格上、CORBAオブジェ
クトには実行の優先値を与えなければなならない。しか
し、本発明の場合は、開発者がCORBAオブジェクト
に与えるものは優先度名であり、優先度の値ではない。
【0102】CORBAオブジェクトXを呼び出すよう
に作成された構成機器B側(クライアント側)のCOR
BAクライアントプログラム950は、オブジェクトリ
ファレンスを辞書引きのようなかたちでネームサービス
に問い合わせることにより、リクエスト先となるCOR
BAオブジェクトXのリファレンスをもらってくる(ス
テップS7)。そして、このリファレンス中にあるCO
RBAオブジェクトXの位置を特定する情報(どこにあ
るか、機器のIPアドレス、ポート等)や、サーバ側で定
めた優先度でアクセスための情報を受け取り、CORB
AオブジェクトXの位置を特定する情報に従って位置を
特定し、かつ、前記優先度に沿うようにした上で、CO
RBAオブジェクトXをリクエストする。
【0103】要するに、本実施例は、一般のCORBA
プログラムの開発に当たって、各オブジェクトに固有の
名前を決めておくのと同じように、優先度に固有の名前
を与え、優先度を与える対象となるオブジェクトに優先
度値を付与するための“変数名”を利用できるようにす
るための共通フレームワークを提供するものである。
【0104】作成しようとするオブジェクトはそのオブ
ジェクト名が予め登録されていることから、どの機器で
どのような名前のどのようなオブジェクトが用意される
かを予め知ることができるので、例えば、あるクライア
ント側のあるオブジェクトYにおいて、機器Aにおける
Xなる名前のオブジェクトをリクエストする必要がある
場合には、機器Aにおけるオブジェクト名Xのオブジェ
クトを指定してリクエストするようにプログラミングす
れば良いこととなる。
【0105】しかし、機器Aなる名前は人間世界の便宜
的な呼び名であり、この呼び名は機器B(クライアント
側)からは全く識別できないし、特定できない。COR
BAでは機器名による識別はできないわけである。そこ
で、機器名による識別をサポートするために用意された
ネームサービスを利用するようにする。
【0106】CORBAの世界では、便宜的な機器名A
の持つオブジェクトXが必ず特定できる情報があって、
それをAと云う名前と結びつけて情報管理しているのが
ネームサービスであり、ネームサービスの提供する情報
を利用したい場合には、オブジェクトリファレンスの問
い合わせという処理を当該ネームサービスに対し実行す
ることで、上記管理している情報をネームサービスの側
から提供して貰い、取得することができるようになる。
【0107】従って、機器AのオブジェクトXをリクエ
ストするクライアント側の構成機器Bにおけるプログラ
ム(CORBAクライアントプログラム)250では、
ネームサービスを利用したオブジェクトリファレンスの
問い合わせを実行し、これによりネームサービスから返
された機器AにおけるXなる名前のオブジェクトについ
てのCORBA世界での特定できる情報を取得して、当
該取得情報をもとにリクエストを発生する。
【0108】ネームサービスで提供されるオブジェクト
Xについてのオブジェクトリファレンスには、オブジェ
クトXに設定した優先度でアクセスするための情報も付
加されているので、当該クライアント側の構成機器Bに
おけるCORBAクライアントプログラム250は、所
定の優先度によるリクエストを実施することができる。
【0109】オブジェクト・リファレンスに対するこの
情報の付加は、RT-CORBA仕様に定められているものをそ
のまま利用できるので、本実施例においては、特殊なネ
ームサービスを使用する必要はなく、一般のCORBA構築
で用いるのと同様のネームサービスを用いればよい。
【0110】すなわち、各オブジェクトのリファレンス
を他が参照して利用できるよう、用意されたのがネーム
サービスであり、ネームサービスにオブジェクトレファ
レンスの問い合わせをすることで、具体的には、名前を
引数にして対応するオブジェクトのリファレンスをこの
ネームサービスからとってくる(ステップS7)ことに
より、クライアント側構成機器BにおけるCORBAク
ライアントプログラム250では、当該CORBAクラ
イアントプログラム250の実行に伴うオブジェクトX
に対するリクエスト先がわかり、このリクエスト先にリ
クエストできるようになる(ステップS8)。
【0111】図1で説明したとおり、本発明の実施例で
は、オブジェクト実行時での優先度は、値としてCOR
BAサーバプログラムが保持しているのではなく、優先
度名で保持していて、オブジェクト生成時にその保持し
ている優先度名から優先度の値を取得してそのオブジェ
クトの優先度値として利用する。
【0112】そのために、本発明では、予め各種の優先
度名を用意しておき、優先度名対応に優先度値を引き出
すことができる対応表のかたちで用意して優先度名を与
えるとその優先度名対応の優先度の値を返すことができ
るようにした。
【0113】このサービスはCORBAに優先度サービ
スという新たなサービス機能を付加することで実現する
ものであり、優先度サービスは、優先度名とその優先度
名にて与えられる優先度の値の関係を一元的に管理でき
るように保持して、優先度名が与えられることでその優
先度名対応の優先度値を渡すようにしたサービス機能で
ある。優先度値は所望に書き換え可能である。
【0114】このサービスを実行するためのデータベー
スとしての役割を担うものが優先度サービスサーバ30
0である。また、優先度の名前を与えると、その優先度
名で定まる優先度を数値として返すような仕組みを持た
せたローカル優先度ハンドラ200なるソフトウエア部
品を用意し、このローカル優先度ハンドラ200を組み
込むことによって優先度サービスサーバ300から得た
優先度名対応の優先度値(CORBA優先度の値)を取
得してRT−POAに渡すことができる構成である。
【0115】なお、本システムにおいては、優先度サー
ビスサーバ300は、全システム中に1つ、存在すれば
よい。他から問い合わせができるようにして共用化する
構成とすれば良いからである。優先度名と優先度の対応
関係は、定義ファイルまたは所定のユーザインタフェー
スを有するアプリケーション・プログラムなどの手段に
より設定することができる。また、ローカル優先度ハン
ドラ200の1実現方式として、キャッシュ機構を有す
ることも有効である。1度問い合わせた優先度名と優先
度の対応を内部に保存しておくことにより、再度の優先
度サービスに対する問い合せ動作が不要となる。
【0116】ローカル優先度ハンドラ200は、獲得し
た優先度(CORBA優先度)により、POA 100
に対して活性化を依頼する。
【0117】そして、RT−POA 100はこれによ
りORBが内部で保持するユーザ定義優先度マップを参照
してのRT−POA 100内部でのCORBAプライ
オリティ/ネーティブプライオリティについての変換
(優先度変換)を行えるように、ネーティブプライオリ
ティを戻り値として受けて、RT−POA 100が内
部に自動設定する。
【0118】これにより、前記生成済みCORBAオブ
ジェクトXはRT−POA100上で動作されるように
加工されたことになり、活性化されたことになる。RT
−POA 100の設定が終わると、サーバ側アプリケ
ーション110はORBを起動させ、活性化されたCO
RBAオブジェクトXはこれにより、リクエスト待ちに
なる。
【0119】クライアント側機器のアプリケーション9
50からリクエストを受けると、活性化されて待機中
(リクエスト待ち)のCORBAオブジェクトXは、活
性化時に与えられた優先度で動作することとなり、結果
を前記リクエストしてきたクライアント側機器における
アプリケーション950に返す。
【0120】このような機構を採用することにより、従
来のRT−CORBA規格上の追加サービスとして、本
発明のメリットである柔軟な優先度定義の機構を実現す
ることができるようになる。
【0121】リアルタイム・優先度サービスのIDL
(Interface Definition Language)定義の構成例を示
す。IDLは、実装言語に依存しないインタフェースを
記述するための言語である。IDLは、プログラム間で
やり取りを行うためのインタフェース情報を定義するた
めの言語である。この言語は専用のコンパイラによりプ
ログラムと同じ言語のソースに変換することで、プログ
ラムの一部として統合することができる。スタブをプロ
グラム内に埋め込むことができるわけである。
【0122】そして、プログラムをそのプログラムに用
いた言語に対応したコンパイラによりコンパイルするこ
とにより、通信機能を有してマーシャリング(marshari
ng;二者間で授受する情報を、ネットワークを介して転
送するための統一化されたデータ形式に変換して送信す
る機能(送信用))やアンマーシャリング(unmarsharin
g;マーシャリングされて伝送されたデータを、自コン
ピュータに適合したデータ形式に戻す機能(受信用))
を可能とするプログラムを生成できる。
【0123】プライオリティ・サーバ・ポリシー付きR
T−POAのIDL定義の構成例を示す。
【0124】 [RT−POAのIDL定義例] #ifndef PRIORITY_SERVICE #include <RTCORBA.pidl> // RTCORBA::Priority, NativePriority など、RTCORBAの定義を一部使用 module RTPriorityService{ typedef string PriorityName; // 優先度と対応する優先度名 exception InvalidName { }; // 例外:不当な文字列。例えば、文字列長=0の文字列が指定された場 合 interface PriorityServer { readonly attribute RTCORBA::Priority default_priority; // Read only属性 // デフォルト優先度、登録の無いプライオリティ名の場合に返さ れる。 void setDefaultPriority (in RTCORBA::Priority p) ; // デフォルト優先度の指定 RTCORBA::Priority getPriority( in PriorityName prio_name) raises (InvalidName) ; // 優先度取得 boolean registPriority( in PriorityName prio_name , in RTC ORBA::Priority p) raises ( InvalidName ) ; // 戻り値.. 同名の登録の有無 true 有り、 false 無し。 } } #endif /* PRIORITY_SERVICE */ [新旧技術の比較] <適用システム構成>本発明を適用した開発例と従来技
術による開発例を比較してみる。ここでは、対象物とし
てビル500内の各種設備を監視するビル管理システム
600を想定する。ビル500内の各種設備としては、
例えば、空気調和機やエレベータシステム、ビル内各部
屋の施錠モニタ、警報機器等であり、これらを中央監視
室からダイレクトに監視できるようなシステムを想定し
ている。
【0125】このシステムは、中央監視室に設置された
監視室用機器610で、ビル500内の状態を一括して
監視する。
【0126】監視室用機器610は、各種の制御装置6
20にネットワークNWで結ばれ、緊急の指示なども出
すことができる。ここで云う制御装置620とは、図中
のボイラ制御装置やエレベータ運行管理装置など、ビル
設備の制御装置を指す。
【0127】監視室用機器610と各種の制御装置62
0はソフトウェア的には、リアルタイムCORBAで接
続されていて(図の中の「ORB」)、それぞれはそれ
ぞれに持たせてあるCORBAオブジェクトにより処理
を実行する分散処理環境となっている。
【0128】つまり、「監視室用機器610」から、
「各制御装置620上のCORBAオブジェクトにオペ
レーション呼び出し」を実施し、「制御情報を伝達」す
ることができる。このとき、優先度を使用できる。
【0129】また、逆方向の通信もある。例えば、制御
装置620に付属するセンサから得られる情報を定周期
的に送達するなどの通信である。この場合は、制御機器
620から監視室用機器610上のCORBAオブジェ
クトにCORBAのリクエストをかけることになる。こ
のときも、優先度を使用できる。
【0130】そのため、各制御機器620は、次のよう
な挙動をする。
【0131】1)通常の運転に関する制御は、中程度の
優先度で、CORBAオブジェクト(一般的なコンピュ
ータ用語ではプロセスやスレッドに相当)を動作(処
理)させる。
【0132】2)緊急動作のための制御は、高い優先度
のタスクで処理させる。
【0133】ここまでの構成は、従来技術(リアルタイ
ムCORBA)で構成できる。
【0134】ただし、問題がある。各種の機器が接続さ
れているため、様々な通信(すなわち、CORBAのオ
ペレーション呼び出し)が並行して行われるからであ
る。
【0135】一般に、こうしたシステムの通信の状況
は、システムが定常的に運用されている場合と、何らか
の非常事態が発生した場合とでも大きく変わる。たとえ
ば、ある単一の制御機器から、火災の情報が入った場
合、ボイラ等を停止したり、エレベータを最寄の階で止
めたりと、各制御機器に対して一斉に制御情報が発信さ
れるため、一時的に通信量が増加する、といった状況も
発生し得る。
【0136】このとき、「各機器(監視室機器も、制御
装置の双方を含む)のCPUのタスク・スケジューリン
グ」と、「ネットワークの容量」のそれぞれがボトルネ
ックとなり、システム全体として必要な挙動を行うこと
ができなくなってしまうと問題が顕在化する。
【0137】例えば、システム運用後に、あるケースに
おいて、あまり優先する必要のない処置のために、優先
すべき処置(ボイラ停止など)が後回しになる、という
ケースも考えられる。
【0138】各機器が持っているCPU性能、ネットワ
ーク容量を適切に付加配分させ、その上で全体として必
要な処置をとることができるように、RT−CORBA
の優先度の調整が必要になる。ところで、RT−COR
BAは、「ネットワーク上で使用するCORBA優先度
を、相互の通信の上での優先度として使い」、それを
「各ORBで、それぞれのOSにあわせた優先度数値に
変換する(この 変換規則を優先度マップと呼ぶ。)」
という2段構成の変換処理手法をとる。
【0139】そして、優先度の調整の方法にはいくつか
の手法があり、代表的なものは、「CORBAオペレー
ションの呼び出しの優先度を変える、またはCORBA
オブジェクトの優先度を変える(どちらを採用するか
は、RT−CORBAのどの機能を使うかで変る)」と
いう手法か、または「各ORBで、優先度マップを変更
する」という手法である。
【0140】しかし、これらの方法は、いずれも、各機
器のORBごとにプログラムまたは優先度マップの変更
をすることになるため、設定変更するのは大変厄介であ
る。また、実運用の時点ばかりでなく、前動作試験にお
いても、通常は同様の調整をして支障のない運用ができ
るようにするが、そこでもやはり設定変更は大変に面倒
な作業である。
【0141】そこで、本発明のように、「優先度定義サ
ーバ」や、「優先度マップサーバ」を利用する方式にす
ることで、これを解消する。
【0142】[優先度定義サービスの利用の例]本発明
を適用した手法、すなわち、「優先度定義サービス」の
利用の例を説明する。図3は、優先度定義サービスの利
用実施例を、UMLのシーケンスチャートで説明した図
である。この図は、オブジェクト間の通信のステップを
説明しており、時間の流れは、上から下へ推移する。
【0143】このチャートは、プログラムの作り方を説
明しており、このような流れでオブジェクトの作成を進
めれば、優先度の変更を容易に実施可能な優先度管理方
法が提供できることを示している。
【0144】従来方法と本発明を適用した場合の流れの
違いを以下、説明する。流れとして、従来処理が図6お
よび図7であり、本発明の処理が図3および図4であ
る。
【0145】従来手法での前提要件として、サーバ側に
は生成しようとする或るCORBAオブジェクトの元と
となるソースコードがプログラミングされて用意されて
いる。これをコンパイルして、優先度付きのCORBA
オブジェクトを生成しようとするものであるが、従来手
法の場合は、ソースコードに実行処理の優先度が値とし
て埋め込んでおく。
【0146】前提要件として、サーバ側アプリケーショ
ンにはメインルーチンのほか、そのアプリケーションの
動作に必要なプログラムモジュールとして、使用するC
ORBAオブジェクトが含まれている。そして、従来の
場合、CORBAオブジェクトには最初からそのオブジ
ェクトにおける処理の優先度が値として、埋め込まれて
いる(CORBAプライオリティによる優先度値が埋め
込まれている)。CORBAプライオリティでの具体的
な優先度値が最初からオブジェクト内に設定されている
わけである。
【0147】図6および図7はCORBAの標準的な従
来手順を示しており、図に従って説明すると、まず、サ
ーバ側アプリケーションが起動されると、当該サーバ側
アプリケーションからORBの初期化が指示され、これ
を受けてORBは初期化される。次にサーバ側アプリケ
ーションは、ユーザ定義の優先度マップを生成する。そ
して、マップ内容がリファレンスとしてサーバ側アプリ
ケーションに返される。このリファレンスをサーバ側ア
プリケーションはORBへ送り、登録する。
【0148】次にサーバ側アプリケーションは、RT−
POAの生成とポリシーの指定を行う。そして、出来上
がったRT−POAの内容をリファレンスとしてサーバ
側アプリケーションに返す。サーバ側アプリケーション
は次に、自己の持つ多数のCORBAオブジェクトのう
ちから、実行させるべきCORBAオブジェクトを生成
する。そして、そのCORBAオブジェクトについての
リファレンスをサーバ側アプリケーションに返す。次に
この生成したCORBAオブジェクトに対し、優先度付
きで活性化する。オブジェクトに与える優先度はサーバ
側アプリケーションのプログラム内で決める。RT−P
OAは優先度マップを参照してPOA内部でのCORB
Aプライオリティ/ネーティブプライオリティについて
の変換(優先度変換)を行い得るように、ネーティブプ
ライオリティを戻り値として受けて、POAが内部に自
動設定する。
【0149】活性化されたCORBAオブジェクトはリ
クエスト待ちになる。
【0150】クライアント側機器のアプリケーションか
らリクエストを受けると、活性化されて待機中(リクエ
スト待ち)のCORBAオブジェクトは、活性化時に与
えた優先度で動作し、結果を前記リクエストしてきたク
ライアント側機器におけるアプリケーションに返す。こ
れが従来のステップである。
【0151】これに対し、本発明の適用システムでは、
次のような動作になる。但し、本発明手法の場合、CO
RBAオブジェクトに最初からそのオブジェクトにおけ
る処理の優先度が値として、埋め込まれているのではな
く、優先度名という変数のかたちで埋め込まれている。
ネーティブプライオリティを変数名のかたちで与えてお
き、具体的な優先度値は別途用意したテーブル(マッ
プ)から取得し、その優先度名対応の優先度値として利
用する構成とするわけである。マップは優先度マップサ
ーバに用意しておく。優先度マップサーバは優先度名と
それに対応する割り当ての優先度値が定義されており、
優先度名に対する優先度値の変更は定義情報の書き換え
で対応できる。マップの定義を変更するだけで、所望の
オブジェクトの優先度を簡単に変更できる仕組みであ
る。
【0152】図3および図4は本発明を適用したCOR
BAの手順を示しており、図に従って説明すると、ま
ず、サーバ側アプリケーションが起動されると、当該サ
ーバ側アプリケーションからORBの初期化が指示さ
れ、これを受けてORBは初期化される。次にサーバ側
アプリケーションは、優先度マップイニシャライザにマ
ップ名を指定してのマップの初期化を指示し、これによ
って、優先度マップイニシャライザ は、初期化処理
し、指定されたマップ名のマップの検索を行う。検索先
は優先度マップサーバである。これにより、優先度マッ
プサーバは該当のマップ名のマップを検索し、見つかれ
ばマップの定義情報を優先度マップイニシャライザに返
す。
【0153】優先度マップイニシャライザは、ユーザ定
義優先度マップを生成し、次に優先度マップサーバから
返されたマップ定義情報に基づいてユーザ定義優先度マ
ップを初期化する。
【0154】これにより、マップ定義情報に基づくユー
ザ定義優先度マップが確保される。このユーザ定義の優
先度マップを優先度マップイニシャライザはORBへ送
り、登録する。
【0155】優先度マップイニシャライザはこの登録が
済むとマップ取得の正常完了をサーバ側アプリケーショ
ンに通知する。この後、サーバ側アプリケーションは、
サーバアプリケーションとしての動作を開始することに
なる。
【0156】すなわち、サーバ側アプリケーションは、
まず、RT−POAの生成とポリシーの指定を行う。そ
して、RT−POAが生成され、ポリシーが指定される
とRT−POAからはリファレンスがサーバ側アプリケ
ーションに返されるので、これを受けてサーバ側アプリ
ケーションは、ローカル優先度ハンドラ200の生成と
初期化を行う。これにより、ローカル優先度ハンドラ2
00が生成され、初期化され、そして、ローカル優先度
ハンドラ200からリファレンスが返されると、サーバ
側アプリケーションは次に、自己の持つ多数のCORB
Aオブジェクトのうちから、実行させるべきCORBA
オブジェクトを生成する。そして、そのCORBAオブ
ジェクトについてのリファレンスをサーバ側アプリケー
ションに返す。
【0157】これを受けて、サーバ側アプリケーション
は、次にこの生成したCORBAオブジェクトの優先度
をローカル優先度ハンドラを通して問い合わせる。優先
度は優先度名で引き出せるようにしているので、ここで
はCORBAオブジェクトのファイル名を優先度名とし
て使用すると個別オブジェクト単位で優先度名を一義的
に与えることができ、オブジェクトと優先度名が直感的
に結びつくので、便利である。例えば、図5に示す如
く、CORBAオブジェクトファイル名対応の優先度名
を用い、その優先度名に対して割り当てようとする優先
度の値を対応させるようにする。
【0158】このように、優先度の値は優先度名に対応
させて最適なものを割り振るので、対応関係が掴みやす
いものとなる。
【0159】優先度名を用いての優先度の問い合わせは
ローカル優先度ハンドラ200に対して成される。この
問い合わせを受けたローカル優先度ハンドラ200は、
優先度名による問い合わせを優先度定義サービス(優先
度サービスサーバ)に対して行う。すなわち、これは優
先度ハンドラ200の備える問合せ手段による機能であ
り、問合せ手段は、分散オブジェクトに与える処理実行
の優先度情報を、優先度定義サービス(優先度サービス
サーバ)に対して問い合わせる。
【0160】これを受けて優先度定義サービス(優先度
サービスサーバ)からは、その優先度名 対応のCOR
BA優先度 がローカル優先度ハンドラに返される。
これを受けてローカル優先度ハンドラ200は、このC
ORBA優先度をサーバ側アプリケーションに返す。サ
ーバ側アプリケーションは、RT−POA 100に対
し、この優先度つきで前記生成済みのCORBAオブジ
ェクトを活性化する。RT−POA 100はこれによ
りユーザ定義優先度マップを参照してRT−POA 1
00内部でのCORBAプライオリティ/ネーティブプ
ライオリティについての変換(優先度変換)を行えるよ
うに、ネーティブプライオリティを戻り値として受け
て、RT−POA 100が内部に自動設定する。
【0161】これにより、前記生成済みCORBAオブ
ジェクトはRT−POA上で動作されるように加工され
たことになり、活性化されたことになる。RT−POA
100の設定が終わると、サーバ側アプリケーション
110はORBを起動させ、活性化されたCORBAオ
ブジェクトXはこれにより、リクエスト待ちになる。
【0162】クライアント側機器のアプリケーション9
50からリクエストを受けると、活性化されて待機中
(リクエスト待ち)のCORBAオブジェクトXは、活
性化時に与えられた優先度で動作することとなり、結果
を前記リクエストしてきたクライアント側機器における
アプリケーション950に返す。
【0163】本実施例では、優先度は直接与えるのでは
無く、優先度名と云う変数であたえるようにし、優先度
名と優先度値の対応関係は別途用意した優先度サービス
サーバの持つ優先度対応表からローカル優先度ハンドラ
により取り込むようにした。そのため、優先度サービス
サーバ(優先度マップサーバ)の持つ図5に示す如きの
優先度マップの書き換えにより、優先度変更を容易に行
うことができるようになり、各CORBAオブジェクト
の優先度調整が必要になったときに、その対処を容易に
できるようになる。また、CORBAオブジェクトファ
イル名対応の優先度名を用い、その優先度名に対して割
り当てようとする優先度の値を対応させるようにするこ
とで、対応関係を掴むことが容易となり、優先度サービ
スサーバの管理がわかりやすく、内容の調整に便利とな
る。
【0164】この実施例は、見かけ上、発明の方式のほ
うが複雑になっているが、あくまで最も簡単に利用した
例であり、モジュール化を工夫することによって、サー
バ側アプリケーションのプログラム構成を簡潔にする方
法をとる実施例も可能である。
【0165】図5は、優先度マップの構成例であり、図
2のシステムを例にしたものである。複数の「制御装
置」が存在して「監視室用機器」からそれらを制御した
り、逆に「制御装置」から情報を「監視室用機器」に送
信する通信をCORBAで実施するとき、各オブジェク
トに与えるべき優先度は、どれを高くして、どれを低く
すればよいか、ある程度の目安はシステム構築上の要件
から事前にわかるが、例えば、「ボイラ」、「エレベー
タ」の各制御装置への各通信の優先度を、どのように相
対的に設定するのがベストかは、事前にはわからない。
【0166】通常の開発では、どうしても次のいずれか
のステップを取ることになる。
【0167】1)システムHW(ハードウエア)・SW
(ソフトウエア)の一式を現地にて実稼動してみて、各
種のCORBAオペレーション呼び出しの中で、必要と
される通信性能を満たさないほど通信ディレーが大きい
ものがないか、あった場合には、その該当するCORB
Aオブジェクトの優先度を上げるか、あるいは、その他
の通信の優先度を下げ、相対的にその問題のオブジェク
トの優先度を上げてみる。このように、試行錯誤的に設
定優先度を調整してみる必要が生じる。
【0168】2)システム運用開始後の問題に対処する
際に、優先度やマップの変更を行う必要が生じることが
ある。
【0169】このような優先度変更の必要が生じること
があるが、従来方式で対処するには、各制御機器側のプ
ログラム(クライアント側のプログラム)に入手する以
外、対処法がない。しかし、本発明を適用すれば、この
ようなときには、優先度定義サービスを使用すること
で、「制御装置」や「監視室用機器」のORBオブジェ
クトの優先度や、優先度マップを使用して、容易に変更
できる。
【0170】以上、実施例を詳述したが、要するに本発
明は、オペレーション・システムを搭載してこのオペレ
ーション・システムのもとで動作する分散オブジェクト
にて機能する機器であって、前記分散オブジェクトはネ
ットワークで接続されたリモート機器からのリクエスト
を受け付けることが可能であり、前記リクエストを受け
た分散オブジェクトは与えられた優先度にて処理実行さ
れるようにした分散処理システムにおいて、各分散オブ
ジェクトに与える処理優先度の情報をそれぞれ優先度名
との対応で保持すると共に、当該情報内容を任意に修正
可能な優先度情報保持手段を設け、また、優先度名から
優先度値を取得する優先度ハンドラを設けると共に、各
分散オブジェクトには優先度名が与えられ、分散オブジ
ェクトが動作する場合の前記オペレーティング・システ
ム上の優先度の値は、分散オブジェクトに対して与えら
れた優先度名から前記優先度ハンドラが前記優先度情報
保持手段より対応する優先度値を取得する構成としたも
のである。
【0171】本システムは、機器がネットワークで接続
されており、機器はオペレーション・システムを搭載し
てこのオペレーション・システムのもとで動作する分散
オブジェクトにて機能する。そして、前記分散オブジェ
クトはネットワークで接続されたリモート機器からのリ
クエストを受け付けることができ、当該リクエストを受
けた分散オブジェクトは、与えられた優先度にて処理実
行される構成である。そして、このような本システムに
おいては、優先度情報保持手段を設けてあり、この優先
度情報保持手段には各分散オブジェクトに与える処理優
先度の情報をそれぞれ優先度名との対応で保持させてあ
る。この優先度情報保持手段は、システム共有のもので
あり、保持する情報内容を任意に修正可能な構成となっ
ている。
【0172】各分散オブジェクトには優先度名が与えら
れ、分散オブジェクトが動作する場合の前記オペレーテ
ィング・システム上の優先度の値は、分散オブジェクト
に対して与えられた優先度名から前記優先度ハンドラが
前記優先度情報保持手段より対応する優先度値を取得す
る。
【0173】すなわち、ネットワークで接続されたリモ
ート機器からのリクエストを受け付けることが可能な分
散オブジェクトにおいて、あるオブジェクトに対するリ
クエストにおいて、優先度を表す特定の名前を指定し、
対応する優先度は、共有の優先度情報保持手段より取得
するようにした分散処理システムとなる。
【0174】本システムは分散処理システム、特にリア
ルタイムCORBA(RT−CORBA)を適用した分
散処理システムに顕著なる効果が認められるものである
が、RT−CORBA優先度処理の従来の優先度定義方
式として、サーバ・デクリアード・ポリシーを利用した
際のRT−CORBAの処理方式は、サーバ・プログラ
ムの作成の際に、優先度の値を変数として与え、優先度
が埋め込まれたCORBAオブジェクトを得るようにし
ていた。サーバとなるCORBAオブジェクトに優先度
を与える際には、RT−POA上に優先度を指定して活
性化するという操作をプログラム上で行うわけである。
この操作を通じてORBは、指定された処理優先度のス
レッドをそのオブジェクトに対するリクエストに割り当
てるようにする。
【0175】ただし、この方法では、CORBAサーバ
プログラム毎に陽に優先度値を与えることしかできない
ので、実用的でない。各CORBAオブジェクトの優先
度を調整する必要がある場合に、優先度の値の変更はプ
ログラムに対して行わねばならないためである。
【0176】そこで、本発明はこれを解消するべく、本
発明システムにおいては“優先度名”という概念を導入
するようにした。優先度名は、ユーザがひとまとまりの
調整単位とするもの毎に付与するようにするもので、優
先度の調整は、優先度名に対して与える優先度値の変更
という形で実施する。
【0177】本発明システムにおいては、優先度情報保
持手段を設けてあり、この優先度情報保持手段には各分
散オブジェクトに与える処理優先度の情報をそれぞれ優
先度名との対応で保持させてある。しかも、この優先度
情報保持手段は、一元管理できるようにしたシステム共
有のものであり、保持する情報内容を任意に修正可能な
構成となっている。よって、本発明システムにおいて
は、優先度の調整は、優先度名に対して与える優先度値
の変更という形で実施することができるシステムとな
る。
【0178】この結果、優先度設定を変更することが可
能となるという効果が得られる。また、システム導入時
の初期調整、チューニングにかかる工数を大幅に改善で
きるようになる。また、本発明によれば、そのまま、シ
ステム運用後の調整装置としても活用可能となるという
効果も得られる。
【0179】なお、上記説明はあくまでも一例であり、
種々変形して実施可能である。
【0180】また、本発明において、上記実施形態には
種々の段階の発明が含まれており、開示される複数の構
成要件における適宜な組み合わせにより種々の発明が抽
出され得るものである。例えば、実施形態に示される全
構成要件から幾つかの構成要件が削除されても、発明が
解決しようとする課題の欄で述べた課題の少なくとも1
つが解決でき、発明の効果の欄で述べられている効果の
少なくとも1つが得られる場合には、この構成要件が削
除された構成が発明として抽出され得る。
【0181】
【発明の効果】以上詳述したように、本発明によれば、
優先度設定を容易に変更可能なシステムを提供できる。
また、システム導入時の初期調整、チューニングにかか
る工数を大幅に改善できるようになる。また、本発明に
よれば、そのまま、システム運用後の調整装置としても
活用可能となるという効果も得られる。
【図面の簡単な説明】
【図1】本発明を説明するための図である。
【図2】本発明の適用対象システム例を示す図である。
【図3】本発明システムを適用した場合の動作遷移図で
ある。
【図4】本発明システムを適用した場合の動作遷移図で
ある。
【図5】優先度名と優先度値を一元管理した優先度マッ
プの一例を示す図である。
【図6】従来技術を適用した場合の動作遷移図である。
【図7】従来技術を適用した場合の動作遷移図である。
【図8】従来技術を説明するための図である。
【符号の説明】
A…構成機器(サーバ側) B…構成機器(クライアント側) C…構成機器(優先度サーバ) 100…RT−POA 110…CORBAサーバプログラム 200…ローカル優先度ハンドラ 300…優先度サービスサーバ 950…CORBAクライアントプログラム 960…ネームサービス。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】オペレーション・システムを搭載してこの
    オペレーション・システムのもとで動作する分散オブジ
    ェクトにて機能する機器であって、前記分散オブジェク
    トはネットワークで接続されたリモート機器からのリク
    エストを受け付けることが可能であり、前記リクエスト
    を受けた分散オブジェクトは与えられた優先度にて処理
    実行されるようにした分散処理システムにおいて、 各分散オブジェクトに与える処理実行の優先度の情報を
    保持すると共に、当該情報内容を任意に修正可能な優先
    度情報保持手段を設け、 前記各分散オブジェクトが動作する場合の前記オペレー
    ティング・システム上の優先度の値は、それぞれ前記優
    先度情報保持手段より取得する構成とすることを特徴と
    する分散処理システム。
  2. 【請求項2】オペレーション・システムを搭載してこの
    オペレーション・システムのもとで動作する分散オブジ
    ェクトにて機能する機器であって、前記分散オブジェク
    トはネットワークで接続されたリモート機器からのリク
    エストを受け付けることが可能であり、前記リクエスト
    を受けた分散オブジェクトは与えられた優先度にて処理
    実行されるようにした分散処理システムにおいて、 各分散オブジェクトに与える処理優先度の情報をそれぞ
    れ優先度名との対応で保持すると共に、当該情報内容を
    任意に修正可能な優先度情報保持手段を設け、また、優
    先度名から優先度値を取得する優先度ハンドラを設ける
    と共に、各分散オブジェクトには優先度名が与えられ、
    分散オブジェクトが動作する場合の前記オペレーティン
    グ・システム上の優先度の値は、分散オブジェクトに対
    して与えられた優先度名から前記優先度ハンドラが前記
    優先度情報保持手段より対応する優先度値を取得する構
    成とすることを特徴とする分散処理システム。
  3. 【請求項3】オペレーション・システムを搭載してこの
    オペレーション・システムのもとで動作する分散オブジ
    ェクトにて機能する機器であって、前記分散オブジェク
    トはネットワークで接続されたリモート機器からのリク
    エストを受け付けることが可能であり、前記リクエスト
    を受けた分散オブジェクトは与えられた優先度にて処理
    実行されるようにした分散処理システムにおいて、 各分散オブジェクトに与える処理優先度の情報をそれぞ
    れ優先度名との対応で保持すると共に、当該情報内容を
    任意に修正可能な優先度情報保持手段を設け、また、優
    先度名から優先度値を取得する優先度ハンドラを設ける
    と共に、各分散オブジェクトには優先度名が与えられ、
    分散オブジェクトが動作する場合の前記オペレーティン
    グ・システム上の優先度の値は、分散オブジェクトに対
    して与えられた優先度名から前記優先度ハンドラが前記
    優先度情報保持手段より対応する優先度値を取得する構
    成とすることを特徴とする分散処理システム。
  4. 【請求項4】前記分散オブジェクトにて機能する機器
    は、CORBA規格に準拠するものであって、CORB
    Aの基本サービスを提供するソフトウエアであるORB
    (Object Request Broker:オブジェクト・リクエスト・
    ブローカ)をアプリケーションから利用可能にするCO
    RBAサービスの一つとして、優先度を特定の文字列と
    結び付けて提供する優先度サービスを用意し、優先度名
    として与えられた特定文字列に対応する優先度の値を、
    この優先度サービスにて取得し、前記優先度ハンドラに
    渡す構成とすることを特徴とする請求項2記載の分散オ
    ブジェクト処理システム。
  5. 【請求項5】分散オブジェクトに与える処理実行の優先
    度情報を問い合わせる問合せ手段と、 予め前記優先度情報を保持した優先度情報保持手段から
    前記問合せ手段により問い合わされた前記分散オブジェ
    クトの優先度情報を取得する手段と、を具備したことを
    特徴とする分散処理プログラム。
JP2002105990A 2002-04-09 2002-04-09 分散処理システムおよび分散処理プログラム Pending JP2003303181A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002105990A JP2003303181A (ja) 2002-04-09 2002-04-09 分散処理システムおよび分散処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002105990A JP2003303181A (ja) 2002-04-09 2002-04-09 分散処理システムおよび分散処理プログラム

Publications (1)

Publication Number Publication Date
JP2003303181A true JP2003303181A (ja) 2003-10-24

Family

ID=29390444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002105990A Pending JP2003303181A (ja) 2002-04-09 2002-04-09 分散処理システムおよび分散処理プログラム

Country Status (1)

Country Link
JP (1) JP2003303181A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442740C (zh) * 2005-12-30 2008-12-10 华为技术有限公司 一种节点部署方法和节点通信系统
JP2014006740A (ja) * 2012-06-25 2014-01-16 Fujitsu Ltd 排他制御プログラム、該装置、及び該方法
JPWO2016084212A1 (ja) * 2014-11-28 2017-07-20 株式会社日立製作所 制御サーバ、及び、制御用アプリケーションのグループ化方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442740C (zh) * 2005-12-30 2008-12-10 华为技术有限公司 一种节点部署方法和节点通信系统
JP2014006740A (ja) * 2012-06-25 2014-01-16 Fujitsu Ltd 排他制御プログラム、該装置、及び該方法
JPWO2016084212A1 (ja) * 2014-11-28 2017-07-20 株式会社日立製作所 制御サーバ、及び、制御用アプリケーションのグループ化方法

Similar Documents

Publication Publication Date Title
JP3949180B2 (ja) 基底システムオブジェクトモデルを備えたシステム管理サービスの統合
US20060029054A1 (en) System and method for modeling and dynamically deploying services into a distributed networking architecture
US6189046B1 (en) Mechanism and method for merging cached location information in a distributed object environment
US6408342B1 (en) Communications framework for supporting multiple simultaneous communications protocols in a distributed object environment
US6282581B1 (en) Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
KR100861738B1 (ko) 이동가능한 오브젝트를 가진 그리드 인에이블 가상 머신용방법 및 시스템
CN1249601C (zh) 用于远程web服务克隆和实例化的系统和方法
US6470375B1 (en) System and method for managing the execution of system management tasks
US6915338B1 (en) System and method providing automatic policy enforcement in a multi-computer service application
US7882501B1 (en) System and method for enabling dynamic modifed class reloading in an application server environment
US6697849B1 (en) System and method for caching JavaServer Pages™ responses
US8892415B2 (en) Model-based systems and methods for monitoring resources
KR100783679B1 (ko) 데이터 스트림에 기반하는 서비스의 개발, 배치, 제공을용이하게 하는 미들웨어 시스템
US20120036252A1 (en) Osgi-based heterogeneous service integrating system and method
US20110191466A1 (en) Autonomic service routing using observed resource requirement for self-optimization
WO2001013228A9 (en) Graceful distribution in application server load balancing
WO2001013227A2 (en) System and method for enabling application server request failover
US20040068553A1 (en) Dynamically selecting a Web service container for hosting remotely instantiated Web services
US20080256225A1 (en) Osgi-Based Dynamic Service Management Method for Context-Aware Systems
JP2000250758A (ja) 組込み機器用Javaアプリケーションマネージャ
US20080071651A1 (en) Asynchronous events in meta-data driven instrumentation
US6957427B1 (en) Remote object activation in a distributed system
WO2000045238A2 (en) Dynamic configuration of activators in a client-server environment
JP2003303181A (ja) 分散処理システムおよび分散処理プログラム
JP2011504268A (ja) ソフトウェア・コンポーネントを作成するための方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20050404

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20070618

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A02 Decision of refusal

Effective date: 20080408

Free format text: JAPANESE INTERMEDIATE CODE: A02