JP2002505479A - Interactive design tool for shared memory space - Google Patents

Interactive design tool for shared memory space

Info

Publication number
JP2002505479A
JP2002505479A JP2000533823A JP2000533823A JP2002505479A JP 2002505479 A JP2002505479 A JP 2002505479A JP 2000533823 A JP2000533823 A JP 2000533823A JP 2000533823 A JP2000533823 A JP 2000533823A JP 2002505479 A JP2002505479 A JP 2002505479A
Authority
JP
Japan
Prior art keywords
shared memory
memory space
computational resource
image
object flow
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
JP2000533823A
Other languages
Japanese (ja)
Inventor
ケネス シー アール シー アーノルド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2002505479A publication Critical patent/JP2002505479A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【課題】分散型システムにおいて計算資源と共有メモリスペースとの間のオブジェクトフローを視覚的に定義し、これをかかるオブジェクトフローを具体化するコンピュータコードに自動的に変換すること。 【解決手段】インタラクティブ設計ツールは、計算資源を表すイメージと共有メモリスペースを表すイメージとが配置されるグラフィカルインターフェースを表示する工程と、前記グラフィカルインターフェースを介して入力される情報であって、前記計算資源と前記共有メモリスペースとの間のオブジェクトフローを表す情報を保存する工程と、前記共有メモリスペースと前記計算資源との間に表された前記オブジェクトフローを実現するコンピュータコードを生成する工程と、を有する。 (57) Abstract: To visually define an object flow between a computational resource and a shared memory space in a distributed system, and to automatically convert this into computer code that embodies the object flow. . An interactive design tool displays a graphical interface in which an image representing a computational resource and an image representing a shared memory space are arranged, and information input through the graphical interface, Storing information representing an object flow between a resource and the shared memory space, and generating computer code for implementing the object flow represented between the shared memory space and the computational resource; Having.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】 (関連出願) 以下に示す米国特許出願は、本出願が依拠し且つ参照により本出願に援用する
ものである。 1998年2月26日出願の米国特許仮出願番号60/076,048、発明の名称「分散コン ピュータ処理システム」。 同日出願の米国特許出願番号09/044,923、発明の名称「記憶装置の割当てのた
めの方法及びシステム」(代理人整理番号06502.0011-01000)。 同日出願の米国特許出願番号09/044,838、発明の名称「分散型システムにおけ
る委任証明の割当てのための方法、装置及び製品」(代理人整理番号06502.0011
-02000)。 同日出願の米国特許出願番号09/044,834、発明の名称「分散型システムにおけ
るグループ帰属関係の割当てのための方法、装置及び製品」(代理人整理番号06
502.0011-03000,)。 同日出願の米国特許出願番号09/044,933、発明の名称「イベント指向システム
における転送動作の方法」(代理人整理番号06502.0054-00000)。 同日出願の米国特許出願番号09/044,919、発明の名称「分散型システムにおけ
るイベント通知のための遠隔ロード及びオブジェクトの繰延べ再構築」(代理人
整理番号06502.0062-01000)。 同日出願の米国特許出願番号09/045,652、発明の名称「リモート方法を識別す
る決定論的ハッシュのための方法及び装置」(代理人整理番号06502.0103-00000
)。 同日出願の米国特許出願番号09/044,790、発明の名称「分散型システムにおけ
るリモートオブジェクトのステータスを決定するための方法及び装置」(代理人
整理番号06502.0104-00000)。 同日出願の米国特許出願番号09/044,930、発明の名称「分散型システムにおけ
るリモート手続きコールに関連して処理を実行するためのダウンロード可能なス
マートな委任」(代理人整理番号06502.0105-00000)。 同日出願の米国特許出願番号09/044,917、発明の名称「リモート方法の中止及
び及び継続」(代理人整理番号06502.0106-00000)。 同日出願の米国特許出願番号09/044,835、発明の名称「データベースにおける
マルチ・エントリー及びマルチ・テンプレート突合せのための方法及びシステム
」(代理人整理番号06502.0107-00000)。 同日出願の米国特許出願番号09/044,839、発明の名称「データベースの内部で
変更するための方法及びシステム」(代理人整理番号06502.0108)。 同日出願の米国特許出願番号09/044,945、発明の名称「データベースにおける
タイプに関わらない属性突合せのための方法及びシステム」(代理人整理番号06
502.0109-00000)。 同日出願の米国特許出願番号09/044,931、発明の名称「分散型システムにおけ
る動的ルックアップサービス」(代理人整理番号06502.0110-00000)。 同日出願の米国特許出願番号09/044,939、発明の名称「分散型システムにおけ
るデバイスとの通信に用いるダウンロード可能なコードの供給のための装置及び
方法」(代理人整理番号06502.0112-00000)。 同日出願の米国特許出願番号09/044,826、発明の名称「ルックアップサービス
へのアクセスを容易にするための方法及びシステム」(代理人整理番号06502.01
13-00000)。 同日出願の米国特許出願番号09/044,932、発明の名称「分散型システムにおけ
る情報の動的証明のための装置及び方法」(代理人整理番号06502.0114.00000)
。 1998年2月26日出願の米国特許出願番号09/030,840、発明の名称「ネットワー クをまたぐ動的分散コンピュータ処理のための方法及び装置」。 同日出願の米国特許出願番号09/044,934、発明の名称「多様性を有するトーク
ン指向制御」(代理人整理番号06502.0117-00000)。 同日出願の米国特許出願番号09/044,915、発明の名称「スタック指向のアクセ
ス制御」(代理人整理番号06502.0118-00000)。 同日出願の米国特許出願番号09/044,944、発明の名称「スタック指向のセキュ
リティ要求」(代理人整理番号06502.0119-00000)。 同日出願の米国特許出願番号09/044,837、発明の名称「セキュリティ要求の方
法毎の指定」(代理人整理番号06502.0120-00000)。
RELATED APPLICATIONS The following US patent applications are hereby incorporated by reference, and are incorporated herein by reference. Provisional Patent Application No. 60 / 076,048, filed February 26, 1998, entitled "Distributed Computer Processing System." U.S. patent application Ser. No. 09 / 044,923, filed on the same date, entitled "Method and System for Storage Allocation" (Attorney Docket No. 06502.0011-01000). U.S. patent application Ser. No. 09 / 044,838, filed on the same day, entitled "Method, Apparatus and Product for Assignment of Delegation Certificates in a Distributed System" (Attorney Docket No. 06502.0011)
-02000). U.S. patent application Ser. No. 09 / 044,834, filed on the same day, entitled "Method, Apparatus and Product for Assigning Group Membership in a Distributed System" (Attorney Docket No. 06)
502.0011-03000,). U.S. patent application Ser. No. 09 / 044,933, filed on the same date, entitled "Method of Transfer Operation in Event-Oriented System" (Attorney Docket No. 06502.0054-00000). U.S. Patent Application Ser. No. 09 / 044,919, filed on the same date, entitled "Remote Loading and Deferred Reconstruction of Objects for Event Notification in Distributed Systems" (Attorney Docket No. 06502.0062-01000). US patent application Ser. No. 09 / 045,652, filed on the same date, entitled “Method and Apparatus for Deterministic Hash to Identify Remote Methods” (Attorney Docket No. 06502.0103-00000)
). U.S. patent application Ser. No. 09 / 044,790, filed on the same date, entitled "Method and Apparatus for Determining Status of Remote Objects in a Distributed System" (Attorney Docket No. 06502.0104-00000). U.S. patent application Ser. No. 09 / 044,930, filed on the same date, entitled "Downloadable Smart Delegation to Perform Operations in Relation to Remote Procedure Calls in Distributed Systems" (Attorney Docket No. 06502.0105-00000). U.S. patent application Ser. No. 09 / 044,917, filed on the same date, titled "Suspension and Continuation of Remote Method" (Attorney Docket No. 06502.0106-00000). U.S. patent application Ser. No. 09 / 044,835, filed on the same date, entitled "Method and System for Multi-Entry and Multi-Template Matching in Database" (Attorney Docket No. 06502.0107-00000). U.S. patent application Ser. No. 09 / 044,839, filed on the same date, entitled "Method and System for Changing Within a Database" (Attorney Docket No. 06502.0108). U.S. patent application Ser. No. 09 / 044,945, filed on the same day, entitled "Method and System for Type-Independent Attribute Matching in Database" (Attorney Docket No. 06)
502.0109-00000). U.S. patent application Ser. No. 09 / 044,931, filed on the same date, entitled "Dynamic Lookup Service in Distributed Systems" (Attorney Docket No. 06502.0110-00000). U.S. patent application Ser. No. 09 / 044,939, filed on the same date, entitled "Apparatus and Method for Providing Downloadable Code for Communication with Devices in a Distributed System" (Attorney Docket No. 06502.0112-00000). U.S. patent application Ser. No. 09 / 044,826, filed on the same date, entitled "Method and System for Facilitating Access to Lookup Services" (Attorney Docket No. 06502.01)
13-00000). U.S. patent application Ser. No. 09 / 044,932, filed on the same day, entitled "Apparatus and method for dynamic certification of information in a distributed system" (Attorney Docket No. 06502.0114.00000)
. US patent application Ser. No. 09 / 030,840, filed Feb. 26, 1998, entitled "Method and Apparatus for Dynamically Distributed Computer Processing Across Networks." U.S. patent application Ser. No. 09 / 044,934, filed on the same date, entitled "Token-oriented control with diversity" (Attorney Docket No. 06502.0117-00000). U.S. patent application Ser. No. 09 / 044,915, filed on the same day, entitled "Stack Oriented Access Control" (Attorney Docket No. 06502.0118-00000). U.S. patent application Ser. No. 09 / 044,944, filed on the same date, titled "Stack Oriented Security Requirement" (Attorney Docket No. 06502.0119-00000). U.S. patent application Ser. No. 09 / 044,837, filed on the same date, entitled "Specification of Security Request by Method" (Attorney Docket No. 06502.0120-00000).

