JPH04111022A - インタフェースプログラム自動生成装置 - Google Patents

インタフェースプログラム自動生成装置

Info

Publication number
JPH04111022A
JPH04111022A JP2230352A JP23035290A JPH04111022A JP H04111022 A JPH04111022 A JP H04111022A JP 2230352 A JP2230352 A JP 2230352A JP 23035290 A JP23035290 A JP 23035290A JP H04111022 A JPH04111022 A JP H04111022A
Authority
JP
Japan
Prior art keywords
program
data
interface
interface program
server
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
JP2230352A
Other languages
English (en)
Inventor
Toru Sekine
関根 徹
Noriyuki Enomoto
榎本 典行
Ryota Suehiro
末広 亮太
Nobuaki Tanaka
伸明 田中
Kunio Honda
本田 邦夫
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2230352A priority Critical patent/JPH04111022A/ja
Publication of JPH04111022A publication Critical patent/JPH04111022A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、同機種及び異機種の計算機がネットワーク上
に接続されたシステムで、計算機間で相互にデータを交
換する手段をインタフェースプログラムソースコードと
して自動生成するインタフェースプログラム自動生成装
置に関するものであるO 従来の技術 従来より、ネットワークに接続された計算機間でデータ
交換を行なう手段に、処理を要求する側(フライアン日
である処理要求計算機(クライアントマシン)上のアプ
リケーションプログラムが、必要な処理要求とその情報
を処理を遂行する側(サーバ)である処理遂行計算機(
サーバマシン)上のアプリケーションプログラムに依頼
するクライアント/サーバモデルが存在する。また、ア
プリケーションプログラムの独立性と可搬性を高めるた
め、第7図に示すようにネットワーク通信及びデータ交
換を制御する部分をアプリケーションプログラムから分
離し、これをインタフェースプログラムとして別に存在
させる方式が考案された。この方式は、クライアントマ
シン上のアプリケーションプログラムが、サーバマシン
上のアプリケーションプログラムに依頼する処理とその
データをクライアントマシンのインタフェースプログラ
ムに渡すことで、クライアントマシンのアプリケーショ
ンプログラムが処理結果を待つ間に、クライアントマシ
ンのインタフェースグログラムカ、サーバマシンのイン
ターフェースプログラムにネットワークを介してデータ
を渡し、サーバマシンのインタフェースプログラムはサ
ーバマシンのアプリケーションプログラムにそのデータ
を渡し処理結果を貰った上でクライアントマシンのイン
タフェースプログラムに戻すものである。この方式はア
プリケーションプログラム作成者にネットワークを意識
しないプログラミング手法を提供すると共に作成したア
プリケーションプログラムの再利用に有効な手段である
さらに近年、このインタフェースプログラムをユーザが
アプリケーションプログラム単位にわざわざ記述するの
ではなく、システムが自動的に生成する方式も考案され
た。
この技術の代表的なものとしては、ホーウス:Horu
s  (システムの名称であり、論文名:AStub 
Generator of Multilanguag
e RPCinHeterogeneous Envi
roment、作者: Ph1llip B、 Gib
bons、出典: IEEE Transaction
s on Software Engineering
、 Vol 、 5E13、No、1、発行年月日:西
暦1987年1月)、エヌ・シー・ニス:NC8(シス
テムの名称テアリ、マニュアル名: Network 
Computing S)’stems (NC8) 
Reference 10200−AOO1作者: A
pollo Computer Inc、、発行年月日
:西暦1987年6月)、エム・エル・ビー:MLP(
システムの名称であり、論文名: Facilitat
ing Mixed Language Progra
mming in Distributed Syst
ems、作者: Roger Hayes 。
Richard  D、 Schlichting、出
典:IEEETransactions on Sof
tware Engineering。
Vol、5E−13,No、12、発行年月日:西暦1
987年12月)が知られている。
しかし、上記が生成したインタフェースグログラムの対
象となる計算機には同機種が多く、生成したインタフェ
ースプログラムは生成を行った計算機と指定された計算
機間で使用される目的のものであった。また、生成した
インタフェースプログラムソースコードの対象となるア
プリケーションプログラム言語及びその処理系の違いに
より発生する言語仕様の差異を吸収したものは存在しな
かった。この吸収は、言語仕様上、例えば名称等の識別
子に大文字と小文字の区別があり、クライアントアプリ
ケーションプログラムとサーバアプリケーションプログ
ラム間で異なる場合に、それぞれのアプリケーションプ
ログラムに適合したインタフェースプログラムソースコ
ードを生成する、こと等である。
発明が解決しようとする課題 上述したように、同機種または異機種の計算機上のアプ
リケーションプログラム間で、データ交換及び通信を制
御するインタフェースプログラムが、それを生成した計
算機でしかコンパイル及び実行できないということは、
インタフェースプログラムの再利用及び可搬性を著しく
妨げるという問題点があった。また、異機種計算機上の
アプリケーションプログラム間では異なるプログラミン
グ言語が使用されたり、同一言語であっても処理系の違
いによりプログラム言語仕様に若干の相違が生じる場合
が多い。従って、生成されるインタフェースプログラム
ソースコードがこの記述仕様の差異を自動的に吸収でき
ないと、ユーザが生成されたソースコードに手を加える
という面倒な手間が生じる課題があった。
本発明は上記のような課題に鑑み、異種計算機間で分散
処理を行うアプリケーションプログラムの作成に当って
、データ交換及び通信を実行するインタフェースプログ
ラムのソースコードを、クライアントマシンとサーバマ
シン間の内部データ表現及びアプリケーションプログラ
ムの言語仕様の差異を吸収して自動的に生成し、生成さ
れたソースコードをユーザが何の関与もすることなく、
ネットワーク上の任意の計算機上でコンパイル及び実行
が行えることを目的とするものである。
課題を解決するための手段 上記目的を達成するため、本発明の技術的解決手段は、
ネットワーク上に接続された全ての計算機の内部データ
表現及びアプリケーションプログラムの言語仕様の情報
を保持したデータベースより、データ交換を行なうクラ
イアントマシンとサーバマシンの情報を求め、データの
送信側ではその計算機固有の内部データ表現を一般化デ
ータ表現に変換し、受信側ではその一般化データを計算
機固有の内部データ表現に変換を行う、と共に相互の通
信を実行する、インタフェースプログラムンースコード
ヲ、クライアントマシンとサーバマシンのアプリケーシ
ョンのプログラム言語仕様に適合した形式で自動生成す
る。
作用 本発明は、ネットワークに接続された計算機上に存在す
る、異なるプログラムルーチン及び処理系を持つアプリ
ケーションプログラム間で、データ交換を実行するイン
タフェースプログラムを、ネットワークの任意の計算機
上で生成する。
実施例 第1図は、本発明の構成要素とそれに対する入出力要素
を示した全体図であわ、これに従い各要素の説明をする
。1が本発明であるインタフェースプログラム自動生成
装置を具備したものであり、インタフェースフログラム
ジェネレータと呼び、2のインタフェースプログラム生
成部と、3のインタフェース定義解析部と、4の言語仕
様管理部と、5の一般化/特殊化管理部と、6の通信プ
ロトコル管理部とから成る。2のインタフェースプログ
ラム生成部は、入力要素を扱う3,4,5゜6の各解析
/管理部の制御及び、出力要素である11、12の交換
データデータ型定義及び13.14のインタフェースプ
ログラムを生成する。3のインタフェース定義解析部は
、2のインタフェースプログラム生成部からの命令によ
シ、7のインタフェース定義を読み込み、その字句解析
及び構文解析を行う。4の言語仕様管理部は、2のイン
タフェースプログラム生成部からの命令によυ、8の言
語仕様を読み込みクライアントアプリケーションプログ
ラムとサーバアプリケーションプログラムとの言語仕様
の違いを照合する。5の一般化/特殊化管理部は、計算
機の内部データ表現の差異を吸収するため、クライアン
トマシン及びサーバマシンに適合したルーチンを9の一
膜化/%殊化ルーチンより選択する。6の通信プロトコ
ル管理部は、クライアントマシンとサーバマシン間でネ
ットワークを介した通信を実行及び制御する通信プロト
コルルーチン全100通信フロトコルルーチンより選択
する。7のインタフェース定義は、言語種別や計算機種
別や通信プロトコル種別等のクライアントとサーバに関
する環境情報と、クライアントアプリケーションプログ
ラムとサーバアプリケーションプログラム間で交換する
データのデータ型と双方のインタフェースプログラムの
呼び出し形式を、ユーザが予め定められたインタフェー
ス定義言語仕様により記述する。この定義言語仕様は、
既存のC言語やPa5cal言語やFortran言語
等のいずれのプログラム言語仕様にもとられれず、その
反面既存の各プログラム言語との共通性を具備した新し
い言語である。ユーザはこのインタフェース定義言語仕
様に基づきアプリケーションプログラムとインタフェー
スプログラムとのインタフェースを記述する。8の言語
仕様は、ネットワークに接続された全ての計算機が使用
するプログラム言語の言語仕様を、C言語やPa5ca
l言語やFortran言語等の言語種別単位で格納し
たデータベースである。この言語仕様の内容は、例えば
名称などの識別子が大文字のみ有効なプログラム言語で
ある、識別子の許される長さが8文字以内のプログラム
言語である、プログラム間で交換できるデータは実体の
みでアドレスによる交換はできないプログラム言語であ
る、等の情報で構成される。9の一般化/特殊化管理部
ンは、A社製計算機やB社製計算機やC社製計算機等の
計算機種別単位に構成され、ネットワークに接続された
全ての計算機の内部データ表現をネットワークで唯一の
ユニークなデータ表現に一般化するプログラムルーチン
と、この−膜化データ表現をそれぞれの計算機の内部デ
ータ表現に特殊化するプログラムルーチン群をライブラ
リ形式で格納したデータベースである。10の通信プロ
トコルルーチンは、クライアントマシンとサーバマシン
間でネットワークを介した通信を実行するため手段であ
る通信プロトコルを実装したプログラムルーチン群を、
TCP/IP (米国国防総省の通信プロトコル)やU
DP/IP (米国国防総省の通信プロトコル)やO8
I  (国際標準化機構の通信プロトコル)等の通信プ
ロトコル単位にライブラリ形式で格納したデータベース
である。11のクライアント交換データデータ型定義は
、クライアントアプリケーションプログラムとクライア
ントインタフェースプログラムが交換するデータのデー
タ型を、クライアントアプリケーションプログラムと同
じプログラム言語仕様で生成したプログラムソースコー
ドである。12のサーバ交換データデータ型定義は、サ
ーバアプリケーションプログラムとサーバインタフェー
スプログラムが交換するデータのデータ型を、サーバア
プリケーションプログラムと同じプログラム言語仕様で
生成したプログラムソースコードである。13のクライ
アントインタフェースプログラムは、第2図の15に示
される各処理部から構成されるプログラムのソースコー
ドをクライアントアプリケーションプログラムと同じプ
ログラム言語仕様で生成したものである。14のサーバ
インタフェースプログラムは、第2図の16に示される
各処理部から構成されるプログラムのソース:ff−ド
を?−バアプリケーションプログラムと同じプログラム
言語仕様で生成したものである。
ユーザは自らが記述したクライアントアプリケーション
プログラムと、自動生成されたクライアント交換データ
データ型定義とクライアントインタフェースプログラム
を、クライアントマシン上でコンパイルし、また自らが
記述したサーバアプリケーションプログラムと、自動生
成されたサーバ交換データデータ型定義とサーバインタ
フェースプログラムラ、サーバマシン上でコンパイルす
る、ことで異機種計算機間でデータ交換を行うプログラ
ムの実行が可能になる。
次に第2図に従い、生成されたクライアントインタフェ
ースプログラムと、サーバインタフェースプログラムの
ソースコードの内容を説明する。
15のクライアントインタフェースプログラムは、クラ
イアントアプリケーションプログラムからのデータ転送
要求に従い初期化処理やデータ格納処理を行う17のク
ライアントアプリケーションプログラムからの呼び出さ
れ処理部と、クライアントマシン固有の内部データで表
現された要求データをネットワークでユニークなデータ
表現に一般化する18の送信データの一般化変換処理部
と、一般化した要求データを選択された通信プロトコル
を使用してサーバインタフェースプログラムに送信する
19のデータ送信処理部と、サーバインタフェースプロ
グラムからの一般化された結果データを選択された通信
プロトコルを使用して受信する20のデータ受信処理部
と、受信した結果データをクライアントマシン固有の内
部データ表現に特殊化する21の受信データの特殊化変
換処理部と、クライアントアプリケーションプログラム
に結果データを戻す22のクライアントアプリケーショ
ンプログラムへの戻り処理部と、から構成される。一方
16のサーバインタフェースプログラムは、クライアン
トインタフェースプログラムからの一般化された要求デ
ータを選択された通信プロトコルを使用して受信する2
3のデータ受信処理部と、受信した要求データを、サー
バマシン固有の内部データ表現に特殊化する24の受信
データの特殊化変換処理部と、要求データに従いサーバ
アプリケーションプログラムを起動し処理結果を受は取
る25のサーバアプリケーションプログラムの呼び出し
処理部と、サーバマシン固有の内部データで表現された
結果データをネットワークでユニークなデータ表現に一
般化する26の送信データの一般化変換処理部と、一般
化した結果データを選択された通信プロトコルを使用し
てクライアントインタフェースプログラムに送信する2
7のデータ送信処理部と、から構成される。
次に第3図に従い、上記のようなりライアントマシン及
ヒサーバマシンに適合したインタフェースプログラムソ
ースコードを生成する手順を説明する。まず、インタフ
ェースプログラム生成部2からの命令でインタフェース
定義を読み込んだインタフェース定義解析部3は、イン
タフェース定義の文法に基づいて記述された語句の字句
解析及び構文解析を行った後で構文木を作成する(イ)
。そしてインタフェースプログラム生成部3は、構文木
よりクライアントアプリケーションプログラム及びサー
バアプリケーションプログラムに該当する言語仕様を言
語仕様管理部4を使い読み込む(口、ハ)。そして双方
の言語仕様間で矛盾する仕様が無いかを照合した上で、
解析木中の交換データ型記述を双方のアプリケーション
フログラム言語仕様に適合した形式で交換データデータ
型定義として生成するに)。次に、構文木よりクライア
ントマシン及びサーバマシンに該当する一般化/特殊化
管理部5を一般化/特殊化管理部5を使い読み込む(ホ
)。また、構文木よりクライアントマシン及びサーバマ
シン間の通信を行う通信プロトコルルーチンを通信プロ
トコル管理部6を使い読み込む(へ)。そして、言語仕
様を基に双方のアプリケジョンプログラム言語仕様に適
合した形式で、これらルーチンをライブラリ呼び出し形
式として、第2図に示す内容のインタフェースプログラ
ムとして生成する(ト、チ)。このインタフェース70
グラム生成手順のうち重点な点は、ネットワクシステム
上のいずれの計算機上でもコンパイル及び実行が可能と
なるプログラムソースコード生成するために、異機種性
を吸収する手順を有することである。この異機種性吸収
手順の例を第4図。
第5図、第6図に示す。
第4図は言語仕様管理部4の機能の一つであり、例えば
インタフェース定義で定義されたクライアントアプリケ
ーションプログラムのプログラム言語種別がC言語であ
る場合、言語仕様データベースより該当する言語仕様を
索引し、当該言語仕様としては名称等の識別子を大文字
のみ許可する場合、同様に索引したサーバアプリケーシ
ョンプログラム言語の言語仕様と比較して矛盾しないか
照合した上で、大文字のソースコードとして生成するよ
う指示する。他にも識別子長やデータ交換力−式等の言
語仕様の差異に関して照合及び生成指示を行う。
第5図は一般化/特殊化管理部50機能の一つであり、
例えばインタフェース定義で定義されたクライアントマ
シンの計算機種別がA社製のプロセッサである場合、−
膜化/特殊化ルーチンライブラリより該当するルーチン
を検索する。
第6図は通信プロトコル管理部6の機能の一つであり、
例えばインタフェース定義で定義されたクライアントマ
シンとサーバマシン間の通信プロトコル種別がTCP/
IPある場合、通信プロトコルルーチンライブラリより
該当するルーチンを検索する。
以上のようにして、ネットワーク上に存在する計算機が
、異なる内部データ表現または異なるプログラム言語を
有する場合でも、クライアントとサーバの環境情報と交
換データのデータ型を定義したインタフェース定義を入
力することで、ネットワークのいずれの計算機上でもコ
ンパイル及び実行が可能なインタフェースプログラムの
ソースコードを自動的に生成することが可能となる。
発明の効果 このように本発明は、ネットワーク上の任意の計算機間
で通信及びデータ交換を実現するインタフェースプログ
ラムを、ネットワーク上の任意の計算機上でコンパイル
及び実行可能なソースコード形式で自動生成することで
、ユーザがネットワークを意識することなく分散アプリ
ケーションプログラムを作成でき、さらに分散アプリケ
ーションプログラムの再利用及び可搬性を飛躍的に高め
ることができる。
【図面の簡単な説明】
第1図は本発明の一実施例におけるインタフニスプログ
ラム自動生成装置の構成要素と入出力要素を示した全体
ブロック結線図、第2図は同生成されたクライアントイ
ンタフェースプログラム及ヒサーバインタフェースプロ
グラムのソースコードの内容図、第3図は同インタフェ
ースプログラム生成における処理フロー図、第4図は同
言語仕様の差異を吸収する手順の一例を示した処理フロ
ー図、第5図は同内部データ表現の差異を吸収するため
の一般化/特殊化管理部ンを選択する手順を示した処理
フロー図、第6図は同クライアントマシンとサーバマシ
ン間で通信を行うプロトコルを選択する手順を示した処
理フロー図、第7図は従来のクライアント/サーバモデ
ルとインタフェースプログラムの位置付は及び機能を示
した概念図である。 トインタフェースプログラムジェネレータ、2 インタ
フェースプログラム生成部、3・・インタフェース定義
解析部、4・・言語仕様管理部、5・−一般化/特殊化
管理部、6・・通信プロトコル管理部、7・インタフェ
ース定義、8・・・言語仕様、9・−膜化/特殊化ルー
チン、10・・通信プロトコルルーチン、11・・・ク
ライアント交換データデータ型定義、12  サーバ交
換データデータ型定義、13・クライアントインタフェ
ースプログラム、14・サーバインタフェースプログラ
ム、15・・・クライアントインタフェースプログラム
ンースコード、16サーパインタフエースフログラムン
ースコード、17・クライアントアプリケーションフロ
グラムからの呼び出され処理部、18.26  送信デ
ータの膜化変換処理部、19.27・データ送信処理部
、20゜23・データ受信処理部、21.24・・受信
データの特殊化変換処理部、22−・クライアントアプ
リケーションプログラムへの戻り処理部、25・サーバ
アフリケーションプログラムの呼び出し処理部、28・
クライアントマシン、29・・サーバマシン、30・ネ
ットワーク。 代理人の氏名 弁理士 小鍜治  明 ほか2名第2図 1図 第 図 第 図

