JP2000515281A - インターフェイス定義言語によって定義されたインターフェイス、オペレーションおよびデータ型を記述するための方法および装置 - Google Patents

インターフェイス定義言語によって定義されたインターフェイス、オペレーションおよびデータ型を記述するための方法および装置

Info

Publication number
JP2000515281A
JP2000515281A JP10506110A JP50611098A JP2000515281A JP 2000515281 A JP2000515281 A JP 2000515281A JP 10506110 A JP10506110 A JP 10506110A JP 50611098 A JP50611098 A JP 50611098A JP 2000515281 A JP2000515281 A JP 2000515281A
Authority
JP
Japan
Prior art keywords
generating
indicating
data
descriptor
character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10506110A
Other languages
English (en)
Inventor
スコフィールド,アンドリュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JP2000515281A publication Critical patent/JP2000515281A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • G06F8/437Type checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 インターフェイス定義言語によって定義されたデータ型、オペレーションまたはインターフェイスを定義するための方法が説明されている。特に、前記データ型、オペレーションまたはインターフェイスを特定するASCII文字列識別子が発生される。データ型の基本型を識別するために文字が使用され、混成型およびこれら混成型の特徴を特定するために文字と数字との組合わせが使用される。オペレーションの場合、該オペレーションに含まれるパラメータの数および種類、例外の数、コンテキストの数を特定するために、文字および数字が使用される。インターフェイスは、該インターフェイスに含まれるオペレーションの数を示す数字を使用して記述される。オリジナルのIDL記述をASCII文字列識別子に変換することにより、異種システム間でオブジェクト呼出しを移送するための汎用関数が作成可能である。

Description

