JPH09179729A - 通信プログラム自動生成装置及びトランザクション通信装置並びにトランザクション通信方法 - Google Patents

通信プログラム自動生成装置及びトランザクション通信装置並びにトランザクション通信方法

Info

Publication number
JPH09179729A
JPH09179729A JP7335185A JP33518595A JPH09179729A JP H09179729 A JPH09179729 A JP H09179729A JP 7335185 A JP7335185 A JP 7335185A JP 33518595 A JP33518595 A JP 33518595A JP H09179729 A JPH09179729 A JP H09179729A
Authority
JP
Japan
Prior art keywords
communication
transaction
program
window
function
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.)
Abandoned
Application number
JP7335185A
Other languages
English (en)
Inventor
Mikito Sugano
幹人 菅野
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP7335185A priority Critical patent/JPH09179729A/ja
Publication of JPH09179729A publication Critical patent/JPH09179729A/ja
Abandoned legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 クライアントサーバ型のシステムアプリケー
ション構築において、通信部分の制御ロジックを簡単化
し、開発効率を向上させるとともに、保守やデバッグ作
業において作業が容易に行なえるような通信ロジック自
動生成装置を得る。 【解決手段】 トランザクションデータとしての上りメ
ッセージや下りメッセージの形式を定義するトランザク
ション形式ファイルと、ウィンドウ部品の定義や振る舞
いを定義するプログラムソースファイルからエラー制御
ロジックや通信プロトコル形式の認識やトランザクショ
ン形式の複雑さまでを認識しクライアント通信オブジェ
クトによって通信を行う通信関数をトランザクション形
式ファイルに定義されているリクエストコードごとに自
動生成し、それらの関数をウィンドウ部品がそれぞれ持
つイベントルーチンに割り付ける機構を備える構成とし
た。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、クライアント上
のアプリケーションとサーバ上のアプリケーションがト
ランザクションメッセージを通信して1つの機能を実現
するクライアントサーバ型の分散アプリケーション通信
制御方式の通信部分のプログラム作成部分を自動化する
ことに関するものである。
【0002】
【従来の技術】一般に、クライアントサーバ型アプリケ
ーションでは、クライアント側で行える処理はクライア
ント上のクライアントプログラムが行い、クライアント
側では行えない処理はサーバ上のサーバプログラムに依
頼をして行う形態が一般的である。クライアント側で処
理が行えない理由は、クライアント側の性能問題や、メ
ンテナンスやコストの面から大規模データがクライアン
ト側に構築できないことや、高速な一括帳票出力を必要
とするなど様々である。サーバのようにパワーのあるマ
シンがクライアント側の処理の一部でもっとも効果的な
部分を肩代わりするやり方がクライアントサーバ型のシ
ステム体系である。
【0003】この体系においては、クライアントマシン
とサーバマシンはある通信路をもって接続されており、
クライアントからサーバへのリクエスト(あるいはトラ
ンザクション)という形態で行われる。クライアントプ
ログラムはサーバが提供するサービスを使用したい時
に、クライアントからサーバへの要求という形で上りメ
ッセージを通信する。上りメッセージはサーバが提供す
るサービスを認識するためのリクエストコードと、サー
バがサービスを実行するために必要なデータが渡され
る。
【0004】サーバ上ではクライアントアプリケーショ
ンのために既にサーバプログラムが起動されており,ク
ライアントからの上りメッセージの到着を待っている。
上りメッセージが到着するとサーバプログラムはリクエ
ストコードを認識し、必要なサービスを実行する。この
時、上りメッセージとして到着したメッセージが使用さ
れる。メッセージは通常複数の項目から構成されてお
り、例えば、商品コードと日付などの分割された異なる
データ型の列となっている。上りメッセージの内容はリ
クエストコード毎に処理が決められており、リクエスト
コードが3番なら処理内容は、商品マスタデータベース
の検索で、上りメッセージデータには商品コードがある
のでそれを使用するなどの取り決めがある。
【0005】また、一般のクライアントサーバ型の体系
ではクライアントアプリケーションは複数端末に分散し
ており、それをサーバ上の1つのサーバプログラムが一
括してサービスを行うということが行われている。しか
し、この方法ではすべてのクライアントに対して均一の
サービスを行うことは難しく、またすべてのクライアン
トプログラムの要求を満たすサーバプログラムの開発は
困難を極める。
【0006】もう一つのクライアントサーバ型の体系と
しては、クライアントアプリケーション1つに対して専
用のサーバプログラムを1つ用意するというやり方があ
る。この方法であると、クライアントとサーバの関係は
必ず1対1になるのでクライアントプログラム、サーバ
側のプログラム開発は先に述べた方法より比較的簡単で
ある。欠点としては、端末の台数が増加した場合に、サ
ーバ上にクライアントの数だけのサーバプログラムがロ
ードされて実行される点であり、サーバの負荷を増加さ
せる。
【0007】サーバ側の負荷の増加を抑制するために、
トランザクション処理システムなどではトランザクショ
ン起動でプログラムを起動する方法などが採用されてい
る。上りメッセージを1度トランザクション処理システ
ムで受けて、その内容を解析し、リクエストコードを判
定してから該当するプログラムを起動してサービスを行
うものである。このようなトランザクション処理システ
ムは一般には大規模なシステムに使用され、中規模や小
規模なシステムでは運用も複雑なためあまり使用されて
いない.
【0008】このようにクライアントサーバ型の形態は
様々であり応用範囲も広い。特に、負荷が分散できる点
とクライアントとサーバマシンのそれぞれ得意な分野の
計算や処理を分担することができる点で、最近よく使用
されるシステム形態である。しかし、1つの処理がクラ
イアント側とサーバ側に分割されるためアプリケーショ
ン設計や開発が難しく、デバッグや保守などの手法もま
だあまり確立されていないのが現状である。
【0009】図34はサンマイクロシステムズ社が開発
した,分散ファイルシステムNFS(Network File Sys
tem)の概要図である.NFSはすでに各社が製品化を
おこなっており,三菱電機で製品化しているME/UX
−2における「三菱エンジニアリングワークステーショ
ンMEシリーズネットワーク説明書NFS編」などがあ
る。図34はNFSの概要を示しており従来のクライア
ントサーバ型システムアプリケーションの例を説明する
ための図である。図において、1はクライアントマシ
ン、35はサーバマシン、36はクライアントのディレ
クトリ構成、37はサーバのディレクトリ構成、38は
クライアントへマウントされるサブディレクトリ、39
はサーバからマウントされたサブディレクトリである。
また、図35はNFSサービスを行うソフトウェアの働
きを示したものである。図において、1はクライアント
マシン、35はサーバマシン、36はクライアントのデ
ィレクトリ構成、40はクライアントで動作するNFS
クライアントプログラム、37はサーバのディレクトリ
構成、41はサーバで動作するNFSサーバプログラム
である。
【0010】まず、図34を使用してNFSの仕組みに
ついて解説する。NFSはサーバのディレクトリ構成を
要求のあったクライアントマシン上で仮想的にそのディ
レクトリ構成を実現するクライアントサーバ型のシステ
ムプログラムである。図34の場合には、サーバ上にgu
estというディレクトリ構成があり、そのディレクトリ
にはguest1からguest4までのサブディレクトリがあり、
またその下にもたくさんのファイルがある。NFSを導
入することにより、このguestディレクトリを異なるマ
シンのクライアントマシン上のmntというディレクトリ
に仮想的にマウントし、クライアントマシン上にあたか
もguestディレクトリ以下が存在するようにするサービ
スを行うものがNFSである。従って、クライアントマ
シン上ではmntの位置にサーバ上のディレクトリ構成で
あるguest以下が展開されて見えるので、ファイルの新
規作成や削除などがクライアントマシン上での操作だけ
で、サーバ上のディレクトリ構成に影響を与えることが
可能となる。
【0011】次に図35を使用してNFSを実現してい
るメカニズムについて簡単に説明する。クライアントマ
シン上にはNFSのクライアントプログラムが動作し、
サーバマシン上には、NFSのサーバプログラムが動作
している。クライアントマシンからNFSクライアント
プログラムを通してマウントを行うと、マウント情報が
サーバのNFSサーバプログラムにわたる。このマウン
ト要求がNFSクライアントからNFSサーバへのサー
ビス要求となる。上りメッセージの中にはマウント要求
のリクエストコードとマウントを行いたいサブディレク
トリ名が含まれている。NFSサーバはマウント要求リ
クエストがくると、サブディレクトリの情報をNFSク
ライアントに通知する。これによってNFSクライアン
トはサーバ上のサブディレクトリをマウントすることが
でき、クライアント上にサーバ上のディレクトリが存在
するように見せかけることができる。ファイルの新規作
成やファイルの削除、ディレクトリの作成などについて
も細かくリクエストコードが割り当てられており、その
たびにNFSクライアントからNFSサーバに対して上
りメッセージが送信されサービスの結果をNFSクライ
アントは表現しているわけである。従って、サーバ上に
あるサブディレクトリに対する操作を通信を行いながら
実現している形態となる。
【0012】次に別の例をあげる。図36はRPC(Rem
ote Procedure Call)の概要である。リモートプロシー
ジャコールはクライアント上のクライアントプログラム
から要求があるとサーバ上のRPCサーバプログラムが
動作して特定のサービスを行い結果を返すものである。
これもサンマイクロシステムズが考案しているものであ
る。図36において42はクライアントプログラムの実
行の流れ、43がRPCリクエスト発行、44がサービ
スデーモン、45がサービスルーチンコール、46がリ
クエストサービスの実行、47がサービスルーチン結
果、48がRPCリクエスト終了である。
【0013】図36を使用してRPCのメカニズムを説
明する。RPCは、サーバプログラムが起動されている
ことを前提に行われる。RPCサービスプログラムは、
RPCを実現するために用意されたAPI(Apprication Pr
ogram Interface)、registerrpc(100,1,3,serv
ice3,xdr_int,xdr_int)を使用してサービスを登録す
る。このAPIの意味はプログラム番号100番でバージョン
番号1番、リクエストコード3のとき、実行するサービス
関数はservice3、上りメッセージはint型(整数型)、
下りメッセージもint型であることを示している。つま
りサービスプログラム番号100の3ice3の結果を再び整
数型に変換して返す定義を行っている。サービスの種類
が複数ある場合には、このAPI命令をサービスの種類だ
け発行しなければならない。registerrpc APIを発行す
ることによりサービスデーモンに対し、RPCプログラ
ムの登録が行われ、クライアントプログラムでサービス
を受けることが可能となる。クライアントプログラムで
は、サービスが必要な場合、callrpc(HOST,100,1,3,xdr
_int,10,xdr_int,&kekka)APIを発行する。このAPIの意
味はサーバ名HOSTにおいて、プログラム番号100、バー
ジョン番号1、リクエストコード3、上りメッセージの型
変換はint型(整数型)でメッセージ内容は10、サービ
スの結果もint型に変換してkekka変数にもらうといった
ものである。このAPIを発行することにより、サーバ上
のサービス関数を実行させることができる。
【0014】クライアントプログラムはcallrpc APIを
発行するとサーバ上のサービスデーモンで指定されたサ
ービスがあるかどうか検索される。サービスプログラム
が登録されていればリクエスト発行が行われ、サービス
ルーチンコールが行われる。上りメッセージとして引き
数が入力されるので、それを使用してサービス関数が実
行される。サービスルーチンが終了すると実行された結
果がRPCの結果として返り、クライアントプログラム
は得られた結果を利用してプログラムを続行する。
【0015】一般にトランザクション単位にクライアン
トからサーバに処理を依頼し、結果を受けとり処理を行
う形態の業務プログラム、あるいはシステムは端末エミ
ュレータによりサーバ上の業務アプリケーションを動作
させて実行させる形態より、プログラム開発効率が悪
い。これは、端末エミュレータなどで動作させる業務ア
プリケーションがサーバ側のプログラム1つでいいのに
対し、クライアントサーバ型のアプリケーションでは、
クライアントとサーバにそれぞれプログラムが必要であ
る。しかしながら、処理が分散するため、負荷の分散が
行える点や、クライアントとサーバそれぞれの特長をい
かし、クライアントの画面をGUI化し、使い易い業務
アプリケーションを作成することが可能である。このよ
うなことは、端末エミュレータを使用したアプリケーシ
ョンでは不可能であった。ただ、クライアントサーバ型
のアプリケーションでは、通信によってメッセージを交
換しながらプログラムが連携して動作していくが、この
通信部分の連結の整合性をあわせることが従来困難であ
り、時間がかかり開発工数が膨らんでいた。
【0016】この通信部分の連結の整合性をあわせるた
めに、やはりサンマイクロシステムズはRPCGENと呼ばれ
るコンパイラを提供している。図37はRPCGENの概要図
である。図において、49がRPCLで記述したファイ
ル、50がサーバスタブルーチン、51がヘッダファイ
ル、52がXDRルーチン、53がクライアントスタブ
ルーチン、54がサーバプロシジャ、55がクライアン
トメインプログラムである。RPCGENはC言語に類似した
RPC Languageと呼ばれる言語で書かれたプログラムイン
タフェースを定義した入力ファイルを入力とし、サーバ
側のための通信受け付けロジックの一部分と、クライア
ント側のための通信リクエストの一部分のC言語ソース
コードと参照のためのヘッダファイルを出力するもので
ある。クライアントプログラム作成者はここで出力され
たルーチンを呼び出すことで、通信の処理を意識しなく
て済むが、RPC Languageで記述されたルーチンに変
更が加えられるたびに、クライアントプログラムを修正
する必要があり、RPC Language自体も高度な言語である
ため容易に使用できるまでにはいたっていない。
【0017】従来の技術ではRPCGENなどの通信ロジック
を自動生成するツールを使用した場合、通信処理を、ク
ライアントサーバ型アプリケーションを開発するたび
に、先に説明したRPCのAPIや独自の通信路を確保
して、アプリケーションの中に通信ロジックを個別に作
りこむ必要があり、プログラム生産性がさほど高くはな
かった。
【0018】また、同様の技術として「プログラム自動
生成分散方式 特開平05−53779公報」がある
が、これに開示されているものはトランザクションごと
にトランザクション形式定義情報やクライアント通信オ
ブジェクトなどを持たないので、クライアントサーバ型
のアプリケーション開発を効果的に行いかつ生産性を向
上させることは難しい。
【0019】
【発明が解決しようとする課題】従来のクライアントサ
ーバ型のシステム形態ではプログラムの構築がクライア
ント側とサーバ側で別々に行なわれることが多く、イン
タフェースの取りきめに関する問題があり、設計や開発
が繁雑であった。その通信部分を自動生成するようなツ
ールも存在するが、使い方が比較的難しいとか、GUI
化されていないために使い勝手がよくないという問題が
あった。また、通信が正しく行われているかどうか調べ
たり、エラー処理を通信を行うごとに設計し処理を行う
必要があった。また、通信を呼び出すソースプログラム
上のタイミングの決定などはソースプログラムを編集す
る時に別途行う必要があった。
【0020】この発明は、上記のような問題点を解消す
るためになされたもので、クライアントプログラムとサ
ーバプログラムの開発を容易にし、メッセージのコード
変換などについて深く考慮しなくてもクライアントサー
バ型の通信を行えることを目的とする。
【0021】また、通信関数を短時間で自動生成し、生
成された通信関数の品質を一定に保つことにより、クラ
イアントサーバ型のアプリケーションのデバッグや保守
についても効率を高めることを目的としている。
【0022】
【課題を解決するための手段】この発明に係る通信ロジ
ック自動生成装置は、定義されたトランザクションデー
タのデータ形式を格納するトランザクション形式ファイ
ル、通信ロジックを規定する通信関数の定義情報を有す
るプログラムソースファイル、上記トランザクション形
式ファイルの項目名と上記プログラムソースファイルの
ウィンドウ部品名とを一致させた通信関数を含む通信プ
ログラムを生成する通信プログラム自動生成ツールを備
えてなるものである。
【0023】また、上記プログラムソースファィルは、
ウィンドウ部品の種別を表すウィンドウ部品クラス及び
これらの属性であるプロパティからなるウィンドウ部品
部、このウインドウ部品部で使用される変数の定義を行
う変数宣言部、上記ウィンドウ部品及び変数を使用して
通信ロジックを規程する通信関数を定義する関数部から
なるものである。
【0024】さらに、上記トランザクション形式ファイ
ルの項目名をコメント文として表示する手段を設けたも
のである。
【0025】また、上記トランザクション形式ファイル
の項目が配列項目で、かつ、対応する上記プログラムソ
ースファイルのウィンドウ部品が配列項目であるとき上
記通信プログラムのソースプログラムをくり返しのため
のループ文で生成する手段を設けたものである。
【0026】さらにまた、複数のトランザクション形式
が格納された上記トランザクション形式ファイルの中か
ら任意のトランザクション形式を選択する手段を設けた
ものである。
【0027】この発明に係るトランザクション通信装置
は、定義されたトランザクションデータのデータ形式を
格納するトランザクション形式ファイル、通信ロジック
を規定する通信関数の定義情報を有するプログラムソー
スファイル、上記トランザクション形式ファイルの項目
名と上記プログラムソースファイルのウィンドウ部品名
とを一致させた通信関数を含む通信プログラムを生成す
る通信プログラム自動生成ツール、上記ウィンドウ部品
に転送されたデータを上記トランザクション形式ファイ
ルを参照しつつバッファに格納し送信データを生成する
通信オブジェクトを備えてなるものである。
【0028】また、定義されたトランザクションデータ
のデータ形式を格納するトランザクション形式ファイ
ル、通信ロジックを規定する通信関数の定義情報を有す
るプログラムソースファイル、上記トランザクション形
式ファイルの項目名と上記プログラムソースファイルの
ウィンドウ部品名とを一致させた通信関数を含む通信プ
ログラムを生成する通信プログラム自動生成ツール、受
信データをバッファに格納し上記トランザクション形式
ファイルを参照しつつ上記受信データを分割して上記ウ
ィンドウ部品に転送する通信オブジェクトを備えてなる
ものである。
【0029】さらに、ウィンドウ部品に格納したデータ
を画面に表示することを特徴とするものである。
【0030】また、上記トランザクション形式ファイル
の項目名と上記プログラムソースファィルのウィンドウ
部品名とが一致しなかったときに予め設定した識別子を
上記通信オブジェクトのバッファに格納する手段を有す
るものである。
【0031】さらにまた、上記プログラムソースファィ
ルのウィンドウ部品に設定されたイベントに自動生成さ
れた上記通信ロジックを割り付ける手段を設けたもので
ある。
【0032】また、上記イベントに自動生成された上記
通信ロジックを割り付けるとき割り付けるウィンドウ部
品を選択する画面上に予め限定されたウィンドウ部品の
みを表示する手段を設けたものである。
【0033】さらに、上記通信オブジェクトが使用する
通信プロトコルに応じてエラー処理ルーチンを切り替え
る手段を設けたものである。
【0034】また、複数の上記通信オブジェクトを設
け、通信プロトコルに応じて上記通信オブジェクトを選
択する手段を設けたものである。
【0035】この発明に係るトランザクション通信方法
は、クライアントにおける通信ロジックを規定する通信
関数の定義情報を有するプログラムソースファイルとト
ランザクション形式ファイルの上りトランザクションの
項目名をそれぞれ参照し上記項目名を取り込んだ通信関
数を含む通信プログラムを生成するステップ、この通信
プログラムのウィンドウ部品にデータが格納されるステ
ップ、そのウィンドウ部品に格納されたデータをクライ
アント通信オブジェクトのバッファに格納し上りメッセ
ージを作成するステップ、その上りメッセージをサーバ
へ送信するステップ、サーバで処理された後の下りメッ
セージを受信し通信オブジェクトのバッファに格納する
ステップ、その受信データを上記トランザクション形式
ファイルの下りトランザクションの項目名に対応させて
分割しそれぞれの該当するウィンドウ部品へ転送するス
テツプからなるものである。
【0036】また、サーバにおける通信ロジックを規定
する通信関数の定義情報を有するプログラムソースファ
イルとトランザクション形式ファイルの上りトランザク
ションの項目名をそれぞれ参照し上記項目名を取り込ん
だ通信関数を含む通信プログラムを生成するステップ、
この通信プログラムのウィンドウ部品にデータが格納さ
れるステップ、そのウィンドウ部品に格納されたデータ
を通信オブジェクトのバッファに格納し上りメッセージ
を作成するステップ、その上りメッセージをクライアン
トへ送信するステップ、クライアントで処理された後の
下りメッセージを受信し通信オブジェクトのバッファに
格納するステップ、その受信データを上記トランザクシ
ョン形式ファイルの下りトランザクションの項目名に対
応させて分割しそれぞれの該当するウィンドウ部品へ転
送するステツプからなるものである。
【0037】
【発明の実施の形態】
実施の形態1.図1はこの発明の一実施の形態である通
信プログラム自動生成装置の構成を示すもので、そこに
おける通信プログラム自動生成処理において,クライア
ント側に通信オブジェクトとプログラムソースファイ
ル、トランザクション形式作成ツール、トランザクショ
ン形式ファイルを設けることによって、トランザクショ
ンの形式を意識せずにクライアントサーバ型のアプリケ
ーションの通信部分のロジックを自動生成する部分の実
行を行っている。図において、1はクライアントマシン
で、本実施の形態においてはクライアントマシン1から
サーバマシン(図示せず)へ送信する場合について記述
しているる。2はトランザクションデータのデータ形式
を設定するためのトランザクション形式作成ツール、3
はこのトランザクション形式作成ツール2により定義さ
れたトランザクションデータのデータ形式を格納するト
ランザクション形式ファイル、4は使用できるウィンド
ウ部品及び変数の型を規定する情報の他通信ロジックを
規定する通信関数の定義情報を有するプログラムソース
ファイル、5はトランザクション形式ファイル3の項目
名とプログラムソースファイル4のウィンドウ部品名と
を一致させた通信関数を生成し実行形式の通信プログラ
ムを生成する通信プログラム自動生成ツール、6は自動
生成された通信プログラムを格納する通信プログラムソ
ースファイル、7はこの通信プログラムに規定されてい
るウインドウ部品のテキストにデータを格納するクライ
アントアプリケーション、8はそのデータをトランザク
ション形式ファイル3を参照してチェックしつつ自己の
バッファに格納するクライアント側の通信オブジェクト
であるクライアント通信オブジェクト、9は通信データ
を送受信する通信ドライバである。
【0038】次に、装置全体の動作について説明する。
通信プログラム自動生成ツール5は、トランザクション
形式ファイル3から得られたトランザクションデータの
データ形式をプログラムソースファイル4の通信関数の
定義情報に組み込み、通信プログラムを自動生成する。
次に、クライアントアプリケーション7はこの通信プロ
グラムに規定されているウインドウ部品のテキストに入
力データ、各種データファイル(図示せず)等から得ら
れたデータを転送する。ここで、その通信プログラムは
転送されたデータを画面上に表示し、クライアントマシ
ン1の操作者の確認に供する。次に、クライアント通信
オブジェクト8は、ウィンドウ部品のテキストに転送さ
れたデータをトランザクション形式ファイル3を参照し
てデータ形式をチェックしつつ自己のバツファに格納す
る。このバツファに格納された送信データは、通信ドラ
イバ9によりサーバに送信される。
【0039】図2はトランザクション形式ファイル3の
構成図である。10がトランザクションの処理パターン
を決めるリクエストコード、11がクライアントからサ
ーバへのトランザクションを決める上りトランザクショ
ン、12がサーバからクライアントへのトランザクショ
ンを決める下りトランザクション、13が各トランザク
ションの実際の内容であるトランザクション項目であ
る。
【0040】図2によりトランザクション形式ファイル
3の内部構成について説明する。トランザクション形式
ファイル3の中には複数のリクエストコード10ごとに
上りトランザクション11と下りトランザクション12
が対になって登録されている。各トランザクションの内
容はトランザクション項目13からなり1つのトランザ
クション項目13は日本語の項目名称、英数字であらわ
される項目名、データ型と長さからなる。上述したよう
に、クライアント通信オブジェクト8はトランザクショ
ン形式ファイル3を参照することによって通信動作を行
う。
【0041】図3は通信プログラムを生成するためのプ
ログラムソースファイル4の構成図である。14がウィ
ンドウ部品部、15が変数宣言部、16が関数部であ
る。図3により、プログラムソースファイル4の内部構
造について説明する。1つのプログラムソースファイル
4はウィンドウ部品部14、変数宣言部15、関数部1
6から構成されている。ウィンドウ部品部14はBEGIN
部品名ではじまり、ウィンドウ部品の種別であり、ボタ
ンやテキスト、リストボックス、グリッドなどが代表的
なものであるウィンドウ部品クラス、ウィンドウ部品が
そのウィンドウ部品クラスごとに持つプロパティの列、
ENDで完結する。プロパティはウィンドウクラスごとに
異なっており、ウィンドウの振る舞いを決定する属性で
ある。例えばCaptionプロパティはボタンなどの表面に
表示する文字列を定義し、TOPプロパティ、LEFTプロパ
ティなどはそのウィンドウ部品の位置情報の値を管理す
る。変数宣言部15はそのプログラムソースファイル4
の中で使用されるグローバルな変数定義を行う場所であ
る。DIM宣言で始じまり、変数名、as、タイプ名で一つ
の変数の宣言が行なえる。関数部16は関数を定義する
場所である。関数にはSUBタイプとFUNCTIONタイプの2
種類がある。SUBタイプは関数の値をなにも返さないサ
ブルーチンタイプをあらわし、FUNCTIONタイプは関数の
値をサブルーチンのリターン値として返すものである。
それぞれSUBまたはFUNCTIONのキーワードで始まり、次
に関数名、そして関数での処理をあらわすステートメン
トで演算処理を記述する。関数の終了はENDとSUBまたは
FUNCTIONの組み合わせで一つの関数定義が終了する。
【0042】図4はトランザクション形式作成ツール2
の概観である。図4によりトランザクション形式ファイ
ル3を定義するためのトランザクション形式作成ツール
2について説明する。トランザクション形式作成ツール
2はGUI(Graphical Usser Interface)とマウスを用い
て、1つのトランザクションごとにマウスでそのフォー
マットを定義していくツールである。1つのトランザク
ションを各トランザクション項目13ごとに定義し、項
目名称、英数字名称、データ型、長さを定義する。1つ
のトランザクション項目を定義するごとにトランザクシ
ョンの全体の長さが長くなっていく。このようなツール
でトランザクション形式をリクエストコードごとに上り
トランザクション、下りトランザクションと定義してい
くことにより、トランザクション形式ファイル3を作成
する。
【0043】図5は通信プログラム自動生成ツールの操
作画面の概観である。17が関数選択エリア、18が生
成された関数の表示編集ウィンドウである。図5により
通信プログラム自動生成ツール5のウィンドウ概観を説
明する。通信プログラム自動生成ツール5は起動すると
図5のようなメインウィンドウを表示する。メニューか
らマウスで指示を行うことでこのツールを使用すること
ができる。17は生成した関数や通信プログラム自動生
成ツール5で読み込んだプログラムソースファイル4の
中の関数名を表示するためのエリアである。ここから関
数名を選択することにより、関数の内容を表示編集ウィ
ンドウ18に表示することができる。この表示編集ウィ
ンドウ18では関数の内容をキーボード操作によって編
集することが可能である。
【0044】図6は通信プログラム自動生成ツールのフ
ァイルオープンメニューの例である。19がプログラム
ソースファイルをオープンするためのメニュー、20が
トランザクション形式ファイル3を選択するためのメニ
ューである。
【0045】図6によりプログラムソースファイル4と
トランザクション形式ファイル3の読込み方法を説明す
る。通信プログラム自動生成ツールの「ファイル」メニ
ューをマウスで選択すると図6に示すようなドロップダ
ウンリストが表示され、ファイルに対する操作を行うこ
とができる。「開く」メニュー19をマウスで選択する
ことによりプログラムソースファイル4を選択できるよ
うになり、ファイルを選択する。次にトランザクション
形式ファイル3を選択するために同じ「ファイル」メニ
ューの「トランザクションマージファイルの指定」メニ
ュー20をマウスで選択する。これによりトランザクシ
ョン形式ファイル3が選択でき、プログラムソースファ
イル4とトランザクション形式ファイル3が選択され、
クライアント通信オブジェクト8で使用する通信関数を
生成する準備が整ったことになる。
【0046】図7は通信プログラム自動生成ツールのコ
ード生成メニュー画面の例である。21が通信コード作
成メニュー、22がイベント指定メニューである。図7
により実際に通信関数を自動生成する方法について説明
する。図7の「コード生成」メニューをマウスで選択す
ると通信コード21とイベント指定22のドロップダウ
ンリストが表示されるので通信関数を自動生成するため
に「通信コード」メニューをマウスで選択する。これに
より通信プログラム自動生成ツール5が起動され通信プ
ログラムが自動生成される。
【0047】次にこれまで説明してきた通信プログラム
自動生成ツール7の操作に対応した処理を図8から図1
3のフローチャートを使用して説明する。図8は通信プ
ログラム自動生成ツール5がプログラムソースファイル
4のウィンドウ部品部を読込み解析するためのフローチ
ャートである。まず図8のフローチャートを用いてプロ
グラムソースファイル4の読込み処理について説明す
る。プログラムソースファイル4が選択されるとプログ
ラムソースファイル4の内容の読込みと解析が行われ
る。内容を解析することによって通信プログラムを作成
するための情報をメモリに貯え、それを用いることによ
り、後で通信プログラムを作成する。プログラムソース
ファイル4は既に説明した通り、ウィンドウ部品部1
4、変数宣言部15、関数部16から構成されているの
でこの順番に処理が動作する。まずS1によってウィン
ドウ部品がBEGINとENDのキーワードで一つの塊になって
いる性質を利用してBEGINのカウンタを用意し0にセッ
トする。次にS2でプログラムソースファイル4から1
行読込みを行う。次にS3で読み込んだ入力行の先頭の
キーワードがBEGINかどうかチェックする。もしBEGINで
あればS4でBEGINのカウンタに1をセットし、すでにB
EGINが出ていることを保証する。次にBEGINのあとには
ウィンドウ部品名とウィンドウクラス名があることから
S5とS6においてこれらを取り出し格納する。取り出
したウィンドウ部品名とウィンドウクラス名からS7に
おいて該当するウィンドウ部品情報を作成する。S15
では読み込んだ1行を内部のウィンドウ部品格納バッフ
ァにそのまま保管し、再びS2に戻って次の1行を読み
込む。もしS3の条件式がNOで入力行がBEGINでなかっ
た場合には、S8の処理を行う。S8では入力行がEND
キーワードで始まるかどうかをチェックする。もしEND
キーワードでない場合にはプロパティ行か変数宣言部1
5または関数部16なので、S9において変数宣言部1
5か関数部16に該当するかどうかをチェックする。も
し該当する場合には次の大きな処理ステップである変数
の読込み処理を行う。もし変数宣言15、関数部16に
該当しない場合には、S10においてプロパティなので
プロパティ情報を解析し、ウィンドウ部品情報へセット
すべき内容があればセットする。プロパティの解析が終
了した後にはS15で読み込んだ1行の保存を行う。次
にS8の入力行がENDキーワードに該当した場合、S1
1の処理を行う。S11ではBEGINカウンターが0かど
うかチェックする。これはBEGINがでていないケースでE
NDが現れるエラーケースを検出している。エラーの場合
にはS14で終了する。エラーでない場合には1つのウ
ィンドウ部品の解析が終了したことになるのでS12に
おいてBEGINカウンターを0にセットしなおす。また、
S13によってウィンドウ部品リストにウィンドウ部品
情報を追加更新することにより、ウィンドウ部品リスト
の検索によりいつでもウィンドウ部品の情報へアクセス
ができるように準備しておく。ここまでのフローチャー
トによってウィンドウ部品部14が読み込まれ、ウィン
ドウ部品ごとにウィンドウ部品情報が生成され、必要な
情報がメモリ上に貯えられた。さらにウィンドウ部品情
報はウィンドウ部品リストに登録され、ウィンドウ部品
リストを検索することによっていつでもアクセス可能な
状態となった。また、1行づつ入力された内容はメモリ
上のウィンドウ部品格納バッファにセットされ、あとで
保存するときに同じ内容で保存できるようになった。
【0048】図9は通信プログラム自動生成ツール5が
プログラムソースファイル4の変数宣言部15を読込み
解析するためのフローチャートである。図9でプログラ
ムソースファイル4における変数宣言部15の読込みに
ついて説明する。S16において1行読み込む。これは
図8からの続きできた場合には図8で読み込んでいた1
行と同じものを使用する。S17においてその1行がコ
メント行でないかどうかをチェックする。コメント行で
あれば処理をスキップしてS22に処理を移し、読み込
んだ1行を変数格納バッファに入力行を保存する。そし
て、再びS16の1行読込みを行う。S17のコメント
行の判断でコメント行でなかった場合には、S18でキ
ーワードSUB、及びFUNCTIONをチェックする。もし該当
していたら関数部16の読み込みを行うため関数の読込
み処理が行われる。もしSUBまたはFUNCTIONキーワード
でない場合には変数の宣言であるので変数の宣言かどう
かS19でチェックする。もし変数の宣言でなければ、
この通信プログラム自動生成ツール5が認識できない構
文であるので無視して、S22に処理を移し、変数格納
バッファに入力行をそのまま格納する。S19において
もし変数の宣言だった場合には、S20において変数情
報の作成を行い、変数名や変数のデータ型の保存を行
う。そして、S21で変数情報用のリストに変数情報の
登録を行う。ここまでのフローチャートの流れによって
変数情報が読み込まれ、変数名ごとに必要な情報がメモ
リに貯えられた。さらにこれらの変数情報は変数情報リ
ストに登録されているので、必要な時にリストを検索す
ることによってアクセス可能な状態となった。また、1
行づつ入力された内容はメモリ上の変数格納バッファに
セットされ、あとで保存するときに同じ内容で保存でき
るようになった。
【0049】図10は通信プログラム自動生成ツール5
がプログラムソースファイル4の関数部16を読込み解
析するためのフローチャートである。図10によりプロ
グラムソースファイル4における関数部16の読込みに
ついて説明する。S23においてSUBまたはFUNCTIONの
キーワードがあるかどうかチェックする。もしあれば、
S24において関数の先頭かどうかチェックする。定数
の中にあらわれた関数と区別するためのチェックであ
る。そして、チェックが成功すれば関数のはじまりのキ
ーワードなのでS25において関数情報を生成する。関
数の名前、関数のタイプを登録した関数情報を生成す
る。そして次にS29で1行を読み込む。読み込んだ結
果をS30でチェックし、ファイルの終了のEOFであれ
ば関数の読込みを終了し、フォームの読込みを終了す
る。もしEOFでなければS23に戻る。S23において
関数キーワードでなければ」S26において関数格納バ
ッファに読み込んだ行を保存する。そしてS27におい
て、その行が関数の終了をあらわす、END SUBまたはEND
FUNCTIONかどうかチェックを行う。もし、該当しなけ
ればS29へ処理を移し、ループへ戻る。もし、該当す
れば関数の終了なので、関数情報を関数リストへ登録更
新を行う。ここまでのフローチャートの流れによって関
数が読み込まれ、関数ごとに関数情報がメモリに貯えら
れた。さらにこれらの関数情報は関数情報リストに登録
されているので、必要な時にリストを検索することによ
ってアクセス可能な状態となっている。また、1行づつ
入力された内容はメモリ上の関数格納バッファにセット
され、あとで保存するときに同じ内容で保存できるよう
になった。
【0050】これまでの説明により,通信プログラム自
動生成ツール5の中にプログラムソースファイル4を解
析したイメージが出来上がった。さらに図6の説明で行
なったトランザクション形式ファイルの選択により、通
信関数を自動生成するための状態がメモリ上に構築され
た。図11は通信プログラム自動生成ツール5の通信関
数を作成するためのフローチャートである。図11のフ
ローチャートによって通信関数がどのように作成される
かを以下に説明する。図11のフローチャートは図7の
「コード生成」メニューをマウスで選択すると起動され
る処理をあらわしている。トランザクション形式ファイ
ル3のリクエストコードごとにこのフローチャートが起
動される。S31は作成する関数名をトランザクション
形式ファイル3のリクエストコードから決定し、クライ
アント通信オブジェクト8の名前とリクエストコードを
文字列として結合したものを関数名として文を作成す
る。また、S31ではそのあとにデフォルトのエラーを
検出するためのエラー検出のためのステートメントをい
れている。このエラー検出ステートメントはクライアン
トアプリケーション3が実行される実行系の中で有効な
命令であり、エラーがあれば指定されたラベルへジャン
プしてエラー処理を行なえる機能である。S31ではそ
のエラーフック機能を有効にするためにエラー検出ステ
ートメントを作成している。次にS32で通信するリク
エストコードをクライアント通信オブジェクト8へ指令
するためのリクエストコードの設定ステートメントを生
成している。このステートメントにより、クライアント
通信オブジェクトはこれから通信する通信リクエストの
トランザクション形式をトランザクション形式ファイル
3から参照できるようになる。次にトランザクション形
式に従ってクライアントからサーバへ通信する内容を決
定するための処理をS33で行う。この部分の処理につ
いては後で説明する。S33によってクライアントから
サーバへ通信する準備が整いクライアント通信オブジェ
クト8の内部に送信するための通信データが生成される
ので、次にS34で実際に通信を行うためのステートメ
ントを生成する。これは通信オブジェクトにCALLという
プロパティがあり、これをTRUEにすることにより送信が
行われる。また、これによってサーバ側にクライアント
通信オブジェクトの内部の作成された送信文字列がサー
バ側へ送られ、サーバ側ではそのデータを使用して計算
を行い、計算を行なった結果を下りの通信トランザクシ
ョン形式に合わせて送り返し、クライアント通信オブジ
ェクト8の内部には、送信データに変わってサーバから
送られてきたデータが貯えられるものである。ここで説
明している部分は通信オブジェクト内部のものである
が、これら一連の流れを通信オブジェクト.CALL=TRUE
というステートメントで行う部分がクライアント通信オ
ブジェクト8の役割である。次に上記ステートメントに
よってクライアント通信オブジェクト8の内部にはサー
バから送られてきたデータがメモリ上に貯えられている
ので、それを下りトランザクション形式に合わせて分割
し、ウィンドウ部品へ転送することによって結果を画面
に表示することが可能となる。その部分の処理はS35
の下りメッセージの処理でロジックが生成される。これ
についても後で説明する。下りメッセージの分割のあと
関数のリターンとしてTRUEを返すステートメントと関数
の終わりをあらわすEXITのステートメントを生成するこ
とで通信のノーマルパスのロジック生成とする。次にS
37では先にS31で説明したエラー処理のステートメ
ントに対応するラベルを生成する。これにより、もし実
行時、通信中にエラーがあった場合には、このラベル以
降が処理されるようになる。デフォルトの簡単なエラー
処理を入れることによってエラーのあったときの取り扱
いが行われるようにS38で処理を作成し、関数のリタ
ーン値として通信が失敗したことを示すFALSEを生成す
る。そして、S39において関数の全体の終了を示すEX
IT FUNCTIONとEND FUNCTIONを生成し通信関数全体の生
成が終了する。ここで作成された関数は図5に示した関
数の表示編集ウィンドウに表示される。図11のフロー
チャートによってリクエストコードごとに通信関数が生
成され、クライアント通信オブジェクト8はこの関数が
実行されるたびにサーバとの通信を行う。
【0051】次に上りメッセージの作成処理と下りメッ
セージの作成処理を図12と図13を用いて説明する。
図12は通信プログラム自動生成ツール5の上りメッセ
ージを作成するためのフローチャートである。図12に
おいて、上りメッセージの作成処理を説明する。S40
においてリクエストコードに該当する上りトランザクシ
ョンの形式をトランザクション形式ファイル3から読み
込む。これにより、トランザクション全体のトランザク
ション項目数なども得ることができる。次にS41にお
いて、クライアント通信オブジェクト8へ通信項目ごと
にセットする項目番号を0に設定する。クライアント通
信オブジェクト8はリクエストコードに応じて上り、下
りそれぞれのBUFFERプロパティという配列の項目を持つ
ため、それのインデックスとして使用する項目番号の初
期値を与えるわけである。次にS42で項目番号と上り
トランザクションの項目数を調べ一致しているかどうか
チェックする。もし一致していれば上りメッセージの作
成は終了である。一致していなければ、S43で上りト
ランザクションの中から該当するトランザクション項目
を得る。これによりここで使用されるべき項目の名前が
決定される。トランザクション項目の中には項目名称、
英数字項目、データ型、長さなどの情報があるが、ここ
では英数字項目名を使用する。S44でウィンドウ部品
リストの中に英数字項目名と同一の項目をもったウィン
ドウ部品情報があるかどうかチェックする。もしあれ
ば、そのウィンドウ部品に実行時に入っているデータを
サーバへ送るために、通信オブジェクト.BUFFER(項目
番号)=ウィンドウ部品名の文を作成する。この文によ
ってクライアント通信オブジェクトの内部に実行時にウ
ィンドウ部品に入力されているデータが転送されること
になる。この文を生成したら、項目番号に1をたしてS
42が成り立つまでループを繰り返す。このフローチャ
ートが動作することにより、上りトランザクション形式
の中にある項目数分の転送ステートメントが生成され
る。これは実行時にウィンドウ部品の中にあるデータを
クライアント通信オブジェクト8に転送するものにな
る。
【0052】図13は通信プログラム自動生成ツール5
の下りメッセージを作成するためのフローチャートであ
る。図13において下りメッセージを作成する処理を説
明する。S47においてリクエストコードに該当する上
りトランザクションの形式をトランザクション形式ファ
イル3から読み込む。これにより、トランザクション全
体のトランザクション項目数なども得ることができる。
S48で次にクライアント通信オブジェクトへ通信項目
ごとにセットする項目番号を0に設定する。これは上り
メッセージの作成と同様、クライアント通信オブジェク
トの通信BUFFERプロパティのインデックスに使用するも
のである。次にS49で項目番号と下りトランザクショ
ンの項目数を調べ一致しているかどうかチェックする。
もし一致していれば下りメッセージの作成は終了であ
る。一致していなければ、S50で下りトランザクショ
ンの中から該当するトランザクション項目を得る。これ
によりここで使用されるべき項目の名前が決定される。
トランザクション項目の中には項目名称、英数字項目、
データ型、長さなどの情報があるが、ここでは英数字項
目名を使用する。S51でウィンドウ部品リストの中に
英数字項目名と同一の項目をもったウィンドウ部品情報
があるかどうかチェックする。もしあれば、実行時にサ
ーバから受け取った受信データが入っているBUFFERプロ
パティ(項目番号)に入っているデータをウィンドウ部
品へ転送し表示するために、ウィンドウ部品名=通信オ
ブジェクト.BUFFER(項目番号)の文を作成する。この
文によってクライアント通信オブジェクトの内部に実行
時に受信したデータをウィンドウ部品に表示するための
データが転送されることになる。この文を生成したら、
項目番号に1をたしてS49が成り立つまでループを繰
り返す。このフローチャートが動作することにより、下
りトランザクション形式の中にある項目数分の転送ステ
ートメントが生成される。これは実行時にクライアント
通信オブジェクト8がサーバプログラムから受信した受
信データをウィンドウ部品の中に転送し表示する意味を
持つ。
【0053】図11によって作成されるコードについて
図14を用いて説明する。図14は通信プログラム自動
生成ツール5の生成した通信関数の一例である。図14
において矩形で囲まれた各部分が図11の各ステップS
31からS39に対応する生成された関数コードであ
る。コードの説明と実行時にどのように動作するか説明
する。まずコードの説明であるが、S31で作成される
部分が関数のヘッダとエラー処理のためのステートメン
トである。関数の名前は通信オブジェクトの名前をここ
ではRPCとしているのでRPCとリクエストコード
(00000100)であるのでRPC_00000100となっている。ま
たエラーでジャンプするラベル名もその名前に_ERRORを
つけただけのラベル名になっている。次にS32のコー
ドはクライアント通信オブジェクトに対してリクエスト
コードを指定している。ここでのリクエストコードは
(00000100)であるので■00000100■をセットしてい
る。次に上りメッセージのコードがS33で出力されて
いる。得意先コードをあらわすTCODEというウィンドウ
部品から内容をクライアント通信オブジェクトに転送し
ている。次にS34でクライアント通信オブジェクトが
通信を行なうようになっている。次にS35でサーバか
ら送られてきた受信データを得意先のウィンドウ部品へ
転送することにより出力している。次にS36のコード
で通信がうまくいったことを示す関数のリターン値TRUE
がセットされており、通常エラーのない場合のコードが
生成されている。エラーがある場合のコードはS37以
降であり、S31で設定したラベルがでており、次にS
38でデフォルトのエラー処理ルーチンが呼ばれるだけ
のコードが生成されている。この場合の関数のリターン
値はエラーであったのでFalseとなる。そしてS39で
関数を終了するコードが生成されている。この関数RPC_
00000100を実行時に動作させると、ウィンドウ画面のTC
ODEに入力したデータ(ここでは得意先コード)がサー
バにリクエストコード00000100で通信され、サーバ側で
00000100に対応する処理が行われ、クライアント通信オ
ブジェクトへの結果を送信してくる。その結果がクライ
アント通信オブジェクトからTNAMEというウィンドウ部
品に転送され表示され、TNAMEというウィンドウ部品へ
はサーバで処理されて検索された、得意先コードに対応
する得意先名の日本語名称などが表示されるようなイメ
ージとなる。
【0054】実施の形態2.本実施の形態では、実施の
形態1で説明した上りメッセージと下りメッセージにお
いてウィンドウ部品に該当する項目名がなかった場合の
例について説明する。基本的な構成及び動作は実施の形
態1と同様であるので、実施の形態1と異なる部分につ
いて説明する。
【0055】まず、図17のダイアログについて説明す
る。図17は作成する通信コードの仕様を決定するため
のダイアログウィンドウである。実施の形態1で用いた
図7の「コード生成」メニューの「通信コード」メニュ
ーがマウスクリックされると表示されるダイアログで、
通信関数のコード生成の作り方のGUIによるインタフェ
ースである。該当ウィンドウ部品がないときの制御を行
うためのスイッチであり、上メッセージについてのスイ
ッチ23、下りメッセージについてのスイッチが24で
ある。その他の符号については後の実施の形態で使用す
るのでそのとき説明する。上りメッセージの作成や下り
メッセージの作成をする場合にウィンドウ部品リストに
取り出したトランザクション項目の名前が一致しなかっ
た場合にどのようなコードを生成するかを指定するスイ
ッチが23と24である。上り下りメッセージで変数と
空白そして作成しないという選択枝を選ぶことができ
る。これらのスイッチを選択しておくことにより実施の
形態1の図12と図13で説明した動作を変更すること
ができる。これによりウィンドウ部品に該当する項目名
がなかった場合にグローバルな変数に値を転送すること
が可能となる。次に図15と図16を使用して識別子と
してのコードを通信オブジェクト8のバッファに格納す
る手段が具体的にどのようにしてそのようなコードを生
成するかを説明する。図15は上りメッセージ作成にお
けるウィンドウ部品非該当処理のフローチャートであ
る。図15においてS54で変数リストに該当するトラ
ンザクション項目名があるかどうかをチェックする。も
し該当する変数があればS55で変数名を右辺に出力す
るコードを生成する。もし該当する変数がなく、図17
のダイアログで空白が指定されている場合にはS56で
通信コードの右辺に空白のステートメントを出力する。
空白の部分は後でプログラマが編集することになる。こ
のルーチンは図12と図13のS44とS51の処理ス
テップに挿入することによりウィンドウ部品が該当しな
い場合に変数が出力される。図16は下りメッセージ作
成におけるウィンドウ部品非該当処理のフローチャート
である。S57で変数リストにトランザクション項目名
があるかどうかをチェックする。もしあればS58で左
辺に変数名を出力した転送ステートメントを出力する。
もしなければ、S59において空白指定かどうかによっ
て左辺が空白のステートメントを出力する。これによっ
てウィンドウ部品以外でも通信を行うロジックを自動生
成することが可能となる。
【0056】実施の形態3.本実施の形態では,実施の
形態1で説明した上りメッセージと下りメッセージにお
いて生成する通信コードにコメントを付加する場合の例
について説明する。基本的な構成及び動作は実施の形態
1と同様であるので、実施の形態1と異なる部分につい
て説明する。
【0057】先ず、図17のダイアログについて説明す
る。図17は作成する通信コードの仕様を決定するため
のダイアログウィンドウである。実施例1で用いた図7
の「コード生成」メニューの「通信コード」メニューが
マウスクリックされると表示されるダイアログで、通信
関数のコード生成の作り方のGUIによるインタフェース
である。通信コードにコメントの作成を行うときの制御
を行うためのスイッチ26である。その他の符号につい
ては後の実施例で使用するのでそのとき説明する。通信
におけるメッセージ転送ステートメントで保守性を高め
るために、ソースコードの可読性を向上させる必要があ
る。このとき、ソースコードにコメントが挿入されてい
るとソースプログラムは解読しやすくなる。通信コード
にトランザクション項目につけられている項目名称やデ
ータ型、長さ、英数字項目名などを表示するためのスイ
ッチ26でそれらのコメントを挿入するかどうか選ぶこ
とができる。このスイッチを切り替えることにより上り
メッセージの作成や下りメッセージの作成においてコメ
ントを一緒に表示することが可能となる。
【0058】次に図18と図19を使用してトランザク
ション形式ファイルの項目名をコメント文として表示す
る手段が、具体的にどのようにしてそのようなコードを
表示するかを説明する。図18は上りメッセージ作成に
おけるコメント作成処理のフローチャートである。図1
8において上りメッセージにおけるコメント表示につい
て説明する。S60でコメント表示のスイッチの設定を
読みだしコメント表示かどうかをチェックする。もしコ
メント表示がなければそのままそのルーチンを終了す
る。もしコメント表示があればそのスイッチの内容に応
じて日本語名称、項目名、データ型、長さなどをコメン
トとして出力する。このルーチンは上りメッセージの作
成の中で呼ばれる(図12のフローチャート)。図19
は下りメッセージ作成におけるコメント作成処理のフロ
ーチャートである。図19において上りメッセージにお
けるコメント表示に説明する。S62でコメント表示の
スイッチの設定を読みだしコメント表示かどうかをチェ
ックする。もしコメント表示がなければそのままそのル
ーチンを終了する。もしコメント表示があればそのスイ
ッチの内容に応じて日本語名称、項目名、データ型、長
さなどをコメントとして出力する。このルーチンは下り
メッセージの作成の中で呼ばれる(図13のフローチャ
ート)。以上述べたように、これらの処理を追加するこ
とにより、わかりにくい通信コードのソースプログラム
にコメントを表示することが可能となる。
【0059】実施の形態4.本実施の形態では、実施の
形態1で説明した上りメッセージと下りメッセージにお
いて、トランザクション項目が配列項目で、かつ該当し
たウィンドウ部品が配列的なウィンドウ部品である場合
にソースを効率化する場合の例について説明する。基本
的な構成及び動作は実施の形態1と同様であるので、実
施の形態1と異なる部分について説明する。
【0060】先ず図17のダイアログについて説明を行
う。通信におけるソースプログラムの簡潔さ、保守性を
高めるために、自動生成したソースコードをより見易い
ものにする必要がある。トランザクション項目が配列で
ウィンドウ部品がグリッド上の表形式になった通信にお
いては通信のための自動生成されたコードが複雑で長い
コードになる場合がある。それを図17のFOR文の使用
スイッチ25により、くり返し構文を使用したよりわか
りやすい通信コードを生成することが可能になる。限ら
れた条件下でFOR文を使うことにより、ソースコードの
可読性が飛躍的に向上する。
【0061】次に図20と図21のフローチャートを使
用して具体的にFOR文の繰り返し構文がどのように生成
されるかを説明する。図20は上りメッセージ作成にお
ける該当トランザクションが配列項目処理のフローチャ
ートである。このフローチャートは上りメッセージの生
成の中から呼び出される(図12のフローチャート)。
これはトランザクション項目が配列的な項目になってい
る場合に起動される。配列的な項目とは1つの項目が配
列になっており同じ項目のくり返しを示すものである。
次にS64でウィンドウ部品クラスが配列的なウィンド
ウ部品であるかどうかチェックしている。配列的なウィ
ンドウ部品とは先程も説明した通り、グリッド上の表形
式な入出力項目を持つような部品である。もしS64の
チェックで該当するウィンドウ部品がそのようなグリッ
ド的な部品であればS65の処理を行う。チェックが成
り立たなければこの処理は行われない。S65ではウィ
ンドウ部品とトランザクション項目の数の比較計算を行
う。これはトランザクション項目を表形式の項目の1レ
コードに見立てるときにどちらの全体項目数が大きいか
をチェックしておくものである。次にS66で配列的な
ウィンドウ部品の転送のための先頭位置の計算を行う。
これは表形式の部品の1行目が固定的な見出しの場合も
あるので、それを計算するためのソースコードを生成す
るものである。次にS67でS65で計算した値をもと
にインデックス変数をの初期化のためのソースコード生
成とFOR文の作成を行う。次にS68において項目数分
終了したかどうかをチェックする。もし項目数分終了す
ればすべての通信コードが生成できたのでFOR文の終了
のための文をS71において作成する。S68のチェッ
クがなりたたなければS69とS70において通信の代
入文とインデックス変数に1を加えて表形式の1行をず
らすためのコードを生成する。これらの処理によって、
グリッド的なウィンドウ部品からクライアント通信オブ
ジェクトへの代入文がくり返し構文のFOR文によって構
成される。図21は下りメッセージ作成における該当ト
ランザクションが配列項目処理のフローチャートであ
る。図21も図20と同様に下りメッセージをFOR文化
するためのフローチャートである。このフローチャート
は上りメッセージの生成の中から呼び出される(図13
のフローチャート)。これはトランザクション項目が配
列的な項目になっている場合に起動される。次にS72
でウィンドウ部品が配列的なウィンドウ部品であるかど
うかチェックしている。もしS72のチェックで該当す
るウィンドウ部品がそのようなグリッド的な部品であれ
ばS73の処理を行う。チェックが成り立たなければこ
の処理は行われない。S73ではウィンドウ部品とトラ
ンザクション項目の数の比較計算を行う。これはトラン
ザクション項目を表形式の項目の1レコードに見立てる
ときにどちらの全体項目数が大きいかをチェックしてお
くものである。次にS74で配列的なウィンドウ部品の
転送のための先頭位置の計算を行う。これは表形式の部
品の1行目が固定的な見出しの場合もあるので、それを
計算するためのソースコードを生成するものである。次
にS75でS73で計算した値をもとにインデックス変
数をの初期化のためのソースコード生成とFOR文の作成
を行う。次にS76において項目数分終了したかどうか
をチェックする。もし項目数分終了すればすべての通信
コードが生成できたのでFOR文の終了のための文をS8
0において作成する。S76のチェックがなりたたなけ
ればS78とS79において通信の代入文とインデック
ス変数に1を加えて表形式の1行をずらすためのコード
を生成する。これらの処理によって、クライアント通信
オブジェクトからグリッド的なウィンドウ部品への代入
文がくり返し構文のFOR文によって構成される。
【0062】次に図22を使用して実際に生成されるコ
ードについて説明を行う。基本的な構成及び動作は実施
例1と同様であるので、実施例1と異なる部分について
説明する。図22は実際に生成される通信コードの例で
ある。通信関数の構成や上りメッセージの部分は実施例
1と同様である。ここでは下りメッセージがトランザク
ション項目が配列的で該当するウィンドウ部品がグリッ
ド的な部品であったとする。まず図22のS74で生成
されるコードは変数の宣言である。起点となるグリッド
上の位置計算をするためのロジックが生成されている。
基本的には0,0が起点となるが、見出し項目に1行目
を使用したり、1列目を使用したりすることがあるので
このようなコードが生成されている。次にIとJの項目
の番号を指定するためのインデックス変数が定義され、
初期化されている。ここから転送にFOR文を使用するた
めのコードとなる。S78とS79のループで作成され
るコードがクライアント通信オブジェクトからウィンド
ウ部品の表形式部品の項目への転送のためのコードが生
成されている。最後にFOR文の最後をあらわす文が生成
されてFORによるくり返し構文の終了を示している。
【0063】実施の形態5.本実施の形態では、実施の
形態1で説明したコード生成を任意のリクエストコード
について処理する場合の例について説明する。基本的な
構成及び動作は実施の形態1と同様であるので、実施の
形態1と異なる部分について説明する。図23は任意の
リクエストコードを選択するための処理のフローチャー
トである。また、既に説明したように、図17は作成す
る通信コードの仕様を決定するためのダイアログウィン
ドウである。実施の形態1で用いた図7の「コード生
成」メニューの「通信コード」メニューがマウスクリッ
クされると表示されるダイアログで、通信ロジックのコ
ード生成の作り方のGUIによるインタフェースである。
この中でリクエストコードを選択するリストボックス2
7がトランザクション形式ファイル5の中にあるリクエ
ストコードを表示する部分であり、マウスによる選択で
任意のリクエストコードを選択しそれにより任意のトラ
ンザクション形式を選択することができる。
【0064】図23により具体的な処理について説明す
る。実施の形態1ではトランザクション形式ファイル中
のすべてのリクエストコードについて通信関数が生成さ
れるので、一部のリクエストコードのみ変更された場合
に全体のコード生成をやり直す必要があったがこの機能
をいれることにより、任意のリクエストコードの通信コ
ードのみを生成しなおすことができる。S81によって
図17の選択されたリクエストコードを選択するリスト
ボックス27で選択されたリクエストコードを取り出
す。それについてS82で通信関数の作成処理を呼び出
す(図11のフローチャート)。これによって任意のリ
クエストコードの通信関数だけを作成しなおすことが可
能である。
【0065】実施の形態6.本実施の形態では、実施の
形態1で説明した通信コードの作成で自動生成された通
信関数とその関数を起動するためにウィンドウ部品のイ
ベント関数の中から生成された通信関数を呼び出す処理
の例について説明する。基本的な構成及び動作は実施の
形態1と同様であるので、実施の形態1と異なる部分に
ついて説明する。図24は通信コードの作成で自動生成
された通信関数とその関数を起動するためにウィンドウ
部品のイベント関数の中から生成された通信関数を結び
付けるためのダイアログウィンドウである。関数名を選
択するエリアが28、プログラムソースコードを解析し
た結果のウィンドウ部品一覧とキャプション表示エリア
が29、ウィンドウ部品が選択された場合にそのウィン
ドウ部品が持っているイベント一覧を表示するエリアが
30、実際に関数表示エリア28に表示されている関数
をイベント表示エリアに表示されているイベント関数に
割り付けを行なった状態を表示するエリアが31、割り
付けを行うボタン32、割り付けを解除するボタン3
3、コントロール選択ボタン34である。
【0066】図24について具体的な説明を行う。図7
の「イベント指定」メニュー22をマウスクリックする
と表示されるダイアログウィンドウが図24である。関
数名表示エリア28には実施例1で示したコード生成機
能によって生成された関数が一覧表示されている。これ
を選択することによって、これからウィンドウ部品のイ
ベントにその関数を割り当てることを示す。次にウィン
ドウ部品の一覧表示エリア29にはプログラムソースフ
ァイル6を読み込んだ時に生成されたウィンドウ部品情
報を利用して一覧が表示されている。これを選択するこ
とによって、右隣のイベント表示エリア30にそのウィ
ンドウ部品が持っているイベント名が表示される。イベ
ント名はウィンドウ部品クラスから決定されるものであ
る。その中のイベントをクリックし、セットボタン32
を押すと、割り付け状態を示す関数表示エリア28に表
示されている関数をイベント表示エリアに表示されてい
るイベント関数に割り付けを行なった状態を表示するエ
リア31に表示が行われる。
【0067】次に図25によって通信関数とウィンドウ
部品のイベントの割り付け処理のフローチャートを説明
する。図25はイベントに自動生成された通信ロジック
を割り付ける手段の動作を示すフローチャートである。
このフローチャートは図24のダイアログウィンドウが
表示されると起動される処理である。まず、S83によ
ってウィンドウ部品一覧エリア29にウィンドウ部品一
覧をセットする。これは実施例1のときにプログラムソ
ースファイルを読み込んだときにできたウィンドウ部品
情報リストから情報を参照することで可能となる。次に
S84でウィンドウ部品一覧表示エリア29にキャプシ
ョンを持っている部品があればキャプションを表示す
る。キャプションはボタンなどの表面についている名前
のことで、これをウィンドウ部品名と同時に表示される
ことでよりウィンドウ部品が、選択がしやすくなる。次
にS85でウィンドウ部品が選択されたかどうかチェッ
クする。チェックされていなければチェックされるまで
待つ。チェックされたらS86において選択されたウィ
ンドウ部品の情報からウィンドウクラスを得てイベント
名一覧表示をイベント表示エリア30に行う。次にS8
7でイベントが選択されセットボタン32がおされたこ
とをチェックする。チェックが成り立たなければ成り立
つまで待つ。次にチェックが成り立てばS88で現在設
定されている通信関数を選択されたイベントから呼び出
すコードを生成する。S89では処理終了が選択された
かどうかチェックし、終了ならこの処理を抜ける。
【0068】次に図26により実際に生成されるイベン
ト関数を説明する。図26は実際に生成されたイベント
関数のコードを示している。図26のRPCRtn=RPC_00000
100が図25のS88で生成された通信関数呼び出しの
コードである。このコードによりこのウィンドウ部品の
イベントが発生した場合にクライアント通信オブジェク
トによって通信が行われる。
【0069】実施の形態7.本実施の形態では,実施の
形態6で説明した通信コードの作成で自動生成された通
信関数とその関数を起動するためにウィンドウ部品のイ
ベント関数の中から生成された通信関数を呼び出す処理
の中でウィンドウ情報を選択したものだけを表示する例
について説明する。基本的な構成及び動作は実施の形態
6と同様であるので、実施の形態6と異なる部分につい
て説明する。
【0070】図27はウィンドウ部品を選択するための
ダイアログウィンドウである。このダイアログウィンド
ウは図24のコントロールの選択ボタン43が押される
と表示するものである。内容は通信プログラム自動生成
ツールがウィンドウクラスとして把握するウィンドウ部
品の一覧を表示するものである。このウィンドウ部品に
印がついたウィンドウ部品が図24のウィンドウ一覧表
示エリア29に表示される。イベントに関連を付けるウ
ィンドウ部品というのはほぼ決まっているという性質を
利用して、図27のダイアログウィンドウを活用すれば
図24のウィンドウ部品一覧表示エリア29に表示する
ウィンドウ部品を制限することができ、ウィンドウ部品
の選択がより容易に行なえるようになる。
【0071】次に図28のフローチャートを用いて実際
の処理について具体的に説明する。図28は実際にウィ
ンドウ部品一覧へウィンドウ部品名を表示するルーチン
のフローチャートである。このフローチャートはウィン
ドウ部品のイベントへ作成した通信関数を割り付けを行
うときに図24のダイアログウィンドウが表示された
時、ウィンドウ部品の選択ボタン34が押されたときに
表示される。S90においてウィンドウ部品の種類選択
ダイアログウィンドウ図27を表示する。次にウィンド
ウ部品一覧で選択されたウィンドウ部品の種類を読込
む。次に限定された部品のみを表示する手段によりウィ
ンドウ部品一覧表示で選択されたウィンドウ部品種類に
あうものだけを選択するように情報をセットする。この
処理により、実際にウィンドウ部品一覧表示を行うとき
にウィンドウ部品が選択されて図27で選択したウィン
ドウ部品だけが一覧に表示されるようになる。
【0072】実施の形態8.本実施の形態では、実施の
形態1で説明した通信コードの作成で通信エラー処理ロ
ジックを通信プロトコルに応じてエラー処理を切り替え
る処理の例について説明する。基本的な構成及び動作は
実施の形態1と同様であるので、実施の形態1と異なる
部分について説明する。
【0073】図29をもとに具体的な例を説明する。図
29は実際に通信関数のエラーロジックを切り替える場
合のフローチャートである。通信のエラーは実施の形態
1で説明したとおり、エラーをフックする関数をすべて
のコードを生成する前に最初にだしておくことで、エラ
ーがおこった時にエラーのためのラベルにジャンプする
ような実行系の仕組みになっている。しかし、実施の形
態1の方法では、いつでも同じエラー処理ルーチンしか
生成することができない。そのため図29に示す通信プ
ロトコルに応じてエラー処理ルーチンを切り替える手段
の動作であるフローチャート処理を加えて、例えばクラ
イアント通信オブジェクトの種類が複数あって、通信が
コネクション型とコネクションレス型の2種類になって
もおのおののクライアント通信オブジェクトに応じてそ
れぞれエラー処理を行うようにする。 まず、S93で
は通信プロトコルを取り出す。これはトランザクション
形式ファイルの中に通信プロトコルのタイプがコネクシ
ョン型、及びコネクションレス型などの区別があるため
にそれを参照する。次にS94で通信プロトコルを判別
する。通信プロトコルが通信支援プログラム自動生成ツ
ールが判別するものであればS95へ進む。もし非該当
であればデフォルトのエラー処理をするため、処理を終
了する。S95ではエラー処理ファイルを通信プロトコ
ルに応じて用意してあり、それを読み込む。コネクショ
ン型はCONNECT.DAT、コネクションレス型はNOCONECT.DA
Tなどあらかじめファイル名は決めておく。それを読み
込み、S96でそれを通信プロトコルに応じたエラー処
理関数として作成する。そして、実施の形態1で生成さ
れた通信処理のあとにここで生成したエラー処理呼び出
しを挿入する.これにより、本体のエラー処理関数が1
つ全体として増え、さらにそのエラー処理関数を呼び出
すエラー関数呼び出し記述が各通信関数のエラー処理部
に追加される。
【0074】次に図30によりあらかじめファイルに設
定しておくエラー処理関数を説明する。図30は、エラ
ー処理関数の一部である。これは通信プロトコルごとに
エラー処理のルーチンが異なるため、あらかじめ通信の
エラー処理を行ないたいエラー番号をきめてそれに対応
するメッセージが表示するようにしたものである。エラ
ー番号などはクライアント通信オブジェクトの種類によ
って異なるが、このようにファイルにしておけば容易に
変更できる。
【0075】図31は実際に図30でしめされた通信エ
ラーロジックを呼びだす関数呼び出しの一例である。エ
ラーがあるとエラーのラベル(図31の1行目)に飛ん
できてエラー処理関数が呼ばれる仕組みである。図31
の矩形で囲んだ部分が図29のS97で挿入される関数
の部分である。
【0076】実施の形態9.本実施の形態では、実施の
形態1で説明した通信コードの作成で通信プロトコルに
応じて通信処理コードを変更する処理の例について説明
する。基本的な構成及び動作は実施の形態1と同様であ
るので、実施の形態1と異なる部分について説明する。
【0077】図32と図33を用いて具体的な例につい
て説明する。図32は通信プロトコルに応じて通信オブ
ジェクトを選択する手段の動作を示すフローチャートで
ある。クライアント通信オブジェクトは1つだけではな
くコネクション型、コネクションレス型と複数に増えた
場合、通信のロジックもクライアント通信オブジェクト
に対応して変更していく必要がある。実施例1ではコネ
クションレス型の通信コード生成の例について示してい
たが、コネクション型のクライアント通信オブジェクト
が存在する場合には通信ロジックがことなるので動作し
なくなってしまう。そこで、通信プロトコルの判別機能
処理を実施例1に施す。通信プロトコルはトランザクシ
ョン形式ファイル5に含まれているのでS98でその通
信プロトコルを判別する。もしコネクション型であれば
S99に処理を進める。もしコネクションレス型であれ
ばなにもしなくてもいいので処理を終了する。S99で
は上りメッセージの通信の前にコネクション処理のため
の通信オブジェクト.CONECT=TRUEの文を作成し挿入す
る。これによりコネクション型のクライアント通信オブ
ジェクトでサーバプログラムとの接続が行われ、通信路
が確保される。次にS100において下りメッセージの
あとに通信オブジェクト.CONECT=FALSEの文を作成し挿
入する。これによりコネクション型のクライアント通信
オブジェクトにおいてサーバプログラムとのコネクショ
ンが開放され通信路が閉鎖される。
【0078】図33でコネクション型通信の具体的な例
について説明する。図33は実際に生成される通信ロジ
ックの例であり、クライアント通信オブジェクトがコネ
クション型の場合に生成された通信コードである。図3
2のS99とS100の処理によってクライアント通信
オブジェクトへの通信のコネクトの接続、切断の命令が
追加されている。
【0079】実施の形態10.以上述べてきた通信プロ
グラム自動生成装置を備えたトランザクション通信装置
であるクライアントと本発明とは別の手段により送受信
データを生成するサーバとを接続することにより、トラ
ンザクション通信を実施することが可能である。また、
逆に、本発明による通信プログラム自動生成装置を備え
たトランザクション通信装置であるサーバと本発明とは
別の手段により送受信データを生成するクライアントと
を接続することにより、トランザクション通信を実施す
ることも可能である。なお、当然のことながら、本発明
によるトランザクション通信装置であるサーバとクライ
アントを接続することによっても、トランザクション通
信を実施することが可能である。
【0080】
【発明の効果】この発明は、以上説明したように構成さ
れているので、以下に示すような効果を奏する。
【0081】トランザクション形式ファィルとプログラ
ムソースファイルとをそれぞれ参照し、トランザクショ
ンデータとウィンドウ部品項目とを関連づけることによ
り、通信部分の項目間のデータの受け渡しロジックを自
動生成するようにしたので、クライアントサーバ型のア
プリケーションシステム構成を開発するときに整合性を
取りにくい部分を容易に実現することができる。
【0082】また、プログラムソースファイルは、ウィ
ンドウ部品部、変数宣言部、関数部から構成されている
ので、トランザクション形式ファイルの項目名とウイン
ドウ部品名とを一致させた通信関数を生成させることが
できる。
【0083】さらに、トランザクション形式ファイルの
トランザクションデータ項目をコメント文として表示す
る手段を設けたので、プログラマは保守性の高いプログ
ラムを生産できる。
【0084】また、トランザクション形式ファイルのト
ランザクションデータ項目が配列項目で、かつ、対応す
るプログラムソースファイルのウィンドウ部品が配列項
目である場合に、通信プログラムのソースプログラムを
くり返しのためのループ文で生成する手段を設けたの
で、プログラムステップ数の少ないプログラムを生成す
ることができる。
【0085】さらにまた、複数のトランザクション形式
ファイルの中からロジックを自動生成する任意のトラン
ザクションを選択する手段を設けたので、必要なトラン
ザクションデータを即時に送信することができる。
【0086】また、ウインドウ部品に転送されたデータ
をトランザクション形式ファイルを参照しつつバッファ
に格納し送信データを生成する通信オブジェクトを備え
たことにより、チェック済のトランザクションデータを
送信することができる。
【0087】さらに、受信データをバッファに格納しト
ランザクション形式ファイルを参照しつつ受信データを
分割してウィンドウ部品に転送する通信オブジェクトを
備えたことにより、受信データをチェック後にウインド
ウ部品に格納することができる。
【0088】また、上記トランザクションデータを上記
ウィンドウ部品に格納したとき、そのトランザクション
データを画面に表示するようにしたので、送受信データ
を確認することができる。
【0089】さらにまた、トランザクション形式ファイ
ルの項目名とプログラムソースファィルのウインドウ部
品名とが一致しなかったときに予め設定した識別子を通
信オブジェクトのバッファに格納するように構成したの
で、ウィンドウ部品項目とトランザクションデータ項目
が一致しなかった場合にも、適切な通信プログラムロジ
ックが自動生成され、プログラマのコーディングの負荷
が軽減できる。
【0090】また、ウィンドウ部品のイベントに生成し
た通信ロジックを割り付ける手段を設けたので、任意の
ウィンドウ部品でイベントが発生したときに通信ロジッ
クを起動することができる。
【0091】さらに、イベント割り付けを行うウィンド
ウ部品項目を限定する手段を設けたので、ウィンドウ部
品の種類が多い場合に、その表示を制限することが容易
に行なえ、イベントと生成した通信ロジックを容易に割
り付けることができる。
【0092】また、通信プロトコルに応じたエラー処理
ルーチンをファイルとして設け、クライアント通信オブ
ジェクトが使用する通信プロトコルに応じてエラー処理
ルーチンを切り替える手段を設けたので、通信上発生す
る様々なエラー種別をプログラマが制御できるととも
に、エラー処理ロジックも自動生成されるためプログラ
ムの生産性が向上する。
【0093】さらにまた、通信プロトコルに応じて複数
のクライアント通信オブジェクトを設け、これらの複数
の通信オブジェクトを選択する手段を設けたので、通信
プロトコルに応じたプログラムを自動生成することがで
きる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1を示す全体構成図で
ある。
【図2】 この発明の実施の形態1を示すトランザクシ
ョン形式ファイルの構成図である。
【図3】 この発明の実施の形態1を示すプログラムソ
ースファイルの構成図である。
【図4】 この発明の実施の形態1を示すトランザクシ
ョン形式作成ツール概観図である。
【図5】 この発明の実施の形態1を示す通信プログラ
ム自動生成ツールメインウィンドウ概観図である。
【図6】 この発明の実施の形態1を示す通信プログラ
ム自動生成ツールファイルメニュー概観図である。
【図7】 この発明の実施の形態1を示す通信プログラ
ム自動生成ツールコード生成メニュー概観図である。
【図8】 この発明の実施の形態1を示すプログラムソ
ースファイルの入力フローチャートである。
【図9】 この発明の実施の形態1を示す変数の読込み
フローチャートである。
【図10】 この発明の実施の形態1を示す関数の読込
みフローチャートである。
【図11】 この発明の実施の形態1を示す通信関数作
成フローチャートである。
【図12】 この発明の実施の形態1を示す上りメッセ
ージ作成フローチャートである。
【図13】 この発明の実施の形態1を示す下りメッセ
ージ作成フローチャートである。
【図14】 この発明の実施の形態1を示す通信関数の
一例である。
【図15】 この発明の実施の形態2を示す上りメッセ
ージ作成におけるウィンドウ部品非該当処理フローチャ
ートである。
【図16】 この発明の実施の形態2を示す下りメッセ
ージ作成におけるウィンドウ部品非該当処理フローチャ
ートである。
【図17】 この発明の実施の形態2、3、4、5を示
す通信コード仕様ダイアログウィンドウの概観図であ
る。
【図18】 この発明の実施の形態3を示す上りメッセ
ージ作成におけるコメント作成処理フローチャートであ
る。
【図19】 この発明の実施の形態3を示す下りメッセ
ージ作成におけるコメント作成処理フローチャートであ
る。
【図20】 この発明の実施の形態4を示す上りメッセ
ージにおける該当トランザクションが配列項目の処理フ
ローチャートである。
【図21】 この発明の実施の形態4を示す下りメッセ
ージにおける該当トランザクションが配列項目の処理フ
ローチャートである。
【図22】 この発明の実施の形態4を示す配列項目の
場合の通信関数例である。
【図23】 この発明の実施の形態5を示すリクエスト
コード選択処理フローチャートである。
【図24】 この発明の実施の形態6を示すイベント割
り付けダイアログウィンドウの概観図である。
【図25】 この発明の実施の形態6を示す通信関数と
ウィンドウ部品のイベント割り付け処理フローチャート
である。
【図26】 この発明の実施の形態6を示すイベントの
関数例である。
【図27】 この発明の実施の形態7を示すウィンドウ
部品選択ダイアログウィンドウの概観図である。
【図28】 この発明の実施の形態7を示すウィンドウ
部品一覧へウィンドウ部品名のセット処理フローチャー
トである。
【図29】 この発明の実施の形態8を示す通信エラー
ロジック作成処理フローチャートである。
【図30】 この発明の実施の形態8を示すエラーファ
イルへ登録するエラー処理関数例である。
【図31】 この発明の実施の形態8を示すエラー処理
関数呼び出しの例である。
【図32】 この発明の実施の形態9を示す通信プロト
コルの判別処理フローチャートである。
【図33】 この発明の実施の形態9を示すコネクショ
ン型の通信関数の例である。
【図34】 従来例の分散ファイルシステムNFS(Ne
twork File System)を示す概要図である。
【図35】 従来例のNFSサービスを行うソフトウェ
アの働きを示す概念図である。
【図36】 従来例のRPC(Remote Procedure Cal
l)概要を示すフロー図である。
【図37】 従来例のRPCGEN概要を示す構成図で
ある。
【符号の説明】
1 クライアントマシン、3 トランザクション形式フ
ァイル、4 プログラムソースファイル、5 通信プロ
グラム自動生成ツール、8 通信オブジェクト、11
上りトランザクション、12下りトランザクション、1
3 項目名、14 ウィンドウ部品部、15 変数宣言
部、16 関数部

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 定義されたトランザクションデータのデ
    ータ形式を格納するトランザクション形式ファイル、通
    信ロジックを規定する通信関数の定義情報を有するプロ
    グラムソースファイル、上記トランザクション形式ファ
    イルの項目名と上記プログラムソースファイルのウィン
    ドウ部品名とを一致させた通信関数を含む通信プログラ
    ムを生成する通信プログラム自動生成ツールを備えたこ
    とを特徴とする通信プログラム自動生成装置。
  2. 【請求項2】 上記プログラムソースファィルは、ウィ
    ンドウ部品の種別を表すウインドウ部品クラス及びこれ
    らの属性であるプロパティからなるウィンドウ部品部、
    このウィンドウ部品部で使用される変数の定義を行う変
    数宣言部、上記ウィンドウ部品及び変数を使用して通信
    ロジックを規程する通信関数を定義する関数部からなる
    ことを特徴とする請求項1に記載の通信プログラム自動
    生成装置。
  3. 【請求項3】 上記トランザクション形式ファイルの項
    目名をコメント文として表示する手段を設けたことを特
    徴とする請求項1又は請求項2のいずれかに記載の通信
    プログラム自動生成装置。
  4. 【請求項4】 上記トランザクション形式ファイルの項
    目が配列項目で、かつ、対応する上記プログラムソース
    ファイルのウィンドウ部品が配列項目であるとき上記通
    信プログラムのソースプログラムをくり返しのためのル
    ープ文で生成する手段を設けたことを特徴とする請求項
    1又は請求項2のいずれかに記載の通信プログラム自動
    生成装置。
  5. 【請求項5】 複数のトランザクション形式が格納され
    た上記トランザクション形式ファイルの中から任意のト
    ランザクション形式を選択する手段を設けたことを特徴
    とする請求項1又は請求項2のいずれかに記載の通信プ
    ログラム自動生成装置。
  6. 【請求項6】 定義されたトランザクションデータのデ
    ータ形式を格納するトランザクション形式ファイル、通
    信ロジックを規定する通信関数の定義情報を有するプロ
    グラムソースファイル、上記トランザクション形式ファ
    イルの項目名と上記プログラムソースファイルのウイン
    ドウ部品名とを一致させた通信関数を含む通信プログラ
    ムを生成する通信プログラム自動生成ツール、上記ウィ
    ンドウ部品に転送されたデータを上記トランザクション
    形式ファイルを参照しつつバッファに格納し送信データ
    を生成する通信オブジェクトを備えたことを特徴とする
    トランザクション通信装置。
  7. 【請求項7】 定義されたトランザクションデータのデ
    ータ形式を格納するトランザクション形式ファイル、通
    信ロジックを規定する通信関数の定義情報を有するプロ
    グラムソースファイル、上記トランザクション形式ファ
    イルの項目名と上記プログラムソースファイルのウィン
    ドウ部品名とを一致させた通信関数を含む通信プログラ
    ムを生成する通信プログラム自動生成ツール、受信デー
    タをバッファに格納し上記トランザクション形式ファイ
    ルを参照しつつ上記受信データを分割して上記ウィンド
    ウ部品に転送する通信オブジェクトを備えたことを特徴
    とするトランザクション通信装置。
  8. 【請求項8】 上記ウインドウ部品に格納したデータを
    画面に表示することを特徴とする請求項6又は請求項7
    のいずれかに記載のトランザクション通信装置。
  9. 【請求項9】 上記トランザクション形式ファイルの項
    目名と上記プログラムソースファィルのウィンドウ部品
    名とが一致しなかったときに予め設定した識別子を上記
    通信オブジェクトのバッファに格納する手段を有するこ
    とを特徴とする請求項6又は請求項7のいずれかに記載
    のトランザクション通信装置。
  10. 【請求項10】 上記プログラムソースファィルのウィ
    ンドウ部品に設定されたイベントに自動生成された上記
    通信ロジックを割り付ける手段を設けたことを特徴とす
    る請求項6又は請求項7のいずれかに記載のトランザク
    ション通信装置。
  11. 【請求項11】 上記イベントに自動生成された上記通
    信ロジックを割り付けるとき割り付けるウィンドウ部品
    を選択する画面上に予め限定されたウィンドウ部品のみ
    を表示する手段を設けたことを特徴とする請求項10に
    記載のトランザクション通信装置。
  12. 【請求項12】 上記通信オブジェクトが使用する通信
    プロトコルに応じてエラー処理ルーチンを切り替える手
    段を設けたことを特徴とする請求項6又は請求項7のい
    ずれかに記載のトランザクション通信装置。
  13. 【請求項13】 複数の上記通信オブジェクトを設け、
    通信プロトコルに応じて上記通信オブジェクトを選択す
    る手段を設けたことを特徴とする請求項6又は請求項7
    のいずれかに記載のトランザクション通信装置。
  14. 【請求項14】 クライアントにおける通信ロジックを
    規定する通信関数の定義情報を有するプログラムソース
    ファイルとトランザクション形式ファイルの上りトラン
    ザクションの項目名をそれぞれ参照し上記項目名を取り
    込んだ通信関数を含む通信プログラムを生成するステッ
    プ、この通信プログラムのウィンドウ部品にデータが格
    納されるステップ、そのウィンドウ部品に格納されたデ
    ータをクライアント通信オブジェクトのバッファに格納
    し上りメッセージを作成するステップ、その上りメッセ
    ージをサーバへ送信するステップ、サーバで処理された
    後の下りメッセージを受信し通信オブジェクトのバッフ
    ァに格納するステップ、その受信データを上記トランザ
    クション形式ファイルの下りトランザクションの項目名
    に対応させて分割しそれぞれの該当するウィンドウ部品
    へ転送するステツプからなるトランザクション通信方
    法。
  15. 【請求項15】 サーバにおける通信ロジックを規定す
    る通信関数の定義情報を有するプログラムソースファイ
    ルとトランザクション形式ファイルの上りトランザクシ
    ョンの項目名をそれぞれ参照し上記項目名を取り込んだ
    通信関数を含む通信プログラムを生成するステップ、こ
    の通信プログラムのウィンドウ部品にデータが格納され
    るステップ、そのウィンドウ部品に格納されたデータを
    通信オブジェクトのバッファに格納し上りメッセージを
    作成するステップ、その上りメッセージをクライアント
    へ送信するステップ、クライアントで処理された後の下
    りメッセージを受信し通信オブジェクトのバッファに格
    納するステップ、その受信データを上記トランザクショ
    ン形式ファイルの下りトランザクションの項目名に対応
    させて分割しそれぞれの該当するウィンドウ部品へ転送
    するステツプからなるトランザクション通信方法。
