JPH04227562A - データ処理システムのオペレーション実行装置とその方法 - Google Patents

データ処理システムのオペレーション実行装置とその方法

Info

Publication number
JPH04227562A
JPH04227562A JP9189094A JP8909491A JPH04227562A JP H04227562 A JPH04227562 A JP H04227562A JP 9189094 A JP9189094 A JP 9189094A JP 8909491 A JP8909491 A JP 8909491A JP H04227562 A JPH04227562 A JP H04227562A
Authority
JP
Japan
Prior art keywords
data
type
buffer
application
routine
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
JP9189094A
Other languages
English (en)
Inventor
Juan M Andrade
ユアン マイケル アンドレーダ
Mark T Carges
マーク トーマス カージス
Stephen D Felts
ステファン ドナルド フェルツ
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Publication of JPH04227562A publication Critical patent/JPH04227562A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システム、
特に階層型に組織化されたデータ処理システムに関する
【0002】
【従来の技術】本発明は、複数のレベルの階層を有する
データ処理システムにおいて利用される。一つのレベル
で実行するプログラムは、次の下のレベルにより供与さ
れる機能を利用し、より低いレベルの資源を、このレベ
ルの実行の詳細についての知識なしに、使用することが
可能である。
【0003】データ処理システムは、しばしば複数のレ
ベルの階層として組織化される。最低のレベルには、デ
ータを移動し、操作するという実際のオペレーションを
遂行する物理的なハードウェアがあり、最高のレベルに
は、オペレーティングシステムがある。
【0004】オペレーティングシステムは、物理的なハ
ードウェアの実際のオペレーションを制御し、ハードウ
ェアの資源をオペレーティングシステムの使用者に利用
可能にする。そうすることで、オペレーティングシステ
ムは、階層内のより高いレベルに対する論理的なオペレ
ーションセットを有効に定義する。この論理的なオペレ
ーションセットを使用するプログラムは、オペレーティ
ングシステムが動作するいずれのハードウェア上におい
ても、動作することが可能である。
【0005】データ処理システムは、さらにより高いレ
ベルに対する論理的なオペレーションを定義する、オペ
レーティングシステムより上のレベルを追加して含んで
いる。このレベルの具体例は、データベースシステム、
トランザクション処理システムなどを含む。
【0006】所定のレベルの観点から見れば、より低い
レベルは、所定のレベルで走るプログラムにより使用さ
れる論理的なオペレーションセットを定義するので、シ
ステムレベルである。同様に、より低いレベルにより供
与されるオペレーションは、システムオペレーションで
ある。逆もまた真である。つまり、所定のレベルの観点
から見れば、より高いレベルは、より低いレベルにより
定義されるシステム機能を使用するのでアプリケーショ
ンレベルであり、アプリケーションレベルで走るプログ
ラムはアプリケーションプログラムである。
【0007】この階層システムの大きな利点は、所定の
レベルは、そのレベルが遂行するオペレーションの詳細
をより高いレベルの動作から隠す(hide)ことであ
る。例えば、オペレーティングシステムが論理的なファ
イルオペレーションセットを定義するならば、より高い
レベルは、オペレーティングシステムがディスクドライ
ブや端末のような物理的なデバイスに対して実際にファ
イルオペレーションをいかにどのような手法で遂行する
か全く知らずに、これらの論理的なファイルオペレーシ
ョンを使用可能である。
【0008】データ処理システムとプログラムが複雑さ
を増すにつれて、隠すことはより一層重要になる。つま
り、このことは、各レベルで従事するプログラマがシス
テムの複雑さを習得することを可能にするのみならず、
より高いレベルを変えることなしにシステムのより低い
レベルを変形することをもまた可能にする。
【0009】隠すことに伴う難点は、隠すことが両方向
に作用することである。つまり、より高いレベルからよ
り低いレベルのオペレーションの詳細を隠すのみならず
、より低いレベルのオペレーションからより高いレベル
のデータ構造の詳細をもまた隠すことである。
【0010】例えば、アプリケーションプログラムがメ
モリ内に樹木データ構造を構築したいならば、そうする
ために、アプリケーションプログラムはシステム割り当
て機能を使用し、一般に二つの引き数、すなわち、割り
当てられたメモリへのポインタと割り当てられたメモリ
のサイズの仕様、を取る。これらは引き数にすぎないの
で、割り当て機能は、空間が割り当てられているメモリ
システムの概念をアプリケーションプログラムが有する
ほどには、割り当て機能がこの構造を構築することため
に使用されている樹木データ構造の概念を必ずしも有さ
ない。
【0011】結果的に、アプリケーションプログラムは
、樹木データ構造を割り当てるためのシステム割り当て
機能を単純に使用することはできず、代わりに、生のメ
モリ空間を割り当てるためのシステム割り当て機能を使
用しなければならず、従って、割り当て機能により供与
された空間を樹木状にするためにアプリケーションレベ
ルで動作する初期化ルーチンを使用する。
【0012】より低いレベルのオペレーションからより
高いレベルのデータ構造を隠すことが特定の難点をもた
らす領域は、分散型システム内である。分散型システム
内で、データは、ネットワークにより接続された構成要
素システムセットにより処理されている。構成要素シス
テムは、異なるハードウェアと(あるいは)オペレーテ
ィングシステムを有することが可能であり、異なる転送
構文を使用してデータを送信し、受信可能である。
【0013】データがこの分散型システム内をソースと
なる構成要素システムから目的の構成システムへと送信
される時、データをネットワークを通り配布されること
が可能な形式にし、このデータを目的の構成システムの
ハードウェアあるいはオペレーティングシステムに対し
て必要なフォーマットに変換し、変換されたデータを目
的のマシンに対して必要な転送構文にすることがしばし
ば必要である。
【0014】アプリケーションプログラムの観点から、
送信及び受信オペレーションは明らかにシステムオペレ
ーションであり、一方で、データをネットワークを通り
配布可能な形式にし、このデータを目的のマシンにより
必要なフォーマットに変換し、変換されたデータを適切
な転送構文にするオペレーションはすべて、アプリケー
ションプログラムレベルでのみ利用可能なデータの知識
を必要とする。
【0015】送信あるいは受信されるデータの形式がシ
ステムレベルの送信及び受信オペレーションから隠され
るという事実を従来技術が扱うことを試みた一つの方法
は、サンマイクロシステムズにより開発されたオープン
ネットワークコンピューティングシステムに示されてい
る。
【0016】ジョン・コルビン(John Corbi
n)とクリス・シルビエリ(Chris Silvie
ri)による”オープンネットワークプログラミング(
Open Network Programming)
”「ユニックスワールド(Unix World)」1
989年12月号、115〜128頁に記述されるよう
に、オープンネットワークコンピューティングシステム
は、分散型システムの他の構成要素へデータを送信する
、またそれら構成要素からデータを受信するためにリモ
ートプロシージャコールを使用する。送信されるデータ
は、外部データ表示(XDR)と呼ばれる転送構文に変
換される。
【0017】オープンネットワークコンピューティング
システムは、整数、ブール演算子、列挙法、浮動小数点
値、バイト、配列、文字列、構造式、合併集合演算をX
DRへ、またXDRからこれらに変換するためのライブ
ラリルーチンを供与するが、ユーザは、変換手続きを書
くためにこれらライブラリルーチンを使用可能である。 これら変換手続きのアドレスは、従ってリモートプロシ
ージャコール内の引き数として使用される。
【0018】オープンネットワークコンピューティング
システムは、システム送信と受信オペレーションから送
信され、あるいは受信されるデータの形式を隠すという
結論を克服している一方で、このシステムは、非常に費
用がかかる。
【0019】つまり、第一に、XDRへまたXDRから
の変換は、アプリケーションプログラムからもはや隠さ
れないが、あらゆるリモートプロシージャコール内に特
定されなければならない。第二に、XDRへまたXDR
からの変換のみが本システムでは可能である。第三に、
変換は、XDRにより供与される原始的で複雑なデータ
タイプのフレームワーク内で記述されなければならない
【0020】本発明の目的は、システムオペレーション
の詳細を隠すこととアプリケーションプログラムのデー
タにより影響されるシステムオペレーションのアプリケ
ーションプログラム部分による定義との両方を可能にす
る方法であるが、この方法は、アプリケーションプログ
ラマを単一の伝送構文に限定せず、また組込みのフレー
ムワークを使用する変換を記述するためにアプリケーシ
ョンプログラマを必要とはしない。このような装置と方
法とを供与することが本発明の目的である。
【0021】
【発明が解決しようとする課題】従って、改善されたデ
ータ処理システムを供与することが本発明の目的であり
、階層のより低いレベルを隠すことにおける階層化され
たシステムの現在の欠点を克服することが本発明の更な
る目的であり、改善されたバッファハンドリング装置を
供与することが本発明のもう一つの目的であり、またア
プリケーションプログラム間でデータを通過させるため
の改善された装置を供与することが本発明の追加された
目的である。
【0022】これらや他の目的と本発明の利点は、以下
の実施例と図面を考察することにより通常の当業者には
明らかになるであろう。
【0023】
【課題を解決するための手段】本発明は、システム定義
データオペレーションの一部としてのアプリケーション
定義データオペレーションを遂行するための装置である
。本装置は、アプリケーション定義タイプとデータとを
連関するための第一のシステム定義装置と、アプリケー
ション定義オペレーションとタイプとを連関するための
第二のシステム定義装置と、システム定義オペレーショ
ンにより利用され、アプリケーション定義オペレーショ
ンがシステム定義オペレーションの一部としてデータに
対して遂行されるためのタイプに応答する第三のシステ
ム定義装置とを有する。
【0024】本発明の種類は、バッファハンドリング装
置である第一の種類を有する。バッファハンドリング装
置は、アプリケーション定義タイプとバッファとを連関
するための第一のシステム定義装置と、アプリケーショ
ン定義オペレーションとタイプとを連関するための第二
のシステム定義装置と、バッファタイプを参照せずにシ
ステム定義オペレーションをバッファに対して遂行する
ための第三のシステム定義装置とを有するが、第三のシ
ステム定義装置はアプリケーション定義オペレーション
を遂行するために第二のシステム定義装置を利用し、第
二のシステム定義装置はアプリケーション定義オペレー
ションが遂行されるようにすることによるタイプに応答
する。
【0025】第二の種類は、第一の環境で実行される第
一のアプリケーションと通過されるデータに関して第一
の環境と異質で有り得る第二の環境内で実行される第二
のプログラムとの間でデータを通過させるための何らか
のデータパッシング装置を使用可能な装置である。
【0026】第一の環境では、装置は、アプリケーショ
ン定義タイプとデータとを連関するシステム定義タイプ
連関装置と、このタイプをデータが第二の環境に通過さ
れるときにデータに対して遂行される第一のアプリケー
ション定義オペレーションに連関させる第一のシステム
定義オペレーション連関装置と、アプリケーション定義
オペレーションを遂行するために第一のシステム定義オ
ペレーション連関装置を利用する第一のシステム定義デ
ータパッシング装置とを有するが、第一のシステム定義
オペレーション連関装置は、第一のアプリケーション定
義オペレーションが遂行されることによるタイプに応答
する。
【0027】第二の環境において、装置は、タイプをデ
ータが第一の環境から受信されるときにデータに対して
遂行される第二のアプリケーション定義オペレーション
に連関させる第二のシステム定義オペレーション連関装
置と、第二のアプリケーション定義オペレーションを遂
行するために第二のシステム定義オペレーション連関装
置を利用する第二のシステム定義データパッシング装置
とを有する。
【0028】
【実施例】本発明の以下の実施例は、まず本発明の外観
を与え、次にクライアント−サーバモデルを利用する分
散型トランザクション処理システムにおける現在の好ま
しい実施例を記述する。
【0029】本発明が有効な一つの領域は、データに関
して異質な環境において実行されるプログラム間のデー
タ通信である。この環境下で動作するプログラムの例は
以下に含まれる。
【0030】・プログラムは、ある種のデータに対して
異なる表示が必要なハードウェア上で動作する。ハード
ウェアにより表示が異なるデータ例は、浮動小数点デー
タである。 ・プログラムは、ある種のデータに対して異なる表示が
必要なオペレーティングシステム上で動作する。ここで
の例は、システム識別子である。 ・プログラムは、異なる通信プロトコルを予想するシス
テム上で動作する。 ・プログラムは、異なる種類のデータがシステム内の異
なるノードで処理される分散型システム内で動作する。
【0031】図1は、この異質な環境内で実行されるプ
ログラム間の通信を可能にする本発明の実施例である装
置101を示す。二つの環境103(1)と環境103
(2)とは、上で表示された方法のいずれかあるいは他
の方法において異なる可能性があるが、データ移送機構
137により互いに結合されており、データ移送機構1
37はデータが環境間で通信されることを可能にするよ
うな何らかの設備である。データ移送機構137の例は
、少なくとも以下を含んでいる。
【0032】・実行される両方のプログラムにアクセス
可能なスタックや待ち行列のようなデータ構造・両方の
プログラムにアクセス可能なファイル・リモートプロシ
ージャコール ・UNIXでのパイプのようなプロセス間通信設備・他
のメッセージシステム
【0033】もちろん、リモートプロシージャコールや
、プロセス間通信や他のメッセージシステムのような設
備は、標準のあるいは私用のデータ移送プロトコルを使
用して実現されることが可能である。
【0034】各環境103は、様々な機能が利用可能な
レベルを有する。最高のレベルは、アプリケーションプ
ログラムレベル107である。このレベルでのプログラ
ムは、環境103のシステム内で動作する特定のアプリ
ケーションを実施例とする。このアプリケーションの具
体例は、テキストエディタあるいはビリングアプリケー
ションがあり得る。このレベルでプログラムを書くプロ
グラマは、環境103のシステムにより供与される機能
を利用可能である。
【0035】図1において、このシステム機能は、シス
テムレベル108に現れる。この機能の具体例は、メモ
リの領域を割り当て、また割り当て解除するための機能
と、メッセージを送信し、また受信する機能とを有する
【0036】図1の装置101において、システムレベ
ル108での機能は、アプリケーションプログラムがタ
イプ付きバッファを特定し、使用することを可能にする
機能を有する。このタイプ付きバッファを使用するアプ
リケーションプログラムは、AP105(1)として環
境103内に現れる。
【0037】タイプ付きバッファの一つは、タイプ付き
バッファ127(1)として現れる。通常のバッファと
同様に、タイプ付きバッファ127(1)は、アプリケ
ーションプログラム105(1)により操作されること
が可能であるデータ131を含む。加えて、これは、タ
イプ付きバッファ127(1)のタイプを表示するタイ
プ特定子129を含む。後でより詳細に説明されるよう
に、タイプ付きバッファのタイプは、どの程度、環境1
03(1)と環境103(2)内にタイプ付きバッファ
を含むシステム機能がシステムレベル108で実行され
るかどうかを決定する。
【0038】装置101には、タイプ付きバッファ機能
の二つのレベルがある。最初のレベルであるバッファサ
ービスレベル109は、タイプをタイプ付きバッファ1
27に連関させ、タイプ付きバッファのタイプとは独立
しているが、その内容よりもむしろ全体としてのバッフ
ァを扱うアプリケーションプログラム105(1)にサ
ービスを供与する。
【0039】好ましい実施例において、サービスは、タ
イプ付きバッファ127の割り当て、再割り当て、割り
当て解除を含み、タイプ付きバッファ127のタイプを
表示し、他の環境103へとタイプ付きバッファ127
を送信し、環境103からタイプ付きバッファ127を
受信する。割り当て及び割り当て解除を遂行するプログ
ラムは、環境103(1)内でA/D111(1)とし
て現れ、タイプ付きバッファを送信し、また受信するも
のは、この環境内でS/R113(1)として現れる。
【0040】第二のレベルであるタイプサービスレベル
135は、タイプ付きバッファ127のタイプに依存し
たバッファサービスレベル109内のプログラムにサー
ビスを供与する。タイプサービスを供与するプログラム
は、タイプサービス(TS)139(1)として環境1
03(1)内に現れる。現在の好ましい実施例に供与さ
れるサービスは以下を含む。
【0041】・割り当てあるいは再割り当てに際して、
タイプ付きバッファの初期化 ・割り当て解除に際して、タイプ付きバッファの初期化
を解除 ・送信及び受信に際して、 −送信前後にバッファの内容を処理する−送信前に内容
を伝送フォーマットにコード化する−バッファに対する
経路を選択する −受信後に内容を伝送フォーマットから復号化する−バ
ッファの内容を受信後に処理する
【0042】他のこのようなタイプ依存のサービスは、
もちろん可能である。装置101の設計の重要な特徴は
、タイプサービスレベル135の機能が、バッファサー
ビスレベル109に対してのみ利用可能であり、アプリ
ケーションプログラムレベル107に対しては利用可能
ではないことである。タイプ付きバッファ127の所定
のタイプに対して必要な処理は、これによりアプリケー
ションプログラム105から隠される。
【0043】環境103(1)内の構成要素の相互作用
は、レベルとレベル内の構成要素との間の情報の流れを
示す矢印により示される。アプリケーションプログラム
105(1)から開始して、このプログラムは、タイプ
付きバッファ127のタイプを割り当て、割り当て解除
し、再割り当てし、決定するために割り当て/割り当て
解除装置111(1)内のルーチンを利用可能である。
【0044】バッファを割り当てるために、アプリケー
ションプログラム105は、矢印115により表示され
るようにバッファのタイプと長さを特定し、割り当て/
割り当て解除装置111は、タイプ付きバッファ127
を割り当て、タイプ特定子129にアプリケーションプ
ログラム105により特定されたタイプに相当する値を
設定し、矢印117により示されるようにアプリケーシ
ョンプログラム105にタイプ付きバッファ127を指
定するタイプ付きバッファポインタを返す。
【0045】タイプ付きバッファ127を再割り当てす
るために、アプリケーションプログラム105は、タイ
プ付きバッファ127のTBPと再割り当てされたタイ
プ付きバッファ127の長さとを割り当て/割り当て解
除装置111に供与する。タイプ付きバッファ127の
タイプを決定するために、アプリケーションプログラム
105は、タイプ付きバッファ127のTBPを割り当
て/割り当て解除装置111に供与し、矢印116によ
り示されるように代わりにタイプ付きバッファ127の
タイプを受信する。
【0046】タイプ付きバッファ127を割り当て解除
するために、最終的に、アプリケーションプログラム1
05は、単にタイプ付きバッファ127のポインタ11
7をここでバッファを割り当て解除する割り当て/割り
当て解除装置111に供与する。
【0047】タイプ付きバッファ127がいったん割り
当てられると、アプリケーションプログラム105は、
矢印119により表示されるように、バッファにデータ
131を書き込み、またバッファからデータ131を読
み出すことが可能である。アプリケーションプログラム
105は、送信/受信装置113(1)でのルーチンに
よって他のプログラムにバッファ127を送信すること
が更に可能である。
【0048】好ましい実施例において、アプリケーショ
ンプログラム105と送信/受信装置113との間のイ
ンターフェースが、リモートプロシージャコールに対す
るインターフェースに似ている。タイプ付きバッファ1
27は、矢印121に示されるように、アプリケーショ
ンプログラム105(2)と、タイプ付きバッファ12
7に対するタイプ付きバッファポインタ117と、タイ
プ付きバッファ127の長さとを特定することにより環
境103(2)内でアプリケーションプログラム105
(1)へと送信される。
【0049】送信ルーチンには2種類があり、一つは同
期式で、送信ルーチンが呼び出されると、アプリケーシ
ョンプログラム105(1)はアプリケーションプログ
ラム105(2)がコールを返すまで実行を中止する。 送信ルーチンのこのバージョンにおいて、アプリケーシ
ョンプログラム105(1)は、追加して、回答を受信
するためにタイプ付きバッファ127を特定する。他の
送信ルーチンは、非同期式で、アプリケーションプログ
ラム105(1)は、送信されるタイプ付きバッファ1
27と非同期式送信ルーチンに対して受信するアプリケ
ーションプログラム105(2)とを特定し、そしてす
ぐに非同期式送信ルーチンから記述子を受信する。
【0050】アプリケーションプログラム105(1)
の実行は、タイプ付きバッファが送信された後は中止さ
れない。代わりに、アプリケーションプログラム105
(1)は、返されたタイプ付きバッファを獲得するため
に送信/受信装置113(1)内での他のルーチンを利
用する。この「回答獲得」ルーチンは、アプリケーショ
ンプログラム105(1)が、何か返されたタイプ付き
バッファを獲得するあるいは非同期式送信ルーチンから
の記述子と適合するタイプ付きバッファを獲得すること
を可能にする、またタイプ付きバッファ127が回収さ
れるまで実行を中止するかあるいはたとえタイプ付きバ
ッファが受信されていなくても実行を続行するかのいず
れかを可能にする任意選択を有する。
【0051】「回答獲得」がタイプ付きバッファを発見
したとき、ルーチンの引き数の一つは、タイプ付きバッ
ファ127へのポインタを含む。矢印130により示さ
れるように、ここで記述させる送信/受信ルーチンは、
送信するデータをポインタにより特定されるタイプ付き
バッファ127から取り、受信するデータをタイプ付き
バッファ127に配置し、受信データを有するタイプ付
きバッファ127にポインタを返す。送信されたデータ
は、タイプ特定子129を有する。
【0052】上で示されたように、バッファサービスレ
ベル109でのルーチンは、タイプ付きバッファが割り
当てられる時から割り当て解除される時まで、タイプ付
きバッファ127のタイプ関連処理を行うためにタイプ
サービス139内でルーチンを使用する。
【0053】バッファサービスレベル109とタイプサ
ービスレベル135との間のインターフェースは、タイ
プ付きバッファが処理されるためのタイプ付きバッファ
ポインタ117と、ここでTOIは他の情報だが、矢印
125と矢印137により示されるような前記処理のた
めに必要な情報である。
【0054】タイプサービス139は、タイプバッファ
127を位置指定するためのバッファポインタを使用し
、タイプ付きバッファ127のタイプを決定するために
タイプ特定子129を読みだし、そしてタイプに対して
必要とされるような特定の処理を行う。以下により詳細
に説明されるように、タイプサービスは、環境103で
供与されるサービスと、アプリケーションプログラマに
より定義され、またタイプサービス139に導入される
サービスとを有する。
【0055】装置101のオペレーション装置101の
オペレーションは、データ131が環境103(1)に
より必要とされるようなASCII(情報交換用米国標
準コード)文字列を含む葉ノードを持つB樹木データ構
造であり、タイプ付きバッファ127(2)内のデータ
が環境103(2)により必要とされるようなEBCD
IC(拡張二進化十進コード)文字列を含む葉ノードを
持つB樹木データ構造であることを意味する、タイプ付
きバッファ127(1)がタイプB木を有するような具
体例を使用して説明されるであろう。
【0056】データ移送機構137は、標準データ伝送
フォーマットを使用することがさらに仮定される。
【0057】アプリケーションプログラム105(1)
がタイプ付きバッファ127を割り当てるとき、タイプ
付きバッファ127のタイプが最初に働き始める。アプ
リケーションプログラム105(1)はB樹木タイプを
特定し、よってタイプ付きバッファ127に対してメモ
リを割り当てた後、割り当て/割り当て解除装置111
は、B樹木初期化ルーチンを実行するタイプサービス1
39(1)を呼び出す。
【0058】ルーチンは、データ131においてB樹木
に対して必要な指標構造を構築する。そして、環境10
3(2)におけるさらなる処理のためにB樹木をアプリ
ケーションプログラム105(2)に送信することが必
要な点にB樹木が達するまで、アプリケーションプログ
ラム105(2)はデータ131においてB樹木を作る
【0059】B樹木を送信するために、アプリケーショ
ンプログラム105(1)は、上述の送信/受信装置1
13(1)のルーチンの一つを利用する。このルーチン
は、B樹木タイプのタイプ付きバッファ127が送信さ
れ得る前にB樹木タイプに対して必要とされる処理を行
うためにタイプサービス139(1)を順次利用する。 この処理は以下を含む。
【0060】・B樹木をB樹木が再構成され得るフラッ
トデータ構造に変換する・最初の変換からの結果である
バッファの内容を伝送フォーマットにコード化する
【0
061】タイプサービス139(1)が、タイプと伝送
フォーマットに対して必要な処理を完成させるとき、送
信/受信装置113(1)は、アプリケーションプログ
ラム105(2)にタイプ付きバッファ127を送信す
る。
【0062】従って送信されたタイプ付きバッファ12
7は、データ移送機構137を経由して送信/受信装置
113(2)に移動するが、このタイプのタイプ付きバ
ッファ127が環境103(2)に受信された後、B樹
木タイプに対して必要とされる処理を行うためにタイプ
サービス139(2)を利用する。タイプサービス13
9(2)により行われた処理は、以下を含む。
【0063】・バッファの内容を伝送フォーマットから
フラットデータ構造へと復号化する・フラットデータ構
造からB樹木指標構造を再構成する・葉ノードにおける
ASCII文字列を相当するEBCDIC文字列に変換
するこのステップは、ASCIIとEBCDIC間の相
違照合順序を考慮するためにB樹木を再配列する。
【0064】タイプサービス139(2)が終了し、送
信/受信装置113(2)がアプリケーションプログラ
ム105(2)に利用可能なタイプ付きバッファ127
(2)を製作した後、アプリケーションプログラム10
5(2)は、タイプ付きバッファ127(2)を操作す
る。
【0065】操作に際して、アプリケーションプログラ
ム105(2)は、タイプ付きバッファ127のサイズ
を増加あるいは減少させなければならず、そうするため
に、アプリケーションプログラム105(2)は、割り
当て/割り当て解除装置111(2)における再割り当
てルーチンを使用してタイプ付きバッファ127を再割
り当てし、割り当て/割り当て解除装置111(1)に
対する上記のように、割り当て/割り当て解除装置11
1(2)における再割り当てルーチンは、再構成された
タイプ付きバッファ127とその内容とに対して必要と
される指標を構築するために、タイプサービス139(
2)におけるB樹木タイプに対する再初期化ルーチンを
順次利用する。
【0066】以後の処理の後、アプリケーションプログ
ラム105(2)は、アプリケーションプログラム10
5(1)にタイプ付きバッファを返すことが可能であり
、アプリケーションプログラム105(2)がそれを行
うとき、送信/受信装置113(2)と送信/受信装置
113(1)とは、ここで記述されたものと同じ様式で
必要な送信前処理と送信後処理とを行うために、タイプ
サービス139(2)とタイプサービス139(1)と
を利用する。
【0067】最終的に、もしアプリケーションプログラ
ム105(1)あるいはアプリケーションプログラム1
05(2)のいずれかが、タイプ付きバッファ127を
割り当て解除するならば、割り当て/割り当て解除装置
111は、B樹木タイプを有するタイプ付きバッファ1
27に対して必要とされる初期化解除を行うために、タ
イプサービス139を利用する。
【0068】好ましい実施例の記述 装置101の現在の好ましい実施例についての以下の記
述は、好ましい実施例が実現されるシステムの外観をま
ず与え、またシステムにおける好ましい実施例の実現に
ついての外観を与え、そして最終的に好ましい実施例の
ある側面についての詳細を供与するであろう。
【0069】好ましい実施例が実現されているシステム
の外観:図2及び図3 装置101の好ましい実施例は、1990年3月30日
に配布されたAT&TTUXEDOトランザクション処
理システムのリリース4.0に実現されている。TUX
EDOシステムは、AT&Tにより製作され、UNIX
オペレーティングシステム下の分散型環境において動作
する。ここでの議論に重要なTUXEDOシステムの唯
一の側面は、このシステムが、周知のクライアント−サ
ーバモデルと分散型システムにおいてクライアント−サ
ーバモデルの使用を可能にする配列とにより構成される
という事実である。
【0070】クライアント−サーバモデルは、図2に示
されている。モデルにおいて、システムはプロセスセッ
トとして設計されている。これらの互いの関係において
、システムを形成するプロセスは、クライアントあるい
はサーバである。
【0071】サーバは、他のプロセスにサービスを供与
するプロセスであり、クライアントは、サーバからのサ
ービスを要求するプロセスであるが、前述したことから
明らかなように、所定のプロセスは、排他的にクライア
ントである、排他的にサーバである、あるいはより多く
はいくつかのプロセスに関してのクライアントであり、
また他のプロセスに関してのサーバである、といったよ
うな可能性がある。サーバプロセスの単純な例は、プリ
ンタを制御するプロセスであり、クライアントプロセス
の単純な例は、サーバプロセスに文書を印刷するように
要求するプロセスである。
【0072】図2に示されたシステムは、多数のクライ
アントプロセス201(a..n)と単一のサーバプロ
セス209を有する。システム内の全てのプロセスは、
プロセスが互いにメッセージを送信することが可能にな
るプロセス間通信システム207によって通信する。
【0073】クライアント−サーバモデルにおいて、ク
ライアント201は、IPC207を経由してサーバ2
09により供与される機能を識別する要求メッセージを
送信することによりサーバ209についての要求203
を行い、要求203を受信すると、サーバ209は、要
求された機能を遂行し、IPC207を経由して回答メ
ッセージを送信することにより回答205を行う。
【0074】図2のクライアント−サーバモデルは、上
述の送信と「回答獲得」ルーチンを実現するために更に
利用されることが可能であり、このシステムにおいては
、送信ルーチンは要求203を行い、「回答獲得」ルー
チンは、回答205を受信する。上に示されたように、
送信は、同期でもあるいは非同期でも可能である。
【0075】図3は、図2のクライアント−サーバモデ
ルがTUXEDOシステムにおいてどのように実現され
ているかを示す。分散型システム301は、通信システ
ム309により連結された多数の構成要素システム30
2からなる。各構成要素システム302内のプロセス間
通信システム207は、各構成要素システム302内の
プロセスと通信可能であり、また通信システム309に
よって他の構成要素システム302内のプロセスとも通
信可能である。
【0076】各プロセスは、少なくとも一つのメッセー
ジ待ち行列307を持つが、プロセス間通信システム2
07がプロセスに対するメッセージを受信すると、プロ
セス間通信システム207は、メッセージをプロセスの
メッセージ待ち行列307内に配置する。もし受信する
プロセスが、メッセージの到着まで中止されているなら
ば、メッセージの到着によりプロセスは実行を再開する
。受信するプロセスは、メッセージ待ち行列307が何
かメッセージを保持しているかどうか決定するためにメ
ッセージ待ち行列307を周期的にポーリングし、上述
のような「回答獲得」を更に使用可能である。
【0077】TUXEDO分散型トランザクション処理
システムは、構成要素システム302が分散型システム
に付加されるあるいは取り去られる時、また一つの構成
要素システムから他の構成要素システムへとサーバ20
9とクライアント201を移動することにより、また既
存のサーバに機能を付加するあるいは取り去ることによ
り、また新しい機能を持つ新しいサーバを付加すること
によりシステムが再構成される時、動作を継続するよう
に設計されている。
【0078】システム内のプロセスが、どの機能が現在
利用可能であるか、その機能はシステム301内のどこ
に位置指定されているかを決定可能であることを確実に
するために、システム301は、ビルティンボードシス
テムを利用する。システムは、各構成要素システム内で
、ビルティンボード(BB)データ構造305とビルテ
ィンボードサーバ303とからなる。
【0079】ビルボード305は、ビルティンボート3
05が所属する構成要素システム内のプロセスに、サー
バ209が利用可能な全ての機能をリストする。ビルテ
ィンボード305の一部分は、大域的機能、すなわち、
あらゆる構成要素システム302でのクライアント20
1に利用可能な機能をリストする。ビルティンボード3
05は、ビルティンボードサーバ303により維持され
ている。
【0080】余り大域的機能を持たないプロセスが生成
され(あるいは破壊され)るとき、ビルティンボートサ
ーバ303は、ビルティンボードサーバ303が所属す
る構成要素システム302内でのビルティンボード30
5の大域的でない部分における機能のリストを更新する
が、大域的機能を実行するプロセスが生成されるあるい
は破壊されるとき、ビルティンボードサーバ303は、
それに応じてビルティンボード305の大域的部分を更
新し、更に他の構成要素システム302内のビルティン
ボードサーバ303へプロセス間通信を送信し、他の構
成要素システム302のビルティンボード305が同様
式で更新されるべきであることを表示する。
【0081】この手法により、各構成要素システム30
2内のビルティンボード305の大域的部分は、互いに
調和して保たれている。
【0082】TUXEDOシステムの更なる特性は、1
個以上のサーバ209のサービスへの組織化である。サ
ービスは、同じ機能セットを遂行するサーバ209のセ
ットである。
【0083】図3において、CS302(x)内のサー
バ209(i..k)のセットは、サービス313を形
成する。このサービスの一例は、データベースがあり得
るが、データベースは、各サーバがデータベースの一部
分から情報を読みだすあるいは情報を書き込む要求を扱
うように同じ様式にいくつかのサーバに分割される。他
の例は、いくつかのサーバが一連のプリンタの中での負
荷のバランスを取るために使用される印刷のようなサー
ビスがあり得る。
【0084】TUXEDOシステムにおいて、各サービ
ス313は、このサービス313に対する要求を受信す
るために単一メッセージ待ち行列307のみを有する。 サービスに属するどのサーバ209が所定の要求を扱う
かは、サービス313によって管理されている。
【0085】構成要素システム302における好ましい
実施例:図5 図5は、分散型システム301の構成要素302におけ
るルーチンを実行するプロセス501内で、どのように
装置101が実現されるかを示す。プロセス501の中
で、プロセス501により実行されるルーチンは円によ
り表わされ、ルーチンにより使用されるプロセス当りの
データは箱で表わされている。
【0086】図1の図5との間の関係を示すために、図
1の構成要素に相当する図5の構成要素は、図1で使用
された参照番号を有している。従って、プロセス501
により実行されるルーチンは、アプリケーションプログ
ラム105、割り当て/割り当て解除装置111、送信
/受信ルーチン113を含む。タイプサービスルーチン
139は、装置101のこの部分の内部構造の詳細を示
すように拡張されている。
【0087】タイプ付きバッファ127のタイプと、こ
のバッファが割り当てられる、再割り当てされる、割り
当て解除される、送信される、あるいは受信される時に
バッファが受信するタイプ依存の処理との間の連結は、
タイプスイッチと呼ばれる表(テーブル)により設定さ
れる。タイプスイッチ(TSW)503は、プロセス5
01内で実行するルーチンにより処理される各種のタイ
プ付きバッファ127に対してタイプスイッチエントリ
(TSWE)505を有する表である。
【0088】好ましい実施例においては、各TSWE5
05は、タイプの名前(TN)507である文字列とタ
イプサービスルーチンへのエントリポイントセット(T
SEPS)509とを含む。各エントリポイントは、バ
ッファのタイプ依存処理における動作の一つを遂行する
タイプサービスルーチン513を特定する。好ましい実
施例においては、タイプスイッチエントリ505に相当
するタイプのタイプ付きバッファ127に対して以下の
動作を行うルーチンに対するエントリポイントが可能で
ある。
【0089】・バッファ初期化 ・バッファ再初期化 ・バッファ初期化解除 ・送信前のバッファ処理 ・送信後の送信装置内でのバッファ処理・受信後の受信
装置内でのバッファ処理・受信後の送信と復号に優先す
るコード化・送信に際してのサービスのグループ内での
適切なサービスへの経路指定 経路指定はタイプ付きバッファ127の内容に基づいて
いる。
【0090】以下により詳細に説明されるように、割り
当て/割り当て解除装置111と送信/受信装置113
とにおけるルーチンは、タイプサービス139により遂
行されるタイプ依存オペレーションを特定するために、
システム定義による総称ルーチン名を使用する。各総称
ルーチン名は、タイプ依存オペレーションの一つを特定
する。例えば、総称ルーチン名「_tminitbuf
」は、バッファ初期化オペレーションを特定する。
【0091】タイプスイッチエントリ505に相当する
タイプに対して総称ルーチン名により特定されたオペレ
ーションを遂行するタイプサービスルーチン513への
エントリポイントが各総称ルーチンに対してTSEPS
509内にある。
【0092】割り当て/割り当て解除装置111あるい
は送信/受信装置113でのルーチンの一つが総称ルー
チン名を使用するとき、タイプサービス139は、タイ
プスイッチエントリ505をタイプ付きバッファ127
のタイプに対して位置指定するためにタイプ付きバッフ
ァに対するタイプ特定子129を使用し、総称ルーチン
名に相当するタイプに対するタイプサービスルーチン5
13を呼び出すためにTSEPS509を使用する。
【0093】当然、引き数は各総称ルーチン名に対して
特定され、割り当て/割り当て解除装置あるいは送信/
受信装置におけるルーチンは総称ルーチン名に対して特
定されたタイプの実際の引き数を使用しなければならず
、総称ルーチン名に相当するタイプサービスルーチンは
特定されたタイプを有する正式な引き数を使用しなけれ
ばならない。
【0094】コード化オペレーションと復号化オペレー
ションとは、第二のスイッチである転送構文スイッチ(
XSSW)515を有する。後により詳細に説明するだ
ろうが、コード化あるいは復号化を必要とするタイプ付
きバッファ127は、送信されるときタイプ付きバッフ
ァがコード化され、受信されるとき復号化される転送構
文を特定する転送構文特定子を更に有する。
【0095】プロセス501がコード化あるいは復号化
可能な各転送構文は、スイッチ515内に転送構文スイ
ッチエントリ(XSSWE)535を有する。転送構文
スイッチエントリ535は、二つの部分を有し、転送構
文に対する文字列による名前531とこの転送構文に対
するコード化と復号化を行うルーチン(図示せず)経の
一連のエントリポイント535である。
【0096】各タイプに対するコード化/復号化ルーチ
ンは、コード化ルーチンあるいは復号化ルーチンを呼び
出すために総称ルーチン名を使用し、タイプサービス1
39は、タイプスイッチ表に関して上述したように適切
なコード化あるいは復号化ルーチンを呼び出すために総
称ルーチン名と転送構文特定子とを使用する。
【0097】上に示したように、ビルティンボード30
5は、構成要素システム302内のプログラムを実行す
るプロセス501に、サーバ209がクライアントプロ
セス201に利用可能であるとき他のプロセス501が
どんな機能を動作するかを示すために構成要素システム
302内で使用される。ビルティンボード305は、構
成要素システム302内で他の機能も有するが、サーバ
により供与される機能に関連するこれらのみが本明細書
に重要である。
【0098】好ましい実施例において、ビルティンボー
ド305は、構成要素システム302の共用メモリ(S
M)517、すなわち構成要素システム302で動作す
る何らかのプロセス501によりアドレス指定可能な、
構成要素システム302のアドレス空間の一部にある。 結果的に、いずれのプロセス501もビルティンボード
305を読みだし可能である。
【0099】分散型システム301においてサーバ20
9がいずれのプロセスにも利用可能な各機能は、すべて
の構成要素システム302でのビルティンボード305
においてビルティンボード機能エントリ(BBFE)5
19を有することである。ビルティンボード機能エント
リ519は、以下の情報を含む。
【0100】・「FNAME」521、機能の名前の文
字列 ・「SERVADDR」523、これは、サーバ209
が機能動作を供与する構成組織システム302と要求を
取るメッセージ待ち行列307とを特定することにより
機能を供与するサービス313を特定する・「TYPE
 LIST」525、機能により扱われることが可能な