【0002】 (発明の技術分野) 本発明は、概して、分散型コンピュータシステムに関し、更に詳しくは、分散
型コンピュータシステムにおけるオブジェクトフローのモデル化に関する。
TECHNICAL FIELD OF THE INVENTION [0002] The present invention relates generally to distributed computer systems, and more particularly, to modeling object flow in distributed computer systems.

【0003】 (発明の背景技術) 分散型コンピュータシステムは、コンピュータにより処理されるプログラミン
グ及びデータが複数のコンピュータに、通常、ネットワークを介した多数のコン
ピュータに分散しているシステムである。分散型システムを編成する既存の一方
法に、分散型システムのある部分(クライアント)がその分散型システムの他の
部分(サーバ)からのサービスを要求するクライアント・サーバモデルを用いた
システムがある。サーバはクライアントの要求に応答し、この要求を適宜処理す
る。
BACKGROUND OF THE INVENTION [0003] A distributed computer system is a system in which programming and data processed by a computer are distributed over multiple computers, typically over multiple networks. One existing method of organizing a distributed system is a system using a client-server model in which one part (client) of the distributed system requests services from another part (server) of the distributed system. The server responds to the client's request and processes the request accordingly.

【0004】 クライアント・サーバモデルでは、クライアントがサーバに含まれる手続きに
遭遇すると、その手続きは何らかの形態の遠隔手続き呼出し(RPC)を用いて
実行される。つまり、クライアントがその手続きの実行を要求する旨をパラメー
タを使ってサーバに伝え、サーバは要求された手続きを実行し、実行の結果をク
ライアントに戻す。
In the client-server model, when a client encounters a procedure contained in the server, the procedure is performed using some form of remote procedure call (RPC). That is, the client informs the server using the parameters that the procedure is to be executed, and the server executes the requested procedure and returns the execution result to the client.

【0005】 クライアント・サーバ分散型システムモデルは、クライアントとサーバとが直
接相互に協働して意図るメソッドを実行する「メソッド呼出しスタイル」のプロ
トコルを実行するものである。しかしながら、多くの分散アルゴリズムは、オブ
ジェクトフロー手法を用いることにより、より効率的にモデル化することが可能
である。この手法においては、分散型システムプロトコルは、オブジェクトを保
持するように指定された「スペース」(仮想共有メモリ)へ、或いはそこからオ
ブジェクトが移動することに基づいている。例えば、Lindaプログラミング
モデルのような持続的な共有メモリスペースは、当業者には周知のものであり、
例えば、ACM Transactions on Programming
Languages and Systems、第7巻、No.1(1995年
1月発行)の80〜112ページに記載の、デービッド グレンター著、「Li
ndaにおける生成コンピューティング」、更に、ブライアン ジー アンダー
ソン、及び、デニス シャシャ共著「持続的Linda:Linda+トランザ
クション+クエリープロセッシング」、また更に、ソフトウェア−−プラクティ
ス アンド エクスペリアンス、第24(5)巻(1994年5月発行)の44
6〜449ページに記載の、スコット アール キャノン、及び、デービッド
ダン共著「Lindaへのフォールトトラレントトランザクション処理の追加」
を参照されたい。
The client-server distributed system model executes a “method invocation style” protocol in which a client and a server directly cooperate with each other to execute an intended method. However, many distributed algorithms can be modeled more efficiently by using an object flow approach. In this approach, the distributed system protocol is based on moving an object to or from a "space" (virtual shared memory) designated to hold the object. For example, persistent shared memory space, such as the Linda programming model, is well known to those skilled in the art,
For example, ACM Transactions on Programming
Languages and Systems, Vol. 1 (published January 1995), pages 80-112, by David Glenter, "Li
"Generating Computing in Nda", Brian G. Anderson, and Dennis Shasha, "Sustainable Linda: Linda + Transactions + Query Processing", and also Software-Practice and Experience, 24 (5) (1994) May issue) 44
Scott Earl Cannon and David on pages 6-449
Dan, "Adding Fault-Tolerant Transaction Processing to Linda"
Please refer to.

【0006】 図1は、分散アルゴリズムのモデル化のためのオブジェクトフロー手法を用い
た、例示的な分散型「書籍注文システム」100を示した概念図である。このシ
ステムでは、オブジェクト(即ち、振る舞い及び/またはデータを含むデータ構
造)はコンピュータ110〜115により操作されて、スペース102〜105
に「フロー」して(流れて)入れられたり、或いは取り出されたりする。分散型
システム100は、バイヤーコンピュータ110、ブローカーコンピュータ11
1、及び、セラーコンピュータ110〜115を含む。スペース102〜105
は、コンピュータクライアント/クライアントシステム110〜115のいずれ
か1つにホストされていても良いし、或いは、図1に示されていない他のコンピ
ュータにホストされていても良い。
FIG. 1 is a conceptual diagram illustrating an exemplary distributed “book ordering system” 100 that uses an object flow approach for modeling a distributed algorithm. In this system, objects (i.e., data structures containing behaviors and / or data) are manipulated by computers 110-115 to form spaces 102-105.
Are "flowed" into or out of the room. The distributed system 100 includes a buyer computer 110, a broker computer 11
1 and seller computers 110-115. Space 102-105
May be hosted on any one of the computer client / client systems 110-115, or may be hosted on another computer not shown in FIG.

【0007】 ブックバイヤー110が、ある書籍を50部購入しようとしていると仮定する
。バイヤー110は、購入しようとする書籍の入札を求める要求を含むオブジェ
クトをスペース102に提出する。ブローカー111は、スペース102からこ
の入札要求を取り出し、この入札要求、或いは、適切に編集されたバージョンの
入札要求をスペース103〜105に書き込む。このスペース103〜105は
、ブローカー111に登録されているブックホールセラー112〜114に対応
している。各ホールセラー112〜114のサーバは、指定されたスペース10
3〜105から入札要求をそれぞれ取り出し、取り出した要求を人に提示する。
人は、入札を準備、記述してホールセラースペースに戻し、ブローカー111が
これをスペース102へ送る(或いは、入札はホールセラー112〜114が直
接パブリックスペース102に書き込むようにしても良い)。この入札期間が終
了すると、バイヤー110は、スペース102から入札を取り出し、取り出した
入札を、決定入札の選択のため人に提示する。
[0007] Suppose a book buyer 110 wants to purchase 50 copies of a book. Buyer 110 submits an object to space 102 containing a request to bid on the book to be purchased. Broker 111 retrieves the bid request from space 102 and writes the bid request, or an appropriately edited version of the bid request, to spaces 103-105. These spaces 103 to 105 correspond to book wholesalers 112 to 114 registered in the broker 111. The server of each wholesaler 112-114 has a designated space 10
The bid request is extracted from each of 3 to 105, and the extracted request is presented to a person.
The person prepares and describes the bid and returns it to the wholesaler space, where the broker 111 sends it to the space 102 (alternatively, the bidder may write directly to the public space 102 by the wholesalers 112-114). At the end of this bidding period, buyer 110 retrieves the bid from space 102 and presents the retrieved bid to a person for selection of a finalized bid.

【0008】 書籍注文システム100は、コンピュータ110〜114が相互通信するのに
用いられる単一のインターフェース、即ち、共有メモリスペースインタフェース
を使って分散書籍注文アルゴリズムを実行する。
[0008] The book ordering system 100 implements a distributed book ordering algorithm using a single interface that the computers 110-114 use to communicate with each other, a shared memory space interface.

【0009】 上述の共有メモリスペースインターフェースは分散計算資源の編成のための優
れた技法を提供するが、関連するオブジェクト及び計算資源を有するスペース編
成の設計のためのツールには、現在用いられているツールでは不十分である。な
ぜならば、現行のツールでは、プログラマは、全ての遠隔手続き呼出しを手作業
でコード化したり、共有メモリスペースが使用するオブジェクトの型を含めた共
有メモリスペースでの動作の特定を手作業で行たりしなければならないからであ
る。したがって、スペースとオブジェクトフローモデルとを用いて分散アルゴリ
ズムを設計するための、より洗練されたより使いやすいツールが当業界で求めら
れている。
Although the shared memory space interface described above provides a good technique for organizing distributed computing resources, tools are now being used for designing space organization with associated objects and computing resources. Tools are not enough. Because of the current tools, programmers have to manually code all remote procedure calls and manually specify actions in the shared memory space, including the types of objects used by the shared memory space. Because you have to do it. Therefore, there is a need in the art for more sophisticated and easier to use tools for designing distributed algorithms using space and object flow models.

【0010】 (発明の概略) 本発明の目的及び利点は、一部は以下の発明の詳細な説明において記述し、一
部はかかる詳細な説明により明らかであり、或いは、本発明の実施を等して教示
される。本発明の目的及び利点は、添付の請求の範囲において詳細に示される構
成要素及び組合せによって実現及び到達されるものである。
SUMMARY OF THE INVENTION Objects and advantages of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. Taught. The objects and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.

