JP3904037B2 - 遠隔手続管理装置及び遠隔手続管理方法 - Google Patents
遠隔手続管理装置及び遠隔手続管理方法 Download PDFInfo
- Publication number
- JP3904037B2 JP3904037B2 JP20801596A JP20801596A JP3904037B2 JP 3904037 B2 JP3904037 B2 JP 3904037B2 JP 20801596 A JP20801596 A JP 20801596A JP 20801596 A JP20801596 A JP 20801596A JP 3904037 B2 JP3904037 B2 JP 3904037B2
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- unit
- expression
- remote
- argument
- 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.)
- Expired - Lifetime
Links
Images
Description
【発明の属する技術分野】
本発明は、情報処理を行なう複数の計算機システムがネットワークで結ばれたネットワーク情報システムで使用され、遠隔手続の管理を行なう遠隔手続管理装置および遠隔手続管理方法に関するものである。
【0002】
【従来の技術】
近年、計算機システムをネットワークで結んだネットワーク情報システムが普及し、ネットワークに接続されている自機以外の例えばサーバ等にサービスを依頼することによって処理が実行され、必要な情報を得ることができる。しかし、このようなサービスを受ける場合、最初から完成した遠隔手続の依頼を行なわなければならないため、遠隔手続を実行するサーバ側の仕様をよく熟知していないと利用できないという問題がある。
【0003】
例えば、CORBA(Common Object Request Broker Architecture and Specification)は、オブジェクト指向に関する標準化団体Object Management Groupによって開発された分散オブジェクトに関する標準仕様である。Interface RepositoryはCORBAで規定されるORB(Object Request Broker)のコンポーネントのひとつであり、オブジェクトに対するインタフェース定義を永続化する機能を持つ。
【0004】
ORBはInterface Repositoryで管理されるオブジェクトのインタフェース定義を以下のように用いることが可能であるとしている。
・リクエストのタイプチェック
・インタフェース・インヘリタンス・グラフの正当性のチェック
・異なるORBの実現間でのインタオペラビリティの提供
・インタフェース定義のインストールと配布
・インタフェース・ブラウザ環境の支援
・言語系に対するインタフェース情報の提供
・エンドユーザに対するコンポーネントの提供
しかしながら、OMGの規定するInterface Repositoryでは、オブジェクトに対するメッセージに不正が存在した場合に、オブジェクトがインタフェース情報を直接メッセージ送信元のオブジェクトに返すことや、オブジェクトの多段接続が行なわれている場合にインタフェース情報を多段にメッセージ送信元に返すこと、などが規定されていない。そのため、例えば、引数が未確定のままの遠隔手続を遠隔手続管理システムに実行させても意味のある実行は行なわれないし、実行の過程で呼出クライアントに未確定の引数を問い合わせることはなく、ユーザが会話的に引数を変更することはできない。
【0005】
別の例として、例えば、特開平7−282017号公報に開示されるインタフェース定義ファイル生成装置では、サーバがクライアントに提供する手続を定義したソースプログラムから、分散処理環境提供のスタブ生成用コンパイラが規定する言語によって手続の仕様を記述したインタフェース定義ファイルを生成する装置が提供される。これによれば、サーバ側からクライアントへインタフェース情報が渡される。しかし、この装置の場合も、例えば、引数が未確定のままの遠隔手続呼出式を遠隔手続管理システムに実行させることは想定されていないし、未定義であることを実行の過程で呼出クライアントに報知することもない。そのため、会話的に引数を変更することはできない。
【0006】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、引数が未確定で遠隔手続が実行された、あるいは不正な引数が与えられ遠隔手続が実行された場合に、ユーザが会話的に引数を与えることにより遠隔手続を再実行することが可能な遠隔手続管理装置および遠隔手続管理方法を提供することを目的とするものである。
【0007】
【課題を解決するための手段】
請求項1に記載の発明は、情報処理を行なう複数の計算機システムがネットワークで結ばれたネットワーク情報システムで行なわれる遠隔手続を管理する遠隔手続管理装置において、通信手段と、ユーザにより入力され前記通信手段で受信した手続呼出式を解析する手続呼出式解析手段と、複数の遠隔手続保持手段と、前記手続呼出式解析手段からの要求に基づき前記遠隔手続保持手段を検索する遠隔手続検索手段を有し、それぞれの前記遠隔手続保持手段は、属性を保持する属性保持手段と、手続仕様を出力する手続仕様公開手段と、引数に従い手続を実行する手続実行手段を有し、前記通信手段で手続呼出式を受信すると、前記手続呼出式解析手段で前記手続呼出式を解析して前記手続呼出式に該当する属性を前記属性保持手段が保持する前記遠隔手続保持手段を前記遠隔手続検索手段により検索し、検索された前記遠隔手続保持手段の手続実行手段に前記手続呼出式に基づき引数の割当を入力して手続を実行させ、前記手続実行手段で手続の実行の際に未割当の引数が存在する場合には、前記手続仕様公開手段に対して仕様を公開するよう要求し、手続仕様公開手段は手続仕様を生成し、該手続仕様を前記通信手段からクライアントへ送信し該クライアントで表示を受けたユーザによる引数の割当を前記通信手段で受け取って前記手続実行手段による手続の実行を進めることを特徴とするものである。
【0008】
請求項2に記載の発明は、請求項1に記載の遠隔手続管理装置において、前記手続呼出式解析手段は、与えられた手続呼出式の解析を、他の前記遠隔手続保持手段を再帰的に呼び出して行なうことを特徴とするものである。
【0009】
請求項3に記載の発明は、情報処理を行なう複数の計算機システムがネットワークで結ばれたネットワーク情報システムで行なわれる遠隔手続を管理する遠隔手続管理方法において、引数に従い遠隔手続の実行を行うとともに手続仕様を公開した複数の遠隔手続保持手段を有しており、ユーザにより入力された手続呼出式を手続呼出式解析手段で解析して前記手続呼出式に該当する属性を前記属性保持手段が保持する前記遠隔手続保持手段を遠隔手続検索手段により検索し、検索された前記遠隔手続保持手段の手続実行手段に前記手続呼出式に基づき引数の割当を入力して手続を実行させ、前記手続実行手段で手続の実行の際に未割当の引数が存在する場合には、手続仕様を前記手続仕様公開手段により生成してクライアントへ送信し、該クライアントで表示された該手続仕様に従って行なわれるユーザによる引数の割当を受け取って前記手続実行手段による手続の実行を進めることを特徴とするものである。
【0012】
【発明の実施の形態】
図1は、本発明の遠隔手続管理装置の第1の実施の形態を示すブロック図である。図中、1は遠隔手続クライアント部、2は遠隔手続サーバ部、11は通信部、12はユーザ入力部、13は手続呼出式生成部、14は応答解析部、15はユーザ出力部、21は通信部、22は手続呼出式解析部、23は束縛置換部、24は遠隔手続検索部、25−1〜Mは遠隔手続保持部、26−1〜Mは属性保持部、27−1〜Mは手続仕様公開部、28−1〜Mは手続実行部、29−1〜Mは束縛要求処理部である。この第1の実施の形態は、手続呼出式において束縛されていない変数を、手続実行時に必要に応じて束縛する方式について示すものである。
【0013】
遠隔手続管理装置は、遠隔手続クライアント部1と遠隔手続サーバ部2から構成される。一般には、遠隔手続管理装置は1個以上の任意個の遠隔手続クライアント部1と、1個以上の任意個の遠隔手続サーバ部2から構成されていてよい。
【0014】
遠隔手続クライアント部1は、通信部11、ユーザ入力部12、手続呼出式生成部13、応答解析部14、ユーザ出力部15から構成される。通信部11は、手続呼出式生成部13から入力される手続呼出式を遠隔の通信部に対して送信するとともに、送信先の通信部からの応答を受信し、受信した応答を応答解析部14に出力する。ユーザ入力部12は、キーボード、ポインティング・デバイス等の入力装置を含み、ユーザからの入力により手続呼出式生成部13に対する手続呼出式生成要求を行なう。手続呼出式生成部13は、ユーザ入力部12からの要求に応じて、手続呼出式を生成し、通信部11に出力する。応答解析部14は、通信部11から入力される応答を解析し、ユーザ出力部15に対して応答をユーザに提示するよう要求するとともに、手続呼出式を生成するための情報である手続呼出式生成情報を手続呼出式生成部13に出力する。ユーザ出力部15は、応答解析部14からの要求に基づき、実行結果を例えば文字、画像および音声情報としてユーザに提示する。
【0015】
遠隔手続サーバ部2は、1個の通信部21、1個の手続呼出式解析部22、1個の束縛置換部23、1個の遠隔手続検索部24、M個の遠隔手続保持部25−1〜Mにより構成される。通信部21は、手続呼出式を受信し、手続呼出式解析部22に出力するとともに、手続の実行結果を送信する。手続呼出式解析部22は、通信部21から入力される手続呼出式を解析する。束縛置換部23は、手続呼出式解析部22から束縛置換式を入力し、束縛置換を行なった結果を手続呼出式として手続呼出式解析部22に出力する。遠隔手続検索部24は、手続呼出式解析部22から検索式を入力し、遠隔手続サーバ部2に属する遠隔手続保持部25−1〜Mの中から検索式にマッチする遠隔手続保持部を検索する。
【0016】
遠隔手続保持部25−1〜Mは、属性保持部26−1〜M、手続仕様公開部27−1〜M、手続実行部28−1〜M、束縛要求処理部29−1〜Mにより構成されている。属性保持部26−1〜Mには、遠隔手続保持部25−1〜Mを一意に識別するための識別子を表わす属性が、属性名と属性値のペアのリストとして保持されている。一般的には、属性保持部26−1〜Mには、任意個の属性と属性値のペアが保持されていてもよく、1個以上の属性を指定することにより遠隔手続保持部を一意に識別することができるような属性が保持されていればよい。
【0017】
手続仕様公開部27−1〜Mには、手続の引数に関する形式言語による記述、手続の引数に関する自然言語による記述、手続から返される応答に関する形式言語による記述、手続から返される応答に関する自然言語による記述、手続の動作に関する形式言語による記述、手続の動作に関する自然言語による記述、手続呼出式を生成するための手続呼出式生成情報、引数のデフォルト値が保持されている。一般的には、手続仕様公開部27−1〜Mには、これらのうちの1個以上の要素を持つ任意の部分集合が保持されていてもよい。
【0018】
手続実行部28−1〜Mは、手続呼出式解析部22によって入力される割当に従い、手続を実行する。手続の実行の過程で他の遠隔手続保持部に対して手続の実行を要求する必要が発生した場合は、手続呼出式解析部22を通じて呼出要求を行なう。手続実行部28−1〜Mは、手続が終了すると、手続の実行結果として応答を返す。
【0019】
束縛要求処理部29−1〜Mは、手続実行部28−1〜Mが他の遠隔手続保持部に対して手続の実行を要求した応答として、束縛要求が返された場合、返された束縛要求の応答を手続実行部28−1〜Mより入力し、第2の束縛要求応答を生成する。
【0020】
以下、具体例を用いながら説明する。この第1の実施の形態では、手続呼出式生成情報は、形式言語であるS式により表わされるものとし、S式の第1要素の記号“bind”により、引数の割り当てを促す手続仕様であることを、S式の第2要素のリストにより割り当ての必要な引数とそのデフォルト値を、S式の第3要素により検索式を表わすこととする。例えば、(bind (v1 v2=(times v1=2 v2=undef)) plus)は手続仕様を表わす応答であり、割り当ての必要な引数はv1,v2であり、引数v1はデフォルト値を持たず、v2はデフォルト値が(times v1=2 v2=undef)であり、検索式がplusであることを表わす。
【0021】
また、属性保持部26−1〜Mには、少なくとも属性“name”が保持されているものとする。さらに、便宜的に全ての手続実行部28−1〜Mは、v1,v2,v3,・・・という名前の引数を持つとする。一般的には、手続実行部28−1〜Mは任意の名前の引数を持っていてよい。属性“name”の属性値が“fname”であるような属性保持部を持つ遠隔手続保持部が、引数v1,v2,・・・を持ち、引数v1に値a1、引数v2に値a2、・・・を割り当てる場合の手続呼び出し式を、(fname v1=a1 v2=a2 ・・・)と表記することとする。また、引数v3,v4,・・・に対して割当が存在しないことをv3=undef,v4=undef,・・・と表記する。
【0022】
各部の動作の一例を説明する。図2は、本発明の遠隔手続管理装置の第1の実施の形態における手続呼出式解析部22の動作の一例を示すフローチャートである。ここで、S式(a1 ・・・ ai ・・・ an)のa1を第1要素と呼び、aiを第i要素と呼ぶ。
【0023】
S41において、入力された手続呼出式を式1とする。また、式1の第1要素を式2とし、式1の第1要素を取り除いた残りの式を式3とする。S42において、式2がリストか否かを判定し、式2がリストでない場合は、S43において、式2を遠隔手続検索部24に与える検索式とし、式3を検索された遠隔手続保持部に与えるパラメータとし、処理を終了する。式2がリストの場合は、S44において、式2の第1要素が“bind”であるか否かを判定し、式2の第1要素が“bind”である場合は以下に説明する準呼出式から呼出式を生成する処理を実行し、その結果を再びこの処理の入力として、この処理を実行する。そうでない場合は、式1を束縛置換部23に入力し、その結果を再びこの処理の入力として、この処理を実行する。
【0024】
図3は、本発明の遠隔手続管理装置の第1の実施の形態における手続呼出式解析部22の動作の一例で実行される準呼出式から呼出式を生成する処理の一例を示すフローチャートである。ここで、準呼出式とは、第1要素の第1要素が“bind”である式であり、例えば、((bind (v1=1 v2) plus) v1= v2=20)等の式である。この処理では、このような準呼出式から、呼出式、例えば、(plus v1=1 v2=20)といった式を得るための処理である。なお、S式の(a1 a2 ・・・ an)の(a2 ・・・ an)をcdrと呼ぶ。
【0025】
S51において、割当リストを空リストとする。S52において、入力した式を式1し、式1の第1要素を式2、式1のcdrを式3、式2の第2要素を式4、式2の第3要素を式5とする。
【0026】
S53において、式4の未処理の要素iを選択する。S54において、選択された要素iを“=”の左辺である左辺iと右辺である右辺iに分割する。分割できない場合は次の要素について処理を行なうべく、S57へ進む。分割できる場合には、S55において、分割した左辺iが式3の要素として値が割り当てられているか否かを判定する。割り当てられていれば、次の要素について処理を行なうべく、S57へ進む。割り当てられていなければ、S56において、要素iを割り当てリストに追加する。S57において、式4の未処理の要素が残っているか否かを判定し、残っていればその要素についての処理を行なうべくS53へ戻る。
【0027】
S58において、式3のそれぞれの要素iについて、値が割り当てられているものを割り当てリストに追加し、さらにS59において、割り当てリストの先頭に式5を追加し、結果を出力する。この処理によって、例えば、((bind (v1=1 v2) plus) v1= v2=20)という準呼出式は、(plus v1=1 v2=20)という呼出式に変換される。
【0028】
図4は、本発明の遠隔手続管理装置の第1の実施の形態における束縛置換部23の動作の一例を示すフローチャートである。手続の呼出時に束縛置換式が与えられた場合に、束縛置換部23は、以下の処理によって束縛置換式から手続呼出式を導出する。なお、束縛置換式とは、第1要素がリストである手続呼出式である。
【0029】
S61において、入力した束縛置換式を式1とし、式1の第1要素を式2、式1のcdrを式3とする。S62において、式3の未処理の要素iを選択し、S63において、その要素iを“=”の左辺である左辺iと右辺である右辺iに分割する。そして、S64において、式2の部分式のうち、“左辺j=左辺i”の形式をしている全ての部分式を、“左辺j=右辺i”で置き換える。S65において、式3の未処理の要素が残っている場合は、その要素について処理を行なうべく、S62へ戻る。式3の全ての要素について処理を行なうと、束縛置換処理は終了する。
【0030】
図5は、本発明の遠隔手続管理装置の第1の実施の形態における手続実行部28−1〜Mの動作の一例を示すフローチャートである。ここでは一例として、手続実行部28−1,2について具体例を用いながら説明する。なお、遠隔手続保持部25−1と遠隔手続保持部25−2の動作は、遠隔手続の演算が相違するのみでほぼ同じであるので、1つのフローチャートでまとめて説明する。
【0031】
遠隔手続保持部25−1の属性保持部26−1は、属性“name”の値が“plus”であるとして属性を保持し、手続仕様公開部27−1は、S式(bind (v1 v2) plus)を保持しているものとする。また、手続実行部28−1は、2つの引数v1,v2の和を計算するものである。遠隔手続保持部25−2の属性保持部26−2は、属性“name”の値が“times”であるとして属性を保持し、手続仕様公開部27−2は、S式(bind (v1v2) times)を保持している。また、手続実行部28−2は、2つの引数v1,v2の積を計算するものである。
【0032】
S71において、引数v1の割当を調べ、10進整数を表わす文字列ならば、S72において、その10進整数を表わす文字列を整数に変換し、変換した値を引数v1の第2の割当とし、S79へ進む。引数v1が未割当ならば、S73において、手続仕様公開部27−1,2に仕様を出力するよう要求し、S74において、出力された仕様のS式に割当のデフォルト値を加え、出力して処理を終了する。
【0033】
引数v1の割当が手続呼出式ならば、S75において、手続呼出式を手続呼出式解析部22へ入力し、応答を得る。この応答を応答1とする。S76において、応答1が手続仕様か否かを判定する。応答1が手続仕様ならば、S77において、応答1を束縛要求処理部29−1,2へ入力し、束縛要求処理部29−1,2からの出力を返して処理を終了する。応答1が手続仕様でなければ、S78において、応答1から10進整数を表わす文字列を抽出し、その文字列を整数に変換し、変換した値を引数v1の第2の割当とする。
【0034】
S79において、引数v2の割当を調べ、10進整数を表わす文字列ならば、S80において、その10進整数を表わす文字列を整数に変換し、変換した値を引数v2の第2の割当とし、S87へ進む。引数v2が未割当ならば、S81において、手続仕様公開部27−1,2に仕様を出力するよう要求し、S82において、出力された仕様のS式に割当のデフォルト値を加え、出力して処理を終了する。
【0035】
引数v2の割当が手続呼出式ならば、S83において、手続呼出式を手続呼出式解析部22へ入力し、応答を得る。この応答を応答2とする。S84において、応答2が手続仕様か否かを判定する。応答2が手続仕様ならば、S85において、応答2を束縛要求処理部29−1,2へ入力し、束縛要求処理部29−1,2からの出力を返して処理を終了する。応答2が手続仕様でなければ、S86において、応答2から10進整数を表わす文字列を抽出し、その文字列を整数に変換し、変換した値を引数v2の第2の割当とする。
【0036】
S87において、引数v1と引数v2の割当をもとに、演算を行ない、出力する。手続実行部28−1では、引数v1と引数v2の割当を加えた結果を出力する。手続実行部28−2では、引数v1と引数v2の割当の積を計算し、その結果を出力する。
【0037】
図6は、本発明の遠隔手続管理装置の第1の実施の形態における束縛要求処理部29−1〜Mの動作の一例を示すフローチャートである。束縛要求処理部29−1〜Mでは、引数の評価結果として第1の手続仕様bind1が返された場合に、第2の手続仕様を合成する。ここでは、属性“name”の値が“fname”である属性保持部を持つ遠隔手続保持部の手続実行部が、引数v1,・・・,vnの割当として、arg1,・・・,argnを与えられ、引数viを評価する過程で、手続仕様bind1が返されたとする。
【0038】
S91において、第1の手続仕様bind1を解析し、手続仕様bind1の第2要素を抽出し、これをargs1とする。
【0039】
S92において、args1の要素をそれぞれ、a1,・・・,amとするとき、(bind args1 (fname v1=arg1 ・・・ vi=(bind1 a1=a1 ・・・ am=am) ・・・ vn=argn))なる手続仕様2を生成し、この手続仕様2を出力する。
【0040】
以下、具体例をもとに動作を説明する。ここでは、ユーザが(plus v1=undef v2=(times v1=2 v2=undef))という手続呼出式で表わされる手続呼び出しを行なう場合について説明する。この手続呼出式は、手続plusの引数v1を未割当とし、また、手続timesの引数v1に2を割り当て、手続timesの引数v2を未割当として呼んだ結果を手続plusの引数v2に割り当てることを示す。この手続呼出式を式1とする。
【0041】
ユーザは、ユーザ入力部12に対して、キー入力装置、ポインティング・デバイス等の入力装置を用いて、直接、手続呼出式を指定することを入力し、さらに、手続呼出式が式1であることを入力する。手続呼出式生成部13は、ユーザの入力に基づき、式1を通信部11に入力する。通信部11は、式1を通信部21に入力する。
【0042】
通信部21は、式1を手続呼出式解析部22に入力する。手続呼出式解析部22は、図2に示したフローチャートに従って動作する。まず式1を解析し、式1が呼出式であると判断する。そして、属性“name”の値が“plus”である属性保持部を持つ遠隔手続保持部を検索するよう遠隔手続検索部24に要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−1を返す。手続呼出式解析部22は、検索された遠隔手続保持部25−1に属する手続実行部28−1に、式1に基づき引数の割当v1=undef,v2=(times v1=2 v2=undef)を入力し、手続を実行するよう要求する。
【0043】
手続実行部28−1は、図5に示したフローチャートに従って実行する。手続実行部28−1では引数v1を調べ、引数v1が未割り当てであるため、手続仕様公開部27−1に対して仕様を公開するよう要求する。手続仕様公開部27−1は、形式言語S式で記述された手続仕様(bind (v1 v2) plus)を含む応答を生成する。生成された手続仕様を手続仕様1−1とする。手続実行部28−1は、図5に示したフローチャートのS74において、手続仕様1−1に引数v2の割当をデフォルト値として加え、(bind (v1 v2=(times v1=2 v2=undef)) plus)を得る。この手続仕様を手続仕様1−2とする。手続実行部28−1は、手続仕様1−2を通信部21に出力する。通信部21は、手続仕様1−2を通信部11に送信する。
【0044】
通信部11は、手続仕様1−2を応答解析部14に入力する。応答解析部14は、手続仕様1−2を解析し、ユーザ出力部15に対して、割り当ての必要な引数はv1,v2であり、引数v2のデフォルト値が(times v1=2 v2=undef)であることを表示するよう要求するとともに、手続呼出式生成情報(bind (v1 v2=(times v1=2 v2=undef)) plus)を手続呼出式生成部13に入力する。この手続呼出式生成情報を手続呼出式生成情報1とする。
【0045】
表示を受けたユーザは、ユーザ入力部12に対して第1引数v1を1に割り当てることを指示し、引数v2はデフォルト値を割り当てるよう入力を行なう。さらに、手続呼出式を生成するよう手続呼出式生成部13に指示する。手続呼出式生成部13は、ユーザ入力部12からの入力および手続呼出式生成情報1に基づき、(plus v1=1 v2=(times v1=2 v2=undef))という手続呼出式を通信部11に出力する。この手続呼出式を式2とする。通信部11は、式2を通信部21に送信する。
【0046】
通信部21は、式2を手続呼出式解析部22に入力する。手続呼出式解析部22は式1を解析し、式1が呼出式であると判断する。そして、属性“name”の値が“plus”である属性保持部を持つ遠隔手続保持部を検索するよう遠隔手続検索部24に要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−1を返す。手続呼出式解析部22は、検索された遠隔手続保持部25−1に属する手続実行部28−1に、式2に基づき引数の割当v1=1,v2=(times v1=2 v2=undef)を入力し、手続を実行するよう要求する。
【0047】
手続実行部28−1は、図5に示したフローチャートに従い、引数v1の割当として整数1を得る。また、引数v2の割当“(times v1=2 v2=undef)”を手続呼出式解析部22に入力する。この手続呼出式を式4とする。
【0048】
手続呼出式解析部22は、式4を解析し、遠隔手続検索部24に対して属性“name”の値が“times”である属性保持部を持つ遠隔手続保持部を検索するよう要求する。遠隔手続検索部24は、検索を行なって遠隔手続保持部25−2を返す。手続呼出式解析部22は、検索された遠隔手続保持部25−2の手続実行部28−2に、式4に基づき引数v1=2、引数v2=undefを入力する。
【0049】
手続実行部28−2は、図5に示したフローチャートに従って実行し、引数v1の割当として整数2を得る。また、引数v2が未割り当てであるため、手続仕様公開部27−2に対して仕様を公開するよう要求する。手続仕様公開部27−2は、形式言語S式で記述された手続仕様(bind (v1 v2) times)を含む応答を生成する。この手続仕様を手続仕様2−1とする。手続実行部28−2は、手続仕様2−1に引数v1の割当をデフォルト値として加え、(bind (v1=2 v2) times)を得る。この手続仕様を手続仕様2−2とする。手続実行部28−2は、手続仕様2−2を手続実行部28−1に出力する。
【0050】
手続実行部28−1は、図5に示したフローチャートに従い、手続実行部28−2からの応答が手続仕様であることから、手続仕様2−2を束縛要求処理部29−1へ入力する。束縛要求処理部29−1は、図6に示したフローチャートに従い、(bind (v1=2 v2) (plus v1=1 v2=((bind (v1=2 v2) times) v1=v1 v2=v2)))という手続仕様に変換して手続実行部28−1に出力する。この変換された手続仕様を手続仕様2−3とする。手続実行部28−1は、手続仕様2−3を通信部21に出力する。通信部21は、手続仕様2−3を通信部11に送信する。
【0051】
通信部11は、手続仕様2−3を応答解析部14に出力する。応答解析部14は手続仕様2−3を入力すると、解析を行ない、ユーザ出力部15に対して、割当の必要な引数は、v1,v2であり、引数v2のデフォルト値が2であることを表示するよう要求するとともに、手続呼出式生成情報(bind (v1=2v2) (plus v1=1 v2=((bind (v1=2 v2) times) v1=v1 v2=v2)))を手続呼出式生成部13に入力する。この手続呼出式生成情報を手続呼出式生成情報2とする。
【0052】
表示を受けたユーザは、ユーザ入力部12に対して、引数v1に20を、v2に3を割り当てるよう入力を行なう。手続呼出式生成部13は、ユーザ入力部12からの入力および手続呼出式生成情報2に基づき、((plus v1=1 v2=((bind (v1=2 v2) times) v1=v1 v2=v2)) v1=20 v2=3)という手続呼出式を通信部11に出力する。この手続呼出式を式5とする。通信部11は、式5を通信部21に送信する。
【0053】
通信部21は、式5を手続呼出式解析部22に入力する。手続呼出式解析部22は、図2に示したフローチャートに従い、式5の第1要素はリストであり、そのリストの第1要素が“bind”ではないので、式5を束縛置換式とし、式5を束縛置換部23へ入力する。
【0054】
束縛置換部23は、図4に示したフローチャートに従い、v1=20に関する置換を行ない、(plus v1=1 v2=((bind (v1=2 v2) times) v1=20 v2=v2))を得る。さらに、v2=3に関する置換を行ない、(plus v1=1 v2=((bind (v1=2 v2) times) v1=20 v2=3))を得る。この手続呼出式を式6とする。束縛置換部23は、式6を手続呼出式解析部22へ入力する。
【0055】
手続呼出式解析部22は式6を解析し、属性“name”の値が“plus”である属性保持部を持つ遠隔手続保持部を検索するよう遠隔手続検索部24に要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−1を返す。手続呼出式解析部22は、検索された遠隔手続保持部25−1の手続実行部28−1に、式6に基づき引数v1=1,v2=((bind(v1=2 v2) times) v1=20 v2=3)を入力する。
【0056】
手続実行部28−1は、図5に示したフローチャートに従い、引数v2に対する割当が手続呼出式であるため、“((bind (v1=2 v2) times) v1=20 v2=3)”を手続呼出式解析部22に入力する。この手続呼出式を式7とする。
【0057】
手続呼出式解析部22は、図2に示したフローチャートに従い、式7を解析し、さらに、図3に示したフローチャートに従い、“(times v1=20 v2=3)”を得る。この式を式8とする。
【0058】
手続呼出式解析部22は式8を解析し、属性“name”の値が“times”である属性保持部を持つ遠隔手続保持部を検索するよう遠隔手続検索部24に要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−2を返す。手続呼出式解析部22は、検索された遠隔手続保持部25−2の手続実行部28−2に、式8に基づき引数v1=20および引数v2=3を入力する。手続実行部28−2は、20と3の積である60を応答として手続実行部28−1に返す。
【0059】
手続実行部28−1は、手続実行部28−2からの応答を引数v2に割り当て、1と60の和である61を応答として通信部21に返す。通信部21は、“61”を通信部11に送信する。
【0060】
通信部11は、“61”を応答解析部14に返す。応答解析部14は、式3の評価結果として61を得たことを表示するようユーザ出力部15に対して要求する。これにより、式3に対する遠隔手続の結果として61が表示される。
【0061】
このように、最初からパラメータを設定せずに遠隔手続を実行させ、対話的にパラメータを決定してゆきながら所望の遠隔手続を実行させることが可能である。
【0062】
図7は、本発明の遠隔手続管理装置の第2の実施の形態を示すブロック図である。図中、図1と同様の部分には同じ符号を付してある。16はメッセージ生成部、17はハイパーテキスト解析部、30はメッセージ解析部である。この実施の形態では、手続呼出式の代わりにメッセージを用い、応答としてハイパーテキストを得る場合について述べる。
【0063】
遠隔手続管理装置は、遠隔手続クライアント部1、遠隔手続サーバ部2、から構成される。一般には遠隔手続管理装置は、1個以上の任意個の遠隔手続クライアント部と1個以上の任意個の遠隔手続サーバ部から構成されていてよい。
【0064】
遠隔手続クライアント部1は、通信部11、ユーザ入力部12、メッセージ生成部16、ハイパーテキスト解析部17、ユーザ出力部15から構成される。通信部11は、メッセージ生成部16から入力されるメッセージを遠隔の通信部に対して送信するとともに、遠隔の通信部からのハイパーテキストを受信し、受信したハイパーテキストをハイパーテキスト解析部17に出力する。ユーザ入力部12は、キーボード、ポインティング・デバイス等の入力装置を含み、ユーザからの入力によりメッセージ生成部16に対するメッセージ生成要求を行なう。メッセージ生成部16は、ユーザ入力部12からの入力およびハイパーテキスト解析部17から入力されるメッセージ生成情報に応じて、メッセージを生成し、通信部11に出力する。ハイパーテキスト解析部17は、通信部11から入力されるハイパーテキストを解析し、ユーザ出力部15に対してハイパーテキストをユーザに提示するよう要求するとともに、メッセージを生成するための情報であるメッセージ生成情報をメッセージ生成部16に出力する。ユーザ出力部15は、ハイパーテキスト解析部17からの要求に基づき、実行結果を文字、画像および音声情報などとしてユーザに提示する。
【0065】
遠隔手続サーバ部2は、1個の通信部21、1個のメッセージ解析部30、1個の束縛置換部23、1個の遠隔手続検索部24、M個の遠隔手続保持部25−1〜Mにより構成される。通信部21は、遠隔からのメッセージを受信し、メッセージ解析部30に出力するとともに、手続の実行結果であるハイパーテキストを遠隔に送信する。メッセージ解析部30は、通信部21から入力されるメッセージを解析し、遠隔手続検索部24に入力する検索式および検索された遠隔手続保持部に入力する引数のリストである引数リストを抽出する。また、メッセージ解析部30は、入力されたメッセージに予備情報が含まれている場合には、予備情報も合わせて抽出する。束縛置換部23は、メッセージ解析部30がメッセージを解析した結果、特定の検索式が抽出された場合に指定され、引数リストおよび予備情報が与えられる。束縛置換部23は、予備情報にメッセージを入力し、後述する束縛置換処理を行なった結果を第2のメッセージとしてメッセージ解析部30に出力する。遠隔手続検索部24は、メッセージ解析部30から検索式を入力し、遠隔手続サーバ部2に属する遠隔手続保持部の中から検索式にマッチする遠隔手続保持部を検索する。
【0066】
遠隔手続保持部25−1〜Mは、属性保持部26−1〜M、手続仕様公開部27−1〜M、手続実行部28−1〜M、束縛要求処理部29−1〜Mにより構成される。属性保持部26−1〜Mには、遠隔手続保持部25−1〜Mを一意に識別するための識別子を表わす属性が、属性名と属性値のペアのリストとして保持されている。一般的には、属性保持部26−1〜Mには任意個の属性と属性値のペアが保持されていてもよく、1個以上の属性を指定することにより遠隔手続保持部を一意に識別することができるような属性が保持されていればよい。
【0067】
手続仕様公開部27−1〜Mには、手続の引数に関する形式言語による記述、手続の引数に関する自然言語による記述、手続から返されるハイパーテキストに関する形式言語による記述、手続から返されるハイパーテキストに関する自然言語による記述、手続の動作に関する形式言語による記述、手続の動作に関する自然言語による記述、メッセージを生成するためのメッセージ生成情報、引数のデフォルト値が保持されており、仕様公開の要求に対して仕様情報をハイパーテキストとして出力する。一般的には手続仕様公開部27−1〜Mにはこれらのうちの、要素が1個以上である任意の部分集合が保持されていても良い。
【0068】
図8は、本発明の遠隔手続管理装置の第2の実施の形態において手続仕様公開部27−1〜Mが出力するハイパーテキストの一例の説明図である。図8に示す例は、手続仕様を表わすHTMLに基づくハイパーテキストの一例である。割り当ての必要な引数は、v1,v2であり、引数v1はデフォルト値を持たず、引数v2はデフォルト値が1であり、遠隔手続保持部の検索式が、“http://host1/bin/plus”であることを表わしている。
【0069】
図7に戻り、手続実行部28−1〜Mは、メッセージ解析部30によって入力される引数リストに従い、手続を実行する。手続の実行の過程で他の遠隔手続保持部に対して手続の実行を要求する必要が発生した場合は、メッセージ解析部30を通じてメッセージ送信をを行なう。手続実行部28−1〜Mは、引数リストに従い、手続を実行した結果をハイパーテキストとして出力する。このとき、必要な引数が未定であったり、引数が不正な組合せである場合には、手続仕様公開部に対して手続仕様を出力するよう要求する。
【0070】
束縛要求処理部29−1〜Mは、手続実行部28−1〜Mが他の遠隔手続保持部に対して手続実行を要求した応答として手続仕様が返された場合、その手続仕様であるハイパーテキストを手続実行部28−1〜Mより入力し、第2の手続仕様ハイパーテキストを生成する。
【0071】
次に、本発明の遠隔手続管理装置の第2の実施の形態における各部の動作の一例について説明する。図9は、本発明の遠隔手続管理装置の第2の実施の形態における束縛置換部23の動作の一例を示すフローチャートである。S101において、入力した束縛置換式から、遠隔手続検索部24に与える検索式である式1および予備情報である式2および引数リストである式3を抽出する。
【0072】
S102において、引数リストである式3から、割当v1=値1,・・・,vm=値mを得る。S103において、式2のエスケープを1段取り除き、式4とする。S104において、式4から遠隔手続検索部24に与える検索式である式5および第2の引数リストv1=値21,・・・,vn=値2nを得る。
【0073】
S105、S110、S111によってiを1からmまで変化させ、引数v1からvmまでのそれぞれの要素viについて、S106〜S109までの処理を行なう。また、S106、S108、S109によってjを1からnまで変化させ、S107において、値2jの、“vi=vi”を“vi=値i”で置き換える。
【0074】
図10は、本発明の遠隔手続管理装置の第2の実施の形態における手続実行部28−1〜Mの動作の一例を示すフローチャートである。ここでは一例として、手続実行部28−1,2について具体例を用いながら説明する。なお、遠隔手続保持部25−1と遠隔手続保持部25−2の動作は、遠隔手続の演算が相違するのみでほぼ同じであるので、1つのフローチャートでまとめて説明する。
【0075】
遠隔手続保持部25−1の手続実行部28−1は、2つの引数v1,v2の和を計算するものとする。また、手続実行部28−2は、2つの引数v1,v2の積を計算するものとする。
【0076】
S121において、引数v1あるいは引数v2のいずれかの割当が空であるか否かを判定し、空であれば、S122において、現在の引数の割当をデフォルト値として手続仕様公開部27−1,2に仕様を公開するよう要求し、結果を出力して処理を終了する。
【0077】
引数v1,v2とも割当が空でなければ、S123において、引数v1の割当が10進整数かメッセージかを判定する。引数v1の割当が10進整数を表わす文字列ならば、S124において、その文字列を整数に変換した値を第2の割当とし、S129へ進む。引数v1の割当がメッセージならば、S125において、メッセージをメッセージ解析部30へ入力し、応答のハイパーテキストを得る。得られたハイパーテキストをハイパーテキスト1とする。S126において、ハイパーテキスト1が手続仕様か否かを判定し、手続仕様であるならば、S127において、ハイパーテキスト1を束縛要求処理部29−1,2へ入力し、束縛要求処理部29−1,2からの出力を返し、処理を終了する。ハイパーテキスト1が手続仕様でなければ、S128において、ハイパーテキスト1から10進整数を表わす文字列を抽出し、その文字列を整数に変換した値を引数v1の第2の割当とする。
【0078】
S129において、引数v2の割当が10進整数を表わす文字列ならば、S130において、その文字列を整数に変換した値を第2の割当とし、S135へ進む。引数v2の割当がメッセージならば、S131において、メッセージをメッセージ解析部30へ入力し、応答のハイパーテキストを得る。得られたハイパーテキストをハイパーテキスト2とする。S132において、ハイパーテキスト2が手続仕様であるか否かを判定し、手続仕様であるならば、S133において、ハイパーテキスト2を束縛要求処理部29−1,2へ入力し、束縛要求処理部29−1,2からの出力を返し、処理を終了する。ハイパーテキスト2が手続仕様でなければ、S134において、ハイパーテキスト2から10進整数を表わす文字列を抽出し、その文字列を整数に変換した値を引数v2の第2の割当とする。
【0079】
S135において、引数v1と引数v2の割当に基づいて演算を行ない、出力する。手続実行部28−1では、引数v1と引数v2の割当を加えた結果を出力する。また、手続実行部28−2では、引数v1と引数v2の割当の積を計算し、その結果を出力する。
【0080】
図11は、本発明の遠隔手続管理装置の第1の実施の形態における束縛要求処理部29−1〜Mの動作の一例を示すフローチャートである。束縛要求処理部29−1〜Mでは、引数の評価結果として第1の手続仕様bind1が返された場合に第2の手続仕様を合成して出力する。ここでは、属性“name”の値が“fname”である属性保持部を持つ手続保持部の手続実行部が、引数v1,・・・,vnの割当として、arg1,・・・,argnを与えられ、引数viを評価する過程で、手続仕様bind1が返されたとする。また、束縛置換部23は、“http://host1/bin/bind”という検索式によって指定されるものとする。一般には束縛置換部23を指定する検索式は他の検索式と区別できるものであれば何であってもよい。
【0081】
S141において、手続仕様bind1から、遠隔手続検索部24に与える検索式を抽出し、これを式1とする。また、引数v1,・・・,vmおよびデフォルト値d1,・・・,dmを抽出する。S142において、式1に文字列“?v1=v1&・・・&vm=vm”を後ろから連結した式を式2とする。そして、S143において、viの割当を式2とする。さらに、S144において、式3をfnameとする。
【0082】
S145、S151、S152により、kを1からnまで変化させ、S146〜S150の処理を繰り返し行なう。S146において、kとiが等しくなければ、S147において、argkをエスケープして式4とし、式3にvk=式4を後ろから連結して式3とする。また、kとiが等しければ、S148において、式2をエスケープして式5とし、式3にvk=式5を後ろから連結して式3とする。また、S149において、kとnが等しくなければ、S150において式3に文字“&”を後ろから連結し、式3とする。
【0083】
S153において、式3をエスケープし式6とする。さらに、S154において、“http://host1/bin/bind”に式6を後ろから連結し、式7とする。そして、S155において、手続仕様bind1の遠隔手続検索部24に与える検索式を式7に変更し、bind2としてこれを出力する。
【0084】
次に、具体例を用いて動作の一例を説明する。以下の説明では、遠隔手続サーバ部2は、“http://host1”という検索式によって指定される。また、“http://host1/bind”という検索式によって束縛置換部23を指定する。一般には、遠隔手続サーバ部2や束縛置換部23などを指定する検索式は他の検索式と区別できるものであれば何であってもよい。以下同様である。
【0085】
また、属性保持部26−1〜Mは、少なくとも属性“name”を有しており、属性保持部26−1は、属性“name”の値が“/bin/plus”であるとして属性を保持し、属性保持部26−2は、属性“name”の値が“/bin/times”であるとして属性を保持している。
【0086】
全ての手続実行部は、便宜的にv1,v2,v3,・・・という名前の引数を持つとする。一般的には手続実行部は任意の名前の引数を持っていてよい。属性“name”の属性値が“fname”であるような属性保持部を持つ手続保持部が、引数v1,v2,・・・を持ち、引数v1に値a1、引数v2に値a2、・・・を割り当てる場合のメッセージを、
http://host1/fname?v1=a1&v2=a2&・・・
と表記することとする。また、引数v3,v4,に対して割当が存在しないことをv3=&v4=&・・・と表記する。ここでは、具体例として、手続実行部28−1は引数v1,v2を持ち、メッセージ“http://host1/bin/plus?v1=a1&v2=a2”によって指定されるものとする。また、手続実行部28−2は引数v1,v2を持ち、メッセージ“http://host1/bin/times?v1=a1&v2=a2”によって指定されるものとする。
【0087】
なお、引数の割当の値として現れる文字は、Common Gateway Interfaceの規定と同様に、“:”,“/”,“?”,“=”,“&”,“%”等の文字が現れる場合は、“%”の後にそれぞれの文字のASCIIコードを連結して、それぞれ“%3A”,“%2F”,“%3F”,“%3D”,“%26”,“%25”と表現することとする。一意に引数名と値のペアを抽出するために用いる方式として一般には、“(”と“)”等の開始、終了記号を用いる方式や、文字を別の文字列に変換するエスケープ方式を用いてもよい。
【0088】
図12は、本発明の遠隔手続管理装置の第2の実施の形態において手続仕様公開部27−1が保持するハイパーテキストの一例の説明図である。以下の説明では、手続仕様公開部27−1は、図12に示すようなハイパーテキストを手続仕様として保持している。
【0089】
以下、ユーザがメッセージを入力してから遠隔手続の結果を得るまでについて、具体例を用いて説明する。図13ないし図15は、本発明の遠隔手続管理装置の第2の実施の形態における具体的な動作の一例においてやりとりされる一部のデータの一例の説明図である。具体例としてユーザが図13(A)に示すメッセージで表わされる手続呼び出しが行なわれた場合の動作を示す。このメッセージは、手続http://host1/bin/plusの引数v1を未割当とし、手続http://host1/bin/timesの引数v1に2を割り当て、手続timesの引数v2を未割当として呼んだ結果を手続http://host1/bin/plusの引数v2に割り当てることを示している。このメッセージを式1とする。
【0090】
ユーザはユーザ入力部12に対して、キー入力装置、ポインティング・デバイス等の入力装置を用いて、ユーザが直接メッセージを指定すること、および、メッセージが式1であることを入力する。メッセージ生成部16は、ユーザの入力に基づき、式1を通信部11に入力する。通信部11は、式1の“http://host1”に対応する通信部として通信部21を検索し、式1を通信部21に入力する。
【0091】
通信部21は、式1をメッセージ解析部30に入力する。メッセージ解析部30は式1を解析し、式1が呼出式であると判断する。そして、属性“name”の値が“/bin/plus”である属性保持部を持つ遠隔手続保持部を検索するよう遠隔手続検索部24に要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−1を返す。メッセージ解析部30は、検索された遠隔手続保持部25−1に属する手続実行部28−1に、式1に基づき引数の割当v1=,v2=http://host1/bin/times?v1=2&v2=を入力し、手続を実行するよう要求する。
【0092】
手続実行部28−1は、図10に示したフローチャートに従い、引数v1を調べる。引数v1が未割当であるため、手続仕様公開部27−1に対して仕様を公開するよう要求する。手続仕様公開部27−1は、図13(B)に示すような形式言語で記述された手続仕様を含むハイパーテキストを生成する。この手続仕様を手続仕様1−1とする。手続実行部28−1は、手続仕様1−1を通信部21に出力する。通信部21は、手続仕様1−1を通信部11に送信する。
【0093】
通信部11は、手続仕様1−1をハイパーテキスト解析部17に入力する。ハイパーテキスト解析部17は、手続仕様1−1を解析し、ユーザ出力部15に対して、割当の必要な引数はv1,v2であり、引数v2のデフォルト値がhttp://host1/bin/times?v1=2&v2=であることを表示するよう要求するとともに、メッセージ生成情報“http://host1/bin/plus”をメッセージ生成部16に入力する。このメッセージ生成情報をメッセージ生成情報1とする。
【0094】
表示を受けたユーザは、ユーザ入力部12に対して第1の引数v1に1を割り当て、引数v2にはデフォルト値を割り当てるよう入力を行なうとともに、メッセージを生成するようメッセージ生成部16に指示する。メッセージ生成部16は、ユーザ入力部12からの入力およびメッセージ生成情報1に基づき、図13(C)に示すようなメッセージを通信部11に出力する。このメッセージを式2とする。通信部11は式2の“http://host1”に対応する通信部を検索し、通信部21を得て、式2を通信部21に送信する。
【0095】
通信部21は、式2をメッセージ解析部30に入力する。メッセージ解析部30は式2を解析し、式2が呼出式であると判断する。そして、属性“name”の値が“/bin/plus”である属性保持部を持つ遠隔手続保持部を検索するよう遠隔手続検索部24に要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−1を返す。メッセージ解析部30は、検索された遠隔手続保持部25−1に属する手続実行部28−1に、式2に基づき引数の割当v1=1,v2=http://host1/bin/times?v1=2&v2=を入力し、手続を実行するよう要求する。
【0096】
手続実行部28−1は、図10に示したフローチャートに従い、引数v1の割当として整数1を得る。また、引数v2の割当“http://host1/bin/times?v1=2&v2=”をメッセージ解析部30に入力する。この引数v2の割当のメッセージを式4とする。
【0097】
メッセージ解析部30は、式4を解析し、遠隔手続検索部24に対して属性“name”の値が“/bin/times”である属性保持部を持つ遠隔手続保持部を検索するよう要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−2を返す。メッセージ解析部30は、検索された遠隔手続保持部25−2の手続実行部28−2に、式4に基づき引数v1=2,v2=を入力する。
【0098】
手続実行部28−2は、図10に示したフローチャートに従い、引数v1の割当として整数2を得る。また、引数v2が未割当であるため、手続仕様公開部27−2に対して仕様を公開するよう要求する。手続仕様公開部27−2は、図13(D)に示すような形式言語で記述された手続仕様を含むハイパーテキストを生成する。この手続仕様を手続仕様2−2とする。手続実行部28−2は、手続仕様2−2を手続実行部28−1に出力する。
【0099】
手続実行部28−1は、図10に示したフローチャートに従い、手続実行部29−2から受け取ったハイパーテキストが手続仕様であることから、手続仕様2−2を束縛要求処理部29−1へ入力する。束縛要求処理部29−1は、図11に示したフローチャートに従い、図14(A)に示す手続仕様2−3を手続実行部28−1に出力する。手続実行部28−1は、図10に示したフローチャートに従い、手続仕様2−3を通信部21に出力する。通信部21は、手続仕様2−3を通信部11に送信する。
【0100】
通信部11は、手続仕様2−3をハイパーテキスト解析部17に出力する。ハイパーテキスト解析部17は、手続仕様2−3を入力すると解析を行ない、ユーザ出力部15に対して、割り当ての必要な引数はv1,v2であり、引数v2のデフォルト値が2であることを表示するよう要求するとともに、メッセージ生成情報として図14(B)に示すような情報をメッセージ生成部16に入力する。この図14(B)に示したメッセージ生成情報をメッセージ生成情報2とする。
【0101】
表示を受けたユーザは、ユーザ入力部12に対して、例えば、引数v1に20を、引数v2に3を割り当てるよう入力を行なったとする。メッセージ生成部16は、ユーザ入力部12からの入力およびメッセージ生成情報2に基づき、図14(C)に示すようなメッセージを通信部11に出力する。このメッセージを式5とする。通信部11は、式5の“http://host1”に対応する通信部を検索し、通信部21を得る。通信部11は、式5を通信部21に送信する。
【0102】
通信部21は、式5をメッセージ解析部30に入力する。メッセージ解析部30は、式5から抽出される検索式が“/bin/bind”であるため、式5を束縛置換式とし、式5を束縛置換部23へ入力する。
【0103】
束縛置換部23は、図9に示したフローチャートに従い、式5から、検索式としてhttp://host1/bin/bindを抽出し、予備情報として図14(D)に示す情報を抽出し、引数リストとしてv1=20&v2=3を抽出する。この引数リストを引数リスト1とする。
【0104】
次に束縛置換部23は、予備情報のエスケープを1段取り除き、図15(A)に示す情報を得る。この式を式6とする。さらに、束縛置換部23は式6の割当として、v1=1,v2=http://host1/bin/times?v1=v1&v2=v2を得る。この割当を割当1とする。
【0105】
さらに、束縛置換部23は、割当1を、引数リスト1を用いて置換する。すなわち、割当v1=1,v2=http://host1/bin/times?v1=20&v2=3を得る。この割当を割当2とする。束縛置換部23は、割当2に従い、式6から図15(B)に示すメッセージを得る。このメッセージを式7とする。束縛置換部23は、式7をメッセージ解析部30へ入力する。
【0106】
メッセージ解析部30は式7を解析し、属性“name”の値が“/bin/plus”である属性保持部を持つ遠隔手続保持部を検索するよう遠隔手続検索部24に要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−1を返す。メッセージ解析部1は、検索された遠隔手続保持部25−1の手続実行部28−1に、式7に基づき引数v1=1,v2=http://host1/bin/times?v1=20&v2=3を入力する。
【0107】
手続実行部28−1は図10に示したフローチャートに従い、引数v2に対する割当がメッセージであるため、“http://host1/bin/times?v1=20&v2=3”をメッセージ解析部30に入力する。このメッセージを式8とする。
【0108】
メッセージ解析部30は、遠隔手続検索部に入力する検索式“/bin/times”を式8から抽出し、属性“name”の値が“/bin/times”である属性保持部を持つ遠隔手続保持部を検索するよう遠隔手続検索部24に要求する。遠隔手続検索部24は、遠隔手続サーバ部2を検索し、遠隔手続保持部25−2を返す。メッセージ解析部30は、検索された遠隔手続保持部25−2の手続実行部28−2に、式8に基づき引数v1=20,v2=3を入力する。
【0109】
手続実行部28−2は、図10に示したフローチャートに従い、20と3の積である60を計算し、図15(C)に示すようなハイパーテキスト1として手続実行部28−1に返す。
【0110】
手続実行部28−1は、ハイパーテキスト1を解析し、“結果:”という文字列のある行から文字列“60”を抽出し、引数v2の割当として整数60を得る。さらに手続実行部28−1は、1と60の和である61を計算し、図13(L)に示すようなハイパーテキスト2を通信部21に返す。通信部21は、ハイパーテキスト2を通信部11に送信する。
【0111】
通信部11は、ハイパーテキスト2をハイパーテキスト解析部17に返す。ハイパーテキスト解析部17は、式3の評価結果として61を得たことを表示するようユーザ出力部15に対して要求する。
【0112】
このようにして、ハイパーリンクを用いた遠隔手続呼出において、予め引数を設定しなくても、インタラクティブに引数を決定し、遠隔手続を実行させることが可能となる。
【0113】
なお、上述の例では、未定義の引数を含む遠隔手続呼出の動作の例を示したが、例えば引数の設定方法がわからない場合など、誤った遠隔手続呼出を行なった場合にも手続仕様が表示され、ユーザは表示された手続仕様に沿って引数の設定などを行なうことができ、遠隔手続を簡単に利用できるようになる。
【0114】
【発明の効果】
以上の説明から明らかなように、本発明によれば、引数が未確定で遠隔手続が実行されたり、あるいは不正な引数が与えられ遠隔手続が実行された場合に、ユーザが会話的に引数を与えることができ、引数の設定後、遠隔手続を再実行することが可能となる。そのため、ユーザは、所望の遠隔手続の仕様を予め熟知していなくても、その遠隔手続を実行させることができ、利便性を向上させることができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の遠隔手続管理装置の第1の実施の形態を示すブロック図である。
【図2】 本発明の遠隔手続管理装置の第1の実施の形態における手続呼出式解析部22の動作の一例を示すフローチャートである。
【図3】 本発明の遠隔手続管理装置の第1の実施の形態における手続呼出式解析部22の動作の一例で実行される準呼出式から呼出式を生成する処理の一例を示すフローチャートである。
【図4】 本発明の遠隔手続管理装置の第1の実施の形態における束縛置換部23の動作の一例を示すフローチャートである。
【図5】 本発明の遠隔手続管理装置の第1の実施の形態における手続実行部28−1〜Mの動作の一例を示すフローチャートである。
【図6】 本発明の遠隔手続管理装置の第1の実施の形態における束縛要求処理部29−1〜Mの動作の一例を示すフローチャートである。
【図7】 本発明の遠隔手続管理装置の第2の実施の形態を示すブロック図である。
【図8】 本発明の遠隔手続管理装置の第2の実施の形態において手続仕様公開部27−1〜Mが出力するハイパーテキストの一例の説明図である。
【図9】 本発明の遠隔手続管理装置の第2の実施の形態における束縛置換部23の動作の一例を示すフローチャートである。
【図10】 本発明の遠隔手続管理装置の第2の実施の形態における手続実行部28−1〜Mの動作の一例を示すフローチャートである。
【図11】 本発明の遠隔手続管理装置の第1の実施の形態における束縛要求処理部29−1〜Mの動作の一例を示すフローチャートである。
【図12】 本発明の遠隔手続管理装置の第2の実施の形態において手続仕様公開部27−1が保持するハイパーテキストの一例の説明図である。
【図13】 本発明の遠隔手続管理装置の第2の実施の形態における具体的な動作の一例においてやりとりされる一部のデータの一例の説明図である。
【図14】 本発明の遠隔手続管理装置の第2の実施の形態における具体的な動作の一例においてやりとりされる一部のデータの一例の説明図(続き)である。
【図15】 本発明の遠隔手続管理装置の第2の実施の形態における具体的な動作の一例においてやりとりされる一部のデータの一例の説明図(続き)である。
【符号の説明】
1…遠隔手続クライアント部、2…遠隔手続サーバ部、11…通信部、12…ユーザ入力部、13…手続呼出式生成部、14…応答解析部、15…ユーザ出力部、16…メッセージ生成部、17…ハイパーテキスト解析部、21…通信部、22…手続呼出式解析部、23…束縛置換部、24…遠隔手続検索部、25−1〜M…遠隔手続保持部、26−1〜M…属性保持部、27−1〜M…手続仕様公開部、28−1〜M…手続実行部、29−1〜M…束縛要求処理部、30…メッセージ解析部。
Claims (3)
- 情報処理を行なう複数の計算機システムがネットワークで結ばれたネットワーク情報システムで行なわれる遠隔手続を管理する遠隔手続管理装置において、通信手段と、ユーザにより入力され前記通信手段で受信した手続呼出式を解析する手続呼出式解析手段と、複数の遠隔手続保持手段と、前記手続呼出式解析手段からの要求に基づき前記遠隔手続保持手段を検索する遠隔手続検索手段を有し、それぞれの前記遠隔手続保持手段は、属性を保持する属性保持手段と、手続仕様を出力する手続仕様公開手段と、引数に従い手続を実行する手続実行手段を有し、前記通信手段で手続呼出式を受信すると、前記手続呼出式解析手段で前記手続呼出式を解析して前記手続呼出式に該当する属性を前記属性保持手段が保持する前記遠隔手続保持手段を前記遠隔手続検索手段により検索し、検索された前記遠隔手続保持手段の手続実行手段に前記手続呼出式に基づき引数の割当を入力して手続を実行させ、前記手続実行手段で手続の実行の際に未割当の引数が存在する場合には、前記手続仕様公開手段に対して仕様を公開するよう要求し、手続仕様公開手段は手続仕様を生成し、該手続仕様を前記通信手段からクライアントへ送信し該クライアントで表示を受けたユーザによる引数の割当を前記通信手段で受け取って前記手続実行手段による手続の実行を進めることを特徴とする遠隔手続管理装置。
- 前記手続呼出式解析手段は、与えられた手続呼出式の解析を、他の前記遠隔手続保持手段を再帰的に呼び出して行なうことを特徴とする請求項1に記載の遠隔手続管理装置。
- 情報処理を行なう複数の計算機システムがネットワークで結ばれたネットワーク情報システムで行なわれる遠隔手続を管理する遠隔手続管理方法において、引数に従い遠隔手続の実行を行うとともに手続仕様を公開した複数の遠隔手続保持手段を有しており、ユーザにより入力された手続呼出式を手続呼出式解析手段で解析して前記手続呼出式に該当する属性を前記属性保持手段が保持する前記遠隔手続保持手段を遠隔手続検索手段により検索し、検索された前記遠隔手続保持手段の手続実行手段に前記手続呼出式に基づき引数の割当を入力して手続を実行させ、前記手続実行手段で手続の実行の際に未割当の引数が存在する場合には、手続仕様を前記手続仕様公開手段により生成してクライアントへ送信し、該クライアントで表示された該手続仕様に従って行なわれるユーザによる引数の割当を受け取って前記手続実行手段による手続の実行を進めることを特徴とする遠隔手続管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20801596A JP3904037B2 (ja) | 1996-08-07 | 1996-08-07 | 遠隔手続管理装置及び遠隔手続管理方法 |
US08/902,235 US6016516A (en) | 1996-08-07 | 1997-07-30 | Remote procedure processing device used by at least two linked computer systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20801596A JP3904037B2 (ja) | 1996-08-07 | 1996-08-07 | 遠隔手続管理装置及び遠隔手続管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1049393A JPH1049393A (ja) | 1998-02-20 |
JP3904037B2 true JP3904037B2 (ja) | 2007-04-11 |
Family
ID=16549271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20801596A Expired - Lifetime JP3904037B2 (ja) | 1996-08-07 | 1996-08-07 | 遠隔手続管理装置及び遠隔手続管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3904037B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2405624A1 (en) | 2010-07-09 | 2012-01-11 | Thomson Licensing | Method for operating a remote procedure call handler in a client and a server and computer system comprising the same. |
-
1996
- 1996-08-07 JP JP20801596A patent/JP3904037B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH1049393A (ja) | 1998-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6016516A (en) | Remote procedure processing device used by at least two linked computer systems | |
US10747505B1 (en) | API specification generation | |
CN109739604B (zh) | 页面渲染方法、装置、服务器及存储介质 | |
US6339783B1 (en) | Procedure execution device and procedure execution method | |
US7877725B2 (en) | System and method for dynamic generation and customization of web service client applications for terminals | |
US6021416A (en) | Dynamic source code capture for a selected region of a display | |
US20040024843A1 (en) | Method for provisioning distributed web applications | |
US20060277531A1 (en) | System and method for source code analysis | |
JP2002032221A (ja) | ソフトウェアコンポーネント自動生成システム | |
JPH11272667A (ja) | 構造化文書作成方法、構造化文書作成装置及び構造化文書作成用プログラムを格納した記憶媒体 | |
US8788929B2 (en) | Script generation | |
JP5135389B2 (ja) | 情報漏えいファイル検知装置、及びその方法とプログラム | |
MXPA04001295A (es) | Parametrizacion de reporte declarativo en secuencia. | |
CN113238740B (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
CN111694561A (zh) | 一种接口管理方法、装置、设备及存储介质 | |
CN113326030A (zh) | 一种业务请求的处理方法和装置 | |
EP1696339A2 (en) | System and method for testing data format using targeted variant input | |
CN110334103B (zh) | 推荐服务的更新方法、提供装置、访问装置和推荐系统 | |
JPH1115723A (ja) | マルチメディアデータ供給方法及びマルチメディアデータサーバ | |
JP3904037B2 (ja) | 遠隔手続管理装置及び遠隔手続管理方法 | |
CN107733709A (zh) | 数据存储方法、装置及电子设备 | |
Bril et al. | Maintaining a legacy: towards support at the architectural level | |
JP2001265747A (ja) | 分散オブジェクト連携装置 | |
CN112799710B (zh) | 一种模型发布系统及模型发布方法 | |
CN116594679A (zh) | 接口文档的生成方法及装置、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051026 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060913 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061109 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070102 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140119 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |