説明

通信装置、中継装置及び当該装置におけるメッセージ送受信方法

【課題】 アプリケーションの開発者は、スタブを生成するためにそれぞれの添付方式に対応したインターフェース定義を記述し、それぞれの添付方式に応じたスタブを生成するという非効率な作業を行なう必要があった。
【解決手段】 コンテンツデータを添付したメッセージの送信時、WSDLのメッセージ形式で前記コンテンツデータの添付方式に対応するデータ型を指定し、そのデータ型に含まれる複数の添付方式の内、そのコンテンツデータの添付方式を指定するデータ型を、そのメッセージ内のコンテンツデータに対応するパラメータの属性としてメッセージに追加し(S502)、コンテンツデータを添付方式に従ってメッセージに添付する(S503)。そして、メッセージの本文と、添付された添付部分とを合成して送信する(S505)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネットなどのネットワークを介してテキスト形式の構造化されたメッセージを送受信する通信装置、中継装置及び当該装置におけるメッセージ送受信方法に関する。
【背景技術】
【0002】
近年、インターネットの普及により、コンピュータやデジタル機器から、ネットワーク上のWebサービスを利用することが多くなってきている。Webサービスとは、ネットワーク上でオープンな仕様で公開されるソフトウェア部品のことである。一般に、コンピュータ、デジタル機器とWebサービス間で送受信されるメッセージは、インターネット技術の標準化団体であるW3C(World Wide Web Consortium)で仕様が策定されているSOAP等のXMLプロトコルが使用されることが多い。ここでXMLプロトコルとは、W3Cで仕様が規定されているマークアップ言語であるXMLを使って通信内容を記述する通信プロトコルのことである。
【0003】
XMLは、構造化データをテキスト形式で記述する言語である。そのため、XMLプロトコルの仕様だけを使ってXML形式のメッセージを送受信する場合に、XML形式のメッセージからリンク参照される画像ファイル等のバイナリ形式のコンテンツデータをバイナリ形式のまま送信することができない。これを解決するために、標準化団体であるW3Cでは、SOAP自体の仕様の他に、SWA(SOAP Messages with Attachments),MTOM(SOAP Message Transmission Optimization Mechanism)など、SOAPで送受信するメッセージに画像などのバイナリ形式のコンテンツデータを添付する際の仕様を複数規定している。また、マイクロソフト社やIBMにおいても、かつて独自の添付方式であるWSA(WS-Attachments)を、標準化団体であるIETFのドラフト仕様として提出していた。
【0004】
このように、XMLプロトコルで送受信するメッセージにファイルを添付するための仕様が現時点では複数存在するため、アプリケーションがコンテンツデータをメッセージに添付する場合には、送信側、受信側のアプリケーションプログラムが予めどの添付方式を使用すればよいかを知っておく必要がある。
【0005】
Webサービス間の相互接続性の向上を目的とする標準化団体であるWS−Iは、Attachment Profile 1.0という仕様で、添付方式としてW3CのSWA(SOAP Messages with Attachments)を用いた例を記述している。ここでは、Webサービス間のインターフェース定義言語(WSDL:Web Service Definition Language)で記述されたインターフェース定義文書において、メッセージを構成するパラメータのどれがSWA方式で添付したコンテンツデータを参照しているのかを、swaRefというパラメータのデータ型で表現する方法を提案している。これにより、そのインターフェース定義文書を参照して、送信側と受信側のアプリケーションを開発し、そのアプリケーションを用いてSWA方式を用いたメッセージを正しく送受信することができる。尚、XMLプロトコルを使ってメッセージを交換する送信側及び受信側のアプリケーションは、一般に直接インターフェース記述を参照するのではなく、アプリケーション開発ツールによってインターフェース記述からスタブと呼ばれるメッセージ解釈のためのソフトウェア部品を生成し、それらをアプリケーションプログラムから利用することによってインターフェース定義に従ったメッセージを生成し、それを解釈することが多い。WSDLを用いた先行技術として、以下の特許文献1が存在する。
【特許文献1】特開2004−341734号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述のAttachment Profile 1.0仕様は、SWAという添付方式を採用した際のインターフェース定義の仕方を記述している。これによって、アプリケーション開発ツールは、SWA方式に対応している送信側及び受信側のアプリケーション用のスタブを生成することができる。しかしながら、受信側がSWA以外の添付方式を使用していたり、受信側が複数の添付方式を受け付け可能であったりする場合には、上記のインターフェース定義の方法では統一的に記述することができなかった。従って、アプリケーションの開発者は、スタブを生成するためにそれぞれの添付方式に対応したインターフェース定義文書を参照し、それぞれの添付方式に応じたスタブを生成するという非効率な処理を行なう必要があった。そして、送信側装置および受信側装置のそれぞれのメモリに各種類の添付方式に対応したインターフェース記述文書を格納しなければならず、メモリ容量の点からも効率がよくなかった。
【0007】
また上述のAttachment Profile 1.0仕様では、バイナリ形式のコンテンツデータを添付してメッセージを送受信することを、そのインターフェース定義内のメッセージ形式の定義で論理的に記述していない。上述のAttachment Profile 1.0仕様では、具体的にSWAという添付方式に特化したメッセージ形式として記述する必要があった。そのため、Webサービスのバージョンアップ等、コンテンツデータの添付方式を新しい方式に対応させる必要があるときに、本来プロトコルによらない論理的なメッセージ形式の記述を、新しい添付方式に沿った記述に大幅に書き換える必要がある。
【0008】
本発明は、上記従来技術の欠点を解決することにある。
【0009】
また本願発明の特徴は、コンテンツデータの添付方式を、複数の添付方式の中から選択して指定できる通信装置、中継装置及び当該装置におけるメッセージ送受信方法を提供することにある。
【課題を解決するための手段】
【0010】
上記特徴は、独立クレームに記載の特徴の組み合わせにより達成され、従属項は発明の単なる有利な具体例を規定するものである。
【0011】
本発明の一態様に係る通信装置は以下のような構成を備える。即ち、
ネットワークを介して接続された通信装置との間で送受信するメッセージとして、バイナリ形式のコンテンツデータを添付したテキスト形式の構造化文書を生成する通信装置であって、
送信側と受信側の通信装置間のウェブサービスのインターフェース定義であって、前記構造化文書に添付可能なコンテンツデータの添付方式を示す複数種類のデータ型を示す抽象データ型の記述を有するインターフェース定義を記憶する記憶手段と、
前記インターフェース定義に記述されたデータ型に対応する添付方式のうち、前記通信装置が対応可能な添付方式でバイナリ形式のコンテンツデータを添付するとともに、バイナリ形式のコンテンツデータを添付した添付方式を示すデータ型を示すメッセージを生成するメッセージ生成手段と、
前記バイナリ形式のコンテンツデータが添付されたメッセージを送信する送信手段と、を有することを特徴とする。
【0012】
本発明の一態様に係る通信装置は以下のような構成を備える。即ち、
ネットワークを介して接続された通信装置との間で送受信するメッセージとして、バイナリ形式のコンテンツデータを添付したテキスト形式の構造化文書を受信する通信装置であって、
送信側と受信側の通信装置間のウェブサービスのインターフェース定義であって、前記構造化文書に添付可能なコンテンツデータの添付方式を示す複数種類のデータ型を示す抽象データ型の記述を有するインターフェース定義を記憶する記憶手段と、
前記記憶手段に記憶されたインターフェース定義に記述されたデータ型が受信したメッセージに記述されているかどうかを判別する判別手段と、
前記判別手段によって前記記憶手段に記憶されたインターフェース定義に記述されたデータ型が前記受信したメッセージに記述されていると判別された場合、前記変別されたデータ型に対応する添付方式に従って、前記添付されているバイナリ形式のコンテンツデータを抽出する抽出手段と、
前記抽出手段により抽出した前記バイナリ形式のコンテンツデータのパス名を設定してメモリに記憶する記憶制御手段と、
を有することを特徴とする。
【0013】
尚、この発明の概要は、必要な特徴を全て列挙しているものではない。また、これら特徴群のサブコンビネーションも発明になり得る。
【発明の効果】
【0014】
本発明によれば、コンテンツデータの添付方式を、複数の添付方式の中から選択して指定できるという効果がある。
【発明を実施するための最良の形態】
【0015】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0016】
[実施の形態1]
図1は、本発明の実施の形態1に係る通信システムの構成例を示す図である。
【0017】
ネットワーク140には、メッセージ送信側装置(以下、送信装置)100とメッセージ受信側装置120(以下、受信装置)が接続されている。送信装置100と受信装置120はネットワーク140を経由して、XMLプロトコルの1つであるSOAPでメッセージを送受信する。ここで、一般的な送信装置100、受信装置120として、パーソナルコンピュータ、サーバコンピュータ、デジタル機器等が考えられる。尚、この実施の形態では、送信装置、受信装置はそれぞれ1つずつしか説明されていないが、それぞれ複数存在しても構わない。
【0018】
送信装置100、受信装置120には、メッセージに添付するテキストデータ,画像データなどのバイナリ形式のコンテンツデータを保存するための外部記憶装置110,130がそれぞれ接続されている。本実施の形態では、コンテンツデータはファイルとして説明するが、メモリ上に展開されたデータであってもよいし、ネットワークを経由したWebサーバ、ストレージサーバ上にあってもよい。なお、外部記憶装置110,130の代わりとして、送信装置100、受信装置120にメモリを内蔵してもよい。なお、本実施の形態で説明する「スタブ」とは、送受信するメッセージを解釈し、送受信装置アプリケーションにデータを引き渡すプログラムを指す。
【0019】
次に通信装置である送信装置100の機能構成を説明する。
【0020】
送信装置100は、ネットワーク140を経由し、XML形式のアプリケーションデータ及びそこからリンクして参照されているバイナリ形式のコンテンツデータを格納するファイルの送信要求を行なう送信側アプリケーション101を有する。さらに、送信装置100は、送信側アプリケーション101からの要求により、アプリケーションデータから、マルチパートMIMEあるいはDIMEなどマルチパート形式の送信メッセージを生成する送信側スタブ102を有する。さらに、送信装置100は、送信側スタブ102から呼び出され、アプリケーションデータ内の記述を検索し、添付が必要なファイルを読み込む添付ファイル読み込み部103を有する。さらに、送信装置100は、送信側スタブ102で作成したメッセージをネットワーク140経由で受信装置120に送信するメッセージ送信部104を有している。
【0021】
次に通信装置である受信装置120の機能構成を説明する。
【0022】
受信装置120は、ネットワーク140を経由し、送信装置100から受信したマルチパートMIME,DIME等のマルチパート形式のメッセージを受信するメッセージ受信部124を有する。また、受信装置120は、メッセージ受信部124が受信したメッセージを解析して複数のパートに分解し、コンテンツデータのパートを添付ファイル書き出し部123により外部記憶装置130に保存する処理を行なう受信側スタブ122を有する。また、受信装置120は、この受信側スタブ122によってメッセージから取り出されたアプリケーションデータを渡す先である受信側アプリケーション121を有している。尚、図1及び以下に示す図面において、各機能を実行する部は、本実施の形態ではソフトウェアにより実現されているが、これら各部は専用のLSI等を採用したハードウェアにより構成されていても良い。
【0023】
なお、説明の簡略化のため上記のとおり送信装置100および受信装置120を分けて説明したが、実際は送信装置100,受信装置120はそれぞれ受信装置100,送信装置120を兼用することになる。
【0024】
次に図2を使用して、本実施の形態に係るアプリケーション開発装置の構成例を説明する。このアプリケーション開発装置は、前述の送信装置100や受信装置120で実行されるアプリケーションを開発するための装置である。なお、送信装置100および受信装置120がこのアプリケーション開発装置の機能を兼用してもよい。この場合、インターフェース定義221は外部記憶装置100,130に記憶される。
【0025】
図2は、本実施の形態1に係るアプリケーション開発装置210の機能構成を説明する機能ブロック図である。尚、図2においても、各機能を実行する部は、本実施の形態ではソフトウェアにより実現されているが、これら各部は専用のLSI等を採用したハードウェアにより構成されていても良い。
【0026】
このアプリケーション開発装置210は、送信装置100と受信装置120間で送受信するメッセージの構成の定義を記述した文書であるインターフェース定義221を保存する外部記憶装置220と接続されている。尚、この実施の形態では、インターフェース定義221はファイルとして説明するが、メモリ上に展開されたデータであってもよい。また、インターフェース定義221は、ネットワークを経由したWebサーバ、ストレージサーバ上にあってもよい。
【0027】
次にアプリケーション開発装置210の機能構成を説明する。インターフェース定義読み込み部212は、インターフェース定義を記述した文書からスタブと呼ばれるメッセージ解釈のためのソフトウェアを生成するスタブ生成部213からの要求により、外部記憶装置220に保存されているインターフェース定義221を読み込む。データ型定義解析部214は、インターフェース定義読み込み部212により読み込んだインターフェース定義221のデータ型定義部からバイナリ添付方式を表す抽象データ型の定義を抽出する。そして、データ型定義解析部214は、この抽象データ型がどのデータ型の結合として派生されているかを解析する。添付方式判断部211は、データ型定義解析部214で解析した結合されているデータ型名と、データ型・添付方式対応テーブル215の内容とから、送信側及び受信側スタブ102,122で使用するバイナリ形式のコンテンツデータの添付方式を決定する。
【0028】
次に図3、図7及び図9を使用して、構造化文書生成装置としての本実施の形態に係るアプリケーション開発装置210における送信側スタブ102の生成処理を説明する。
【0029】
図3は、本発明の実施の形態1に係るアプリケーション開発装置210で送信側スタブ102を生成する際の制御手順を説明するフローチャートである。
【0030】
スタブ生成部213が、アプリケーション開発者などの要求により、送信側スタブ102を生成する指示を検出すると、まずステップS301で、インターフェース定義読み込み部212により外部記憶装置220からインターフェース定義221を読み込む。
【0031】
図7は、WSDLで記述されたウェブサービスのインターフェース定義の一例を示す図である。
【0032】
次にステップS302で、インターフェース定義読み込み部212は、インターフェース定義221内のデータ型定義部700(図7)を参照し、添付するコンテンツデータの仕様を表す抽象データ型(図7の702で示す「binaryRef」型)が定義されているかどうか判断する。定義されていた場合はステップS303に進み、添付方式判断部211は、データ型定義部700の定義から、抽象データ型(binaryRef型)がどのようなデータ型を結合して派生しているのか抽出してデータ型名をリスト化する。尚、ステップS302で、添付先を示すデータ型が定義されていなかった場合、添付方式判断部211は、バイナリ形式のコンテンツデータを添付しないメッセージであると判断してステップS308にスキップする。
【0033】
図7の例では、記述707で示すように、binaryRef型は、SWA方式でコンテンツデータを参照するのに使用するデータ型(swaRef型)703、WSA方式でコンテンツデータを参照するのに使用するデータ型(wsaRef型)704、MTOM方式でコンテンツデータを参照するのに使用するデータ型(mtomRef型)705を結合した抽象型として記述されている。
【0034】
ステップS303で、添付方式判断部211は、添付方式に対応するデータ型のリストを作成する。図7の例では、SWA方式でコンテンツデータを参照するデータ型(swaRef型)703、WSA方式でコンテンツデータを参照するデータ型(wsaRef型)704、MTOM方式でコンテンツデータを参照するデータ型(mtomRef型)705がリストアップされる。次にステップS304で、データ型・添付方式対応テーブル215を参照して、ステップS303でリストアップされた各データ型に対応する添付方式を特定する。次にステップS305で、そのリストの最後のデータ型でないときはステップS306に進み、リストの前から順番にこの添付方式が送信装置100で対応しているかどうか判断する。ここで対応している場合はステップS307に進むが、対応していない場合はステップS304に戻る。
【0035】
図9は、本実施の形態に係るデータ型・添付方式対応テーブル215の一例を示す図である。
【0036】
この図9では、データ型の名前空間URI(図7の703〜705)に対して、そのデータ型名、添付方式が登録されている。データ型・添付方式対応テーブル215を参照することにより、データ添付方式を表すswaRef型、wsaRef型、mtomRef型はSWA方式、WSA方式、MTOM方式に相当すると判断される。
【0037】
尚、前述のステップS306で、送信装置100がその添付方式に対応しているか否かの判断基準は、スタブ生成部213に記憶された動作環境定義ファイルに、予め送信装置100が対応している添付方式に関する情報を記述しておく。送信装置100が対応している添付方式に関する情報は、送信装置100がバージョンアップによって新たな添付方式が対応可能となるたびに更新される。こうしてステップS306で、そのリストアップされた添付方式が送信装置100で対応している場合は、ステップS307に進み、添付方式判断部211は、生成する送信側スタブ102で採用する添付方式をその添付方式に決定する。尚、送信装置100が対応できる添付方式が複数存在する場合を考慮し、データ型定義部700でデータ型を記述する順序を、開発者が生成させたい優先度順に記述しておき、対応できる添付方式の中から最も先に記述されているデータ型に対応する添付方式に決定する形態も考えられる。この場合、各送信装置100におけるさらなる送信側スタブの統一化を図ることができる。
【0038】
次にステップS308で、スタブ生成部213は、インターフェース定義221のメッセージ構成定義部(図7の710)から、メッセージを構成する次のパラメータを抽出する。図7の例では、「PutImage」の「ImgaeRef」としてパラメータ「type=types:binaryRef」が指定されており、これによりこのパラメータによる添付ファイルの定義が可能であることがわかる。そしてステップS309で、パラメータが抽出できるとステップS310に進む。ステップS310において、そのパラメータのデータ型が添付先参照を表すデータ型であるかどうかを調べ、そうであれば(図7では702,707で定義されている)ステップS311に進む。ステップS311において、ステップS307で決定した添付方式に従って、マルチパート化された送信メッセージの1つのパートとしてバイナリ形式のコンテンツデータを添付するコードを生成するなど、その添付方式に従った送信用スタブ102を生成してステップS308に戻る。またステップS310で、パラメータのデータ型が添付先参照を表すデータ型でない場合は、ステップS312に進み、インターフェース定義221の他の定義情報を使って送信側スタブ102を生成してステップS308に戻る。
【0039】
またステップS305の処理で、送信装置100が対応できる添付方式が全くないと判断した場合は、ステップS313に進み、送信スタブ102の生成を中止する。またステップS309で、これ以上パラメータがなくなると、この処理を終了する。
【0040】
このようにして送信装置100の送信側スタブ102を生成することができる。
【0041】
次に図4及び図7を使用して、本実施の形態1に係るアプリケーション開発装置210における受信側スタブ122の生成処理の流れを説明する。
【0042】
図4は、本実施の形態1に係るアプリケーション開発装置210における受信側スタブ122の生成を説明するフローチャートである。
【0043】
スタブ生成部213が、アプリケーション開発者等の要求により、受信側スタブ122を生成する指示が検出されると、まずステップS401で、インターフェース定義読み込み部212を用いて外部記憶装置220からインターフェース定義221を読み込む。
【0044】
次にステップS402で、インターフェース定義読み込み部212は、インターフェース定義221のデータ型定義部700を参照し、添付先参照を表すデータ型(図7におけるbinaryRef型)が定義されているかどうか判断する。定義されていた場合はステップS403に進み、データ型定義部解析部214はデータ型定義部700の定義から、添付先参照を表す抽象データ型(binaryRef型)が、どのようなデータ型を結合しているのかデータ型名を抽出してリスト化する。そして、添付方式判断部211は、このリストを参照してデータ型・添付方式対応テーブル215を参照してそのデータ型名がどの添付方式に対応するのか判断する。
【0045】
図7の例では、binaryRef型702は、SWA方式でバイナリ形式のコンテンツデータを参照するのに使用するデータ型(swaRef型)703、WSA方式でバイナリ形式のコンテンツデータを参照するのに使用するデータ型(wsaRef型)704、MTOM方式でバイナリ形式のコンテンツデータを参照するのに使用するデータ型(mtomRef型)705を結合した型となっている。尚、ステップS402で、添付先参照を表すデータ型定義されていなかった場合は、バイナリ形式のコンテンツデータは添付しないメッセージであると判断してステップS403の処理を省略してステップS404に進む。
【0046】
次にステップS404で、スタブ生成部213は、インターフェース定義221のメッセージ構成定義部700からメッセージを構成するパラメータを抽出する。そしてステップS405で最後のパラメータでないときはステップS406に進み、そのパラメータのデータ型が添付先参照を表すデータであるかどうかを判定する。パラメータが添付先参照を表すデータ型である場合はステップS407に進む。ステップS407では、マルチパート化された受信メッセージの1つのパートに格納されたコンテンツデータを添付データとしてアプリケーションに渡すコードを生成するなど、その添付方式に従った受信側スタブ122を生成する処理を行ってステップS405に戻る。
【0047】
一方ステップS406で、パラメータが添付先参照を表すデータ型でない場合は、ステップS408に進み、インターフェース定義の他の定義情報を使って受信側スタブ122を生成してステップS405に戻る。
【0048】
尚、生成される受信側スタブ122は、インターフェース定義221で記述された全ての添付方式(SWA方式,WSA方式,MTOM方式)に従ったコードができるだけ含まれなければならない点が、前述の送信側スタブ102の生成の場合とは異なっている。すなわち、受信側スタブ122は、スタブ生成部213に記憶された動作環境定義ファイルに記述された受信装置120が対応する全ての添付方式に従ったコードが含まれることになる。
【0049】
次に図5及び図8を使用して、本実施の形態に係る送信装置100でどのようにメッセージが生成されて送信されるのかを示す処理の流れを説明する。
【0050】
図5は、本実施の形態1に係る送信装置100における処理を説明するフローチャートである。
【0051】
送信装置100の送信側アプリケーション101は、受信装置120にメッセージを送る際、まずステップS501で、送信側スタブ102に指定したメッセージを構成するパラメータ名とパラメータの値を通知する。特に、メッセージにバイナリファイルを添付する場合は、同時に送信側スタブ102に対して、添付するファイルのパス名と、その参照先を格納するパラメータ名を指定する(S502)。
【0052】
この送信要求を受け取った送信側スタブ102は、添付ファイル読み込み部103を使って、指定されたパス名をもつファイルを読み込んで、送信メッセージの添付部分を生成する。この送信側スタブ102によるメッセージ添付部分の生成時に指定された添付方式に従って送信メッセージを作成する。この際、添付したデータの参照先を格納するパラメータの属性として、添付方式に応じたデータ型を記述する(ステップS503)。
【0053】
図8は、こうして作成した送信メッセージの一例を示す図である。
【0054】
図8の例では、添付したバイナリ形式のコンテンツデータ(image0001@example.com)の参照先を格納するパラメータ(ImageRef)としてSWA添付方式において参照先を格納するためのデータ型を指定(xsi:type="types:swaRef)している(801)。
【0055】
このようにステップS503で、送信側スタブ102は、添付方式に従ってメッセージを生成した後ステップS504に進む。送信側スタブ102は、メッセージ送信部104に送信要求を行なう。この送信要求を受けたメッセージ送信部104は、ステップS505で、ネットワーク140を経由して受信装置120にメッセージを送信する。
【0056】
次に本実施の形態1に係る受信装置120でどのようにメッセージが受信され、解析されるのかを示す処理の流れを図6及び図8を用いて説明する。
【0057】
図6は、本実施の形態1に係る受信装置120における処理を説明するフローチャートである。
【0058】
まずステップS601において、受信装置120のメッセージ受信部124は、送信装置100から送信されたメッセージを受信すると、その受信したメッセージ内容を受信側スタブ122に通知する。次にステップS602で、受信側スタブ122は、その受け取ったメッセージの非添付部分からパラメータ(xsi:type="types:swaRef)を抽出する。次にステップS603で、抽出するパラメータが存在する場合は、ステップS604に進み、受信側スタブ122は、その抽出したパラメータに添付データの参照先を表すデータ型が属性として付加されているかを判定する。ここで属性として付加されているときはステップS605に進み、インターフェース定義221に記述されている添付方式か否かをみる。インターフェース定義221に記述されている添付方式であればステップS608に進む。ステップS608において、その指定されたデータ型に対応する添付方式(図8の例ではSWA方式)に従ってパラメータの値が指すメッセージの添付部分から、バイナリ形式のコンテンツデータとしての添付ファイル(図8の例では「image0001@example.com」)を抽出する。そしてステップS609で、添付ファイル書き出し部123を使って外部記憶装置130に保存する。この後ステップS610で、受信側スタブ122は、保存した後、パラメータの値として保存先パス名を設定してステップS602に戻る。
【0059】
図8は、この受信装置120が受信したメッセージの一例を示す図である。
【0060】
図8の例では、添付されたデータの参照先を格納するパラメータ(ImageRef)にSWA添付方式で参照先を格納するためのデータ型が属性として指定(xsi:type="types:swaRef)されている。これにより図9に示すデータ型・添付方式対応テーブル215から、テンプレート方式が「SWA方式」であることが分かる。
【0061】
一方ステップS604で、パラメータに添付するバイナリ形式のコンテンツデータの参照先を表すデータ型が属性として指定されていなかった場合は、ステップS611に進む。ステップS611において、受信側スタブ122は、パラメータの値をメッセージの非添付部分から抽出してステップS602に戻る。
【0062】
こうしてステップS603で、全てのパラメータとパラメータの値の抽出を行なうとステップS606に進み、受信側スタブ122は受信側アプリケーション121にそれらを渡す。
【0063】
またステップS605で、受信したメッセージにインターフェース定義221に記述されていた以外の添付データ参照用のデータ型が指定されていた場合はステップS607に進む。ステップS607において、受信側スタブ122は、不正なメッセージとしてエラーをアプリケーション121に通知する。例えば、図8の例のようにインターフェース定義で、swaRef、wsaRef、mtomRefのいずれかが定義されていた場合は正しいメッセージであるとして処理を行い、これら以外のデータ型が指定指定されているとエラーとなる。
【0064】
以上説明したように本実施の形態1によれば、1つのインターフェース定義を参照するだけで、Webサービスでやり取りするバイナリ形式のコンテンツデータの添付方式を指定することができる。
【0065】
また、このメッセージを受信した受信装置では、「xsi:type」で指定されたデータ型を参照して、どのコンテンツデータの添付方式を採用したメッセージであるかを識別して処理できる。
【0066】
[実施の形態2]
次に本発明の実施の形態2の構成を説明する。
【0067】
図10は、本発明の実施の形態2に係る通信システムの構成を示すブロック図である。尚、この実施の形態2に係るメッセージ送信側装置(以下、送信装置)1000とメッセージ受信側装置(以下、受信装置)1010の構成は、前述の実施の形態1の送信装置100,受信装置120と同様であるため、その説明を省略する。この実施の形態2では、ネットワーク1100に送信装置1000と受信装置1010が接続されており、これら装置の他に、メッセージ中継装置1020がネットワーク1010に接続されている。そして送信装置1000から送信されたメッセージが、メッセージ中継装置1020を経由して受信装置1010に送信される点が前述の実施の形態1と異なっている。
【0068】
このメッセージ中継装置1020は、データ添付方式が異なるメッセージを変換するためのメッセージ変換部1023が実装されている。これにより、メッセージ送信側装置1000、メッセージ受信側装置1010のそれぞれで対応しているデータ添付方式が異なっていた場合にも、このメッセージ中継装置1020を経由してメッセージを送信することにより、適切なデータ添付方式の変換を行なうことが可能となる。尚、この実施の形態2における、これ以後の説明では、送信装置1000、受信装置1010が1つずつネットワークに接続される場合を説明するが、それぞれ複数存在しても構わない。
【0069】
メッセージ中継装置1020のメッセージ受信部1021は、ネットワーク1100経由で送信装置1000から、例えば図8に示すようなバイナリ形式のコンテンツデータが添付されたメッセージを受信する。このメッセージ受信部1021は、受信したメッセージをメッセージ変換部1023に渡す。これによりメッセージ変換部1023は、その受け取ったメッセージに、そのメッセージの添付方法を表すデータ型(例えば図8における「xsi:type=types:swaRef」)が指定されているかを判別する。そして、メッセージ変換部1023は、指定されているとデータ型・添付方式対応テーブル1027を参照して、どの添付方式でメッセージが送られてきたかを判断する。
【0070】
本実施の形態2に係るデータ型・添付方式対応テーブル1027のデータ構成は、前述の図9に示すデータ構成と同じである。
【0071】
その後、メッセージ変換部1023は、データ型定義部解析部1024に対して、受信装置1010のインターフェース定義1028に記述されたデータ添付方式を表す抽象データ型が、どのような型を結合して派生されているのか問い合わせる。データ型定義部解析部1024は、受信装置1010に記憶された動作環境定義ファイルの記述から、データ添付方式を表す抽象データ型がどのようなデータ型から派生されているのかを検索する。そして、データ型定義部解析部1024は、問い合わせ結果としてメッセージ変換部1023に検索結果のデータ型一覧を返却する。
【0072】
この実施の形態2に係る受信装置1010のインターフェース定義1028は、前述の実施の形態1に係る図7と同じであるものとする。
【0073】
図7において、データ添付方式を表す抽象データ型は、binaryRef型である。binaryRef型は、swaRef型、wsaRef型、mtomRef型の結合による派生で定義されていることが記述されている。従って、データ型定義部解釈部1024は、メッセージ変換部1023にこれら3つのデータ型名を返却する。これら処理により、メッセージ変換部1023は、返却されたデータ型名と、データ型添付方式対応テーブル1027から、受信装置1010が対応している添付方式の一覧を得ることができる。
【0074】
そして図9に示すデータ型・添付方式対応テーブル1027を参照すると、データ型が「swaRef型」、「wsaRef型」、「mtomRef型」は、それぞれデータ添付方式「SwA方式」、「WSA方式」、「MTOM方式」に相当すると判断できる。
【0075】
従って、メッセージ変換部1023は、送信装置1000がどのデータ添付方式でメッセージを送ってきたか、及び、受信装置1010がどのデータ添付方式のメッセージに対応しているのかを判断できる。このためメッセージ変換部1023は、データ添付方式変換テーブル1026から、どの変換メソッドを使えば、受信したメッセージを受信装置1010が対応している添付形式に適切に変換できるかを判別できる。
【0076】
図11は、本実施の形態2に係るデータ添付方式変換テーブル1026のデータ例を示す図である。
【0077】
この例では、受信データ添付方式がSWA方式で、送信データ添付方式がMTOM方式の場合、メッセージ変換に使用するメソッド名は「SwAtoMTOM()」であることが分かる。
【0078】
以上の処理により、メッセージ変換部1023は、適切なメソッドを選択して、送信装置1000から受け取った添付方式の異なるメッセージを、受信装置1010が対応している適切な添付方式のメッセージに変換して転送することができる。
【0079】
尚、添付方式の組み合わせによっては、受信装置1010が対応する添付方式に変換するためのメソッドが存在しない場合がある。その場合は、メッセージ中継装置1020が送信装置1000にメッセージ変換の失敗メッセージを返却するなど適切なエラー処理を行なう。
【0080】
以上説明したように本実施の形態によれば、ネットワークで接続された複数の送受信装置において、1つのインターフェース定義を参照するだけで複数の添付方式を使用するウェブサービスを利用することができる。これにより、それぞれの添付方式に合わせた個別のインターフェース定義を参照することなく送信及び受信側スタブを生成することが可能となり、アプリケーションの開発効率が向上する。
【0081】
また、アプリケーションが新しい添付方式に対応した場合などに発生するインターフェース定義自身の更新作業も効率良く行なうことができる。
【0082】
なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0083】
プログラムを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0084】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0085】
またコンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0086】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0087】
図12は、上述した送信装置100,1000、受信装置120,1010、中継装置1020,アプリケーション開発装置210のハードウェア構成の一例を示すブロック図である。
【0088】
図12において、CPU1201は、装置各部を統括制御するために、ROM1203から所定のプログラムを読み出して実行し、各種処理を実現する。RAM1202は、プログラムによる処理に必要な作業領域を提供する。ROM1203は、本実施の形態を実行するプログラムおよび参照対象となるウェブサービスのインターフェース定義の情報を格納するためのものである。入力部204は、キーボード,マウスなどによって構成される。2次記憶部1205は、装置に内蔵されるハードディスク,或は不揮発性の着脱可能なメモリカードとデータの読出しあるいは書き込みを行う記憶制御部などによって構成される。2次記憶部1205には、各種情報だけでなく、ウェブサービスのインターフェース定義を参照することによって生成されるスタブが記憶される。また、表示部1206は、各種データを表示する。I/F(インターフェース)1207は、インターネットなどを介して外部装置とメッセージを送受信する。
【図面の簡単な説明】
【0089】
【図1】本発明の実施の形態1に係る通信システムの構成例を示す図である。
【図2】本実施の形態1に係るアプリケーション開発装置の機能構成を説明する機能ブロック図である。
【図3】本発明の実施の形態1に係るアプリケーション開発装置で送信側スタブを生成する際の制御手順を説明するフローチャートである。
【図4】本実施の形態1に係るアプリケーション開発装置における受信側スタブの生成を説明するフローチャートである。
【図5】本実施の形態1に係る送信装置における処理を説明するフローチャートである。
【図6】本実施の形態1に係る受信装置における処理を説明するフローチャートである。
【図7】WSDLで記述されたインターフェース定義の一例を説明する図である。
【図8】本発明の実施の形態1,2において送信装置から受信装置に送信されるメッセージ形式の一例を示す図である。
【図9】本実施の形態1,2に係るデータ型・添付方式対応テーブルの一例を示す図である。
【図10】本発明の実施の形態2に係る通信システムの構成を示すブロック図である。
【図11】本実施の形態2に係るデータ添付方式変換テーブルのデータ例を示す図である。
【図12】本実施の形態に係る各装置のハードウェア構成の一例を示すブロック図である。

【特許請求の範囲】
【請求項1】
ネットワークを介して接続された通信装置との間で送受信するメッセージとして、バイナリ形式のコンテンツデータを添付したテキスト形式の構造化文書を生成する通信装置であって、
送信側と受信側の通信装置間のウェブサービスのインターフェース定義であって、前記構造化文書に添付可能なコンテンツデータの添付方式を示す複数種類のデータ型を示す抽象データ型の記述を有するインターフェース定義を記憶する記憶手段と、
前記インターフェース定義に記述されたデータ型に対応する添付方式のうち、前記通信装置が対応可能な添付方式でバイナリ形式のコンテンツデータを添付するとともに、バイナリ形式のコンテンツデータを添付した添付方式を示すデータ型を示すメッセージを生成するメッセージ生成手段と、
前記バイナリ形式のコンテンツデータが添付されたメッセージを送信する送信手段と、を有することを特徴とする通信装置。
【請求項2】
ネットワークを介して接続された通信装置との間で送受信するメッセージとして、バイナリ形式のコンテンツデータを添付したテキスト形式の構造化文書を受信する通信装置であって、
送信側と受信側の通信装置間のウェブサービスのインターフェース定義であって、前記構造化文書に添付可能なコンテンツデータの添付方式を示す複数種類のデータ型を示す抽象データ型の記述を有するインターフェース定義を記憶する記憶手段と、
前記記憶手段に記憶されたインターフェース定義に記述されたデータ型が受信したメッセージに記述されているかどうかを判別する判別手段と、
前記判別手段によって前記記憶手段に記憶されたインターフェース定義に記述されたデータ型が前記受信したメッセージに記述されていると判別された場合、前記変別されたデータ型に対応する添付方式に従って、前記添付されているバイナリ形式のコンテンツデータを抽出する抽出手段と、
前記抽出手段により抽出した前記バイナリ形式のコンテンツデータのパス名を設定してメモリに記憶する記憶制御手段と、
を有することを特徴とする通信装置。
【請求項3】
前記メッセージ生成手段は、前記通信装置が前記インターフェースに記述されている添付方式のうち複数の添付方式に対応可能な場合、前記対応可能な添付方式のうち、前記インターフェース内で最も先に記述されているデータ型に対応する添付方式で、前記バイナリ形式のコンテンツデータを添付することを特徴とする請求項1に記載の通信装置。
【請求項4】
前記添付方式は、少なくともSWA方式、WSA方式、MTOM方式のいずれかを含むことを特徴とする請求項1乃至3のいずれか1項に記載の通信装置。
【請求項5】
送信側通信装置と受信側通信装置との間に介在し、ネットワークを介して接続された通信装置との間で送受信するメッセージとして、コンテンツデータを添付したテキスト形式の構造化文書の送受信を中継する中継装置であって、
前記送信側通信装置が対応可能な添付方式でバイナリ形式のコンテンツデータを添付するとともに、前記バイナリ形式のコンテンツデータを添付した添付方式を示すデータ型を示すメッセージを受信する受信手段と、
前記受信側通信装置が対応可能な添付形式を問い合わせる問い合わせ手段と、
前記受信手段によって受信されたデータ型に対応する添付方式と、前記問い合わせ手段によって問い合わせ結果から得られた受信側通信装置が対応可能な添付形式とに基づいて、前記バイナリ形式のコンテンツデータの添付形式を変換するためのメソッドを選択する選択手段と、
前記選択手段によって選択されたメソッドを用いて前記バイナリ形式のコンテンツデータの添付形式が変換されたメッセージを送信する送信手段とを有することを特徴とする中継装置。
【請求項6】
前記添付方式は、少なくともSWA方式、WSA方式、MTOM方式のいずれかを含むことを特徴とする請求項5に記載の中継装置。
【請求項7】
ネットワークを介して接続された通信装置との間で送受信するメッセージとして、バイナリ形式のコンテンツデータを添付したテキスト形式の構造化文書を生成する通信装置のメッセージ送信方法であって、
送信側と受信側の通信装置間のウェブサービスのインターフェース定義であって、前記構造化文書に添付可能なコンテンツデータの添付方式を示す複数種類のデータ型を示す抽象データ型の記述を有するインターフェース定義を参照する参照ステップと、
前記インターフェース定義に記述されたデータ型に対応する添付方式のうち、前記通信装置が対応可能な添付方式でバイナリ形式のコンテンツデータを添付するとともに、バイナリ形式のコンテンツデータを添付した添付方式を示すデータ型を示すメッセージを生成するメッセージ生成ステップと、
前記バイナリ形式のコンテンツデータが添付されたメッセージを送信する送信ステップと、
を有することを特徴とする通信装置のメッセージ送信方法。
【請求項8】
ネットワークを介して接続された通信装置との間で送受信するメッセージとして、バイナリ形式のコンテンツデータを添付したテキスト形式の構造化文書を受信する通信装置のメッセージ受信方法であって、
送信側と受信側の通信装置間のウェブサービスのインターフェース定義であって、前記構造化文書に添付可能なコンテンツデータの添付方式を示す複数種類のデータ型を示す抽象データ型の記述を有するインターフェース定義を参照する参照ステップと、
前記インターフェース定義に記述されたデータ型が受信したメッセージに記述されているかどうかを判別する判別ステップと、
前記判別ステップにおいて前記インターフェース定義に記述されたデータ型が前記受信したメッセージに記述されていると判別された場合、前記変別されたデータ型に対応する添付方式に従って、前記添付されているバイナリ形式のコンテンツデータを抽出する抽出ステップと、
前記抽出ステップにおいて抽出した前記バイナリ形式のコンテンツデータのパス名を設定してメモリに記憶する記憶制御ステップと、
を有することを特徴とする通信装置のメッセージ受信方法。
【請求項9】
前記メッセージ生成ステップにおいて、前記通信装置が前記インターフェースに記述されている添付方式のうち複数の添付方式に対応可能な場合、前記対応可能な添付方式のうち、前記インターフェース内で最も先に記述されているデータ型に対応する添付方式で、前記バイナリ形式のコンテンツデータが添付されることを特徴とする請求項7に記載の通信装置のメッセージ送信方法。
【請求項10】
前記添付方式は、少なくともSWA方式、WSA方式、MTOM方式のいずれかを含むことを特徴とする請求項7又は9に記載の通信装置のメッセージ送信方法。
【請求項11】
前記添付方式は、少なくともSWA方式、WSA方式、MTOM方式のいずれかを含むことを特徴とする請求項8に記載の通信装置のメッセージ受信方法。
【請求項12】
送信側通信装置と受信側通信装置との間に介在し、ネットワークを介して接続された通信装置との間で送受信するメッセージとして、コンテンツデータを添付したテキスト形式の構造化文書の送受信を中継する中継装置の中継方法であって、
前記送信側通信装置が対応可能な添付方式でバイナリ形式のコンテンツデータを添付するとともに、前記バイナリ形式のコンテンツデータを添付した添付方式を示すデータ型を示すメッセージを受信する受信ステップと、
前記受信側通信装置が対応可能な添付形式を問い合わせる問い合わせステップと、
前記受信ステップにおいて受信されたデータ型に対応する添付方式と、前記問い合わせステップにおいて問い合わせ結果から得られた受信側通信装置が対応可能な添付形式とに基づいて、前記バイナリ形式のコンテンツデータの添付形式を変換するためのメソッドを選択する選択ステップと、
前記選択ステップにおいて選択されたメソッドを用いて前記バイナリ形式のコンテンツデータの添付形式が変換されたメッセージを前記受信側装置に送信する送信ステップとを有することを特徴とする中継装置の中継方法。
【請求項13】
前記添付方式は、少なくともSWA方式、WSA方式、MTOM方式のいずれかを含むことを特徴とする請求項12に記載の中継装置の中継方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2007−48215(P2007−48215A)
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願番号】特願2005−234697(P2005−234697)
【出願日】平成17年8月12日(2005.8.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】