タイプ付きバッファ127の種類のリスト・「XFER
 S LIST」527、転送構文のリスト、機能は転
送構文からコード化し、転送構文へと復号化することが
できる
【0101】好ましい実施例においては、ビルティンボ
ード機能エントリ519は、ハッシュテーブルの要素と
して実現される。機能の名前をハッシュすることにより
、機能に対して、ビルティンボード機能エントリ519
への急速なアクセスが獲得される。
【0102】CS302における装置101のオペレー
ション 図5に示される装置101の実施例のオペレーションは
、上記図1に関して記述されるように一般化する。割り
当て/割り当て解除ルーチン111あるいは送信/受信
ルーチン113におけるルーチンにより呼び出されるタ
イプ依存オペレーションは、オペレーションに対する総
称ルーチン名により表わされ、ルーチン名を表わすコー
ドが実行されるとき、タイプサービス139は、特定さ
れたタイプに相当するタイプスイッチエントリ505を
位置指定するために動作されるタイプ付きバッファに対
してタイプ特定子129を使用し、総称ルーチン名に相
当するこのエントリ505におけるタイプサービスルー
チン513を呼び出す。
【0103】これに対しルーチンは、総称ルーチン名に
より特定された機能を、そのタイプにより必要とされる
ようなタイプ付きバッファ127に対して遂行する。コ
ード化/復号化の場合において、コード化あるいは復号
化TSR513は、タイプ付きバッファ127における
転送構文特定子と適切なコード化及び復号化ルーチンを
呼び出すための転送構文スイッチエントリ535とをさ
らに使用する。
【0104】ビルティンボード機能エントリ519は、
送信/受信装置113における送信ルーチンにより読み
だされる。好ましい実施例において、アプリケーション
プログラム105は、サーバプロセス209が、少なく
ともタイプ付きバッファへのポインタと大域的機能の名
前とともに送信ルーチンの一つを呼び出すことによりタ
イプ付きバッファ127に対する大域的機能を遂行する
ことを特定する。
【0105】送信ルーチンは、機能に対してビルティン
ボード機能エントリ519を位置指定するために機能名
を使用し、エントリにおける情報の写しを作る。そして
送信ルーチンは、バッファタイプ特定子129とタイプ
リスト525とから、特定された機能が特定子129に
より示されたタイプとともにタイプ付きバッファ127
を受け入れ可能であるかどうかを決定する。もし受け入
れ不可能ならば、送信ルーチンはエラーコードを返し、
タイプ付きバッファ127を送信しない。
【0106】タイプ付きバッファが適切なタイプを有す
るならば、送信ルーチンは、転送構文への変換が必要で
あるかどうかを決定するために転送構文リスト527を
使用し、もし必要ならば、どの転送構文が機能に対して
利用可能か否かを決定する。
【0107】送信ルーチンは、これらの転送構文を局所
的に使用可能な転送構文のリストと比較する。もし適合
がなければ、送信ルーチンは、エラーコードを返し、タ
イプ付きバッファ127を再度送信しない。もし適合が
あれば、送信ルーチンは、コード化/復号化ルーチンに
利用可能な大域変数での転送構文に対する特定子を配置
し、以前に記述したように送信前処理を行う。
【0108】タイプに対するコード化/復号化ルーチン
は、以前に記述したようにコード化に対するルーチンを
位置指定するために転送構文スイッチ515での転送構
文に対する特定子を使用する。全ての処理がいったん行
われると、送信ルーチンは、IPC207を経由して機
能のビルティンボード機能エントリ519のサービスア
ドレスフィールドにおいて特定されたサービスへとタイ
プ付きバッファ127を送信する。
【0109】好ましい実施例におけるタイプ付きバッフ
ァ127の詳細記述:図4好ましい実施例において、タ
イプ付きバッファ127は、ヘッダとデータ131を含
むデータバッファとして実現される。データバッファは
、ヘッダに連続している。
【0110】図4は、タイプ付きバッファ127のヘッ
ダ402を示す。ヘッダ402は、タイプ付きバッファ
127が生成されるとき、割り当てられ、以下で明確に
なるように、ヘッダ402のフィールドでの情報は、バ
ッファ127の割り当て、処理、送信あるいは受信にお
ける様々な点で充填される。ヘッダ402における情報
には5個のクラスがある。
【0111】・メタヘッダ401:ヘッダ402のこの
部分は、一つの構成要素システム302でのプロセス5
01から他の構成要素システム302でのプロセス50
1へのプロセス間通信を扱う分散型システム301の構
成要素により必要とされる情報を含む。 ・タイプ情報415:この部分は、タイプ付きバッファ
127のタイプを決定するために必要とされる情報を含
む。 ・プロセス間通信情報423:この部分は、IPC20
7を経由してタイプ付きバッファ127を送信するため
に必要とされる情報を含む。 ・機能情報431:この部分は、サーバ209がタイプ
付きバッファ127に対して遂行するべき機能を識別し
、サーバ209に対する情報を含む。 ・データ情報441:これは、タイプ付きバッファ12
7に所属するデータ131のサイズと位置を含む。
【0112】詳細なこれらの部分の内容に続いて、通信
情報401は、機能情報431における送信メッセージ
タイプ435の写しであるメッセージタイプ403を含
む。メッセージタイプ403は、「回答獲得」ルーチン
に利用可能なメッセージ待ち行列307を読みだすモー
ドの一つにおいてメッセージが読み出されるとき、メッ
セージの優先権を決定するためにIPC207により使
用される値である。
【0113】待ち行列アドレス405とマシン識別子4
07は互いに、メッセージを受信すべきメッセージ待ち
行列307の位置を特定する。マシン識別子407は、
メッセージ待ち行列307が位置指定される構成要素シ
ステム302に対する論理的な識別子であり、待ち行列
アドレス405は、その構成要素システム302におけ
るメッセージ待ち行列307のアドレスである。これら
の値は、IPC情報423の受信装置アドレス部分42
7からコピーされる。
【0114】全体サイズ409は、メッセージの全体サ
イズ、すなわち、バッファ保持データ131のサイズに
ヘッダ402のサイズを加算したサイズであり、コード
化フラグ411は、メッセージがコード化されたかどう
かを表示し、最後に転送構文フィールド413は、コー
ド化オペレーションで使用される転送構文を識別する。 後により詳細に説明されるように、識別は、ビルティン
ボード305の一部分である転送構文名の表内での指標
による。
【0115】タイプ情報415は、好ましい実施例にお
いて、バッファタイプ特定子129を実現する。タイプ
は二つの指標により特定されるが、大域タイプ指標41
7は、ビルティンボード305の大域部分でのタイプの
リストにおけるタイプの指標であり、局所タイプ指標4
19は、タイプスイッチ503でのタイプに対するエン
トリの指標である。サブタイプ421は、フィールド4
17と419とにおいて特定されたタイプのサブタイプ
の名前である文字列を有する。
【0116】タイプがサブタイプとともに定義されると
き、タイプのタイプ付きバッファ127に対するタイプ
依存オペレーションは、サブタイプによってさらに可変
である。サブタイプがタイプスイッチ503において実
現される方式は、以下に詳細に説明される。
【0117】IPC情報423においては情報が3項目
あり、タイプ付きバッファ127を送信するプロセス5
01を識別するためにIPC207が必要とする情報で
ある送信装置アドレス425、タイプ付きバッファ12
7を受信するプロセス501を識別するために必要とさ
れる情報である受信装置アドレス427、何か回答20
5を受信するべきプロセス501を表示する回答アドレ
ス429である。
【0118】これらの項目の各々は、構成要素システム
に対する論理識別子とプロセスに対するプロセスIDと
を有し、更に受信装置アドレスは、サーバ209が所属
するサーバ313に対する、またサーバ209に対する
、またサーバ209により利用されるメッセージ待ち行
列307に対する識別子を有する。受信装置アドレスと
回答アドレスとは、メッセージを送信するプロセス50
1と回答を受信するプロセス501とによりそれぞれ利
用されるメッセージ待ち行列307に対する識別子を有
する。
【0119】機能情報431は、タイプ付きバッファ1
27に対して遂行されるべき機能の文字列名433を含
み、フィールド435と437においては、機能435
に送信されるべきIPCメッセージと機能437から回
答を含むべきIPCメッセージとのタイプを含む。最後
に、データ情報441は、二つの長さの値とポインタと
を含む。
【0120】データ長433は、データバッファ内に現
在含まれるデータ131の長さを示し、最大データ長4
45は、データバッファの最大サイズを示す。データポ
インタ447は、データ131の位置を示す。好ましい
実施例において、IPC207は、データ131がヘッ
ダ402に連続であることを必要とし、他の実施例では
、データ131は、他の場所に位置指定される可能性が
ある。
【0121】上記情報の値は、以下のように設定される
、すなわち、割り当て/割り当て解除装置111がタイ
プ付きバッファを割り当てるとき、最大データ長445
、データポインタ447、局所タイプ指標419、サブ
タイプ421を設定する。アプリケーションプログラム
105は、タイプ付きバッファ127のタイプとサブタ
イプ、また割り当てルーチンへのデータ131の最大長
を特定する文字列を含む構文を供与する。
【0122】以下に記述されるように、割り当てルーチ
ンは、タイプとサブタイプとを局所タイプ指標に変換す
るためにタイプスイッチ503を使用する。もしタイプ
付きバッファ127が再割り当てされるならば、再割り
当てルーチンは、再割り当てに対して必要なように最大
データ長445とデータポインタ447とを再設定する
【0123】ヘッダ402における残りの情報は、送信
/受信装置113がタイプ付きバッファ127を送信す
るあるいは受信するときに、設定される。送信開始にお
いて、送信ルーチンは、機能の文字列名と構文としてタ
イプ付きバッファ127でのデータの位置と長さとを取
る。
【0124】送信ルーチンは、機能名に対して機能エン
トリ519があるかどうかを決定するためにビルティン
ボード305を検査し、もしあれば、機能名に対するビ
ルティンボード機能エントリ519から、どんなタイプ
を機能が扱うことが可能か、コード化オペレーションは
必要とされるかどうか、コード化オペレーションに関し
てどんな転送構文が利用可能かを決定する。
【0125】好ましい実施例においては、もし構成要素
システム302が異なるマシンタイプを有するならば、
コード化が必要とされる。各構成要素システム302は
、ビルティンボード305において構成要素システム3
02に連関した文字列マシンタイプ名を持つ。マシンタ
イプ名は、構成要素システム302に対する論理識別子
を使用して位置指定される。もし文字列タイプ名が識別
されないならば、コード化が必要とされる。
【0126】送信ルーチンは、タイプスイッチ503と
転送構文スイッチ515とから、バッファ127のタイ
プと転送構文とが機能に対して特定されたものと一致す
るかどうかを決定し、もしそれらが一致しないならば、
送信ルーチンは先へと進まない。
【0127】もしそれらが一致すれば、送信ルーチンは
、以下のようにヘッダ402内の情報で充填する、すな
わち、ビルティンボード機能エントリ519から大域タ
イプ指標417を、またタイプスイッチ503から局所
タイプ指標419とサブタイプ421とを設定し、更に
プロセス501の環境に関する送信ルーチン自身の情報
から送信装置アドレス425と回答アドレス429内を
充填し、ビルティンボード機能エントリ519から検索
された情報から受信装置アドレス427内を充填し、ま
たこの情報の一部をメタヘッダ401のフィールド待ち
行列アドレス433とマシンID407とにコピーする
【0128】加えて、送信ルーチンは、構文としてルー
チンに供与される機能名により要求機能フィールド43
3内を充填し、トランザクションに対して必要とされる
ような送信メッセージタイプ435と受信メッセージタ
イプ437を設定し、送信メッセージタイプ435の値
が、メッセージタイプ403にコピーされる。
【0129】そして送信ルーチンは、以前に記述したよ
うに転送構文スイッチ515を使用してコード化を行う
ためにタイプスイッチ503におけるタイプに対するコ
ード化/復号化ルーチンを利用し、内容がコード化され
ていることを表示するようにコード化フラグ411を設
定し、またビルティンボード305においてコード化に
利用される転送構文に対するエントリの指標値に転送構
文フィールド413を設定する。
【0130】最後のステップは、ヘッダ402とデータ
131を含むバッファとを有するメッセージの全体サイ
ズを表示するようにTSIZE409を設定することで
ある。
【0131】メッセージが、サーバプロセス209のメ
ッセージ待ち行列307において受信されたとき、サー
バプロセス209における送信/受信装置113は、何
らかの必要な復号化を遂行することにより開始する。
【0132】コースのコード化フラグ411は、復号化
が必要かどうかを表示し、もし必要ならば、送信/受信
装置は、転送構文スイッチ515における適切な指標を
決定するために転送構文413での値を使用し、またコ
ード化/復号化装置は、既に記述したように適切な復号
化ルーチンを選択するためにこの値を使用する。
【0133】送信/受信装置413はまた、局所タイプ
指標フィールド419での値を局所タイプ指標フィール
ド419でのタイプの指標に置き換える。フィールドは
、タイプ名に対するビルティンボードでのエントリで大
域タイプ指標417を指標として使用することにより設
定される。
【0134】ここで説明されたような変換による、大域
タイプ及び局所タイプそれぞれと転送構文指標との使用
は、文字列名の使用により可能なタイプ及び転送構文の
ハンドリング以上に速いハンドリングを可能にし、さら
にビルティンボード305での大域タイプリストの配列
に影響を与えることなしに、局所タイプと転送構文スイ
ッチとの再配列を可能にするが、これは逆もまた可能で
ある。
【0135】好ましい実施例におけるタイプスイッチ5
03の実現:図6と図8図5に示されるように、タイプ
スイッチ503は、タイプスイッチエントリ505のア
レイである。ヘッダ402内の局所タイプ指標419は
、ヘッダ402が所属するタイプ付きバッファ127の
タイプに対するタイプスイッチエントリ505での指標
である。
【0136】局所タイプ指標419に対するタイプスイ
ッチエントリ505は、図6に図示されている。第一の
フィールドは、タイプ名601とサブタイプ名603で
あり、ともにこれらは、図5のTNフィールド507の
好ましい実施例を構成する。タイプ名601とサブタイ
プ名603とは、両方ともタイプとサブタイプとをそれ
ぞれ識別する文字列であり、各単一のタイプ/サブタイ
プペアが、タイプスイッチ503におけるそれ自身のタ
イプスイッチエントリ505を有する。
【0137】好ましい実施例において、サブタイプ名6
03は、タイプスイッチエントリ505がタイプ名によ
り特定されたタイプのいずれかのサブタイプへ適用する
ことを表示する値に設定可能である。次のフィールドで
あるデフォルトバッファサイズ605は、フィールド6
01と603により特定されたタイプのタイプ付きバッ
ファ127におけるデータのデフォルトサイズを特定し
、このフィールドにより特定されたサイズは、割り当て
/割り当て解除装置111の割り当て及び再割り当てル
ーチンの長さ引き数によりオーバーライドされることが
可能である。
【0138】残る8個のフィールドは、タイプサービス
ルーチンエントリポイント509の好ましい実施例を構
成する。フィールドは、フィールド601と603にお
いて特定されたタイプ及びサブタイプに対するタイプサ
ービスルーチン513へのポインタを有する。好ましい
実施例において、各フィールドは、タイプ関連オペレー
ションを呼び出すために割り当て/割り当て解除装置1
11及び送信/受信装置113において使用される総称
ルーチン名の一つに相当する。総称名とフィールド名と
の間の関係は、以下である。
【0139】   総称名                    
        フィールド名  _tmimitbu
