JPH1091449A - 分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール - Google Patents

分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール

Info

Publication number
JPH1091449A
JPH1091449A JP9178698A JP17869897A JPH1091449A JP H1091449 A JPH1091449 A JP H1091449A JP 9178698 A JP9178698 A JP 9178698A JP 17869897 A JP17869897 A JP 17869897A JP H1091449 A JPH1091449 A JP H1091449A
Authority
JP
Japan
Prior art keywords
component
interface
application
existing
defining
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
JP9178698A
Other languages
English (en)
Inventor
Brad G Fowlow
ジー. フォウロウ ブラッド
Greg B Nuyens
ビー. ニュイエンズ グレゴリー
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 JPH1091449A publication Critical patent/JPH1091449A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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
    • 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
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer
    • Y10S715/967Visual or iconic programming

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)

Abstract

(57)【要約】 【課題】 すでに開発した分散オブジェクトを再利用し
て新たなアプリケーションを開発するために、コンポー
ネントのカタログを見てコンポーネントを選択しリンク
を作成することを支援するアプリケーション構築環境が
必要となる。 【解決手段】分散オブジェクトシステム上に供給された
既存オブジェクトへのリファレンスを提供するコンポー
ネントを含むカタログファシリティを提供するステップ
から構成される。カタログファシリティからアプリケー
ションプログラムに含めるためにコンポーネントが選択
される。部品は、選択されたコンポーネントから利用
し、オブジェクト指向アプリケーションソフトウェアの
ための、コンピュータコードによって提供される関係を
定義する部品間のリンクを選択・定義するための機能を
利用するこのシステム上の既存オブジェクトを参照する
少なくとも一つ以上の部品へリンクを作成できる上記環
境で利用できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散コンピューテ
ィング・システム、クライアント-サーバ・コンピュー
ティング、及び、オブジェクト指向プログラミングの分
野に関するものである。特に、本発明は、分散オブジェ
クトシステム上で利用されるオブジェクト指向ソフトウ
ェア・アプリケーションの作成のための方法と装置を含
む。
【0002】
【従来の技術】ここ数年、従来のプログラミング手法を
利用した場合の開発の遅延とコスト高の増加傾向にとも
ない、オブジェクト指向プログラミングの方法論に関す
る関心が高まっている。オブジェクト指向プログラミン
グ方法論は、手続きよりもデータを操作することに重点
をおいている。そのためプログラマーはより直感的に実
世界の問題をモデル化することができる。さらに、オブ
ジェクトは、そのインタフェースのみを通してデータや
手続きを参照することによって、プログラムのそのオブ
ジェクト以外の部分にたいして情報を隠蔽できるように
関連したデータや手続きをカプセル化する。それゆえ、
オブジェクトのデータや手続きの変更は比較的プログラ
ムの他の部分から独立している。あるオブジェクトに対
する変更が他のオブジェクトのコードに影響を及ぼさな
いため、従来の方法を用いて書かれたコードと比べて、
より容易に保守できるコードを生成できる。さらに、オ
ブジェクトはモジュール性を備えているため、個々のオ
ブジェクトを他のプログラムで利用することができる。
このように、プログラマは、他のプログラムで何度も利
用が可能な「実績がありこなれた」オブジェクトのライ
ブラリを開発できる。信頼性の高いプログラムコードが
繰り返し利用されることにより、ソフトウェアの開発時
間を減少させるとともに、信頼性が増す。
【0003】
【発明が解決しようとする課題】オブジェクト指向分散
システムは、オブジェクトサーバに対するクライアント
の要求を行うインタフェースを備えたオブジェクトサー
バによるクライアント-サーバモデルに基づいている。
そのようなシステムでは一般的に、サーバはデータと関
連手続きで構成されたオブジェクトである。クライアン
トは、分散システムによって取り次がれる呼び出しを実
行することによって、オブジェクトサーバの機能を参照
することができる。オブジェクトサーバが呼び出しを受
け取ると、サーバは適当なメソッドを実行し結果をオブ
ジェクトクライアントに返す。クライアントとオブジェ
クトサーバは、様々な分散オブジェクトの所在をつきと
めそれらの間の通信を確立する オブジェクト・リクエ
スト・ブローカ(Object Request Broker:ORB)を利用
して通信する。
【0004】分散オブジェクトシステムにオブジェクト
指向プログラミング方法論を導入する利益は大きいが、
そのインプリメントには大きな問題がある。一般に、オ
ブジェクトプログラミングにおいても、プログラミング
の過程でソフトウェアの再利用をインプリメントする目
的を達成することは困難である。典型的に、プログラマ
は、理解することがほとんど、もしくは、全くできない
コードを積極的に利用することはない。このことは、分
散オブジェクトシステムで新しいアプリケーションを開
発するプログラマに対するコメントと説明を容易に付加
することができない開発者にとってとくに問題である。
こうして、プログラマに対して大変有用なコードが準備
されているにもかかわらず、プログラマは分散オブジェ
クトシステムを通じてそれを十分に利用することができ
ない場合が生じ、すでに開発されているコードを再び書
いてしまう事態がおきる。
【0005】さらに、大変大きなプログラムをコード化
する過程は非常に困難である。プログラマはアプリケー
ションを作成するために大量の複雑なコードを解析する
必要がある。オブジェクトプログラミングは、プログラ
マはアプリケーションのオブジェクトが備えている継承
構造に気づかなければならないという、大きな課題を提
示している。このように、大きなオブジェクト指向アプ
リケーションの開発において、プログラマはプログラム
中のオブジェクトのあいだの関係について認識する必要
があり、それは、吸収し解析する必要のある多量の関連
文書によってよりいっそう困難なものとなる。
【0006】異なるコンピュータ・プラットフォーム上
のオブジェクトや異なるプログラミング言語で書かれた
オブジェクトを、既存のプログラミングコードを再開発
したりユーザに大きな負荷をを負わせることなく、分散
オブジェクトシステム上で利用できるという比較的透過
的な方法によって分散オブジェクトをインストールした
り生成したりできることはプログラマやユーザにとって
大変望ましいことである。さらに、分散オブジェクトプ
ログラミングは、アプリケーションの中のオブジェクト
間の関係についての解析と設計を単純化する設計や方法
によってより容易なものとなる。これら両方の問題の解
決は、プログラマが真に創造的な努力を必要とする部分
に注目し、反復的なコーディングや解析を最小にする事
を可能とし、それによってオブジェクト指向アプリケー
ションと分散オブジェクトアプリケーションの開発を促
進する。
【0007】
【発明を解決するための手段】本発明は、分散オブジェ
クトシステム上ですでに利用可能なコンピュータのコー
ドの再利用を促進する、比較的直感的で透過的な方法で
分散オブジェクト・ネットワーク上で分散オブジェクト
をインストールしたり構成したりするための方法、装
置、及び、コンピュータに読みとり可能な媒体を供給す
る。本発明の方法、装置、及び、コンピュータに読みと
り可能な媒体の利用によって、分散オブジェクトの構
成、設計、及び、分析が促進されることを、以下の発表
と図によって明らかにする。
【0008】本発明の一側面として、少なくとも1個の
既存のオブジェクト、もしくは、既存のオブジェクトの
派生物と、アプリケーション・プログラム・インタフェ
ースを含むオブジェクト指向アプリケーション・ソフト
ウェアが動作する、分散オブジェクト・システム上にイ
ンストールされるオブジェクト指向アプリケーションを
構成する、コンピュータにインプリメントされる方法を
供給することがあげられる。具体的に、この発明の手法
は、分散オブジェクト・システム上で供給される既存の
オブジェクトに対するリファレンスを供給するコンポー
ネントを含むカタログ化機能を供給する段階を含む。カ
タログ化機能によってあるコンポーネントがアプリケー
ション・ソフトウエアの一部となるように選びだされる
と、その選択されたコンポーネントに参照されるオブジ
ェクトに相当する部品は、その選択されたコンポーネン
トから派生する。その部品は、オブジェクト指向アプリ
ケーション・ソフトウェアのためのコンピュータ・コー
ドによって作られる、部品の間の関連を定義する、選択
と定義リンク機能の利用によって、分散オブジェクトシ
ステム中での、少なくとも一つの既存のオブジェクトを
参照する部品とリンク付けることのできるアプリケーシ
ョン構成環境の中で利用できるようになる。最後に、ア
プリケーション・プログラムの実行時に、部品間の関連
を効果的にインプリメントできるコンピュータ・コード
を生成できるような部品間の関連を定義できるアプリケ
ーション構成環境の中で、部品は少なくとも一つの他の
部品と関連付けられる。
【0009】具体的に、既存のオブジェクトに対する参
照としてアイコンがあり、カタログとアプリケーション
構成環境としてグラフィカル・ユーザ・インタフェース
があり、選択の段階としてアイコンの一つを選ぶ動作が
ある。他の具体例として、アプリケーション構成環境で
利用できる既存のオブジェクトに対する参照を作る手続
きとして、カタログファシリティからアプリケーション
構成機能にリファレンスをドラッグする動作がある。さ
らに他の具体例として、各部品はプラグとソケットを供
え、リンクを作成する手続きとして最初の部品のプラグ
と2番目の部品のソケットとの間に連結を定義するとい
うことがある。他の具体例として、カタログファシリテ
ィはアイコンとアイコンによって表される既存のオブジ
ェクトに関する情報をみるための領域であり、コンポー
ネントを選択する手続きは、選択されたコンポーネント
によって参照される既存のオブジェクトに関する情報を
表示を引き起こす効果がある。
【0010】本発明のもう一つの側面は、分散オブジェ
クトシステムにインストールされるコンピュータ制御用
オブジェクト指向アプリケーションソフトウェアのもと
での構成用コンピュータシステムを供給するということ
である。具体的に、この発明のシステムは、分散オブジ
ェクトシステム上にインストールされている既存のオブ
ジェクトシステムのリファレンスのカタログを含むコン
ポーネントサービスを備えている。このコンポーネント
サービスはリファレンスを使って構成物を作成するため
のコンポジションビルダと対である。コンポジションビ
ルダは、オブジェクトアプリケーションソフトウェアの
ためのコンピュータコードを供給するために関連を定義
するためにリンクできるリファレンス間の選択と定義リ
ンクのための機能を備えたアプリケーション構成環境を
供給する。プログラムソースファイルを生成する構成物
からのソースコードをコンパイルし生成するためのコー
ド生成ユニットも供給する。コード生成器はさらに、分
散オブジェクトシステム上にインストールするためのソ
フトウェアオブジェクトを生成するためのコード生成ユ
ニットによって生成されるプログラムソースファイルを
扱うオブジェクト開発機能とともに利用される。
【0011】具体的に、コンポジションビルダは、その
中で部品を選択したりリンクしたりするためのコンポジ
ションワークスペース、既存のオブジェクトのインタフ
ェースを定義するコンピュータコードを編集するインタ
フェースエディタ、編集するファイルを選択するための
ブラウザ、及び、部品に参照されるオブジェクトに関す
る情報を定義するためのサマリテーブルを備える。コン
ポジションワークスペース、インタフェースエディタ、
ブラウザ、及び、サマリテーブルはそれぞれグラフィカ
ル・ユーザ・インタフェースを備える。アプリケーショ
ン構成環境は、部品を表示・選択・リンクするグラフィ
カルユーザインタフェース、選択された部品のプラグを
表示・選択するための領域、選択された部品のソケット
を表示・選択するための領域、構成中のアプリケーショ
ンのインタフェースを表示するための領域、既存のオブ
ジェクトのインタフェースを参照するための領域、及
び、選択された部品の属性値を設定するための領域を含
む。
【0012】本発明には、分散オブジェクトシステムに
インストールされるオブジェクト指向アプリケーション
ソフトウェアを構成するためのコンピュータプログラム
製品としての側面もある。このオブジェクト指向アプリ
ケーションソフトウェアは、少なくとも1個の既存のオ
ブジェクトか既存のオブジェクトの派生物を含んでい
る。具体的に、このコンピュータプログラム製品は、分
散オブジェクトシステム上で供給される既存のオブジェ
クトへの参照を含むカタログファシリティを供給するた
めの、可読なプログラムコードデバイスである。さらに
このコンピュータプログラム製品は、オブジェクト指向
アプリケーションのためのコンピュータコードによって
供給される相互の関連を定義するために参照をリンクで
きるアプリケーション構成環境を供給するためのプログ
ラムコードデバイスをも含む。そのアプリケーション構
成環境は、リファレンスの中でリンクを選択・定義する
ための機能を備えている。このコンピュータプログラム
製品は、アプリケーション構成環境で利用可能な既存の
オブジェクトへのリファレンスを選択するためのプログ
ラムコードデバイスおも含む。さらに、アプリケーショ
ンプログラム実行時に関係をインプリメントするのに効
果的なコンピュータコードが生成されるようなリファレ
ンスの間の関係によって定義するアプリケーション構成
環境の中のすくなくとも他の一つ以上のリファレンスへ
のリファレンスをリンクするための追加コードデバイス
をも含む。
【0013】
【発明の実施の形態】これらと他の本発明の側面、及
び、利点は、以下の図を付随した詳細な記述により明ら
かになる。
【0014】1.分散オブジェクトシステムの背景と物
理的実装 本発明には、コンピュータシステムに蓄積されたデータ
を扱う様々なステップがある。これらのステップでは、
物理的な量を物理的に操作する必要がある。一般に、こ
れらの量は、その必要がないにもかかわらず、蓄積、転
送、結合、比較、及び、他の操作が可能な電気的、もし
くは、磁気的な信号の形をとる。共通に利用できる目的
のために、これらの信号は、ビット、値、要素、変数、
文字、データ構造、もしくは、同様のものとしてよく参
照される。しかし、これら全て、及び、これらと同様の
言葉は適切な物理量と結びつけられたものであり、ま
た、これらの量に対する単なる便宜的なラベルであると
いうことを覚えておかなくてはならない。
【0015】さらに、実施される操作は、しばしば、識
別する、実行する、もしくは、比較するといったような
言葉で参照される。本発明の一部である、ここに記した
全ての操作は、機械操作である。本発明の操作で操作を
実行する有用な機械には、汎用デジタルコンピュータや
同様の装置が含まれる。どの場合でも、コンピュータを
操作するときの操作方法と、計算そのものの操作方法の
違いについて留意しておくべきである。本発明は、他の
何らかの物理的信号を生成するための電気的、もしく
は、他の物理的信号に対する操作するときのコンピュー
タに対する操作に対する手法に関するものである。
【0016】本発明は、これらの操作を実行する装置に
も関係している。この装置は、特定の目的のために特別
に作成されるかもれないし、コンピュータに搭載される
コンピュータプログラムによって再構成、もしくは、特
定の動作をさせられる汎用コンピュータであるかもしれ
ない。ここで述べる発明は特定のコンピュータ、もしく
は、他の装置に関連したものではない。特に、ここで述
べた方法に従って書かれたプログラムとともに様々な汎
用コンピュータが使われるかもしれないし、特定の手法
を実行するためにより特化した装置を作成した方が便利
かもしれない。これら多様な機械に必要とされる構造に
ついては後に記す。
【0017】さらに、コンピュータにインプリメントさ
れた様々な操作を実行するためのプログラム命令を含
む、コンピュータに読みとり可能な媒体にも関係してい
る。その媒体とプログラム命令は、本発明のために特別
に設計作成されるかもしれないし、広く一般に知られた
種類のもので利用可能な、コンピュータソフトウェアの
技術であるかもしれない。コンピュータに読みとり可能
な媒体の例として(とくにこれらに制限される訳ではな
い)フロッピーディスク、磁気ディスクといった磁気媒
体、CD-ROMディスクといった光媒体、MOディスクといっ
た光磁気媒体、そして、リードオンリーメモリやランダ
ムアクセスメモリといったプログラム命令を蓄積し実行
するために作られたハードウェアなどが含まれる。プロ
グラム命令には、コンパイラによって生成されるマシン
コードとコンピュータがインタプリタを利用して実行さ
れる高級コードを含むコードとの両方が含まれる。
【0018】分散オブジェクトシステム 10 は一般に、
図1で記号的に記したオブジェクト・リクエスト・ブロ
ーカ(ORB)11 を含む。ORB 11 は、クライアントから
サーバ(目的オブジェクト)にコールを配送しクライア
ントに応答を返すために必要な機能と、位置特定と転送
機構を供給する。クライアントとサーバは同じプロセス
に存在するかもしれないし、同じ機械の別のプロセスに
存在するかもしれないし、全く別のマシンに存在するか
もしれない。ここでの議論のために、クライアント 20
は分散オブジェクト上で操作を起動してもよいものと
し、分散オブジェクトかプロセスの形をとっても、とら
なくてもよいものとする。分散オブジェクトには多様な
表現形式がある。例としては、分散オブジェクトはアプ
リケーションプログラマによて供給されるC++のオブ
ジェクトかもしれない。また、以後の2節で詳細を述べ
るビジュアル・アプリケーション・ビルダ 15 のなかで
開発された分散オブジェクトであるかもしれない。ビジ
ュアル・アプリケーション・ビルダは、開発者が、簡単
にいうと、分散オブジェクトシステムで利用可能なオブ
ジェクトタイプの一覧から視覚的に選択し、新しいオブ
ジェクトを生成するためにその選択したオブジェクトに
よって供給される機能をグラフィカルに連結できるよう
にするものである。
【0019】オブジェクト開発ファシリティ 16 は、分
散オブジェクトコードの開発者のオブジェクトを覆い隠
す、もしくは、カプセル化することによって、部分的
に、分散オブジェクトの生成とインストールを簡略化す
るために利用される。オブジェクト開発ファシリティ 1
6 は開発者のオブジェクトをORB オブジェクトインプリ
メンテーションに変換するために利用される。この例で
は、ORBオブジェクトインプリメンテーション 14は図中
で場所によってサーバとして表現されている。開発者
は、ORBのインタフェースを定義するためにインタフェ
ース定義言語を用い、オブジェクトの振るまい決めるた
めに開発者のオブジェクトを供給し、そして、ORBオブ
ジェクトインプリメンテーション 14 を製造するために
オブジェクト開発ファシリティ 16 を利用する。実行時
に、このORBオブジェクト(サーバオブジェクト)のイ
ンスタンスはORBオブジェクトインプリメンテーション
14で利用できるように生成される。オブジェクト開発フ
ァシリティはある点でクライアントの役割を果たすオブ
ジェクトを作るために用いてもよい点は高く評価される
べきである。
【0020】クライアント20はサーバとスタブ(stub)
21、サブコントラクト(subcontract)・レイヤ 36、フ
ィルタ 40、そしてトランスポートレイヤ 38 を通じて
連絡する。スタブ 21 はサロゲート(surrogate)22、
メソッドテーブル 24、そして、スタブファンクション
25 を含む。クライアント 20は、最初に、クライアント
にとってサーバに見えるサロゲート 22 と通信する。
かわりに、クライアント20は、サロゲート22、メソッド
テーブル24、そして、スタブファンクション(スタブ関
数)25 を通じて行う代わりに、動的起動インタフェー
ス(Dynamic Invocation interface : DII)26を通じて
直接サーバオブジェクトと通信してもよい。動的起動イ
ンタフェース26はクライアントが動的要求を生成できる
ようにするために用いられる。
【0021】サブコントラクトレイヤ36は、特定のサブ
コントラクトによって名付けられた様々なサービス(も
しくは特徴・オブジェクトの機能)をインプリメントす
るためのサブコントラクトを利用するためにオブジェク
トに必要とされる機能を提供する。サブコントラクト
は、個々のオブジェクトによって起動されるであろう分
散オブジェクトシステムによって提供されるサービスの
質を識別する。例えば、特定のオブジェクトのために利
用されるセキュリティの特徴を識別する。特定のサブコ
ントラクトは実行時にサーバオブジェクトと動的に結び
つけられる。フィルタ40は、もし利用された場合には、
圧縮、暗号化、トレース、もしくは、デバッグといった
様々な機能を実現する。トランスポートレイヤ 38は,ク
ライアントとは典型的には同じプロセスを共有しないサ
ーバとのあいだで情報を先導し、転送するための操作を
行う。
【0022】標準インプリメンテーションスイート(st
andard inplementarion suite)28(もしくはオブジェ
クトアダプタ)は、オブジェクト鍵管理と同様の方法で
ORBオブジェクト14と対話するサブコントラクトの集合
を表す。サブコントラクトは複数のインプリメンテーシ
ョンスイートに属す場合があることを特に記しておく。
インプリメンテーションスイートも異なるサブコントラ
クトを利用する。静的スケルトン32か動的スケルトン30
のいずれかの形をとるスケルトンはサーバオブジェクト
78が必要とする形式に要求を変換するために利用され
る。このようにして、スケルトン30と32は適当なサーバ
オブジェクト78を呼び出す。静的スケルトン30はインタ
フェースに固有のオブジェクトインプリメンテーション
14を呼び出すために利用され、一方、動的スケルトン30
は一般にインタフェースに固有のオブジェクトが利用で
きない場合に使われる。ORB インタフェース 34は全て
のORBのためのORBに直接つながるインタフェースで、オ
ブジェクトのインタフェースやオブジェクトアタプタに
依存しない。ORB デーモン46は、クライアントによって
起動されたときにオブジェクトサーバがアクティブにな
っていることを保証する責任がある。
【0023】安全プロトコル(セキュリティプロトコ
ル)42は、インターネット上の ORB間のプロトコルを安
全にする実行可能なプロトコルであり、安全な方法でト
ランスポートレイヤ38を通じて情報を転送するのに役立
つ。インターネット上の ORB間プロトコルは異なる機械
のプロセスの間で典型的に通信するためのプロトコルで
ある。しかし、いくつかの場合、インターネット上の O
RB間プロトコルは、同じマシンのプロセスの間で通信す
る場合もある。セキュリティサーバ54は異なる機械のプ
ロセスの間で利用されるサービスを安全にするセキュリ
ティ管理サーバである。
【0024】タイプコード・Any(任意)モジュール44
はタイプコード及びAny(任意)オブジェクトを実現す
る。タイプコードはインタフェース定義言語(IDL)の
データ型を記述し、タイプの記述がサーバとクライアン
トの間で転送されるようにする。IDL データ型のインス
タンスはAny(任意)オブジェクトによってカプセル化
される。Any(任意)オブジェクトはカプセル化された
データのタイプコードとデータの汎用符号とを参照す
る。
【0025】インプリメンテーションレポジトリ(impl
ementation repository)50はオブジェクトサーバに関
する情報を格納する。とくに、インプリメンテーション
レポジトリ50はサーバプロセス開始するために必要とさ
れる情報を格納する。例えば、インプリメンテーション
レポジトリ50はサーバプログラムの場所、プログラムの
引数、そして、プログラムに引き渡される環境変数とい
った情報を格納する。
【0026】単純パーシスタンス(simple persistenc
e)56 は、IDLに定義されたタイプが読み出せ、また、
ディスクに書き込めるようにする追加コードの一部とと
もに、IDLコンパイラを用いて得たIDL型の実行時出力と
型をインタフェース定義言語を用いて定義する。ネーミ
ングサービス52 はORBオブジェクトに名前を付けるため
に利用される。クライアントは目的のオブジェクトをそ
の名前によって検索するためにネーミングサービス52を
利用してもよい。インタフェースレポジトリ(IFR)48
は分散システムじょうの全てのオブジェクトの全てのオ
ブジェクトについて知っている。
【0027】本発明の具体的具体例として、図2の100
に記したネットワークのようなコンピュータネットワー
クによって互いに結合された 1台以上のコンピュータに
分散オブジェクトが配置される。この図のように、ネッ
トワーク100はネットワーク104と結合されたコンピュー
タ102を含む。ネットワーク104はさらに、サーバ、ルー
タ、もしくは、データや命令がネットワークに接続され
たコンピュータの間をやりとりされるように、他のコン
ピュータ108、110と112に加えて106のようなコンピュー
タを含む。コンピュータネットワークの設計、構成、及
び、インプリメントはこれらの技術と親和性がある。
【0028】コンピュータ102、106、108、110及び112
は図3の200に図示する。各コンピュータは、中央演算
ユニット(CPU)もしくは並列プロセッサや分散プロセ
ッサを含むマルチプルプロセッサのような(これらに限
定されるわけではない)計算を実行するプロセッシング
ユニット202を含む。プロセッサ202 は、ランダムアク
セスメモリ(RAM)やリードオンリーメモリといった一
次記憶204 と対で利用される。RAMはプロセッサ202で現
在実行されているプロセスのための、分散オブジェクト
とその関連データ・操作命令を含むプログラム命令とデ
ータを一般に格納する。ROM は、コンピュータがその機
能を実現するために利用する基本的な操作命令、デー
タ、及び、オブジェクトを一般に格納する。さらに、ハ
ードディスク、CD-ROM、光磁気記憶装置、テープドライ
ブといった二次記憶装置208 はプロセッサ202と双方向
的に結合される。二次記憶装置208は一般にプロセッサ
に頻繁には利用されないプログラム命令、データ、及
び、オブジェクトを一般には格納するが、プロセッサは
アドレス空間の一部、例えば、仮想記憶として参照する
場合もある。上記の各コンピュータは、キーボードやポ
インタデバイス(すなわちマウスやタブレット)といっ
た入力媒体と一般に含む入出力源 210を備える。各コン
ピュータはネットワークコネクション212 も備えること
ができる。追加大容量記憶装置をネットワークコネクシ
ョン 212を利用してCPU202に接続してもよい。上記のハ
ードウェア及びソフトウェア要素は、ネットワーク装置
と同様に、標準的な設計・構成のものであることを特に
記しておく。
【0029】ここで述べるコンピュータへのインプリメ
ントの方法は、コンピュータシステム上のコンピュータ
プログラム命令を実行するための、コンピュータ科学で
は一般に知られた技術や装置を利用してインプリメント
するものである。ここでは、コンピュータシステムと
は、RAM、ROM、CD-ROM、やハードディスクといった、プ
ロセッシングユニットによって、データや命令を交換す
る一つ以上のデータ記憶装置とともに、データや命令を
取り扱うためのプロセッシング装置(中央演算装置な
ど)を含む。データ記憶装置は専用(プロセッシングユ
ニットと直接結合されている)かリモート(コンピュー
タネットワークを介してプロセッシングユニットと結合
されている)である。コンピュータネットワークを介し
てプロセッシングユニットと結合されるリモートデータ
記憶装置はプログラムを特定のワークステーション上の
プロセッシングユニットで実行するためにプログラム命
令を送るために利用できる。さらに、プロセッシング装
置は、同じ物理機構か(並列プロセッサの場合)か、ネ
ットワーク(分散プロセッサの場合)かのいずれかを介
して 1個以上のプロセッシング装置を接続できる。リモ
ートで結合されたデータ記憶装置とプロセッサの利用は
コンピュータ科学の中でより一般的なものになるであろ
う。ここではコンピュータネットワークとは、互いに通
信できるコンピュータシステムの集まりが相互に結合し
た通信チャンネルの集まりのことをいう。通信チャンネ
ルには、ツイストペアケーブル、同軸ケーブル、光ファ
イバ、衛星通信、もしくは、デジタル無線といった通信
媒体を含む。コンピュータシステムは、広い地域(16〜
1600kmの場合。WAN)に分散していてもいいし、局所的
なネットワーク(3〜50mの場合。LAN)でもよい。さら
に、さまざまなローカル及びワイドエリアネットワーク
は、集合的なコンピュータネットワークへ結合すること
ができる。そのようなコンピュータネットワークの連合
の例としてインターネットがある。
【0030】3.本発明の構成ツール 図4の400に、分散オブジェクトシステムでオブジェク
ト指向アプリケーションを構成するシステムを示す。本
発明のこのシステムは。図3で示し先に述べたような分
散オブジェクトシステムにインストールするアプリケー
ションを構成することが、ユーザ、典型的にはプログラ
マ、にできるようにするコンポジションビルダ402 を含
む。コンポジションビルダは、分散オブジェクトシステ
ム上で利用可能なオブジェクトを、ユーザやプログラマ
が利用できるようにするコンポーネントサービス404 と
共に利用される。具体的に、このような利用ははカタロ
グによって可能となる。カタログとは、簡単にいって、
分散オブジェクトシシステム上でプログラマが利用でき
るソフトウェア資源の一覧である。カタログは具体的
に、カタログに含まれているコンポーネントに参照され
るオブジェクトに関するインプリメンテーションと機能
に関する情報をプログラマに提供する。このように、カ
タログは、ユーザにソフトウェア資産を利用可能にする
ことによって分散オブジェクトシステムにわたる協調作
業を促進し、利用可能なオブジェクトとソフトウェアに
関する詳細な情報を提供することによってソフトウェア
開発者間での共同作業を促進する。コンポジションビル
ダ 402はさらに、コンポジションビルダによって作られ
たコンポジションを格納するプログラムテンプレートレ
ポジトリ402と共同して410にしめすようなプログラムの
ソースファイルを製造するコードジェネレータ408と共
に利用される。
【0031】プログラムソースファイル410は次にODFコ
ンパイラ・リンカ414に送られる。さらに、ODFコンパイ
ラ・リンカ414は、コンポーネントサービス404と共に利
用されるオブジェクトアクセスソフトウェアと共に利用
される。オブジェクトアクセスソフトウェア412は、分
散オブジェクトを構築するために OMG CORBA仕様に従う
ようにIDLインタフェースについての言語の対応を準備
するためにIDL コンパイラが利用されたときに生成され
るスタブの集合からなる。ODFコンパイラ・リンカは、4
20に概略を示した、順次ネットワークオブジェクト422
を利用するオブジェクトソフトウェア416とネットワー
クソフトウェア 418の両方を生成する。これらのネット
ワークオブジェクトは、コンポーネントサービス404に
よってODFコンパイラ・リンカ414に供給されるオブジェ
クトアクセスソフトウェア414を用いて利用される。
【0032】本発明は、分散オブジェクトシステム中に
配置できる 1個以上の既存のオブジェクトかその派生物
からソフトウェアアプリケーションがその中で構成され
る非常に直感的で便利な環境をプログラマやユーザに提
供することによってコードの再利用しプログラマの生産
性をあげるという上記の目的を促進するコンポジション
ユーザインタフェースを含む。本発明では、コンポジシ
ョンビルダインタフェースは、オブジェクト指向ソフト
ウェアの設計を簡略化し既存のコードの再利用を促進す
るように設計されたいくつかのビューを含む。最初のビ
ューを図5の500に示す。このビューには、タイトルバ
ー 502とコントロールリージョン503から成るウィンド
ウ501で構成されるコンポジション構成環境が示されて
いる。コントロールリージョン 503は、複数のインタフ
ェースモード制御ボタン504と作成ボタン505とコンパイ
ルボタン506を含む。
【0033】インタフェースツールリージョン507は、
一般に510に示されるような(インタフェースはそれぞ
れ「App」と「Stream」である)現在のインタフェース
が起源とする既存のインタフェースを表すアイコンに加
えて、現在操作されているインタフェース(たとえば 5
09のAudioAppと書かれたインタフェース)を表すアイコ
ンを表示するためのカレントインタフェース・リージョ
ン508を含めて表示する利用可能なインタフェースの表
示を含む。開発中の特定のアプリケーションのためのユ
ーザインタフェースを調べて開発するためのエディタを
起動するユーザインタフェースコントロールボタンを 5
11に示す。こようなユーザインタフェースを作成し編集
するユーティリティはコンピュータ科学技術としては一
般的なものである。
【0034】開発の過程で操作される部品の様々なパラ
メータをプログラマが制御できるようにする値編集リー
ジョンは一般に 512のようなものである。512 の表示
は、操作中の部品(ここではオブジェクトAudioDev53
0) を示す最初の領域 514、編集中の部品の特性(ここ
ではVolumeという特性)のためのフィールド、及び、編
集中の特性の値(ここでは特性Volumeの値が10.0に設定
されている)を示す値フィールドを含む。
【0035】エディタ500はさらに、522に示した編集可
能なSocket_1といった、構成中のアプリケーションのイ
ンタフェースのために供給されているソケットのための
領域520を含む。同様に、2番目のフィールド524はアプ
リケーションによって供給されるPlug_1 526といったプ
ラグを表示する。中央の部分 525は、構成中のアプリケ
ーションをインプリメントするためのコードを定義する
ためにグラフィカルに様々な既存のオブジェクトが並べ
られて連結されたものとして表される部品がしめされる
ワークシートである。ワークシートには二つの既存のオ
ブジェクト(AudioDev 530とInputStream532)を表す部
品が示されている。部品530はコネクション534によって
Socket_1と連結されており、さらにコネクション 536
で InputStream 部品 532 と連結されている。InputStr
eam 532もインタフェース540とPlug_1 526とコネクショ
ン538によって連結されている。
【0036】コネクションは、544に示したプラグと546
に示したソケットを利用して、部品と他の部品の間もし
くはインタフェースの間に作られる。ソケットは、この
オブジェクトから他の要求元オブジェクトに渡されるオ
ブジェクトリファレンスを構成する、このオブジェクト
によって供給されるサービスを表す。プラグは、逆に、
オブジェクトが要求したり処理したりできるサービスを
表す。これらのことはオブジェクトプログラミング技術
の分野ではよく知られたもので、最初のオブジェクトの
プラグと2番目のオブジェクトのソケットの間のコネク
ション(コネクション536のような) を描くことによっ
て通信が図示されたオブジェクトリファレンスを送った
り操作したりすることで、オブジェクトはそれらの間で
通信する。図5で示したインタフェースから明らかなよ
うに、プラグとソケットの間のコネクションを定義する
対話的ツールを用いて連結されたオブジェクト(すなわ
ち部品)を表すアイコンを提示するグラフィカルな環境
によるプログラミングオブジェクトコネクションパラダ
イムの利点によってアプリケーションの開発が促進され
る。図5には、550で概略をしめしたコンポーネントカ
タログも示されており、カタログは522に示すコンポー
ネントを含む。
【0037】本発明の実施例では、コンポーネントカタ
ログ550のコンポーネント552のようなコンポーネントを
選択すし、そのコンポーネントをコンポーネントカタロ
グからワークシートへドラッグすると、コンポーネント
は552'のコンポーネント部品に変形される。さきに述べ
たように、部品は、部品とコンポーネントの両方を参照
するオブジェクトタイプのための入れ物である。部品
は、それに相当するオブジェクトに利用可能なプラグや
ソケットを差し示す。ワークシート中の552'のような部
品のプラグとソケットを連結することによって。本発明
のコンポジションビルダは部品の間の必要なコネクショ
ンを確立したものに相当するコードを生成することがで
き、このように分散システムにわたって適当なオブジェ
クトを配置するという困難なプログラマの仕事を軽減
し、これらのオブジェクトを利用するために必要なボイ
ラープレートコードを供給し、そして、これらのオブジ
ェクトの間の通信を確立するために必要な文法上の適当
な引数を定義する。このようにコンポジションビルダ
は、分散システム上で利用できるコードを参照し再利用
するより簡単な方法を提供し、アプリケーションを構成
するための直感的な枠組みに供給されるコードをインプ
リメントすることにより、分散オブジェクトシステムに
インストールされるアプリケーションの構成を促進す
る。このように、ワークシートを利用することによっ
て、もし必要ならば容易に早く評価・修正することがで
きるコードが設計できるような現在のコンポジションを
構成しているオブジェクトの間の関連を容易にプログラ
マは識別できる。このように、本発明のコンポジション
ワークシートはアプリケーションのインプリメンテーシ
ョン同様その設計をも促進する。
【0038】2番目の状態では、本発明のコンポジショ
ンビルダの、上記のボタン504の一つを押したときに利
用される2番目のインタフェースが提供される。この状
態では、コンポジションビルダは、図6の600に示すよ
うなファイル閲覧ユーティリティを含む。プログラムの
構成時に利用するファイル(例えばプログラムのソース
ファイルや実行可能コードライブラリ)をプログラマに
比較的便利にみれるようにすることによってオブジェク
トアプリケーションの構成を促進するファイル閲覧ユー
ティリティ 600はコンピュータプログラミング技術の分
野では有用なものである。構成中のコンポジション参照
され操作ている継承されたインタフェースや部品を用い
るために必要な全てのオブジェクトアクセスソフトウェ
ア(412)の一覧が操作されるのと同様に、コンポジシ
ョンビルダ402とクライアントコンポーネントサービス4
04とによって表示も操作される。
【0039】600で示したように、ブラウザは、タイト
ルバー602、ワークシート500のコントロールリージョン
503とほぼ同じコントロールリージョン603、及び、ファ
イルファイル検索・閲覧リージョン608から成るウィン
ドウ601を含む。検索・閲覧リージョンは、おされたと
きに、様々な特徴(例えばテキスト文字列)に基づいて
ファイルやオブジェクトを検索するために、コンピュー
タ科学技術の分野では一般的なサーチエンジンを用いて
検索する事のできるファイルを識別するものやオブジェ
クトの特徴をユーザに示す検索(Find)ボタン610を含
む。検索ボタン610にはファイル検索エンジンに情報を
入力するためのウィンドウ612 がある。Patternウィン
ドウファイル614とContainsウィンドウファイル 616は
両方とも、検索ボタンを押すことによって開始される検
索機能を実行するための追加属性を入力するためのもの
である。ウィンドウ600のリージョン618は様々なファイ
ルを階層的に表示するための三つの行 620、622、及
び、624を含む。ファイルの階層構図の中でより上位の
ものがコラム 620のより左の方に表示される。そのよう
なファイルには、626のotherや、上下の平行線によって
選択されていることが示されている628のsourceといっ
たファイルが含まれる。もしファイルがsourceディレク
トリに含まれているときには、630 のファイルsample.c
cようにコラム622の中に一覧が表示される。より高次の
ディレクトリにサブディレクトリがあるところにはコラ
ム622にサブディレクトリが620に示したのとほぼ同じ形
式で表示される。サブディレクトリを選択すると(ここ
には示されていない)選択されたサブディレクトリにあ
るファイルとサブディレクトリがコラム 624に表示され
るようになる。これらの分野ではごくふつうの技術なの
だが、コラム 624に表示されているサブディレクトリを
さらに選択すると、コラム620の内奥がコラム 622のも
のと置き換えられ、コラム622に表示されているものが6
23に表示され、もともと624にもともとあるサブディレ
クトリの内容がコラム624に表示されるという再配置が
生じる。
【0040】本発明のもう一つのコンポジションビルダ
インタフェースの状態では、選択された特定の部品もし
くはコンポーネントに関する情報を入力するための 3番
目のインタフェースが提供される。図7の700に示すよ
うに、タイトルバー702と、図5と図6で示したものと
ほぼ同じ機能を実現するボタン704、705と706を備えた
コントロールリージョン703とから成るウィンドウから
このインタフェースは構成される。表示領域708には、
他のコンポジションのオブジェクトと含めるために構成
されたオブジェクトの性質や特性を他のユーザのカタロ
グが決定できるようにするリファレンスオブジェクトの
性質をプログラマが記述できるような、特定のオブジェ
クトやコンポーネントに参照されるオブジェクトの識別
や記述に関する様々な情報が提供される。そのような情
報には、コンポーネントの名前、600 のブラウザを用い
て検索できる様々なキーワード、選択されたコンポーネ
ントや部品に関連する様々なコンポーネント、選択され
たコンポーネントや部品に関連する様々なコンポーネン
ト、コンポーネントや部品に参照されるオブジェクトの
状態、現在選択されているコンポーネントや部品を現在
利用している様々なコンポーネント、参照されているオ
ブジェクトに関する様々な構造化された情報へのリンク
を定義する例やテスト、更新履歴と同様の作者の身元や
住所などが含まれる。さらに、710 に示すような目的や
機能に関する短い記述が提供される。このように、この
インタフェースが、分散システム上にすでにインプリメ
ントされたオブジェクトの再利用を促進するための関連
情報を比較的素直にプログラマに提供する利点がわか
る。
【0041】もう一つの状態では、本発明のコンポジシ
ョンビルダは、構成中のアプリケーションを使うための
様々なインタフェースを修正するためのエディタを含
む。そのようなエディタの一例を図8の800に示す。イ
ンタフェースエディタは、タイトルバー802と、図5で
示したのとほぼ同じ機能を備えたボタン804、805と806
を含むコントロールリージョンとを含むウィンドウ801
から構成される。編集ポート808では、インタフェース
を定義し編集するためにテキストを入力することがで
き、それに加えて IDLコンパイラといった関連するコン
パイラからのメッセージを受け取ることができる。エデ
ィタはC++といったオブジェクトコードとIDLコード
の両方を編集するための標準的なテキストエディタであ
る。
【0042】上記のインタフェースは、コンピュータ科
学の技術、より限定して、コンピュータインタフェース
の技術の分野では知られたソフトウェアや技術を用いて
構成されている。上記のインタフェースから、「OpenSt
ep」(Sun Microsystems ofMountain View,CA より)、
「Windows」(Microsoft Corporation of Redmond,WA
より)、Macintoshオペレーティングシステム(Apple C
omputer of Cupertin, CAより)、そして「X Windows」
(X Consortium of Cambridge, MA)のソフトウェアを
構成できる。本発明から出発することなく上記のインプ
リメンテーションに様々な変更を行うことができる点は
優れている。
【0043】コンポジションビルダとその関連インタフ
ェースについて述べてきたが、つぎにここで述べたコン
ポジションビルダを用いるアプリケーションの構築につ
いて述べる。そのような方法の一つを図9の900に示
す。902で始まり、新たな構成は904で作成される。906
では、構成するアプリケーションに必要とされる情報と
供給される情報を提供するインタフェースを IDLがイン
プリメントすることで、構成のためのインタフェースが
選択される。908 では、オブジェクトに対するインタフ
ェースがすでに存在しているかどうかについての決定が
行われる。もしそのようなインタフェースが存在しない
ならば、上記のワークシート500こコンポジションビル
ダ、とくに、ワークシート500の領域 520と524を用い
て、分散オブジェクトシステム上の他のオブジェクトと
通信するために作られるアプリケーションに必要なプラ
グとソケットが910 で作られる。もしインタフェースが
すでに存在しているか、910で新しいインタフェースの
ためのプラグとソケットが定義されたならば、新しいコ
ンポジション(すなわち、開発中のアプリケーション)
の実装で用いられるコンポーネントが912 で選ばれる。
これらのコンポーネントはカタログ550から選ばれ、552
に表示されるコンポーネントとして構成される。
【0044】先に示したように、コンポーネント 552の
ようなコンポーネントを表現するアイコンを選択する
と、プログラマにはそのコンポーネントに関する情報が
表示される。ステップ914では、図5の534、536、538と
540で示したようなコネクションを用いて、ワークシー
トの領域525に配置されたさまざまなIDLインタフェー
ス、プラグ、及び、他の部品のコンポーネントが連結さ
れる。ステップ916 では、関連するオブジェクトが機能
するようにメソッドが実装される。これらの実装は図8
の800で示したようなテキストエディタを用いて行われ
る。この実装のち、ソースコードが生成され、副ジェネ
レータ408によってコンパイルされる。ステップ920でい
ったんソースが生成されコンパイルされると、生成され
たコードの必要なデバッグを実行するために必要なテス
トを行うことができ、ステップ922と924で最終的なコー
ドがパッケージ化されインストールされる。920から924
にわたるステップは、図4の414のようなオブジェクト
開発ファシリティ(ODF)と連携して行われる。
【0045】図10の1000に新しいインタフェースを構
築する方法を示す。1002で開始され、ステップ1004で新
しいインタフェースに名前が付けられ、ステップ1006で
は、有効なインタフェース名に対する評価項目と与えら
れた名前の文法を比較する標準的な方法を用いて確認す
る。ステップ1008では、与えられた名前が有効かどうか
の決定を行う。もしその名前が有効でないならば、新し
い名前が与えられるステップ1004へ戻るか元の名前をを
修正する必要がある。一般に、このように流れの制御を
戻ると同時にプログラマに対して警告が表示される。10
08でいったん有効な名前が与えられるとユーザは1010で
1個以上のベースインタフェースを選択できる。しか
し、必ずベースインタフェースを選ぶ必要があるわけで
はない。ベースインタフェースとしては、構成されるイ
ンタフェースにふさわしいインタフェースに最も近いも
のを提供しているものが選ばれるべきである。1012は、
プラグとソケットは、図5の500に示されたインタフェ
ースと上記の600、700と800の関連インタフェースと共
に用いて編集される。
【0046】ステップ1014では、インタフェース定義言
語を用いて定義されたインタフェースをこの段階で IDL
テキストを直接入力したいとプログラマが思ってもよ
い。この編集作業は、図8の800に示したようなエディ
タを用いて実現される。ステップ1016では、全ての編集
作業はすべて IDLコンパイラといったものを利用して確
認され、その全ての結果がユーザに表示される。もし編
集が1018で有効ならば、ベースインタフェースの表示と
関連するプラグとソケットがステップ1020で更新され
る。もしそうでない場合には、さらなる編集がステップ
1014で行われる。典型的に、もし編集が有効でないなら
ば、ユーザは図8でしめされたような様々なデバッグ用
メッセージがユーザに対して表示されている。ステップ
1020のプラグとソケットの更新に引き続いて、ステップ
1022で編集作業は終了する。
【0047】プラグとソケットの間のコネクションは、
図11の1100に示すようなブラウザを用いて決定され
る。ブラウザ1100には、1102に示すようなプラグのため
のものを含む様々フィールドや1106、1110と1114に示す
ようなソケットのためのものを含む様々なフィールドが
含まれる。特定のプラグ、すなわちフィールド1104のプ
ラグ 2、を選択すると、そのプラグに関連付けることの
できるソケットがフィールド1108に表示される。上に述
べたものは図5の600に示したブラウザに関するもの
で、ソケットはそれ自身別のソケットと関連があり、フ
ィールド1112と1116には、選択されたソケットに関係さ
れたソケットも表示される。例えば、この図では、ソケ
ット2は1118 で選択されその関連ソケット13は1120で選
択されたものとなり、フィールド1116でソケット14、15
と16の表示がユーザに提供されている。1122に示すよう
なソケット 15の選択はプラグ2がソケット15とリンクさ
れていることを示している。
【0048】上記の発明の記述は理解を明確にするため
にある程度詳細に述べたものだが、追加の主張の範囲
で、ある程度の変更と修正を実施してよいことがわか
る。例えば、あるインタフェース設計に仕様が仕様が記
述されているが、他のインタフェース設計も同様に利用
できる。例えば、図6から図8には1個以上のコントロ
ールボタンや入力フィールドが示されているが、これら
は本発明の範囲や主旨からはずれることなく取り除くこ
とができる。さらに、ここで述べたインタフェース設計
に、オブジェクトの間のコネクションを特定する様々な
方法を導入することができる。例えば、コンポーネント
や部品以外のオブジェクトは既存の分散オブジェクトを
表現するために利用することができる。
【図面の簡単な説明】
【図1】図1は、本発明に従うのオブジェクト・リクエ
スト・ブローカ(ORB)の概略図である。
【図2】図2は、本発明に従うコンピュータ・ネットワ
ークの構成図である。
【図3】図3は、本発明に従うコンピュータ・システム
のブロック図である。
【図4】図4は、本発明に従う、分散オブジェクトシス
テムでオブジェクト指向アプリケーション構築のための
システムの概略図である。
【図5】図5は、本発明に従うコンポジション・ビルダ
の図である。
【図6】図6は、本発明に従うのファイル・ブラウザの
図である。
【図7】図7は、本発明に従うコンポーネントサマリシ
ートとエディタの図である。
【図8】図8は、本発明に従うのインタフェース定義言
語(IDL)エディタの図である。
【図9】図9は、本発明に従う分散オブジェクトシステ
ム上に複合オブジェクトアプリケーションを配置する手
続きの流れ図である。
【図10】図10は、本発明でのオブジェクトインタフ
ェース構築の流れ図である。
【図11】図11は、本発明に従うソケットとプラグの
間の連結を定義するブラウジング・ユーティリティの図
である。
【符号の説明】
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)発明者 フランク ルドルフ アメリカ合衆国, カリフォルニア州, サラトガ, ユニヴァーシティ ドライヴ 241

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 分散オブジェクトシステム上にインスト
    ールされるオブジェクト指向アプリケーションソフトウ
    エアを構築するためのコンピュータにインプリメントさ
    れた(computer-implemented)方法であって、オブジェ
    クト指向アプリケーションソフトウェアはアプリケーシ
    ョンプログラムインタフェースと少なくとも一つの既存
    のオブジェクトまたは既存のオブジェクトの派生物(de
    rivative)を含み、 a)分散オブジェクトシステム上の既存オブジェクトの
    インプリメンテーション(implementation)へのリファ
    レンスを含むカタログ・ファシリティ(catalog-facili
    ty)を提供するステップと、 b)前記リファレンスをリンクし(link)それらの間の
    関連を定義するアプリケーション構築環境を提供し、前
    記オブジェクト指向アプリケーションソフトウェアのた
    めのコンピュータコードを提供するステップであって、
    前記アプリケーション構築環境は前記リファレンス間の
    リンクを選択および定義するためのファシリティ(faci
    lity)を含み、 c)前記カタログファシリティから前記アプリケーショ
    ンソフトウェアに含めるためのリファレンスを選択する
    選択ステップと、 d)前記既存のオブジェクトへの前記リファレンスを前
    記アプリケーション構築環境へ利用できるようにするス
    テップと、 e)前記アプリケーション構築環境において少なくとも
    一つの他のリファレンスに前記リファレンスをリンク
    し、前記リファレンスの間の関係が定義して、前記アプ
    リケーションプログラムが実行されるとき前記関係を効
    果的にインプリメントするコンピュータコードが生成す
    るリンクステップと、を備える方法。
  2. 【請求項2】 前記既存オブジェクトに対する前記リフ
    ァレンスはアイコンを備え、前記カタログファシリティ
    及び前記アプリケーション構築環境はグラフィカル・ユ
    ーザ・インタフェースを備え、前記選択ステップは前記
    アイコンの一つの選択動作(selection action)をする
    ことを備える、請求項1に記載の方法。
  3. 【請求項3】 前記既存オブジェクトへの前記リファレ
    ンスを前記アプリケーション構築環境へ利用可能とする
    ステップは、前記カタログファシリティからアプリケー
    ション構築ファシリティへ前記リファレンスをドラッグ
    する(drag)ことを備える、請求項2に記載の方法。
  4. 【請求項4】 前記リファレンスはコンポーネントであ
    り、前記カタログから前記アプリケーション構築環境内
    へ前記コンポーネントがドラッグされたとき、前記コン
    ポーネントから部品(part)を生成するステップを更に
    含む、請求項3に記載の方法。
  5. 【請求項5】 前記リンクステップは、第1の部品と、
    第2の部品またはインタフェースへのリファレンスと、
    の間の少なくとも一つのコネクション(connection)を
    定義することを備える、請求項1から請求項4のいずれ
    かに記載の方法。
  6. 【請求項6】 前記第1の部品と前記第2の部品の各々
    はプラグ(plug)とソケット(socket)を備え、且つ前
    記リンクステップは前記第2の部品上の(on)ソケット
    と前記第1の部品上のプラグとの間のコネクションを定
    義することを備える、請求項5に記載の方法。
  7. 【請求項7】 前記カタログファシリティは、前記アイ
    コンによって表現される既存オブジェクトについての情
    報と前記アイコンを見る(view)ための領域(region)
    を備え、且つ前記リファレンスを選択するステップは少
    なくとも一つの前記既存オブジェクトに関係する情報の
    表示を引き起こすことに効果的である、請求項2から請
    求項5のいずれかに記載の方法。
  8. 【請求項8】 前記既存オブジェクトはインタフェース
    を含み、且つ前記インタフェースを編集し新しいインタ
    フェースを定義するステップと前記既存オブジェクトの
    ソースコードを編集し新しいオブジェクトのインプリメ
    ンテーションを定義するステップとを備える、請求項1
    から請求項7のいずれかに記載の方法。
  9. 【請求項9】 分散オブジェクトシステム上にインスト
    ールされるオブジェクト指向アプリケーションソフトウ
    エアを構築するためのコンピュータにインプリメントさ
    れる方法であって、オブジェクト指向アプリケーション
    ソフトウェアは、アプリケーション・プログラム・イン
    タフェースと少なくとも一つの既存のオブジェクトまた
    は既存のオブジェクトの派生物を含み、 a)分散オブジェクトシステム上に提供される既存オブ
    ジェクトへのリファレンスを提供するカタログファシリ
    ティを提供するステップと、 b)前記既存カタログファシリティからアプリケーショ
    ンソフトウェアに含めるためのコンポーネントを選択
    し、且つ前記コンポーネントから部品を作る(derive)
    するステップと、 c)前記部品は前記分散オブジェクトシステム上にある
    既存のオブジェクトを参照する少なくとも一つの他の部
    品へリンクできるアプリケーション構成環境に前記部品
    を利用できるようにし、それらの間の関連を定義して、
    それによって前記既存アプリケーションソフトウェアの
    ためのコンピュータコードを供給するステップであっ
    て、前記アプリケーション構築環境は前記部品の間のリ
    ンクを選択し定義するためのファシリティを備え、 d)前記アプリケーション構成環境において前記部品を
    少なくとも一つの他の部品へリンクし、それによって前
    記部品間の関連を定義して、前記アプリケーションプロ
    グラムが実行されるとき前記関連を効果的にインプリメ
    ントするコンピュータコードが生成するリンクステップ
    と、を備える方法。
  10. 【請求項10】 前記既存オブジェへの前記リファレン
    スは、アイコンを備え、前記アプリケーション構成環境
    および前記カタログファシリティはグラフィカルユーザ
    インタフェースを備え、且つ前記選択のステップは前記
    アイコンの一つの選択動作をすることを備える、請求項
    9に記載の方法。
  11. 【請求項11】 前記部品を前記アプリケーション構築
    環境に利用できるようにするステップは、前記カタログ
    ファシリティから前記アプリケーション構築ファシリテ
    ィへの前記リファレンスをドラッグすることを備える、
    請求項10に記載の方法。
  12. 【請求項12】 前記部品の前記各々はプラグとソケッ
    トを備え、前記リンクステップは1第1の部品上の(o
    n)プラグと第2の部品上のソケットとの間のコネクシ
    ョンを定義することを備える、請求項9から請求項11
    のいずれかに記載の方法。
  13. 【請求項13】 前記カタログファシリティは前記アイ
    コンによって表現される既存オブジェクトに関する情報
    と前記アイコンとを見るための領域(region)を含み、
    前記コンポーネントを選択するステップは少なくとも一
    つの前記既存オブジェクトに関連する情報の表示を効果
    的に引き起こす、請求項10から請求項12のいずれか
    に記載の方法。
  14. 【請求項14】 前記部品は前記部品によって参照され
    る既存オブジェクトのインタフェースへのリファレンス
    を含み、前記インタフェースを編集しそれによって新し
    いインタフェースを定義するステップと前記既存オブジ
    ェクトのソースコードを編集しそれによって新しいオブ
    ジェクトインプリメンテーションを定義するステップと
    を更に含む、請求項9から請求項13のいずれかに記載
    の方法。
  15. 【請求項15】 分散オブジェクトシステム上にインス
    トールされるオブジェクト指向アプリケーションソフト
    ウェアをコンピュータの制御のもとで構築するためのコ
    ンピュータシステムであって、オブジェクト指向アプリ
    ケーションソフトウェアは、アプリケーションプログラ
    ムインタフェースと、少なくとも一つの既存のオブジェ
    クトまたは既存のオブジェクトの派生物と、を含み、 a)前記分散オブジェクトシステム上にインストールさ
    れる既存オブジェクトへのリファレンスのカタログを含
    むコンポーネントサービスと、 b)前記リファレンスを利用してコンポジションを生成
    するためのコンポジションビルダであって、コンポジシ
    ョンビルダは前記リファレンスがリンクされそれらの関
    連を定義して、それによって前記アプリケーションソフ
    トウェアのためのコンピュータコードを提供するアプリ
    ケーション構築環境を提供し、前記アプリケーション構
    築環境は前記リファレンスの間(among)のリンクを選
    択し定義するためのファシリティを備え、前記コンポジ
    ションビルダは対にされ(couple with)、 c)前記コンポジションからソースコードを生成すると
    共にコンパイルし、それによってプログラムソースファ
    イルを生成するコード生成ユニットと、 d) 前記コード生成ユニットによって生成される前記
    プログラムソースを処理し、前記分散オブジェクトシス
    テム上にインストールするためのソフトウェアオブジェ
    クトを生産するオブジェクト開発ファシリティと、を備
    えるコンピュータシステム。
  16. 【請求項16】 前記リファレンスのカタログはコンポ
    ーネントを備え、前記コンポーネントは参照されている
    オブジェクトの特性(property)を効果的に定義し、前
    記特性はコンポーネントに参照されているオブジェクト
    のタイプ、前記コンポーネントによって参照されている
    前記オブジェクトによって提供されるサービス、前記コ
    ンポーネントによって参照されている前記オブジェクト
    のインプリメンテーション、及び前記分散オブジェクト
    システム上において前記インプリメンテーションをアク
    セスできる名前を含む、請求項15に記載のコンピュー
    タシステム。
  17. 【請求項17】 前記システムは前記コンポジションビ
    ルダに含まれるコンポーネントを識別するための選択機
    構を含み、前記コンポジションビルダは前記コンポーネ
    ントリファレンスを部品リファレンスに変形する(tran
    sform)ための変換機構を含み、前記部品リファレンス
    はコンポーネントによって参照されている前記既存オブ
    ジェクトについてのサロゲート(surrogate)である、
    請求項16に記載のシステム。
  18. 【請求項18】 前記部品はプラグとソケットを備え、
    前記リファレンスの間のリンクを選択し定義する前記フ
    ァシリティはプラグとソケットの間のリンクを定義する
    ための手段含む、請求項17に記載のシステム。
  19. 【請求項19】 前記コンポジションビルダは部品を選
    択できリンクできるコンポジション・ワークスペース
    (workspace)を備え、コンピュータコードを編集する
    ためのインタフェースエディタは既存オブジェクトのイ
    ンタフェースを定義し、編集されるファイルを選択する
    ためのブラウザおよびオブジェクトに関する情報を定義
    するためのサマリテーブルは部品によって参照されてい
    る、請求項15から請求項18のいずれかに記載のシス
    テム。
  20. 【請求項20】 前記コンポジションワークスペース、
    前記インタフェースエディタ、前記ブラウザおよび前記
    サマリテーブルの各々はグラフィカルユーザインタフェ
    ースを備える、請求項19に記載のシステム。
  21. 【請求項21】 前記コンポジション・ワークシート
    (worksheet)のための前記グラフィカルユーザインタ
    フェースは、部品を表示し選択しリンクするためのリー
    ジョン(reigion)、選択された部品のプラグを表示し
    選択するためのリージョン、選択された部品のソケット
    を表示し選択するためのリージョン、構築されているア
    プリケーションのインタフェースを表示するためのリー
    ジョン、既存オブジェクトのインタフェースへのリファ
    レンスのためのリージョン、および選択された部品の属
    性値を設定するためのリージョンを備える、請求項20
    に記載のシステム。
  22. 【請求項22】 前記コードジェネレータと共に利用さ
    れる(couple with)プログラムテンプレートのレポジ
    トリを更に含み、前記コードジェネレータは前記コンポ
    ーネントサービスと共に利用され、前記コードジェネレ
    ータはプログラムソースファイルを生成するためのソー
    ステンプレートと生成されたコードと結合するように設
    定される、請求項15から請求項21のいずれかに記載
    のシステム。
  23. 【請求項23】 前記オブジェクト開発ファシリティは
    オブジェクト・アクセス・ソフトウェアのレポジトリと
    共に利用され、オブジェクト・アクセス・ソフトウェア
    の前記レポジトリは複数の分散オブジェクトと共に利用
    される、請求項22に記載のシステム。
  24. 【請求項24】 前記コンポーネントサービスは、前記
    コンポーネントサービスが分散オブジェクトの利用でき
    るように、オブジェクト・アクセス・ソフトウェアの前
    記レポジトリと共に利用される、請求項23に記載のシ
    ステム。