【0011】 本発明の課題を達成するため、及び、本明細書において具体化され広範に記述
される本発明の目的によれば、本発明に係る第1の態様は、共有メモリにおける
オブジェクトフローを定義するコンピュータコードを生成する方法を含み、該方
法は、(1)計算資源を表すイメージと前記共有メモリスペースを表すイメージ
とが配置されるグラフィカルインターフェースを表示する工程と、(2)前記グ
ラフィカルインターフェースを介して入力される情報であって、前記計算資源と
前記共有メモリスペースとの間のオブジェクトフローを表す情報を保存する工程
と、(3)前記共有メモリスペースと前記計算資源との間に表された前記オブジ
ェクトフローを実現するコンピュータコードを生成する工程と、を有する。
To achieve the objects of the present invention, and according to the objects of the invention embodied and broadly described herein, a first aspect according to the present invention provides a method for managing an object flow in a shared memory. A method for generating computer code defining the method, comprising: (1) displaying a graphical interface on which an image representing a computing resource and an image representing the shared memory space are located; and (2) the graphical interface. Storing information that is input through the server and that represents the object flow between the computational resource and the shared memory space; and (3) storing a table between the shared memory space and the computational resource. Generating computer code for implementing the object flow.

【0012】 本発明に係る第2の態様は、共有メモリスにおけるオブジェクトフローを定義
するコンピュータコードを生成する方法を含み、該方法は、(1)計算資源を表
す図形表現を図形表示領域に配置する工程と、(2)共有メモリスペースを表す
図形表現を前記図形表示領域に配置する工程と、(3)前記計算資源の図形表現
と前記共有メモリスペースの図形表現との間のデータフローを表す情報を入力す
る工程と、(4)前記共有メモリスペースの図形表現に対応する共有メモリスペ
ースのオブジェクトフローと前記計算資源の図形表現に対応する計算資源間のオ
ブジェクトフローとを実現するコンピュータコードを自動的に生成する工程と、
を有する。
A second aspect according to the present invention includes a method for generating computer code defining an object flow in a shared memory, the method comprising the steps of: (1) placing a graphic representation representing a computational resource in a graphic display area. (2) arranging a graphic representation representing a shared memory space in the graphic display area; and (3) information representing a data flow between the graphic representation of the computational resources and the graphic representation of the shared memory space. And (4) automatically generating computer code for realizing an object flow in the shared memory space corresponding to the graphic representation of the shared memory space and an object flow between the computational resources corresponding to the graphic representation of the computational resource. A process of generating
Having.

【0013】 本発明の更なる態様は、上記第1の態様に関し、コンピュータ可読媒体及びコ
ンピュータシステムに関するものである。
A further aspect of the present invention relates to the first aspect, and relates to a computer-readable medium and a computer system.

【0014】 (発明の詳細な説明) 添付の図面は、本明細書に援用され本明細書の一部を成すものであるが、本発
明の実施形態を図示し、本発明の詳細な説明と共に本発明の利点と原理の説明を
助けるものである。
DETAILED DESCRIPTION OF THE INVENTION The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and, together with the description, It helps explain the advantages and principles of the present invention.

【0015】 インタラクティブ設計ツールによれば、設計者が、分散型計算機システムにお
ける計算資源及び共有メモリスペース間のオブジェクトフローを視覚的に定義す
ることが可能になる。前記設計ツールはオブジェクトフローの視覚的表現を、そ
のオブジェクトフローを具体化するためのコンピュータコードに自動的に変換す
る。
According to the interactive design tool, a designer can visually define an object flow between a computational resource and a shared memory space in a distributed computer system. The design tool automatically translates a visual representation of the object flow into computer code for embodying the object flow.

【0016】 以下、添付図面に示す本発明の一実施の形態について詳細に説明する。Hereinafter, an embodiment of the present invention shown in the accompanying drawings will be described in detail.

【0017】 (システムの概観) 本発明に係る方法及びシステムは、ハードウェアとソフトウェアとそのいずれ
も含む様々なコンポーネントにより構成される分散型システム(「例示的な分散
型システム)において実行される。かかる例示的な分散型システムは、(1)シ
ステムユーザがネットワークを介して多くのデバイスのサービス及び資源を共有
することを可能にし、(2)プログラマに強固で安全な分散型システムの構築を
可能にするツール及びプログラミングパタンを提供し、(3)分散型システムの
管理タスクを簡素化する。上記の目標を実現するために、分散型システムはJa
vaTMプログラミング環境を用いることにより、コード及びデータの両方をデ
バイスからデバイスへ境目なく転送できるようにしている。従って、例示的な分
散型システムはJavaプログラミング環境の最上層に位置し、セキュリティ及
び強固な型付け等、その環境により提供される特性を享受することができる。J
avaプログラミング環境については、参照により本明細書に援用する、ジャオ
ルスキー著「Java1.1開発者ガイド」(1997年、サムズネット発行)
に、より詳細に説明されている。
System Overview The methods and systems of the present invention are implemented in a distributed system (“exemplary distributed system”) comprised of various components, including hardware and software. Such exemplary distributed systems allow (1) system users to share the services and resources of many devices over a network, and (2) allow programmers to build robust and secure distributed systems. (3) Simplify distributed system management tasks.To achieve the above goals, the distributed system should be Ja
The use of the va programming environment allows both code and data to be transferred seamlessly from device to device. Thus, the exemplary distributed system is at the top level of the Java programming environment and can enjoy the properties provided by that environment, such as security and robust typing. J
The Java programming environment is described by Jaolsky, Java 1.1 Developer Guide, published by Sam's Net, 1997, which is hereby incorporated by reference.
In more detail.

【0018】 例示的な分散型システムには、異なるコンピュータ及びデバイスがユーザの見
かけ上単一のシステムであるかのように統合されている。この単一のシステムで
あるかのような見かけにより、かかる例示的な分散型システムは、パソコンやワ
ークステーションが持つ柔軟性及び各ユーザ個人に専用化された応答性を損なう
ことなく、単一システムが提供するアクセスの簡易性と共有による利点とを提供
する。例示的な分散型システムは、地理的に分散しているが、信用、管理、方針
などの基本的概念に同意しているユーザにより操作される何千台ものデバイスを
含むことが可能である。
In an exemplary distributed system, different computers and devices are integrated as if they were a single system to the user. By virtue of its appearance as a single system, such an exemplary distributed system can be implemented in a single system without compromising the flexibility of personal computers and workstations and the responsiveness dedicated to each user. Provides the simplicity of access and the benefits of sharing. An exemplary distributed system is geographically dispersed, but can include thousands of devices operated by users who have agreed upon basic concepts such as trust, administration, and policies.

【0019】 例示的な分散型システムには、1または複数のデバイスにより提供されるサ
ービスの様々な論理グループがあり、この様な各論理グループは「Djinn」
として周知である。ここでいう「サービス」とは、ユーザ、プログラム、デバイ
ス、或いは、他のサービスからアクセス可能であり、且つ、計算、保存、通信、
或いは、他のユーザへのアクセス提供に関わる資源、データ、或いは、機能を指
す。Djinnの一部として提供されるサービスの例としては、プリンタ、ディ
スプレイ、ディスクといったデバイス、プログラム、ユーティリティといったソ
フトウェア、データベース、ファイルといった情報、またシステムのユーザが含
まれる。
In an exemplary distributed system, there are various logical groups of services provided by one or more devices, and each such logical group is “Djinn”
It is known as The “service” here is accessible from a user, a program, a device, or another service, and includes calculation, storage, communication,
Alternatively, it refers to resources, data, or functions related to providing access to other users. Examples of services provided as part of Djinn include devices such as printers, displays and disks, software such as programs and utilities, information such as databases and files, and users of the system.

【0020】 ユーザ及びデバイスはそのどちらもDjinnに参加することができる。Dj
innに参加することにより、ユーザ或いはデバイスはDjinnに0個以上の
サービスを追加し、セキュリティ制約の対象にはなるが、Djinnに含まれる
どのサービスにでもアクセスすることが可能になる。つまり、デバイス及びユー
ザはDjinnに統合され、Djinnの有するサービスへのアクセスを共有す
る。Djinnのサービスはプログラム上JavaTMプログラミング環境にお
けるオブジェクトとして現れ、これには他のオブジェクト、異なるプログラミン
グ言語で書かれたソフトウェアコンポーネント、或いはハードウェアデバイスを
含んでもよい。サービスは、かかるサービスの要求可能な操作を定義するインタ
ーフェースを有し、そのサービスの型はかかるサービスを構成するインターフェ
ースを決定する。
Both users and devices can participate in Djinn. Dj
By participating in inn, a user or device adds zero or more services to Djinn and is subject to security restrictions, but can access any service included in Djinn. In other words, the device and the user are integrated into Djinn and share access to the services that Djinn has. Djinn services appear programmatically as objects in the Java programming environment, which may include other objects, software components written in different programming languages, or hardware devices. A service has an interface that defines the requestable operations of such a service, and the type of the service determines the interfaces that make up the service.

【0021】 図2は、ネットワーク208によって相互接続された、コンピュータ202、
コンピュータ204、デバイス206をから成る例示的な分散型システム200
を示す。デバイス206は、プリンタ、ファックス機、記憶装置、コンピュータ
他の多数のデバイスの内いずれであってもよい。ネットワーク208は、ローカ
ルエリアネットワーク、広域ネットワーク、或いは、インターネットなどである
。分散型システム200は、ここでは2台のコンピュータと1台のデバイスのみ
で構成されるとして示したが、分散型システム200が更に他のコンピュータや
デバイスを含み得ることは、当業者には当然理解されるであろう。
FIG. 2 illustrates computers 202, interconnected by a network 208.
An exemplary distributed system 200 comprising a computer 204 and a device 206
Is shown. Device 206 may be a printer, fax machine, storage device, computer, or any of a number of other devices. The network 208 is a local area network, a wide area network, the Internet, or the like. Although the distributed system 200 is shown here as comprising only two computers and one device, it will be understood by those skilled in the art that the distributed system 200 may further include other computers and devices. Will be done.