f              initbufptr
  607  _tmreinitbuf      
    reinitbufptr  609  _t
muninitbuf          unini
tbufptr  611  _tmpresend 
             presendptr  
613  _tmpostsend         
   postsendptr  615  _tmp
ostrecv            postcv
ptr  617  _tmencdec      
          enc_decpr  619 
 _tmroute                
  route_ptr  621
【0140】好まし
い実施例において、総称ルーチン名は、実際には、C言
語のマクロの名前である。割り当て/割り当て解除装置
111あるいは送信/受信装置113に対するソースコ
ードがコンパイルされる前に、C言語マクロプリプロセ
ッサは、タイプスイッチエントリ505における総称ル
ーチン名に相当するフィールドに対する基準に総称ルー
チン名を置き換える。
【0141】タイプスイッチエントリの指標は、処理さ
れるタイプ付きバッファ127からの局所タイプ指標4
19を実行時には含む変数である。総称ルーチン名「_
tminitbuf」に対して利用されるC言語マクロ
と、総称ルーチン名がタイプに対するタイプスイッチエ
ントリ505における相当するフィールドに対する基準
になることによるマクロ拡張とは、図8に示されている
【0142】マクロ及び拡張801における第一のマク
ロは、マクロ1 803であり、これは、割り当て/割
り当て解除111における割り当てルーチンに対するソ
ースコードで現れる時の総称ルーチン名「_tmini
tbuf(p、1)」である。実引き数「p」と「1」
とは、それぞれ割り当てられたバッファのポインタと割
り当てられたバッファの長さである。
【0143】「_tminitbuf(p、1)」は、
拡張1 805を持つようなソースコードにおいて定義
される、すなわち、「_tminitbuf(p、1)
」がソースコードのどこで現れようとも、マクロプリプ
ロセッサは、それを拡張1 805で置き換える。 拡張1 805は、名前「_tmsw」807により表
される構造のフィールド「initbuf」におけるプ
ロシージャポインタによって特定されるルーチンのC言
語呼出しである。
【0144】「_tmsw」807は、しかし、別のC
マクロであり、その拡張は、拡張2809として図8に
示されている。拡張2 809は、アレイ「tm_ty
pesw」の要素に対する基準であり、このアレイは、
タイプスイッチ503に対する好ましい実施例となるソ
ースコードにおいて使用される名前である。
【0145】要素は、変数「tm_swindex」の
値により選択され、この変数「tm_swindex」
は、現在動作されているタイプ付きバッファ127に対
する局所タイプ指標419を実行時に含む。
【0146】拡張2 809が拡張1 805内で遂行
されるとき、結果は呼出し811であり、この呼出し8
11は、「tm_swindex」の値により特定され
るタイプスイッチエントリ505におけるフィールド「
initbuf」の内容によって位置が示されるルーチ
ンを呼び出す、すなわち、タイプ付きバッファ127の
タイプに相当するタイプスイッチエントリ505におけ
る「initbufptr」607により位置が示され
るルーチンを呼び出す呼出しである。
【0147】タイプスイッチ503の好ましい実施例の
利点は、割り当て/割り当て解除装置111及び送信/
受信装置113がタイプスイッチ503あるいはタイプ
サービスルーチン513における変化から隔離されてい
ることである。この変化が起きるとき、必要とされる全
てのことは、変化したルーチン513あるいは変化した
タイプスイッチ503が再コンパイルされ、コンパイル
からの結果であるオブジェクトコードが割り当て/割り
当て解除装置111と送信/受信装置113とに再リン
クされることである。
【0148】他の実施例において、他の技術は、タイプ
特定オペレーションとともに、タイプ付きバッファ12
7に対する総称オペレーションと連関するために使用可
能である。例えば、総称ルーチン名は、バッファサービ
スレベル109でのルーチンからのポインタ及び長さの
引き数を受信し、ポインタにより示されるタイプ付きバ
ッファ127からのタイプ特定子129を獲得し、呼出
し811でのタイプ特定子129を使用するルーチンの
名前で有り得る。
【0149】TUXEDOシステムにおいて、バッファ
127に対する4個のシステム定義タイプがアプリケー
ションプログラムに供与され、加えて、アプリケーショ
ンプログラムは、タイプ付きバッファ127に対してそ
れ自身のタイプを定義可能である。
【0150】そうするために、総称ルーチン名に相当す
る新しいタイプに対するタイプサービスルーチン513
と、タイプスイッチエントリ505が新しいタイプに対
するタイプ及びサブタイプの名前と新しいタイプ及びサ
ブタイプに対するタイプサービスルーチン513へのポ
インタとともに追加されている新しいタイプスイッチ5
03とを供与する。タイプサービスルーチンは、TUX
EDOシステムの一部であるデフォルトルーチン、ある
いはユーザによって書き込まれた新しいタイプサービス
ルーチン513で有り得る。
【0151】新しいタイプに対して書き込まれたいずれ
のタイプサービスルーチン513も、タイプサービスル
ーチン513が相当する総称ルーチン名に対して特定さ
れたインタフェース及びセマンティクスに順応しなけれ
ばならない。好ましい実施例においては、総称ルーチン
名、そのインタフェース、またセマンティクスは、以下
になる。インタフェースは、Cプログラミング言語の規
則を利用する。
【0152】名前 タイプ付きバッファ127−タイプスイッチエントリ5
05において要素509をリンクするセマンティクス