JP9178698A 1996-07-03 1997-07-03 分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール Pending JPH1091449A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/675850 1996-07-03
US08/675,850 US5991535A (en) 1996-07-03 1996-07-03 Visual composition tool for constructing application programs using distributed objects on a distributed object network

Publications (1)

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

Family

ID=24712207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9178698A Pending JPH1091449A (ja) 1996-07-03 1997-07-03 分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール

Country Status (3)

Country Link
US (2) US5991535A (ja)
EP (1) EP0817035A3 (ja)
JP (1) JPH1091449A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216035A (ja) * 2005-02-01 2006-08-17 Microsoft Corp 通信バインディングオブジェクトを構築し、使用するシステムおよび方法
US7137102B2 (en) 2000-08-09 2006-11-14 Fujitsu Limited Program development device utilizing component, program development method and medium
JP2010282286A (ja) * 2009-06-02 2010-12-16 Denso Corp 開発支援装置,プログラム
JP2011521339A (ja) * 2008-05-14 2011-07-21 エアバス オペラシオン 共同サービス向けワークショップにおけるプロセス管理方法
JP2011521340A (ja) * 2008-05-14 2011-07-21 エアバス オペラシオン 共同サービス指向ワークショップにおけるデータのトレーサビリティのための方法
JP2011525269A (ja) * 2008-05-14 2011-09-15 エアバス オペラシオン 共同サービス指向ワークショップ向けデータ管理方法
JP2011221864A (ja) * 2010-04-12 2011-11-04 Mitsubishi Electric Building Techno Service Co Ltd 情報処理システム及び情報処理方法

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684985A (en) 1994-12-15 1997-11-04 Ufil Unified Data Technologies Ltd. Method and apparatus utilizing bond identifiers executed upon accessing of an endo-dynamic information node (EDIN)
US6694270B2 (en) * 1994-12-30 2004-02-17 Power Measurement Ltd. Phasor transducer apparatus and system for protection, control, and management of electricity distribution systems
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
US5847953A (en) * 1996-09-23 1998-12-08 National Instruments Corporation System and method for performing class checking of objects in a graphical data flow program
US6437805B1 (en) * 1996-09-23 2002-08-20 National Instruments Corporation System and method for accessing object capabilities in a graphical program
US8042733B2 (en) 1996-11-27 2011-10-25 Diebold, Incorporated Automated banking machine that operates responsive to data bearing records
US7080036B1 (en) * 1996-11-27 2006-07-18 Diebold, Incorporated Automated banking machine development method
US6990652B1 (en) * 1997-03-04 2006-01-24 National Instruments Corporation System and method for determining methods and properties to be invoked on objects in a graphical program
WO1998040817A1 (fr) * 1997-03-11 1998-09-17 Mitsubishi Denki Kabushiki Kaisha Methode et systeme de programmation visuelle
US6230309B1 (en) * 1997-04-25 2001-05-08 Sterling Software, Inc Method and system for assembling and utilizing components in component object systems
EP0979446A2 (en) * 1997-04-30 2000-02-16 Geodesic Systems L.L.C. Automatically-maintained customizable user interfaces
EP0923761A1 (en) * 1997-06-18 1999-06-23 CITR Pty. Ltd. System development tool for distributed object oriented computing
US6484214B1 (en) 1998-03-05 2002-11-19 Mcdonnell Douglas Helicopter Company Method for distributed object communications based on dynamically acquired and assembled software components
JPH11259278A (ja) * 1998-03-09 1999-09-24 Sony Corp データ生成方法および記録媒体
US6629126B1 (en) * 1998-03-13 2003-09-30 Genuity Inc. Framework for providing quality of service requirements in a distributed object-oriented computer system
US6226783B1 (en) * 1998-03-16 2001-05-01 Acuity Imaging, Llc Object oriented method of structuring a software step program
US6493870B1 (en) * 1998-03-20 2002-12-10 Sun Microsystems, Inc. Methods and apparatus for packaging a program for remote execution
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
US6637020B1 (en) 1998-12-03 2003-10-21 International Business Machines Corporation Creating applications within data processing systems by combining program components dynamically
US6417570B1 (en) * 1999-01-14 2002-07-09 Agere Systems Guardian Corporation Layered dielectric film structure suitable for gate dielectric application in sub-0.25 μm technologies
US6594819B1 (en) * 1999-01-25 2003-07-15 International Business Machines Corporation Method and system for establishing collection of hostable applications
US6421821B1 (en) * 1999-03-10 2002-07-16 Ronald J. Lavallee Flow chart-based programming method and system for object-oriented languages
AUPP949599A0 (en) * 1999-03-30 1999-04-22 Griffith University Visual architecture software language
US6785882B1 (en) * 1999-05-24 2004-08-31 Unisys Corporation Process-driven tool interface for an object management system
US6438742B1 (en) * 1999-05-28 2002-08-20 Visual Click Software, Inc. Object-oriented system and method for visually generating software applications
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US7210117B2 (en) 1999-08-19 2007-04-24 National Instruments Corporation System and method for programmatically generating a graphical program in response to program information
US8146007B2 (en) 1999-08-19 2012-03-27 National Instruments Corporation Converting a first graphical program into an intermediate abstract representation for new graphical program generation
US7159183B1 (en) * 1999-08-19 2007-01-02 National Instruments Corporation System and method for programmatically creating a graphical program
US7340684B2 (en) 1999-08-19 2008-03-04 National Instruments Corporation System and method for programmatically generating a second graphical program based on a first graphical program
US6850808B2 (en) * 1999-09-24 2005-02-01 Rockwell Software Inc. Method and system for developing a software program using compound templates
US6826744B1 (en) * 1999-10-01 2004-11-30 Vertical Computer Systems, Inc. System and method for generating web sites in an arbitrary object framework
US6700590B1 (en) * 1999-11-01 2004-03-02 Indx Software Corporation System and method for retrieving and presenting data using class-based component and view model
US6658660B1 (en) * 1999-12-31 2003-12-02 Nortel Networks Limited System and method of automatically modifying source code for marshaling, unmarshaling and marking modified data objects
US6701513B1 (en) 2000-01-14 2004-03-02 Measurement Computing Corporation Program-development environment for use in generating application programs
US6684385B1 (en) 2000-01-14 2004-01-27 Softwire Technology, Llc Program object for use in generating application programs
US6425121B1 (en) * 2000-01-14 2002-07-23 Softwire Technology, Llp Method and apparatus for resolving divergent paths in graphical programming environments
US7082599B1 (en) 2000-01-14 2006-07-25 Measurement Computing Corporation Method and apparatus for detecting and resolving circularflow paths in graphical programming systems
US20010052110A1 (en) * 2000-02-14 2001-12-13 Julian Orbanes System and method for graphically programming operators
US7174339B1 (en) * 2000-03-07 2007-02-06 Tririga Llc Integrated business system for the design, execution, and management of projects
US20020054149A1 (en) * 2000-03-10 2002-05-09 Genise Ronald G. System configuration editor with an iconic function sequencer
US7530050B2 (en) * 2000-03-14 2009-05-05 Fusionops Method and system for developing software using nodes
US6637019B1 (en) * 2000-04-10 2003-10-21 International Business Machines Corporation Software modeling of computer hardware
US20020021272A1 (en) * 2000-04-26 2002-02-21 Kai Zeh System and method for specifying video game data
JP2001343967A (ja) * 2000-05-31 2001-12-14 Konami Co Ltd 表示制御方法、ゲーム機、記録媒体
US20020066074A1 (en) * 2000-06-05 2002-05-30 Jabri Mohamed I. Method and system for developing and executing software applications at an abstract design level
US6874148B1 (en) * 2000-06-14 2005-03-29 National Instruments Corporation System and method for exporting a graphical program to a shared library
US6782528B1 (en) 2000-06-16 2004-08-24 International Business Machines Corporation Method and system for visual programming using a relational diagram
US6898783B1 (en) * 2000-08-03 2005-05-24 International Business Machines Corporation Object oriented based methodology for modeling business functionality for enabling implementation in a web based environment
US6684388B1 (en) 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
DE10041072A1 (de) * 2000-08-22 2002-03-14 Siemens Ag Verfahren zur automatischen Erzeugung von Programmcode
US7171455B1 (en) 2000-08-22 2007-01-30 International Business Machines Corporation Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals
US6892228B1 (en) * 2000-08-23 2005-05-10 Pure Matrix, Inc. System and method for on-line service creation
US6853994B1 (en) 2000-08-30 2005-02-08 International Business Machines Corporation Object oriented based, business class methodology for performing data metric analysis
US7089295B2 (en) * 2000-09-06 2006-08-08 Oracle International Corporation Customizing content provided by a service
US7127705B2 (en) * 2000-09-06 2006-10-24 Oracle International Corporation Developing applications online
US6954751B2 (en) * 2000-09-06 2005-10-11 Oracle International Corporation Accessing data stored at an intermediary from a service
US20020138617A1 (en) 2000-09-06 2002-09-26 Jacob Christfort Providing content from multiple services
US20020073114A1 (en) * 2000-10-30 2002-06-13 Nicastro Cherisse M. Business asset management system
US6996815B2 (en) * 2000-11-29 2006-02-07 Microsoft Corporation Method and software tools for intelligent service pack installation
US7185334B2 (en) * 2000-11-29 2007-02-27 Microsoft Corporation Method and software tool for intelligent operating system installation
US7246344B1 (en) * 2000-12-11 2007-07-17 Microsoft Corporation Drag and drop stateless data class specification and programming
US7200838B2 (en) 2000-12-20 2007-04-03 National Instruments Corporation System and method for automatically generating a graphical program in response to a state diagram
US7017123B2 (en) * 2000-12-27 2006-03-21 National Instruments Corporation Graphical user interface including palette windows with an improved search function
US6957418B2 (en) * 2001-01-23 2005-10-18 Altia, Inc. System and method of designing, testing, and employing graphical computer code
JP2002229783A (ja) * 2001-01-31 2002-08-16 Toshiba Corp ソフトウェア構築支援システム、その方法およびソフトウェア構築支援プログラム
AU2002250260A1 (en) * 2001-03-08 2002-11-05 Tririga, Inc. Data storage and access system employing clustering of servers
US20020174268A1 (en) * 2001-05-15 2002-11-21 Goward Philip J. Method and apparatus for automatically linking distributed programming components
US20040015856A1 (en) * 2001-05-15 2004-01-22 Goward Philip J. Automatically propagating distributed components during application development
US7134122B1 (en) 2001-05-31 2006-11-07 Oracle International Corporation One click deployment
US7058899B2 (en) * 2001-06-20 2006-06-06 National Instruments Corporation System and method for creating a graphical program based on a pre-defined program process
US7149734B2 (en) * 2001-07-06 2006-12-12 Logic Library, Inc. Managing reusable software assets
US7322024B2 (en) * 2002-03-18 2008-01-22 Logiclibrary, Inc. Generating reusable software assets from distributed artifacts
EP2287723A3 (en) 2001-07-26 2012-11-14 IRiSE System and process for gathering, recording and validating requirements for computer applications
US7062718B2 (en) * 2001-08-14 2006-06-13 National Instruments Corporation Configuration diagram which graphically displays program relationship
US7203700B1 (en) * 2001-08-31 2007-04-10 Oracle International Corporation Online instance addition and deletion in a multi-instance computer system
US7035944B2 (en) * 2001-09-19 2006-04-25 International Business Machines Corporation Programmatic management of software resources in a content framework environment
US6985939B2 (en) * 2001-09-19 2006-01-10 International Business Machines Corporation Building distributed software services as aggregations of other services
US7343428B2 (en) * 2001-09-19 2008-03-11 International Business Machines Corporation Dynamic, real-time integration of software resources through services of a content framework
JP2003108373A (ja) * 2001-09-28 2003-04-11 Toshiba Corp 汎用型ソフトウェア開発支援システム、汎用型ソフトウェア開発支援プログラム、およびそのシステムで用いられるソフトウェア部品
KR100426311B1 (ko) * 2001-12-28 2004-04-08 한국전자통신연구원 Ejb 컴포넌트 조립 장치 및 방법
US7603469B2 (en) * 2002-01-15 2009-10-13 International Business Machines Corporation Provisioning aggregated services in a distributed computing environment
US8412813B2 (en) * 2002-03-18 2013-04-02 Logiclibrary, Inc. Customizable asset governance for a distributed reusable software library
US20030192038A1 (en) * 2002-04-09 2003-10-09 Thomas Hagmann Linking data objects to a project development system
US7290007B2 (en) * 2002-05-10 2007-10-30 International Business Machines Corporation Method and apparatus for recording and managing data object relationship data
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
US7117449B1 (en) * 2002-12-31 2006-10-03 Siebel Systems, Inc. Method and apparatus to present an integrated process modeler
AU2003272256A1 (en) * 2003-03-05 2004-09-28 Expert Consultants, Inc. System and method for building a component-based architecture
US7433878B2 (en) * 2003-06-23 2008-10-07 American Express Travel Related Services Company, Inc. Method and system for interfacing with accounting systems
GB0314800D0 (en) * 2003-06-25 2003-07-30 Hyfinity Ltd System and associated methods for software assembly
US20080109785A1 (en) * 2004-01-16 2008-05-08 Bailey Bendrix L Graphical Program Having Graphical and/or Textual Specification of Event Handler Procedures for Program Objects
FR2865557B1 (fr) * 2004-01-27 2006-06-23 Sinovia Systeme ouvert d'integration et de gestion des composants informatiques representant une fonctionnalite specifique d'une application determine
EP1577724B1 (en) 2004-03-15 2009-10-07 Rockwell Automation Technologies, Inc. Agent program environment
US8271541B2 (en) * 2004-03-31 2012-09-18 Fusionops Corporation Method and apparatus for developing composite applications
US7467399B2 (en) 2004-03-31 2008-12-16 International Business Machines Corporation Context-sensitive confidentiality within federated environments
US20050251786A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation System and method for dynamic software installation instructions
JP2007538321A (ja) * 2004-05-20 2007-12-27 コード バリー ピーティーワイ リィミティッド コード生成方法
US20050261857A1 (en) * 2004-05-21 2005-11-24 Clark Jones System and method for linking and loading compiled pattern data
US7475391B2 (en) * 2004-10-07 2009-01-06 International Business Machines Corporation System and method for revealing remote object status in an integrated development environment
US7698569B2 (en) * 2004-11-19 2010-04-13 Bea Systems, Inc. Data object identification, tracking, filtering and monitoring using data object fingerprints
US8117591B1 (en) 2005-01-07 2012-02-14 Interactive TKO, Inc. Graphical model for test case viewing, editing, and reporting
US8060864B1 (en) * 2005-01-07 2011-11-15 Interactive TKO, Inc. System and method for live software object interaction
US7437080B2 (en) * 2005-02-03 2008-10-14 Stratalight Communications, Inc. Optical transmission system having optimized filter wavelength offsets
US7882236B2 (en) * 2005-02-04 2011-02-01 Microsoft Corporation Communication channel model
WO2007012707A1 (fr) * 2005-07-26 2007-02-01 Sinovia Systeme ouvert d'integration et de gestion de composants informatiques representant une fonctionnalite specifique d'une application determinee
US8972872B2 (en) * 2006-03-27 2015-03-03 Fujitsu Limited Building computing applications based upon metadata
US20080016253A1 (en) * 2006-07-11 2008-01-17 Boctor Design, Llc Graphical user interface for navigating and manipulating objects exposed by a host
US20080126376A1 (en) * 2006-09-22 2008-05-29 Avraham Leff Enabling multi-view applications based on a relational state machine paradigm
JP2008305004A (ja) * 2007-06-05 2008-12-18 Ricoh Co Ltd 画像形成装置、アプリケーション実行方法及びアプリケーション実行プログラム
US8060421B1 (en) * 2007-10-17 2011-11-15 The Mathworks, Inc. Object oriented financial analysis tool
US20090132220A1 (en) * 2007-11-21 2009-05-21 International Business Machines Corporation Method For Creating A Telecommunications Application
US9158510B2 (en) * 2007-11-21 2015-10-13 International Business Machines Corporation System and computer program product for creating a telecommunications application
US8312425B2 (en) * 2008-03-31 2012-11-13 International Business Machines Corporation Dynamic template instantiation
US9111019B2 (en) 2008-09-30 2015-08-18 Interactive TKO, Inc. Modeling and testing interactions between components of a software system
JP5426938B2 (ja) * 2009-06-23 2014-02-26 キヤノン株式会社 情報処理装置、情報処理方法
US8375313B2 (en) 2010-06-01 2013-02-12 Oracle International Corporation User interface generation with scoring
EP2625606A4 (en) 2010-10-08 2014-11-26 Irise SYSTEM AND METHOD FOR EXTENDING A VISUALIZATION PLATFORM
US8984490B1 (en) 2010-10-26 2015-03-17 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US8966454B1 (en) 2010-10-26 2015-02-24 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US10025839B2 (en) 2013-11-29 2018-07-17 Ca, Inc. Database virtualization
US9727314B2 (en) 2014-03-21 2017-08-08 Ca, Inc. Composite virtual services
US9531609B2 (en) 2014-03-23 2016-12-27 Ca, Inc. Virtual service automation
US10031780B2 (en) 2014-11-25 2018-07-24 International Business Machines Corporation Component services integration with dynamic constraint provisioning
US9965533B2 (en) * 2015-08-28 2018-05-08 6Connect, Inc. Reverse application programming interface (API) endpoint creation process and standardized schema
US9667533B2 (en) 2015-09-17 2017-05-30 Nxp Usa, Inc. Creating and utilizing customized network applications
US10387798B2 (en) 2015-12-16 2019-08-20 Accenture Global Solutions Limited Machine for development of analytical models
US10438132B2 (en) 2015-12-16 2019-10-08 Accenture Global Solutions Limited Machine for development and deployment of analytical models
US10114736B2 (en) 2016-03-30 2018-10-30 Ca, Inc. Virtual service data set generation
US9898390B2 (en) 2016-03-30 2018-02-20 Ca, Inc. Virtual service localization
US11080435B2 (en) 2016-04-29 2021-08-03 Accenture Global Solutions Limited System architecture with visual modeling tool for designing and deploying complex models to distributed computing clusters
US10871753B2 (en) 2016-07-27 2020-12-22 Accenture Global Solutions Limited Feedback loop driven end-to-end state control of complex data-analytic systems
US20180336019A1 (en) 2017-05-19 2018-11-22 Abb Schweiz Ag Systems and methods for application re-use by type pattern matching
US11199955B2 (en) * 2019-10-02 2021-12-14 Palantir Technologies Inc. Enhanced techniques for building user interfaces

