JPH10105392A - 必要とされるサービスと供給されるサービスとを決定するためのオブジェクトインタフェース定義のフィルタリング - Google Patents
必要とされるサービスと供給されるサービスとを決定するためのオブジェクトインタフェース定義のフィルタリングInfo
- Publication number
- JPH10105392A JPH10105392A JP9193267A JP19326797A JPH10105392A JP H10105392 A JPH10105392 A JP H10105392A JP 9193267 A JP9193267 A JP 9193267A JP 19326797 A JP19326797 A JP 19326797A JP H10105392 A JPH10105392 A JP H10105392A
- Authority
- JP
- Japan
- Prior art keywords
- component
- socket
- interface
- determining
- plug
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/961—Operator interface with visual structure or function dictated by intended use
- Y10S715/965—Operator interface with visual structure or function dictated by intended use for process control and configuration
- Y10S715/966—Computer process, e.g. operation of computer
- Y10S715/967—Visual or iconic programming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/961—Operator interface with visual structure or function dictated by intended use
- Y10S715/965—Operator interface with visual structure or function dictated by intended use for process control and configuration
- Y10S715/966—Computer process, e.g. operation of computer
- Y10S715/968—Computer process, e.g. operation of computer interface for database querying and retrieval
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 オブジェクト指向システムにおいて、既存の
オブジェクトを再利用して開発効率を高めるため、現在
のオブジェクトにどのようなオブジェクトが接続可能
か、また、どのようなサービスが提供されるかを調べる
ことを支援する機構が必要となる。 【解決手段】 分散オブジェクトアプリケーションビル
ダ機構において、オブジェクトが必要とする情報と提供
できる情報を決定するために、オブジェクト定義がフィ
ルタリングされる。必要な情報は、プラグにより表現さ
れ、供給される情報は、ソケットにより表現される。ビ
ルダ中のそれぞれの部品(オブジェクトの実行時インス
タンスを表現する)は、分散オブジェクトプログラムを
決定するために、他の部品に相互接続されたプラグとソ
ケットをもつ。
オブジェクトを再利用して開発効率を高めるため、現在
のオブジェクトにどのようなオブジェクトが接続可能
か、また、どのようなサービスが提供されるかを調べる
ことを支援する機構が必要となる。 【解決手段】 分散オブジェクトアプリケーションビル
ダ機構において、オブジェクトが必要とする情報と提供
できる情報を決定するために、オブジェクト定義がフィ
ルタリングされる。必要な情報は、プラグにより表現さ
れ、供給される情報は、ソケットにより表現される。ビ
ルダ中のそれぞれの部品(オブジェクトの実行時インス
タンスを表現する)は、分散オブジェクトプログラムを
決定するために、他の部品に相互接続されたプラグとソ
ケットをもつ。
Description
【0001】
【発明の属する技術分野】本発明は、計算機システムに
おけるオブジェクト指向アプリケーションプログラムの
開発に関連している。より詳しくは、分散オブジェクト
システムにおけるオブジェクト指向アプリケーションプ
ログラムの開発を容易にするために、オブジェクトイン
タフェースの特徴を処理し、フィルタリングすることに
関連する。
おけるオブジェクト指向アプリケーションプログラムの
開発に関連している。より詳しくは、分散オブジェクト
システムにおけるオブジェクト指向アプリケーションプ
ログラムの開発を容易にするために、オブジェクトイン
タフェースの特徴を処理し、フィルタリングすることに
関連する。
【0002】
【従来の技術】オブジェクト指向システムの普及と重要
性の増加とともに、効率よく信頼性の高いアプリケーシ
ョンを開発することが重要になっている。特に、オブジ
ェクトが複雑で離れたロケーションにあるような分散オ
ブジェクトシステムにおいて、アプリケーション開発者
が、ローカルオブジェクトを実装する(implement)コ
ードを書くだけでなく、リモートオブジェクトを配置
し、そのリモートオブジェクトから得られる情報、ある
いは、そのオブジェクトに供給できる情報を決定するこ
とは、非常に時間のかかる仕事である。一般に、ソフト
ウエアコードの効率的コーディングと再利用における考
えは、分散オブジェクトシステムのためのアプリケーシ
ョンプログラムの開発に対しても適用できる。
性の増加とともに、効率よく信頼性の高いアプリケーシ
ョンを開発することが重要になっている。特に、オブジ
ェクトが複雑で離れたロケーションにあるような分散オ
ブジェクトシステムにおいて、アプリケーション開発者
が、ローカルオブジェクトを実装する(implement)コ
ードを書くだけでなく、リモートオブジェクトを配置
し、そのリモートオブジェクトから得られる情報、ある
いは、そのオブジェクトに供給できる情報を決定するこ
とは、非常に時間のかかる仕事である。一般に、ソフト
ウエアコードの効率的コーディングと再利用における考
えは、分散オブジェクトシステムのためのアプリケーシ
ョンプログラムの開発に対しても適用できる。
【0003】
【発明が解決しようとする課題】分散オブジェクトシス
テムにおけるオブジェクト指向プログラミングの性質
上、アプリケーション開発者は、絶え間なく新しいオブ
ジェクトを定義し、既存のリモートオブジェクトのメソ
ッドを起動するか、以前にローカルに定義されたオブジ
ェクトを使って、リモートオブジェクトから情報を受け
取る。よって、新しいオブジェクトと実装(インプリメ
ンテーション)の形式で、開発者が既存のオブジェクト
を再利用できるような技術は、開発者がゼロからオブジ
ェクトを書くことから救ってくれる。また、新しいアプ
リケーションでも使えるように、アプリケーション開発
者が、分散環境でオブジェクトを配置できるような仕組
みも有用である。しかし、一旦オブジェクトが分散オブ
ジェクト環境に配置され、再利用のために同定されてし
まうと、そのオブジェクトが提供するサービスを決定す
ることが重要である。また、新しい実装を形成するさい
に、オブジェクトを他のオブジェクトに接続するため
に、どのサービスが必要かを決定することも重要であ
る。そのとき、一つのオブジェクトが提供するサービス
は、他のオブジェクトに利用されるかも知れない。しか
し、最初に、開発者がオブジェクトを他のオブジェクト
に接続する方法について知的な選択を行えるように、あ
るオブジェクトが提供し、必要とするサービスが決定さ
れる。
テムにおけるオブジェクト指向プログラミングの性質
上、アプリケーション開発者は、絶え間なく新しいオブ
ジェクトを定義し、既存のリモートオブジェクトのメソ
ッドを起動するか、以前にローカルに定義されたオブジ
ェクトを使って、リモートオブジェクトから情報を受け
取る。よって、新しいオブジェクトと実装(インプリメ
ンテーション)の形式で、開発者が既存のオブジェクト
を再利用できるような技術は、開発者がゼロからオブジ
ェクトを書くことから救ってくれる。また、新しいアプ
リケーションでも使えるように、アプリケーション開発
者が、分散環境でオブジェクトを配置できるような仕組
みも有用である。しかし、一旦オブジェクトが分散オブ
ジェクト環境に配置され、再利用のために同定されてし
まうと、そのオブジェクトが提供するサービスを決定す
ることが重要である。また、新しい実装を形成するさい
に、オブジェクトを他のオブジェクトに接続するため
に、どのサービスが必要かを決定することも重要であ
る。そのとき、一つのオブジェクトが提供するサービス
は、他のオブジェクトに利用されるかも知れない。しか
し、最初に、開発者がオブジェクトを他のオブジェクト
に接続する方法について知的な選択を行えるように、あ
るオブジェクトが提供し、必要とするサービスが決定さ
れる。
【0004】よって、オブジェクトにより必要とされる
サービスは何か、また、オブジェクトにより提供される
サービスは何かを決定する技術と仕組みをもつことが望
まれる。さらに、情報が視覚的にユーザに表示されるよ
うな、視覚的ツールにより、オブジェクトの定義をフィ
ルタリングすることも望ましい。加えて、そのような技
術にとって、あるサービスを提供できるオブジェクト
と、そのサービスを必要とするオブジェクトとの接続を
支援する技術も重要である。
サービスは何か、また、オブジェクトにより提供される
サービスは何かを決定する技術と仕組みをもつことが望
まれる。さらに、情報が視覚的にユーザに表示されるよ
うな、視覚的ツールにより、オブジェクトの定義をフィ
ルタリングすることも望ましい。加えて、そのような技
術にとって、あるサービスを提供できるオブジェクト
と、そのサービスを必要とするオブジェクトとの接続を
支援する技術も重要である。
【0005】
【課題を解決するための手段】本発明の一つの見方は、
分散オブジェクトアプリケーション構築装置(apparatu
s)において、フィルタリング技術が稼働することであ
る。構築システムのそれぞれの部品(オブジェクトの実
行時インスタンス)は、分散オブジェクトアプリケーシ
ョンプログラムを定義するために他の部品と接続される
プラグとソケットをもつ。それぞれの部品が、分散オブ
ジェクトを示すコンポーネントに対応している。同定さ
れた部品のプラグを決定する方法は、その部品に対応し
たコンポーネントのインタフェースを引き出す(retrie
ve)ステップをもつ。いったん、そのインタフェースが
引き出されると、その部品のプラグが同定される。プラ
グの同定は、引き出されたインタフェースから属性を決
定することにより、または、引き出されたインタフェー
スからひとつの引数を必要とするオペレーションを決定
することにより、実現される。また、コンポーネントに
より表現されるオブジェクトのためのファクトリメソッ
ドからファクトリ引数リストを引き出すことによって
も、実現される。これらの属性と引数は、部品のプラグ
である。
分散オブジェクトアプリケーション構築装置(apparatu
s)において、フィルタリング技術が稼働することであ
る。構築システムのそれぞれの部品(オブジェクトの実
行時インスタンス)は、分散オブジェクトアプリケーシ
ョンプログラムを定義するために他の部品と接続される
プラグとソケットをもつ。それぞれの部品が、分散オブ
ジェクトを示すコンポーネントに対応している。同定さ
れた部品のプラグを決定する方法は、その部品に対応し
たコンポーネントのインタフェースを引き出す(retrie
ve)ステップをもつ。いったん、そのインタフェースが
引き出されると、その部品のプラグが同定される。プラ
グの同定は、引き出されたインタフェースから属性を決
定することにより、または、引き出されたインタフェー
スからひとつの引数を必要とするオペレーションを決定
することにより、実現される。また、コンポーネントに
より表現されるオブジェクトのためのファクトリメソッ
ドからファクトリ引数リストを引き出すことによって
も、実現される。これらの属性と引数は、部品のプラグ
である。
【0006】また、部品のソケットも同様の方法で決定
される。同定された部品のソケットを決定する方法は、
その部品に対応するコンポーネントのために、インタフ
ェースを引き出すステップを含む。一度、このインタフ
ェースが引き出されると、その部品のソケットが同定さ
れる。ソケットは、インタフェースからの属性の決定に
より、また、オブジェクトの結果を返すインタフェース
からのオペレーションの決定により同定される。これら
の属性とオペレーションは、部品のソケットを構成す
る。
される。同定された部品のソケットを決定する方法は、
その部品に対応するコンポーネントのために、インタフ
ェースを引き出すステップを含む。一度、このインタフ
ェースが引き出されると、その部品のソケットが同定さ
れる。ソケットは、インタフェースからの属性の決定に
より、また、オブジェクトの結果を返すインタフェース
からのオペレーションの決定により同定される。これら
の属性とオペレーションは、部品のソケットを構成す
る。
【0007】また、本発明を別の方向からみると、部品
のプラグが以前に選択されたソケットとのマッチングに
基づいて決定されているといえる。この方法では、2つ
目の部品が同定され、その部品のソケットが選択され
る。次に、2つめの部品の選択されたソケットが最初の
部品の決定されたプラグと互換性があるかどうかが決定
され、その結果が表示される。選ばれたソケットは、も
しそのプラグのタイプがCORBAオブジェクトであるか、
同一のタイプであるか、ソケットが継承できるタイプで
あれば、元の部品のプラグと互換である。同様に、もし
プラグが最初に部品から選択された場合、もしそのソケ
ットのタイプが同一か、継承できるものであれば、選択
されたプラグは他の部品のソケットとマッチする。この
ような実施例において、ソケットは「トンネリング」を
使った再帰的方法により決定される。
のプラグが以前に選択されたソケットとのマッチングに
基づいて決定されているといえる。この方法では、2つ
目の部品が同定され、その部品のソケットが選択され
る。次に、2つめの部品の選択されたソケットが最初の
部品の決定されたプラグと互換性があるかどうかが決定
され、その結果が表示される。選ばれたソケットは、も
しそのプラグのタイプがCORBAオブジェクトであるか、
同一のタイプであるか、ソケットが継承できるタイプで
あれば、元の部品のプラグと互換である。同様に、もし
プラグが最初に部品から選択された場合、もしそのソケ
ットのタイプが同一か、継承できるものであれば、選択
されたプラグは他の部品のソケットとマッチする。この
ような実施例において、ソケットは「トンネリング」を
使った再帰的方法により決定される。
【0008】ある実施例では、分散オブジェクトアプリ
ケーションプログラムは、コンポーネントカタログから
最初のコンポーネントを選ぶことにより構成される。一
度選択されると、最初のコンポーネントに対応した最初
の部品が、コンポジションビルダで生成される。次に、
この最初のコンポーネントのための最初のインタフェー
スが引き出される。本発明で提案されるフィルタリング
技術が、最初の部品のプラグとソケットのリストを作る
目的で、この最初のインタフェースをフィルタリングす
るために使われる。いったん、この最初のインタフェー
スがフィルタリングされると、その手続きは、2番目以
降のコンポーネントにも繰り返し適用される。いった
ん、様々な部品のプラグとソケットが決定すると、それ
らは、少なくとも部分的に分散オブジェクトアプリケー
ションプログラムを定義するために、接続される。そし
て、プログラムが実行されるとき、その部品は、接続に
従って一つの部品を参照するように配置される。
ケーションプログラムは、コンポーネントカタログから
最初のコンポーネントを選ぶことにより構成される。一
度選択されると、最初のコンポーネントに対応した最初
の部品が、コンポジションビルダで生成される。次に、
この最初のコンポーネントのための最初のインタフェー
スが引き出される。本発明で提案されるフィルタリング
技術が、最初の部品のプラグとソケットのリストを作る
目的で、この最初のインタフェースをフィルタリングす
るために使われる。いったん、この最初のインタフェー
スがフィルタリングされると、その手続きは、2番目以
降のコンポーネントにも繰り返し適用される。いった
ん、様々な部品のプラグとソケットが決定すると、それ
らは、少なくとも部分的に分散オブジェクトアプリケー
ションプログラムを定義するために、接続される。そし
て、プログラムが実行されるとき、その部品は、接続に
従って一つの部品を参照するように配置される。
【0009】加えて、本発明のさらに進んだ実施例にお
いては、グラフィカルユーザインタフェースを使った視
覚的アプリケーションビルダでフィルタリングがなされ
る。そこでは、プラグとソケットがそれぞれの部品につ
いたアイコンよりシンボリックに表現される。ジェスチ
ュアによりアイコンまたは部品を選択して、接続のため
の特定のプラグまたはソケットを選択するために視覚的
インスペクタを使うことにより、接続がなされる。これ
らの接続は、視覚的ビルダのコンポーネントワークシー
トにおいて、視覚的に表現される。
いては、グラフィカルユーザインタフェースを使った視
覚的アプリケーションビルダでフィルタリングがなされ
る。そこでは、プラグとソケットがそれぞれの部品につ
いたアイコンよりシンボリックに表現される。ジェスチ
ュアによりアイコンまたは部品を選択して、接続のため
の特定のプラグまたはソケットを選択するために視覚的
インスペクタを使うことにより、接続がなされる。これ
らの接続は、視覚的ビルダのコンポーネントワークシー
トにおいて、視覚的に表現される。
【0010】
【発明の実施の形態】本発明は、分散オブジェクトシス
テム用に設計されており、図と一緒に説明されるいくつ
かの適切な実施例を参照することにより、記述される。
本発明は、CORBA、あるいは他の適切な仕様で定義され
たものを含む任意の分散オブジェクトシステムにおい
て、実現される。しかし、説明のために、本発明の実施
例は、主に、オブジェクト・マネイジメント・グループ
(Object Management Gropu:OMG)の1995年6月第
2版(Revision 2.0, July 1995)のCORBA仕様の下で実
装されたオブジェクト要求ブローカ(Object Request B
roker:ORB)を用いる。図1は、本発明を実現するため
に適している典型的な分散オブジェクトシステムのアー
キテクチャを図的に示している。
テム用に設計されており、図と一緒に説明されるいくつ
かの適切な実施例を参照することにより、記述される。
本発明は、CORBA、あるいは他の適切な仕様で定義され
たものを含む任意の分散オブジェクトシステムにおい
て、実現される。しかし、説明のために、本発明の実施
例は、主に、オブジェクト・マネイジメント・グループ
(Object Management Gropu:OMG)の1995年6月第
2版(Revision 2.0, July 1995)のCORBA仕様の下で実
装されたオブジェクト要求ブローカ(Object Request B
roker:ORB)を用いる。図1は、本発明を実現するため
に適している典型的な分散オブジェクトシステムのアー
キテクチャを図的に示している。
【0011】分散オブジェクトシステム 10 は、典型的
には、図1に示されるようなオブジェクト要求ブローカ
(ORB)11を持っている。ORB 11は、クライアントがサ
ーバを呼出し、サーバがクライアントに応答するために
必要な配置、発送メカニズム、設備をすべて備えてい
る。クライアントとサーバは、同じプロセス、同じマシ
ンの別プロセス、または、全く別のマシンのいずれに配
置されてもよい。ここでの議論のために、クライアント
20は、分散オブジェクトにおけるオペレーションを呼び
出す任意のコードとし、分散オブジェクト、またはプロ
セスの形式をとってもとらなくともよい。分散オブジェ
クトは、様々な表現をもつ。例えば、分散オブジェクト
は、アプリケーション開発者により供給されたC++オブ
ジェクトでもよい。また、分散オブジェクトの実装は、
視覚的アプリケーションビルダ15で開発されてもよい。
この視覚的アプリケーションビルダは、開発者が視覚的
に既存のオブジェクトをカタログから選択することを可
能にし、さらに、あるオブジェクトの実装を新たにつく
るために、オブジェクトにより供給さえるサービスを他
のオブジェクトによるサービスにグラフィカルに接続す
ることも可能にする。
には、図1に示されるようなオブジェクト要求ブローカ
(ORB)11を持っている。ORB 11は、クライアントがサ
ーバを呼出し、サーバがクライアントに応答するために
必要な配置、発送メカニズム、設備をすべて備えてい
る。クライアントとサーバは、同じプロセス、同じマシ
ンの別プロセス、または、全く別のマシンのいずれに配
置されてもよい。ここでの議論のために、クライアント
20は、分散オブジェクトにおけるオペレーションを呼び
出す任意のコードとし、分散オブジェクト、またはプロ
セスの形式をとってもとらなくともよい。分散オブジェ
クトは、様々な表現をもつ。例えば、分散オブジェクト
は、アプリケーション開発者により供給されたC++オブ
ジェクトでもよい。また、分散オブジェクトの実装は、
視覚的アプリケーションビルダ15で開発されてもよい。
この視覚的アプリケーションビルダは、開発者が視覚的
に既存のオブジェクトをカタログから選択することを可
能にし、さらに、あるオブジェクトの実装を新たにつく
るために、オブジェクトにより供給さえるサービスを他
のオブジェクトによるサービスにグラフィカルに接続す
ることも可能にする。
【0012】オブジェクト開発ファシリティ(object d
evelopment facility)16は、分散オブジェクトを生成
し。分散オブジェクトコードを包む、またはカプセル化
するために用いられる。オブジェクト開発ファシリティ
16は、開発者オブジェクトをORBオブジェクト・インプ
リメンテーション14に変換するために使われる。ここで
の例では、ORBオブジェクトインプリメンテーション14
が、ダイアグラムの位置で示されているサーバとして提
供される。開発者は、ORBオブジェクトのためにインタ
フェースを定義するインタフェース定義言語を使い、オ
ブジェクトの挙動を実装する開発者オブジェクト実装を
提供する。そして、ORBオブジェクトインプリメンテー
ション14を生成するために、オブジェクト開発ファシリ
ティ16を利用する。実行時には、このOBRオブジェクト
(サーバオブジェクト)のインスタンスが生成され、OR
Bオブジェクト・インプリメンテーション(object impl
ementaion)14を利用する。オブジェクト開発ファシリ
ティは、クライアントの役目をするオブジェクトを生成
するためにも使われることは重要である。
evelopment facility)16は、分散オブジェクトを生成
し。分散オブジェクトコードを包む、またはカプセル化
するために用いられる。オブジェクト開発ファシリティ
16は、開発者オブジェクトをORBオブジェクト・インプ
リメンテーション14に変換するために使われる。ここで
の例では、ORBオブジェクトインプリメンテーション14
が、ダイアグラムの位置で示されているサーバとして提
供される。開発者は、ORBオブジェクトのためにインタ
フェースを定義するインタフェース定義言語を使い、オ
ブジェクトの挙動を実装する開発者オブジェクト実装を
提供する。そして、ORBオブジェクトインプリメンテー
ション14を生成するために、オブジェクト開発ファシリ
ティ16を利用する。実行時には、このOBRオブジェクト
(サーバオブジェクト)のインスタンスが生成され、OR
Bオブジェクト・インプリメンテーション(object impl
ementaion)14を利用する。オブジェクト開発ファシリ
ティは、クライアントの役目をするオブジェクトを生成
するためにも使われることは重要である。
【0013】クライアント20は、スタブ(stub)21、サ
ブコントラクト(subcontract)層36、フィルタ40、そ
して、トランスポート層38によりサーバと通信する。ス
タブ21 は、サロゲート(surrogate)22, メソッド表 2
4、そしてスタブ関数25を含む。クライアント20は、サ
ーバオブジェクトとして現れるサロゲート22と最初に通
信する。また、クライアント20は、サロゲート22、メソ
ッド表24、スタブ関数25の代わりに、動的起動インタフ
ェース(Dynamic Invocatron Interface:DII)26を通し
て、サーバオブジェクトと通信する。動的起動インタフ
ェース(DII)26は、クライアントが、動的要求を構成
することを可能にする。
ブコントラクト(subcontract)層36、フィルタ40、そ
して、トランスポート層38によりサーバと通信する。ス
タブ21 は、サロゲート(surrogate)22, メソッド表 2
4、そしてスタブ関数25を含む。クライアント20は、サ
ーバオブジェクトとして現れるサロゲート22と最初に通
信する。また、クライアント20は、サロゲート22、メソ
ッド表24、スタブ関数25の代わりに、動的起動インタフ
ェース(Dynamic Invocatron Interface:DII)26を通し
て、サーバオブジェクトと通信する。動的起動インタフ
ェース(DII)26は、クライアントが、動的要求を構成
することを可能にする。
【0014】サブコントラクト層36は、特定のサブコン
トラクトによりネーミングられた様々なサービスを実現
するためにサブコントラクトを利用するために、オブジ
ェクトにより要求される機能を提供する。サブコントラ
クトは、個々のオブジェクトにより利用される分散オブ
ジェクトシステムにより提供されるサービスの質を決め
る。例えば、サブコントラクトは、特定のオブジェクト
により使われるセキュリティの特徴を決定する。ある特
定のサブコントラクトは、実行時に、サーバオブジェク
トに動的に関連付けられる。フィルタ40は、もし使用さ
れるなら、圧縮、暗号化、トレース、デバッグなどのオ
ブジェクトから、あるいは、オブジェクトへの通信に適
用できる様々なタスクを行う。トランスポート層38は、
マーシャル、アンマーシャルを行う。また、クライアン
トと同じプロセスを共有しないサーバントへ、あるい
は、サーバントから、情報を物理的に送る。
トラクトによりネーミングられた様々なサービスを実現
するためにサブコントラクトを利用するために、オブジ
ェクトにより要求される機能を提供する。サブコントラ
クトは、個々のオブジェクトにより利用される分散オブ
ジェクトシステムにより提供されるサービスの質を決め
る。例えば、サブコントラクトは、特定のオブジェクト
により使われるセキュリティの特徴を決定する。ある特
定のサブコントラクトは、実行時に、サーバオブジェク
トに動的に関連付けられる。フィルタ40は、もし使用さ
れるなら、圧縮、暗号化、トレース、デバッグなどのオ
ブジェクトから、あるいは、オブジェクトへの通信に適
用できる様々なタスクを行う。トランスポート層38は、
マーシャル、アンマーシャルを行う。また、クライアン
トと同じプロセスを共有しないサーバントへ、あるい
は、サーバントから、情報を物理的に送る。
【0015】標準インプリメンテーションスイート(su
ite)28は、オブジェクトキー管理と同じ方法で、ORBオ
ブジェクトインプリメンテーション14と相互作用のある
サブコントラクトの集合を表現する。また、サブコント
ラクトは、複数のインプリメンテーション組にも属す
る。さらに、インプリメンテーション組は、異なったサ
ブコントラクトを利用する。静的スケルトン32か、動的
スケルトン30のいずれかの形態においてスケルトンは、
要求を、サーバオブジェクト78が必要とする形式に変換
する。よって、スケルトン(skelton)30と32は、適切
なサーバオブジェクト78を呼び出す。静的スケルトン32
は、インタフェースに特化されたオブジェクトインプリ
メンテーション14の呼び出しに使われる。一方、動的ス
ケルトン30は、インタフェースに特化されたオブジェク
トが利用不可能な場合に使われる。ORBインタフェース3
4は、ORBに直接的に到達し、オブジェクトのインタフェ
ースやアダプタに依存しないインタフェースである。OR
Bデーモン46は、クライアントに呼ばれたときにオブジ
ェクトサーバがアクティブであることを責任をもって確
認する。
ite)28は、オブジェクトキー管理と同じ方法で、ORBオ
ブジェクトインプリメンテーション14と相互作用のある
サブコントラクトの集合を表現する。また、サブコント
ラクトは、複数のインプリメンテーション組にも属す
る。さらに、インプリメンテーション組は、異なったサ
ブコントラクトを利用する。静的スケルトン32か、動的
スケルトン30のいずれかの形態においてスケルトンは、
要求を、サーバオブジェクト78が必要とする形式に変換
する。よって、スケルトン(skelton)30と32は、適切
なサーバオブジェクト78を呼び出す。静的スケルトン32
は、インタフェースに特化されたオブジェクトインプリ
メンテーション14の呼び出しに使われる。一方、動的ス
ケルトン30は、インタフェースに特化されたオブジェク
トが利用不可能な場合に使われる。ORBインタフェース3
4は、ORBに直接的に到達し、オブジェクトのインタフェ
ースやアダプタに依存しないインタフェースである。OR
Bデーモン46は、クライアントに呼ばれたときにオブジ
ェクトサーバがアクティブであることを責任をもって確
認する。
【0016】安全プロトコル42は、インターネットORB
間プロトコルを確実にし、安全な方法でトランスポート
層38を通して情報の伝達を補助する安全相互操作プロト
コルである。このことは、完全保護、信頼性を意味す
る。インターネットORB間プロトコルは、典型的には、
異なったマシン上のプロセス間の通信である。しかし、
時には、インターネットORB間プロトコルは、同じマシ
ン上のプロセス間通信でもある。セキュリティサーバ54
は、異なった計算機上のプロセス間でなされるサービス
を確実にするセキュリティ管理サーバである。
間プロトコルを確実にし、安全な方法でトランスポート
層38を通して情報の伝達を補助する安全相互操作プロト
コルである。このことは、完全保護、信頼性を意味す
る。インターネットORB間プロトコルは、典型的には、
異なったマシン上のプロセス間の通信である。しかし、
時には、インターネットORB間プロトコルは、同じマシ
ン上のプロセス間通信でもある。セキュリティサーバ54
は、異なった計算機上のプロセス間でなされるサービス
を確実にするセキュリティ管理サーバである。
【0017】タイプコード/Any モジュール44は、"タ
イプコード"と"Any"オブジェクトを実装する。タイプコ
ードは、インタフェース定義言語(IDL)のデータタイ
プを記述する。これは、クライアントとサーバ間の通信
の型の記述を行う。IDLデータ型の例は、Anyオブジェク
トによるカプセル化である。Anyオブジェクトはカプセ
ル化されたデータのタイプコード、そしてデータの一般
的なコード化を参照する。
イプコード"と"Any"オブジェクトを実装する。タイプコ
ードは、インタフェース定義言語(IDL)のデータタイ
プを記述する。これは、クライアントとサーバ間の通信
の型の記述を行う。IDLデータ型の例は、Anyオブジェク
トによるカプセル化である。Anyオブジェクトはカプセ
ル化されたデータのタイプコード、そしてデータの一般
的なコード化を参照する。
【0018】インプリメンテーション・レポジトリ(re
pository)50は、オブジェクトサーバに関連した情報を
格納するために使われる。特に、サーバプロセスを開始
するために必要な情報を格納する。例えば、インプリメ
ンテーションレポジトリ50は、サーバプログラムのロー
ケーションや、そのプログラムの引数、そして、プログ
ラムに渡される環境変数などを格納する。
pository)50は、オブジェクトサーバに関連した情報を
格納するために使われる。特に、サーバプロセスを開始
するために必要な情報を格納する。例えば、インプリメ
ンテーションレポジトリ50は、サーバプログラムのロー
ケーションや、そのプログラムの引数、そして、プログ
ラムに渡される環境変数などを格納する。
【0019】単純パーシスタンス(simple persistenc
e)56は、インタフェース定義言語(IDL)により定義さ
れた型を利用する。そして、IDLコンパイラを通して、I
DL型を付加的コードの一部と走らせることにより得られ
る出力を使って、IDLで定義された型がディスクに読み
書きできるようにする。ネーミングサーバ52は、ORBオ
ブジェクトに名前をつけるために使われる。クライアン
トは、ネーミングサーバ52を使って、名前により、欲し
いオブジェクトを見つける。ネーミングサーバ52はオブ
ジェクト参照を返し、それは、オブジェクトに要求を送
るために使われる。インターフェースレポジトリ48(IF
R)は、分散オブジェクトシステム内の全てのオブジェ
クトの全てのインターフェースを管理している。
e)56は、インタフェース定義言語(IDL)により定義さ
れた型を利用する。そして、IDLコンパイラを通して、I
DL型を付加的コードの一部と走らせることにより得られ
る出力を使って、IDLで定義された型がディスクに読み
書きできるようにする。ネーミングサーバ52は、ORBオ
ブジェクトに名前をつけるために使われる。クライアン
トは、ネーミングサーバ52を使って、名前により、欲し
いオブジェクトを見つける。ネーミングサーバ52はオブ
ジェクト参照を返し、それは、オブジェクトに要求を送
るために使われる。インターフェースレポジトリ48(IF
R)は、分散オブジェクトシステム内の全てのオブジェ
クトの全てのインターフェースを管理している。
【0020】本発明の実施例は、アプリケーションビル
ダで使うためのオブジェクトの定義をフィルタリングす
る技術を関連がある。この技術を使うことにより、アプ
リケーションプログラムの一部として機能するためにオ
ブジェクト(ローカルでもリモートでもよい)が必要す
る、あるいは提供できるサービスが、アプリケーション
開発者により決定され、利用される。また、視覚的アプ
リケーションビルダにより、オブジェクトの再利用性、
構築時間の短縮、構築の容易化などの恩恵が得られる。
ここで見てきたように、"オブジェクト"という用語は、
オブジェクト定義、関連したオペレーション、属性等、
そして、オブジェクトの実装を意味する。また、時々"
オブジェクト"という用語は、オブジェクトの外部のソ
フトウエアがそのオブジェクトを調べたり、操作したり
するときのオペレーションや属性の定義を参照するのに
使われる。"オブジェクトタイプ"は、"インタフェース"
としても知られている。また、"オブジェクト"という用
語は、オブジェクトの実際の実行時のインスタンスを参
照するために使われる。そのような使い方は、文脈から
明らかである。
ダで使うためのオブジェクトの定義をフィルタリングす
る技術を関連がある。この技術を使うことにより、アプ
リケーションプログラムの一部として機能するためにオ
ブジェクト(ローカルでもリモートでもよい)が必要す
る、あるいは提供できるサービスが、アプリケーション
開発者により決定され、利用される。また、視覚的アプ
リケーションビルダにより、オブジェクトの再利用性、
構築時間の短縮、構築の容易化などの恩恵が得られる。
ここで見てきたように、"オブジェクト"という用語は、
オブジェクト定義、関連したオペレーション、属性等、
そして、オブジェクトの実装を意味する。また、時々"
オブジェクト"という用語は、オブジェクトの外部のソ
フトウエアがそのオブジェクトを調べたり、操作したり
するときのオペレーションや属性の定義を参照するのに
使われる。"オブジェクトタイプ"は、"インタフェース"
としても知られている。また、"オブジェクト"という用
語は、オブジェクトの実際の実行時のインスタンスを参
照するために使われる。そのような使い方は、文脈から
明らかである。
【0021】これまで議論してきたように、アプリケー
ション開発者が既存のオブジェクトを再利用でき、新し
いアプリケーションプログラムで使うために分散環境中
にオブジェクトを配置できるようにする技術と装置(ap
paratus)メカニズムが望まれる。例えば、そのような
仕組みのひとつが、"視覚的アプリケーションビルダ"と
呼ばれるものである。
ション開発者が既存のオブジェクトを再利用でき、新し
いアプリケーションプログラムで使うために分散環境中
にオブジェクトを配置できるようにする技術と装置(ap
paratus)メカニズムが望まれる。例えば、そのような
仕組みのひとつが、"視覚的アプリケーションビルダ"と
呼ばれるものである。
【0022】視覚的アプリケーションビルダにより、ア
プリケーション開発者は、分散オブジェクトを使ってア
プリケーションプログラムを視覚的に構成できる。新し
いアプリケーションの開発時に、開発者が容易にリモー
トオブジェクトを同定し、引き出すことができるよう
に、既存のあるいは既に定義されているオブジェクトの
カタログが用意される。加えて、新しいオブジェクト生
成のときに、これらのオブジェクトは、ビルダにおいて
再利用される。よって、コードの再利用が可能である。
ビルダにおいて利用されるオブジェクトが選択されたと
き、そのオブジェクトは、あるサービスを提供し、また
必要なサービスを要求する。例えば、オブジェクトは、
値をもつ属性を持っていてもよいし、引数を必要とし結
果を返すオペレーション(または、メソッド(Metho
d))をもってもよい。オブジェクトが提供するサービ
スは、既に値とオペレーションの結果を持っている属性
かもしれない。アプリケーションを構築するとき、ひと
つのオブジェクトによるサービスは、そのサービスを必
要とするオブジェクトに"接続"、あるいは、発送され
る。例えば、あるオブジェクトの属性値は、他のオブジ
ェクトの引数として使われる。既与のオブジェクトによ
りどのようなサービスが提供されるのか、また、既与の
オブジェクトはどのようなサービスを必要としているの
かを決定することは、オブジェクトの接続のためには、
重要である。そのような機能を実現する技術や仕組みの
実現が、以降で記述される本発明の目的である。
プリケーション開発者は、分散オブジェクトを使ってア
プリケーションプログラムを視覚的に構成できる。新し
いアプリケーションの開発時に、開発者が容易にリモー
トオブジェクトを同定し、引き出すことができるよう
に、既存のあるいは既に定義されているオブジェクトの
カタログが用意される。加えて、新しいオブジェクト生
成のときに、これらのオブジェクトは、ビルダにおいて
再利用される。よって、コードの再利用が可能である。
ビルダにおいて利用されるオブジェクトが選択されたと
き、そのオブジェクトは、あるサービスを提供し、また
必要なサービスを要求する。例えば、オブジェクトは、
値をもつ属性を持っていてもよいし、引数を必要とし結
果を返すオペレーション(または、メソッド(Metho
d))をもってもよい。オブジェクトが提供するサービ
スは、既に値とオペレーションの結果を持っている属性
かもしれない。アプリケーションを構築するとき、ひと
つのオブジェクトによるサービスは、そのサービスを必
要とするオブジェクトに"接続"、あるいは、発送され
る。例えば、あるオブジェクトの属性値は、他のオブジ
ェクトの引数として使われる。既与のオブジェクトによ
りどのようなサービスが提供されるのか、また、既与の
オブジェクトはどのようなサービスを必要としているの
かを決定することは、オブジェクトの接続のためには、
重要である。そのような機能を実現する技術や仕組みの
実現が、以降で記述される本発明の目的である。
【0023】本発明の実施例において、「コンポーネン
ト(Component)」、「部品(Part)」、「プラグ(Plu
gs)」、「ソケット(Sockets)」という用語は、以下
の意味で使われる。「コンポーネント」は、オブジェク
ト(または、オブジェクトタイプ)、オブジェクトの提
供するサービス、その実装、そして、分散オブジェクト
システムのネーミングサービスにおけるオブジェクト名
を意味する。コンポーネントは、コンポーネントカタロ
グに存在し、ユーザはそこで構築中のアプリケーション
に適用できるコンポーネントを調べて選択できる。ユー
ザが構築中のアプリケーションにコンポーネントを追加
したとき、ここで記述されている方法と仕組みをつかっ
ているコンポーネントに含まる情報を利用して、「部
品」を起動する。部品は、コンポーネントにより表現さ
れたオブジェクトの将来的に実行される実行時インスタ
ンスのための場所を確保するプレースホルダである。ま
た、部品は、他のオブジェクトとの接続を確立し、属性
値を定義するための目的で、実行時インスタンスとして
扱われる。完成したアプリケーションがビルダにより処
理されるとき、アプリケーションの他のオブジェクトと
関連して実行されるアクションや部品を表現するため
に、コードが生成される。部品の表現は、オブジェクト
の実行時インスタンスのためのプレースホルダである。
よって、アプリケーションが最終的に走るとき、オブジ
ェクトの実行時インスタンスは、配置されるか、生成さ
れて、部品に代入される。
ト(Component)」、「部品(Part)」、「プラグ(Plu
gs)」、「ソケット(Sockets)」という用語は、以下
の意味で使われる。「コンポーネント」は、オブジェク
ト(または、オブジェクトタイプ)、オブジェクトの提
供するサービス、その実装、そして、分散オブジェクト
システムのネーミングサービスにおけるオブジェクト名
を意味する。コンポーネントは、コンポーネントカタロ
グに存在し、ユーザはそこで構築中のアプリケーション
に適用できるコンポーネントを調べて選択できる。ユー
ザが構築中のアプリケーションにコンポーネントを追加
したとき、ここで記述されている方法と仕組みをつかっ
ているコンポーネントに含まる情報を利用して、「部
品」を起動する。部品は、コンポーネントにより表現さ
れたオブジェクトの将来的に実行される実行時インスタ
ンスのための場所を確保するプレースホルダである。ま
た、部品は、他のオブジェクトとの接続を確立し、属性
値を定義するための目的で、実行時インスタンスとして
扱われる。完成したアプリケーションがビルダにより処
理されるとき、アプリケーションの他のオブジェクトと
関連して実行されるアクションや部品を表現するため
に、コードが生成される。部品の表現は、オブジェクト
の実行時インスタンスのためのプレースホルダである。
よって、アプリケーションが最終的に走るとき、オブジ
ェクトの実行時インスタンスは、配置されるか、生成さ
れて、部品に代入される。
【0024】ある実施例では、それぞれの部品が「プラ
グ」と「ソケット」と持っており、それらは、単一のプ
ラグアイコンとソケットアイコンにより視覚的に表現さ
れる。前述のように、オブジェクトは、オペレーション
のために、属性値と引数値を必要とする。"プラグ"は、
オブジェクトに必要とされるサービスを表現する。他の
サービスも、分散オブジェクトシステムでよく用いられ
るように、プラグにより表現される。例えば、プラグ
は、値を代入されなければならない、部品の属性、また
は引数を表現する。加えて、プラグは、コンポーネント
のファクトリメソッドの引数も表現する。これらの引数
は、コンポーネントのファクトリメソッドにより、部品
の実行時インスタンスを生成するために使われる。
グ」と「ソケット」と持っており、それらは、単一のプ
ラグアイコンとソケットアイコンにより視覚的に表現さ
れる。前述のように、オブジェクトは、オペレーション
のために、属性値と引数値を必要とする。"プラグ"は、
オブジェクトに必要とされるサービスを表現する。他の
サービスも、分散オブジェクトシステムでよく用いられ
るように、プラグにより表現される。例えば、プラグ
は、値を代入されなければならない、部品の属性、また
は引数を表現する。加えて、プラグは、コンポーネント
のファクトリメソッドの引数も表現する。これらの引数
は、コンポーネントのファクトリメソッドにより、部品
の実行時インスタンスを生成するために使われる。
【0025】同様に、オブジェクトにより提供されるサ
ービスが、「ソケット」である。例えば、ソケットは、
既に値を持っているか、値を返すオペレーションを持っ
ている属性を表現する。よって、ソケットは、プラグに
より必要とされるサービスを提供する。多くの異なった
タイプが、プラグが必要としている値を埋めるために使
われ、プラグは、異なったタイプの値を持つことになる
ような状況が考えられる。例えば、オブジェクトタイプ
の値が使われる。よって、プラグとソケットの相補的な
性質が、サービスを要求するオブジェクトと提供するオ
ブジェクト間の通信を可能にしていると考えられる。あ
る実施例では、そのような通信が、最初の部品のプラグ
と2つめの部品のソケット間の「接続(connection)」
により表現される。
ービスが、「ソケット」である。例えば、ソケットは、
既に値を持っているか、値を返すオペレーションを持っ
ている属性を表現する。よって、ソケットは、プラグに
より必要とされるサービスを提供する。多くの異なった
タイプが、プラグが必要としている値を埋めるために使
われ、プラグは、異なったタイプの値を持つことになる
ような状況が考えられる。例えば、オブジェクトタイプ
の値が使われる。よって、プラグとソケットの相補的な
性質が、サービスを要求するオブジェクトと提供するオ
ブジェクト間の通信を可能にしていると考えられる。あ
る実施例では、そのような通信が、最初の部品のプラグ
と2つめの部品のソケット間の「接続(connection)」
により表現される。
【0026】図2は、図1の視覚的アプリケーションビ
ルダ15の一つの実施例である。そこでは、ユーザは、上
記のコンポーネント、部品、プラグ、ソケットなどの概
念を使って、アプリケーションを構築できる。コンポジ
ションビルダ58、コンポーネントカタログ60、コード生
成ユニット64が、先に参照された特許アプリケーション
において、詳細に記述されている。視覚的アプリケーシ
ョンビルダの中心部は、コンポジションビルダ58であ
る。ある実施例では、コンポジションビルダ58は、グラ
フィカルインタフェースを使って、アプリケーション開
発者が新しいオブジェクトを実装するために、視覚的に
コンポーネントを選択し、部品に接続することを可能に
している。このことは、図4と図5でより詳細に記述さ
れる。開発者がビルダ58を使っているとき、彼または彼
女はコンポーネントカタログ60から、利用すべきコンポ
ーネントを選択する。このカタログ60は、分散オブジェ
クトシステムにおいて利用可能なすべてのコンポーネン
トを含んでいる。また、そのカタログは、コンポーネン
トに関する別の情報も持っている。例えば、コンポーネ
ントに定義されているインタフェース定義言語のタイ
プ、ファクトリのタイプ、ファクトリメソッドが、すべ
てカタログから利用可能である。
ルダ15の一つの実施例である。そこでは、ユーザは、上
記のコンポーネント、部品、プラグ、ソケットなどの概
念を使って、アプリケーションを構築できる。コンポジ
ションビルダ58、コンポーネントカタログ60、コード生
成ユニット64が、先に参照された特許アプリケーション
において、詳細に記述されている。視覚的アプリケーシ
ョンビルダの中心部は、コンポジションビルダ58であ
る。ある実施例では、コンポジションビルダ58は、グラ
フィカルインタフェースを使って、アプリケーション開
発者が新しいオブジェクトを実装するために、視覚的に
コンポーネントを選択し、部品に接続することを可能に
している。このことは、図4と図5でより詳細に記述さ
れる。開発者がビルダ58を使っているとき、彼または彼
女はコンポーネントカタログ60から、利用すべきコンポ
ーネントを選択する。このカタログ60は、分散オブジェ
クトシステムにおいて利用可能なすべてのコンポーネン
トを含んでいる。また、そのカタログは、コンポーネン
トに関する別の情報も持っている。例えば、コンポーネ
ントに定義されているインタフェース定義言語のタイ
プ、ファクトリのタイプ、ファクトリメソッドが、すべ
てカタログから利用可能である。
【0027】一旦、コンポーネントがコンポーネントビ
ルダに部品として挿入されると、他の部品またはオブジ
ェクトとの接続を構成するために、その部品のすべての
プラグとソケットを決定する必要がある。部品のプラグ
とソケットの決定は、インタフェース定義言語フィルタ
リング62により、ビルダ58と通信しながら行われる。こ
のユニット62は、インタフェースレポジトリ48からコン
ポーネントのためのインタフェースを取り出し、それを
プラグとソケットの決定に用いる。このインタフェース
定義言語フィルタリング62のオペレーションは、本発明
の主題であり、以降において図6から図9で説明され
る。一度、新しいオブジェクトインプリメンテーション
が、ビルダ58で生成されると、そのインプリメンテーシ
ョンは、コード生成器64へ送られ、アプリケーションを
走らせるために必要なソースコードが生成される。この
コードは、オブジェクト開発モジュール16へ送られ、分
散オブジェクトシステムでの利用に適したオブジェクト
とソースが生成される。
ルダに部品として挿入されると、他の部品またはオブジ
ェクトとの接続を構成するために、その部品のすべての
プラグとソケットを決定する必要がある。部品のプラグ
とソケットの決定は、インタフェース定義言語フィルタ
リング62により、ビルダ58と通信しながら行われる。こ
のユニット62は、インタフェースレポジトリ48からコン
ポーネントのためのインタフェースを取り出し、それを
プラグとソケットの決定に用いる。このインタフェース
定義言語フィルタリング62のオペレーションは、本発明
の主題であり、以降において図6から図9で説明され
る。一度、新しいオブジェクトインプリメンテーション
が、ビルダ58で生成されると、そのインプリメンテーシ
ョンは、コード生成器64へ送られ、アプリケーションを
走らせるために必要なソースコードが生成される。この
コードは、オブジェクト開発モジュール16へ送られ、分
散オブジェクトシステムでの利用に適したオブジェクト
とソースが生成される。
【0028】図11の61は、分散オブジェクトシステム
において、視覚的アプリケーションビルダを使ってオブ
ジェクト指向アプリケーションを構成するためのシステ
ムを示している。そのシステムは、コンポジションビル
ダ58 を持っており、そこでユーザ(プログラマ)は、
図1のような分散オブジェクトシステムでアプリケーシ
ョンをインストールする。コンポジションビルダは、コ
ンポーネントカタログ60と繋がっており、それにより、
ユーザやプログラマが分散オブジェクトシステムで利用
可能なオブジェクトをアクセスできる。まとめると、カ
タログとは、分散オブジェクトシステムでプログラマが
利用可能なソフトウエア資源の目録である。ある実施例
では、カタログ中に含まれるコンポーネントにより参照
されるオブジェクトの機能や実装を考慮して、プログラ
マ(あるいは、コンポーネントビルダのような自動的ツ
ール)に、カタログから情報が提供される。よって、カ
タログは、ソフトウエアの資産をユーザが利用可能にす
ることにより、分散オブジェクトシステムにおける共同
作業を促進し、利用可能なオブジェクトとソフトウエア
に関する詳細な情報を与えることにより、ソフトウエア
開発者間の協力を促進する。コンポジションビルダ58
は、さらにコード生成器64に繋がっており、そこで、プ
ログラムテンプレートレポジトリ63とともに、コンポジ
ションビルダにより作られたコンポジションを扱い、65
に示されるプログラムソースファイルを生成する。
において、視覚的アプリケーションビルダを使ってオブ
ジェクト指向アプリケーションを構成するためのシステ
ムを示している。そのシステムは、コンポジションビル
ダ58 を持っており、そこでユーザ(プログラマ)は、
図1のような分散オブジェクトシステムでアプリケーシ
ョンをインストールする。コンポジションビルダは、コ
ンポーネントカタログ60と繋がっており、それにより、
ユーザやプログラマが分散オブジェクトシステムで利用
可能なオブジェクトをアクセスできる。まとめると、カ
タログとは、分散オブジェクトシステムでプログラマが
利用可能なソフトウエア資源の目録である。ある実施例
では、カタログ中に含まれるコンポーネントにより参照
されるオブジェクトの機能や実装を考慮して、プログラ
マ(あるいは、コンポーネントビルダのような自動的ツ
ール)に、カタログから情報が提供される。よって、カ
タログは、ソフトウエアの資産をユーザが利用可能にす
ることにより、分散オブジェクトシステムにおける共同
作業を促進し、利用可能なオブジェクトとソフトウエア
に関する詳細な情報を与えることにより、ソフトウエア
開発者間の協力を促進する。コンポジションビルダ58
は、さらにコード生成器64に繋がっており、そこで、プ
ログラムテンプレートレポジトリ63とともに、コンポジ
ションビルダにより作られたコンポジションを扱い、65
に示されるプログラムソースファイルを生成する。
【0029】プログラムソースファイル65は、ODFコン
パイラ/リンカ67に送られる。さらに、ODFコンパイラ
/リンカ67は、オブジェクトアクセスソフトウエア69と
繋がっており、そのソフトウエアは、コンポーネントカ
タログ60に繋がっている。ODFコンパイラ/リンカは、
オブジェクトソフトウエア71とネットワークソフトウエ
ア73の両方を生成する。それらは、77にあるように、ネ
ットワークオブジェクト75にアクセスする。ネットワー
クオブジェクトは、コンポーネントカタログ60か、また
は破線矢印で示されているように、ODFコンパイラリン
カ67と共に利用されるオブジェクトアクセスソフトウエ
ア69により利用される。
パイラ/リンカ67に送られる。さらに、ODFコンパイラ
/リンカ67は、オブジェクトアクセスソフトウエア69と
繋がっており、そのソフトウエアは、コンポーネントカ
タログ60に繋がっている。ODFコンパイラ/リンカは、
オブジェクトソフトウエア71とネットワークソフトウエ
ア73の両方を生成する。それらは、77にあるように、ネ
ットワークオブジェクト75にアクセスする。ネットワー
クオブジェクトは、コンポーネントカタログ60か、また
は破線矢印で示されているように、ODFコンパイラリン
カ67と共に利用されるオブジェクトアクセスソフトウエ
ア69により利用される。
【0030】図3は、コンポーネントカタログ内のコン
ポーネント、それに対応したコンポジションビルダの部
品、そしてその部品が表現するオブジェクトの間の関係
を表している。カタログ60は、任意個のコンポーネント
を含んでよい。図中では、コンポーネントA70、B72、C7
4が存在する。コンポーネントA70は、関連したオブジェ
クトのインタフェースにより、様々なオペレーションと
属性で定義される。一度、開発者がコンポーネントAを
選択し、それをコンポジションビルダ58(破線矢印76で
示されている)の中に配置されると、それはオブジェク
トの表現の一部になる。オブジェクトは実行時にのみ存
在するため、その一部は、オブジェクトのためのプレー
スホルダである。
ポーネント、それに対応したコンポジションビルダの部
品、そしてその部品が表現するオブジェクトの間の関係
を表している。カタログ60は、任意個のコンポーネント
を含んでよい。図中では、コンポーネントA70、B72、C7
4が存在する。コンポーネントA70は、関連したオブジェ
クトのインタフェースにより、様々なオペレーションと
属性で定義される。一度、開発者がコンポーネントAを
選択し、それをコンポジションビルダ58(破線矢印76で
示されている)の中に配置されると、それはオブジェク
トの表現の一部になる。オブジェクトは実行時にのみ存
在するため、その一部は、オブジェクトのためのプレー
スホルダである。
【0031】コンポジションビルダ58において、挿入さ
れた部品A80は、コンポーネントA70に対応している。こ
の部品Aは、オペレーション1と属性Yで定義される。オ
ペレーション1の引数は、部品A80の一つの可能なプラグ
82を構成する引数Xである。オペレーション1は、部品A
の一つの可能なソケット84を構成する値を返す。また、
属性Yは、プラグ86で示される値を必要とする。そし
て、いったん属性Yが値を持つと、それは部品Aのソケッ
ト88となる。もちろん、部品Aのための多くの他のプラ
グとソケットが考えられる。開発時に使われた部品A
は、破線矢印89で示される実行時オブジェクトA90を表
現する。言い換えると、実行時には、部品Aがオブジェ
クトAとして具体化され、アプリケーションプログラム
の実行に使われる。その引数、オペレーションが結果と
して生じ、オブジェクトの属性が実行時に値をもつ。例
えば、オブジェクトAについて、オペレーション1の引数
Xが、(12/15/95にかかれた文書を含むファイルを示
す)ドキュメント”Letter_12/15/95”である。同様
に、属性Yが値15をもつ。また、部品の引数と属性の値
は、後述の図4で説明されるユーザインタフェースによ
り、ビルダ58において設定される。
れた部品A80は、コンポーネントA70に対応している。こ
の部品Aは、オペレーション1と属性Yで定義される。オ
ペレーション1の引数は、部品A80の一つの可能なプラグ
82を構成する引数Xである。オペレーション1は、部品A
の一つの可能なソケット84を構成する値を返す。また、
属性Yは、プラグ86で示される値を必要とする。そし
て、いったん属性Yが値を持つと、それは部品Aのソケッ
ト88となる。もちろん、部品Aのための多くの他のプラ
グとソケットが考えられる。開発時に使われた部品A
は、破線矢印89で示される実行時オブジェクトA90を表
現する。言い換えると、実行時には、部品Aがオブジェ
クトAとして具体化され、アプリケーションプログラム
の実行に使われる。その引数、オペレーションが結果と
して生じ、オブジェクトの属性が実行時に値をもつ。例
えば、オブジェクトAについて、オペレーション1の引数
Xが、(12/15/95にかかれた文書を含むファイルを示
す)ドキュメント”Letter_12/15/95”である。同様
に、属性Yが値15をもつ。また、部品の引数と属性の値
は、後述の図4で説明されるユーザインタフェースによ
り、ビルダ58において設定される。
【0032】図4は、図2のコンポジションビルダ58の
ひとつの可能な表現である。ビルダ58は、ビルダの様々
な視点と機能を選択するためにメニューバー202を、部
品を接続するためにコンポジションワークシート204
を、プラグとソケットをリストアップして、部品の属性
値を設定するためにインスペクタ206を持っている。ビ
ルダは、メニューバー202を通して選択された多くのこ
となる視点をもつ。例えば、ある特定のコンポジション
に関連した視点が、図4に示されており、ボタン210で
選択されている。この視点は、本発明の実施例を記述す
るために使われる。加えて、ボタン212から222がアプリ
ケーションの構成において使われる他の関連した視点を
提示する。ボックス224は、現在協調されているエレメ
ントを表す。例では、"アキュムレータ(acumulator)"
部品である。セクション"Interface"226は、現在のイン
プリメンテーションのインタフェースの名前を付ける。
ひとつの可能な表現である。ビルダ58は、ビルダの様々
な視点と機能を選択するためにメニューバー202を、部
品を接続するためにコンポジションワークシート204
を、プラグとソケットをリストアップして、部品の属性
値を設定するためにインスペクタ206を持っている。ビ
ルダは、メニューバー202を通して選択された多くのこ
となる視点をもつ。例えば、ある特定のコンポジション
に関連した視点が、図4に示されており、ボタン210で
選択されている。この視点は、本発明の実施例を記述す
るために使われる。加えて、ボタン212から222がアプリ
ケーションの構成において使われる他の関連した視点を
提示する。ボックス224は、現在協調されているエレメ
ントを表す。例では、"アキュムレータ(acumulator)"
部品である。セクション"Interface"226は、現在のイン
プリメンテーションのインタフェースの名前を付ける。
【0033】この上位部分の下に、コンポジションワー
クシート204があり、そこでは、部品が(カタログから
選択された後に)配置され、アプリケーションを構成す
るオブジェクト間の相互関係を定義するために接続され
る。このワークシートは、任意個の部員と相互接続を持
っている。例えば、部品"accumulator"204と"reporter"
242がある。部品240は、その部品のためのすべてのソケ
ットを表すソケットアイコン244と、部品240のすべての
プラグを示すプラグアイコン246を持っている。ユーザ
がプラグアイコン246を選択したとき、その部品の全て
のプラグのリストが、インスペクタ206の下に表示され
る。同様に、ソケットアイコン244が選択されると、す
べてのソケットのリストが、インスペクタ206の下に表
示される。これらのプラグやソケットのリストは、図6
と図8で記述される、部品のためのインタフェース定義
のフィルタリングにより決定される。部品242のソケッ
ト248をもつ接続線252により表示される接続をつくって
いる部品240の特定のプラグが示されている。部品242の
もう一つのプラグが、"set_contex"メソッド258を通じ
てユーザインタフェース230のソケット256の接続254を
構成している。同様に、以降において、本発明における
プラグをソケットに接続する技術が図7と図9により説
明される。
クシート204があり、そこでは、部品が(カタログから
選択された後に)配置され、アプリケーションを構成す
るオブジェクト間の相互関係を定義するために接続され
る。このワークシートは、任意個の部員と相互接続を持
っている。例えば、部品"accumulator"204と"reporter"
242がある。部品240は、その部品のためのすべてのソケ
ットを表すソケットアイコン244と、部品240のすべての
プラグを示すプラグアイコン246を持っている。ユーザ
がプラグアイコン246を選択したとき、その部品の全て
のプラグのリストが、インスペクタ206の下に表示され
る。同様に、ソケットアイコン244が選択されると、す
べてのソケットのリストが、インスペクタ206の下に表
示される。これらのプラグやソケットのリストは、図6
と図8で記述される、部品のためのインタフェース定義
のフィルタリングにより決定される。部品242のソケッ
ト248をもつ接続線252により表示される接続をつくって
いる部品240の特定のプラグが示されている。部品242の
もう一つのプラグが、"set_contex"メソッド258を通じ
てユーザインタフェース230のソケット256の接続254を
構成している。同様に、以降において、本発明における
プラグをソケットに接続する技術が図7と図9により説
明される。
【0034】インスペクタ206により、開発者は、部品
のプラグ、ソケット、属性を多くの違った方法で見て、
操作することができる。様々な視点は、インスペクタと
関連しており、インスペクタは、ワークシートで何が選
択されたか、あるいはワークシートで実行された行為に
基づいて、その見栄えを変化させる。例えば、インスペ
クタは、特性の値を設定するために使われる。ここ
で、"特性(property)"とは、ユーザにより設定された
部品が必要とする情報の集まりを意味する。例えば、部
品の特性は、その部品の属性値とその部品で定義されて
いるオペレーションの引数値を含む。ワークシート204
である部品が選択されたとき、インスペクタ206は、ワ
ークシート204の部品をリストアップした第一コラム27
0、選択された部品の特性をリストアップした第2コラム
272、そして、選択された特性の値を設定したり、見る
ため第3コラム274 をもつ。この例では、部品"accumula
tor"の特性"apply"が値"volume"をもっている。インス
ペクタは、他の機能もある。インスペクタは、選択され
た部品の全てのプラグ、または、ソケットを見ることに
使われる。また、インスペクタは、図5で示されるよう
に、ある部品のプラグと他の部品のソケットの間を接続
するためにも使われる。
のプラグ、ソケット、属性を多くの違った方法で見て、
操作することができる。様々な視点は、インスペクタと
関連しており、インスペクタは、ワークシートで何が選
択されたか、あるいはワークシートで実行された行為に
基づいて、その見栄えを変化させる。例えば、インスペ
クタは、特性の値を設定するために使われる。ここ
で、"特性(property)"とは、ユーザにより設定された
部品が必要とする情報の集まりを意味する。例えば、部
品の特性は、その部品の属性値とその部品で定義されて
いるオペレーションの引数値を含む。ワークシート204
である部品が選択されたとき、インスペクタ206は、ワ
ークシート204の部品をリストアップした第一コラム27
0、選択された部品の特性をリストアップした第2コラム
272、そして、選択された特性の値を設定したり、見る
ため第3コラム274 をもつ。この例では、部品"accumula
tor"の特性"apply"が値"volume"をもっている。インス
ペクタは、他の機能もある。インスペクタは、選択され
た部品の全てのプラグ、または、ソケットを見ることに
使われる。また、インスペクタは、図5で示されるよう
に、ある部品のプラグと他の部品のソケットの間を接続
するためにも使われる。
【0035】図5は、ビルダ58の実施例の別の見方を示
している。そこでは、インスペクタ206が一つの部品の
プラグを別の部品のソケットに接続するために使われて
いる。ワークシート204には、ソケットアイコン652とプ
ラグアイコン654をもつ"accumulator"部品650が示され
ている。もう一つの部品"naming context"658は、ソケ
ットアイコン660とプラグアイコン662をもつ。接続ライ
ン656で示されているように"accumulator"のプラグと"n
aming context"のソケットの間の接続が形成される。こ
のプロセスにおけるインスペクタの使用は、図8と図9
でより詳細に後述される。インスペクタの操作や接続の
形成で使われる視覚的方法は、多くの異なる手法をと
る。例えば、そのような方法の一つが、図中で示されて
いる。
している。そこでは、インスペクタ206が一つの部品の
プラグを別の部品のソケットに接続するために使われて
いる。ワークシート204には、ソケットアイコン652とプ
ラグアイコン654をもつ"accumulator"部品650が示され
ている。もう一つの部品"naming context"658は、ソケ
ットアイコン660とプラグアイコン662をもつ。接続ライ
ン656で示されているように"accumulator"のプラグと"n
aming context"のソケットの間の接続が形成される。こ
のプロセスにおけるインスペクタの使用は、図8と図9
でより詳細に後述される。インスペクタの操作や接続の
形成で使われる視覚的方法は、多くの異なる手法をと
る。例えば、そのような方法の一つが、図中で示されて
いる。
【0036】図6から図9では、オブジェクトのインタ
フェースをフィルタリングするための技術の一つの実施
例が記述されている。前述のように、オブジェクトのイ
ンタフェースは、オブジェクトの特徴、つまり、他のオ
ブジェクトがそのオブジェクトといかに相互作用をする
かを明示する。例えば、インタフェースは、オブジェク
トに関して定義されているオペレーション、それぞれの
オペレーションが必要とする引数、オペレーションが返
す結果のタイプなどを明示する。また、インタフェース
は、オブジェクトの属性やタイプも明示する。本発明の
フィルタリング技術は、インタフェースのためのインプ
リメンテーションを構成する処理の様々な点において、
使われる。例えば、フィルタリングは、ワークシートに
部品が挿入されたときに実行される。また、もしインプ
リメンテーションが部分的にか完全にか生成されたと
き、フィルタリングは、インプリメンテーションが視覚
的アプリケーションビルダへ読み返されるときに起動さ
れる。さらに、フィルタリングは、開発者がワークシー
トから部品のプラグを選択するとき、または、開発者が
部品のソケットを選択するときに、実時間で起動され
る。インタフェースのフィルタリングは、ワークシート
ないで部品を接続するときに開発者により利用される。
そして、フィルタリングの結果は、開発者が使っている
インスペクタに表示される。
フェースをフィルタリングするための技術の一つの実施
例が記述されている。前述のように、オブジェクトのイ
ンタフェースは、オブジェクトの特徴、つまり、他のオ
ブジェクトがそのオブジェクトといかに相互作用をする
かを明示する。例えば、インタフェースは、オブジェク
トに関して定義されているオペレーション、それぞれの
オペレーションが必要とする引数、オペレーションが返
す結果のタイプなどを明示する。また、インタフェース
は、オブジェクトの属性やタイプも明示する。本発明の
フィルタリング技術は、インタフェースのためのインプ
リメンテーションを構成する処理の様々な点において、
使われる。例えば、フィルタリングは、ワークシートに
部品が挿入されたときに実行される。また、もしインプ
リメンテーションが部分的にか完全にか生成されたと
き、フィルタリングは、インプリメンテーションが視覚
的アプリケーションビルダへ読み返されるときに起動さ
れる。さらに、フィルタリングは、開発者がワークシー
トから部品のプラグを選択するとき、または、開発者が
部品のソケットを選択するときに、実時間で起動され
る。インタフェースのフィルタリングは、ワークシート
ないで部品を接続するときに開発者により利用される。
そして、フィルタリングの結果は、開発者が使っている
インスペクタに表示される。
【0037】図6は、ある部品に対応したコンポーネン
トのインタフェースをフィルタリングすることにより、
既与の部品のすべてのプラグを決定するための手続き30
0を示している。前述のように、プラグとは、部品の属
性か、その部品に定義されているオペレーションの引数
である。プラグが決定されたとき、それらは、ユーザが
ブラウズして選択するために視覚的に提示される。例え
ば、これらのプラグは、コンポジションビルダのインス
ペクタ内に表示され、名前とタイプによりリストアップ
される。
トのインタフェースをフィルタリングすることにより、
既与の部品のすべてのプラグを決定するための手続き30
0を示している。前述のように、プラグとは、部品の属
性か、その部品に定義されているオペレーションの引数
である。プラグが決定されたとき、それらは、ユーザが
ブラウズして選択するために視覚的に提示される。例え
ば、これらのプラグは、コンポジションビルダのインス
ペクタ内に表示され、名前とタイプによりリストアップ
される。
【0038】最初のステップ302において、対応するコ
ンポーネントのためにサポートされているインタフェー
スが引き出される。部品は、特定のコンポーネントの開
発時インスタンスなので、そのコンポーネントにサポー
トされるインタフェースは、その部品のプラグを同定す
るために決定されなければならない。サポートされたイ
ンタフェースは、図2のインタフェースレポジトリ48に
アクセスすることで引き出せる。IFRは、分散オブジェ
クトシステムないで定義されているインタフェースを含
んでいる。一旦、そのコンポーネントのインタフェース
が引き出されると、以下のステップで記述されたよう
に、そのインタフェースがフィルタリングに利用でき
る。
ンポーネントのためにサポートされているインタフェー
スが引き出される。部品は、特定のコンポーネントの開
発時インスタンスなので、そのコンポーネントにサポー
トされるインタフェースは、その部品のプラグを同定す
るために決定されなければならない。サポートされたイ
ンタフェースは、図2のインタフェースレポジトリ48に
アクセスすることで引き出せる。IFRは、分散オブジェ
クトシステムないで定義されているインタフェースを含
んでいる。一旦、そのコンポーネントのインタフェース
が引き出されると、以下のステップで記述されたよう
に、そのインタフェースがフィルタリングに利用でき
る。
【0039】ステップ304は、リードオンリー(Read On
ly)ではなく、オブジェクトタイプであるインタフェー
スの全ての属性を決定する。一旦、これらの属性が決定
されると、前述のように、それらはインスペクタに名前
とタイプでリストアップされる。接続が、オブジェクト
参照をソケットからプラグへ送るので、この実施例で
は、タイプの属性だけが決定される。値が書き込めない
ため、リードオンリーである属性はリストアップされな
い。リードオンリーの属性の例は、例えば、定数値をも
つ属性とか、アプリケーション起動時に初期化され、そ
のまま変わっていない属性などである。プラグがソケッ
トに接続されるところであるコンポジションビルダの視
覚的側面は、オブジェクト間の接続を通して、一つの部
品から別の部品へオブジェクト参照を送る目的で使われ
る。その接続は、オブジェクト参照を受け取るオブジェ
クトのプラグから、オブジェクト参照を送るオブジェク
トのソケットへの線で表現される。タイプオブジェクト
でない値は、接続を通して送られず、オブジェクトのタ
イプを持たない属性は、プラグと見なされない。
ly)ではなく、オブジェクトタイプであるインタフェー
スの全ての属性を決定する。一旦、これらの属性が決定
されると、前述のように、それらはインスペクタに名前
とタイプでリストアップされる。接続が、オブジェクト
参照をソケットからプラグへ送るので、この実施例で
は、タイプの属性だけが決定される。値が書き込めない
ため、リードオンリーである属性はリストアップされな
い。リードオンリーの属性の例は、例えば、定数値をも
つ属性とか、アプリケーション起動時に初期化され、そ
のまま変わっていない属性などである。プラグがソケッ
トに接続されるところであるコンポジションビルダの視
覚的側面は、オブジェクト間の接続を通して、一つの部
品から別の部品へオブジェクト参照を送る目的で使われ
る。その接続は、オブジェクト参照を受け取るオブジェ
クトのプラグから、オブジェクト参照を送るオブジェク
トのソケットへの線で表現される。タイプオブジェクト
でない値は、接続を通して送られず、オブジェクトのタ
イプを持たない属性は、プラグと見なされない。
【0040】次に、ステップ 306 が、タイプオブジェ
クトの一つの引数をもつ部品に定義された全てのオペレ
ーションを同定する。再び、オブジェクト参照が接続を
通じて送られ、タイプオブジェクトである引数を必要と
するオペレーションを決定する必要が生じる。ここで
は、タイプオブジェクトの一引数をもつオペレーション
だけを同定することが、より望ましい。このような方法
で、このオペレーションを表現しているプラグが、ひと
つのソケットに接続された一つの接続により表現され
る。タイプオブジェクトの多くの引数をもつオペレーシ
ョンが、多くのソケットに接続されたプラグの網をもっ
ているにもかかわらず、タイプオブジェクトの一引数を
必要とするオペレーションを同定することが望ましい。
そして、上述のステップ304で、これらの同定されたオ
ペレーションが、コンポジションビルダのインスペクタ
において、名前とタイプでリストアップされる。
クトの一つの引数をもつ部品に定義された全てのオペレ
ーションを同定する。再び、オブジェクト参照が接続を
通じて送られ、タイプオブジェクトである引数を必要と
するオペレーションを決定する必要が生じる。ここで
は、タイプオブジェクトの一引数をもつオペレーション
だけを同定することが、より望ましい。このような方法
で、このオペレーションを表現しているプラグが、ひと
つのソケットに接続された一つの接続により表現され
る。タイプオブジェクトの多くの引数をもつオペレーシ
ョンが、多くのソケットに接続されたプラグの網をもっ
ているにもかかわらず、タイプオブジェクトの一引数を
必要とするオペレーションを同定することが望ましい。
そして、上述のステップ304で、これらの同定されたオ
ペレーションが、コンポジションビルダのインスペクタ
において、名前とタイプでリストアップされる。
【0041】ステップ308では、引数リストが、コンポ
ーネントのファクトリメソッドから決定される。コンポ
ーネントのためのファクトリメソッドは、カタログにお
けるコンポーネント自身を参照することにより、決定さ
れる。ステップ310は、タイプオブジェクトであるすべ
ての"入力"引数とすべての”入/出力(in/out)”引数
を決定することに、これらの引数を処理する。”入力
(in)”引数は、メソッドに送られ、変化しないで残る
引数であり、一方”入/出力”引数は、送られるだけで
なく、その値が変化する引数である。ある実施例では、
コンポーネントのファクトリメソッドによって必要とさ
れる引数が、インプリメンテーションを構成するコンポ
ジションビルダのためのオブジェクトの実行時インスタ
ンスをせいせいするために、決定されなければならな
い。そのファクトリメソッドは、特定のオブジェクトタ
イプのインスタンスを生成するために使われる。よっ
て、タイプオブジェクトのすべての引数は、ステップ31
0で決定され、名前とタイプによりインスペクタに表示
される。ステップ310の後、このプラグ決定手続きは、
終了する。
ーネントのファクトリメソッドから決定される。コンポ
ーネントのためのファクトリメソッドは、カタログにお
けるコンポーネント自身を参照することにより、決定さ
れる。ステップ310は、タイプオブジェクトであるすべ
ての"入力"引数とすべての”入/出力(in/out)”引数
を決定することに、これらの引数を処理する。”入力
(in)”引数は、メソッドに送られ、変化しないで残る
引数であり、一方”入/出力”引数は、送られるだけで
なく、その値が変化する引数である。ある実施例では、
コンポーネントのファクトリメソッドによって必要とさ
れる引数が、インプリメンテーションを構成するコンポ
ジションビルダのためのオブジェクトの実行時インスタ
ンスをせいせいするために、決定されなければならな
い。そのファクトリメソッドは、特定のオブジェクトタ
イプのインスタンスを生成するために使われる。よっ
て、タイプオブジェクトのすべての引数は、ステップ31
0で決定され、名前とタイプによりインスペクタに表示
される。ステップ310の後、このプラグ決定手続きは、
終了する。
【0042】図7は、ユーザが既に部品の特定のソケッ
トを選択しており、現在別の部品のどのプラグがそのソ
ケットにマッチするかを調べている状況を示している。
この状況では、利用できるプラグは図3と同様の方法で
決定されるにもかかわらすず、実際に利用可能なプラグ
は、選択されたソケットのタイプにより制約される。例
えば、既与のソケットに対し、(1)そのタイプがCORBA
オブジェクトであるか、(2)そのタイプがソケットの
タイプと同じか、(3)プラグのタイプがソケットが継
承できるものか、の場合に限り、プラグはマッチする。
このようなプラグ選択の制約は、ステップ412でさらに
説明される。
トを選択しており、現在別の部品のどのプラグがそのソ
ケットにマッチするかを調べている状況を示している。
この状況では、利用できるプラグは図3と同様の方法で
決定されるにもかかわらすず、実際に利用可能なプラグ
は、選択されたソケットのタイプにより制約される。例
えば、既与のソケットに対し、(1)そのタイプがCORBA
オブジェクトであるか、(2)そのタイプがソケットの
タイプと同じか、(3)プラグのタイプがソケットが継
承できるものか、の場合に限り、プラグはマッチする。
このようなプラグ選択の制約は、ステップ412でさらに
説明される。
【0043】最初のステップ402では、対応するコンポ
ーネントのサポートされたインタフェースが引き出され
る。部品は、特定のコンポーネントの開発時インスタン
スなので、コンポーネントにサポートされているインタ
フェースが、その部品のプラグを同定するために使われ
る。サポートされたインタフェースは、図2のインタフ
ェースレポジトリ48(IFR)をアクセスすることによ
り、引き出される。IFRは、分散オブジェクトシステム
内で定義されているインタフェースを含む。一旦、その
コンポーネントのインタフェースが引き出されると、次
は以下のステップに記述されているようにフィルタリン
グに利用可能である。
ーネントのサポートされたインタフェースが引き出され
る。部品は、特定のコンポーネントの開発時インスタン
スなので、コンポーネントにサポートされているインタ
フェースが、その部品のプラグを同定するために使われ
る。サポートされたインタフェースは、図2のインタフ
ェースレポジトリ48(IFR)をアクセスすることによ
り、引き出される。IFRは、分散オブジェクトシステム
内で定義されているインタフェースを含む。一旦、その
コンポーネントのインタフェースが引き出されると、次
は以下のステップに記述されているようにフィルタリン
グに利用可能である。
【0044】ステップ404は、リードオンリーではな
く、オブジェクトタイプであるインタフェースの全ての
属性を決定する。一旦、これらの属性が決定されると、
前述のように、それらはインスペクタに名前とタイプで
リストアップされる。値が書き込めないため、リードオ
ンリーである属性はリストアップされない。リードオン
リーの属性の例は、例えば、定数値をもつ属性とか、ア
プリケーション起動時に初期化され、そのまま変わって
いない属性などである。より望ましい実施例では、オブ
ジェクト参照が、ソケットからプラグに送られる。この
実施例では、タイプオブジェクト(オブジェクト参照が
存在する)の属性がリストアップされる。
く、オブジェクトタイプであるインタフェースの全ての
属性を決定する。一旦、これらの属性が決定されると、
前述のように、それらはインスペクタに名前とタイプで
リストアップされる。値が書き込めないため、リードオ
ンリーである属性はリストアップされない。リードオン
リーの属性の例は、例えば、定数値をもつ属性とか、ア
プリケーション起動時に初期化され、そのまま変わって
いない属性などである。より望ましい実施例では、オブ
ジェクト参照が、ソケットからプラグに送られる。この
実施例では、タイプオブジェクト(オブジェクト参照が
存在する)の属性がリストアップされる。
【0045】ステップ406は、タイプオブジェクトの一
引数をとる部品に定義された全てのオペレーションを同
定する。オブジェクト参照は、接続を通して送られるの
で、タイプオブジェクトの引数を必要とするオペレーシ
ョンを決定する必要がある。ある実施例では、タイプオ
ブジェクトの一引数をもつこれらのオペレーションが同
定される。このようにして、このオペレーションを表現
しているプラグは、あるソケットへ接続された一本の接
続線により表現される。タイプオブジェクトの多くの引
数をもつオペレーションが、多くのソケットに接続され
たプラグの網をもっているにもかかわらず、タイプオブ
ジェクトの一引数を必要とするオペレーションを同定す
ることが望ましい。そして、上述のステップ404で、こ
れらの同定されたオペレーションが、コンポジションビ
ルダのインスペクタにおいて、名前とタイプでリストア
ップされる。
引数をとる部品に定義された全てのオペレーションを同
定する。オブジェクト参照は、接続を通して送られるの
で、タイプオブジェクトの引数を必要とするオペレーシ
ョンを決定する必要がある。ある実施例では、タイプオ
ブジェクトの一引数をもつこれらのオペレーションが同
定される。このようにして、このオペレーションを表現
しているプラグは、あるソケットへ接続された一本の接
続線により表現される。タイプオブジェクトの多くの引
数をもつオペレーションが、多くのソケットに接続され
たプラグの網をもっているにもかかわらず、タイプオブ
ジェクトの一引数を必要とするオペレーションを同定す
ることが望ましい。そして、上述のステップ404で、こ
れらの同定されたオペレーションが、コンポジションビ
ルダのインスペクタにおいて、名前とタイプでリストア
ップされる。
【0046】ステップ408では、引数リストが、コンポ
ーネントのファクトリメソッドから決定される。コンポ
ーネントのためのファクトリメソッドは、カタログにお
けるコンポーネント自身を参照することにより、決定さ
れる。ステップ410は、タイプオブジェクトであるすべ
ての"入力"引数とすべての”入/出力”引数を決定する
ことに、これらの引数を処理する。”入力”引数は、メ
ソッドに送られ、変化しないで残る引数であり、一方”
入/出力”引数は、送られるだけでなく、その値が変化
する引数である。ある実施例では、コンポーネントのフ
ァクトリメソッドによって必要とされる引数が、インプ
リメンテーションを構成するコンポジションビルダのた
めのオブジェクトの実行時インスタンスをせいせいする
ために、決定されなければならない。そのファクトリメ
ソッドは、特定のオブジェクトタイプのインスタンスを
生成するために使われる。よって、タイプオブジェクト
のすべての引数は、ステップ410で決定され、名前とタ
イプによりインスペクタに表示される。
ーネントのファクトリメソッドから決定される。コンポ
ーネントのためのファクトリメソッドは、カタログにお
けるコンポーネント自身を参照することにより、決定さ
れる。ステップ410は、タイプオブジェクトであるすべ
ての"入力"引数とすべての”入/出力”引数を決定する
ことに、これらの引数を処理する。”入力”引数は、メ
ソッドに送られ、変化しないで残る引数であり、一方”
入/出力”引数は、送られるだけでなく、その値が変化
する引数である。ある実施例では、コンポーネントのフ
ァクトリメソッドによって必要とされる引数が、インプ
リメンテーションを構成するコンポジションビルダのた
めのオブジェクトの実行時インスタンスをせいせいする
ために、決定されなければならない。そのファクトリメ
ソッドは、特定のオブジェクトタイプのインスタンスを
生成するために使われる。よって、タイプオブジェクト
のすべての引数は、ステップ410で決定され、名前とタ
イプによりインスペクタに表示される。
【0047】ステップ412は、上記の決定されたすべて
のプラグについて、そのプラグタイプが選択されたソケ
ットにマッチするかどうかを決定する。プラグは、
(1)そのタイプがCORBAオブジェクトであるか、(2)
そのタイプがソケットのタイプと同じか、(3)プラグ
のタイプがソケットが継承できるものか、の場合に限
り、ソケットにマッチする。CORBAオブジェクトは、す
べてのオブジェクトから継承できる基本オブジェクトな
ので、プラグのタイプがCORBAオブジェクトであれば、
そのプラグは任意のCORBAオブジェクトを受け入れる。
もちろん、プラグタイプがソケットタイプと同じであれ
ば、マッチする。また、プラグタイプが、ソケットが継
承できるタイプであれば、ソケットのタイプは、プラグ
のタイプと同じとなるので、必要に応じて、ソケットは
プラグにマッチする。これらのマッチするプラグタイプ
は、開発者による可能な接続を示すために、インスペク
タにリストアップされる。ステップ412の後、この手続
きは終了する。
のプラグについて、そのプラグタイプが選択されたソケ
ットにマッチするかどうかを決定する。プラグは、
(1)そのタイプがCORBAオブジェクトであるか、(2)
そのタイプがソケットのタイプと同じか、(3)プラグ
のタイプがソケットが継承できるものか、の場合に限
り、ソケットにマッチする。CORBAオブジェクトは、す
べてのオブジェクトから継承できる基本オブジェクトな
ので、プラグのタイプがCORBAオブジェクトであれば、
そのプラグは任意のCORBAオブジェクトを受け入れる。
もちろん、プラグタイプがソケットタイプと同じであれ
ば、マッチする。また、プラグタイプが、ソケットが継
承できるタイプであれば、ソケットのタイプは、プラグ
のタイプと同じとなるので、必要に応じて、ソケットは
プラグにマッチする。これらのマッチするプラグタイプ
は、開発者による可能な接続を示すために、インスペク
タにリストアップされる。ステップ412の後、この手続
きは終了する。
【0048】図8と図9は、本発明の実施例によるイン
スペクタの別の面を示している。図8では、インスペク
タは、ソケットを選択するために使われる。一方、図9
では、インスペクタは、プラグが選択された後に、ソケ
ットを選択するために使われる。よって、図5のインス
ペクタ206が、ここで説明される。インスペクタのこの
ような見方は、同様のインスペクタが 図8に適用でき
ることから明らかであるにもかかわらず、図9のステッ
プの系列に関連している。インスペクタ206は、コラム
見出し602と604のコラムの内容を含む。3つだけのコラ
ムが示されているが、一つのソケットが付加的な他のソ
ケットと関連しているときは、インスペクタに任意個の
コラムが提示される。例えば、もしオペレーションが部
品のソケットから選択されると、オペレーションは、他
のソケットから値を受け取る引数が必要である。このよ
うな他のソケットもまた、別のコラムのインスペクタに
リストアップされている。そして、再帰的に、これらの
他のソケットは、次々にもう一つのコラムに表示されて
いる付加的なソケットからサービスをうける。よって、
多数のコラムが提示される。ソケットのそのような関係
は、"トンネリング"と呼ばれる。図中のインスペクタ
は、部品650の全てのプラグを表示する第一コラム630を
持っている。部品"accumulator"のプラグ"accumulate"
と"set_reporter"が示されている。これらのプラグは、
プラグアイコン654を選択することにより、表示され
る。プラグ"accumulate"は、接続をつくるために選択さ
れていることを表示するために強調される。次に、特定
の部品のソケットを、2つめのコラム606が表示してい
る。特に、ソケット"itself"と"new_context"をもつ部
品658"naming contex"が表示される。これらのソケット
は、ソケットアイコン606を選択することにより、表示
される。ソケット"new_context"は、接続をつくるため
に選択されていることを表示するために強調される。い
ったんソケットが2つ目のコラムから選択されると、そ
れは3番目のコラム608に現れるソケットをさらに参照
する。よって、この3番目のコラムは、"new_context"と
ラベル付けされ、下にそのソケットが現れる。これらの
ことは、前述の"トンネリング"関係による。
スペクタの別の面を示している。図8では、インスペク
タは、ソケットを選択するために使われる。一方、図9
では、インスペクタは、プラグが選択された後に、ソケ
ットを選択するために使われる。よって、図5のインス
ペクタ206が、ここで説明される。インスペクタのこの
ような見方は、同様のインスペクタが 図8に適用でき
ることから明らかであるにもかかわらず、図9のステッ
プの系列に関連している。インスペクタ206は、コラム
見出し602と604のコラムの内容を含む。3つだけのコラ
ムが示されているが、一つのソケットが付加的な他のソ
ケットと関連しているときは、インスペクタに任意個の
コラムが提示される。例えば、もしオペレーションが部
品のソケットから選択されると、オペレーションは、他
のソケットから値を受け取る引数が必要である。このよ
うな他のソケットもまた、別のコラムのインスペクタに
リストアップされている。そして、再帰的に、これらの
他のソケットは、次々にもう一つのコラムに表示されて
いる付加的なソケットからサービスをうける。よって、
多数のコラムが提示される。ソケットのそのような関係
は、"トンネリング"と呼ばれる。図中のインスペクタ
は、部品650の全てのプラグを表示する第一コラム630を
持っている。部品"accumulator"のプラグ"accumulate"
と"set_reporter"が示されている。これらのプラグは、
プラグアイコン654を選択することにより、表示され
る。プラグ"accumulate"は、接続をつくるために選択さ
れていることを表示するために強調される。次に、特定
の部品のソケットを、2つめのコラム606が表示してい
る。特に、ソケット"itself"と"new_context"をもつ部
品658"naming contex"が表示される。これらのソケット
は、ソケットアイコン606を選択することにより、表示
される。ソケット"new_context"は、接続をつくるため
に選択されていることを表示するために強調される。い
ったんソケットが2つ目のコラムから選択されると、そ
れは3番目のコラム608に現れるソケットをさらに参照
する。よって、この3番目のコラムは、"new_context"と
ラベル付けされ、下にそのソケットが現れる。これらの
ことは、前述の"トンネリング"関係による。
【0049】第2のコラム606は、610に"itself"をも
つ。これは、選択された実際の部品を参照するキーワー
ドである。例えば、もしユーザがある部品を選択して、
接続につかうためにその部品のソケットを探していると
すると、ユーザは接続を通じてプラグへ送信するために
その部品自身を使いたいと思うだろう。そのような状況
で、ユーザは、属性または部品のオペレーションからの
返り値は探さず、その部品自身を返すことを望む。部品
は、オブジェクト(のためのプレースホルダ)でありで
あり、(オブジェクト参照により表現される)オブジェ
クトは接続を通して送られるので、このようなことが可
能になる。
つ。これは、選択された実際の部品を参照するキーワー
ドである。例えば、もしユーザがある部品を選択して、
接続につかうためにその部品のソケットを探していると
すると、ユーザは接続を通じてプラグへ送信するために
その部品自身を使いたいと思うだろう。そのような状況
で、ユーザは、属性または部品のオペレーションからの
返り値は探さず、その部品自身を返すことを望む。部品
は、オブジェクト(のためのプレースホルダ)でありで
あり、(オブジェクト参照により表現される)オブジェ
クトは接続を通して送られるので、このようなことが可
能になる。
【0050】同様に、"itself"は、また3番目のコラム
にも現れる。この例では、ユーザは強調されている"new
_context"を選択している。このソケットが選択された
とき、そのソケットを通して理用可能な他のソケット
が、"トンネリング"により第3コラムに表示される。こ
の例では、理用可能な付加的ソケットは、"itself"と"n
ew_context"である。開発者が部品のソケットを選択で
きるようにする手続きは、図8で説明される。
にも現れる。この例では、ユーザは強調されている"new
_context"を選択している。このソケットが選択された
とき、そのソケットを通して理用可能な他のソケット
が、"トンネリング"により第3コラムに表示される。こ
の例では、理用可能な付加的ソケットは、"itself"と"n
ew_context"である。開発者が部品のソケットを選択で
きるようにする手続きは、図8で説明される。
【0051】図8は、接続に使うために部品のソケット
を決定するための手続き500を示している。そのような
状況では、開発者は部品を選び、後に形成されるであろ
う接続で使われる部品のソケットを選択することを望
む。この手続きは、ステップ502で、その部品に対応す
るコンポーネントによりサポートされるインタフェース
を引き出すことから始まる。このインタフェースは、図
6のステップ302と同様の方法で引き出される。次に、
ステップ503で、変数 Current Path が空集合に設定さ
れ、変数 Current Interface が引き出されたインタフ
ェースに設定される。変数 Current Path は、選択され
るべき現在のソケットを名付けるパスを示す。また、変
数 Current Interface は、フィルタリングされている
現在のインタフェースを示す。"トンネリング"が起こる
ので、現在のインタフェースを追跡することが必要であ
る。
を決定するための手続き500を示している。そのような
状況では、開発者は部品を選び、後に形成されるであろ
う接続で使われる部品のソケットを選択することを望
む。この手続きは、ステップ502で、その部品に対応す
るコンポーネントによりサポートされるインタフェース
を引き出すことから始まる。このインタフェースは、図
6のステップ302と同様の方法で引き出される。次に、
ステップ503で、変数 Current Path が空集合に設定さ
れ、変数 Current Interface が引き出されたインタフ
ェースに設定される。変数 Current Path は、選択され
るべき現在のソケットを名付けるパスを示す。また、変
数 Current Interface は、フィルタリングされている
現在のインタフェースを示す。"トンネリング"が起こる
ので、現在のインタフェースを追跡することが必要であ
る。
【0052】ステップ504では、Current Interface の
すべての属性がタイプオブジェクトに決定される。この
ステップ504は、図6のステップ304と同様に実行され
る。加えて、リードオンリーであるこれらの属性も決定
される。これは、たとえ部品の属性がリードオンリーで
あっても、それがタイプオブジェクトの属性であれば、
接続を通してプラグへ値を送るためのソケットとして使
えるからである。いったん、こられの属性が決定される
と、それらは、インスペクタに名前とタイプによりリス
トアップされる。これらの属性は、インスペクタの最初
の理用可能なコラムにリストアップされる。例えば、も
しこれがこの手続きの最初のパスならば、Current Inte
rfaceで決定されたこれらの属性は、インスペクタの最
初のコラムにリストアップされる。
すべての属性がタイプオブジェクトに決定される。この
ステップ504は、図6のステップ304と同様に実行され
る。加えて、リードオンリーであるこれらの属性も決定
される。これは、たとえ部品の属性がリードオンリーで
あっても、それがタイプオブジェクトの属性であれば、
接続を通してプラグへ値を送るためのソケットとして使
えるからである。いったん、こられの属性が決定される
と、それらは、インスペクタに名前とタイプによりリス
トアップされる。これらの属性は、インスペクタの最初
の理用可能なコラムにリストアップされる。例えば、も
しこれがこの手続きの最初のパスならば、Current Inte
rfaceで決定されたこれらの属性は、インスペクタの最
初のコラムにリストアップされる。
【0053】ステップ506では、引数なしでオブジェク
トのタイプを返す Current Interface に定義されてい
るすべてのオペレーションを同定する。それらのオペレ
ーションは、タイプオブジェクトを返すので、ソケット
と考えてよい。また、引数なしのオペレーションを同定
することが、より望ましい。しかし、引数のあるオペレ
ーションも同定されることが考えられる。引数なしのオ
ペレーションだけの同定に制限することにより、ソケッ
トが迅速に同定される。もしオペレーションが一つ以上
の引数をとると、その引数が必要とする値を供給するた
めに、それぞれの引数に適切なソケットを見つける必要
がある。いったん、それらのオペレーションが同定され
ると、それらは、インスペクタにより名前とタイプでリ
ストアップされる。同時に、インスペクタにリストアッ
プされる属性とオペレーションは、"エレメント"と呼ば
れる。
トのタイプを返す Current Interface に定義されてい
るすべてのオペレーションを同定する。それらのオペレ
ーションは、タイプオブジェクトを返すので、ソケット
と考えてよい。また、引数なしのオペレーションを同定
することが、より望ましい。しかし、引数のあるオペレ
ーションも同定されることが考えられる。引数なしのオ
ペレーションだけの同定に制限することにより、ソケッ
トが迅速に同定される。もしオペレーションが一つ以上
の引数をとると、その引数が必要とする値を供給するた
めに、それぞれの引数に適切なソケットを見つける必要
がある。いったん、それらのオペレーションが同定され
ると、それらは、インスペクタにより名前とタイプでリ
ストアップされる。同時に、インスペクタにリストアッ
プされる属性とオペレーションは、"エレメント"と呼ば
れる。
【0054】ステップ508は、ユーザがソケットのリス
トからエレメントを選択したかどうかをチェックする。
このソケットのリストは、インスペクタのコラムの一つ
に表示される。もしこれがこの処理の最初のパスであ
り、Current Interface がサポートされているインタフ
ェースであれば、その部品の既に同定されたすべてのソ
ケットが、インスペクタ206の第一コラムに現れる。よ
って、ユーザは、エレメント"itself"を選択してもよい
し、決定された属性とオペレーションの一つを選択して
もよい。もしユーザがエレメントを選択しないなら、こ
の時点で、制御がステップ514に移る。ステップ514で
は、現在強調されているソケットが、Current Path の
値により名付けられる。そのソケットは、開発者がプラ
グと別の部品を接続するために使われる。しかし、もし
ステップ508で開発者が別のエレメントを選ぶと、制御
はステップ509に移る。
トからエレメントを選択したかどうかをチェックする。
このソケットのリストは、インスペクタのコラムの一つ
に表示される。もしこれがこの処理の最初のパスであ
り、Current Interface がサポートされているインタフ
ェースであれば、その部品の既に同定されたすべてのソ
ケットが、インスペクタ206の第一コラムに現れる。よ
って、ユーザは、エレメント"itself"を選択してもよい
し、決定された属性とオペレーションの一つを選択して
もよい。もしユーザがエレメントを選択しないなら、こ
の時点で、制御がステップ514に移る。ステップ514で
は、現在強調されているソケットが、Current Path の
値により名付けられる。そのソケットは、開発者がプラ
グと別の部品を接続するために使われる。しかし、もし
ステップ508で開発者が別のエレメントを選ぶと、制御
はステップ509に移る。
【0055】ステップ509では、前のCurrent Pathの値
に、開発者に選択されたエレメントを加えた値が、変数
Current Pathに割り当てられる。例えば、開発者が最初
にインスペクタの第一コラムから部品"element1"のソケ
ットを選択すると、CurrentPathは、"element1"をも
つ。次に、もし開発者がインスペクタの第二コラムか
ら"element2"を選択すると、Current Pathは、"element
1、element2"に更新される。
に、開発者に選択されたエレメントを加えた値が、変数
Current Pathに割り当てられる。例えば、開発者が最初
にインスペクタの第一コラムから部品"element1"のソケ
ットを選択すると、CurrentPathは、"element1"をも
つ。次に、もし開発者がインスペクタの第二コラムか
ら"element2"を選択すると、Current Pathは、"element
1、element2"に更新される。
【0056】次に、ステップ510では、もっとも新しく
選択されたソケットのインタフェースが引き出される。
加えて、変数Current Interfaceがその新しく引き出さ
れたインタフェースに等しくなるように更新される。次
に、その新しく引き出されたインタフェースは、前述の
ように、それが供給するソケットを決定するために処理
されなければならない。よって、ステップ504と506が、
それらの新しいソケットを決定するために、繰り返され
る。
選択されたソケットのインタフェースが引き出される。
加えて、変数Current Interfaceがその新しく引き出さ
れたインタフェースに等しくなるように更新される。次
に、その新しく引き出されたインタフェースは、前述の
ように、それが供給するソケットを決定するために処理
されなければならない。よって、ステップ504と506が、
それらの新しいソケットを決定するために、繰り返され
る。
【0057】よって、ステップ512では、インスペクタ
の新しいコラムが初期化され、Current Interface から
決まる新しいソケットを保持するために、そのコラムが
表示される。ステップ512から、制御がステップ504にル
ープバックする。そして、ステップ504では、Current I
nterfaceのソケットが決定され、開発者がそれらのソケ
ットの一つを選択できる。ソケットとインタフェースの
性質に依存して、この処理は延々繰り返されるように思
われる。しかし、接続されているコンポーネントに依っ
て、ステップ508のいくつかの点において、開発者は別
のソケット選択せずに、手続きは終了する。
の新しいコラムが初期化され、Current Interface から
決まる新しいソケットを保持するために、そのコラムが
表示される。ステップ512から、制御がステップ504にル
ープバックする。そして、ステップ504では、Current I
nterfaceのソケットが決定され、開発者がそれらのソケ
ットの一つを選択できる。ソケットとインタフェースの
性質に依存して、この処理は延々繰り返されるように思
われる。しかし、接続されているコンポーネントに依っ
て、ステップ508のいくつかの点において、開発者は別
のソケット選択せずに、手続きは終了する。
【0058】図9は、いったんプラグが別の部品から指
名されたときに、選択された部品のソケットを決定する
手続き700を示している。このようにして、部品のプラ
グは別の部品のソケットに接続される。次につづくステ
ップは、図5で説明される。例えば、開発者は、部品"a
ccumulator"を選択し、インスペクタ206のコラム630に
表示されているプラグ"accumulate"の一つを選択した。
今、このプラグ"accumulate"は、選択された部品のソケ
ットにマッチする。選択された部品は、部品"naming co
ntext"である。この手続きは、ステップ702で、選択さ
れた備品658に対応するコンポーネントによりサポート
されるインタフェースを引き出すことにより開始され
る。このインタフェースは、図6のステップ302と同様
の方法で、引き出される。次に、ステップ703で、変数
Current Path が空集合に設定され、別の変数 Current
Interface は、引き出されたインタフェースに設定され
る。変数 Current Path は、選択されるべき現在のソケ
ットを名付けるパスを示す。変数 Current Interface
は、フィルタリングされている現在のインタフェースを
示す。"トンネリング"により、現在のインタフェースを
追跡する必要がある。
名されたときに、選択された部品のソケットを決定する
手続き700を示している。このようにして、部品のプラ
グは別の部品のソケットに接続される。次につづくステ
ップは、図5で説明される。例えば、開発者は、部品"a
ccumulator"を選択し、インスペクタ206のコラム630に
表示されているプラグ"accumulate"の一つを選択した。
今、このプラグ"accumulate"は、選択された部品のソケ
ットにマッチする。選択された部品は、部品"naming co
ntext"である。この手続きは、ステップ702で、選択さ
れた備品658に対応するコンポーネントによりサポート
されるインタフェースを引き出すことにより開始され
る。このインタフェースは、図6のステップ302と同様
の方法で、引き出される。次に、ステップ703で、変数
Current Path が空集合に設定され、別の変数 Current
Interface は、引き出されたインタフェースに設定され
る。変数 Current Path は、選択されるべき現在のソケ
ットを名付けるパスを示す。変数 Current Interface
は、フィルタリングされている現在のインタフェースを
示す。"トンネリング"により、現在のインタフェースを
追跡する必要がある。
【0059】ステップ704では、Current Interface の
すべての属性がタイプオブジェクトに決定される。この
ステップ704は、図6のステップ304と同様に実行され
る。加えて、リードオンリーであるこれらの属性も決定
される。これは、たとえ部品の属性がリードオンリーで
あっても、それがタイプオブジェクトの属性であれば、
接続を通してプラグへ値を送るためのソケットとして使
えるからである。いったん、こられの属性が決定される
と、それらは、インスペクタに名前とタイプによりリス
トアップされる。これらの属性は、インスペクタの最初
の理用可能なコラムにリストアップされる。例えば、"n
aming context"が決定された値をもっていれば、それら
は、図5のインスペクタの2番目のコラム606にリストア
ップされる。
すべての属性がタイプオブジェクトに決定される。この
ステップ704は、図6のステップ304と同様に実行され
る。加えて、リードオンリーであるこれらの属性も決定
される。これは、たとえ部品の属性がリードオンリーで
あっても、それがタイプオブジェクトの属性であれば、
接続を通してプラグへ値を送るためのソケットとして使
えるからである。いったん、こられの属性が決定される
と、それらは、インスペクタに名前とタイプによりリス
トアップされる。これらの属性は、インスペクタの最初
の理用可能なコラムにリストアップされる。例えば、"n
aming context"が決定された値をもっていれば、それら
は、図5のインスペクタの2番目のコラム606にリストア
ップされる。
【0060】ステップ706では、引数なしでオブジェク
トのタイプを返す Current Interface に定義されてい
るすべてのオペレーションを同定する。それらのオペレ
ーションは、タイプオブジェクトを返すので、ソケット
と考えてよい。また、引数なしのオペレーションを同定
することが、より望ましい。ある実施例では、1以上の
引数をとるオペレーションも同定される。引数なしのオ
ペレーションだけの同定に制限することにより、ソケッ
トが迅速に同定される。もしオペレーションが一つ以上
の引数をとると、その引数が必要とする値を供給するた
めに、それぞれの引数に適切なソケットを見つける必要
がある。いったん、それらのオペレーションが同定され
ると、それらは、インスペクタにより名前とタイプでリ
ストアップされる。同時に、インスペクタにリストアッ
プされる属性とオペレーションは、"エレメント"と呼ば
れる。図5にあるように、"naming context"のために決
定されたすべてのエレメントは、第二コラムに表示され
る。例えば、それらのエレメントは、"itself"と"new_c
ontext"である。
トのタイプを返す Current Interface に定義されてい
るすべてのオペレーションを同定する。それらのオペレ
ーションは、タイプオブジェクトを返すので、ソケット
と考えてよい。また、引数なしのオペレーションを同定
することが、より望ましい。ある実施例では、1以上の
引数をとるオペレーションも同定される。引数なしのオ
ペレーションだけの同定に制限することにより、ソケッ
トが迅速に同定される。もしオペレーションが一つ以上
の引数をとると、その引数が必要とする値を供給するた
めに、それぞれの引数に適切なソケットを見つける必要
がある。いったん、それらのオペレーションが同定され
ると、それらは、インスペクタにより名前とタイプでリ
ストアップされる。同時に、インスペクタにリストアッ
プされる属性とオペレーションは、"エレメント"と呼ば
れる。図5にあるように、"naming context"のために決
定されたすべてのエレメントは、第二コラムに表示され
る。例えば、それらのエレメントは、"itself"と"new_c
ontext"である。
【0061】ステップ708は、使用者がインスペクタ
のコラムの一つにあるソケットのリストからエレメント
を選んだかどうかを確認する。これがこの手続きの最初
の通過であり、またCurrent Interfaceがサポートされ
ているインタフェースであるならば、この部品のための
上記の同定されたソケットの全ては、インスペクタの最
初のコラムに現れるであろう。このようにして、使用者
は、エレメント"itself"を選ぶかもしれないし、決定さ
れた属性あるいは操作の一つを選んでもよい。例に関し
て、図5は、開発者が"naming context"部から目立つよ
うにされたソケット"new_context"を選んだような状況
を示している。しかし、開発者がエレメントを選ばない
ならば、制御は以下で説明されるステップ714に移
る。しかし、別のエレメントを開発者が選ぶならば、制
御がステップ709へ移る。
のコラムの一つにあるソケットのリストからエレメント
を選んだかどうかを確認する。これがこの手続きの最初
の通過であり、またCurrent Interfaceがサポートされ
ているインタフェースであるならば、この部品のための
上記の同定されたソケットの全ては、インスペクタの最
初のコラムに現れるであろう。このようにして、使用者
は、エレメント"itself"を選ぶかもしれないし、決定さ
れた属性あるいは操作の一つを選んでもよい。例に関し
て、図5は、開発者が"naming context"部から目立つよ
うにされたソケット"new_context"を選んだような状況
を示している。しかし、開発者がエレメントを選ばない
ならば、制御は以下で説明されるステップ714に移
る。しかし、別のエレメントを開発者が選ぶならば、制
御がステップ709へ移る。
【0062】図8のステップ508と図9のステップ708
は、本発明の第1の見地では、開発者により実行され
る。また、第2の見地では、もしオブジェクトのインプ
リメンテーションが分散オブジェクトシステムに読み込
まれていれば、そのステップは自動的に実行される。例
えば、いったんインプリメンテーションがコンポジショ
ンビルダを使って、開発者により構築されると、そのイ
ンプリメンテーションは計算機に可読なメディアに保存
される。ある部品から別の部品への接続は、一つ目の部
品のプラグと2つ目の部品のソケットの名前により単順
に保存される。この場合、ステップ508または708で開発
者がソケットのリストkらエレメントを選択するかわり
に、保存されたエレメントが単順にファイルから読み出
され、選択されたソケットして同定される。
は、本発明の第1の見地では、開発者により実行され
る。また、第2の見地では、もしオブジェクトのインプ
リメンテーションが分散オブジェクトシステムに読み込
まれていれば、そのステップは自動的に実行される。例
えば、いったんインプリメンテーションがコンポジショ
ンビルダを使って、開発者により構築されると、そのイ
ンプリメンテーションは計算機に可読なメディアに保存
される。ある部品から別の部品への接続は、一つ目の部
品のプラグと2つ目の部品のソケットの名前により単順
に保存される。この場合、ステップ508または708で開発
者がソケットのリストkらエレメントを選択するかわり
に、保存されたエレメントが単順にファイルから読み出
され、選択されたソケットして同定される。
【0063】ステップ709では、前のCurrent Pathの値
に開発者に選択されたエレメントを加えた値が、変数Cu
rrent Pathに割り当てられる。例えば、図5は、変数Cu
rrent Pathが"naming contex, new_contex"に設定され
た状況を示している。次に、ステップ710で、もっとも
新しく選択されたソケットのインタフェースが引き出さ
れる。加えて、変数Current Interfaceがその新しく引
き出されたインタフェースに等しくなるように更新され
る。次に、その新しく引き出されたインタフェースは、
前述のように、それが供給するソケットを決定するため
に処理されなければならない。よって、ステップ704と7
06が、それらの新しいソケットを決定するために、繰り
返される。よって、ステップ712では、インスペクタの
新しいコラムが初期化され、Current Interface から決
まる新しいソケットを保持するために、そのコラムが表
示される。例えば、図5は、"new_context"と題された
新しい第3コラム608が初期化され、表示されている状況
を示す。そのコラムは、第2コラムに表示されているよ
うに、"naming context"の"new_context"ソケットのた
めのすべてのソケットを表示しているので、"new_conte
xt"と題される。
に開発者に選択されたエレメントを加えた値が、変数Cu
rrent Pathに割り当てられる。例えば、図5は、変数Cu
rrent Pathが"naming contex, new_contex"に設定され
た状況を示している。次に、ステップ710で、もっとも
新しく選択されたソケットのインタフェースが引き出さ
れる。加えて、変数Current Interfaceがその新しく引
き出されたインタフェースに等しくなるように更新され
る。次に、その新しく引き出されたインタフェースは、
前述のように、それが供給するソケットを決定するため
に処理されなければならない。よって、ステップ704と7
06が、それらの新しいソケットを決定するために、繰り
返される。よって、ステップ712では、インスペクタの
新しいコラムが初期化され、Current Interface から決
まる新しいソケットを保持するために、そのコラムが表
示される。例えば、図5は、"new_context"と題された
新しい第3コラム608が初期化され、表示されている状況
を示す。そのコラムは、第2コラムに表示されているよ
うに、"naming context"の"new_context"ソケットのた
めのすべてのソケットを表示しているので、"new_conte
xt"と題される。
【0064】ステップ712から、制御がステップ704にル
ープバックする。そして、ステップ704では、Current I
nterfaceのソケットが決定され、開発者がそれらのソケ
ットの一つを選択できる。例えば、図5は、オブジェク
ト"new_context"がフィルタリングされ、その決定され
たソケットが第3コラムに表示されている状況を示して
いる。オブジェクト"new_context"のソケット"itself"
と"new_context"が表示されている。これらの新しいソ
ケットが表示されているにもかかわらず、開発者はその
新しいソケットの一つを選択せずに、第2コラムで強調
されたソケット"new_context"を残しておくことに、留
意してほしい。ソケットとインタフェースの性質に依存
して、この処理は延々繰り返されるように思われる。し
かし、インタフェースの特定のインプリメンテーション
に基づき、ステップ708のいくつかの点において、開発
者は別のソケット選択せずに、制御は、ステップ714に
移る。
ープバックする。そして、ステップ704では、Current I
nterfaceのソケットが決定され、開発者がそれらのソケ
ットの一つを選択できる。例えば、図5は、オブジェク
ト"new_context"がフィルタリングされ、その決定され
たソケットが第3コラムに表示されている状況を示して
いる。オブジェクト"new_context"のソケット"itself"
と"new_context"が表示されている。これらの新しいソ
ケットが表示されているにもかかわらず、開発者はその
新しいソケットの一つを選択せずに、第2コラムで強調
されたソケット"new_context"を残しておくことに、留
意してほしい。ソケットとインタフェースの性質に依存
して、この処理は延々繰り返されるように思われる。し
かし、インタフェースの特定のインプリメンテーション
に基づき、ステップ708のいくつかの点において、開発
者は別のソケット選択せずに、制御は、ステップ714に
移る。
【0065】ステップ714では、第3コラムから新しいソ
ケットが選択されていないので、現在強調されているソ
ケットは、Current Path の値により名付けられる。例
えば、図5のインスペクタ206は、Current Path の最後
の値が、"naming context, new_context"である状況を
示している。もし開発者が第3コラムからソケット"itse
lf"を選択したとすると、Current Path の最後の値は"n
aming context, new_context, itself"となるだろう。
このソケットは、以前に選択された別の部品のプラグへ
の接続を確立するために使われる。図5は、選択された
ソケットが、部品650のプラグ"accumulate"に接続され
ることが望ましい部品658"naming context"の"new_cont
ext"である状況を示している。
ケットが選択されていないので、現在強調されているソ
ケットは、Current Path の値により名付けられる。例
えば、図5のインスペクタ206は、Current Path の最後
の値が、"naming context, new_context"である状況を
示している。もし開発者が第3コラムからソケット"itse
lf"を選択したとすると、Current Path の最後の値は"n
aming context, new_context, itself"となるだろう。
このソケットは、以前に選択された別の部品のプラグへ
の接続を確立するために使われる。図5は、選択された
ソケットが、部品650のプラグ"accumulate"に接続され
ることが望ましい部品658"naming context"の"new_cont
ext"である状況を示している。
【0066】ステップ714は、選択されたソケットのCur
rent Interfaceがインタフェースと同じか、またはプラ
グタイプのインタフェースから引き出されたかをチェッ
クする。もしそうでなければ、既与のプラグから選択さ
れたソケットへの接続はない。また、ステップ718で、
接続は不完全なまま残り、名付けられるソケットもな
く、この手続きは終了する。しかし、もし選択されたソ
ケットのCurrent Interfaceが、プラグタイプのインタ
フェースを同じであるか、または、またはプラグタイプ
のインタフェースから引き出されている場合は、ステッ
プ716で接続が完成する。この場合、マッチングしたソ
ケットは、Current Interfaceにより名付けられ、手続
きは終了する。例えば、図5は、部品"accumulator"の
以前に選択されたプラグ"accumulate"に、部品"naming
context"のソケット"new_context"がマッチする状況を
示している。よって、2つの部品間の強調された接続線6
56が表示しているように、接続が形成される。
rent Interfaceがインタフェースと同じか、またはプラ
グタイプのインタフェースから引き出されたかをチェッ
クする。もしそうでなければ、既与のプラグから選択さ
れたソケットへの接続はない。また、ステップ718で、
接続は不完全なまま残り、名付けられるソケットもな
く、この手続きは終了する。しかし、もし選択されたソ
ケットのCurrent Interfaceが、プラグタイプのインタ
フェースを同じであるか、または、またはプラグタイプ
のインタフェースから引き出されている場合は、ステッ
プ716で接続が完成する。この場合、マッチングしたソ
ケットは、Current Interfaceにより名付けられ、手続
きは終了する。例えば、図5は、部品"accumulator"の
以前に選択されたプラグ"accumulate"に、部品"naming
context"のソケット"new_context"がマッチする状況を
示している。よって、2つの部品間の強調された接続線6
56が表示しているように、接続が形成される。
【0067】以上に説明した本発明は、計算機システム
に蓄えられているデータを起動する様々なプロセスステ
ップを稼働する。これらのステップは、物理量の物理的
操作を必要とする。通常この物理量は、保存、変換、統
合、比較等の操作が可能な電気的あるいは磁気的な信号
である。共通の利用と言う意味で、これらの信号をビッ
ト、値、エレメント、変数、文字、データ構造などで参
照するのが便利である。しかし、これらのすべては、適
切な物理量に関連しており、それらの物理量に単に便利
なレベルを適用しているにすぎない。
に蓄えられているデータを起動する様々なプロセスステ
ップを稼働する。これらのステップは、物理量の物理的
操作を必要とする。通常この物理量は、保存、変換、統
合、比較等の操作が可能な電気的あるいは磁気的な信号
である。共通の利用と言う意味で、これらの信号をビッ
ト、値、エレメント、変数、文字、データ構造などで参
照するのが便利である。しかし、これらのすべては、適
切な物理量に関連しており、それらの物理量に単に便利
なレベルを適用しているにすぎない。
【0068】さらに、行われる操作は、同定、実行、比
較などの用語で表現される。ここで記述されているどの
操作においても、操作とはマシン操作である。本発明の
操作を実行するために役に立つマシンは、汎用デジタル
計算機とその他の類似したデバイスを含んでいる。すべ
ての場合で、計算機を操作するときの操作方法と計算自
身の方法は別物である。本発明は、望ましい物理的信号
を生成するために、電気的あるいはその他の物理的信号
を処理する際の、計算機の操作方法に関係している。
較などの用語で表現される。ここで記述されているどの
操作においても、操作とはマシン操作である。本発明の
操作を実行するために役に立つマシンは、汎用デジタル
計算機とその他の類似したデバイスを含んでいる。すべ
ての場合で、計算機を操作するときの操作方法と計算自
身の方法は別物である。本発明は、望ましい物理的信号
を生成するために、電気的あるいはその他の物理的信号
を処理する際の、計算機の操作方法に関係している。
【0069】また、本発明は、これらの操作を実行する
機構にも関連している。この機構は、要求された目的の
ために特化されて構成されてもよいし、計算機に保存さ
れたプログラムにより選択的に実行される汎用計算機で
もよい。ここでのプロセスは、本質的に、いかなる特定
の計算機や機構にも関連しない。特に、様々な汎用マシ
ンが、ここでの考えに従って書かれたプログラムにより
利用されるだろう。また、より特化した機構を構成する
にも便利である。様々なマシンに要求される構造は、こ
れまでの記述からわかるだろう。
機構にも関連している。この機構は、要求された目的の
ために特化されて構成されてもよいし、計算機に保存さ
れたプログラムにより選択的に実行される汎用計算機で
もよい。ここでのプロセスは、本質的に、いかなる特定
の計算機や機構にも関連しない。特に、様々な汎用マシ
ンが、ここでの考えに従って書かれたプログラムにより
利用されるだろう。また、より特化した機構を構成する
にも便利である。様々なマシンに要求される構造は、こ
れまでの記述からわかるだろう。
【0070】加えて、本発明は、様々な計算操作を実行
するためのプログラム命令を含む、計算機が可読である
メディアに関連している。メディアとプログラム命令
は、本発明の目的のために特に設計され、構成されても
よいし、ソフトウエアの技術者によく知られたものでも
よい。計算機可読なメディアの例としては、ハードディ
スク、フロッピーディスク、磁気テープのような磁気メ
ディア、CD-ROMのような光学メディア、フロプティカル
ディスクのような磁気光学メディア、さらに、ROMやRAM
のようなプログラム命令に特化したハードウエア装置な
どがある。プログラム命令の例としては、コンパイラに
より生成される機械語と、インタプリタにより実行され
る高レベルなコードを含んだファイルの両方がある。
するためのプログラム命令を含む、計算機が可読である
メディアに関連している。メディアとプログラム命令
は、本発明の目的のために特に設計され、構成されても
よいし、ソフトウエアの技術者によく知られたものでも
よい。計算機可読なメディアの例としては、ハードディ
スク、フロッピーディスク、磁気テープのような磁気メ
ディア、CD-ROMのような光学メディア、フロプティカル
ディスクのような磁気光学メディア、さらに、ROMやRAM
のようなプログラム命令に特化したハードウエア装置な
どがある。プログラム命令の例としては、コンパイラに
より生成される機械語と、インタプリタにより実行され
る高レベルなコードを含んだファイルの両方がある。
【0071】図10は、本発明に適した典型的な計算機
システムである。計算機システム100は、主記憶装置106
(典型的には、RAM)と主記憶装置104(典型的には、RO
M)を含む記憶装置に繋がっている任意個のプロセッサ
(CPU)102をもつ。技術的には良く知られているよう
に、主記憶装置104は、データと命令をCPUの方への一方
向だけに送り、主記憶106は、両方向に送る。これらの
主記憶装置は、双方とも前述の計算機可読なメディアで
ある。大容量記憶装置108も、CPU102と双方向で繋がれ
ており、付加的な記憶容量を供給して、前述の計算機可
読なメディアのいずれをも含む。大容量記憶装置108
は、プログラム、データなどを保存するために使われ
る。通常は、主記憶よりも遅いハードディスクなどの、
2次記憶メディアである。大容量記憶装置108上のデータ
は、主記憶106の一部の仮想記憶として、標準的な方法
で統合される。
システムである。計算機システム100は、主記憶装置106
(典型的には、RAM)と主記憶装置104(典型的には、RO
M)を含む記憶装置に繋がっている任意個のプロセッサ
(CPU)102をもつ。技術的には良く知られているよう
に、主記憶装置104は、データと命令をCPUの方への一方
向だけに送り、主記憶106は、両方向に送る。これらの
主記憶装置は、双方とも前述の計算機可読なメディアで
ある。大容量記憶装置108も、CPU102と双方向で繋がれ
ており、付加的な記憶容量を供給して、前述の計算機可
読なメディアのいずれをも含む。大容量記憶装置108
は、プログラム、データなどを保存するために使われ
る。通常は、主記憶よりも遅いハードディスクなどの、
2次記憶メディアである。大容量記憶装置108上のデータ
は、主記憶106の一部の仮想記憶として、標準的な方法
で統合される。
【0072】また、CPU102は、インタフェース110と繋
がっている。インタフェース110は、ビデオモニタ、ト
ラックボール、マウス、キーボード、マイク、感触ディ
スプレイ、カードリーダ、テープリーダ、タブレット、
音声認識装置などの装置のような入出力装置である。最
後に、CPU102は、オプションとして、計算機や、112に
あるようなネットワーク接続による遠隔通信ネットワー
クにも繋がる。そのようなネットワーク接続により、CP
Uはネットワークから情報を受け取ったり、または、前
述のステップを実行することによりネットワークに情報
を出力する。これらの装置は、計算機ハードウエアやソ
フトウエア技術において、馴染みのあるものである。
がっている。インタフェース110は、ビデオモニタ、ト
ラックボール、マウス、キーボード、マイク、感触ディ
スプレイ、カードリーダ、テープリーダ、タブレット、
音声認識装置などの装置のような入出力装置である。最
後に、CPU102は、オプションとして、計算機や、112に
あるようなネットワーク接続による遠隔通信ネットワー
クにも繋がる。そのようなネットワーク接続により、CP
Uはネットワークから情報を受け取ったり、または、前
述のステップを実行することによりネットワークに情報
を出力する。これらの装置は、計算機ハードウエアやソ
フトウエア技術において、馴染みのあるものである。
【0073】明確な理解のために発明を詳しく説明して
きたが、付加的な変更と改良があるだろう。例えば、本
発明は、様々な方法で利用可能である。一例として、開
発者がコンポジションビルダで部品間の接続を構成する
とき、インタフェース定義言語(IDL)のフィルタリン
グが起動される。しかし、一度オブジェクトのインプリ
メンテーションが構成されると、そのインプリメンテー
ションは分散オブジェクトシステムに読み返されること
が望ましい。2つめの例として、そのインプリメンテー
ションが分散オブジェクトシステムに読み返されるとき
に、IDLのフィルタリングが起こる。本発明は、他の状
況でも同様に実現される。また、本発明のフィルタリン
グ技術が視覚的アプリケーションビルダに特化された文
脈で記述されてはいるが、任意の適切なアプリケーショ
ンビルダにおいて本発明は実現できると考えられる。さ
らに、特殊なグラフィックインタフェースが記述された
が、任意の適切なグラフィックインタフェースにおいて
本発明は実現できると考えられる。よって、記述してき
た実施例は、説明のためのものであり、それらに制限さ
れないと考えていただきたい。そして、本発明は、ここ
で記述された詳細に限定されるものではない。
きたが、付加的な変更と改良があるだろう。例えば、本
発明は、様々な方法で利用可能である。一例として、開
発者がコンポジションビルダで部品間の接続を構成する
とき、インタフェース定義言語(IDL)のフィルタリン
グが起動される。しかし、一度オブジェクトのインプリ
メンテーションが構成されると、そのインプリメンテー
ションは分散オブジェクトシステムに読み返されること
が望ましい。2つめの例として、そのインプリメンテー
ションが分散オブジェクトシステムに読み返されるとき
に、IDLのフィルタリングが起こる。本発明は、他の状
況でも同様に実現される。また、本発明のフィルタリン
グ技術が視覚的アプリケーションビルダに特化された文
脈で記述されてはいるが、任意の適切なアプリケーショ
ンビルダにおいて本発明は実現できると考えられる。さ
らに、特殊なグラフィックインタフェースが記述された
が、任意の適切なグラフィックインタフェースにおいて
本発明は実現できると考えられる。よって、記述してき
た実施例は、説明のためのものであり、それらに制限さ
れないと考えていただきたい。そして、本発明は、ここ
で記述された詳細に限定されるものではない。
【図1】図1は、本発明の一実施例である分散オブジェ
クトシステムのオブジェクト要求ブローカの概観図であ
る。
クトシステムのオブジェクト要求ブローカの概観図であ
る。
【図2】図2は、図1に示されている視覚的アプリケー
ションビルダのブロック図である。
ションビルダのブロック図である。
【図3】図3は、本発明における、視覚的アプリケーシ
ョンビルダにおけるコンポーネントカタログ、コンポジ
ションビルダそして実行時オブジェクトの関係を示す関
係図である。
ョンビルダにおけるコンポーネントカタログ、コンポジ
ションビルダそして実行時オブジェクトの関係を示す関
係図である。
【図4】図4は、インスペクタが特性値を設定するため
に使われる本発明のコンポジションビルダの概観図であ
る。
に使われる本発明のコンポジションビルダの概観図であ
る。
【図5】図5は、インスペクタがプラグをソケットに接
続するために利用されている本発明のコンポジションビ
ルダの概観図である。
続するために利用されている本発明のコンポジションビ
ルダの概観図である。
【図6】図6は、本発明におけるコンポジションビルダ
において、与えられた部品のすべてのプラグを決定する
ためのフローチャートである。
において、与えられた部品のすべてのプラグを決定する
ためのフローチャートである。
【図7】図7は、本発明において、特定のソケットのた
めに与えられた部品のすべての利用可能なプラグを決定
するフローチャートである。
めに与えられた部品のすべての利用可能なプラグを決定
するフローチャートである。
【図8】図8は、本発明において、他の部品と接続する
ために使われる、部品のソケットを決定するためのフロ
ーチャートである。
ために使われる、部品のソケットを決定するためのフロ
ーチャートである。
【図9】図9は、本発明におけて、与えられたプラグに
接続するために使われる、部品のマッチするソケットを
決定するためのフローチャートである。
接続するために使われる、部品のマッチするソケットを
決定するためのフローチャートである。
【図10】図10は、本発明を実装するための典型的な
計算機システムの構成図である。
計算機システムの構成図である。
【図11】図11は、本発明における、図2の視覚的ア
プリケーションビルダの概要図であり、分散オブジェク
トシステムでのオブジェクト指向アプリケーションを構
成する様子をより詳しく説明している。
プリケーションビルダの概要図であり、分散オブジェク
トシステムでのオブジェクト指向アプリケーションを構
成する様子をより詳しく説明している。
10…分散オブジェクトシステム、14…ORBオブジ
ェクト・インプリメンテーション、16…オブジェクト
開発ファシリティ、20…クライアント、22…サロゲ
ート 24…メソッド表(メソッド・テーブル)、25…スタ
ブ関数、26…動的起動インタフェイス、28…標準イ
ンプリメンテーション・スイート 30…動的スケルトン、32…静的スケルトン、34…
ORBインタフェイス、36…サブコントラクト、38
…トランスポート層、42…安全プロトコル、44…タ
イプコード/ANY、46…ORBデーモン、48…イ
ンタフェース・レポジトリ、50…インプリメンテーシ
ョン・レポジトリ、52…ネーミング・サービス、54
…セキュリティ・サーバ、56…単純パージステンス
ェクト・インプリメンテーション、16…オブジェクト
開発ファシリティ、20…クライアント、22…サロゲ
ート 24…メソッド表(メソッド・テーブル)、25…スタ
ブ関数、26…動的起動インタフェイス、28…標準イ
ンプリメンテーション・スイート 30…動的スケルトン、32…静的スケルトン、34…
ORBインタフェイス、36…サブコントラクト、38
…トランスポート層、42…安全プロトコル、44…タ
イプコード/ANY、46…ORBデーモン、48…イ
ンタフェース・レポジトリ、50…インプリメンテーシ
ョン・レポジトリ、52…ネーミング・サービス、54
…セキュリティ・サーバ、56…単純パージステンス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グレゴリー ビー. ニュイエンズ アメリカ合衆国, カリフォルニア州, メンロ パーク, ローレル アヴェニュ ー 403 (72)発明者 ハンズ イー. ムッラー アメリカ合衆国, カリフォルニア州, サラトガ, メローウッド ドライヴ 12160
Claims (18)
- 【請求項1】 分散オブジェクト・アプリケーション・
プログラムを定義するために、プラグとソケットとを有
する部品(parts)が相互接続される分散オブジェクト
・アプリケーション・ビルダ装置(apparatus)におい
て、前記部品はコンポーネントに対応すると共に分散オ
ブジェクトを表現し、第1の部品の前記プラグを決定す
る計算機にインプリメントされる(computer-implement
ed)方法であって、 前記第1の部品を同定する部品同定ステップと、 前記第1の部品に対応する第1のコンポーネントのため
のインタフェースを引き出す(retrieve)インタフェー
ス引き出しステップと、 関連づけられる属性タイプ(attribute type)を有する
引き出された前記インタフェースから各属性を決定する
属性決定ステップと、 引き出されたインタフェースから、1つのオペレーショ
ン引数(operation argument)を必要とするオペレーシ
ョンを決定するオペレーション決定ステップであって、
決定された各オペレーション引数は関連づけられるオペ
レーション引数タイプをも有し、 前記第1のコンポーネントに関連づけられるファクトリ
・メソッドからファクトリ引数リストを引き出すリスト
引き出しステップと、 引き出された前記ファクトリ引数リストから各入力引数
を同定する引数同定ステップであって、前記入力引数は
関連づけられる入力引数タイプを有し、 前記第1の部品の決定された前記プラグを表示する表示
ステップと、を備える方法。 - 【請求項2】 第2の部品を同定するするステップと、 前記第2の部品に関連づけられるソケットを同定するス
テップと、 前記第2の部品の選択された前記ソケットが前記第1の
部品の決定されたプラグに適合している(compatible)
かどうかを決定するステップと、 前記第2の部品である選択された前記ソケットが前記第
1の部品である決定された前記プラグに適用すると決定
されるとき、前記第2の部品の選択された前記ソケット
が前記第1の部品である決定された前記プラグに適合す
ることを表示するステップと、を更に備える請求項1に
記載のの方法。 - 【請求項3】 前記第2の部品の選択された前記ソケッ
トが決定されるプラグに適合するかを決定するステップ
は、決定されたプラグの前記プラグタイプが、CORBAオ
ブジェクト、選択された前記ソケットのタイプ、および
選択された前記ソケットが継承できるクラスのタイプで
あることの一つであるかかを決定することによって実行
される、請求項2に記載の方法。 - 【請求項4】 前記分散オブジェクト・アプリケーショ
ン・ビルダ装置は、グラフィカル・ユーザ・インタフェ
ースを含み、前記第1の部品および前記第2の部品がグ
ラフィカルな表示によって表現され、前記第1の部品お
よび前記第2の部品を同定する前記部品同定ステップ
は、前記第1の部品と前記第2の部品との選択動作を実
行することを含み、決定されたプラグを示す表示ステッ
プと、前記第2の部品の選択された前記ソケットが適合
することを示す表示ステップとが視覚的に実行される、
請求項2または請求項3に記載の方法。 - 【請求項5】 各属性の属性タイプ、各オペレーション
引数のオペレーション引数タイプ、および各入力引数の
入力引数タイプはオブジェクトタイプである、請求項1
から請求項4のいずれかに記載の方法。 - 【請求項6】 引き出された前記インタフェースから各
属性を決定するステップは引き出されたインタフェース
の全属性の決定することを含み、引き出された前記イン
タフェースから各オペレーションを決定するステップは
一つのオペレーション引数を必要とする引き出された前
記インタフェースからの全オペレーションの決定するこ
とをを含む、請求項1から請求項5のいずれかに記載の
方法。 - 【請求項7】 分散オブジェクト・アプリケーション・
プログラムを定義するために、プラグとソケットを有す
る部品が相互接続される分散オブジェクト・アプリケー
ション・ビルダ機構において、前記部品はコンポーネン
トに対応すると共に、分散オブジェクトを表現し、第1
の部品のソケットを決定する計算機にインプリメントさ
れる方法であって、 前記第1の部品を同定する第1同定ステップと、 前記第1の部品に対応する第1のコンポーネントのため
のインタフェースを引き出すインタフェース引き出しス
テップと、 関連づけられる属性タイプを有する引き出された前記イ
ンタフェースから各属性を決定する属性決定ステップ
と、 関連づけられるオペレーション結果タイプを有するオペ
レーション結果を返す引き出されたインタフェースから
各オペレーションを決定するオペレーション決定ステッ
プと、 前記第1の部品の決定された前記ソケットを示す(indi
cate)表示ステップと、を備える方法。 - 【請求項8】 第2の部品を同定する第2の同定ステッ
プと、 前記第2の部品に関連づけられたプラグを選択するプラ
グ選択ステップと、 前記第2の部品の選択された前記プラグが前記第1の部
品の決定された前記ソケットに適合するかどうかを決定
する決定ステップと、 前記第2の部品である選択された前記プラグが前記第1
の部品である決定された前記ソケットに適合すると決定
されたとき、前記第2の部品である選択された前記プラ
グが前記第1の部品である前記ソケットに適合すること
を表示する適合表示ステップと、を更に備える請求項7
に記載の方法。 - 【請求項9】 前記第2の部品の選択された前記プラグ
が決定されるソケットに適合することを決定するステッ
プは、決定された前記ソケットのソケットタイプが、選
択された前記プラグのタイプ、および、選択された前記
プラグが継承するクラスの前記タイプのいずれであるか
を決定することによって実行される、請求項8に記載の
方法。 - 【請求項10】 前記分散オブジェクトアプリケーショ
ンビルダ装置が、グラフィカル・ユーザ・インタフェー
スを含み、前記第1の部品および前記第2の部品がグラ
フィカルな表示で表現され、前記第1の部品および前記
第2の部品を同定する前記ステップは、前記第1の部品
および前記第2の部品の選択動作を実行することを含
み、決定された前記ソケットを示す表示ステップと、前
記第2の部品の選択された前記プラグが適合することの
示す表示ステップとが視覚的に実行される、請求項8ま
たは請求項9のいずれかに記載の方法。 - 【請求項11】 各属性の属性タイプおよび各オペレー
ション結果の前記オペレーション結果タイプは、オブジ
ェクトタイプである、請求項7から請求項10のいずれ
かに記載の方法。 - 【請求項12】 引き出された前記インタフェースから
各属性を決定するステップは引き出された前記インタフ
ェースの全属性を決定することを含み、引き出された前
記インタフェースから各オペレーションを決定するステ
ップはオペレーションの結果を返す引き出された前記イ
ンタフェースからの前記全オペレーションを決定ずるこ
とを含む、請求項7から請求項11のいずれかに記載の
方法。 - 【請求項13】 前記第1の部品の決定され、且つ表示
されたソケットの一つを選択するソケット選択ステップ
と、 選択された前記ソケットに対応する選択されるコンポー
ネントのための選択されるインタフェースを引き出すイ
ンタフェース引き出しステップと、 選択された前記インタフェースから、関連づけられる属
性タイプを有する各属性を決定する属性決定ステップ
と、 選択された前記インタフェースから、関連づけられるオ
ペレーション結果タイプを有するオペレーション結果を
返す各オペレーションを決定し、それによって同時に決
定された前記属性と決定された前記オペレーション結果
が選択された前記ソケットである前記ソケットを構成す
る、ステップと、 選択された前記ソケットである決定された前記ソケット
を示す表示ステップと、を備える請求項7から請求項1
2のいずれかに記載の方法。 - 【請求項14】 前記ソケットが再帰的な手法で決定さ
れ、階層順序(order )で視覚的に表示される、請求項
13に記載の方法。 - 【請求項15】 分散オブジェクト・アプリケーション
・プログラムを定義するために、プラグとソケットを有
する部品が相互接続される分散オブジェクト・アプリケ
ーション・ビルダ機構において、前記部品はコンポーネ
ントに対応すると共に分散オブジェクトを表現し、前記
コンポーネントはコンポーネント・カタログに配置さ
れ、分散オブジェクト・アプリケーション・プログラム
を生成する計算機にインプリメントされる方法であっ
て、 前記コンポーネント・カタログから、第1のコンポーネ
ントを選択するコンポーネント選択ステップと、 前記第1のコンポーネントに対応する第1の部品を生成
する部品生成ステップと、 前記第1の部品に対応する第1のコンポーネントのため
の第1のインタフェースを引き出すインタフェース引き
出しステップと、 前記第1の部品のためのプラグとソケットのリストを作
るために、前記第1のインタフェースをフィルタリング
(filtering)するステップと、 前記コンポーネント・カタログから第2のコンポーネン
トを選択するコンーネント選択ステップと、 前記第2のコンポーネントに対応する第2の部品を生成
するステップと、 前記第2の部品に対応する前記第2のコンポーネントの
ための第2のインタフェースを引き出すステップと、 前記第2の部品のためのプラグとソケットのリストを作
るために、前記第2のインタフェースをフィルタリング
するステップと、 前記分散オブジェクト・アプリケーション・プログラム
を少なくとも部分的に定義するために、前記第1の部品
から前記第2の部品である第2のソケットへ第1のプラ
グを接続し、接続を形成して、それにより前記分散オブ
ジェクト・アプリケーション・プログラムが実行される
(executed)とき、前記接続を通して前記第1の部品に
情報が送るように前記第2の部品が配置される、ステッ
プと、を備える方法。 - 【請求項16】 前記分散オブジェクト・アプリケーシ
ョン・ビルダ装置はグラフィカル・ユーザ・インタフェ
ースを有し、第1のコンポーネントを選択する上述のス
テップと第1のプラグを接続するステップとは、前記グ
ラフィカル・ユーザ・インタフェースにおいて選択ジェ
スチャ(selection gestures)により実行される、請求
項15に記載の方法。 - 【請求項17】 前記分散オブジェクト・アプリケーシ
ョン・ビルダ装置はコード生成ユニットを有し、前記分
散オブジェクト・アプリケーション・プログラムのため
のソースコードを生成するように、前記分散オブジェク
ト・アプリケーション・ビルダ装置において定義される
前記分散オブジェクト・アプリケーション・プログラム
を前記コード生成器に送る(deliver)ステップを、更
に備える請求項15または請求項16に記載の方法。 - 【請求項18】 分散オブジェクト・アプリケーション
・プログラムを定義するために、プラグとソケットを有
する部品が相互接続される分散オブジェクト・アプリケ
ーション・ビルダ装置において、第1の部品のソケット
の決定に使用するための計算機装置であって、前記部品
はコンポーネントに対応すると共に分散オブジェクトを
表し、 処理ユニットと、 前記処理ユニットに結合される入出力デバイス(devic
e)と、 前記処理ユニットと通信する記憶(storage)デバイス
であって、前記記憶デバイスは、その上で具現化され
(embodied)、以下のステップを達成する(effect)た
めの計算機が可読なプログラムコードをその計算機シス
テム内に(within)含み、前記ステップは、 前記第1の部品を同定するステップ、 前記第1の部品に対応する第1のコンポーネントのため
のインタフェースを引き出すステップ、 関連づけられる属性タイプを有する引き出された前記イ
ンタフェースから各属性を決定するステップ、 関連づけられるオペレーション結果タイプを有するオペ
レーションを返す引き出された前記インタフェースから
各オペレーションを決定するステップ、を有し、を備え
る計算機装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/675,094 US5949998A (en) | 1996-07-03 | 1996-07-03 | Filtering an object interface definition to determine services needed and provided |
| US08/675094 | 1996-07-03 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10105392A true JPH10105392A (ja) | 1998-04-24 |
Family
ID=24709031
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9193267A Pending JPH10105392A (ja) | 1996-07-03 | 1997-07-03 | 必要とされるサービスと供給されるサービスとを決定するためのオブジェクトインタフェース定義のフィルタリング |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US5949998A (ja) |
| EP (1) | EP0817034A3 (ja) |
| JP (1) | JPH10105392A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010282418A (ja) * | 2009-06-04 | 2010-12-16 | Denso Corp | ソースコード自動生成プログラム,ソースコード自動生成装置 |
| JP2010282286A (ja) * | 2009-06-02 | 2010-12-16 | Denso Corp | 開発支援装置,プログラム |
| JP2012212449A (ja) * | 1999-05-25 | 2012-11-01 | Oracle Internatl Corp | 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張 |
| JP2015052875A (ja) * | 2013-09-06 | 2015-03-19 | 日本電信電話株式会社 | ソフトウェアコンポーネント生成装置、ソフトウェアコンポーネント生成方法、及びマネジメントエンジンシステム |
Families Citing this family (78)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5664954A (en) * | 1996-03-28 | 1997-09-09 | General Motors Corporation | Spark plug boot assembly |
| US6182083B1 (en) | 1997-11-17 | 2001-01-30 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database |
| 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 |
| 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 |
| 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 |
| 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 |
| US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
| 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 |
| 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 |
| US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
| US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
| US5949998A (en) * | 1996-07-03 | 1999-09-07 | Sun Microsystems, Inc. | Filtering an object interface definition to determine services needed and provided |
| US5991535A (en) * | 1996-07-03 | 1999-11-23 | Sun Microsystems, Inc. | Visual composition tool for constructing application programs using distributed objects on a distributed object network |
| US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
| US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
| US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
| US6292827B1 (en) * | 1997-06-20 | 2001-09-18 | Shore Technologies (1999) Inc. | Information transfer systems and method with dynamic distribution of data, control and management of information |
| US6957427B1 (en) | 1997-10-15 | 2005-10-18 | Sun Microsystems, Inc. | Remote object activation in a distributed system |
| GB2334353B (en) * | 1998-02-12 | 2002-08-07 | Ibm | An apparatus,method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction stat |
| US6874119B2 (en) * | 1998-09-11 | 2005-03-29 | Genesys Telecommunications Laboratories, Inc. | Stored-media interface engine providing an abstract record of stored multimedia files within a multimedia communication center |
| US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
| KR20010034514A (ko) | 1998-02-26 | 2001-04-25 | 케네쓰 올센 | 원격 메소드를 식별하는 해시 판정 방법 및 시스템 |
| GB2335518A (en) * | 1998-03-18 | 1999-09-22 | Ibm | Triggering event causes creation of Coordinator transaction state object |
| US20020046228A1 (en) * | 1998-03-20 | 2002-04-18 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
| US6493870B1 (en) * | 1998-03-20 | 2002-12-10 | Sun Microsystems, Inc. | Methods and apparatus for packaging a program for remote execution |
| US6351843B1 (en) * | 1998-08-31 | 2002-02-26 | International Business Machines Corporation | Dynamically inserting a function into an application executable at runtime |
| US6427230B1 (en) * | 1998-11-09 | 2002-07-30 | Unisys Corporation | System and method for defining and managing reusable groups software constructs within an object management system |
| US7039673B1 (en) * | 1998-12-24 | 2006-05-02 | Computer Associates Think, Inc. | Method and apparatus for dynamic command extensibility in an intelligent agent |
| US6505343B1 (en) * | 1998-12-31 | 2003-01-07 | Intel Corporation | Document/view application development architecture applied to ActiveX technology for web based application delivery |
| US6296366B1 (en) * | 1999-03-01 | 2001-10-02 | Gregory Lee Hopps | Lighted decorative article having meridian-configured loops and method for visually signaling location of gift packages |
| US6785882B1 (en) * | 1999-05-24 | 2004-08-31 | Unisys Corporation | Process-driven tool interface for an object management system |
| US6807549B2 (en) * | 1999-06-03 | 2004-10-19 | B.I.S. Advanced Software Systems Ltd. | General purpose interpreter and database for accessing enterprise servers over an internet protocol network |
| US6845393B1 (en) | 1999-06-14 | 2005-01-18 | Sun Microsystems, Inc. | Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services |
| US6826744B1 (en) * | 1999-10-01 | 2004-11-30 | Vertical Computer Systems, Inc. | System and method for generating web sites in an arbitrary object framework |
| US6581094B1 (en) * | 1999-11-02 | 2003-06-17 | Sun Microsystems, Inc. | Apparatus and method for identifying a digital device based on the device's uniform device descriptor file that specifies the attributes of the device in a XML document in a networked environment |
| US6637019B1 (en) * | 2000-04-10 | 2003-10-21 | International Business Machines Corporation | Software modeling of computer hardware |
| US20030005407A1 (en) * | 2000-06-23 | 2003-01-02 | Hines Kenneth J. | System and method for coordination-centric design of software systems |
| DE10041072A1 (de) * | 2000-08-22 | 2002-03-14 | Siemens Ag | Verfahren zur automatischen Erzeugung von Programmcode |
| US6868193B1 (en) | 2000-09-08 | 2005-03-15 | Corel Inc. | Method and apparatus for varying automated data processing |
| US7853833B1 (en) | 2000-09-08 | 2010-12-14 | Corel Corporation | Method and apparatus for enhancing reliability of automated data processing |
| US6938030B1 (en) | 2000-09-08 | 2005-08-30 | Corel Corporation | Method and apparatus for facilitating accurate automated processing of data |
| US7296238B1 (en) | 2000-09-08 | 2007-11-13 | Corel Corporation | Method and apparatus for triggering automated processing of data |
| US6925593B1 (en) | 2000-09-08 | 2005-08-02 | Corel Corporation | Method and apparatus for transferring data during automated data processing |
| US7747673B1 (en) | 2000-09-08 | 2010-06-29 | Corel Corporation | Method and apparatus for communicating during automated data processing |
| US6961922B1 (en) * | 2000-09-08 | 2005-11-01 | Corel Corporation | Method and apparatus for defining operations to be performed during automated data processing |
| US6944865B1 (en) | 2000-09-08 | 2005-09-13 | Corel Corporation | Method and apparatus for saving a definition for automated data processing |
| US6850956B1 (en) | 2000-09-08 | 2005-02-01 | Corel Inc. | Method and apparatus for obtaining and storing data during automated data processing |
| US6854119B1 (en) * | 2000-09-29 | 2005-02-08 | International Business Machines Corporation | Method, apparatus and article of manufacture for tracking processes |
| US6996816B1 (en) * | 2000-10-02 | 2006-02-07 | Hewlett-Packard Development Company, L.P. | Utilization of third party legacy data list |
| US7010753B2 (en) * | 2000-10-27 | 2006-03-07 | Siemens Aktiengesellschaft | Anticipating drop acceptance indication |
| US7055105B2 (en) * | 2000-10-27 | 2006-05-30 | Siemens Aktiengesellschaft | Drop-enabled tabbed dialogs |
| US7062749B2 (en) * | 2000-12-15 | 2006-06-13 | Promenix, Inc. | Measuring, monitoring and tracking enterprise communications and processes |
| JP3654187B2 (ja) * | 2001-01-09 | 2005-06-02 | 日本電気株式会社 | 企業情報フィルタリングシステム、企業情報フィルタリング方法、及びその制御プログラムを記録した記録媒体 |
| US20030033588A1 (en) * | 2001-01-29 | 2003-02-13 | John Alexander | System, method and article of manufacture for using a library map to create and maintain IP cores effectively |
| 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 |
| US20030133554A1 (en) * | 2002-01-11 | 2003-07-17 | Nokia Corporation | System and method for facilitating access to network based services |
| US20030192038A1 (en) * | 2002-04-09 | 2003-10-09 | Thomas Hagmann | Linking data objects to a project development system |
| EP1391815A1 (en) * | 2002-08-22 | 2004-02-25 | Abb Research Ltd. | Method and system for filtering aspects in structures of a software system |
| US7139969B1 (en) * | 2003-06-13 | 2006-11-21 | Microsoft Corporation | Method and system for evaluating and connecting web parts |
| US7433878B2 (en) * | 2003-06-23 | 2008-10-07 | American Express Travel Related Services Company, Inc. | Method and system for interfacing with accounting systems |
| US7436535B2 (en) * | 2003-10-24 | 2008-10-14 | Microsoft Corporation | Real-time inking |
| US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
| US7493596B2 (en) * | 2004-06-30 | 2009-02-17 | International Business Machines Corporation | Method, system and program product for determining java software code plagiarism and infringement |
| US7975256B2 (en) * | 2004-06-30 | 2011-07-05 | International Business Machines Corporation | Optimizing application performance through data mining |
| US7921216B2 (en) * | 2005-02-01 | 2011-04-05 | Microsoft Corporation | System and method for building and using communication binding objects |
| US20070226689A1 (en) * | 2006-03-22 | 2007-09-27 | Schmidt Kevin T | Mechanism for selectively allowing certain components in a group of components to be associated with a target component |
| US8020149B2 (en) * | 2006-08-04 | 2011-09-13 | Apple Inc. | System and method for mitigating repeated crashes of an application resulting from supplemental code |
| US8382269B2 (en) | 2010-04-13 | 2013-02-26 | Xerox Corporation | System and method that enables a solid ink printer to learn a solid ink stick type |
| IL234911B (en) * | 2014-09-30 | 2018-02-28 | Omri Mark Weil Shlomo | Encapsulation system for programming languages |
| US10031780B2 (en) | 2014-11-25 | 2018-07-24 | International Business Machines Corporation | Component services integration with dynamic constraint provisioning |
| US10622107B2 (en) * | 2015-02-13 | 2020-04-14 | Medtronic, Inc. | Tools for medical device configuration |
| KR101720158B1 (ko) * | 2016-07-25 | 2017-03-27 | 주식회사 티맥스 소프트 | 그래피컬 사용자 인터페이스 환경에서 애플리케이션 ui 개발을 지원하는 방법 및 이를 이용한 서버 |
| USD852845S1 (en) | 2018-04-10 | 2019-07-02 | Google Llc | Display screen with icon |
| US11199955B2 (en) * | 2019-10-02 | 2021-12-14 | Palantir Technologies Inc. | Enhanced techniques for building user interfaces |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5283900A (en) * | 1989-10-02 | 1994-02-01 | Spectron Microsystems, Inc. | Real-time operating system and virtual digital signal processor for the control of a digital signal processor |
| GB9105278D0 (en) * | 1990-04-27 | 1991-04-24 | Sun Microsystems Inc | Method and apparatus for implementing object-oriented programming using unmodified c for a window-based computer system |
| US5339419A (en) * | 1990-06-25 | 1994-08-16 | Hewlett-Packard Company | ANDF compiler using the HPcode-plus compiler intermediate language |
| US5699310A (en) * | 1990-06-29 | 1997-12-16 | Dynasty Technologies, Inc. | Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications |
| DE69228621T2 (de) * | 1991-02-25 | 1999-07-22 | Hewlett-Packard Co., Palo Alto, Calif. | Objektorientiertes verteiltes Rechnersystem |
| JP3055970B2 (ja) * | 1991-06-20 | 2000-06-26 | 富士通株式会社 | オブジェクト指向言語間インタフェース実現方法および装置 |
| US5261098A (en) * | 1991-08-28 | 1993-11-09 | Sun Microsystems, Inc. | Method and apparatus for deriving object type and obtaining object type attribute values |
| GB2270242A (en) * | 1992-08-29 | 1994-03-02 | Ibm | A method of editing for an object oriented computer system |
| US5339433A (en) * | 1992-11-19 | 1994-08-16 | Borland International, Inc. | Symbol browsing in an object-oriented development system |
| US5671415A (en) * | 1992-12-07 | 1997-09-23 | The Dow Chemical Company | System and method for facilitating software development |
| DE69327448T2 (de) * | 1992-12-21 | 2004-03-04 | Sun Microsystems, Inc., Mountain View | Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem |
| CA2128387C (en) * | 1993-08-23 | 1999-12-28 | Daniel F. Hurley | Method and apparatus for configuring computer programs from available subprograms |
| US5546519A (en) * | 1994-02-28 | 1996-08-13 | International Business Machines Corporation | System and method for visually programming iteration |
| US5732270A (en) * | 1994-09-15 | 1998-03-24 | Visual Edge Software Limited | System and method for providing interoperability among heterogeneous object systems |
| US5659735A (en) * | 1994-12-09 | 1997-08-19 | Object Technology Licensing Corp. | Object-oriented system for program version and history database management system for various program components |
| US5692183A (en) * | 1995-03-31 | 1997-11-25 | Sun Microsystems, Inc. | Methods and apparatus for providing transparent persistence in a distributed object operating environment |
| US5634002A (en) * | 1995-05-31 | 1997-05-27 | Sun Microsystems, Inc. | Method and system for testing graphical user interface programs |
| US5724589A (en) * | 1995-10-13 | 1998-03-03 | Borland International, Inc. | Development system with a property-method-event programming model for developing context-free reusable software components |
| US5721911A (en) * | 1996-06-25 | 1998-02-24 | International Business Machines Corporation | Mechanism for metadata for an information catalog system |
| US5991823A (en) * | 1996-06-26 | 1999-11-23 | Sun Microsystems, Inc. | Low overhead object adaptor |
| US5949998A (en) * | 1996-07-03 | 1999-09-07 | Sun Microsystems, Inc. | Filtering an object interface definition to determine services needed and provided |
| US5860004A (en) * | 1996-07-03 | 1999-01-12 | Sun Microsystems, Inc. | Code generator for applications in distributed object systems |
| US5991535A (en) * | 1996-07-03 | 1999-11-23 | Sun Microsystems, Inc. | Visual composition tool for constructing application programs using distributed objects on a distributed object network |
| US5920868A (en) * | 1996-07-03 | 1999-07-06 | Sun Microsystems, Inc. | Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system |
-
1996
- 1996-07-03 US US08/675,094 patent/US5949998A/en not_active Expired - Lifetime
-
1997
- 1997-06-12 EP EP97304097A patent/EP0817034A3/en not_active Withdrawn
- 1997-07-03 JP JP9193267A patent/JPH10105392A/ja active Pending
-
1999
- 1999-06-29 US US09/342,326 patent/US6083277A/en not_active Expired - Lifetime
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012212449A (ja) * | 1999-05-25 | 2012-11-01 | Oracle Internatl Corp | 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張 |
| JP2010282286A (ja) * | 2009-06-02 | 2010-12-16 | Denso Corp | 開発支援装置,プログラム |
| JP2010282418A (ja) * | 2009-06-04 | 2010-12-16 | Denso Corp | ソースコード自動生成プログラム,ソースコード自動生成装置 |
| JP2015052875A (ja) * | 2013-09-06 | 2015-03-19 | 日本電信電話株式会社 | ソフトウェアコンポーネント生成装置、ソフトウェアコンポーネント生成方法、及びマネジメントエンジンシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| US6083277A (en) | 2000-07-04 |
| EP0817034A2 (en) | 1998-01-07 |
| US5949998A (en) | 1999-09-07 |
| EP0817034A3 (en) | 2006-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10105392A (ja) | 必要とされるサービスと供給されるサービスとを決定するためのオブジェクトインタフェース定義のフィルタリング | |
| US5920868A (en) | Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system | |
| US5991535A (en) | Visual composition tool for constructing application programs using distributed objects on a distributed object network | |
| US6407761B1 (en) | System and method for the visual customization of business object interfaces | |
| JP2843763B2 (ja) | オブジェクト指向コンピュータ・システムにおけるインタフェース方法及び装置 | |
| EP1727041A2 (en) | Pipeline architecture for use with net-centric application program architectures | |
| WO2002033545A2 (en) | Pluggable instantiable distributed objects | |
| US20060047709A1 (en) | Technology independent information management | |
| Huang et al. | Runtime software architecture based on reflective middleware | |
| Bharat et al. | Building distributed, multi-user applications by direct manipulation | |
| Faraj et al. | Distributed object environment: using international standards for data exchange in the construction industry | |
| Marvic et al. | Towards a dynamic CORBA component platform | |
| Schattkowsky et al. | Uml model mappings for platform independent user interface design | |
| Clark et al. | Use of E-LOTOS in Adding Formality to UML. | |
| Ng et al. | The Software Architect's Assistant-a visual environment for distributed programming | |
| Gomaa et al. | Feature driven dynamic customization of software product lines | |
| Gschwind | Adaptation and composition techniques for component-based software engineering | |
| Gautier et al. | Tool integration: experiences and directions | |
| Lucrédio et al. | MVCASE Tool–Working with Design Patterns | |
| Zhou et al. | An Object‐Oriented View of the User Interface | |
| Johnsson et al. | Live GUI development for service-based systems | |
| Chedgey | Papillon—a support environment for graphical software development | |
| Alor-Hernandez et al. | Towards Dynamic Representation of Rich Internet Applications through Web Service Invocation | |
| Chang et al. | Using Design Patterns to Develop a Hyper-Controllable Medical Image Application | |
| EP1057114A2 (en) | An interactive design tool for shared memory spaces |