0153】概要 int  /*新しいデータバッファを初期化*/_t
minitbuf(ptr、len)char  *p
tr; long  len;
【0154】int  /*再割り当てされたデータバ
ッファを再初期化*/ _tmreinitbuf(ptr、len)char
  *ptr; long  len;
【0155】int  /*フリーにされるべきデータ
バッファを初期化解除*/ _tmuninitbuf(ptr、len)char
  *ptr; long  len;
【0156】long  /*送信前のプロセスバッフ
ァ*/ _tmpresend(ptr、dlen、mdlen
) char  *ptr; long  dlen、mdlen;
【0157】void  /*送信後のプロセスバッフ
ァ*/ _tmpostsend(ptr、dlen、mdle
n) char  *ptr; long  dlen、mdlen;
【0158】long  /*受信後のプロセスバッフ
ァ*/ _tmpostrecv(ptr、dlen、mdle
n) char  *ptr; long  dlen、mdlen;
【0159】long  /*伝送フォーマットへの(
からの)コード化/復号化*/ _tmencdec(op、encobj、elen、
obj、olen) int  op; char  *encobj、*obj;long  
elen、olen;
【0160】int  /*データに基づいた経路指定
のためのサーバグループの決定*/_tmroute(
routing_name、function、dat
a、len、group) char  *routing_name、*func
tion、*data; long  len; char  *group;
【0161】記述 以下に特定されるルーチンの名前は、TUXEDOシス
テム内で使用される総称ルーチン名である。新しいルー
チンをバッファタイプスイッチに追加するいずれのアプ
リケーションも、アプリケーションによりあるいはライ
ブラリルーチンにより供与される実際のルーチンに相当
する名前を使用しなければならない。
【0162】TUXEDOシステムは、引き数の正しい
番号及びタイプを取るバッファタイプスイッチでの各エ
ントリに対するデフォルトルーチンを供与し、また正し
いタイプとデフォルト値とを返す。アプリケーションは
、デフォルト処理が十分であるとき、これらのルーチン
を使用しなければならない。これらの定義はこの章の最
後にある。
【0163】ルーチン詳述 _tminitbuf() 「_tminitbuf()」は、バッファが割り当て
られた後、割り当て/割り当て解除装置111の割り当
てルーチン「tpalloc()」内で呼び出される。 「_tminitbuf()」は、新しいバッファへの
ポインタであるptrをそのバッファサイズに応じて通
過させ、その結果、バッファは適切に初期化可能である
【0164】lenは、「tpalloc()」内を通
過される長さ以上の長さであり、このタイプのスイッチ
エントリにおけるdfltsizeで特定されたデフォ
ルトである。「tpalloc()」と「tpreal
loc()」とのセマンティクスにより、ptrは絶対
に「NULL」ではありえないことに注意すべきである
。成功したリターンには、このデータポインタが、「t
palloc()」の呼出し側に返される。
【0165】もし単一スイッチエントリが多数のサブタ
イプを操作するために使用されるならば、そこで「_t
minitbuf()」の書き込み側は、サブタイプを
決定するために割り当て/割り当て解除装置111から
タイプ決定ルーチンである「tptypes()」を使
用可能である。
【0166】もしバッファ初期化が遂行される必要がな
いならば、そこでTUXEDOシステムの「_dflt
initbuf()」が使用されるべきである。
【0167】成功に際しては、「_tminitbuf
()」は1を返す。もしルーチンが失敗するならば、−
1を返し、それによりTUXEDOシステムエラー変数
である「tperrno()」をTPESYSTEMに
より表されるエラーコードに設定する。
【0168】_tmreinitbuf()「_tmr
einitbuf()」は、再割り当てバッファを再初
期化するために使用されることを除けば、「_tmin
itbuf()」とほぼ同一に挙動する。 ルーチンは、バッファが再割り当てされた後、再割り当
てルーチンである「tprealloc()」内で呼び
出される。
【0169】もしバッファ再初期化が遂行される必要が
ないならば、そこでTUXEDOシステムの「_dfl
tinitbuf()」が使用されるべきである。
【0170】成功に際しては、「_tmreinitb
uf()」は1を返す。もしルーチンが失敗するならば
、−1を返し、それにより「_tprealloc()
」はまた「tperrno」をTPESYSTEMへの
不良設定を返す。
【0171】_tmuninitbuf()「_tmu
ninitbuf()」は、データバッファがフリーに
なる前に、タイプ付きバッファ再割り当てルーチンであ
る「tpfree()」によって呼び出される。「_t
muninitbuf()」は、データバッファのアプ
リケーション部分のポインタにそのサイズに応じて通過
され、またこのバッファに連関する何らかの構造あるい
は状態情報を一掃するために使用可能である。
【0172】ptrは、「tpfree()」のセマン
ティクスにより決してNULLではない。「_tmun
initbuf()」は、バッファ自身をフリーにはし
ないことに注意すべきである。
【0173】バッファをフリーにする前に、もし遂行さ
れるべき処理が全く必要でないならば、そこでTUXE
DOシステムの「_dfltinitbuf()」が使
用されるべきである。
【0174】成功に際しては、「_tmuninitb
uf()」は、1を返す。もしルーチンが失敗するなら
ば、−1を返し、「tpfree()」に「userl
og()」メッセージを印刷させる。
【0175】_tmpresend()「_tmpre
send()」は、バッファが「tpcall()」、
「tpacall()」、「tpreturn()」、
「tpforward()」内に送信されるとき、呼び
出される。
【0176】これらのルーチンは、タイプ付きバッファ
127を他のプロセス501に送信する送信/受信装置
113におけるルーチンである。「_tmpresen
d()」はまた、「_tmroute()」の後、「_
tmemcdec()」の前に呼び出される。このルー
チンは、バッファが送信される前に、バッファに対して
遂行されるいずれの前処理をも可能にする。
【0177】「_tmpresend」の第一の引き数
であるptrは、送信呼出しへと通過されるアプリケー
ションデータバッファである。第二の引き数であるdl
enは、送信呼出しへと通過される時のデータの長さで
ある。第三の引き数であるmdlenは、データが属す
るバッファの実際のサイズである。このルーチンは、p
trがNULLでないときのみ、呼び出される。
【0178】このルーチンに対する一つの重要な要求事
項は、ルーチンが返すとき、ptrにより位置指定され
るデータは、「現状のまま」送信可能なことを、このル
ーチンが確実にすることである。すなわち、「_tme
ncdec()」は、バッファが異なるマシンに送信さ
れる場合にのみ呼び出されるので、「_tmprese
nd()」は、ptrのバッファ内の要素が、バッファ
に連続しないデータへのポインタではないというリター
ンに対して確実にしなければならない。
【0179】もし前処理がデータとデータ量に対して遂
行される必要がないならば、特定された呼出し側は、送
信されるべき量と同じであり、そして、TUXEDOシ
ステムの「_dfltblen()」が使用されるべき
である。このルーチンは、dlenを返し、バッファに
対しては何もしない。
【0180】成功に際しては、「_tmpresend
()」は、送信されるべきデータの量を返す。もしルー
チンが失敗するならば、−1を返し、それにより「_t
mpresend」の呼出し側はまた、「tperrn
o」をTPESYSTEMへの不良設定を返す。
【0181】_tmpostsend()「_tmpo
stsend()」は、バッファが「tpcall()
」あるいは「tpacall()」に送信された後、呼
び出される。ルーチンが送信された後かつルーチンが返
す前に、このルーチンは、バッファに対して遂行される
いずれの前処理をも可能にする。送信呼出しへと通過さ
れるバッファはリターンに対して異なることはないので
、「_tmpostsend()」は、「_tmpre
send()」により変えられたバッファを修理するた
めに呼び出される。
【0182】このルーチンの最初の引き数であるptr
は、「_tmpresend()」の結果として送信さ
れたデータに対して位置指定する。「_tmprese
nd()」から返されたデータの長さは、このルーチン
の第二の引き数dlenとして通過される。第三の引き
数であるmdlenは、データが属するバッファの実際
のサイズである。このルーチンは、ptrがNULLで
はないときのみ呼び出される。
【0183】もし後処理が遂行される必要がないならば
、そこでTUXEDOシステムの「_dfltpost
send()」が使用されるべきである。
【0184】_tmpostrev()_tmpost
recv()は、「回答獲得」ルーチンである「tpg
etrply()」、「tpcall()」において、
あるいはTUXEDOシステムのサーバ抽出において、
バッファが受信され、できるだけ復号化された後でかつ
またバッファがアプリケーションに返される前に呼び出
される。
【0185】「_tmpostrecv()」は、バッ
ファが受信された後でかつバッファがアプリケーション
に与えられる前に、バッファに対して遂行されるべきい
ずれの後処理をも可能にする。
【0186】これの第一の引き数であるptrは、受信
されたバッファのデータ部分を位置指定する。その第二
の引き数であるdlenは、データのサイズを特定する
。第三の引き数であるmdlenは、データが属するバ
ッファの実際のサイズを特定する。このルーチンは、p
trがNULLではないときのみ呼び出される。
【0187】「_tmpostrecv()」は、デー
タに対するいずれの後処理をも遂行し、データの(可能
ならば新しい)長さを返すべきである。返された長さは
、使用される呼出しに依存した様式でアプリケーション
まで通過される。(例えば、「tpcall()」は、
呼出し側がリターンに対して検査するためにその引き数
の一つにデータ長を設定する)
【0188】もし後処理がデータに対して遂行される必
要がなく、また受信されたデータの量がアプリケーショ
ンに返されるべき量と同じであるならば、そこでTUX
EDOシステムの「_dfltblen()」が使用さ
れるべきである。このルーチンは、dlenを返し、バ
ッファには何もしない。
【0189】成功に際しては、「_tmpostrec
v()」は、バッファが相当する受信呼出しから通過さ
れるときアプリケーションが知らせられるべきであるデ
ータのサイズを返す。もしルーチンが失敗するならば、
−1を返し、「_tmpostrecv()」の呼出し
側もまた「tperrno」をTPESYSTEMへの
不良設定を返す。
【0190】_tmencdec() 「_tmencdec()」は、ネットワークを通じて
、異なるデータ表現を有するマシンへ/から送信/受信
されたバッファをコード化/復号化するために使用され
る。標準XDR転送構文は、TUXEDOシステムにお
いて、仕様が勧められているが、このルーチンのセマン
ティクスに従ういずれのコード化/復号化も使用可能で
ある。
【0191】このルーチンは、バッファが「等しくない
」マシンに送信されるときのみ呼出し側のバッファをコ
ード化するために、「tpcall()」、「tpac
all()」、「tpreturn()」また「tpf
orward()」により呼び出される。
【0192】これらの呼出しにおいて、「_tmenc
ded()」は、「_tmroute()」と「_tm
presend()」との両者それぞれの後に呼び出さ
れる。「_tmpresend()」の記述から、「_
tmencdec()」へと通過されるバッファは、バ
ッファに連続しないデータへのポインタを含まないこと
が思い起こされるであろう。
【0193】受信終端である「tpgetrply()
」では、tpcall()の受信停止とサーバ抽出とは
すべて、「等しくない」マシンからバッファを受信後か
つまた「_tmpostrecv()」を呼び出す前に
、バッファを復号化するために「_tmencdec(
)」を呼び出す。
【0194】「_tmencdec()」の第一の引き
数であるopは、ルーチンがデータをコード化するか復
号化するかどうかを特定する。opは、TMENCOD
EあるいはTMDECODEの内の一つで有り得る。
【0195】opがTMENCODEである時、enc
objは、TUXEDOシステムにより割り当てられた
バッファを位置指定するが、ここはデータのコード化さ
れたバージョンがコピーされるところである。コード化
されていないデータは、objに属する。
【0196】すなわち、opがTMENCODEである
時、「_tmencdec()」は、objをそのコー
ド化フォーマットに変形し、encobjにその結果を
おく。encobjにより位置指定されるバッファのサ
イズは、elenにより特定され、長さがolenであ
るobjにより位置指定されるバッファのサイズの少な
くとも4倍である。olenは、「_tmpresen
d()」により返される長さである。
【0197】「_tmencdec()」は、コード化
データのサイズ(すなわち、実際に送信されるデータの
量)をencobjに返す。「_tmencdec()
」は、ルーチン内に通過されるバッファのいずれをもフ
リーにしない。
【0198】opがTMDECODEである時、enc
objは、TUXEDOシステムにより割り当てられた
バッファへと位置指定し、ここに通信終点が読み取られ
、データのコード化バージョンが属する。バッファの長
さは、elenである。objは、encobjにより
位置指定され、復号化データがコピーされるバッファと
少なくとも同じサイズであるバッファを位置指定する。 objの長さは、olenである。
【0199】objが最終的にアプリケーションに返さ
れるバッファであるとき、このバッファは、復号化デー
タを保持するのに十分大きいことを確実にするために「
_tmencdec()」を呼び出す前に、TUXED
Oシステムにより増大されることが可能である。
【0200】「_tmencdec()」は、objに
復号化されたデータのサイズを返す。「_tmencd
ec()」が返した後、「_tmpostrecv」は
、その第一の引き数として通過されるobjと、またそ
の第二の引き数として「_tmencdec()」のリ
ターン値と、またその第三の引き数としてolenとと
もに呼び出される。「_tmencdec()」は、ル
ーチンに通過されるバッファのいずれをもフリーにしな
い。
【0201】「_tmencdec()」は、NULL
でないデータがコード化されるあるいは復号化される必
要があるときのみ、呼び出される。
【0202】もし異なるマシンがネットワーク内に存在
する時でさえもコード化あるいは復号化がデータに対し
て遂行される必要がないならば、そこでTUXEDOシ
ステムの「_dfltencdec()」が使用される
べきである。このルーチンは、olen(opはTME
NCODEに等しい)あるいはelen(opはTMD
ECODEに等しい)のいずれかを返す。
【0203】成功に際しては、「_tmencdec(
)」は、上で記述されるように負ではないバッファ長を
返す。もしルーチンが失敗するなら、−1を返し、「_
tmencdec()」の呼出し側はまた、「tper
rno」をTPESYSTEMへの不良設定を返す。
【0204】_tmroute() メッセージ経路指定に対するデフォルトは、望ましいサ
ービスを提供する何らかの利用可能なサーバグループへ
のメッセージを経路指定することである。さらに、所定
のTUXEDOシステムが構成されるとき、構成ファイ
ルであるUBBCONFIGは、サーバ209により提
供される各機能に対するエントリを有し、生成される。
【0205】UBBCONFIGファイルでの各機能エ
ントリは、ROUTINGパラメータを使用する機能に
対して同じ経路指定規準の論理名を特定可能である。多
数の機能が同じ経路指定規準を共用可能である。機能が
特定された経路指定規準名を有する場合において、「_
tmroute()」は、メッセージがメッセージ内の
データに基づいて送信されるサーバグループを決定する
ために使用される。サーバグループへのデータのこのマ
ッピングは、「データ依存経路指定」と呼ばれている。
【0206】「_tmroute()」は、バッファが
「tpcall()」、「tpacall()」、「t
pforward()」に送信される前に(また「tm
presend()」と「tmencdec()」とが
呼び出される前に)呼び出される。
【0207】routing_nameは、(UBBC
ONFIGファイルで特定されるように)経路指定規準
の論理名であり、データ依存経路指定を必要とする全て
の機能に連関する。functionは、要求がなされ
る機能の名前である。パラメータdataは、要求内に
伝送されるデータに対して位置指定し、lenは、その
長さである。
【0208】今までのページに記述した他のルーチンと
違って、「_tmroute()」は、ptrがNUL
Lである時でさえ呼び出される。groupパラメータ
は、要求が経路指定されるグループの名前を返すために
使用される。このグループ名は、UBBCONFIGフ
ァイルにおいてリストされるグループ(とグループが選
択されるときに能動状態にあるグループ)名の一つに適
合しなければならない。
【0209】もし要求が、特定の機能を供与する何らか
の利用可能なサーバへと進むならば、groupは、N
ULL列に設定されるべきであり、ルーチンは1を返す
べきである。
【0210】もしデータ依存経路指定がバッファタイプ
に対して必要とされなければ、そこでTUXEDOシス
テムの「_dfltroute()」が使用されるべき
である。このルーチンは、NULL列にgroupを設
定し、1を返す。
【0211】成功に際しては、「_tmroute()
」は、1を返す。もしルーチンが失敗するならば、−1
を返し、「_tmroute()」の呼出し側はまた、
「tperrno」をTPESYSTEMへと不良設定
を返す。
【0212】もしgroupが、不当なサーバグループ
の名前に設定されているならば、「_tmroute(
)」を呼び出すルーチンは、エラーを返し、「tper
rno」をTPESYSTEMへと設定する。
【0213】転送構文スイッチエントリ535は、一般
にタイプスイッチエントリ505の実現と平行するので
、転送構文スイッチエントリ535の実現は詳細には議
論しない。転送構文スイッチエントリにおいて、エント
リは、転送構文の文字列名を含み、転送構文名413と
転送構文に対する転送構文スイッチエントリ535の転
送構文スイッチ515における指標との間の変換を可能
にする。
【0214】コード化/復号化タイプサービスルーチン
513は、コード化オペレーション及び復号化オペレー
ションのために総称名を利用する。これらの名前は、実
際には「C」のマクロの名前であり、タイプスイッチ5
03に対して記述されたものと同じ機構が、様々な転送
構文に対するコード化及び復号化オペレーションを実際
に行うルーチンに対して総称名を関連付けるために使用
される。
【0215】タイプスイッチに関しては、従って実現に
より、様々な転送構文に対する必要なコード化及び復号
化の実際的な詳細からコード化/復号化タイプサービス
ルーチン513が隔離されている。
【0216】ビルティンボード機能エントリの詳細記述
:図7 図7は、ビルティンボード機能エントリ519のフィー
ルドを詳細に示し、図5に示されているエントリ519
に相当するエントリ519の部分は、その図からの相当
する参照番号により識別されている。
【0217】以前に示したように、ビルティンボード3
05は、大域情報を記述する情報を含む複雑なデータ構
造、これらの情報を供与するサーバ209、サーバが実
行する構成要素システム302、及びクライアント20
1とサーバ209とが互いに通信することによるメッセ
ージ待ち行列である。
【0218】ビルティンボード305は、UBBCON
FIGファイルの内容から及びサーバ209により供与
される情報から作られる。機能エントリ519、ハッシ
ュリンク701、サーバリンク703、及びメッセージ
待ちリンク行列705の第一の3個の構成要素は、ビル
ティンボード305内で、他の大域情報、サーバ、及び
メッセージ待ち行列に関する情報への急速な導出を可能
にするデータ構造である。
【0219】ハッシュリンク701は、所定の機能エン
トリ519が所属するハッシュチェイン内での他の機能
エントリ519へのリンクである。以前に言及したよう
に、ハッシュチェインは、機能名による機能エントリ5
19の急速なアクセスを可能にする。
【0220】サーバリンク703は、所定のサーバに対
して実行する機能のための機能エントリ519とサーバ
を記述するビルティンボード内でのエントリへのバック
リンクとの間のリンクである。
【0221】メッセージ待ち行列リンクは、所定の機能
エントリ519が所属する機能に対しての要求を受信す
るメッセージ待ち行列を記述するビルティンボード30
5内でのエントリへのリンクである。
【0222】次の3個のフィールドは、サーバ内での機
能の配置を可能にする。機能ルーチン名707は、機能
を遂行するサーバ内でのルーチンの名前である。機能名
709は、この名前により機能がクライアント201に
知られる名前であり、タイプ付きバッファ127のヘッ
ダの要求機能フィールド内で使用されなければならない
機能名709である。機能アドレス711は、機能を遂
行するルーチンへのポインタである。
【0223】次のフィールド、タイプアレイ713とビ
ルティンボードタイプリスト727とはともにタイプリ
スト525を実現する。好ましい実施例において、各ビ
ルティンボード305は、ビルティンボード305上に
リストされた1個以上の機能によって受け入れられるタ
イプ付きバッファの全タイプをリストする単一のビルテ
ィンボードタイプリスト727を有する。
【0224】リスト727は、単に文字列タイプ名のア
レイであり、所定のタイプ名のアレイにおける指標はそ
のタイプに対する大域タイプ指標731であるが、結果
的に、リスト727は大域タイプ指標731からタイプ
名への変換を可能にし、その逆もまた可能である。所定
の機能がどのタイプを受け入れるかどうかは、ビルティ
ンボードタイプリスト727内でリストされる各タイプ
に相当する1ビットを持つビット列であるタイプアレイ
713により示される。
【0225】もし所定のタイプに相当するビットが設定
されるならば、そこでビルティンボード機能エントリ5
19により表される機能は、このタイプを受け入れる。
【0226】転送構文リスト527は、同様に実現され
る。ビルティンボード転送構文リスト733は、TUX
EDOシステムに所属する構成要素システム302内の
全マシンにより扱われる転送構文の文字列名のアレイで
ある。リスト733における所定の転送構文の名前の指
標は、その転送構文に対する大域転送リスト指標737
である。転送構文アレイ715は、その機能に対するサ
ーバ209が動作するマシンにより扱われる各転送構文
に対するビットセットを有する他のビット列である。
【0227】エントリ519の残るフィールドは、サー
バアドレス523を実現する。フィールドの内容は、以
下である。
【0228】・マシン認識番号(id)717:サーバ
が動作する構成要素システム302に対する論理認識子
・グループ認識番号(id)719:機能のサーバ20
9が所属するサーバ313に対する論理認識子・サーバ
認識盤項(id)721:機能に対するサーバ209に
関する論理認識子 ・プロセス認識番号(id)723:サーバの現在のプ
ロセスに対するシステムプロセス認識子・要求待ち行列
アドレス725:サーバ209が要求を取る要求待ち行
列のアドレス
【0229】これらのフィールドについての記述とTU
XEDOシステムにおけるプロセス間通信についての議
論とから理解されるように、フィールド717−721
における情報は、送信/受信装置113が、ビルティン
ボード305内に機能エントリ519を有する何らかの
機能へとタイプ付きバッファを送信することを十分に可
能にする。
【0230】以前に言及したように、各構成要素システ
ム302におけるビルティンボード305は、その構成
要素システムのにおけるビルティンボードサーバ303
により維持されている。各ビルティンボードサーバ30
3は、全ての他のビルティンボードサーバに対するメッ
セージ待ち行列307のリストを有する。
【0231】他のメッセージを各々送信することにより
、ビルティンボードサーバ303は、各構成要素システ
ム302においてビルティンボード305を調和させて
保つ。特に、サーバ209に対するプロセス501が構
成要素システムにおいて動作し始めるとき、プロセス5
01は、タイプ付きバッファのタイプのリストとサーバ
209により扱われる転送構文のリストと共に、そのサ
ーバ209がそのクライアントに利用可能な各機能に対
するフィールド707−725の内容とを有するメッセ
ージを、その構成要素システム内でビルティンボードサ
ーバ303に送信する。
【0232】タイプと転送構文とのリストのソースは、
むろんタイプスイッチ503と転送構文スイッチ515
である。サーバ209のプロセスとビルティンボードサ
ーバ303自身の構成要素システム302に関する情報
とにより供与される情報を使用して、ビルティンボード
サーバ303は、ビルティンボードタイプリスト727
とビルティンボード転送構文リスト733それぞれへの
リストにいずれかのタイプあるいは転送構文をまず付け
加え、各機能に対するビルティンボード機能エントリ5
19を構築し、タイプアレイ713と転送構文アレイ7
15とが機能により扱われるタイプと転送構文を示すた
めに機能するようなビットアレイであるように設定する
【0233】ビルティンボードサーバ303が終了する
と、ビルティンボードサーバ303は、新しいエントリ
及び新しいビルティンボードタイプリストテーブル72
7と新しいビルティンボード転送構文リスト733との
写しを他のビルティンボードサーバ303の各々に送信
する。これらのサーバは、そこでサーバのビルティンボ
ード305を更新するために写しを使用する。
【0234】結論 上述の「実施例」は、本明細書の題材である装置及び方
法がどのように製作され得るか及びどのように使用され
得るかを通常の当業者に開示しており、またさらに本発
明を製作し、使用する発明者に現在までに既知の最良の
方式を開示している。
【0235】「実施例」は、TUXEDOトランザクシ
ョン処理システムにおける本発明の実施例を開示してい
る。TUXEDOシステムは、分散され、また異種の構
成要素を有することが可能である。本発明は、しかし、
何らかの階層型に組織化されたデータ処理システムが分
散されているかどうかにかかわらず、またこのシステム
が異種の構成要素を有するかどうかにかかわらず、この
ようなシステムにおいて実施例とされることが可能であ
る。
【0236】TUXEDO分散トランザクション処理シ
ステムは、さらに、相互関係がクライアント−サーバモ
デルに基づく多数の協力するシステムからなり、改めて
、本発明は、単一のプロセスのみを有するシステムある
いは協力するプロセスが他のモデルによる相互関係を持
つシステムにおいて実施例とされることが可能である。
【0237】「実施例」での実施例において、タイプ特
定オペレーションが、システムバッファ割り当て、再割
り当て、割り当て解除オペレーションの一部として、及
びTUXEDOシステムの構成要素システム間でバッフ
ァを送信するシステムオペレーションの一部として遂行
されているが、他の実施例においては、タイプ特定オペ
レーションは、他のシステムオペレーションの一部とし
て遂行されることが可能であり、またタイプ特定オペレ
ーション自身はここで開示されたシステムオペレーショ
ンと異なり得る。
【0238】「実施例」は、さらに、タイプがTUXE
DOシステムのタイプ付きバッファにおけるデータとど
のように連関するか、タイプ特定オペレーションを遂行
するルーチンがタイプスイッチにおけるタイプとどのよ
うに連関するか、及びサーバにより供与される機能がど
のタイプと転送構文とを受け入れるかを示すためにどの
ようにビルティンボードを利用するかを開示している。
【0239】他の実施例においては、タイプ付きバッフ
ァ、タイプスイッチ、及びビルティンボードを使用して
遂行される機能は、他のデータ構造を使用して遂行され
る。
【0240】以上は、「実施例」が制限を付けるという
よりもむしろ例証かつ例示としてあらゆる点で考えられ
るべきであり、また本発明の範囲が、等価を信条とする
観点から解釈されるような請求項によってのみ定義され
る場合である。
【0241】以上の説明は、本発明の一実施例に関する
もので、この技術分野の当業者であれば、本発明の種々
の変形例が考え得るが、それらはいずれも本発明の技術
的範囲に包含される。尚、特許請求の範囲に記載した参
照番号は発明の容易なる理解のためで、その技術的範囲
を制限するよう解釈されるべきではない。
【発明の効果】以上述べたごとく、本発明によれば、シ
ステムオペレーションの詳細を隠すこととアプリケーシ
ョンプログラムのデータにより影響されるシステムオペ
レーションのアプリケーションプログラム部分による定
義との両方を可能にする方法で、なおかつさらに、アプ
リケーションプログラマを単一の伝送構文に限定せず、
また組込みのフレームワークを使用する変換を記述する
ためにアプリケーションプログラマを必要とはしない方
法、及びこのような方法に基づく装置、が供与され得る
【図面の簡単な説明】
【図1】異種の環境においてアプリケーションプログラ
ム間でデータを通過させるために使用される本発明の外
観である。
【図2】クライアントとサーバとのブロックダイヤグラ
ムである。
【図3】本発明が実現される分散システムのブロックダ
イヤグラムである。
【図4】本発明の環境で利用されるタイプ付きバッファ
のヘッダのダイヤグラムである。
【図5】分散システムの処理において実現される本発明
のダイヤグラムである。
【図6】好ましい実施例におけるタイプスイッチでのエ
ントリのダイヤグラムである。
【図7】好ましい実施例における機能に対するビルティ
ンボードエントリのダイヤグラムである。
【図8】総称オペレーション名であるマクロ名が好まし
い実施例におけるタイプスイッチルーチンの呼出しを形
成するために拡張される様式を示す。
【符号の説明】
図中の参照番号は二つの部分を有するが、すなわち、最
下位2桁は一つの図内の参照番号を示し、残る1桁は参
照番号により特定される項目が最初に図示される図面を
示す。従って、タイプスイッチ503は、図5に項目5
03として最初に図示される。 101  本発明の装置 103  環境 105  アプリケーションプログラム(AP)107
  アプリケーションプログラムレベル(APL)10