JP7335185A 1995-12-22 1995-12-22 通信プログラム自動生成装置及びトランザクション通信装置並びにトランザクション通信方法 Abandoned JPH09179729A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7335185A JPH09179729A (ja) 1995-12-22 1995-12-22 通信プログラム自動生成装置及びトランザクション通信装置並びにトランザクション通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7335185A JPH09179729A (ja) 1995-12-22 1995-12-22 通信プログラム自動生成装置及びトランザクション通信装置並びにトランザクション通信方法

Publications (1)

Publication Number Publication Date
JPH09179729A true JPH09179729A (ja) 1997-07-11

Family

ID=18285717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7335185A Abandoned JPH09179729A (ja) 1995-12-22 1995-12-22 通信プログラム自動生成装置及びトランザクション通信装置並びにトランザクション通信方法

Country Status (1)

Country Link
JP (1) JPH09179729A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041805A (ja) * 2005-08-02 2007-02-15 Hitachi Ltd プログラム生成装置、プログラム生成方法及びコンパイラ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041805A (ja) * 2005-08-02 2007-02-15 Hitachi Ltd プログラム生成装置、プログラム生成方法及びコンパイラ

Similar Documents

Publication Publication Date Title
CN109840429B (zh) 智能合约部署、调用方法和装置
US20210034336A1 (en) Executing a process-based software application in a first computing environment and a second computing environment
US7917888B2 (en) System and method for building multi-modal and multi-channel applications
US5625823A (en) Method and apparatus for controlling connected computers without programming
US6337696B1 (en) System and method for facilitating generation and editing of event handlers
US6651240B1 (en) Object-oriented software development support apparatus and development support method
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
US5212792A (en) Method and apparatus for controlling execution of tools in a computer-aided software engineering system
JP3839468B2 (ja) 国際データ処理システム
US20020055939A1 (en) System for a configurable open database connectivity conduit
JP2001306308A (ja) データ中心アプリケーションのクラス定義方法
JP2000132521A (ja) 異なるソ―ス間でのデ―タ項目移動および階層オブジェクト指向表現のための方法および装置
EP0612014B1 (en) Menu inquiry system
CN110764752B (zh) 实现Restful服务图形化服务编排的系统及其方法
JPH0749765A (ja) 複数の適用業務プログラムを統合化グラフィカル・ユーザ環境へ統合化するための方法
JPH08339355A (ja) 分散形システムでの処理タスク実行呼び出し方法及び装置
CN111506304A (zh) 一种基于参数配置的流水线构建方法及系统
JPH0683603A (ja) オブジェクト・クラスのバッチ登録の方法とシステム
CN113918637A (zh) 一种基于bpmn2.0规范的流程引擎平台创建方法及系统
US5655067A (en) Animation generating method in a design supporting system
CN113821565A (zh) 一种多数据源同步数据的方法
CN110990011A (zh) 一种自动化接口的数据请求方法
JPH11167584A (ja) ページ遷移方法及びその実施装置並びにその処理プログラムとデータを記録した媒体
JPH08235098A (ja) 分散アプリケーション通信方式
JPH09179729A (ja) 通信プログラム自動生成装置及びトランザクション通信装置並びにトランザクション通信方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20040715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041012

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20041209