Family Cites Families (29)

* 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
US5163130A (en) 1989-10-11 1992-11-10 Next Computer, Inc. System and method for configuring a graphic interface
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
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
EP0596591B1 (en) * 1992-10-09 1998-04-15 Sun Microsystems, Inc. Method and apparatus for a real-time data collection and display 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
CA2128387C (en) * 1993-08-23 1999-12-28 Daniel F. Hurley Method and apparatus for configuring computer programs from available subprograms
JP2692782B2 (ja) * 1993-12-13 1997-12-17 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクトをリンクする方法
DE4447859B4 (de) * 1994-10-04 2007-02-22 Maschinenfabrik Wifag Rollenrotationsdruckmaschine
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
US5642511A (en) * 1994-12-16 1997-06-24 International Business Machines Corporation System and method for providing a visual application builder framework
US5692183A (en) * 1995-03-31 1997-11-25 Sun Microsystems, Inc. Methods and apparatus for providing transparent persistence in a distributed object operating environment
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
US5764989A (en) * 1996-02-29 1998-06-09 Supercede, Inc. Interactive software development system
US5721911A (en) * 1996-06-25 1998-02-24 International Business Machines Corporation Mechanism for metadata for an information catalog system
US6044224A (en) * 1996-06-26 2000-03-28 Sun Microsystems, Inc. Mechanism for dynamically associating a service dependent representation with objects at run time
US5727145A (en) * 1996-06-26 1998-03-10 Sun Microsystems, Inc. Mechanism for locating objects in a secure fashion
US6044409A (en) * 1996-06-26 2000-03-28 Sun Microsystems, Inc. Framework for marshaling and unmarshaling argument object references
US6032199A (en) * 1996-06-26 2000-02-29 Sun Microsystems, Inc. Transport independent invocation and servant interfaces that permit both typecode interpreted and compiled marshaling
US5809507A (en) * 1996-07-01 1998-09-15 Sun Microsystems, Inc. Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework
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
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7137102B2 (en) 2000-08-09 2006-11-14 Fujitsu Limited Program development device utilizing component, program development method and medium
JP2006216035A (ja) * 2005-02-01 2006-08-17 Microsoft Corp 通信バインディングオブジェクトを構築し、使用するシステムおよび方法
JP2011521339A (ja) * 2008-05-14 2011-07-21 エアバス オペラシオン 共同サービス向けワークショップにおけるプロセス管理方法
JP2011521340A (ja) * 2008-05-14 2011-07-21 エアバス オペラシオン 共同サービス指向ワークショップにおけるデータのトレーサビリティのための方法
JP2011525269A (ja) * 2008-05-14 2011-09-15 エアバス オペラシオン 共同サービス指向ワークショップ向けデータ管理方法
US8706702B2 (en) 2008-05-14 2014-04-22 Airbus Operations S.A.S. Method for data management in a collaborative service-oriented workshop
JP2010282286A (ja) * 2009-06-02 2010-12-16 Denso Corp 開発支援装置,プログラム
JP2011221864A (ja) * 2010-04-12 2011-11-04 Mitsubishi Electric Building Techno Service Co Ltd 情報処理システム及び情報処理方法

