JPH08263293A - アプリケーションの開発・実行方法 - Google Patents
アプリケーションの開発・実行方法Info
- Publication number
- JPH08263293A JPH08263293A JP6537195A JP6537195A JPH08263293A JP H08263293 A JPH08263293 A JP H08263293A JP 6537195 A JP6537195 A JP 6537195A JP 6537195 A JP6537195 A JP 6537195A JP H08263293 A JPH08263293 A JP H08263293A
- Authority
- JP
- Japan
- Prior art keywords
- program
- objects
- data
- processor
- source file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】 アプリケーションの開発・保守を容易にし、
また実行速度を向上する。 【構成】 1つのプログラムのまとまりをデータとその
処理プログラムの組になるオブジェクトという単位で作
成し、各オブジェクト間にはクラス階層の継承機構を設
け、各オブジェクトを編集してソースファイルを作成し
(S1)、オブジェクト指向プログラミング言語のプリ
プロセッサを使ったソースファイルの前処理(S2)と
目的プログラムへのコンパイル(S3)を行い、コンパ
イルした各オブジェクトを分散してマルチプロセッサの
各プロセッサにオブジェクト指向データベースとしてロ
ードし(S4)、各プロセッサはロードされた各オブジ
ェクトを並列的に実行し、この実行におけるオブジェク
ト間のデータのやり取りをメッセージパッシングで行う
(S5)。
また実行速度を向上する。 【構成】 1つのプログラムのまとまりをデータとその
処理プログラムの組になるオブジェクトという単位で作
成し、各オブジェクト間にはクラス階層の継承機構を設
け、各オブジェクトを編集してソースファイルを作成し
(S1)、オブジェクト指向プログラミング言語のプリ
プロセッサを使ったソースファイルの前処理(S2)と
目的プログラムへのコンパイル(S3)を行い、コンパ
イルした各オブジェクトを分散してマルチプロセッサの
各プロセッサにオブジェクト指向データベースとしてロ
ードし(S4)、各プロセッサはロードされた各オブジ
ェクトを並列的に実行し、この実行におけるオブジェク
ト間のデータのやり取りをメッセージパッシングで行う
(S5)。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
におけるアプリケーションの開発・実行方法に関する。
におけるアプリケーションの開発・実行方法に関する。
【0002】
【従来の技術】現在のプログラミング言語では、あるア
プリケーションを作成する場合、1台のコンピュータで
1つのプロセスを実行することを前提としている。
プリケーションを作成する場合、1台のコンピュータで
1つのプロセスを実行することを前提としている。
【0003】また、ソースファイルは、分割して作成
し、そのコンパイルを可能とするが、最終的なプログラ
ムは各プログラムを結合(リンク)して1つの実行形式
のファイルが作成される。
し、そのコンパイルを可能とするが、最終的なプログラ
ムは各プログラムを結合(リンク)して1つの実行形式
のファイルが作成される。
【0004】
【発明が解決しようとする課題】1つのアプリケーショ
ンは、1台のコンピュータ上の1つのプロセスで動作す
る。しかし、複雑な問題を取り扱うアプリケーションで
は、1台のコンピュータの1つのプロセスの資源(CP
Uの能力、メモリの大きさ等)では実行が困難になる。
ンは、1台のコンピュータ上の1つのプロセスで動作す
る。しかし、複雑な問題を取り扱うアプリケーションで
は、1台のコンピュータの1つのプロセスの資源(CP
Uの能力、メモリの大きさ等)では実行が困難になる。
【0005】また、そのアプリケーションも他のアプリ
ケーションとのデータのやり取りを行う場合には、アプ
リケーション毎にデータのやり取りのためのプロトコル
が複雑になる。
ケーションとのデータのやり取りを行う場合には、アプ
リケーション毎にデータのやり取りのためのプロトコル
が複雑になる。
【0006】また、ソースファイルは、最終的なプログ
ラムは各プログラムを結合して1つの実行形式のファイ
ルが作成されることから、複雑なアプリケーションの作
成には、一人又は複数のプログラマによるプログラミン
グを困難にしている。
ラムは各プログラムを結合して1つの実行形式のファイ
ルが作成されることから、複雑なアプリケーションの作
成には、一人又は複数のプログラマによるプログラミン
グを困難にしている。
【0007】また、データとプログラムは完全に区別し
て記述されるため、保守性が悪くなる。
て記述されるため、保守性が悪くなる。
【0008】さらに、1つのプログラムにされるため、
並列性のある問題でもシーケンシャルにしか実行できな
いため、実行速度を上げるのを困難にしている。
並列性のある問題でもシーケンシャルにしか実行できな
いため、実行速度を上げるのを困難にしている。
【0009】実行速度を上げる手段として、分散処理方
式があるが、1つのプログラムを複数のCPUやプロセ
スに分けるプログラミング言語やオペレーティングシス
テムはない。また、プロセス間で同期を取るために実行
されていないプロセスが存在し、実行速度の向上を制約
する場合がある。
式があるが、1つのプログラムを複数のCPUやプロセ
スに分けるプログラミング言語やオペレーティングシス
テムはない。また、プロセス間で同期を取るために実行
されていないプロセスが存在し、実行速度の向上を制約
する場合がある。
【0010】本発明の目的は、アプリケーションの開発
・保守を容易にし、また実行速度の向上を図った方法を
提供することにある。
・保守を容易にし、また実行速度の向上を図った方法を
提供することにある。
【0011】
【課題を解決するための手段】本発明は、前記課題の解
決を図るため、1つのプログラムのまとまりをデータと
その処理プログラムの組になるオブジェクトという単位
で作成し、各オブジェクト間にはクラス階層の継承機構
を設け、各オブジェクトを編集してソースファイルを作
成し、オブジェクト指向プログラミング言語のプリプロ
セッサを使って前記ソースファイルを該言語のプログラ
ムに変換し、前記変換したプログラムを目的プログラム
にコンパイルし、前記コンパイルした各オブジェクトを
分散してマルチプロセッサの各プロセッサにオブジェク
ト指向データベースとしてロードし、前記各プロセッサ
はロードされた各オブジェクトを並列的に実行し、この
実行におけるオブジェクト間のデータのやり取りをメッ
セージパッシングで行うことを特徴とする。
決を図るため、1つのプログラムのまとまりをデータと
その処理プログラムの組になるオブジェクトという単位
で作成し、各オブジェクト間にはクラス階層の継承機構
を設け、各オブジェクトを編集してソースファイルを作
成し、オブジェクト指向プログラミング言語のプリプロ
セッサを使って前記ソースファイルを該言語のプログラ
ムに変換し、前記変換したプログラムを目的プログラム
にコンパイルし、前記コンパイルした各オブジェクトを
分散してマルチプロセッサの各プロセッサにオブジェク
ト指向データベースとしてロードし、前記各プロセッサ
はロードされた各オブジェクトを並列的に実行し、この
実行におけるオブジェクト間のデータのやり取りをメッ
セージパッシングで行うことを特徴とする。
【0012】
【作用】アプリケーションは、オブジェクト単位で作成
してオブジェクト指向データベースとして複数のプロセ
ッサに分散し、各プロセッサはオブジェクトの並列実行
を行い、オブジェクト間のデータのやり取りをメッセー
ジパッシングで行う。
してオブジェクト指向データベースとして複数のプロセ
ッサに分散し、各プロセッサはオブジェクトの並列実行
を行い、オブジェクト間のデータのやり取りをメッセー
ジパッシングで行う。
【0013】
【実施例】図1は、本発明の一実施例を示すアプリケー
ション開発・実行手順図である。ソースファイルの作成
(S1)は、オブジェクト指向プログラミング言語にな
るC++言語を使ってソースファイルを作成する。
ション開発・実行手順図である。ソースファイルの作成
(S1)は、オブジェクト指向プログラミング言語にな
るC++言語を使ってソースファイルを作成する。
【0014】このソースファイルは、1つのプログラム
のまとまりをデータとその処理手段(プログラム)の組
になるオブジェクトという単位で作成し、各オブジェク
ト間にはクラス階層の継承機構が形成される。したがっ
て、ソースファイルの作成は、複数のプログラマによる
分担作業を可能にする。また、クラス階層が形成される
ため、1つのオブジェクトには必要な情報だけが入り、
全体のオブジェクトサイズを小さくする。
のまとまりをデータとその処理手段(プログラム)の組
になるオブジェクトという単位で作成し、各オブジェク
ト間にはクラス階層の継承機構が形成される。したがっ
て、ソースファイルの作成は、複数のプログラマによる
分担作業を可能にする。また、クラス階層が形成される
ため、1つのオブジェクトには必要な情報だけが入り、
全体のオブジェクトサイズを小さくする。
【0015】プリプロセッサによる前処理(S2)は、
オブジェクト指向プログラミング言語になるC++のプ
リプロセッサを使ってソースファイルをC言語のプログ
ラムに変換する。
オブジェクト指向プログラミング言語になるC++のプ
リプロセッサを使ってソースファイルをC言語のプログ
ラムに変換する。
【0016】コンパイル(S3)は、C言語のプログラ
ムをコンピュータが実行可能な形の目的プログラムに翻
訳する。
ムをコンピュータが実行可能な形の目的プログラムに翻
訳する。
【0017】コンピュータへのロード(S4)は、オブ
ジェクトローダを使って、各オブジェクトをマルチプロ
セッサの各プロセッサにオブジェクト指向データベース
OODBとして分散配置する。
ジェクトローダを使って、各オブジェクトをマルチプロ
セッサの各プロセッサにオブジェクト指向データベース
OODBとして分散配置する。
【0018】この配置は、C++におけるオブジェクト
指向プログラミング機能を利用・拡張して1つのオブジ
ェクトを1つのプロセスとし、オブジェクト単位で各プ
ロセッサに分散配置し、プログラムの独立性を高める。
指向プログラミング機能を利用・拡張して1つのオブジ
ェクトを1つのプロセスとし、オブジェクト単位で各プ
ロセッサに分散配置し、プログラムの独立性を高める。
【0019】図2は、コンピュータシステムへのオブジ
ェクトの分散配置例を示す。コンピュータA,B,Cが
ネットワーク結合され、2台のコンピュータA,Cがマ
ルチプロセッサ構成となるコンピュータシステムにおい
て、各プロセッサCPUに各オブジェクトOBJをロー
ドする。このロードは、コンピュータのメモリにオブジ
ェクト指向データベースとして格納する。また、ネット
ワーク上に同機種のコンピュータが存在するときはオブ
ジェクトOBJの実体をネットワークを通してコピーす
る。
ェクトの分散配置例を示す。コンピュータA,B,Cが
ネットワーク結合され、2台のコンピュータA,Cがマ
ルチプロセッサ構成となるコンピュータシステムにおい
て、各プロセッサCPUに各オブジェクトOBJをロー
ドする。このロードは、コンピュータのメモリにオブジ
ェクト指向データベースとして格納する。また、ネット
ワーク上に同機種のコンピュータが存在するときはオブ
ジェクトOBJの実体をネットワークを通してコピーす
る。
【0020】次に、アプリケーションの実行(S5)
は、各プロセスに分散された実体オブジェクトとして実
行する。
は、各プロセスに分散された実体オブジェクトとして実
行する。
【0021】この実行において、オブジェクト間のデー
タのやり取りは、図3に示すように、メッセージを送る
形で行われ、データは各オブジェクトが保持する。この
メッセージパッシングの機能をプロセス間(オブジェク
ト間)で自然に行うための一定のプロトコルが各プロセ
ッサに搭載される。
タのやり取りは、図3に示すように、メッセージを送る
形で行われ、データは各オブジェクトが保持する。この
メッセージパッシングの機能をプロセス間(オブジェク
ト間)で自然に行うための一定のプロトコルが各プロセ
ッサに搭載される。
【0022】このメッセージパッシングでは、メッセー
ジの受取が成功か失敗かの情報をメッセージ転送先のプ
ロセッサへ通知する機構とする。この機構により、オブ
ジェクト間での無駄な待ち時間を無くす。
ジの受取が成功か失敗かの情報をメッセージ転送先のプ
ロセッサへ通知する機構とする。この機構により、オブ
ジェクト間での無駄な待ち時間を無くす。
【0023】また、各オブジェクトは1つのプロセスで
あるため、通常はプロセスが終了すると共にデータが失
われるが、ここではプロセスが終了しても他のオブジェ
クトのプロセスがデータを受け継ぐため、永続的なデー
タとして保持する。
あるため、通常はプロセスが終了すると共にデータが失
われるが、ここではプロセスが終了しても他のオブジェ
クトのプロセスがデータを受け継ぐため、永続的なデー
タとして保持する。
【0024】各プロセスに分散されたオブジェクトの実
行は、各々独立して並列的に実行される。この様子は図
4に示し、オブジェクトプロセスA,B,Cが並列実行
し、時刻t1とt2ではプロセスB,CがWait(待機
状態)に入り、プロセスAが時刻t3,t4でプロセス
B,Cにそれぞれ活性化メッセージを与えることでこれ
らプロセスB,CがACTIVE(活性化状態)にな
る。
行は、各々独立して並列的に実行される。この様子は図
4に示し、オブジェクトプロセスA,B,Cが並列実行
し、時刻t1とt2ではプロセスB,CがWait(待機
状態)に入り、プロセスAが時刻t3,t4でプロセス
B,Cにそれぞれ活性化メッセージを与えることでこれ
らプロセスB,CがACTIVE(活性化状態)にな
る。
【0025】なお、実施例では、オブジェクト指向プロ
グラム言語として、C++を利用する場合を示したが、
SmalltalkやCLOS(CommonLisp
ObjectSystem)、Eiffelなど他の言
語を利用できる。
グラム言語として、C++を利用する場合を示したが、
SmalltalkやCLOS(CommonLisp
ObjectSystem)、Eiffelなど他の言
語を利用できる。
【0026】
【発明の効果】以上のとおり、本発明は、 (1)1つのプログラムのまとまりをオブジェクトとい
う単位でまとめるため、ソースファイルの作成は、多数
のプログラマによる分担作業を可能にし、アプリケーシ
ョンの開発速度を高めることができる。
う単位でまとめるため、ソースファイルの作成は、多数
のプログラマによる分担作業を可能にし、アプリケーシ
ョンの開発速度を高めることができる。
【0027】また、クラス階層が形成されて独立性が高
いため、1つのオブジェクトには必要な情報だけが入
り、全体のオブジェクトサイズを小さくしてプログラミ
ングを容易にする効果がある。
いため、1つのオブジェクトには必要な情報だけが入
り、全体のオブジェクトサイズを小さくしてプログラミ
ングを容易にする効果がある。
【0028】また、クラス階層の継承機構により、上位
クラスに定義したデータやメソッドは、上位の特定のク
ラスオブジェクトのみに存在すること、すなわち1つの
プロセスには1つの実体しか存在しないため、その修正
が簡単になるし、他に影響を与えることなく、プログラ
ムの保守性を高めることができる。
クラスに定義したデータやメソッドは、上位の特定のク
ラスオブジェクトのみに存在すること、すなわち1つの
プロセスには1つの実体しか存在しないため、その修正
が簡単になるし、他に影響を与えることなく、プログラ
ムの保守性を高めることができる。
【0029】(2)各オブジェクトを1つのプロセスと
して各プロセッサにオブジェクトデータベースとして分
散配置し、各プロセッサで並列実行させるため、並列性
のあるアプリケーションでは高速処理ができる。
して各プロセッサにオブジェクトデータベースとして分
散配置し、各プロセッサで並列実行させるため、並列性
のあるアプリケーションでは高速処理ができる。
【0030】また、アプリケーションの実行中にあるオ
ブジェクトにバグや修正が必要なときにも全体を停止さ
せることなく、当該オブジェクトを修正及びコンパイル
により実行を継続できる。
ブジェクトにバグや修正が必要なときにも全体を停止さ
せることなく、当該オブジェクトを修正及びコンパイル
により実行を継続できる。
【0031】また、各プロセスはデータを永続的にデー
タベースに蓄えておくことでプロセスが消滅してもデー
タが失われることがない。
タベースに蓄えておくことでプロセスが消滅してもデー
タが失われることがない。
【0032】(3)オブジェクト間のデータのやり取り
はメッセージパッシングで行うため、メッセージの受取
の成功・失敗の状態のみを受け取ることから、全体とし
ての待ち時間を少なく、実行速度を高めることができ
る。
はメッセージパッシングで行うため、メッセージの受取
の成功・失敗の状態のみを受け取ることから、全体とし
ての待ち時間を少なく、実行速度を高めることができ
る。
【0033】また、メッセージのやり取りに統一したプ
ロトコルにして、特別なデータ型を個別に用意する必要
がない。
ロトコルにして、特別なデータ型を個別に用意する必要
がない。
【図1】本発明の一実施例を示すアプリケーションの開
発・実行手順図。
発・実行手順図。
【図2】実施例におけるオブジェクトの配置例。
【図3】実施例におけるオブジェクトのメッセージ通信
とデータ格納の説明図。
とデータ格納の説明図。
【図4】実施例におけるオブジェクトプロセスの並列実
行のタイムチャート。
行のタイムチャート。
A、B、C…コンピュータ CPU…プロセッサ OBJ…オブジェクト OODB…オブジェクト指向データベース
Claims (1)
- 【請求項1】 1つのプログラムのまとまりをデータと
その処理プログラムの組になるオブジェクトという単位
で作成し、各オブジェクト間にはクラス階層の継承機構
を設け、各オブジェクトを編集してソースファイルを作
成し、 オブジェクト指向プログラミング言語のプリプロセッサ
を使って前記ソースファイルを該言語のプログラムに変
換し、 前記変換したプログラムを目的プログラムにコンパイル
し、 前記コンパイルした各オブジェクトを分散してマルチプ
ロセッサの各プロセッサにオブジェクト指向データベー
スとしてロードし、 前記各プロセッサはロードされた各オブジェクトを並列
的に実行し、この実行におけるオブジェクト間のデータ
のやり取りをメッセージパッシングで行うことを特徴と
するアプリケーションの開発・実行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6537195A JPH08263293A (ja) | 1995-03-24 | 1995-03-24 | アプリケーションの開発・実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6537195A JPH08263293A (ja) | 1995-03-24 | 1995-03-24 | アプリケーションの開発・実行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08263293A true JPH08263293A (ja) | 1996-10-11 |
Family
ID=13285049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6537195A Pending JPH08263293A (ja) | 1995-03-24 | 1995-03-24 | アプリケーションの開発・実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08263293A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100694381B1 (ko) * | 2004-02-26 | 2007-03-12 | 미츠비시덴키 가부시키가이샤 | 그래피컬 프로그래밍 장치 및 프로그래머블 표시기 |
-
1995
- 1995-03-24 JP JP6537195A patent/JPH08263293A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100694381B1 (ko) * | 2004-02-26 | 2007-03-12 | 미츠비시덴키 가부시키가이샤 | 그래피컬 프로그래밍 장치 및 프로그래머블 표시기 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Charousset et al. | Revisiting actor programming in C++ | |
CA2061117C (en) | Apparatus and method for distributed program stack | |
US8473906B2 (en) | Systems and methods for parallel distributed programming | |
US7984448B2 (en) | Mechanism to support generic collective communication across a variety of programming models | |
US20040172626A1 (en) | Method for executing a sequential program in parallel with automatic fault tolerance | |
JP3771589B2 (ja) | コンピュータ・システム又はそれのプログラムの停止を必要としないオブジェクト指向メソッドを含むコンピュータ・システム、記録媒体、およびコンピュータ・プログラムの動作方法 | |
JPH0223894B2 (ja) | ||
JPH08502612A (ja) | データ処理システムおよびオペレーティング・システム | |
Maassen et al. | Efficient replicated method invocation in Java | |
Lucco | Parallel programming in a virtual object space | |
CN114756357B (zh) | 一种基于jvm的非阻塞分布式计划任务调度方法 | |
Grimshaw | Mentat: An object-oriented macro data flow system | |
Bic | A process-oriented model for efficient execution of dataflow programs | |
EP0614139A2 (en) | External procedure call for distributed processing environment | |
US8490115B2 (en) | Ambient state for asynchronous methods | |
CN110569105A (zh) | 分布式虚拟机自适应内存一致性协议及其设计方法、终端 | |
JPH08263293A (ja) | アプリケーションの開発・実行方法 | |
Ma et al. | Delta execution: A preemptive Java thread migration mechanism | |
Hernandez et al. | ALBA: a parallel language based on actors | |
Kamil et al. | Optimization of asynchronous communication operations through eager notifications | |
Simonsson | Implementation of a Distributed Shared Memory using MPI | |
Zorzo et al. | Using Co-ordinated Atomic Actions to Design Dependable Distributed Object Systems | |
Newton et al. | Intel concurrent collections for haskell | |
Ruhl et al. | Optimizing atomic functions using compile-time information | |
JPS61182161A (ja) | マルチプロセツサ処理方式 |