(57)【要約】【課題】  一般的に用いられる基本トランスポート（例えばＨＴＴＰ）以外のトランスポートで送受信したい場合は、相手側で対応するトランスポート処理モジュールを組み込む手間が発生する。【解決手段】  基本トランスポート経由情報受信処理部２１３が、クライアント２０２からの情報を基本トランスポート経由で受信する。高速トランスポートの受信処理を行う高速トランスポート処理モジュールを基本トランスポート経由情報受信処理部で受信すると、メッセージ受信処理部２１８が、高速トランスポート経由でクライアント２０２からのメッセージを受信する。【選択図】  図２
2011018114.tif 000002
【特許請求の範囲】
【請求項１】
送信側からの情報を第１のトランスポート経由で受信する第１の受信手段と、
第２のトランスポートの受信処理を行うトランスポート処理モジュールを前記第１の受信手段で受信すると、前記トランスポート処理モジュールにより受信処理する第２のトランスポート経由で送信側からの情報を受信する第２の受信手段と
を備えた受信装置。
【請求項２】
受信側に情報を第１のトランスポート経由で送信する第１の送信手段と、
第２のトランスポートの受信処理を行うトランスポート処理モジュールを前記第１の送信手段で送信すると、前記トランスポート処理モジュールにより受信側が受信処理する第２のトランスポート経由で受信側に情報を送信する第２の送信手段と
を備えたことを特徴とする送信装置。
【請求項３】
添付データを含む情報を受信側に送信する場合に、前記第１の送信手段は、受信側に送信する情報から添付データを除いた情報と、前記第２のトランスポートの受信処理を行うトランスポート処理モジュールとを前記第１のトランスポート経由で送信し、前記第２の送信手段は、前記トランスポート処理モジュールにより受信側が受信処理する第２のトランスポート経由で受信側に前記添付データを送信することを特徴とする請求項２に記載の送信装置。
【請求項４】
前記第１の送信手段が、受信側に送信する情報の容量があらかじめ設定してある値を超える場合、前記第２のトランスポートの受信処理を行うトランスポート処理モジュールを送信することを特徴とする請求項２に記載の送信装置。
【請求項５】
第１の受信手段が、送信側からの情報を第１のトランスポート経由で受信する第１の受信ステップと、
第２の受信手段が、第２のトランスポートの受信処理を行うトランスポート処理モジュールを前記第１の受信ステップで受信すると、前記トランスポート処理モジュールにより受信処理する第２のトランスポート経由で送信側からの情報を受信する第２の受信ステップと
を備えた受信装置の受信方法。
【請求項６】
第１の送信手段が、受信側に情報を第１のトランスポート経由で送信する第１の送信ステップと、
第２の送信手段が、第２のトランスポートの受信処理を行うトランスポート処理モジュールを前記第１の送信ステップで送信すると、前記トランスポート処理モジュールにより受信側が受信処理する第２のトランスポート経由で受信側に情報を送信する第２の送信ステップと
を備えたことを特徴とする送信装置の送信方法。
【請求項７】
添付データを含む情報を受信側に送信する場合に、前記第１の送信ステップは、受信側に送信する情報から添付データを除いた情報と、前記第２のトランスポートの受信処理を行うトランスポート処理モジュールとを前記第１のトランスポート経由で送信し、前記第２の送信ステップは、前記トランスポート処理モジュールにより受信側が受信処理する第２のトランスポート経由で受信側に前記添付データを送信することを特徴とする請求項６に記載の送信方法。
【請求項８】
前記第１の送信ステップが、受信側に送信する情報の容量があらかじめ設定してある値を超える場合、前記第２のトランスポートの受信処理を行うトランスポート処理モジュールを送信することを特徴とする請求項６に記載の送信方法。
【請求項９】
送信側からの情報を第１のトランスポート経由で受信する第１の受信手順と、
第２のトランスポートの受信処理を行うトランスポート処理モジュールを前記第１の受信手順で受信すると、前記トランスポート処理モジュールにより受信処理する第２のトランスポート経由で送信側からの情報を受信する第２の受信手順と
をコンピュータに実行させるためのプログラム。
【請求項１０】
受信側に情報を第１のトランスポート経由で送信する第１の送信手順と、
第２のトランスポートの受信処理を行うトランスポート処理モジュールを前記第１の送信手順で送信すると、前記トランスポート処理モジュールにより受信側が受信処理する第２のトランスポート経由で受信側に情報を送信する第２の送信手順と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置、送信装置、受信方法、送信方法、及び、プログラムに関する。
【背景技術】
【０００２】
今日では、様々なサービスがコンピュータネットワークを介して提供されている。利用されている技術として、Ｗｅｂサービス関連技術があげられる。ＷｅｂサービスとはＨＴＴＰに代表される様々な通信プロトコルを利用して、人間の手を介さずにコンピュータ同士がデータを交換するしくみである。
【０００３】
Ｗｅｂサービスでは、クライアントとサーバ間において、ＳＯＡＰ文書から構成される、あるいは、ＳＯＡＰ文書とアタッチメントデータから構成されるＳＯＡＰメッセージをやりとりする。Ｗｅｂサービスでは、クライアントとサーバ間における通信プロトコル上において、ＳＯＡＰメッセージを介すことにより、様々なコンピュータ機器や組み込み機器等が情報を受け取ることができる。通信プロトコルとしてはＨＴＴＰを利用するのが一般的であった。（非特許文献１、非特許文献２参照）
ＳＯＡＰメッセージを送受信するＷｅｂサービスの機能を備えた機器において、ネットワーク上にバイトストリームを流す役目を担う通信プロトコルの処理を行うのはトランスポートである。従来、このトランスポートの処理を行うモジュール（以下、トランスポート処理モジュールと呼称する）は、あらかじめ機器に搭載されているのが一般的であった。さらに、１度のリクエストでは、人間によって静的に選択された１つのトランスポートでメッセージ全体を送受信するのが一般的であった。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＳＯＡＰ  Ｍｅｓｓａｇｅｓ  ｗｉｔｈ  Ａｔｔａｃｈｍｅｎｔｓｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ＳＯＡＰ−ａｔｔａｃｈｍｅｎｔｓ
【非特許文献２】ＳＯＡＰ  Ｍｅｓｓａｇｅ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｏｐｔｉｍｉｚａｔｉｏｎ  Ｍｅｃｈａｎｉｓｍｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｓｏａｐ１２−ｍｔｏｍ／
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法では自身が使用したいトランスポート処理モジュールを送信先の相手が備えていない場合、Ｗｅｂサービスで一般的に用いられる基本トランスポート（例えばＨＴＴＰ）でしか送受信できない。そのため、別のトランスポートで送受信したい場合は、相手側で対応するトランスポート処理モジュールを組み込む手間が発生するという課題があった。このような課題は、Ｗｅｂサービスに関わらず、複数のトランスポートのいずれかを介して行われる通信において存在する。
【０００６】
そこで、本発明は上記の課題に鑑みてなされたものであり、送信側が希望するトランスポートを、受信側が備えているか否かに関わらず使用できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明の一態様による受信装置は、送信側からの情報を第１のトランスポート経由で受信する第１の受信手段と、第２のトランスポートの受信処理を行うトランスポート処理モジュールを前記第１の受信手段で受信すると、前記トランスポート処理モジュールにより受信処理する第２のトランスポート経由で送信側からの情報を受信する第２の受信手段とを備える。
【０００８】
また、本発明の他の態様による送信装置は、受信側に情報を第１のトランスポート経由で送信する第１の送信手段と、第２のトランスポートの受信処理を行うトランスポート処理モジュールを前記第１の送信手段で送信すると、前記トランスポート処理モジュールにより受信側が受信処理する第２のトランスポート経由で受信側に情報を送信する第２の送信手段とを備える。
【発明の効果】
【０００９】
本発明によれば、送信側が希望するトランスポートを、受信側が備えているか否かに関わらず使用して通信することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】トランスポート切り替えによるメッセージ送受信装置の処理の概要を示す図である。
【図２】実施形態装置の処理構成を示した図である。
【図３】ＳＯＡＰメッセージの具体例を示す図である。
【図４】最適トランスポート判断処理部の具体的な処理フローを示した図である。
【図５】トランスポート制御処理部の具体的な処理フローを示した図である。
【図６】トランスポート切り替えによるメッセージ送受信装置の処理の概要を示す図である。
【図７】実施形態装置の処理構成を示した図である。
【図８】トランスポート制御処理部の具体的な処理フローを示した図である。
【図９】メッセージ再生成処理部の具体的な処理内容を示した図である
【図１０】情報処理装置のハードウェア構成の一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１１】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１２】
本発明の第１の実施形態の装置は、メッセージの送信処理と受信処理の両機能を備えており、本実施形態においては便宜的に送信側をクライアント、受信側をプロバイダと呼ぶ。よって、本実施形態における送信側の処理はクライアントで行い、受信側の処理はプロバイダで行うものとして説明する。しかしながら、本発明は、サーバとクライアント間の通信に限定されるものではない。送信するメッセージもＳＯＡＰメッセージに限定されるものではない。
【００１３】
まず図１を参照して、本実施形態におけるトランスポート切り替えによるメッセージ送受信装置の処理の概要を説明する。１０１は、本実施形態装置中、送信処理を行うクライアント側（送信側）であり、本実施形態では、パーソナルコンピュータ（以下ＰＣ）としている。１０２は、本実施形態装置中、受信処理を行うプロバイダ側（受信側）であり、本実施形態では、複写機としている。プロバイダは、複写機に限られず、ＰＣでもサーバでも、或いは組み込み機器でもよい。同様に、クライアントも、ＰＣに限らない。
【００１４】
まず送信側の処理を説明する。１０３のアプリケーションが、Ｗｅｂサービスで送信したい情報を、１０１の本実施形態装置（クライアント）に渡すと、本実施形態装置は、まず１０４でＳＯＡＰメッセージの生成処理を行う。１０５で、あらかじめ登録されている、あるいはアプリケーションから渡される１つのＳＯＡＰメッセージの容量のデフォルト値を取得する。そのデフォルト値と、例えば生成されたＳＯＡＰメッセージの全体の容量を計算した値と比較する。ＳＯＡＰメッセージの全体の容量の方が、デフォルト値よりも大きければ、容量の大きいＳＯＡＰメッセージであると判断し、容量の大きいメッセージを高速に送信できるトランスポートがあるか判断する。
【００１５】
高速トランスポートがあると判断したら、１０６で例えばＨＴＴＰのような１０７の基本トランスポート経由で、その高速トランスポートを処理できる１０８の処理モジュールをプロバイダ側１０２に送信する第１の送信手順を行う。ＨＴＴＰは、ＨｙｐｅｒＴｅｘｔＴｒａｎｓｐｏｒｔＰｒｏｔｃｏｌである。ここでの高速トランスポートとは大容量のメッセージを高速に転送できる機能を備えたものとしている。ＳＯＡＰメッセージ全体の容量が大きくなるのは、画像データや動画データなどの容量の大きい添付データなどが付加されている場合が多い。
【００１６】
１０２のプロバイダ側で、１０９の基本トランスポートであるＨＴＴＰ経由でクライアント１０１から送られてきた１０８の高速トランスポート処理モジュールを１１０で受け取る第１の受信手順を行う。そして、受け取った高速トランスポート処理モジュールを、１１１でプロバイダ１０２自身に組み込み、高速トランスポート経由でメッセージを受信できる状態にし、クライアント側１０１に受信準備ができたことを１１０で返答する。
【００１７】
プロバイダ側１０２の高速トランスポートによる受信準備ができたこと確認したら、１１２で１１３の高速トランスポート経由で、１０４で生成したＳＯＡＰメッセージ１１４をプロバイダ１０２に送信する第２の送信手順を行う。プロバイダ側１０２では、自身に組み込んだ１１５の高速トランスポート経由で、１１６でＳＯＡＰメッセージ１１４を受信する第２の受信手順を行う。そして、ｌ１７でＳＯＡＰメッセージの解析処理を行い、解析した結果を１１８のサービスロジックに渡す。
【００１８】
本実施形態では、高速トランスポートで転送するかを判断する例を載せているが、例えば、より信頼性の高いトランスポートで転送するなど、その他の特徴を持つトランスポートで転送するかを判断してもよい。
【００１９】
以上のように、本実施形態装置では、トランスポートを動的に切り替えてメッセージを送ることができる。そのため、受信側が送信側の希望するトランスポートを搭載していない場合でも、そのトランスポートでメッセージの送受信が可能となる。
【００２０】
次に、本実施形態装置の処理構成を説明する。図２は、前記１０１のクライアントと１０２のプロバイダに搭載されている本実施形態装置の処理構成を示した図である。２０１が本実施形態装置の全体構成になる。２０２が送信処理を行うクライアントとしての処理構成であり、２０３が受信処理を行うプロバイダとしての処理構成である。図１においては、クライアント１０１とプロバイダ１０２は、別の装置であるとして説明した。図２においても、クライアント２０２とプロバイダ２０３は、ネットワーク２５０を介して接続される、別の装置であるが、１つの装置に、クライアント２０２の構成、プロバイダ２０３の構成を設けてもよい。
【００２１】
２０４のアプリケーションから、２０５のメッセージ生成用受信処理部が、ＳＯＡＰメッセージを生成するために必要な情報を受け取り、２０６の記憶領域に格納する。２０７のメッセージ生成処理部で、２０６の記憶領域から、ＳＯＡＰメッセージを生成するために必要な情報を取得し、ＳＯＡＰメッセージを生成する。２０８の最適トランスポート判断処理部で、２０６の記憶領域から、ＳＯＡＰメッセージを送信するための最適なトランスポートを選択するための判断材料となる閾値などを受け取る。本実施形態において、この閾値は、生成したＳＯＡＰメッセージの容量が大きいか判断するためのＳＯＡＰメッセージ容量のデフォルト値とする。
【００２２】
２０７のメッセージ生成処理部からＳＯＡＰメッセージを受け取り、ＳＯＡＰメッセージの全体の容量の方が、デフォルト値よりも大きければ、容量の大きいＳＯＡＰメッセージであると判断する。そして、容量の大きいメッセージを高速に送信できる高速トランスポートがあるか判断し、あればその高速トランスポートを最適なトランスポートとして選択する。高速トランスポートがなければ、トランスポートとして基本トランスポートを選択する。ＳＯＡＰメッセージの容量が小さい場合も、基本トランスポートを選択する。
【００２３】
２０９のトランスポート制御処理部で、２０８の最適トランスポート判断処理部で高速トランスポートが選択されたか確認する。そして、高速トランスポートが選択されていた場合は、２１０の高速トランスポート処理モジュール送信処理部に対して、その高速トランスポートを処理できる処理モジュールの送信指示を出す。その際には、２１１の基本トランスポート経由で、送信するように指示を出す。高速トランスポート処理モジュール送信処理部２１０は、プロバイダ側（受信側）２０３に情報を基本トランスポート（第１のトランスポート）経由で送信する第１の送信手段である。２１１の基本トランスポートとは、本実施形態においては、Ｗｅｂサービスの送受信で一般的に使用されるＨＴＴＰとする。２０８の最適トランスポート判断処理部で高速トランスポートが選択されていなかった場合は、ＳＯＡＰメッセージ全体を基本トランスポートで送信すると判断する。そして、２１６のメッセージ送信処理部に、ＳＯＡＰメッセージ全体の送信の指示を出す。
【００２４】
そして、プロバイダ側２０３では、２１２の基本トランスポート経由で、２１３の基本トランスポート経由情報受信処理部が、クライアント側２０２から送信された情報を受け取る。すなわち、基本トランスポート経由情報受信処理部２１３は、クライアント側（送信側）２０２からの情報を基本トランスポート（第１のトランスポート）経由で受信する第１の受信手段である。そして、受け取った情報がＳＯＡＰメッセージかどうか解析し、ＳＯＡＰメッセージでなければ、高速トランスポート処理モジュールが組み込まれていると判断し、組み込み指示を出す。ＳＯＡＰメッセージであれば、そのままメッセージ解析処理の指示を出す。ＳＯＡＰメッセージかどうかの判断方法としては、例えば、Ｃｏｎｔｅｎｔ−Ｔｙｐｅなどの値を解析し、ＳＯＡＰの仕様で規定された値が含まれているかどうかで行う。ＳＯＡＰの仕様で規定された値である「ｔｅｘｔ／ｘｍｌ」あるいは「ａｐｐｌｉｃａｔｉｏｎ／ｓｏａｐ＋ｘｍｌ」が含まれていれば、ここではＳＯＡＰメッセージと判断する。それ以外の値が含まれていれば、高速トランスポート処理モジュールであると判断する。
【００２５】
受信処理部２１３から組み込み指示を受けた２１４の高速トランスポート処理モジュール組み込み処理部では、２１３で受信した高速トランスポート処理モジュールをプロバイダ２０３自身に組み込む。そして、２１５の高速トランスポート経由で情報を受信できるようにする。組み込み処理が終了したら、クライアント側に組み込み終了通知を返信する。高速トランスポート処理モジュール２１５は、プロバイダ２０３の不図示のコンピュータがプログラムを実行することによりその機能が実現されるモジュールである。クライアント２０２は、そのプログラムを基本トランスポート２１１からプロバイダ２０３に送信する。クライアント２０２、プロバイダ２０３のその他の処理部も、同様にプログラムの実行により実現されるモジュールでもよい。
【００２６】
２１０の高速トランスポート処理モジュール送信処理部は、プロバイダ側２０３からの組み込み終了通知の返信を受け取り、２０９のトランスポート制御処理部に伝える。その通知を受け取ったら、２０９のトランスポート制御処理部は、プロバイダ側２０３に送信した高速トランスポート処理モジュール２１５に対応する高速トランスポート処理モジュール２１７をクライアント２０２自身に組み込む。クライアント２０２に高速トランスポート処理モジュール２１７が予め組み込まれている場合は、ここでの組み込みは不要である。ここでは、高速トランスポート処理モジュールは、送信機能と受信機能を有するものとする。
【００２７】
そして、２１６のメッセージ送信処理部に、２０７のメッセージ生成処理部で生成したＳＯＡＰメッセージを２１７の高速トランスポート経由で送信するように指示する。２１６のメッセージ送信処理部は、２１７の高速トランスポート経由で、ＳＯＡＰメッセージをプロバイダ側２０３に送信する第２の送信手段である。すなわち、高速トランスポート（第２のトランスポート）の受信処理を行うトランスポート処理モジュールを高速トランスポート処理モジュール送信処理部２１０で送信する。そうすると、トランスポート処理モジュールによりプロバイダ（受信側）２０３が受信処理する高速トランスポート（第２のトランスポート）経由でプロバイダ側２０３に情報を送信する。
【００２８】
プロバイダ側２０３では、そのＳＯＡＰメッセージを２１５の高速トランスポート経由で、第２の受信手段である２１８のメッセージ受信処理部が受信する。すなわち、高速トランスポート（第２のトランスポート）の受信処理を行うトランスポート処理モジュールを基本トランスポート経由情報受信処理部２１３で受信する。そうすると、メッセージ受信処理部２１８は、トランスポート処理モジュールにより受信処理する高速トランスポート（第２のトランスポート）２１５経由でクライアント側（送信側）２０２からの情報を受信する。２１９のメッセージ解析処理部で、受信したＳＯＡＰメッセージを解析し、必要な情報を抽出する。２２０のメッセージ通知処理部で、２１９のメッセージ解析処理部で抽出した情報を、２２１のサービスロジックに通知することで、プロバイダ側のサービスの処理が実行される。
【００２９】
なお、本発明の一実施例では、高速トランスポート処理モジュール組み込み処理部２１４は、メッセージの受信処理が終了したあと、プロバイダ２０３自身に組み込んだ高速トランスポート処理モジュール２１５を削除する。
【００３０】
次に、本実施形態装置で送受信される添付データが付加されたＳＯＡＰメッセージの例を説明する。図３は、前記２０２のクライアントから前記２０３のプロバイダへ送信するＳＯＡＰメッセージで添付データが付加された場合の一般的な具体例である。３０１は、添付データ付きＳＯＡＰメッセージ全体を示した例であり、ＭＴＯＭという仕様に基づいて構成されたＳＯＡＰメッセージである。３０１は、３０２のプロトコルバインディングヘッダ部と３０３のＭＩＭＥマルチパート形式のメッセージから構成されている。図３においては、プロトコルとしてＨＴＴＰの例を載せている。３０２のプロトコルバインディングヘッダ部では、Ｃｏｎｔｅｎｔ−ＴｙｐｅやＣｏｎｔｅｎｔ−ＬｅｎｇｔｈなどのＨＴＴＰの仕様に基づいたヘッダ情報を記載している。
【００３１】
３０４には、３０３のＭＩＭＥマルチパート形式のメッセージをパートごとに区切るためのバウンダリの値が設定されている。３０４のバウンダリの値は、３０５〜３０９の部分に設定されており、それぞれ３１０〜３１３のパートに分けられる。それぞれのパートは、３１４に示すヘッダと３１５に示すボディからの構成になる。３１５はＳＯＡＰ文書である。同様に、３１１〜３１３のパートはそれぞれ３１６、３１８、３２０のヘッダと３１７、３１９、３２１のボディからの構成になり、３１７、３１９、３２１には添付データであるバイナリデータの実体が含まれている。３１５のＳＯＡＰ文書内には、３２２に示すように、添付データの参照情報として、ｃｏｎｔｅｎｔ−ｉｄのＩＤを設定でき、このＩＤから、３２３に示すように、各パートに設定されているｃｏｎｔｅｎｔ−ｉｄを参照することが可能になる。
【００３２】
図４は、前記２０８の最適トランスポート判断処理部の具体的な処理フローを示した図である。ステップＳ４０１で、前記２０７のメッセージ生成処理部から受信したＳＯＡＰメッセージ全体の容量を計算する。ステップＳ４０２で、前記２０４のアプリケーションから設定された閾値を、前記２０６の記憶領域から取得する。この閾値は、ＳＯＡＰメッセージの容量が大きいかを判断するときに基準となるＳＯＡＰメッセージ容量のデフォルト値である。ステップＳ４０３で、受信したＳＯＡＰメッセージ全体の容量が、閾値であるデフォルト値よりも大きいかどうか判定する。デフォルト値よりも大きいと判定した場合は、ステップＳ４０４の処理に移行し、小さいあるいは同値であればステップＳ４０５の処理に移行する。
【００３３】
ステップＳ４０４では、容量の大きいＳＯＡＰメッセージなので、容量の大きい情報を高速に転送できる高速トランスポートがあるか確認する。そして、高速トランスポートがあればステップＳ４０６の処理に移行し、無ければステップＳ４０５の処理に移行する。ステップＳ４０５では、高速トランスポートが無いため、高速トランスポートが選択されていないことを通知する。ステップＳ４０６では、高速トランスポートがあるので、高速トランスポートを選択したことを通知する。
【００３４】
本実施形態では、高速トランスポートで転送するかを判断する例を載せているが、例えば、より信頼性の高いトランスポートで転送するなど、その他の特徴を持つトランスポートで転送するかを判断してもよい。
【００３５】
図５は、前記２０９のトランスポート制御処理部の具体的な処理フローを示した図である。ステップＳ５０１で前記２０８の最適トランスポート判断処理部の処理結果を受け取る。ステップＳ５０２で、メッセージの送信に高速トランスポートが選択されたか判定し、選択されていた場合は、ステップＳ５０３の処理に移行する。選択されていない場合は、ステップＳ５０４の処理に移行し、基本トランスポート経由でメッセージ全体を送信する指示を出す。
【００３６】
一方、ステップＳ５０３で、選択された高速トランスポート処理モジュールを、基本トランスポートで送信し、メッセージ全体を、高速トランスポート経由で送信する、と判断する。ステップＳ５０５で、基本トランスポート経由で、高速トランスポート処理モジュールを送信する指示を出し、返答を待つ。ステップＳ５０６で、高速トランスポート処理モジュールを送った相手（例えばプロバイダ側２０３）が、その高速トランスポート経由で情報を受け取れるかを示す結果を受け取る。
【００３７】
ステップＳ５０７で、相手が高速トランスポート経由で情報を受け取れるか判定する。相手が高速トランスポート経由で情報を受け取れると判定した場合は、ステップＳ５０８の処理に移行し、受け取れないと判定した場合は、ステップＳ５０４の処理に移行する。なお、プロバイダ側２０３が高速トランスポートを有しているか否かをクライアント側２０２が判断できる形態では、プロバイダ側２０３が高速トランスポートを有していないと判断した場合に、プロバイダ側に高速トランスポートを送信する。
【００３８】
ステップＳ５０８で、プロバイダに送信した高速トランスポート処理モジュール２１５に対応する高速トランスポート処理モジュール２１７がクライアント２０２に組み込まれているか判断する。そして、組み込まれていなければ、高速トランスポート処理モジュール２１７をクライアント２０２自身に組み込み、情報を転送できるようにする。ステップＳ５０９で、組み込んだ高速トランスポート経由で、メッセージ全体を送信する指示を出す。
【００３９】
次に、本発明の第２の実施形態について説明する。第１の実施形態においては、メッセージ全体を高速トランスポート経由で送信する場合を示したが、本実施形態においては、メッセージとメッセージに含まれる添付データを別のトランスポート経由で送信する場合を示す。図６を参照して、処理の概要を説明する。
【００４０】
６０１は、本実施形態装置中、送信処理を行うクライアント側であり、本実施形態では、パーソナルコンピュータ（以下ＰＣ）としている。６０２は、本実施形態装置中、受信処理を行うプロバイダ側であり、本実施形態では、複写機としている。
【００４１】
まず送信側の処理を説明する。６０３のアプリケーションが、Ｗｅｂサービスで送信したい情報を、６０１の本実施形態装置（クライアント）に渡すと、本実施形態装置は、まず６０４でＳＯＡＰメッセージの生成処理を行う。６０５で、ＳＯＡＰメッセージの容量のデフォルト値を取得する。そのデフォルト値と、例えば生成されたＳＯＡＰメッセージの全体の容量を計算した値と比較する。ＳＯＡＰメッセージの全体の容量の方が、デフォルト値よりも大きければ、容量の大きい情報を高速に送信できる高速トランスポートがあるか判断する。以上の処理は、図１を参照して説明した第１の実施形態と共通である。
【００４２】
高速トランスポートがあると判断したら、６０６で、前記６０４で生成したＳＯＡＰメッセージから６０７のように、添付データ部分を空にし、高速トランスポート処理モジュールを付加したＳＯＡＰメッセージを再生成する。そして、例えばＨＴＴＰのような６０８の基本トランスポート経由で、その再生成したＳＯＡＰメッセージをプロバイダ側６０２に送信する。ここでの高速トランスポートとは大容量の情報を高速に転送できる機能を備えたものとしている。
【００４３】
６０２のプロバイダ側で、６０９の基本トランスポートであるＨＴＴＰ経由でクライアントから送られてきた６０７のＳＯＡＰメッセージを６１０で受け取る。そして、受け取ったＳＯＡＰメッセージの解析とトランスポート処理モジュールが添付されているかの解析を行う。トランスポート処理モジュールが添付されていた場合、６１１で、そのモジュールをプロバイダ６０２自身に組み込み、高速トランスポート経由で情報を受信できる状態にする。そしてクライアント側６０１に受信準備ができたことを６１０で返答する。
【００４４】
プロバイダ側６０２の高速トランスポートによる受信準備ができたこと確認したら、６１２で６１３の高速トランスポート経由で、６０６で空にした部分のそれぞれの添付データ６１４をプロバイダに送信する。プロバイダ側では、自身に組み込んだ６１５の高速トランスポート経由で、６１６で６１４の添付データを受信し、６１７でＳＯＡＰ文書と添付データの情報の解析処理を行い、解析した結果を６１８のサービスロジックに渡す。
【００４５】
本実施形態では、高速トランスポートで転送するかを判断する例を載せているが、例えば、より信頼性の高いトランスポートで転送するなど、その他の特徴を持つトランスポートで転送するかを判断してもよい。
【００４６】
以上のように、本実施形態装置では、トランスポートを動的に切り替えることで、ＳＯＡＰメッセージに含まれるＳＯＡＰ文書と、添付データを別々のトランスポート経由で送ることができる。
【００４７】
次に、本実施形態装置の処理構成を説明する。図７は、前記６０１のクライアントと６０２のプロバイダに搭載されている本実施形態装置の処理構成を示した図である。７０１が本実施形態装置の全体構成になる。７０２が送信処理を行うクライアントとしての処理構成であり、７０３が受信処理を行うプロバイダとしての処理構成である。
【００４８】
７０４のアプリケーションから、７０５のメッセージ生成用受信処理部が、ＳＯＡＰメッセージを生成するために必要な情報を受け取り、７０６の記憶領域に格納する。７０７のメッセージ生成処理部で、７０６の記憶領域から、ＳＯＡＰメッセージを生成するために必要な情報を取得し、ＳＯＡＰメッセージを生成する。７０８の最適トランスポート判断処理部で、７０６の記憶領域から、ＳＯＡＰメッセージを送信するための最適なトランスポートを選択するための判断材料となる閾値などを受け取る。
【００４９】
７０７のメッセージ生成処理部からＳＯＡＰメッセージを受け取り、ＳＯＡＰメッセージの全体の容量の方が、デフォルト値よりも大きければ、容量の大きい情報を最適に送信できる高速トランスポートがあるか判断する。そして、あれば、その高速トランスポートを選択し、なければ、トランスポートとして基本トランスポートを選択する。ＳＯＡＰメッセージの容量が小さい場合も、基本トランスポートを選択する。
【００５０】
７０９のトランスポート制御処理部で、７０６の最適トランスポート判断処理部で高速トランスポートが選択されたか確認する。そして、高速トランスポートが選択されていた場合は、７１０のメッセージ再生成処理部で、メッセージを再生成する。具体的には、前記７０７で生成したＳＯＡＰメッセージから添付データ部分を空にし、高速トランスポート処理モジュールを付加したＳＯＡＰメッセージとして再生成する。７０９は、７１１のメッセージ送信処理部に対して、７１０で再生成したＳＯＡＰメッセージの送信指示を出す。その際には、７１２の基本トランスポート経由で、送信するように指示を出す。メッセージ送信処理部７１１は、プロバイダ側（受信側）７０３に情報を基本トランスポート（第１のトランスポート経由）で送信する。
【００５１】
添付データを含む情報を受信側７０３に送信する場合に、メッセージ送信処理部７１１は、プロバイダ側７０３に送信する情報から添付データを除いた情報と、高速トランスポート処理モジュールとを送信する。この更新は、基本トランスポート経由で行う。７１２の基本トランスポートとは、本実施形態においては、ＨＴＴＰとする。
【００５２】
そして、プロバイダ側７０３では、７１３の基本トランスポート経由で、７１４のメッセージ受信処理部がクライアント側７０２から送信されたＳＯＡＰメッセージをネットワーク７５０越しに受信する。すなわち、メッセージ受信処理部７１４は、クライアント側（送信側）７０２からの情報を基本トランスポート（第１のトランスポート）経由で受信する。７１５のメッセージ解析及びトランスポート解析処理部で、７１４で受信したＳＯＡＰメッセージの解析を行い、解析した結果を自身の記憶領域７１６に保存する。また、トランスポート処理モジュールが付加されているか解析し、トランスポート処理モジュールが付加されている場合は、７１７の高速トランスポート処理モジュール組み込み処理部に組み込み指示を出す。トランスポート処理モジュールが付加されていない場合は、サービスロジックにＳＯＡＰメッセージの情報を通知する指示を出す。
【００５３】
７１７の高速トランスポート処理モジュール組み込み処理部７１７は、そのトランスポート処理モジュールをプロバイダ７０３自身に組み込み、７１８の高速トランスポート経由で情報を受信できるようにする。そして、組み込み処理が終了したら、クライアント側に組み込み終了通知を返信する。高速トランスポート処理モジュール７１８は、プロバイダ７０３の不図示のコンピュータがプログラムを実行することによりその機能が実現されるモジュールである。クライアント７０２は、そのプログラムが付加されたメッセージを基本トランスポート７１２からプロバイダ７０３に送信する。クライアント７０２、プロバイダ７０３のその他の処理部も、同様にプログラムの実行により実現されるモジュールでもよい。
【００５４】
７１１のメッセージ送信処理部は、プロバイダ側７０３からの組み込み終了通知の返信を受け取り、７０９のトランスポート制御処理部に伝える。その通知を受け取ったら、７０９のトランスポート制御処理部は、プロバイダ側７０３に送信した高速トランスポート処理モジュール７１８に対応する高速トランスポート処理モジュール７２０をクライアント７０２自身に組み込む。クライアント７０２に高速トランスポート処理モジュール７２０が予め組み込まれている場合には、ここでの組み込みは不要である。そして、７１９の添付データ送信処理部に、７１０のメッセージ再生成処理部で分離した添付データを７２０の高速トランスポート経由で送信するように指示する。７１９の添付データ受信処理部は、７２０の高速トランスポート経由で、添付データをプロバイダ側７０３に送信する。
【００５５】
すなわち、添付データ送信処理部７１９は、高速トランスポート（第２のトランスポート）の受信処理を行うトランスポート処理モジュールをメッセージ送信処理部７１１で送信する。この送信をすると、トランスポート処理モジュールによりプロバイダ側（受信側）７０３が受信処理する高速トランスポート経由でプロバイダ側７０３に情報を送信する。添付データを含む情報を受信側に送信する場合に、添付データ送信処理部７１９は、トランスポート処理モジュールにより受信側が受信処理する高速トランスポート（第２のトランスポート）経由でプロバイダ側（受信側）７０３に添付データを送信する。
【００５６】
プロバイダ側７０３では、その添付データを７１８の高速トランスポート経由で７２１の添付データ受信処理部が受信する。すなわち、高速トランスポートの受信処理を行うトランスポート処理モジュールをメッセージ受信処理部７１４で受信する。すると、トランスポート処理モジュールにより受信処理する高速トランスポート経由でクライアント側（送信側）７０２からの情報を受信する。７２２の添付データ保存処理部で、７１６の自身の記憶領域に添付データを保存し、その保存場所を７２３のメッセージ通知処理部に通知する。
【００５７】
７２３のメッセージ通知処理部では、ＳＯＡＰメッセージの情報からＳＯＡＰ文書を７１５で解析した情報と７２２で保存した添付データの情報とを、７１６の自身の記憶領域から取得する。そして、ＳＯＡＰメッセージに含まれる添付データの参照情報などを使用して、保存された添付データと、その添付データが添付されたＳＯＡＰメッセージとを特定する。そして、ＳＯＡＰメッセージの内容と関連する添付データの情報をサービスロジックに通知できるように処理を行い、その処理結果を７２４のサービスロジックに通知する。そして、プロバイダ側７０３のサービスの処理が実行される。
【００５８】
なお、最適トランスポート判断処理部７０８は、添付データが静止画であるか、あるいは動画であるかというようにデータの種類に応じたトランスポートを選択し、選択したトランスポートで送信すると判断するようにしてもよい。
【００５９】
また、本発明の一実施例では、高速トランスポート処理モジュール組み込み処理部７１７は、受信側のサービスロジック（アプリケーション）で処理が行われた後、プロバイダ７０３自身に組み込んだ高速トランスポート処理モジュール７１８を削除する。
【００６０】
前記７０８の最適トランスポート判断処理部の具体的な処理フローに関しては図４と共通である。
【００６１】
図８は、前記７０９のトランスポート制御処理部の具体的な処理フローを示した図である。ステップＳ８０１で前記７０８の最適トランスポート判断処理部の処理結果を受け取る。ステップＳ８０２で、メッセージの送信に高速トランスポートが選択されたか判定し、選択されていた場合は、ステップＳ８０３の処理に移行する。選択されていない場合は、ステップＳ８０４の処理に移行する。
【００６２】
ステップＳ８０３で、選択された高速トランスポートで、メッセージに付加されている添付データを送信すると判断する。そして、添付データを分離し、高速トランスポート処理モジュールを付加した形にメッセージを再生成する指示を前記７１０のメッセージ再生成処理部に出し処理結果を待つ。ステップＳ８０５で、再生成されたメッセージを受け取り、基本トランスポート経由で、そのメッセージを送信する指示を、前記７１１のメッセージ送信処理部に出し返答を待つ。ステップＳ８０６で、高速トランスポート処理モジュール付きメッセージを送った相手（例えばプロバイダ側７０３）が、その高速トランスポート経由で情報を受け取れるかを示す結果を受け取る。
【００６３】
ステップＳ８０７で、相手が高速トランスポート経由で情報を受け取れるか判定する。相手が高速トランスポート経由で情報を受け取れると判定した場合は、ステップＳ８０８の処理に移行し、受け取れないと判定した場合は、ステップＳ８０４の処理に移行する。
【００６４】
ステップＳ８０８で、プロバイダ７０３に送信した高速トランスポート処理モジュール７１８に対応する高速トランスポート処理モジュール７２０がクライアント７０２に組み込まれているか判断する。組み込まれていなければ、高速トランスポート処理モジュールをクライアント７０２自身に組み込み、情報を転送できるようにする。ステップＳ８０９で、組み込んだ高速トランスポート経由で、メッセージに付加されている添付データを送信する指示を出す。
【００６５】
一方、ステップＳ８０４の処理に移行した場合は、基本トランスポート経由で添付データを含むメッセージ全体を送信すると判断し、メッセージ全体の送信の指示を、前記７１１のメッセージ送信処理部に出す。
【００６６】
本実施形態では、高速トランスポートで転送するかを判断する例を載せているが、例えば、より信頼性の高いトランスポートで転送するなど、その他の特徴を持つトランスポートで転送するかを判断してもよい。
【００６７】
図９は、前記７１０のメッセージ再生成処理部の具体的な処理内容を、ＳＯＡＰメッセージを使用して説明した図である。９０１は、図３の前記３０１に示した添付データ付きＳＯＡＰメッセージの一般的な具体例と同一の例である。このＳＯＡＰメッセージの構成については、図３を参照して説明しているため、ここでは省略する。前記７１０のメッセージ再生成処理部では、メッセージと添付データを分離し、高速トランスポート処理モジュールを新たにメッセージに付加させることを行う。
【００６８】
９０２は、再生成した後のＳＯＡＰメッセージの例である。９０１において、添付データは、９０３、９０４、９０５に示す場所にバイナリデータとして埋め込まれている。メッセージ再生成処理部７１０がＳＯＡＰメッセージを再生成するときに、それらのバイナリデータが埋め込まれている場所を、９０６、９０７、９０８に示すように、それぞれ何も埋め込まれてない状態である「空」にする。そして、ＳＯＡＰメッセージの最後に、前記７０８の最適トランスポート判断処理で選択された高速トランスポート処理モジュールを付加する。
【００６９】
具体的には、例えば９０９に示すように、添付データを参照するために使用する参照情報であるＣｏｎｔｅｎｔ−ｉｄの値を「ｔｒａｎｓｐｏｒｔ」にする。そして、９１０に示すように、高速トランスポート処理モジュールである例えばｏｐｔｉｍａｉｚｅ＿ｔｒａｎｓｐｏｒｔ．ｊａｒファイルのバイナリデータを埋め込む。前記７１５のメッセージ解析及びトランスポート解析処理部では、Ｃｏｎｔｅｎｔ−ｉｄがｔｒａｎｓｐｏｒｔである添付データが付加されているかを確認することで、高速トランスポート処理モジュールが付加されていると解釈できる。
【００７０】
以上のようにして、メッセージ再生成処理部７１０はＳＯＡＰメッセージを再生成する。以上のように処理を行うことで、ＳＯＡＰメッセージと添付データを別々のトランスポートで転送することが可能となる。
【００７１】
本実施形態では、ＳＯＡＰメッセージと添付データを別々のトランスポートで転送する例を示したが、例えば、添付データのサイズに応じて、添付データごとに転送時に使用するトランスポートを選択できるようにしてもよい。つまり、添付データのサイズが閾値より小さければ、その添付データはメッセージに含めて送ってしまう。そして、添付データの閾値よりサイズが大きければ、その添付データはメッセージを転送するトランスポートと別のトランスポートで転送するようにしてもよい。
【００７２】
なお、本発明は、以下のような形態でも実現される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは情報処理装置に供給する。そして、そのシステムあるいは情報処理装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出して実行する。
【００７３】
図１０に前述した実施例の機能を実現するソフトウェアを実行する情報処理装置のハードウェア構成の一例を示す。図１０に示されるように、情報処理装置は、ハードウェア構成として、以下の構成要素を含む。すなわち、入力装置１００１と、表示装置１００２と、記録媒体ドライブ装置１００３と、ＲＯＭ１００５と、ＲＡＭ１００６と、ＣＰＵまたはＭＰＵ１００７とを含む。さらには、インターフェース装置１００８と、ＨＤ（ハードディスク）１００９とを含む。入力装置１００１は、情報処理装置の操作者（オペレータ）が操作するキーボード及びマウスなどで構成され、情報処理装置に各種操作情報などを入力するのに用いられる。表示装置１００２は、情報処理装置の操作者が利用するディスプレイなどで構成される。インターフェース装置１００８は、情報処理装置をネットワークなどに接続するインターフェースである。
【００７４】
前述した処理のフローなどに係るプログラムは、例えばＣＤ−ＲＯＭなどの記憶媒体１００４によって情報処理装置に提供されるか、ネットワークなどを通じてダウンロードされる。記憶媒体１００４は、記録媒体ドライブ装置１００３にセットされ、プログラムが記憶媒体１００４から記録媒体ドライブ装置１００３を介してＨＤ１００９にインストールされる。ＲＯＭ１００５は情報処理装置の電源投入時に最初に読み込まれるプログラムなどを格納する。ＲＡＭ１００６は、情報処理装置のメインメモリである。ＣＰＵ１００７は、ＨＤ１００９よりプログラムを読み出して、ＲＡＭ１００６に格納し、プログラムを実行することで、前述の受信手順、送信手順などの処理内容を実現したりする。
【００７５】
図１、図６の処理は、ＨＤ１００９に記憶されたプログラムの流れを示す。また、図２の各処理部は、ＣＰＵ１００７が、ＨＤ１００９よりプログラムを読み出して、実行することにより実現されるソフトウェアモジュールである。記憶領域２０６は、ＲＡＭ１００６内に設けられる。図７も同様である。図４、図５、図８は、ＨＤ１００９に記憶されたプログラムの一部を示す。
【００７６】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７７】
２０１  クライアント
２０２  プロバイダ
【図１】
2011018114.tif 000003
【図２】
2011018114.tif 000004
【図３】
2011018114.tif 000005
【図４】
2011018114.tif 000006
【図５】
2011018114.tif 000007
【図６】
2011018114.tif 000008
【図７】
2011018114.tif 000009
【図８】
2011018114.tif 000010
【図９】
2011018114.tif 000011
【図１０】
2011018114.tif 000012