JP2007066294A - Webサービス接続装置 - Google Patents

Webサービス接続装置 Download PDF

Info

Publication number
JP2007066294A
JP2007066294A JP2006191988A JP2006191988A JP2007066294A JP 2007066294 A JP2007066294 A JP 2007066294A JP 2006191988 A JP2006191988 A JP 2006191988A JP 2006191988 A JP2006191988 A JP 2006191988A JP 2007066294 A JP2007066294 A JP 2007066294A
Authority
JP
Japan
Prior art keywords
web service
connection
client
binding
service connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006191988A
Other languages
English (en)
Inventor
Jun Kawada
純 川田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006191988A priority Critical patent/JP2007066294A/ja
Priority to US11/489,619 priority patent/US7698362B2/en
Publication of JP2007066294A publication Critical patent/JP2007066294A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】環境に応じた最適なバインディングを自動的に選択することのできるWebサービス接続装置を提供する。
【解決手段】マルチバインディング機能を提供しているWebサービスに接続するための接続装置であって、使用するバインディングの選択条件を保持する接続設定手段と、クライアントで実行される共通インタフェース実行用コードからの接続要求を受け付ける共通インタフェース手段と、上記接続設定手段から選択条件を取得する読取/解析手段と、クライアントおよび/もしくはサーバの環境情報を取得する環境情報取得手段と、上記選択条件および上記環境情報に基づいて使用するバインディングを決定する接続選択決定手段と、決定されたバインディングに対応する実行コードによりWebサービスへの接続を行う呼出手段とを備える。
【選択図】図12

Description