Claims (1)

    【特許請求の範囲】
  1. 同種または異なる内部データ表現及び同種または異なる
    プログラム言語を有するネットワークシステム上に存在
    する複数の計算機と、処理を要求する側である計算機上
    のアプリケーションプログラムと、処理を遂行する側で
    ある計算機上のアプリケーションプログラムとが相互に
    データ交換するための交換データの一般化及び特殊化を
    行う一般化/特殊化手段と、交換データの相互通信を行
    う通信手段とを有し、ネットワークシステム上のいずれ
    の計算機上でもコンパイル及び実行が可能なプログラム
    ソースコードの形式で生成することを特徴とするインタ
    フェースプログラム自動生成装置。
JP2230352A 1990-08-30 1990-08-30 インタフェースプログラム自動生成装置 Pending JPH04111022A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2230352A JPH04111022A (ja) 1990-08-30 1990-08-30 インタフェースプログラム自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2230352A JPH04111022A (ja) 1990-08-30 1990-08-30 インタフェースプログラム自動生成装置

Publications (1)

Publication Number Publication Date
JPH04111022A true JPH04111022A (ja) 1992-04-13

Family

ID=16906514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2230352A Pending JPH04111022A (ja) 1990-08-30 1990-08-30 インタフェースプログラム自動生成装置