【発明の詳細な説明】 インターフェイス定義言語によって定義されたインターフェイス、オペレーショ ンおよびデータ型を記述するための方法および装置 発明の背景 1.発明の分野 この発明は、インターフェイス定義言語によって定義されたインターフェイス 、オペレーションおよびデータ型を記述するための方法および装置に関し、特に 、一連のASCII文字を使用してデータ型を記述するものに関する。 2.背景 分散型オブジェクトコンピューティング方式は、分散型コンピューティングお よびオブジェクト指向型コンピューティングの概念を組合わせたものである。分 散型コンピューティング方式は、相互に情報を共有する2つまたは3つ以上のソ フトウエアで構成される。これら2つのソフトウエアは、同一のコンピュータ、 または、共通のネットワークに接続された複数の異なるコンピュータ上で実行さ れる。ほとんどの分散型コンピューティング方式は、クライアント/サーバモデ ルに基づいている。このようなクライアント/サーバモデルでは、大別して2種 類のソフトウエア、すなわち、情報またはサービスを要求するクライアントソフ トウエアと、情報またはサービスを提供または実行するサーバソフトウエアが使 用される。 前記オブジェクト指向型コンピューティングは、“オブジェクト”と呼ばれる コード(しばしば、現実世界における現実の対象から抽出される)がデータを含 み、これらオブジェクトについて実行される行為(“オペレーション”とも呼ば れる)を含むことがあるオブジェクトモデルに基づくものである。各オブジェク トは、そのインターフェイス(または、C++言語では“クラス”)によって定 義される。前記インターフェイスは、該インターフェイスのオブジェクトについ て実行されるオペレーション、および、該オペレーションのためのパラメータを 含む、オブジェクトの特徴および作用を定義する。ある特定のオブジェクトは、 分散型オブジェクトシステムにおいて、オブジェクト参照と呼ばれるユニークな 識別子によって識別される。 分散型オブジェクトシステムにおいて、クライアントアプリケーションは、サ ーバアプリケーションに対してリクエスト(または“呼びかけ”もしくは“オブ ジェクトコール”)を送る。このリクエストは、特定のオブジェクトについて実 行すべきオペレーション、このオペレーションのためのパラメータ、前記オブジ ェクトのオブジェクト参照、および、リクエストの成功または失敗についてのエ ラー情報(または“例外情報”)を返すためのメカニズムを含んでいる。サーバ アプリケーションは、前記リクエストを受け取り、サーバ“処理系”を介して前 記リクエストを実行する。前記処理系は、特定のオブジェクトについてのオペレ ーションを要求するクライアントのリクエストに答える。前記処理系は、サーバ アプリケーションにおいてその実行に関して要求された作業を実際に行うコード 部分である1つまたは複数のメソッドを含む。前記処理系による実行が成功した 場合、前記サーバアプリケーションは、必要に応じて、クライアントに対して回 答を送る。前記サーバアプリケーションは、例外情報を返すこともある。 分散型オブジェクトシステムを標準化するために、コンピュータソフトウエア 会社の協会であるオブジェクト管理グループ(“OMG”:Object Management Group)は、“CORBA”(Common Object Request Broker Architecture)を 提案した。CORBA基準の下では、オブジェクトリクエストブローカ(“OR B”)は、そのシステムにおけるすべてのオブジェクトのために、サーバに対し てリクエストを送り、クライアントに回答を送る通信ハブを提供する。市販のO RBは従来より知られており、一般的なタイプとしては、IBMのSystem Objec tModel(“SOM”)がある。クライアント側のORBは、メソッドの呼出し( コール)、ならびに、これに関連したサーバおよびメソッドの選択を要求するリ クエストを取り扱う。アプリケーションが、前記ORBに対して、1つのオブジ ェクトについて実行すべきメソッドを要求するリクエストを送ると、前記ORB では、該リクエストに含まれる引数をそのオブジェクトのインターフェイスに対 して検査し、該リクエストをサーバに送り、必要な場合それを開始する。サーバ 側のORBは、前記リクエスト中の情報を使用して、該リクエストを満足させる 最良の処理系を決定する。前記リクエスト中の情報には、前記クライアントが要 求しているオペレーション、該オペレーションがどのオブジェクトについて実行 されるかについての情報、さらに、前記リクエストについて格納されている付加 情報が含まれる。さらに、前記サーバ側のORBは、各リクエストおよびその引 数を検査する。さらに、該ORBは、前記クライアントに回答を送る機能も果た す。 クライアントアプリケーションおよびサーバアプリケーションは、共に、オブ ジェクトおよびこれらのオブジェクトについて実行可能なオペレーションを含む 利用可能なインターフェイスについての情報を有する必要がある。インターフェ イス定義の共用化を容易にするために、前記OMGは、インターフェイス定義言 語(“IDL”)を提案した。該IDLは、オブジェクトのインターフェイス、 すなわち、該オブジェクトについて実行可能なオペレーションを含む該オブジェ クトの特徴および作用を記述するために使用される定義言語である(プログラミ ング言語ではない)。 IDLインターフェイスは、クライアントがオブジェクトについて呼出し可能 な1組のオペレーションを定義する。インターフェイスは、IDLオペレーショ ンの実行が成功しなかったことを示す1つまたは複数の例外を宣言することがで きる。オペレーションは、パラメータを受け取り、返却値を返すことができる。 オペレーションのための各パラメータは、その値がクライアントからサーバに送 られるものか(すなわち、“イン(in)”なのか)、サーバからクライアントに 送られるものか(すなわち、“アウト(out)”なのか)、また、これら両方向 (“インアウト(inout)”)なのかを示す“方向”を有することができる。さ らに、前記パラメータは、該パラメータが取り得る値を制限するデータ型を有す る。さらに、前記オペレーションは、特定のオペレーションの呼出しのためにど の呼出し意味構造(semantics)が通信サービスによって提供されなければなら ないかを明示する“一方向”属性を任意に有していてよい。クライアントが一方 向属性を有するオペレーションを呼び出す場合、前記呼出し意味構造は、前記オ ペレーションがサーバによってわずかに1回だけ実行されることを示す“最良努 力”である。前記オペレーションを実行する試みが失敗した場合、前記サーバは 、前記オ ペレーションの実行を再び試みない。一方向属性を有するオペレーションは、空 (ボイド)返却の種類を明示しなければならず、出力パラメータを含んでいては ならない。 IDLオペレーションパラメータの受入れ値、例外および返却値を記述するた めに、データ型が使用される。IDLは、2種類のデータ型、すなわち、基本型 および混成型をサポートする。前記基本型は、short整数型、long整数型、longl ong整数型、符号なしのlong整数型、符号なしのshort整数型、浮動小数点(floa ting point)型、double型、文字(character)型、論理(boolean)型およびオ クテット(octet)型を含む。また、前記混成型は、列挙(enum)型、文字列(s tring)型、構造体(struct)型、アレイ型、共用体(union)型、シーケンス型 および“任意(any)”型を含む。前記構造体(struct)型は、C構造に類似し ており、インターフェイス設計者が1つまたは複数の型定義を使用して混成デー タ型を作成することを可能にする。前記シーケンス型は、インターフェイス設計 者が可変サイズのオブジェクトアレイを送ることを可能にする。前記“任意(an y)”型は、基本型であるかまたは混成型であるかを問わず、考えられる任意の データ型を表すことができる。 IDLは、OMG(“CORBA”)のRevision2.0仕様を実行する分散型 オブジェクトシステムに使用されるよう設計されている。前記CORBA仕様を 実行する典型的なシステムにおいて、インターフェイス定義は、IDL定義ソー スファイル(“翻訳単位”としても知られている)に書かれている。前記ソース ファイルは、クライアントスタブファイル、サーバスタブファイルおよびヘッダ ファイルを含むプログラミング言語別ファイルを生成するIDLコンパイラによ ってコンパイルされる。前記クライアントスタブファイルは、ある1つのオブジ ェクトタイプに関するIDLオペレーション定義の手続きルーチンへの、各言語 別の対応づけ(マッピング)であり、各オペレーション毎に1つ設けられる。あ る言語に固有のコンパイラによってコンパイルされ、クライアントアプリケーシ ョンにリンクされる場合、スタブルーチンは、リクエストを呼び出すために、前 記クライアントアプリケーションによって呼び出されることができる。同様に、 前記サーバスタブファイルは、ある1つのオブジェクトタイプに関するIDLオ ペレーション定義(インターフェイスによる定義)の手続きルーチンへの、各言 語別の対応づけである。コンパイルされ、サーバアプリケーションにリンクされ る場合、前記サーバアプリケーションは、対応するリクエストが到着した時にこ れらのルーチンを呼び出すことができる。前記ヘッダファイルは、コンパイルさ れ、クライアントアプリケーションおよびサーバアプリケーションにリンクされ 、共通のデータ型を定義するために使用される。 ある1つのアプリケーション内における厳密なLDL定義されたオペレーショ ンを使用する上での問題点は、これらのオペレーションを汎用関数に使用できな いことである。前記汎用関数とは、異種のプラットフォーム間にわたって使用可 能な関数であり、従って、これらの異種のプラットフォーム間にわたるコードの 再使用を促進できるものである。しかし、従来にあっては、特定のインターフェ イスに含まれるオペレーションにアクセスするために、各アプリケーションは、 特定のクライアントスタブ関数を呼び出さなければならない。インターフェイス には追加的なオペレーションが付加されるので、新たなスタブ関数が発生されな ければならない。このため、アプリケーションは時間経過に伴ってますます複雑 になる可能性がある。 LDL定義されたオペレーションを使用する上での他の問題点は、互換性を判 定するためにインターフェイスの比較をすることができないことである。サーバ がインターフェイスおよびそれに関連するオペレーションを用意できないという 理由で、リクエストされたサービスを提供できないことがある。しかし、前記サ ーバは、同様なオペレーションを提供する互換性のあるインターフェイスを有す ることがある。現在のところ、インターフェイスおよび/またはオペレーション の互換性を判定するための方法は存在しない。 従って、LDL定義されたインターフェイス、オペレーションおよびパラメー タを汎用関数に使用する必要がある。 さらに、LDL定義されたインターフェイス、オペレーションおよびデータ型 の比較を容易にする必要がある。 発明の要旨 この発明は、LDL定義されたインターフェイス、オペレーションおよびデー タ型を汎用関数に使用する要求を満足させることのできる方法、システムおよび コンピュータプログラム製品を提供するものである。さらに、この発明の方法は 、LDL定義されたインターフェイス、オペレーションおよびパラメータの比較 を容易にする要求を満足させる。この方法は、前記インターフェイス、オペレー ションまたはパラメータを示す新たなASCII文字列記述子を生成するステッ プを含む。より詳しくは、パラメータの基本型を示すために文字が使用され、混 成型パラメータおよびこれらの混成型パラメータの特性を示すために文字と数字 との組合わせが使用される。オペレーションの場合、該オペレーションに含まれ るパラメータの数および種類、例外の数およびコンテキストの数を示すために、 文字と数字とが使用される。インターフェースは、該インターフェースに含まれ るオペレーションの数を示す数字を使用して記述される。 オリジナルのIDL記述をASCII文字列に変換することによって、オブジ ェクト呼出しを異種のシステム間で移送するための汎用関数を作成することがで きる。さらに、コードジェネレータは、複雑なデータ構造体のリンクの代りに、 単に、インターフェースを詳しく記述する文字列を発生することができる。さら に、この発明の方法を用いて、個々のオペレーションおよびデータ型を容易に記 述することができる。 この発明に係るデータ型、オペレーションおよびインターフェースを記述する ための方法、ならびに、その利点および目的は、添付図面を参照して以下に述べ るこの発明の詳細な説明によって、より完全に理解されるであろう。 図面の簡単な説明 図1は、この発明の方法を使用したクライアント/サーバシステムを示す図、 図2Aおよび図2Bは、共通実行環境(CEE)カプセルの異なる構成を示す 図、 図3は、CEEカプセルおよびそのコア要素を示す図、 図4は、IDLソースファイルのコンパイル処理を示す図、 図5は、基本データ型および混成データ型のためのCIN記述子の生成を記述 するフローチャート、 図6は、オペレーションのためのCIN記述子の生成を記述するフローチャー ト、 図7は、インターフェイスのためのCIN記述子の生成を記述するフローチャ ート。 好適な実施の形態の詳細な説明 以下、添付図面に示した例を参照して、この発明の好適な実施の形態を詳細に 説明する。添付図面において、同一または類似した構成要素には同一の参照番号 が付されている。 I.システムの概要 図1に示すように、この発明の方法は、分散型(クライアント/サーバ)コン ピューティング環境10に使用されるよう設計されている。該クライアント/サ ーバシステムは、インターネット接続部またはローカルエリアネットワーク接続 部のようなネットワーク接続部12によって接続されている。サーバコンピュー タ11は、バスまたはI/Oチャンネル20を介して、ディスク記憧サブシステ ム13と通信する。サーバシステム11は、CPU15と、プログラムの実行に ついての現在の状態情報を格納するためのメモリ17とを具備している。該メモ リ17の一部は、クライアントコンピュータ上で現在実行されているプログラム の各関数に関連した状態および変数を格納するために専用される。同様に、クラ イアントコンピュータ21は、CPU27とこれに関連するメモリ23と、キー ボード29またはマウス31のような入力装置29と、ビデオ表示端末(“VD T”)のような表示装置33とを具備している。該クライアントのCPUは、バ スまたはI/Oチャンネル40を介してディスク記憶サブシステム33と通信し 、また、I/Oチャンネル41を介してキーボード29、VDT33およびマウ ス31と通信する。両前記コンピュータは、フロッピーディスクやCD−ROM を含む各種の記録媒体を読取り可能である。 前記クライアントメモリ27には、クライアントアプリケーション77および クライアントスタブ79がロードされている。同様に、前記サーバメモリ17に は、サーバアプリケーション87およびサーバスタブ89がロードされている。 さらに、前記クライアントメモリおよびサーバメモリは、共に、実行環境(“C EE”)75,85を含んでいる(後述)。 図1に示すクライアント/サーバモデルは、単に、典型的なクライアント/サ ーバシステムを例示するものである。この発明によると、前記クライアントは、 あるオブジェクトについてオペレーションが実行されるべきことをリクエストす るアプリケーションであり、前記サーバは、前記オブジェクトについて前記オペ レーションを実行するアプリケーションである。実際上、前記クライアントアプ リケーションおよびサーバアプリケーションは、後述のように、同一のコンピュ ータおよび共通のカプセル内に備えられていてよい。しかし、ほとんどの場合、 前記クライアントアプリケーションおよびサーバアプリケーションは、異なるオ ペレーティングシステムを使用する異なるコンピュータに備えられることになる 。以下、この発明の方法を、異なるマシーン上で動作する2つのカプセルについ て説明する。 II.分散型コンピューティング環境 この発明の方法および装置は、任意の分散型コンピューティング環境内で利用 可能である。好ましい実施の形態において、タンデム・メッセージ・スイッチン グ・ファシリティ(Tandem Message Switching FaCility)(“MSF”)・ア ーキテクチャ(Architecture)の一要素である共通実行環境(“CEE”)75 ,85が使用される。前記CEEは、オブジェクトを起動したり可動停止したり するものであり、CEEカプセルにロードされたクライアントアプリケーション とサーバアプリケーションとの間でメッセージのやり取りするために使用される 。該CEEは、1つのマシーンのメモリに格納されてよい。しかし、該CEE、 クライアントアプリケーションおよびサーバアプリケーションは、図1に示すよ うに、ネットワーク上の多数のマシーンにロードされてもよい。クライアント側 のCEE75は、クライアントメモリ23に格納されている。また、サーバ側の CEE85は、サーバメモリ17に格納されている。 前記共通実行環境(“CEE”)は、“カプセル”下部構造を使用する。該カ プセルは、メモリスペースおよび1つまたは複数の実行ストリームを封入するも のである。カプセルは、異なるシステムでは、当該システムによって使用される オペレーティングシステムに応じて、異なる態様で実現されてよい。例えば、あ るシステムでは、前記カプセルはプロセスとして実現される。また、他のシステ ムでは、前記カプセルはスレッド(thread)として実現される。さらに、クライ アントアプリケーションおよびサーバアプリケーションは、図1に示すように異 なるマシーンに含まれる異なるカプセル内に構成されてもよい。代案として、異 なるカプセルが図2のように構成されてもよい。図2Aは1つのカプセル81に ロードされたクライアントアプリケーション77を示し、この場合、サーバアプ リケーション87は別のカプセル85にされてよい。しかし、これら2つのアプ リケーションは、同一のマシーン21に格納されている。また、図2Bに示すよ うに、前記クライアントアプリケーションおよびサーバアプリケーションは、共 に、同一のマシーン21上の1つのカプセル81内にロードされてもよい。上述 のように、ここでは、多数のカプセル、多数のマシーンを使用する例についてこ の発明の方法を説明する。従って、クライアントマシーン12およびサーバマシ ーン11は、それぞれのメモリにロードされたクライアント側CEE75および サーバ側CEE85を備えている。 図3は、例えば、クライアントコンピュータメモリ27(ここでは図示せず) に格納されたCEEカプセル70を示すものであり、該CEEカプセル70は、 CEE75、ならびに、コアCEE要素および処理系ライブラリ71内に含まれ るオブジェクトの処理系のうちのいくつかを含むものである。前記処理系ライブ ラリ71は、後述のように、オブジェクトインターフェイスのIDL仕様書から 生成されたクライアントアプリケーション79(サーバカプセルの場合、サーバ アプリケーション)およびクライアントスタブ77(またはサーバスタブ)を含 んでいる。前記処理系ライブラリ71およびCEE75は、該CEEによって供 給される動的アクセス可能なルーチンのダウンコーリングおよび前記処理系ライ ブラリに含まれるルーチンのアップコーリングによって、相互作用する。また、 前記CEE75は、同じマシーン内の他のカプセルからのオブジェクト呼出し8 2、および、他のCEEからのリクエスト84を受け取ることができる。前記ク ライアント側CEE75およびサーバ側CEE85は、任意の既知のネットワー クプロトコルを使用して通信することができる。 CEEカプセルで実現されるオブジェクトは、構成オブジェクトまたは動的オ ブジェクトであってよい。構成オブジェクトの処理系の詳細は、(MSF Warehous e85のような)格納部または初期化スクリプトに格納されている。特定のオブジ ェクト参照に対するリクエストがあった場合、前記クライアント側CEE75で は、この構成データに基づいて適切なカプセルを始動する。前記カプセルは、こ の構成データを使用して、ロードすべき処理系ライブラリおよび呼び出すべきオ ブジェクト初期化ルーチンを決定する。そして、前記オブジェクト初期化ルーチ ンがそのオブジェクトを作成する。動的オブジェクトは、同一のカプセル内にお いて、動的に作成され、破棄される。該動的オブジェクトには、格納部に格納さ れたまたはスクリプト化された構成情報が無い。 III.IDLソースファイルのコンパイルおよびリンク 図4は、IDLソースファイルが、コンパイルされ、この発明の方法および装 置を使用するクライアントアプリケーションおよびサーバアプリケーションにリ ンクされる手順を示すものである。先ず、IDLインターフェイス定義を含むI DLソースファイル101が作成される。IDLコンパイラ103は、前記ID Lソースファイル101をコンパイルする。前記IDLコンパイラ103は、コ ード101を分析して中間ファイル105を生成し、コンパイル済みソースファ イルを格納する。コードジェネレータ112はPIFファイルを分析する。前記 コードジェネレータ112は、前記クライアントアプリケーションおよびサーバ アプリケーションの言語のファイルを生成する。前記クライアントアプリケーシ ョンとサーバアプリケーションとが異なる言語によるものである場合、異なるコ ードジェネレータ112が使用される。好ましくは、前記コードジェネレータ1 12およびIDLコンパイラ103は、1つのアプリケーションにおいて、言語 別コードを生成するために組み合わされる。前記コードジェネレータ112は、 クライアントスタブ関数を含むクライアントスタブファイル77と、オブジェク ト処理系についての定義を含むサーバスタブファイル87とを生成する。前記ク ライアントスタブ関数は、前記CEE75に対する同期呼出しおよび非同期呼出 しを含むものである。コンパイルされたクライアントスタブオブジェクトコード およびコンパイルされたサーバスタブオブジェクトコードを生成するために、前 記クライアントスタブファイル77およびサーバスタブファイル87は、プログ ラミング言語別のコンパイラ122,124によってコンパイルされる。同様に 、コンパイルされたクライアントアプリケーションオブジェクトコードおよびコ ンパイルされたサーバアプリケーションオジェクトコードを生成するために、ク ライアントアプリケーション79およびサーバアプリケーション89は、プログ ラミング言語別のコンパイラによってコンパイルされる。前記クライアントアプ リケーション79およびサーバアプリケーション89は、さらに、前記コードジ ェネレータ112によって生成される共通の定義、宣言を含むヘッダファイル1 19を含む。最後に、コンパイラ121は、前記クライアントアプリケーション オブジェクトコードとクライアントスタブオブジェクトコードとをリンクするこ とにより、処理系ライブラリ71を生成する。同様に、第2のコンパイラは、前 記サーバアプリケーションオブジェクトコードとサーバスタブオブジェクトコー ドとをリンクすることにより、他の処理系ライブラリ81を生成する。 前記コードジェネレータ112は、Compact IDL Notation(“CIN”)を生 成し、前記ヘッダファイル119に入れる。詳しくは、前記コードジェネレータ 112は、コンパイルされたインターフェイス、オペレーションおよびオペレー ションパラメータのすべてを調べ、(通常、前記インターフェイスの名前である )識別子および(例えばC++の#defineマクロを使用して)前記ヘッダファイ ルの識別子の代りとなる文字シーケンスを定義する。コードジェネレータ112 がソースファイルを各行ごとに解析するのに伴い、該コードジェネレータ112 は、前記文字シーケンスを、該コードジェネレータ112を含むコンピュータの メモリに格納する。前記ソースファイルの全部が解析されると、前記コードジェ ネレータ112は、前記クライアントアプリケーションおよびサーバアプリケー ションに含むべき前記ヘッダファイルのASCII記述子を生成する。後述のよ うに、前記ASCII記述子の文字シーケンスは、前記コードジェネレータに知 られた所定の定義に基づいて生成される。 1つのIDLソースファイルは、1つまたは複数のインターフェース定義およ びデータ型定義(“typedefs”)を含む。前記インターフェースの本体は、いく つかの宣言を含む。タイプ宣言は、前記インターフェースが移出する型定義を明 示する。例外宣言は、前記インターフェースによって移出される例外構造を明示 する。属性宣言は、前記インターフェースによって移出される関連属性を明示す る。オペレーション宣言は、前記インターフェースが移出するオペレーション、 ならびに、各オペレーションの名前、リターンデータ型、パラメータの種類およ び例外を含むフォーマットを明示する。好ましい実施の形態において、この発明 の方法は、ソースファイルに含まれるインターフェース定義、オペレーション定 義および個々のデータ型定義を記述するために利用される。しかし、この発明の 方法は、一定の定義、例外定義およびモジュール定義(インターフェース集合の 定義)を記述するために利用される。 IV.Compact IDL Notationの生成 図5は、IDLソースファイルに含まれるIDLデータ型、オペレーションお よびインターフェースからのCIN記述子生成を示すフローチャートである。な お、図5〜図7のステップは、メモリに格納されたコンピュータ命令を実行する データ処理システムのCPUによって実行されるものである。ステップ101に おいて、前記コードジェネレータ112は、前記IDLソースファイルの最初の 行から開始し、該IDLソースファイルに記述されたデータ構造体、インターフ ェースまたはオペレーションを確認する。前記記述されたデータ構造体がインタ ーフェースである場合、前記コードジェネレータ112は、図7に示された方向 に従って処理する。前記記述されたデータ構造体がインターフェース内のオペレ ーションである場合、前記コードジェネレータ112は、図6に示された方向に 従って処理する。前記記述されたデータ構造体がデータ型(または、後述するよ うなオペレーションのためのパラメータ)である場合、前記ジェネレータは、定 義テーブルに基づいて1つの文字を生成する。なお、ここに含まれるチャートに 示したもの以外の文字が使用されてもよい。各チャートは、好ましいASCII 文字のみを含んでいる。チャートAは、様々なIDL基本型を示すために使用さ れる文字列を含む好ましい定義テーブルを示すものである。 チャートA このチャートAに示すように、CIN記述子における基本型を表現するために簡 単な文字列が使用される。 データ型がアレイまたは構造体(構造体型)のような混成型である場合、一連 の異なるステップが行われる。ステップ111では、前記混成型のスタートを示 す文字が生成される。チャートBは、様々なIDL混成型のスタートを示すため に使用される文字列を含むサンプルテーブルを示す。 チャートB 各混成型の具体的な表現は、その型に応じて異なる方法で取り扱われる。 IDLは、各基本型ごとに多次元で固定サイズのアレイを定義する。前記アレ イのサイズは、コンパイル時に決定される。アレイはCINにより次のように表 現される。 a nr_dimensions Size_1.[Size_2,...size_n]base type 前記アレイのための文字の生成は、ステップ113,115,117に示されて いる。このアレイ表現において、上記文字aは(チャートBに示すように)前記 アレイのスタートを示している。文字nr_dimensionsは、該アレイにおける次元 の数を示す数字である。また、文字size_1,Size_2,size_nは、それぞれ、前記 アレイの一次元、二次元およびn次元におけるサイズを示す。base-typeは、前 記アレイの各アレイ要素ごとの記述子である。様々な基本型の表現は、チャート Aに示されたオリジナルの基本型テーブルから導出される。 IDLは、ユーザによって定義された構造体型を定義する。各構造体は、基本 データ型または混成データ型の1つまたは複数のフィールドで構成される。構造 体はCINにより次のように表現される。 b nr_fields field_1[field_2...field_n] 1つの構造体を記述する文字の生成は、ステップ119およびステップ121に 示されている。チャートBに示すように、上記文字bは前記構造体のスタートを 示している。数字nr_fieldsは、前記構造体におけるフィールドの数を示す。前 記構造体におけるフィールドは、field_1,field_2,field_nによって記述され る。各フィールドは基本型または混成型である。前記構造体の基本型フィールド は、チャートAに示されているように記述される。混成型はここに示されている ように記述される(すなわち、アレイは、次元の数および各次元のサイズ、スタ ート文字等で記述される)。 IDLは、データ型のシーケンスを定義する。1つのシーケンスは、2つの特 性、すなわち、(コンパイル時に決定される)最大サイズと(実行時に決定され る)長さとを有する1次元のアレイである。シーケンスは次のように表現される 。 c nr-occurrences base_type 前記シーケンスのための文字の生成は、ステップ123,125に示されている 。この表現において、上記文字cは、チャートBに示すように、前記シーケンス のスタートを示している。文字nr_occurrencesは、該シーケンスにデータ型の出 現回数を示す。該出現回数の後には、前記シーケンスにおけるデータ型出現ごと の実際の記述子base_typeが続く。データ型が基本型である場合、チャートAの 適当な記述子が使用される。前記シーケンスが混成型である場合、記述子はここ に説明されているように作成される。シーケンスのシーケンスも可能である。 IDLは、空(null)文字を除くすべての8ビットの量(quantity)で構成さ れる文字列型を定義する。1つの文字列は、charのシーケンスに類似している。 文字列はCINにより次のように表現される。 d size 文字列のスタートは文字dで示される。該文字列のサイズは、ステップ127で 生成される文字sizeによって示される。 IDLにおいて、共用体(union)は、Cプログラミング言語の“共用体”と C“switch”文との間の交配体である。換言すれば、共用体シンタクスは、共用 体ブランチを示す“case”ラベル(ケース・ラベル)と共に“switch”文を含む ものである。IDL共用体は区別されなければならない。すなわち、共用体のヘ ッダは、現在の呼出しインスタンスにどの共用体要素を使用すべきかを決定する 型別タグフィールドを指定しなければならない。共用体および共用体ブランチは 、 CINにより次のように表現される。 e nr_fields flabel_1 field_1[f label_2 field_2...label_n field_n] 共用体および共用体ブランチを示す文字の生成は、ステップ129,131,1 33,135に示されている。この表現において、eは共用体のスタートを示し 、fは該共用体内の共用体ブランチのスタートを示す。該共用体におけるフィー ルドの数は、文字nr_fieldsによって明示される。各フィールドのcaseラベル値 は、文字label_1によって示される。フィールドがデフォルトである場合、前記 ラベルは省略される。次に、各フィールドごとの記述子field_1がくる。前記共 用体のフィールドは、基本型または混成型のいずれであってもよい。従って、基 本型のフィールド記述子は、チャートAに基づいて生成されてよい。混成型はこ こに説明されているように生成される。 基本型および混成型の記述から分かるように、CIN記述は前記オリジナルの IDLソースファイルに含まれる識別子を含まず、汎用関数が生成される。従っ て、最も複雑なデータ構造であっても、文字列フォーマットで容易に表現され得 る。下記のものは元々IDLで記述されたサンプル構造体である。 この発明の方法を使用することにより、上記のデータ構造はCINにより次の ように表現される。 “c100+e2+f0+b2+FFf1+b2+KK” 好ましい実施の形態において、正の数字の後には正符号(“+”)が付けられて おり、負の数字の後には負符号(“−”)が付けられている。負の数は頻繁には 現れないが、負の数の使用は、例えば共用体のcaseラベルのようなデータ型に必 要となる(すなわち、case識別子は負の数であることがある)。上に示したCI N記述子について以下に説明する。データ構造は最大の100固の要素(100 +)を有する1つのシーケンス(c)で構成され、各前記要素は2個のフィール ド(2+)を有する1つの共用体(e)で構成されている。識別子がゼロ(偽) (f0+)である場合、1つの変形体は2個のフィールド(2)を含む構造体( b)である。1番目のフィールドは符号付きのlong(F)である。2番目のフィ ールドは符号付きのlong(F)である。識別子が1(真)(f1+)である場合 、第2の変形体は2個のフィールド(2+)を含む構造体(b)である。1番目 のフィールドは符号無しのlong(K)である。2番目のフィールドは符号無しの long(K)である。 オペレーションをCINで記述する場合、前記方法はステップ151に進む。 図6は、オペレーションのための記述子を生成するためのステップを示すフロー チャートである。オペレーション記述子は、CINにより次のように生成される 。 ステップ151において、前記コードジェネレータは、前記オペレーションの記 述子の残部を構成する文字列から導出されるユニークな整数operation_synopsis を生成する。該整数は、前記CIN記述子における残りの文字について例えば巡 回冗長検査を実行することによって導出される。次に、前記コードジェネレータ は、前記オペレーションの本来のIDL名から導出されるユニークな文字列oper ation_idを生成する。次に、ステップ155において、前記コードジェネレータ は、前記オペレーションの属性(無しまたは“一方向”)を示す文字であるoper ation_attributeを生成する。例えば、前記オペレーションが一方向属性を有さ ない場合、文字Aが生成される。しかし、前記オペレーションが一方向で ある場合、前記コードジェネレータは文字Bを生成する。文字nr_paramsは、前 記オペレーション中にいくつのパラメータが含まれるかを示す整数である。前記 オペレーションが非空き(non-void)リターン型を有する場合、1番目のパラメ ータがその結果である。param_1記述子は、その後に実際のパラメータデータ型 が続くことになる前記パラメータの方向(in、out、inoutまたは関数結果)を示 す文字を含む。例えば、前記コードジェネレータは、in、out、inoutおよび関数 結果の方向について、それぞれ、文字A,B,CおよびDを生成する。これら特 定のパラメータについて、図5のステップ107にリターンする。各パラメータ のデータ型が記述されたとき、例外の数が整数nr_exceptionsによって示される 。そして、ステップ119にリターンすることによって、各例外の構造記述がな される。整数nr_contextsは、前記オペレーションによって保持されるコンテキ スト名の数を示す。これらのコンテキスト名は、文字列context_1,context_2, context_nで生成される。 次のものは元々IDLで記述された2つのサンプルオペレーションである。 この発明の方法を使用することによって、上記AddオペレーションはCINに より次のように表現される。 126861413+3+ADDA3+DFAFAF0+0+ 前記オペレーションのCIN記述子は次のように説明される。最初の数字(12 6861413)は、文字列“3+ADDA3+DFAFAF0+0+”について巡回冗長検査を実行する ことによって、前記CINの残部から導出される。オペレーションidは3つの 文字(3+)を含む。これらの3つの文字は、オペレーションidとしての文字 列“ADD”である。すべてのIDL識別子は、固有のものであり、caseとは独立 でなければならない。従って、オペレーションidは大文字とされる。前記オペ レーションは、一方向性属性(A)を含まず、3つの“パラメータ”(3+)を 含む。前記関数が結果を返すので、実際上、最初の“パラメータ”が関数結果( D)で ある。前記関数結果は符号付きのlong(F)である。次のパラメータ(実際上、 最初のパラメータ)はinパラメータ(A)である。該パラメータは、型分類され た符号付きのlong(F)のパラメータである。3番目のパラメータは、型分類さ れた符号付きのlong(F)のinパラメータである。例外およびコンテキストは存 在しない(0+)。 同様に、上記SubtractオペレーションはCIN記述子により次のように表現さ れる。 453399302-9+SUBTRACTA3+DFAF0+0+ インターフェイスも、この発明の方法を使用することによって同様に記述され る。図7はインターフェイス記述子の生成を示す。インターフェイスは次のよう に定義される。 nr_operations operation_spec_1 operation_spec_2 operation_spec_n 整数nr_operationsは、該インターフェイスに含まれるオペレーションの数を示 す。各オペレーションは、オペレーション記述子を生成するための上記方法に従 って、operation_spec_1,operation_spec_2,operation-spec_nで記述される。 こうして、前記コードジェネレータ112は、図6のステップ151に進み、各 オペレーションを記述する。 この発明の方法を使用することによって、上記AddオペレーションはCINに より次のように表現される。 2+126861413+3+ADDA3+DFAFAF0+0+453399302-9+SUBTRACTA3+DFAF0+0+ 前記インターフェイスは2つのオペレーション(2+)を含む。上記Addオペ レーションおよびSubtractオペレーションのオペレーション記述子は、オペレー ションの数を示す文字の次にくる。 上述の如く、CIN記述子は、クライアントアプリケーションおよびサーバア プリケーションの両方にリンクされるヘッダファイルに含まれる。こうして、ク ライアントおよびサーバの両方は、各々が適当と考える記述子を利用することが できる。前記CINは様々な形態で使用可能である。例えばデータ型のCIN記 述子は、構造化されたデータ型をパックしたりアンパックしたりするための汎用 関数を作成するのに有用であろう。 さらに、CIN記述子は、迅速にインターフェイスを比較するためにも使用可 能である。例えば、サーバアプリケーションは、CINで記述された2つのイン ターフェイスを含むヘッダファイルを有してもよい。この場合、該サーバアプリ ケーションは、既知の文字列比較関数を使用してASCII文字列記述子を比較 することができる。CIN記述が同一である(または類似している)場合、サー バは、サーバアプリケーションにおいて共通の方法を使用して両インターフェイ スのオペレーションを実行することができる。こうして、上記CINを使用して 、異なる(しかし類似している)インターフェイスのための多数の時間コード化 方法をセーブすることができる。 以上、インターフェース定義言語で定義されたデータ型、オペレーションおよ びインターフェイスを記述するための方法の好ましい実施の形態を説明してきた が、この発明の範囲および精神を逸脱することなく、様々な変更がなされてもよ い。

Claims (1)

  1. 【特許請求の範囲】 1. ソースファイルに含まれるインターフェース定義言語で定義されたデータ 型を記述するための方法であって、メモリを有するデータ処理システムによって 実行されるものであり、 前記ソースファイルを読み出すステップと、 前記データ型を示す文字列記述子を前記メモリ内に生成するステップと を具備した方法。 2. 前記データ型が基本型である場合、前記文字列記述子を前記メモリ内に生 成するステップが前記基本型を示す文字を生成するステップを含む請求の範囲第 1項に記載のインターフェース定義言語で定義されたデータ型を記述するための 方法。 3. 前記データ型がその各々が基本型要素を含むn次元のアレイである場合、 前記文字列記述子を前記メモリ内に生成するステップが、 前記アレイのスタートを示す文字を生成するステップと、 前記アレイにおける次元の数を示す数字を生成するステップと、 前記アレイの各前記次元におけるサイズを示す数字と、 前記アレイにおける各要素ごとの基本型を示す文字を生成するステップと を具備する請求の範囲第1項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 4. 前記データ型がr個のフィールドを有する構造体である場合、前記データ 型を示す文字列記述子を生成するステップが、 前記構造体のスタートを示す文字を生成するステップと、 前記構造体におけるフィールドの数を示す数字を生成するステップと、 前記構造体の各前記フィールドのデータ型を示すr個の記述子を生成するステ ップと を具備する請求の範囲第1項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 5. 前記データ型がy個のフィールドを有する共用体である場合、前記データ 型を示す文字列記述子を生成するステップが、 前記共用体のスタートを示す文字を生成するステップと、 前記共用体のブランチのスタートを示す文字を生成するステップと、 前記共用体におけるフィールドの数を示す数字を生成するステップと、 各前記フィールドのケース・ラベル値を示すy個の数字を生成するステップと 、 各前記フィールドのデータ型を示すy個の記述子を生成するステップと を具備する請求の範囲第1項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 6. 前記データ型がシーケンスである場合、前記データ型を示す文字列記述子 を生成するステップが、 前記シーケンスのスタートを示す文字を生成するステップと、 前記シーケンスにおけるデータ型の出現回数を示す数字を生成するステップと 、 前記シーケンスにおける各前記出現ごとの記述子を生成するステップと を具備する請求の範囲第1項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 7. 前記データ型が文字列である場合、前記データ型を示す文字列記述子を生 成するステップが、 前記文字列を示す文字を生成するステップと、 前記文字列における文字の数を示す数字を生成するステップと を具備する請求の範囲第1項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 8. ソースファイルに含まれるインターフェース定義言語で定義されたオペレ ーションを記述するための方法であって、メモリを有するデータ処理システムに よって実行されるものであり、 前記ソースファイルを読み出すステップと、 前記オペレーションを示す文字列記述子を前記メモリ内に生成するステップと を具備した方法。 9. インターフェース定義言語で定義されたオペレーションを記述するための 方法であって、オペレーションを示す文字列記述子を生成するステップが、 前記オペレーションをユニークな形態で識別する文字を生成するステップと、 前記オペレーションの名前から派生する文字列を生成するステップと、 前記オペレーションの属性を示す文字を生成するステップと、 前記オペレーションにおけるパラメータの数を示す数字を生成するステップと 、 前記オペレーションにおける各パラメータの方向を文字を生成するステップと 、 前記オペレーションのための各パラメータのデータ型を示すパラメータ記述子 を生成するステップと、 前記オペレーションによって発生され得る例外の数を示す整数を生成するステ ップと、 前記オペレーションによって発生され得る各例外の構造を示す記述子を生成す るステップと、 前記オペレーションに含まれるコンテキスト名の数を示す数字を生成するステ ップと、 前記オペレーションに含まれる各コンテキスト名を示す記述子を生成するステ ップと を具備する方法。 10. 前記オペレーションのためのパラメータのデータ型がインターフェース 定義言語基本型である場合、前記パラメータ記述子を生成するステップが前記基 本型を示す文字を生成するステップを具備する請求の範囲第9項に記載のインタ ーフェース定義言語で定義されたオペレーションを記述するための方法。 11. 前記オペレーションにおけるパラメータのデータ型がその各々が基本型 の要素を含むn次元のアレイである場合、前記パラメータ記述子を生成するステ ップが、 前記アレイのスタートを示す文字を生成するステップと、 前記アレイにおける次元の数を示す数字を生成するステップと、 前記アレイの各前記次元におけるサイズを示すn個の数字を生成するステップ と、 前記アレイにおける各要素ごとの基本型を示す文字を生成するステップと を具備する請求の範囲第9項に記載のインターフェース定義言語で定義されたオ ペレーションを記述するための方法。 12. 前記オペレーションにおけるパラメータのデータ型がr個のフィールド を有する構造体である場合、前記パラメータ記述子を生成するステップが、 前記構造体のスタートを示す文字を生成するステップと、 前記構造体におけるフィールドの数を示す数字を生成するステップと、 前記構造体の各前記フィールドのデータ型を示すr個のデータ型記述子を生成 するステップと を具備する請求の範囲第9項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 13. 前記オペレーションにおけるパラメータのデータ型がy個のフィールド を有する共用体である場合、前記パラメータのデータ型を示すパラメータ記述子 を生成するステップが、 前記共用体のスタートを示す文字を生成するステップと、 前記共用体のブランチのスタートを示す文字を生成するステップと、 前記共用体におけるフィールドの数を示す数字を生成するステップと、 各前記フィールドのcaseラベル値を示すy個の数字を生成するステップと、 各前記フィールドのデータ型を示すy個のデータ型記述子を生成するステップ と を具備する請求の範囲第9項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 14. 前記オペレーションにおけるパラメータのデータ型がシーケンスである 場合、前記パラメータ記述子を生成するステップが、 前記シーケンスのスタートを示す文字を生成するステップと、 前記シーケンスにおけるデータ型の出現回数を示す数字を生成するステップと 、 前記シーケンスにおける各前記出現ごとの出現記述子を生成するステップと を具備する請求の範囲第9項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 15. 前記オペレーションにおけるパラメータのデータ型が文字列である場合 、前記パラメータ記述子を生成するステップが、 前記文字列を示す文字を生成するステップと、 前記文字列における文字の数を示す数字を生成するステップと を具備する請求の範囲第9項に記載のインターフェース定義言語で定義されたデ ータ型を記述するための方法。 16. インターフェース定義言語記述に基づいてコンピュータのメモリに格納 されたインターフェースを記述するための方法であって、 前記インターフェースを示すインターフェース記述子を生成するステップと、 前記インターフェース記述子から識別子の名前を除去するステップと を具備した方法。 17. 前記インターフェース記述子を生成するステップが、 前記インターフェース内に含まれるオペレーションの数を示す数字を生成する ステップと、 各前記オペレーションを示すオペレーション記述子を生成するステップと を具備する請求の範囲第16項に記載のインターフェース定義言語で定義された インターフェースを記述するための方法。 18. 前記オペレーション記述を生成するステップが、 前記オペレーションをユニークな形態で識別する文字を生成するステップと、 前記オペレーションの名前から派生する文字列を生成するステップと、 前記オペレーションの属性を示す文字を生成するステップと、 前記オペレーションにおけるパラメータの数を示す数字を生成するステップと 、 前記オペレーションにおける各パラメータの方向を文字を生成するステップと 、 前記オペレーションのための各パラメータのデータ型を示すパラメータ記述子 を生成するステップと、 前記オペレーションによって発生され得る例外の数を示す整数を生成するステ ップと、 前記オペレーションによって発生され得る各例外の構造を示す記述子を生成す るステップと、 前記オペレーションに含まれるコンテキスト名の数を示す数字を生成するステ ップと、 前記オペレーションに含まれる各コンテキスト名を示す記述子を生成するステ ップと を具備する請求の範囲第17項に記載のインターフェース定義言語で定義された インターフェースを記述するための方法。 19. ソースファイルに含まれるインターフェース定義言語で定義されたデー タ型を記述する方法をマシーンに実行させるためのマシーンにより読み取り可能 な媒体であって、前記方法が、 前記ソースファイルを読み出すステップと、 前記データ型を示す文字列記述子を前記メモリ内に生成するステップと を具備した媒体。
JP10506110A 1996-07-11 1997-07-10 インターフェイス定義言語によって定義されたインターフェイス、オペレーションおよびデータ型を記述するための方法および装置 Pending JP2000515281A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/680,270 US6263485B1 (en) 1996-07-11 1996-07-11 Method and apparatus for describing an interface definition language-defined interface, operation, and data type
US08/680,270 1996-07-11
PCT/US1997/011891 WO1998002808A1 (en) 1996-07-11 1997-07-10 Method and apparatus for describing an interface definition language-defined interface, operation, and data type

Publications (1)

Publication Number Publication Date
JP2000515281A true JP2000515281A (ja) 2000-11-14

Family

ID=24730426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10506110A Pending JP2000515281A (ja) 1996-07-11 1997-07-10 インターフェイス定義言語によって定義されたインターフェイス、オペレーションおよびデータ型を記述するための方法および装置

Country Status (5)

Country Link
US (1) US6263485B1 (ja)
EP (1) EP0912933B1 (ja)
JP (1) JP2000515281A (ja)
DE (1) DE69727933T2 (ja)
WO (1) WO1998002808A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US6889360B1 (en) 1999-08-30 2005-05-03 International Business Machines Corporation Representing IMS transaction definitions as XML documents
US20010052110A1 (en) * 2000-02-14 2001-12-13 Julian Orbanes System and method for graphically programming operators
US7783720B1 (en) * 2000-04-21 2010-08-24 Oracle America, Inc. CORBA metadata gateway to telecommunications management network
US6546359B1 (en) 2000-04-24 2003-04-08 Sun Microsystems, Inc. Method and apparatus for multiplexing hardware performance indicators
US6647546B1 (en) 2000-05-03 2003-11-11 Sun Microsystems, Inc. Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code
US6802057B1 (en) 2000-05-03 2004-10-05 Sun Microsystems, Inc. Automatic generation of fortran 90 interfaces to fortran 77 code
US7130261B1 (en) 2000-05-31 2006-10-31 Siemens Communications, Inc. Hierarchical dependability for open distributed environments
US6986130B1 (en) 2000-07-28 2006-01-10 Sun Microsystems, Inc. Methods and apparatus for compiling computer programs using partial function inlining
US6910107B1 (en) 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
US9742614B2 (en) 2000-09-28 2017-08-22 Wellogix Technology Licensing, Llc Data-type definition driven dynamic business component instantiation and execution framework
US7406681B1 (en) 2000-10-12 2008-07-29 Sun Microsystems, Inc. Automatic conversion of source code from 32-bit to 64-bit
AU2003281513A1 (en) 2002-07-22 2004-02-09 Mba Polymers, Inc. Mediating electrostatic separations
US7089529B2 (en) * 2002-08-26 2006-08-08 International Business Machines Corporation System and method for creating reusable management instrumentation for IT resources
US20040078788A1 (en) * 2002-10-17 2004-04-22 Wong Candy Wai-See Metamodel for IDL to XML parsing and translation
US20050149990A1 (en) * 2004-01-06 2005-07-07 Fairhurst Jon A. Actuating selected Java Applets on a TV using a remote control
US7475391B2 (en) * 2004-10-07 2009-01-06 International Business Machines Corporation System and method for revealing remote object status in an integrated development environment
US20060090154A1 (en) * 2004-10-07 2006-04-27 International Business Machines Corp. System and method for contributing remote object content to an integrated development environment type-ahead
RU2402718C2 (ru) 2009-01-23 2010-10-27 Евгений Шойльевич Нудельман Способ подачи воздуха в окрасочную камеру для окраски жидкими лакокрасочными материалами (варианты) и вентиляционный агрегат для реализации способа (варианты)
US8914769B2 (en) * 2011-11-11 2014-12-16 Ricoh Production Print Solutions LLC Source code generation for interoperable clients and server interfaces
US9009736B2 (en) 2012-07-26 2015-04-14 Sap Se Function execution framework wrapper layer
US8656414B1 (en) 2012-07-26 2014-02-18 Sap Ag Function execution framework describe functionality
US9628351B2 (en) 2013-06-09 2017-04-18 Microsoft Technology Licensing, Llc Scalable variant configuration platform for online systems
US11741093B1 (en) 2021-07-21 2023-08-29 T-Mobile Usa, Inc. Intermediate communication layer to translate a request between a user of a database and the database
US11924711B1 (en) 2021-08-20 2024-03-05 T-Mobile Usa, Inc. Self-mapping listeners for location tracking in wireless personal area networks

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3886522A (en) 1974-02-28 1975-05-27 Burroughs Corp Vocabulary and error checking scheme for a character-serial digital data processor
US5664177A (en) 1988-04-13 1997-09-02 Digital Equipment Corporation Data processing system having a data structure with a single, simple primitive
EP0381645A3 (en) 1989-01-18 1992-08-05 International Business Machines Corporation System and method for communicating between a plurality of processors
US4941170A (en) 1989-03-20 1990-07-10 Tandem Computers Incorporated Facsimile transmissions system
US5247676A (en) 1989-06-29 1993-09-21 Digital Equipment Corporation RPC based computer system using transparent callback and associated method
US5551035A (en) 1989-06-30 1996-08-27 Lucent Technologies Inc. Method and apparatus for inter-object communication in an object-oriented program controlled system
US5893117A (en) 1990-08-17 1999-04-06 Texas Instruments Incorporated Time-stamped database transaction and version management system
US5204947A (en) 1990-10-31 1993-04-20 International Business Machines Corporation Application independent (open) hypermedia enablement services
US5481721A (en) 1991-07-17 1996-01-02 Next Computer, Inc. Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects
CA2077273C (en) * 1991-12-12 1996-12-03 Mike H. Conner Language neutral objects
US5860010A (en) 1992-03-12 1999-01-12 Bull S.A. Use of language with similar representation for programs and data in distributed data processing
US6209040B1 (en) 1992-10-09 2001-03-27 Microsoft Corporation Method and system for interfacing to a type library
JPH09502547A (ja) 1992-11-13 1997-03-11 マイクロソフト コーポレイション 遠隔手続き呼び出しのためのインターフェイスポインタをマーシャリングする方法及びシステム
US5838894A (en) 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
JP3365576B2 (ja) 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
WO1995004968A1 (en) 1993-08-03 1995-02-16 Forte Software, Inc. Flexible multi-platform partitioning for computer applications
GB9316948D0 (en) * 1993-08-14 1993-09-29 Ibm Programming aid for distributed computing systems
US5568639A (en) 1993-11-24 1996-10-22 Menai Corporation Method and apparatus for providing an object-oriented file structuring system on a computer
US5515508A (en) 1993-12-17 1996-05-07 Taligent, Inc. Client server system and method of operation including a dynamically configurable protocol stack
EP0668558B1 (en) 1994-01-14 2002-04-17 Sun Microsystems, Inc. Method and apparatus for automating the localization of a computer program
US5761511A (en) 1994-01-28 1998-06-02 Sun Microsystems, Inc. Method and apparatus for a type-safe framework for dynamically extensible objects
US5627979A (en) * 1994-07-18 1997-05-06 International Business Machines Corporation System and method for providing a graphical user interface for mapping and accessing objects in data stores
US5778228A (en) 1994-08-16 1998-07-07 International Business Machines Corporation Method and system for transferring remote procedure calls and responses over a network
US5732270A (en) 1994-09-15 1998-03-24 Visual Edge Software Limited System and method for providing interoperability among heterogeneous object systems
US5768564A (en) 1994-10-07 1998-06-16 Tandem Computers Incorporated Method and apparatus for translating source code from one high-level computer language to another
JPH08171482A (ja) 1994-10-29 1996-07-02 Mitsubishi Electric Corp プログラムのバージョン生成方式
US5642511A (en) * 1994-12-16 1997-06-24 International Business Machines Corporation System and method for providing a visual application builder framework
US5671416A (en) 1995-02-24 1997-09-23 Elson; David Apparatus and a method for searching and modifying source code of a computer program
US5732219A (en) 1995-03-17 1998-03-24 Vermeer Technologies, Inc. Computer system and computer-implemented process for remote editing of computer files
US5724503A (en) 1995-03-31 1998-03-03 Sun Microsystems, Inc. Method and apparatus for interpreting exceptions in a distributed object system
US5742762A (en) 1995-05-19 1998-04-21 Telogy Networks, Inc. Network management gateway
US5621885A (en) 1995-06-07 1997-04-15 Tandem Computers, Incorporated System and method for providing a fault tolerant computer program runtime support environment
US5761656A (en) 1995-06-26 1998-06-02 Netdynamics, Inc. Interaction between databases and graphical user interfaces
RU2115159C1 (ru) 1995-10-24 1998-07-10 Владимир Олегович Сафонов Способ и устройство для проверки использования полей записей во время компиляции
US5848273A (en) * 1995-10-27 1998-12-08 Unisys Corp. Method for generating OLE automation and IDL interfaces from metadata information
US5701490A (en) 1996-01-16 1997-12-23 Sun Microsystems, Inc. Method and apparatus for compiler symbol table organization with no lookup in semantic analysis
US5860072A (en) 1996-07-11 1999-01-12 Tandem Computers Incorporated Method and apparatus for transporting interface definition language-defined data structures between heterogeneous systems
US5897636A (en) 1996-07-11 1999-04-27 Tandem Corporation Incorporated Distributed object computer system with hierarchical name space versioning

Also Published As

Publication number Publication date
WO1998002808A1 (en) 1998-01-22
EP0912933A1 (en) 1999-05-06
US6263485B1 (en) 2001-07-17
DE69727933D1 (de) 2004-04-08
DE69727933T2 (de) 2005-01-05
EP0912933B1 (en) 2004-03-03

Similar Documents

Publication Publication Date Title
JP2000515281A (ja) インターフェイス定義言語によって定義されたインターフェイス、オペレーションおよびデータ型を記述するための方法および装置
EP0912934B1 (en) Method for transporting interface definition language-defined data structures between heterogeneous systems
US6230117B1 (en) System for automated interface generation for computer programs operating in different environments
US6385769B1 (en) Text based object oriented program code with a visual program builder and parser support for predetermined and not predetermined formats
US8332828B2 (en) System for translating diverse programming languages
US5459868A (en) Interpretive object-oriented facility which can access pre-compiled classes
Bolton Pure Corba
US7383255B2 (en) Common query runtime system and application programming interface
US5307499A (en) Interpretive object-oriented facility which can access pre-compiled classes
US6226692B1 (en) Method and system for constructing software components and systems as assemblies of independent parts
US8656372B2 (en) System for translating diverse programming languages
WO1998002810A9 (en) Method and apparatus for transporting interface definition language-defined data structures between heterogeneous systems
US8359570B2 (en) Adaptive scripting tool
US6877163B1 (en) Method and system for dynamic proxy classes
EP0735471A2 (en) Method and apparatus for interpreting exceptions in a distributed object system
US20050229189A1 (en) Inter-process communication using different programming languages
WO1998002813A1 (en) Object-oriented method and apparatus for information delivery
Fisher et al. Notes on typed object-oriented programming
US5943674A (en) Data structure representing an interface definition language source file
Fisher et al. The Development of Type Systems for Object‐Oriented Languages
Oberleitner et al. The Vienna Component Framework enabling composition across component models
US6308225B1 (en) Method for performing distributed object calls
WO1998002812A1 (en) Method and apparatus for performing distributed object calls using proxies and memory allocation
Aleksy et al. Implementing distributed systems with Java and CORBA
Mestanogullari et al. Type-level web APIs with servant: an exercise in domain-specific generic programming

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20040712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060607

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070710