説明

通信装置及びその制御方法

【課題】 ネットワークを経由しないで構築されたシステムやプログラム及び装置と、ネットワークを経由して構築されたシステムやプログラム及び装置とを同居させると、利用するサービスをネットワークを利用するかしないかに応じて制御する必要が生じる。
【解決手段】 サービスのインターフェースを記述するWSDL記述を管理する管理部102と、WSDL管理部102で管理されているWSDL記述部101から、所望するサービスのWSDL記述を取得し、その取得したWSDL記述に応じて、SOAP通信或はローカルモジュール呼び出しのいずれかを選択して実行するWSDL認識部103とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを利用した分散環境におけるシステム間のメッセージ通信に適用して有効な技術に関する。
【背景技術】
【0002】
ネットワークに接続されたコンピュータプログラム同士の通信でSOAPを利用したウエブ(Web)サービスの技術が注目を浴びている(例えば、特許文献1参照)。SOAPを使ったサービスでの通信は一般的にネットワーク上に分散した環境で利用される。あるネットワークに配置されたウエブサービスを利用するクライアントが、他のネットワーク上に配置されたノードで実行されるウエブサービスを利用する場合を考える。この場合、クライアントが、そのサービスに対してネットワーク経由でリクエストを送信し、そのサービスがネットワークを経由して返答をクライアントに戻す。しかし、サービスを実行するノードはネットワーク上だけではなく、クライアントを実行しているノードの場合もありうる。その場合であっても前述のように、クライアントがネットワーク経由で自身のノードのサービスを利用することになる。その際、SOAPメッセージを作成してネットワークに送信し、その返答をネットワークを経由して受信し、受信したSOAPメッセージを解釈するという手順を、自身が接続されているノードのサービスに対しても行うことになる。このように同じノードで実行するアプリケーションプログラムであるにも拘わらず、ネットワークを利用することによるオーバーヘッドが生じる。
【0003】
そこでサービスが実行するアプリケーションプログラムを、利用する側のクライアントアプリケーションが直接実行する方法がある。しかしこの場合クライアントは、サービスのノードがネットワーク上に分離されてしまった場合には、アプリケーションプログラムの再作成を強いられることになる。また、サービス側のアプリケーションプログラムも、ネットワークで呼ばれるインターフェイスと、自身のノードから呼ばれるインターフェイスの両方を用意する必要が生じ、その作成が難しくなる。またネットワーク上のサービスとして構築したシステム、プログラム及び装置を、自身のノードで実行するクライアントアプリケーション用に移行するのも容易ではない。
【0004】
また自身のノードから呼ばれるインターフェイスを用意したとしても、ネットワークから利用されるサービスと自身のノードからのサービスを別々に管理しなくてはいけないため、サービスの特定や管理も複雑となる。
【特許文献1】特開2005−174120号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記したように、ネットワーク上で利用されることを想定した一般的なウエブサービスアプリケーションプログラムを、自身のノードのサービスに利用すると、ネットワークを経由するためオーバーヘッドがかかり処理時間に無駄が生じる。またネットワーク上での利用を前提として構築したシステム、プログラム及び装置を、ネットワークを経由せずに自身のノードで利用するにはその移行が容易ではない。本来、クライアントアプリケーション作成者は、ユーザインターフェイスに対する処理のようなクライアントアプリケーションで行うべき処理に集中している。従って、あるサービスをネットワーク経由で利用するか、自身のノードで利用するのかを意識したプログラムの作成は、余分な負担をプログラム作成者に与えることになる。また、ネットワークを経由しないで構築されたシステムやプログラム及び装置と、ネットワークを経由して構築されたシステムやプログラム及び装置とを同居させると、利用するサービスをネットワークを利用するかしないかに応じて制御する必要が生じる。これによりプログラムの開発効率を著しく低下させることになる。
【0006】
本発明の目的は、上記従来技術の欠点を解決することにある。
【0007】
本願発明の特徴は、ネットワーク経由を前提としたサービスを利用するのか、自身のノードで実行されるサービスを利用するのかを意識することなくサービスを利用できる通信装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために本発明の一態様に係る通信装置は以下のような構成を備える。即ち、
サービスのインターフェースを記述するWSDL記述を管理する管理手段と、
前記管理手段で管理されているWSDL記述から、所望するサービスのWSDL記述を取得する取得手段と、
前記取得手段で取得したWSDL記述に応じて、SOAP通信或はローカルモジュール呼び出しのいずれかを選択する選択手段と、
を有することを特徴とする。
【0009】
上記目的を達成するために本発明の一態様に係る通信装置の制御方法は以下のような工程を備える。即ち、
ネットワークを利用した分散環境におけるシステム間でメッセージを通信する通信装置における通信制御方法であって、
サービスのインターフェースを記述するWSDL記述を管理する管理工程と、
前記管理工程で管理されているWSDL記述から、所望するサービスのWSDL記述を取得する取得工程と、
前記取得工程で取得したWSDL記述に応じて、SOAP通信或はローカルモジュール呼び出しのいずれかを選択する選択工程と、
を有することを特徴とする。
【発明の効果】
【0010】
本願発明によれば、ネットワーク経由を前提としたサービスを利用するのか、自身のノードで実行されるサービスを利用するのかを意識することなくサービスを利用できるという効果がある。
【発明を実施するための最良の形態】
【0011】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。以下の実施の形態で説明する方法、システム又は装置は、本発明はコンピュータで使用可能なプログラムとしても実施できる。従って本発明は、ハードウェアとしての実施形態、ソフトウェアとしての実施形態、又はソフトウェアとハードウェアとの組み合わせの実施形態をとることができる。プログラムは、ハードディスク、CD−ROM、光記憶装置、磁気記憶装置、又はフラッシュメモリ等任意のコンピュータ可読媒体に記録可能である。
【0012】
また、以下の実施の形態で利用可能なシステムは、そのシステムとして一般的なコンピュータシステムを用いることができる。
【0013】
本実施の形態で用いることができるコンピュータシステムは、例えば図6に示すような構成を備える。
【0014】
図6は、本実施の形態に係るコンピュータシステムの概略構成を示すブロック図である。
【0015】
中央演算処理装置(CPU)601は、メモリ602のRAMにロードされたプログラムに従って各種制御動作を実行している。またこのメモリ602は、CPU601による制御動作にワークエリアとして使用され、各種データを保存するRAMエリア、BIOS等のプログラム記憶しているROMエリアを含んでいる。表示部603は、CRTや液晶などの表示部で、ユーザに対するメッセージやエラーコマンド、及び処理対象の画像や文書データ等を表示するのに用いられる。入力部604はキーボードや、マウス等のポインティングデバイスを含み、ユーザによる操作に応じて各種データやコマンドを入力するのに使用される。外部記憶装置(HD)605は、OSや各種アプリケーションプログラム等がインストールされており、そのプログラムの実行時に、そのプログラムがRAMにロードされて実行される。ネットワーク・インターフェース606は、LANやインターネット等のネットワーク610とのインターフェースを制御している。
【0016】
本実施の形態で利用可能なコンピュータシステムには、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ、組み込み装置用コンピュータ等各種のコンピュータが含まれる。また本実施の形態で説明するプログラムを稼動させる環境に特に制限はない。例えば、Unix(登録商標)、Windows(登録商標)、Linux(登録商標)、MacOS(登録商標)、Tron(登録商標)その他のOS等の環境であってもよい。またプログラム言語にも制限はない。
【0017】
図1は、本発明の一実施の形態に係るデータ通信システムの送信側システムを模式的に示す概念図である。
【0018】
本実施の形態に係るデータ通信システムの送信側システムは以下の構成を有している。クライアントアプリケーション100は、ネットワークに配置された自身のノード上、或は別のノード上に配置されたサービスを利用する。WSDL(Web Service Description Language)記述部101は、サービスのインターフェイスを記述している。WSDL管理部102は、サービスのWSDL記述部101を名前空間で管理している。WSDL認識部103は、WSDL記述部101に記述されている内容を読み取り、その内容を認識する。SOAP送信部104は、SOAPメッセージを送信するためにWSDL認識部103から利用される。モジュール起動部105は、クライアントアプリケーション100が実行されているノードで実行されるサービスモジュールを起動する。
【0019】
図2は、クライアントアプリケーション100が実行されているネットワーク上の同じノードで実行されるように拡張されたWSDLの一例を示す図である。
【0020】
local修飾子で修飾されるbinding要素により、WSDL記述部101が示すインターフェイスがクライアントアプリケーション100とネットワーク上の同じノードで実行されるサービスであるかどうかが認識可能となる。またlocal修飾子で修飾されるoperation要素のmethod属性により、サービスで実行されるメソッド名(ここでは「print」)が認識可能となる。更に、local修飾子で修飾されるmodule要素のmoduleName属性(ここでは「libprint.so」)により、サービスが記述されるプログラムモジュールを認識できる。
【0021】
クライアントアプリケーションが通信する必要があるサービスは、WSDL管理部102で管理され、WSDLの名前空間とWSDL記述部101が関連付けられて管理される。クライアントアプリケーションが実行されているネットワーク上のノードで実行されるように拡張されたWSDL記述部101及びSOAPBindingで利用されるWSDL記述部101は、図2で示したdifinition要素のtargetNamespace属性により、別々の名前空間を有している。これにより、各々の名前空間によりサービスを一意に特定できる。
【0022】
クライアントアプリケーションが通信する必要があるデータは、WSDLを指定されたWSDL認識部103に送られ、WSDL記述部101に記述される内容に応じて処理される。即ち、soap:bidingの場合は、SOAP送信部104を利用してSOAP経由でネットワーク上の別のノードのサービスに送られる。またlocal:bindingの場合は、モジュール起動部105を利用してネットワーク上の同じノード上のプログラムとして起動される。
【0023】
図3及び図4は本実施の形態に係るサービス利用システム、装置及びプログラムの機能の一例を示したコラボレーション図で、図3はSOAP経由でサービスを利用する場合の呼び出し手順を示す図、図4はネットワーク上の同じノードで実行されるプログラムを起動する場合の呼び出し手順を示す図である。尚、本実施の形態のデータ通信プログラムを実行するために、プログラムの実行環境或はユーティリティプログラム、プログラムライブラリ等が必要になるが、図では省略している。
【0024】
クライアントアプリケーション100は、WSDL管理部102に宛てて、サービスの一覧であるリストを要求する(300)。この際に何らかの検索式を用いてサービスを絞り込むような実装も可能である。このリストを要求されたWSDL管理部102は、クライアントアプリケーション100に対して、名前空間で特定されるURIのリストを返す(301)。これによりクライアントアプリケーション100は、任意の自身が利用するべきURIを特定できる。こうしてWSDL管理部102に対して、そのURIと共にWSDL記述部101を要求する(302)。この際、予めURIが特定されている場合は300で示すサービスの取得要求を行うことなく、WSDL記述部101を要求しても良い。WSDL記述部101を要求されたWSDL管理部102は、その要求時に送られたURIより、その実体であるWSDL記述部101をクライアントアプリケーション100に戻す(303)。
【0025】
これによりクライアントアプリケーション100は、WSDL管理部102より戻されたWSDL記述部101をWSDL認識部103に指定する(304)。この際、クライアントアプリケーション100は、WSDL記述部101のキャッシュを行う。これにより次に同じ名前空間で定義されるWSDL記述部101を利用する際、WSDL管理部102に問い合わせることなく、自身のキャッシュ内に保存されているWSDL記述部101を利用してWSDL認識部103にWSDL記述部を指定できる。
【0026】
次に、クライアントアプリケーション100は、通信したいデータであるメッセージをWSDL認識部103に送信する(305)。WSDL認識部103は、自身に指定されているWSDL記述部101より各パラメータを取得する(306)。そしてbinding要素内にsoap:binding要素が存在した場合は、SOAP送信部104に対して、各種パラメータと共にメッセージを送信する(307)。
【0027】
図4はネットワーク上の同じノードで実行されるプログラムを起動する場合の呼び出し手順を示す図で、前述の図3と共通する部分は同じ記号で示し、それらの説明を省略する。
【0028】
図4では、WSDL認識部103は、binding要素内にlocal:binding要素が存在した場合は、ネットワーク上の同じノードで実行するため、モジュール起動部105に各種パラメータとともにメッセージを送信する(401)。その他は図3と同じである。
【0029】
図5は、本実施の形態に係るWSDL認識部103の内部の動作をより詳細に記述したシーケンス図である。
(1)クライアントアプリケーション100は、WSDL認識部103に対しWSDL記述部101を指定する。これは図3の304で示す処理に該当する。
(2)WSDL記述部101より、difinitions要素内のservice要素内に記述されているbinding属性を取得する(501)。
(3)WSDL記述部101より、(2)におけるbinding属性で指定された文字列を名前にもつdifinitions要素内のbinding要素を取得する(502)。
(4)WSDL記述部101より、difinitions要素内のbinding要素の子要素を取得する(503)。
(5)WSDL記述部101より(4)で取得したbinding要素の子要素にlocal:binding要素が出現した場合、モジュール起動の処理を実行する(504)。
(6)モジュール起動の処理内で、dininition要素内service要素内port要素内にあるloca:module要素を取得する(505)。
(7)モジュール起動の処理内で、(6)で取得したlocal:module要素内のmoduleName属性からライブラリの名前を取得する(506)。
(8)モジュール起動の処理内で、(3)で取得したbinding要素内のlocal:operation要素のmethod属性よりメッセージを送信するメソッド名を取得する(507)。
(9)モジュール起動の処理内で、モジュール起動部105に対してライブラリ名、メソッド名とともにメッセージを投げる(508)。
(10)モジュール起動部105で、ライブラリWSDL認識部103より投げられたライブラリをロードする(509)。
(11)ロードしたライブラリのWSDL認識部103より、投げられたメソッド名のメソッドに対しメッセージを投げを実行する(510)。
(12)WSDL記述部101より、(4)で取得したbinding要素の子要素にsoap:binding要素が出現した場合、SOAP送信部104に対しSOAPメッセージ送信処理を実行する(511)。
【0030】
以上説明したように本実施の形態によれば、プログラム作成或はメンテナンス環境において、サービスがクライアントアプリケーションと同じノードに配置されているか、ネットワーク上の別のノードに配置されているかを意識することなく、単一の手順でネットワーク上に分散したシステム間での通信を実現できる。
【0031】
また、サービスがクライアントアプリケーション10と同じネットワークに配置されている場合に、ネットワークの利用に関わるオーバーヘッドに処理時間をとられることがなくなる。
【0032】
また本実施の形態により、クライアントアプリケーションは、サービスがクライアントアプリケーションと同じノードに配置されているか、ネットワーク上の別のノードに配置されているかを意識することなく、サービスの特定を実現できる。
【0033】
尚、本発明の目的は、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【0034】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0035】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM,CD−R,CD−RW,DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD−DVD,Blu−rayDisc、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。また、このプログラムコードをネットワークを介してダウンロードしてもよい。
【0036】
またコンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0037】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0038】
以上、本発明によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前述した形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更することが可能である。
【図面の簡単な説明】
【0039】
【図1】本発明の一実施の形態であるサービス利用システムを模式的に示した概念図である。
【図2】クライアントアプリケーションとネットワーク上の同じノードで実行されるサービスを記述するよう拡張されたWSDL記述の具体例を示す図である。
【図3】本実施の形態に係るサービス利用システム及びその機能をSOAP Bindingを利用したサービスを例にとって示した概念図である。
【図4】本実施の形態に係るサービス利用システム及びその機能をクライアントアプリケーションのネットワーク上の同じノードで実行されるサービスを例にとって示した概念図である。
【図5】本実施の形態に係るサービス利用システム及びその機能のうちWSDL認識部のより詳細な機能を示した概念図である。
【図6】本実施の形態に係るコンピュータシステムの概略構成を示すブロック図である。