本発明は、マルチバインディング機能を提供しているWebサービスに接続するにあたり、IP(Internet Protocol)アドレスや環境に応じたWebサービス接続方式の自動的な切替えを行うWebサービス接続装置に関する。
Webサービスはインターネット標準技術を使ってネットワーク上に分散したアプリケーション(コンポーネント)を連携させる技術であり、個々のアプリケーションそのものもWebサービスと呼ばれる(例えば、特許文献1〜4参照。)。
ところで、当初のWebサービスの実装にあっては、ネットワーク上のサーバに存在するリモートのWebサービスと同一のクライアントホスト上に存在するローカルのWebサービスとを区別していなかったため、Webサービスの利用にあたり常にネットワーク通信およびその準備の時間が必要であり、効率的ではなかった。
また、Webサービスを利用するためのメッセージ技術としてはSOAP(Simple Object Access Protocol)通信が用いられることが多いが、SOAPはデータ量も多いとともに、XML(eXtensible Markup Language)解析時間も必要であり、環境によっては効率的でない場合もあった。
これらの解決策としてマルチバインディング機能が提供され、WSIF(Web Service Invocation Framework)によって実現されるに至っている。WSIFは複数のバインディング(抽象的な操作やメッセージから具体的なプロトコルやメッセージへのマッピング)を提供するWebサービスの呼出しをクライアント側で実現するためのフレームワークである。
図1はこのようなマルチバインディングに基づく従来のWebサービス接続機構の構成例を示す図である。図1において、Webサービスクライアント1AにはJava実行用コードが実装され、Webサービスクライアント1BにはJMS(Java Message Service)実行用コードが実装され、Webサービスクライアント1CにはEJB(Enterprise JavaBeans)実行用コードが実装され、Webサービスクライアント1DにはSOAP実行用コードが実装されているものとすると、マルチバインディング接続モジュール2はWebサービスを記述したWSDL(Web Services Description Language)6を参照し、各バインディング(Javaバインディング、JMSバインディング、EJBバインディング、SOAPバインディング)に対応するスタブ3A〜3D(Javaスタブ3Aについては省略可)を静的あるいは動的に生成し、対応するスタブ(3A〜3D)を介して対応するインタフェース(4A〜4D)に接続し、Webサービス5を利用する。
ここで、Webサービス5と同一のクライアントホスト内に存在するWebサービスクライアント1Aではネットワーク通信を伴わないJava実行用コードによる効率的な接続が可能となり、その他のWebサービスクライアント1B〜1Dでは実装したコードに対応した方式による効率的なネットワーク経由による接続が可能となる。
特開2004−171524号公報 特開2004−171525号公報 特開2004−272888号公報 特開2004−274736号公報
上述したように、従来のWebサービス接続機構にあっては、Webサービス側の提供する複数のバインディングのうちからWebサービスクライアント側のコードに対応したバインディングが選択されることで効率のよい方式を使用できる利点があったが、選択されるバインディングがWebサービスクライアント側のコードに依存するため、マルチバインディングを提供するWebサービスの活用が難しいという問題があった。
すなわち、ホストの性能、ネットワーク環境、開発工程といった環境によって最適なバインディングも変化するものであるが、バインディングを変更するためにはWebサービスクライアント側のコードを修正しなければならず、そのための作業が煩雑であった。特に、複数のWebサービスクライアントが存在する場合は全てに変更を反映する必要があり、トータルの作業は相当なものとなっていた。
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、環境に応じた最適なバインディングを自動的に選択することのできるWebサービス接続装置を提供することにある。
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、マルチバインディング機能を提供しているWebサービスに接続するための接続装置であって、使用するバインディングの選択条件を保持する接続設定手段と、クライアントで実行される共通インタフェース実行用コードからの接続要求を受け付ける共通インタフェース手段と、上記接続設定手段から選択条件を取得する読取/解析手段と、クライアントおよび/もしくはサーバの環境情報を取得する環境情報取得手段と、上記選択条件および上記環境情報に基づいて使用するバインディングを決定する接続選択決定手段と、決定されたバインディングに対応する実行コードによりWebサービスへの接続を行う呼出手段とを備えるWebサービス接続機構を要旨としている。
また、請求項2に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、XMLにより記述された接続設定ファイルからなるものとすることができる。
また、請求項3に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、接続対象のWebサービスのIPアドレスがローカルホストを指すIPアドレスである場合に、Javaバインディングを優先的に使用する旨の記述を含み、リモートホストを指すIPアドレスである場合に、SOAPバインディング、JMSバインディング、EJBバインディングのいずれかを優先的に使用する旨の記述を含むものとすることができる。
また、請求項4に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、クライアントとサーバ間の通信速度に応じて優先的に使用するバインディングを指定する記述を含むものとすることができる。
また、請求項5に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、動作環境がデバッグモードであるか否かに応じて優先的に使用するバインディングを指定する記述を含むものとすることができる。
また、請求項6に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、上記クライアントに保持されるものとすることができる。
また、請求項7に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、上記サーバに保持され、上記クライアントから参照されるものとすることができる。
また、請求項8に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、一群の上記クライアントに保持されるとともに、他の一群の上記クライアントにつき上記サーバに保持され、他の一群の上記クライアントから参照されるものとすることができる。
また、請求項9に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、サービスレジストリのホストに保持され、上記クライアントから参照されるものとすることができる。
また、請求項10に記載されるように、請求項1に記載のWebサービス接続装置において、上記接続設定手段は、サービスレジストリのホストに保持されて上記クライアントから参照されるとともに、一群の上記クライアントに保持されるものとすることができる。
また、請求項11に記載されるように、請求項1に記載のWebサービス接続装置において、上記読取/解析手段は、上記クライアントに設けられるものとすることができる。
また、請求項12に記載されるように、請求項1に記載のWebサービス接続装置において、上記読取/解析手段は、上記サーバに設けられるものとすることができる。
また、請求項13に記載されるように、請求項1に記載のWebサービス接続装置において、上記環境情報取得手段は、上記クライアントの環境情報を取得するクライアント環境情報取得手段を含むものとすることができる。
また、請求項14に記載されるように、請求項1に記載のWebサービス接続装置において、上記環境情報取得手段は、上記サーバの環境情報を取得するサーバ環境情報取得手段を含むものとすることができる。
また、請求項15に記載されるように、請求項14に記載のWebサービス接続装置において、上記サーバ環境情報取得手段は、上記サーバに設けられたサーバ環境情報取得エージェントから情報を取得するものとすることができる。
また、請求項16に記載されるように、請求項1に記載のWebサービス接続装置において、上記共通インタフェース手段は、初期化とサービス実行とを分け、サービス実行前に1度だけ初期化を行うものとすることができる。
また、請求項17に記載されるように、請求項1に記載のWebサービス接続装置において、上記共通インタフェース手段は、初期化とサービス実行とを同時に行うものとすることができる。
また、請求項18に記載されるように、請求項17に記載のWebサービス接続装置において、上記初期化と上記サービス実行とを別のメソッドにより行うものとすることができる。
また、請求項19に記載されるように、請求項17に記載のWebサービス接続装置において、上記初期化と上記サービス実行とを一つのメソッドにより行うものとすることができる。
また、請求項20に記載されるように、マルチバインディング機能を提供しているWebサービスに接続するための接続方法であって、使用するバインディングの選択条件を保持し、クライアントで実行される共通インタフェース実行用コードからの接続要求を受け付け、クライアントおよび/もしくはサーバの環境情報を取得し、上記選択条件および上記環境情報に基づいて使用するバインディングを決定し、決定されたバインディングに対応する実行コードによりWebサービスへの接続を行うWebサービス接続方法として構成することができる。
また、請求項21に記載されるように、マルチバインディング機能を提供しているWebサービスに接続するための接続プログラムであって、クライアントで実行される共通インタフェース実行用コードからの接続要求を受け付ける共通インタフェース手段、使用するバインディングの選択条件を取得する読取/解析手段、クライアントおよび/もしくはサーバの環境情報を取得する環境情報取得手段、上記選択条件および上記環境情報に基づいて使用するバインディングを決定する接続選択決定手段、決定されたバインディングに対応する実行コードによりWebサービスへの接続を行う呼出手段として、コンピュータを機能させるWebサービス接続プログラムとして構成することができる。
本発明のWebサービス接続装置にあっては、環境に応じた最適なバインディングを自動的に選択することができる。
以下、本発明の好適な実施形態につき詳細に説明する。
図2は本発明の一実施形態にかかるWebサービス接続機構の構成例を示す図である。図2において、Webサービスクライアント1には共通インタフェース実行用コード11が実装され、開発フレームワーク7により提供される自動接続切替モジュール8を介してマルチバインディング接続モジュール2に接続するようになっている。自動接続切替モジュール8は、同じく開発フレームワーク7により提供される接続設定ファイル9の設定内容を読み込み、環境に応じてJava実行用コード81、JMS実行用コード82、EJB実行用コード83、SOAP実行用コード84を適宜に選択するようになっている。マルチバインディング接続モジュール2はWebサービスを記述したWSDL6を参照し、各バインディング(Javaバインディング、JMSバインディング、EJBバインディング、SOAPバインディング)に対応するスタブ3A〜3D(Javaスタブ3Aについては省略可)を静的あるいは動的に生成し、対応するスタブ(3A〜3D)を介してWebサービス5側の対応するインタフェース(4A〜4D)に接続し、Webサービス5に接続するようになっている。
図3はXMLにより記述された接続設定ファイル9の例を示す図である。図3において、接続設定ファイル9はルート要素として「WebServiceBindingConfiguration」要素9aを有しており、子要素として選択バインディングを優先順(出現順に評価)に列挙する「OrderOfBindingPriority」要素9bを有している。なお、「OrderOfBindingPriority」要素9bは、図4に示すように、属性として設定対象のWebサービスに対応する「ServiceNameSpace(サービス名前空間)」を含むことができる。含まない場合はデフォルト(Default)の設定として扱われる。
図3において、「OrderOfBindingPriority」要素9bは、独自に設定を持つ場合として、個々のバインディングを記述する複数個(>0)の「Binding」要素9c、9dを子要素として有している。外部の設定を参照する場合は子要素として「Import」要素を一つ含む。図5(a)は「Import」要素の例を示しており、必須の属性であるFileに外部の接続設定ファイル9を参照するためのパス(URL(Uniform Resource Locator)等)が指定される。また、「Import」要素は図5(b)に示すように「ServiceNameSpace」属性を追加指定することができる。図5(c)に示すように「OrderOfBindingPriority」要素において「ServiceNameSpace」属性が指定され、「Import」要素において「ServiceNameSpace」属性の指定がない場合は、先祖要素である「OrderOfBindingPriority」要素の「ServiceNameSpace」属性が継承される。図5(d)に示すように「OrderOfBindingPriority」要素においても「Import」要素においても「ServiceNameSpace」属性の指定がない場合は、デフォルトの設定情報が参照される。
図3において、「Binding」要素9c、9dは、属性としてName(「JavaBinding」、「SOAPBinding」、「EJBBinding」、「JMSBinding」等のバインディング名)を有し、子要素として各バインディングを決定するための条件を記述する要素である「Condition」要素9e、9f、9gを有している。「Condition」要素9eは OR(論理和)を利用してIPアドレスが所定の値である場合もしくはホスト名が「localhost」である場合に条件が満たされる旨を記述している。なお、ORの他にAND(論理積)を利用することもでき、AND、ORを入れ子にすることもできる。図6はANDの中にORを入れ子にした例である。図3において、「Condition」要素9fはアプリケーションを使った転送速度の実測値を条件に指定したものである。「Condition」要素9gは上の全ての条件に一致しなかった場合にデフォルトのバインディングを利用するためのものである。なお、DefaultBindingを利用しなくても、「Condition」要素そのものを省略することでデフォルトとすることも可能である。このように、「Condition」要素として、IPAddress(サーバのIPアドレス)、HostName(サーバのホスト名)、MinBitPerSec / MaxBitPerSec(クライアントとサーバ間の通信速度)、DebugMode(動作環境がデバッグモード(log4jプロパティ等を参照))、DefaultBinding(デフォルトのバインディングを指定)等により条件を指定することができる。
図7A〜図10Dは接続設定ファイル9の配置例を示したものである。
図7Aは接続設定ファイルをクライアント側で管理する場合の例を示す図であり、クライアントホスト100A〜100E側にそれぞれ接続設定ファイル9A〜9Eを配置し、保持・参照を行うようにしたものである。この場合、クライアント側で条件を独自設定できる利点があるが、反面、サービスやネットワーク等の環境変化に合わせて全クライアントの設定を変更する必要がある。導入が比較的容易であるとともに、サービスの数が少なくてその増減幅が小さく、クライアントの数が少なくてその増減幅が小さい場合に適している。図7Bは設定の変更の例を示す図であり、条件を変更する場合、クライアントホスト100A〜100Eの接続設定ファイル9A〜9Eの全てを更新する。図7Cはクライアントの追加の例を示す図であり、クライアントホスト100Fを追加した場合、新たにクライアントホスト100Fに接続設定ファイル9Fを作成する。図7DはWebサービスの追加の例を示す図であり、Webサービス5’を追加した場合、クライアントホスト100A〜100Eの接続設定ファイル9A〜9Eの全てを更新する。
図8Aは接続設定ファイルをサーバ側で管理する場合の例を示す図であり、Webサービス5側に接続設定ファイル9を配置し、クライアントホスト100A〜100EからURL等を利用して参照を行うようにしたものである。この場合、一つの接続設定ファイル9を変更すると全てのクライアントホスト100A〜100Eに反映できる利点があるが、反面、クライアント側で独自の設定を持つことはできない。サービスの数が少なくてその増減幅が小さく、クライアントの数が多くてその増減幅が大きい場合に適している。図8Bは設定の変更の例を示す図であり、条件を変更する場合、Webサービス5側の接続設定ファイル9を更新すればよい。図8Cはクライアントの追加の例を示す図であり、クライアントホスト100Fを追加した場合、クライアントホスト100Fにおける接続設定ファイル9の参照先(URL等)を指定すればよい。図8DはWebサービスの追加の例を示す図であり、Webサービス5’を追加した場合、新たにWebサービス5’側に接続設定ファイル9’を作成し、全てのクライアントホスト100A〜100Eの参照先(URL等)を更新する。
図9Aは接続設定ファイルをサーバ側とクライアント側とで管理する場合の例を示す図であり、Webサービス5側に接続設定ファイル9を配置し、一群のクライアントホスト100A〜100CからURL等を利用して参照を行うようにするとともに、他の一群のクライアントホスト100D、100Eにはそれぞれに接続設定ファイル9D、9Eを配置し、保持・参照を行うようにしたものである。この場合、一元管理したい一群のクライアントの設定を一箇所に持つことができるとともに、個別管理したい他の一群のクライアントの設定を個別に持つことができる利点があるが、反面、接続設定ファイルが分散してしまうことになる。上述した2つの方式の中間的な位置付けとなる。図9Bは設定の変更の例を示す図であり、条件を変更する場合、Webサービス5側の接続設定ファイル9を更新するとともに、クライアントホスト100D、100Eの接続設定ファイル9D、9Eを更新する。図9Cはクライアントの追加の例を示す図であり、クライアントホスト100Fを追加した場合、クライアントホスト100Fにおける接続設定ファイル9の参照先(URL等)を指定すればよい。クライアントホスト100Gを追加した場合、新たにクライアントホスト100Gに接続設定ファイル9Gを作成する。図9DはWebサービスの追加の例を示す図であり、Webサービス5’を追加した場合、新たにWebサービス5’側に接続設定ファイル9’を作成し、クライアントホスト100A〜100Cの参照先(URL等)を更新するとともに、クライアントホスト100D、100Eの接続設定ファイル9D、9Eを更新する。
図10Aは接続設定ファイルをレジストリホスト側で管理する場合の例を示す図であり、UDDI(Universal Description, Discovery and Integration)等のレジストリ10側に接続設定ファイル9を配置し、クライアントホスト100A〜100EからURL等を利用して参照を行うようにしたものである。この場合、クライアントホスト100A〜100EからWebサービスを検索するのと同時に環境に応じた最適な接続方式の動的な選択が行えるとともに、接続設定ファイル9をレジストリ10に集約できるという利点があるが、反面、導入にあたってレジストリ10を構築する必要がある。サービスの数が多くてその増減幅が大きく、クライアントの数が多くてその増減幅が大きい場合に適している。図10Bは設定の変更の例を示す図であり、条件を変更する場合、レジストリ10側の接続設定ファイル9を更新すればよい。図10Cはクライアントの追加の例を示す図であり、クライアントホスト100Fを追加した場合、クライアントホスト100Fにおける接続設定ファイル9の参照先(URL等)を指定すればよい。図10DはWebサービスの追加の例を示す図であり、Webサービス5Cを追加した場合、レジストリ10側の接続設定ファイル9を更新すればよい。
図11Aは接続設定ファイルをレジストリホスト側とクライアント側とで管理する場合の例を示す図であり、UDDI等のレジストリ10側に接続設定ファイル9を配置し、クライアントホスト100A〜100EからURL等を利用して参照を行うとともに、一部のクライアントホスト100A、100Cに接続設定ファイル9A、9Cを配置して保持・参照を行うようにしたものである。この場合、図10A〜図10Dの利点に加え、クライアントホスト側の独自拡張が行えるという利点があるが、反面、クライアントホスト側のメンテナンスが必要になる。図11Bは設定の変更の例を示す図であり、レジストリ10側の接続設定ファイル9を更新すれば、基本設定は全クライアントホストに反映することができる。独自設定を持つクライアントホスト100A、100Cの設定条件は個別に変更する。図11Cはクライアントの追加の例を示す図であり、クライアントホスト100Fを追加した場合、クライアントホスト100Fにおける接続設定ファイル9の参照先(URL等)を指定すればよい。図11DはWebサービスの追加の例を示す図であり、Webサービス5Cを追加した場合、レジストリ10側の接続設定ファイル9を更新すればよい。
図12〜図16はWebサービス接続機構のより詳細な構成例を示す図であり、図12は接続設定ファイル9がクライアントホスト100側にある例、図13および図14は接続設定ファイル9がサービスホスト500側にある例である。
図12において、自動接続切替モジュール8は、Webサービスクライアント1で実行される共通インタフェース実行用コード11からの接続要求を受け付ける共通インタフェース部801と、Java実行用コード81、JMS実行用コード82、EJB実行用コード83、SOAP実行用コード84のいずれかを介してWebサービス5側への接続を制御する接続管理部802と、接続管理部802からの要求に応じ、接続設定ファイル9の設定内容(選択条件)および環境情報に基づいて使用するバインディングを決定する接続選択決定部803と、接続選択決定部803からの要求に応じ、接続設定ファイル9から設定内容を読み取って解析する設定ファイル読取/解析部804と、クライアント側の環境情報を取得するクライアント環境情報取得部805と、サービスホスト500側に設けられたサーバ環境情報取得エージェント807からサーバ環境情報を取得するサーバ環境情報取得部806とを備えている。クライアント環境情報取得部805およびサーバ環境情報取得部806はまとめて環境情報取得部とみることができる。また、Java実行用コード81、JMS実行用コード82、EJB実行用コード83、SOAP実行用コード84には、それぞれWebサービス5側への接続を行うJava呼出部811、JMS呼出部821、EJB呼出部831、SOAP呼出部841が設けられている。その他の構成は図2に示したものと同様である。
一方、図13においては、接続設定ファイル9がサービスホスト500側に設けられ、自動接続切替モジュール8の設定ファイル読取/解析部804はネットワークを介して接続設定ファイル9の内容を読み取るようになっている。
図14においては、設定ファイル読取/解析部804もサービスホスト500側に設けられ、自動接続切替モジュール8の接続選択決定部803はネットワークを介して設定ファイル読取/解析部804から接続設定ファイル9の内容を読み取るようになっている。
図15においては、接続設定ファイル9がレジストリ10側に設けられ、自動接続切替モジュール8の設定ファイル読取/解析部804はレジストリ10から接続設定ファイル9の内容を読み取るようになっている。
図16においては、接続設定ファイル9がレジストリ10側に設けられ、自動接続切替モジュール8の設定ファイル読取/解析部804はレジストリ10から接続設定ファイル9の内容を読み取るとともに、クライアントホスト100側にXSL(XML Stylesheet Language )等により記述された独自拡張の接続設定ファイル9xを設け、これを設定ファイル読取/解析部804xにより読み取り、設定ファイル変換部808によってXSLT(XML Stylesheet Language Transformations)等の変換を行うようになっている。図17はXSLによる変換の例を示す図であり、(a)はXSLで記述されたクライアントホスト100側の接続設定ファイル9x、(b)は変換(XSLT)の行われた後の接続設定ファイルを示している。ここでは、JavaBindingの条件を変更するとともに、SOAPBindingを削除する例を示している。
図18A〜図20は図12〜図14に示したWebサービス接続機構の動作を示すシーケンス図である。
図18Aは初期化とサービス実行とを分けた場合の初期化のシーケンス例を示す図である。サービス実行前に一度だけサービスの初期化を行うものであるため、複数回サービスを実行する場合に処理時間の短縮が図れる。図18Aにおいて、Webサービスクライアント1から共通インタフェース部801に対してサービスURL、サービス名前空間を伴うサービス初期化の要求を行うと(ステップS1)、共通インタフェース部801は同要求を接続管理部802に伝え(ステップS2)、接続管理部802は接続選択決定部803に対して接続方式取得の要求を行う(ステップS3)。これを受けて、接続選択決定部803は設定ファイル読取/解析部804に接続設定ファイルの情報取得を要求し(ステップS4)、設定ファイル読取/解析部804は接続設定ファイルを読み込み、解析を行って設定情報を接続選択決定部803に返す(ステップS5)。
次いで、接続選択決定部803はクライアント環境情報取得部805に対してクライアント環境情報の取得を要求し(ステップS6)、クライアント環境情報取得部805はクライアント環境情報を収集して接続選択決定部803に返す(ステップS7)。次いで、接続選択決定部803はサーバ環境情報取得部806に対してサーバ環境情報の取得を要求し(ステップS8)、サーバ環境情報取得部806はサーバ環境情報取得エージェント807からサーバ環境情報を取得し(ステップS9、S10)、接続選択決定部803に返す(ステップS11)。そして、接続選択決定部803は接続設定ファイルの設定条件およびクライアント環境情報およびサーバ環境情報に基づいて接続方式を選択し(ステップS12)、選択した接続方式情報を接続管理部802に伝える(ステップS13)。ここではJavaが選択されたものとすると、接続管理部802はJava呼出部811に対してインタフェース初期化を要求し(ステップS14)、初期化を完了する。
図18Bは初期化とサービス実行とを分けた場合のサービス実行のシーケンス例を示す図である。なお、予め図18Aに示した処理によりJavaインタフェースの初期化が行われているものとする。図18Bにおいて、Webサービスクライアント1から共通インタフェース部801に対して関数名と関数引数情報とを伴うサービス実行の要求を行うと(ステップS21)、共通インタフェース部801は同要求を接続管理部802に伝え(ステップS22)、接続管理部802はJava呼出部811に対して実行を要求する(ステップS23)。これに応じ、Java呼出部811はサービス実行を行い、実行結果を接続管理部802に返し(ステップS24)、接続管理部802および共通インタフェース部801を経て実行結果がWebサービスクライアント1に返される(ステップS25、S26)。
図19は初期化とサービス実行とを同時に行う場合であって初期化とサービス実行とを別メソッドで行う場合のシーケンス例を示す図である。一回のサービス実行毎にサービスの初期化を行うものであるが、クライアント側から一つの関数を利用するだけであるため、実行手順の簡略化が可能である。図19において、Webサービスクライアント1から共通インタフェース部801に対してサービスURL、サービス名前空間、関数名、関数引数情報を伴うサービス初期化およびサービス実行の要求を行うと(ステップS31)、共通インタフェース部801は接続管理部802に対してサービスURL、サービス名前空間を伴うサービス初期化の要求を行い(ステップS32)、接続管理部802は接続選択決定部803に対して接続方式取得の要求を行う(ステップS33)。これを受けて、接続選択決定部803は設定ファイル読取/解析部804に接続設定ファイルの情報取得を要求し(ステップS34)、設定ファイル読取/解析部804は接続設定ファイルを読み込み、解析を行って設定情報を接続選択決定部803に返す(ステップS35)。
次いで、接続選択決定部803はクライアント環境情報取得部805に対してクライアント環境情報の取得を要求し(ステップS36)、クライアント環境情報取得部805はクライアント環境情報を収集して接続選択決定部803に返す(ステップS37)。次いで、接続選択決定部803はサーバ環境情報取得部806に対してサーバ環境情報の取得を要求し(ステップS38)、サーバ環境情報取得部806はサーバ環境情報取得エージェント807からサーバ環境情報を取得し(ステップS39、S40)、接続選択決定部803に返す(ステップS41)。そして、接続選択決定部803は接続設定ファイルの設定条件およびクライアント環境情報およびサーバ環境情報に基づいて接続方式を選択し(ステップS42)、選択した接続方式情報を接続管理部802に伝える(ステップS43)。ここではJavaが選択されたものとすると、接続管理部802はJava呼出部811に対してインタフェース初期化を要求し(ステップS44)、初期化を完了する。
次いで、共通インタフェース部801は接続管理部802に対して関数名と関数引数情報とを伴うサービス実行の要求を行い(ステップS45)、接続管理部802はJava呼出部811に対して実行を要求する(ステップS46)。これに応じ、Java呼出部811はサービス実行を行い、実行結果を接続管理部802に返し(ステップS47)、接続管理部802および共通インタフェース部801を経て実行結果がWebサービスクライアント1に返される(ステップS48、S49)。
図20は初期化とサービス実行とを同時に行う場合であって初期化とサービス実行とを一つのメソッドで行う場合のシーケンス例を示す図である。図19の場合と同様に、一回のサービス実行毎にサービスの初期化を行うものであるが、クライアント側から一つの関数を利用するだけであるため、実行手順の簡略化が可能である。図20において、Webサービスクライアント1から共通インタフェース部801に対してサービスURL、サービス名前空間、関数名、関数引数情報を伴うサービス初期化およびサービス実行の要求を行うと(ステップS51)、共通インタフェース部801は同要求を接続管理部802に伝え(ステップS52)、接続管理部802は接続選択決定部803に対して接続方式取得の要求を行う(ステップS53)。これを受けて、接続選択決定部803は設定ファイル読取/解析部804に接続設定ファイルの情報取得を要求し(ステップS54)、設定ファイル読取/解析部804は接続設定ファイルを読み込み、解析を行って設定情報を接続選択決定部803に返す(ステップS55)。
次いで、接続選択決定部803はクライアント環境情報取得部805に対してクライアント環境情報の取得を要求し(ステップS56)、クライアント環境情報取得部805はクライアント環境情報を収集して接続選択決定部803に返す(ステップS57)。次いで、接続選択決定部803はサーバ環境情報取得部806に対してサーバ環境情報の取得を要求し(ステップS58)、サーバ環境情報取得部806はサーバ環境情報取得エージェント807からサーバ環境情報を取得し(ステップS59、S60)、接続選択決定部803に返す(ステップS61)。そして、接続選択決定部803は接続設定ファイルの設定条件およびクライアント環境情報およびサーバ環境情報に基づいて接続方式を選択し(ステップS62)、選択した接続方式情報を接続管理部802に伝える(ステップS63)。ここではJavaが選択されたものとすると、接続管理部802はJava呼出部811に対してインタフェース初期化を要求し(ステップS64)、初期化を完了する。
次いで、接続管理部802はJava呼出部811に対して関数名と関数引数情報とを伴うサービス実行の要求を行う(ステップS65)。これに応じ、Java呼出部811はサービス実行を行い、実行結果を接続管理部802に返し(ステップS66)、接続管理部802および共通インタフェース部801を経て実行結果がWebサービスクライアント1に返される(ステップS67、S68)。
次に、図21〜図23は開発フレームワークによる自動接続切替モジュールのコンポーネント図であり、図21は接続設定ファイル9がクライアントホスト側にある例(図12に対応)、図22は接続設定ファイル9がサービスホスト側にあり、設定ファイル読取/解析部804がクライアントホスト側にある例(図13に対応)、図23は接続設定ファイル9および設定ファイル読取/解析部804がサービスホスト側にある例(図14に対応)である。
図21において、開発フレームワークによるクライアント側自動接続切替モジュール8aおよびサーバ側自動接続切替モジュール8bはjar(Java ARchive)形式もしくはdll(Dynamic Link Library)形式のファイルで提供される。クライアント側自動接続切替モジュール8aにはコンポーネントとして、共通インタフェース部801、接続管理部802、接続選択決定部803、設定ファイル読取/解析部804、クライアント環境情報取得部805、サーバ環境情報取得部806、Java呼出部811、JMS呼出部821、EJB呼出部831、SOAP呼出部841、接続設定ファイル9が含まれ、これらは部品としてクラス定義されている。サーバ側自動接続切替モジュール8bにはコンポーネントとして、サーバ環境情報取得エージェント807が含まれ、部品としてクラス定義されている。図22では、サーバ環境情報取得エージェント807および接続設定ファイル9がサーバ側自動接続切替モジュール8bのコンポーネントとされている。図23では、設定ファイル読取/解析部804、サーバ環境情報取得エージェント807、接続設定ファイル9がサーバ側自動接続切替モジュール8bのコンポーネントとされている。
図24は開発フレームワークによる自動接続切替モジュールの配置図であり、クライアント側自動接続切替モジュール8aはパーソナルコンピュータ等のクライアント実行環境に配置され、サーバ側自動接続切替モジュール8bはサーバ実行環境に配置される。
次に、図25〜図28は開発手順の例を示す図である。先ず、図25においては、クライアント側に、自動接続切替モジュール8および接続設定ファイル9を提供する開発フレームワーク7とマルチバインディング接続モジュール2とが配置され、サーバ側にインタフェース4A〜4D、Webサービス5およびWSDL6が配置されている状態を示している。なお、この状態では接続設定ファイル9の設定内容はデフォルトとなっている。この後、図26に示すように、マルチバインディング接続モジュール2はWSDL6を参照し、Webサービス5の提供する接続方式に対応するスタブ3A〜3Dを生成する。その後、図27に示すように、Webサービスクライアント1が設けられる。その後、図28に示すように、接続設定ファイル9が適切な条件を示すように調整され、Webサービスクライアント1から自動接続切替モジュール8、マルチバインディング接続モジュール2、スタブ(3A〜3D)、インタフェース(4A〜4D)を介してWebサービス5に接続が行えるようになる。
図29はWebサービス接続機構の実装例を示す図であり、Webサービスクライアント1をリポジトリプラグインおよび認証プラグインを含む文書閲覧サービスクライアントとして構成し、開発フレームワーク7により提供される自動接続切替モジュールにより、マルチバインディング接続モジュール2、スタブ3、インタフェース4を介して、リポジトリサービスおよび認証サービスのWebサービス5に接続するようになっている。
以上のように、本発明では、接続設定ファイルの条件(IPアドレスやホスト名の条件、ネットワーク通信速度の条件、CPU・メモリなどマシン情報の条件、環境情報に基づく実行モードの条件等)に基づいて自動的にバインディングを選択するようにしたので、サーバとクライアントが同居する場合にはローカル呼出しのIF(Java)を選択させ、ネットワーク環境の転送データ量に応じたバインディングを選択させ、ホストの処理能力に応じたバインディングを選択させ、開発中はローカル(Java)を選択させ、実運用はリモート(SOAP)を選択させるといった柔軟な接続制御を行うことができる。また、接続の切替えは開発フレームワークにより提供される自動接続切替モジュールにより行われ、クライアントコードから呼出切替機能が分離されているため、バインディングを変更してもクライアントコードを修正する必要はない。更に、接続設定ファイルを環境に応じて様々なロケーションで管理することができる。
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
従来のWebサービス接続機構の構成例を示す図である。 本発明の一実施形態にかかるWebサービス接続機構の構成例を示す図である。 XMLにより記述された接続設定ファイルの例を示す図である。 属性ServiceNameSpaceを含んだ要素OrderOfBindingPriorityの例を示す図である。 要素Importの例を示す図である。 要素Conditionの例を示す図である。 接続設定ファイルをクライアント側で管理する場合の例を示す図である。 接続設定ファイルをクライアント側で管理する場合における設定の変更の例を示す図である。 接続設定ファイルをクライアント側で管理する場合におけるクライアントの追加の例を示す図である。 接続設定ファイルをクライアント側で管理する場合におけるWebサービスの追加の例を示す図である。 接続設定ファイルをサーバ側で管理する場合の例を示す図である。 接続設定ファイルをサーバ側で管理する場合における設定の変更の例を示す図である。 接続設定ファイルをサーバ側で管理する場合におけるクライアントの追加の例を示す図である。 接続設定ファイルをサーバ側で管理する場合におけるWebサービスの追加の例を示す図である。 接続設定ファイルをサーバ側とクライアント側とで管理する場合の例を示す図である。 接続設定ファイルをサーバ側とクライアント側とで管理する場合における設定の変更の例を示す図である。 接続設定ファイルをサーバ側とクライアント側とで管理する場合におけるクライアントの追加の例を示す図である。 接続設定ファイルをサーバ側とクライアント側とで管理する場合におけるWebサービスの追加の例を示す図である。 接続設定ファイルをレジストリホスト側で管理する場合の例を示す図である。 接続設定ファイルをレジストリホスト側で管理する場合における設定の変更の例を示す図である。 接続設定ファイルをレジストリホスト側で管理する場合におけるクライアントの追加の例を示す図である。 接続設定ファイルをレジストリホスト側で管理する場合におけるWebサービスの追加の例を示す図である。 接続設定ファイルをレジストリホスト側とクライアント側とで管理する場合の例を示す図である。 接続設定ファイルをレジストリホスト側とクライアント側とで管理する場合における設定の変更の例を示す図である。 接続設定ファイルをレジストリホスト側とクライアント側とで管理する場合におけるクライアントの追加の例を示す図である。 接続設定ファイルをレジストリホスト側とクライアント側とで管理する場合におけるWebサービスの追加の例を示す図である。 Webサービス接続機構のより詳細な構成例を示す図(その1)である。 Webサービス接続機構のより詳細な構成例を示す図(その2)である。 Webサービス接続機構のより詳細な構成例を示す図(その3)である。 Webサービス接続機構のより詳細な構成例を示す図(その4)である。 Webサービス接続機構のより詳細な構成例を示す図(その5)である。 XSLによる変換の例を示す図である。 初期化とサービス実行とを分けた場合の初期化のシーケンス例を示す図である。 初期化とサービス実行とを分けた場合のサービス実行のシーケンス例を示す図である。 初期化とサービス実行とを同時に行う場合であって初期化とサービス実行とを別メソッドで行う場合のシーケンス例を示す図である。 初期化とサービス実行とを同時に行う場合であって初期化とサービス実行とを一つのメソッドで行う場合のシーケンス例を示す図である。 開発フレームワークによる自動接続切替モジュールのコンポーネント図(その1)である。 開発フレームワークによる自動接続切替モジュールのコンポーネント図(その2)である。 開発フレームワークによる自動接続切替モジュールのコンポーネント図(その3)である。 開発フレームワークによる自動接続切替モジュールの配置図である。 開発手順の例を示す図(その1)である。 開発手順の例を示す図(その2)である。 開発手順の例を示す図(その3)である。 開発手順の例を示す図(その4)である。 Webサービス接続機構の実装例を示す図である。
符号の説明
11 共通インタフェース実行用コード
100 クライアントホスト
2 マルチバインディング接続モジュール
3A Javaスタブ
3B JMSスタブ
3C EJBスタブ
3D SOAPスタブ
4A Javaインタフェース
4B JMSインタフェース
4C EJBインタフェース
4D SOAPインタフェース
5、5A〜5C Webサービス
500 サービスホスト
6 WSDL
7 開発フレームワーク
8 自動接続切替モジュール
8a クライアント側自動接続切替モジュール
8b サーバ側自動接続切替モジュール
81 Java実行用コード
82 JMS実行用コード
83 EJB実行用コード
84 SOAP実行用コード
801 共通インタフェース部
802 接続管理部
803 接続選択決定部
804 設定ファイル読取/解析部
804x 設定ファイル読取/解析部
805 クライアント環境情報取得部
806 サーバ環境情報取得部
807 サーバ環境情報取得エージェント
808 設定ファイル変換部
811 Java呼出部
821 JMS呼出部
831 EJB呼出部
841 SOAP呼出部
9、9A〜9G、9x 接続設定ファイル
10 レジストリ