【0022】 図3は、コンピュータ202を更に詳細に示して、分散型システム200の多
数のソフトウェア及びハードウェアコンポーネントを図示する。コンピュータ2
04或いはデバイス206も同様に構成できることは、当業者には当然理解され
るであろう。コンピュータ202は、メモリ302、二次記憶装置304、中央
処理装置(CPU)306、入力装置308、及び、ビデオディスプレイ或いは
モニタ310を含む。メモリ302は、ルックアップサービス312、ディスカ
バリーサーバ314、及び、Javaランタイムシステム316を含む。Jav
aランタイムシステム316は、Java遠隔メソッド呼出しシステム(RMI
)318及びJava仮想マシン(JVM)320を含む。二次記憶装置304
はJavaスペース322を含む。
FIG. 3 illustrates the computer 202 in further detail, illustrating a number of software and hardware components of the distributed system 200. Computer 2
It will be appreciated by those skilled in the art that the device 04 or device 206 can be similarly configured. The computer 202 includes a memory 302, a secondary storage device 304, a central processing unit (CPU) 306, an input device 308, and a video display or monitor 310. The memory 302 includes a lookup service 312, a discovery server 314, and a Java runtime system 316. Jav
a runtime system 316 is a Java remote method invocation system (RMI
) 318 and a Java Virtual Machine (JVM) 320. Secondary storage device 304
Includes a Java space 322.

【0023】 上述したように、分散型システム200はJavaプログラミング環境を基盤
としており、従って、Javaランタイムシステム316を使用する。Java
ランタイムシステム316はJavaAPIライブラリを含み、これにより、J
avaランタイムシステムの最上層で実行されるプログラムが、ホストオペレー
ティングシステムのウィンドウ機能及びネットワーク機能等の各種システム機能
にプラットフォーム非依存的にアクセスすることが可能になる。JavaAPI
は、Javaランタイムシステムが実装されている全てのオペレーティングシス
テムに共通する単一のAPIを提供するので、Javaランタイムシステムの最
上層で実行されるプログラムが、オペレーティングシステム或いはホストプラッ
トフォームのハードウェア構成に関わらず、プラットフォーム非依存的に実行さ
れる。Javaランタイムシステム316は、カリフォルニア州、マウンテンビ
ュー所在のサンマイクロシステムズ社よりJavaソフトウェア開発キットの一
部として提供されている。
As mentioned above, the distributed system 200 is based on the Java programming environment and therefore uses the Java runtime system 316. Java
The runtime system 316 includes a Java API library,
A program executed in the uppermost layer of the ava runtime system can access various system functions such as a window function and a network function of the host operating system in a platform-independent manner. Java API
Provides a single API that is common to all operating systems on which the Java runtime system is implemented, so that programs executed on the top layer of the Java runtime system can be executed regardless of the operating system or the hardware configuration of the host platform. Instead, it is executed platform-independently. The Java runtime system 316 is provided by Sun Microsystems, Inc. of Mountain View, Calif. As part of the Java Software Development Kit.

【0024】 JVM320も、プラットフォーム非依存性を促進する。JVM320は抽象
的な計算装置の役割を果たし、プログラムからバイトコード形式の命令を受け取
り、かかるバイトコードを動的にオブジェクトコードなどの実行形式に変換して
翻訳し、これを実行する。RMI318は、あるコンピュータ或いはデバイスで
実行中のオブジェクトが他のコンピュータ或いはデバイス上のオブジェクトのメ
ソッドを呼出すことを可能することにより、オブジェクト遠隔メソッド呼出しを
容易にする。RMI及びJVMは、いずれもJavaソフトウェア開発キットの
一部として提供されている。
The JVM 320 also promotes platform independence. The JVM 320 plays the role of an abstract computing device, receives an instruction in a bytecode format from a program, dynamically converts the bytecode into an executable format such as an object code, translates the translated code, and executes the translated code. RMI 318 facilitates object remote method invocation by allowing an object running on one computer or device to invoke a method on an object on another computer or device. RMI and JVM are both provided as part of the Java software development kit.

【0025】 ルックアップサービス312は、ある特定のDjinnで使用可能なサービス
を定義する。即ち、分散型システム200はDjinnを複数有している可能性
があり、従って、ルックアップサービスも分散型システム200内に複数存在す
る可能性がある。ルックアップサービス312は、Djinnの各サービスに対
しそれぞれ1つのオブジェクトを含んでおり、各オブジェクトは対応するサービ
スへのアクセスを容易にする様々なメソッドを含んでいる。ルックアップサービ
ス312及びそのアクセスについては、本出願人により同時出願中の米国出願番
、発明の名称「ルックアップサービスへのアクセスを容易にする
ための方法及びシステム」に説明されている。尚、同出願は、上記において参照
により本明細書に援用されている。
The lookup service 312 defines a service that can be used in a specific Djinn. That is, the distributed system 200 may have a plurality of Djinns, and therefore, there may be a plurality of lookup services in the distributed system 200. The lookup service 312 includes one object for each service of Djinn, and each object includes various methods for facilitating access to the corresponding service. For a lookup service 312 and its access, see US application Ser. , The title of the invention "Method and system for facilitating access to the lookup service". This application is incorporated herein by reference above.

【0026】 ディスカバリーサーバ314は、ブート・アンド・ジョイン(またはディスカ
バリ)として知られる処理中、例示的な分散型システム200に追加された新た
なデバイスを検出する。新規デバイスが検出されると、ディスカバリサーバはル
ックアップサービス512にかかる新規デバイスの参照を渡す。これにより、か
かる新規デバイスはそのサービスをルックアップサービスに登録でき、Djin
nのメンバーとなる。登録後、新規デバイスはDjinnのメンバーとなり、こ
の結果、ルックアップサービス312に含まれる全てのサービスへのアクセスす
ることが可能になる。ブート・アンド・ジョイン処理については、本出願人によ
り同時出願中の米国出願番号 、発明の名称「分散型システムにおけ
るデバイスとの通信に用いるダウンロード可能なコードの供給のための装置及び
方法」に説明されている。尚、同出願は、上記において参照により本明細書に援
用されている。
The discovery server 314 detects new devices added to the exemplary distributed system 200 during a process known as boot and join (or discovery). If a new device is detected, the discovery server passes the new device reference to the lookup service 512. This allows such a new device to register its service with the lookup service and Djin
Become a member of n. After registration, the new device becomes a member of Djinn, and thus has access to all services included in the lookup service 312. For boot and join processing, see U.S. Ser. And the title of the invention "Apparatus and method for providing downloadable code for communication with devices in a distributed system". This application is incorporated herein by reference above.

【0027】 例示的な分散型システム200が、ルックアップサービス、ディスカバリサー
バ及びJavaスペースをそれぞれ多数含みうることは、当業者には当然理解さ
れるであろう。
It will be appreciated by those skilled in the art that the exemplary distributed system 200 may each include a number of lookup services, discovery servers, and Java spaces.

【0028】 本発明に係るシステム及び方法は、例示的な分散型システム及びJavaプロ
グラミング環境において実行されるものとして説明したが、本発明は、他のシス
テム及び他のプログラミング環境においても実施可能なことは当業者には当然理
解されるであろう。加えて、本発明の実施態様例はメモリに保存されるものとし
て説明されているが、これらの実施態様例はハードディスク、フロッピーディス
ク、或いは、CD−ROM等の二次記憶装置、インターネットからの搬送波、他
の形態のRAMまたはROM、等の他のタイプコンピュータ可読媒体に保存、及
び、そこから読み取り可能なことは、当業者には当然理解されるであろう。Su
n、Sun Microsystems、Sunのロゴ、Java、及び、Ja
vaを基調とした商標は、米国及びその他の国におけるサンマイクロシステムズ
インコーポレーテッドの商標又は登録商標である。
Although the systems and methods of the present invention have been described as being implemented in an exemplary distributed system and Java programming environment, the present invention can be implemented in other systems and other programming environments. Will of course be understood by those skilled in the art. In addition, although the embodiments of the present invention have been described as being stored in memory, these embodiments are not limited to secondary storage devices such as hard disks, floppy disks, or CD-ROMs, and carrier waves from the Internet. One of ordinary skill in the art will appreciate that other types of computer readable media, such as RAM or ROM, and other forms of storage and reading therefrom. Su
n, Sun Microsystems, Sun logo, Java and Ja
Va based trademarks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

【0029】 (Javaスペースモデル及び用語) 本発明に係るインタラクティブ設計ツールは、分散計算機システムをモデル化
するためのオブジェクトフロー手法において、共有メモリスペースを用いた分散
プログラムの開発において開発者を補助する。本明細書の記載を通じて用いれれ
る通り、「共有メモリスペース」は、複数のプロセスから参照及び変更が可能な
あらゆるメモリを指す。
(Java Space Model and Terminology) The interactive design tool according to the present invention assists a developer in developing a distributed program using a shared memory space in an object flow method for modeling a distributed computer system. As used throughout the description herein, "shared memory space" refers to any memory that can be referenced and modified by multiple processes.

