JPH1091447A - 分散オブジェクトシステムにおいて分散オブジェクトの再利用を促進するカタログ装置 - Google Patents

分散オブジェクトシステムにおいて分散オブジェクトの再利用を促進するカタログ装置

Info

Publication number
JPH1091447A
JPH1091447A JP9178696A JP17869697A JPH1091447A JP H1091447 A JPH1091447 A JP H1091447A JP 9178696 A JP9178696 A JP 9178696A JP 17869697 A JP17869697 A JP 17869697A JP H1091447 A JPH1091447 A JP H1091447A
Authority
JP
Japan
Prior art keywords
component
distributed object
library
computer
distributed
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
JP9178696A
Other languages
English (en)
Inventor
Brad G Fowlow
ジー. フォウロウ ブラッド
Greg B Nuyens
ビー. ニュイエンズ グレゴリー
Keith L Messer
エル. メッサー キース
Frank Ludolph
ルドルフ フランク
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1091447A publication Critical patent/JPH1091447A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • 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
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

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)
  • Devices For Executing Special Programs (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 オブジェクトの再利用を促進するため、既存
のオブジェクトの情報を検索するための補助手段が必要
である。 【解決手段】 分散オブジェクトシステムの上にインス
トールされた分散オブジェクトを選択し、調べるための
方式や装置やコンピュータプログラムプロダクトについ
て説明した。分散オブジェクトシステム上の分散オブジ
ェクトに対応したコンポーネントのライブラリを生成し
たり、分散オブジェクトに対応したコンポーネントを含
んだりする。 ライブラリの各コンポーネントは、特定
のコンポーネントが対応する分散オブジェクトを記述す
る情報を含み、ライブラリの内容はカタログインタフェ
ース装置を使って表示され、分散オブジェクトに対応し
たコンポーネントを識別するためにライブラリがブラウ
ズされ、選択される。少なくとも分散オブジェクトを記
述する情報の部分が表示される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は分散オブジェクトと
クライアント・サーバ計算とオブジェクト指向プログラ
ミングの分野に関するものである。より具体的には、こ
の発明は分散オブジェクトシステムで使用するオブジェ
クト指向ソフトウェアのアプリケーションを生成するよ
うな方式と装置(apparatus)を含んでいる。
【0002】
【従来の技術】伝統的なプログラミング方式を用いて開
発されたソフトウェアの配布が、予定より遅れて、予算
超過する傾向が強まっているので、オブジェクト指向プ
ログラミングが、ここ数年、注目を集めている。オブジ
ェクト指向プログラミング方法論は、手続きではなくデ
ータを操作する方に焦点をあて、プログラマには実世界
の問題をモデル化するための、より直観的な方法を提供
している。さらに、オブジェクトは、関連データと手続
きをカプセル化し、そのデータや手続きを、そのオブジ
ェクトのインタフェースを介してのみアクセスできるよ
うにして、情報をプログラムの他の部分から隠すもので
ある。従って、オブジェクトのデータや手続きについて
変更しても、プログラムの他の部分からは相対的に分離
されている。このことによって伝統的な方法で書かれた
コードよりも、コードが管理しやすくなり、オブジェク
トのコードを変更しても他のオブジェクトのコードに影
響しないのである。さらに、オブジェクトが本来持って
いるモジュラー性のため、個々のオブジェクトを別のプ
ログラムで再利用することができる。このようにして、
プログラマは異なった応用プログラムで何度も使えるよ
うな「試してうまくいった」オブジェクトのライブラリ
を作ることができるのである。これによって、信頼でき
るプログラムコードが何度も使われるので、開発時間が
減少すると同時にソフトウェアの信頼性が向上する。
【0003】オブジェクト指向分散システムはクライア
ント・サーバモデルに基づいている。このモデルでは、
オブジェクトサーバは、オブジェクトサーバに要求を出
すクライアントに対するインタフェースを提供する。典
型的な場合、オブジェクトサーバは、データとそれに関
するメソッドからなるオブジェクトである。クライアン
トはオブジェクトサーバの上にある呼び出し(コール)
を実行することによって、オブジェクトサーバの機能へ
のアクセスが可能になる。そのコールは、分散システム
によって配送されたものである。オブジェクトサーバが
コールを受け取ると、適当な方式を実行してその結果を
オブジェクト・クライアントに返送する。クライアント
とオブジェクトサーバはオブジェクト・リクエスト・ブ
ローカ(ORB)を介して通信する。ORBはさまざまな分散
したオブジェクトの位置を調べ、それらの間の通信を確
立するのに用いられる。
【0004】
【発明が解決しようとする課題】分散オブジェクトシス
テムを介してのオブジェクト指向プログラミング方法論
を採用することの利点は大きいものの、それをインプリ
メントするという大きな障害がある。一般に、プログラ
ミングプロセスにおいて、ソフトウェアの再利用をイン
プリメントするというゴールは、オブジェクトプログラ
ミングにおいてすらも、達成するのは難しい。通常、プ
ログラマは、自分が最小限しか理解していないとか、全
く理解していないというようなコードを使う気にはなら
ない。このことは、分散オブジェクトシステムにおいて
はもっと複雑である。というのは、コードの開発者は、
新しいアプリケーションを開発する役割のプログラマに
対するコメントや命令を提供するまでにはなかなか至ら
ないからである。従って、プログラマは分散オブジェク
トシステムを介して、有用なコードをたくさん使うこと
ができるが、十分には利用できないかもしれないので、
そのためにすでに開発されたコードを書き換えなくては
ならないことになる。
【0005】コードを共有するための現在の方法論は分
散オブジェクトモデルでは不適切である。コードを共有
する現在の方法には、共有ライブラリや、公に使えるヘ
ッダファイルのディレクトリや広く広まっている文献
(電子的な文献とハードコピーの文献)を利用すること
などがある。しかし、分散オブジェクトでは、基本的な
操作対象がファイルベースではなく、インタフェースベ
ースであり、分散オブジェクト環境にはうまく適合しな
い。また、分散オブジェクトシステムでのオブジェクト
の再利用方式においては、プログラマのコミュニティ
と、彼らのつくり出すコードについてのユーザの意識を
向上させることを目標とすべきである。従って、分散オ
ブジェクトシステムにおけるオブジェクトの再利用を促
進することを狙いとするシステムでは、オブジェクトの
独自性や目的や利用方法についてユーザが決定できる機
能を持たせるべきである。
【0006】分散オブジェクト環境におけるプログラミ
ングの別の問題は、大量の「反復使用語句(boilerplat
e)」タイプのコンピュータコードを用意し、分散オブ
ジェクトシステムで使うために開発したオブジェクトや
アプリケーションが、このシステム内で適切に機能する
ようにする必要があることである。 特に、 通常のオブ
ジェクト(例:C++のオブジェクト)が分散オブジェク
トとして機能するような基本的なコンピュータコードの
構造を用意する必要がある。しかしながら、さらに、分
散オブジェクトシステムですでに存在するオブジェクト
やコンピュータコードを最大限に再利用しようとするプ
ログラマは、似ているがちょっと異なる問題に直面す
る。プログラマが、開発中のアプリケーションで、ある
オブジェクトを使いたいとき、プログラマは、そのオブ
ジェクトの生成元への呼び出し(コール)のような、そ
のオブジェクトに適合する基本的な情報を指示し、さま
ざまな初期データを与えなければならない。さらに、他
の機能へ送られる前に、 コードの中にさまざまなメー
クファイル(make file)やヘッダファイルやライブラ
リの依存関係が考慮されなければならない。プログラマ
によって提供されなければならない詳細部分には、さま
ざまな例外処理やデバッギングやトレース支援コードな
どがある。さらに、必要な方式やコードは、技術者には
一般的なものとして知られており、そのような仕事のイ
ンプリメンテーションは、面倒で、繰り返しが多くて、
間違いやすいものなのである。従って、オブジェクトア
プリケーションを適切にコードすることは、非常に時間
がかかり、骨の折れる仕事なのである。そのため、その
ような「ハウスキーピング(housekeeping)、つまりプ
ログラムを適切に実行させるためにしなければならない
システムタスク」コードは自動的に結合できることが望
ましい。
【0007】このように、プログラマや他のユーザが、
比較的透明な方式で分散オブジェクトを生成し、インス
トールできることが望ましい。そうすれば、他のプログ
ラミング言語で生成されたオブジェクトと、異なった計
算のプラットフォームにあるオブジェクトを、現存する
プログラミングコードをかなり作り直したり、ユーザに
過度の負担をかけたりすることなしに、使うことができ
るものである。これらの問題の解答はオブジェクト指向
応用と分散オブジェクト応用の開発の機能を備え、プロ
グラマが本当に生産的な努力が必要な仕事に集中し、繰
り返しの多いコーディングと分析を最小にすることにあ
る。
【0008】
【課題を解決するための手段】この発明は、分散オブジ
ェクトシステムにすでにインストールされている分散オ
ブジェクトにアクセスし、調査して、そのようなすでに
存在するオブジェクトを開発中のソフトウェアに含ませ
ることができるかどうかを決定する方式や装置やコンピ
ュータプログラムを提供するものである。ここで詳細に
述べるように、分散オブジェクトシステムにインストー
ルされた分散オブジェクトの再利用を促進するような方
式や装置やコンピュータプログラムはソフトウェア開発
プロセスを効率化し、それを用いて開発されたコードの
信頼性を高める。
【0009】ある側面では、本発明は分散オブジェクト
システムにインストールされた分散オブジェクトを選択
し、調べるためのコンピュータの実装方式(computer-i
mplemented method)を提供するものである。一つの実
施例としては、この発明の方式には、上記の分散オブジ
ェクトシステム上の分散オブジェクトに相当するコンポ
ーネント(その中にはそのオブジェクトに相当するコン
ポーネントを含む)のライブラリを生成することも含ま
れている。 そのライブラリ中の個々のコンポーネント
には、特定のコンポーネントに相当している分散オブジ
ェクトを記述した情報が含まれている。ライブラリの内
容はカタログ・インタフェース装置によって表示され
る。そのカタログ・インタフェース装置を用いてその分
散オブジェクトに相当する要素を識別するために、ライ
ブラリの中がブラウズ(拾い読み、browse)され、選択
される。少なくとも、その分散オブジェクトを記述する
情報の部分が表示される。
【0010】上記の方式の1つの実施例として、上述の
ライブラリの内容を表示することには、少なくともその
ライブラリの階層的なディレクトリ構造を表示する事も
含まれる。別の実施例としては、上述の要素のライブラ
リをブラウズすることには、上述のライブラリの上述の
階層的ディレクトリ構造の上述の表示を用いて、ファイ
ルパスを選択することが含まれる。さらに別の実施例と
して、表現方法にはアイコンが含まれ、上述の選択行為
にはアイコンに対する選択を行うことも含まれる。
【0011】別の側面として、本発明は分散オブジェク
トシステムにインストールされた分散オブジェクトを選
択し調べるためのコンピュータシステムを提供してい
る。この発明によって提供されるコンピュータシステム
の実施例としては、システムは上記の分散オブジェクト
システム上の分散オブジェクトに対応したコンポーネン
トのライブラリであって、上記の個々のコンポーネント
は、対応した分散オブジェクトを記述した情報を含んで
いるものである。コンポーネントのライブラリにはその
分散オブジェクトに対応したコンポーネントも含まれて
いる。さらにこの発明のコンピュータシステムは、上記
のコンポーネントの位置を見つけ、探索するライブラリ
マネージャを含んでいる。最後に、上記のライブラリの
上記のコンポーネントを表示し、調べ、選択するための
カタログインタフェース装置が提供される。カタログイ
ンタフェース装置は上記のライブラリマネージャと結び
付き、上記のカタログインタフェース装置で作られた質
問や選択行為に関してライブラリマネージャと通信す
る。
【0012】一つの実施例として、この発明のコンピュ
ータシステムは、さらにコンポーネントジェネレータ
(コンポーネント生成器)を含んでいる。これは、上記
の分散オブジェクトシステムに選択され、インストール
された分散オブジェクトに対応したコンポーネントを生
成するのに有効である。より具体的な実施例では、コン
ポーネントジェネレータは上記のコンポーネントが引用
する分散オブジェクトに結合している。他の実施例にお
いて、この発明のコンピュータシステムには上記のコン
ポーネントジェネレータと結合したビルダを含んでい
る。このジェネレータは、上記のコンポーネントが引用
した分散オブジェクトが上記のビルダによって処理され
たときに、そのコンポーネントを生成するものである。
さらに具体的な実施例において、カタログインタフェー
ス装置は、少なくとも上記のライブラリの階層的なディ
レクトリ構造の一部の表示を含んでいる。
【0013】さらに他の実施例としては、この発明で提
供されるコンピュータシステムは、入出力装置と結合し
た処理装置を含んでいる。ランダムアクセスメモリもこ
の処理装置に結合している。メモリ装置は処理装置と通
信する。メモリ装置は分散オブジェクト参照データ構造
と、関連のコンポーネントデータ構造と、表示情報やプ
ログラマ情報や上記の分散オブジェクトデータ構造に関
するツール情報を含んだ上記のコンポーネントデータ構
造からなる。ある実施例においては、このコンピュータ
システムは、さらに、ライブラリデータ構造に含まれる
コンポーネントのライブラリを含んでいる。このライブ
ラリデータ構造は、上記のメモリ装置や、上記の入出力
装置から受け取ったコマンドに応答して指示されたコン
ポーネントの位置を調べて検索する(retrieve)のに有
効なライブラリサービスを含んだコンポーネントライブ
ラリに存在しているものである。
【0014】さらに他の側面としては、この発明は、コ
ンポーネントデータ構造のためにその上に具体化された
コンピュータで読めるプログラムコードを持つコンピュ
ータで利用可能なメディアと、分散オブジェクトシステ
ムの上にインストールされた分散オブジェクトデータ構
造に関連したコンポーネントデータ構造と、表示情報や
プログラマ情報や上記の分散オブジェクトデータ構造に
関連したツール情報を含んだ上記のコンポーネントデー
タ構造からなるコンピュータプログラムプロダクトを提
供する。
【0015】ある実施例においては、コンピュータに読
めるプログラムコード装置には、上記の分散オブジェク
トシステム上の分散オブジェクトデータ構造に対応する
コンポーネントデータ構造のライブラリ生成に加えて、
そのコンポーネントを生成するのに有効なコード装置が
含まれる。上記の分散オブジェクトシステムでは、上記
のコンポーネントデータ構造のそれぞれにはそのコンポ
ーネントデータ構造が対応する分散オブジェクトデータ
構造を記述する情報が含まれている。この実施例におい
ては、そのライブラリのコンポーネントの内容をコンピ
ュータに表示させるような構成を持つような、コンピュ
ータに読める形式のプログラムコードも含まれる。その
表示には、上記の分散オブジェクトデータ構造を識別す
るカタログインタフェース装置を使い、要素データ構造
の上記のライブラリをブラウズ(拾い読み)し、少なく
とも上記の分散オブジェクトデータ構造を記述する上記
の情報部分を表示するものである。
【0016】
【発明の実施の形態】この発明のこれらの側面や利点な
どは、以下の記述を添付の図面と一緒に読んでみればよ
り明らかになる。
【0017】以下の第1章では分散オブジェクトシステ
ムの基本的な構成と操作について述べる。第2章ではこ
の発明で提供されるコンポーネントやライブラリサービ
スやそれらについての用法について述べる。
【0018】1.分散オブジェクトシステムの物理的な
実装と背景 この発明は、コンピュータシステムに記憶されているデ
ータに関するさまざまな処理手順を採用している。これ
らの手順は物理的な数量の物理的な処理を必要とするも
のである。通常は、必ずしもそうとは限らないが、これ
らの数量は、記憶したり移動したり結合したり比較した
り他の処理をされたりできるような電気的、または、磁
気的な信号の形式をとっている。主に慣習上の理由か
ら、これらの信号を、ビットとか値とか要素とか変数と
か文字とかデータ構造ほかのような言い方をすると便利
なこともある。しかしながら、これらの用語や類似の用
語は適切な物理的な数量と関連しており、これらの数量
に適用される単なる便利なラベルであることを記憶して
おくべきである。
【0019】さらに、実行される操作は、識別、稼働、
比較というような用語でよく使われる。ここで記述さ
れ、この発明の一部を構成するような操作は、どれも機
械のオペレーションである。この発明の操作を実行する
有効なマシンには、汎用のディジタルコンピュータやそ
れに類似の装置が含まれる。どんな場合でも、コンピュ
ータを操作する場合の操作方式と計算方式自身は、心の
中で区別しておくべきである。本発明は電気的または他
の物理的な信号を処理して、別の物理的な信号を生成す
る場合の、コンピュータを操作する手順方式に関するも
のである。
【0020】この発明は、これらの操作を実行するため
の装置にも関係している。この装置は必要な目的のため
に特に構築されたものかもしれないし、コンピュータに
記憶されたコンピュータプログラムによって選択的に起
動されたり再構成されたりする汎用のコンピュータかも
しれない。ここで提示された手順は、もともとは、特殊
なコンピュータや装置のためのものではない。特に、こ
この記述に合わせて書かれたプログラムはいろいろな汎
用のマシンで使っても良いし、また、要求された方式手
順を実行するためのより特殊化された装置を作るとより
便利かもしれない。このようなさまざまなマシンに要求
される構造は以下の記述で明らかになる。
【0021】さらに、この発明はコンピュータから読む
ことのできるメディアにも関連している。そのようなメ
ディアには、コンピュータで実現されるさまざまな操作
を実行するプログラム命令が含まれる。そのメディアや
プログラムはこの発明にために特別に設計され、作られ
たものでも良いし、また、コンピュータソフトウェア技
術でよく知られて利用可能なものであっても良い。これ
に限るわけではないが、コンピュータから読める装置に
は、ハードディスクやフロッピーディスクや磁気テープ
のような磁気装置や、CD-ROMディスクのような光学装置
や、 光磁気ディスク(floptical disks)のような磁気
光学装置や、読みだし専用記憶装置(ROM)やランダム
アクセスメモリ(RAM)のようなプログラム命令を記憶
し実行するために特に作られたハードウェア装置などが
含まれる。プログラム命令の例には、コンパイラによっ
て生成されたマシンコードや、インタープリタを使って
コンピュータで実行できる高水準コードを持ったファイ
ルなどが含まれる。
【0022】図1で記号を使って説明されているよう
に、分散オブジェクトシステム10は通常はオブジェク
ト要求ブローカ(ORB)11を含んでいる。 ORB 11は
位置決めや転送のメカニズムを持っており、また、クラ
イアントからサーバント(目的オブジェクト)へ呼び出
し(コール)を転送し、その応答をクライアントに返送
するのに必要な機能を持っている。クライアントとサー
バントは同じプロセス内にあっても良いし、同じマシン
の異なるプロセスにあっても良いし、全く異なるマシン
内にあっても良い。ここでの説明のため、クライアント
20は分散オブジェクト上のオペレーションを起こさせ
るコードであって良いので、分散オブジェクトやプロセ
スの形をとってもとらなくても良い。分散オブジェクト
は幅広い表現形式をとりうる。例として、分散オブジェ
クトは応用開発者によって提供される C++オブジェク
トであっても良い。または、分散オブジェクトのインプ
リメンテーションは、以下の第2章で詳しく述べるよう
に、視覚的アプリケーションビルダ(ビジュアル応用ビ
ルダ、visual application builder)15内で開発され
るものでも良い。短く言うと、ビジュアル応用ビルダに
よって、開発者は、分散オブジェクトシステムで使える
オブジェクトタイプのカタログから存在するオブジェク
トを視覚的に選びだし、オブジェクトの新しいインプリ
メンテーションを生成するために、選択されたオブジェ
クトから提供されるサービスをグラフィカルに結合す
る。
【0023】オブジェクト開発ファシリティ(オブジェ
クト開発機能、object developmentfacility)16は、
単に分散オブジェクトの生成とインストールに使うこと
もできる。それは、ラッピング(wrapping)や、分散オ
ブジェクトコードにおいて開発オブジェクトのカプセル
化によっても行われる。そのため、オブジェクト開発機
能16は、 開発オブジェクトをORBオブジェクトインプ
リメンテーション14に翻訳するのに用いることもでき
る。この例では、 ORBオブジェクトインプリメンテーシ
ョン14は、ダイアグラムのその位置によって示された
サーバとして表されている。開発者は ORBオブジェクト
のインタフェースを定義するのにインタフェース定義言
語を使い、そのオブジェクトの動作をインプリメントす
る開発オブジェクトインプリメンテーションを供給し、
そして、 オブジェクト開発機能16を使ってORBオブジ
ェクトインプリメンテーション14を生成する。実行時
には、このORBオブジェクト(サーバントオブジェク
ト)のインスタンスが生成され、このORB オブジェク
トインプリメンテーション14を利用する。オブジェク
ト開発機能は、どこかでクライアントの役割をするオブ
ジェクトを生成するのに使っても良いことを認識してお
く必要がある。
【0024】クライアント20は、スタブ(stub)2
1、サブコントラクト(subcontract)層36、場合によ
ってフィルタ40、トランスポート層38を通ってサー
バントと通信を行う。スタブ21には、代理人(サロゲ
ート、surrogate)22、メソッドテーブル24、スタ
ブ関数(スタブ機能)25が含まれる。クライアント2
0は最初は代理人22と通信する。この代理人はサーバ
ントオブジェクトとして、クライアントに現れる。ある
いは、クライアント20は代理人22やメソッドテーブ
ル24やスタブ機能25を介する代わりに、動的起動イ
ンタフェース(Dynamic Invocation Interface : DII)
26を介してサーバントオブジェクトと直接、通信する
ことができる。動的起動インタフェース26は動的なリ
クエストをクライアントが実行するのに用いられる。
【0025】サブコントラクト層36は、特定のサブコ
ントラクトによって名前つけされたさまざまなサービス
(またはフィーチャまたはオブジェクトメカニズム)を
実行するサブコントラクトを利用するために、オブジェ
クトで要求された機能を提供する。サブコントラクト
は、個別のオブジェクトで使うことのできる分散オブジ
ェクトシステムによって提供されるサービスの質を認識
する。 例えば、サブコントラクトは特定のオブジェク
トで安全のフィーチャ(feature)が使われるかどうか
を認識する。 もし使われるのであれば、フィルタ40
は、オブジェクトへの通信やオブジェクトからの通信に
用いられる、圧縮や暗号化やトレースやデバッグなどの
いろいろなタスクを実行することができる。トランスポ
ート層38は、通常は同じプロセスをクライアントとし
て共有しないサーバントへ、 またはそのサーバントか
ら、マーシャル(marshal)やアンマーシャル(unmarsh
al)などのデータ変換や物理的な転送処理を行う。
【0026】標準インプリメンテーションスイート(st
andard implementation suite)28(または、オブジ
ェクトアダプタ)は、例えばオブジェクトキー管理と同
一の方法でORBオブジェクト14と対話するような一連
のサブコントラクトを表す。サブコントラクトは複数の
インプリメンテーションスイートに属しても良いことに
注意しなければならない。また、インプリメンテーショ
ンスイートは異なったサブコントラクトを使うこともで
きる。スケルトン(skelton)は、静的スケルトン32
の形式も動的スケルトン30の形式もとることができ、
リクエストをサーバントオブジェクト78に要求される
形式に変換するのに用いられる。静的スケルトン32は
インタフェースに特化したオブジェクトインプリメンテ
ーション14をコールするのに用いられ、動的スケルト
ン30は一般にインタフェースに特化したオブジェクト
が使えないときに用いられる。ORBインタフェース34
はORBに直接行くインタフェースであって、すべてのORB
について同一で、 オブジェクトのインタフェースやオ
ブジェクトアダプタに依存しない。ORBデーモン46は
オブジェクトサーバがクライアントに起動されたとき、
それが活動状態であることを確認する役割を持つ。
【0027】安全プロトコル42は、インターネットイ
ンターORBプロトコルを安全にし、トランスポート層3
8を介した情報の転送を安全に行うことを助ける、安全
インターオペラビリティプロトコルである。これは、一
貫性の保護や保証などができることを意味している。
インターネットインターORBとは、一般には異なったマ
シンにあるプロセス間の通信を行うためのプロトコルで
ある。しかし、ある場合には、インターネットインター
ORBは、同じマシンにあるプロセス間の通信も行うこと
がある。安全サーバ54は、異なったコンピュータにあ
るプロセス間で使われているサービスを安全にする安全
管理サーバである。
【0028】タイプコード/ANYモジュール44は、
「タイプコード」オブジェクトと「ANY」オブジェクト
をインプリメントする。タイプコードは、インタフェー
ス記述言語(IDL)のデータタイプを記述し、タイプ記
述がクライアントとサーバの間に送られることを認め
る。IDLデータタイプのインスタンスはANY オブジェク
トによってカプセル化される。ANY オブジェクトはカプ
セル化されたデータやデータのジェネリックな符合(コ
ード)を参照する。
【0029】情報レポジトリ(倉庫、repository)50
は、オブジェクトサーバに関した情報を格納する。特
に、情報レポジトリ50は、サーバプロセスを開始する
のに必要な情報を格納する。例えば、情報レポジトリ5
0は、サーバプロセスの場所や、プログラムの引数や、
プログラムに渡す環境変数などの情報を格納する。
【0030】単純パーシスタンス(簡易接続機能、simp
le persistence)56は、インタフェース定義言語(ID
L)で定義されたタイプと、IDLコンパイラにそのIDLタ
イプを走らせることによる出力と、IDLタイプをディス
クから読み書きするための付加的コードを用いる。ネー
ミングサービス52はORB オブジェクトに名前をつける
のに用いられる。クライアントは目的のオブジェクトを
名前で探すのにネーミングサービス52を使うことがで
きる。ネーミングサービス52はオブジェクト参照を回
答する。これは次に、そのオブジェクトにリクエストを
送るのに使うことができる。 インタフェースレポジト
リ(倉庫)(IFR)48は、分散オブジェクトシステム
内にあるすべてのオブジェクトに関するすべてのインタ
フェースを知っている。
【0031】この発明における実施例として、分散オブ
ジェクトは図2の100で描かれたようなコンピュータ
ネットワークによって結合された1つ以上のコンピュー
タの上に存在する。この図でわかるように、ネットワー
ク100にはネットワーク104に結ばれたコンピュー
タ102が含まれている。ネットワーク104には、コ
ンピュータ108、110、112に加えて、サーバや
ルータや同等のもの106があり、データや命令はネッ
トワーク化したコンピュータの間を転送することができ
る。コンピュータネットワークの設計や構築やインプリ
メンテーションはこの分野の技術を持つ者にはよくわか
っていることである。
【0032】コンピュータ102、106、108、1
10、112は図3の200で図式的に描かれている。
各コンピュータには、これに限るものではないが、 中
央処理装置(CPU)や、並列プロセッサや分散プロセッ
サのような多重プロセッサのように、計算を実行するの
に使うプロセッシングユニット(処理装置)202があ
る。プロセッサ202はランダムアクセスメモリ(RA
M)や読みだし専用メモリのような主記憶204と結合
されている。 一般的には、RAMにはプロセッサの上で現
在処理しているプロセスのためのプログラム命令やデー
タが格納される。そのプログラムやデータには、分散オ
ブジェクトやそのためのデータや命令も含まれる。 ROM
は、一般的には、コンピュータがその機能を実行するの
に使われる基本的な処理命令やデータやオブジェクトを
格納する。それに加えて、 ハードディスクや、CD-ROM
や、磁気光(floptical)ディスクやテープ駆動装置や
類似の装置などの2次記憶装置208がプロセッサ20
2と双方向に結合されている。2次記憶装置208に
は、一般的に、仮想メモリなどのためにプロセッサから
そのアドレス空間にはアクセスできるが、プロセッサか
らはそれほど活発には使われないような、付加的なプロ
グラム命令やデータやオブジェクトが格納される。上述
したようなコンピュータのそれぞれには入出力装置21
0が含まれる。それには、キーボードやポインタ装置
(例えば、マウスやペン入力)や類似の装置が含まれ
る。また、それぞれのコンピュータにはネットワーク結
合装置212が含まれる。さらに、巨大記憶装置(図に
は描かれていない)をネットワーク記憶装置212を介
して CPU202に結合することができる。この分野の技
術を持つ人には、上記で説明したハードウェアやソフト
ウェア要素は、ネットワーク装置と同様に、通常の設計
や構成であることがわかるであろう。
【0033】ここで述べられた、コンピュータでインプ
リメント(implement)されるメソッドは、コンピュー
タシステム上でプログラム命令を実行するためにコンピ
ュータ科学技術でよく知られた技術や装置で簡単にイン
プリメントすることができる。ここで使われるように、
「コンピュータシステム」という用語は、RAMやROMやCD
-ROMやハードディスクや類似の装置などを含むような、
データや命令をプロセッサと交換する1つ以上のデータ
記憶装置と結合し、データや命令を処理するプロセス装
置(例えば、中央処理装置、CPU)を含むように定義さ
れている。データ記憶装置は、専用となる、すなわちプ
ロセス装置と直接結合することもできるし、リモートと
なる、すなわちコンピュータネットワークを介してプロ
セス装置と結合することもできる。コンピュータネット
ワークを介してプロセス装置と結合したリモートのデー
タ記憶装置は、特定のワークステーションで実行するた
めに、プロセス装置にプログラム命令を送ることができ
る。さらに、プロセス装置は、同じ物理構成(例えば、
並列プロセッサ)やコンピュータネットワーク(例え
ば、分散プロセッサ)を介した1つ以上の付加的なプロ
セス装置と結合することができる。そのようなリモート
に結合されたデータ記憶装置やプロセッサを利用する方
法は、コンピュータ科学技術を持つ者にとってはよく知
られている。ここで使われている「コンピュータネット
ワーク」という用語は、互いに通信できるコンピュータ
の集合を結合する通信チャネルの集合を含むように定義
される。通信チャネルは、以下に限るわけではないが、
対の撚り線や、同軸ケーブルや、光学ファイバや、衛星
リンクや、デジタル・マイクロウェーブ・ラジオなどの
通信メディアを含んでいる。コンピュータシステムは巨
大広域エリア(例えば、10、100、1000マイ
ル。WAN)に分散させることもできるし、ローカルエリ
アネットワーク(例えば、 数フィートから数百フィー
トまで。LAN)に分散させることもできる。さらに、い
ろいろなローカルエリアネットワークや広域ネットワー
クを結合して、コンピュータシステムの集合ネットワー
クを作ることもできる。そのようなコンピュータネット
ワークの連合の例が「インターネット」である。
【0034】図4の400は、分散オブジェクトシステ
ムにおけるオブジェクト指向応用を構成し、実装してい
るシステムの実施例を描いたものである。ここに描かれ
たシステムは、コンポジションビルダ402を含んでい
る。これは、図1で説明したように、ユーザ、一般には
プログラマが、分散オブジェクトシステムにアプリケー
ションを実装するために使うものである。コンポジシシ
ョンビルダは、以下で詳細に述べるように、コンポーネ
ントサービス404と結合し、ユーザやプログラマに分
散オブジェクトシステムで使うことのできるオブジェク
トへのアクセスを提供するものである。コンポジション
ビルダ402は、さらに、コードジェネレータ408に
結合している。これは、プログラムテンプレートレポジ
トリ(倉庫)406と結合して、コンポジションビルダ
で作られたコンポジションを受け取って410で示すプ
ログラムソースファイルを生成する。
【0035】つぎに、プログラムソースファイル410
は ODFコンパイラ/リンカ414に送られる。さらに、
ODF コンパイラ/リンカ414は、オブジェクトアクセ
スソフトウェア412に結合し、このオブジェクトアク
セスソフトウェアはコンポーネントサービス404に結
合されている。オブジェクトアクセスソフトウェア41
2は、分散オブジェクトを構築するためのOMG CORBA仕
様(specification)に合わせて、IDL インタフェース
の言語マッピングを提供するために IDLコンパイラが用
いられるときに生成されるスタブ(stub)の集合からな
る。ODFコンパイラ/リンカ414は、 オブジェクトソ
フトウェア416とネットワーク・アプリケーション
(ネットワーク応用)418を生成する。このネットワ
ーク応用は、420で一般的に示されているように、ネ
ットワークオブジェクト422にアクセスする。これら
のネットワークオブジェクトは、点線矢印で示されてい
るように、オブジェクトアクセスソフトウェア412を
使って、コンポーネントサービス404を使ったり、OD
Fコンパイラ/リンカ414を結合したりすることがで
きる。
【0036】2.分散オブジェクトの再利用を促進する
ため分散オブジェクトを表現するコンポーネントのライ
ブラリ ある側面では、本発明は分散オブジェクトシステムで分
散オブジェクトコードの再利用を促進するように適合し
た開発環境と装置を供給する。そのような環境の1つの
実施例を図5の500に示す。これは、階層的なディレ
クトリ構造を表したもので、これを使ってユーザ(典型
的にはプログラマ)は分散オブジェクトを通して利用で
きる分散オブジェクトを表現するコンポーネントをブラ
ウズ(拾い読み)し、調べ、アクセスすることができ
る。図5で描かれたような階層的ディレクトリ構造やラ
イブラリを使って、プログラマは、分散オブジェクトシ
ステムを通じていろいろな所にあるコードに、そのコー
ドへのレフェレンス(参照)の中央のライブラリを介し
て、アクセスすることがわかるであろう。
【0037】さて、階層的ディレクトリ構造500を詳
しく参照することによって、この分野の知識を有する者
には、図に描かれた構造は分散オブジェクトシステムで
共通に使われているネーミングサービスの見本であるこ
とが理解できるであろう。502においてはワークグル
ープ・ルートディレクトリが定義され、そこからルート
ディレクトリ502はコンテキスト504のようなコン
テキストを定義しながら、サブディレクトリを展開して
いく。特別なコンテキストは506で示されたサービス
コンテキストである。ここから、サービスコンテキスト
は、コンポーネントサービス508を含むような、ネッ
トワークで使えるサービスを表すさまざまなサブディレ
クトリを展開している。コンポーネントサービス・サブ
ディレクトリ508から、ライブラリサービス510、
コンポーネント・サブディレクトリ512、突発的オブ
ジェクト・サブディレクトリ514などのさまざまなサ
ービスやコンポーネントに展開されている。コンポーネ
ント・サブディレクトリ512は、ネーミングコンテク
スト・サブディレクトリ516を含んでいる。ここか
ら、518、520、522で表されるような、分散オ
ブジェクトシステムを通じて存在する分散オブジェクト
を表す個々のコンポーネントへ展開する。
【0038】ライブラリサービス510は、524で図
式的に表現されているさまざまなカタログクライアント
と通信する。そのカタログクライアントを介して、シス
テムのユーザは518、520、522にあるようなコ
ンポーネントの位置を調べ、アクセスする。ある実施例
では、ライブラリサービス510は、526で点線の四
角で示したようにコンポーネントサブディレクトリ51
2とそのサブディレクトリを管理する。従って、この実
施例では、ライブラリサービスは、ユーザがコンポーネ
ントサブディレクトリ512にあるすべてのコンポーネ
ントにアクセスすることを許す。それによって、新しい
分散オブジェクト応用を開発するときに、コンポーネン
トを検索したり、再利用のためにオブジェクトを識別
し、獲得するような中心的な位置のアクセスを提供して
いるのである。ある実施例では、ライブラリサービスは
分散オブジェクトであって、コンポーネントのために単
一の「ライブラリアン」を提供し、その結果、ネットワ
ークを通じて複数ユーザの一貫性と管理されたアクセス
を提供するようなサーバとして活動する。特別な実施例
においては、ライブラリサービスはファイルシステムと
質問インタフェースの両方を提供し、それによって、ユ
ーザは、インタフェースなどの、コンポーネントの名前
やさまざまな側面を検索することができる。
【0039】図5に描かれた実施例において、本発明は
システムで分散オブジェクトを表すコンポーネントオブ
ジェクト(以下では「コンポーネント」として引用され
る)を用いる。そのコンポーネントによって、ユーザ
が、例えば、カタログクライアント524を用いたライ
ブラリサービス510を介して、そのコンポーネントに
関係した分散オブジェクトの性質を決定するために、検
索しブラウズすることができるようになる。分散オブジ
ェクト技術を持つ者は、そのような調整によって、分散
オブジェクトに参照が直接できるようなシステムに有効
であることが理解できるであろう。特に、分散オブジェ
クトは、その本質は極めて短時間のエンテティである。
あるケースでは、これらのオブジェクトはシステム内で
変形したり移動したりするので、510で示したような
ライブラリサービスのようなものでは、大きな計算上の
オーバヘッドをおこすことなしに、各分散オブジェクト
の位置の記録の維持をすることは困難である。
【0040】また、典型的なブラウジング(拾い読み)
においては、ユーザは必ずしも直接、分散オブジェクト
の全体にアクセスすることを要求しない。典型的には、
ユーザはオブジェクトの基本的な性質やそのオブジェク
ト内部のコードがどのように使われているかについての
より一般の情報を探し、ユーザのコードで基本分散オブ
ジェクトへアクセスしたいかどうかを決定することがで
きる。ある実施例においては、本発明は、各コンポーネ
ントが参照するような分散オブジェクトの生成時間の記
述を表すコンポーネントを提供することによって、これ
らのニーズに答えている。このように、本発明によって
生成されたコンポーネントは、分散オブジェクトのプレ
ースホルダーとして動作する。実際のオブジェクトは、
新しいアプリケーションを構築している間、適当な時間
にアクセスすることができる。
【0041】ある実施例においては、コンポーネント自
身がオブジェクトであり、そのため、コンポーネントは
IDLインタフェースのような、基本の分散オブジェクト
で供給されるサービスを定義するような属性やオペレー
ションの記述を持ったインタフェースによって定義され
る。特別な実施例では、各コンポーネントは分散オブジ
ェクトについての表示情報を提供する。一般に、この情
報は、そのコンポーネントで参照される分散オブジェク
トの画面表示を記述するのを助けるような任意の情報で
あっても良い。そのような表示情報には、任意のアイコ
ンや分散オブジェクトシステムにおけるオブジェクトを
識別するのに用いられるアイコンや、分散オブジェクト
を参照するのに使われる名前などが含まれるが、これに
限るものではない。ある実施例においては、各分散オブ
ジェクトに2つの名前、短い名前と長い名前、が提供さ
れている。短い名前は、例えば、ファイルシステムがオ
ブジェクトを識別するために用いられ、長い名前はオブ
ジェクトの性質をブラウジングし、理解するのを助ける
ためのより記述的な名前である。他のタイプの表示情報
には、音と同じように、オブジェクトの状態を反映する
ため、さまざまなアイコン(例えば、選択された、 ま
たは選択されなかった状態や、 エラー状態やオブジェ
クトタイプを反映したアイコン)を含んでいるが、それ
に限定されるわけではない。
【0042】さらに、記述されている実施例において
は、各コンポーネントは、ユーザやプログラマが基本の
分散オブジェクトにあるコードの特徴を理解するのを助
けるためのプログラマ情報情報を含んでいる。そのよう
な実施例においては、プログラマ情報は、リッチテキス
トフォーマット(RTF)やハイパーテキストマークアッ
プ言語(HTML)のような適切なフォーマットで与えられ
るデータシートからなる。そのプログラム情報は、コン
ポーネントの中で保持されるデータストリームで具体化
される。分散オブジェクトの技術を持つ者にはよく知ら
れたことであるが、 データストリームはバイト(byte
s)の配列であって、それらはオブジェクト内部に蓄積
され、配列内に含まれている情報に対応して転送され
る。そのような仕組みにより、ファイルに対するハード
の位置決めが不要になるので、ファイルベースの参照シ
ステムについては有利であることが理解できるであろ
う。しかし、データシートを提供するファイルベース方
式は本発明の範囲とも両立することも理解できるであろ
う。そのような別の実施例は、データベース中に保持さ
れるファイルへのポインタを含むことによってインプリ
メントすることもできる。データシートに含まれるプロ
グラマ情報のタイプの例には、ある特徴を持つオブジェ
クトを表すコンポーネントのためにコンポーネントのラ
イブラリをサーチする機能を持たせるキーワードとか、
ユーザに基本ソフトウェアのコンパイルや使用のための
データを提供する「ハード(hard)」情報がある。
【0043】ある実施例においては、プログラマ情報デ
ータシートに含まれているハード情報には、基本オブジ
ェクトのインタフェース定義や、そのオブジェクトのた
めのファクトリインタフェース定義や、基本オブジェク
トのインスタンスを獲得するのに用いられるメソッドの
名前(例えば、ファクトリメソッド名)や、オブジェク
トが生成されたときに実装されるファクトリのサービス
名や、基本分散オブジェクトで使えるさまざまなプラグ
やソケットやプロパティなどがあるが、これに限るもの
ではない。さらに、データシートとともに、さまざまな
実装情報が含まれている。それには、オブジェクトと分
散オブジェクトのインタフェース定義の双方のためのヘ
ッダファイルの名前や、そのヘッダファイルの位置や、
マクロ定義やコンパイラ情報と同様に、オブジェクトを
コンパイルし生成するのに必要なコードを獲得するため
の必要条件を記述した情報などがある。
【0044】コンポーネントはさまざまなメソッドを使
って構築することができる。ある実施例では、オブジェ
クトが構築されるときに実行される生成、パッケージ、
実装などのプロセスの間にコンポーネントが構築され
る。この実施例では、コンポーネントデータのテキスト
表現を受けるのに、よく知られたメカニズムを用いる。
そのコンポーネントデータは、対応するコンポーネント
を自動的に定義し実装するための構築とパッケージステ
ージの間に、オブジェクトから抽出されるものである。
プログラム技術を持つ者には、そのようなプロセスは、
プログラマに比較的透明なコンポーネントの生成を行う
ことによってコードの再利用を促進することが理解でき
るであろう。比較的透明であるのは、プログラマが、手
動で、または、コンポーネントの生成と実装の分離した
プロセスを起動することによって、コンポーネントを意
識的に構築する必要から解放するからである。または、
コンポーネントは今記述したのと類似のメカニズムを用
いて、ビルダーを介したのと類似の方法で構築すること
ができる。さらに別の実施例においては、分散オブジェ
クトで提供されたサービスを通してコンポーネントイン
タフェースを定義することができ、プログラマは分散オ
ブジェクトの継承構造を介してサービスを結び付け、ユ
ーザはそのオブジェクト自身から作られるコンポーネン
トを持つために、オブジェクトをコールすることができ
る。そのような実施例は、コンポーネントを構築するた
めのカスタマイズできる方式を提供する利点をプログラ
マに与えるものである。上述した方式は、オブジェクト
プログラミングの技術を持つ者、特に分散オブジェクト
プログラミング技術を持つ者、には標準となっている技
法を使ってインプリメントすることができる。
【0045】カタログクライアント524の1つの実施
例が図6の600に描かれている。この実施例はビジュ
アルインタフェースビルダに結合できるグラフィカルユ
ーザインタフェース(GUI)を描いたものである。 図6
は、ヘッダーバー602と、コンテキストブラウザ60
4と、分離領域606と、コンポーネントカタログビュ
ーア608と、2番目の分離領域610と、詳細ビュー
ア領域612を含むようなカタログプログラム600を
描いている。ヘッダ領域602には、614、616、
618、620のボタンがある。ある実施例では、ボタ
ン614と616は604の領域の表示を制御する。例
えば、押しボタン614は描かれているブラウザビュー
を提供し、押しボタン616は質問ウィンドウを提供す
る。その質問ウィンドウでは、質問ウィンドウ検索用語
や他の検索パラメータが入力され、望んだ性質を持つよ
うなコンポーネントを図5の526の領域で検索するこ
とができる。同様に、ある実施例において、ボタン61
8と620は領域612の表示を制御するのに使われ
る。例えば、ボタン618が押されたとき、領域608
で選択されたコンポーネントのデータシートのビューを
与えることができる。また、ボタン620が押されたと
きは、領域608で選択されたコンポーネントに結びつ
けられるコンポーネントの表現が表示される。
【0046】描かれた実施例においては、領域604は
図5の526の領域に示されたコンテキスト階層に関す
るブラウザを提供しているが、ユーザにはさまざまな欄
622、624、626、628が提供され、これらの
欄はコンテキスト構造におけるさまざまなコンテキスト
やサブコンテキストを持っている。 描かれた例におい
ては、 領域622は「デモ」630や「印刷」632
や「計算」634などのコンテキストを持っている。こ
れらはコンテキスト階層の上位のレベルを表している。
この図では、特別なコンテキストを囲むハイライト領域
で示しているように、「印刷」のコンテキスト632が
選ばれている。領域624の中には、選択されたコンテ
キスト632に直接従属するサブコンテキストが示され
る。これらのサブコンテキストには、「デイジーホィー
ル(Daisywheel)」635や、「ポストスクリプト」6
36や、「ラインプリンタ」637、 のようなさまざ
まなプリンタタイプがある。 これらのサブコンテキス
トには、「Sun」、「Apple」、「IBM」、「HP」などの
選択も含まれている。ポストスクリプトタイプの「SU
N」が選択されたものとして描かれている。描かれた例
では、 領域626での選択はコンテキスト階層の特定
の領域における最低レベルのサブコンテキストを表して
いる。そのため、領域628は空である。しかし、領域
626で選択されたサブコンテキストが、それに従属す
るサブコンテキストを持つのであれば、それは領域62
8に表示されることになる。
【0047】領域626(または、コンテキスト階層の
最低レベルのコンテキストを列挙する領域)で選択がな
されたら、そのサブコンテキストで使えるすべてのコン
ポーネントの表示は領域608(適切な表示の他の方法
が選択された場合)に表示される。これらのコンポーネ
ントには、「PSプリンタ」コンポーネント640と「ラ
インプリンタ」コンポーネント644がある。前者はハ
イライトボックス642で強調されているが、後者は強
調されていない。境界642で示されているように、
「ポストスクリプト」コンポーネント640を選択する
と、領域612におけるデータシート「PS」646を表
示することになる。ある実施例では、領域604、60
8、612はスクロールすることができ、下にある分離
領域606、610や、612のウィンドウの下限を越
える情報をユーザが見ることができるようにする。その
ようなウィンドウを構築することは、グラフィカルユー
ザインタフェース(GUI)プログラミングの技術を持つ
者には周知の技術やソフトウェアを使って実現すること
ができる。 典型的な場合、GUIインタフェースを構築す
るオペレーティングシステムには、「OpenStep」(サン
マイクロシステムズ、Mountain View, CA で入手
可能)、「X Window」(X コンソーシアム、Cambridg
e,MA)、「Windows」(マイクロソフトコーポレーショ
ン、Redmond、WA),Macintoshオペレーティングシステ
ム(アップルコンピュータ、Cupertino,CA)などがある
が、これらに限るわけではない。
【0048】コンポーネントの使用や、コンポーネント
が表示する基本オブジェクトへの情報やリンクは、再利
用するためにすでに存在するコードの位置決めを促進す
るだけでなく、分散オブジェクト応用の開発を促進す
る。それは、プログラマやユーザから、分散オブジェク
トシステムにおいて、オブジェクトを実装するのに必要
な基本的な管理機能に要求される大量のボイラープレー
ト・コンピュータコードを提供する負担から解放するこ
とによる。コンポーネントカタログを介してユーザに提
示されるコンポーネントは、グラフィカルに扱うことが
でき、ワークシートに置くことができる。ワークシート
においては、さまざまな既存の分散オブジェクトや変形
された分散オブジェクトやオリジナルの分散オブジェク
トを表すカタログの中にあるコンポーネントから導かれ
た部分からなるコンポジション(構成)が結合されて、
分散オブジェクトシステムに実装される新しい応用を定
義する。プログラム情報、特にそのコンポーネントで表
現された基本オブジェクトのプラグやソケットや性質に
関する情報、を用いることは、次のようなシステムで特
に有効である。そのシステムでは、ユーザはいろいろな
コンポーネント(または部分としてのコンポーネントの
表現)のプラグやソケットをグラフィカルに相互に接続
して分散オブジェクト間の関係を定義し、結局は、基本
分散オブジェクトコードを広範に調べたり、オブジェク
ト間の関係を決めるのに必要な標準的な大量のコードを
生成したりすることなしに、分散オブジェクト応用を定
義することになるのである。
【0049】さらに、コンポーネントで利用できる情報
を使ったり、それらのグラフィカルな相互接続(例え
ば、派生部分として)を介したりして、分散アプリケー
ションが定義されると、次にコードジェネレータファシ
リティ(図4の408で示されているようなもの)が、
分散応用として応用を定義するのに必要なボイラープレ
ートコードを自動的に生成したり、分散オブジェクトシ
ステムにおいて分散応用を実装したりするのに、プログ
ラマ情報に含まれる参照を検索する。 そのプログラマ
情報には、ファクトリIDLインタフェース定義や、オブ
ジェクトのインスタンスを獲得するのに使われるメソッ
ド名や、実装されるファクトリのサービス名や、ヘッダ
ファイルや、ソースコードの位置や、マクロ定義や、コ
ンパイラ情報がある。
【0050】このように前述のことから、本発明は、コ
ードを再利用したり生成したりするシステムのための分
散オブジェクトプログラマの必要性を主張していること
がわかるであろう。ここで記述したコンポーネントサー
ビスを用いて、プログラマは、すでに開発され、分散オ
ブジェクトシステム上に実装された分散オブジェクトを
高速に識別し、アクセスすることができる。集中化され
たライブラリサービスや、ここで記述された階層的なデ
ィレクトリ構造で提供される高度に共有化された方法
で、既存の分散オブジェクトをブラウズし、選択する能
力によって、プログラマ間のコミュニティの意識が向上
する。それは、調査し、進行中のソフトウェア開発プロ
ジェクトに結びつけることができる、コードの中央レポ
ジトリ(倉庫)を提供することによる。同一性や、コン
ポジション(構成)や、コンポーネントが表現する分散
オブジェクトの利用などに関する情報を提供するだけで
なく、分散オブジェクトシステムにソフトウェアを実装
するための必要なボイラープレートコードを構築するの
に必要な参照を含むコンポーネントを用いることによっ
て、そのようなボイラープレートコードを手でコードす
る退屈な作業をプログラマがする必要が大いに減少す
る。従って、プログラマは、分散オブジェクトシステム
にソフトウェアを開発し、実装することに関する、より
クリエイティブな問題に集中することができる。
【0051】プログラミング技術を持つ者、特に分散プ
ログラミング技術を持つ者には、ここで記述したさまざ
まな方式や装置は、本発明の範囲を離れることなく、非
常に多くの方法で実装できることを理解できるであろ
う。特に、図5に描かれたのと異なるさまざまな階層デ
ィレクトリ構造が、本発明の範囲を離れることなく、利
用可能であることが着目される。さらに、図6にあげた
のに加えて、さまざまなグラフィカルユーザインタフェ
ースが使える。例えば、ブラウザ604がコンテキスト
階層や個別のコンポーネントの両方を表示するようにす
ることができる。また、カタログインタフェースに付加
的なウィンドウを追加し、非形式的な方法で、データシ
ートとコンポーネント関係の両方のビューを提供するこ
とができる。最後に、コンポーネントのコンポジション
(構成)は、ここで記述した情報より多い情報を含んで
も良いし、少ない情報を含んでも良い。
【図面の簡単な説明】
【図1】図1は、 本発明のオブジェクト要求ブローカ
(ORB)を図式的に表した概略図である。
【図2】図2は、本発明のコンピュータネットワークの
構成図である。
【図3】図3は、本発明のコンピュータシステムを表し
た構成図である。
【図4】図4は、本発明の分散オブジェクトシステムに
おけるオブジェクト指向応用を構築するためのシステム
の構成図である。
【図5】図5は、本発明の分散オブジェクトに対応した
コンポーネントを蓄積し、検索し、探索するための階層
的データ構造の構成図である。
【図6】図6は、この発明のある実施例に従って、コン
ポーネントを検索し、検査するためのグラフィカルユー
ザインタフェースの構成図である。
【符号の説明】 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…単純パージステンス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グレゴリー ビー. ニュイエンズ アメリカ合衆国, カリフォルニア州, メンロ パーク, ローレル アヴェニュ ー 403 (72)発明者 キース エル. メッサー アメリカ合衆国, カリフォルニア州, サン フランシスコ, パリス ストリー ト 149 (72)発明者 フランク ルドルフ アメリカ合衆国, カリフォルニア州, サラトガ, ユニヴァーシティ ドライヴ 241

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 分散オブジェクトシステム上にインスト
    ールされた分散オブジェクトを選択すると共に、調査す
    る(review)ためのコンピュータでインプリメントされ
    る(computer-implemented)方法であって、(a)前記
    分散オブジェクトシステム上にある分散オブジェクトに
    対応するコンポーネント(component)のライブラリ(l
    ibrary)を生成する生成ステップであって、前記コンポ
    ーネントのライブラリは前記分散オブジェクトに対応す
    る1個のコンポーネントを含み、前記コンポーネントの
    各々は前記コンポーネントが対応する前記分散オブジェ
    クトを記述し、(b)カタログ・インタフェースデバイ
    ス(device)を使用して前記ライブラリの内容の表示す
    るライブラリ表示ステップと、(c)前記カタログ・イ
    ンタフェースデバイスを使用して前記コンポーネントの
    ライブラリをブラウジングし(browsing)、前記分散オ
    ブジェクトに対応する前記コンポーネントを識別する識
    別ステップと、(d)前記オブジェクトに対応する前記
    コンポーネントを選択する選択ステップと、(e)前記
    分散オブジェクトを記述する少なくとも上記情報の一部
    (portion)表示する情報表示ステップと、を備える方
    法。
  2. 【請求項2】 前記ライブラリの内容を表示する前記ス
    テップは、前記ライブラリの階層的ディレクトリ構造の
    少なくとも一部(portion)の表示(display)を提供す
    ることを備える、請求項1に記載のコンピュータでイン
    プリメントされる方法。
  3. 【請求項3】 コンポーネントの前記ライブラリは、前
    記ライブラリの前記階層的ディレクトリ構造の前記表示
    を使用してファイル・パス(file path)の選択するこ
    とと、前記パスに配置されるコンポーネント表現(repr
    esentationsof components)を表示することとを備え
    る、請求項2に記載のコンピュータでインプリメントさ
    れる方法。
  4. 【請求項4】 前記コンポーネント表現はアイコン(ic
    on)を備え、前記選択ステップはアイコンの選択行為
    (selection action)を備える、請求項3に記載のコン
    ピュータでインプリメントされる方法。
  5. 【請求項5】 前記情報は、前記コンポーネントに対応
    するオブジェクトのための表示(presentation)情報、
    プログラマ情報、およびツール情報を含む、請求項1か
    ら請求項4のいずれかに記載のコンピュータでインプリ
    メントされる方法。
  6. 【請求項6】 前記分散オブジェクトに対応する前記コ
    ンポーネントを生成する(generate)生成ステップを更
    に備える、請求項1から請求項5のいずれかに記載のコ
    ンピュータでインプリメントされる方法。
  7. 【請求項7】 前記生成ステップは、前記分散オブジェ
    クトによってサポートされるコンポーネント・サービス
    を起動する(activate)ことを含む、請求項6に記載の
    コンピュータでインプリメントされる方法。
  8. 【請求項8】 前記生成ステップは、前記分散オブジェ
    クトシステムに前記オブジェクトがインストールされる
    とき、前記コンポーネントを生成することを備える、請
    求項6に記載のコンピュータでインプリメントされる方
    法。
  9. 【請求項9】 前記オブジェクトが作り上げられる(bu
    ild)とき、前記コンポーネントが生成される、請求項
    6に記載のコンピュータでインプリメントされる方法。
  10. 【請求項10】 分散オブジェクトシステム上にインス
    トールされた分散オブジェクトを選択すると共に、調べ
    るためのコンピュータシステムであって、(a)前記分
    散オブジェクトシステム上にある分散オブジェクトに対
    応するコンポーネントのライブラリであって、前記コン
    ポーネントのライブラリは分散オブジェクトに対応する
    1個のコンポーネントを含み、前記コンポーネントの各
    々は該コンポーネントに対応する分散オブジェクトを記
    述する情報を含み、(b)前記コンポーネントの位置を
    示し(locate)、検索する(retrieve)ために効果的な
    ライブラリマネージャと、(c)前記ライブラリにある
    前記コンポーネントの表示し、調査し、および選択する
    ためのカタログインタフェースデバイスであって、前記
    カタログインタフェースでなされた問い合わせおよび選
    択行為が前記ライブラリマネージャと通信できるよう
    に、前記ライブラリマネージャと結合されるカタログイ
    ンタフェースデバイスと、を備えるコンピュータシステ
    ム。
  11. 【請求項11】 前記分散オブジェクトシステムにおい
    て選択され、インストールされる分散オブジェクト対応
    するコンポーネントを生成するために効果的なコンポー
    ネントジェネレータを更に備える、請求項10に記載の
    コンピュータシステム。
  12. 【請求項12】 前記コンポーネントジェネレータは前
    記コンポーネントが参照している分散オブジェクトに結
    合されている、請求項11に記載のコンピュータシステ
    ム。
  13. 【請求項13】 オブジェクト開発ファシリティ(obje
    ct development facility)を更に備え、前記オブジェ
    クト開発ファシリティは、前記コンポーネントが参照す
    る前記分散オブジェクトが前記オブジェクト開発ファシ
    リティによって処理されるとき前記コンポーネントが生
    成されるように、前記コンポーネントジェネレータに結
    合される、請求項11から請求項12のいずれかに記載
    のコンピュータシステム。
  14. 【請求項14】 ビルダ(builder)を更に備え、前記
    ビルダは、前記コンポーネントが参照する分散オブジェ
    クトが前記ビルダによって処理されるとき、前記コンポ
    ーネントが生成されるように、前記コンポーネントジェ
    ネレータに結合される、請求項11から請求項12のい
    ずれかに記載のコンピュータシステム。
  15. 【請求項15】 前記カタログインタフェースデバイス
    は、グラフィカル・ユーザ・インタフェースを備える、
    請求項10から請求項14のいずれかに記載のコンピュ
    ータシステム。
  16. 【請求項16】 前記カタログインタフェースデバイス
    は、前記ライブラリの階層的ディレクトリの少なくとも
    一部(portion)の表示(display)を備える、請求項1
    5に記載のコンピュータシステム。
  17. 【請求項17】 前記カタログインタフェースは、選択
    されるファイルパスに位置する前記コンポーネント表現
    の表示を更に備える、請求項16に記載のコンピュータ
    システム。
  18. 【請求項18】 前記コンポーネント表現はアイコンを
    備える、請求項17に記載のコンピュータシステム。
  19. 【請求項19】 前記コンポーネントは、前記コンポー
    ネントに対応するオブジェクトのための表示情報、プロ
    グラマ情報、およびツール情報を含む、請求項10から
    請求項18のいずれかに記載のコンピュータシステム。
  20. 【請求項20】(a)処理ユニットと、(b)前記処理
    ユニットに結合される入出力デバイスと、(c)前記処
    理ユニットに結合されるランダムアクセスメモリと、
    (d)前記処理ユニットに結合される記憶デバイスであ
    って、前記記憶デバイスは分散オブジェクト参照データ
    構造と関連づけられるコンポーネントデータ構造を含
    み、前記コンポーネントデータ構造は前記分散オブジェ
    クトデータ構造に関連する表示情報、プログラマ情報、
    ツール情報を含み、を備えるコンピュータシステム。
  21. 【請求項21】 前記記憶デバイスに備わっているライ
    ブラリデータ構造に含まれるコンポーネントのライブラ
    リを備え、前記コンポーネントライブラリは前記入出力
    デバイスから取り出された(retrieved)コマンドに応
    答して前記コンポーネントの位置を示し、検索するため
    に効果的なライブラリサービスを含む、請求項20に記
    載のコンピュータシステム。
  22. 【請求項22】 前記ライブラリサービスおよび前記入
    出力デバイスに結合されるコンポーネントカタログを更
    に備える、請求項21のコンピュータシステム。
  23. 【請求項23】 前記カタログライブラリは、グラフィ
    カル・ユーザ・インタフェースを備える請求項22に記
    載のコンピュータシステム。
  24. 【請求項24】 その上に具現化された(embodied)コ
    ンピュータが可読な(computer-readable)プログラム
    コードを有すると共に、コンピュータで利用可能(comp
    uter-usable)であり、且つコンポーネントデータ構造
    のための媒体を備え、前記コンポーネントデータ構造は
    分散オブジェクトシステムにインストールされた分散オ
    ブジェクトデータ構造に関係し、前記コンポーネントデ
    ータ構造は前記分散オブジェクトデータ構造に関連する
    表示情報、プログラマ情報、ツール情報を含む、コンピ
    ュータプログラムプロダクト(product)。
  25. 【請求項25】 コンピュータで利用可能な媒体を更に
    備え、前記媒体はコンピュータシステムにおいて下記の
    ステップを達成する(effect)するための、前記媒体上
    に具現化され、コンピュータが可読なプログラムコード
    を備え、前記ステップは、(a)前記コンポーネントの
    生成するステップと、(b)前記分散オブジェクトシス
    テム上の分散オブジェクトデータ構造に対応するコンポ
    ーネントデータ構造のライブラリを生成するステップで
    あって、前記コンポーネントデータ構造の各々は該コン
    ポーネントデータ構造が対応する分散オブジェクトデー
    タ構造を記述する情報を含み、(c)カタログインタフ
    ェースデバイスを用いて前記ライブラリの内容の表示す
    るステップと、(d)前記カタログインタフェースデバ
    イスを使用してコンポーネントデータ構造の前記ライブ
    ラリをのブラウジングし、前記分散オブジェクトデータ
    構造を識別するステップと、(e)前記オブジェクトデ
    ータ構造を記述する前記情報の少なくとも一部を表示す
    るステップと、を有する、請求項24に記載のコンピュ
    ータプログラムプロダクト。
  26. 【請求項26】 コンピュータで可読な生成する前記プ
    ログラムコードは、前記分散オブジェクトデータ構造に
    よってサポートされるコンポーネントサービスを起動す
    る(activate)ためのコードを含む、請求項25に記載
    のコンピュータプログラムプロダクト。
  27. 【請求項27】 コンピュータで可読な生成する前記プ
    ログラムコードは、前記コンピュータシステム上に前記
    分散オブジェクトデータ構造がインストールされると
    き、前記コンポーネントデータ構造を生成することを備
    える前記コンポーネントを生成するためのコードを含
    む、請求項25に記載のコンピュータプログラムプロダ
    クト。
  28. 【請求項28】 前記分散オブジェクトデータ構造が作
    られる(build)とき、前記コンポーネントデータ構造
    が生成される、請求項25に記載のコンピュータプログ
    ラムプロダクト。
JP9178696A 1996-07-03 1997-07-03 分散オブジェクトシステムにおいて分散オブジェクトの再利用を促進するカタログ装置 Pending JPH1091447A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/675563 1996-07-03
US08/675,563 US5920868A (en) 1996-07-03 1996-07-03 Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system

Publications (1)

Publication Number Publication Date
JPH1091447A true JPH1091447A (ja) 1998-04-10

Family

ID=24711037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9178696A Pending JPH1091447A (ja) 1996-07-03 1997-07-03 分散オブジェクトシステムにおいて分散オブジェクトの再利用を促進するカタログ装置

Country Status (3)

Country Link
US (1) US5920868A (ja)
EP (1) EP0817032A3 (ja)
JP (1) JPH1091447A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100319753B1 (ko) * 1999-12-23 2002-01-09 오길록 3층 구조상에서의 컴포넌트 구현 방법
JP5144816B2 (ja) * 2011-03-02 2013-02-13 三菱電機株式会社 プログラマブル表示器、及び作画データの作成方法
US9858071B2 (en) 2014-07-31 2018-01-02 International Business Machines Corporation Apparatus and method for supporting sharing of source code

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7770230B2 (en) * 2002-04-22 2010-08-03 Arvato Digital Services Canada, Inc. System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
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
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
US6167449A (en) * 1997-11-19 2000-12-26 Apple Computer, Inc. System and method for identifying and locating services on multiple heterogeneous networks using a query by type
US6637020B1 (en) 1998-12-03 2003-10-21 International Business Machines Corporation Creating applications within data processing systems by combining program components dynamically
US7039673B1 (en) * 1998-12-24 2006-05-02 Computer Associates Think, Inc. Method and apparatus for dynamic command extensibility in an intelligent agent
US6347397B1 (en) * 1999-03-29 2002-02-12 International Business Machines Corporation System, method, and program for providing an object-oriented install architecture
US6418447B1 (en) * 1999-06-14 2002-07-09 International Business Machines Corporation Registration of object factories under multiple interface names
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
US6687735B1 (en) 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US20020082939A1 (en) * 2000-10-25 2002-06-27 Clark George Phillip Fulfilling a request for an electronic book
US20020073177A1 (en) * 2000-10-25 2002-06-13 Clark George Philip Processing content for electronic distribution using a digital rights management system
US8402124B1 (en) * 2000-11-16 2013-03-19 International Business Machines Corporation Method and system for automatic load balancing of advertised services by service information propagation based on user on-demand requests
US6792608B1 (en) * 2001-03-01 2004-09-14 Alcatel Network navigator interface system and method
US20020199184A1 (en) * 2001-05-31 2002-12-26 Cezeaux Thomas Edward Real-time monitoring and blocking of content
US7007035B2 (en) * 2001-06-08 2006-02-28 The Regents Of The University Of California Parallel object-oriented decision tree system
KR100426312B1 (ko) * 2001-12-28 2004-04-08 한국전자통신연구원 컴포넌트 기반 소프트웨어 개발 시스템의 컴포넌트식별장치 및 그 방법과 이에 관련된 프로그램의 기록매체
US20030133554A1 (en) * 2002-01-11 2003-07-17 Nokia Corporation System and method for facilitating access to network based services
US20040015835A1 (en) * 2002-01-24 2004-01-22 Sasank Kotnur Dynamic distribution and integration of computer code objects
US7343596B1 (en) 2002-03-19 2008-03-11 Dloo, Incorporated Method and system for creating self-assembling components
US20030192038A1 (en) * 2002-04-09 2003-10-09 Thomas Hagmann Linking data objects to a project development system
US6920460B1 (en) * 2002-05-29 2005-07-19 Oracle International Corporation Systems and methods for managing partitioned indexes that are created and maintained by user-defined indexing schemes
US8589861B2 (en) 2002-11-06 2013-11-19 Code Valley Corp Pty Ltd Code generation
US9521209B2 (en) 2002-11-06 2016-12-13 Code Valley Corp Pty Ltd Code generation
US8832178B2 (en) 2002-11-06 2014-09-09 Noel William Lovisa Service implementation
EP2385463B1 (en) * 2002-11-06 2020-04-29 Code Valley Corp Pty Ltd Code generation using components
US7346890B1 (en) 2003-03-17 2008-03-18 Dloo, Incorporated Method and system for creating linkable programming languages
US7526753B2 (en) 2003-06-18 2009-04-28 Microsoft Corporation System and method for creating, managing and using code segments
EP1756706B1 (en) 2004-05-20 2019-09-25 Code Valley Corp Pty Ltd Code generation techniques
US7921216B2 (en) * 2005-02-01 2011-04-05 Microsoft Corporation System and method for building and using communication binding objects
US8407206B2 (en) * 2005-05-16 2013-03-26 Microsoft Corporation Storing results related to requests for software development services
US8972872B2 (en) * 2006-03-27 2015-03-03 Fujitsu Limited Building computing applications based upon metadata
US11573972B2 (en) * 2020-05-27 2023-02-07 Red Hat, Inc. Automatically determining flags for a command-line interface in a distributed computing environment

Family Cites Families (22)

* Cited by examiner, † Cited by third party
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 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
US5598557A (en) * 1992-09-22 1997-01-28 Caere Corporation Apparatus and method for retrieving and grouping images representing text files based on the relevance of key words extracted from a selected file to the text files
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
DE69310187T2 (de) * 1992-12-23 1997-11-27 Taligent Inc Objektorientiertes fachwerksystem
CA2128387C (en) * 1993-08-23 1999-12-28 Daniel F. Hurley Method and apparatus for configuring computer programs from available subprograms
US5646992A (en) * 1993-09-23 1997-07-08 Digital Delivery, Inc. Assembly, distribution, and use of digital information
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
WO1996036003A1 (en) * 1995-05-10 1996-11-14 Minnesota Mining And Manufacturing Company Method for transforming and storing data for search and display and a searching system utilized therewith
US5706457A (en) * 1995-06-07 1998-01-06 Hughes Electronics Image display and archiving system and method
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
US5819032A (en) * 1996-05-15 1998-10-06 Microsoft Corporation Electronic magazine which is distributed electronically from a publisher to multiple subscribers
US5721911A (en) * 1996-06-25 1998-02-24 International Business Machines Corporation Mechanism for metadata for an information catalog system
US5761686A (en) * 1996-06-27 1998-06-02 Xerox Corporation Embedding encoded information in an iconic version of a text image

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100319753B1 (ko) * 1999-12-23 2002-01-09 오길록 3층 구조상에서의 컴포넌트 구현 방법
JP5144816B2 (ja) * 2011-03-02 2013-02-13 三菱電機株式会社 プログラマブル表示器、及び作画データの作成方法
US9858071B2 (en) 2014-07-31 2018-01-02 International Business Machines Corporation Apparatus and method for supporting sharing of source code
US9860287B2 (en) 2014-07-31 2018-01-02 International Business Machines Corporation Apparatus and method for supporting sharing of source code

Also Published As

Publication number Publication date
EP0817032A2 (en) 1998-01-07
US5920868A (en) 1999-07-06
EP0817032A3 (en) 2003-04-16

Similar Documents

Publication Publication Date Title
JPH1091447A (ja) 分散オブジェクトシステムにおいて分散オブジェクトの再利用を促進するカタログ装置
US6189138B1 (en) Visual composition tool for constructing application programs using distributed objects on a distributed object network
US6260078B1 (en) Using a distributed object system to find and download java-based applications
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
US8296720B2 (en) Framework to access a remote system from an integrated development environment
US7904803B2 (en) Method and system for converting user interface source code of a legacy application to web pages
US6268852B1 (en) System and method for facilitating generation and editing of event handlers
US5848424A (en) Data navigator interface with navigation as a function of draggable elements and drop targets
US7269792B2 (en) System and method for generating high-function browser widgets with full addressability
US8056091B2 (en) Systems and methods for using application services
US20030212987A1 (en) Client container for building EJB-hosted java applications
US20020184610A1 (en) System and method for building multi-modal and multi-channel applications
US7454660B1 (en) System and method for testing applications at the business layer
JPH10105410A (ja) インターネット−イネーブル型ポートフォリオ・マネージャ・システム及び方法
JPH10105392A (ja) 必要とされるサービスと供給されるサービスとを決定するためのオブジェクトインタフェース定義のフィルタリング
US20020095436A1 (en) System for providing information associated with software package and supporting test therefor
CA2391756A1 (en) Accessing a remote iseries or as/400 computer system from the eclipse integrated development environment
US5875322A (en) Making a control available to a computer without installing the control
WO2006103264A2 (en) Managing development of an enterprise application
US7117433B1 (en) HTML mapping substitution graphical user interface for display of elements mapped to HTML files
US6556220B1 (en) Method and system to display, modify or substitute the contents of self-describing objects
WO2001052055A2 (en) System and method for implementing a flexible data-driven target object model
US7853605B2 (en) Auxiliary data provider
Fay An Architecture for Distributed Applications on the Internet: Overview of Microsoft? s. NET Platform
JPH10269072A (ja) アプリケーション開発方法