(57)【要約】【課題】遠隔のサービスを連携させるシステムにおいて、データ変換回数の削減や通信データサイズの削減により、サービス間の連携処理の高速化を実現することを目的とする。【解決手段】送信プロキシ２００は、メッセージを圧縮するために利用可能な圧縮・解凍方式を示す交渉要求データを送信する。受信プロキシ３００は、受信した交渉要求データが示す圧縮・解凍方式の中から利用可能なものを選択する。送信プロキシ２００は、選択された圧縮・解凍方式を記憶する。その後、送信プロキシ２００は、記憶した圧縮・解凍方式を利用して、クライアント１００から受信したＳＯＡＰメッセージを圧縮して送信する。受信プロキシ３００は、選択した圧縮・解凍方式を利用して、そのＳＯＡＰメッセージを解凍してサービス４００へ送信する。【選択図】図１
2008234406.tif 000002
【特許請求の範囲】
【請求項１】
サービスを要求するクライアント装置とネットワークを介してサービスを提供するサーバ装置との間で送受信される通信データを中継する送信装置及び受信装置の組をｎ（ｎ≧１）組備えるサービス通信システムであって、
交渉処理にて、
１番目の組の送信装置は、ネットワークを介して、通信データを変換するために利用可能な変換方式を少なくとも１つ示す交渉要求データＱ１を送信し、
ｎ番目の組の受信装置は、交渉要求データＱ１を受信した場合、交渉要求データＱ１が示す変換方式の中から利用可能な変換方式をＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）で選択し、ネットワークを介して、その変換方式を示す交渉応答データＡ１を送信するとともに、その変換方式を交渉により決定した変換方式としてメモリに記憶し、
１番目の組の送信装置は、交渉応答データＡ１を受信した場合、交渉応答データＡ１が示す変換方式を交渉により決定した変換方式としてメモリに記憶し、
通信処理にて、
１番目の組の送信装置は、前記クライアント装置から通信データを受信した場合、メモリに記憶した変換方式を利用してその通信データをＣＰＵで変換し、ネットワークを介して変換後の通信データを１番目の組の受信装置へ送信し、
ｎ番目の組の受信装置は、ｎ番目の組の送信装置から通信データを受信した場合、メモリに記憶した変換方式を利用してその通信データを変換前の通信データにＣＰＵで変換し、その通信データを前記サーバ装置へ送信することを特徴とするサービス通信システム。
【請求項２】
前記サービス通信システムは、送信装置及び受信装置の組をｎ（ｎ≧２）組備え、
前記通信処理にて、
ｉ（１≦ｉ≦ｎ−１）番目の組の受信装置は、ｉ番目の組の送信装置から通信データを受信した場合、その通信データをｉ＋１番目の送信装置へ送信し、
ｊ（２≦ｊ≦ｎ）番目の組の送信装置は、ｊ−１番目の組の受信装置から通信データを受信した場合、ネットワークを介してその通信データをｊ番目の受信装置へ送信することを特徴とする請求項１に記載のサービス通信システム。
【請求項３】
前記交渉処理にて、
１番目の組の送信装置は、ネットワークを介して交渉要求データＱ１を１番目の組の受信装置へ送信し、
ｉ番目の組の受信装置は、ｉ番目の組の送信装置から交渉要求データＱ１を受信した場合、交渉要求データＱ１をｉ＋１番目の組の送信装置へ送信するとともに、交渉要求データＱ１をメモリに記憶し、
ｊ番目の組の送信装置は、ｊ−１番目の組の受信装置から交渉要求データＱ１を受信した場合、ネットワークを介して交渉要求データＱ１をｊ番目の組の受信装置へ送信し、
ｎ番目の組の受信装置は、ｎ番目の組の送信装置から交渉要求データＱ１を受信した場合、交渉要求データＱ１が示す変換方式の中に利用可能な変換方式がなければ、ネットワークを介して、エラーを示す交渉エラーデータＥ１を送信し、
ｉ番目の組の受信装置は、交渉エラーデータＥ１を受信した場合、メモリに記憶した交渉要求データＱ１が示す変換方式の中から利用可能な変換方式をＣＰＵで選択し、ネットワークを介して、その変換方式を示す交渉応答データＡ１を送信するとともに、その変換方式を交渉により決定した変換方式としてメモリに記憶し、
前記通信処理にて、
ｉ番目の組の受信装置は、ｉ番目の組の送信装置から通信データを受信した場合、メモリに記憶した変換方式があれば、その変換方式を利用してその通信データを変換前の通信データにＣＰＵで変換し、その通信データをｉ＋１番目の送信装置へ送信することを特徴とする請求項２に記載のサービス通信システム。
【請求項４】
前記交渉処理にて、
ｎ番目の組の受信装置は、交渉要求データＱ１を受信した場合、交渉要求データＱ１が示す変換方式の中に利用可能な変換方式がなければ、ネットワークを介して、エラーを示す交渉エラーデータＥ１をｎ番目の組の送信装置へ送信し、
ｊ番目の組の送信装置は、ｊ番目の組の受信装置から交渉エラーデータＥ１を受信した場合、ネットワークを介して、通信データを変換するために利用可能な変換方式を少なくとも１つ示す交渉要求データＱｊを送信し、
ｎ番目の組の受信装置は、交渉要求データＱｊを受信した場合、交渉要求データＱｊが示す変換方式の中から利用可能な変換方式をＣＰＵで選択し、ネットワークを介して、その変換方式を示す交渉応答データＡｊを送信するとともに、その変換方式を交渉により決定した変換方式としてメモリに記憶し、
ｊ番目の組の送信装置は、交渉応答データＡｊを受信した場合、交渉応答データＡｊが示す変換方式を交渉により決定した変換方式としてメモリに記憶し、
前記通信処理にて、
ｊ番目の組の送信装置は、ｊ−１番目の組の受信装置から通信データを受信した場合、メモリに記憶した変換方式があれば、その変換方式を利用してその通信データをＣＰＵで変換し、ネットワークを介して変換後の通信データをｊ番目の組の受信装置へ送信することを特徴とする請求項２に記載のサービス通信システム。
【請求項５】
サービスを要求するクライアント装置とネットワークを介してサービスを提供するサーバ装置との間で送受信される通信データを中継する送信装置及び受信装置の組をｎ（ｎ≧１）組用いるサービス通信方法であって、
交渉処理にて、
１番目の組の送信装置は、ネットワークを介して、通信データを変換するために利用可能な変換方式を少なくとも１つ示す交渉要求データＱ１を送信し、
ｎ番目の組の受信装置は、交渉要求データＱ１を受信した場合、交渉要求データＱ１が示す変換方式の中から利用可能な変換方式をＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）で選択し、ネットワークを介して、その変換方式を示す交渉応答データＡ１を送信するとともに、その変換方式を交渉により決定した変換方式としてメモリに記憶し、
１番目の組の送信装置は、交渉応答データＡ１を受信した場合、交渉応答データＡ１が示す変換方式を交渉により決定した変換方式としてメモリに記憶し、
通信処理にて、
１番目の組の送信装置は、前記クライアント装置から通信データを受信した場合、メモリに記憶した変換方式を利用してその通信データをＣＰＵで変換し、ネットワークを介して変換後の通信データを１番目の組の受信装置へ送信し、
ｎ番目の組の受信装置は、ｎ番目の組の送信装置から通信データを受信した場合、メモリに記憶した変換方式を利用してその通信データを変換前の通信データにＣＰＵで変換し、その通信データを前記サーバ装置へ送信することを特徴とするサービス通信方法。
【請求項６】
サービスを要求するクライアント装置とネットワークを介してサービスを提供するサーバ装置との間で送受信される通信データを中継する送信装置及び受信装置の組をｎ（ｎ≧１）組用いて、交渉処理と通信処理とをコンピュータに実行させるサービス通信プログラムであって、
前記交渉処理にて、
１番目の組の送信装置は、ネットワークを介して、通信データを変換するために利用可能な変換方式を少なくとも１つ示す交渉要求データＱ１を送信し、
ｎ番目の組の受信装置は、交渉要求データＱ１を受信した場合、交渉要求データＱ１が示す変換方式の中から利用可能な変換方式をＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）で選択し、ネットワークを介して、その変換方式を示す交渉応答データＡ１を送信するとともに、その変換方式を交渉により決定した変換方式としてメモリに記憶し、
１番目の組の送信装置は、交渉応答データＡ１を受信した場合、交渉応答データＡ１が示す変換方式を交渉により決定した変換方式としてメモリに記憶し、
前記通信処理にて、
１番目の組の送信装置は、前記クライアント装置から通信データを受信した場合、メモリに記憶した変換方式を利用してその通信データをＣＰＵで変換し、ネットワークを介して変換後の通信データを１番目の組の受信装置へ送信し、
ｎ番目の組の受信装置は、ｎ番目の組の送信装置から通信データを受信した場合、メモリに記憶した変換方式を利用してその通信データを変換前の通信データにＣＰＵで変換し、その通信データを前記サーバ装置へ送信することを特徴とするサービス通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス通信システム及びサービス通信方法及びサービス通信プログラムに関するものである。本発明は、特に、Ｗｅｂサービスの要求、提供、及び／又は、仲介を行うシステムに関するものである。具体的には、ネットワークを経由してＷｅｂクライアントから要求される複数のＷｅｂサービスを連携させるシステム（サービス間連携方式）に関するものである。
【背景技術】
【０００２】
従来、Ｗｅｂサービスを連携させるシステムでは、ＳＯＡＰ（Ｓｉｍｐｌｅ・Ｏｂｊｅｃｔ・Ａｃｃｅｓｓ・Ｐｒｏｔｏｃｏｌ）というプロトコルにてサービス間の連携を実現している。また、サービス呼び出しを抽象化し、サービスの仕様変更を容易にする仕組みとして、サービス呼び出しをＥＳＢ（Ｅｎｔｅｒｐｒｉｓｅ・Ｓｅｒｖｉｃｅ・Ｂｕｓ）を経由させ、ＥＳＢが必要なデータ変換処理や通信処理を実施するシステムを構築することで、サービスを仲介する方式もとられている。また、サービスの位置を管理し、クライアントと同一装置内にサービスがある場合に、データ変換処理や通信処理を実施せずに、サービス間の連携処理を高速化する、といった仕組みがある（例えば、特許文献１参照）。
【特許文献１】特開２００６−７２９７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、Ｗｅｂサービスを連携させるシステムでは、クライアントとサービスが同一装置に配備されている場合には、データ変換処理や通信処理を省略して、サービス間の連携処理を高速化することは可能であった。しかしながら、遠隔のサービスを連携させるシステム、特に、サービス呼び出しがＥＳＢなどの仲介装置を経由するシステムにおいては、複数回に及ぶデータ変換処理が実施され、また、冗長なＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ・Ｍａｒｋｕｐ・Ｌａｎｇｕａｇｅ）形式のデータを送受信するために大きな負荷がかかる通信処理が実施されていた。そのため、サービス間の連携処理が効率的でないという課題があった。
【０００４】
本発明は、例えば、遠隔のサービスを連携させるシステムにおいて、データ変換回数の削減や通信データサイズの削減により、サービス間の連携処理の高速化を実現することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一の態様に係るサービス通信システムは、
サービスを要求するクライアント装置とネットワークを介してサービスを提供するサーバ装置との間で送受信される通信データを中継する送信装置及び受信装置の組をｎ（ｎ≧１）組備えるサービス通信システムであって、
交渉処理にて、
１番目の組の送信装置は、ネットワークを介して、通信データを変換するために利用可能な変換方式を少なくとも１つ示す交渉要求データＱ１を送信し、
ｎ番目の組の受信装置は、交渉要求データＱ１を受信した場合、交渉要求データＱ１が示す変換方式の中から利用可能な変換方式をＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）で選択し、ネットワークを介して、その変換方式を示す交渉応答データＡ１を送信するとともに、その変換方式を交渉により決定した変換方式としてメモリに記憶し、
１番目の組の送信装置は、交渉応答データＡ１を受信した場合、交渉応答データＡ１が示す変換方式を交渉により決定した変換方式としてメモリに記憶し、
通信処理にて、
１番目の組の送信装置は、前記クライアント装置から通信データを受信した場合、メモリに記憶した変換方式を利用してその通信データをＣＰＵで変換し、ネットワークを介して変換後の通信データを１番目の組の受信装置へ送信し、
ｎ番目の組の受信装置は、ｎ番目の組の送信装置から通信データを受信した場合、メモリに記憶した変換方式を利用してその通信データを変換前の通信データにＣＰＵで変換し、その通信データを前記サーバ装置へ送信することを特徴とする。
【発明の効果】
【０００６】
本発明の一の態様によれば、交渉処理にて、１番目の組の送信装置が、通信データを変換するために利用可能な変換方式を少なくとも１つ示す交渉要求データＱ１を送信し、ｎ番目の組の受信装置が、交渉要求データＱ１を受信した場合、交渉要求データＱ１が示す変換方式の中から利用可能な変換方式を選択し、その変換方式を示す交渉応答データＡ１を送信するとともに、その変換方式を交渉により決定した変換方式としてメモリに記憶し、１番目の組の送信装置が、交渉応答データＡ１を受信した場合、交渉応答データＡ１が示す変換方式を交渉により決定した変換方式としてメモリに記憶し、通信処理にて、１番目の組の送信装置が、クライアント装置から通信データを受信した場合、交渉により決定した変換方式を利用して変換した通信データを送信し、ｎ番目の組の受信装置が、交渉により決定した変換方式を利用してその通信データを変換前の通信データに変換してサーバ装置へ送信することにより、遠隔のサービスを連携させるシステムにおいて、サービス間の連携処理の高速化を実現することが可能となる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態について、図を用いて説明する。
【０００８】
実施の形態１．
図１は、本実施の形態に係るサービス連携システム１０の構成を示すブロック図である。
【０００９】
図１において、サービス連携システム１０は、サービス通信システムの一例であり、クライアント１００、送信プロキシ２００、受信プロキシ３００、サービス４００を備える。クライアント１００は、Ｗｅｂサービスを要求するクライアント装置の一例であり、サービス４００は、ネットワーク５０を介してＷｅｂサービスを提供するサーバ装置の一例である。サービス連携システム１０は、クライアント装置とサーバ装置との間で送受信される通信データを中継する送信装置及び受信装置の組の一例として、１組の送信プロキシ２００及び受信プロキシ３００を備える。送信プロキシ２００、受信プロキシ３００の間はネットワーク５０により接続され、互いに遠隔地に配備できる。クライアント１００と送信プロキシ２００は、同一マシン（コンピュータ）上に配備（実装）しても、異なるマシン上に配備してもよい。同様に、受信プロキシ３００とサービス４００は、同一マシン上に配備しても、異なるマシン上に配備してもよい。
【００１０】
クライアント１００は、サービス４００に対するリクエストを、例えばＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ・Ｔｒａｎｓｆｅｒ・Ｐｒｏｔｏｃｏｌ）通信におけるプロキシ設定にて、送信プロキシ２００経由にて送信する。送信プロキシ２００は、リクエストに含まれる経路情報から、その宛先が受信プロキシ３００であると判断し、受信プロキシ３００に対して通信方式に関する交渉を要求する。受信プロキシ３００は、利用可能な通信方式を送信プロキシ２００に対して応答する。例えば、送信プロキシ２００と受信プロキシ３００にてＸＭＬデータの圧縮通信が可能であり、交渉の結果、ＸＭＬデータの圧縮通信を利用することが決定された場合、送信プロキシ２００は、リクエストのＸＭＬデータを圧縮して、受信プロキシ３００に対して送る。受信プロキシ３００は、圧縮されたＸＭＬデータを展開し、サービス４００に対してリクエストとして送信する。サービス４００は、リクエストに応じて所定の処理を実行する。
【００１１】
クライアント１００は、要求装置１１０、ＸＭＬ変換装置１２０、通信管理装置１３０を備える。
【００１２】
要求装置１１０は、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ・Ｐｒｏｇｒａｍ・Ｉｎｔｅｒｆａｃｅ）を通じて、ＸＭＬ変換装置１２０に対してサービス４００へのリクエストの送信を要求する。このとき、要求装置１１０からＸＭＬ変換装置１２０に対して、サービス４００の宛先情報、サービス４００が所定の処理を実行するためのパラメータなどが渡される。ＸＭＬ変換装置１２０は、要求装置１１０から受け取った宛先情報やパラメータなどを含むリクエストをＸＭＬ形式へと変換してＳＯＡＰメッセージを作成し、通信管理装置１３０に対して、作成したＳＯＡＰメッセージの送信を要求する。通信管理装置１３０は、ＸＭＬ変換装置１２０が作成したＳＯＡＰメッセージを受け取り、送信プロキシ２００に対して送信する。通信管理装置１３０が送信プロキシ２００を経由してＳＯＡＰメッセージを送信する方法としては、クライアント１００のネットワーク設定におけるＨＴＴＰのプロキシ設定などによる方法が利用できる。
【００１３】
送信プロキシ２００は、交渉装置２１０、圧縮・解凍装置２２０、通信管理装置２３０を備える。
【００１４】
通信管理装置２３０は、クライアント１００からＳＯＡＰメッセージを受信すると、そのＳＯＡＰメッセージの宛先情報を基に、通信相手を判断し、その通信相手が交渉済の通信相手かどうかを確認する（例えば、その通信相手との交渉により決定した通信方式がメモリに記憶されていれば、その通信相手が交渉済の通信相手であると判断する）。交渉済でない、即ち、通信方式が未確認の通信相手の場合、通信管理装置２３０は、交渉装置２１０に対して通信方式の交渉を実施するように要求する。交渉装置２１０は、圧縮・解凍装置２２０から利用可能な通信方式に関する情報を取得し、その情報を含む交渉メッセージを作成し、通信管理装置２３０を経由して受信プロキシ３００との交渉を開始する。交渉結果として、受信プロキシ３００から通信管理装置２３０を経由して通信方式が通知されると、交渉装置２１０は、その通信方式を通信管理装置２３０に記録させる。一方、ＳＯＡＰメッセージの宛先が交渉済の通信相手の場合は、この交渉の工程は実施しない。続いて、通信管理装置２３０は、クライアント１００から受信したＳＯＡＰメッセージを、交渉の結果記録した通信方式に従って圧縮するように、圧縮・解凍装置２２０に対して要求し、圧縮・解凍装置２２０から圧縮メッセージを受け取る。そして、受け取った圧縮メッセージを受信プロキシ３００に対して送信する。
【００１５】
受信プロキシ３００は、交渉装置３１０、圧縮・解凍装置３２０、通信管理装置３３０を備える。
【００１６】
通信管理装置３３０は、送信プロキシ２００から交渉メッセージを受信した場合には、交渉装置３１０に対して交渉の実施を依頼する。交渉装置３１０は、交渉メッセージに含まれる情報に基づいて、送信プロキシ２００と受信プロキシ３００とで相互に利用可能な通信方式を選択し、その通信方式を交渉の結果として送信プロキシ２００に応答する。また、通信管理装置３３０は、送信プロキシ２００から圧縮メッセージを受信した場合には、圧縮・解凍装置３２０に対して圧縮メッセージを解凍するように要求し、圧縮・解凍装置３２０から解凍されたＳＯＡＰメッセージを受け取る。そして、受け取ったＳＯＡＰメッセージをサービス４００に対して送信する。受信プロキシ３００では、サービス４００の仮想インタフェースとして、ＷＳＤＬ（Ｗｅｂ・Ｓｅｒｖｉｃｅｓ・Ｄｅｓｃｒｉｐｔｉｏｎ・Ｌａｎｇｕａｇｅ）などのサービス定義を予め公開しておくものとする。
【００１７】
サービス４００は、サービスコア４１０、ＸＭＬ変換装置４２０、通信管理装置４３０を備える。
【００１８】
通信管理装置４３０は、受信プロキシ３００からＳＯＡＰメッセージを受信すると、そのＳＯＡＰメッセージをＸＭＬ変換装置４２０に渡す。ＸＭＬ変換装置４２０は、通信管理装置４３０から受け取ったＸＭＬ形式のＳＯＡＰメッセージからサービスコア４１０に対するリクエストのパラメータなどを抽出し、ＡＰＩを通じてサービスコア４１０に対して所定の処理の実行を要求する。サービスコア４１０は、ＸＭＬ変換装置４２０が抽出したパラメータなどを利用して所定の処理を実行する。
【００１９】
このように、本実施の形態に係るサービス連携システム１０は、
サービス４００に対するリクエストを作成するクライアント１００と、
クライアント１００からのリクエストを仲介し、接続先との通信における圧縮方式を交渉し、交渉結果に応じてリクエストのメッセージを圧縮した圧縮メッセージを受信プロキシ３００に対して送信する、交渉装置２１０、圧縮・解凍装置２２０及び通信管理装置２３０を備えた送信プロキシ２００と、
送信プロキシ２００からの交渉要求に対して利用可能な圧縮方式を選択して応答し、受信した圧縮メッセージを元のリクエストのメッセージに解凍し、サービス４００へと送信する、交渉装置３１０、圧縮・解凍装置３２０及び通信管理装置３３０を備えた受信プロキシ３００と、
リクエストに応じた処理を実行し、クライアント１００に対する応答のメッセージを送信するサービス４００とを備えることを特徴とする。
【００２０】
上記のような特徴により、本実施の形態では、クライアント１００とサービス４００との間で通信データ（ＳＯＡＰメッセージ）を圧縮できる。即ち、通信データサイズの削減が可能となる。また、クライアント１００とサービス４００との間にサービスバス（ＥＳＢ）が存在する場合でも、クライアント１００とサービス４００との間でデータ変換（圧縮・解凍）を１回のみ行えばよい（サービスバスは単に圧縮メッセージを転送すればよい）。即ち、データ変換回数の削減が可能となる。その結果、クライアント１００からサービス４００までの間の連携処理を高速化することができる。
【００２１】
本実施の形態では、交渉の対象となる変換方式（通信方式）を圧縮・解凍方式としている。そのため、送信プロキシ２００は、交渉により決定した圧縮・解凍方式を利用して、クライアント１００から受信するＳＯＡＰメッセージを圧縮して圧縮メッセージを作成する圧縮・解凍装置２２０を備えている。また、受信プロキシ３００は、交渉により決定した圧縮・解凍方式を利用して、送信プロキシ２００から受信する圧縮メッセージをサービス４００へ送信するＳＯＡＰメッセージに解凍する圧縮・解凍装置３２０を備えている。本実施の形態の変形例として、この変換方式を他の種類の方式としてもよい（さらに、複数の方式を組み合わせてもよい）。例えば、交渉の対象となる変換方式を暗号・復号方式とすることができる。この場合、送信プロキシ２００は、交渉により決定した暗号・復号方式を利用して、クライアント１００から受信するＳＯＡＰメッセージを暗号して暗号メッセージを作成する暗号・復号装置などを備えることとなる。また、受信プロキシ３００は、交渉により決定した暗号・復号方式を利用して、送信プロキシ２００から受信する暗号メッセージをサービス４００へ送信するＳＯＡＰメッセージに復号する暗号・復号装置などを備えることとなる。
【００２２】
図１には示していないが、クライアント１００、送信プロキシ２００、受信プロキシ３００、サービス４００が実装されるコンピュータは、メモリ、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）、入力デバイス、出力デバイスなどのハードウェア資源を備える（又はこれらのハードウェア資源がそれぞれのコンピュータに接続される）。ハードウェア資源はクライアント１００、送信プロキシ２００、受信プロキシ３００、サービス４００内部の各装置によって利用される。例えば、ＣＰＵは、クライアント１００、送信プロキシ２００、受信プロキシ３００、サービス４００内部の各装置でデータや情報の演算、加工、読み取り、書き込みなどを行うために利用される。メモリは、そのデータや情報を記憶するために利用される。また、入力デバイスは、そのデータや情報を入力するために、出力デバイスは、そのデータや情報を出力するために利用される。
【００２３】
図２は、クライアント１００、送信プロキシ２００、受信プロキシ３００、サービス４００が実装されるコンピュータのハードウェア資源の一例を示す図である。
【００２４】
図２において、このコンピュータは、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶ディスプレイ）の表示画面を有する表示装置９０１、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ装置９０６などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。また、このコンピュータは、ＬＡＮ（ローカルエリアネットワーク）、ゲートウェイを介してインターネットに接続される。
【００２５】
このコンピュータは、プログラムを実行するＣＰＵ９１１（「演算装置」、「マイクロプロセッサ」、「マイクロコンピュータ」、「プロセッサ」ともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
【００２６】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、メモリの一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５などは、入力デバイスの一例である。また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力デバイスの一例である。
【００２７】
通信ボード９１５は、ＬＡＮなどに接続されている。通信ボード９１５は、ＬＡＮに限らず、インターネット、あるいは、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークなどのＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネットあるいはＷＡＮなどに接続されている場合、ゲートウェイは不要となる。ＬＡＮ、インターネット、ＷＡＮなどは、ネットワーク５０の一例である。
【００２８】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜装置」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。また、ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのＣＰＵ９１１の処理（動作）に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００２９】
また、本実施の形態の説明において説明するブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、ＲＡＭ９１４などのメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク（ＭＤ）、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）などの記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体により伝送される。
【００３０】
また、本実施の形態の説明において「〜装置」として説明するものは、「〜回路」、「〜部」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜装置」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤなどの記録媒体に記憶される。このプログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜装置」としてコンピュータを機能させるものである。あるいは、本実施の形態の説明で述べる「〜装置」の手順や方法をコンピュータに実行させるものである。
【００３１】
図３、図４は、本実施の形態に係るサービス通信方法を示すフローチャートである。図５は、このサービス通信方法を示すシーケンス図である。
【００３２】
図３、図４のフローチャートに示したフローは、クライアント１００、送信プロキシ２００、受信プロキシ３００、サービス４００を実装するコンピュータ上で実行されるプログラム（サービス通信プログラム）の処理手順に相当する。この処理手順において、サービス通信プログラムは、例えば、以下に示す各処理をコンピュータに実行させる。
【００３３】
図３では、送信プロキシ２００を含めたクライアント１００側の処理フローを示している。
【００３４】
クライアント１００において、要求装置１１０は、サービス４００に対するリクエスト（図５のリクエストデータＲａ）の送信を要求する。ＸＭＬ変換装置１２０は、そのリクエスト（Ｒａ）のＳＯＡＰメッセージ（図５の通信データＳａ）を組み立てる。通信管理装置１３０は、そのＳＯＡＰメッセージ（Ｓａ）を送信プロキシ２００へ送信する（ステップＳ１０１）。
【００３５】
送信プロキシ２００において、通信管理装置２３０は、クライアント１００からＳＯＡＰメッセージ（Ｓａ）を受信する。そして、通信管理装置２３０は、受信したＳＯＡＰメッセージ（Ｓａ）の宛先情報から、そのＳＯＡＰメッセージ（Ｓａ）の宛先が交渉済の通信相手であるかどうかをＣＰＵで判断する（ステップＳ１０２）。
【００３６】
ステップＳ１０２で、通信管理装置２３０がクライアント１００から受信したＳＯＡＰメッセージ（Ｓａ）の宛先が交渉済の通信相手ではないと判断した場合（ステップＳ１０２でＮＯの場合）、交渉装置２１０は、受信プロキシ３００との間で利用する圧縮・解凍方式の交渉を実施するために、圧縮・解凍装置２２０が利用可能な圧縮・解凍方式を少なくとも１つ（２つ以上が好ましい）示す交渉メッセージ（図５の交渉要求データＱ１）をＣＰＵで作成する。通信管理装置２３０は、ネットワーク５０を介して、交渉装置２１０が作成した交渉メッセージ（Ｑ１）を受信プロキシ３００へ送信する。そして、通信管理装置２３０は、受信プロキシ３００から、その交渉メッセージ（Ｑ１）に基づいて選択された圧縮・解凍方式を示す交渉メッセージ（図５の交渉応答データＡ１）を受信する。交渉装置２１０は、通信管理装置２３０が受信した交渉メッセージ（Ａ１）が示す圧縮・解凍方式を、交渉により決定した圧縮・解凍方式として通信管理装置２３０に通知する。通信管理装置２３０は、交渉装置２１０から通知された圧縮・解凍方式をメモリに記憶する（ステップＳ１０３：交渉処理）。
【００３７】
ステップＳ１０２で、通信管理装置２３０がクライアント１００から受信したＳＯＡＰメッセージ（Ｓａ）の宛先が交渉済の通信相手であると判断した場合（ステップＳ１０２でＹＥＳの場合）、あるいは、ステップＳ１０３で、圧縮・解凍方式が決定した場合、圧縮・解凍装置２２０は、通信管理装置２３０がメモリに記憶した圧縮・解凍方式を利用して、通信管理装置２３０がクライアント１００から受信したＳＯＡＰメッセージ（Ｓａ）をＣＰＵで圧縮し、圧縮メッセージ（図５の変換後の通信データＳｂ）を作成する（ステップＳ１０４：通信処理の一部）。通信管理装置２３０は、ネットワーク５０を介して、圧縮・解凍装置２２０が作成した圧縮メッセージ（Ｓｂ）を受信プロキシ３００へ送信する（ステップＳ１０５：通信処理の一部）。
【００３８】
図４では、受信プロキシ３００を含めたサービス４００側の処理フローを示している。
【００３９】
受信プロキシ３００において、通信管理装置３３０は、送信プロキシ２００からメッセージを受信する（ステップＳ２０１）。そして、通信管理装置３３０は、受信したメッセージが交渉メッセージ（Ｑ１）であるかどうかをＣＰＵで判断する（ステップＳ２０２）。
【００４０】
ステップＳ２０２で、通信管理装置３３０が送信プロキシ２００から受信したメッセージが交渉メッセージ（Ｑ１）であると判断した場合（ステップＳ２０２でＹＥＳの場合）、通信管理装置３３０は、受信プロキシ３００が終端であるかどうか、即ち、受信プロキシ３００がサービス４００と隣接しているかどうかをＣＰＵで判断する（ステップＳ２０３：交渉処理の一部）。具体的には、通信管理装置３３０は、交渉メッセージ（Ｑ１）を受信プロキシ３００に隣接するノードへ送信する。そのノードがサービス４００であれば、サービス４００は通常のＳＯＡＰメッセージ（Ｓａ）しか受け付けないため、交渉メッセージ（Ｑ１）に対してはエラーメッセージ（図５の通信エラーデータＸ１）が返信される。一方、そのノードが受信プロキシ３００と同様に交渉を実施可能なノードであれば、交渉メッセージ（Ｑ１）に対しては何らかの交渉メッセージが返信される。そのため、通信管理装置３３０は、受信プロキシ３００に隣接するノードからエラーメッセージ（Ｘ１）が返信されるかどうかによって、そのノードがサービス４００であるかどうか、即ち、受信プロキシ３００がサービス４００と隣接しているかどうかを判断することができる。他の方法として、通信管理装置３３０は、サービス４００のＵＲＬ（Ｕｎｉｆｏｒｍ・Ｒｅｓｏｕｒｃｅ・Ｌｏｃａｔｏｒ）などの位置情報に基づいて、受信プロキシ３００がサービス４００と隣接しているかどうかを判断してもよい。
【００４１】
本実施の形態では、通信管理装置３３０は、受信プロキシ３００がサービス４００と隣接していると判断する。通信管理装置３３０が、受信プロキシ３００がサービス４００と隣接していないと判断した場合（ステップＳ２０３でＮＯの場合）の処理（ステップＳ２０４、Ｓ２０５）については、実施の形態２で説明する。
【００４２】
ステップＳ２０３で、通信管理装置３３０が、受信プロキシ３００がサービス４００と隣接していると判断した場合（ステップＳ２０３でＹＥＳの場合）、交渉装置３１０は、圧縮・解凍装置３２０に対して利用可能な圧縮・解凍方式の確認を実施して、交渉メッセージ（Ｑ１）が示す圧縮・解凍方式の中から圧縮・解凍装置３２０が利用可能な圧縮・解凍方式をＣＰＵで選択する。そして、交渉装置３１０は、その圧縮・解凍方式を、交渉により決定した圧縮・解凍方式として通信管理装置２３０に通知する（ステップＳ２０６：交渉処理の一部）。通信管理装置３３０は、ネットワーク５０を介して、交渉装置３１０から通知された圧縮・解凍方式を示す交渉メッセージ（Ａ１）を、交渉結果として送信プロキシ２００へ送信する（ステップＳ２０７：交渉処理の一部）。また、このとき、通信管理装置３３０は、交渉装置３１０から通知された圧縮・解凍方式をメモリに記憶する。
【００４３】
ステップＳ２０２で、通信管理装置３３０が送信プロキシ２００から受信したメッセージが交渉メッセージ（Ｑ１）ではないと判断した場合（ステップＳ２０２でＮＯの場合）、通信管理装置３３０は、受信したメッセージが圧縮メッセージ（Ｓｂ）であるかどうかをＣＰＵで判断する（ステップＳ２０８：通信処理の一部）。
【００４４】
ステップＳ２０８で、通信管理装置３３０が送信プロキシ２００から受信したメッセージが圧縮メッセージ（Ｓｂ）であると判断した場合（ステップＳ２０８でＹＥＳの場合）、圧縮・解凍装置３２０は、通信管理装置３３０がメモリに記憶した圧縮・解凍方式を利用して、圧縮メッセージ（Ｓｂ）をＳＯＡＰメッセージ（Ｓａ）にＣＰＵで解凍する（ステップＳ２０９：通信処理の一部）。通信管理装置３３０は、圧縮・解凍装置３２０が解凍して得たＳＯＡＰメッセージ（Ｓａ）をサービス４００へ送信する（ステップＳ２１０：通信処理の一部）。一方、ステップＳ２０８で、通信管理装置３３０が送信プロキシ２００から受信したメッセージが圧縮メッセージ（Ｓｂ）でないと判断した場合（ステップＳ２０８でＮＯの場合）には、通信管理装置３３０は、そのメッセージをそのままサービス４００へ送信する。
【００４５】
以下、上記の各処理について、具体例を用いて説明する。
【００４６】
ステップＳ１０１において、クライアント１００の要求装置１１０は、図６の（ａ）に例示するＡＰＩを利用して、図６の（ｂ）に例示するＪａｖａ（登録商標）コードを実行することにより、サービス４００へのリクエストを発行する。クライアント１００のＸＭＬ変換装置１２０は、上記のＡＰＩによる要求を、図６の（ｃ）に例示するＳＯＡＰメッセージへ変換する。この例では、Ｄｏｃｕｍｅｎｔタイプのリクエストを想定している。また、ネームスペースなどの記述は割愛している。クライアント１００の通信管理装置１３０は、上記のＳＯＡＰメッセージをＨＴＴＰ通信により送信プロキシ２００に送信する。
【００４７】
ステップＳ１０２において、送信プロキシ２００の通信管理装置２３０は、上記のＳＯＡＰメッセージをＨＴＴＰ通信により受信し、ＨＴＴＰのヘッダに含まれるホスト情報などから通信相手が受信プロキシ３００であると判断する。受信プロキシ３００と交渉済でない場合、ステップＳ１０３において、送信プロキシ２００の交渉装置２１０は、図６の（ｄ）に例示する交渉メッセージを作成し、受信プロキシ３００に送信する。この例では、送信プロキシ２００の圧縮・解凍装置２２０にて、ＺＩＰ圧縮及びＣＡＢ圧縮による通信が可能なことを想定している。交渉メッセージでは、このように複数のサポートプロトコルを併記する。
【００４８】
ステップＳ２０１において、受信プロキシ３００の通信管理装置３３０が上記の交渉メッセージを受信すると、ステップＳ２０６において、受信プロキシ３００の交渉装置３１０は、圧縮・解凍装置３２０がサポートする圧縮方式を確認及び選択し、図７の（ａ）に例示する交渉メッセージを作成する。この例では、圧縮方式としてＺＩＰ圧縮を選択している。ステップＳ２０７において、受信プロキシ３００の通信管理装置３３０は、交渉結果として上記の交渉メッセージを送信プロキシ２００に返信する。
【００４９】
ステップＳ１０３において、送信プロキシ２００の通信管理装置２３０が上記の交渉メッセージを受信すると、ステップＳ１０４において、送信プロキシ２００の圧縮・解凍装置２２０は、交渉により決定した圧縮方式を用いて、ＳＯＡＰメッセージの圧縮を実施し、図７の（ｂ）に例示する圧縮メッセージを作成する。ステップＳ１０４において、送信プロキシ２００の通信管理装置２３０は、上記の圧縮メッセージを受信プロキシ３００に送信する。
【００５０】
ステップＳ２０１において、受信プロキシ３００の通信管理装置３３０が上記の圧縮メッセージを受信すると、ステップＳ２０９において、受信プロキシ３００の圧縮・解凍装置３２０は、交渉により決定した圧縮方式に対応する解凍方式を用いて、上記の圧縮メッセージを展開し、図７の（ｃ）に例示するＳＯＡＰメッセージを取得する。ステップＳ２１０において、受信プロキシ３００の通信管理装置３３０は、上記のＳＯＡＰメッセージのヘッダ情報やサービス呼び出しのＵＲＬ及びポート番号を管理することにより、リクエスト先であるサービス４００を特定し、上記のＳＯＡＰメッセージをサービス４００に送信する。
【００５１】
その後、サービス４００の通信管理装置４３０が上記のＳＯＡＰメッセージを受信すると、サービス４００のＸＭＬ変換装置４２０は、そのＳＯＡＰメッセージからクライアント１００のリクエストを抽出する。サービス４００のサービスコア４１０は、自身に対する呼び出しの結果に基づいて、クライアント１００のリクエストに対する応答を作成し、サービス４００のＸＭＬ変換装置４２０が、これを図８に例示するＳＯＡＰメッセージに変換し、サービス４００の通信管理装置４３０が、上記のＳＯＡＰメッセージを受信プロキシ３００に送信する。この応答のＳＯＡＰメッセージは、リクエストのＳＯＡＰメッセージと逆の経路を辿るが、リクエストの場合と同様に、プロキシ間では圧縮メッセージとして送信され、クライアント１００では再びＳＯＡＰメッセージとして受信される。
【００５２】
以上のように、本実施の形態に係るサービス連携システム１０は、クライアント１００からのリクエストを経由し、受信プロキシ３００に対して通信方式の交渉を要求し、その交渉結果に基づきリクエストのメッセージを変換して受信プロキシ３００へ送信する送信プロキシ２００を備えることを特徴とする。また、このサービス連携システム１０は、サービス４００に対するリクエストを仲介し、送信プロキシ２００からの交渉の要求に対して、利用可能な通信方式を応答し、送信プロキシ２００から受信したリクエストのメッセージを元のメッセージに変換してサービス４００へ送信する受信プロキシ３００を備えることを特徴とする。
【００５３】
本実施の形態では、上記のような特徴により、遠隔地に配備されたサービス４００を連携させる際に、データ変換回数の削減や通信データサイズの削減により、連携処理の高速化を実現することが可能となる。
【００５４】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【００５５】
図９は、本実施の形態に係るサービス連携システム１０の構成を示すブロック図である。
【００５６】
図９において、サービス連携システム１０は、実施の形態１で説明したクライアント１００、送信プロキシ２００、受信プロキシ３００、サービス４００のほか、サービスバス５００を備える。本実施の形態では、サービスバス５００が、クライアント１００とサービス４００との間で授受されるメッセージを仲介して、クライアント１００とサービス４００とを連携させる。そのため、実施の形態１とは、クライアント１００からのサービス呼び出し先が異なり、また、本実施の形態では、新たにサービスバス５００での処理が追加されている。サービスバス５００は、受信装置５１０、送信装置５２０、ルーティング装置５３０、内部サービス５４０を備える。サービス連携システム１０において、送信プロキシ２００は、１番目の組の送信装置の一例であり、受信装置５１０は、１番目の組の受信装置の一例である。また、送信装置５２０は、ｎ（ｎ＝２）番目の組の送信装置の一例であり、受信プロキシ３００は、ｎ（ｎ＝２）番目の組の受信装置の一例である。
【００５７】
クライアント１００側では、受信装置５１０を仮想サービスとして扱うことができる。つまり、クライアント１００と送信プロキシ２００は、実施の形態１で受信プロキシ３００に対して行った処理（交渉処理や通信処理）と同様の処理を、受信装置５１０に対して行えばよいため、サービスインタフェースの違いを意識する必要がなくなる。
【００５８】
クライアント１００は、サービス４００に対するリクエストを、送信プロキシ２００経由にてサービスバス５００の受信装置５１０へ送信する。送信プロキシ２００は、リクエストに含まれる経路情報から、次の宛先が受信装置５１０であると判断し、受信装置５１０に対して通信方式に関する交渉を要求する。
【００５９】
受信装置５１０は、交渉を要求されたことを同じサービスバス５００の送信装置５２０に対して通知する。送信装置５２０は、受信プロキシ３００に対してその交渉を要求する。ここで、受信装置５１０は、利用可能な通信方式を送信プロキシ２００に対して応答してもよい。例えば、送信プロキシ２００と受信装置５１０にてＸＭＬデータの圧縮通信が可能であり、交渉の結果、ＸＭＬデータの圧縮通信を利用することが決定された場合、送信プロキシ２００は、リクエストのＸＭＬデータを圧縮して、受信装置５１０に対して送る。受信装置５１０は、圧縮されたＸＭＬデータを展開し、送信装置５２０に対してリクエストとして送信する。送信装置５２０は、送信プロキシ２００と同様に、そのリクエストのＸＭＬデータを、受信プロキシ３００との交渉により決定した方式で圧縮して、受信プロキシ３００に対して送る。
【００６０】
受信プロキシ３００は、利用可能な通信方式をサービスバス５００経由にて送信プロキシ２００に対して応答する。例えば、送信プロキシ２００と受信プロキシ３００にてＸＭＬデータの圧縮通信が可能であり、交渉の結果、ＸＭＬデータの圧縮通信を利用することが決定された場合、送信プロキシ２００は、リクエストのＸＭＬデータを圧縮して、サービスバス５００経由にて受信プロキシ３００に対して送る。受信プロキシ３００は、圧縮されたＸＭＬデータを展開し、サービス４００に対してリクエストとして送信する。一方、例えば、送信プロキシ２００と受信プロキシ３００にて利用可能な圧縮通信の方式が異なる場合、交渉は失敗となる。この場合、送信プロキシ２００と受信装置５１０との間、送信装置５２０と受信プロキシ３００との間で同様の交渉を実施する。交渉の結果、ＸＭＬデータの圧縮通信を利用することが決定された場合、送信プロキシ２００は、リクエストのＸＭＬデータを圧縮して、受信装置５１０に対して送る。受信装置５１０は、圧縮されたＸＭＬデータを展開し、送信装置５２０に送信する。送信装置５２０は、送信プロキシ２００と同様に、そのＸＭＬデータを圧縮して、受信プロキシ３００に対して送る。受信プロキシ３００は、圧縮されたＸＭＬデータを展開し、サービス４００に対してリクエストとして送信する。サービス４００は、リクエストに応じて所定の処理を実行する。
【００６１】
サービスバス５００が多段に接続されている場合には、クライアント１００が、サービス４００に対するリクエストを、送信プロキシ２００経由にて送信する際に、送信プロキシ２００（１番目の組の送信装置）は、リクエストに含まれる経路情報から、次の宛先が次段のサービスバス５００の受信装置５１０であると判断し、その受信装置５１０（１番目の組の受信装置）に対して通信方式に関する交渉を要求する。以下では、送信プロキシ２００の次段のサービスバス５００、即ち、クライアント１００側に最も近い段のサービスバス５００を、最前段のサービスバス５００とする。そして、受信プロキシ３００の前段のサービスバス５００、即ち、サービス４００側に最も近い段のサービスバス５００を、最後段のサービスバス５００とする。
【００６２】
各段のサービスバス５００の受信装置５１０（ｉ番目の組の受信装置）は、交渉を要求されたことを同じサービスバス５００の送信装置５２０（ｉ＋１番目の組の送信装置）に対して通知する。各段のサービスバス５００の送信装置５２０（ｊ番目の組の送信装置）は、次段のサービスバス５００の受信装置５１０（ｊ＋１番目の組の受信装置）に対してその交渉を要求する。最後段のサービスバス５００の送信装置５２０（ｎ番目の組の送信装置）は、受信プロキシ３００（ｎ番目の組の受信装置）に対してその交渉を要求する。
【００６３】
受信プロキシ３００は、利用可能な通信方式を各段のサービスバス５００経由にて送信プロキシ２００に対して応答する。例えば、送信プロキシ２００と受信プロキシ３００にてＸＭＬデータの圧縮通信が可能であり、交渉の結果、ＸＭＬデータの圧縮通信を利用することが決定された場合、送信プロキシ２００は、リクエストのＸＭＬデータを圧縮して、各段のサービスバス５００経由にて受信プロキシ３００に対して送る。受信プロキシ３００は、圧縮されたＸＭＬデータを展開し、サービス４００に対してリクエストとして送信する。このとき、各段のサービスバス５００の受信装置５１０と送信装置５２０では、圧縮されたＸＭＬデータを展開したり、そのＸＭＬデータを圧縮したりする必要がないため、サービス連携システム１０全体で効率的な通信処理が可能となる。一方、例えば、送信プロキシ２００と受信プロキシ３００にて利用可能な圧縮通信の方式が異なる場合、交渉は失敗となる。この場合、送信プロキシ２００（１番目の組の送信装置）といずれかの段のサービスバス５００の受信装置５１０（ｉ番目の組の受信装置）との間、その段のサービスバス５００の送信装置５２０（ｉ＋１番目の組の送信装置）と受信プロキシ３００（ｎ番目の組の受信装置）との間で同様の交渉を実施する。必要に応じて、さらに、いずれかの段のサービスバス５００の送信装置５２０（ｉ＋１番目の組の送信装置）と他段のサービスバス５００の受信装置５１０（ｊ番目の組の受信装置）との間で同様の交渉を実施してもよい。交渉の結果、それぞれの間でＸＭＬデータの圧縮通信のために利用する方式が決定された場合、送信プロキシ２００は、交渉により決定された方式でリクエストのＸＭＬデータを圧縮して、その交渉相手となった受信装置５１０に対して送る。受信装置５１０は、圧縮されたＸＭＬデータを展開し、同じサービスバス５００の送信装置５２０に送信する。送信装置５２０は、交渉により決定された別の方式でそのＸＭＬデータを圧縮して、その交渉相手となった受信プロキシ３００（又は受信装置５１０）に対して送る。受信プロキシ３００は、圧縮されたＸＭＬデータを展開し、サービス４００に対してリクエストとして送信する。
【００６４】
このように、サービスバス５００が多段に接続されている場合に、送信プロキシ２００と受信プロキシ３００との間で交渉が成功しなかったときは、受信装置５１０と送信装置５２０とで異なる圧縮通信の方式を利用するサービスバス５００の数が少なくなることが望ましい。つまり、できるだけ多くの隣接する段のサービスバス５００の間で共通の通信方式を利用することが望ましい。一例として、送信プロキシ２００が、受信プロキシ３００との交渉が失敗した場合、最後段のサービスバス５００から順番に、交渉が成功するまで、各段のサービスバス５００の受信装置５１０と交渉を実施し、次に、交渉が成功した段のサービスバス５００の送信装置５２０が、送信プロキシ２００と同様の方法で受信プロキシ３００から順番に交渉を実施していく、といった形態が実施可能である。
【００６５】
サービスバス５００上の受信装置５１０は、通信管理装置５１１、ＸＭＬ変換装置５１２、圧縮・解凍装置５１３、交渉装置５１４を備える。
【００６６】
通信管理装置５１１は、交渉メッセージを受信した場合には、交渉メッセージを送信装置５２０へと転送する。このとき、圧縮・解凍装置５１３で利用可能な通信方式を示す情報を交渉メッセージに加えた上で、その交渉メッセージを転送してもよい。受信装置５１０が独自に交渉を実施するのであれば、通信管理装置５１１は、交渉装置５１４に対して交渉の実施を要求する。交渉装置５１４は、交渉メッセージに含まれる情報に基づいて、交渉相手である送信プロキシ２００（又は他段のサービスバス５００の送信装置５２０）と受信装置５１０とで相互に利用可能な通信方式を選択し、その通信方式を交渉の結果として交渉相手に応答する。また、通信管理装置５１１は、圧縮メッセージを受信した場合には、圧縮メッセージを送信装置５２０へと転送する。受信装置５１０が独自に交渉を実施済であれば、通信管理装置５１１は、圧縮・解凍装置５１３に対して圧縮メッセージを解凍するように要求し、圧縮・解凍装置５１３から解凍されたＳＯＡＰメッセージを受け取る。そして、そのＳＯＡＰメッセージを送信装置５２０へと転送する。また、必要に応じて、通信管理装置５１１は、ＸＭＬ変換装置５１２に対してＳＯＡＰメッセージを元のリクエストに変換するように要求し、ＸＭＬ変換装置５１２からリクエストを受け取る。そして、そのリクエストをルーティング装置５３０経由で内部サービス５４０に送信し、所定の変換処理などを施す。その後、そのリクエストは、ルーティング装置５３０により送信装置５２０に送信される。通信管理装置５１１がメッセージを送信装置５２０へと転送する際には、ＸＭＬ変換装置５１２が、そのメッセージに、例えば、ルーティング装置５３０にて用いられるノーマライズド・メッセージに必要なヘッダ情報を付与して、ルーティング装置５３０に送信する。ここで、ノーマライズド・メッセージは、ＪＢＩ（Ｊａｖａ（登録商標）・Ｂｕｓｉｎｅｓｓ・Ｉｎｔｅｇｒａｔｉｏｎ）にて規定される仕様に基づくものである。
【００６７】
ルーティング装置５３０は、ノーマライズド・メッセージのヘッダ情報に基づき、送信装置５２０にそのノーマライズド・メッセージを送る。
【００６８】
サービスバス上の送信装置５２０は、通信管理装置５２１、ＸＭＬ変換装置５２２、圧縮・解凍装置５２３、交渉装置５２４を備える。
【００６９】
ＸＭＬ変換装置５１２は、ルーティング装置５３０からノーマライズド・メッセージを受信すると、そのノーマライズド・メッセージのヘッダ部を取り除いて元のメッセージを抽出する。通信管理装置５２１は、交渉メッセージが抽出された場合には、交渉メッセージを受信プロキシ３００（又は次段のサービスバス５００の受信装置５１０）へと転送する。このとき、圧縮・解凍装置５２３で利用可能な通信方式を示す情報を交渉メッセージに加えた上で、その交渉メッセージを転送してもよい。このようにすることで、送信装置５２０は、後で独自に交渉を実施する必要が生じた場合に有用な情報を予め転送先に伝えておくことができる。通信管理装置５２１は、圧縮メッセージが抽出された場合には、圧縮メッセージを受信プロキシ３００（又は次段のサービスバス５００の受信装置５１０）へと転送する。ＸＭＬ変換装置５２２は、内部サービス５４０からリクエストを受信した場合には、そのリクエストをＳＯＡＰメッセージに変換して通信管理装置５２１に渡す。送信装置５２０が独自に交渉を実施済であれば、通信管理装置５２１は、圧縮・解凍装置５２３に対してそのＳＯＡＰメッセージを圧縮するように要求し、圧縮・解凍装置５２３から圧縮メッセージを受け取る。そして、その圧縮メッセージを受信プロキシ３００（又は次段のサービスバス５００の受信装置５１０）に送信する。送信装置５２０が独自に交渉を実施するのであれば、通信管理装置５２１は、交渉装置５２４に対して通信方式の交渉を実施するように要求する。交渉装置５２４は、圧縮・解凍装置５２３から利用可能な通信方式に関する情報を取得し、その情報を含む交渉メッセージを作成し、通信管理装置５２１を経由して交渉相手である受信プロキシ３００（又は他段のサービスバス５００の受信装置５１０）との交渉を開始する。交渉結果として、交渉相手から通信管理装置５２１を経由して通信方式が通知されると、交渉装置５２４は、その通信方式を通信管理装置５２１に記録させる。
【００７０】
このように、本実施の形態に係るサービス連携システム１０は、
サービス４００に対するリクエストを作成するクライアント１００と、
クライアント１００からのリクエストを仲介し、接続先との通信における圧縮方式を交渉し、交渉結果に応じてリクエストのメッセージを圧縮した圧縮メッセージをサービスバス５００に対して送信する、交渉装置２１０、圧縮・解凍装置２２０及び通信管理装置２３０を備えた送信プロキシ２００と、
サービスバス５００からの交渉要求に対して利用可能な圧縮方式を選択して応答し、受信した圧縮メッセージを元のリクエストのメッセージに解凍し、サービス４００へと送信する、交渉装置３１０、圧縮・解凍装置３２０及び通信管理装置３３０を備えた受信プロキシ３００と、
リクエストに応じた処理を実行し、クライアント１００に対する応答のメッセージを送信するサービス４００とを備えることを特徴とする。
【００７１】
上記のような特徴により、本実施の形態では、クライアント１００とサービス４００との間で通信データ（ＳＯＡＰメッセージ）を圧縮できる。即ち、通信データサイズの削減が可能となる。また、クライアント１００とサービス４００との間に多段のサービスバス５００が存在する場合でも、クライアント１００とサービス４００との間でデータ変換（圧縮・解凍）を行う回数が少なくなる。即ち、データ変換回数の削減が可能となる。その結果、クライアント１００からサービス４００までの間の連携処理を高速化することができる。
【００７２】
クライアント１００、送信プロキシ２００、受信プロキシ３００、サービス４００と同様に、サービスバス５００の受信装置５１０、送信装置５２０、ルーティング装置５３０、内部サービス５４０は、同一マシン（コンピュータ）上に配備（実装）しても、異なるマシン上に配備してもよい。受信装置５１０、送信装置５２０、ルーティング装置５３０、内部サービス５４０が実装されるコンピュータが、メモリ、ＣＰＵ、入力デバイス、出力デバイスなどのハードウェア資源を備える（又はこれらのハードウェア資源がそのコンピュータに接続される）ことも実施の形態１と同様である。
【００７３】
図１０は、本実施の形態に係るサービス通信方法を示すシーケンス図である。
【００７４】
図１０では、交渉処理において、交渉メッセージ（Ｑ１）が、まず、送信プロキシ２００の通信管理装置２３０からサービスバス５００の受信装置５１０へ送信される。次に、サービスバス５００内でルーティング装置５３０などにより送信装置５２０へ転送される。最後に、サービスバス５００の送信装置５２０から受信プロキシ３００の通信管理装置３３０へ送信される。通信処理においても、ＳＯＡＰメッセージ（Ｓａ）を圧縮した圧縮メッセージ（Ｓｂ）が、送信プロキシ２００の通信管理装置２３０から同様の経路を辿って受信プロキシ３００の通信管理装置３３０へ送信される。
【００７５】
以上、主にサービスバス５００を１段のみ備えるサービス連携システム１０について説明した。以下では、図３、図４に示した例を応用して、主にサービスバス５００を多段に接続するサービス連携システム１０について説明する。
【００７６】
以下の例では、サービス連携システム１０は、送信装置及び受信装置の組をｎ（ｎ＞２）組備えるものとする。即ち、サービス連携システム１０は、送信プロキシ２００（１番目の組の送信装置）、受信プロキシ３００（ｎ番目の組の受信装置）のほか、ｎ−１段のサービスバス５００（１番目の組の受信装置５１０、２番目〜ｎ−１番目の組の受信装置５１０及び送信装置５２０、ｎ番目の組の送信装置５２０）を備える。
【００７７】
送信プロキシ２００を含めたクライアント１００側の処理フローは、送信プロキシ２００（１番目の組の送信装置）の通信相手が受信プロキシ３００ではなく、１番目の組の受信装置５１０であること以外は、実施の形態１で図３に示したものと同様である。
【００７８】
クライアント１００において、要求装置１１０は、サービス４００に対するリクエスト（リクエストデータＲａ）の送信を要求する。ＸＭＬ変換装置１２０は、そのリクエスト（Ｒａ）のＳＯＡＰメッセージ（通信データＳａ）を組み立てる。通信管理装置１３０は、そのＳＯＡＰメッセージ（Ｓａ）を送信プロキシ２００へ送信する（ステップＳ１０１）。
【００７９】
送信プロキシ２００において、通信管理装置２３０は、クライアント１００からＳＯＡＰメッセージ（Ｓａ）を受信する。そして、通信管理装置２３０は、受信したＳＯＡＰメッセージ（Ｓａ）の宛先情報から、そのＳＯＡＰメッセージ（Ｓａ）の宛先が交渉済の通信相手であるかどうかをＣＰＵで判断する（ステップＳ１０２）。
【００８０】
ステップＳ１０２で、通信管理装置２３０がクライアント１００から受信したＳＯＡＰメッセージ（Ｓａ）の宛先が交渉済の通信相手ではないと判断した場合（ステップＳ１０２でＮＯの場合）、交渉装置２１０は、受信プロキシ３００との間で利用する圧縮・解凍方式の交渉を実施するために、圧縮・解凍装置２２０が利用可能な圧縮・解凍方式を少なくとも１つ（２つ以上が好ましい）示す交渉メッセージ（交渉要求データＱ１）をＣＰＵで作成する。通信管理装置２３０は、ネットワーク５０を介して、交渉装置２１０が作成した交渉メッセージ（Ｑ１）を１番目の組の受信装置５１０へ送信する。そして、通信管理装置２３０は、１番目の組の受信装置５１０から、その交渉メッセージ（Ｑ１）に基づいて選択された圧縮・解凍方式を示す交渉メッセージ（交渉応答データＡ１）を受信する。交渉装置２１０は、通信管理装置２３０が受信した交渉メッセージ（Ａ１）が示す圧縮・解凍方式を、交渉により決定した圧縮・解凍方式として通信管理装置２３０に通知する。通信管理装置２３０は、交渉装置２１０から通知された圧縮・解凍方式をメモリに記憶する（ステップＳ１０３：交渉処理）。
【００８１】
ステップＳ１０２で、通信管理装置２３０がクライアント１００から受信したＳＯＡＰメッセージ（Ｓａ）の宛先が交渉済の通信相手であると判断した場合（ステップＳ１０２でＹＥＳの場合）、あるいは、ステップＳ１０３で、圧縮・解凍方式が決定した場合、圧縮・解凍装置２２０は、通信管理装置２３０がメモリに記憶した圧縮・解凍方式を利用して、通信管理装置２３０がクライアント１００から受信したＳＯＡＰメッセージ（Ｓａ）をＣＰＵで圧縮し、圧縮メッセージ（変換後の通信データＳｂ）を作成する（ステップＳ１０４：通信処理の一部）。通信管理装置２３０は、ネットワーク５０を介して、圧縮・解凍装置２２０が作成した圧縮メッセージ（Ｓｂ）をサービスバス５００の受信装置５１０へ送信する（ステップＳ１０５：通信処理の一部）。
【００８２】
以下では、ｉ（１≦ｉ≦ｎ−１）番目の組の受信装置５１０の処理フローを、図４を用いて説明する。
【００８３】
ｉ番目の組の受信装置５１０において、通信管理装置５１１は、ｉ番目の組の送信装置５２０（ｉ＝１の場合は送信プロキシ２００）からメッセージを受信する（ステップＳ２０１）。そして、通信管理装置５１１は、受信したメッセージが交渉メッセージ（Ｑ１）であるかどうかをＣＰＵで判断する（ステップＳ２０２）。
【００８４】
ステップＳ２０２で、通信管理装置５１１が受信したメッセージが交渉メッセージ（Ｑ１）であると判断した場合（ステップＳ２０２でＹＥＳの場合）、通信管理装置５１１は、ｉ番目の組の受信装置５１０が終端であるかどうか、即ち、ｉ番目の組の受信装置５１０がサービス４００と隣接しているかどうかをＣＰＵで判断する（ステップＳ２０３：交渉処理の一部）。具体的には、実施の形態１で説明したように、通信管理装置５１１は、交渉メッセージ（Ｑ１）をｉ番目の組の受信装置５１０に隣接するノードへ送信する。この例では、そのノードは同じサービスバス５００の送信装置５２０（２番目〜ｎ番目の組の送信装置５２０）であるため、交渉メッセージ（Ｑ１）を正常に送信することができる。そのため、通信管理装置５１１は、ｉ番目の組の受信装置５１０がサービス４００と隣接していないと判断する。
【００８５】
ステップＳ２０３で、通信管理装置５１１が、ｉ番目の組の受信装置５１０がサービス４００と隣接していないと判断した後（ステップＳ２０３でＮＯの場合）、通信管理装置５１１は、ＸＭＬ変換装置５１２及びルーティング装置５３０を介して、交渉メッセージ（Ｑ１）をｉ＋１番目の組の送信装置５２０へ送信する（ステップＳ２０４：交渉処理の一部）。また、このとき、通信管理装置５１１は、交渉メッセージ（Ｑ１）をメモリに記憶する。その後、通信管理装置５１１は、ルーティング装置５３０及びＸＭＬ変換装置５１２を介して、ｉ＋１番目の組の送信装置５２０から、その交渉メッセージ（Ｑ１）に基づいて選択された圧縮・解凍方式を示す交渉メッセージ（交渉応答データＡ１）、あるいは、エラーを示す交渉メッセージ（交渉エラーデータＥ１）を受信する（ステップＳ２０５：交渉処理の一部）。
【００８６】
ステップＳ２０５で、通信管理装置５１１が交渉メッセージ（Ａ１）を受信した場合（ステップＳ２０５でＹＥＳの場合）、通信管理装置５１１は、送信プロキシ２００とｉ＋１番目以降のいずれかの組の受信装置５１０（ｉ＋１＝ｎの場合は受信プロキシ３００）との交渉が成功した（したがって、ｉ番目の組の受信装置５１０は、送信プロキシ２００との交渉を実施する必要がない）と判断する。そして、通信管理装置５１１は、ネットワーク５０を介して、交渉メッセージ（Ａ１）をｉ−１番目の組の送信装置５２０（ｉ＝１の場合は送信プロキシ２００）へ送信する。
【００８７】
ステップＳ２０５で、通信管理装置５１１が交渉メッセージ（Ｅ１）を受信した場合（ステップＳ２０５でＮＯの場合）、通信管理装置５１１は、送信プロキシ２００とｉ＋１番目の組の受信装置５１０（ｉ＋１＝ｎの場合は受信プロキシ３００）との交渉が失敗した（したがって、今度はｉ番目の組の受信装置５１０が、送信プロキシ２００との交渉を実施する必要がある）と判断する。そして、通信管理装置５１１は、交渉装置５１４に交渉の実施を命令する。この命令に従って、交渉装置５１４は、圧縮・解凍装置５１３に対して利用可能な圧縮・解凍方式の確認を実施して、通信管理装置５１１がメモリに記憶した交渉メッセージ（Ｑ１）が示す圧縮・解凍方式の中から圧縮・解凍装置５１３が利用可能な圧縮・解凍方式をＣＰＵで選択する。そして、交渉装置５１４は、その圧縮・解凍方式を、交渉（送信プロキシ２００とｉ番目の組の受信装置５１０との交渉）により決定した圧縮・解凍方式として通信管理装置５１１に通知する（ステップＳ２０６：交渉処理の一部）。通信管理装置５１１は、ネットワーク５０を介して、交渉装置５１４から通知された圧縮・解凍方式を示す交渉メッセージ（Ａ１）を、交渉結果としてｉ−１番目の組の送信装置５２０（ｉ＝１の場合は送信プロキシ２００）へ送信する（ステップＳ２０７：交渉処理の一部）。また、このとき、通信管理装置５１１は、交渉装置５１４から通知された圧縮・解凍方式をメモリに記憶する。ステップＳ２０６において、交渉装置５１４が圧縮・解凍装置５１３に対して利用可能な圧縮・解凍方式の確認を実施したときに、交渉メッセージ（Ｑ１）が示す圧縮・解凍方式の中に圧縮・解凍装置５１３が利用可能な圧縮・解凍方式がなかった場合、交渉装置５１４は、その旨を通信管理装置５１１に通知する。この場合、通信管理装置５１１は、ネットワーク５０を介して、ステップＳ２０５で受信した交渉メッセージ（Ｅ１）又は新たに作成した交渉メッセージ（Ｅ１）をｉ−１番目の組の送信装置５２０（ｉ＝１の場合は送信プロキシ２００）へ送信する。また、通信管理装置５１１は、交渉結果をｉ＋１番目の組の送信装置５２０へ通知する。
【００８８】
ステップＳ２０２で、通信管理装置５１１が受信したメッセージが交渉メッセージ（Ｑ１）ではないと判断した場合（ステップＳ２０２でＮＯの場合）、通信管理装置５１１は、受信したメッセージが圧縮メッセージ（Ｓｂ）であるかどうかをＣＰＵで判断する（ステップＳ２０８：通信処理の一部）。
【００８９】
ステップＳ２０８で、通信管理装置５１１が受信したメッセージが圧縮メッセージ（Ｓｂ）であると判断した場合（ステップＳ２０８でＹＥＳの場合）、ステップＳ２０７で、通信管理装置５１１がメモリに記憶した圧縮・解凍方式があれば、圧縮・解凍装置５１３は、その圧縮・解凍方式を利用して、圧縮メッセージ（Ｓｂ）をＳＯＡＰメッセージ（Ｓａ）にＣＰＵで解凍する（ステップＳ２０９：通信処理の一部）。通信管理装置５１１は、ＸＭＬ変換装置５１２及びルーティング装置５３０を介して、圧縮・解凍装置５１３が解凍して得たＳＯＡＰメッセージ（Ｓａ）をｉ＋１番目の組の送信装置５２０へ送信する（ステップＳ２１０：通信処理の一部）。一方、ステップＳ２０７で、通信管理装置５１１がメモリに記憶した圧縮・解凍方式がなければ、通信管理装置５１１は、ＸＭＬ変換装置５１２及びルーティング装置５３０を介して、圧縮メッセージ（Ｓｂ）をｉ＋１番目の組の送信装置５２０へ送信する。ステップＳ２０８で、通信管理装置５１１が受信したメッセージが圧縮メッセージ（Ｓｂ）でないと判断した場合（ステップＳ２０８でＮＯの場合）にも、通信管理装置５１１は、そのメッセージをそのままｉ＋１番目の組の送信装置５２０へ送信する。
【００９０】
以下では、ｊ（２≦ｊ≦ｎ）の送信装置５２０の処理フローを説明する。
【００９１】
送信装置５２０において、通信管理装置５２１は、ｊ−１番目の組の受信装置５１０からメッセージを受信する。
【００９２】
ｊ−１番目の組の受信装置５１０からのメッセージが交渉メッセージ（Ｑ１）であった場合、通信管理装置５２１は、ネットワーク５０を介して、交渉メッセージ（Ｑ１）をｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）へ送信する。そして、通信管理装置５２１は、ｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）から、その交渉メッセージ（Ｑ１）に基づいて選択された圧縮・解凍方式を示す交渉メッセージ（交渉応答データＡ１）、あるいは、エラーを示す交渉メッセージ（交渉エラーデータＥ１）を受信する。
【００９３】
ｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）からのメッセージが交渉メッセージ（Ａ１）であった場合、即ち、送信プロキシ２００とｊ番目以降のいずれかの組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）との交渉が成功した場合、通信管理装置５２１は、ＸＭＬ変換装置５２２及びルーティング装置５３０を介して、交渉メッセージ（Ａ１）をｊ−１番目の組の受信装置５１０へ送信する。
【００９４】
ｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）からのメッセージが交渉メッセージ（Ｅ１）であった場合、通信管理装置５２１は、送信プロキシ２００とｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）との交渉が失敗した（したがって、今度はｊ−１番目の組の受信装置５１０が、送信プロキシ２００との交渉を実施する必要がある）と判断する。そして、通信管理装置５２１は、ＸＭＬ変換装置５２２及びルーティング装置５３０を介して、交渉メッセージ（Ｅ１）をｊ−１番目の組の受信装置５１０へ送信し、ｊ−１番目の組の受信装置５１０から交渉結果が通知されるのを待つ。ｊ−１番目の組の受信装置５１０は、交渉メッセージ（Ｅ１）を受信すると、送信プロキシ２００との交渉を実施した後、通信管理装置５２１にその交渉結果を通知する。通信管理装置５２１に交渉が成功したことが通知された場合には、交渉装置５２４は、受信プロキシ３００との間で利用する圧縮・解凍方式の交渉を実施するために、圧縮・解凍装置５２３が利用可能な圧縮・解凍方式を少なくとも１つ（２つ以上が好ましい）示す交渉メッセージ（交渉要求データＱｊ）をＣＰＵで作成する。通信管理装置５２１は、ネットワーク５０を介して、交渉装置５２４が作成した交渉メッセージ（Ｑｊ）をｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）へ送信する。そして、通信管理装置５２１は、ｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）から、その交渉メッセージ（Ｑｊ）に基づいて選択された圧縮・解凍方式を示す交渉メッセージ（交渉応答データＡｊ）を受信する。交渉装置５２４は、通信管理装置５２１が受信した交渉メッセージ（Ａｊ）が示す圧縮・解凍方式を、交渉により決定した圧縮・解凍方式として通信管理装置５２１に通知する。通信管理装置５２１は、交渉装置５２４から通知された圧縮・解凍方式をメモリに記憶する。
【００９５】
ｊ−１番目の組の受信装置５１０からのメッセージがＳＯＡＰメッセージ（Ｓａ）であった場合、圧縮・解凍装置５２３は、通信管理装置５２１がメモリに記憶した圧縮・解凍方式があれば、その圧縮・解凍方式を利用して、通信管理装置５２１が受信したＳＯＡＰメッセージ（Ｓａ）をＣＰＵで圧縮し、圧縮メッセージ（変換後の通信データＳｂ）を作成する。通信管理装置５２１は、ネットワーク５０を介して、圧縮・解凍装置５２３が作成した圧縮メッセージ（Ｓｂ）をｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）へ送信する。
【００９６】
ｊ−１番目の組の受信装置５１０からのメッセージが圧縮メッセージ（Ｓｂ）であった場合、通信管理装置５２１は、ネットワーク５０を介して、圧縮メッセージ（Ｓｂ）をｊ番目の組の受信装置５１０（ｊ＝ｎの場合は受信プロキシ３００）へ送信する（ステップＳ３０２：通信処理の一部）。
【００９７】
受信プロキシ３００を含めたサービス４００側の処理フローは、受信プロキシ３００（ｎ番目の組の受信装置）の通信相手が送信プロキシ２００ではなく、ｎ番目の組の送信装置５２０であること以外は、実施の形態１で図４に示したものと同様である。
【００９８】
受信プロキシ３００において、通信管理装置３３０は、ｎ番目の組の送信装置５２０からメッセージを受信する（ステップＳ２０１）。そして、通信管理装置３３０は、受信したメッセージが交渉メッセージ（Ｑ１）であるかどうかをＣＰＵで判断する（ステップＳ２０２）。
【００９９】
ステップＳ２０２で、通信管理装置３３０がｎ番目の組の送信装置５２０から受信したメッセージが交渉メッセージ（Ｑ１）であると判断した場合（ステップＳ２０２でＹＥＳの場合）、通信管理装置３３０は、受信プロキシ３００が終端であるかどうか、即ち、受信プロキシ３００がサービス４００と隣接しているかどうかをＣＰＵで判断する（ステップＳ２０３：交渉処理の一部）。この例では、通信管理装置３３０は、受信プロキシ３００がサービス４００と隣接していると判断する。
【０１００】
ステップＳ２０３で、通信管理装置３３０が、受信プロキシ３００がサービス４００と隣接していると判断した後（ステップＳ２０３でＹＥＳの場合）、交渉装置３１０は、圧縮・解凍装置３２０に対して利用可能な圧縮・解凍方式の確認を実施して、交渉メッセージ（Ｑ１）が示す圧縮・解凍方式の中から圧縮・解凍装置３２０が利用可能な圧縮・解凍方式をＣＰＵで選択する。そして、交渉装置３１０は、その圧縮・解凍方式を、交渉により決定した圧縮・解凍方式として通信管理装置２３０に通知する（ステップＳ２０６：交渉処理の一部）。通信管理装置３３０は、ネットワーク５０を介して、交渉装置３１０から通知された圧縮・解凍方式を示す交渉メッセージ（Ａ１）を、交渉結果としてｎ番目の組の送信装置５２０へ送信する（ステップＳ２０７：交渉処理の一部）。また、このとき、通信管理装置３３０は、交渉装置３１０から通知された圧縮・解凍方式をメモリに記憶する。ステップＳ２０６において、交渉装置３１０が圧縮・解凍装置３２０に対して利用可能な圧縮・解凍方式の確認を実施したときに、交渉メッセージ（Ｑ１）が示す圧縮・解凍方式の中に圧縮・解凍装置３２０が利用可能な圧縮・解凍方式がなかった場合、交渉装置３１０は、その旨を通信管理装置２３０に通知する。この場合、通信管理装置３３０は、ネットワーク５０を介して、エラーを示す交渉メッセージ（Ｅ１）を、交渉結果としてｎ番目の組の送信装置５２０へ送信する。その後、通信管理装置３３０がｎ番目の組の送信装置５２０から、ｊ番目の組の送信装置５２０が送信した交渉メッセージ（Ｑｊ）を受信した場合、受信プロキシ３００の各装置は、交渉メッセージ（Ｑ１）を受信したときと同様の処理を行う。つまり、交渉装置３１０は、圧縮・解凍装置３２０に対して利用可能な圧縮・解凍方式の確認を実施して、交渉メッセージ（Ｑｊ）が示す圧縮・解凍方式の中から圧縮・解凍装置３２０が利用可能な圧縮・解凍方式をＣＰＵで選択する。そして、交渉装置３１０は、その圧縮・解凍方式を、交渉により決定した圧縮・解凍方式として通信管理装置２３０に通知する。通信管理装置３３０は、ネットワーク５０を介して、交渉装置３１０から通知された圧縮・解凍方式を示す交渉メッセージ（Ａｊ）を、交渉結果としてｎ番目の組の送信装置５２０へ送信する。また、このとき、通信管理装置３３０は、交渉装置３１０から通知された圧縮・解凍方式をメモリに記憶する。
【０１０１】
ステップＳ２０２で、通信管理装置３３０がｎ番目の組の送信装置５２０から受信したメッセージが交渉メッセージ（Ｑ１）ではないと判断した場合（ステップＳ２０２でＮＯの場合）、通信管理装置３３０は、受信したメッセージが圧縮メッセージ（Ｓｂ）であるかどうかをＣＰＵで判断する（ステップＳ２０８：通信処理の一部）。
【０１０２】
ステップＳ２０８で、通信管理装置３３０がｎ番目の組の送信装置５２０から受信したメッセージが圧縮メッセージ（Ｓｂ）であると判断した場合（ステップＳ２０８でＹＥＳの場合）、圧縮・解凍装置３２０は、通信管理装置３３０がメモリに記憶した圧縮・解凍方式を利用して、圧縮メッセージ（Ｓｂ）をＳＯＡＰメッセージ（Ｓａ）にＣＰＵで解凍する（ステップＳ２０９：通信処理の一部）。通信管理装置３３０は、圧縮・解凍装置３２０が解凍して得たＳＯＡＰメッセージ（Ｓａ）をサービス４００へ送信する（ステップＳ２１０：通信処理の一部）。一方、ステップＳ２０８で、通信管理装置３３０がｎ番目の組の送信装置５２０から受信したメッセージが圧縮メッセージ（Ｓｂ）でないと判断した場合（ステップＳ２０８でＮＯの場合）には、通信管理装置３３０は、そのメッセージをそのままサービス４００へ送信する。
【０１０３】
以上のように、本実施の形態に係るサービス連携システム１０のサービスバス５００は、受信したメッセージに対してヘッダ情報を付与し、経路情報に従ったルーティングの要求を行うことで、そのメッセージを転送し、あるいは、必要に応じて、メッセージに対して受信プロキシ３００と同様の処理を施す受信装置５１０を備えることを特徴とする。また、このサービスバス５００は、ルーティングを介して受信したデータからヘッダ情報を除いたメッセージの抽出を行い、そのメッセージをさらに転送し、あるいは、必要に応じて、メッセージに対して送信プロキシ２００と同様の処理を施す送信装置５２０を備えることを特徴とする。
【０１０４】
本実施の形態では、上記のような特徴により、遠隔地に配備されたサービス４００をサービスバス５００経由で連携させる際に、データ変換回数の削減や通信データサイズの削減により、連携処理の高速化を実現することが可能となる。
【０１０５】
以上、本発明の実施の形態について説明したが、これらのうち、２つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、１つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、２つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
【図面の簡単な説明】
【０１０６】
【図１】実施の形態１に係るサービス通信システムの構成を示すブロック図である。
【図２】実施の形態１に係るクライアント装置、送信装置、受信装置、サーバ装置が実装されるコンピュータのハードウェア資源の一例を示す図である。
【図３】実施の形態１に係るサービス通信方法を示すフローチャートである。
【図４】実施の形態１に係るサービス通信方法を示すフローチャートである。
【図５】実施の形態１に係るサービス通信方法を示すシーケンス図である。
【図６】実施の形態１に係る各種データの一例である。
【図７】実施の形態１に係る各種データの一例である。
【図８】実施の形態１に係る各種データの一例である。
【図９】実施の形態２に係るサービス通信システムの構成を示すブロック図である。
【図１０】実施の形態２に係るサービス通信方法を示すシーケンス図である。
【符号の説明】
【０１０７】
１０  サービス連携システム、５０  ネットワーク、１００  クライアント、１１０  要求装置、１２０  ＸＭＬ変換装置、１３０  通信管理装置、２００  送信プロキシ、２１０  交渉装置、２２０  圧縮・解凍装置、２３０  通信管理装置、３００  受信プロキシ、３１０  交渉装置、３２０  圧縮・解凍装置、３３０  通信管理装置、４００  サービス、４１０  サービスコア、４２０  ＸＭＬ変換装置、４３０  通信管理装置、５００  サービスバス、５１０  受信装置、５１１  通信管理装置、５１２  ＸＭＬ変換装置、５１３  圧縮・解凍装置、５１４  交渉装置、５２０  送信装置、５２１  通信管理装置、５２２  ＸＭＬ変換装置、５２３  圧縮・解凍装置、５２４  交渉装置、５３０  ルーティング装置、５４０  内部サービス、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2008234406.tif 000003
【図２】
2008234406.tif 000004
【図３】
2008234406.tif 000005
【図４】
2008234406.tif 000006
【図５】
2008234406.tif 000007
【図６】
2008234406.tif 000008
【図７】
2008234406.tif 000009
【図８】
2008234406.tif 000010
【図９】
2008234406.tif 000011
【図１０】
2008234406.tif 000012