Claims (21)

  1. マルチバインディング機能を提供しているWebサービスに接続するための接続装置であって、
    使用するバインディングの選択条件を保持する接続設定手段と、
    クライアントで実行される共通インタフェース実行用コードからの接続要求を受け付ける共通インタフェース手段と、
    上記接続設定手段から選択条件を取得する読取/解析手段と、
    クライアントおよび/もしくはサーバの環境情報を取得する環境情報取得手段と、
    上記選択条件および上記環境情報に基づいて使用するバインディングを決定する接続選択決定手段と、
    決定されたバインディングに対応する実行コードによりWebサービスへの接続を行う呼出手段とを備えたことを特徴とするWebサービス接続装置。
  2. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、XMLにより記述された接続設定ファイルからなることを特徴とするWebサービス接続装置。
  3. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、接続対象のWebサービスのIPアドレスがローカルホストを指すIPアドレスである場合に、Javaバインディングを優先的に使用する旨の記述を含み、
    リモートホストを指すIPアドレスである場合に、SOAPバインディング、JMSバインディング、EJBバインディングのいずれかを優先的に使用する旨の記述を含むことを特徴とするWebサービス接続装置。
  4. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、クライアントとサーバ間の通信速度に応じて優先的に使用するバインディングを指定する記述を含むことを特徴とするWebサービス接続装置。
  5. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、動作環境がデバッグモードであるか否かに応じて優先的に使用するバインディングを指定する記述を含むことを特徴とするWebサービス接続装置。
  6. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、上記クライアントに保持されることを特徴とするWebサービス接続装置。
  7. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、上記サーバに保持され、上記クライアントから参照されることを特徴とするWebサービス接続装置。
  8. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、一群の上記クライアントに保持されるとともに、他の一群の上記クライアントにつき上記サーバに保持され、他の一群の上記クライアントから参照されることを特徴とするWebサービス接続装置。
  9. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、サービスレジストリのホストに保持され、上記クライアントから参照されることを特徴とするWebサービス接続装置。
  10. 請求項1に記載のWebサービス接続装置において、
    上記接続設定手段は、サービスレジストリのホストに保持されて上記クライアントから参照されるとともに、一群の上記クライアントに保持されることを特徴とするWebサービス接続装置。
  11. 請求項1に記載のWebサービス接続装置において、
    上記読取/解析手段は、上記クライアントに設けられることを特徴とするWebサービス接続装置。
  12. 請求項1に記載のWebサービス接続装置において、
    上記読取/解析手段は、上記サーバに設けられることを特徴とするWebサービス接続装置。
  13. 請求項1に記載のWebサービス接続装置において、
    上記環境情報取得手段は、上記クライアントの環境情報を取得するクライアント環境情報取得手段を含むことを特徴とするWebサービス接続装置。
  14. 請求項1に記載のWebサービス接続装置において、
    上記環境情報取得手段は、上記サーバの環境情報を取得するサーバ環境情報取得手段を含むことを特徴とするWebサービス接続装置。
  15. 請求項14に記載のWebサービス接続装置において、
    上記サーバ環境情報取得手段は、上記サーバに設けられたサーバ環境情報取得エージェントから情報を取得することを特徴とするWebサービス接続装置。
  16. 請求項1に記載のWebサービス接続装置において、
    上記共通インタフェース手段は、初期化とサービス実行とを分け、サービス実行前に1度だけ初期化を行うことを特徴とするWebサービス接続装置。
  17. 請求項1に記載のWebサービス接続装置において、
    上記共通インタフェース手段は、初期化とサービス実行とを同時に行うことを特徴とするWebサービス接続装置。
  18. 請求項17に記載のWebサービス接続装置において、
    上記初期化と上記サービス実行とを別のメソッドにより行うことを特徴とするWebサービス接続装置。
  19. 請求項17に記載のWebサービス接続装置において、
    上記初期化と上記サービス実行とを一つのメソッドにより行うことを特徴とするWebサービス接続装置。
  20. マルチバインディング機能を提供しているWebサービスに接続するための接続方法であって、
    使用するバインディングの選択条件を保持し、
    クライアントで実行される共通インタフェース実行用コードからの接続要求を受け付け、
    クライアントおよび/もしくはサーバの環境情報を取得し、
    上記選択条件および上記環境情報に基づいて使用するバインディングを決定し、
    決定されたバインディングに対応する実行コードによりWebサービスへの接続を行うことを特徴とするWebサービス接続方法。
  21. マルチバインディング機能を提供しているWebサービスに接続するための接続プログラムであって、
    クライアントで実行される共通インタフェース実行用コードからの接続要求を受け付ける共通インタフェース手段、
    使用するバインディングの選択条件を取得する読取/解析手段、
    クライアントおよび/もしくはサーバの環境情報を取得する環境情報取得手段、
    上記選択条件および上記環境情報に基づいて使用するバインディングを決定する接続選択決定手段、
    決定されたバインディングに対応する実行コードによりWebサービスへの接続を行う呼出手段として、
    コンピュータを機能させることを特徴とするWebサービス接続プログラム。
