(57)【要約】【課題】  ネットワークを経由しないで構築されたシステムやプログラム及び装置と、ネットワークを経由して構築されたシステムやプログラム及び装置とを同居させると、利用するサービスをネットワークを利用するかしないかに応じて制御する必要が生じる。【解決手段】  サービスのインターフェースを記述するＷＳＤＬ記述を管理する管理部１０２と、ＷＳＤＬ管理部１０２で管理されているＷＳＤＬ記述部１０１から、所望するサービスのＷＳＤＬ記述を取得し、その取得したＷＳＤＬ記述に応じて、ＳＯＡＰ通信或はローカルモジュール呼び出しのいずれかを選択して実行するＷＳＤＬ認識部１０３とを有する。【選択図】  図１
2007108956.tif 000002
【特許請求の範囲】
【請求項１】
サービスのインターフェースを記述するＷＳＤＬ記述を管理する管理手段と、
前記管理手段で管理されているＷＳＤＬ記述から、所望するサービスのＷＳＤＬ記述を取得する取得手段と、
前記取得手段で取得したＷＳＤＬ記述に応じて、ＳＯＡＰ通信或はローカルモジュール呼び出しのいずれかを選択する選択手段と、
を有することを特徴とする通信装置。
【請求項２】
前記選択手段は、前記ＷＳＤＬ記述の名前空間もしくは拡張されたＷＳＤＬ記述の名前空間に応じて、前記ＳＯＡＰ通信、又はローカルモジュール呼び出しを選択することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記選択手段は、前記ＷＳＤＬ記述の結合要素内にローカル名前空間が出現すると前記ローカルモジュールの読出しを選択し、前記ＷＳＤＬ記述の結合要素内にＳＯＡＰに関連する名前空間が出現すると前記ＳＯＡＰ通信を選択することを特徴とする請求項２に記載の通信装置。
【請求項４】
ネットワークを利用した分散環境におけるシステム間でメッセージを通信する通信装置における通信制御方法であって、
サービスのインターフェースを記述するＷＳＤＬ記述を管理する管理工程と、
前記管理工程で管理されているＷＳＤＬ記述から、所望するサービスのＷＳＤＬ記述を取得する取得工程と、
前記取得工程で取得したＷＳＤＬ記述に応じて、ＳＯＡＰ通信或はローカルモジュール呼び出しのいずれかを選択する選択工程と、
を有することを特徴とする通信装置の制御方法。
【請求項５】
前記選択工程は、前記ＷＳＤＬ記述の名前空間もしくは拡張されたＷＳＤＬ記述の名前空間に応じて、前記ＳＯＡＰ通信、又はローカルモジュール呼び出しを選択することを特徴とする請求項４に記載の通信装置の制御方法。
【請求項６】
前記選択工程は、前記ＷＳＤＬ記述の結合要素内にローカル名前空間が出現すると前記ローカルモジュールの読出しを選択し、前記ＷＳＤＬ記述の結合要素内にＳＯＡＰに関連する名前空間が出現すると前記ＳＯＡＰ通信を選択することを特徴とする請求項５に記載の通信装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを利用した分散環境におけるシステム間のメッセージ通信に適用して有効な技術に関する。
【背景技術】
【０００２】
ネットワークに接続されたコンピュータプログラム同士の通信でＳＯＡＰを利用したウエブ（Web）サービスの技術が注目を浴びている（例えば、特許文献１参照）。ＳＯＡＰを使ったサービスでの通信は一般的にネットワーク上に分散した環境で利用される。あるネットワークに配置されたウエブサービスを利用するクライアントが、他のネットワーク上に配置されたノードで実行されるウエブサービスを利用する場合を考える。この場合、クライアントが、そのサービスに対してネットワーク経由でリクエストを送信し、そのサービスがネットワークを経由して返答をクライアントに戻す。しかし、サービスを実行するノードはネットワーク上だけではなく、クライアントを実行しているノードの場合もありうる。その場合であっても前述のように、クライアントがネットワーク経由で自身のノードのサービスを利用することになる。その際、ＳＯＡＰメッセージを作成してネットワークに送信し、その返答をネットワークを経由して受信し、受信したＳＯＡＰメッセージを解釈するという手順を、自身が接続されているノードのサービスに対しても行うことになる。このように同じノードで実行するアプリケーションプログラムであるにも拘わらず、ネットワークを利用することによるオーバーヘッドが生じる。
【０００３】
そこでサービスが実行するアプリケーションプログラムを、利用する側のクライアントアプリケーションが直接実行する方法がある。しかしこの場合クライアントは、サービスのノードがネットワーク上に分離されてしまった場合には、アプリケーションプログラムの再作成を強いられることになる。また、サービス側のアプリケーションプログラムも、ネットワークで呼ばれるインターフェイスと、自身のノードから呼ばれるインターフェイスの両方を用意する必要が生じ、その作成が難しくなる。またネットワーク上のサービスとして構築したシステム、プログラム及び装置を、自身のノードで実行するクライアントアプリケーション用に移行するのも容易ではない。
【０００４】
また自身のノードから呼ばれるインターフェイスを用意したとしても、ネットワークから利用されるサービスと自身のノードからのサービスを別々に管理しなくてはいけないため、サービスの特定や管理も複雑となる。
【特許文献１】特開２００５−１７４１２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記したように、ネットワーク上で利用されることを想定した一般的なウエブサービスアプリケーションプログラムを、自身のノードのサービスに利用すると、ネットワークを経由するためオーバーヘッドがかかり処理時間に無駄が生じる。またネットワーク上での利用を前提として構築したシステム、プログラム及び装置を、ネットワークを経由せずに自身のノードで利用するにはその移行が容易ではない。本来、クライアントアプリケーション作成者は、ユーザインターフェイスに対する処理のようなクライアントアプリケーションで行うべき処理に集中している。従って、あるサービスをネットワーク経由で利用するか、自身のノードで利用するのかを意識したプログラムの作成は、余分な負担をプログラム作成者に与えることになる。また、ネットワークを経由しないで構築されたシステムやプログラム及び装置と、ネットワークを経由して構築されたシステムやプログラム及び装置とを同居させると、利用するサービスをネットワークを利用するかしないかに応じて制御する必要が生じる。これによりプログラムの開発効率を著しく低下させることになる。
【０００６】
本発明の目的は、上記従来技術の欠点を解決することにある。
【０００７】
本願発明の特徴は、ネットワーク経由を前提としたサービスを利用するのか、自身のノードで実行されるサービスを利用するのかを意識することなくサービスを利用できる通信装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る通信装置は以下のような構成を備える。即ち、
サービスのインターフェースを記述するＷＳＤＬ記述を管理する管理手段と、
前記管理手段で管理されているＷＳＤＬ記述から、所望するサービスのＷＳＤＬ記述を取得する取得手段と、
前記取得手段で取得したＷＳＤＬ記述に応じて、ＳＯＡＰ通信或はローカルモジュール呼び出しのいずれかを選択する選択手段と、
を有することを特徴とする。
【０００９】
上記目的を達成するために本発明の一態様に係る通信装置の制御方法は以下のような工程を備える。即ち、
ネットワークを利用した分散環境におけるシステム間でメッセージを通信する通信装置における通信制御方法であって、
サービスのインターフェースを記述するＷＳＤＬ記述を管理する管理工程と、
前記管理工程で管理されているＷＳＤＬ記述から、所望するサービスのＷＳＤＬ記述を取得する取得工程と、
前記取得工程で取得したＷＳＤＬ記述に応じて、ＳＯＡＰ通信或はローカルモジュール呼び出しのいずれかを選択する選択工程と、
を有することを特徴とする。
【発明の効果】
【００１０】
本願発明によれば、ネットワーク経由を前提としたサービスを利用するのか、自身のノードで実行されるサービスを利用するのかを意識することなくサービスを利用できるという効果がある。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。以下の実施の形態で説明する方法、システム又は装置は、本発明はコンピュータで使用可能なプログラムとしても実施できる。従って本発明は、ハードウェアとしての実施形態、ソフトウェアとしての実施形態、又はソフトウェアとハードウェアとの組み合わせの実施形態をとることができる。プログラムは、ハードディスク、ＣＤ−ＲＯＭ、光記憶装置、磁気記憶装置、又はフラッシュメモリ等任意のコンピュータ可読媒体に記録可能である。
【００１２】
また、以下の実施の形態で利用可能なシステムは、そのシステムとして一般的なコンピュータシステムを用いることができる。
【００１３】
本実施の形態で用いることができるコンピュータシステムは、例えば図６に示すような構成を備える。
【００１４】
図６は、本実施の形態に係るコンピュータシステムの概略構成を示すブロック図である。
【００１５】
中央演算処理装置（ＣＰＵ）６０１は、メモリ６０２のＲＡＭにロードされたプログラムに従って各種制御動作を実行している。またこのメモリ６０２は、ＣＰＵ６０１による制御動作にワークエリアとして使用され、各種データを保存するＲＡＭエリア、ＢＩＯＳ等のプログラム記憶しているＲＯＭエリアを含んでいる。表示部６０３は、ＣＲＴや液晶などの表示部で、ユーザに対するメッセージやエラーコマンド、及び処理対象の画像や文書データ等を表示するのに用いられる。入力部６０４はキーボードや、マウス等のポインティングデバイスを含み、ユーザによる操作に応じて各種データやコマンドを入力するのに使用される。外部記憶装置（ＨＤ）６０５は、ＯＳや各種アプリケーションプログラム等がインストールされており、そのプログラムの実行時に、そのプログラムがＲＡＭにロードされて実行される。ネットワーク・インターフェース６０６は、ＬＡＮやインターネット等のネットワーク６１０とのインターフェースを制御している。
【００１６】
本実施の形態で利用可能なコンピュータシステムには、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ、組み込み装置用コンピュータ等各種のコンピュータが含まれる。また本実施の形態で説明するプログラムを稼動させる環境に特に制限はない。例えば、Unix（登録商標）、Windows（登録商標）、Linux（登録商標）、MacOS（登録商標）、Tron（登録商標）その他のＯＳ等の環境であってもよい。またプログラム言語にも制限はない。
【００１７】
図１は、本発明の一実施の形態に係るデータ通信システムの送信側システムを模式的に示す概念図である。
【００１８】
本実施の形態に係るデータ通信システムの送信側システムは以下の構成を有している。クライアントアプリケーション１００は、ネットワークに配置された自身のノード上、或は別のノード上に配置されたサービスを利用する。ＷＳＤＬ（Web Service Description Language）記述部１０１は、サービスのインターフェイスを記述している。ＷＳＤＬ管理部１０２は、サービスのＷＳＤＬ記述部１０１を名前空間で管理している。ＷＳＤＬ認識部１０３は、ＷＳＤＬ記述部１０１に記述されている内容を読み取り、その内容を認識する。ＳＯＡＰ送信部１０４は、ＳＯＡＰメッセージを送信するためにＷＳＤＬ認識部１０３から利用される。モジュール起動部１０５は、クライアントアプリケーション１００が実行されているノードで実行されるサービスモジュールを起動する。
【００１９】
図２は、クライアントアプリケーション１００が実行されているネットワーク上の同じノードで実行されるように拡張されたＷＳＤＬの一例を示す図である。
【００２０】
local修飾子で修飾されるbinding要素により、ＷＳＤＬ記述部１０１が示すインターフェイスがクライアントアプリケーション１００とネットワーク上の同じノードで実行されるサービスであるかどうかが認識可能となる。またlocal修飾子で修飾されるoperation要素のmethod属性により、サービスで実行されるメソッド名（ここでは「print」）が認識可能となる。更に、local修飾子で修飾されるmodule要素のmoduleName属性（ここでは「libprint.so」）により、サービスが記述されるプログラムモジュールを認識できる。
【００２１】
クライアントアプリケーションが通信する必要があるサービスは、ＷＳＤＬ管理部１０２で管理され、ＷＳＤＬの名前空間とＷＳＤＬ記述部１０１が関連付けられて管理される。クライアントアプリケーションが実行されているネットワーク上のノードで実行されるように拡張されたＷＳＤＬ記述部１０１及びSOAPBindingで利用されるＷＳＤＬ記述部１０１は、図２で示したdifinition要素のtargetNamespace属性により、別々の名前空間を有している。これにより、各々の名前空間によりサービスを一意に特定できる。
【００２２】
クライアントアプリケーションが通信する必要があるデータは、ＷＳＤＬを指定されたＷＳＤＬ認識部１０３に送られ、ＷＳＤＬ記述部１０１に記述される内容に応じて処理される。即ち、soap:bidingの場合は、ＳＯＡＰ送信部１０４を利用してＳＯＡＰ経由でネットワーク上の別のノードのサービスに送られる。またlocal:bindingの場合は、モジュール起動部１０５を利用してネットワーク上の同じノード上のプログラムとして起動される。
【００２３】
図３及び図４は本実施の形態に係るサービス利用システム、装置及びプログラムの機能の一例を示したコラボレーション図で、図３はＳＯＡＰ経由でサービスを利用する場合の呼び出し手順を示す図、図４はネットワーク上の同じノードで実行されるプログラムを起動する場合の呼び出し手順を示す図である。尚、本実施の形態のデータ通信プログラムを実行するために、プログラムの実行環境或はユーティリティプログラム、プログラムライブラリ等が必要になるが、図では省略している。
【００２４】
クライアントアプリケーション１００は、ＷＳＤＬ管理部１０２に宛てて、サービスの一覧であるリストを要求する（３００）。この際に何らかの検索式を用いてサービスを絞り込むような実装も可能である。このリストを要求されたＷＳＤＬ管理部１０２は、クライアントアプリケーション１００に対して、名前空間で特定されるＵＲＩのリストを返す（３０１）。これによりクライアントアプリケーション１００は、任意の自身が利用するべきＵＲＩを特定できる。こうしてＷＳＤＬ管理部１０２に対して、そのＵＲＩと共にＷＳＤＬ記述部１０１を要求する（３０２）。この際、予めＵＲＩが特定されている場合は３００で示すサービスの取得要求を行うことなく、ＷＳＤＬ記述部１０１を要求しても良い。ＷＳＤＬ記述部１０１を要求されたＷＳＤＬ管理部１０２は、その要求時に送られたＵＲＩより、その実体であるＷＳＤＬ記述部１０１をクライアントアプリケーション１００に戻す（３０３）。
【００２５】
これによりクライアントアプリケーション１００は、ＷＳＤＬ管理部１０２より戻されたＷＳＤＬ記述部１０１をＷＳＤＬ認識部１０３に指定する（３０４）。この際、クライアントアプリケーション１００は、ＷＳＤＬ記述部１０１のキャッシュを行う。これにより次に同じ名前空間で定義されるＷＳＤＬ記述部１０１を利用する際、ＷＳＤＬ管理部１０２に問い合わせることなく、自身のキャッシュ内に保存されているＷＳＤＬ記述部１０１を利用してＷＳＤＬ認識部１０３にＷＳＤＬ記述部を指定できる。
【００２６】
次に、クライアントアプリケーション１００は、通信したいデータであるメッセージをＷＳＤＬ認識部１０３に送信する（３０５）。ＷＳＤＬ認識部１０３は、自身に指定されているＷＳＤＬ記述部１０１より各パラメータを取得する（３０６）。そしてbinding要素内にsoap:binding要素が存在した場合は、ＳＯＡＰ送信部１０４に対して、各種パラメータと共にメッセージを送信する（３０７）。
【００２７】
図４はネットワーク上の同じノードで実行されるプログラムを起動する場合の呼び出し手順を示す図で、前述の図３と共通する部分は同じ記号で示し、それらの説明を省略する。
【００２８】
図４では、ＷＳＤＬ認識部１０３は、binding要素内にlocal:binding要素が存在した場合は、ネットワーク上の同じノードで実行するため、モジュール起動部１０５に各種パラメータとともにメッセージを送信する（４０１）。その他は図３と同じである。
【００２９】
図５は、本実施の形態に係るＷＳＤＬ認識部１０３の内部の動作をより詳細に記述したシーケンス図である。
（１）クライアントアプリケーション１００は、ＷＳＤＬ認識部１０３に対しＷＳＤＬ記述部１０１を指定する。これは図３の３０４で示す処理に該当する。
（２）ＷＳＤＬ記述部１０１より、difinitions要素内のservice要素内に記述されているbinding属性を取得する（５０１）。
（３）ＷＳＤＬ記述部１０１より、（２）におけるbinding属性で指定された文字列を名前にもつdifinitions要素内のbinding要素を取得する（５０２）。
（４）ＷＳＤＬ記述部１０１より、difinitions要素内のbinding要素の子要素を取得する（５０３）。
（５）ＷＳＤＬ記述部１０１より（４）で取得したbinding要素の子要素にlocal:binding要素が出現した場合、モジュール起動の処理を実行する（５０４）。
（６）モジュール起動の処理内で、dininition要素内service要素内port要素内にあるloca:module要素を取得する（５０５）。
（７）モジュール起動の処理内で、（６）で取得したlocal:module要素内のmoduleName属性からライブラリの名前を取得する（５０６）。
（８）モジュール起動の処理内で、（３）で取得したbinding要素内のlocal:operation要素のmethod属性よりメッセージを送信するメソッド名を取得する（５０７）。
（９）モジュール起動の処理内で、モジュール起動部１０５に対してライブラリ名、メソッド名とともにメッセージを投げる（５０８）。
（１０）モジュール起動部１０５で、ライブラリＷＳＤＬ認識部１０３より投げられたライブラリをロードする（５０９）。
（１１）ロードしたライブラリのＷＳＤＬ認識部１０３より、投げられたメソッド名のメソッドに対しメッセージを投げを実行する（５１０）。
（１２）ＷＳＤＬ記述部１０１より、（４）で取得したbinding要素の子要素にsoap:binding要素が出現した場合、ＳＯＡＰ送信部１０４に対しＳＯＡＰメッセージ送信処理を実行する（５１１）。
【００３０】
以上説明したように本実施の形態によれば、プログラム作成或はメンテナンス環境において、サービスがクライアントアプリケーションと同じノードに配置されているか、ネットワーク上の別のノードに配置されているかを意識することなく、単一の手順でネットワーク上に分散したシステム間での通信を実現できる。
【００３１】
また、サービスがクライアントアプリケーション１０と同じネットワークに配置されている場合に、ネットワークの利用に関わるオーバーヘッドに処理時間をとられることがなくなる。
【００３２】
また本実施の形態により、クライアントアプリケーションは、サービスがクライアントアプリケーションと同じノードに配置されているか、ネットワーク上の別のノードに配置されているかを意識することなく、サービスの特定を実現できる。
【００３３】
尚、本発明の目的は、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【００３４】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００３５】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ−ＤＶＤ，Ｂｌｕ−ｒａｙＤｉｓｃ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。また、このプログラムコードをネットワークを介してダウンロードしてもよい。
【００３６】
またコンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００３７】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００３８】
以上、本発明によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前述した形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更することが可能である。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施の形態であるサービス利用システムを模式的に示した概念図である。
【図２】クライアントアプリケーションとネットワーク上の同じノードで実行されるサービスを記述するよう拡張されたＷＳＤＬ記述の具体例を示す図である。
【図３】本実施の形態に係るサービス利用システム及びその機能をSOAP Bindingを利用したサービスを例にとって示した概念図である。
【図４】本実施の形態に係るサービス利用システム及びその機能をクライアントアプリケーションのネットワーク上の同じノードで実行されるサービスを例にとって示した概念図である。
【図５】本実施の形態に係るサービス利用システム及びその機能のうちＷＳＤＬ認識部のより詳細な機能を示した概念図である。
【図６】本実施の形態に係るコンピュータシステムの概略構成を示すブロック図である。
【図１】
2007108956.tif 000003
【図２】
2007108956.tif 000004
【図３】
2007108956.tif 000005
【図４】
2007108956.tif 000006
【図５】
2007108956.tif 000007
【図６】
2007108956.tif 000008