Country Status (1)

Country Link
JP (1) JPH04111022A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242938A (ja) * 1993-02-22 1994-09-02 Nec Corp 通信処理プログラムの自動生成方式
JPH07175640A (ja) * 1993-12-17 1995-07-14 Hudson Soft Co Ltd 電子機器の機能向上システム
JP2011259467A (ja) * 2004-02-27 2011-12-22 International Business Maschines Corporation アクセスするクライアントのサーバー側プロトコル構成
JP2011258074A (ja) * 2010-06-10 2011-12-22 Fujitsu Ltd シミュレーション開発支援装置、シミュレーション開発支援方法およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242938A (ja) * 1993-02-22 1994-09-02 Nec Corp 通信処理プログラムの自動生成方式
JPH07175640A (ja) * 1993-12-17 1995-07-14 Hudson Soft Co Ltd 電子機器の機能向上システム
JP2011259467A (ja) * 2004-02-27 2011-12-22 International Business Maschines Corporation アクセスするクライアントのサーバー側プロトコル構成
JP2011258074A (ja) * 2010-06-10 2011-12-22 Fujitsu Ltd シミュレーション開発支援装置、シミュレーション開発支援方法およびプログラム

Similar Documents

Publication Publication Date Title
JP2514152B2 (ja) 情報処理システムを構築する方法
EP0657047B1 (en) Method and system for implementing remote procedure calls in a distributed computer system
US6353859B1 (en) Object-oriented apparatus and method for controlling accesses to objects in a distributed object environment
WO1999023785A2 (en) Method and system for facilitating distributed software development in a distribution unaware manner
JPH10124376A (ja) コンピュータシステムでキャラクタコード列からなる入力を変換して出力する方法
WO1998002809A1 (en) Method and apparatus for asynchronously calling and implementing objects
CN111930752A (zh) 一种数据处理方法及相关设备
Mascolo MobiS: A specification language for mobile systems
Pautet et al. Glade: A framework for building large object-oriented real-time distributed systems
KR20020021237A (ko) 임베디드 시스템의 통합 소프트웨어 개발 프레임워크를제공하는 실시간 미들웨어 장치 및 그 서비스 방법
Hill Channel access: A software bus for the LAACS
JPH04111022A (ja) インタフェースプログラム自動生成装置
Fortier et al. Dyninka: a FaaS framework for distributed dataflow applications
US8676842B2 (en) Creating multiple Mbeans from a factory Mbean
JP2809389B2 (ja) プログラムの遠隔呼出方法及び装置
Finkel et al. Experience with Charlotte: simplicity and function in a distributed operating system
Center MPI primer/developing with LAM
Iannello et al. Parallel software development in the DISC programming environment
Elsman et al. Experience report: Type-safe multi-tier programming with Standard ML modules
Pautet et al. Inside the distributed systems annex
KR100328816B1 (ko) 지능형정보제공시스템의출력메시지에대한자동문서생성및출력시스템
KR0123247B1 (ko) 디비엠에스(dbms)의 실시간 지원을 위한 데이타 조작어 처리 방법
CN117827154A (zh) 一种去中心化的数据开发装置及其方法
Zee Overview of the MPI standard and Implementations
JPH0830455A (ja) オブジェクト指向情報処理システム