8  システムレベル(SYSL)109  バッファ
サービスレベル(BSL)111  割り当て/割り当
て解除装置(A/D)113  送信/受信装置(S/
R) 115  矢印 116  矢印 117  矢印(ポインタ) 119  矢印 121  矢印 122  矢印 123  矢印 125  矢印 127  タイプ付きバッファ 129  タイプ特定子(TS) 130  矢印 131  データ 132  矢印 133  矢印 135  タイプサービスレベル(TSL)137  
矢印(データ移送機構) 139  タイプサービス(TS) 201  クライアントプロセス 203  要求(REQ) 205  回答(REP) 207  プロセス間通信(IPC)システム209 
 サーバプロセス 301  分散型システム(DS) 302  構成要素システム(CS) 303  ビルティンボードサーバ(BBS)305 
 ビルティンボード(BB) 307  メッセージ待ち行列(MQ)309  通信
システム(COMM) 313  サービス(SVC) 401  メタヘッダ(METAHEADER)402
  ヘッダ 403  メッセージタイプ(MT) 405  待ち行列アドレス(QADDER)407 
 マシン識別子(MCHID)409  全体サイズ(
TSIZE) 411  コード化フラグ(ENCF)413  転送
構文(XERSYNTAX)415  タイプ情報(T
YPE INFO)417  大域タイプ指標(GTI
) 419  局所タイプ指標(LTI) 421  サブタイプ(SUBTYPE)423  プ
ロセス間通信情報(IPC INFO)425  送信
装置アドレス(SENDADDR)427  受信装置
アドレス(RECVADDR)429  回答アドレス
(REPLY)431  機能情報(FUNCTION
 INFO)433  機能名(FUNCNAME)4