【0030】 本発明の概念は、分散型システムをモデル化するためのオブジェクトフロー手
法を具体化するいかなるタイプの共有メモリにも好適に適用可能であるが、本実
施形態においてはJavaスペース322などのJavaスペースが用いられる
ものとする。
The concept of the present invention is suitably applicable to any type of shared memory embodying an object flow approach to modeling a distributed system, but in the present embodiment, such as Java space 322 It is assumed that a Java space is used.

【0031】 Javaスペース322は、分散型システム200において、プログラムがオ
ブジェクトを保存するのに用いるオブジェクトレポジトリである。プログラムは
、Javaスペース322を用いてオブジェクトを持続的に保存すると共に、こ
れらのオブジェクトをJava分散型システムの他のデバイスに対してアクセス
可能にする。Javaスペースについては、本出願と共通の譲受人に譲渡された
、1997年11月17日出願の同時係属中の米国特許出願番号08/971,
529、発明の名称「多様性のあるエントリーマッチングを用いたデータベース
システム」により詳細に説明されている。尚、同出願は、参照により本明細書に
援用する。以下に、Javaスペースの概観について簡潔に述べる。
The Java space 322 is an object repository used by the program in the distributed system 200 to store objects. The program uses the Java space 322 to persistently store objects and make these objects accessible to other devices in the Java distributed system. Regarding Java space, co-pending US patent application Ser. No. 08/971, filed Nov. 17, 1997, assigned to the common assignee with the present application.
529, the title of the invention "database system using diverse entry matching". This application is incorporated herein by reference. The following briefly describes the overview of the Java space.

【0032】 Javaスペースはエントリーを保持し、エントリーはオブジェクトの型付け
された集合である。エントリーは、Javaスペースに書き込まれることが可能
であり、これによりJavaスペースにそのエントリーのコピーを作成する。エ
ントリーはJavaスペースでテンプレートを用いて検索されることが可能であ
り、テンプレートとは、そのフィールドの幾つかのまたは全てが正確に一致する
特定の値に設定されているエントリーオブジェクトである。残りのフィールドは
、ワイルドカードとしてそのままにされ、これらのフィールドは検索では使われ
ない。
A Java space holds entries, which are a typed collection of objects. An entry can be written to the Java space, thereby creating a copy of the entry in the Java space. Entries can be searched using templates in the Java space, which are entry objects that have some or all of their fields set to specific values that exactly match. The remaining fields are left as wildcards and these fields are not used in the search.

【0033】 Javaスペースは、読み取りと取り出しとの2種類のルックアップ操作をサ
ポートする。Javaスペースへの読み取り要求は、読み取りが為されるテンプ
レートに一致するエントリーか、或いは、一致するエントリーが見つからない旨
の表現かのいずれかを返す。取り出し要求は読み取り要求と似ているが、ただし
一致するエントリーが見つかればこの一致したエントリーはJavaスペースか
ら取り除かれる。継続要求がJavaスペースに対して為されると、Javaス
ペースは特定のテンプレートに一致するエントリーが書き込みされる時に要求主
体に通知を行う。
The Java space supports two types of lookup operations, read and retrieve. A read request to the Java space returns either an entry that matches the template to be read, or an expression that no matching entry was found. A fetch request is similar to a read request, except that if a matching entry is found, the matching entry is removed from the Java space. When a continuation request is made to the Java space, the Java space notifies the requesting entity when an entry that matches the specific template is written.

【0034】 Javaスペースに変更を加えるための要求は全て、好ましくは、そのスペー
スに関しトランザクション上安全な様式で実行される。即ち、書き込み操作が首
尾よく戻ってきたならば、その後エントリーはそのスペースに書き込まれる。そ
して、取り出し操作がエントリーを戻すならば、そのエントリーはそのスペース
から取り除かれ、よって、以降いかなる操作もかかるエントリーに対し読み取り
または取り出しを行うことはない。言い換えると、Javaスペース内でたとえ
2以上のエントリーが正確に同一値を有していようとも、Javaスペースの各
エントリーの取り出しは多くとも1度行われるのみである。
All requests to make changes to a Java space are preferably performed in a transactionally secure manner for that space. That is, if the write operation returns successfully, then the entry is written to that space. Then, if the fetch operation returns an entry, the entry is removed from the space, so no further operation will read or fetch that entry. In other words, even if two or more entries have exactly the same value in the Java space, the retrieval of each entry in the Java space is performed at most once.

【0035】 (インタラクティブ設計ツール) 本発明に係るインタラクティブ設計ツール(IDT)は、ユーザにJavaス
ペースにおけるオブジェクトデータフローをインタラクティブ且つ視覚的に設計
することを可能にする。IDTユーザは、オブジェクトフローを制御するプロト
コルを視覚的に且つ図形的に定義することができる。その後、IDTは前記プロ
トコルを具体化するコンピュータコードを生成する。
(Interactive Design Tool) An interactive design tool (IDT) according to the present invention enables a user to interactively and visually design an object data flow in a Java space. IDT users can visually and graphically define protocols that control object flow. Thereafter, the IDT generates computer code that embodies the protocol.

【0036】 図4A〜4Dは、本発明に係るIDTの例示的なグラフィカルインターフェー
スを示した図である。IDTは、好ましくは、コンピュータ202により実行さ
れるプログラムであり且つメモリ302に保存されたプログラムであり、ディス
プレイ310上にグラフィカルインターフェースを表示する。
FIGS. 4A to 4D are diagrams illustrating exemplary graphical interfaces of the IDT according to the present invention. The IDT is preferably a program executed by the computer 202 and a program stored in the memory 302, and displays a graphical interface on the display 310.

【0037】 図4Aに示したように、グラフィカルインターフェース400は、設計領域4
02及びツールバー406を含む。プログラマは、設計領域402内にJava
スペース及びそのJavaスペースにアクセスするクライアントを表す図形表現
を配置しこれを操作する。Javaスペース及びクライアントの計算資源(例え
ば、コンピュータ)を表す図形表現がツールバー406に表示される。例えば、
Javaスペースはアイコン408で表され、計算資源はアイコン407で表さ
れる。プログラマは、単にJavaスペースアイコン308をクリックしこれを
設計領域402にドラッグするだけで設計領域402にJavaスペースを追加
でき、アイコン407をクリックするだけでクライアントコンピュータを追加で
きる。
As shown in FIG. 4A, the graphical interface 400
02 and the toolbar 406. The programmer stores Java in the design area 402.
Place and manipulate graphical representations representing the space and the client accessing the Java space. Graphical representations representing the Java space and the computing resources (eg, computers) of the client are displayed on toolbar 406. For example,
The Java space is represented by an icon 408, and the computational resources are represented by an icon 407. The programmer can add a Java space to the design area 402 by simply clicking the Java space icon 308 and dragging it to the design area 402, and can add a client computer by clicking the icon 407.

【0038】 「コード作成」と表示してあるボタン409は、起動されるとIDTにJav
aスペースにおけるエントリータイプを定義させ、及び/または、設計領域40
2にあるクライアントのスケルトンコード或いは部分スケルトンコードクラスフ
ァイルを作成させる。つまり、設計領域402に視覚的に表される情報を与えら
れることにより、IDTは、プログラマが設計領域402において定義した機能
を表すコンピュータコードを生成することができ、これにより手作業でコードを
記述するというプログラマの負担が取り除かれる。殊に、コンピュータコードは
、クライアントが適切なJavaスペースに対して実行する遠隔手続き呼出しを
具体化するコードを含にでいる。
When the button 409 indicating “Create Code” is activated, the IDT displays Java on the button.
a to define an entry type in the a space and / or design area 40
2. Create a client skeleton code or partial skeleton code class file in 2. That is, by being provided with information visually represented in the design area 402, the IDT can generate computer code representing the functions defined by the programmer in the design area 402, thereby manually writing the code. The programmer's burden of doing so is removed. In particular, the computer code includes code that embodies a remote procedure call that the client makes to the appropriate Java space.

【0039】 IDTのグラフィカルユーザインターフェース400は、2つのアイコンと1
つのボタンを有するツールバー402により構成されるとして図示したが、設計
領域402及びツールバー406の様々な具体化が可能であることは、当業者に
は自明であろう。例えば、ツールバー406は、異なるタイプの計算資源を表す
アイコンを更に含んでもよいし、或いは、プルダウンメニューとして具体化して
もよい。
The IDT graphical user interface 400 has two icons and one
Although illustrated as being comprised of a toolbar 402 having two buttons, it will be apparent to those skilled in the art that various implementations of the design area 402 and the toolbar 406 are possible. For example, toolbar 406 may further include icons representing different types of computational resources, or may be embodied as a pull-down menu.

【0040】 上述した本発明の概念及び特徴を更に明確にするために、IDTを用いた例示
的な分散型システムの構築について、この分散型システム構築の様々な段階のイ
ンターフェース400を示した図4B〜4Dを参照して以下に説明する。
To further clarify the concepts and features of the present invention described above, FIG. 4B shows an interface 400 at various stages in the construction of an exemplary distributed system using an IDT for this distributed system construction. This will be described below with reference to FIGS.

【0041】 図4Bは、プログラマが設計領域402にJavaスペース410を加えた後
の設計領域402を示す。例として、Javaスペース410が、イメージの一
部を保存した「図形オブジェクト」を含むエントリーを保持していると仮定する
FIG. 4B shows the design area 402 after the programmer has added a Java space 410 to the design area 402. As an example, assume that Java space 410 holds an entry that includes a "graphic object" that stores a portion of an image.