【特許請求の範囲】
【請求項1】
サービスのインターフェースを記述するWSDL記述を管理する管理手段と、
前記管理手段で管理されているWSDL記述から、所望するサービスのWSDL記述を取得する取得手段と、
前記取得手段で取得したWSDL記述に応じて、SOAP通信或はローカルモジュール呼び出しのいずれかを選択する選択手段と、
を有することを特徴とする通信装置。
【請求項2】
前記選択手段は、前記WSDL記述の名前空間もしくは拡張されたWSDL記述の名前空間に応じて、前記SOAP通信、又はローカルモジュール呼び出しを選択することを特徴とする請求項1に記載の通信装置。
【請求項3】
前記選択手段は、前記WSDL記述の結合要素内にローカル名前空間が出現すると前記ローカルモジュールの読出しを選択し、前記WSDL記述の結合要素内にSOAPに関連する名前空間が出現すると前記SOAP通信を選択することを特徴とする請求項2に記載の通信装置。
【請求項4】
ネットワークを利用した分散環境におけるシステム間でメッセージを通信する通信装置における通信制御方法であって、
サービスのインターフェースを記述するWSDL記述を管理する管理工程と、
前記管理工程で管理されているWSDL記述から、所望するサービスのWSDL記述を取得する取得工程と、
前記取得工程で取得したWSDL記述に応じて、SOAP通信或はローカルモジュール呼び出しのいずれかを選択する選択工程と、
を有することを特徴とする通信装置の制御方法。
【請求項5】
前記選択工程は、前記WSDL記述の名前空間もしくは拡張されたWSDL記述の名前空間に応じて、前記SOAP通信、又はローカルモジュール呼び出しを選択することを特徴とする請求項4に記載の通信装置の制御方法。
【請求項6】
前記選択工程は、前記WSDL記述の結合要素内にローカル名前空間が出現すると前記ローカルモジュールの読出しを選択し、前記WSDL記述の結合要素内にSOAPに関連する名前空間が出現すると前記SOAP通信を選択することを特徴とする請求項5に記載の通信装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2007−108956(P2007−108956A)
【公開日】平成19年4月26日(2007.4.26)
【国際特許分類】
【出願番号】特願2005−298097(P2005−298097)
【出願日】平成17年10月12日(2005.10.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】