35  送信メッセージタイプ(SENDMT)437
  受信メッセージタイプ(RECVMT)441  
データ情報(DATA INFO)443  データ長
(DATALEN)445  最大データ長(MAXD
ATALEN)447  データポインタ(DATAP
TR)501  プロセス 503  タイプスイッチ(TSW) 505  タイプスイッチエントリ(TSWE)507
  タイプ名(TN) 509  タイプサービスルーチンエントリポイント(
TSEPS) 511  (TSRL) 513  タイプサービスルーチン(TSR)515 
 転送構文スイッチ(XSSW)517  共用メモリ
(SM) 519  ビルティンボード機能エントリ(BBFE)
521  「FNAME」 523  「SERV ADDR」 525  「TYPE LIST」 527  「XFER S LIST」529 531  転送構文名(XSN) 533  転送構文エントリポイント(XSEPS)5
35  転送構文スイッチエントリ(XSSWE)60
1  タイプ名(TYPE NAME)603  サブ
タイプ名(SUBTYPE NAME)605  デフ
ォルトバッファサイズ(DEF BUF SIZE) 607  初期化バッファポインタ(INIT BUF
 PTR) 609  再初期化バッファポインタ(REINIT 
BUF PTR) 611  初期化解除バッファポインタ(UNINIT
 BUF PTR)

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】  アプリケーション定義タイプとデータ
    を連関させるための第一のシステム定義装置(111)
    と;アプリケーション定義オペレーションとデータを連
    関させるための第二のシステム定義装置(139)と;
    システム定義オペレーションにより利用され、アプリケ
    ーション定義オペレーションがシステム定義オペレーシ
    ョンの一部としてデータに対して遂行されるようにその
    タイプに応答する第三のシステム定義装置(111、1
    13)とを有し、システム定義データオペレーションの
    一部としてアプリケーション定義データオペレーション
    (131)を実行することを特徴とするデータ処理シス
    テムのオペレーション実行装置。
  2. 【請求項2】  アプリケーション定義オペレーション
    が複数のオペレーションの内の一つであり、第二のシス
    テム定義装置が複数のアプリケーション定義オペレーシ
    ョンとタイプを連関させることを特徴とする請求項1記
    載の装置。
  3. 【請求項3】  システム定義オペレーションが複数の
    オペレーションの内の一つであり、第二のシステム定義
    装置がアプリケーション定義オペレーションの各々一つ
    とシステム定義オペレーションの内の一つを連関させる
    ことを特徴とする請求項2記載の装置。
  4. 【請求項4】  第一のシステム定義装置がアプリケー
    ション定義タイプを表すタイプ特定子(129)とデー
    タを連関させ;第二のシステム定義装置がアプリケーシ
    ョン定義オペレーションとタイプ特定子を連関させ;第
    三のシステム意義装置がタイプ特定子に応答することを
    特徴とする請求項1記載の装置。
  5. 【請求項5】  データがバッファ(127)に記憶さ
    れ;タイプ特定子を有するヘッダ(402)がバッファ
    と連関され;第一のシステム定義装置がタイプを表すた
    めに必要とされるようにヘッダにおけるタイプ特定子を
    設定することを特徴とする請求項4記載の装置。
  6. 【請求項6】  第二のシステム定義装置が、タイプ特
    定子により指標付けされた要素(505)であり、アプ
    リケーション定義オペレーションのために少なくとも特
    定子(509)を有する要素を持つアレイ(503)で
    あることを特徴とする請求項4記載の装置。
  7. 【請求項7】  システム定義オペレーションがデータ
    処理システムの一方の構成要素(103(1))から他
    方の構成要素(103(2))へとデータを送信し;さ
    らに両方の構成要素が請求項1記載の装置を有し;一方
    の構成要素の装置におけるアプリケーション定義オペレ
    ーションは送信前にデータを処理し、かつ(あるいは)
    他の構成要素の装置におけるアプリケーション定義オペ
    レーションは送信に続きデータを処理することを特徴と
    する請求項1記載の装置。
  8. 【請求項8】  一方の構成要素と他方の構成要素とが
    異種であり;一方の構成要素の装置におけるアプリケー
    ション定義オペレーションと他方の構成要素の装置にお
    けるアプリケーション定義オペレーションとが他方の構
    成要素により必要とされる形式にデータを置くために協
    力することを特徴とする請求項7記載の装置。
  9. 【請求項9】  一方の構成要素がクライアントプロセ
    スでかつ、他方の構成要素がデータに対して少なくとも
    一つの機能を遂行するサーバプロセスであり;さらにコ
    ンピュータシステムは、サーバプロセスがアプリケーシ
    ョン定義タイプと連関するデータに対して機能を遂行す
    るかどうかを示すためにクライアントプロセスにアクセ
    ス可能なビルティンボード装置(305)を有し;シス
    テム定義オペレーションは、アプリケーション定義タイ
    プと連関するデータに対して機能が遂行されることをビ
    ルティンボード装置が示す場合にのみデータを送信する
    ことを特徴とする請求項7記載の装置。
  10. 【請求項10】  アプリケーション定義オペレーショ
    ンとアプリケーション定義タイプを連関させるために第
    一のシステム定義装置を利用するステップと;そのタイ
    プとデータを連関させるために第二のシステム定義装置
    を利用するステップと;アプリケーション定義オペレー
    ションがシステム定義オペレーションの一部としてデー
    タに対して遂行されるようにそのタイプに応答する第三
    のシステム定義装置を利用する各ステップからなり、シ
    ステム定義データオペレーションの一部としてアプリケ
    ーション定義データオペレーションを遂行するステップ
    とからなることを特徴とするデータ処理システムのオペ
    レーション実行方法。