【0042】 図4Cは、プログラマがクライアントコンピュータシステム412を追加し、
このクライアントコンピュータシステム412がJavaスペース410に図形
オブジェクトエントリーを書き込むことを表示(線413で示す)した後の、設
計領域402を示す。この時点で、IDTは、ユーザが、Javaスペース41
0に書き込もうとするエントリーの名前(例えば、「イメージセグメント」)、
及び、タイプ(例えば、図形オブジェクト)を入力するためのダイアログボック
スを表示してもよい。同様に、プログラマがJavaスペースに新規のオブジェ
クト型を定義できるようにするダイアログボックスなど、更に他の情報を入力す
るためのダイアログボックスを追加することも可能である。
FIG. 4C shows a programmer adding a client computer system 412,
The design area 402 is shown after the client computer system 412 indicates that the graphic object entry is to be written in the Java space 410 (indicated by the line 413). At this point, the IDT indicates that the user has
The name of the entry to be written to 0 (eg, "image segment"),
A dialog box for inputting a type (for example, a graphic object) may be displayed. Similarly, it is possible to add a dialog box for entering other information, such as a dialog box that allows a programmer to define a new object type in the Java space.

【0043】 図4Dは、プログラマが第2、第3、第4のクライアントコンピュータシステ
ム416〜418をそれぞれ追加した後の設計領域402を示す。クライアント
416及び417は、Javaスペース410からエントリーを取り出し、また
、Javaスペース410にエントリーを書き込む。クライアント416及び4
17は、例えば、Javaスペース410内の図形オブジェクトエントリーに画
像処理操作を施す専用高速グラフィックスワークステーションであってもよい。
更に具体的に述べれば、クライアント416及び417は、スペース410に「
図形オブジェクト」が書き込まれる都度突き合わせを表示するテンプレートを使
ってスペース410を監視する。マッチしたオブジェクトは、クライアント41
6または417のどちらか一方によりスペース410から取り出され、操作され
、スペース410に再度書き込まれる。クライアント418は、クライアント4
16及び417により操作されたエントリをJavaスペース410から取り出
す。
FIG. 4D shows the design area 402 after the programmer has added the second, third, and fourth client computer systems 416-418, respectively. The clients 416 and 417 retrieve an entry from the Java space 410 and write the entry into the Java space 410. Clients 416 and 4
17 may be, for example, a dedicated high-speed graphics workstation that performs image processing operations on graphic object entries in the Java space 410.
More specifically, clients 416 and 417 store "
The space 410 is monitored using a template that displays a match each time a "graphic object" is written. The matched object is the client 41
Either 6 or 417 is taken out of space 410, manipulated and written back into space 410. Client 418 is Client 4
The entry operated by 16 and 417 is taken out from the Java space 410.

【0044】 上述したように、どのクライアントがJavaスペースに対しエントリーの書
き込み、取り出し、または、読み取りを行うかの表示は、好ましくは、図4C及
び図4Dに示したような線でプログラマに示すとよいが、オブジェクトフローを
図式的に示す他の方法を代わりに用いてもよい。
As noted above, the indication of which client writes, retrieves, or reads an entry into the Java space is preferably shown to the programmer with lines as shown in FIGS. 4C and 4D. Although good, other methods of diagrammatically illustrating the object flow may be used instead.

【0045】 プログラマがクライアントコードボタン409を起動すると、IDTは設計領
域402にある各クライアントに対しコンピュータコードを生成する。図4Dに
示した例では、IDTはクライアント412、416、417、418に対する
コンピュータコードを生成することになる。通常、IDTは、プログラマが指定
したエントリータイプを使って指定されたJavaスペースに対し書き込み、取
り出し、或いは、読み取り操作を実行するためのコードを、各クライアント毎に
生成する。
When the programmer activates the client code button 409, the IDT generates computer code for each client in the design area 402. In the example shown in FIG. 4D, the IDT will generate computer code for clients 412, 416, 417, 418. Normally, the IDT generates, for each client, code for executing a write, retrieve, or read operation on a Java space designated using an entry type designated by a programmer.

【0046】 図5は、IDTによるコンピュータコードの生成手順を示したフローチャート
である。IDTは、各クライアントの設計領域における各Javaスペース操作
(即ち、書き込み、読み取り、取り出しの各操作)のためのコードを生成する。
通常、IDTは、各クライアントに対し別個のプログラム或いはコードモジュー
ルを書き込む(ステップ502、503)。その後IDTは、各コードモジュー
ル毎に各Javaスペース操作に対応するコードを生成する(ステップ504、
505)。好ましくは、Javaスペース操作に対応するコードを記述する際に
、IDTがかかるコードとビジュアルディスプレイ領域とを相互に関連付けるた
めの情報を保存するとよい(ステップ506)。これによりIDTは、プログラ
マが分散型システム表す図形表現に変更を加えた場合にはコードを適宜更新し、
プログラマが手作業でコードに変更を加えた場合には図形表現を更新する。この
図形表現とコンピュータコードとの相互関係は、コマンド注釈をコンピュータコ
ード中に挿入することにより実現してもよいし、かかる相互関係を格納するデー
タベースを作成することにより実現してもよい。
FIG. 5 is a flowchart showing a procedure for generating a computer code by the IDT. The IDT generates code for each Java space operation (i.e., write, read, and retrieve operations) in each client's design area.
Typically, the IDT writes a separate program or code module for each client (steps 502, 503). Thereafter, the IDT generates a code corresponding to each Java space operation for each code module (step 504,
505). Preferably, when writing the code corresponding to the Java space operation, the IDT may store information for associating the code with the visual display area (step 506). This allows the IDT to update the code appropriately if the programmer changes the graphical representation of the distributed system,
If the programmer makes manual changes to the code, it updates the graphical representation. The interrelation between the graphic representation and the computer code may be realized by inserting a command annotation into the computer code, or may be realized by creating a database for storing the interrelation.

【0047】 図6は、クライアント416及び417のいずれかに対し生成された例示的な
コードモジュールを示す図である。図4Dに示すように、クライアント416及
び417のそれぞれは、図形オブジェクトの取り出し及と図形オブジェクトの書
き込みを行う。これら2つのJavaスペース操作は、コードセクション602
及び604としてそれぞれ示してある。プログラマはこれに、コードセクション
601、603、605のような更なるコードを追加することも可能である。例
えば、コードセクション603は、コードセクション602により取り出される
図形オブジェクトに対しスムージング処理などのイメージ処理を実行するコード
としてもよい。コードセクション604は、スムージング処理を施されたコード
セクションをJavaスペース401に再び書き込むコードとしてもよい。
FIG. 6 is a diagram illustrating exemplary code modules generated for either client 416 or 417. As shown in FIG. 4D, each of the clients 416 and 417 retrieves a graphic object and writes a graphic object. These two Java space operations correspond to code section 602
And 604 respectively. The programmer can add further code to this, such as code sections 601, 603, 605. For example, the code section 603 may be a code that executes image processing such as smoothing processing on the graphic object extracted by the code section 602. The code section 604 may be a code for rewriting the smoothed code section into the Java space 401.

【0048】 IDTは、各Javaスペース操作に対応する一連のコードを、そのJava
スペース操作実行に要求される命令を探索することにより、及び、適切なパラメ
ータデータを命令に追加することにより生成する。適切なパラメータデータとは
、例えば、操作中のJavaスペースの名前或いはアドレスのパラメータ、及び
、Javaスペースに対し書き込み、取り出し、読み取りされるエントリーの識
別を表すパラメータなどである。このJavaスペース操作実行のために必要な
命令リストは、IDTにおいて予め定義される。
The IDT stores a series of codes corresponding to each Java space operation in the Java space operation.
It is generated by searching for an instruction required to execute a space operation and by adding appropriate parameter data to the instruction. Appropriate parameter data includes, for example, a parameter of a name or an address of a Java space being operated, a parameter indicating the identification of an entry to be written to, retrieved from, or read from the Java space. An instruction list necessary for executing the Java space operation is defined in the IDT in advance.

【0049】 上述のインタラクティブ設計ツールによれば、プログラマが、分散型システム
の共有メモリにおけるハイレベルなフローを視覚的に設計し、かかる設計を実現
するコードの生成を行うことが可能になる。図形表現とコンピュータコードとは
連係しているので、後に、図形表現とコンピュータコードとのいずれか一方に変
更を加えると、自動的に他方も更新される。この結果、プログラマが分散型シス
テムにおけるオブジェクトフローの設計、配置をより簡単に行なえるようになる
という有利な効果を奏する。プログラマはこの後、コンピュータコードに詳細及
び追加機能を追加できる。
According to the interactive design tool described above, it becomes possible for a programmer to visually design a high-level flow in a shared memory of a distributed system and to generate a code for implementing the design. Since the graphic representation and the computer code are linked, if one of the graphic representation and the computer code is changed later, the other is automatically updated. As a result, there is an advantageous effect that the programmer can more easily design and arrange the object flow in the distributed system. The programmer can then add details and additional features to the computer code.

【0050】 以上現時点で、本発明の最良の実施形態及び方法であると見なされるものにつ
いて説明してきたが、種々の変更及び変容が可能であり、本発明の範囲から逸脱
することなく、構成要素をその均等物によって置き換え可能であることは当業者
には当然理解されるであろう。例えば、上述のシステム及び方法は、Javaス
ペースを用いるJavaを基盤とした実行環境に言及して説明したが、他の実行
環境及び共有メモリを用いることも可能である。更に、上述のシステム及び方法
は、オブジェクトフローにおける、従来のオブジェクト指向定義を用いたオブジ
ェクト(即ち、機能とデータとの両方を含めることができるデータ構造)に言及
して説明したが、例えばC言語「構造」のような単純なデータのみを有する構造
も同様に用いることができる。
Having described what is considered to be the best embodiment and method of this invention at this time, various changes and modifications can be made without departing from the scope of the invention. Will be understood by those skilled in the art that For example, while the systems and methods described above have been described with reference to a Java-based execution environment that uses Java space, other execution environments and shared memories may be used. Further, while the systems and methods described above have been described with reference to objects (ie, data structures that can contain both functions and data) in the object flow using conventional object-oriented definitions, for example, the C language A structure having only simple data such as “structure” can be used as well.

