【発明の詳細な説明】
コンピュータ制御されたシステム発明の技術分野
本発明は、概略的に言って、例えば電気通信ネットワークにおけるネットワー
ク要素に含まれる種類のコンピュータ制御されたシステムに関する。
電気通信ネットワークは、ネットワーク要素、即ち、ネットワークユーザにネ
ットワークサービスを提供するのに協力し合うシステムで構成される。1ネット
ワーク要素によってサポートされる多数の異なるサービスは、そのネットワーク
要素内のコンピュータシステムによって記憶され処理されるソフトウェアによっ
て大部分は認識される。そのコンピュータシステムは、ネットワークとサービス
に関連するデータを記憶し、サービスを制御し、宅内施設装置や他のネットワー
ク要素と相互に作用し、局所伝送・交換ハードウェアを制御する。
物理的装置の観点からそのコンピュータシステムを見ると、そのコンピュータ
システムハードウェアは、主に、多数の異なる装置組立品の間に分割された、多
数の通信的に連結され協力し合うプロセッサと大容量記憶装置から構成される。関連技術の説明
欧州特許405,829は、そのソフトウェアがオブジェクトの形式の独立したソフ
トウェア成分により実行される電気通信システムに関する。ランタイムシステム
中の機能ランタイムリンカは、それらオブジェクトを記録し、それらオブジェク
トのデータへのデータポインタを記憶する。他のオブジェクトと通信するため、
供給元オブジェクトがそのランタイムシステムにメッセージを送る。そのメッセ
ージは供給先オブジェクトの方法の名称と識別とを含む。
そのランタイムシステムは単一プロセッサにのみ働くか、あるいは、オブジェ
クト群に働き、もしその供給先オブジェクトがランタイムシステムによりサーブ
されたオブジェクト群に属するならば、方法の識別とデータポインタとによりそ
の供給先オブジェクトを呼び出す。供給先オブジェクトが他のあるプロセッサ上
に位置している場合には、そのランタイムシステムは他の複数のプロセッサにそ
のメッセージを同報する。メッセージを受け取る各プロセッサにおいて、ランタ
イムシステムはそのリンカテーブルからそのメッセージの供給先オブジェクトの
記号名を検索し、見つかれば、メッセージ中の方法識別とランタイムリンカ中の
データポインタ情報とに基づいて供給先オブジェクトを呼び出す。プロセッサ間
メッセージは供給元プロセッサ供給先を含み、各プロセッサのランタイムシステ
ムは、プロセッサ間メッセージを受け取ったとき、供給元プロセッサの名称と供
給元オブジェクトの記号名を記憶する。
米国特許4,901,231には、複数のプロセッサにわたって実行するマルチプロセ
ッサシステムが記載されている。1プロセッサにおけるユーザ処理は、他のプロ
セッサ中のシステムリソースにアクセスすることができる。あるユーザ処理が局
所ファイルにアクセスするとき、そのアクセスは、例えば、ユーザファイルテー
ブルによってなされる。そのユーザ処理が遠隔ファイルにアクセスするときには
、ポートテーブルを経てそのポートテーブルにより識別された仮想チャンネルを
越えて部分処理へアクセスがなされた後に、その部分処理のユーザファイルテー
ブルとシステムファイルテーブルとを経てアクセスがなされる。
米国特許5,187,790は、少なくとも1個のサーバ処理と複数個のクライアント
処理を含む複数個の一斉稼働処理を行うコンピュータシステムに関する。各処理
はオブジェクトアクセス権を示す識別リストを有する。各オブジェクトは、その
オブジェクトにアクセスしうるプロセッサを決定するために使用される識別を持
つアクセス判別リストを有する。概要
いずれのコンピュータ制御されたシステムも、少なくとも1個のプロセッサ上
で実行する制御プログラムを有する。今日、アプリケーション開発が容易である
こと、システムが非常に高い有用性を有すること、その容量等をアップグレード
するのが容易であること、というようなシステムに対する多数の要求が存在する
。そのような要求に応じる方法は、システムを、アプリケーション領域の問題の
みをアプリケーションプログラマに残しつつ大部分の共通問題点に気を付けるよ
うになっている制御システムプラットホーム上でアプリケーションをプログラム
する重層アーキテクチャで設計することである。
そのようなアーキテクチャでは、アプリケーションプログラムは多くのオペレ
ーティングシステムソフトウェアと共に協同処理として実行される。
複数のプロセッサをその処理アーキテクチャ中に適応させるのは、少々厄介で
ある。プロセッサを単にリソース提供者と見なすと、オペレーティングシステム
はアプリケーションプログラムから個々のプロセッサが見えないようにしてあた
かも1つの大きなプロセッサというイメージを与えることが求められる。一方、
異なるプロセッサ、即ち、システムを外界に繋ぐハードウェア装置を制御する、
それら自身の特性と特別な能力を持つ異なるプロセッサが存在するということは
、アプリケーションプログラムを異なる処理へモデリングするために最も重要な
条件である。プロセッサを扱う際に、プロセッサにより提供されるリソースをで
きるだけ効率良く利用する様にシステムを構築することが、また、必要である。
しかしながら、これは、制御システムが個々のプロセッサをアプリケーションプ
ログラマからできるだけ見えないようにすることを止めさせるようなことがあっ
てはいけない。
それゆえ、プログラマの観点からは、制御システムが、プロセッサに実行・メ
モリリソースと、
−持続的なデータ記憶のためのデータベース、
−管理されたオブジェクトを実行するためのフレームワーク、
−タイマのような正常オペレーティングシステムサービスと時計、
−アプリケーションプログラムの管理、
−開始と再開手続きの制御、エラー回復、等
というような異なるサービスとを手渡す均質なプラットホームとして見られると
いうことが望ましい。
本発明によるコンピュータ制御されたシステムは、上記データベースの異なる
部分を取扱う多数の制御システムプロセッサからなる制御システムプラットホー
ムと、プロセッサにより提供されるリソースを管理して制御システムにより提供
される抽象概念を実行するオペレーティングシステムと、処理リソースの表現と
から構成される処理アーキテクチャを含む。その処理アーキテクチャは、相互に
作用し、かつ、制御システムやこのアーキテクチャ外の世界と作用し合う協同処
理として実行されるアプリケーションプログラムを提供する。処理リソース表現
の実例は、それぞれが処理例の群を形成する分配ユニットにより制御システムプ
ロセッサ全体に分配される。これら分配ユニットは、特定の分配ユニットタイプ
に属し、各分配ユニットタイプはそのタイプの分配ユニットに共通な性質を示す
。
ここで処理とは1個の独立した実行ユニットを意味し、システム中の他のプロ
セッサが同時に何をしているかには拘わらずそのユニットがプログラムコードを
実行するということを意味する。各処理はそれ自身の私的な状態を持つ。すなわ
ち、1つの処理は他の処理に属するデータ上で直接働くことはできない。
1つの処理は、その処理タイプの実例を形成する特定のタイプのものでありう
る。その処理タイプはその処理がどの機能を持つかを決定する。異なるタイプの
処理は異なることを行い、一方、同じタイプの実例は同じことを行うが異なるデ
ータ上または異なるハードウェアユニット上で稼働する。
処理実例は、プログラムコードを実行する物理処理実例と、抽象概念の形の論
理処理実例とを含むことができる。あるシステム中のこの種の論理処理実例は、
そのシステム中に存在している処理タイプとそれらの性質によって決定され、ハ
ードウェア装置の意味ではそのシステムの構成によって決定される。
分配ユニットは、論理処理実例と物理処理実例の両方をグループ分けすること
ができる。実例と分配ユニットとの関係が論理実例で表現されるから論理実例は
グループ分けされ、またある分配ユニットがあるプロセッサに割り当てられてい
るときその分配ユニットに関連する全ての物理処理実例がその特別なプロセッサ
上で作られるから物理実例はグループ分けされる。
さらに、処理は中央処理タイプを含み、各処理タイプに対して1つの論理処理
実例が存在する。また、キーによって識別される実例を持つ処理タイプであるこ
とができ、各キー値に対して1つの論理処理実例が存在する。異なる処理タイプ
はそれら各キー上で異なるタイプを持つことができ、こうして、異なる数の論理
処理実例を持つことができる。そのシステム自身中のソフトウェアによってイン
ストールされた実例を持つ処理実例は、この処理タイプとともに密接に発展した
データベースオブジェクトタイプを持つことができる。そのデータベースオブジ
ェクトタイプの1つの実例は、1つの論理処理実例に相当する。
分配ユニットと今述べた種類の処理実例との関係は、処理タイプに対して次の
ように表現できる。中央処理タイプでは、それは些細なことである。なぜなら、
たった1つの論理実例があるだけだからであり、その結果、たった1つの分配ユ
ニットが存在できるだけだからである。その実例がキーによって識別される処理
タイプでは、その数の分配ユニットが処理仕様とともに1つの定数として特定さ
れ、その関係は各キー値を分配ユニットの1つの上にマップするプログラムされ
たアルゴリズムとして表現される。実例がそのシステム自身中のソフトウェアに
よってインストールされた処理タイプでは、データベースオブジェクト間の関係
によって表現されるように処理実例は分配ユニットにおいてグループ分けされる
。
処理は、さらに、制御システムが各論理実例に対して1つの物理実例が常にあ
ることを確かめる静的処理タイプと、ある他の処理がそれと通信したいときに物
理実例がつくられることを制御システムが単に確かめる動的処理タイプとを含む
ことができる。
さらなる処理タイプには、2つの実例が協同するが、1つのシステム中の他の
処理への1つの処理として働くときあるシステム活性の間を除いて各論理実例に
対して1つの物理実例が存在する一意処理タイプと、1つの論理実例に対してい
くつかの物理実例が存在するかもしれない複製処理タイプとがある。
一意処理では1つの分配ユニットが1つの信号プロセッサに一意的に割り当て
られ、複製処理タイプでは1つの分配ユニットがいくつかのプロセッサ上で複製
されうる。
いくつかの処理タイプは、また、そのようなタイプがある共通種類のものであ
るなら、同じ分配ユニットタイプを共有することを許される。そのような種類は
、中央静的一意処理タイプと、キーによる動的一意処理タイプと、中央静的複製
処理タイプと、中央動的複製処理タイプと、インストールされた静的一意処理タ
イプとを含む。
キーによる動的一意処理タイプの実例と、その処理実例と同じ1次キーを持つ
データベースオブジェクト実例とは、必要に応じて、対応するキーを持つそのよ
うなデータベースオブジェクトの1次複製を保持する同じプロセッサ上でそのよ
うな処理実例を実行するのを強要するために、同じ分配ユニットタイプを参照す
るようにされるのが好ましい。図面の簡単な説明
次に添付図面を参照して本発明の実施例を説明する。
第1図は電気通信ネットワークを概略的に示し、
第2図は、例えば、第1図に示す種類のネットワーク要素のソフトウェア構造
を概略的に示す図であり、
第3図は第2図によるネットワーク要素に含まれる制御システムプラットホー
ムの構造を概略的に示す図であり、
第4図−第8図は異なる種類の処理タイプを示すためのプロセッサプールの概
略図であり、
第9図はネットワーク要素の概略ハードウェア図であり、
第10図は第9図によるネットワーク要素の概略管理図であり、
第11図は第9図によるネットワーク要素の概略リソース図であり、
第12図は第9図によるネットワーク要素に含まれる制御プロセッサ上での実
行が意図された処理実例の分配を概略的に示し、
第13図と第14図はある制御プロセッサ中の処理実例の、他の制御プロセッ
サに位置する処理実例からのアドレッシングを示し、
第13図はそれに含まれる分配ユニットを持つ3つのプロセッサの概略図であ
り、そして、
第14図は検索過程を示すフロー図である。実施例の詳細な説明
第1図は基本TMNシナリオによる電気通信ネットワークを概略的に示す。1
02で示すネットワークは、ネットワークユーザにネットワークサービスを供給
するように協同して働くネットワーク要素104からなる。1つのネットワーク
要素によってサポートされる多数の異なるサービスは、大部分は、そのネットワ
ーク要素内のコンピュータシステムによって記憶され処理されるソフトウェアに
よって実現される。そのコンピュータシステムは、ネットワークとサービスに関
連するデータを記憶し、サービスを制御し、電話加入者装置106と108によ
って示される宅内施設装置や他のネットワーク要素と相互作用/通信し、局所伝
送や交換ハードウェアを制御する。局所ネットワーク要素116の管理のための
オペレーションシステム114と同様、そのネットワークのためのオペレーショ
ンシステムは110と112で示す。
そのコンピュータシステムを物理装置の観点から見ると、そのコンピュータシ
ステムハードウェアは、主に、多数の異なる装置組立品間で分割された、多数の
通信的に連結され協力し合うプロセッサと大容量記憶装置とを含む。
いずれのコンピュータ制御されたシステムも、少なくとも1つのプロセッサ上
で実行する制御プログラムを有する。今日、アプリケーション開発が容易である
べきだとか、システムが非常に高い有用性を持つべきだとか、その容量等をアッ
プグレードするのが容易であるべきだ、とか言われるようなシステムに対する多
数の要求が存在している。そのような要求に応じる方法は、システムを、アプリ
ケーション領域の問題のみをアプリケーションプログラマに残しつつ大部分の共
通問題点に気を付けるようになっている制御システムプラットホーム上でアプリ
ケーションをプログラムする重層アーキテクチャで設計することである。
そのようなアーキテクチャでは、アプリケーションプログラムや、オペレーテ
ィングシステムソフトウェアの大部分は、相互に作用し、制御システムと作用し
、ハードウェア装置を介してシステムの外界と作用し合いながら処理で実行され
るコードからなる。これは、ネットワーク要素202におけるソフトウェア実行
環境の論理図である第2図に概略的に示されている。そのネットワーク要素20
2は、ライン204、例えば、入力ハードウェア装置206において終わる加入
者ラインを、例えば、加入者ラインの接続用ライン回路の形で受け取るように示
されている。出力ハードウェア装置は208で示している。多数の伝送チャンネ
ルからなる幹線210は、ハードウェア装置208を経由してネットワーク要素
202を出る。212では、スイッチが示されている。ネットワーク要素202
中のソフトウェアシステムは破線により定義されるブロック214によって示さ
れている。ブロック214はブロック216によって示される制御システムプラ
ットホームと、218、220、222で示される相互に影響し合う処理とを含
むように示されている。一例として、処理218は矢印224で示されるライン
回路206の1つを制御し、処理222は矢印226で示されるライン回路20
8
の1つを制御することが考えられる。処理220は、スイッチ212に向かう矢
印228によって示されるように、これら2つのライン回路間の直通接続を制御
する。
第3図を参照すれば、制御システムプラットホーム214は実行・メモリリソ
ースを提供する多数の制御プロセッサ302と、プロセッサ302によって提供
されるリソースを管理し制御システムによって提供される抽象概念を実行するオ
ペレーティングシステムソフトウェア304とから構成できる。306には、処
理が共通リソースとして示されている。
これ以降では、オペレーティングシステムについて話すときには、第3図に示
す種類のオペレーティングシステムを参照し、「当該オペレーティングシステム
」と呼ぶこととする。処理は、その処理タイプの実例を形成する特定のタイプの
ものでありうる。その処理タイプはその処理がどんな機能を持つかを決定する。
同じタイプの実例が同じことを行うが異なるデータ上または異なるハードウェア
ユニット上で動作しているあいだ、異なるタイプの処理は異なることを行う。
処理実例を、その処理概念の異なる様相を表現するために、論理または物理処
理実例として特徴付けることができる。1つの論理処理実例はその処理自体以外
の特定の実体、例えば、「機能」、ライン回路、加入者等、に関連する。1つの
物理処理実例は、1つの論理実例を代表し、メモリ中に1つの状態を持ち、プロ
グラムコードを実行する。
用語「論理処理実例」は1つの抽象概念である。1つのシステム中のこの種の
論理処理実例はそのシステム中に存在する処理タイプとそれらの性質とによって
決定され、ハードウェア装置の観点ではそのシステムの構成によって決定される
。それは、そのシステムの実行状態に関わらない一定の条件の問題である。1つ
の物理実例は1つの論理実例の「物質化」であるが、どの物理実例が1つのシス
テム中にあるかはどの論理実例があるかだけでなく現在のランタイム状況にも依
存する。時間上では、異なる物理実例は同じ論理実例を代表することができ、そ
して、ある性質を持つ処理タイプに対しては、いくつかの物理実例が同時に同じ
論理実例を代表することさえあるかもしれない。
1つの処理タイプは、また、静的であることもできるし動的であることもでき
る。静的処理については、制御システムは各論理実例に対して1つの物理実例が
常に存在することを確かめる。動的処理については、制御システムはある他の処
理がそれと通信しようとしているときに1つの物理実例が作成されることを確か
めるだけである。
さらにその上、1つの処理タイプは「中央」タイプであることができる。この
中央タイプの処理については、各処理タイプに対して正確に1つの論理処理実例
が存在する。
別のタイプの処理は1つのキーによって識別される実例を有する。この処理タ
イプについては、各キー値に対して1つの論理処理実例が存在する。異なる処理
タイプはそれら各キー上で異なるタイプを持つことができ、こうして、異なる数
の論理処理実例を持つことができる。キーにより、かつ、動的である一種の処理
タイプについては、データベースと処理の「コアロケーション(共割当)」も存
在できる。「コアロケーション(共割当)」の概念は次の背景を持つ。
あるデータベースオブジェクトが更新されるとき、その実例を含むデータベー
スオブジェクト分配ユニットのある形式の複製中の写しを全て更新しなければな
らない。これは、情報をいくつかの制御プロセッサに転送しなければならないこ
とを意味する。しかしながら、更新を行う処理実例が同じ制御プロセッサ上でデ
ータベース分配ユニット複製の1つとして実行するならば、その情報転送は最小
化される。
ある処理実例がキー付き処理タイプであり、同じ1次キーを持つあるデータベ
ースオブジェクト実例をその処理実例として頻繁に更新するならば、処理タイプ
とデータベースオブジェクトタイプの両方から同じ分配ユニットタイプを参照し
て1次複製を保持する制御プロセッサ上で常に実行するように強制できる。この
コアロケーション(共割当)は、それらタイプが同じキータイプを共有すること
と、その処理タイプがキー付きで動的な種類のものであることを要求する。
さらに別の処理タイプはデータベースオブジェクトに関連する実例を持つこと
ができる。その実例が制御プロセッサ自身のソフトウェアによってインストール
される処理タイプについては、その処理タイプとともに密接に展開されるデータ
ベースオブジェクトタイプがこうして存在する。そのとき、そのデータベースオ
ブジェクトタイプの1つの実例は、1つの論理処理実例に対応する。
最後に、1つの処理タイプは一意的であることができるし、または、複製され
た実例を持つこともできる。2つの実例が協力し合っているがそのシステム中の
他の処理に対して1つの処理として働いている場合、そのタイプが「一意的」性
質を持つときにはあるシステム活性の間以外は各論理実例に対してたかだか1つ
の物理実例があるだけである。そのタイプが「複製された」性質を持つときには
、各論理実例に対して同時にいくつかの不等位の物理実例が存在するかもしれな
い。この性質は「中央」性質と結合できるだけである。静的なそのような処理タ
イプについては、多数のプロセッサの各々の上で1つの物理実例が作成されるこ
とを意味する。動的なそのようなタイプについては、その論理実例がアドレス指
定される毎に1つの新しい物理実例が作成されるということを意味する。
1つの処理が別のプロセッサ上で遠隔操作を行おうとしているとき、特別な論
理処理実例または特別な物理処理実例のどちらかを識別することによって他の処
理をアドレス指定する。
論理処理実例を識別することが可能であるためには、その処理タイプおよび異
なる実例間の相違、あるタイプのキー値、またはデータベースオブジェクトの参
照を知ることが必要である。1つのタイプの処理は特別な他のタイプの処理と協
力し合うように設計されているので、これはそう問題とはならない。しかしなが
ら、「未知」の論理実例を包括的な論理実例識別子を通じて、例えば、データベ
ースからそのような識別子を検索することによって識別することも可能である。
その後、この識別子は、識別する実例の知識を有するある他の処理から書き込ま
れることとなる。
物理処理実例を識別するために、包括的な物理処理識別子に対してデータタイ
プが存在する。これら識別子または処理実例参照は、その物理実例が存在してい
る間は有効であり、その物理実例自身がデータベース中に記憶したり遠隔操作を
通じて他のプロセッサに送ったりすることによってその参照を利用可能にするな
らば、他のプロセッサによって利用することができる。
「中央」処理実例またはキーで識別される実例は、別のネットワーク要素中の
ある処理からアドレス指定できる。それから、その別のネットワーク要素は、ア
ドレス指定された処理を実行するネットワーク要素を識別するネットワークアド
レスを供給しなければならない。デフォルトでは、同じネットワーク要素中の処
理のみがアドレス指定できる。データベースオブジェクトによって識別された処
理実例は、1つのネットワーク要素内でのみアドレス指定できる。
上記検討した処理タイプの性質は、処理タイプ仕様中の設計言語で特定されね
ばならない。こうして、この仕様は以下を特定する。
−タイプ名
−静的か動的かということ
−1次キーのタイプ
−実例を複製できるか否か
−1次キーを持つタイプについて、分配限界または分配ユニット仕様へ
の参照
−インストールされるタイプについて、分配ユニット仕様への参照
3つの異なる処理タイプを特定する処理タイプ仕様の例は以下に与えられる。
PROCESS TYPE ResouceHandler IS
STATIC;
END PROCESS TYPE ResourceHandler;
PROCESS TYPE TrafficControl IS
DYNAMIC;
PRIMARY KEY key: SubscriberNumber;
DISTRIBUTION LIMIT 1000;
END PROCESS TYPE TrafficControl;
PROCESS TYPE LIC_Handler IS
STATIC;
PRIMARY KEY key: REFERENCE TO LIC_Data;
DISTRIBUTED AS LIC_Board;
END PROCESS TYPE LIC_Handler;
1つの物理処理実例は常に1つの、そして唯一のプロセッサ上で実行される。
1つの実例を作成する際には、その制御システムはその実例をどのプロセッサ上
で作成すべきかということを、プロセッサを均等に利用するような方法で決定し
なければならない。その制御システムは、また、遠隔操作等を適切な処理実例に
向けるためその作成された実例に注意を払わねばならない。処理ベースで処理の
上にこれを行うことは不可能であろう。あまりにも多くの実例があるからである
。
上記問題は、処理実例群を同じプロセッサ上に保つように使用する分配ユニッ
トによって解決される。分配ユニットは、論理と物理両方の処理実例をグループ
分けする。実例と分配ユニットとの間の関係は論理実例で表現されるから分配ユ
ニットは論理実例をグループ分けし、また一方で、ある分配ユニットがあるプロ
セッサに割当てられているとき実際に起こるのはその分配ユニットに関連する全
ての物理処理実例がその特別なプロセッサ上で作成されるということであるから
、分配ユニットはまた物理実例をもグループ分けする。
分配ユニットと処理実例との関係を表現する方法は処理タイプの性質に依存す
る。
−中央処理タイプについては、わずかである。1つの論理実例が存在す
るだけであるから、1つの分配ユニットが存在できるだけである。
−その実例がキーによって識別される処理タイプについては、分配ユニ
ットの数が処理仕様とともに定数として特定されなければならないし
、その関係は各キー値をそれら分配ユニットの1つの上にマップする
プログラムされたアルゴリズムとして表現される。
−実例がインストールされる処理タイプについては、分配ユニットは同
様にインストールされ、処理実例と分配ユニット実例との関係はイン
ストール中に設定される。
分配ユニットがいくつかのプロセッサ上で複製されるか否かは、分配ユニット
がグループ分けする処理の性質に依存する。一意的処理については、1つの分配
ユニットがまた一意的に1つの単一のプロセッサに割当てられる。一方、複製さ
れた処理タイプについては、1つの分配ユニットがいくつかのプロセッサ上で複
製されうる。
当該オペレーティングシステム上のアプリケーションは、コードを実行する多
数の協力し合う処理から構成され、処理のメモリ中に1つの状態を持ち、持続的
にデータベースにデータを記憶する。1つの処理実例は1つの制御プロセッサ上
のみで実行されるが、その制御プロセッサに関係なく他の処理と通信できる。
機能性を達成するには、当該オペレーティングシステム上のアプリケーション
の設計者は、装置プロセッサを含むハードウェア装置をそこで動かそうとする際
、物理的制限以外の如何なる分配様相についても考える必要はない。プロセッサ
間の通信は、当該オペレーティングシステムによって透過的に運転される。
アプリケーション設計者は、処理構造とデータベース使用法を設計するときと
ソフトウェアの構成に関してネットワーク技術者に指示を与えるときの両方に良
い特性を得るためハードウェア分配を考慮しなければならない。異なるサブネッ
ト中の制御プロセッサの機能の協同操作は、情報をいくつかの通信チャンネルに
跨って流さなければならないので、勿論、サブネット内や1つの制御プロセッサ
内の協同操作より高価で時間がかかる。
当該オペレーティングシステムは、どの制御プロセッサ上で処理実例を捜すべ
きかを知ることによって、処理間通信とデータベース操作とを適切な制御プロセ
ッサに向けながらアプリケーションプログラムからは見えないようにする上記で
参照した分配透過性を具現する。
上記で指摘したように、当該オペレーティングシステムがもしそれぞれの単一
処理実例が割当てられた場所を実際に見失わないようにしたならば、大きなオー
バヘッドになろう。そのオーバヘッドは上記分配ユニット概念を通して削減され
る。このアプローチによる有利さは、当該オペレーティングシステムが必要なの
は著しく少ない数の分配ユニットを見失わないということだけである。
1つの分配ユニットは特定の分配ユニットタイプのものである。1つの分配ユ
ニットタイプは、そのタイプの分配ユニットの共通性質、即ち、処理実例のタイ
プと共割当てされたデータベースオブジェクト実例のタイプ、もしあるならば、
そのグループと少しばかりの他の特性、多くの場合、システムに存在するタイプ
の分配ユニットの正確な数を表す。
いかに分配ユニットが複数の制御プロセッサに跨って分配されているかという
ことは、分配ユニットタイプを制御プロセッサの分配プールに割り当てるという
観点でシステムを構築するときに述べられる。その分配プールは制御プロセッサ
の理論的に任意なグループ分けである。1つの分配プール中には任意の数の制御
プロセッサが存在していても良いし、1つの制御プロセッサが任意の数のプール
の部分であっても良い。
各分配ユニットタイプについては、対応する仕様でなければならず、その仕様
においては、分配ユニットタイプの性質は処理タイプ仕様と同様の設計言語で明
示されねばならない。この仕様は以下を特定する。
−タイプ名
−処理実例のタイプ
−共割当てされたデータベースオブジェクト実例のタイプ
−そのタイプの分配ユニットの数
3つの異なる分配ユニットタイプの例は以下に与えられる。
中央処理タイプ:
DISTRIBUTION UNIT TYPE Central_DUT IS
PROCESS TYPE Central _PT;
END;
キー付きの処理タイプ:
DISTRIBUTION UNIT TYPE Keyed_DUT IS
PRIMARY KEY key: KeyType;
DISTRIBUTION LIMIT 100;
PROCESS TYPE Keyed _PT:
END;
共割当てされたデータベースと処理
DISTRIBUTION UNIT TYPE Coallocated_DUT IS
PRIMARY KEY key: KeyType;
DISTRIBUTION LIMIT 100;
PROCESS TYPE Coallocated _PT;
OBJECT TYPE Coallocated_OT;
END;
上記仕様と共存する仕様
PROCESS TYPE Central_PT IS
STATIC;
DISTRIBUTED AS Central DUT;
END;
PROCESS TYPE Keyed_PT IS
DYNAMIC;
PRIMARY KEY key: KeyType;
DISTRIBUTED AS Keyed _DUT;
END;
PROCESS TYPE Coallocated_PT IS
DYNAMIC;
PRIMARY KEY key: KeyType;
DISTRIBUTED AS Coallocated _DUT;
END;
OBJECT TYPE Coallocated _OT IS
PRIMARY KEY key: KeyType;
DISTRIBUTED AS Coallocated _DUT;
END;
タイプが同じ種類のものであるなら、同じ分配ユニットタイプを共有するいく
つかの処理タイプがあっても良い。各種類の処理タイプについては、1つの分配
ユニットタイプの1つの分配プールへの割当は、わずかに異なることを意味する
。このことは、前に述べた処理タイプの種類に関して第4図−第8図を参照して
より詳しく述べる。
中央、静的かつ一意処理タイプである第1の種類を第4図に示す。第4図は、
1つの分配プールに属する3つの制御プロセッサ402、404、406を概略
的に示す。このタイプについては、たった1つの処理実例408があり、それゆ
え、たった1つの分配ユニット410がある。当該オペレーティングシステムは
そのプール中の制御プロセッサの1つ、即ち、図示の例ではプロセッサ404を
選ぶ。そのプロセッサには分配ユニット410が割り当てられ、そのプロセッサ
上で処理実例408が実行される。そのプロセッサ404が誤動作すると、当該
オペレーティングシステムは別の制御プロセッサ、即ち、例ではプロセッサ40
2、406の1つをプールから選び、そのプロセッサ上で処理を再開する。
キー付き、動的かつ一意の処理タイプである第2の種類を第5図に示す。第5
図は、1つの分配プールに属する3つのプロセッサ502、504、506を概
略的に示す。プロセッサ502は2つの分配ユニット508、510を含むよう
に示されている。プロセッサ504は2つの分配ユニット512、514を含む
ように示されている。プロセッサ506は2つの分配ユニット516、518を
含むように示されている。
分配ユニットの各々は3つの論理処理実例を含み、その実例の内あるものは物
理実例に「物質化」されていて良い。なぜなら、ある他の処理はそのサービスに
到達するためにそれと通信したがっていたからである。これは第5図に次のよう
に例示されている。分配ユニット508については、3つの「純」論理実例が5
0811から50813に示されている。分配ユニット510については、2つの論
理実例が51011、51012に、1つの物理実例が510ph1にそれぞれ示され
ている。分配ユニット512は、1つの論理実例51211と、2つの物理実例5
12ph1、512ph2とを含むように示されている。分配ユニット514は、2つ
の論理実例51411、51412と、1つの物理実例514ph1とを含むように示
されている。分配ユニット516は、2つの論理実例51611、51612と、1
つの物理実例516ph1とを含むように示されている。分配ユニット518は、
2つの論理実例51811、51812と、1つの物理実例518ph1とを含むよう
に示されている。
このタイプについては、アプリケーションプログラマは、分配ユニットの数を
固定する分配限界(この例では分配限界は6である)と、処理実例を識別するキ
ーを特定の分配ユニットを識別する数に翻訳する機能とを提供しなければならな
い。当該オペレーティングシステムは、第5図に示すように、そのプールにある
制御プロセッサに跨って均等に分配ユニットを広げ、もしある制御プロセッサに
事故が生じると、その制御プロセッサ上の分配ユニットをプール中の残りの制御
プロセッサに移動させ、事故の制御プロセッサが再び機能すれば元に戻す。処理
実例が動的であるから、当該オペレーティングシステムは、ある処理実例がそれ
への対話を設定することによってアドレス指定されると、1つの物理実例を開始
するだけであろう。故障中の制御プロセッサ上で実行している実例は自動的には
再開されない。
中央、静的かつ複製された処理タイプである第3の種類を第6図に示す。その
ような処理タイプでは、当該オペレーティングシステムが分配プール中の全ての
制御プロセッサに複製し各制御プロセッサ上で1つの処理実例を開始するであろ
うたった1つの分配ユニットがある。これは第6図に示していて、その図では、
同じプールに属する3つの制御プロセッサ602、604、606がそれぞれ1
つの複製された分配ユニット608、610、612を含み、そして、その各処
理はそれぞれ614、616、618で示されている。620で示す第4のプロ
セッサは他のプロセッサのプールには属さず、それゆえ、複製された分配ユニッ
トを何も受け取ってはいない。
万一、制御プロセッサ602、604、606の1つが故障すると、その上で
実行中の実例は、その制御プロセッサが再び機能するまで、消えてしまう。1つ
の複製された処理タイプがアドレス指定されると、送り手は特に実例の1つでは
ないような複製された処理タイプを指摘することだけができる。当該オペレーテ
ィングシステムは送り手に「最も近い」制御プロセッサ上の実例を選ぶ。即ち、
その制御プロセッサ上に1つ存在するならば同じ制御プロセッサ上で、さもなけ
れば同じサブネット内で、またさもなければ任意の場所から選ぶ。もしいくつか
の制御プロセッサが等しく「近い」ならば、当該オペレーティングシステムは無
作為に選ぶ。こうして複製された処理の実例の内部状態は互いに独立していると
いうことに注目されたい。当該オペレーティングシステムはそれら状態を互いに
矛盾しないように保つことはしないであろう。
中央、動的かつ複製された処理タイプである第4の種類を第7図に示す。第7
図は、同じプールのうちの1つに属する3つの制御プロセッサ702、704、
706を示す。当該オペレーティングシステムは、その分配プール中のすべての
制御プロセッサ上で708、710、712で示される1つの単一分配ユニット
を複製して、そのような処理がアドレス指定される度にプール中の制御プロセッ
サの1つの上で新しい処理実例を開始する。処理実例714、716は複製され
た分配ユニット708中に示され、複製された分配ユニット710は3つの処理
実例718、720、722を含むように示されている。複製された分配ユニッ
ト706は単一処理実例724を含む。
選ばれる制御プロセッサは、静的かつ複製された処理タイプと同様、送ってい
る処理の位置に依存する。
インストールされ、静的かつ一意の処理タイプである第5の種類を第8図に示
す。第8図は、1つのプールに属する3つの制御プロセッサ802、804、8
06を示す。制御プロセッサ804、806は1つのグループを形成する。その
分配ユニットタイプを1つの分配プールに割り当てるのは、その分配ユニットタ
イプに接続されたタイプの処理実例がそのプール中の任意の制御プロセッサ上で
インストールされて良いことを意味するに過ぎない。しかしながら、ランタイム
中でインストールされるまでは、分配ユニットも処理実例も存在しない。
1つの分配ユニットをインストールするには、第8図に示すように1つのプロ
セッサグループを選択しなければならない。1つのプロセッサグループは構成デ
ータから構築される制御プロセッサのグループである。808で示される分配ユ
ニットがインストールされると、当該オペレーティングシステムは、これも分配
ユニットタイプが割り当てられた分配プールの一部である選ばれたプロセッサグ
ループの中で、制御プロセッサの1つ、例ではプロセッサ804、を選ぶ。こう
してインストールされた分配ユニット808内で、例として810、812で示
される処理実例はまたランタイム中で加えられる。当該オペレーティングシステ
ムは、選ばれた制御プロセッサの分配ユニット中の処理実例を開始し、そして、
もし現在選ばれている制御プロセッサが故障すると他のものを選び処理をそこで
再開する。
当該オペレーティングシステムは実際の物理的制限を知らないので、適切なプ
ロセッサグループを作成することはアプリケーション設計者やネットワーク技術
者にとっての事項である。
インストールされた処理実例はハードウェアリソースを示す管理されたオブジ
ェクト実例に常に密接に関係し、そして、1つのハードウェアリソースが1つの
システムに加えられると、通常は1つの処理実例がそのリソースを制御または運
転することが必要になる。ハードウェアリソースは、恐らく、ある方法で管理す
る必要があり、それゆえ、そのリソースを表す管理されたオブジェクト実例が作
成される。処理とその分配ユニットのインストールは、それゆえ、しばしば管理
されたオブジェクトの作成と関連してなされる。そのハードウェアリソースを表
す管理されたオブジェクトと他のハードウェアリソースを表す管理されたオブジ
ェクトとの関係から、選ぶべき適切なプロセッサグループが得られる。
上記と第9図−第12図とを参照して、模範的インストールの場合を説明する
。第9図はネットワーク要素のハードウェア図であり、第10図はそのネットワ
ーク要素の管理図であり、第11図はそのネットワーク要素のリソース図であり
、第12図はそのネットワーク要素に含まれる制御プロセッサ上で実行しようと
する処理実例の分配を概略的に示す。
プロセッサグループの目的は、ハードウェア構成における物理的制限に対処し
てインストールされた処理実例が実行しようとしている制御プロセッサを抑制す
ることである。第9図のネットワーク要素中、装置902、904はそれぞれブ
ロックD1、D2に含まれて示されている。ブロックD1、D2はそれぞれスイ
ッチ906に接続された多数の装置のそれぞれを代表するものである。装置90
2、904を含むこれら装置はその装置と同じスイッチ906に接続された制御
プロセッサ908、910から到達できるのみである。別のスイッチ912は、
それぞれブロックD3、D4に含まれるように示された2つの制御プロセッサ9
14、916と2つの装置918、920をそこへ接続している。ブロックD3
、D4は装置918、920を含んでいて、スイッチ912に接続された多数の
装置を表すようにしている。
第10図の対応管理図では、プロセッサ908、910、914、916、装
置902、918、920及び第9図に示すスイッチ906、912が第10図
の対応要素として同じ参照番号に添字MOを与えられ、管理されたオブジェクト
によって表されている。同様に、第11図の対応リソース図では、第10図で管
理されたオブジェクトによって表したのと同じプロセッサ、装置、スイッチが、
第10図の対応要素と同じ参照番号に添字ROを付加したリソースオブジェクト
によって表されている。
第10図は、分配プールを表す管理されたオブジェクト1002がどのように
プロセッサ管理されたオブジェクト908MO、910MO、914MO、916MOを
グループ分けするかを示す。その分配プールには分配ユニットタイプが割り当て
られるが、それを第12図を参照して以下にさらに詳しく述べる。管理されたオ
ブジェクト908MO、910MOはスイッチ管理されたオブジェクト906MOに接
続され、装置管理されたオブジェクト902MOもまたそこへ接続される。管理さ
れたオブジェクト914MO、916MOはスイッチ管理されたオブジェクト912MO
に接続され、装置管理されたオブジェクト918MO、920MOもまたそこへ接
続される。
第11図の対応リソース図では、第11図のリソースをそれぞれ表すリソース
オブジェクトが第10図の管理されたオブジェクトと同様に組織されている。し
かしながら、第11図のリソース図は、また、制御プロセッサ918、920を
1つのグループとして表すリソースオブジェクト924ROだけでなく、制御プロ
セッサ908、910を1つのグループとして表すリソースオブジェクト922RO
を含む。
管理されたオブジェクト1002によって表せられる分配プールには、第12
図に1202で概略的に示す分配ユニットタイプが割り当てられ、一例として、
ブロック1204から1218によって示されるこのタイプの分配ユニットを含
む。それら分配ユニットは各ブロック中4角形で示す多数の処理実例を含む。
こうして、分配ユニット1204、1206はそれぞれ装置D1を取扱い、制
御プロセッサ908上で実行するためインストールされた1つの処理実例グルー
プを形成する。装置902を取扱う処理実例は1220で示している。分配ユニ
ット1208、1210はそれぞれ装置D2を取扱い、制御プロセッサ910上
で実行するためインストールされた1つの処理実例グループを形成する。装置9
04を取扱うための処理実例は1222で示されている。
分配ユニット1212、1214はそれぞれ装置D3を取扱い、制御プロセッ
サ914上で実行するためインストールされた1つの処理実例グループを形成す
る。装置918を取扱うための処理実例は1224で示されている。分配ユニッ
ト1216、1218はそれぞれ装置D4を取扱い、制御プロセッサ916上で
実行するためインストールされた1つの処理実例グループを形成する。装置92
0を取扱うための処理実例は1226で示されている。
スイッチ906または912に接続された装置を取扱う処理実例は、リソース
オブジェクト922RO、924ROによってサポートされた制御プロセッサの前記
グループ分けによりそのスイッチに接続された制御プロセッサ908、910ま
たは918、920上でそれぞれ実行しなければならない。こうして、もし新し
い装置928がスイッチ906に追加されたならば、その新しい装置を取扱う処
理実例が同様に制御プロセッサ908、910のいずれかの上で実行するようイ
ンストールされ、選択されねばならない。それゆえ、その新しい装置を表すリソ
ースオブジェクト928ROがインストールされ、矢印930に示すリソースオブ
ジェクト922ROに接続されねばならないし、その新しい処理実例は制御プロセ
ッサ908、910上で実行しようとする1つの処理実例のグループを形成する
分配ユニットに割り当てねばならない。一例として、そういう新しい処理実例は
、プロセッサ910上で実行するためインストールされるように、例えば、第1
2図の1228で示す。
1つの制御プロセッサ中の処理実例を、別の制御プロセッサ中に位置する処理
実例からアドレス指定することを第13図、第14図を参照して記述する。
第13図は3つの制御プロセッサCP1、CP2、CP3を示す。制御プロセ
ッサCP1は2つの分配ユニットA、Bを含むように示されている。制御プロセ
ッサCP2は分配ユニットC、D、R、Sを含むように示されている。制御プロ
セッサCP3は分配ユニットE、F、R、Sを含むように示されている。分配ユ
ニットR、Sは、それらに割り当てられた複製された第3、第4の種類のいずれ
かの処理実例を持つように想定される。
1つの制御プロセッサにおける1つの処理が別の制御プロセッサに位置してい
ても良い別の処理上の操作を呼び出すことができるように、アドレッシング情報
が必要である。そのようなアドレッシング情報は、次のように、テーブルによっ
て提供される。
各制御プロセッサは、それと関連し、すべての制御プロセッサに共通であり、
かつその制御プロセッサ上のすべての分配ユニットの分配を示す第1のテーブル
と、自分自身の分配ユニットを指す第2のテーブルとを有する。プロセッサCP
1、CP2、CP3の各々について、第一のテーブルはT1で示され、第2のテ
ーブルはそれぞれT2CP1、T2CP2、T2CP3で示される。図でわかるように、
第1のテーブルT1では第1列中の各行に分配ユニットを示し、第2列には第1
列中の分配ユニットが位置するプロセッサを示す。こうして、テーブルT1の行
2から、分配ユニットC、Dが制御プロセッサCP2上に位置するということが
分かる。第2テーブルT2は、各行に分配ユニットを示す第1列と、同じ行にそ
の分配ユニットへのポインタを与える第2列とを有する。これは、テーブル2の
各行から対応する分配ユニットに向かう矢印から容易に分かる。各矢印は、それ
が指し示す分配ユニットと同じ識別文字によって示されている。
さらにその上、各分配ユニットはその処理実例へのポインタを含む自身のテー
ブルT3を有する。第13図では、このテーブルはプロセッサCP2上の分配ユ
ニットDに対してだけテーブルT3Dとして示されている。図でわかるように、
分配ユニットDは3つの処理実例P1、P2、P3を含む。テーブル3は、これ
らの処理実例をそれぞれ示す3行からなる第1列と、それぞれの行からの矢印が
対応する処理実例へのポインタを示す第2列とを含む。このように、分配ユニッ
トR、Sに割り当てられた処理実例を識別する分配ユニットR、Sと関連する、
図面に示されないテーブルも存在する。テーブルT1、T2、T3はオペレーテ
ィングシステムの一部を形成する。
次に、いくつかの模範的なアドレッシングの場合を述べる。第13図の制御プ
ロセッサCP1上の分配ユニットB中の処理実例送り手は遠隔操作を制御プロセ
ッサCP2に存在する処理実例の1つ、例えば、処理実例P2上、または、プロ
セッサCP2、CP3中の分配ユニットR、Sのいずれかに割り当てられた処理
実例上で行うのが好ましい。第14図は、当該処理実例を見つけることができる
オペレーティングシステムによって行われる検索過程を示すフロー図である。
第13図の分配ユニットBに位置し、先へ送るべき処理実例を捜している処理
実例送り手からのメッセージがそのフロー図の開始点1402に現れる。その検
索はテーブルT1によりステップ1404から開始される。検索すべき処理実例
が分配ユニットDに位置する処理実例P2であるならば、テーブルT1の行2は
この分配ユニットがプロセッサCP2上で見付かるということを明らかにする。
これによれば、ステップ1406は処理実例が自身のプロセッサ上の分配ユニッ
トに位置することができるという場合を消去する。もし検索すべき処理実例が複
製されるタイプのものであるならば、テーブルT1はプロセッサCP2、CP3
上で見つかるということを最終行で明らかにする。
ステップ1408では、その処理実例が複製されるか否かを決定する。もし複
製されるならば、オペレーティングシステムはステップ1410で制御プロセッ
サCP1、CP2のうちの、送り処理の送り手に「最も近い」もの、または、第
3、第4の種類の処理について前に述べたようにそれらが等しく「近い」ならば
任意のものを選ぶ。もし複製されないなら、ステップ1410は素通りする。
検索する処理実例がP2なら、ステップ1412はメッセージをステップ14
14に送る。ステップ1414でプロセッサCP2に関連するテーブルT2CP2
は行2で分配ユニットDへのポインタを識別する。ステップ1416はメッセー
ジをステップ1418に送る。ステップ1418で、テーブルT3Dは行2で処
理実例P2へのポインタを識別する。
ステップ1420では、処理実例が動的か静的かを決定する。もし動的なら、
ステップ1422は処理実例がキー付きか複製されるかを決定する。もしキー付
きなら、その処理タイプがキー付き、動的かつ一意的であると決定する。ステッ
プ1424では、「開始?」と訊いて、その論理実例が物理実例へと物質化され
たか否かを決定する。もし否なら、ステップ1426でその処理実例を開始し、
メッセージをステップ1428で先に送る。もし物理実例なら、矢印1430に
より示すようにフローを続けてメッセージをステップ1428へ送る。
静的処理実例の疑いがあるということがステップ1420で分かったなら、フ
ローはステップ1422、1424、1426を素通りして矢印1432によっ
て示されるようにステップ1428へと続く。
もしステップ1422での答えが「複製される」であるならば、これは中央、
動的かつ複製されるタイプの実例であるということ、および新しい物理タイプが
物質化されねばならないということを意味する。それゆえ、フローはステップ1
424を素通りして矢印1434によりステップ1426へと続く、即ち、オペ
レーティングシステムはアドレス指定された処理実例を開始する。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 ホルテ − ロスト,アンナ ナエミィ
インゲボルグ
スウェーデン国 エス − 124 72 バ
ンドハーゲン,グランスハムマルスガタン
213
(72)発明者 サミュエルソン,ボ ミカエル
スウェーデン国 エス − 113 26 ス
トックホルム,フレイユガタン 42