(57)【要約】【課題】サーバプログラムにおけるセション管理を不要とすること。【解決手段】クライアントＡＰとサーバＡＰとの間にゲートウェイ部を設け、このゲートウェイ部が、クライアントＡＰからのＲＰＣ要求を受け付けるクライアント連携部と、サーバＡＰからの応答を受け付けるサーバ連携部と、複数セションからなる業務処理をおこなうサーバＡＰを起動するサーバＡＰ起動部とを備え、クライアント連携部およびサーバ連携部が記憶部のセション管理情報を更新／参照することによってセション管理をおこなうよう構成する。また、サーバ連携部が、サーバＡＰからの応答をサーバ連携部への要求として受け付けるよう構成する。【選択図】        図２
2007102480.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御プログラムであって、
前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手順と、
前記セション情報管理手順が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継手順と
をコンピュータに実行させることを特徴とする通信制御プログラム。
【請求項２】
前記中継手順は、
前記遠隔手続き呼び出し要求に対する前記サーバプログラムからの応答を、前記クライアントプログラムが発行する遠隔手続き呼び出し要求に対する遠隔手続き応答としてではなく、該中継手順に対する遠隔手続き呼び出し要求として受け付けることを特徴とする請求項１に記載の通信制御プログラム。
【請求項３】
前記中継手順は、
前記サーバプログラムに向けた要求データの中継処理と前記クライアントプログラムへの応答処理とをおこなうクライアント連携実行体を前記遠隔手続き呼び出し要求ごとに生成するクライアント連携手順と、
前記サーバプログラムの応答を前記クライアント連携実行体に中継するサーバ連携実行体を該応答ごとに生成するサーバ連携手順と
をさらにコンピュータ実行させることを特徴とする請求項１または２に記載の通信制御プログラム。
【請求項４】
クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御方法であって、
前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理工程と、
前記セション情報管理工程が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継工程と
を含んだことを特徴とする通信制御方法。
【請求項５】
クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御装置であって、
前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手段と、
前記セション情報管理手段が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継手段と
を備えたことを特徴とする通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御プログラム、通信制御方法および通信制御装置に関し、特に、ＲＰＣ応答をおこなう際のサーバプログラム終了を不要とするとともに、サーバプログラムにセション管理に関するロジックを埋め込む必要のない通信制御プログラム、通信制御方法および通信制御装置に関するものである。
【背景技術】
【０００２】
従来、分散ＯＳ（Distributed  Operating  System）環境を実現する技術として遠隔手続き呼び出し（ＲＰＣ；Remote  Procedure  Call）システム（以下、「ＲＰＣ」と記載する）が広く用いられている。
【０００３】
たとえば、クライアント装置に搭載されるクライアントプログラムは、サーバ装置に搭載されるサーバプログラムが提供する「遠隔手続き」を、ネットワークを介して呼び出す。この際、クライアントプログラムは通常の「ローカル手続き」を呼び出す手順と同様の手順で「遠隔手続き」を呼び出すことができる。
【０００４】
このＲＰＣに関する技術として、特許文献１には、クライアントプログラムが発行したＲＰＣ要求をサーバプログラムに中継する中継サーバを設け、この中継サーバがサーバプログラムからの応答を蓄積する技術が開示されている。また、特許文献２には、分散ＯＳ環境に対応していないセション制御信号を分散ＯＳ環境に対応したセション制御信号に変換するゲートウェイ装置に関する技術が開示されている。
【０００５】
ところで、上記したクライアントプログラムがサーバプログラムに対してＲＰＣ要求を発行し、このＲＰＣ要求に対してサーバプログラムが応答する手順（以下、「セション」と記載する）は、複数回のセションの繰り返しで一つの業務処理が構成されることが多い。このため、従来のサーバプログラムは複数のセションを管理するセション管理機能を備える必要があった。
【０００６】
オブジェクト指向言語でクライアント／サーバ型のシステムを構築する場合には、上記したセション管理機能を実現するオブジェクトを用意することで、サーバプログラム自体にセション管理機能を設ける必要はない。しかし、従来の非オブジェクト指向言語で構築されたクライアント／サーバ型システムの資産を引継ぎつつシステム開発をおこなう場合には、上記したセション管理機能を含んだサーバプログラムを作成する必要がある。また、非オブジェクト指向言語で作成されたサーバプログラムは、クライアントプログラムに対するＲＰＣ応答を発行する際に終了しなければならないという制約がある。
【０００７】
このため、非オブジェクト指向言語で作成されたサーバプログラムは、セション管理に用いるデータをＤＢ（Data  Base）に格納するなどして次回のセションへのデータ引継ぎをおこなう必要があった。
【０００８】
【特許文献１】特開２００２−１９７００７号公報
【特許文献２】特開平１１−６５８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１あるいは特許文献２の技術は、サーバプログラムがＲＰＣ応答の際に終了しなければならないという制約を解決する技術ではない。したがって、特許文献１あるいは特許文献２の技術を用いた場合であっても、サーバプログラムがＲＰＣ応答をおこなう際には終了せざるをえないという制約を解消することはできなかった。
【００１０】
また、上記したサーバプログラム終了の制約に伴い、サーバプログラムにはセション管理に関するロジック（たとえば、次回のセションへのデータ引継ぎ）を埋め込む必要があり、サーバプログラムの複雑化を招くという問題もあった。
【００１１】
これらのことから、ＲＰＣ応答をおこなう際のサーバプログラム終了を不要とするとともに、サーバプログラムにセション管理に関するロジックを埋め込む必要のない通信制御手法をいかにして実現するかが大きな課題となっている。
【００１２】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ＲＰＣ応答をおこなう際のサーバプログラム終了を不要とするとともに、サーバプログラムにセション管理に関するロジックを埋め込む必要のない通信制御プログラム、通信制御方法および通信制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため請求項１に係る発明は、クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御プログラムであって、前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手順と、前記セション情報管理手順が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継手順とをコンピュータに実行させることを特徴とする。
【００１４】
また、請求項２に係る発明は、上記の発明において、前記中継手順は、前記遠隔手続き呼び出し要求に対する前記サーバプログラムからの応答を、前記クライアントプログラムが発行する遠隔手続き呼び出し要求に対する遠隔手続き応答としてではなく、該中継手順に対する遠隔手続き呼び出し要求として受け付けることを特徴とする。
【００１５】
また、請求項３に係る発明は、上記の発明において、前記中継手順は、前記サーバプログラムに向けた要求データの中継処理と前記クライアントプログラムへの応答処理とをおこなうクライアント連携実行体を前記遠隔手続き呼び出し要求ごとに生成するクライアント連携手順と、前記サーバプログラムの応答を前記クライアント連携実行体に中継するサーバ連携実行体を該応答ごとに生成するサーバ連携手順とをさらにコンピュータ実行させることを特徴とする。
【００１６】
また、請求項４に係る発明は、クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御方法であって、前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理工程と、前記セション情報管理工程が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継工程とを含んだことを特徴とする。
【００１７】
また、請求項５に係る発明は、クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御装置であって、前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手段と、前記セション情報管理手段が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継手段とを備えたことを特徴とする。
【発明の効果】
【００１８】
請求項１の発明によれば、クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手順と、セション情報管理手順が管理するセション情報に基づいてクライアントプログラムとサーバプログラムとの間で遠隔手続き呼び出し型データ通信の中継をおこなう中継手順とをコンピュータに実行させるよう構成したので、サーバプログラムにセション管理に関するロジックを埋め込むことなくセション管理を実現することによって、サーバプログラムの開発効率および保守効率を向上させることができるという効果を奏する。
【００１９】
また、請求項２の発明によれば、中継手順は、遠隔手続き呼び出し要求に対するサーバプログラムからの応答を、クライアントプログラムが発行する遠隔手続き呼び出し要求に対する遠隔手続き応答としてではなく、中継手順に対する遠隔手続き呼び出し要求として受け付けるよう構成したので、サーバプログラムが遠隔手続き呼び出し応答をおこなう際に終了する必要がなく、複数セションに渡る業務処理において引継ぎデータをデータベースに保存したり読み出したりといった本来の業務処理には不要な処理を省略することができるという効果を奏する。
【００２０】
また、請求項３の発明によれば、中継手順は、サーバプログラムに向けた要求データの中継処理とクライアントプログラムへの応答処理とをおこなうクライアント連携実行体を遠隔手続き呼び出し要求ごとに生成するクライアント連携手順と、サーバプログラムの応答をクライアント連携実行体に中継するサーバ連携実行体を応答ごとに生成するサーバ連携手順とをさらにコンピュータ実行させるよう構成したので、セション管理を容易におこなうことができるという効果を奏する。
【００２１】
また、請求項４の発明によれば、クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理工程と、セション情報管理工程が管理するセション情報に基づいてクライアントプログラムとサーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継工程とを含むよう構成したので、サーバプログラムにセション管理に関するロジックを埋め込むことなくセション管理を実現することによって、サーバプログラムの開発効率および保守効率を向上させることができるという効果を奏する。
【００２２】
また、請求項５の発明によれば、クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手段と、セション情報管理手段が管理するセション情報に基づいてクライアントプログラムとサーバプログラムとの間で遠隔手続き呼び出し型データ通信の中継をおこなう中継手段とを備えるよう構成したので、サーバプログラムにセション管理に関するロジックを埋め込むことなくセション管理を実現することによって、サーバプログラムの開発効率および保守効率を向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、この発明に係る通信制御手法の好適な実施例を詳細に説明する。なお、以下では、この通信制御手法をサーバ装置に適用した場合について説明することとする。
【実施例】
【００２４】
まず、本発明に係る通信制御手法の概要について図１を用いて説明する。図１は、本発明に係る通信制御手法の概要を示す図である。なお、同図では、クライアント装置に搭載されたクライアントＡＰ（クライアントアプリケーションプログラム）が、サーバ装置に搭載されたサーバＡＰ（サーバアプリケーションプログラム）に対してＲＰＣ要求をおこなう場面について示している。また、同図の１ａに示したのは従来の通信制御手法の概要であり、同図の１ｂに示したのは本発明に係る通信制御手法の概要である。
【００２５】
以下では、セションＡおよびセションＢを含んだ処理をクライアントが要求する場合について説明する。図１の１ａに示すように、従来の通信制御手法ではセションＡに対応するサーバＡＰは、サーバ要求Ａ（ＲＰＣ要求）に対応する応答をＲＰＣ応答として返していたのでこの応答を返す際にサーバＡＰ自体を終了させる必要があった。
【００２６】
このため、サーバＡＰが終了する際には、次のセション（セションＢ）で用いるデータを引継ぎデータとしてＤＢなどに記録していた。なぜならば、サーバＡＰが終了する際には、サーバＡＰが使用している記憶領域は解放されてしまうからである。そして、セションＢに対応するサーバＡＰは、かかるＤＢから引継ぎデータを読み出して業務処理をおこない、セションＢに関する応答（ＲＰＣ応答）を返すことになる。
【００２７】
このように、従来の通信制御手法では、サーバＡＰに、引継ぎデータの保存処理や読み出し処理といった本来の業務処理以外の処理を組み込む必要があった。このため、サーバＡＰの開発工数や、保守工数が増加してしまうという問題があった。
【００２８】
そこで、本発明に係る通信制御手法では、図１の１ｂに示すように、クライアントＡＰとサーバＡＰとの間にゲートウェイ部を設け、このゲートウェイ部がセション管理をおこなうこととした。したがって、サーバＡＰにセション管理に関連するロジックを組み込むことなく複数セションからなる処理を実現することが可能となる。
【００２９】
具体的には、上記したゲートウェイ部は、クライアントＡＰからのＲＰＣ要求を受け付けるとともに、受け付けたＲＰＣ要求に対する応答（ＲＰＣ応答）を返すクライアント連携部と、サーバＡＰからの応答をＲＰＣ要求として受け付けてクライアント連携部に通知するサーバ連携部とを備えている。そして、クライアント連携部およびサーバ連携部は、記憶部に記憶されたセション管理情報を更新／参照することによって複数セションのセション管理をおこなうこととした。
【００３０】
また、上記したように、サーバ連携部はサーバＡＰからの応答をサーバ連携部に対する要求として受け付けるので、サーバＡＰはクライアントＡＰに対する応答をＲＰＣ応答ではなく、サーバ連携部への要求として実行することができる。つまり、サーバＡＰは、ＲＰＣ応答を実行する際の制約である終了処理をおこなう必要がない。したがって、サーバＡＰは、複数の業務処理（図１の１ｂに示す「業務処理Ａ」および「業務処理Ｂ」）間で共通して用いるデータを、サーバＡＰが使用している記憶領域を介して引き継ぐことができる。
【００３１】
このように、本発明に係る通信制御手法によれば、クライアントＡＰとサーバＡＰとの間に設けられたゲートウェイ部がセション管理をおこなうので、サーバＡＰにセション管理用のロジックを組み込む必要がない。また、サーバＡＰは、クライアントＡＰの要求に対する応答をＲＰＣ応答ではなく、サーバ連携部に対する要求として発行することができるので、クライアントＡＰへの応答をおこなう際に終了する必要はない。このため、複数セションにまたがって使用される引継ぎデータの保存処理や読み出し処理のロジックをサーバＡＰに組み込むことは不要となる。
【００３２】
したがって、本発明に係る通信制御手法を用いることによって、サーバＡＰがおこなう処理を本来の業務処理に振り分けることができるので、サーバＡＰの開発工数や保守工数を効果的に削減することが可能となる。特に、非オブジェクト指向言語で開発されるサーバＡＰでは、オブジェクト指向言語で開発されるサーバＡＰとは異なりセション管理用のオブジェクト（たとえば、ＥＪＢ（Enterprise  Java（登録商標）Beans）などのフレームワークを利用）にセション管理を任せるといった構成をとりにくいので、本発明に係る通信制御手法を適用することで大きな効果を得ることができる。
【００３３】
なお、図１の１ｂには、かかるゲートウェイ部をサーバ装置上に配置した場合について示しているが、本発明に係る通信制御手法では、これに限らず、ゲートウェイ部をネットワーク上の独立した装置上に構成したり、各クライアント装置に配置したりすることとしてもよい。
【００３４】
次に、本発明に係る通信制御手法を適用したサーバ装置について図２を用いて説明する。図２は、サーバ装置１０の構成を示すブロック図である。なお、同図に示すクライアント装置１００、サーバ装置１０に含まれるサーバ部５０および各通信制御部４００ａ〜４００ｄは、従来の通信制御手法における装置あるいは処理部をそのまま用いることができる。また、図２では、サーバ装置１０にゲートウェイ部４０を設けているが、上記したように、このゲートウェイ部４０を独立した装置上に設けたり、クライアント装置１００上に設けたりすることとしてもよい。
【００３５】
クライアント装置１００は、パーソナルコンピュータなどのコンピュータであり、サーバアクセス機能を有するクライアントＡＰ２００と、ネットワークを介してサーバ装置１０とのデータ通信をおこなう通信制御部４００ａとを備えている。
【００３６】
クライアントＡＰ２００は、通信制御部４００ａを介することによってサーバ装置に対してＲＰＣ要求をおこなう処理を含んだプログラムである。このクライアントＡＰ２００は、一つの業務処理中において複数回のＲＰＣ要求をおこない、各ＲＰＣ要求の応答データを用いて業務処理をおこなうものとする。
【００３７】
また、通信制御部４００ａは、ＬＡＮ（Local  Area  Network）ボードなどの通信デバイスを含んだ処理部である。そして、この通信制御部４００ａは、クライアント装置１００とサーバ装置１０との間で双方向のデータ通信をおこなう処理をおこなう。たとえば、この通信制御部４００ａは、上記したＲＰＣ要求／応答をＳｏｃｋｅｔ通信におけるｓｅｎｄ関数やｒｅｃｅｉｖｅ関数の発行に置き換えることによってデータの送受信をおこなう。
【００３８】
サーバ装置１０は、サーバコンピュータなどのコンピュータであり、クライアント装置１００からの要求に応答してデータ提供などのサービスをおこなう装置である。このサーバ装置１０は、記憶部２０と、制御部３０とを備えており、記憶部２０は、複数のセションを管理する情報であるセション管理情報２１を記憶している。
【００３９】
また、制御部３０は、ゲートウェイ部４０とサーバ部５０とをさらに備えている。そして、ゲートウェイ部４０は、クライアント連携部４１と、サーバＡＰ起動部４２と、サーバ連携部４３と、通信制御部４００ｂと、通信制御部４００ｃとをさらに備えており、サーバ部５０は、サーバＡＰ３００と、通信制御部４００ｄとをさらに備えている。
【００４０】
記憶部２０は、ＲＡＭ（Random  Access  Memory）などの記憶デバイスによって構成された記憶部であり、複数のセションを管理する情報であるセション管理情報２１を記憶している。ここで、このセション管理情報２１について図３を用いてさらに詳細に説明しておく。図３は、セション管理情報２１の一例を示す図である。
【００４１】
図３に示すように、セション管理情報２１は、「クライアントＩＤ」と、「セションＩＤ」と、「クライアント連携部セマフォＩＤ」と、「サーバ連携部セマフォＩＤ」とを要素とする情報であり、これらの要素を含んだレコードをセションごとに用意する。なお、本実施例においては、テーブル型のセション管理情報２１について説明するが、各要素をそれぞれ関連付けたリンクリストなどを用いることによってセション管理情報２１を構成することとしてもよい。
【００４２】
クライアントＩＤは、ＲＰＣ要求を発行したクライアントプログラムを識別する識別子であり、セションＩＤは、ＲＰＣ要求が属するセションを識別する識別子である。また、クライアント連携部セマフォＩＤは、後述するクライアント連携部４１の各実行体が使用するセマフォを識別する識別子であり、サーバ連携部セマフォＩＤは、後述するサーバ連携部４３の各実行体が使用するセマフォを識別する識別子である。
【００４３】
たとえば、図３において、クライアントＩＤが「ＣＬＩＥＮＴ０１」であるレコードは、セションＩＤが「ＳＥＳ０１」および「ＳＥＳ０２」である２つのレコードである。すなわち、ＣＬＩＥＮＴ０１に対応するクライアントＡＰ２００は、２つのセションからなる業務処理をサーバＡＰに対して要求していることを示している。また、セションＩＤが「ＳＥＳ０１」であるセションに対応するクライアント連携部４１の実行体は、セマフォＩＤが「Ｃ−ＳＭＦ０１」のセマフォを用いており、同じくサーバ連携部４３の実行体は、セマフォＩＤが「Ｓ−ＳＭＦ０１」のセマフォを用いていることを示している。
【００４４】
なお、本実施例においては、クライアント連携部４１およびサーバ連携部４３は、セマフォを用いてデータの受け渡しおよび処理の中止／再開をおこなうこととしているが、セマフォ以外のシステムコールを用いて同様の処理をおこなうよう構成してもよい。
【００４５】
図２の説明に戻り、制御部３０について説明する。制御部３０は、ゲートウェイ部４０およびサーバ部５０を備えているが、本実施例の特徴部分はゲートウェイ部４０である。同図に示すように、ゲートウェイ部４０は、クライアント装置１００のクライアントＡＰ２００とサーバ部５０のサーバＡＰ３００との間に位置してセション管理をおこなう処理部である。
【００４６】
クライアント連携部４１は、通信制御部４００ｂを介してクライアントＡＰ２００のＲＰＣ要求を受け取り、受け取ったＲＰＣ要求に含まれる要求データをサーバＡＰ起動部４２に通知するとともに、サーバ連携部４３を介して受け取ったサーバＡＰ３００の応答をＲＰＣ応答としてクライアントＡＰ２００に返す処理をおこなう処理部である。また、このクライアント連携部４１は、自身が使用するセマフォを取得し、取得したセマフォのセマフォＩＤと、クライアントＡＰ２００から受け取ったＲＰＣ要求に関するクライアントＩＤおよびセションＩＤ（図３参照）とを記憶部２０のセション管理情報２１に登録する処理をおこなう処理部でもある。
【００４７】
なお、クライアント連携部４１の実行体はクライアントＡＰ２００のＲＰＣ要求ごとにプロセスあるいはスレッドとして生成される。そして、サーバＡＰ起動部４２に要求データを通知すると取得したセマフォを用いて待ち合わせ処理（以下、「ＷＡＩＴ」と記載する）をおこない、サーバ連携部４３からの応答受信をトリガーとしてＷＡＩＴを解除し、クライアントＡＰ２００に対してＲＰＣ応答を送信する。また、ＲＰＣ応答を送信したならば、かかる実行体は終了することになる。
【００４８】
サーバＡＰ起動部４２は、クライアント連携部４１からの指示によってＲＰＣ要求に対応するサーバＡＰ３００を起動するとともに、このサーバＡＰ３００に対して最初のＲＰＣ要求に含まれる要求データを通知する処理をおこなう処理部である。なお、特定のサーバＡＰ３００に対して複数のセションからなる要求がなされた場合には、このサーバＡＰ起動部４２の実行体は、複数のセションからなるセショングループごとに生成され、最初のセションにおいてサーバＡＰ３００を起動し、最後のセションの終了に伴い終了する。
【００４９】
サーバ連携部４３は、サーバＡＰ３００からの応答データをＲＰＣ要求として受け取り、受け取ったＲＰＣ要求に含まれる応答データをクライアント連携部４１に通知する処理をおこなう処理部である。また、このサーバ連携部４３は、自身が使用するセマフォを取得し、取得したセマフォのセマフォＩＤを記憶部２０のセション管理情報２１の該当するレコードに登録する処理をおこなう処理部でもある。
【００５０】
なお、サーバ連携部４３の実行体はサーバＡＰ３００の応答ごとにプロセスあるいはスレッドとして生成される。そして、セショングループの最終セションではないセションに対応する実行体である場合には、クライアント連携部４１に応答データを通知すると取得したセマフォを用いてＷＡＩＴし、クライアント連携部４１から次のセションに属する要求データ受信をトリガーとしてＷＡＩＴを解除したうえでサーバＡＰ３００に要求データを通知して終了する。また、セショングループの最終セションに対応する実行体である場合には、クライアント連携部４１に応答データを通知したならば終了する。
【００５１】
通信制御部４００ｂは、上記したクライアント装置１００の通信制御部４００ａと同様の通信制御部であり、クライアントＡＰ２００が通信制御部４００ａを介して発行したＲＰＣ要求を受信してクライアント連携部４１に渡すとともに、クライアント連携部４１が発行したＲＰＣ応答を受信し、通信制御部４００ａを介してクライアントＡＰ２００に送信する処理をおこなう処理部である。
【００５２】
また、通信制御部４００ｃは、上記したクライアント装置１００の通信制御部４００ａと同様の通信制御部であり、サーバＡＰ起動部４２あるいはサーバ連携部４３から受信したデータを、サーバ部５０の通信制御部４００ｄを介してサーバＡＰ３００に通知するとともに、サーバＡＰ３００が通信制御部４００ｄを介して送信したデータを、サーバＡＰ起動部４２あるいはサーバ連携部４３に渡す処理をおこなう処理部である。
【００５３】
サーバ部５０は、サーバＡＰ３００および通信制御部４００ｄを含んでおり、図１の１ａに示したサーバ装置に相当する処理部である。サーバＡＰ３００は、クライアントＡＰ２００からのＲＰＣ要求をゲートウェイ部４０を介して受け取り、要求に対する応答を返す処理をおこなう。ただし、サーバＡＰ３００がゲートウェイ部４０に応答を返す際には、ＲＰＣ応答（ＲＰＣ要求に対する応答）ではなく、応答データを含んだＲＰＣ要求を返すことになる。したがって、サーバＡＰ３００は、複数セションにわたる業務処理をおこなう場合であっても、一連のセションが完了するまで終了する必要がないので、データ引継ぎに関する処理（ロジック）を必要としない。
【００５４】
通信制御部４００ｄは、上記したクライアント装置１００の通信制御部４００ａと同様の通信制御部であり、ゲートウェイ部４０の通信制御部４００ｃとの間で双方向のデータ通信をおこなう処理部である。
【００５５】
次に、本実施例に係る各処理部（図２参照）間の関係について図４を用いて説明する。図４は、各処理部の連携を時系列に示すシーケンス図である。なお、同図においては、クライアントＡＰ２００が２回のセション（ＲＰＣ要求／応答）を含んだサーバ要求をおこなう場合について示している。また、図２に示したクライアント連携部４１の実行体を４１ａおよび４１ｂとして、サーバ連携部４３の実行体を４３ａおよび４３ｂとしてそれぞれ示している。
【００５６】
図４に示すように、クライアントＡＰ２００が１回目のサーバ呼び出し（ＲＰＣ要求）をおこなうと（ステップＳ１０１）、この要求を受けたクライアント連携部４１ａは、ＲＰＣ要求に含まれる要求データをサーバＡＰ起動部４１ｂに向けて通知し（ステップＳ１０２）、自身は図３に示したクライアント連携部セマフォＩＤに対応するセマフォを用いてＷＡＩＴする（ステップＳ１０３）。そして、かかる通知を受けたサーバＡＰ起動部４２は、要求データを含んだサーバＡＰ起動指示をサーバＡＰ３００に対して通知することによって（ステップＳ１０４）対応するサーバＡＰ３００を起動する。
【００５７】
つづいて、サーバＡＰ３００は、起動指示に含まれる要求データを受信し（ステップＳ１０５）、所定の業務処理をおこなったうえで応答データを作成し、作成した応答データでサーバ連携部４３ａを起動する（ステップＳ１０６）。なお、サーバＡＰ３００は、応答データを通知した後も終了することなく次のデータ受信を待ち合わせる。
【００５８】
そして、サーバＡＰ３００によって起動され、サーバＡＰ３００が作成した応答データを受け取ったサーバ連携部４３ａは、クライアント連携部４１ａにかかる応答データを通知し（ステップＳ１０７）、自身は図３に示したサーバ連携部セマフォＩＤに対応するセマフォを用いてＷＡＩＴする（ステップＳ１０８）。
【００５９】
この応答データの通知を受けたクライアント連携部４１ａは、セマフォによるＷＡＩＴを解除し（ステップＳ１０９）、かかる応答データをＲＰＣ応答としてクライアントＡＰ２００に通知する（ステップＳ１１０）。ＲＰＣ応答を受け取った（ステップＳ１１１）クライアントＡＰ２００は、応答データを用いた業務処理をおこなったうえで、２回目のサーバ呼び出し（ＲＰＣ要求）をおこなう（ステップＳ１１２）。
【００６０】
かかるサーバ呼び出し（ＲＰＣ要求）を受け付けたクライアント連携部４１ｂは、ＲＰＣ要求に含まれる要求データをサーバ連携部４３ａに向けて通知し（ステップＳ１１３）、自身は図３に示したクライアント連携部セマフォＩＤに対応するセマフォを用いてＷＡＩＴする（ステップＳ１１４）。そして、クライアント連携部４１ｂから要求データを受け取ったサーバ連携部４３ａは、セマフォによるＷＡＩＴを解除するとともに（ステップＳ１１５）、かかる要求データをサーバＡＰ３００に通知する。
【００６１】
つづいて、サーバＡＰ３００は、サーバ連携部４３ａからの要求データを受信し（ステップＳ１１６）、所定の業務処理をおこなったうえで応答データを作成し、作成した応答データを通知することによって（ステップＳ１１７）サーバ連携部４３ｂを起動する。なお、サーバＡＰは、要求データに含まれるセション情報などに基づき、最終セションであると判定したうえでサーバＡＰ起動部４２に終了通知（ステップＳ１１８）を送信し、終了する。
【００６２】
また、サーバＡＰ３００から応答データを受信したサーバ連携部４３ｂは、かかる応答データをクライアント連携部４１ｂに通知する（ステップＳ１１９）。そして、サーバ連携部４３ｂから応答データを受信したクライアント連携部４１ｂは、セマフォによるＷＡＩＴを解除し（ステップＳ１２０）、かかる応答データをＲＰＣ応答としてクライアントＡＰ２００に通知する（ステップＳ１２１）。ＲＰＣ応答を受信した（ステップＳ１２２）クライアントＡＰ２００は、所定の業務処理をおこなうことになる。
【００６３】
次に、上述したクライアント連携部４１、サーバＡＰ起動部４２およびサーバ連携部４３が実行する処理手順について図５〜図７を用いて説明する。なお、図５〜図７においては、クライアントＩＤを「ＣＬ−ＩＤ」と、セションＩＤを「ＳＥＳ−ＩＤ」と、クライアント連携部セマフォＩＤを「ＣＬセマフォＩＤ」と、サーバ連携部セマフォＩＤを「ＳＶセマフォＩＤ」と、それぞれ略記している。
【００６４】
まず、クライアント連携部４１の処理手順について図５を用いて説明する。図５は、クライアント連携部４１の処理手順を示すフローチャートである。なお、同図に示す処理手順は、クライアント連携部４１によって生成される各実行体がおこなう処理手順である。
【００６５】
図５に示すように、クライアント連携部４１はクライアント（クライアントＡＰ２００）からの要求待ちをおこない（ステップＳ２０１）、要求を受信すると（ステップＳ２０２）、かかる要求がセション開始要求であるか否かを判定する（ステップＳ２０３）。なお、ステップＳ２０２において受信する要求は、ＣＬ−ＩＤ、ＳＥＳ−ＩＤおよび要求データを含んだ情報である。
【００６６】
そして、ステップＳ２０３においてセション開始要求であると判定された場合には（ステップＳ２０３，Ｙｅｓ）、サーバＡＰ起動部４２を生成し（ステップＳ２０４）、ＣＬセマフォＩＤを取得する（ステップＳ２０７）。一方、ステップＳ２０３においてセション開始要求ではないと判定された場合（セショングループに属する２回目以降のセションであると判定された場合）には（ステップＳ２０３，Ｎｏ）、セション管理情報２１を検索してＳＶセマフォＩＤを取得したうえで（ステップＳ２０５）該当するサーバ連携部４３に対して要求データを通知し（ステップＳ２０６）、ＣＬセマフォＩＤを取得する（ステップＳ２０７）。
【００６７】
つづいて、クライアント連携部４１は、ステップＳ２０７において取得したＣＬセマフォＩＤをセション管理情報２１に登録し（ステップＳ２０８）、ステップＳ２０７において取得したＣＬセマフォＩＤに対応するセマフォを用いてＷＡＩＴする（ステップＳ２０９）。そして、サーバ連携部４３（サーバ連携部４３が生成した実行体）から応答データを受信したならば（ステップＳ２１０）、ＷＡＩＴを解除したうえで自身は終了するとともに応答データをＲＰＣ応答としてクライアントへ通知する（ステップＳ２１１）。
【００６８】
次に、サーバＡＰ起動部４２の処理手順について図６を用いて説明する。図６は、サーバＡＰ起動部４２の処理手順を示すフローチャートである。なお、同図に示す処理手順は、サーバＡＰ起動部４２によって生成される各実行体がおこなう処理手順である。
【００６９】
図６に示すように、サーバＡＰ起動部４２は、クライアント連携部４１から要求データを受信すると、サーバＡＰ３００を呼び出す（ステップＳ３０１）。そして、サーバＡＰ３００からの応答を待ち合わせ（ステップＳ３０２）、サーバＡＰ３００から応答を受信すると（ステップＳ３０３）処理を終了する。
【００７０】
次に、サーバ連携部４３の処理手順について図７を用いて説明する。図７は、サーバ連携部４３の処理手順を示すフローチャートである。なお、同図に示す処理手順は、サーバ連携部４３によって生成される各実行体がおこなう処理手順である。
【００７１】
図７に示すように、サーバ連携部４３がサーバＡＰ３００によって起動されると（ステップＳ４０１）、セション管理情報２１を検索してＣＬセマフォＩＤを取得する（ステップＳ４０２）。なお、サーバ連携部４３がステップＳ４０１において起動される際には、ＣＬ−ＩＤ、ＳＥＳ−ＩＤおよび応答データを受け取る。
【００７２】
つづいて、サーバ連携部４３は応答データをクライアント連携部４１（ステップＳ４０１において取得したＣＬセマフォＩＤに対応する実行体）へ通知し（ステップＳ４０３）、かかる応答データがセション終了の応答データであるか否かを判定する（ステップＳ４０４）。そしてセション終了の応答データではない場合には（ステップＳ４０４，Ｎｏ）、ＳＶセマフォＩＤを取得する処理をおこなう（ステップＳ４０５）。一方、セション終了の応答データである場合には（ステップＳ４０４，Ｙｅｓ）、プログラムを終了する（ステップＳ４１０）。
【００７３】
ステップＳ４０５の処理につづき、サーバ連携部４３は、取得したＳＶセマフォＩＤをセション管理情報２１に登録し（ステップＳ４０６）、取得したＳＶセマフォＩＤに対応するセマフォを用いてＷＡＩＴする（ステップＳ４０７）。そして、クライアント連携部４１から次の要求データを受信したならば（ステップＳ４０８）、ＷＡＩＴを解除したうえで要求データをサーバＡＰに通知し（ステップＳ４０９）、処理を終了する。
【００７４】
次に、本実施例に係るゲートウェイ部４０の配置バリエーションについて図８を用いて説明する。図８は、ゲートウェイ部４０の配置バリエーションを示す図である。図８の８ａに示すのは、図３に示したブロック図に対応した配置パターンである。このように、ゲートウェイ部４０をサーバ装置上に設けることとすれば、サーバ装置の処理容量が一般的に高い点、従来のクライアント／サーバシステムにそのまま適用できる点からコストパフォーマンスの面からみて好ましいシステム構成となる。しかしながら、ゲートウェイ部４０を他の装置上に配置することとしても構わない。
【００７５】
たとえば、図８の８ｂに示すように、ゲートウェイ部４０を含んだゲートウェイ装置を設けてネットワークに接続する構成としてもよいし、図８の８ｃに示すように、各クライアント装置上にゲートウェイ部４０を配置することとしてもよい。
【００７６】
上述してきたように、本実施例では、クライアントＡＰとサーバＡＰとの間にゲートウェイ部を設け、このゲートウェイ部が、クライアントＡＰからのＲＰＣ要求を受け付けるクライアント連携部と、サーバＡＰからの応答を受け付けるサーバ連携部と、複数セションからなる業務処理をおこなうサーバＡＰを起動するサーバＡＰ起動部とを備え、クライアント連携部およびサーバ連携部が記憶部のセション管理情報を更新／参照することによってセション管理をおこなうよう構成したので、サーバＡＰからセション管理に関するロジックを排除することができる。また、サーバ連携部が、サーバＡＰからの応答をサーバ連携部への要求として受け付けるよう構成したので、サーバＡＰは応答を返すたびに終了することを要しないことから、セションにまたがったデータ引継ぎに関する処理が不要となる。したがって、サーバＡＰの開発効率や保守効率を高めることができる。
【００７７】
（付記１）クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御プログラムであって、前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手順と、前記セション情報管理手順が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継手順とをコンピュータに実行させることを特徴とする通信制御プログラム。
【００７８】
（付記２）前記中継手順は、前記遠隔手続き呼び出し要求に対する前記サーバプログラムからの応答を、前記クライアントプログラムが発行する遠隔手続き呼び出し要求に対する遠隔手続き応答としてではなく、該中継手順に対する遠隔手続き呼び出し要求として受け付けることを特徴とする付記１に記載の通信制御プログラム。
【００７９】
（付記３）前記中継手順は、前記サーバプログラムに向けた要求データの中継処理と前記クライアントプログラムへの応答処理とをおこなうクライアント連携実行体を前記遠隔手続き呼び出し要求ごとに生成するクライアント連携手順と、前記サーバプログラムの応答を前記クライアント連携実行体に中継するサーバ連携実行体を該応答ごとに生成するサーバ連携手順とをさらにコンピュータ実行させることを特徴とする付記１または２に記載の通信制御プログラム。
【００８０】
（付記４）前記クライアント連携手順が生成するクライアント連携実行体は、前記クライアントプログラムから受け付けた前記遠隔手続き呼び出し要求に基づいて当該要求に対応する前記セションと他のセションとの関連および自らを識別する識別子を前記セション情報管理手順に通知し、前記サーバ連携手順が生成するサーバ連携実行体は、前記サーバプログラムから受け付けた応答を、前記セション情報管理手順が管理するセション情報から取得した前記識別子に対応する当該クライアント連携実行体に通知することを特徴とする付記３に記載の通信制御プログラム。
【００８１】
（付記５）前記サーバ連携手順が生成するサーバ連携実行体は、自らを識別する識別子を前記セション情報管理手順に通知し、前記クライアント連携手順があらたに生成したクライアント連携実行体は、前記セション情報管理手順が管理するセション情報に前記サーバ連携実行体に関する識別子が登録されている場合には、当該識別子に対応するサーバ連携実行体に対して要求データを通知することを特徴とする付記４に記載の通信制御プログラム。
【００８２】
（付記６）前記クライアント連携手順が生成するクライアント連携実行体および前記サーバ連携手順が生成するサーバ連携実行体が前記セション情報管理手順に対して通知する識別子は、自身が待ち合わせをおこなうためのセマフォの識別子であり、前記クライアント連携実行体および前記サーバ連携実行体は、前記セマフォを用いて前記クライアント連携実行体あるいは前記サーバ連携実行体からの応答待ちをおこなうことを特徴とする付記５に記載の通信制御プログラム。
【００８３】
（付記７）クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御方法であって、前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理工程と、前記セション情報管理工程が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継工程とを含んだことを特徴とする通信制御方法。
【００８４】
（付記８）前記中継工程は、前記遠隔手続き呼び出し要求に対する前記サーバプログラムからの応答を、前記クライアントプログラムが発行する遠隔手続き呼び出し要求に対する遠隔手続き応答としてではなく、該中継工程に対する遠隔手続き呼び出し要求として受け付けることを特徴とする付記７に記載の通信制御方法。
【００８５】
（付記９）前記中継工程は、前記サーバプログラムに向けた要求データの中継処理と前記クライアントプログラムへの応答処理とをおこなうクライアント連携実行体を前記遠隔手続き呼び出し要求ごとに生成するクライアント連携工程と、前記サーバプログラムの応答を前記クライアント連携実行体に中継するサーバ連携実行体を該応答ごとに生成するサーバ連携工程とをさらに含んだことを特徴とする付記７または８に記載の通信制御方法。
【００８６】
（付記１０）クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなう通信制御装置であって、前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手段と、前記セション情報管理手段が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継手段とを備えたことを特徴とする通信制御装置。
【００８７】
（付記１１）前記中継手段は、前記遠隔手続き呼び出し要求に対する前記サーバプログラムからの応答を、前記クライアントプログラムが発行する遠隔手続き呼び出し要求に対する遠隔手続き応答としてではなく、該中継手段に対する遠隔手続き呼び出し要求として受け付けることを特徴とする付記１０に記載の通信制御装置。
【００８８】
（付記１２）前記中継手段は、前記サーバプログラムに向けた要求データの中継処理と前記クライアントプログラムへの応答処理とをおこなうクライアント連携実行体を前記遠隔手続き呼び出し要求ごとに生成するクライアント連携手段と、前記サーバプログラムの応答を前記クライアント連携実行体に中継するサーバ連携実行体を該応答ごとに生成するサーバ連携手段とをさらに備えたことを特徴とする付記１０または１１に記載の通信制御装置。
【００８９】
（付記１３）前記通信制御装置は、前記サーバプログラムが搭載された前記サーバ装置であることを特徴とする付記１０、１１または１２に記載の通信制御装置。
【００９０】
（付記１４）クライアント装置に搭載されたクライアントプログラムとサーバ装置に搭載されたサーバプログラムとの間でおこなわれる遠隔手続き呼び出し型データ通信の通信制御をおこなうプログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記クライアントプログラムが発行する各遠隔手続き呼び出し要求に対応するセションの関連をあらわすセション情報を管理するセション情報管理手順と、前記セション情報管理手順が管理するセション情報に基づいて前記クライアントプログラムと前記サーバプログラムとの間で前記遠隔手続き呼び出し型データ通信の中継をおこなう中継手順とを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【産業上の利用可能性】
【００９１】
以上のように、本発明に係る通信制御プログラム、通信制御方法および通信制御装置は、セション管理を効率的におこないたい場合に有用であり、特に、サーバプログラムからセション管理に関するロジックを排除したい場合に適している。
【図面の簡単な説明】
【００９２】
【図１】本発明に係る通信制御手法の概要を示す図である。
【図２】サーバ装置の構成を示すブロック図である。
【図３】セション管理情報の一例を示す図である。
【図４】各処理部の連携を時系列に示すシーケンス図である。
【図５】クライアント連携部の処理手順を示すフローチャートである。
【図６】サーバＡＰ起動部の処理手順を示すフローチャートである。
【図７】サーバ連携部の処理手順を示すフローチャートである。
【図８】ゲートウェイ部の配置バリエーションを示す図である。
【００９３】
１０  サーバ装置
２０  記憶部
２１  セション管理情報
３０  制御部
４０  ゲートウェイ部
４１  クライアント連携部
４１ａ、４１ｂ  クライアント連携部の実行体
４２  サーバＡＰ起動部
４３  サーバ連携部
４３ａ、４３ｂ  サーバ連携部の実行体
５０  サーバ部
２００  クライアントＡＰ
３００  サーバＡＰ
４００ａ〜ｄ  通信制御部
【図１】
2007102480.tif 000003
【図２】
2007102480.tif 000004
【図３】
2007102480.tif 000005
【図４】
2007102480.tif 000006
【図５】
2007102480.tif 000007
【図６】
2007102480.tif 000008
【図７】
2007102480.tif 000009
【図８】
2007102480.tif 000010