JP9189094A 1990-03-29 1991-03-29 データ処理システムのオペレーション実行装置とその方法 Pending JPH04227562A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/524,182 US5265250A (en) 1990-03-29 1990-03-29 Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
US524182 1990-03-30

Publications (1)

Publication Number Publication Date
JPH04227562A true JPH04227562A (ja) 1992-08-17

Family

ID=24088110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9189094A Pending JPH04227562A (ja) 1990-03-29 1991-03-29 データ処理システムのオペレーション実行装置とその方法

Country Status (5)

Country Link
US (1) US5265250A (ja)
EP (1) EP0449500B1 (ja)
JP (1) JPH04227562A (ja)
CA (1) CA2038843C (ja)
DE (2) DE69127919T4 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017509997A (ja) * 2014-03-27 2017-04-06 オラクル・インターナショナル・コーポレイション ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートするためのシステムおよび方法

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
EP0543512B1 (en) * 1991-11-19 1999-10-06 International Business Machines Corporation Multiprocessor system
US5412805A (en) * 1992-08-03 1995-05-02 International Business Machines Corporation Apparatus and method for efficiently allocating memory to reconstruct a data structure
US5875442A (en) * 1992-08-03 1999-02-23 International Business Machines Corporation Method and apparatus for enhancing access to a remote database employing dynamic buffer management
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
FR2702579B1 (fr) * 1993-03-12 1995-05-24 Bull Sa Dispositif de communication entre au moins un client et au moins un serveur, procédé d'utilisation du dispositif et utilisation du dispositif.
US6718399B1 (en) * 1993-05-21 2004-04-06 Candle Distributed Solutions, Inc. Communications on a network
US6289390B1 (en) 1993-08-18 2001-09-11 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5617570A (en) * 1993-11-03 1997-04-01 Wang Laboratories, Inc. Server for executing client operation calls, having a dispatcher, worker tasks, dispatcher shared memory area and worker control block with a task memory for each worker task and dispatcher/worker task semaphore communication
US5787300A (en) * 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
US6330582B1 (en) 1994-03-21 2001-12-11 International Business Machines Corporation Apparatus and method enabling a client to control transaction message traffic between server and client processes
JP3777196B2 (ja) * 1994-05-10 2006-05-24 富士通株式会社 クライアント/サーバシステム用の通信制御装置
EP0713182A1 (en) * 1994-11-18 1996-05-22 Kommunedata I/S A method for the presentation of information and a system for the transfer and presentation of information
CA2210147A1 (en) * 1995-01-23 1996-08-01 Tandem Computers Incorporated A method for accessing a file in a multi-processor computer system using pipes and fifos
US5978577A (en) * 1995-03-17 1999-11-02 Csg Systems, Inc. Method and apparatus for transaction processing in a distributed database system
US5724556A (en) * 1995-04-14 1998-03-03 Oracle Corporation Method and apparatus for defining and configuring modules of data objects and programs in a distributed computer system
US5956489A (en) * 1995-06-07 1999-09-21 Microsoft Corporation Transaction replication system and method for supporting replicated transaction-based services
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6901433B2 (en) * 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US5761499A (en) * 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US6047312A (en) * 1995-07-07 2000-04-04 Novell, Inc. System for replicating and associating file types with application programs among plurality of partitions in a server
US5692129B1 (en) * 1995-07-07 1999-08-17 Novell Inc Managing application programs in a computer network by using a database of application objects
US5933599A (en) * 1995-07-17 1999-08-03 Microsoft Corporation Apparatus for presenting the content of an interactive on-line network
US5956509A (en) 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5941947A (en) * 1995-08-18 1999-08-24 Microsoft Corporation System and method for controlling access to data entities in a computer network
US5915112A (en) * 1996-01-02 1999-06-22 International Business Machines Corporation Remote procedure interface with support for multiple versions
US6038587A (en) * 1996-09-03 2000-03-14 Insession, Inc. System, method and article of manufacture for universal transaction processing over multiple transaction processing systems
US6289393B1 (en) * 1996-09-03 2001-09-11 Insession Inc. System, method and article of manufacture for transaction processing and monitoring of independent interacts
US5857100A (en) * 1996-09-03 1999-01-05 Insession Inc. System, method and article of manufacture for extending externalization for universal transaction processing
US6151637A (en) * 1996-09-04 2000-11-21 Insession, Inc. System, method and article of manufacture for dynamic addition of new components to a universal transaction processing system
US5781703A (en) * 1996-09-06 1998-07-14 Candle Distributed Solutions, Inc. Intelligent remote agent for computer performance monitoring
US6442618B1 (en) 1996-09-23 2002-08-27 Insession, Inc. System, method and article of manufacture for universal transaction processing
US6301616B1 (en) * 1997-04-11 2001-10-09 Microsoft Corporation Pledge-based resource allocation system
US6170017B1 (en) * 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
GB2326315B (en) * 1997-06-10 2002-05-29 Ibm Distributed data processing system and method for controlling such a system
JPH1153326A (ja) * 1997-07-30 1999-02-26 Internatl Business Mach Corp <Ibm> 分散処理システム、クライアントノード、サーバノードおよび分散処理方法
US6826571B1 (en) * 1998-05-22 2004-11-30 International Business Machines Corporation Method and apparatus for dynamically customizing and extending functions of a server program to enable and restrict functions of the server
US6366916B1 (en) * 1998-05-22 2002-04-02 International Business Machines Corporation Configurable and extensible system for deploying asset management functions to client applications
US7305451B2 (en) * 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
US6560772B1 (en) * 1999-10-15 2003-05-06 International Business Machines Corporation Method, system, and program for accessing data in different environments
JP2001251375A (ja) * 2000-03-06 2001-09-14 Sony Corp 伝送方法、伝送システム、入力装置、出力装置及び伝送制御装置
US6898783B1 (en) * 2000-08-03 2005-05-24 International Business Machines Corporation Object oriented based methodology for modeling business functionality for enabling implementation in a web based environment
US7171455B1 (en) 2000-08-22 2007-01-30 International Business Machines Corporation Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals
US6684388B1 (en) 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
US6853994B1 (en) 2000-08-30 2005-02-08 International Business Machines Corporation Object oriented based, business class methodology for performing data metric analysis
US7032119B2 (en) 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
US7552350B2 (en) 2000-09-27 2009-06-23 Huron Ip Llc System and method for activity or event base dynamic energy conserving server reconfiguration
USRE40866E1 (en) 2000-09-27 2009-08-04 Huron Ip Llc System, method, and architecture for dynamic server power management and dynamic workload management for multiserver environment
US7822967B2 (en) * 2000-09-27 2010-10-26 Huron Ip Llc Apparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices
KR100491883B1 (ko) * 2000-12-28 2005-05-31 엘지전자 주식회사 코바 플랫폼을 이용한 동적 데이터베이스 처리방법
US6986147B2 (en) * 2001-03-28 2006-01-10 International Business Machines Corporation Method for transparent, location-independent, remote procedure calls in a heterogeneous network environment
US7028313B2 (en) * 2001-03-28 2006-04-11 International Business Machines Corporation Method for transmitting function parameters to a remote node for execution of the function thereon
US20030196126A1 (en) 2002-04-11 2003-10-16 Fung Henry T. System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US7185105B2 (en) * 2001-05-11 2007-02-27 Bea Systems, Inc. Application messaging system with flexible message header structure
US20060248360A1 (en) * 2001-05-18 2006-11-02 Fung Henry T Multi-server and multi-CPU power management system and method
EP1588275A1 (en) * 2002-12-17 2005-10-26 Systemauto System, method and computer program product for sharing information in a distributed framework
US20050108648A1 (en) * 2003-02-28 2005-05-19 Olander Daryl B. Method for propagating look and feel in a graphical user interface
US20050278374A1 (en) * 2004-05-21 2005-12-15 Bea Systems, Inc. Dynamic program modification
US20060007918A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Scaleable service oriented architecture
US20050273502A1 (en) * 2004-05-21 2005-12-08 Patrick Paul B Service oriented architecture with message processing stages
US20050273520A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with file transport protocol
US20060031354A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture
US20050273847A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Programmable message processing stage for a service oriented architecture
US20050270970A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Failsafe service oriented architecture
US7774485B2 (en) * 2004-05-21 2010-08-10 Bea Systems, Inc. Dynamic service composition and orchestration
US20060031355A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Programmable service oriented architecture
US20060069791A1 (en) * 2004-05-21 2006-03-30 Bea Systems, Inc. Service oriented architecture with interchangeable transport protocols
US20060031433A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Batch updating for a service oriented architecture
US20060031431A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Reliable updating for a service oriented architecture
US7310684B2 (en) * 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US20050273516A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Dynamic routing in a service oriented architecture
US20050273521A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20060136555A1 (en) * 2004-05-21 2006-06-22 Bea Systems, Inc. Secure service oriented architecture
US20050264581A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Dynamic program modification
US20060031353A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Dynamic publishing in a service oriented architecture
US20050273517A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with credential management
US20050267947A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Service oriented architecture with message processing pipelines
US20060031481A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture with monitoring
US20050273497A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with electronic mail transport protocol
US20060031432A1 (en) * 2004-05-21 2006-02-09 Bea Systens, Inc. Service oriented architecture with message processing pipelines
US20050267892A1 (en) * 2004-05-21 2005-12-01 Patrick Paul B Service proxy definition
US20060031930A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Dynamically configurable service oriented architecture
US7388248B2 (en) * 2004-09-01 2008-06-17 Micron Technology, Inc. Dielectric relaxation memory
US7427826B2 (en) * 2005-01-25 2008-09-23 Canon Kabushiki Kaisha Electron beam apparatus
US7437080B2 (en) * 2005-02-03 2008-10-14 Stratalight Communications, Inc. Optical transmission system having optimized filter wavelength offsets
US8136121B2 (en) 2005-03-16 2012-03-13 International Business Machines Corporation Graphical message format builder
CN100450067C (zh) * 2005-11-18 2009-01-07 华为技术有限公司 业务设备交换网络及交换方法
US7793055B2 (en) * 2006-08-04 2010-09-07 Apple Inc. Transferring memory buffers between multiple processing entities
US9135951B2 (en) * 2006-10-10 2015-09-15 Qualcomm Incorporated System and method for dynamic audio buffer management
US8996394B2 (en) 2007-05-18 2015-03-31 Oracle International Corporation System and method for enabling decision activities in a process management and design environment
US8185916B2 (en) * 2007-06-28 2012-05-22 Oracle International Corporation System and method for integrating a business process management system with an enterprise service bus
US8301687B2 (en) * 2009-03-31 2012-10-30 Software Ag Systems and/or methods for standards-based messaging
US8521810B1 (en) * 2009-09-14 2013-08-27 The Directv Group, Inc. Method and system for controlling a display buffer in a content distribution system
KR20120108564A (ko) * 2011-03-24 2012-10-05 삼성전자주식회사 데이터 처리 시스템 및 그 동작 방법
CN112199205B (zh) * 2019-07-08 2023-10-27 南京工程学院 一种异构平台间的程序通信方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4885684A (en) * 1987-12-07 1989-12-05 International Business Machines Corporation Method for compiling a master task definition data set for defining the logical data flow of a distributed processing network
US5075847A (en) * 1989-05-26 1991-12-24 Hewlett-Packard Company Method and apparatus for computer program encapsulation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017509997A (ja) * 2014-03-27 2017-04-06 オラクル・インターナショナル・コーポレイション ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートするためのシステムおよび方法

