JPH0675888A - 分散不均一環境におけるアプリケーションの動的呼出しの方法及び装置 - Google Patents
分散不均一環境におけるアプリケーションの動的呼出しの方法及び装置Info
- Publication number
- JPH0675888A JPH0675888A JP3202700A JP20270091A JPH0675888A JP H0675888 A JPH0675888 A JP H0675888A JP 3202700 A JP3202700 A JP 3202700A JP 20270091 A JP20270091 A JP 20270091A JP H0675888 A JPH0675888 A JP H0675888A
- Authority
- JP
- Japan
- Prior art keywords
- class
- server
- application
- instance
- platform
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
ラットフォーム上のアプリケーションを効率よく呼び出
す。 【構成】クライアント・アプリケーションは共通の特徴
を共有するようクラス編成された複数のインスタンス、
及び確認されたインスタンスに対応するオペレーション
の種類を指定する複数のメッセージを有する。プラット
フォームが第1インスタンスについての識別子、及び所
望のオペレーションについての識別子を含む第1メッセ
ージをクライアント・アプリケーション内に生成し、第
1メッセージ及び第1インスタンスのクラスから、所望
のオペレーションを許す手順への参照を包含するような
識別子を決定し、第1インスタンスの識別子及び手順へ
の参照をサーバー・アプリケーションを内蔵するプラッ
トフォームの中のサーバー・プラットフォームへ送る。
Description
理回路網にわたるコンピューターアプリケーションの相
互作用に関する。特に、この発明は、オブジェクト指向
モデルに従うデータ処理回路網の組織と、その様な不均
一回路網環境にわたる独立のアプリケーション同士の相
互作用とに関する。
回路網を介して相互に通信をする。コンピューター自体
は一般に「ノード」と呼ばれ、特定の形態のコンピュー
ター、即ち、特定の形態のオペレーティングシステムを
使う特定の形態のハードウェア、は「プラットフォー
ム」と呼ばれる。異なる種類のプラットフォームを包含
する回路網は「不均一回路網」と呼ばれる。プラットフ
ォームを接続して回路網にする一つの目的は、共用され
るデータに対してアプリケーションプログラム(簡単に
「アプリケーション」と呼ぶ)を実行する種々の環境を
提供することである。
のプラットフォームと、異なる種類のプラットフォーム
上で走るアプリケーションとがそれ自身に特有の方法で
情報を記憶する。例えば、VAX.VMSプラットフォ
ームではテキスト編集タスクはTPUテキスト編集プロ
グラムを使って達成され、MIPS.ULTRIXプラ
ットフォームでは、テキスト編集タスクはEMACSテ
キスト編集プログラムを使って達成されることが出来
る。両方のプラットフォームを持っている回路網のユー
ザーは、これらのプラットフォーム及びテキスト編集の
詳細を知る必要無しに、異なるテキスト編集プログラム
からのオペレーションを異なるプラットフォームに使用
しようと希望することが出来る。
しろ、普通の回路網は、各アプリケーションが特別のプ
ラットフォーム上でのオペレーションのために必要とす
る特別のインターフェースを不均一回路網のユーザーが
採用することを必要とする。普通の回路網は、標準的イ
ンターフェースを使ってアプリケーション間で通信を行
う能力をユーザーに提供することが出来ない。
ョン間通信の困難の例として、一プラットフォーム上の
テキスト編集アプリケーションのユーザーが、他のプラ
ットフォーム上の、科学論文のためのDIALOGや裁
判官の意見のためのLEXISなどの、多ユーザー・デ
ータベース検索サービスにアクセスすることを希望した
とする。普通の回路網上でそうするためには、テキスト
編集アプリケーションの動作を一時停止させなければな
らず、且つ、該データベース検索サービスに特有のコマ
ンド及びメッセージを使って該データベース検索サービ
スを呼び出さなければならない。ユーザーは、希望する
各サービスの特有の名称を知らなければならないだけで
なくて、回路網中の該サービスの位置も知らなければな
らず、且つ、各サービスが採用する種々のコマンド及び
コマンドフォーマットに精通していなければならない。
ム内のアプリケーションが異なるプラットフォーム上の
アプリケーションを効率的に且つ複雑でない方法で呼び
出せる様にするために、これまでは標準的インターフェ
ースは開発されていない。むしろ、普通のアプリケーシ
ョン間通信は、単に、アプリケーション同士の間でメッ
セージ及びデータを物理的に運ぶためのメカニズムを提
供するに過ぎない。
が別のプラットフォーム上のアプリケーションと通信出
来る様にするために現在使われているメカニズムの一例
は、遠隔手続きコール(Remote Procedure Call(RPC と
略記する))システムである。一プラットフォーム上の
RPCシステムは、最初にそのアプリケーションのメッ
セージを回路網データフォーマットに変換し、次にその
変換した問いあわせを該回路網を介して受け取り側プラ
ットフォームに送ることによって、「呼出しを行ってい
る」アプリケーションからの問い合わせに応答する。受
け取り側プラットフォームにおいて、RPCシステムの
他の構成要素が、変換されたメッセージを解読して、呼
び出されたアプリケーションに受入れられるデータフォ
ーマットの問い合わせにする。しかし、呼出し側プラッ
トフォームからの元のメッセージは、呼び出されたアプ
リケーションにより述べられる構文と矛盾してはならな
い。
上のアプリケーションが現在ロードされ走っていないと
きに生じる。多くのRPCシステムは、既にロードされ
走っているアプリケーションの遠隔呼出しだけを可能に
するに過ぎない。若しそうでなければ、クライアント・
アプリケーションのユーザーは、遠隔のプラットフォー
ム上のサーバーアプリケーションを呼び出す前に該アプ
リケーションをロードする何らかの方法を発見しなけれ
ばならない。これは極めて限定的である可能性がある。
汎回路網システムを実現するについての一つの障害は、
回路網内の種々のデータ、オペレーション、及びアプリ
ケーションの全てを扱うためにシステムに必要とされる
と考えられていたシステム資源の量の多さであった。回
路網が拡大するに従って、システム、資源、及び要件も
増大して、多くの提案された装置が全く扱いにくいもの
となる。
一貫性のあるインターフェースを通すなどして、異種の
プラットフォーム上のアプリケーションが相互に通信す
るための効率的で単純な方法が必要である。分散不均一
環境におけるアプリケーションのための動的呼出し環境
も必要である。これは、ロードされ走っているアプリケ
ーションと同様に未だロードされ走ってはいないアプリ
ケーションも呼び出す能力を提供することを含む。
は、データ自体を管理するのではなくてデータ・インス
タンス及びアプリケーションの「クラス」をシステムが
管理するオブジェクト指向的方法でプロセスの相互作用
に対処する。この様なクラスの管理は、該クラスにより
支援されるアプリケーション又はインスタンス(instan
ce) の或る共通の属性などの、該クラスについての情報
を包含するデータベースを必要とすることがある。
メーターと共に、大域的に(即ち、回路網にわたって)
認識されるメッセージを送ることによって他のアプリケ
ーションを遠くから呼び出すことが出来る。メッセージ
の名称と、或るパラメーター及び或る優先順位情報(コ
ンテキスト情報と称する)のクラスに関する情報とを使
って、特別の方法への参照が該データベースから選択さ
れる。この方法は、該メッセージで指定されているオペ
レーションを行う。該データベース中の他の情報は、そ
のとき、参照された方法を実施する実際のコードの位置
を確認して実行するのに使われる。
含むデータ処理回路網において、この発明に従ってクラ
イアント・アプリケーションによりサーバー・アプリケ
ーションを呼び出すプロセスは幾つかのステップを含む
が、該クライアント・アプリケーションは、該クライア
ント・アプリケーションにより操作又はアクセスされる
ことのあるアイテムである複数のインスタンスを包含
し、該インスタンスは、同じクラスの中のインスタンス
が共通の特徴を共有する様にクラスに編成され、更に該
クライアント・アプリケーションは、該クライアント・
アプリケーションについて確認されたインスタンスに対
して行われることの出来るオペレーションの種類を指定
する複数のメッセージを包含する。詳しく言うと、該プ
ロセスは、プラットフォームにより行われる次のステッ
プからなる、即ち、第1のインスタンスについての識別
子と、該第1インスタンスに対して行われるべき所望の
オペレーションについての識別子とを含む第1メッセー
ジを該クライアント・アプリケーション内に生成するス
テップと;該第1メッセージと、該第1インスタンスが
編入されているクラスとから第1の方法についての識別
子を決定するステップであって、該第1方法についての
識別子は、該サーバー・アプリケーションが該第1イン
スタンスに対して所望のオペレーションを行うのを許す
手順への参照を包含しているステップと;該第1インス
タンスについての該識別子と該手順への該参照とを、該
サーバー・アプリケーションを呼び出するための該サー
バー・アプリケーションを内蔵するプラットフォームの
サーバーの一つへ送るステップと、から成っている。
ーバー・アプリケーションをオブジェクト指向的に遠く
から呼び出せる様にするこの発明のデータ処理回路網
は、一義的に識別可能な複数のクラスについての情報を
含む複数のクラス項目を含むデータベースを内蔵する回
路網内のメモリーを備えており、該クラスはインスタン
スの種類を特定し、該インスタンスは、共有される特徴
に従って該アプリケーションにより操作又はアクセスさ
れることのあるアイテムであり、該クラス項目の各々は
メッセージ項目の対応するグループの識別を包含してお
り、該メッセージ項目は、対応するクラス内のインスタ
ンスに対して行われることの出来るオペレーションの種
類を指定する情報を包含しており、該クラス項目の各々
は、該アプリケーションを呼び出す呼出しコマンドへの
参照を内蔵する方法項目の対応するグループの識別を内
蔵しており;該データ処理回路網は、更に、該クライア
ント・アプリケーションを実行するための複数の第1プ
ラットフォームと該サーバー・アプリケーションを実行
するための複数の第2プラットフォームとを備えてい
る。該第1プラットフォームは、第1インスタンスにつ
いての識別子と、該第1インスタンスに対して行われる
べき所望のオペレーションについての識別子とを含む第
1メッセージを生成する手段と、該メモリーに接続され
て該データベースを制御するデータベース制御手段とを
包含する。該データベース制御手段は、該第1メッセー
ジの結果として呼び出されるべきサーバー・アプリケー
ションを選択する手段と、該第1インスタンスに対して
所望のオペレーションを行う選択されたサーバー・アプ
リケーションへの参照を含む第1方法についての識別子
を該第1メッセージと該第1インスタンスが編入されて
いるクラスとから決定する手段と、該第1インスタンス
についての該識別子を介して該選択されたサーバー・ア
プリケーションへの該参照を該第2プラットフォームの
中の選択された一つに送る手段とを含む。該第2プラッ
トフォームは、該データベース制御手段内の該送り手段
から該サーバー・アプリケーションについての該参照を
受け取る手段を含む。
する添付図面は、発明の具体例を示していて、説明と共
に発明の原理を説明する。
を詳しく参照する。この発明は、普通の回路網アーキテ
クチャに組織されたデータプロセッサにより好適に実施
される。しかし、協働的にアプリケーションを実施する
ためのアーキテクチャ及び手順は、該回路網内のアプリ
ケーション間の相互作用へのオブジェクト指向的アプロ
ーチに対処するものであるので、従来からある普通のも
のではない。 A.回路網の主要な構成要素 図1は、本発明を実施するのに使うことの出来る回路網
50を示す。図1において、回路網50は、回路網バス
55によって接続された3個の独立のプラットフォーム
100、200、及び300を包含する。プラットフォ
ーム100、200、及び300は完全に不均一である
として示されているけれども(即ち、プラットフォーム
100はVMSオペレーティングシステムを使用するV
AXプロセッサとして示されており、プラットフォーム
200はULTRIXオペレーティングシステムを使用
するMIPSプロセッサとして示されており、プラット
フォーム300はMS−DOSオペレーティングシステ
ムを使用する80286プロセッサとして示されてい
る)、この発明は均一回路網でも作用するものである。
また、プラットフォームの数は重要ではない。
は、それがプラットフォーム100、200、及び30
0の間の情報の通信を考慮にいれる限りは、重要ではな
い。また、この特別の回路網アーキテクチャは、この発
明には充用でない。例えば、この発明に従って使用され
ることの出来る他の回路網アーキテクチャは、一つのプ
ラットフォームを、他のすべてのプラットフォームが接
続される回路網コントローラとして使用する。しかし、
図1に示されている回路網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がそれぞれ
包含されている。
20は、本発明と協働するように前もって書かれて修正
され、又は本発明の与えるサービスを利用するように特
に書かれたプログラムであることが出来る。この解説の
目的のために、アプリケーションは、この発明に従って
行われるべきオペレーションを呼出し、或いは他のアプ
リケーションによる呼出しに応答する。
30、及び330は、この発明のオブジェクト指向的ア
プローチを具体化するものである。好ましくは、ACA
Sソフトウェア構成要素130、230、及び330
は、詳しく後述する数個のソフトウェア・モジュールか
ら成る。オペレーティングシステム140、240、及
び340は、それぞれ、プラットフォーム100、20
0、及び300の対応するCPU110、210、及び
310に結び付けられている標準的オペレーティングシ
ステムである。
幾つかの機能に貢献する。その機能の一つは、勿論、随
伴するプラットフォームのために汎用記憶装置を提供す
ることである。他の機能は、アプリケーション120、
220、及び320と、ACASソフトウェア構成要素
130、230、及び330と、オペレーティングシス
テム140、240、及び340とを、それぞれのCP
U110、210、及び310によるそれらの実行に先
立って記憶することである。
0の一部分は、回路網50内のプラットフォーム10
0、200、及び300の全てにより共有され且つ直接
に又は間接的に利用されることの出来る、汎回路網、又
は「大域的な」、データベースについての情報を内蔵す
る。この大域データベースについて以下に詳細に説明す
る。 B.オブジェクト指向アーキテクチャの要素 (1) 要素の定義 オブジェクト指向的方法は、実際の実施からデータのイ
ンターフェースを分離するためにプログラミングにおい
て使用されてきているが、この様な方法は不均一回路網
には適用されていない。本発明では、オブジェクト指向
技術を使って実際のアプリケーション及びそのデータ
を、他のアプリケーションによるそのデータに対するオ
ペレーションの実施から分離する。
ャは、好ましくは、或るキー要素を包含する。図2は、
これらの要素の或るものと、アプリケーションの或る普
通の特徴との関係を説明する。図2に示されている様
に、アプリケーション260は2通りの方法で記述され
ることが出来る。第1に、そのアプリケーションは或る
アプリケーション定義265を持っている。例えば、ア
プリケーション260がワード処理プログラムであるな
らば、そのアプリケーション定義は、そのワード処理プ
ログラムが行うことの出来るオペレーションと、そのワ
ード処理システムが操作することの出来るデータの種類
についての定義を含むことが出来る。
ケーションデータ268を含む。アプリケーションデー
タ268は、アプリケーション260が操作するデータ
である。本発明に従って、該アプリケーションデータは
オブジェクト指向アーキテクチャによって「処理」され
ない。むしろ、本発明は、該アプリケーション定義及び
アプリケーションデータをオブジェクトの種類(この明
細書の残りの部分でオブジェクトと呼ばれている)に関
しての特徴付けを巡って組織される。オブジェクトは、
図2に示されてはいないが、図示の要素に浸透してい
る。
いう用語は、幾つかの異なる種類の要素を一般的に指す
が、その全ては二つの特徴を共通に持っている。第1
に、それは外部能力を指し、オブジェクトが、アプリケ
ーション定義又はアプリケーションデータの、他のアプ
リケーションと共に伝えられる必要のある部分を指し又
は記述することを意味する。第2に、それは包括的で、
オブジェクトは全てのアプリケーションに対して利用可
能なものであって、その様なものとして普遍的に認識さ
れた独特の名称を、そのオブジェクトへのインターフェ
ースを有する全てのアプリケーションについて有するこ
とを意味する。本発明は、特別のデータ又はアプリケー
ションの取扱ではなくてオブジェクトの取扱に関わるも
のである。
ジェクト指向アーキテクチャの二つの要素は、アプリケ
ーション定義265から開発される。一つはクラス27
0で、他方は方法280である。クラスは、クラスの名
称とクラスの特徴との両方が外部的で且つ包括的である
という意味でオブジェクトである。更に、クラスは、ア
プリケーションだけでなくて、該アプリケーションによ
り使われるデータをも記述する手段として使われること
が出来る。
れる或る種のオペレーションをアプリケーション定義2
65から得ることが出来、それは方法280の特別の例
である。しかし、特別の方法280は、該システムによ
って管理されることはなくて、クラスに編成されること
が出来る。該アプリケーションにより実行される特別の
コマンドやオペレーションがそうではなくても、これら
の方法についてのクラス(方法オブジェクトと呼ばれ
る)は包括的で且つ外部的である。
データ268から得られたものであるが、アプリケーシ
ョンが操作し又はアクセスすることの出来る項目であ
る。インスタンスは、このアーキテクチャにより管理さ
れるオブジェクトではない。むしろ、インスタンスは、
同じクラス内のインスタンスが共通の特徴を共有するこ
ととなる様にクラスに編成される。例えば、特別のDE
Cwriteアプリケーションは、複合文書編集プログ
ラムであるが、MYFILEと呼ばれる特別のファイル
上で動作することが出来る。これは特別のファイルであ
って、ACASシステムによっては取り扱われない。む
しろ、MYFILEは、包括的で、従ってクラスオブジ
ェクトである例えばASCII FILE等の両立ファ
イルのクラスに属することが出来る。
ションも該システム全体によって管理されるものではな
い。しかし、この特別のDECwriteアプリケーシ
ョンは、包括的でクラスオブジェクトであるDECwr
iteと呼ばれるクラスに属することが出来る。図2か
ら分かる様に、アプリケーションが属するクラスによ
り、そのアプリケーションにおいて特別の方法を支援す
るクラス(方法オブジェクト)により、該方法オブジェ
クトが操作することの出来るクラスオブジェクトによっ
て、アプリケーションは特徴付けられることが出来る。
編成され得ることである。このことは、以下に詳しく説
明するけれども、上位クラス及び下位クラスの概念を考
察することにより前もって理解することの出来るもので
ある。上位クラスは、その下位クラスの親であり、各下
位クラスは少なくとも一つの上位クラスの子である。上
位クラス/下位クラスの関係は、上位クラスの属性又は
共有される特徴が下位クラスに受け継がれることを意味
する。例えば、DATA FILESのクラスは、属性
として、開かれ、読み出され、書き込まれることの出来
る能力を持つことが出来る。クラスDATA FILE
Sの二つの下位クラスはSEQUENTIAL FIL
ES及びRANDOM ACCESS FILESの下
位クラスである。開かれ、読み出され、書き込まれるこ
とが出来るという属性に加えて、下位クラスSEQUE
NTIAL FILESは、順次にアクセス可能である
という属性を持つことも出来、下位クラスRANDOM
ACCESS FILESは、アドレスにより直接ア
クセス可能であるという属性を持つことが出来る。
クト指向アーキテクチャの他の要素は、メッセージであ
る。メッセージは、アプリケーションプログラムと方法
との間のインターフェースであって、クライアント・ア
プリケーションで確認されるインスタンス上に行われる
ことの出来るオペレーションの種類を指定するために該
アプリケーションプログラムにおいて使用される。メッ
セージは、一般に、PRINTなどのオペレーション
と、数個のパラメーター(これはインスタンス、ストリ
ング、番号、等々であることが出来る)とのセレクター
の形を取る。これらの要素間の関係を次の節で説明す
る。 (2) 要素の関係 図3は、前述した種々の要素の関係を示す図である。図
3が示す様に、各インスタンス370にクラス380が
随伴している。これを理解する他の道は、クラス380
を、そのクラスでの目的の創作(これはインスタンスで
あることが出来る)と、そのオブジェクトの操作とのた
めの「テンプレート」と見なすことである。「テンプレ
ート」という用語は、オブジェクト(それがデータ項
目、方法、又はアプリケーションであるとしても)が各
クラスにおいて、そのクラスにより決まる或る特徴又は
属性を共有することを意味する。
を送ることによって操作される。メッセージ360は、
EDIT、READ又はPRINTなどの動作である。
メッセージはクラスにより「支援される」と言われる
が、それは、メッセージの解釈が、そのメッセージ内の
インスタンスが属するところのクラスに依存するという
ことを意味する。例えば、若しインスタンスがクラスC
OLOR GRAPHICS内のカラーグラフイックス
ファイルではなくてクラスTEXT FILE内のテキ
ストファイルであるならば、PRINTメッセージは別
様に解釈されることがある。
ンの実施を説明せず、単に特定のオペレーションの実施
へのインターフェースを表すに過ぎない。よって、特定
のメッセージ360が要求している特定のオペレーショ
ン(即ち、方法)を発見するためには、該メッセージだ
けではなくて、該インスタンスのクラスをも検査しなけ
ればならない。特別の動作を起こさせるためには、メッ
セージ360を実際の実行可能なプログラムコードにマ
ッピングしなければならない。このマッピングは、特定
のインスタンス370の特定のクラス380に対応する
特定のメッセージ360を発見し、次に該クラス380
により支援されるメッセージ360に対応する特定の方
法390を発見することによって行われる。該方法39
0は、該インスタンス370上のメッセージ360の所
望のオペレーションを実施する実際の実行可能なプログ
ラムコードを表す。 (3) 編 成 図4は、種々のオブジェクト指向アーキテクチャ要素
を、メモリーにおけるその特別の表示に先立って編成す
る方法を示す。図4から明らかな様に、クラスと方法と
の間には複雑な関係がある。アプリケーション間に存在
しなければならない挙動に関する関係を反映するのに必
要なオブジェクト指向アプローチを実現するために、好
適な実施例では方法及びクラスの両方のために階層が使
用される。しかし、与えられた特別の例は単なる説明の
ためのものであって、これらのクラス及び方法について
の他の種類の表示は当業者には明らかであろう。
岐の階層がある。一つは方法オブジェクト400という
見出しが付され、他方にはクラス450という見出しが
付されている。該分岐、階層は、受け継がれるものによ
り異なる。クラス階層では、受け継がれるものは、メッ
セージを包含するので、挙動についてのものである。方
法階層では、受け継がれるのは属性についてのものだけ
である。クラス階層と方法階層との間の橋は、メッセー
ジ490及び495などのメッセージと、マップ493
及び398などの方法マップとを経由する。図4に示さ
れている方法階層では、方法階層410、415、及び
420は、それぞれWORD C CUT MS−DO
S、WORD C READ VMS、及びWORD
C READ ULTRIXとして表されているが、方
法オブジェクト400から受け継ぐ。例えば、図4で
は、方法オブジェクト400は、該方法を指示し、或る
相互作用タイプを使用し、或るサーバー始動タイプを有
する属性(図示せず)を持つことが出来る。
プリケーションにおいてCUT機能を代表する。方法4
10には、方法オブジェクト400から受け継がれたも
のを包含する属性430の組が付随している。簡単に言
うと、PlatformType属性は、該方法オブジ
ェクトをその上で実行出来るところのプラットフォーム
を示す。InteractionType属性は、特定
の方法サーバーの中で実行される方法の実際の種類を記
述する。以下に説明するこの属性についての値の例は、
BUILT IN、SCRIPT SERVER、及び
DYNAMIC LOADである。ServerStar
tupType属性は、該方法サーバーのために使われ
るべき適切な呼出しメカニズムを示す。この属性につい
ての値の例は(これについても後述する)、SHEL
L、DYNAMIC LOAD、及びNAMED AP
PLICATIONである。
ティングシステム付きの80286プロセッサを有し、
BUILT IN、相互作用タイプ、及びNAMED
APPLICATIONサーバー始動タイプを有するプ
ラットフォーム上で付随の方法が作動することを示す。
同様に、方法オブジェクト415は、EMACSアプリ
ケーションにおいてREAD機能を代表する。方法41
5には属性435の組が付随しているが、これらの属性
は、方法オブジェクト400から受け継がれたものを含
んでいるけれども、これも、付随の方法がVMSオペレ
ーティングシステムを走らせるVAXプラットフォーム
上で動作し、BUILT INの相互作用タイプと、N
AMED APPLICATIONサーバー始動タイプと
を有することを示す。
プリケーションにおけるREAD機能を表す方法オブジ
ェクト400の下位クラスである。方法クラス420に
ついて属性440は、BUILT IN相互作用タイ
プ、及びNAMED APPLICATIONサーバー
始動タイプでULTRIXオペレーティングシステムを
走らせるMIPSプロセッサ付きのプラットフォーム・
タイプを有する。
れるクラス460と、APPLICATIONSと呼ば
れるクラス465との上位クラスである。クラス460
はデータオブジェクトを参照する。図4に示されている
様に、クラス460は、属性(図示せず)を有し、クラ
ス470の上位クラスである。クラス470はASCI
I FILEと呼ばれる。例えば、クラス470は、A
SCIIファイルの共通の特徴を持っている回路網50
(図1を見よ)内の全てのファイルを代表することが出
来る。この共通の特徴は、クラス470についての属性
において記述されることが出来るが、それは図4には示
されていない。
いてのクラスであるが、該インスタンスは、該オブジェ
クト指向アーキテクチャによって管理されるものではな
いので、図4には示されていない。図4に示されている
のは、クラス470が支援するメッセージであり、簡単
のために図示されている唯一のものはEDITメッセー
ジ490である。
このオブジェクト指向アーキテクチャへのインターフェ
ースとして使われるときには、それを支援するクラスと
共に、従ってそのクラスの中のインスタンスと共に、使
用されることが出来ることを意味する。よって、図4に
示されている例では、ASCII FILEクラス内の
全てのインスタンスにEDITメッセージを送ることが
出来る。
上位クラスであり、その下位クラスの一つ(EDITO
Rクラス475)が示されている。EDITORクラス
475は、WORD A、WORD B、又はWORD
Cに対応する、特別のアプリケーションクラス48
0、483及び485に対して上位クラスである。WO
RD Cなどの、該クラスの各々は、EMACS又はT
PU特別のアプリケーションを代表する。よって、各ア
プリケーションは1クラスにより定義される。しかし、
アプリケーション・クラスは、2アプリケーション以上
の実施挙動に言及することが出来る。
支援するが、それは、メッセージCUT495がアプリ
ケーション・クラス485に支援されていることで示さ
れている。これは、クラス定義の時に、クラス485に
より代表される如何なるアプリケーションもメッセージ
CUTを支援しなければならないことが決定されたとい
う事実を反映している。
アプリケーションは、上位クラスと呼ばれる親クラス
と、下位クラスと呼ばれる子クラスとのあるクラスの階
層に編成される。図4において、クラス465は、ED
ITORと呼ばれる上位クラスである。この上位クラス
の全ての下位クラスは、該上位クラスの特定の独特の特
徴又は属性の同一の組を少なくとも持っている。図4に
おいて、上位クラス475EDITOR下位クラスは、
WORD A480、WORD B483、及びWOR
D C485である。WORD AはTPUアプリケー
ションを表し、WORD B483は全てのLSEアプ
リケーションを表し、WORD C485は全てのEM
ACSアプリケーションを表す。これらの上位クラスの
各々は、上位クラス475から受け継いだ特徴及び属性
に加えて、それ自身の独特の特徴及び属性の組を持って
おり、その特徴及び属性は、上位クラス475EDIT
ORの中で下位クラスとして分離されることが可能とな
る様に異なっている。
特別の規則は、クラス間での多重受け継ぎを許す様にな
っている。これは、如何なる下位クラスも2以上の上位
クラスを持つことが出来ることを意味する。この種類の
受け継ぎは、定義時に曖昧さを作り出すかもしれないの
で、上位クラスは、潜在的な受け継ぎ矛盾を解決するた
めに定義時に「順序づけ」られると考えられる。例え
ば、後述する下位クラスの定義の時に、メッセージ又は
属性が、記録されている上位クラスの中の二つ以上にお
いて重複して定義されているために矛盾が生じたなら
ば、最高の順位のクラスにおいて定義されているメッセ
ージ又は属性が該下位クラスに受け継がれるものである
と見なされる。
との間の関係は方法マップを経由するものである。図4
は、二つの方法マップ493及び498を示す。クラス
の各々はメッセージを有し、その各々は特別の方法マッ
プを指す。よって、方法マップ493にはEDITメッ
セージ490が随伴し、方法マップ498にはCUTメ
ッセージ495が随伴している。
随伴する方法オブジェクトの名称を含んでいる。方法マ
ップは、他のクラス及びメッセージの名称を内蔵するこ
とも出来る。よって、方法マップ493は、二つの方法
オブジェクトの名称を含んでいる。方法マップ493
は、方法オブジェクトWORD C READ MIP
S.ULTRIX494(これは方法オブジェクト42
0の名称である)の名称と、方法オブジェクトWORD
C READ VMS496(これは方法オブジェク
ト415の名称である)の名称とを包含している。
の方法マップ498は、名称WORD C CUT 8
0286.MS−DOS499を内蔵するが、これは方
法オブジェクト410の名称である。この様にして、方
法マップ493及び498を使って、方法オブジェクト
410、415、及び420にそれぞれ対応する属性の
組430、435、及び440の位置を示すことが出来
る。この種の順位を使って方法の位置を示すやり方を以
下に詳細に説明する。 C.クラス・データベース構造 該回路網アーキテクチャのクラス及び方法オブジェクト
は、図5に示されているクラス・データベース500に
記憶される。クラス・データベース500は、回路網5
0により共有され使用されることの出来る相互に関連し
たデータ項目の非冗長集合体を表す。
0は、図4に示されているのと類似した2種類のオブジ
ェクトから成っている。該オブジェクトは、クラス50
5又は方法549である。クラス505の各々は、対応
するクラスのインスタンスについての包括的外部表示に
対応する。例えば、図5において、クラスオブジェクト
ASCII FILE506は、クラスASCII F
ILE506の特徴を有するインスタンスの組の全ての
構成員についての包括的外部表示に対応する。該特徴
は、属性510の対応する組によって表される。
る属性510は、システム開発者又はユーザーが希望す
る随意の方法で使われる。例えば、ASCII FIL
E506についての属性511は、クラス506をディ
スプレイ上に表示するアイコン(icon)の名称を含
むことが出来る。クラス505の各々は、メッセージ5
20の組も支援する。メッセージは、「動詞」又はセレ
クターと呼ばれるCUT、READ又はEDITなどの
メッセージ名と、パラメーターとから成る。該パラメー
ターの各々は、名称と、タイプと、方向とから成る。そ
の名称は「タイプ分けされている」が、それは、その名
称が、例えば整数、文字又はストリングなどの特定のタ
イプのものであることを意味する。各パラメーターにつ
いて可能な方向は「イン(in)」、「アウト(ou
t)」及び「イン/アウト(in/out)」である。
メッセージ内のパラメーターが「イン」方向を持ってい
るとき、これは、そのパラメーターが、呼び出されるべ
き方法への入力であることを意味する(後述する)。メ
ッセージ内のパラメーターが「アウト」方向を持ってい
るとき、それは、該パラメーターが方法からの出力であ
ることを意味する。メッセージ内のパラメーターが「イ
ン/アウト」方向を持っているとき、それは、該パラメ
ーターが方法への入力及び方法からの出力の両方である
ことを意味する。
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はパラメーターの名称で
あり、ストリングはパラメーターのタイプであり、イン
/アウトはパラメーターの方向である。
れぞれの方法マップ530及び540を指す。方法マッ
プ530及び540の各々は、クラス・データベース5
00内の対応する方法オブジェクトへの、又は他のクラ
ス及びメッセージの名称への、参照の組を内蔵する。例
えば、方法マップ530は、参照531及び533を内
蔵しており、その各々は、異なる方法オブジェクト(図
示せず)に対応する。方法マップ540も参照541及
び543を内蔵し、その各々は、クラス・データベース
500内の方法オブジェクト549の中の異なる一つ一
つに対応する。参照541についての対応する方法オブ
ジェクトは図5に示されている。この例の目的のため
に、図5は、方法マップ540上の参照543が方法オ
ブジェクト550(これはED 3 READである)
を指すことを示す。
0内の方法オブジェクト549も階層的に記憶される。
方法オブジェクト549の各々は、方法を行うことの出
来る実行可能なコードへの参照を表す。好適な実施例と
同様の回路網データ処理システムにおいては、方法オブ
ジェクト549の各々に随伴していて、各方法オブジェ
クトにより特定される機能を行うことの出来る実行可能
なコードの多くのインスタンスがあり得る。例えば、各
メモリー150、250及び350(図1)において、
方法オブジェクトED 3 READ550に実行可能な
コードの設備が随伴することが出来、その実行可能なコ
ードの各々は方法オブジェクトED 3 READ55
0NO機能をプラットフォーム100、200、及び3
00のそれぞれの一つに行うことが出来る。好適な実施
例によるシステムは、3個の実行可能なコードの間で選
択を行うプロセスを包含する。
て、方法オブジェクト549に随伴するクラス・データ
ベース500の方法属性560は、回路網中の、方法オ
ブジェクト550などの特定の方法オブジェクトに随伴
するインスタンスの位置を示して実行するのに使われ
る。簡単のために、図5は、クラス・データベース50
0内の方法属性561の唯一の組を示す。組561に
は、クラス・データベース500内の方法オブジェクト
549の中の方法オブジェクト550が随伴している。
組560内の方法属性の幾つかは、該システムのユーザ
ーによって任意に指定されて実行中に該システムにより
使用されることが出来るけれども、或る属性は、オペレ
ーションにとっては重大である。
法属性は、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を参照して説明
する。
種々の構成要素と、これらの構成要素の間を流れる情報
とを示す図600を包含している。図6のアプリケーシ
ョン610及び670は、各々、アプリケーション12
0、220、又は320のいずれか一つにそれぞれ対応
しており、ACASソフトウェア構成要素620及び6
60は、各々、ACASソフトウェア構成要素130、
230、又は330のいずれか一つに対応している。ク
ラス・データベース640及びコンテキストオブジェク
トデータベース630は、メモリー150、250、及
び350の中の1個以上に記憶される。
ョン610(これは、「クライアント・アプリケーショ
ン」と称する)は、メッセージを送る。該メッセージ
は、クライアント・アプリケーション(又はその他のア
プリケーション)のインスタンスを識別するのに使われ
るメカニズムであるインスタンス・ハンドルを包含する
ことがある。該メッセージは、クライアント・プラット
フォーム内のソフトウェア構成要素620に受け取られ
る。
メッセージと、該インスタンス・ハンドルが指している
インスタンスのクラスとの名称を使って、クラス・デー
タベース640内の方法マップを見つけだす。ACAS
ソフトウェア構成要素620は、コンテキストオブジェ
クトデータベース630からのコンテキスト情報を使っ
て、該方法マップから、実行されるべき方法を表す方法
識別子を選択することも出来る。該コンテキスト情報
は、選択された方法をその上で実行するべきプラットフ
ォーム(「サーバー・プラットフォーム」と称する)を
選択するためにも使われる。該コンテキスト情報につい
て以下に詳細に説明する。
クラス・データベース640から検索された方法識別子
とインスタンス・ハンドルとをサーバー・プラットフォ
ーム内のACASソフトウェア構成要素660に送る。
その後、ACASソフトウェア構成要素660は、「サ
ーバー・アプリケーション」670を使って、識別され
た方法を実行するために適切なステップを行うか、或い
は、ACASソフトウェア構成要素660を内蔵するサ
ーバー・プラットフォームが要求に答えることが出来な
いことをACASソフトウェア構成要素620に知らせ
る。この後者の場合、ACASソフトウェア構成要素6
20は、該コンテキスト情報を検討して該回路網内の他
のプラットフォームをサーバー・プラットフォームとし
て選択するか、又は、その要求が成就しなかったことを
クライアントに知らせる。
・アプリケーション670による実行が、クライアント
・アプリケーション610に戻されるべきメッセージを
発生させたならば、そのメッセージは、追加の情報と共
に、サーバー・アプリケーション670からサーバー・
プラットフォーム内のACASソフトウェア構成要素6
60に渡される。サーバー・プラットフォーム内のAC
ASソフトウェア構成要素660は、クライアント・プ
ラットフォーム内のACASソフトウェア構成要素62
0に応答を送り、これは、その応答を該クライアント・
プラットフォーム内のクライアント・アプリケーション
610へ中継する。
以下に詳細に説明する。 E.メモリー・システム (1) 大域クラス・データベース メモリー・システム700の全体の図が図7に示されて
いる。メモリー・システム700は、大域クラス・デー
タベース705と、局所クラス・データベース710、
730及び750とを包含している。後述する他の或る
情報を回路網のユーザーが利用できる様にするために、
汎回路網メモリー705も設けられている。
ットフォームがアクセス出来る情報を内蔵する。好まし
くは、大域クラス・データベース705は、プラットフ
ォームのメモリー全体に分散されている。例えば、図7
において、大域クラス・データベース705は、メモリ
ー150、250、及び350の各々の中に部分的に内
在するものとして示されている。大域クラス・データベ
ース705の残りの部分は、図7に示されていない他の
メモリーに内在する。大域クラス・データベース705
の内容は、図4及び5に関して既に説明した。
ー構成は本発明を実施するのに必要ではないことを理解
するであろう。例えば、本発明の原理に影響を与えず
に、大域クラス・データベース705の全体を単一ノー
ドのメモリーに又は専用のメモリーに記憶させることが
出来る。また、メモリー150、250、及び350の
各々は、局所クラス・データベース710、730、及
び750と共に、ノード・キャッシュ720、740、
及び760をそれぞれ有するものとして示されている。
局所クラス・データベースの情報は、対応するプラット
フォーム上のユーザーだけがアクセス可能である。ノー
ド・キャッシュ720、740、及び760は、大域ク
ラス・データベース705の、対応するプラットフォー
ムによって頻繁にアクセスされる部分のコピーを保持す
るのに使われる。
するのに使われるデータベース・システムは、単一のデ
ータベースの中の名称の大域的独自性、データベースを
横断する識別子の独自性、アクセス制御メカニズム、及
び適切な記憶及び検索メカニズムを支援するべきであ
る。大域的な名称の独自性は、包括的(generi
c)であるので、オブジェクトにとって重要である。識
別子の独自性は、後述する様にデータベースを組み合わ
せることを可能にする。
メカニズムは、該回路網内の随意のプラットフォーム上
の正当と認められたユーザーがオブジェクト及び属性を
記憶し且つ検索することを可能にするものでなければな
らず、且つ、大域クラス・データベース705の完全性
を危険に曝すことを防止するために予防制御(secu
rity control)及び構文チェックを提供し
なければならない。この制御の詳細の一部を以下に説明
する。残りは、周知のデータベース管理技術に関わるも
のである。
く)オブジェクトを指すのに使うことの出来るオブジェ
クト識別子を大域クラス・データベース705内の各オ
ブジェクトに割り当てることが出来ることを必要とす
る。オブジェクト識別子は、2進コードであるので、好
都合なことに言語中立でもある。オブジェクト識別子
は、「大域的に」承認された方式に基づいて割り当てら
れ、そして、何個のクラス・データベースにわたっても
独特である。一方、オブジェクト名称は、単一のクラス
・データベースの中だけで独特であれば良い。クラス名
称と識別子との差異は、例によって良く理解することが
出来る。二つの会社が、各々それ自身のクラス・データ
ベースを持っていて、これらのデータベースを合併させ
たいと希望しているとする。これらのデータベースは、
合併されたデータベース内では異なっているべき同一の
名称のクラスを持っていることがあり、その差異は、大
域的に独特の識別子を通して維持されることが出来る。
該データベースは、合併されたデータベース内では同一
であるべき異なった名称の二つのクラスも持っているこ
とがある。これらのクラスは、同じクラス識別子を有す
ることとなる様にセットされることが出来る。よって、
オブジェクト識別子は、大域クラス・データベース内の
同じクラスが2以上のクラス名称によって識別されるこ
とを許す。例えば、回路網内の大域クラス・データベー
ス内のクラス名称EDITORSは、クラス名称WPR
OCESSORSによっても識別される。
30、及び330の各々にも含まれている他のソフトウ
ェア構成要素は、クラス・データベース内で使用され記
憶されるための独特のオブジェクト識別子を作り出すメ
カニズムを提供する。好ましくは、オブジェクト名称の
永続的記憶を必要とするアプリケーションにより採用さ
れる記憶方式は、多数の大域クラス・データベース間の
命名の矛盾を避けるために、オブジェクト名ではなくオ
ブジェクト識別子を記憶するべきである。
身のアプリケーション・インスタンス・データの組を完
全に管理するので、大域クラス・データベース705は
アプリケーション・インスタンス・データを記憶するよ
うにはなっていない。このために、既存のアプリケーシ
ョンは、その現在の記憶戦略を続けることが出来、新し
いアプリケーションのために利用可能な記憶オプション
は制限されない。
ム、即ち記憶クラス及びインスタンス命名を提供し、こ
れにより、アプリケーションは、その専用のインスタン
スを、好適な実施例によって維持される大域クラス・デ
ータベース705に接続することが可能となる。記憶ク
ラスは、アプリケーションが専用のインスタンスの解釈
の仕方を指定することを可能にする抽象である。記憶ク
ラスは、インスタンスがメッセージにおいて使われると
きに各インスタンスのクラスを識別することの代わりと
なるものである。好適な実施例では、記憶クラスは、イ
ンスタンスの名称を内蔵するレポジタリー(repos
itories)又はファイルなどの記憶システムを特
定する。例えば、記憶クラスは、RMS FILEやU
NIX FILEなどの既知の記憶メカニズムを記述す
ることが出来る。
ャでは、記憶クラスはクラスであるとも見なされる。ク
ラス・データベースに記憶されている他のクラスと同じ
く、記憶クラスは、属性、メッセージ、及び方法から成
る実際のオブジェクト指向クラス定義と見ることの出来
るものである。各記憶クラスに随伴する方法は、そのイ
ンスタンスの記憶クラスにより識別される特定の記憶シ
ステムに随伴するインスタンスについてのクラス名を検
索するのに使われる。
名、は好適な実施例においてインスタンスの命名のため
に標準を使用する。該標準インスタンス・ハンドルは、
以下の論理構造により表されるストリングである: <class><storage class><lo
cation><instance referenc
e data> 「クラス」(class)という用語は、随伴するAC
ASクラスの名称である。「記憶クラス」(stora
ge class)という用語は、クラス名の代わりで
あって、記憶クラスの名称である。「位置」(loca
tion)という用語は、インスタンスの、ノードなど
の論理的位置である。「位置」は随意的であって、イン
スタンスがある位置と同じ位置で方法が走ることをクラ
イアントが希望する場合に使用されるものである。「イ
ンスタンス基準データ」(instance refe
rence data)という用語は、インスタンス・
ハンドルは、アプリケーション専用部分である。
タンスを抽象的に指すことを可能にし、従ってインスタ
ンス自体を管理する必要が無い。インスタンス・ハンド
ルは、好都合なことには、クラス又は記憶クラス(必要
ならば)、インスタンスの位置、及び該インスタンスに
ついての識別子を含む。例えば、 EDIT(INSTANCE HANDLE) というメッセージにおいて、EDITは所望のオペレー
ションを表す。INSTANCE HANDLEストリ
ングは、ASCII FILE/NODE 1/MYF
ILE.TXTであることが出来る。このインスタンス
・ハンドルでは、ASCII FILEはクラスを表
し、NODE 1はインスタンスの位置であり、MYF
ILE.TXTは該インスタンスの識別子である。この
メッセージは、適切な方法マップを発見するのに充分な
クラス及びメッセージ情報を提供する。好適な実施例が
達成するのと同じ目的を達成するためにINSTANC
E HANDLEストリングについて他のフォーマット
を使用することも出来ることは当業者には明らかであろ
う。
ラス・データベース内の全てのクラスは特定の大域クラ
ス・データベースと共に独特の名称を持っている。該ク
ラス名は、一般に、該クラスを最初に定義するユーザー
によって割り当てられる。 (2) 局所クラス・データベース 大域クラス・データベースに加えて、好適な実施例は、
クラス及び方法定義についての局所クラス・データベー
スも支援する。局所クラス・データベースは、局所クラ
ス・データベースの内容が大域的に利用可能ではないこ
とを除いて、大域クラス・データベースと同様に機能す
る。これらは、その局所ノードのために利用可能であれ
ばよい。よって、局所クラス・データベースを他の切に
分散させたり複写したりする必要はない。
0、及び350内における局所クラス・データベース7
10、730、及び750の好適な設備を示す。大域ク
ラス・データベース710、730、及び750は、該
大域クラス・データベースに未だ加えられていない対応
するノードにより作られるクラス及び方法を保持する。
好適な実施例では、メモリー150、250及び350
は、それぞれ、ノード・キャッシュ720、740及び
760も含んでおり、それは、大域クラス・データベー
ス705からロードされる方法及びクラス情報を保持す
る。キャッシュは、最適化であり、厳密に要求されるわ
けではない。
に使われるデータベース・システムは、単一のデータベ
ースの中で名称の独自性をもたらさなければならない。
局所クラス・データベースのためのアクセス制御は、デ
ータベース・レベルでのみ必要とされるに過ぎない。局
所クラス・データベースの好適な実施例は、該局所クラ
ス・データベースの内容へのアクセスを制御するために
該データベース・システムの中で下に位置する機密メカ
ニズム(security mechanism)に依
拠する。
クラス・データベースの使用に比べて幾つかの利点をも
たらす。例えば、局所クラス・データベースは、回路網
が利用できないときでもオブジェクト指向的に相互に通
信し続ける能力を各ノード上のアプリケーションに与え
る。その様な場合、該ノード上のアプリケーションは、
そのノードに特有の他のアプリケーションを呼出し続け
ることが出来る。
ォームの範囲内で完全に操作されることが出来るので、
局所クラス・データベースを使えば、該局所クラス・デ
ータベースと同じノード内にあるアプリケーションのた
めに一層良好な動作が得られる。局所的に取り扱われる
ことの出来る呼出しを殆どのアプリケーションが使いそ
うなプラットフォームの上では、局所クラス・データベ
ースを使うと、呼出しを達成するために大域クラス・デ
ータベースにアクセスするなどの回路網の活動の必要が
無くなり、又は大いに減少する。
タベースを探索することにより、クラス・データベース
はクラス及び方法の情報について好都合に探索される。
各ノードの局所データベースは、後述する所定の順序で
好都合に探索される。所望の情報の位置が突き止められ
ると、直にその探索は停止する。所望の情報の位置が局
所データベース内に突き止められない場合に限って、大
域データベースが探索される。よって、該探索順序は、
クラス・データベースの「優先順位」を定義する。
の一部の一つの設計を示す。しかし、この設計は、ハン
ドルにとって重大ではない。好ましくは、局所クラス・
データベースは800は、局所クラス・データベース8
00においてインデックス及び割り振りマップなどの、
組織に関する他の情報の位置を示すのに使われるデータ
ベース・ヘッダ−810を内蔵する。局所クラス・デー
タベース800は、クラス及び方法に関する情報を保持
する数個のブロック820、822、及び824を内蔵
するブロック記憶スペース815も包含する。
24であることの出来るブロック900の好都合な構成
を示す。ブロック900は、ブロック900の始めに位
置する、該ブロック内のオブジェクトの位置を特定する
登録簿910と、オブジェクト記憶部920とを包含す
る。登録簿910内の項目955及び965は、各々、
ブロック900のオブジェクト記憶部920内に位置す
る異なるオブジェクト950及び960に対応する。各
登録薄項目は、IDフィールド912についての値(こ
れは対応するオブジェクトを特定する)、OFFSET
フィールド915についての値(これは、ブロック90
0内の対応するオブジェクトの相対的位置を表す)、及
び、対応するオブジェクトに割り振られたブロック90
0の量を示すSIZEフィールド917についての値を
包含する。
ことには文字ストリングとして書式作成されるが、他の
技術を使うことも出来る。再び図8を参照すると、局所
クラス・データベース800は、好都合なことには、そ
の名称をオブジェクト識別子に相関させることによっ
て、オブジェクトを検索することを可能にするNAME
−TO−ID−INDEX830を包含する。
OCK NO.MAP840に含まれている。マップ8
40は、局所クラス・データベース800において識別
される各々の独自のオブジェクトについてのブロック番
号を提供する。局所クラス・データベース800内の残
りのフィールドは、BLOCK TABLE850であ
る。BLOCK TABLE850は、好都合なことに
は、ブロック820、822、及び824の位置と、局
所クラス・データベース800の中の利用可能なスペー
ス829の位置とを包含する。利用可能なスペース82
9は、局所クラス・データベース800により割り振ら
れたブロック記憶スペース815の未使用スペースであ
る。
ジェクトを検索するために、そのオブジェクトについて
の名称が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を使用する。
ェア構成要素1010は、局所クラス・データベース1
000内のクラス情報を大域クラス・データベース10
20へ転送することを希望するユーザーにより作動させ
られる。この転送により、以前は該プラットフォームだ
けに対してアクセス可能であった情報に、大域クラス・
データベース1020を通じて全ての回路網ユーザーが
アクセス出来る様になる。局所クラス・データベース1
000からのクラス情報の、大域クラス・データベース
1020への転送は、好都合なことには、ASCIIフ
ォーマットのクラス及び方法オブジェクト定義をLOA
DER/UNLOADERソフトウェア構成要素101
0に送って大域クラス・データベースにロードさせるこ
とにより達成される。LOADER/UNLOADER
ソフトウェア構成要素1010は、好都合なことには、
局所クラス・データベースにより記憶されている言語定
義を分解するプロセスを実行し、それらの定義を適切な
ASCII表示に変換する。LOADER/UNLOA
DER1010は、大域クラス・データベースにより適
切なフォーマットで記憶されるべきこのASCII表示
のフォーマットを整える。
ェア構成要素1010は、ノード・キャッシュ1030
へのロードのために大域クラス・データベース1020
から情報をアンロード又は検索するユーザーからの要求
にも応答しなければならない。検索された情報は、好都
合なことには、LOADER/NLOADERソフトウ
ェア構成要素1010により言語定義に変換され、この
定義はノード・キャッシュ1030に記憶される。 F.クラス及び方法の創出、定義/登録 (1) 創 出 好都合なことには、クラスは、例えばLOADER/U
NLOADERにおいて使われる言語などの非手順言語
を使って定義され、次にコンパイルされてクラス・デー
タベースにロードされる。該言語、コンパイラ及びロー
ダー・ソフトウェアは好都合なことにはオブジェクト定
義設備の構成要素である。他の周知の技術も、当業者に
は自明であろう。
トウェア構成要素130、230、及び330(図1)
の一部であって、クラス、メッセージ、クラス属性、方
法及び方法属性を定義する手段を提供する。この設備
は、クラス間の受け継ぎの指定にも対処するものであっ
て、上記のLOADER/UNLOADERソフトウェ
ア構成要素1010と共に、大域クラス・データベース
及び局所クラス・データベースの中の既存の定義を修正
するために使われることが出来る。また、該オブジェク
ト定義設備は、好都合なことには、大域クラス・データ
ベース内で新しいクラス及び方法定義を作るのに使われ
るクラス定義入力及び方法定義入力の所要の構文チェッ
クを行う。該オブジェクト定義設備のユーザーは、クラ
スを作るために或る情報を指定しなければならない。こ
の情報は、好都合なことには、大域クラス名称及び識別
子;このクラスの上位クラスの大域名称及び識別子(若
しあるならば);このクラスにより支援されるメッセー
ジと、それに付随するアーギュメントのタイプ(若しあ
るならば);定義される方法マップ及び各マップが関連
するメッセージ;並びに、このクラスについて定義され
た属性、を包含する。
セージの名称、該メッセージにより支援されるパラメー
ター、及び対応する方法マップを含む構造を生成するこ
とにより指定される。各メッセージ構造は、好適な実施
例では2組の値に変換される。1組の値は、メッセージ
名と、該メッセージにより支援されるパラメーターのリ
ストとを包含する。他の組の値は、該メッセージの実施
を表す方法オブジェクトの組を特定する。
回路網環境内で定義される。しかし、好適な実施例のオ
ブジェクト定義設備は、方法オブジェクトの定義のため
の特別の備えを持っている。方法オブジェクトを定義す
るとき、次の情報、即ち、該方法オブジェクトの大域名
称と識別子;該方法オブジェクトの上位クラスの大域名
称と識別子;並びに、方法属性として記憶されるメタデ
ータ(即ち、データの記述)、が指定される。該方法定
義は、アーギュメント、及び、該メッセージ内のパラメ
ーターに対応するそのタイプ、並びに、該方法がパラメ
ーター・リストを含むか否か、を指定する。このパラメ
ーター・リストは、該方法により呼び出されることの出
来る実行可能なコード(後述する)により要求される入
力を表す。 (2) 方法/クラス定義 好適な実施例では、クラス及び方法定義のロードは、実
行時間前に行われ、或いは実行時間中に動的に行われ
る。クラス及び方法オブジェクトは、回路網内のノード
上で局所的にアクセス可能であるか(「局所定義」と称
する)、又は回路網内の全てのプラットフォームから大
域的にアクセス可能である(「大域定義」と称する)。
局所定義及び大域定義は、共に、LOADER/UNL
OADERソフトウェア構成要素1010又は他の何ら
かの許容出来るメカニズムを使って達成されることが出
来る。 (3) サーバー登録 サーバー登録の目的は、メッセージからの要求に答える
ために利用出来る方法サーバーを発見することである。
方法サーバーは、方法を実現する活動中の(即ち、現在
走っている)プロセスである。方法サーバーは、単一の
アプリケーションのコード又は1個以上のアプリケーシ
ョンのコードの多くの部分の実行を必要とすることがあ
る。
ブジェクトの定義とは別である。クラス及び方法オブジ
ェクトの定義は、システムにおけるそれらの存在を識別
するために使われるのに対して、方法サーバーの登録
は、それらの状況(即ち、使用可能性)を追跡するため
に使われる。方法サーバーが登録されなければ、それは
システムにとっては未知である。 (4) アプリケーションの設置及び定義 好都合なことには、回路網においてアプリケーションを
登録し設置するために支援メカニズムが設けられる。好
適な実施例は、クラス・データベースに記憶されている
クラス、下位クラス、メッセージ及び方法のオブジェク
ト指向モデルにおいてアプリケーション及びアプリケー
ション断片を定義する能力をもたらす。この様なアプリ
ケーションの定義は、この発明の好適な実施例により行
われるアプリケーション間通信の実行のために重要であ
る。詳しく言うと、クラス・データベース内のクラス・
下位クラス、メッセージ及び方法の記憶は、アプリケー
ションが、実行時間中に該クラス・データベースを更新
すると共に、再コンパイルと再連係とを必要とすること
無くその更新したクラス・データベースを使って処理し
続けることを可能にする。
して定義される。実際、上述した様に、アプリケーショ
ンは、それ自体が特別の種類のクラスであると定義され
る。アプリケーションは、そのプラットフォーム上の特
定のオペレーティングシステムに必要とされる方法でプ
ラットフォーム上に設置される。この発明の好適な実施
例では、アプリケーション設置は、幾つかの追加の機能
も必要とする。例えば、既に定義されているのでなけれ
ば、アプリケーションは、既存のACAS APPLIC
ATIONの下位クラスとして定義されるそれ自身のク
ラス定義を設けなければならない。
いるクラス定義を使ってもよく、或いは新しい定義を付
加してもよい。アプリケーション設置時には、設置手順
は、該アプリケーションにより支援されるクラス定義を
コンパイルして、上記したLOADER/UNLOAD
ERソフトウェア構成要素1010を使って局所クラス
・データベース又は大域クラス・データベースに登録す
ることが出来、その新しいアプリケーションによる影響
を受けるデータオブジェクトクラスの方法マップを更新
しなければならない。アプリケーション設置は、上記し
た方法オブジェクト定義手順も必要とする。 G.コンテキストオブジェクトデータベース この発明の好適な実施例では、コンテキストオブジェク
トデータベース630(図6を見よ)は方法を分解し、
方法を実行するべきプラットフォームを選択し、回路網
内にクラス・データベースを置くために使われるべき優
先順位を定義するメカニズムを提供する。数レベルのコ
ンテキストオブジェクトデータベースが図1の回路網5
0内に存在することが出来る。例えば、1レベルはユー
ザーコンテキストオブジェクトデータベースから成り、
もう一つのレベルはグループコンテキストオブジェクト
データベースから成る。システム(又はプラットフォー
ム)コンテキストオブジェクトデータベースも、該プラ
ットフォーム全体のユーザーのために優先順位を特定す
るために使われる。全てのコンテキストオブジェクトデ
ータベースは、方法分解時に優先順位を供給するけれど
も、グループコンテキストオブジェクトデータベース
は、2以上のユーザーの優先順位を認識するためにAC
ASソフトウェア構成要素130、230、及び330
により使われ、システムコンテキストオブジェクトデー
タベースは、2以上のグループの優先順位を認識するた
めに使われる。好都合なことには、方法分解において、
ユーザーコンテキストオブジェクトデータベース内の優
先順位がグループコンテキストオブジェクトデータベー
ス内のそれをオーバーライドし、それがシステムコンテ
キストオブジェクトデータベースをオーバーライドする
様に、コンテキストオブジェクトデータベース630内
のデータベースは使われる。
30は、好都合なことには、特定の回路網セッション時
にユーザーに随伴するプラットフォーム上にある。ユー
ザーが回路網に入るときに実行される初期ログオン手順
において、そのユーザーに随伴するコンテキストオブジ
ェクトデータベースに記憶されている情報は、後にAC
ASソフトウェアの動作時に使用されるために呼び出さ
れる。
タベース1100のための好適なメモリーシステムを示
す。コンテキストオブジェクトデータベース1100
は、方法オーバーライド・テーブル1110、サーバー
・ノード・テーブル1150、及びクラス・データベー
ス・オーバーライド・テーブル1170、並びに他のユ
ーザー定義テーブル1180を含む。方法オーバーライ
ド・テーブルは、メッセージ名と、インスタンス・ハン
ドルにおいて特定されるクラスとに応じて好適な方法を
選ぶために、方法分解(詳しく後述する)の際に使われ
る。サーバー・ノード・テーブル1150は、プラット
フォームを選んで、サーバー・プラットフォームである
ことの出来る回路網内に置くために、呼出し動作(これ
についても詳しく後述する)の際に使われる。クラス・
データベース・オーバーライド・テーブル1170は、
方法及びクラス情報について局所クラス・データベース
を探索する順序を定義する。
0は、システム供給テーブルである。ユーザーは、自身
の好みを実現するために自身のテーブル1180を供給
してもよい。方法オーバーライド・テーブル1110の
好適な実施例が図11Bに示されている。方法オーバー
ライド・テーブル1110は、方法セレクター属性名称
1115と、随伴する値1120とのリストを含む。各
項目は、属性名称1115について、好適な値1120
を指定する。例えば、図12において、好適なプラット
フォームはVAX.VMSと指定され、好適な相互作用
タイプはBUILT INである。2以上の方法がメッセ
ージに応じて特定されると、テーブル1110内の優先
順位は、それらの方法の中から一つを選ぶのに使われ
る。属性について値が指定されていなければ、システム
は、優先順位は無いと見なす。
100のサーバー・ノード・テーブル1150の好適な
実施例が図13に示されている。サーバー・ノード・テ
ーブル1150は、図1の回路網50内のノードの順序
づけられたリストである。テーブル1150内の各項目
は、プラットフォーム・タイプ1152と、選ばれた方
法を実施するのに使われることの出来る対応するプラッ
トフォーム・タイプを伴う回路網50内のノード115
4の場所とに対応する。例えば、テーブル1150は、
TYPE Aのプラットフォームタイプについて2個の
ノード、ノードa及びノードb、を特定している。
ーライド・テーブル1170の好適な実施例を包含す
る。テーブル1170は、局所クラス・データベース1
172の名称と、その場所1174とを含む数個の項目
を包含している。項目1175については、データベー
スDB SCH LSTは場所dbl及びdb2にあ
り、テーブル1170のもっと下側に列挙されている他
の局所クラスオブジェクトデータベースより前に探索さ
れる。
ブジェクトデータベースを作成し、システムコンテキス
トオブジェクトデータベースの各々の中の項目を付加
し、修正し及び削除する能力をもたらす回路網の全ユー
ザーに利用可能なインターフェースを包含する。このイ
ンターフェースは、好都合なことには、これらの機能を
行うために標準的コンパイラを実行する。例えば、コン
テキストオブジェクトデータベースに項目を付加するた
めには、ユーザーは、設けられているインターフェース
を使ってコマンドを入力する。そのコマンドは、ACA
Sソフトウェア構成要素130、230、及び330
(図1)により解釈されて、該インターフェースが受け
取ったデータを該標準的コンパイラにより適切なフォー
マットに変換せしめる。 H.ACASサービス (1) 一般的動作 この発明の好適な実施例の或る構成要素についての以上
の説明で、ACAS構成要素についての充分な理解が得
られるであろう。好都合なことには、本発明は、クライ
アントが要求を発生させ、サーバーが要求に答えるクラ
イアント/サーバー・モデルを使って実施される。以下
の記述においては、クライアント・プラットフォーム上
のクライアント・アプリケーションに随伴するサービス
又はオペレーションは「クライアント・サービス」と呼
ばれ、サーバー・プラットフォーム上で実行するサーバ
ー・アプリケーションに随伴するサービス又はオペレー
ションは「サーバー・サービス」と呼ばれる。好適な実
施例のクライアント・サービス及びサーバー・サービス
は、クライアント・プラットフォームからのメッセージ
をサーバー・プラットフォームへ、及びサーバー・プラ
ットフォームから、送ることの出来る輸送システムに依
拠する。好適な実施例では、RPCの様な通信システム
が該輸送システムとして使われる。
構成要素130、230、及び330は、好都合なこと
には、クライアント・サービス及びサーバー・サービス
をそれぞれ表すクライアント・サービス構成要素及びサ
ーバー・サービス構成要素を包含する。これは、例え
ば、2個のプラットフォーム1200及び1300と回
路網バス55との図である図15に示されている。プラ
ットフォーム1200及び1300は、図1のプラット
フォーム100、200、又は300のいずれにも対応
することが出来る。
に、それぞれ、メモリー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もそれぞれ実行する。
び1330は、好都合なことには、指名ソフトウェア構
成要素1232及び1332をそれぞれ包含し、制御サ
ーバー・ソフトウェア構成要素1234及び1334を
それぞれ包含し、呼出しソフトウェア構成要素1236
及び1336をそれぞれ包含し、補助ソフトウェア構成
要素1237及び1337をそれぞれ包含している。
6及び1336はクライアント・サービスを表し、指名
ソフトウェア構成要素1232及び1332はサーバー
・サービスを表す。補助ソフトウェア構成要素1237
及び1337は、好適な実施例の他の或るオペレーショ
ンを表す。回路網内のプラットフォーム1200及び1
300は、呼出しソフトウェア構成要素1236及び1
336をそれぞれ内蔵し、制御サーバー・ソフトウェア
構成要素1234及び1334をそれぞれ内蔵し、指名
ソフトウェア構成要素1232及び1332をそれぞれ
内蔵しているので、いずれのプラットフォームもクライ
アントとして又はサーバーとして活動することが出来
る。
成要素1236及び1336と指名ソフトウェア構成要
素1232及び1332とは、コンテキストオブジェク
トデータベース内のコンテキストデータと同様にクラス
・データベース内のクラス及び方法情報を解釈して、呼
び出すべき適切な方法を決定し、その方法をどの様にし
て呼び出すかを決定し、その方法を実施するコードを実
行するために必要なコマンドを指名する責任を有する。
呼出しソフトウェア構成要素1236及び1336及び
指名ソフトウェア構成要素1232及び1332は、ク
ライアント・アプリケーションを方法呼出し及び輸送レ
ベル・メカニズムの詳細から隔離させる。
34及び1334は、幾つかの機能を持っている。一つ
の機能は、現在作動中のサーバー・アプリケーションに
関する情報を回路網50内のプラットフォーム1200
及び1300に記憶させることである。制御サーバー・
ソフトウェア構成要素1234及び1334は、方法サ
ーバーとなる新しいアプリケーションを始動させるプロ
セスも実行する。制御サーバー・ソフトウェア構成要素
1234及び1334が行う他の機能は、方法サーバー
登録である。例えば、制御サーバー・ソフトウェア構成
要素1334は、サーバー・プラットフォーム1300
上で現在作動している、サーバー・アプリケーション1
320により特定される方法サーバーに関する情報を記
憶する。制御サーバー・ソフトウェア構成要素1334
は、汎回路網メモリー704(図7)におけるサーバー
登録設備とも通信して、サーバー・アプリケーション1
320に関する状況情報を記憶する。
337は、クラス及び方法オブジェクト定義及び登録、
各プラットフォームの方法実行可能なカタログにおける
方法実行可能な登録(後述する)、LOADER/UN
LOADERソフトウェア構成要素1010(図10)
の機能などのACASソフトウェア構成要素1230及
び1330のオペレーションを表す。
ーム1200はクライアント・プラットフォームと呼ば
れ、プラットフォーム1300はサーバー・プラットフ
ォームと呼ばれる。この例では、クライアント・アプリ
ケーション1220は、サーバー・プラットフォーム1
300内のサーバー・アプリケーション1320とオブ
ジェクト指向的に通信する。本発明に従って、好適な実
施例においては、1プラットフォーム上のクライアント
・アプリケーションは、同じプラットフォーム上のサー
バー・アプリケーションと通信することが出来る。
がサーバー・アプリケーション1320と通信すると
き、クライアント・プラットフォーム1200の指名ソ
フトウェア構成要素1232及び制御サーバー・ソフト
ウェア構成要素1234は関与しないので、図15では
陰が付けられている。同じく、サーバー・プラットフォ
ーム1300の呼出しソフトウェア構成要素1336
は、活動していないので、陰が付けられている。
しにおいて行われる主な機能の概略を示す流れ図136
0である。流れ図1360中のステップを開始する前
に、ACASソフトウェア構成要素1230及び133
0は最初に「待ち」状態にある。クライアント・アプリ
ケーション1220が方法呼出し要求を送るとき、図1
6に示されているACASソフトウェア構成要素123
0及び1330のプロセスが始まる。この方法呼出し要
求は、クライアント・アプリケーション1220の所望
のオペレーションを特定する入力メッセージを包含す
る。
ウェア構成要素1236に受け取られ(ステップ137
0)、この構成要素1236は該方法呼出し要求を処理
する(ステップ1375)。呼出しプロセスについて
は、以下に詳しく説明する。呼出しプロセスの普通の結
果は、処理済み方法呼出し要求である。次に、呼出しソ
フトウェア構成要素1236は、処理済みの方法呼出し
要求を、回路網バス55を介して指名ソフトウェア構成
要素1332に送る(ステップ1380)。指名ソフト
ウェア構成要素1332及び制御サーバー1334は、
そのとき、それらの動作を開始する。
後、指名ソフトウェア構成要素1332及び制御サーバ
ー・ソフトウェア構成要素1334は、該呼出し要求に
より特定される方法をサーバー・アプリケーション13
20により実行させる(ステップ1390)。サーバー
・アプリケーション1320は、該方法の実行を完了す
ると、その実行から生じたアーギュメントを出力し、指
名ソフトウェア構成要素1332は状況メッセージ(例
えば、「成功」)を生成する。その出力アーギュメント
及び状況メッセージは、処理済み方法呼出し要求(今
や、「応答」と呼ばれる)にマッピングされる。次に、
この応答は該指名ソフトウェア構成要素1332によっ
て呼出しソフトウェア構成要素1236に送られる。呼
出しソフトウェア構成要素1236は、元の方法呼出し
要求にマッピングされた指名ソフトウェア構成要素13
32から受け取られた応答をクライアント・アプリケー
ション1220に戻す(ステップ1395)ことによっ
て処理を完了する。
び1330についての以上の説明により、この発明の好
適な実施例における情報の流れを良く理解出来る。図1
7は、呼出しソフトウェア構成要素1236から指名ソ
フトウェア構成要素1332への情報の流れによる影響
を受ける回路網50の他の要素を示す。クライアント・
アプリケーション1220、サーバー・アプリケーショ
ン1320、呼出しソフトウェア構成要素1236、指
名ソフトウェア構成要素1332、及び制御サーバー・
ソフトウェア構成要素1334に加えて、図17は、コ
ンテキストオブジェクトデータベース630(図6)、
クラス・データベース640(図6)、サーバー登録設
備1420、及び制御サーバー登録1425を包含する
が、これは、制御サーバー・ソフトウェア構成要素13
34によって維持されて、サーバー・プラットフォーム
内の実行可能なコードを追跡する。
オブジェクトデータベース630は、ユーザーコンテキ
ストオブジェクトデータベース1402、グループコン
テキストオブジェクトデータベース1404、及びシス
テムコンテキストオブジェクトデータベース1406を
包含しており、この各々については、コンテキストオブ
ジェクトデータベースに関する説明において上述してあ
る。クラス・データベース640は、局所データベース
1000(図10)、ノード・キャッシュ1030、及
び大域クラス・データベース1020を包含する。クラ
ス・データベース640のこれらの要素の各々につい
て、クラス・データベースに関する説明において上述し
てある。
素1236に送られる方法呼出し要求をクライアント・
アプリケーション1220が生成するときに情報の流れ
が始まる。このインターフェースは、好都合なことに
は、好適な実施例のInvokeMethod手順コー
ルにより提供される。InvokeMethod手順コ
ールにおいては、クライアント・アプリケーション12
20は、インスタンス・ハンドルと、メッセージ(メッ
セージ名、及びパラメーター・リストを含む)と、コン
テキストオブジェクトハンドルと、随意に出力インスタ
ンス・ハンドルとを、呼出しソフトウェア構成要素12
36に送る。
・ハンドルは、方法呼出しに関与すべくクライアント・
アプリケーション1220が選んだ現在のインスタンス
を特定する構造である。メッセージ名は、該インスタン
スに対する所望のオペレーションを表す。メッセージ・
パラメーター・リストは、該メッセージが要求するパラ
メーターから成る。コンテキストオブジェクトハンドル
は、詳しく後述する呼出しプロセスにおいて使われるべ
きコンテキストオブジェクトデータベースを特定する参
照である。出力インスタンス・ハンドルは、呼び出され
る方法に随伴する作動中の方法サーバーのインスタンス
を表す。これにより、クライアント・アプリケーション
は、同じ方法サーバーとの対話を持ち続けることが出来
る。出力インスタンス・ハンドルの意味論は、インスタ
ンス・ハンドルについてのそれと同じである。
要求を受け取ったとき、呼出しソフトウェア構成要素1
236は、方法識別子を発見するためにコンテキストオ
ブジェクトデータベース630及びクラス・データベー
ス640に問い合わせる。この手順については上述し
た。該メッセージ名についての適切な方法識別子を決定
すると、呼出しソフトウェア構成要素1236は、次
に、該方法識別子に随伴する方法をその上で実行するべ
きサーバー・プラットフォームを発見するためにサーバ
ー登録設備1420とコンテキストオブジェクトデータ
ベース630とに問い合わせる。サーバー登録設備14
20は、該方法識別子に随伴する方法を行うことの出来
る作動中の方法サーバー(若しあるならば)の場所を確
認するために使われる。作動中の方法サーバーは、既に
始動したものとして自身を回路網50に知らせた、例え
ばサーバー・アプリケーション1320などの、方法サ
ーバーである。
呼出しソフトウェア構成要素1236により処理される
呼出し要求の方法を実行させることをクライアント・ア
プリケーション1220のユーザーが望む回路網50
(図1)中の遠くのプラットフォームの場所を決定する
ために、呼出しソフトウェア構成要素は、コンテキスト
オブジェクトデータベース630のサーバー・プラット
フォーム・テーブルにも問い合わせる。しかし、サーバ
ー・アプリケーション1320が利用可能でなければ、
制御サーバー・ソフトウェア構成要素1334は、選ば
れた遠くのプラットフォーム上で該サーバー・アプリケ
ーションが利用可能でないことを呼出しソフトウェア構
成要素1236に知らせる。以上に略述した様に処理を
する呼出しソフトウェア構成要素1236は、特定され
た方法をその上で実行するべき回路網50内の他のプラ
ットフォームを選ぶために、コンテキストオブジェクト
データベース630及びサーバー登録設備1420のサ
ーバー・プラットフォーム・テーブルに再び問いあわせ
を始める。
6は選択されたサーバー・プラットフォームの制御サー
バー・ソフトウェア構成要素1334に問いあわせを送
り、これによって、制御サーバー・ソフトウェア構成要
素1334は、処理済み方法呼出し要求で特定される方
法を処理するために、選択されたサーバー・プラットフ
ォーム上の所望の方法サーバーを利用できるか否か決定
するために制御サーバー登録1425に問いあわせをす
る。方法サーバーの利用可能性は、好適な実施例では、
制御サーバー登録1425において、クライアント・ア
プリケーションにより呼び出された方法を該方法サーバ
ーが現在処理出来るか否か検査することによって決定さ
れる。
の方法サーバーが利用可能であることを制御サーバー・
ソフトウェア構成要素1334が呼出しソフトウェア構
成要素1236に示せば、呼出しソフトウェア構成要素
1236は、該処理済み方法呼出し要求を該サーバー・
プラットフォームの指名ソフトウェア構成要素1332
へ送る。呼出しソフトウェア構成要素1236は、コン
テキストオブジェクトデータベース630からの情報を
送ることも出来るが、それは所望の方法サーバーによっ
て使用されることが出来る。
のとき、その所望の方法を処理し始める。このプロセス
(「指名プロセス」と称する)は、一般に、該方法識別
子を指名してサーバー・アプリケーション1320によ
る該方法の実行を始めさせることを含む。しかし、回路
網内のプラットフォームで現在作動しているサーバー・
アプリケーション1320のコピーがあることをサーバ
ー登録設備1420が示さなければ、呼出しソフトウェ
ア構成要素1236は、コンテキストオブジェクトデー
タベース630及びクラス・データベース640から検
索された情報を使って、サーバー・アプリケーション1
340を始動させる要求を制御サーバー・ソフトウェア
構成要素1334に送ることが出来る。サーバー・アプ
リケーション1320が始動させられた後、制御サーバ
ー・ソフトウェア構成要素1334は、サーバー登録設
備1420に通知して、サーバー・アプリケーション1
320が作動していることを示す様に汎回路網メモリー
704(図7)を更新させる。制御サーバー・ソフトウ
ェア構成要素は、サーバー・アプリケーション1320
が使用可能であることを示すように制御サーバー登録1
405も更新する。呼出しソフトウェア構成要素123
6は、そのとき、該処理済み方法呼出し要求を指名ソフ
トウェア構成要素1332に送って、該処理済み方法呼
出し要求の方法識別子に対応する方法を実行させる。
その処理を終えた後、該処理済み方法呼出し要求により
要求された出力情報を指名ソフトウェア構成要素133
2に戻す。指名ソフトウェア構成要素1332は、その
とき、上述したように、指名ソフトウェア構成要素13
32により受け取られた該処理済み方法呼出し要求の出
力アーギュメントにマッピングされた出力情報と共に、
応答を呼出しソフトウェア構成要素1236に戻す。 (2) 呼出しオペレーション 呼出しソフトウェア構成要素1236が行う方法呼出し
のプロセスの部分を、今や詳細に説明することが出来
る。好都合なことには、その部分は、呼び出されるべき
適切な方法を決定すること(方法分解)、サーバー接続
又は始動、及び、該方法サーバー又はその他の実行可能
なコードにより実行されるべき適切な方法への識別子の
指名を可能にする輸送レベル通信、を含む数個の別々の
段階から成る。
の呼出しソフトウェア構成要素1236により行われ又
は呼ばれる手順の流れ図を含む。図18−21における
主な制御手順1550は、呼出しソフトウェア構成要素
1236により行われるステップ1370、1375、
及び1380(図16)を表す。手順1360の場合と
同じく、主制御手順1550に入る前に、クライアント
・アプリケーション1220(図15及び17)は通常
は方法呼出し要求無しに作動しており、ACASソフト
ウェア構成要素1230は「待ち」状態にある。クライ
アント・アプリケーション1220がInvokeMe
thod手順コールを使って方法呼出し要求を生成する
とき、主制御手順1550が始まり(図18のステップ
1552)、呼出しソフトウェア構成要素1236は方
法呼出し要求を受け取る(ステップ1555)。
初に該方法呼出し要求を確認する(ステップ155
7)。若しエラーがあったならば、呼出しソフトウェア
構成要素1236はエラー・メッセージを生成し(ステ
ップ1558)、これを呼出しソフトウェア構成要素1
236はクライアント・アプリケーション1220に戻
す(図21のステップ1599)。
(図18のステップ1557)、呼出しソフトウェア構
成要素1236は、次に、呼び出されるべき方法を、I
nvokeMethodコール内のメッセージ、クラス
・データベース、及びコンテキスト対象データベースか
ら分解する(ステップ1560)。方法分解は、適切な
方法を決定又は特定するプロセスである。
00を示す。方法分解について既に言及したけれど、手
順1600は、この様な分解について、叙上よりも遥か
に詳しく示す。好適な実施例では、呼び出されるべき適
切な方法の決定は、呼出しソフトウェア構成要素123
6により間接的に処理される。方法分解のための作業の
大半は、ACASソフトウェア構成要素1230及び1
330の補助ソフトウェア構成要素1237及び133
7によって処理される。好適な実施例では、補助ソフト
ウェア構成要素1237は、コンテキストオブジェクト
データベース及びクラス・データベースから情報を検索
する。勿論、呼出しソフトウェア構成要素1236も、
その様な情報を検索することが出来る。
ップ1605)、呼出しソフトウェア構成要素1236
は、インスタンス・ハンドルが記憶クラス名称部分を含
んでいるか否か判定する(ステップ1610)。若し記
憶クラスが存在するならば、その位置が確認され(ステ
ップ1620)そのインスタンス・ハンドルに随伴する
クラスの名称を検索するために特別の方法が呼び出され
る(ステップ1630)。
り特定される方法を呼び出した後、又は、インスタンス
・ハンドルが記憶クラス名を包含していないと判定した
後、上記の探索順序を使ってクラス・データベース64
0(図6及び17)についてクラス情報の位置を確認す
るために呼出しソフトウェア構成要素1236によって
プロセスが実行される(ステップ1640)。例えば、
メッセージがEDIT(INSTANCE HANDL
E)で、インスタンス・ハンドルがASCII FILE
/NODE 1/MYFILE.TXTであれば、クラ
ス名ASCII FILEを使ってクラス・データベー
ス640内のクラスASCII FILE1645を発
見することが出来る。
で、適切な方法マップ1655がクラス・データベース
640から検索される(ステップ1650)。説明して
いる特別の例では、好適な実施例の補助ソフトウェア構
成要素1237は、方法マップ1655を検索すると共
に、ステップ1640で位置が確認されたクラス情報が
メッセージ名EDITを包含することを検査して確かめ
る。これにより、対応するメッセージが該クラスにより
支援されることが保証される。
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上で実行
されることが出来ることを示す。
あるかも知れないので、曖昧さを解明するためにコンテ
キストオブジェクトデータベース640に参照符が付さ
れる(ステップ1660)。コンテキストオブジェクト
データベース640に参照符を付するとき、維持されて
いる適切なサーバー・ノード・テーブルも、後に使用さ
れるために検索される。
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)。
において若しエラーがあれば(ステップ1640時など
に、インスタンス・ハンドルにおいて特定されたクラス
がクラス・データベースにおいて位置確認可能なクラス
でないならば)、方法分解手順1600は、このエラー
を示すメッセージと共に戻る。方法分解手順1600か
ら戻った後、方法分解プロセス時にエラーが発生したか
否か判定が行われる(図18のステップ1562)。若
し答えが「yes」ならば、呼出しソフトウェア構成要
素1236は、適切なエラー・メッセージを生成し(ス
テップ1563)、該エラー・メッセージをクライアン
ト・アプリケーション1220に戻す(図21のステッ
プ1599)。
した後(図18のステップ1562)、呼出しソフトウ
ェア構成要素1236は、回路網内の適切なプラットフ
ォーム上で適切な方法を実行するために、分解された方
法の識別子に対応する方法属性を検討する。該方法が既
にクライアント・アプリケーション1220内に連結さ
れている事をこれらの方法属性が、示すならば(例え
ば、InteractionType方法属性の値が
「BUILT IN」であるなど)、起動エラーについ
てチェックが行われる(ステップ1566)。若し一つ
あったならば、エラー・メッセージが生成され(ステッ
プ1576)、コントロールはクライアント・アプリケ
ーション1220に戻される(図21のステップ159
9)。
が生成され(ステップ1567)、クライアント・アプ
リケーション1220内に既に常駐しているコードによ
って、分解された方法が実行される(ステップ156
9)。該方法がクライアント・アプリケーション122
0に既に連結されていることを該方法属性が示さなけれ
ば(図19のステップ1565)、呼出しソフトウェア
構成要素1236は、該方法が動的にロード可能である
ことを該方法属性が示しているか否か問い合わせる(ス
テップ1570)。動的にロード可能な方法は、実行時
にクライアント・アプリケーションの実行可能なコード
と合併させることの出来る実行可能な方法を代表する。
動的にロード可能な方法は、クライアント・アプリケー
ションの副手順又は機能により特定される実行可能な方
法であり得ることを当業者は認めるであろう。好都合な
ことには、動的にロード可能な方法サーバーについての
試験は、InteractionType方法属性の値
が「DYNAMIC LOAD」であるか否か判定する
ことによって達成される。若しそうならば、呼出しソフ
トウェア構成要素1236は、分解された方法により特
定される実行可能なコードをクライアント・アプリケー
ション1220にロードしようと試みる(ステップ15
72)。
生したならば(ステップ1574)、呼出しソフトウェ
ア構成要素1236は、ロード・エラーが発生したこと
を示すメッセージを生成し(ステップ1576)、該ロ
ード・エラー・メッセージをクライアント・アプリケー
ション1220に戻す(図21のステップ1599)。
かったならば(ステップ1574)、呼出しソフトウェ
ア構成要素1236は、該方法呼出しが首尾よく完了し
たことを示すフラグを生成する(ステップ1567)。
次に、分解された方法に対応する、動的にロードされた
実行可能なコードが実行され(ステップ1569)、コ
ントロールは出力アーギュメントと共にクライアント・
アプリケーション1220に戻る(図21のステップ1
599)。連結された又は動的にロード可能な方法サー
バーを実行している際のエラーは好都合なことにはパラ
メーター値として戻される。
的にロード可能な方法を示さなければ(図19のステッ
プ1565及び1570)、呼出しソフトウェア構成要
素1236は、図17に関して上述した分解された方法
を処理することの出来る回路網内のプラットフォーム上
の実行中の方法サーバーの位置を確認しなければならな
い。
78)から検索された情報が、分解された方法により特
定される方法を行うことの出来る作動中の方法サーバー
が少なくとも一つあることを示すならば(図20のステ
ップ1579)、呼出しソフトウェア構成要素1236
は、サーバー登録設備1420から検索された情報を、
該方法分解手段1600時にコンテキストオブジェクト
データベース630から検索されたサーバー・ノード・
テーブル上の項目と比較して回路網内のサーバー・プラ
ットフォームを選ぶ(ステップ1580)。
呼出しソフトウェア構成要素1236は、QueryS
erverコールを、その選択されたサーバー・プラッ
トフォームの制御サーバー・ソフトウェア構成要素13
34に送る。制御サーバー・ソフトウェア構成要素13
34の機能については、図23及び24に関して以下に
詳しく説明する。簡単には、制御サーバー・ソフトウェ
ア構成要素1334は、所望の方法サーバーが使用可能
であるか否かを判定する。
制御手順1550は、そのとき、ステップ1582(図
20)において継続して、所望の方法サーバーの使用可
能性について制御サーバー・ソフトウェア構成要素13
34により生成されたメッセージを受け取り、該メッセ
ージを、クライアント・アプリケーションが認識出来る
フォーマットに変換する。呼出しソフトウェア構成要素
1236は、制御サーバー・ソフトウェア構成要素13
34から、分解された方法に対応する方法サーバーが、
分解された方法により特定される方法を処理するために
使用出来るか否か判定する(ステップ1583)。若し
その対応する方法サーバーが使用出来るならば、該方法
サーバーが図21において非同期方法サーバーであるか
否か問い合わせる(ステップ1593)ことにより呼出
しソフトウェア構成要素の処理が図21において継続す
る。非同期方法サーバーは当該技術分野において公知で
ある。
プ1593)、該方法サーバーに知らせるためにSig
nalServerコールを使って制御サーバー・ソフ
トウェア構成要素1334が呼び出される(ステップ1
594)。該方法サーバーが非同期でない場合、又は非
同期方法サーバーが信号された後(ステップ159
4)、該方法についての識別子と、方法分解時にコンテ
キストオブジェクトデータベースから検索された情報と
を含む、処理済み方法呼出し要求は回路網における通信
に使われるデータ構造にまとめられ(ステップ159
5)、呼出しソフトウェア構成要素1236は、そのま
とめられた処理済み方法呼出し要求を指名ソフトウェア
構成要素1332へ送る。指名ソフトウェア構成要素1
332のプロセスについて、図25及び26を参照して
以下に説明する。
処理を終えて、まとめられた応答を送った後、呼出しソ
フトウェア構成要素1236は、そのまとめられた応答
を受け取り(ステップ1597)、その応答をほぐし
(アンパックし)(ステップ1598)、その処理を完
了させるために該応答をクライアント・アプリケーショ
ン1220に戻す(ステップ1599)。
3)において、実行中の方法サーバーが使用可能でない
ことが分かったならば、呼出しソフトウェア構成要素1
236は、分解された方法により特定される方法を行う
ことの出来る他の実行中の方法サーバーをサーバー登録
設備1420が示したか否か判定する(ステップ158
4)。若しそうならば、検索された情報は、コンテキス
トオブジェクトデータベース630内のサーバー・ノー
ド・テーブルと照合され、QueryServerコー
ルが制御サーバー・ソフトウェア構成要素1334に対
して行われる(ステップ1581)。
要素は、最高の優先順位のサーバー・ノードをサーバー
・ノード・テーブルから選択する(ステップ158
6)。その選択されたサーバー・プラットフォームの制
御サーバー・ソフトウェア構成要素1334は、そのと
き、分解された方法により特定される方法に対応する適
切なアプリケーションを始動させようと試みるために制
御サーバー・ソフトウェア構成要素1334に指示する
StartServerコールを使って接触される(ス
テップ1587)。
34がその処理を終えてメッセージを送った後、呼出し
ソフトウェア構成要素1236は、その送られたメッセ
ージを受け取ってアンパックする(ステップ158
8)。アプリケーションが始動させられて方法サーバー
になったならば(ステップ1589)、呼出しソフトウ
ェア構成要素1236はその処理を終えるが、それにつ
いては既に説明した(図21のステップ1593)。若
しアプリケーションが始動させられなければ(ステップ
1589)、呼出しソフトウェア構成要素1236は、
コンテキストオブジェクトデータベース630のサーバ
ー・ノード・テーブルにそれ以上のノードがあるか否か
問い合わせる(ステップ1590)。若しそうでなけれ
ば、サーバー・プラットフォームが位置確認出来なかっ
たので方法呼出しが不成功だったことを示すエラー・メ
ッセージが生成され(ステップ1592)、そのエラー
・メッセージはクライアント・アプリケーション122
0に戻される(図21のステップ1599)。
テーブル上にあれば(図20のステップ1590)、次
に高い優先順位のプラットフォームが選択され(ステッ
プ1591)、呼出しソフトウェア構成要素1236の
処理は図20のステップ1587に戻る。方法サーバー
が始動させられるまで(ステップ1589)又はサーバ
ー・プラットフォーム・リスト上にプラットフォームが
無くなるまで(ステップ1590)、ステップ158
7、1588、1589、1590、及び1591から
成るループが行われる。 (3) 制御サーバー・オペレーション 図23及び24は、制御サーバー・ソフトウェア構成要
素1334のオペレーションを表す制御サーバー手順1
700を示す。当業者は、制御サーバー・ソフトウェア
構成要素1334の機能を具体化する他の多くの方法を
理解するであろう。
ーバー手順1700を開始した後、制御サーバー・ソフ
トウェア構成要素1334は制御サーバー・メッセージ
を受け取る(ステップ1705)。これに応じて、制御
サーバー・ソフトウェア構成要素1334は、制御サー
バー・ソフトウェア構成要素1334と共通のプラット
フォーム上で実行中のアプリケーションが方法呼出し要
求を処理するべく方法サーバーとして登録されるべきこ
とを要求していることを該制御サーバー・メッセージが
示しているか否か判定する(ステップ1710)。答え
が「yes」ならば、制御サーバー・ソフトウェア構成
要素1334は、該方法サーバーが使用可能であること
を示すために該サーバー・アプリケーションについての
所要の情報を制御サーバー登録1425に記録すること
によって該サーバー・アプリケーションを方法サーバー
として登録する。制御サーバー・ソフトウェア構成要素
1334は、該方法サーバーが実行中であることを示す
ためにサーバー登録設備1420にも知らせる(ステッ
プ1715)。実行中の使用可能な方法サーバーは、適
切な方法を実行することも出来る。制御サーバー・ソフ
トウェア構成要素1334は、今登録されたアプリケー
ションに戻される(図24のステップ1799)べき成
功メッセージも生成する(ステップ1729)。
していることを制御サーバー・メッセージが示さなけれ
ば(図23のステップ1710)、制御サーバー・ソフ
トウェア構成要素は、現在登録されている方法サーバー
が制御サーバー・ソフトウェア構成要素1334及びサ
ーバー登録設備1425で登録解除されることを要求し
ていることを該制御サーバー・メッセージが示すか否か
判定する(ステップ1720)。若しそうならば、制御
サーバー・ソフトウェア構成要素1334は、該情報を
制御サーバー登録1425から除去することにより該方
法サーバーを登録解除する。これは、該方法サーバーに
より特定されるアプリケーションが最早使用可能でない
ことを示す。制御サーバー・ソフトウェア構成要素13
34は、汎回路網メモリー704に記憶されている情報
を除去するためにサーバー登録設備1420にも通知す
る(ステップ1725)。制御サーバー・ソフトウェア
構成要素1334は、そのとき、今登録解除されたアプ
リケーションに戻される(図24のステップ1799)
べき成功メッセージを生成する(ステップ1729)。
録解除することを要求したことを制御サーバー・メッセ
ージが示さなければ、制御サーバー・ソフトウェア構成
要素は、処理済み方法呼出し要求を実行する(ステップ
1730)ために呼び出されるべきことを期待すること
を非同期方法サーバーに信号することを呼出しソフトウ
ェア構成要素1236が希望することを制御サーバー・
メッセージが示すか否か判定する。若しそうならば、制
御サーバー・ソフトウェア構成要素1334は、非同期
方法サーバーに信号するプロセスを実行し(ステップ1
735)、処理を終える(図24のステップ179
9)。
は、この発明の特徴を利用するべく書かれたアプリケー
ションでも、或いは、好適な実施例で私達のために修正
された前もって書かれたアプリケーションでも動作する
ことが出来る。好適な実施例で動作する様に非同期アプ
リケーションを書き又は修正するとき、ユーザーは、部
分的にはこれらの非同期信号を認識すると共に、後述す
る様に、これらの信号と次の処理済み方法呼出し要求と
をキューに登録するプログラムコードを含める。これら
のオペレーションについて、指名ソフトウェア構成要素
1332により行われるプロセスを参照して以下に説明
する。
御サーバー・ソフトウェア構成要素1334は、方法を
処理する方法サーバーとなるために新しいアプリケーシ
ョン(これは制御サーバー・ソフトウェア構成要素13
34と同じプラットフォーム上にある)が始動させられ
る(図24の1740)べきであることを呼出しソフト
ウェア構成要素1236が要求していることを制御サー
バー・メッセージが示しているか否か判定する。若しそ
うならば、制御サーバー・ソフトウェア構成要素133
4は、制御サーバー登録1425をチェックして(ステ
ップ1745)、新しいアプリケーションの実行可能な
方法(分解された方法に対応する)が選択されたプラッ
トフォーム上にあるか否か判定する(ステップ175
0)。
範囲を持っているので、サーバー・プラットフォーム1
300だけが、常駐している実行可能な方法を承知して
いる。実行可能な方法の登録1425における登録は、
例えば、方法を実施するシェル・スクリプト、及びこれ
らの実行可能な方法の状況など、実際の実行可能なコー
ドの実行可能なファイルにおける登録を含む。実行可能
なコードを大域的に管理する必要はないので、これらの
項目は好都合なことには局所的な登録有効範囲を有する
に過ぎない。
録1425において特定されたならば、選択されたプラ
ットフォームはサーバー・プラットフォームである可能
性がある。制御サーバー・ソフトウェア構成要素133
4は、対応する実行可能な方法を始動させるプロセスを
実行すると共に、その結果としての方法サーバーをサー
バー登録設備1420と制御サーバー登録1425とに
登録して、新しく始動した方法サーバーが実行中であり
且つ使用可能であることを示す(ステップ1752)。
この始動プロセス時に、制御サーバー・ソフトウェア構
成要素1334は、その始動した方法サーバーにより使
われることの出来るコンテキストオブジェクトデータベ
ースも作る。次に、制御サーバー・ソフトウェア構成要
素1334は、分解された方法に対応するアプリケーシ
ョンが始動させられていて且つ今や方法サーバーである
ことを示すメッセージを生成する(ステップ175
4)。そのとき、このメッセージは、該方法サーバーが
始動させられることを要求した呼出しソフトウェア構成
要素1236に送られ(ステップ1790)、制御サー
バー・ソフトウェア構成要素1334はその処理を終え
ている(ステップ1799)。
が制御サーバー登録1425において特定されなけれ
ば、制御サーバー・ソフトウェア構成要素1334は、
該実行可能な方法が始動させられなかったことを示す適
切なメッセージを生成する(ステップ1756)。この
メッセージは、該方法サーバーが始動させられるべきこ
とを要求した呼出しソフトウェア構成要素1236に送
られ(ステップ1790)、制御サーバー・ソフトウェ
ア構成要素1334はその処理を終えている(ステップ
1799)。
御サーバー・ソフトウェア構成要素1334は、制御サ
ーバー・メッセージが、分解された方法により特定され
る方法を実行する実行中の方法サーバーの使用可能性に
関する情報についての呼出しソフトウェア構成要素12
36からの要求であるか否か判定する(ステップ176
0)。若しそうでなければ、制御サーバー・ソフトウェ
ア構成要素1334は、エラー・メッセージを生成し
(ステップ1780)、そのメッセージを呼出しソフト
ウェア構成要素1236に送り(ステップ1790)、
その処理を終える(ステップ1799)。
ェア構成要素1334は、制御サーバー登録1425か
らの実行中の方法サーバーについての要求された情報を
再試行する(ステップ1765)。分解された方法によ
り特定される方法サーバーが使用可能であることを制御
サーバー登録1425からの情報が示しているならば
(ステップ1770)、制御サーバー・ソフトウェア構
成要素1334は、該方法サーバーの使用可能性を示す
メッセージを生成する(ステップ1775)。このメッ
セージは呼出しソフトウェア構成要素1236に送られ
(ステップ1790)、制御サーバー・ソフトウェア構
成要素の処理は完了する(ステップ1799)。
とを制御サーバー登録1425が示したならば、(ステ
ップ1770)、制御サーバー・ソフトウェア構成要素
1334は、方法サーバーが使用可能でないことを示す
メッセージを生成する(ステップ1777)。制御サー
バー・ソフトウェア構成要素1334は、そのとき、生
成されたメッセージを呼出しソフトウェア構成要素に送
り、(ステップ1790)、制御サーバー・ソフトウェ
ア構成要素1334の処理は完了する(ステップ179
9)。 (4) 指名オペレーション 方法サーバーを指名するプロセスは、方法サーバーによ
り処理されるべき方法を指名すること、及び輸送レベル
通信から成る。指名ソフトウェア構成要素1332は、
種々の方法呼出しも処理する。
リケーションが処理を完了するために特定された方法サ
ーバーを持つことを必要としない。例えば、呼出し要求
は、実行されるべくキュー上に置かれることが出来、R
PC輸送レベル・コールは、呼出しソフトウェア構成要
素1334に戻って、クライアント・アプリケーション
が「妨げられ」又は継続を阻止されることなくそれ自身
の処理を続けることを許すことが出来る。呼出しソフト
ウェア構成要素から受け取られた処理済み方法呼出し要
求のキューは、そのとき、図25の指名手順1800内
などの、指名ソフトウェア構成要素1332により試験
され、所定の順序に従って行われる。
リケーションが方法サーバーから応答を受け取ることを
予期しないならば、要求されることが出来る。唯一の応
答は、方法呼出しがサーバー・プラットフォーム上のA
CASソフトウェア構成要素によって首尾よく受け取ら
れたか否かの表示である。該応答は、その実行が成功し
たか否か示さず、同期方法呼出しについては出来る様
に、実際の方法呼出しの出力を包含しない。
いてデフォールト・モードである。同期方法呼出しで
は、該方法を呼び出したクライアント・アプリケーショ
ンは、それ自身の処理を続ける前に応答を待つ。図25
及び26は、図15及び17の指名ソフトウェア構成要
素1332により行われ又は呼び出される手順の流れ図
である。指名手順1800は、指名ソフトウェア構成要
素1382により行われるステップ1385、139
0、及び1395(図16)を表す。
ウェア構成要素1332は、回路網内の呼出しソフトウ
ェア構成要素から処理済み方法呼出し要求を待つ「待
ち」状態である。指名手順1800を開始した後(ステ
ップ1802)、指名ソフトウェア構成要素1332
は、回路網輸送サービスを介して、輸送データ構造を受
け取る。この輸送データ構造は、回路網内の呼出しソフ
トウェア構成要素により送られた、まとめられた(パッ
クされた)処理済み方法呼出し要求を表す(ステップ1
805)。この輸送データ構造を受け取った後、呼出し
ソフトウェア構成要素1332は、該輸送データ構造を
アンパックして、サーバー・プラットフォームが認識出
来るデータ構造に変換する(ステップ1810)。呼出
しソフトウェア構成要素1332は、そのとき、実行中
の方法サーバーに随伴しているコンテキストデータベー
スを更新する(ステップ1815)。コンテキストオブ
ジェクトデータベースは、該方法サーバーを始動させる
ときに制御サーバー・ソフトウェア構成要素1334に
より作られることにより、又はサーバー・プラットフォ
ーム上にロギングして該方法サーバーを始動させるユー
ザーによって、実行中の方法サーバーに随伴させられる
ことが出来る。
次に、受け取った処理済み方法呼出し要求が非同期方法
サーバーによって処理されるべき非同期呼出し要求であ
るか否か質問する(ステップ1820)。若しそうでな
ければ、呼出しソフトウェア構成要素1332は、該呼
出し要求が妥当な方法の識別(identificat
ion)を含んでいるか否か質問するが、それは、該方
法サーバーによって処理されることの出来る方法である
(ステップ1825)。若しそうでなければ、エラー・
メッセージが生成され(ステップ1840)、それは応
答としてパックされて(図26のステップ1890)、
指名処理を完了する前に(ステップ1899)呼出しソ
フトウェア構成要素に送られる(ステップ1895)。
entification)を含んでいたならば(図2
5のステップ1825)、指名ソフトウェア構成要素1
332は、受け取られた呼出し要求により特定される妥
当な方法を、該方法サーバーにより実行されるべく指名
する(ステップ1830)。該方法サーバーによる妥当
な方法の実行時にエラーが発生したならば(ステップ1
835)、指名ソフトウェア構成要素1332は適切な
エラー・メッセージを生成する(ステップ1840)。
指名ソフトウェア構成要素1332は、そのとき、該エ
ラー・メッセージを応答としてパックし(図26のステ
ップ1890)、指名処理を完了する前に(ステップ1
899)そのパックしたエラー・メッセージを呼出しソ
フトウェア構成要素に送る(ステップ1895)。
5のステップ1835)、指名ソフトウェア構成要素1
332は応答をパックするが(図26のステップ189
0)、それは、この場合には、分解された方法により特
定される方法を処理した方法サーバーからの出力を含む
処理済み方法呼出し要求である(図18のステップ15
60)。その応答は、パックされた後、元の処理済み方
法呼出し要求を初めに送った呼出しソフトウェア構成要
素に送られ(ステップ1895)、指名処理は完了する
(ステップ1899)。
処理済み方法呼出し要求が非同期呼出し要求であるなら
ば(図25のステップ1820)、その非同期呼出し要
求は、好都合なことには、後に方法サーバーとして処理
されるべく指名ソフトウェア構成要素1332によって
指名されるべきキュー上に置かれる(ステップ185
0)。該非同期呼出し要求の成功を示すメッセージが生
成され(ステップ1855)、受け取られた処理済み方
法呼出し要求への応答としてパックされ(ステップ18
60)、次に、その処理済み方法呼出し要求を最初に送
った呼出しソフトウェア構成要素に送られる(ステップ
1865)。
は、非同期方法呼出し要求を、それらが最初にキュー上
に置かれた順に実行する。非同期要求を実行するとき、
指名ソフトウェア構成要素1332は、該非同期方法サ
ーバーにより処理されるべき方法呼出し要求がキュー上
にあるか否か質問する(図26のステップ1870)。
若し方法呼出し要求が該キュー上に無ければ(ステップ
1870)、指名処理は完了する(ステップ189
9)。
あったならば(ステップ1870)、指名ソフトウェア
構成要素1332は、次の非同期方法呼出し要求を該キ
ューから取り去る(ステップ1875)。該キューから
取り去られた要求が、例えば該方法サーバーにより処理
されることの出来ない要求などの無効な要求であるなら
ば(ステップ1880)、待ち合わせさせられた方法呼
出し要求が他にあるか否か発見するために該処理は戻る
(ステップ1870)。
るならば(ステップ1880)、指名ソフトウェア構成
要素1332は、該キューから取り去られた非同期方法
呼出し要求を該非同期方法サーバーにより処理されるべ
く指名する(ステップ1885)。 そのとき、該方法
サーバーの処理時にエラーが発生したか否かという質問
が行われる(ステップ1887)。エラーが若しあれ
ば、それは記録され(ステップ1888)、エラーが若
し発生しなかったならば、指名ソフトウェア構成要素1
332は該キューをチェックする(ステップ187
0)。この様にして、該方法呼出し要求を発したクライ
アント・アプリケーションを妨げずに該キュー上の全て
の非同期呼出し要求が処理される。 I. 要 約 この様にして、本発明は、1プラットフォーム上のアプ
リケーションが、他のプラットフォームについての詳細
や、他のアプリケーションについての詳細についても知
る必要無しに、同じ又は異なるプラットフォーム上のア
プリケーションを呼び出す効率的で単純な方法を提供す
る。その様な呼出しは、不均一回路網内の似ていないプ
ラットフォーム同士の間でも発生することが出来る。
と、データ(又はインスタンス)及びアプリケーション
は管理されないので、それらのデータ及びアプリケーシ
ョンを、アプリケーションの開発者が選んだ方法で管理
することが出来る。その代わりに、オブジェクトと、ア
プリケーションへの参照とだけを管理することにより、
システム資源についての要求は減少し、システムの柔軟
性が向上する。
中ではないアプリケーションを自動的に呼び出す能力で
ある。これにより、この発明に従って構成されたシステ
ムの力と柔軟性とが更に向上する。一般的発明思想の範
囲から逸脱することなく本発明を修正、変形出来ること
を当業者は理解するであろう。従って、この発明は、広
い意味では、図示し説明した特別の詳細や代表的方法に
限定されるものではない。
の出来る回路網の図である。
のオブジェクト指向的モデルの主要構成要素を示す図で
ある。
向的モデルの構成要素間の関係の図である。
の構成要素の例の間の関係の図である。
れている関係と一貫するクラスデータベースについての
構造の図である。
と、それらの構成要素間の情報の好適な流れとの図であ
る。
リーシステムの関係を示す図である。
の図である。
ベース内のブロックの好適な実施例の図である。
ース、及びノードキャッシュについてのローダー/アン
ローダーの機能の図である。
ベースの好適な実施例を示す図である。
トオブジェクトデータベースにおける方法オーバーライ
ド・テーブルの好適な実施例を示す図である。
トオブジェクトデータベースにおけるサーバー・ノード
・テーブルのための好適な記憶構造を示す図である。
トオブジェクトデータベースにおけるクラス・データベ
ース・オーバーライド・テーブルの好適な実施例を示す
図である。
ける個々のソフトウェア構成要素の図である。
ために本発明の好適な実施例により行われる一般的オペ
レーションの流れ図である。
との詳細な図である。
要素が行う手順の流れ図である。
要素が行う手順の流れ図である。
要素が行う手順の流れ図である。
要素が行う手順の流れ図である。
出しソフトウェア構成要素が行うステップの図である。
ア構成要素が行うステップの流れ図である。
ア構成要素が行うステップの流れ図である。
構成要素が行うステップの流れ図である。
構成要素が行うステップの流れ図である。
Claims (16)
- 【請求項1】 複数のプラットフォームを含むデータ処
理回路網において、クライアント・アプリケーションに
よりサーバー・アプリケーションを呼び出すプロセスで
あって、該クライアント・アプリケーションは、 該クライアント・アプリケーションにより操作され又は
アクセスされることの出来るアイテムであって、同じク
ラス内のインスタンスが共通の特徴を共有することとな
る様にクラスに編成された複数のインスタンスと、 該クライアント・アプリケーションについて確認された
インスタンスに対して行われることの出来るオペレーシ
ョンの種類を指定する複数のメッセージとを包含し、 該プロセスは、該プラットフォームが行う下記のステッ
プ、即ち、 1のインスタンスについての識別子と、該第1インスタ
ンスに対して行われるべき所望のオペレーションについ
ての識別子とを含む第1メッセージを該クライアント・
アプリケーション内に生成するステップと、 該第1メッセージと、該第1インスタンスが編入されて
いるクラスとから第1の方法についての識別子を決定す
るステップであって、該第1方法についての該識別子
は、該サーバー・アプリケーションが該第1インスタン
スに対して所望のオペレーションを行うのを許す手順へ
の参照を包含しているステップと、 該第1インスタンスについての該識別子と該手順への該
参照とを、該サーバー・アプリケーションを呼び出すた
めの該サーバー・アプリケーションを内蔵するプラット
フォームの中のサーバー・プラットフォームへ送るステ
ップと、から成ることを特徴とするプロセス。 - 【請求項2】 送るステップは、 該プラットフォームの中のサーバー・プラットフォーム
をして該サーバー・アプリケーションを実行せしめるサ
ブステップを含むことを特徴とする請求項1に記載のプ
ロセス。 - 【請求項3】 該サーバー・アプリケーションを始動さ
せるステップを更に含むことを特徴とする請求項2に記
載のプロセス。 - 【請求項4】 該データ処理回路網は、該クライアント
・アプリケーションのユーザーに対応するユーザーコン
テキスト情報を包含しており、 該第1方法についての該識別子を決定するステップは、 該ユーザーコンテキスト情報への参照によって該第1方
法についての該識別子を決定するサブステップを含むこ
とを特徴とする請求項1に記載のプロセス。 - 【請求項5】 該データ処理回路網は、該回路網のユー
ザーのグループに対応するグループコンテキスト情報を
包含しており、 該第方法についての該識別子を決定するステップは、 該グループコンテキスト情報への参照によって該第1方
法についての該識別子を決定するサブステップを含むこ
とを特徴とする請求項1に記載のプロセス。 - 【請求項6】 該データ処理回路網は、該回路網内のプ
ラットフォームの各々にとってアクセス可能で、該クラ
スについての情報を含む大域データベースを包含してお
り、 該第1方法についての該識別子を決定するステップは、 該第1インスタンスのクラスを決定し、 該第1インスタンスのクラス及び該第1メッセージで該
大域データペースにアクセスして該第1方法について該
識別子の位置を確認し、 該第1方法の該識別子を検索するサブステップを含むこ
とを特徴とする請求項1に記載のプロセス。 - 【請求項7】 該データ処理回路網は、該クライアント
・アプリケーションのユーザーに対応するコンテキスト
情報を包含しており、 随伴するクラス内のインスタンスの共通の特徴を定義す
る属性の組が該方法の各々に随伴しており、 該第1方法についての該識別子を決定するステップは、 該コンテキスト情報を各方法の属性の組と比較して該方
法の中の一つを選択するサブステップを含むことを特徴
とする請求項6に記載のプロセス。 - 【請求項8】 該サーバー・アプリケーションをして実
行せしめるステップは、 該サーバー・アプリケーションにより使用されるべきコ
ンテキストオブジェクトデータベースを生成するサブス
テップを含み、該コンテキストオブジェクトデータベー
スはコンテキスト情報を含むことを特徴とする請求項2
に記載のプロセス。 - 【請求項9】 送るステップは、 該サーバー・アプリケーションにより使用されるべきコ
ンテキスト情報を該プラットフォームの中のサーバー・
プラットフォームに送るサブステップを含むことを特徴
とする請求項1に記載のプロセス。 - 【請求項10】 随伴するクラス内のインスタンスを定
義する属性の組が該クラスの各々に随伴しており、 対応する上位クラスの下位クラスとなっているクラス
が、対応する上位クラスから属性を受け継ぐ様に、該ク
ラスは上位クラスと下位クラスとに階層的に整理されて
おり、 該方法は、更に、 該1インスタンスの属性を、該第1インスタンスについ
てのクラスの属性と、該第1インスタンスについてのク
ラスの全ての上位クラスの属性とから決定するステップ
を含むことを特徴とする請求項1に記載のプロセス。 - 【請求項11】 該クライアント・アプリケーション
は、該プラットフォームの中のクライアント・プラット
フォームにおいて実行し、 該第1方法についての該識別子を決定するステップは、 該プラットフォームの中の該クライアント・プラットフ
ォームにおいて、該第1インスタンスが編入されている
クラスを決定するサブステップを含むことを特徴とする
請求項1に記載のプロセス。 - 【請求項12】 クライアント・アプリケーションによ
りサーバー・アプリケーションをオブジェクト指向的に
遠くから呼び出せる様にするデータ処理回路網であっ
て、 データベースを内蔵する回路網内のメモリーを備えてお
り、該データベースは、 一義的に識別可能な複数のクラスについての情報を含む
複数のクラス項目を含んでおり、該クラスは、インスタ
ンスの種類を特定し、該インスタンスは、共有される特
徴に従って該アプリケーションにより操作又はアクセス
されることのあるアイテムであり、 該クラス項目の各々はメッセージ項目の対応するグルー
プの識別を包含しており、該メッセージ項目は、対応す
るクラス内のインスタンスに対して行われることの出来
るオペレーションの種類を指定する情報を包含してお
り、 該クラス項目の各々は、該アプリケーションを呼び出す
呼出しコマンドへの参照を内蔵する方法項目の対応する
グループの識別を内蔵しており、 該データ処理回路網は、更に、該クライアント・アプリ
ケーションを実行するための複数の第1プラットフォー
ムと該サーバー・アプリケーションを実行するための複
数の第2プラットフォームとを備えており、該第1プラ
ットフォームは、 第1インスタンスについての識別子と、該第1インスタ
ンスに対して行われるべき所望のオペレーションについ
ての識別子とを含む第1メッセージを生成する手段と、 該メモリーに接続されて該データベースを制御するデー
タベース制御手段とを包含しており、該データベース制
御手段は、 該第1メッセージの結果として呼び出されるべきサーバ
ー・アプリケーションを選択する手段と、 該第1インスタンスに対して所望のオペレーションを行
う選択されたサーバー・アプリケーションへの参照を含
む第1方法についての識別子を該第1メッセージと該第
1インスタンスが編入されているクラスとから決定する
手段と、 該第1インスタンスについての該識別子を介して該選択
されたサーバー・アプリケーションへの該参照を該第2
プラットフォームの中の選択された一つに送る手段とを
含んでおり、該第2プラットフォームは、 該データベース制御手段内の該送り手段から該サーバー
・アプリケーションについての該参照を受け取る手段を
含むことを特徴とするデータ処理回路網。 - 【請求項13】 該第1プラットフォームの中の選択さ
れたプラットフォームは、該第2プラットフォームの中
のプラットフォームであることが出来ることを特徴とす
る請求項12に記載のデータ処理回路網。 - 【請求項14】 該メモリーの一部分は該第1プラット
フォーム内にあることを特徴とする請求項12に記載の
データ処理回路網。 - 【請求項15】 該メモリーの一部分は該第2プラット
フォーム内にあることを特徴とする請求項12に記載の
データ処理回路網。 - 【請求項16】 該第1プラットフォームは、 該クライアント・アプリケーションのユーザーに対応す
るコンテキスト情報を保持する記憶手段と、 該コンテキスト情報への参照によって該第1方法につい
ての該識別子を決定する手段とを含むことを特徴とする
請求項12に記載のデータ処理回路網。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US56738990A | 1990-08-14 | 1990-08-14 | |
US567389 | 1990-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0675888A true JPH0675888A (ja) | 1994-03-18 |
JPH0743686B2 JPH0743686B2 (ja) | 1995-05-15 |
Family
ID=24266957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3202700A Expired - Lifetime JPH0743686B2 (ja) | 1990-08-14 | 1991-08-13 | 分散不均一環境におけるアプリケーションの動的呼出しの方法及び装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5341478A (ja) |
EP (1) | EP0474340B1 (ja) |
JP (1) | JPH0743686B2 (ja) |
AU (1) | AU639802B2 (ja) |
CA (1) | CA2049121C (ja) |
DE (1) | DE69131245T2 (ja) |
TW (1) | TW233396B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909466A (zh) * | 2017-01-25 | 2017-06-30 | 北京奇虎科技有限公司 | 一种应用调用方法和装置 |
Families Citing this family (273)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US5408652A (en) * | 1990-08-31 | 1995-04-18 | Fujitsu Limited | Method and apparatus for heterogenous database access by generating different access procedures for different database data structures |
DE4131380A1 (de) * | 1991-09-20 | 1993-03-25 | Siemens Ag | Verfahren zur adaption einer objektorientierten applikation |
JP3260813B2 (ja) | 1992-04-23 | 2002-02-25 | 株式会社日立製作所 | 情報処理システム |
JP3613401B2 (ja) * | 1992-07-06 | 2005-01-26 | マイクロソフト コーポレーション | オブジェクトの名称を付けて結び付ける方法及びシステム |
US5802290A (en) * | 1992-07-29 | 1998-09-01 | Virtual Computer Corporation | Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed |
US5459860A (en) * | 1992-10-05 | 1995-10-17 | International Business Machines Corporation | Computerized system and process for managing a distributed database system |
EP0667012B1 (en) * | 1992-11-09 | 1997-02-05 | Microsoft Corporation | Method and system for connecting objects in a computer system |
US5515536A (en) * | 1992-11-13 | 1996-05-07 | Microsoft Corporation | Method and system for invoking methods of an object through a dispatching interface |
FR2698977B1 (fr) * | 1992-12-03 | 1994-12-30 | Alsthom Cge Alcatel | Système d'information multimédia. |
US5544320A (en) * | 1993-01-08 | 1996-08-06 | Konrad; Allan M. | Remote information service access system based on a client-server-service model |
US5999942A (en) * | 1993-02-11 | 1999-12-07 | Appage Corporation | Method and apparatus for enforcement of behavior of application processing systems without modifying application processing systems |
CA2090852A1 (en) * | 1993-03-02 | 1994-09-03 | Joseph Iossiphidis | Generic data and process base manager and data and process base management system for heterogeneous databases and process bases |
US5652879A (en) * | 1993-05-12 | 1997-07-29 | Apple Computer, Inc. | Dynamic value mechanism for computer storage container manager enabling access of objects by multiple application programs |
US5797007A (en) * | 1993-06-14 | 1998-08-18 | International Business Machines Corporation | Persistent object storage system with default object encoder/decoder |
KR100343517B1 (ko) * | 1993-06-28 | 2002-11-29 | 다우 베네룩스 엔. 브이. | 확장프로그램간통신서버 |
US5473777A (en) * | 1993-07-19 | 1995-12-05 | Moeller; Christopher P. | Wrapper for enabling an object otented application to maintain virtual memory using procedural function calls |
US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
US6684261B1 (en) * | 1993-07-19 | 2004-01-27 | Object Technology Licensing Corporation | Object-oriented operating system |
US5581761A (en) * | 1993-07-20 | 1996-12-03 | Sun Microsystems, Inc. | Methods and apparatus for providing an extensible set of auxiliary services for objects in an object-oriented system |
WO1995004960A2 (en) * | 1993-08-02 | 1995-02-16 | Persistence Software, Inc. | Method and apparatus for managing relational data in an object cache |
AU683038B2 (en) * | 1993-08-10 | 1997-10-30 | Addison M. Fischer | A method for operating computers and for processing information among computers |
JPH0795202A (ja) * | 1993-09-20 | 1995-04-07 | Fujitsu Ltd | システム間での定義情報の共用方式 |
IL111154A0 (en) * | 1993-10-21 | 1994-12-29 | Martino Ii John A | Systems and methods for electronic messaging |
US5742848A (en) * | 1993-11-16 | 1998-04-21 | Microsoft Corp. | System for passing messages between source object and target object utilizing generic code in source object to invoke any member function of target object by executing the same instructions |
US5499343A (en) * | 1993-12-17 | 1996-03-12 | Taligent, Inc. | Object-oriented networking system with dynamically configurable communication links |
US5721904A (en) * | 1993-12-20 | 1998-02-24 | Hitachi, Ltd. | Database access system and method of controlling access management to a database access system for a plurality of heterogeneous database servers using SQL |
US5832219A (en) * | 1994-02-08 | 1998-11-03 | Object Technology Licensing Corp. | Distributed object networking service |
CA2115464C (en) * | 1994-02-11 | 1998-12-15 | William G. O'farrell | Concurrent processing in object oriented parallel and near parallel systems |
US5721906A (en) * | 1994-03-24 | 1998-02-24 | Ncr Corporation | Multiple repositories of computer resources, transparent to user |
US5493681A (en) * | 1994-04-08 | 1996-02-20 | Motorola, Inc. | Method of configuring alternative instances of an element class in a software system |
US5682532A (en) * | 1994-05-02 | 1997-10-28 | Microsoft Corporation | System and method having programmable containers with functionality for managing objects |
DE69533148T2 (de) * | 1994-05-26 | 2005-08-25 | Sun Microsystems, Inc., Santa Clara | Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen |
US6769009B1 (en) | 1994-05-31 | 2004-07-27 | Richard R. Reisman | Method and system for selecting a personalized set of information channels |
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 |
US5745766A (en) * | 1994-09-19 | 1998-04-28 | International Business Machines Corporation | PC product registration and tracking |
US5805886A (en) * | 1994-09-26 | 1998-09-08 | Intel Corporation | Method for notifying client applications of events in a shared application in a computer system |
US5752027A (en) * | 1994-11-30 | 1998-05-12 | Dun & Bradstreet Software Services, Inc. | Apparatus and process for creating and accessing a database centric object |
US5831606A (en) * | 1994-12-13 | 1998-11-03 | Microsoft Corporation | Shell extensions for an operating system |
US5819091A (en) * | 1994-12-22 | 1998-10-06 | Arendt; James Wendell | User level control of degree of client-side processing |
KR100221374B1 (ko) * | 1995-01-19 | 1999-09-15 | 포만 제프리 엘 | 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치 |
US5692180A (en) * | 1995-01-31 | 1997-11-25 | International Business Machines Corporation | Object-oriented cell directory database for a distributed computing environment |
WO1996025754A1 (en) * | 1995-02-17 | 1996-08-22 | Bell Communications Research, Inc. | Methods and apparatus for implementing data networking system having object-oriented architecture |
US6282712B1 (en) * | 1995-03-10 | 2001-08-28 | Microsoft Corporation | Automatic software installation on heterogeneous networked computer systems |
US5727212A (en) * | 1995-04-12 | 1998-03-10 | International Business Machines Corporation | Object oriented device driver system for procedural device drivers |
US5499333A (en) * | 1995-04-20 | 1996-03-12 | International Business Machines Corporation | Method and apparatus for at least partially instantiating an object in a compound document using the object's parent class configuration data when the object's configuration data is unavailable |
US5710924A (en) * | 1995-04-24 | 1998-01-20 | Motorola, Inc. | Method of routing messages within a multi-processing software system |
AU5726596A (en) * | 1995-05-05 | 1996-11-21 | Apple Computer, Inc. | System and method for providing cooperative interrupts in a preemptive task scheduling environment |
US6701428B1 (en) * | 1995-05-05 | 2004-03-02 | Apple Computer, Inc. | Retrieval of services by attribute |
US5740455A (en) * | 1995-05-16 | 1998-04-14 | Apple Computer, Inc. | Enhanced compound document processing architectures and methods therefor |
US5664208A (en) * | 1995-05-16 | 1997-09-02 | Apple Computer, Inc. | Methods and apparatuses for seamless compound document processing |
US6266808B1 (en) | 1995-06-05 | 2001-07-24 | International Business Machines Corporation | Computer program product for enabling the construction of dialogs for commands and templates |
US5761499A (en) * | 1995-12-21 | 1998-06-02 | Novell, Inc. | Method for managing globally distributed software components |
US5692129B1 (en) * | 1995-07-07 | 1999-08-17 | Novell Inc | Managing application programs in a computer network by using a database of application objects |
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 |
US5640579A (en) * | 1995-07-24 | 1997-06-17 | Microsoft Corporation | Method and system for logically partitioning a view of a document object from a frame in which the document object is displayed |
US5892946A (en) * | 1995-09-12 | 1999-04-06 | Alcatel Usa, Inc. | System and method for multi-site distributed object management environment |
US5732263A (en) * | 1995-10-03 | 1998-03-24 | International Business Machines Corporation | Systems, methods and computer program products for generating and validating user defined object classes in an object oriented programming environment after build time |
US6684259B1 (en) * | 1995-10-11 | 2004-01-27 | Citrix Systems, Inc. | Method for providing user global object name space in a multi-user operating system |
US5913060A (en) * | 1995-10-11 | 1999-06-15 | Citrix Systems, Inc. | Method for deadlock avoidance in a distributed process system using a synchronous procedure call |
US6088515A (en) | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
US6950991B2 (en) * | 1995-11-13 | 2005-09-27 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US7555529B2 (en) * | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6370552B1 (en) | 1997-05-14 | 2002-04-09 | Citrix Systems, Inc. | Apparatus and method for displaying application output in an HTML document |
US5878428A (en) * | 1995-11-20 | 1999-03-02 | International Business Machines Corporation | System, method, and article of manufacture for adding transactional recovery to a binary class in an object oriented system |
US5867708A (en) * | 1995-11-20 | 1999-02-02 | International Business Machines Corporation | System, method, and article of manufacture for adding concurrency to a binary class in an object oriented system |
US6782538B1 (en) | 1995-12-14 | 2004-08-24 | International Business Machines Corporation | Object oriented information handling system including an extensible instance manager |
US5873092A (en) * | 1995-12-14 | 1999-02-16 | International Business Machines Corporation | Information handling system, method, and article of manufacture including persistent, distributed object name services including shared properties |
US5765153A (en) * | 1996-01-03 | 1998-06-09 | International Business Machines Corporation | Information handling system, method, and article of manufacture including object system authorization and registration |
US5809506A (en) * | 1996-01-22 | 1998-09-15 | International Business Machines Corporation | Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto |
US6374287B1 (en) * | 1996-01-24 | 2002-04-16 | Sun Microsystems, Inc. | Method and system for allowing client processes to run on distributed window server extensions |
CA2199108C (en) * | 1996-03-05 | 2002-04-23 | Hirotoshi Maegawa | Parallel distributed processing system and method of same |
US6785690B1 (en) * | 1996-03-18 | 2004-08-31 | Hewlett-Packard Development Company, L.P. | Method and system for storage, retrieval, and query of objects in a schemeless database |
US6113649A (en) * | 1996-03-27 | 2000-09-05 | International Business Machines Corporation | Object representation of program and script components |
US6091895A (en) * | 1996-03-27 | 2000-07-18 | International Business Machines Corporation | Object oriented central maintenance for programs and scripts |
US6272559B1 (en) | 1997-10-15 | 2001-08-07 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading for event notification in a distributed system |
US6237024B1 (en) | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US6247026B1 (en) | 1996-10-11 | 2001-06-12 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a distributed system |
US6560656B1 (en) | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
US6466947B2 (en) | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6226746B1 (en) | 1998-03-20 | 2001-05-01 | Sun Microsystems, Inc. | Stack-based system and method to combine security requirements of methods |
US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6134603A (en) * | 1998-03-20 | 2000-10-17 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods |
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 |
US6578044B1 (en) | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system |
US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6463446B1 (en) | 1998-02-26 | 2002-10-08 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system |
US5745675A (en) * | 1996-04-23 | 1998-04-28 | International Business Machines Corporation | Object oriented framework mechanism for performing computer system diagnostics |
US6282652B1 (en) | 1998-02-26 | 2001-08-28 | Sun Microsystems, Inc. | System for separately designating security requirements for methods invoked on a computer |
US6081798A (en) * | 1996-04-24 | 2000-06-27 | International Business Machines Corp. | Object oriented case-based reasoning framework mechanism |
US5778378A (en) | 1996-04-30 | 1998-07-07 | International Business Machines Corporation | Object oriented information retrieval framework mechanism |
US5696961A (en) * | 1996-05-22 | 1997-12-09 | Wang Laboratories, Inc. | Multiple database access server for application programs |
US20030195848A1 (en) | 1996-06-05 | 2003-10-16 | David Felger | Method of billing a purchase made over a computer network |
US7555458B1 (en) | 1996-06-05 | 2009-06-30 | Fraud Control System.Com Corporation | Method of billing a purchase made over a computer network |
US8229844B2 (en) | 1996-06-05 | 2012-07-24 | Fraud Control Systems.Com Corporation | Method of billing a purchase made over a computer network |
US5987512A (en) * | 1996-06-12 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for access to remote gateway servers |
US6718550B1 (en) * | 1996-06-26 | 2004-04-06 | Sun Microsystems, Inc. | Method and apparatus for improving the performance of object invocation |
US5999972A (en) * | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US6134583A (en) * | 1996-07-01 | 2000-10-17 | Sun Microsystems, Inc. | Method, system, apparatus and article of manufacture for providing identity-based caching services to a plurality of computer systems (#16) |
US6154742A (en) * | 1996-07-02 | 2000-11-28 | Sun Microsystems, Inc. | System, method, apparatus and article of manufacture for identity-based caching (#15) |
US5828840A (en) * | 1996-08-06 | 1998-10-27 | Verifone, Inc. | Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal |
DE19637883B4 (de) * | 1996-09-17 | 2005-06-16 | Fujitsu Siemens Computers Gmbh | Datenverarbeitungsanlage zur Ausführung großer Programmsysteme |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US6243763B1 (en) * | 1996-11-12 | 2001-06-05 | International Business Machines Corporation | Method for sending a message to a group and the group broadcasts the message to its members or references within an object-oriented system |
US6219717B1 (en) * | 1996-11-20 | 2001-04-17 | Merrill Lynch & Co., Inc. | Method and apparatus for implementing object transparent invocation |
US6401099B1 (en) | 1996-12-06 | 2002-06-04 | Microsoft Corporation | Asynchronous binding of named objects |
US6460058B2 (en) | 1996-12-06 | 2002-10-01 | Microsoft Corporation | Object-oriented framework for hyperlink navigation |
US5848415A (en) * | 1996-12-18 | 1998-12-08 | Unisys Corporation | Selective multiple protocol transport and dynamic format conversion in a multi-user network |
US6272523B1 (en) | 1996-12-20 | 2001-08-07 | International Business Machines Corporation | Distributed networking using logical processes |
US6058423A (en) | 1996-12-23 | 2000-05-02 | International Business Machines Corporation | System and method for locating resources in a distributed network |
US5963944A (en) * | 1996-12-30 | 1999-10-05 | Intel Corporation | System and method for distributing and indexing computerized documents using independent agents |
US6845505B1 (en) * | 1997-02-03 | 2005-01-18 | Oracle International Corporation | Web request broker controlling multiple processes |
US6710786B1 (en) | 1997-02-03 | 2004-03-23 | Oracle International Corporation | Method and apparatus for incorporating state information into a URL |
US5832521A (en) * | 1997-02-28 | 1998-11-03 | Oracle Corporation | Method and apparatus for performing consistent reads in multiple-server environments |
US6065116A (en) * | 1997-05-07 | 2000-05-16 | Unisys Corporation | Method and apparatus for configuring a distributed application program |
US5961586A (en) * | 1997-05-14 | 1999-10-05 | Citrix Systems, Inc. | System and method for remotely executing an interpretive language application |
US5941949A (en) * | 1997-05-14 | 1999-08-24 | Citrix Systems, Inc. | System and method for transmitting data from a server application to more than one client node |
US6023721A (en) * | 1997-05-14 | 2000-02-08 | Citrix Systems, Inc. | Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility |
US5983272A (en) | 1997-08-29 | 1999-11-09 | Cisco Technology, Inc. | Option request protocol |
US6311226B1 (en) * | 1997-08-29 | 2001-10-30 | Cisco Technology, Inc. | Method and apparatus for dynamic link name negotiation |
US6898782B1 (en) | 1997-10-14 | 2005-05-24 | International Business Machines Corporation | Reference-based associations using reference attributes in an object modeling system |
US6253256B1 (en) | 1997-10-15 | 2001-06-26 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading in a distributed system |
US6334114B1 (en) | 1997-10-31 | 2001-12-25 | Oracle Corporation | Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm |
US6389452B1 (en) | 1997-12-01 | 2002-05-14 | Recursion Software, Inc. | Method of communicating between objects and agents across a computer network |
US6834389B1 (en) | 1997-12-01 | 2004-12-21 | Recursion Software, Inc. | Method of forwarding messages to mobile objects in a computer network |
US6321261B1 (en) | 1997-12-01 | 2001-11-20 | Objectspace, Inc. | Method of constructing an object remotely across a computer network |
US6415315B1 (en) | 1997-12-01 | 2002-07-02 | Recursion Software, Inc. | Method of moving objects in a computer network |
US6519653B1 (en) | 1997-12-01 | 2003-02-11 | Recursion Software, Inc. | Method of communicating between agent objects in a computer network |
US6535928B1 (en) | 1997-12-01 | 2003-03-18 | Recursion Software, Inc. | Method of determining the timing for reclaiming a remote object |
US6442586B1 (en) | 1997-12-01 | 2002-08-27 | Recursion Software, Inc. | Method of moving objects across multiple locations in a computer network |
US6510460B1 (en) | 1997-12-18 | 2003-01-21 | Sun Microsystems, Inc. | Method and apparatus for enforcing locking invariants in multi-threaded systems |
US6249803B1 (en) | 1997-12-18 | 2001-06-19 | Sun Microsystems, Inc. | Method and apparatus for executing code during method invocation |
US6516354B2 (en) | 1997-12-18 | 2003-02-04 | Sun Microsystems, Inc. | Method and apparatus for efficient representation of variable length identifiers in a distributed object system |
US6898792B1 (en) * | 1998-02-18 | 2005-05-24 | Iona Technologies, Plc | Foreign object definition information repository |
WO1999044133A2 (en) * | 1998-02-26 | 1999-09-02 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods |
US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
US6917939B1 (en) | 1998-05-22 | 2005-07-12 | International Business Machines Corporation | Method and apparatus for configurable mapping between data stores and data structures and a generalized client data model using heterogeneous, specialized storage |
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 |
US6912561B1 (en) | 1998-05-22 | 2005-06-28 | International Business Machines Corporation | Method and apparatus for using classes, encapsulating data with its behaviors, for transferring between databases and client applications and for enabling applications to adapt to specific constraints of the data |
US6381734B1 (en) * | 1998-06-03 | 2002-04-30 | Microsoft Corporation | Method, software and apparatus for referencing a method in object-based programming |
EP0978977A1 (en) | 1998-08-07 | 2000-02-09 | International Business Machines Corporation | A method and system for improving high speed internetwork data transfers |
US6711178B1 (en) | 1998-09-08 | 2004-03-23 | Cisco Technology, Inc. | Enhanced claw packing protocol |
YU45600A (sh) * | 1998-11-18 | 2002-10-18 | Saga Software Inc. | Promenljivi distribucioni sistem za integraciju programa u preduzeću |
US6182267B1 (en) | 1998-11-20 | 2001-01-30 | Cisco Technology, Inc. | Ensuring accurate data checksum |
US6928469B1 (en) | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
US6832377B1 (en) * | 1999-04-05 | 2004-12-14 | Gateway, Inc. | Universal registration system |
US6356933B2 (en) * | 1999-09-07 | 2002-03-12 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
US6601195B1 (en) | 1999-09-09 | 2003-07-29 | International Business Machines Corporation | Switch adapter testing |
US6560720B1 (en) | 1999-09-09 | 2003-05-06 | International Business Machines Corporation | Error injection apparatus and method |
US6487208B1 (en) | 1999-09-09 | 2002-11-26 | International Business Machines Corporation | On-line switch diagnostics |
US6697835B1 (en) * | 1999-10-28 | 2004-02-24 | Unisys Corporation | Method and apparatus for high speed parallel execution of multiple points of logic across heterogeneous data sources |
US6947965B2 (en) | 1999-11-30 | 2005-09-20 | Recursion Software, Inc. | System and method for communications in a distributed computing environment |
US6678743B1 (en) | 1999-11-30 | 2004-01-13 | Recursion Software, Inc. | Method for moving objects in a distributed computing environment |
US7051338B1 (en) * | 2000-03-03 | 2006-05-23 | The Mathworks, Inc. | Method and system for accessing externally-defined objects from an array-based mathematical computing environment |
US9710242B1 (en) * | 2000-03-03 | 2017-07-18 | The Mathworks, Inc. | Method selection in an external language based on output parameters |
US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US6934755B1 (en) | 2000-06-02 | 2005-08-23 | Sun Microsystems, Inc. | System and method for migrating processes on a network |
US7191394B1 (en) | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
AU2001264895A1 (en) | 2000-06-21 | 2002-01-02 | Microsoft Corporation | System and method for integrating spreadsheets and word processing tables |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
US6874143B1 (en) | 2000-06-21 | 2005-03-29 | Microsoft Corporation | Architectures for and methods of providing network-based software extensions |
US7155667B1 (en) | 2000-06-21 | 2006-12-26 | Microsoft Corporation | User interface for integrated spreadsheets and word processing tables |
US6948135B1 (en) | 2000-06-21 | 2005-09-20 | Microsoft Corporation | Method and systems of providing information to computer users |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US7117435B1 (en) | 2000-06-21 | 2006-10-03 | Microsoft Corporation | Spreadsheet fields in text |
US7624356B1 (en) | 2000-06-21 | 2009-11-24 | Microsoft Corporation | Task-sensitive methods and systems for displaying command sets |
US7020773B1 (en) | 2000-07-17 | 2006-03-28 | Citrix Systems, Inc. | Strong mutual authentication of devices |
US7275079B2 (en) | 2000-08-08 | 2007-09-25 | International Business Machines Corporation | Common application metamodel including C/C++ metamodel |
US7346842B1 (en) | 2000-11-02 | 2008-03-18 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client |
US6986040B1 (en) | 2000-11-03 | 2006-01-10 | Citrix Systems, Inc. | System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel |
US7194743B2 (en) * | 2000-12-12 | 2007-03-20 | Citrix Systems, Inc. | Methods and apparatus for communicating changes between a user interface and an executing application using property paths |
US6907445B2 (en) * | 2001-02-12 | 2005-06-14 | International Truck Intellectual Property Company, Llc | Consistent application programming interface for communicating with disparate vehicle network classes |
US20050155042A1 (en) * | 2001-07-02 | 2005-07-14 | Michael Kolb | Component-based system for distributed applications |
US7203700B1 (en) * | 2001-08-31 | 2007-04-10 | Oracle International Corporation | Online instance addition and deletion in a multi-instance computer system |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US7536404B2 (en) * | 2001-12-13 | 2009-05-19 | Siemens Product Lifecycle Management Software, Inc. | Electronic files preparation for storage in a server |
US7660876B2 (en) * | 2001-12-13 | 2010-02-09 | Siemens Product Lifecycle Management Software Inc. | Electronic file management |
US6917975B2 (en) * | 2003-02-14 | 2005-07-12 | Bea Systems, Inc. | Method for role and resource policy management |
US8831966B2 (en) * | 2003-02-14 | 2014-09-09 | Oracle International Corporation | Method for delegated administration |
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 |
US7017051B2 (en) * | 2003-02-24 | 2006-03-21 | Bea Systems, Inc. | System and method for enterprise authentication |
US7610618B2 (en) | 2003-02-24 | 2009-10-27 | Bea Systems, Inc. | System and method for authenticating a subject |
US7275216B2 (en) | 2003-03-24 | 2007-09-25 | Microsoft Corporation | System and method for designing electronic forms and hierarchical schemas |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US7415672B1 (en) | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7516145B2 (en) | 2003-03-31 | 2009-04-07 | Microsoft Corporation | System and method for incrementally transforming and rendering hierarchical data files |
US7168035B1 (en) | 2003-06-11 | 2007-01-23 | Microsoft Corporation | Building a view on markup language data through a set of components |
US7197515B2 (en) | 2003-06-30 | 2007-03-27 | Microsoft Corporation | Declarative solution definition |
US7451392B1 (en) | 2003-06-30 | 2008-11-11 | Microsoft Corporation | Rendering an HTML electronic form by applying XSLT to XML using a solution |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US7581177B1 (en) | 2003-08-01 | 2009-08-25 | Microsoft Corporation | Conversion of structured documents |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US20050262362A1 (en) * | 2003-10-10 | 2005-11-24 | Bea Systems, Inc. | Distributed security system policies |
US7644432B2 (en) * | 2003-10-10 | 2010-01-05 | Bea Systems, Inc. | Policy inheritance through nested groups |
US20050257245A1 (en) * | 2003-10-10 | 2005-11-17 | Bea Systems, Inc. | Distributed security system with dynamic roles |
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 |
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 |
US7137099B2 (en) | 2003-10-24 | 2006-11-14 | Microsoft Corporation | System and method for extending application preferences classes |
US7669177B2 (en) | 2003-10-24 | 2010-02-23 | Microsoft Corporation | System and method for preference application installation and execution |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
US7430711B2 (en) | 2004-02-17 | 2008-09-30 | Microsoft Corporation | Systems and methods for editing XML documents |
US7318063B2 (en) | 2004-02-19 | 2008-01-08 | Microsoft Corporation | Managing XML documents containing hierarchical database information |
US7496837B1 (en) | 2004-04-29 | 2009-02-24 | Microsoft Corporation | Structural editing with schema awareness |
US7568101B1 (en) | 2004-05-13 | 2009-07-28 | Microsoft Corporation | Digital signatures with an embedded view |
US7281018B1 (en) | 2004-05-26 | 2007-10-09 | Microsoft Corporation | Form template data source change |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
US8171479B2 (en) | 2004-09-30 | 2012-05-01 | Citrix Systems, Inc. | Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers |
US8613048B2 (en) | 2004-09-30 | 2013-12-17 | Citrix Systems, Inc. | Method and apparatus for providing authorized remote access to application sessions |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US7748032B2 (en) | 2004-09-30 | 2010-06-29 | Citrix Systems, Inc. | Method and apparatus for associating tickets in a ticket hierarchy |
US7516399B2 (en) | 2004-09-30 | 2009-04-07 | Microsoft Corporation | Structured-document path-language expression methods and systems |
US7711835B2 (en) | 2004-09-30 | 2010-05-04 | Citrix Systems, Inc. | Method and apparatus for reducing disclosure of proprietary data in a networked environment |
US7680758B2 (en) | 2004-09-30 | 2010-03-16 | Citrix Systems, Inc. | Method and apparatus for isolating execution of software applications |
US8095940B2 (en) | 2005-09-19 | 2012-01-10 | Citrix Systems, Inc. | Method and system for locating and accessing resources |
US8487879B2 (en) | 2004-10-29 | 2013-07-16 | Microsoft Corporation | Systems and methods for interacting with a computer through handwriting to a screen |
US7584417B2 (en) | 2004-11-15 | 2009-09-01 | Microsoft Corporation | Role-dependent action for an electronic form |
US7712022B2 (en) | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
US7721190B2 (en) | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
US7509353B2 (en) | 2004-11-16 | 2009-03-24 | Microsoft Corporation | Methods and systems for exchanging and rendering forms |
US7904801B2 (en) | 2004-12-15 | 2011-03-08 | Microsoft Corporation | Recursive sections in electronic forms |
US7437376B2 (en) | 2004-12-20 | 2008-10-14 | Microsoft Corporation | Scalable object model |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US8024568B2 (en) | 2005-01-28 | 2011-09-20 | Citrix Systems, Inc. | Method and system for verification of an endpoint security scan |
US7725834B2 (en) | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US8010515B2 (en) | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
US7543228B2 (en) | 2005-06-27 | 2009-06-02 | Microsoft Corporation | Template for rendering an electronic form |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
US7613996B2 (en) | 2005-08-15 | 2009-11-03 | Microsoft Corporation | Enabling selection of an inferred schema part |
US7844957B2 (en) * | 2005-08-19 | 2010-11-30 | Sybase, Inc. | Development system with methodology providing optimized message parsing and handling |
US7953734B2 (en) * | 2005-09-26 | 2011-05-31 | Oracle International Corporation | System and method for providing SPI extensions for content management system |
US7917537B2 (en) | 2005-09-26 | 2011-03-29 | Oracle International Corporation | System and method for providing link property types for content management |
US7483893B2 (en) | 2005-09-26 | 2009-01-27 | Bae Systems, Inc. | System and method for lightweight loading for managing content |
US7752205B2 (en) * | 2005-09-26 | 2010-07-06 | Bea Systems, Inc. | Method and system for interacting with a virtual content repository |
US7818344B2 (en) | 2005-09-26 | 2010-10-19 | Bea Systems, Inc. | System and method for providing nested types for content management |
US8131825B2 (en) | 2005-10-07 | 2012-03-06 | Citrix Systems, Inc. | Method and a system for responding locally to requests for file metadata associated with files stored remotely |
US7779034B2 (en) | 2005-10-07 | 2010-08-17 | Citrix Systems, Inc. | Method and system for accessing a remote file in a directory structure associated with an application program executing locally |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US7779343B2 (en) | 2006-01-30 | 2010-08-17 | Microsoft Corporation | Opening network-enabled electronic documents |
US7895639B2 (en) * | 2006-05-04 | 2011-02-22 | Citrix Online, Llc | Methods and systems for specifying and enforcing access control in a distributed system |
US8463852B2 (en) | 2006-10-06 | 2013-06-11 | Oracle International Corporation | Groupware portlets for integrating a portal with groupware systems |
US8738703B2 (en) | 2006-10-17 | 2014-05-27 | Citrix Systems, Inc. | Systems and methods for providing online collaborative support |
US8533846B2 (en) | 2006-11-08 | 2013-09-10 | Citrix Systems, Inc. | Method and system for dynamically associating access rights with a resource |
JP5128496B2 (ja) * | 2006-12-27 | 2013-01-23 | 京セラ株式会社 | 通信システム、無線通信端末、通信方法、無線通信方法、無線通信装置、およびその制御方法 |
US8171483B2 (en) | 2007-10-20 | 2012-05-01 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
US8090797B2 (en) | 2009-05-02 | 2012-01-03 | Citrix Systems, Inc. | Methods and systems for launching applications into existing isolation environments |
US8051141B2 (en) * | 2009-10-09 | 2011-11-01 | Novell, Inc. | Controlled storage utilization |
IT1396303B1 (it) * | 2009-10-12 | 2012-11-16 | Re Lab S R L | Metodo e sistema per l elaborazione di informazioni relative ad un veicolo |
US8515979B2 (en) * | 2010-06-18 | 2013-08-20 | Verizon Patent And Licensing, Inc. | Cross application execution service |
EP2466455A1 (en) * | 2010-12-15 | 2012-06-20 | Schneider Electric Buildings AB | Definition of objects in object-oriented programming environments |
US9372912B2 (en) * | 2014-03-07 | 2016-06-21 | Zef Oy | Method, server, database and computer program for enriching comparison data of a decision making application |
US10455040B2 (en) * | 2017-01-30 | 2019-10-22 | Microsoft Technology Licensing, Llc | Deferring invocation requests for remote objects |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US4525780A (en) * | 1981-05-22 | 1985-06-25 | Data General Corporation | Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information |
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 |
AU589400B2 (en) * | 1985-03-05 | 1989-10-12 | 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 |
US4835685A (en) * | 1985-05-06 | 1989-05-30 | Computer X, Inc. | Virtual single machine with message-like hardware interrupts and processor exceptions |
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 |
US4887204A (en) * | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
WO1988007718A1 (en) * | 1987-03-24 | 1988-10-06 | Insignia Solutions Limited | Arrangement for software emulation |
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 |
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 |
US5109486A (en) * | 1989-01-06 | 1992-04-28 | Motorola, Inc. | Distributed computer system with network and resource status monitoring |
US5142622A (en) * | 1989-01-31 | 1992-08-25 | International Business Machines Corporation | System for interconnecting applications across different networks of data processing systems by mapping protocols across different network domains |
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 |
US5138712A (en) * | 1989-10-02 | 1992-08-11 | Sun Microsystems, Inc. | Apparatus and method for licensing software on a network of computers |
AU628753B2 (en) * | 1990-08-14 | 1992-09-17 | Digital Equipment Corporation | Method and apparatus for implementing server functions 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 |
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 |
-
1991
- 1991-06-26 AU AU79454/91A patent/AU639802B2/en not_active Expired
- 1991-07-05 EP EP91306128A patent/EP0474340B1/en not_active Expired - Lifetime
- 1991-07-05 DE DE69131245T patent/DE69131245T2/de not_active Expired - Lifetime
- 1991-08-13 TW TW080106379A patent/TW233396B/zh not_active IP Right Cessation
- 1991-08-13 CA CA002049121A patent/CA2049121C/en not_active Expired - Lifetime
- 1991-08-13 JP JP3202700A patent/JPH0743686B2/ja not_active Expired - Lifetime
-
1993
- 1993-11-03 US US08/148,607 patent/US5341478A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909466A (zh) * | 2017-01-25 | 2017-06-30 | 北京奇虎科技有限公司 | 一种应用调用方法和装置 |
CN106909466B (zh) * | 2017-01-25 | 2020-06-26 | 北京奇虎科技有限公司 | 一种应用调用方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CA2049121C (en) | 1996-08-13 |
EP0474340A2 (en) | 1992-03-11 |
TW233396B (ja) | 1994-11-01 |
JPH0743686B2 (ja) | 1995-05-15 |
EP0474340A3 (en) | 1993-01-13 |
DE69131245D1 (de) | 1999-06-24 |
US5341478A (en) | 1994-08-23 |
DE69131245T2 (de) | 1999-09-23 |
CA2049121A1 (en) | 1992-02-15 |
EP0474340B1 (en) | 1999-05-19 |
AU7945491A (en) | 1992-03-26 |
AU639802B2 (en) | 1993-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2842714B2 (ja) | アプリケーションのオブジェクト指向呼出しをデータベースで行うための方法 | |
JPH0675888A (ja) | 分散不均一環境におけるアプリケーションの動的呼出しの方法及び装置 | |
JPH0664559B2 (ja) | クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置 | |
JPH0675889A (ja) | 分散不均一環境におけるサーバー機能の実行方法及び装置 | |
JP3949180B2 (ja) | 基底システムオブジェクトモデルを備えたシステム管理サービスの統合 | |
EP0501610B1 (en) | Object oriented distributed computing system | |
US6470375B1 (en) | System and method for managing the execution of system management tasks | |
US6438590B1 (en) | Computer system with preferential naming service | |
US6665786B2 (en) | Dynamic disk partition management | |
KR100301274B1 (ko) | 컴퓨터시스템및프로그램제품전송방법 | |
EP0660234A2 (en) | Method and system for executing code remotely | |
JP2002522842A (ja) | オペレーティングシステム用多言語ユーザインタフェース | |
JPH0997204A (ja) | 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置 | |
US6470346B2 (en) | Remote computation framework | |
US6751796B1 (en) | Integration of systems management services with an underlying system object model | |
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 | |
Sharrott et al. | ObjectMap: Integrating high performance resources into a distributed object-oriented environment |
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 |
|
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: 20090515 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100515 Year of fee payment: 15 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110515 Year of fee payment: 16 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120515 Year of fee payment: 17 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120515 Year of fee payment: 17 |