【0051】 更に、本発明は、発明の範囲から逸脱することなく、本発明の教示するところ
に様々な変容が可能であり、これにより特定の構成要素、技術、或いは、具現化
を適用することが可能である。従って、本発明は、本明細書に記載した特定の実
施形態及び方法に限られるものではなく、添付の請求の範囲により定義される範
囲に含まれる全ての実施形態を含むものである。
Furthermore, the present invention is capable of various modifications within the teachings of the present invention without departing from the scope of the invention, thereby applying particular components, techniques, or implementations. Is possible. Accordingly, the present invention is not limited to the specific embodiments and methods described herein, but includes all embodiments that fall within the scope defined by the appended claims.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 オブジェクトフロー手法を用いて分散アルゴリズムをモデル化する例示的な分
散システムを示した図である。
FIG. 1 illustrates an exemplary distributed system that models a distributed algorithm using an object flow approach.

【図2】 例示的な分散型システムを示した図である。FIG. 2 illustrates an exemplary distributed system.

【図3】 図3に示した例示的な分散システムに含まれる例示的なコンピュータを示した
図である。
FIG. 3 illustrates an exemplary computer included in the exemplary distributed system illustrated in FIG.

【図4A】 本発明に係るインタラクティブ設計ツールの例示的なグラフィカルインターフ
ェースを示した図である。
FIG. 4A illustrates an exemplary graphical interface of an interactive design tool according to the present invention.

【図4B】 本発明に係るインタラクティブ設計ツールの例示的なグラフィカルインターフ
ェースを示した図である。
FIG. 4B illustrates an exemplary graphical interface of an interactive design tool according to the present invention.

【図4C】 本発明に係るインタラクティブ設計ツールの例示的なグラフィカルインターフ
ェースを示した図である。
FIG. 4C illustrates an exemplary graphical interface of an interactive design tool according to the present invention.

【図4D】 本発明に係るインタラクティブ設計ツールの例示的なグラフィカルインターフ
ェースを示した図である。
FIG. 4D illustrates an exemplary graphical interface of an interactive design tool according to the present invention.

【図5】 本発明に係るコンピュータコードを生成する手順を示した図である。FIG. 5 is a diagram showing a procedure for generating computer code according to the present invention.

【図6】 生成された例示的なコンピュータコードのセクションを示した図である。FIG. 6 illustrates sections of exemplary computer code generated.

【符号の説明】[Explanation of symbols]