Also Published As

Publication number Publication date
EP0817035A2 (en) 1998-01-07
US5991535A (en) 1999-11-23
US6189138B1 (en) 2001-02-13
EP0817035A3 (en) 2003-05-14

Similar Documents

Publication Publication Date Title
JPH1091449A (ja) 分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール
US5920868A (en) Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system
Daniel et al. Understanding ui integration: A survey of problems, technologies, and opportunities
US7904803B2 (en) Method and system for converting user interface source code of a legacy application to web pages
US5860004A (en) Code generator for applications in distributed object systems
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
EP0798635B1 (en) Internet-enabled portfolio manager system, method and computer program product
US7917888B2 (en) System and method for building multi-modal and multi-channel applications
US7469402B2 (en) Pluggable model framework
EP1703381A2 (en) Rich data-bound applications
US6785880B1 (en) Tooling framework system and method for code generation
Verhaeghe et al. A hybrid architecture for the incremental migration of a web front-end
US20030237073A1 (en) Software synchronization of interface and class implementation
Gschwind Adaptation and composition techniques for component-based software engineering
Khan et al. Developing Multi-Platform Apps with Visual Studio Code: Get up and running with VS Code by building multi-platform, cloud-native, and microservices-based apps
Dellarocas A coordination perspective on software system design
Kozaczynski et al. Architecture specification support for component integration
Zarli et al. Integration of CORBA and WEB technologies in the VEGA DIS
Song A general model for component-based software
Bai Developing Java Web Applications to Access Databases
Dannecker et al. Rapid development of composite applications using annotated web services
Al Sadiq et al. A Platform Neutral Computer Aided Control Engineering Environment
Ahokas Using XML In Making Legacy Application Data Accessible Through Web Services
Šnajberk Pokročilá interaktivní zobrazování komponentového softwaru
Kunjumohamed et al. Spring Essentials

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050811

A131 Notification of reasons for refusal

Effective date: 20050830

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20051031

Free format text: JAPANESE INTERMEDIATE CODE: A523

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051220

A61 First payment of annual fees (during grant procedure)

Effective date: 20060113

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100120

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100120

Year of fee payment: 4

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

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20110120

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

Free format text: PAYMENT UNTIL: 20110120

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120120

Year of fee payment: 6

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

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20130120

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

Free format text: PAYMENT UNTIL: 20140120

Year of fee payment: 8