JP2006191988A 2005-08-01 2006-07-12 Webサービス接続装置 Withdrawn JP2007066294A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006191988A JP2007066294A (ja) 2005-08-01 2006-07-12 Webサービス接続装置
US11/489,619 US7698362B2 (en) 2005-08-01 2006-07-20 Web service connecting apparatus and web service connecting method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005222978 2005-08-01
JP2006191988A JP2007066294A (ja) 2005-08-01 2006-07-12 Webサービス接続装置

Publications (1)

Publication Number Publication Date
JP2007066294A true JP2007066294A (ja) 2007-03-15

Family

ID=37928351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006191988A Withdrawn JP2007066294A (ja) 2005-08-01 2006-07-12 Webサービス接続装置

Country Status (1)

Country Link
JP (1) JP2007066294A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009135583A (ja) * 2007-11-28 2009-06-18 Toshiba Tec Corp クライアント装置、アプリケーションプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009135583A (ja) * 2007-11-28 2009-06-18 Toshiba Tec Corp クライアント装置、アプリケーションプログラム

Similar Documents

Publication Publication Date Title
JP3915797B2 (ja) プラグアンドプレイ機能を有するフレームワークおよびその再構成方法
US7844739B2 (en) Method for aspect oriented web service invocation
US7624404B2 (en) Communication method selection for exchanging information between service requester and service provider
US7539734B2 (en) Systems for dynamic inter-operability of nodes in service grids
US20040068554A1 (en) Web service-enabled portlet wizard
US20030225894A1 (en) Image forming apparatus including web service functions
JP5188284B2 (ja) サービス接続システム及びサービス接続方法
EP1563408A1 (en) Method and device for defining objects allowing to establish a device management tree for mobile communication devices
US9323587B2 (en) Method and system for automatic detecting and resolving APIs
US20100269063A1 (en) Information processing apparatus and control method
US7822864B2 (en) Communication apparatus, program product for adding communication mechanism to communication apparatus for providing improved usability and communication efficiency, and recording medium storing program product
US20120102479A1 (en) Automated service version upgrading
KR100901281B1 (ko) 유비쿼터스 웹서비스 방법
JP2005322222A (ja) 通信機能付加方法、プログラム、記録媒体及び通信装置
JP2003141002A (ja) Url長変換システム及びそのプログラム
Frank et al. Using an interface proxy to host versioned web services
JP2007066294A (ja) Webサービス接続装置
JP2007066295A (ja) Webサービス接続用開発フレームワーク
US7698362B2 (en) Web service connecting apparatus and web service connecting method
JP2005055983A (ja) サービス管理方法、サービス管理装置および制御プログラム
WO2006040991A1 (ja) 端末装置、サーバ装置、及びWebサービス提供システム
JP5389413B2 (ja) 画像形成システム
JP4198562B2 (ja) 通信クライアント、通信サーバ、通信システム及び通信方法
JP2005157613A (ja) 情報管理装置
JP2000148620A (ja) サーバ・クライアントシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090409

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100412