200 分散型システム 202、204 コンピュータ 206 デバイス 208 ネットワーク 302 メモリ 304 二次記憶装置 306 中央処理装置(CPU) 308 入力装置 310 ビデオディスプレイ或いはモニタ 312 ルックアップサービス 314 ディスカバリサーバ 316 Javaランタイムシステム 318 JavaTM遠隔メソッド呼出しシステム(RMI) 320 Java仮想マシン(JVM) 322 Javaスペース 400 グラフィカルユーザインターフェース 402 設計領域 406 ツールバー 407、408 アイコン 409 ボタン 410 Javaスペース 412、416、417、418 クライアント 415 ダイアログボックス200 distributed system 202, 204 computer 206 device 208 network 302 memory 304 secondary storage 306 central processing unit (CPU) 308 input device 310 video display or monitor 312 lookup service 314 discovery server 316 Java runtime system 318 Java TM remote method Calling system (RMI) 320 Java virtual machine (JVM) 322 Java space 400 Graphical user interface 402 Design area 406 Toolbar 407, 408 Icon 409 Button 410 Java space 412, 416, 417, 418 Client 415 Dialog box

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,UZ,VN,YU,ZW (71)出願人 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America──────────────────────────────────────────────────続 き Continuation of front page (81) Designated country EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE ), OA (BF, BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, GM, KE, LS, MW, SD, SZ, UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, KE , KG, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK, SL, TJ, TM, TR, TT, UA, UG, UZ, VN, YU, ZW (71) Applicant 2550 Garcia Avenue, MS PAL1-521, Mountain View, California 94043 − 1100, United States of America

Claims (18)

【特許請求の範囲】[Claims] 【請求項1】 共有メモリスペースにおけるオブジェクトフローを定義する
コンピュータコードを生成する方法であって、 計算資源を表すイメージと前記共有メモリスペースを表すイメージとが配置さ
れるグラフィカルインターフェースを表示する工程と、 前記グラフィカルインターフェースを介して入力される情報であって、前記計
算資源と前記共有メモリスペースとの間のオブジェクトフローを表す情報を保存
する工程と、 前記共有メモリスペースと前記計算資源との間に表された前記オブジェクトフ
ローを実現するコンピュータコードを生成する工程と、 を有する。
1. A method for generating computer code defining an object flow in a shared memory space, comprising: displaying a graphical interface on which an image representing a computational resource and an image representing the shared memory space are located; Storing information input via the graphical interface, the information representing an object flow between the computational resource and the shared memory space; and storing a table between the shared memory space and the computational resource. Generating computer code for implementing the object flow.
【請求項2】 請求項1の方法において、前記共有メモリスペースはJav
aスペースである。
2. The method of claim 1, wherein said shared memory space is Java.
a space.
【請求項3】 請求項1の方法において、前記計算資源と前記共有メモリス
ペースとの間のオブジェクトフローを表す情報を保存する前記工程は、前記計算
資源のどの計算資源が前記共有メモリスペースからエントリーを取り出すかを表
す情報を保存する工程を含む。
3. The method of claim 1, wherein the step of storing information representing an object flow between the computational resource and the shared memory space comprises: determining which computational resource of the computational resource has an entry from the shared memory space. And storing information indicating whether or not to retrieve.
【請求項4】 請求項1の方法において、前記計算資源と前記共有メモリス
ペースとの間のオブジェクトフローを表す情報を保存する前記工程は、前記計算
資源のどの計算資源が前記共有メモリスペースにエントリーを書き込むかを表す
情報を保存する工程を含む。
4. The method of claim 1, wherein the step of storing information representing an object flow between the computational resource and the shared memory space comprises the step of identifying which computational resource of the computational resource has an entry in the shared memory space. And storing information indicating whether or not to write.
【請求項5】 請求項1の方法において、前記計算資源と前記共有メモリス
ペースとの間のオブジェクトフローを表す情報を保存する前記工程は、前記計算
資源のどの計算資源が前記共有メモリスペースからエントリーを読み取るかを表
す情報を保存する工程を含む。
5. The method of claim 1, wherein the step of storing information representing an object flow between the computational resource and the shared memory space comprises the step of determining which computational resource of the computational resource has an entry from the shared memory space. And storing information indicating whether or not to read.
【請求項6】 請求項1の方法は、更に、前記グラフィカルユーザ上の前記
イメージが変更されると前記生成されたコンピュータコードを自動的に更新する
工程を含む。
6. The method of claim 1, further comprising automatically updating the generated computer code when the image on the graphical user changes.
【請求項7】 共有メモリスペースにおけるオブジェクトフローを定義する
コンピュータコードを生成する方法であって、 計算資源を表す図形表現を図形表示領域に配置する工程と、 共有メモリスペースを表す図形表現を前記図形表示領域に配置する工程と、 前記計算資源の図形表現と前記共有メモリスペースの図形表現との間のデータ
フローを表す情報を入力する工程と、 前記共有メモリスペースの図形表現に対応する共有メモリスペースのオブジェ
クトフローと前記計算資源の図形表現に対応する計算資源間のオブジェクトフロ
ーとを実現するコンピュータコードを自動的に生成する工程と、 を有する。
7. A method for generating computer code defining an object flow in a shared memory space, comprising: arranging a graphic representation representing a computational resource in a graphic display area; Arranging in a display area; inputting information representing a data flow between the graphic representation of the computational resources and the graphic representation of the shared memory space; and a shared memory space corresponding to the graphic representation of the shared memory space. Automatically generating computer code that implements the object flow of and the object flow between the computational resources corresponding to the graphical representation of the computational resource.
【請求項8】 請求項7の方法において、前記共有メモリスペースはJav
aスペースである。
8. The method of claim 7, wherein said shared memory space is Java.
a space.
【請求項9】 請求項7の方法において、前記共有メモリスペースの図形表
現と前記計算資源の図形表現との間のデータフローを表す情報を入力する前記工
程は、前記計算資源のどの計算資源が前記共有メモリスペースの図形表現からエ
ントリーを取り出すかを表す情報を入力する工程を含む。
9. The method of claim 7, wherein the step of inputting information representing a data flow between the graphical representation of the shared memory space and the graphical representation of the computational resource comprises: Inputting information indicating whether to retrieve an entry from the graphical representation of the shared memory space.
【請求項10】 請求項7の方法において、前記共有メモリスペースの図形
表現と前記計算資源の図形表現との間のデータフローを表す情報を入力する前記
工程は、前記計算資源のどの計算資源が前記共有メモリスペースの図形表現にエ
ントリーを書き込むかを表す情報を入力する工程を含む。
10. The method of claim 7, wherein the step of inputting information representing a data flow between the graphical representation of the shared memory space and the graphical representation of the computational resources comprises: Inputting information indicating whether to write an entry in the graphical representation of the shared memory space.
【請求項11】 請求項7の方法において、前記共有メモリスペースの図形
表現と前記計算資源の図形表現との間のデータフローを表す情報を入力する前記
工程は、前記計算資源のどの計算資源が前記共有メモリスペースの図形表現から
エントリーを読み出すかを表す情報を入力する工程を含む。
11. The method of claim 7, wherein the step of inputting information representing a data flow between the graphical representation of the shared memory space and the graphical representation of the computational resource comprises: Inputting information indicating whether to read an entry from the graphical representation of the shared memory space.
【請求項12】 請求項7の方法は、更に、前記図形表示領域内のイメージ
が変更されると前記生成されたコンピュータコードを自動的に更新する工程を含
む。
12. The method of claim 7, further comprising automatically updating the generated computer code when an image in the graphic display area changes.
【請求項13】 コンピュータ上で実行可能な命令であって、共有メモリス
ペースにおけるオブジェクトフローを定義するコンピュータコードを生成するた
めの命令を含むコンピュータ可読媒体において、前記命令は、 計算資源を表すイメージ及び前記共有メモリスペースを表すイメージが配置さ
れるグラフィカルインターフェースを表示する工程と、 前記グラフィカルインターフェースを介して入力される情報であって、前記計
算資源と前記共有メモリスペースとの間のオブジェクトフローを表す情報を保存
する工程と、 前記共有メモリスペースと前記計算資源との間に表されたオブジェクトフロー
を実現するコンピュータコードを生成する工程とを実行する。
13. A computer-readable medium containing instructions executable on a computer for generating computer code defining an object flow in a shared memory space, the instructions comprising: an image representing a computing resource; Displaying a graphical interface on which an image representing the shared memory space is located; and information input through the graphical interface, the information representing an object flow between the computational resource and the shared memory space. And generating computer code that implements the object flow represented between the shared memory space and the computational resources.
【請求項14】 コンピュータシステムは、 計算資源を表すイメージと共有メモリスペースを表すイメージとが配置される
グラフィカルインターフェースを表示するためのディスプレイと、 インターフェース設計ツール(IDT)プログラムを含むメモリとを有し、前
記IDTプログラムは、 前記グラフィカルインターフェースを制御する手段と、 前記グラフィカルインターフェースに入力される情報であって、前記計算資源
のイメージと前記共有メモリスペースのイメージとの間のオブジェクトフローを
表す情報を保存する手段と、 前記計算資源と前記共有メモリスペースとの間に表されたオブジェクトフロー
を実現するコンピュータコードを生成する手段とを有し、前記コンピュータシス
テムは、更に、 メモリに含まれるIDTプログラムを実行するように構成されたプロセッサと
、 前記プロセッサに接続されており、ユーザが前記計算資源を表すイメージと、
前記共有メモリスペースを表すイメージと、前記計算資源と前記共有メモリスペ
ースのイメージ間のオブジェクトフローを説明する情報とを変更することを可能
にする入力装置とを有する。
14. A computer system having a display for displaying a graphical interface on which an image representing computational resources and an image representing shared memory space are located, and a memory containing an interface design tool (IDT) program. The IDT program includes: means for controlling the graphical interface; and information input to the graphical interface, the information representing an object flow between the image of the computational resource and the image of the shared memory space. Means for generating computer code that implements the object flow represented between the computational resources and the shared memory space, the computer system further comprising: an IDT program included in memory. A processor configured to execute RAM, an image coupled to the processor, wherein a user represents the computational resource;
An input device that allows an image representing the shared memory space and information describing an object flow between the computational resources and the image of the shared memory space to be changed.
【請求項15】 請求項14のコンピュータシステムにおいて、前記共有メモ
リは、Javaスペースである。
15. The computer system according to claim 14, wherein said shared memory is a Java space.
【請求項16】 請求項14のコンピュータシステムにおいて、前記グラフィ
カルインターフェースに入力される情報であって、前記計算資源のイメージと前
記共有メモリスペースのイメージとの間のオブジェクトフローを表す情報を保存
する前記手段は、前記計算資源のどの計算資源が前記共有メモリスペースからエ
ントリーを取り出すかを表す情報を保存する手段を含む。
16. The computer system of claim 14, wherein information input to the graphical interface is stored, the information representing an object flow between the image of the computational resource and the image of the shared memory space. The means includes means for storing information indicating which of the computing resources retrieves an entry from the shared memory space.
【請求項17】 請求項14のコンピュータシステムにおいて、前記グラフィ
カルインターフェースに入力される情報であって、前記計算資源のイメージと前
記共有メモリスペースのイメージとの間のオブジェクトフローを表す情報を保存
する手段は、前記計算資源のどの計算資源が前記共有メモリスペースにエントリ
ーを書き込みするかを表す情報を保存する手段を含む。
17. The computer system according to claim 14, wherein information input to the graphical interface is stored, the information representing an object flow between the image of the computational resource and the image of the shared memory space. Includes means for storing information indicating which computing resources of said computing resources write entries to said shared memory space.
【請求項18】 請求項14のコンピュータシステムにおいて、前記グラフィ
カルインターフェースに入力される情報であって、前記計算資源のイメージと前
記共有メモリスペースのイメージとの間のオブジェクトフローを表す情報を保存
する手段は、前記計算資源のどの計算資源が前記共有メモリスペースからエント
リーを読み取りするかを表す情報を保存する手段を含む。
18. The computer system according to claim 14, wherein information input to the graphical interface is stored, the information representing an object flow between the image of the computational resource and the image of the shared memory space. Includes means for storing information indicating which computing resources of said computing resources read entries from said shared memory space.
JP2000533823A 1998-02-26 1999-02-17 Interactive design tool for shared memory space Pending JP2002505479A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US4493698A 1998-03-20 1998-03-20
US09/044,936 1998-03-20
US60/076,048 1998-03-20
PCT/US1999/003397 WO1999044140A2 (en) 1998-02-26 1999-02-17 An interactive design tool for shared memory spaces

Publications (1)

Publication Number Publication Date
JP2002505479A true JP2002505479A (en) 2002-02-19

Family

ID=26722181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000533823A Pending JP2002505479A (en) 1998-02-26 1999-02-17 Interactive design tool for shared memory space

Country Status (6)

Country Link
EP (1) EP1057114A2 (en)
JP (1) JP2002505479A (en)
KR (1) KR20010040980A (en)
CN (1) CN1292113A (en)
AU (1) AU2770399A (en)
WO (1) WO1999044140A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016028343A (en) * 2008-06-18 2016-02-25 クゥアルコム・インコーポレイテッドQualcomm Incorporated Persistent personal messaging in distributed system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE523112C2 (en) * 2001-07-05 2004-03-30 Anoto Ab Procedures for communication between a user device that has the ability to read information from a surface, and servers that execute services that support the user device
US7484110B2 (en) 2006-03-16 2009-01-27 Microsoft Corporation Adaptive power management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992009948A1 (en) * 1990-11-30 1992-06-11 Vpl Research, Inc. Improved method and apparatus for creating virtual worlds
US5386568A (en) * 1992-12-01 1995-01-31 Yamaha Corporation Apparatus and method for linking software modules
US5455952A (en) * 1993-11-03 1995-10-03 Cardinal Vision, Inc. Method of computing based on networks of dependent objects

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016028343A (en) * 2008-06-18 2016-02-25 クゥアルコム・インコーポレイテッドQualcomm Incorporated Persistent personal messaging in distributed system

Also Published As

Publication number Publication date
AU2770399A (en) 1999-09-15
WO1999044140A3 (en) 1999-11-25
WO1999044140A2 (en) 1999-09-02
KR20010040980A (en) 2001-05-15
EP1057114A2 (en) 2000-12-06
CN1292113A (en) 2001-04-18

Similar Documents

Publication Publication Date Title
US5890158A (en) Method, apparatus, and program storage device for sharing objects with a network server and a database server using a common object model
US5689701A (en) System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US8635540B2 (en) Method and apparatus for managing internet transactions
US7644099B2 (en) Dynamic generation and automated distribution of user interface from database model
US5544320A (en) Remote information service access system based on a client-server-service model
Anderson et al. Chimera: hypermedia for heterogeneous software development enviroments
US6532471B1 (en) Interface repository browser and editor
JPH09505164A (en) Compound Document Framework
US20030163598A1 (en) Method and system for distributing data events over an information bus
US20100005074A1 (en) System and method for accessing data
JPH09265408A (en) Distributed asynchronous work flow on network
JP2005174283A (en) Programming interface for computer platform
US20180337427A1 (en) Extensible provider connection systems, methods and architecture
JPH11327919A (en) Method and device for object-oriented interruption system
JPH08241231A (en) Method for solution of database dependency
JPH10105410A (en) Internet enabling portfolio manager system and its method
JPH1091447A (en) Catalogue device for promoting reusage of distributed object in distribution object system
KR20140038989A (en) Automated user interface object transformation and code generation
WO2002033545A2 (en) Pluggable instantiable distributed objects
JPH08511118A (en) Container object system
RU2358312C2 (en) System and method of presenting interrelated components to users
WO2007001640A2 (en) Data centric workflows
US20080104080A1 (en) Method and apparatus to access heterogeneous configuration management database repositories
WO1999044127A1 (en) Dynamic lookup service in a distributed system
JP2001525573A (en) Architecture for application framework