JPH0664559B2 - クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置 - Google Patents

クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置

Info

Publication number
JPH0664559B2
JPH0664559B2 JP3202702A JP20270291A JPH0664559B2 JP H0664559 B2 JPH0664559 B2 JP H0664559B2 JP 3202702 A JP3202702 A JP 3202702A JP 20270291 A JP20270291 A JP 20270291A JP H0664559 B2 JPH0664559 B2 JP H0664559B2
Authority
JP
Japan
Prior art keywords
class
data processing
server
application
database
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.)
Expired - Fee Related
Application number
JP3202702A
Other languages
English (en)
Other versions
JPH06110808A (ja
Inventor
エル トラヴィス ジュニア ロバート
ピー ウィルソン アンドリュー
エフ ジェイコブソン ニール
ジェイ レンズロー マイケル
Original Assignee
ディジタル イクイプメント コーポレイション
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 ディジタル イクイプメント コーポレイション filed Critical ディジタル イクイプメント コーポレイション
Publication of JPH06110808A publication Critical patent/JPH06110808A/ja
Publication of JPH0664559B2 publication Critical patent/JPH0664559B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、不均一データ処
理回路網にわたるコンピューターアプリケーションの相
互作用に関する。特に、この発明は、オブジェクト指向
モデルに従うデータ処理回路網の組織と、その様な不均
一回路網環境にわたる独立のアプリケーション同士の相
互作用とに関する。
【0002】
【従来技術とその課題】コンピューターは、データ処理
回路網を介して相互に通信をする。コンピューター自体
は一般に「ノード」と呼ばれ、特定の形態のコンピュー
ター、即ち、特定の形態のオペレーティングシステムを
使う特定の形態のハードウェア、は「プラットフォー
ム」と呼ばれる。異なる種類のプラットフォームを包含
する回路網は「不均一回路網」と呼ばれる。プラットフ
ォームを接続して回路網にする一つの目的は、共用され
るデータに対してアプリケーションプログラム(簡単に
「アプリケーション」と呼ぶ)を実行する種々の環境を
提供することである。
【0003】典型的データ処理回路網では、異なる種類
のプラットフォームと、異なる種類のプラットフォーム
上で走るアプリケーションとがそれ自身に特有の方法で
情報を記憶する。例えば、VAX.VMSプラットフォ
ームではテキスト編集タスクはTPUテキスト編集プロ
グラムを使って達成され、MIPS.ULTRIXプラ
ットフォームでは、テキスト編集タスクはEMACSテ
キスト編集プログラムを使って達成されることが出来
る。両方のプラットフォームを持っている回路網のユー
ザーは、これらのプラットフォーム及びテキスト編集の
詳細を知る必要無しに、異なるテキスト編集プログラム
からのオペレーションを異なるプラットフォームに使用
しようと希望することが出来る。
【0004】この互換性は、以前は不可能であった。む
しろ、普通の回路網は、各アプリケーションが特別のプ
ラットフォーム上でのオペレーションのために必要とす
る特別のインターフェースを不均一回路網のユーザーが
採用することを必要とする。普通の回路網は、標準的イ
ンターフェースを使ってアプリケーション間で通信を行
う能力をユーザーに提供することが出来ない。
【0005】普通の不均一回路網環境でのアプリケーシ
ョン間通信の困難の例として、一プラットフォーム上の
テキスト編集アプリケーションのユーザーが、他のプラ
ットフォーム上の、科学論文のためのDIALOGや裁
判官の意見のためのLEXISなどの、多ユーザー・デ
ータベース検索サービスにアクセスすることを希望した
とする。普通の回路網上でそうするためには、テキスト
編集アプリケーションの動作を一時停止させなければな
らず、且つ、該データベース検索サービスに特有のコマ
ンド及びメッセージを使って該データベース検索サービ
スを呼び出さなければならない。ユーザーは、希望する
各サービスの特有の名称を知らなければならないだけで
なくて、回路網中の該サービスの位置も知らなければな
らず、且つ、各サービスが採用する種々のコマンド及び
コマンドフォーマットに精通していなければならない。
【0006】不均一な回路網において一プラットフォー
ム内のアプリケーションが異なるプラットフォーム上の
アプリケーションを効率的に且つ複雑でない方法で呼び
出せる様にするための標準的インターフェースは、これ
までは開発されていない。むしろ、普通のアプリケーシ
ョン間通信は、単に、アプリケーション同士の間でメッ
セージ及びデータを物理的に運ぶためのメカニズムを提
供するに過ぎない。
【0007】一プラットフォーム上のアプリケーション
が別のプラットフォーム上のアプリケーションと通信出
来る様にするために現在使われているメカニズムの一例
は、遠隔手続きコール(Remote Procedure Call(RPC と
略記する))システムである。一プラットフォーム上の
RPCシステムは、最初にそのアプリケーションのメッ
セージを回路網データフォーマットに変換し、次にその
変換した問いあわせを該回路網を介して受け取り側プラ
ットフォームに送ることによって、「呼出しを行ってい
る」アプリケーションからの問い合わせに応答する。受
け取り側プラットフォームにおいて、RPCシステムの
他の構成要素が、変換されたメッセージを解読して、呼
び出されたアプリケーションに受入れられるデータフォ
ーマットの問い合わせにする。しかし、呼出し側プラッ
トフォームからの元のメッセージは、呼び出されたアプ
リケーションにより述べられる構文と矛盾してはならな
い。
【0008】普通の回路網の他の難点は、遠くのノード
上のアプリケーションが現在ロードされ走っていないと
きに生じる。多くのRPCシステムは、既にロードされ
走っているアプリケーションの遠隔呼出しだけを可能に
するに過ぎない。若しそうでなければ、クライアント・
アプリケーションのユーザーは、遠隔のプラットフォー
ム上のサーバーアプリケーションを呼び出す前に該アプ
リケーションをロードする何らかの方法を発見しなけれ
ばならない。これは極めて限定的である可能性がある。
【0009】アプリケーション間通信を促進するための
汎回路網システムを実現するについての一つの障害は、
回路網内の種々のデータ、オペレーション、及びアプリ
ケーションの全てを扱うためにシステムに必要とされる
と考えられていたシステム資源の量の多さであった。回
路網が拡大するに従って、システム、資源、及び要件も
増大して、多くの提案された装置が全く扱いにくいもの
となる。
【0010】従って、アプリケーションのための均一で
一貫性のあるインターフェースを通すなどして、異種の
プラットフォーム上のアプリケーションが相互に通信す
るための効率的で単純な方法が必要である。分散不均一
環境におけるアプリケーションのための動的呼出し環境
も必要である。これは、ロードされ走っているアプリケ
ーションと同様に未だロードされ走ってはいないアプリ
ケーションも呼び出す能力を提供することを含む。
【0011】
【発明の概要】これらの必要を満たすために、本発明
は、データ自体を管理するのではなくてデータ・インス
タンス及びアプリケーションの「クラス」をシステムが
管理するオブジェクト指向的方法でプロセスの相互作用
に対処する。この様なクラスの管理は、該クラスにより
支援されるアプリケーション又はインスタンス(instan
ce) の或る共通の属性などの、該クラスについての情報
を包含するデータベースを必要とすることがある。
【0012】クライアント・アプリケーションは、パラ
メーターと共に、大域的に(即ち、回路網にわたって)
認識されるメッセージを送ることによって他のアプリケ
ーションを遠くから呼び出すことが出来る。メッセージ
の名称と、或るパラメーター及び或る優先順位情報(コ
ンテキスト情報と称する)のクラスに関する情報とを使
って、特別の方法への参照が該データベースから選択さ
れる。この方法は、該メッセージで指定されているオペ
レーションを行う。該データベース中の他の情報は、そ
のとき、参照された方法を実施する実際のコードの位置
を確認して実行するのに使われる。
【0013】更に詳細には、アプリケーションを実行す
るための複数のデータ処理プラットフォーム、及びデー
タ処理プラットフォームの全てにアクセス可能な部分を
有するクラスデータベースを含む処理回路網において、
データ処理プラットフォームのクライアントプラットフ
ォームで実行するクライアントアプリケーションから、
サーバーデータ処理プラットフォーム上で実行されるべ
きアプリケーションを呼び出す本発明に従う方法は、ク
ライアントデータ処理プラットフォームによって達成さ
れる幾つかの工程を含んでいる。このクラスデータベー
スは、サーバデータ処理プラットフームで走るべきアプ
リケーションの対応するものを呼び出すための対応する
機構に対する参照を各々含む複数の方法項目、及びこの
方法項目の対応するグループを識別し、異なる一義的に
識別可能なクラスを識別する情報を各々含む複数のクラ
ス項目を含む。クラスの各々は、アプリケーションによ
って扱われ、アクセスされるアイテムであるインスタン
スの異なる組みによって参照され、各組みのインスタン
スの全てが、共通の文字を有している。本発明の方法に
おける工程は、第1のインスタンスを含むデータ処理操
作の実行のためにクライアントアプリケーションからメ
ッセージを受信し、第1のインスタンスによって参照さ
れるクラス及び受信されたメッセージを使用してクライ
アントデータベースにアクセスして、第1の方法項目及
びサーバーアプリケーションを呼び出すための対応する
機構を選択し、データ処理フラットフォーム中から、サ
ーバーデータプラットフォームを選択して、サーバーア
プリケーションを実行する。本発明に従うデータ処理回
路網は、アプリケーションを実行するための複数のデー
タ処理プラットフォームを含み、データ処理プラットフ
ォームの全てに近接可能な部分を有するクラスデータベ
ースを含むネットワーク内メモリを有する。クライアン
トデータ処理プラットフォームが、クライアントデータ
処理プラットフォームで実行される第1クライアントア
プリケーションからサーバーデータ処理プラットフォー
ムで実行されるべきサーバーアプリケーションを呼び出
すための機能を有し、クラスデータベースは複数の方法
項目及び複数のクラス項目を有し、各方法項目は、サー
バーデータ処理プラットフォームで走るべきアプリケー
ション又は手順の対応するものを呼び出すための対応す
る機構への参照を含み、また各クラス項目は、方法項目
の対応するグループを識別し、異なる、一意的に識別可
能なクラスを識別する情報を含み、クラスの各々は、イ
ンスタンスの異なる組みを識別し、このインスタンス
は、アプリケーションによって扱われまたアクセスされ
ることできるアイテムであり、各組みに於けるインスタ
ンスの全てが共有文字を有している。クライアントデー
タ処理フラットフォームが、第1インスタンスを呼び出
すデータ処理操作の実行のためにクライアントアプリケ
ーションからメッセージを受信するための手段、この受
信手段に結合され、クラスデータベースにアクセスし
て、第1インスタンス及び受信されたメッセージを識別
するクラスを使用して、第1方法項目及び対応する機構
を選択して、サーバーアプリケーションを呼び出す手
段、前記アクセス手段に結合され、データ処理プラット
フォームから、サーバーデータ処理プラットフォームを
選択してサーバーアプリケーションを実行する手段から
なる。
【0014】この明細書に組み込まれてその一部を形成
する添付図面は、発明の具体例を示していて、説明と共
に発明の原理を説明する。
【0015】
【実施例】添付図面に示されている発明の好適な実施例
を詳しく参照する。この発明は、普通の回路網アーキテ
クチャに組織されたデータプロセッサにより好適に実施
される。しかし、協働的にアプリケーションを実施する
ためのアーキテクチャ及び手順は、該回路網内のアプリ
ケーション間の相互作用へのオブジェクト指向的アプロ
ーチに対処するものであるので、従来からある普通のも
のではない。 A.回路網の主要な構成要素 図1は、本発明を実施するのに使うことの出来る回路網
50を示す。図1において、回路網50は、回路網バス
55によって接続された3個の独立のプラットフォーム
100、200、及び300を包含する。プラットフォ
ーム100、200、及び300は完全に不均一である
として示されているけれども(即ち、プラットフォーム
100はVMSオペレーティングシステムを使用するV
AXプロセッサとして示されており、プラットフォーム
200はULTRIXオペレーティングシステムを使用
するMIPSプロセッサとして示されており、プラット
フォーム300はMS−DOSオペレーティングシステ
ムを使用する80286プロセッサとして示されてい
る)、この発明は均一回路網でも作用するものである。
また、プラットフォームの数は重要ではない。
【0016】回路網バス55の構成及びプロトコール
は、それがプラットフォーム100、200、及び30
0の間の情報の通信を考慮にいれる限りは、重要ではな
い。また、この特別の回路網アーキテクチャは、この発
明には充用でない。例えば、この発明に従って使用され
ることの出来る他の回路網アーキテクチャは、一つのプ
ラットフォームを、他のすべてのプラットフォームが接
続される回路網コントローラとして使用する。しかし、
図1に示されている回路網50は、本発明の利点を強化
するものと考えられる。
【0017】回路網50の好適な実施例では、プラット
フォーム100、200、及び300は、各々、中央処
理装置(CPU)110、210、及び310をそれぞ
れ包含すると共に、メモリー150、250、及び35
0をそれぞれ包含している。各中央処理装置110、2
10、及び310には、アプリケーション120、22
0、及び320、オペレーティングシステム(OP S
YS)140、240、及び340、及びアプリケーシ
ョン制御アーキテクチャ・サービス(ACAS)ソフト
ウェア構成要素130、230、及び330がそれぞれ
包含されている。
【0018】アプリケーション120、220、及び3
20は、本発明と協働するように前もって書かれて修正
され、又は本発明の与えるサービスを利用するように特
に書かれたプログラムであることが出来る。この解説の
目的のために、アプリケーションは、この発明に従って
行われるべきオペレーションを呼出し、或いは他のアプ
リケーションによる呼出しに応答する。
【0019】ACASソフトウェア構成要素130、2
30、及び330は、この発明のオブジェクト指向的ア
プローチを具体化するものである。好ましくは、ACA
Sソフトウェア構成要素130、230、及び330
は、詳しく後述する数個のソフトウェア・モジュールか
ら成る。オペレーティングシステム140、240、及
び340は、それぞれ、プラットフォーム100、20
0、及び300の対応するCPU110、210、及び
310に結び付けられている標準的オペレーティングシ
ステムである。
【0020】メモリー150、250、及び350は、
幾つかの機能に貢献する。その機能の一つは、勿論、随
伴するプラットフォームのために汎用記憶装置を提供す
ることである。他の機能は、アプリケーション120、
220、及び320と、ACASソフトウェア構成要素
130、230、及び330と、オペレーティングシス
テム140、240、及び340とを、それぞれのCP
U110、210、及び310によるそれらの実行に先
立って記憶することである。
【0021】また、メモリー150、250、及び35
0の一部分は、回路網50内のプラットフォーム10
0、200、及び300の全てにより共有され且つ直接
に又は間接的に利用されることの出来る、汎回路網、又
は「大域的な」、データベースについての情報を内蔵す
る。この大域データベースについて以下に詳細に説明す
る。 B.オブジェクト指向アーキテクチャの要素 (1) 要素の定義 オブジェクト指向的方法は、実際の実施からデータのイ
ンターフェースを分離するためにプログラミングにおい
て使用されてきているが、この様な方法は不均一回路網
には適用されていない。本発明では、オブジェクト指向
技術を使って実際のアプリケーション及びそのデータ
を、他のアプリケーションによるそのデータに対するオ
ペレーションの実施から分離する。
【0022】この発明のオブジェクト指向アーキテクチ
ャは、好ましくは、或るキー要素を包含する。図2は、
これらの要素の或るものと、アプリケーションの或る普
通の特徴との関係を説明する。図2に示されている様
に、アプリケーション260は2通りの方法で記述され
ることが出来る。第1に、そのアプリケーションは或る
アプリケーション定義265を持っている。例えば、ア
プリケーション260がワード処理プログラムであるな
らば、そのアプリケーション定義は、そのワード処理プ
ログラムが行うことの出来るオペレーションと、そのワ
ード処理システムが操作することの出来るデータの種類
についての定義を含むことが出来る。
【0023】また、アプリケーション260は、アプリ
ケーションデータ268を含む。アプリケーションデー
タ268は、アプリケーション260が操作するデータ
である。本発明に従って、該アプリケーションデータは
オブジェクト指向アーキテクチャによって「処理」され
ない。むしろ、本発明は、該アプリケーション定義及び
アプリケーションデータをオブジェクトの種類(この明
細書の残りの部分でオブジェクトと呼ばれている)に関
しての特徴付けを巡って組織される。オブジェクトは、
図2に示されてはいないが、図示の要素に浸透してい
る。
【0024】以下の議論において、「オブジェクト」と
いう用語は、幾つかの異なる種類の要素を一般的に指す
が、その全ては二つの特徴を共通に持っている。第1
に、それは外部能力を指し、オブジェクトが、アプリケ
ーション定義又はアプリケーションデータの、他のアプ
リケーションと共に伝えられる必要のある部分を指し又
は記述することを意味する。第2に、それは包括的で、
オブジェクトは全てのアプリケーションに対して利用可
能なものであって、その様なものとして普遍的に認識さ
れた独特の名称を、そのオブジェクトへのインターフェ
ースを有する全てのアプリケーションについて有するこ
とを意味する。本発明は、特別のデータ又はアプリケー
ションの取扱ではなくてオブジェクトの取扱に関わるも
のである。
【0025】図2に示されている様に、この発明のオブ
ジェクト指向アーキテクチャの二つの要素は、アプリケ
ーション定義265から開発される。一つはクラス27
0で、他方は方法280である。クラスは、クラスの名
称とクラスの特徴との両方が外部的で且つ包括的である
という意味でオブジェクトである。更に、クラスは、ア
プリケーションだけでなくて、該アプリケーションによ
り使われるデータをも記述する手段として使われること
が出来る。
【0026】また、そのアプリケーションによって行わ
れる或る種のオペレーションをアプリケーション定義2
65から得ることが出来、それは方法280の特別の例
である。しかし、特別の方法280は、該システムによ
って管理されることはなくて、クラスに編成されること
が出来る。該アプリケーションにより実行される特別の
コマンドやオペレーションがそうではなくても、これら
の方法についてのクラス(方法オブジェクトと呼ばれ
る)は包括的で且つ外部的である。
【0027】インスタンス290は、アプリケーション
データ268から得られたものであるが、アプリケーシ
ョンが操作し又はアクセスすることの出来る項目であ
る。インスタンスは、このアーキテクチャにより管理さ
れるオブジェクトではない。むしろ、インスタンスは、
同じクラス内のインスタンスが共通の特徴を共有するこ
ととなる様にクラスに編成される。例えば、特別のDE
Cwriteアプリケーションは、複合文書編集プログ
ラムであるが、MYFILEと呼ばれる特別のファイル
上で動作することが出来る。これは特別のファイルであ
って、ACASシステムによっては取り扱われない。む
しろ、MYFILEは、包括的で、従ってクラスオブジ
ェクトである例えばASCII FILE等の両立ファ
イルのクラスに属することが出来る。
【0028】また、特別のDECwriteアプリケー
ションも該システム全体によって管理されるものではな
い。しかし、この特別のDECwriteアプリケーシ
ョンは、包括的でクラスオブジェクトであるDECwr
iteと呼ばれるクラスに属することが出来る。図2か
ら分かる様に、アプリケーションが属するクラスによ
り、そのアプリケーションにおいて特別の方法を支援す
るクラス(方法オブジェクト)により、該方法オブジェ
クトが操作することの出来るクラスオブジェクトによっ
て、アプリケーションは特徴付けられることが出来る。
【0029】クラスの特徴の一つは、それらが階層的に
編成され得ることである。このことは、以下に詳しく説
明するけれども、上位クラス及び下位クラスの概念を考
察することにより前もって理解することの出来るもので
ある。上位クラスは、その下位クラスの親であり、各下
位クラスは少なくとも一つの上位クラスの子である。上
位クラス/下位クラスの関係は、上位クラスの属性又は
共有される特徴が下位クラスに受け継がれることを意味
する。例えば、DATA FILESのクラスは、属性
として、開かれ、読み出され、書き込まれることの出来
る能力を持つことが出来る。クラスDATA FILE
Sの二つの下位クラスはSEQUENTIAL FIL
ES及びRANDOM ACCESS FILESの下
位クラスである。開かれ、読み出され、書き込まれるこ
とが出来るという属性に加えて、下位クラスSEQUE
NTIAL FILESは、順次にアクセス可能である
という属性を持つことも出来、下位クラスRANDOM
ACCESS FILESは、アドレスにより直接ア
クセス可能であるという属性を持つことが出来る。
【0030】図2に反映されていない本発明のオブジェ
クト指向アーキテクチャの他の要素は、メッセージであ
る。メッセージは、アプリケーションプログラムと方法
との間のインターフェースであって、クライアント・ア
プリケーションで確認されるインスタンス上に行われる
ことの出来るオペレーションの種類を指定するために該
アプリケーションプログラムにおいて使用される。メッ
セージは、一般に、PRINTなどのオペレーション
と、数個のパラメーター(これはインスタンス、ストリ
ング、番号、等々であることが出来る)とのセレクター
の形を取る。これらの要素間の関係を次の節で説明す
る。 (2) 要素の関係 図3は、前述した種々の要素の関係を示す図である。図
3が示す様に、各インスタンス370にクラス380が
随伴している。これを理解する他の道は、クラス380
を、そのクラスでの目的の創作(これはインスタンスで
あることが出来る)と、そのオブジェクトの操作とのた
めの「テンプレート」と見なすことである。「テンプレ
ート」という用語は、オブジェクト(それがデータ項
目、方法、又はアプリケーションであるとしても)が各
クラスにおいて、そのクラスにより決まる或る特徴又は
属性を共有することを意味する。
【0031】インスタンス370は、メッセージ360
を送ることによって操作される。メッセージ360は、
EDIT、READ又はPRINTなどの動作である。
メッセージはクラスにより「支援される」と言われる
が、それは、メッセージの解釈が、そのメッセージ内の
インスタンスが属するところのクラスに依存するという
ことを意味する。例えば、若しインスタンスがクラスC
OLOR GRAPHICS内のカラーグラフイックス
ファイルではなくてクラスTEXT FILE内のテキ
ストファイルであるならば、PRINTメッセージは別
様に解釈されることがある。
【0032】メッセージ360は、特定のオペレーショ
ンの実施を説明せず、単に特定のオペレーションの実施
へのインターフェースを表すに過ぎない。よって、特定
のメッセージ360が要求している特定のオペレーショ
ン(即ち、方法)を発見するためには、該メッセージだ
けではなくて、該インスタンスのクラスをも検査しなけ
ればならない。特別の動作を起こさせるためには、メッ
セージ360を実際の実行可能なプログラムコードにマ
ッピングしなければならない。このマッピングは、特定
のインスタンス370の特定のクラス380に対応する
特定のメッセージ360を発見し、次に該クラス380
により支援されるメッセージ360に対応する特定の方
法390を発見することによって行われる。該方法39
0は、該インスタンス370上のメッセージ360の所
望のオペレーションを実施する実際の実行可能なプログ
ラムコードを表す。 (3) 編 成 図4は、種々のオブジェクト指向アーキテクチャ要素
を、メモリーにおけるその特別の表示に先立って編成す
る方法を示す。図4から明らかな様に、クラスと方法と
の間には複雑な関係がある。アプリケーション間に存在
しなければならない挙動に関する関係を反映するのに必
要なオブジェクト指向アプローチを実現するために、好
適な実施例では方法及びクラスの両方のために階層が使
用される。しかし、与えられた特別の例は単なる説明の
ためのものであって、これらのクラス及び方法について
の他の種類の表示は当業者には明らかであろう。
【0033】図4に示されている図では、本質的に2分
岐の階層がある。一つは方法オブジェクト400という
見出しが付され、他方にはクラス450という見出しが
付されている。該分岐、階層は、受け継がれるものによ
り異なる。クラス階層では、受け継がれるものは、メッ
セージを包含するので、挙動についてのものである。方
法階層では、受け継がれるのは属性についてのものだけ
である。クラス階層と方法階層との間の橋は、メッセー
ジ490及び495などのメッセージと、マップ493
及び398などの方法マップとを経由する。図4に示さ
れている方法階層では、方法階層410、415、及び
420は、それぞれWORD CUT MS−DO
S、WORD READ VMS、及びWORD
READ ULTRIXとして表されているが、方
法オブジェクト400から受け継ぐ。例えば、図4で
は、方法オブジェクト400は、該方法を指示し、或る
相互作用タイプを使用し、或るサーバー始動タイプを有
する属性(図示せず)を持つことが出来る。
【0034】方法オブジェクト410は、EMACSア
プリケーションにおいてCUT機能を代表する。方法4
10には、方法オブジェクト400から受け継がれたも
のを包含する属性430の組が付随している。簡単に言
うと、PlatformType属性は、該方法オブジ
ェクトをその上で実行出来るところのプラットフォーム
を示す。InteractionType属性は、特定
の方法サーバーの中で実行される方法の実際の種類を記
述する。以下に説明するこの属性についての値の例は、
BUILT IN、SCRIPT SERVER、及び
DYNAMIC LOADである。ServerStar
tupType属性は、該方法サーバーのために使われ
るべき適切な呼出しメカニズムを示す。この属性につい
ての値の例は(これについても後述する)、SHEL
L、DYNAMIC LOAD、及びNAMED AP
PLICATIONである。
【0035】属性430の組は、MS DOSオペレー
ティングシステム付きの80286プロセッサを有し、
BUILT IN、相互作用タイプ、及びNAMED
APPLICATIONサーバー始動タイプを有するプ
ラットフォーム上で付随の方法が作動することを示す。
同様に、方法オブジェクト415は、EMACSアプリ
ケーションにおいてREAD機能を代表する。方法41
5には属性435の組が付随しているが、これらの属性
は、方法オブジェクト400から受け継がれたものを含
んでいるけれども、これも、付随の方法がVMSオペレ
ーティングシステムを走らせるVAXプラットフォーム
上で動作し、BUILT INの相互作用タイプと、N
AMED APPLICATIONサーバー始動タイプと
を有することを示す。
【0036】方法オブジェクト420は、EMACSア
プリケーションにおけるREAD機能を表す方法オブジ
ェクト400の下位クラスである。方法クラス420に
ついて属性440は、BUILT IN相互作用タイ
プ、及びNAMED APPLICATIONサーバー
始動タイプでULTRIXオペレーティングシステムを
走らせるMIPSプロセッサ付きのプラットフォーム・
タイプを有する。
【0037】一方、クラス450は、FILESと呼ば
れるクラス460と、APPLICATIONSと呼ば
れるクラス465との上位クラスである。クラス460
はデータオブジェクトを参照する。図4に示されている
様に、クラス460は、属性(図示せず)を有し、クラ
ス470の上位クラスである。クラス470はASCI
FILEと呼ばれる。例えば、クラス470は、A
SCIIファイルの共通の特徴を持っている回路網50
(図1を見よ)内の全てのファイルを代表することが出
来る。この共通の特徴は、クラス470についての属性
において記述されることが出来るが、それは図4には示
されていない。
【0038】クラス470は、数個のインスタンスにつ
いてのクラスであるが、該インスタンスは、該オブジェ
クト指向アーキテクチャによって管理されるものではな
いので、図4には示されていない。図4に示されている
のは、クラス470が支援するメッセージであり、簡単
のために図示されている唯一のものはEDITメッセー
ジ490である。
【0039】クラス支援メッセージは、該メッセージが
このオブジェクト指向アーキテクチャへのインターフェ
ースとして使われるときには、それを支援するクラスと
共に、従ってそのクラスの中のインスタンスと共に、使
用されることが出来ることを意味する。よって、図4に
示されている例では、ASCII FILEクラス内の
全てのインスタンスにEDITメッセージを送ることが
出来る。
【0040】APPLICATIONSクラス465も
上位クラスであり、その下位クラスの一つ(EDITO
Rクラス475)が示されている。EDITORクラス
475は、WORD A、WORD B、又はWORD
Cに対応する、特別のアプリケーションクラス48
0、483及び485に対して上位クラスである。WO
RD Cなどの、該クラスの各々は、EMACS又はT
PU特別のアプリケーションを代表する。よって、各ア
プリケーションは1クラスにより定義される。しかし、
アプリケーション・クラスは、2アプリケーション以上
の実施挙動に言及することが出来る。
【0041】アプリケーション・クラスはメッセージも
支援するが、それは、メッセージCUT495がアプリ
ケーション・クラス485に支援されていることで示さ
れている。これは、クラス定義の時に、クラス485に
より代表される如何なるアプリケーションもメッセージ
CUTを支援しなければならないことが決定されたとい
う事実を反映している。
【0042】簡単に上記した様に、好適な実施例では、
アプリケーションは、上位クラスと呼ばれる親クラス
と、下位クラスと呼ばれる子クラスとのあるクラスの階
層に編成される。図4において、クラス465は、ED
ITORと呼ばれる上位クラスである。この上位クラス
の全ての下位クラスは、該上位クラスの特定の独特の特
徴又は属性の同一の組を少なくとも持っている。図4に
おいて、上位クラス475EDITOR下位クラスは、
WORD A480、WORD B483、及びWOR
C485である。WORD AはTPUアプリケー
ションを表し、WORD B483は全てのLSEアプ
リケーションを表し、WORD C485は全てのEM
ACSアプリケーションを表す。これらの上位クラスの
各々は、上位クラス475から受け継いだ特徴及び属性
に加えて、それ自身の独特の特徴及び属性の組を持って
おり、その特徴及び属性は、上位クラス475EDIT
ORの中で下位クラスとして分離されることが可能とな
る様に異なっている。
【0043】この発明の好適な実施例では、受け継ぎの
特別の規則は、クラス間での多重受け継ぎを許す様にな
っている。これは、如何なる下位クラスも2以上の上位
クラスを持つことが出来ることを意味する。この種類の
受け継ぎは、定義時に曖昧さを作り出すかもしれないの
で、上位クラスは、潜在的な受け継ぎ矛盾を解決するた
めに定義時に「順序づけ」られると考えられる。例え
ば、後述する下位クラスの定義の時に、メッセージ又は
属性が、記録されている上位クラスの中の二つ以上にお
いて重複して定義されているために矛盾が生じたなら
ば、最高の順位のクラスにおいて定義されているメッセ
ージ又は属性が該下位クラスに受け継がれるものである
と見なされる。
【0044】前述した様に、方法オブジェクトとクラス
との間の関係は方法マップを経由するものである。図4
は、二つの方法マップ493及び498を示す。クラス
の各々はメッセージを有し、その各々は特別の方法マッ
プを指す。よって、方法マップ493にはEDITメッ
セージ490が随伴し、方法マップ498にはCUTメ
ッセージ495が随伴している。
【0045】好ましくは、方法マップは、メッセージに
随伴する方法オブジェクトの名称を含んでいる。方法マ
ップは、他のクラス及びメッセージの名称を内蔵するこ
とも出来る。よって、方法マップ493は、二つの方法
オブジェクトの名称を含んでいる。方法マップ493
は、方法オブジェクトWORD READ MIP
S.ULTRIX494(これは方法オブジェクト42
0の名称である)の名称と、方法オブジェクトWORD
READ VMS496(これは方法オブジェク
ト415の名称である)の名称とを包含している。
【0046】同様に、メッセージCUT495について
の方法マップ498は、名称WORD CUT 8
0286.MS−DOS499を内蔵するが、これは方
法オブジェクト410の名称である。この様にして、方
法マップ493及び498を使って、方法オブジェクト
410、415、及び420にそれぞれ対応する属性の
組430、435、及び440の位置を示すことが出来
る。この種の順位を使って方法の位置を示すやり方を以
下に詳細に説明する。 C.クラス・データベース構造 該回路網アーキテクチャのクラス及び方法オブジェクト
は、図5に示されているクラス・データベース500に
記憶される。クラス・データベース500は、回路網5
0により共有され使用されることの出来る相互に関連し
たデータ項目の非冗長集合体を表す。
【0047】図4において、クラス・データベース50
0は、図4に示されているのと類似した2種類のオブジ
ェクトから成っている。該オブジェクトは、クラス50
5又は方法549である。クラス505の各々は、対応
するクラスのインスタンスについての包括的外部表示に
対応する。例えば、図5において、クラスオブジェクト
ASCII FILE506は、クラスASCII
ILE506の特徴を有するインスタンスの組の全ての
構成員についての包括的外部表示に対応する。該特徴
は、属性510の対応する組によって表される。
【0048】好適な実施例では、クラス505に対応す
る属性510は、システム開発者又はユーザーが希望す
る随意の方法で使われる。例えば、ASCII FIL
E506についての属性511は、クラス506をディ
スプレイ上に表示するアイコン(icon)の名称を含
むことが出来る。クラス505の各々は、メッセージ5
20の組も支援する。メッセージは、「動詞」又はセレ
クターと呼ばれるCUT、READ又はEDITなどの
メッセージ名と、パラメーターとから成る。該パラメー
ターの各々は、名称と、タイプと、方向とから成る。そ
の名称は「タイプ分けされている」が、それは、その名
称が、例えば整数、文字又はストリングなどの特定のタ
イプのものであることを意味する。各パラメーターにつ
いて可能な方向は「イン(in)」、「アウト(ou
t)」及び「イン/アウト(in/out)」である。
メッセージ内のパラメーターが「イン」方向を持ってい
るとき、これは、そのパラメーターが、呼び出されるべ
き方法への入力であることを意味する(後述する)。メ
ッセージ内のパラメーターが「アウト」方向を持ってい
るとき、それは、該パラメーターが方法からの出力であ
ることを意味する。メッセージ内のパラメーターが「イ
ン/アウト」方向を持っているとき、それは、該パラメ
ーターが方法への入力及び方法からの出力の両方である
ことを意味する。
【0049】メッセージ520は、対応するクラス50
0により表されるインスタンスの各々が支援することの
出来る妥当なオペレーションについての表示である。例
えば、図5において、クラスオブジェクトASCII
FILE506は、メッセージ521及び525を含む
メッセージの組520を支援する。メッセージの組52
0内の特別のメッセージは、OPEN(PARA 1、
PARA 2...)521及びEDIT(PARA
1、PARA 2...)525である。例えば、メッ
セージEDIT(PARA 1)では、PARA 1は
「FileName:ストリング、イン/アウト」を表
すが、ここでFileNameはパラメーターの名称で
あり、ストリングはパラメーターのタイプであり、イン
/アウトはパラメーターの方向である。
【0050】メッセージ521及び525は、各々、そ
れぞれの方法マップ530及び540を指す。方法マッ
プ530及び540の各々は、クラス・データベース5
00内の対応する方法オブジェクトへの、又は他のクラ
ス及びメッセージの名称への、参照の組を内蔵する。例
えば、方法マップ530は、参照531及び533を内
蔵しており、その各々は、異なる方法オブジェクト(図
示せず)に対応する。方法マップ540も参照541及
び543を内蔵し、その各々は、クラス・データベース
500内の方法オブジェクト549の中の異なる一つ一
つに対応する。参照541についての対応する方法オブ
ジェクトは図5に示されている。この例の目的のため
に、図5は、方法マップ540上の参照543が方法オ
ブジェクト550(これはED READである)
を指すことを示す。
【0051】上述した様に、クラス・データベース50
0内の方法オブジェクト549も階層的に記憶される。
方法オブジェクト549の各々は、方法を行うことの出
来る実行可能なコードへの参照を表す。好適な実施例と
同様の回路網データ処理システムにおいては、方法オブ
ジェクト549の各々に随伴していて、各方法オブジェ
クトにより特定される機能を行うことの出来る実行可能
なコードの多くのインスタンスがあり得る。例えば、各
メモリー150、250及び350(図1)において、
方法オブジェクトED READ550に実行可能な
コードの設備が随伴することが出来、その実行可能なコ
ードの各々は方法オブジェクトED READ55
0NO機能をプラットフォーム100、200、及び3
00のそれぞれの一つに行うことが出来る。好適な実施
例によるシステムは、3個の実行可能なコードの間で選
択を行うプロセスを包含する。
【0052】クラスに随伴する属性510とは異なっ
て、方法オブジェクト549に随伴するクラス・データ
ベース500の方法属性560は、回路網中の、方法オ
ブジェクト550などの特定の方法オブジェクトに随伴
するインスタンスの位置を示して実行するのに使われ
る。簡単のために、図5は、クラス・データベース50
0内の方法属性561の唯一の組を示す。組561に
は、クラス・データベース500内の方法オブジェクト
549の中の方法オブジェクト550が随伴している。
組560内の方法属性の幾つかは、該システムのユーザ
ーによって任意に指定されて実行中に該システムにより
使用されることが出来るけれども、或る属性は、オペレ
ーションにとっては重大である。
【0053】図5に示されている様に、組561内の方
法属性は、PlatformType=80286.M
S−DOS.InteractionType=BUI
LT IN.及びServerStatupType=S
HELLを包含する。好適な実施例では、他に二つの方
法属性が方法属性の組561に含まれている。一つは、
指定された方法サーバーが始動されなければならない場
合に、それを始動させるために使われるべき呼出しスト
リングを定義するInvocationString属
性である。この属性の値は、第1属性で指定される特定
のプラットフォームについて適切な値でなければならな
い。例えば、PlatformType属性の値がMI
PS.ULTRIXで、SeverStartupTy
pe属性の値がSHELLであれば、この属性の値は適
切なULTRIXシェル・コマンドであるべきである。 D.情報の流れ この発明の好適な実施例の詳細を説明する前に、システ
ム全体における情報の流れについて図6を参照して説明
する。
【0054】図6は、図1に示されている回路網50の
種々の構成要素と、これらの構成要素の間を流れる情報
とを示す図600を包含している。図6のアプリケーシ
ョン610及び670は、各々、アプリケーション12
0、220、又は320のいずれか一つにそれぞれ対応
しており、ACASソフトウェア構成要素620及び6
60は、各々、ACASソフトウェア構成要素130、
230、又は330のいずれか一つに対応している。ク
ラス・データベース640及びコンテキストオブジェク
トデータベース630は、メモリー150、250、及
び350の中の1個以上に記憶される。
【0055】以下に詳しく説明する様に、アプリケーシ
ョン610(これは、「クライアント・アプリケーショ
ン」と称する)は、メッセージを送る。該メッセージ
は、クライアント・アプリケーション(又はその他のア
プリケーション)のインスタンスを識別するのに使われ
るメカニズムであるインスタンス・ハンドルを包含する
ことがある。該メッセージは、クライアント・プラット
フォーム内のソフトウェア構成要素620に受け取られ
る。
【0056】ACASソフトウェア構成要素620は、
メッセージと、該インスタンス・ハンドルが指している
インスタンスのクラスとの名称を使って、クラス・デー
タベース640内の方法マップを見つけだす。ACAS
ソフトウェア構成要素620は、コンテキストオブジェ
クトデータベース630からのコンテキスト情報を使っ
て、該方法マップから、実行されるべき方法を表す方法
識別子を選択することも出来る。該コンテキスト情報
は、選択された方法をその上で実行するべきプラットフ
ォーム(「サーバー・プラットフォーム」と称する)を
選択するためにも使われる。該コンテキスト情報につい
て以下に詳細に説明する。
【0057】ACASソフトウェア構成要素620は、
クラス・データベース640から検索された方法識別子
とインスタンス・ハンドルとをサーバー・プラットフォ
ーム内のACASソフトウェア構成要素660に送る。
その後、ACASソフトウェア構成要素660は、「サ
ーバー・アプリケーション」670を使って、識別され
た方法を実行するために適切なステップを行うか、或い
は、ACASソフトウェア構成要素660を内蔵するサ
ーバー・プラットフォームが要求に答えることが出来な
いことをACASソフトウェア構成要素620に知らせ
る。この後者の場合、ACASソフトウェア構成要素6
20は、該コンテキスト情報を検討して該回路網内の他
のプラットフォームをサーバー・プラットフォームとし
て選択するか、又は、その要求が成就しなかったことを
クライアントに知らせる。
【0058】図6において確認された方法の、サーバー
・アプリケーション670による実行が、クライアント
・アプリケーション610に戻されるべきメッセージを
発生させたならば、そのメッセージは、追加の情報と共
に、サーバー・アプリケーション670からサーバー・
プラットフォーム内のACASソフトウェア構成要素6
60に渡される。サーバー・プラットフォーム内のAC
ASソフトウェア構成要素660は、クライアント・プ
ラットフォーム内のACASソフトウェア構成要素62
0に応答を送り、これは、その応答を該クライアント・
プラットフォーム内のクライアント・アプリケーション
610へ中継する。
【0059】これらのトランザクションの全てについて
以下に詳細に説明する。 E.メモリー・システム (1) 大域クラス・データベース メモリー・システム700の全体の図が図7に示されて
いる。メモリー・システム700は、大域クラス・デー
タベース705と、局所クラス・データベース710、
730及び750とを包含している。後述する他の或る
情報を回路網のユーザーが利用できる様にするために、
汎回路網メモリー705も設けられている。
【0060】大域クラス・データベース705は、プラ
ットフォームがアクセス出来る情報を内蔵する。好まし
くは、大域クラス・データベース705は、プラットフ
ォームのメモリー全体に分散されている。例えば、図7
において、大域クラス・データベース705は、メモリ
ー150、250、及び350の各々の中に部分的に内
在するものとして示されている。大域クラス・データベ
ース705の残りの部分は、図7に示されていない他の
メモリーに内在する。大域クラス・データベース705
の内容は、図4及び5に関して既に説明した。
【0061】当業者は、図7に示されている分散メモリ
ー構成は本発明を実施するのに必要ではないことを理解
するであろう。例えば、本発明の原理に影響を与えず
に、大域クラス・データベース705の全体を単一ノー
ドのメモリーに又は専用のメモリーに記憶させることが
出来る。また、メモリー150、250、及び350の
各々は、局所クラス・データベース710、730、及
び750と共に、ノード・キャッシュ720、740、
及び760をそれぞれ有するものとして示されている。
局所クラス・データベースの情報は、対応するプラット
フォーム上のユーザーだけがアクセス可能である。ノー
ド・キャッシュ720、740、及び760は、大域ク
ラス・データベース705の、対応するプラットフォー
ムによって頻繁にアクセスされる部分のコピーを保持す
るのに使われる。
【0062】該大域クラス・データベース構造を具体化
するのに使われるデータベース・システムは、単一のデ
ータベースの中の名称の大域的独自性、データベースを
横断する識別子の独自性、アクセス制御メカニズム、及
び適切な記憶及び検索メカニズムを支援するべきであ
る。大域的な名称の独自性は、包括的(generi
c)であるので、オブジェクトにとって重要である。識
別子の独自性は、後述する様にデータベースを組み合わ
せることを可能にする。
【0063】該データベース・システムのアクセス制御
メカニズムは、該回路網内の随意のプラットフォーム上
の正当と認められたユーザーがオブジェクト及び属性を
記憶し且つ検索することを可能にするものでなければな
らず、且つ、大域クラス・データベース705の完全性
を危険に曝すことを防止するために予防制御(secu
rity control)及び構文チェックを提供し
なければならない。この制御の詳細の一部を以下に説明
する。残りは、周知のデータベース管理技術に関わるも
のである。
【0064】本実施例は、(オブジェクト名称と同じ
く)オブジェクトを指すのに使うことの出来るオブジェ
クト識別子を大域クラス・データベース705内の各オ
ブジェクトに割り当てることが出来ることを必要とす
る。オブジェクト識別子は、2進コードであるので、好
都合なことに言語中立でもある。オブジェクト識別子
は、「大域的に」承認された方式に基づいて割り当てら
れ、そして、何個のクラス・データベースにわたっても
独特である。一方、オブジェクト名称は、単一のクラス
・データベースの中だけで独特であれば良い。クラス名
称と識別子との差異は、例によって良く理解することが
出来る。二つの会社が、各々それ自身のクラス・データ
ベースを持っていて、これらのデータベースを合併させ
たいと希望しているとする。これらのデータベースは、
合併されたデータベース内では異なっているべき同一の
名称のクラスを持っていることがあり、その差異は、大
域的に独特の識別子を通して維持されることが出来る。
該データベースは、合併されたデータベース内では同一
であるべき異なった名称の二つのクラスも持っているこ
とがある。これらのクラスは、同じクラス識別子を有す
ることとなる様にセットされることが出来る。よって、
オブジェクト識別子は、大域クラス・データベース内の
同じクラスが2以上のクラス名称によって識別されるこ
とを許す。例えば、回路網内の大域クラス・データベー
ス内のクラス名称EDITORSは、クラス名称WPR
OCESSORSによっても識別される。
【0065】ACASソフトウェア構成要素130、2
30、及び330の各々にも含まれている他のソフトウ
ェア構成要素は、クラス・データベース内で使用され記
憶されるための独特のオブジェクト識別子を作り出すメ
カニズムを提供する。好ましくは、オブジェクト名称の
永続的記憶を必要とするアプリケーションにより採用さ
れる記憶方式は、多数の大域クラス・データベース間の
命名の矛盾を避けるために、オブジェクト名ではなくオ
ブジェクト識別子を記憶するべきである。
【0066】好都合なことにアプリケーションはそれ自
身のアプリケーション・インスタンス・データの組を完
全に管理するので、大域クラス・データベース705は
アプリケーション・インスタンス・データを記憶するよ
うにはなっていない。このために、既存のアプリケーシ
ョンは、その現在の記憶戦略を続けることが出来、新し
いアプリケーションのために利用可能な記憶オプション
は制限されない。
【0067】しかし、好適な実施例は、二つのメカニズ
ム、即ち記憶クラス及びインスタンス命名を提供し、こ
れにより、アプリケーションは、その専用のインスタン
スを、好適な実施例によって維持される大域クラス・デ
ータベース705に接続することが可能となる。記憶ク
ラスは、アプリケーションが専用のインスタンスの解釈
の仕方を指定することを可能にする抽象である。記憶ク
ラスは、インスタンスがメッセージにおいて使われると
きに各インスタンスのクラスを識別することの代わりと
なるものである。好適な実施例では、記憶クラスは、イ
ンスタンスの名称を内蔵するレポジタリー(repos
itories)又はファイルなどの記憶システムを特
定する。例えば、記憶クラスは、RMS FILEやU
NIX FILEなどの既知の記憶メカニズムを記述す
ることが出来る。
【0068】この発明のオブジェクト指向アーキテクチ
ャでは、記憶クラスはクラスであるとも見なされる。ク
ラス・データベースに記憶されている他のクラスと同じ
く、記憶クラスは、属性、メッセージ、及び方法から成
る実際のオブジェクト指向クラス定義と見ることの出来
るものである。各記憶クラスに随伴する方法は、そのイ
ンスタンスの記憶クラスにより識別される特定の記憶シ
ステムに随伴するインスタンスについてのクラス名を検
索するのに使われる。
【0069】他方のメカニズム、即ちインスタンス命
名、は好適な実施例においてインスタンスの命名のため
に標準を使用する。該標準インスタンス・ハンドルは、
以下の論理構造により表されるストリングである: <class><storage class><lo
cation><instance referenc
data> 「クラス」(class)という用語は、随伴するAC
ASクラスの名称である。「記憶クラス」(stora
ge class)という用語は、クラス名の代わりで
あって、記憶クラスの名称である。「位置」(loca
tion)という用語は、インスタンスの、ノードなど
の論理的位置である。「位置」は随意的であって、イン
スタンスがある位置と同じ位置で方法が走ることをクラ
イアントが希望する場合に使用されるものである。「イ
ンスタンス基準データ」(instance refe
rence data)という用語は、インスタンス・
ハンドルは、アプリケーション専用部分である。
【0070】インスタンス・ハンドルは、設備がインス
タンスを抽象的に指すことを可能にし、従ってインスタ
ンス自体を管理する必要が無い。インスタンス・ハンド
ルは、好都合なことには、クラス又は記憶クラス(必要
ならば)、インスタンスの位置、及び該インスタンスに
ついての識別子を含む。例えば、 EDIT(INSTANCE HANDLE) というメッセージにおいて、EDITは所望のオペレー
ションを表す。INSTANCE HANDLEストリ
ングは、ASCII FILE/NODE 1/MYF
ILE.TXTであることが出来る。このインスタンス
・ハンドルでは、ASCII FILEはクラスを表
し、NODE 1はインスタンスの位置であり、MYF
ILE.TXTは該インスタンスの識別子である。この
メッセージは、適切な方法マップを発見するのに充分な
クラス及びメッセージ情報を提供する。好適な実施例が
達成するのと同じ目的を達成するためにINSTANC
HANDLEストリングについて他のフォーマット
を使用することも出来ることは当業者には明らかであろ
う。
【0071】既に説明した様に、好適な実施例の大域ク
ラス・データベース内の全てのクラスは特定の大域クラ
ス・データベースと共に独特の名称を持っている。該ク
ラス名は、一般に、該クラスを最初に定義するユーザー
によって割り当てられる。 (2) 局所クラス・データベース 大域クラス・データベースに加えて、好適な実施例は、
クラス及び方法定義についての局所クラス・データベー
スも支援する。局所クラス・データベースは、局所クラ
ス・データベースの内容が大域的に利用可能ではないこ
とを除いて、大域クラス・データベースと同様に機能す
る。これらは、その局所ノードのために利用可能であれ
ばよい。よって、局所クラス・データベースを他の切に
分散させたり複写したりする必要はない。
【0072】図7は、それぞれメモリー150、25
0、及び350内における局所クラス・データベース7
10、730、及び750の好適な設備を示す。大域ク
ラス・データベース710、730、及び750は、該
大域クラス・データベースに未だ加えられていない対応
するノードにより作られるクラス及び方法を保持する。
好適な実施例では、メモリー150、250及び350
は、それぞれ、ノード・キャッシュ720、740及び
760も含んでおり、それは、大域クラス・データベー
ス705からロードされる方法及びクラス情報を保持す
る。キャッシュは、最適化であり、厳密に要求されるわ
けではない。
【0073】局所クラス・データベースを具体化するの
に使われるデータベース・システムは、単一のデータベ
ースの中で名称の独自性をもたらさなければならない。
局所クラス・データベースのためのアクセス制御は、デ
ータベース・レベルでのみ必要とされるに過ぎない。局
所クラス・データベースの好適な実施例は、該局所クラ
ス・データベースの内容へのアクセスを制御するために
該データベース・システムの中で下に位置する機密メカ
ニズム(security mechanism)に依
拠する。
【0074】局所クラス・データベースの使用は、大域
クラス・データベースの使用に比べて幾つかの利点をも
たらす。例えば、局所クラス・データベースは、回路網
が利用できないときでもオブジェクト指向的に相互に通
信し続ける能力を各ノード上のアプリケーションに与え
る。その様な場合、該ノード上のアプリケーションは、
そのノードに特有の他のアプリケーションを呼出し続け
ることが出来る。
【0075】また、多くの呼出しは、単一のプラットフ
ォームの範囲内で完全に操作されることが出来るので、
局所クラス・データベースを使えば、該局所クラス・デ
ータベースと同じノード内にあるアプリケーションのた
めに一層良好な動作が得られる。局所的に取り扱われる
ことの出来る呼出しを殆どのアプリケーションが使いそ
うなプラットフォームの上では、局所クラス・データベ
ースを使うと、呼出しを達成するために大域クラス・デ
ータベースにアクセスするなどの回路網の活動の必要が
無くなり、又は大いに減少する。
【0076】大域データベースを探索する前に局所デー
タベースを探索することにより、クラス・データベース
はクラス及び方法の情報について好都合に探索される。
各ノードの局所データベースは、後述する所定の順序で
好都合に探索される。所望の情報の位置が突き止められ
ると、直にその探索は停止する。所望の情報の位置が局
所データベース内に突き止められない場合に限って、大
域データベースが探索される。よって、該探索順序は、
クラス・データベースの「優先順位」を定義する。
【0077】図8は、局所クラス・データベース800
の一部の一つの設計を示す。しかし、この設計は、ハン
ドルにとって重大ではない。好ましくは、局所クラス・
データベースは800は、局所クラス・データベース8
00においてインデックス及び割り振りマップなどの、
組織に関する他の情報の位置を示すのに使われるデータ
ベース・ヘッダ−810を内蔵する。局所クラス・デー
タベース800は、クラス及び方法に関する情報を保持
する数個のブロック820、822、及び824を内蔵
するブロック記憶スペース815も包含する。
【0078】図9は、ブロック820、822、又は8
24であることの出来るブロック900の好都合な構成
を示す。ブロック900は、ブロック900の始めに位
置する、該ブロック内のオブジェクトの位置を特定する
登録簿910と、オブジェクト記憶部920とを包含す
る。登録簿910内の項目955及び965は、各々、
ブロック900のオブジェクト記憶部920内に位置す
る異なるオブジェクト950及び960に対応する。各
登録薄項目は、IDフィールド912についての値(こ
れは対応するオブジェクトを特定する)、OFFSET
フィールド915についての値(これは、ブロック90
0内の対応するオブジェクトの相対的位置を表す)、及
び、対応するオブジェクトに割り振られたブロック90
0の量を示すSIZEフィールド917についての値を
包含する。
【0079】オブジェクト950及び960は好都合な
ことには文字ストリングとして書式作成されるが、他の
技術を使うことも出来る。再び図8を参照すると、局所
クラス・データベース800は、好都合なことには、そ
の名称をオブジェクト識別子に相関させることによっ
て、オブジェクトを検索することを可能にするNAME
−TO−ID−INDEX830を包含する。
【0080】オブジェクト識別子は、ID TO BL
OCK NO.MAP840に含まれている。マップ8
40は、局所クラス・データベース800において識別
される各々の独自のオブジェクトについてのブロック番
号を提供する。局所クラス・データベース800内の残
りのフィールドは、BLOCK TABLE850であ
る。BLOCK TABLE850は、好都合なことに
は、ブロック820、822、及び824の位置と、局
所クラス・データベース800の中の利用可能なスペー
ス829の位置とを包含する。利用可能なスペース82
9は、局所クラス・データベース800により割り振ら
れたブロック記憶スペース815の未使用スペースであ
る。
【0081】局所クラス・データベース800からオブ
ジェクトを検索するために、そのオブジェクトについて
の名称がNAME−TO−ID−INDEX830にマ
ッピングされる。NAME−TO−INDEX830か
らの識別子情報は、ID−TO−BLOCK NO.M
AP840を使って適切なブロック番号へマッピングさ
れる。該マッピングは、所望のオブジェクトが現在ある
場所のブロック番号をもたらす。所望のオブジェクトを
伴うブロックの位置が示されると、オブジェクト登録簿
910を使ってそのオブジェクトが発見される(図
9)。 (3) ローダー/アンローダー 図10に示されている様に、好都合なことには、局所ク
ラス・データベース100、大域クラス・データベース
1020、及びノード・キャッシュ1030の間にLO
ADER/UNLOADERソフトウェア構成要素10
10が接続されている。LOADER/UNLOADE
Rソフトウェア構成要素1010は、ACASソフトウ
ェア構成要素130、230、及び330(図1)の一
部であり、局所データベース1020、ノード・キャッ
シュ1030、及び局所クラス・データベース1020
への、及びこれらからの、ACAS情報の転送を制御す
るために使われる。好適な実施例では、LOADER/
UNLOADERソフトウェア構成要素1010は、局
所クラス・データベース1000が情報を大域クラス・
データベース1020にロードし、ノード・キャッシュ
1030がクラス・データベース情報を大域クラス・デ
ータベース1020から検索することを可能にする。ロ
ード及びアンロードの際に、LOADER/UNLOA
DER構成要素1010は、好都合なことには記憶のた
めにメモリー150を使用する。
【0082】LOADER/UNLOADERソフトウ
ェア構成要素1010は、局所クラス・データベース1
000内のクラス情報を大域クラス・データベース10
20へ転送することを希望するユーザーにより作動させ
られる。この転送により、以前は該プラットフォームだ
けに対してアクセス可能であった情報に、大域クラス・
データベース1020を通じて全ての回路網ユーザーが
アクセス出来る様になる。局所クラス・データベース1
000からのクラス情報の、大域クラス・データベース
1020への転送は、好都合なことには、ASCIIフ
ォーマットのクラス及び方法オブジェクト定義をLOA
DER/UNLOADERソフトウェア構成要素101
0に送って大域クラス・データベースにロードさせるこ
とにより達成される。LOADER/UNLOADER
ソフトウェア構成要素1010は、好都合なことには、
局所クラス・データベースにより記憶されている言語定
義を分解するプロセスを実行し、それらの定義を適切な
ASCII表示に変換する。LOADER/UNLOA
DER1010は、大域クラス・データベースにより適
切なフォーマットで記憶されるべきこのASCII表示
のフォーマットを整える。
【0083】LOADER/UNLOADERソフトウ
ェア構成要素1010は、ノード・キャッシュ1030
へのロードのために大域クラス・データベース1020
から情報をアンロード又は検索するユーザーからの要求
にも応答しなければならない。検索された情報は、好都
合なことには、LOADER/NLOADERソフトウ
ェア構成要素1010により言語定義に変換され、この
定義はノード・キャッシュ1030に記憶される。 F.クラス及び方法の創出、定義/登録 (1) 創 出 好都合なことには、クラスは、例えばLOADER/U
NLOADERにおいて使われる言語などの非手順言語
を使って定義され、次にコンパイルされてクラス・デー
タベースにロードされる。該言語、コンパイラ及びロー
ダー・ソフトウェアは好都合なことにはオブジェクト定
義設備の構成要素である。他の周知の技術も、当業者に
は自明であろう。
【0084】該オブジェクト定義設備は、ACASソフ
トウェア構成要素130、230、及び330(図1)
の一部であって、クラス、メッセージ、クラス属性、方
法及び方法属性を定義する手段を提供する。この設備
は、クラス間の受け継ぎの指定にも対処するものであっ
て、上記のLOADER/UNLOADERソフトウェ
ア構成要素1010と共に、大域クラス・データベース
及び局所クラス・データベースの中の既存の定義を修正
するために使われることが出来る。また、該オブジェク
ト定義設備は、好都合なことには、大域クラス・データ
ベース内で新しいクラス及び方法定義を作るのに使われ
るクラス定義入力及び方法定義入力の所要の構文チェッ
クを行う。該オブジェクト定義設備のユーザーは、クラ
スを作るために或る情報を指定しなければならない。こ
の情報は、好都合なことには、大域クラス名称及び識別
子;このクラスの上位クラスの大域名称及び識別子(若
しあるならば);このクラスにより支援されるメッセー
ジと、それに付随するアーギュメントのタイプ(若しあ
るならば);定義される方法マップ及び各マップが関連
するメッセージ;並びに、このクラスについて定義され
た属性、を包含する。
【0085】各メッセージは、好都合なことには、メッ
セージの名称、該メッセージにより支援されるパラメー
ター、及び対応する方法マップを含む構造を生成するこ
とにより指定される。各メッセージ構造は、好適な実施
例では2組の値に変換される。1組の値は、メッセージ
名と、該メッセージにより支援されるパラメーターのリ
ストとを包含する。他の組の値は、該メッセージの実施
を表す方法オブジェクトの組を特定する。
【0086】方法オブジェクトは、クラスと同じ方法で
回路網環境内で定義される。しかし、好適な実施例のオ
ブジェクト定義設備は、方法オブジェクトの定義のため
の特別の備えを持っている。方法オブジェクトを定義す
るとき、次の情報、即ち、該方法オブジェクトの大域名
称と識別子;該方法オブジェクトの上位クラスの大域名
称と識別子;並びに、方法属性として記憶されるメタデ
ータ(即ち、データの記述)、が指定される。該方法定
義は、アーギュメント、及び、該メッセージ内のパラメ
ーターに対応するそのタイプ、並びに、該方法がパラメ
ーター・リストを含むか否か、を指定する。このパラメ
ーター・リストは、該方法により呼び出されることの出
来る実行可能なコード(後述する)により要求される入
力を表す。 (2) 方法/クラス定義 好適な実施例では、クラス及び方法定義のロードは、実
行時間前に行われ、或いは実行時間中に動的に行われ
る。クラス及び方法オブジェクトは、回路網内のノード
上で局所的にアクセス可能であるか(「局所定義」と称
する)、又は回路網内の全てのプラットフォームから大
域的にアクセス可能である(「大域定義」と称する)。
局所定義及び大域定義は、共に、LOADER/UNL
OADERソフトウェア構成要素1010又は他の何ら
かの許容出来るメカニズムを使って達成されることが出
来る。 (3) サーバー登録 サーバー登録の目的は、メッセージからの要求に答える
ために利用出来る方法サーバーを発見することである。
方法サーバーは、方法を実現する活動中の(即ち、現在
走っている)プロセスである。方法サーバーは、単一の
アプリケーションのコード又は1個以上のアプリケーシ
ョンのコードの多くの部分の実行を必要とすることがあ
る。
【0087】方法サーバーの登録は、クラス及び方法オ
ブジェクトの定義とは別である。クラス及び方法オブジ
ェクトの定義は、システムにおけるそれらの存在を識別
するために使われるのに対して、方法サーバーの登録
は、それらの状況(即ち、使用可能性)を追跡するため
に使われる。方法サーバーが登録されなければ、それは
システムにとっては未知である。 (4) アプリケーションの設置及び定義 好都合なことには、回路網においてアプリケーションを
登録し設置するために支援メカニズムが設けられる。好
適な実施例は、クラス・データベースに記憶されている
クラス、下位クラス、メッセージ及び方法のオブジェク
ト指向モデルにおいてアプリケーション及びアプリケー
ション断片を定義する能力をもたらす。この様なアプリ
ケーションの定義は、この発明の好適な実施例により行
われるアプリケーション間通信の実行のために重要であ
る。詳しく言うと、クラス・データベース内のクラス・
下位クラス、メッセージ及び方法の記憶は、アプリケー
ションが、実行時間中に該クラス・データベースを更新
すると共に、再コンパイルと再連係とを必要とすること
無くその更新したクラス・データベースを使って処理し
続けることを可能にする。
【0088】アプリケーションは、他のクラスと同様に
して定義される。実際、上述した様に、アプリケーショ
ンは、それ自体が特別の種類のクラスであると定義され
る。アプリケーションは、そのプラットフォーム上の特
定のオペレーティングシステムに必要とされる方法でプ
ラットフォーム上に設置される。この発明の好適な実施
例では、アプリケーション設置は、幾つかの追加の機能
も必要とする。例えば、既に定義されているのでなけれ
ば、アプリケーションは、既存のACAS APPLIC
ATIONの下位クラスとして定義されるそれ自身のク
ラス定義を設けなければならない。
【0089】アプリケーション設置は、既に設置されて
いるクラス定義を使ってもよく、或いは新しい定義を付
加してもよい。アプリケーション設置時には、設置手順
は、該アプリケーションにより支援されるクラス定義を
コンパイルして、上記したLOADER/UNLOAD
ERソフトウェア構成要素1010を使って局所クラス
・データベース又は大域クラス・データベースに登録す
ることが出来、その新しいアプリケーションによる影響
を受けるデータオブジェクトクラスの方法マップを更新
しなければならない。アプリケーション設置は、上記し
た方法オブジェクト定義手順も必要とする。 G.コンテキストオブジェクトデータベース この発明の好適な実施例では、コンテキストオブジェク
トデータベース630(図6を見よ)は方法を分解し、
方法を実行するべきプラットフォームを選択し、回路網
内にクラス・データベースを置くために使われるべき優
先順位を定義するメカニズムを提供する。数レベルのコ
ンテキストオブジェクトデータベースが図1の回路網5
0内に存在することが出来る。例えば、1レベルはユー
ザーコンテキストオブジェクトデータベースから成り、
もう一つのレベルはグループコンテキストオブジェクト
データベースから成る。システム(又はプラットフォー
ム)コンテキストオブジェクトデータベースも、該プラ
ットフォーム全体のユーザーのために優先順位を特定す
るために使われる。全てのコンテキストオブジェクトデ
ータベースは、方法分解時に優先順位を供給するけれど
も、グループコンテキストオブジェクトデータベース
は、2以上のユーザーの優先順位を認識するためにAC
ASソフトウェア構成要素130、230、及び330
により使われ、システムコンテキストオブジェクトデー
タベースは、2以上のグループの優先順位を認識するた
めに使われる。好都合なことには、方法分解において、
ユーザーコンテキストオブジェクトデータベース内の優
先順位がグループコンテキストオブジェクトデータベー
ス内のそれをオーバーライドし、それがシステムコンテ
キストオブジェクトデータベースをオーバーライドする
様に、コンテキストオブジェクトデータベース630内
のデータベースは使われる。
【0090】コンテキストオブジェクトデータベース6
30は、好都合なことには、特定の回路網セッション時
にユーザーに随伴するプラットフォーム上にある。ユー
ザーが回路網に入るときに実行される初期ログオン手順
において、そのユーザーに随伴するコンテキストオブジ
ェクトデータベースに記憶されている情報は、後にAC
ASソフトウェアの動作時に使用されるために呼び出さ
れる。
【0091】図11は、コンテキストオブジェクトデー
タベース1100のための好適なメモリーシステムを示
す。コンテキストオブジェクトデータベース1100
は、方法オーバーライド・テーブル1110、サーバー
・ノード・テーブル1150、及びクラス・データベー
ス・オーバーライド・テーブル1170、並びに他のユ
ーザー定義テーブル1180を含む。方法オーバーライ
ド・テーブルは、メッセージ名と、インスタンス・ハン
ドルにおいて特定されるクラスとに応じて好適な方法を
選ぶために、方法分解(詳しく後述する)の際に使われ
る。サーバー・ノード・テーブル1150は、プラット
フォームを選んで、サーバー・プラットフォームである
ことの出来る回路網内に置くために、呼出し動作(これ
についても詳しく後述する)の際に使われる。クラス・
データベース・オーバーライド・テーブル1170は、
方法及びクラス情報について局所クラス・データベース
を探索する順序を定義する。
【0092】テーブル1110、1150、及び117
0は、システム供給テーブルである。ユーザーは、自身
の好みを実現するために自身のテーブル1180を供給
してもよい。方法オーバーライド・テーブル1110の
好適な実施例が図11Bに示されている。方法オーバー
ライド・テーブル1110は、方法セレクター属性名称
1115と、随伴する値1120とのリストを含む。各
項目は、属性名称1115について、好適な値1120
を指定する。例えば、図12において、好適なプラット
フォームはVAX.VMSと指定され、好適な相互作用
タイプはBUILT INである。2以上の方法がメッセ
ージに応じて特定されると、テーブル1110内の優先
順位は、それらの方法の中から一つを選ぶのに使われ
る。属性について値が指定されていなければ、システム
は、優先順位は無いと見なす。
【0093】コンテキストオブジェクトデータベース1
100のサーバー・ノード・テーブル1150の好適な
実施例が図13に示されている。サーバー・ノード・テ
ーブル1150は、図1の回路網50内のノードの順序
づけられたリストである。テーブル1150内の各項目
は、プラットフォーム・タイプ1152と、選ばれた方
法を実施するのに使われることの出来る対応するプラッ
トフォーム・タイプを伴う回路網50内のノード115
4の場所とに対応する。例えば、テーブル1150は、
TYPE Aのプラットフォームタイプについて2個の
ノード、ノードa及びノードb、を特定している。
【0094】図14は、クラス・データベース・オーバ
ーライド・テーブル1170の好適な実施例を包含す
る。テーブル1170は、局所クラス・データベース1
172の名称と、その場所1174とを含む数個の項目
を包含している。項目1175については、データベー
スDB SCH LSTは場所dbl及びdb2にあ
り、テーブル1170のもっと下側に列挙されている他
の局所クラスオブジェクトデータベースより前に探索さ
れる。
【0095】本発明の好適な実施例は、コンテキストオ
ブジェクトデータベースを作成し、システムコンテキス
トオブジェクトデータベースの各々の中の項目を付加
し、修正し及び削除する能力をもたらす回路網の全ユー
ザーに利用可能なインターフェースを包含する。このイ
ンターフェースは、好都合なことには、これらの機能を
行うために標準的コンパイラを実行する。例えば、コン
テキストオブジェクトデータベースに項目を付加するた
めには、ユーザーは、設けられているインターフェース
を使ってコマンドを入力する。そのコマンドは、ACA
Sソフトウェア構成要素130、230、及び330
(図1)により解釈されて、該インターフェースが受け
取ったデータを該標準的コンパイラにより適切なフォー
マットに変換せしめる。 H.ACASサービス (1) 一般的動作 この発明の好適な実施例の或る構成要素についての以上
の説明で、ACAS構成要素についての充分な理解が得
られるであろう。好都合なことには、本発明は、クライ
アントが要求を発生させ、サーバーが要求に答えるクラ
イアント/サーバー・モデルを使って実施される。以下
の記述においては、クライアント・プラットフォーム上
のクライアント・アプリケーションに随伴するサービス
又はオペレーションは「クライアント・サービス」と呼
ばれ、サーバー・プラットフォーム上で実行するサーバ
ー・アプリケーションに随伴するサービス又はオペレー
ションは「サーバー・サービス」と呼ばれる。好適な実
施例のクライアント・サービス及びサーバー・サービス
は、クライアント・プラットフォームからのメッセージ
をサーバー・プラットフォームへ、及びサーバー・プラ
ットフォームから、送ることの出来る輸送システムに依
拠する。好適な実施例では、RPCの様な通信システム
が該輸送システムとして使われる。
【0096】図1に示されているACASソフトウェア
構成要素130、230、及び330は、好都合なこと
には、クライアント・サービス及びサーバー・サービス
をそれぞれ表すクライアント・サービス構成要素及びサ
ーバー・サービス構成要素を包含する。これは、例え
ば、2個のプラットフォーム1200及び1300と回
路網バス55との図である図15に示されている。プラ
ットフォーム1200及び1300は、図1のプラット
フォーム100、200、又は300のいずれにも対応
することが出来る。
【0097】プラットフォーム1200及び1300内
に、それぞれ、メモリー1250及び1350と、CP
U1210及び1310とがある。プラットフォーム1
200及び1300内の要素は、図1に関して上記した
類似の要素と同様に機能する。CPU1210はクライ
アント・アプリケーション1220を実行し、CPU1
310はサーバー・アプリケーション1320を実行す
る。CPU1210及び1310は、OP SYS 1
1240及びOP SYS 2 1340もそれぞれ
実行し、且つ、ACASソフトウェア構成要素1230
及び1330もそれぞれ実行する。
【0098】ACASソフトウェア構成要素1230及
び1330は、好都合なことには、指名ソフトウェア構
成要素1232及び1332をそれぞれ包含し、制御サ
ーバー・ソフトウェア構成要素1234及び1334を
それぞれ包含し、呼出しソフトウェア構成要素1236
及び1336をそれぞれ包含し、補助ソフトウェア構成
要素1237及び1337をそれぞれ包含している。
【0099】大抵、呼出しソフトウェア構成要素123
6及び1336はクライアント・サービスを表し、指名
ソフトウェア構成要素1232及び1332はサーバー
・サービスを表す。補助ソフトウェア構成要素1237
及び1337は、好適な実施例の他の或るオペレーショ
ンを表す。回路網内のプラットフォーム1200及び1
300は、呼出しソフトウェア構成要素1236及び1
336をそれぞれ内蔵し、制御サーバー・ソフトウェア
構成要素1234及び1334をそれぞれ内蔵し、指名
ソフトウェア構成要素1232及び1332をそれぞれ
内蔵しているので、いずれのプラットフォームもクライ
アントとして又はサーバーとして活動することが出来
る。
【0100】好適な実施例では、呼出しソフトウェア構
成要素1236及び1336と指名ソフトウェア構成要
素1232及び1332とは、コンテキストオブジェク
トデータベース内のコンテキストデータと同様にクラス
・データベース内のクラス及び方法情報を解釈して、呼
び出すべき適切な方法を決定し、その方法をどの様にし
て呼び出すかを決定し、その方法を実施するコードを実
行するために必要なコマンドを指名する責任を有する。
呼出しソフトウェア構成要素1236及び1336及び
指名ソフトウェア構成要素1232及び1332は、ク
ライアント・アプリケーションを方法呼出し及び輸送レ
ベル・メカニズムの詳細から隔離させる。
【0101】制御サーバー・ソフトウェア構成要素12
34及び1334は、幾つかの機能を持っている。一つ
の機能は、現在作動中のサーバー・アプリケーションに
関する情報を回路網50内のプラットフォーム1200
及び1300に記憶させることである。制御サーバー・
ソフトウェア構成要素1234及び1334は、方法サ
ーバーとなる新しいアプリケーションを始動させるプロ
セスも実行する。制御サーバー・ソフトウェア構成要素
1234及び1334が行う他の機能は、方法サーバー
登録である。例えば、制御サーバー・ソフトウェア構成
要素1334は、サーバー・プラットフォーム1300
上で現在作動している、サーバー・アプリケーション1
320により特定される方法サーバーに関する情報を記
憶する。制御サーバー・ソフトウェア構成要素1334
は、汎回路網メモリー704(図7)におけるサーバー
登録設備とも通信して、サーバー・アプリケーション1
320に関する状況情報を記憶する。
【0102】補助ソフトウェア構成要素1237及び1
337は、クラス及び方法オブジェクト定義及び登録、
各プラットフォームの方法実行可能なカタログにおける
方法実行可能な登録(後述する)、LOADER/UN
LOADERソフトウェア構成要素1010(図10)
の機能などのACASソフトウェア構成要素1230及
び1330のオペレーションを表す。
【0103】以下の説明の目的のために、プラットフォ
ーム1200はクライアント・プラットフォームと呼ば
れ、プラットフォーム1300はサーバー・プラットフ
ォームと呼ばれる。この例では、クライアント・アプリ
ケーション1220は、サーバー・プラットフォーム1
300内のサーバー・アプリケーション1320とオブ
ジェクト指向的に通信する。本発明に従って、好適な実
施例においては、1プラットフォーム上のクライアント
・アプリケーションは、同じプラットフォーム上のサー
バー・アプリケーションと通信することが出来る。
【0104】クライアント・アプリケーション1220
がサーバー・アプリケーション1320と通信すると
き、クライアント・プラットフォーム1200の指名ソ
フトウェア構成要素1232及び制御サーバー・ソフト
ウェア構成要素1234は関与しないので、図15では
陰が付けられている。同じく、サーバー・プラットフォ
ーム1300の呼出しソフトウェア構成要素1336
は、活動していないので、陰が付けられている。
【0105】図16は、好適な実施例に従う方法の呼出
しにおいて行われる主な機能の概略を示す流れ図136
0である。流れ図1360中のステップを開始する前
に、ACASソフトウェア構成要素1230及び133
0は最初に「待ち」状態にある。クライアント・アプリ
ケーション1220が方法呼出し要求を送るとき、図1
6に示されているACASソフトウェア構成要素123
0及び1330のプロセスが始まる。この方法呼出し要
求は、クライアント・アプリケーション1220の所望
のオペレーションを特定する入力メッセージを包含す
る。
【0106】第1に、該方法呼出し要求は呼出しソフト
ウェア構成要素1236に受け取られ(ステップ137
0)、この構成要素1236は該方法呼出し要求を処理
する(ステップ1375)。呼出しプロセスについて
は、以下に詳しく説明する。呼出しプロセスの普通の結
果は、処理済み方法呼出し要求である。次に、呼出しソ
フトウェア構成要素1236は、処理済みの方法呼出し
要求を、回路網バス55を介して指名ソフトウェア構成
要素1332に送る(ステップ1380)。指名ソフト
ウェア構成要素1332及び制御サーバー1334は、
そのとき、それらの動作を開始する。
【0107】その処理済み方法呼出し要求を受け取った
後、指名ソフトウェア構成要素1332及び制御サーバ
ー・ソフトウェア構成要素1334は、該呼出し要求に
より特定される方法をサーバー・アプリケーション13
20により実行させる(ステップ1390)。サーバー
・アプリケーション1320は、該方法の実行を完了す
ると、その実行から生じたアーギュメントを出力し、指
名ソフトウェア構成要素1332は状況メッセージ(例
えば、「成功」)を生成する。その出力アーギュメント
及び状況メッセージは、処理済み方法呼出し要求(今
や、「応答」と呼ばれる)にマッピングされる。次に、
この応答は該指名ソフトウェア構成要素1332によっ
て呼出しソフトウェア構成要素1236に送られる。呼
出しソフトウェア構成要素1236は、元の方法呼出し
要求にマッピングされた指名ソフトウェア構成要素13
32から受け取られた応答をクライアント・アプリケー
ション1220に戻す(ステップ1395)ことによっ
て処理を完了する。
【0108】ACASソフトウェア構成要素1230及
び1330についての以上の説明により、この発明の好
適な実施例における情報の流れを良く理解出来る。図1
7は、呼出しソフトウェア構成要素1236から指名ソ
フトウェア構成要素1332への情報の流れによる影響
を受ける回路網50の他の要素を示す。クライアント・
アプリケーション1220、サーバー・アプリケーショ
ン1320、呼出しソフトウェア構成要素1236、指
名ソフトウェア構成要素1332、及び制御サーバー・
ソフトウェア構成要素1334に加えて、図17は、コ
ンテキストオブジェクトデータベース630(図6)、
クラス・データベース640(図6)、サーバー登録設
備1420、及び制御サーバー登録1425を包含する
が、これは、制御サーバー・ソフトウェア構成要素13
34によって維持されて、サーバー・プラットフォーム
内の実行可能なコードを追跡する。
【0109】図14に示されている様に、コンテキスト
オブジェクトデータベース630は、ユーザーコンテキ
ストオブジェクトデータベース1402、グループコン
テキストオブジェクトデータベース1404、及びシス
テムコンテキストオブジェクトデータベース1406を
包含しており、この各々については、コンテキストオブ
ジェクトデータベースに関する説明において上述してあ
る。クラス・データベース640は、局所データベース
1000(図10)、ノード・キャッシュ1030、及
び大域クラス・データベース1020を包含する。クラ
ス・データベース640のこれらの要素の各々につい
て、クラス・データベースに関する説明において上述し
てある。
【0110】上述した様に、呼出しソフトウェア構成要
素1236に送られる方法呼出し要求をクライアント・
アプリケーション1220が生成するときに情報の流れ
が始まる。このインターフェースは、好都合なことに
は、好適な実施例のInvokeMethod手順コー
ルにより提供される。InvokeMethod手順コ
ールにおいては、クライアント・アプリケーション12
20は、インスタンス・ハンドルと、メッセージ(メッ
セージ名、及びパラメーター・リストを含む)と、コン
テキストオブジェクトハンドルと、随意に出力インスタ
ンス・ハンドルとを、呼出しソフトウェア構成要素12
36に送る。
【0111】以上に詳しく説明した様に、インスタンス
・ハンドルは、方法呼出しに関与すべくクライアント・
アプリケーション1220が選んだ現在のインスタンス
を特定する構造である。メッセージ名は、該インスタン
スに対する所望のオペレーションを表す。メッセージ・
パラメーター・リストは、該メッセージが要求するパラ
メーターから成る。コンテキストオブジェクトハンドル
は、詳しく後述する呼出しプロセスにおいて使われるべ
きコンテキストオブジェクトデータベースを特定する参
照である。出力インスタンス・ハンドルは、呼び出され
る方法に随伴する作動中の方法サーバーのインスタンス
を表す。これにより、クライアント・アプリケーション
は、同じ方法サーバーとの対話を持ち続けることが出来
る。出力インスタンス・ハンドルの意味論は、インスタ
ンス・ハンドルについてのそれと同じである。
【0112】呼出しソフトウェア構成要素が方法呼出し
要求を受け取ったとき、呼出しソフトウェア構成要素1
236は、方法識別子を発見するためにコンテキストオ
ブジェクトデータベース630及びクラス・データベー
ス640に問い合わせる。この手順については上述し
た。該メッセージ名についての適切な方法識別子を決定
すると、呼出しソフトウェア構成要素1236は、次
に、該方法識別子に随伴する方法をその上で実行するべ
きサーバー・プラットフォームを発見するためにサーバ
ー登録設備1420とコンテキストオブジェクトデータ
ベース630とに問い合わせる。サーバー登録設備14
20は、該方法識別子に随伴する方法を行うことの出来
る作動中の方法サーバー(若しあるならば)の場所を確
認するために使われる。作動中の方法サーバーは、既に
始動したものとして自身を回路網50に知らせた、例え
ばサーバー・アプリケーション1320などの、方法サ
ーバーである。
【0113】若し作動中の方法サーバーがあるならば、
呼出しソフトウェア構成要素1236により処理される
呼出し要求の方法を実行させることをクライアント・ア
プリケーション1220のユーザーが望む回路網50
(図1)中の遠くのプラットフォームの場所を決定する
ために、呼出しソフトウェア構成要素は、コンテキスト
オブジェクトデータベース630のサーバー・プラット
フォーム・テーブルにも問い合わせる。しかし、サーバ
ー・アプリケーション1320が利用可能でなければ、
制御サーバー・ソフトウェア構成要素1334は、選ば
れた遠くのプラットフォーム上で該サーバー・アプリケ
ーションが利用可能でないことを呼出しソフトウェア構
成要素1236に知らせる。以上に略述した様に処理を
する呼出しソフトウェア構成要素1236は、特定され
た方法をその上で実行するべき回路網50内の他のプラ
ットフォームを選ぶために、コンテキストオブジェクト
データベース630及びサーバー登録設備1420のサ
ーバー・プラットフォーム・テーブルに再び問いあわせ
を始める。
【0114】次に、呼出しソフトウェア構成要素123
6は選択されたサーバー・プラットフォームの制御サー
バー・ソフトウェア構成要素1334に問いあわせを送
り、これによって、制御サーバー・ソフトウェア構成要
素1334は、処理済み方法呼出し要求で特定される方
法を処理するために、選択されたサーバー・プラットフ
ォーム上の所望の方法サーバーを利用できるか否か決定
するために制御サーバー登録1425に問いあわせをす
る。方法サーバーの利用可能性は、好適な実施例では、
制御サーバー登録1425において、クライアント・ア
プリケーションにより呼び出された方法を該方法サーバ
ーが現在処理出来るか否か検査することによって決定さ
れる。
【0115】サーバー・アプリケーション1320の形
の方法サーバーが利用可能であることを制御サーバー・
ソフトウェア構成要素1334が呼出しソフトウェア構
成要素1236に示せば、呼出しソフトウェア構成要素
1236は、該処理済み方法呼出し要求を該サーバー・
プラットフォームの指名ソフトウェア構成要素1332
へ送る。呼出しソフトウェア構成要素1236は、コン
テキストオブジェクトデータベース630からの情報を
送ることも出来るが、それは所望の方法サーバーによっ
て使用されることが出来る。
【0116】指名ソフトウェア構成要素1332は、そ
のとき、その所望の方法を処理し始める。このプロセス
(「指名プロセス」と称する)は、一般に、該方法識別
子を指名してサーバー・アプリケーション1320によ
る該方法の実行を始めさせることを含む。しかし、回路
網内のプラットフォームで現在作動しているサーバー・
アプリケーション1320のコピーがあることをサーバ
ー登録設備1420が示さなければ、呼出しソフトウェ
ア構成要素1236は、コンテキストオブジェクトデー
タベース630及びクラス・データベース640から検
索された情報を使って、サーバー・アプリケーション1
340を始動させる要求を制御サーバー・ソフトウェア
構成要素1334に送ることが出来る。サーバー・アプ
リケーション1320が始動させられた後、制御サーバ
ー・ソフトウェア構成要素1334は、サーバー登録設
備1420に通知して、サーバー・アプリケーション1
320が作動していることを示す様に汎回路網メモリー
704(図7)を更新させる。制御サーバー・ソフトウ
ェア構成要素は、サーバー・アプリケーション1320
が使用可能であることを示すように制御サーバー登録1
405も更新する。呼出しソフトウェア構成要素123
6は、そのとき、該処理済み方法呼出し要求を指名ソフ
トウェア構成要素1332に送って、該処理済み方法呼
出し要求の方法識別子に対応する方法を実行させる。
【0117】サーバー・アプリケーション1320は、
その処理を終えた後、該処理済み方法呼出し要求により
要求された出力情報を指名ソフトウェア構成要素133
2に戻す。指名ソフトウェア構成要素1332は、その
とき、上述したように、指名ソフトウェア構成要素13
32により受け取られた該処理済み方法呼出し要求の出
力アーギュメントにマッピングされた出力情報と共に、
応答を呼出しソフトウェア構成要素1236に戻す。 (2) 呼出しオペレーション 呼出しソフトウェア構成要素1236が行う方法呼出し
のプロセスの部分を、今や詳細に説明することが出来
る。好都合なことには、その部分は、呼び出されるべき
適切な方法を決定すること(方法分解)、サーバー接続
又は始動、及び、該方法サーバー又はその他の実行可能
なコードにより実行されるべき適切な方法への識別子の
指名を可能にする輸送レベル通信、を含む数個の別々の
段階から成る。
【0118】図18−21及び22は、図15及び17
の呼出しソフトウェア構成要素1236により行われ又
は呼ばれる手順の流れ図を含む。図18−21における
主な制御手順1550は、呼出しソフトウェア構成要素
1236により行われるステップ1370、1375、
及び1380(図16)を表す。手順1360の場合と
同じく、主制御手順1550に入る前に、クライアント
・アプリケーション1220(図15及び17)は通常
は方法呼出し要求無しに作動しており、ACASソフト
ウェア構成要素1230は「待ち」状態にある。クライ
アント・アプリケーション1220がInvokeMe
thod手順コールを使って方法呼出し要求を生成する
とき、主制御手順1550が始まり(図18のステップ
1552)、呼出しソフトウェア構成要素1236は方
法呼出し要求を受け取る(ステップ1555)。
【0119】呼出しソフトウェア構成要素1236は最
初に該方法呼出し要求を確認する(ステップ155
7)。若しエラーがあったならば、呼出しソフトウェア
構成要素1236はエラー・メッセージを生成し(ステ
ップ1558)、これを呼出しソフトウェア構成要素1
236はクライアント・アプリケーション1220に戻
す(図21のステップ1599)。
【0120】若し該方法呼出し要求が妥当であるならば
(図18のステップ1557)、呼出しソフトウェア構
成要素1236は、次に、呼び出されるべき方法を、I
nvokeMethodコール内のメッセージ、クラス
・データベース、及びコンテキスト対象データベースか
ら分解する(ステップ1560)。方法分解は、適切な
方法を決定又は特定するプロセスである。
【0121】図22は、方法を分解する好適な手順16
00を示す。方法分解について既に言及したけれど、手
順1600は、この様な分解について、叙上よりも遥か
に詳しく示す。好適な実施例では、呼び出されるべき適
切な方法の決定は、呼出しソフトウェア構成要素123
6により間接的に処理される。方法分解のための作業の
大半は、ACASソフトウェア構成要素1230及び1
330の補助ソフトウェア構成要素1237及び133
7によって処理される。好適な実施例では、補助ソフト
ウェア構成要素1237は、コンテキストオブジェクト
データベース及びクラス・データベースから情報を検索
する。勿論、呼出しソフトウェア構成要素1236も、
その様な情報を検索することが出来る。
【0122】方法分解手順1600を開始した後(ステ
ップ1605)、呼出しソフトウェア構成要素1236
は、インスタンス・ハンドルが記憶クラス名称部分を含
んでいるか否か判定する(ステップ1610)。若し記
憶クラスが存在するならば、その位置が確認され(ステ
ップ1620)そのインスタンス・ハンドルに随伴する
クラスの名称を検索するために特別の方法が呼び出され
る(ステップ1630)。
【0123】クラス名を検索するために記憶クラスによ
り特定される方法を呼び出した後、又は、インスタンス
・ハンドルが記憶クラス名を包含していないと判定した
後、上記の探索順序を使ってクラス・データベース64
0(図6及び17)についてクラス情報の位置を確認す
るために呼出しソフトウェア構成要素1236によって
プロセスが実行される(ステップ1640)。例えば、
メッセージがEDIT(INSTANCE HANDL
E)で、インスタンス・ハンドルがASCII FILE
/NODE 1/MYFILE.TXTであれば、クラ
ス名ASCII FILEを使ってクラス・データベー
ス640内のクラスASCII FILE1645を発
見することが出来る。
【0124】次に、該メッセージのEDITという名称
で、適切な方法マップ1655がクラス・データベース
640から検索される(ステップ1650)。説明して
いる特別の例では、好適な実施例の補助ソフトウェア構
成要素1237は、方法マップ1655を検索すると共
に、ステップ1640で位置が確認されたクラス情報が
メッセージ名EDITを包含することを検査して確かめ
る。これにより、対応するメッセージが該クラスにより
支援されることが保証される。
【0125】図22に示されている様に、方法マップ1
655は、メッセージ名EDIT及びクラスASCII
FILE1645について方法オブジェクトMETH
OD1及びMETHOD 2を包含する。方法オブジェ
クトMETHOD 1には属性の組1657が随伴し、
方法オブジェクトMETHOD 2には属性の組165
9が随伴している。属性の組1657は、METHOD
1がPLATFORM TYPE A上で実行される
ことが出来ることを示し、属性の組1659は、Met
hod 2がPLATFORM TYPE B上で実行
されることが出来ることを示す。
【0126】方法マップには数個の方法オブジェクトが
あるかも知れないので、曖昧さを解明するためにコンテ
キストオブジェクトデータベース640に参照符が付さ
れる(ステップ1660)。コンテキストオブジェクト
データベース640に参照符を付するとき、維持されて
いる適切なサーバー・ノード・テーブルも、後に使用さ
れるために検索される。
【0127】コンテキストオブジェクトデータベース6
30内の項目(若しあるならば)は、そのとき、方法オ
ブジェクト、従って、該メッセージにより表される所望
のオペレーションを実行する適切な方法とを選ぶために
(ステップ1680)、方法マップ上の方法コンテキス
トの組の中の属性と比較される(ステップ1670)。
図22において、方法オーバーライド・テーブル166
5は、ユーザー優先順位がPlatformType
Aについて優位であることを示す項目1668を含む。
この項目1668を使って、呼出しソフトウェア構成要
素1236は、クラス・データベース640から、所望
のオペレーションEDITを実行する適切な方法168
6を選ぶ。図22に示されている例では、適切な方法
は、PLATFORM TYPE A上で実行されるべ
きMethod 1である。手順1600は、今、図1
8乃至図21の主制御手順1550に戻る(ステップ1
685)。
【0128】方法分解手順1600の作動中の随意の点
において若しエラーがあれば(ステップ1640時など
に、インスタンス・ハンドルにおいて特定されたクラス
がクラス・データベースにおいて位置確認可能なクラス
でないならば)、方法分解手順1600は、このエラー
を示すメッセージと共に戻る。方法分解手順1600か
ら戻った後、方法分解プロセス時にエラーが発生したか
否か判定が行われる(図18のステップ1562)。若
し答えが「yes」ならば、呼出しソフトウェア構成要
素1236は、適切なエラー・メッセージを生成し(ス
テップ1563)、該エラー・メッセージをクライアン
ト・アプリケーション1220に戻す(図21のステッ
プ1599)。
【0129】そうでない場合、エラー無しに方法を分解
した後(図18のステップ1562)、呼出しソフトウ
ェア構成要素1236は、回路網内の適切なプラットフ
ォーム上で適切な方法を実行するために、分解された方
法の識別子に対応する方法属性を検討する。該方法が既
にクライアント・アプリケーション1220内に連結さ
れている事をこれらの方法属性が、示すならば(例え
ば、InteractionType方法属性の値が
「BUILT IN」であるなど)、起動エラーについ
てチェックが行われる(ステップ1566)。若し一つ
あったならば、エラー・メッセージが生成され(ステッ
プ1576)、コントロールはクライアント・アプリケ
ーション1220に戻される(図21のステップ159
9)。
【0130】若しエラーが無かったならば、成功フラグ
が生成され(ステップ1567)、クライアント・アプ
リケーション1220内に既に常駐しているコードによ
って、分解された方法が実行される(ステップ156
9)。該方法がクライアント・アプリケーション122
0に既に連結されていることを該方法属性が示さなけれ
ば(図19のステップ1565)、呼出しソフトウェア
構成要素1236は、該方法が動的にロード可能である
ことを該方法属性が示しているか否か問い合わせる(ス
テップ1570)。動的にロード可能な方法は、実行時
にクライアント・アプリケーションの実行可能なコード
と合併させることの出来る実行可能な方法を代表する。
動的にロード可能な方法は、クライアント・アプリケー
ションの副手順又は機能により特定される実行可能な方
法であり得ることを当業者は認めるであろう。好都合な
ことには、動的にロード可能な方法サーバーについての
試験は、InteractionType方法属性の値
が「DYNAMIC LOAD」であるか否か判定する
ことによって達成される。若しそうならば、呼出しソフ
トウェア構成要素1236は、分解された方法により特
定される実行可能なコードをクライアント・アプリケー
ション1220にロードしようと試みる(ステップ15
72)。
【0131】実行可能なコードのロード中にエラーが発
生したならば(ステップ1574)、呼出しソフトウェ
ア構成要素1236は、ロード・エラーが発生したこと
を示すメッセージを生成し(ステップ1576)、該ロ
ード・エラー・メッセージをクライアント・アプリケー
ション1220に戻す(図21のステップ1599)。
【0132】そうでない場合、ロード・エラーが若し無
かったならば(ステップ1574)、呼出しソフトウェ
ア構成要素1236は、該方法呼出しが首尾よく完了し
たことを示すフラグを生成する(ステップ1567)。
次に、分解された方法に対応する、動的にロードされた
実行可能なコードが実行され(ステップ1569)、コ
ントロールは出力アーギュメントと共にクライアント・
アプリケーション1220に戻る(図21のステップ1
599)。連結された又は動的にロード可能な方法サー
バーを実行している際のエラーは好都合なことにはパラ
メーター値として戻される。
【0133】方法属性が、前もって連結された、又は動
的にロード可能な方法を示さなければ(図19のステッ
プ1565及び1570)、呼出しソフトウェア構成要
素1236は、図17に関して上述した分解された方法
を処理することの出来る回路網内のプラットフォーム上
の実行中の方法サーバーの位置を確認しなければならな
い。
【0134】サーバー登録設備1420(ステップ15
78)から検索された情報が、分解された方法により特
定される方法を行うことの出来る作動中の方法サーバー
が少なくとも一つあることを示すならば(図20のステ
ップ1579)、呼出しソフトウェア構成要素1236
は、サーバー登録設備1420から検索された情報を、
該方法分解手段1600時にコンテキストオブジェクト
データベース630から検索されたサーバー・ノード・
テーブル上の項目と比較して回路網内のサーバー・プラ
ットフォームを選ぶ(ステップ1580)。
【0135】サーバー・プラットフォームを選んだ後、
呼出しソフトウェア構成要素1236は、QueryS
erverコールを、その選択されたサーバー・プラッ
トフォームの制御サーバー・ソフトウェア構成要素13
34に送る。制御サーバー・ソフトウェア構成要素13
34の機能については、図23及び24に関して以下に
詳しく説明する。簡単には、制御サーバー・ソフトウェ
ア構成要素1334は、所望の方法サーバーが使用可能
であるか否かを判定する。
【0136】呼出しソフトウェア構成要素1236の主
制御手順1550は、そのとき、ステップ1582(図
20)において継続して、所望の方法サーバーの使用可
能性について制御サーバー・ソフトウェア構成要素13
34により生成されたメッセージを受け取り、該メッセ
ージを、クライアント・アプリケーションが認識出来る
フォーマットに変換する。呼出しソフトウェア構成要素
1236は、制御サーバー・ソフトウェア構成要素13
34から、分解された方法に対応する方法サーバーが、
分解された方法により特定される方法を処理するために
使用出来るか否か判定する(ステップ1583)。若し
その対応する方法サーバーが使用出来るならば、該方法
サーバーが図21において非同期方法サーバーであるか
否か問い合わせる(ステップ1593)ことにより呼出
しソフトウェア構成要素の処理が図21において継続す
る。非同期方法サーバーは当該技術分野において公知で
ある。
【0137】該方法サーバーが非同期であれば(ステッ
プ1593)、該方法サーバーに知らせるためにSig
nalServerコールを使って制御サーバー・ソフ
トウェア構成要素1334が呼び出される(ステップ1
594)。該方法サーバーが非同期でない場合、又は非
同期方法サーバーが信号された後(ステップ159
4)、該方法についての識別子と、方法分解時にコンテ
キストオブジェクトデータベースから検索された情報と
を含む、処理済み方法呼出し要求は回路網における通信
に使われるデータ構造にまとめられ(ステップ159
5)、呼出しソフトウェア構成要素1236は、そのま
とめられた処理済み方法呼出し要求を指名ソフトウェア
構成要素1332へ送る。指名ソフトウェア構成要素1
332のプロセスについて、図25及び26を参照して
以下に説明する。
【0138】指名ソフトウェア構成要素1332がその
処理を終えて、まとめられた応答を送った後、呼出しソ
フトウェア構成要素1236は、そのまとめられた応答
を受け取り(ステップ1597)、その応答をほぐし
(アンパックし)(ステップ1598)、その処理を完
了させるために該応答をクライアント・アプリケーショ
ン1220に戻す(ステップ1599)。
【0139】若し前の判定(図20のステップ158
3)において、実行中の方法サーバーが使用可能でない
ことが分かったならば、呼出しソフトウェア構成要素1
236は、分解された方法により特定される方法を行う
ことの出来る他の実行中の方法サーバーをサーバー登録
設備1420が示したか否か判定する(ステップ158
4)。若しそうならば、検索された情報は、コンテキス
トオブジェクトデータベース630内のサーバー・ノー
ド・テーブルと照合され、QueryServerコー
ルが制御サーバー・ソフトウェア構成要素1334に対
して行われる(ステップ1581)。
【0140】そうでない場合、呼出しソフトウェア構成
要素は、最高の優先順位のサーバー・ノードをサーバー
・ノード・テーブルから選択する(ステップ158
6)。その選択されたサーバー・プラットフォームの制
御サーバー・ソフトウェア構成要素1334は、そのと
き、分解された方法により特定される方法に対応する適
切なアプリケーションを始動させようと試みるために制
御サーバー・ソフトウェア構成要素1334に指示する
StartServerコールを使って接触される(ス
テップ1587)。
【0141】制御サーバー・ソフトウェア構成要素13
34がその処理を終えてメッセージを送った後、呼出し
ソフトウェア構成要素1236は、その送られたメッセ
ージを受け取ってアンパックする(ステップ158
8)。アプリケーションが始動させられて方法サーバー
になったならば(ステップ1589)、呼出しソフトウ
ェア構成要素1236はその処理を終えるが、それにつ
いては既に説明した(図21のステップ1593)。若
しアプリケーションが始動させられなければ(ステップ
1589)、呼出しソフトウェア構成要素1236は、
コンテキストオブジェクトデータベース630のサーバ
ー・ノード・テーブルにそれ以上のノードがあるか否か
問い合わせる(ステップ1590)。若しそうでなけれ
ば、サーバー・プラットフォームが位置確認出来なかっ
たので方法呼出しが不成功だったことを示すエラー・メ
ッセージが生成され(ステップ1592)、そのエラー
・メッセージはクライアント・アプリケーション122
0に戻される(図21のステップ1599)。
【0142】しかし、他のノードがサーバー・ノード・
テーブル上にあれば(図20のステップ1590)、次
に高い優先順位のプラットフォームが選択され(ステッ
プ1591)、呼出しソフトウェア構成要素1236の
処理は図20のステップ1587に戻る。方法サーバー
が始動させられるまで(ステップ1589)又はサーバ
ー・プラットフォーム・リスト上にプラットフォームが
無くなるまで(ステップ1590)、ステップ158
7、1588、1589、1590、及び1591から
成るループが行われる。 (3) 制御サーバー・オペレーション 図23及び24は、制御サーバー・ソフトウェア構成要
素1334のオペレーションを表す制御サーバー手順1
700を示す。当業者は、制御サーバー・ソフトウェア
構成要素1334の機能を具体化する他の多くの方法を
理解するであろう。
【0143】図23のステップ1702において制御サ
ーバー手順1700を開始した後、制御サーバー・ソフ
トウェア構成要素1334は制御サーバー・メッセージ
を受け取る(ステップ1705)。これに応じて、制御
サーバー・ソフトウェア構成要素1334は、制御サー
バー・ソフトウェア構成要素1334と共通のプラット
フォーム上で実行中のアプリケーションが方法呼出し要
求を処理するべく方法サーバーとして登録されるべきこ
とを要求していることを該制御サーバー・メッセージが
示しているか否か判定する(ステップ1710)。答え
が「yes」ならば、制御サーバー・ソフトウェア構成
要素1334は、該方法サーバーが使用可能であること
を示すために該サーバー・アプリケーションについての
所要の情報を制御サーバー登録1425に記録すること
によって該サーバー・アプリケーションを方法サーバー
として登録する。制御サーバー・ソフトウェア構成要素
1334は、該方法サーバーが実行中であることを示す
ためにサーバー登録設備1420にも知らせる(ステッ
プ1715)。実行中の使用可能な方法サーバーは、適
切な方法を実行することも出来る。制御サーバー・ソフ
トウェア構成要素1334は、今登録されたアプリケー
ションに戻される(図24のステップ1799)べき成
功メッセージも生成する(ステップ1729)。
【0144】アプリケーションが登録されることを希望
していることを制御サーバー・メッセージが示さなけれ
ば(図23のステップ1710)、制御サーバー・ソフ
トウェア構成要素は、現在登録されている方法サーバー
が制御サーバー・ソフトウェア構成要素1334及びサ
ーバー登録設備1425で登録解除されることを要求し
ていることを該制御サーバー・メッセージが示すか否か
判定する(ステップ1720)。若しそうならば、制御
サーバー・ソフトウェア構成要素1334は、該情報を
制御サーバー登録1425から除去することにより該方
法サーバーを登録解除する。これは、該方法サーバーに
より特定されるアプリケーションが最早使用可能でない
ことを示す。制御サーバー・ソフトウェア構成要素13
34は、汎回路網メモリー704に記憶されている情報
を除去するためにサーバー登録設備1420にも通知す
る(ステップ1725)。制御サーバー・ソフトウェア
構成要素1334は、そのとき、今登録解除されたアプ
リケーションに戻される(図24のステップ1799)
べき成功メッセージを生成する(ステップ1729)。
【0145】アプリケーションがそれ自体を登録又は登
録解除することを要求したことを制御サーバー・メッセ
ージが示さなければ、制御サーバー・ソフトウェア構成
要素は、処理済み方法呼出し要求を実行する(ステップ
1730)ために呼び出されるべきことを期待すること
を非同期方法サーバーに信号することを呼出しソフトウ
ェア構成要素1236が希望することを制御サーバー・
メッセージが示すか否か判定する。若しそうならば、制
御サーバー・ソフトウェア構成要素1334は、非同期
方法サーバーに信号するプロセスを実行し(ステップ1
735)、処理を終える(図24のステップ179
9)。
【0146】上記した様に、この発明の好適な実施例
は、この発明の特徴を利用するべく書かれたアプリケー
ションでも、或いは、好適な実施例で私達のために修正
された前もって書かれたアプリケーションでも動作する
ことが出来る。好適な実施例で動作する様に非同期アプ
リケーションを書き又は修正するとき、ユーザーは、部
分的にはこれらの非同期信号を認識すると共に、後述す
る様に、これらの信号と次の処理済み方法呼出し要求と
をキューに登録するプログラムコードを含める。これら
のオペレーションについて、指名ソフトウェア構成要素
1332により行われるプロセスを参照して以下に説明
する。
【0147】若し他の機能が要求されていなければ、制
御サーバー・ソフトウェア構成要素1334は、方法を
処理する方法サーバーとなるために新しいアプリケーシ
ョン(これは制御サーバー・ソフトウェア構成要素13
34と同じプラットフォーム上にある)が始動させられ
る(図24の1740)べきであることを呼出しソフト
ウェア構成要素1236が要求していることを制御サー
バー・メッセージが示しているか否か判定する。若しそ
うならば、制御サーバー・ソフトウェア構成要素133
4は、制御サーバー登録1425をチェックして(ステ
ップ1745)、新しいアプリケーションの実行可能な
方法(分解された方法に対応する)が選択されたプラッ
トフォーム上にあるか否か判定する(ステップ175
0)。
【0148】制御サーバー登録1425は、局所的有効
範囲を持っているので、サーバー・プラットフォーム1
300だけが、常駐している実行可能な方法を承知して
いる。実行可能な方法の登録1425における登録は、
例えば、方法を実施するシェル・スクリプト、及びこれ
らの実行可能な方法の状況など、実際の実行可能なコー
ドの実行可能なファイルにおける登録を含む。実行可能
なコードを大域的に管理する必要はないので、これらの
項目は好都合なことには局所的な登録有効範囲を有する
に過ぎない。
【0149】対応する実行可能な方法が制御サーバー登
録1425において特定されたならば、選択されたプラ
ットフォームはサーバー・プラットフォームである可能
性がある。制御サーバー・ソフトウェア構成要素133
4は、対応する実行可能な方法を始動させるプロセスを
実行すると共に、その結果としての方法サーバーをサー
バー登録設備1420と制御サーバー登録1425とに
登録して、新しく始動した方法サーバーが実行中であり
且つ使用可能であることを示す(ステップ1752)。
この始動プロセス時に、制御サーバー・ソフトウェア構
成要素1334は、その始動した方法サーバーにより使
われることの出来るコンテキストオブジェクトデータベ
ースも作る。次に、制御サーバー・ソフトウェア構成要
素1334は、分解された方法に対応するアプリケーシ
ョンが始動させられていて且つ今や方法サーバーである
ことを示すメッセージを生成する(ステップ175
4)。そのとき、このメッセージは、該方法サーバーが
始動させられることを要求した呼出しソフトウェア構成
要素1236に送られ(ステップ1790)、制御サー
バー・ソフトウェア構成要素1334はその処理を終え
ている(ステップ1799)。
【0150】分解された方法に対応する実行可能な方法
が制御サーバー登録1425において特定されなけれ
ば、制御サーバー・ソフトウェア構成要素1334は、
該実行可能な方法が始動させられなかったことを示す適
切なメッセージを生成する(ステップ1756)。この
メッセージは、該方法サーバーが始動させられるべきこ
とを要求した呼出しソフトウェア構成要素1236に送
られ(ステップ1790)、制御サーバー・ソフトウェ
ア構成要素1334はその処理を終えている(ステップ
1799)。
【0151】若し他の機能が要求されていなければ、制
御サーバー・ソフトウェア構成要素1334は、制御サ
ーバー・メッセージが、分解された方法により特定され
る方法を実行する実行中の方法サーバーの使用可能性に
関する情報についての呼出しソフトウェア構成要素12
36からの要求であるか否か判定する(ステップ176
0)。若しそうでなければ、制御サーバー・ソフトウェ
ア構成要素1334は、エラー・メッセージを生成し
(ステップ1780)、そのメッセージを呼出しソフト
ウェア構成要素1236に送り(ステップ1790)、
その処理を終える(ステップ1799)。
【0152】そうでない場合、制御サーバー・ソフトウ
ェア構成要素1334は、制御サーバー登録1425か
らの実行中の方法サーバーについての要求された情報を
再試行する(ステップ1765)。分解された方法によ
り特定される方法サーバーが使用可能であることを制御
サーバー登録1425からの情報が示しているならば
(ステップ1770)、制御サーバー・ソフトウェア構
成要素1334は、該方法サーバーの使用可能性を示す
メッセージを生成する(ステップ1775)。このメッ
セージは呼出しソフトウェア構成要素1236に送られ
(ステップ1790)、制御サーバー・ソフトウェア構
成要素の処理は完了する(ステップ1799)。
【0153】しかし、方法サーバーが使用可能でないこ
とを制御サーバー登録1425が示したならば、(ステ
ップ1770)、制御サーバー・ソフトウェア構成要素
1334は、方法サーバーが使用可能でないことを示す
メッセージを生成する(ステップ1777)。制御サー
バー・ソフトウェア構成要素1334は、そのとき、生
成されたメッセージを呼出しソフトウェア構成要素に送
り、(ステップ1790)、制御サーバー・ソフトウェ
ア構成要素1334の処理は完了する(ステップ179
9)。 (4) 指名オペレーション 方法サーバーを指名するプロセスは、方法サーバーによ
り処理されるべき方法を指名すること、及び輸送レベル
通信から成る。指名ソフトウェア構成要素1332は、
種々の方法呼出しも処理する。
【0154】非同期方法呼出しは、クライアント・アプ
リケーションが処理を完了するために特定された方法サ
ーバーを持つことを必要としない。例えば、呼出し要求
は、実行されるべくキュー上に置かれることが出来、R
PC輸送レベル・コールは、呼出しソフトウェア構成要
素1334に戻って、クライアント・アプリケーション
が「妨げられ」又は継続を阻止されることなくそれ自身
の処理を続けることを許すことが出来る。呼出しソフト
ウェア構成要素から受け取られた処理済み方法呼出し要
求のキューは、そのとき、図25の指名手順1800内
などの、指名ソフトウェア構成要素1332により試験
され、所定の順序に従って行われる。
【0155】非同期方法呼出しは、クライアント・アプ
リケーションが方法サーバーから応答を受け取ることを
予期しないならば、要求されることが出来る。唯一の応
答は、方法呼出しがサーバー・プラットフォーム上のA
CASソフトウェア構成要素によって首尾よく受け取ら
れたか否かの表示である。該応答は、その実行が成功し
たか否か示さず、同期方法呼出しについては出来る様
に、実際の方法呼出しの出力を包含しない。
【0156】同期方法呼出しは、全ての方法呼出しにつ
いてデフォールト・モードである。同期方法呼出しで
は、該方法を呼び出したクライアント・アプリケーショ
ンは、それ自身の処理を続ける前に応答を待つ。図25
及び26は、図15及び17の指名ソフトウェア構成要
素1332により行われ又は呼び出される手順の流れ図
である。指名手順1800は、指名ソフトウェア構成要
素1382により行われるステップ1385、139
0、及び1395(図16)を表す。
【0157】指名手順1800に入る前に、指名ソフト
ウェア構成要素1332は、回路網内の呼出しソフトウ
ェア構成要素から処理済み方法呼出し要求を待つ「待
ち」状態である。指名手順1800を開始した後(ステ
ップ1802)、指名ソフトウェア構成要素1332
は、回路網輸送サービスを介して、輸送データ構造を受
け取る。この輸送データ構造は、回路網内の呼出しソフ
トウェア構成要素により送られた、まとめられた(パッ
クされた)処理済み方法呼出し要求を表す(ステップ1
805)。この輸送データ構造を受け取った後、呼出し
ソフトウェア構成要素1332は、該輸送データ構造を
アンパックして、サーバー・プラットフォームが認識出
来るデータ構造に変換する(ステップ1810)。呼出
しソフトウェア構成要素1332は、そのとき、実行中
の方法サーバーに随伴しているコンテキストデータベー
スを更新する(ステップ1815)。コンテキストオブ
ジェクトデータベースは、該方法サーバーを始動させる
ときに制御サーバー・ソフトウェア構成要素1334に
より作られることにより、又はサーバー・プラットフォ
ーム上にロギングして該方法サーバーを始動させるユー
ザーによって、実行中の方法サーバーに随伴させられる
ことが出来る。
【0158】呼出しソフトウェア構成要素1332は、
次に、受け取った処理済み方法呼出し要求が非同期方法
サーバーによって処理されるべき非同期呼出し要求であ
るか否か質問する(ステップ1820)。若しそうでな
ければ、呼出しソフトウェア構成要素1332は、該呼
出し要求が妥当な方法の識別(identificat
ion)を含んでいるか否か質問するが、それは、該方
法サーバーによって処理されることの出来る方法である
(ステップ1825)。若しそうでなければ、エラー・
メッセージが生成され(ステップ1840)、それは応
答としてパックされて(図26のステップ1890)、
指名処理を完了する前に(ステップ1899)呼出しソ
フトウェア構成要素に送られる(ステップ1895)。
【0159】若し呼出し要求が妥当な方法の識別(id
entification)を含んでいたならば(図2
5のステップ1825)、指名ソフトウェア構成要素1
332は、受け取られた呼出し要求により特定される妥
当な方法を、該方法サーバーにより実行されるべく指名
する(ステップ1830)。該方法サーバーによる妥当
な方法の実行時にエラーが発生したならば(ステップ1
835)、指名ソフトウェア構成要素1332は適切な
エラー・メッセージを生成する(ステップ1840)。
指名ソフトウェア構成要素1332は、そのとき、該エ
ラー・メッセージを応答としてパックし(図26のステ
ップ1890)、指名処理を完了する前に(ステップ1
899)そのパックしたエラー・メッセージを呼出しソ
フトウェア構成要素に送る(ステップ1895)。
【0160】若し実行エラーが発生しなければ、(図2
5のステップ1835)、指名ソフトウェア構成要素1
332は応答をパックするが(図26のステップ189
0)、それは、この場合には、分解された方法により特
定される方法を処理した方法サーバーからの出力を含む
処理済み方法呼出し要求である(図18のステップ15
60)。その応答は、パックされた後、元の処理済み方
法呼出し要求を初めに送った呼出しソフトウェア構成要
素に送られ(ステップ1895)、指名処理は完了する
(ステップ1899)。
【0161】指名ソフトウェア構成要素に受け取られた
処理済み方法呼出し要求が非同期呼出し要求であるなら
ば(図25のステップ1820)、その非同期呼出し要
求は、好都合なことには、後に方法サーバーとして処理
されるべく指名ソフトウェア構成要素1332によって
指名されるべきキュー上に置かれる(ステップ185
0)。該非同期呼出し要求の成功を示すメッセージが生
成され(ステップ1855)、受け取られた処理済み方
法呼出し要求への応答としてパックされ(ステップ18
60)、次に、その処理済み方法呼出し要求を最初に送
った呼出しソフトウェア構成要素に送られる(ステップ
1865)。
【0162】好適な実施例では、非同期方法サーバー
は、非同期方法呼出し要求を、それらが最初にキュー上
に置かれた順に実行する。非同期要求を実行するとき、
指名ソフトウェア構成要素1332は、該非同期方法サ
ーバーにより処理されるべき方法呼出し要求がキュー上
にあるか否か質問する(図26のステップ1870)。
若し方法呼出し要求が該キュー上に無ければ(ステップ
1870)、指名処理は完了する(ステップ189
9)。
【0163】若し非同期方法呼出し要求が該キュー上に
あったならば(ステップ1870)、指名ソフトウェア
構成要素1332は、次の非同期方法呼出し要求を該キ
ューから取り去る(ステップ1875)。該キューから
取り去られた要求が、例えば該方法サーバーにより処理
されることの出来ない要求などの無効な要求であるなら
ば(ステップ1880)、待ち合わせさせられた方法呼
出し要求が他にあるか否か発見するために該処理は戻る
(ステップ1870)。
【0164】該キューから取り去られた要求が妥当であ
るならば(ステップ1880)、指名ソフトウェア構成
要素1332は、該キューから取り去られた非同期方法
呼出し要求を該非同期方法サーバーにより処理されるべ
く指名する(ステップ1885)。 そのとき、該方法
サーバーの処理時にエラーが発生したか否かという質問
が行われる(ステップ1887)。エラーが若しあれ
ば、それは記録され(ステップ1888)、エラーが若
し発生しなかったならば、指名ソフトウェア構成要素1
332は該キューをチェックする(ステップ187
0)。この様にして、該方法呼出し要求を発したクライ
アント・アプリケーションを妨げずに該キュー上の全て
の非同期呼出し要求が処理される。 I. 要約 本発明は従って或るプラットフォーム上のアプリケーョ
ンに対して効果的且つ単純な手法を与え、他のプラット
フォームに付いて、又他のアプリケーョンに付いても詳
細を知る必要なし同じ又は異なるプラットフォーム上で
アプリケーションを読み出す。この様な呼び出しは異種
ネットワーク中での比類似プラットフォーム間でも発生
することができる。
【0165】本発明のオブジェクト志向技術に従うと、
データ(又はインスタンス)及びアプリケーションは管
理されないので、これらのデータ及びアプリケーション
はアプリケーョン開発者によって選択される手法で管理
することができる。アプリケーショッに対するオブシェ
クト及び参照のみを管理することにより、システム共通
資源に対する要求が減少され、システムの柔軟性が増大
される。
【0166】本発明による別の利点は、現在自動的には
走らないアプリケーションを呼び出す能力にある。これ
は、本発明に従って実行されるシステムの能力と柔軟性
を増大する。本発明の精神及び範囲から離れることなし
に、改良及び変更をなすことかできることが当業者には
理解されよう。
【図面の簡単な説明】
【図1】図1は、本発明の好適な実施例に使用すること
の出来る回路網の図である。
【図2】図2は、アプリケーションとの関連でこの発明
のオブジェクト指向的モデルの主要構成要素を示す図で
ある。
【図3】図3は、本発明のこの実施例のオブジェクト指
向的モデルの構成要素間の関係の図である。
【図4】図4は、この発明のオブジェクト指向的モデル
の構成要素の例の間の関係の図である。
【図5】図5は、この好適な実施例による、図4に示さ
れている関係と一貫するクラスデータベースについての
構造の図である。
【図6】図6は、この好適な実施例の種々の構成要素
と、それらの構成要素間の情報の好適な流れとの図であ
る。
【図7】図7は、この好適な実施例における種々のメモ
リーシステムの関係を示す図である。
【図8】図8は、局所クラスデータベースの好適な構造
の図である。
【図9】図9は、図8に示されている局所クラスデータ
ベース内のブロックの好適な実施例の図である。
【図10】図10は、大域データベース、局所データベ
ース、及びノードキャッシュについてのローダー/アン
ローダーの機能の図である。
【図11】図11は、コンテキストオブジェクトデータ
ベースの好適な実施例を示す図である。
【図12】図12は、図11に示されているコンテキス
トオブジェクトデータベースにおける方法オーバーライ
ド・テーブルの好適な実施例を示す図である。
【図13】図13は、図11に示されているコンテキス
トオブジェクトデータベースにおけるサーバー・ノード
・テーブルのための好適な記憶構造を示す図である。
【図14】図14は、図11に示されているコンテキス
トオブジェクトデータベースにおけるクラス・データベ
ース・オーバーライド・テーブルの好適な実施例を示す
図である。
【図15】図15は、該回路網のプラットフォームにお
ける個々のソフトウェア構成要素の図である。
【図16】図16は、アプリケーションの遠隔呼出しの
ために本発明の好適な実施例により行われる一般的オペ
レーションの流れ図である。
【図17】図17は、該回路網の構成要素と情報の流れ
との詳細な図である。
【図18】図18は、図17の呼出しソフトウェア構成
要素が行う手順の流れ図である。
【図19】図19は、図17の呼出しソフトウェア構成
要素が行う手順の流れ図である。
【図20】図20は、図17の呼出しソフトウェア構成
要素が行う手順の流れ図である。
【図21】図21は、図17の呼出しソフトウェア構成
要素が行う手順の流れ図である。
【図22】図22は、方法を分解するために図17の呼
出しソフトウェア構成要素が行うステップの図である。
【図23】図23は、図17の制御サーバーソフトウェ
ア構成要素が行うステップの流れ図である。
【図24】図24は、図17の制御サーバーソフトウェ
ア構成要素が行うステップの流れ図である。
【図25】図25は、図17のタスク指名ソフトウェア
構成要素が行うステップの流れ図である。
【図26】図26は、図17のタスク指名ソフトウェア
構成要素が行うステップの流れ図である。
フロントページの続き (72)発明者 アンドリュー ピー ウィルソン イギリス リーディング アールジー7 3ディーピー バーグフィールド コモン バンセス レーン コモンズ ブリンク (番地なし) (72)発明者 ニール エフ ジェイコブソン アメリカ合衆国 ニューハンプシャー州 03062 ナシュア クランウェル コート 6 (72)発明者 マイケル ジェイ レンズロー アメリカ合衆国 マサチューセッツ州 01721アッシュランド バイロン ロード 7

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】アプリケーションを実行するための複数の
    データ処理プラットフォーム、及びこのデータプラット
    フォームの全てにアクセスできる部分を有するクラスデ
    ータベースを含むデータ処理回路網において、サーバー
    データ処理プラットフォーム上で実行されるべきアプリ
    ケーションを呼び出す方法であって、 前記クラスデータベースが、データ処理プラットフォー
    ムのサーバーデータ処理プラットフォームで走るべきア
    プリケーションの対応する一つを呼び出す機構に対する
    参照を各々含む複数の方法項目、及び前記方法項目の対
    応するグループを識別し、異なり、一義的に識別可能な
    クラスを識別する情報を各々含む複数のクラス項目であ
    り、前記クラスの各々が、アプリケーションによって扱
    われ又はアクセスされるアイテムであるインスタンスの
    異なる組みによって参照され、各組みのインスタンスの
    全てが共有される文字を有しているクラス項目を含み、 クライアントデータ処理プラットフォームで実行される
    クライアントアプリケーションからサーバーデータ処理
    プラットフォーム上で実行されるべきアプリケーション
    を呼び出す方法が、クライアントデータ処理プラットフ
    ォームによって達成される次の工程、 第1のインスタンスに関係するデータ処理操作の実行の
    ためにクライアントアプリケーションからメッセージを
    受信し、 第1のインスタンス及び受信されたメッセージによって
    参照されるクラスを使用するクラスデータベースにアク
    セスして第1の方法及びサーバーアプリケーションに関
    係する対応する機構にアクセスし、 データ処理プラットフォームの中から、サーバーデータ
    処理プラットフォームを選択して、サーバーアプリケー
    ションを実行する工程を含む方法。
  2. 【請求項2】アプリケーションを実行するための複数の
    データ処理プラットフォームを含むデータ処理回路網
    が、 データ処理プラッフォームの全てにアクセス可能な部分
    を有するクラスデータベースを含むネットワーク内メモ
    リを含み、 前記クラスデータベースが、 サーバーデータ処理プラットフォーム上で走るアプリケ
    ーション又は手順に対応するものと関連する対応機構に
    対する参照を各々含む複数の方法項目、及び、 方法項目の対応するグループを識別し、且つ異なる、一
    義的に識別可能なクラスを識別する情報を各々含む複数
    のクラス項目であり、各クラスが、アプリケーションに
    よって扱われ又はアクセスされる事項である異なる組の
    インスタンスを識別し、各組みのインスタンスの全てが
    共有文字を有している複数のクラス項目含み、 サーバーデータ処理プラットフォームで実行されるべき
    サーバーアプリケーションを、クライアントデータ処理
    プラットフォーム上で実行する第1のクライアントアプ
    リケーションから呼び出す能力を有する前記データ処理
    プラットフォームの内のクライアントデータ処理プラッ
    トフォームが、 第1のインスタンスと関連するデータ処理操作の機能に
    対するクライアントアプリケーションからメッセージを
    受信する手段、 前記受信する手段に結合し、クラスデータベースにアク
    セスし、第1のインスタンスを識別するクラスを使用し
    て、サーバーアプリケーションに関連する第1の方法項
    目及び対応する機構を選択する手段、及び前記アクセス
    する手段に結合して、データ処理プラトフォーム中から
    サーバーデータ処理プラットフォームを選択して、サー
    バーアプリケーションを実行する手段を含むことを特徴
    とするデータ処理回路網。
  3. 【請求項3】クライアントデータ処理プラットフォーム
    のクラスデータベースにアクセスするための手段が、 クラスデータベースから、第1のインスタンスを識別す
    るクラスを決定する手段を含む請求項2記載のデータ処
    理回路網。
  4. 【請求項4】クライアントデータ処理プラットフォーム
    が、 前記選択する手段に結合し、サーバーアプリケーション
    からの応答を受信するための手段を含む請求項2記載の
    データ処理回路網。
  5. 【請求項5】クライアントデータ処理プラットフォーム
    のサーバーアプリケーションからの応答を受信するため
    の手段が、 サーバーアプリケーションからパラメータを受信する手
    段を含む請求項4記載のデータ処理回路網。
  6. 【請求項6】メッセージがエラーを有するか否かを決め
    る手段を更に含む請求項2記載のデータ処理回路網。
  7. 【請求項7】クラスデータベースの第1方法項目が、 対応する方法項目を特徴付けるメタデータを含む方法定
    義を含み、 クライアントデータ処理プラットフォームのクラスデー
    タベースにアクセスする手段が、第1方法項目内のメタ
    データを解析する手段からなる請求項4記載のデータ処
    理回路網。
  8. 【請求項8】サーバーデータ処理プラットフォームが、
    クライアントデータ処理プラットフォームである請求項
    7記載のデータ処理回路網。
  9. 【請求項9】データ処理プラットフォーム間通信用のネ
    ットワーク通信機能を達成するための転送サービスを有
    し、 第1方法項目内のメタデータが、サーバーアプリケーシ
    ョンが呼び出されるべき転送サービスの使用を要求する
    か否かを識別し、 クライアントデータ処理プラットフォームのクラスデー
    タベースにアクセスするための手段が更に、 第1方法項目用の方法定義が、サーバーアプリケーショ
    ンが転送サービスを使用して達成されて、サーバーデー
    タ処理プラットフォームと通信を達成すべきことを示す
    か否かを決める手段を含む請求項7記載のデータ処理回
    路網。
  10. 【請求項10】サーバアプリケーションがクライアント
    アプリケーションから入力引き数を受信し、処理された
    引き数を出力し、 クライアントデータ処理プラットフォームが、 転送サービス及び選択手段に結合され、転送サービスを
    介して、サーバーデータ処理プラットフォームによって
    サーバーアプリケーションの実行の後に、第1の応答及
    び第1の処理された引き数をサーバーアプリケーション
    から受信する手段からなる請求項9記載のデータ処理回
    路網。
  11. 【請求項11】サーバーアプリケーションがサーバー手
    順であり、 メタデータが、サーバー手順が動的にロードされたか否
    かを示し、 クライアントデータ処理プラットフォームのクラスデー
    タベースにアクセスするための手段が、 第1方法項目用方法定義が、サーバー手順が動的にロー
    ド可能であるを示すか否かを決める手段を含む請求項7
    記載のデータ処理回路網。
  12. 【請求項12】第1方法項目に対する方法定義が、サー
    バー手順が動的にロード可能かをきめる手段が、機構を
    表示する実行可能なコードの動的なロード可能なイメー
    ジを実行する手段を含む請求項11記載のデータ処理回
    路網。
  13. 【請求項13】クライアントデータ処理プラットフォー
    ムに位置するクライアントアプリケーションによって、
    サーバーデータ処理プラットフォーム上に位置するサー
    バアプリケーションの遠隔呼び出しを可能にする複数の
    データ処理プラットフォーム、及び呼び出し機構に対す
    る参照を含み、サーバーアプリケーションを呼び出す複
    数の方法項目と、異なる、一義的に識別可能なクラスに
    対する情報を各々含む複数のクラスエントリであり、共
    有される文字に従ってアプリケーションによって扱われ
    又アクセスされる事項であるインスタンスの形態を前記
    クラスが識別し、このクラスエントリの各々が方法項目
    のグループに対応する複数のクラス項目とを含むクラス
    データベース、 からなるデータ処理回路網に接続されたクライアントプ
    ラットフォームに於いて、サーバーアプリケーションを
    遠隔から呼び出し、クライアントデータ処理プラットフ
    ォームによって達成される方法が、 第1のインスタンスを呼び出す第1方法の実行のために
    クライアントアプリケーションからメッセージを受信
    し、 第1のインスタンスを識別するクラスを決め、 この決められたクラス及び受信されたメッセージを使用
    するクラスデータベースにアクセスして、第1の方法項
    目及び対応する機構の参照を選択して、サーバーアプリ
    ケーションを実行することのできるサーバーデータ処理
    プラットフォームを見出し、 前記参照の伝達を使用して、第1サーバーデータ処理プ
    ラットフォームによるサーバーアプリケーションの実行
    を呼び出して、第1インスタンス上で第1の方法を実行
    し、 サーバーデータ処理プラットフォームからの応答を受信
    する工程からなるサーバーアプリケーション呼び出し方
    法。
  14. 【請求項14】クライアントデータ処理プラットフォー
    ムに位置するクライアントアプリケーションによって、
    サーバーデータ処理プラットフォーム上に位置するサー
    バアプリケーションの遠隔呼び出しを可能にする複数の
    データ処理プラットフォーム、及び呼び出し機構に対す
    る参照を含み、サーバーアプリケーションを呼び出す複
    数の方法項目と、異なる、一義的に識別可能なクラスに
    対する情報を各々含む複数のクラスエントリであり、共
    有される文字に従ってアプリケーションによって扱われ
    又アクセスされる事項であるインスタンスの形態を前記
    クラスが識別し、このクラスエントリの各々が方法項目
    のグループに対応する複数のクラス項目とを含むクラス
    データベース、 からなるデータ処理回路網に接続されたクライアントプ
    ラットフォームに於いて、サーバーアプリケーションを
    遠隔から呼び出し、クライアントデータ処理プラットフ
    ォームによって達成される方法が、 第1のインスタンスを呼び出す第1方法の実行のために
    クライアントアプリケーションからメッセージを受信
    し、 第1のインスタンスを識別するクラスを決め、 この決められたクラス及び受信されたメッセージを使用
    するクラスデータベースにアクセスして、第1の方法項
    目及び対応する機構の参照を選択して、サーバーアプリ
    ケーションを実行することのできるサーバーデータ処理
    プラットフォームを見出し、そして対応する機構の参照
    を伝達を使用してクライアントデータ処理プラットフォ
    ームによるサーバーアプリケーションの実行を呼び出し
    て、第1インスタンス上で第1の方法を実行する工程か
    らなるサーバーアプリケーション呼び出し方法。
JP3202702A 1990-08-14 1991-08-13 クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置 Expired - Fee Related JPH0664559B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56730390A 1990-08-14 1990-08-14
US567303 1990-08-14

Publications (2)

Publication Number Publication Date
JPH06110808A JPH06110808A (ja) 1994-04-22
JPH0664559B2 true JPH0664559B2 (ja) 1994-08-22

Family

ID=24266614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3202702A Expired - Fee Related JPH0664559B2 (ja) 1990-08-14 1991-08-13 クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置

Country Status (6)

Country Link
US (1) US5619710A (ja)
EP (1) EP0474339B1 (ja)
JP (1) JPH0664559B2 (ja)
AU (1) AU628264B2 (ja)
CA (1) CA2049143C (ja)
DE (1) DE69131745T2 (ja)

Families Citing this family (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
AU639802B2 (en) * 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5280610A (en) * 1990-08-14 1994-01-18 Digital Equipment Corporation Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
EP0514972B1 (en) * 1991-05-22 1996-03-27 Koninklijke Philips Electronics N.V. Multinode distributed data processing system for use in a surface vehicle
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US5307490A (en) * 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system
US6209040B1 (en) * 1992-10-09 2001-03-27 Microsoft Corporation Method and system for interfacing to a type library
CA2113417C (en) * 1992-12-24 2000-02-22 C. Douglas Hodges Method and system for aggregating objects
US5805885A (en) 1992-12-24 1998-09-08 Microsoft Corporation Method and system for aggregating objects
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US5517645A (en) * 1993-11-05 1996-05-14 Microsoft Corporation Method and system for interfacing components via aggregate components formed by aggregating the components each with an instance of a component manager
US5485617A (en) * 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US6813769B1 (en) 1997-10-28 2004-11-02 Microsoft Corporation Server application components with control over state duration
GB2288041A (en) * 1994-03-23 1995-10-04 Ibm Object linking and embedding over a computer network.
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
KR100221374B1 (ko) * 1995-01-19 1999-09-15 포만 제프리 엘 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치
EP0737922B1 (en) * 1995-03-22 2003-05-14 Sun Microsystems, Inc. Method and apparatus for managing computer processes
GB2304944A (en) * 1995-09-12 1997-03-26 Ibm Support for application programs in a distributed environment
US5878260A (en) * 1995-11-06 1999-03-02 International Business Machines Corporation Information handling system, method, and article of manufacture including object name services with multilevel indices
US8092224B2 (en) * 1995-11-22 2012-01-10 James A. Jorasch Systems and methods for improved health care compliance
US5794044A (en) * 1995-12-08 1998-08-11 Sun Microsystems, Inc. System and method for runtime optimization of private variable function calls in a secure interpreter
US6886167B1 (en) * 1995-12-27 2005-04-26 International Business Machines Corporation Method and system for migrating an object between a split status and a merged status
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US6446135B1 (en) * 1996-03-05 2002-09-03 Microsoft Corporation Method and system for querying and executing commands of an application program
US6697826B1 (en) * 1996-03-20 2004-02-24 International Business Machines Corporation Information-handling system, method, and article of manufacture including and object search mechanism that provides constraint-based filtering in a distributed object system
US5805796A (en) * 1996-03-27 1998-09-08 Dell Usa, Lp System architecture for implementing modular diagnostics
US6938263B2 (en) * 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US5848272A (en) * 1996-06-04 1998-12-08 Lucent Technologies Inc. Object-oriented intra-process messaging arrangement for windows environments
US5987512A (en) * 1996-06-12 1999-11-16 Sun Microsystems, Inc. Method and apparatus for access to remote gateway servers
US5799149A (en) * 1996-06-17 1998-08-25 International Business Machines Corporation System partitioning for massively parallel processors
JPH1049381A (ja) * 1996-07-04 1998-02-20 Internatl Business Mach Corp <Ibm> 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム
US6098092A (en) * 1996-11-08 2000-08-01 Silicon Graphics, Inc. Server to dynamically generate graphics for the world wide web
US5802527A (en) * 1996-12-31 1998-09-01 Mci Communications Corporation Data enhancement engine
US6742050B1 (en) 1997-03-31 2004-05-25 Intel Corporation Inter-object messaging
US6125402A (en) * 1997-06-16 2000-09-26 Sun Microsystems, Inc. Method and system for executing one of several forms of a multi-purpose program
US6192419B1 (en) * 1997-06-18 2001-02-20 International Business Machines Corporation Collaborative framework for disparate application programs
US6378001B1 (en) * 1997-06-18 2002-04-23 International Business Machines Corp. Collaborative framework with shared objects
US6141697A (en) * 1997-06-25 2000-10-31 Unisys Corp. System and method for performing external procedure calls in heterogeneous computer systems utilizing program stacks
US6151638A (en) * 1997-06-25 2000-11-21 Unisys Corp. System and method for performing external procedure calls from a client program to a server program to a server program and back to the client program while both are running in a heterogenous computer
US6253253B1 (en) * 1997-08-25 2001-06-26 International Business Machines Corporation Method and apparatus for optimizing references to objects in a data processing system
US6009470A (en) * 1997-09-10 1999-12-28 Lsi Logic Corporation Encoded multi-media terminal
US6134594A (en) 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US6631425B1 (en) 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US5890161A (en) 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6061688A (en) * 1997-11-04 2000-05-09 Marathon Oil Company Geographical system for accessing data
US6405264B1 (en) 1997-12-18 2002-06-11 Sun Microsystems, Inc. Marshaling and unmarshaling framework for supporting filters in a distributed object system
US6249803B1 (en) * 1997-12-18 2001-06-19 Sun Microsystems, Inc. Method and apparatus for executing code during method invocation
US6493870B1 (en) * 1998-03-20 2002-12-10 Sun Microsystems, Inc. Methods and apparatus for packaging a program for remote execution
US6381734B1 (en) * 1998-06-03 2002-04-30 Microsoft Corporation Method, software and apparatus for referencing a method in object-based programming
US6161152A (en) * 1998-06-04 2000-12-12 Intel Corporation System for providing asynchronous I/O operations by identifying and polling a portal from an application process using a table of entries corresponding to I/O operations
US6289012B1 (en) 1998-08-03 2001-09-11 Instanton Corporation High concurrency data download apparatus and method
US6425017B1 (en) 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6442620B1 (en) 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
US6182245B1 (en) 1998-08-31 2001-01-30 Lsi Logic Corporation Software test case client/server system and method
US6385661B1 (en) * 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies
GB2343021A (en) * 1998-10-19 2000-04-26 Ibm Class loading model for object oriented programming
US6279030B1 (en) * 1998-11-12 2001-08-21 International Business Machines Corporation Dynamic JAVA™ class selection and download based on changeable attributes
US6868541B1 (en) * 1998-12-21 2005-03-15 Microsoft Corporation Asynchronous programming environment
US6269378B1 (en) * 1998-12-23 2001-07-31 Nortel Networks Limited Method and apparatus for providing a name service with an apparently synchronous interface
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US6829770B1 (en) 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6748455B1 (en) 1999-02-23 2004-06-08 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events with filtering
US7283991B1 (en) * 1999-03-11 2007-10-16 Microsoft Corporation Caching system for path search optimization
US6807181B1 (en) * 1999-05-19 2004-10-19 Sun Microsystems, Inc. Context based control data
US6889260B1 (en) * 1999-06-10 2005-05-03 Ec Enabler, Ltd Method and system for transferring information
US7043725B1 (en) * 1999-07-09 2006-05-09 Hewlett-Packard Development Company, L.P. Two tier arrangement for threads support in a virtual machine
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6947965B2 (en) 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US6951021B1 (en) * 1999-11-30 2005-09-27 Recursion Software, Inc. System and method for server-side communication support in a distributed computing environment
US6920636B1 (en) * 1999-12-15 2005-07-19 Microsoft Corporation Queued component interface passing for results outflow from queued method invocations
US20040015821A1 (en) * 2001-05-01 2004-01-22 Tonbu, Inc. System and method for interactive collaborative process management and project management
US8019807B2 (en) * 2001-05-23 2011-09-13 Wireless Enterprise Solutions Technology Limited Method and system for communication between computer systems
US20020188764A1 (en) * 2001-05-25 2002-12-12 Sun Microsystems, Inc. Method and apparatus for asynchronous component invocation
US7568219B2 (en) * 2002-01-08 2009-07-28 Bottomline Technologies (De), Inc. Transfer server of a secure system for unattended remote file and message transfer
US8527408B2 (en) 2002-05-06 2013-09-03 Bottom Line Technologies (De), Inc. Integrated payment system
JP2004102453A (ja) * 2002-09-05 2004-04-02 Hitachi Ltd コンテキストラウンチ管理方法およびシステム、ならびにプログラム、記録媒体
US7793355B2 (en) * 2002-12-12 2010-09-07 Reasearch In Motion Limited System and method of owner control of electronic devices
US8694434B1 (en) * 2003-01-17 2014-04-08 Victor B. Kley Techniques for unregistering and transferring software licenses
US8831966B2 (en) * 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US6917975B2 (en) * 2003-02-14 2005-07-12 Bea Systems, Inc. Method for role and resource policy management
US7591000B2 (en) * 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
EP2182465B1 (en) * 2003-02-21 2013-05-01 Research In Motion Limited System and method of multiple-level control of electronic devices
US7610618B2 (en) 2003-02-24 2009-10-27 Bea Systems, Inc. System and method for authenticating a subject
US7017051B2 (en) * 2003-02-24 2006-03-21 Bea Systems, Inc. System and method for enterprise authentication
US7644432B2 (en) * 2003-10-10 2010-01-05 Bea Systems, Inc. Policy inheritance through nested groups
US20050262362A1 (en) * 2003-10-10 2005-11-24 Bea Systems, Inc. Distributed security system policies
US20050097353A1 (en) * 2003-10-10 2005-05-05 Bea Systems, Inc. Policy analysis tool
US7603547B2 (en) * 2003-10-10 2009-10-13 Bea Systems, Inc. Security control module
US20050097352A1 (en) * 2003-10-10 2005-05-05 Bea Systems, Inc. Embeddable security service module
US20050251851A1 (en) * 2003-10-10 2005-11-10 Bea Systems, Inc. Configuration of a distributed security system
US20050257245A1 (en) * 2003-10-10 2005-11-17 Bea Systems, Inc. Distributed security system with dynamic roles
GB2411018A (en) * 2004-02-16 2005-08-17 Haller Technology Ltd System for accessing data held in a plurality of storage locations
CA2564186C (en) * 2004-04-30 2019-08-20 Research In Motion Limited System and method of operation control on an electronic device
US20070073784A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for type inheritance for content management
US7818344B2 (en) * 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US20070073674A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for providing federated events for content management systems
US7953734B2 (en) * 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7483893B2 (en) * 2005-09-26 2009-01-27 Bae Systems, Inc. System and method for lightweight loading for managing content
US7917537B2 (en) * 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US20070073673A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for content management security
US7752205B2 (en) * 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US8045958B2 (en) 2005-11-21 2011-10-25 Research In Motion Limited System and method for application program operation on a wireless device
EP1826944B1 (en) 2006-02-27 2009-05-13 Research In Motion Limited Method of customizing a standardized IT policy
US8463852B2 (en) * 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US8212805B1 (en) 2007-01-05 2012-07-03 Kenneth Banschick System and method for parametric display of modular aesthetic designs
US8296731B2 (en) * 2007-03-05 2012-10-23 Microsoft Corporation Dynamic method selection based on declarative requirements of interaction scope
US8473836B2 (en) * 2007-12-21 2013-06-25 The Invention Science Fund I, Llc Look ahead of links/alter links
US20090165134A1 (en) * 2007-12-21 2009-06-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Look ahead of links/alter links
US8468440B2 (en) * 2007-12-21 2013-06-18 The Invention Science Fund I, Llc Look ahead of links/alter links
US8793616B2 (en) 2007-12-21 2014-07-29 The Invention Science Fund I, Llc Look ahead of links/alter links
US8949977B2 (en) * 2007-12-21 2015-02-03 The Invention Science Fund I, Llc Look ahead of links/alter links
US8495486B2 (en) * 2007-12-21 2013-07-23 The Invention Science Fund I, Llc Look ahead of links/alter links
US8489981B2 (en) * 2007-12-21 2013-07-16 The Invention Science Fund I, Llc Look ahead of links/alter links
EP2264594B1 (en) 2009-06-18 2011-10-12 Software AG A broker system for a plurality of brokers, clients and servers in a heterogeneous network
WO2011034822A1 (en) 2009-09-15 2011-03-24 Bhami Shenoy Protein a crystals and cross-linked crystals and methods of use thereof
US8799278B2 (en) * 2012-10-01 2014-08-05 DISCERN, Inc. Data augmentation based on second-phase metadata
US9336332B2 (en) 2013-08-28 2016-05-10 Clipcard Inc. Programmatic data discovery platforms for computing applications
WO2017090005A1 (en) * 2015-11-27 2017-06-01 Cadens Imagerie Medicale Inc. Method and system for executing a function for processing data using a server
US11526859B1 (en) 2019-11-12 2022-12-13 Bottomline Technologies, Sarl Cash flow forecasting using a bottoms-up machine learning approach
US11532040B2 (en) 2019-11-12 2022-12-20 Bottomline Technologies Sarl International cash management software using machine learning
US11704671B2 (en) 2020-04-02 2023-07-18 Bottomline Technologies Limited Financial messaging transformation-as-a-service

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
JPS60229160A (ja) * 1984-04-26 1985-11-14 Toshiba Corp マルチプロセツサシステム
US4882674A (en) * 1985-03-05 1989-11-21 Wang Laboratories, Inc. Apparatus and method for control of one computer system by another computer system
US5014192A (en) * 1985-05-06 1991-05-07 Motorola Computer X, Inc. System for locating a file in a logical ring by sequentially forwarding access request with file system name and file name
US4825354A (en) * 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4868745A (en) * 1986-05-30 1989-09-19 Hewlett-Packard Company Data processing system and method for the direct and indirect execution of uniformly structured object types
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
JPS647231A (en) * 1987-06-30 1989-01-11 Toshiba Corp Parallel processing device for object directional system
US4961133A (en) * 1987-11-06 1990-10-02 Visystems, Inc. Method for providing a virtual execution environment on a target computer using a virtual software machine
US4914586A (en) * 1987-11-06 1990-04-03 Xerox Corporation Garbage collector for hypermedia systems
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
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US4942574A (en) * 1988-03-31 1990-07-17 American Telephone And Telegraph Company, At&T Bell Laboratories Concurrent resource request resolution mechanism
US5109485A (en) * 1988-08-30 1992-04-28 Ncr Corporation Method for transferring data between memories
US4989132A (en) * 1988-10-24 1991-01-29 Eastman Kodak Company Object-oriented, logic, and database programming tool with garbage collection
US5210824A (en) * 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
US5144692A (en) * 1989-05-17 1992-09-01 International Business Machines Corporation System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system
US5075847A (en) * 1989-05-26 1991-12-24 Hewlett-Packard Company Method and apparatus for computer program encapsulation
US5175854A (en) * 1989-06-19 1992-12-29 Digital Equipment Corporation Inter-applicataion interface system
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
US5187787B1 (en) * 1989-07-27 1996-05-07 Teknekron Software Systems Inc Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5138712A (en) * 1989-10-02 1992-08-11 Sun Microsystems, Inc. Apparatus and method for licensing software on a network of computers
US5265250A (en) * 1990-03-29 1993-11-23 At&T Bell Laboratories Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
US5280610A (en) * 1990-08-14 1994-01-18 Digital Equipment Corporation Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
AU639802B2 (en) * 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment

Also Published As

Publication number Publication date
AU7931091A (en) 1992-05-14
EP0474339A3 (en) 1993-01-13
JPH06110808A (ja) 1994-04-22
EP0474339A2 (en) 1992-03-11
US5619710A (en) 1997-04-08
DE69131745T2 (de) 2000-02-10
EP0474339B1 (en) 1999-10-27
DE69131745D1 (de) 1999-12-02
CA2049143A1 (en) 1992-02-15
AU628264B2 (en) 1992-09-10
CA2049143C (en) 1999-02-23

Similar Documents

Publication Publication Date Title
JP2842714B2 (ja) アプリケーションのオブジェクト指向呼出しをデータベースで行うための方法
JPH0664559B2 (ja) クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置
JPH0743686B2 (ja) 分散不均一環境におけるアプリケーションの動的呼出しの方法及び装置
JPH0656600B2 (ja) 分散不均一環境におけるサーバー機能の実行方法及び装置
JP3949180B2 (ja) 基底システムオブジェクトモデルを備えたシステム管理サービスの統合
EP0501610B1 (en) Object oriented distributed computing system
US6470375B1 (en) System and method for managing the execution of system management tasks
US6253257B1 (en) Software Interface for dynamic API mapping
US8056091B2 (en) Systems and methods for using application services
US6308182B1 (en) Information processing apparatus
KR100301274B1 (ko) 컴퓨터시스템및프로그램제품전송방법
JP2002522842A (ja) オペレーティングシステム用多言語ユーザインタフェース
JPH0997204A (ja) 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置
US6470346B2 (en) Remote computation framework
US20120246664A1 (en) Method for providing stand-in objects
JPH0916503A (ja) コンピュータプロセスを管理する方法および装置
US6886172B2 (en) Method for mapping procedural C++ code to java object-oriented classes
US7039673B1 (en) Method and apparatus for dynamic command extensibility in an intelligent agent

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070822

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080822

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080822

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090822

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees