(57)【要約】      （修正有）【課題】効率的にアプリケーション間の通信を行うことのできる通信システムを提供する。【解決手段】第１のアプリケーションと第２のアプリケーションとの接続を確立する接続手段１２０と、第１のアプリケーションから第２のアプリケーションへの要求を行う要求手段１４０と、第１のアプリケーションの情報を有する第１の通信メンバと、第２のアプリケーションの情報を有する第２の通信メンバと、データ転送指示、第１のアプリケーションの情報および第２のアプリケーションの情報に基づいて、第１のアプリケーションと第２のアプリケーションとの間のデータ転送を制御する転送手段１６０と、転送手段１６０からの指示に基づいて、第１のデータの送受信を行う第１データユニット処理手段１８１と、転送手段からの指示に基づいて、第２のデータの送受信を行う第２のデータユニット処理手段１８２とを備えた。【選択図】        図３
2006065574.tif 000002
【特許請求の範囲】
【請求項１】
２つのアプリケーションの間の通信を行う通信システムであって、
第１のアプリケーションから第２のアプリケーションとの接続要求を取得した場合に、前記第１のアプリケーションと第２のアプリケーションとの接続を確立する接続手段と、
前記接続手段によって前記第１のアプリケーションと前記第２のアプリケーションとの接続が確立した後に、前記第１のアプリケーションから前記第２のアプリケーションへの要求を取得し、当該要求に応じたデータ転送指示を生成する要求手段と、
前記第１のアプリケーションの情報を有する第１の通信メンバと、
前記第２のアプリケーションの情報を有する第２の通信メンバと、
前記要求手段からの前記データ転送指示、前記第１の通信メンバが有する前記第１のアプリケーションの情報および前記第２の通信メンバが有する第２のアプリケーションの情報に基づいて、前記第１のアプリケーションと前記第２のアプリケーションとの間のデータ転送を制御する転送手段と、
前記転送手段からの指示に基づいて、第１のデータの送受信を行う第１データユニット処理手段と、
前記転送手段からの指示に基づいて、第２のデータの送受信を行う第２のデータユニット処理手段と
を備えたことを特徴とする通信システム。
【請求項２】
前記第１のデータユニット処理手段は、
前記第１のデータの転送処理に関する情報を有し、前記転送手段からの指示に基づいて当該情報に基づいて処理を指示する第１のデータユニット仲介手段と、
前記第１のデータユニット仲介手段からの指示に基づいて、前記第１のデータを送受信する第１のデータユニットと
を有することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記第１のデータユニット仲介手段は、所定のデータブロック単位でのデータの転送処理に関する情報を有し、
前記第１のデータユニット処理手段は、前記第１のデータユニット仲介手段からの指示に基づいて、前記データブロック単位で前記第１のデータを送受信することを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記第２のデータユニット処理手段は、
前記第２のデータの転送処理に関する情報を有し、前記転送手段からの指示に基づいて当該情報に基づいて処理を指示する第２のデータユニット仲介手段と、
前記第２のデータユニット仲介手段からの指示に基づいて、前記第２のデータを送受信する第２のデータユニットと
を有することを特徴とする請求項１から３のいずれか一項に記載の通信システム。
【請求項５】
前記第２のデータユニット仲介手段は、所定のデータブロック単位でのデータの転送処理に関する情報を有し、
前記第２のデータユニット手段は、前記第２のデータユニット仲介手段からの指示に基づいて、前記データブロック単位で前記第２のデータを送受信することを特徴とする請求項１から４のいずれか一項に記載の通信システム。
【請求項６】
前記第１のデータユニット処理手段は、前記転送手段からの指示に基づいて、前記第１のデータの送信を行い、
前記第２のデータユニット処理手段は、前記転送手段からの指示に基づいて、前記第２のデータの受信を行うことを特徴とする請求項１から５のいずれか一項に記載の通信システム。
【請求項７】
前記第１のアプリケーションの通信方式に関する情報および前記第２のアプリケーションの通信方式に関する情報を有し、前記第１のアプリケーションおよび前記第２のアプリケーションの通信を管理する通信管理手段をさらに備え、
前記転送手段は、前記第１の通信メンバが有する前記第１のアプリケーションの情報と、前記通信管理手段が有する前記第１のアプリケーションの通信方式に関する情報と、前記第２の通信メンバが有する前記第２のアプリケーションの情報と、前記通信管理手段が有する前記第２のアプリケーションの通信方式に関する情報とに基づいてデータ転送を制御することを特徴とする請求項１から６のいずれか一項に記載の通信システム。
【請求項８】
２つのアプリケーションの間の通信を行う通信方法であって、
第１のアプリケーションから第２のアプリケーションとの接続要求を取得した場合に、前記第１のアプリケーションと第２のアプリケーションとの接続を確立する接続ステップと、
前記接続ステップにおいて前記第１のアプリケーションと前記第２のアプリケーションとの接続が確立した後に、前記第１のアプリケーションから前記第２のアプリケーションへの要求を取得し、当該要求に応じたデータ転送指示を生成する要求ステップと、
前記要求ステップにおいて生成された前記データ転送指示、前記第１のアプリケーションの情報を有する第１の通信メンバが有する前記第１のアプリケーションの情報および前記第２のアプリケーションの情報を有する第２の通信メンバが有する第２のアプリケーションの情報に基づいて、前記第１のアプリケーションと第２のアプリケーションとの間のデータ転送を制御する転送ステップと、
前記転送ステップにおける制御に基づいて、第１のデータの送受信を行う第１データユニット処理ステップと、
前記転送ステップにおける制御に基づいて、第２のデータの送受信を行う第２のデータユニット処理ステップと
を有することを特徴とする通信方法。
【請求項９】
請求項８に記載の通信方法をコンピュータに実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つのアプリケーションの間の通信を行う通信システム、通信方法および通信プログラムに関するものである。
【背景技術】
【０００２】
従来、通信を行うべき２つのアプリケーションの間の通信プロトコルが異なる場合には、２つのアプリケーションの共通のプロトコルを使うように２つのアプリケーションを変更するなど、何らかの処理が必要であった。
【０００３】
このための技術としては、例えば、２つのアプリケーションにアクセスするアプリケーション仲介部を追加するものが知られている（例えば、「特許文献１」参照）。これによれば、アプリケーション仲介部は、既存のインターフェイスを利用して既存のアプリケーションにアクセスすることができる。このため、アプリケーションの通信プロトコルが異なる場合であっても、アプリケーションに変更を加えることなく、アプリケーション間でデータ転送を行うことができる。
【０００４】
【特許文献１】特開２００１−２１６２２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
アプリケーション間の通信を仲介するソフトウェアは、次々に策定される新しい規格に対応するものである必要がある。しかし、規格ごとに個別に開発されることが多く、次のような課題を抱えている。すなわち、（１）規格ごとに個別に開発することで、プログラム中に重複部分が多くなり、開発効率が良くない。（２）個別に開発するため、ソフトウェアの品質は担当者に依存する。（３）（１）の重複部分が各所に散在しているため、その処理に関わる１つの変更が各所に及ぶことになり、保守性が良くない。
【０００６】
本発明は、上記課題に鑑みてなされたものであって、効率的にアプリケーション間の通信を行うことのできる通信システム、通信方法および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、２つのアプリケーションの間の通信を行う通信システムであって、第１のアプリケーションから第２のアプリケーションとの接続要求を取得した場合に、前記第１のアプリケーションと第２のアプリケーションとの接続を確立する接続手段と、前記接続手段によって前記第１のアプリケーションと前記第２のアプリケーションとの接続が確立した後に、前記第１のアプリケーションから前記第２のアプリケーションへの要求を取得し、当該要求に応じたデータ転送指示を生成する要求手段と、前記第１のアプリケーションの情報を有する第１の通信メンバと、前記第２のアプリケーションの情報を有する第２の通信メンバと、前記要求手段からの前記データ転送指示、前記第１の通信メンバが有する前記第１のアプリケーションの情報および前記第２の通信メンバが有する第２のアプリケーションの情報に基づいて、前記第１のアプリケーションと第２のアプリケーションとの間のデータ転送を制御する転送手段と、前記転送手段からの指示に基づいて、第１のデータの送受信を行う第１データユニット処理手段と、前記転送手段からの指示に基づいて、第２のデータの送受信を行う第２のデータユニット処理手段とを備えたことを特徴とする。
【０００８】
また、請求項２にかかる発明は、請求項１に記載の通信システムであって、前記第１のデータユニット処理手段は、前記第１のデータの転送処理に関する情報を有し、前記転送手段からの指示に基づいて当該情報に基づいて処理を指示する第１のデータユニット仲介手段と、前記第１のデータユニット仲介手段からの指示に基づいて、前記第１のデータを送受信する第１のデータユニットとを有することを特徴とする。
【０００９】
また、請求項３にかかる発明は、請求項１または２に記載の通信システムであって、前記第１のデータユニット仲介手段は、所定のデータブロック単位でのデータの転送処理に関する情報を有し、前記第１のデータユニット処理手段は、前記第１のデータユニット仲介手段からの指示に基づいて、前記データブロック単位で前記第１のデータを送受信することを特徴とする。
【００１０】
また、請求項４にかかる発明は、請求項１から３のいずれか一項に記載の通信システムであって、前記第２のデータユニット処理手段は、前記第２のデータの転送処理に関する情報を有し、前記転送手段からの指示に基づいて当該情報に基づいて処理を指示する第２のデータユニット仲介手段と、前記第２のデータユニット仲介手段からの指示に基づいて、前記第２のデータを送受信する第２のデータユニットとを有することを特徴とする。
【００１１】
また、請求項５にかかる発明は、請求項１から４のいずれか一項に記載の通信システムであって、前記第２のデータユニット仲介手段は、所定のデータブロック単位でのデータの転送処理に関する情報を有し、前記第２のデータユニット手段は、前記第２のデータユニット仲介手段からの指示に基づいて、前記データブロック単位で前記第２のデータを送受信することを特徴とする。
【００１２】
また、請求項６にかかる発明は、請求項１から５のいずれか一項に記載の通信システムであって、前記第１のデータユニット処理手段は、前記転送手段からの指示に基づいて、前記第１のデータの送信を行い、前記第２のデータユニット処理手段は、前記転送手段からの指示に基づいて、前記第２のデータの受信を行うことを特徴とする。
【００１３】
また、請求項７にかかる発明は、請求項１から６のいずれか一項に記載の通信システムであって、前記第１のアプリケーションの通信方式に関する情報および前記第２のアプリケーションの通信方式に関する情報を有し、前記第１のアプリケーションおよび前記第２のアプリケーションの通信を管理する通信管理手段をさらに備え、前記転送手段は、前記第１の通信メンバが有する前記第１のアプリケーションの情報と、前記通信管理手段が有する前記第１のアプリケーションの通信方式に関する情報と、前記第２の通信メンバが有する前記第２のアプリケーションの情報と、前記通信管理手段が有する前記第２のアプリケーションの通信方式に関する情報とに基づいてデータ転送を制御することを特徴とする。
【００１４】
また、請求項８にかかる発明は、２つのアプリケーションの間の通信を行う通信方法であって、第１のアプリケーションから第２のアプリケーションとの接続要求を取得した場合に、前記第１のアプリケーションと第２のアプリケーションとの接続を確立する接続ステップと、前記接続ステップにおいて前記第１のアプリケーションと前記第２のアプリケーションとの接続が確立した後に、前記第１のアプリケーションから前記第２のアプリケーションへの要求を取得し、当該要求に応じたデータ転送指示を生成する要求ステップと、前記要求ステップにおいて生成された前記データ転送指示、前記第１のアプリケーションの情報を有する第１の通信メンバが有する前記第１のアプリケーションの情報および前記第２のアプリケーションの情報を有する第２の通信メンバが有する第２のアプリケーションの情報に基づいて、前記第１のアプリケーションと第２のアプリケーションとの間のデータ転送を制御する転送ステップと、前記転送ステップにおける制御に基づいて、第１のデータの送受信を行う第１データユニット処理ステップと、前記転送ステップにおける制御に基づいて、第２のデータの送受信を行う第２のデータユニット処理ステップとを有することを特徴とする。
【００１５】
また、請求項９にかかる発明は、請求項８に記載の通信方法をコンピュータに実行させることを特徴とする通信プログラムであることを特徴とする。
【発明の効果】
【００１６】
請求項１にかかる発明によれば、接続手段は、第１のアプリケーションから第２のアプリケーションとの接続要求を取得した場合に、第１のアプリケーションと第２のアプリケーションとの接続を確立し、要求手段は、接続手段によって第１のアプリケーションと第２のアプリケーションとの接続が確立した後に、第１のアプリケーションから第２のアプリケーションへの要求を取得し、当該要求に応じたデータ転送指示を生成し、転送手段は、データ転送指示、第１の通信メンバが有する第１のアプリケーションの情報および第２の通信メンバが有する第２のアプリケーションの情報に基づいて、第１のアプリケーションと第２のアプリケーションとの間のデータ転送を制御し、第１データユニット処理手段は、転送手段からの指示に基づいて、第１のデータの送受信を行い、第２のデータユニット処理手段は、転送手段からの指示に基づいて、第２のデータの送受信を行うことができる。このように、第１のデータユニット処理手段と第２のデータユニット処理手段とがそれぞれ独立している。また、各データユニット処理手段がデータの転送にかかる処理を行う。したがって、１まとまりのデータの転送が複数のデータブロックの転送を含む場合、各データブロックの転送は、各データユニット処理手段が管理するので、転送手段は、各データブロックの転送を管理する必要がなく、処理の効率化を図ることができるという効果を奏する。
【００１７】
また、請求項２にかかる発明によれば、第１のデータユニット処理手段の第１のデータユニット仲介手段は、第１のデータの転送処理に関する情報を有し、転送手段からの指示に基づいて当該情報に基づいて処理を指示し、第１のデータユニット処理手段の第１のデータユニットは、第１のデータユニット仲介手段からの指示に基づいて、第１のデータを送受信することができる。このように、責務を明確にすることにより、処理の効率化を図ることができるという効果を奏する。さらに、障害発生時に問題箇所を特定するのが容易になり、保守性を向上させることができるという効果を奏する。
【００１８】
また、請求項３にかかる発明によれば、第１のデータユニット仲介手段は、所定のデータブロック単位でのデータの転送処理に関する情報を有し、第１のデータユニット処理手段は、第１のデータユニット仲介手段からの指示に基づいて、データブロック単位で第１のデータを送受信することができる。このように、データブロック単位でデータを送受信できるので、処理の効率化を図ることができるという効果を奏する。
【００１９】
また、請求項４にかかる発明によれば、第２のデータユニット処理手段の第２のデータユニット仲介手段は、第２のデータの転送処理に関する情報を有し、転送手段からの指示に基づいて当該情報に基づいて処理を指示し、第２のデータユニット処理手段の第２のデータユニットは、第２のデータユニット仲介手段からの指示に基づいて、第２のデータを送受信することができる。このように、責務を明確にすることにより、処理の効率化を図ることができるという効果を奏する。さらに、障害発生時に問題箇所を特定するのが容易になり、保守性を向上させることができるという効果を奏する。
【００２０】
また、請求項５にかかる発明によれば、第２のデータユニット仲介手段は、所定のデータブロック単位でのデータの転送処理に関する情報を有し、第２のデータユニット手段は、第２のデータユニット仲介手段からの指示に基づいて、データブロック単位で第２のデータを送受信することができる。このように、データブロック単位でデータを送受信できるので、処理の効率化を図ることができるという効果を奏する。
【００２１】
また、請求項５にかかる発明によれば、第１のデータユニット処理手段は、転送手段からの指示に基づいて、第１のデータの送信を行い、第２のデータユニット処理手段は、転送手段からの指示に基づいて、第２のデータの受信を行うことができる。このように、処理を分担させることにより、処理の効率化を図ることができるという効果を奏する。
【００２２】
また、請求項６にかかる発明によれば、第１のデータユニット処理手段は、転送手段からの指示に基づいて、第１のデータの送信を行い、第２のデータユニット処理手段は、転送手段からの指示に基づいて、第２のデータの受信を行うことができる。このように、送信処理と受信処理とをそれぞれ独立に行うことにより、処理の効率化を図ることができるという効果を奏する。
【００２３】
また、請求項７にかかる発明によれば、通信管理手段は、第１のアプリケーションの通信方式に関する情報および第２のアプリケーションの通信方式に関する情報を有し、第１のアプリケーションおよび第２のアプリケーションの通信を管理し、転送手段は、第１の通信メンバが有する第１のアプリケーションの情報と、通信管理手段が有する第１のアプリケーションの通信方式に関する情報と、第２の通信メンバが有する第２のアプリケーションの情報と、通信管理手段が有する第２のアプリケーションの通信方式に関する情報とに基づいてデータ転送を制御することができるという効果を奏する。このように、通信方式に関する情報を管理することにより、１つのアプリケーションが複数のプロトコルなどの通信手段を実現することたできる。また、１つの通信手段が複数のアプリケーションで使用されている場合に、その共通部分を重複して開発する必要がないという効果を奏する。
【００２４】
また、請求項８にかかる発明によれば、接続ステップでは、第１のアプリケーションから第２のアプリケーションとの接続要求を取得した場合に、第１のアプリケーションと第２のアプリケーションとの接続を確立し、要求ステップでは、接続ステップによって第１のアプリケーションと第２のアプリケーションとの接続が確立した後に、第１のアプリケーションから第２のアプリケーションへの要求を取得し、当該要求に応じたデータ転送指示を生成し、転送ステップは、データ転送指示、第１の通信メンバが有する第１のアプリケーションの情報および第２の通信メンバが有する第２のアプリケーションの情報に基づいて、第１のアプリケーションと第２のアプリケーションとの間のデータ転送を制御し、第１データユニット処理ステップでは、転送ステップにおける制御に基づいて、第１のデータの送受信を行い、第２のデータユニット処理ステップでは、転送ステップにおける制御に基づいて、第２のデータの送受信を行うことができる。このように、第１のデータユニット処理手段と第２のデータユニット処理ステップとがそれぞれ独立している。また、各データユニット処理ステップがデータの転送にかかる処理を行う。したがって、１まとまりのデータの転送が複数のデータブロックの転送を含む場合、転送ステップは、各データブロックの転送を管理する必要がなく、処理の効率化を図ることができるという効果を奏する。
【００２５】
また、請求項９にかかる発明によれば、接続ステップでは、第１のアプリケーションから第２のアプリケーションとの接続要求を取得した場合に、第１のアプリケーションと第２のアプリケーションとの接続を確立し、要求ステップでは、接続ステップによって第１のアプリケーションと第２のアプリケーションとの接続が確立した後に、第１のアプリケーションから第２のアプリケーションへの要求を取得し、当該要求に応じたデータ転送指示を生成し、転送ステップは、データ転送指示、第１の通信メンバが有する第１のアプリケーションの情報および第２の通信メンバが有する第２のアプリケーションの情報に基づいて、第１のアプリケーションと第２のアプリケーションとの間のデータ転送を制御し、第１データユニット処理ステップでは、転送ステップにおける制御に基づいて、第１のデータの送受信を行い、第２のデータユニット処理ステップでは、転送ステップにおける制御に基づいて、第２のデータの送受信を行うことができる。このように、第１のデータユニット処理手段と第２のデータユニット処理ステップとがそれぞれ独立している。また、各データユニット処理ステップがデータの転送にかかる処理を行う。したがって、１まとまりのデータの転送が複数のデータブロックの転送を含む場合、転送ステップは、各データブロックの転送を管理する必要がなく、処理の効率化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２６】
以下に添付図面を参照して、この発明にかかる通信システム、通信方法および通信プログラムの最良な実施の形態を詳細に説明する。
【００２７】
（第１の実施の形態）
図１は、本発明の第１の実施の形態にかかる通信システム１０の全体を示す図である。通信システム１０は、通信仲介部１００と、通信元アプリケーション２１０と、通信先アプリケーション２２０とを備えている。通信仲介部１００は、通信元アプリケーション２１０と通信先アプリケーション２２０との間の通信を仲介する。具体的には、図２を参照しつつ説明する２つのアプリケーションの間の通信処理を行う。
【００２８】
図２は、２つのアプリケーションが通信を行うときの基本的な通信シーケンス図である。通信元アプリケーション２１０は、通信先アプリケーション２２０に対して接続要求を送信する（ステップＳ１００）。これにより、通信元アプリケーション２１０と通信先アプリケーション２２０の間の通信が確立する（ステップＳ１０２）。
【００２９】
接続が確立すると、通信元アプリケーション２１０は、通信先アプリケーション２２０に対し、所定のデータの転送を示す処理要求を送信する（ステップＳ１０４）。次に、通信元アプリケーション２１０から通信先アプリケーション２２０に所定のデータが転送される（ステップＳ１０６）。データの転送が完了すると、通信先アプリケーション２２０は通信元アプリケーション２１０に対して応答を送信し（ステップＳ１０８）、通信元アプリケーション２１０と通信先アプリケーション２２０間の通信を切断する（ステップＳ１１０）。以上で、通信元アプリケーション２１０と通信先アプリケーション２２０との間の通信処理が完了する。
【００３０】
他の例としては、ステップＳ１００により接続が確立した後に、複数の要求がやり取りされる場合がある。または、１つの要求を満たすために、複数回のデータ転送（ステップＳ１０６）を繰り返す必要がある場合がある。
【００３１】
また、データ転送としては、通信元アプリケーション２１０から通信先アプリケーション２２０へのデータ転送だけでなく、通信先アプリケーション２２０から通信元アプリケーション２１０へのデータ転送も含まれる。また、通信元アプリケーション２１０から通信先アプリケーション２２０へのデータ転送と通信先アプリケーション２２０から通信元アプリケーション２１０へのデータ転送の両方を順次または同時に行う双方向通信の場合もある。
【００３２】
また、データ転送の対象となるデータが、複数のデータのまとまり（データブロック）を有する場合もある。この場合、１つのデータ転送が複数回のデータブロックの受け渡しを含む場合もある。
【００３３】
このように、様々なデータ転送が想定される。通信仲介部１００は、このようなデータ転送を効率的に行うことができる。そして、アプリケーションが通信相手とやりとりする際の負荷を軽減し、アプリケーションが通信する相手を柔軟に切り替えることができる。
【００３４】
図３は、通信仲介部１００の機能構成を示すブロック図である。通信仲介部１００は、接続部１２０と、要求部１４０と、転送部１６０と、第１データユニット部１８１と、第２データユニット部１８２と、第３データユニット部１８３とを有している。
【００３５】
接続部１２０は通信元アプリケーション２１０と通信先アプリケーション２２０の間の接続に関する処理を行う。通信元アプリケーション２１０からの接続の依頼を受けると通信先アプリケーション２２０に対して接続の依頼を発行する。通信仲介部１００、通信元アプリケーション２１０および通信先アプリケーション２２０の三者の間で接続が確立すると、接続部１２０はそれ以降の要求の実行を要求部１４０に対して依頼する。
【００３６】
要求部１４０は、接続部１２０から要求の実行の指示を受けると、当該指示を実行するために必要な処理を実行する。その際に通信元アプリケーション２１０と通信先アプリケーション２２０の間でデータ転送を行う必要がある。そこで、転送部１６０に対し、データ転送を依頼する。
【００３７】
転送部１６０は、要求部１４０から依頼されたデータ転送を実行する。１つのデータの転送に複数回のデータの転送が必要である場合には、１回ごとのデータの転送をデータユニット部１８１〜１８３に依頼する。各データユニット部１８１〜１８３は、それぞれ依頼されたデータ転送を実行する。そして、データ転送の結果を転送部１６０に報告する。
【００３８】
ここで、複写機の例について説明する。接続部１２０では、印刷クライアント上のプリンタドライバと、複写機内のコピーアプリ間の接続を行う。要求部１４０は、印刷要求を複写機に送る。転送部１６０は、印刷条件の転送、画像データの転送を行う。第１データユニット部１８１は、印刷条件の１項目、画像の最初の２５６ｂｙｔｅｓを担当し、第２データユニット部１８２は、印刷条件の２項目、第１データユニット部１８１が担当した画像の次の２５６ｂｙｔｅｓを担当し、第２データユニット部１８２は、印刷条件の１項目、第２データユニット部１８２が担当した画像の次の２５６ｂｙｔｅｓを担当する。
【００３９】
図４は、接続部１２０の詳細な機能構成を示すブロック図である。接続部１２０は、接続仲介部１２２と、第１接続実体１２４と、第２接続実体１２６とを有している。接続仲介部１２２は、第１接続実体１２４および第２接続実体１２６の双方と関連を有している。第１接続実体１２４は、通信元アプリケーション２１０に対応する。すなわち、第１接続実体１２４は、接続の依頼を出した通信元アプリケーション２１０との間の送受信を担当する。第２接続実体１２６は、通信先アプリケーション２２０に対応する。すなわち、第２接続実体１２６は、接続の依頼先である通信先アプリケーション２２０との送受信を担当する。
【００４０】
接続仲介部１２２は、接続を確立するまでの処理を担当する。具体的には、通信元アプリケーション２１０および通信先アプリケーション２２０との送受信が必要となった際に、送受信が必要なアプリケーションを担当する第１接続実体１２４または第２接続実体１２６に対して、送受信を依頼する。
【００４１】
図５は、接続部１２０における接続処理を示すシーケンス図である。第１接続実体１２４は、通信元アプリケーション２１０から接続要求を受信する（ステップＳ２００）。次に、第１接続実体１２４は、接続仲介部１２２に対して接続依頼を送る（ステップＳ２０２）。次に、接続仲介部１２２は、第２接続実体１２６に接続依頼を送る（ステップＳ２０４）。次に、第２接続実体１２６は、通信先アプリケーション２２０との接続処理を行う（ステップＳ２０６）。
【００４２】
通信先アプリケーション２２０との接続が完了すると、第２接続実体１２６は、接続仲介部１２２に対して、その旨応答する（ステップＳ２０８）。そして、応答が、接続仲介部１２２、第１接続実体１２４および通信元アプリケーション２１０に送られる（ステップＳ２１０,ステップＳ２１２）。以上で、接続部１２０における接続処理が完了する。
【００４３】
図６は、転送部１６０の詳細な機能構成を示すブロック図である。転送部１６０は、接続仲介部１６２と、第１転送実体１６４と、第２転送実体１６６とを有している。
【００４４】
また、第１通信メンバ２１２は、通信元アプリケーション２１０の情報を管理している。第２通信メンバ２２２は、通信先アプリケーション２２０の情報を管理している。
【００４５】
第１転送実体１６４は、第１通信メンバ２１２を介して通信元アプリケーション２１０との情報の送受信を行う。この際、第１通信メンバ２１２の情報に従う。また、第２転送実体１６６は、第２通信メンバ２２２を介して通信先アプリケーション２２０との情報の送受信を行う。この際、第２通信メンバ２２２の情報に従う。
【００４６】
接続仲介部１６２は、転送を確立するまでの処理を担当する。具体的には、通信元アプリケーション２１０および通信先アプリケーション２２０の間でのデータ転送が必要となった際に、送受信が必要なアプリケーションを担当する第１転送実体１６４または第２転送実体１６６に対して、データ転送を依頼する。
【００４７】
図７は、他の例にかかる転送部１６１の詳細な機能構成を示すブロック図である。転送部１６１の第１転送実体１６４および第２転送実体１６６は、第１通信メンバ２１２および第２通信メンバ２２２の情報に基づいてアプリケーションを区別する。したがって、各転送実体に対応する通信メンバを変更することにより、容易に逆方向通信を実現することができる。図７に示す転送部１６１においては、第１転送実体１６４は、第２通信メンバ２２２に対応づけられており、第２転送実体１６６は、第１通信メンバ２１２に対応付けられている。これにより、逆方向への通信、すなわち通信先アプリケーション２２０から通信元アプリケーション２１０への通信を実現することができる。
【００４８】
このように、通信仲介部１００の構成を変更することにより、効率的に２つのアプリケーションの間の通信を確立することができる。
【００４９】
図８は、転送部１６０の接続仲介部１６２と、第１データユニット部１８１と、第２データユニット部１８２と、第３データユニット部１８３の処理を示すシーケンス図である。
【００５０】
接続仲介部１６２は、３つのデータの転送を行う場合には、第１データユニット部１８１に対して第１データ転送依頼を送り（ステップＳ２２０）、第２データユニット部１８２に第２データ転送依頼を送り（ステップＳ２２２）、第３データユニット部１８３に第３データ転送依頼を送る（ステップＳ２２４）。
【００５１】
その後、第１データユニット部１８１は、データ転送処理が完了すると第１データ転送完了報告を接続仲介部１６２に送る（ステップＳ２２６）。第２データユニット部１８２は、データ転送処理が完了すると第２データ転送完了報告を接続仲介部１６２に送る（ステップＳ２３０）。第３データユニット部１８３は、データ転送処理が完了すると第３データ転送報告を接続仲介部１６２に送る（ステップＳ２２８）。以上でデータ転送処理が完了する。
【００５２】
以上のように、接続仲介部１６２は、各データユニット部１８１〜１８３に１ブロックのデータ転送依頼を送った後は、各データユニット部１８１〜１８３において処理が完了するまで待機すればよい。
【００５３】
なお、データ転送すべき転送容量が極めて小さく、１回のデータブロックの転送のみを行う場合や、ライブラリの機能により、データの転送の仕組みがごく簡単である場合などは、第１データユニット部１８１〜第３データユニット部１８３は必要なく、接続部１２０、要求部１４０および転送部１６０のみで通信の仲介を遂行することができる。
【００５４】
一方、プラットフォームやアプリケーションのインターフェイスなどの制限により、１つのデータの転送を複数のデータブロックに分割して転送する必要がある場合などは、本実施の形態にように、複数のデータユニット部１８１〜１８３を備えることにより、処理の効率化を図ることができる。
【００５５】
なお、本実施の形態においては、通信システム１０は、３つのデータユニット部を備えたが、データユニット部の数は、本実施の形態に限定されるものではない。同時転送の数だけデータユニット部を備えることにより、接続仲介部１６２の処理を軽減することができる。具体的には、例えば、データユニット部を複数備えない場合には、接続仲介部１６２は、複数のデータ転送を行うために、各データ転送の状態を管理しなければならない。このため、本実施の形態にかかる通信システム１０よりも複雑な構造を設けなければならない。
【００５６】
また、通信システム１０においては、通信元アプリケーション２１０と通信先アプリケーション２２０の間に通信仲介部１００が設けられている。したがって、通信元アプリケーション２１０および通信先アプリケーション２２０は、インターフェイスに依存することなく通信を行うことができる。
【００５７】
また、通信元アプリケーション２１０は、通信先アプリケーション２２０以外のアプリケーションと通信する場合でも、通信相手を意識することなく同様の手順で通信を行うことができる。
【００５８】
このように、通信仲介部１００は、通信元アプリケーション２１０または通信先アプリケーション２２０から接続の依頼を受けると、通信元アプリケーション２１０または通信先アプリケーション２２０にかわって、接続に関する処理を行うことができる。同様に、通信元アプリケーション２１０または通信先アプリケーション２２０にかわって、要求やデータ転送に関する処理を行うことができる。
【００５９】
なお、要求部１４０、データユニット部１８１〜１８３の詳細な機能構成は、図６を参照しつつ説明した転送部１６０の詳細な機能構成と同様である。具体的には、例えば、図９に示すように、第１データユニット部１８１は、データユニット仲介部１８０２と、第１データユニット実体１８０４と、第２データユニット実体１８０６とを有している。
【００６０】
第１データユニット実体１８０４は、第１通信メンバ２１２を介して通信元アプリケーション２１０との情報の送受信を行う。この際、第１通信メンバ２１２の情報に従う。また、第２データユニット実体１８０６は、第２通信メンバ２２２を介して通信先アプリケーション２２０との情報の送受信を行う。この際、第２通信メンバ２２２の情報に従う。
【００６１】
データユニット仲介部１８０２は、転送を確立するまでの処理を担当する。具体的には、通信元アプリケーション２１０および通信先アプリケーション２２０の間でのデータ転送が必要となった際に、送受信が必要なアプリケーションを担当する第１データユニット実体１８０４または第２データユニット実体１８０６に対して、データ転送を依頼する。
【００６２】
図１０は、実施の形態１に係る通信システム１０のハードウェア構成を示す図である。通信システム１０は、ハードウェア構成として、通信システム１０における通信処理を実行する通信プログラムなどが格納されているＲＯＭ５２と、ＲＯＭ５２内のプログラムに従って通信システム１０の各部を制御するＣＰＵ５１と、通信システム１０の制御に必要な種々のデータを記憶するＲＡＭ５３と、ネットワークに接続して通信を行う通信I／Ｆ５７と、各部を接続するバス６２とを備えている。
【００６３】
先に述べた通信システム１０における通信プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（Ｒ）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供されてもよい。
【００６４】
この場合には、通信プログラムは、通信システム１０において上記記録媒体から読み出して実行することにより主記憶装置上にロードされ、上記ソフトウェア構成で説明した各部が主記憶装置上に生成されるようになっている。
【００６５】
また、本実施の形態の通信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００６６】
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
【００６７】
そうした第１の変更例としては、本実施の形態においては、通信仲介部１００と、通信元アプリケーション２１０と、通信先アプリケーション２２０とを備えた通信システム１０について説明したが、他の例としては、通信システム１０は、通信元アプリケーション２１０と、通信先アプリケーション２２０とを備えなくともよい。この場合、通信システム１０は、外部の通信元アプリケーション２１０および通信先アプリケーション２２０に対し、実施の形態１にかかる通信仲介部１００が行った処理を行う。
【００６８】
（実施の形態２）
次に、実施の形態２にかかる通信システム１０について説明する。図１１は、実施の形態２にかかる通信仲介部１００の機能構成を示すブロック図である。通信仲介部１００は、データユニット仲介部１９０を有している。この点で、実施の形態２にかかる通信仲介部１００は、実施の形態１にかかる通信仲介部１００と異なっている。
【００６９】
データユニット仲介部１９０は、接続仲介部１６２からデータ転送依頼を取得する。そして、データ転送依頼に対して、各データユニット部１８１〜１８３に対して、データ転送にかかる処理を依頼する。
【００７０】
図１２は、実施の形態２にかかるデータ転送処理を示すシーケンス図である。まず、接続仲介部１６２は、データユニット仲介部１９０に対して、１ブロック分のデータ転送依頼を送る（ステップＳ２４０）。次に、データユニット仲介部１９０は、第１データユニット部１８１に対して、データの読み込みを指示する（ステップＳ２４２）。次に、第１データユニット部１８１は、通信元アプリケーション２１０に対して読み込み処理を行う（ステップＳ２４４）。第１データユニット部１８１は、読み込み処理が終了すると、読み込み処理終了をデータユニット仲介部１９０に通知する（ステップＳ２４６）。
【００７１】
次に、データユニット仲介部１９０は、第２データユニット部１８２に対して、データの書き込みを指示する（ステップＳ２４８）。次に、第２データユニット部１８２は、通信先アプリケーション２２０に対してデータを書き込む（ステップＳ２５０）。第２データユニット部１８２は、書き込みが終了すると、書き込み処理終了をデータユニット仲介部１９０に通知する（ステップＳ２５２）。次に、データユニット仲介部１９０は、接続仲介部１６２に対して１ブロック分のデータ転送が完了した旨を報告する（ステップＳ２５４）。以上で、実施の形態２にかかるデータ転送処理が完了する。
【００７２】
なお、図１２におけるデータ転送処理における書き込み処理や読み込み処理時に通信メンバからさらに通信手段に対してメッセージが必要となる場合があるが、本図においては、省略している。
【００７３】
このように、実施の形態２にかかる通信仲介部１００は、データユニット仲介部１９０を有することにより、データユニット仲介部１９０と、各データユニット部１８１〜１８３との処理の分担が明確化されるので、障害発生時に問題箇所を容易に特定することができる。これにより、保守性を向上させることができる。また、仕様変更時には、モデルやソースコードの変更箇所を局所化することができる。
【００７４】
なお、実施の形態２にかかる通信システム１０のこれ以外の構成および処理は、実施の形態１にかかる通信システム１０の構成および処理と同様である。
【００７５】
（実施の形態３）
次に、実施の形態３にかかる通信システム１０について説明する。図１３は、実施の形態３にかかる通信システム１０における通信メンバとしての第１アプリケーション２３１、第２アプリケーション２３２および第３アプリケーション２３３と、通信手段のインスタンスの間の関係を示している。通信手段のインスタンスとしては、例えば、図１２に示すようにＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）やＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌが）ある。
【００７６】
図１３に示すように、実施の形態３にかかる第１アプリケーション２３１は、ＴＣＰのみをサポートしている。第２アプリケーション２３２は、ＴＣＰとＵＤＰの両方をサポートしている。第３アプリケーション２３３は、ＵＤＰのみをサポートしている。
【００７７】
仮に、第１アプリケーション２３１がＵＤＰをサポートするように変更になった場合には、通信仲介部１００においては、ＵＤＰに対して関連を持たせるだけでよい。そして、その他にはほとんど修正を行うことなく第１アプリケーション２３１に対してＵＤＰに対応できるようになる。また、ＴＣＰの仕様が変更になった場合には、ＴＣＰインスタンスの部分のみを変更すればよい。
【００７８】
このように、通信メンバと通信手段とを分離することによって、その間に自由に関連をもたせることができる。
【００７９】
なお、本実施の形態においては、通信手段のインスタンスをＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルにおけるトランスポート層レベルで抽出した。ただし、この層である必要はなく、仲介ソフトウェアの用途に合わせて、セッション層など他の層でインスタンスを抽出してもよい。
【００８０】
なお、実施の形態３にかかる通信システム１０のこれ以外の構成および処理は、実施の形態１にかかる通信システム１０の構成および処理と同様である。
【図面の簡単な説明】
【００８１】
【図１】第１の実施の形態にかかる通信システム１０の全体を示す図である。
【図２】２つのアプリケーションが通信を行うときの基本的な通信シーケンス図である。
【図３】通信仲介部１００の機能構成を示すブロック図である。
【図４】接続部１２０の詳細な機能構成を示すブロック図である。
【図５】接続部１２０における接続処理を示すシーケンス図である。
【図６】転送部１６０の詳細な機能構成を示すブロック図である。
【図７】他の例にかかる転送部１６１の詳細な機能構成を示すブロック図である。
【図８】転送部１６０の接続仲介部１６２と、第１データユニット部１８１と、第２データユニット部１８２と、第３データユニット部１８３の処理を示すシーケンス図である。
【図９】第１データユニット部１８０の詳細な構成を示すブロック図である。
【図１０】実施の形態１に係る通信システム１０のハードウェア構成を示す図である。
【図１１】実施の形態２にかかる通信仲介部１００の機能構成を示すブロック図である。
【図１２】実施の形態２にかかるデータ転送処理を示すシーケンス図である。
【図１３】実施の形態３にかかる通信システム１０における通信メンバとしての第１アプリケーション２３１、第２アプリケーション２３２および第３アプリケーション２３３と、通信手段のインスタンスの間の関係を示す図である。
【符号の説明】
【００８２】
１０  通信システム
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５７  通信I／Ｆ
６２  バス
１００  通信仲介部
１２０  接続部
１２２  接続仲介部
１２４第１接続実体
１２６  第２接続実体
１４０  要求部
１６０，１６１  転送部
１６２  接続仲介部
１６４  第１転送実体
１６６  第２転送実体
１８１  第１データユニット部
１８２  第２データユニット部
１８３  第２２データユニット部
１９０  データユニット仲介部
２１０  通信元アプリケーション
２１２  第１通信メンバ
２２０  通信先アプリケーション
２２２  第２通信メンバ
【図１】
2006065574.tif 000003
【図２】
2006065574.tif 000004
【図３】
2006065574.tif 000005
【図４】
2006065574.tif 000006
【図５】
2006065574.tif 000007
【図６】
2006065574.tif 000008
【図７】
2006065574.tif 000009
【図８】
2006065574.tif 000010
【図９】
2006065574.tif 000011
【図１０】
2006065574.tif 000012
【図１１】
2006065574.tif 000013
【図１２】
2006065574.tif 000014
【図１３】
2006065574.tif 000015