Also Published As

Publication number Publication date
DE69127919T2 (de) 1998-04-09
EP0449500B1 (en) 1997-10-15
CA2038843A1 (en) 1991-09-30
CA2038843C (en) 1998-05-19
DE69127919D1 (de) 1997-11-20
DE69127919T4 (de) 1998-08-13
EP0449500A2 (en) 1991-10-02
EP0449500A3 (en) 1993-01-07
US5265250A (en) 1993-11-23

Similar Documents

Publication Publication Date Title
JPH04227562A (ja) データ処理システムのオペレーション実行装置とその方法
US5519875A (en) Distributed processing system for modules, each having modularized objects
Corbin The art of distributed applications: programming techniques for remote procedure calls
US5778228A (en) Method and system for transferring remote procedure calls and responses over a network
US5724512A (en) Methods and apparatus for storage and retrieval of name space information in a distributed computing system
AU677555B2 (en) Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US6430607B1 (en) System and method for performing remote requests with an on-line service network
US5832219A (en) Distributed object networking service
AU686105B2 (en) System for implementation-independent interface specification
US6272559B1 (en) Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6633923B1 (en) Method and system for dynamic configuration of interceptors in a client-server environment
US5983274A (en) Creation and use of control information associated with packetized network data by protocol drivers and device drivers
EP0677943A2 (en) A communications system for exchanging data between computers in a network
US6708171B1 (en) Network proxy
JPH04229357A (ja) 異種ネットワーク環境における適用業務プログラムの統合システム
US6516354B2 (en) Method and apparatus for efficient representation of variable length identifiers in a distributed object system
CN110287040B (zh) 一种远程调用服务框架的实现系统
WO1989009967A1 (en) Computing machine with hybrid communication architecture
US6212572B1 (en) Device for the utilization of exported pseudosockets
JPH0793264A (ja) クライアント側スタブインタプリタ
KR100356919B1 (ko) 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법
WO1999044123A1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6006280A (en) Distributed instantiation system and method
JP3007340B1 (ja) 機能呼び出し方法、並列分散処理システムおよびコンピュータ
JP3006187B2 (ja) 分散処理システム