JP5020046B2 - Information processing apparatus, information processing method, and information processing program - Google Patents
Information processing apparatus, information processing method, and information processing program Download PDFInfo
- Publication number
- JP5020046B2 JP5020046B2 JP2007316129A JP2007316129A JP5020046B2 JP 5020046 B2 JP5020046 B2 JP 5020046B2 JP 2007316129 A JP2007316129 A JP 2007316129A JP 2007316129 A JP2007316129 A JP 2007316129A JP 5020046 B2 JP5020046 B2 JP 5020046B2
- Authority
- JP
- Japan
- Prior art keywords
- communication
- interface
- soap
- plug
- communication plug
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Description
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関し、特に所定の通信プロトコルに応じた通信を実行する情報処理装置、情報処理方法、及び情報処理プログラムに関する。 The present invention relates to an information processing device, an information processing method, and an information processing program, and more particularly to an information processing device, an information processing method, and an information processing program that execute communication according to a predetermined communication protocol.
従来、SOAP(Simple Object Access Protocol)通信によってネットワークを介したサービスの授受が行われている(例えば、特許文献1)。SOAPはトランスポート層にHTTP(HyperText Transfer Protocol)を用いることが可能であるため、インターネットを介したRPC(Remote Procedure Call)の実現が可能とされている。 Conventionally, service is exchanged via a network by SOAP (Simple Object Access Protocol) communication (for example, Patent Document 1). Since SOAP can use HTTP (HyperText Transfer Protocol) in the transport layer, it is possible to implement RPC (Remote Procedure Call) via the Internet.
斯かるSOAPによるRPCを実現する場合、クライアント側及びサーバ側のそれぞれにSOAPエンジンと呼ばれるモジュールが必要とされる。SOAPエンジンは、SOAPメッセージのシリアライズ及びデシリアライズ等を行い、SOAP通信を利用する上位のソフトウェアモジュールに対して透過的なメソッド呼び出しの手段を提供する。 In order to realize such RPC by SOAP, a module called a SOAP engine is required on each of the client side and the server side. The SOAP engine performs serialization and deserialization of the SOAP message, and provides a method call method that is transparent to an upper software module using the SOAP communication.
現状において、SOAPエンジンの実装は各種存在する。具体的には、各ベンダによって提供されるSOAPエンジンの仕様は必ずしも同一ではない。
しかしながら、いずれの実装を利用するかはユーザの好みや、システムの実行環境に対する相性等によって選択されうるところ、SOAPエンジンの切り替えは、SOAPエンジンを利用するソフトウェアプログラムにも影響を及ぼし、例えば、ソースコードの修正や再リンク等が必要とされる。 However, which implementation to use can be selected according to the user's preference, compatibility with the system execution environment, etc. Switching the SOAP engine also affects software programs that use the SOAP engine. Code modifications and relinks are required.
したがって、SOAP通信を利用するアプリケーション等が組み込まれた機器又は情報処理装置において、ユーザによってSOAPエンジンの切り替えが要求された場合、非常に煩雑な作業が必要とされるという問題があった。 Therefore, in a device or information processing apparatus in which an application using SOAP communication or the like is incorporated, there is a problem that a very complicated operation is required when the user requests switching of the SOAP engine.
本発明は、上記の点に鑑みてなされたものであって、所定の通信プロトコルによる通信を実行するために利用される下位のプログラムモジュールの仕様による上位のプログラムに対する影響を軽減させることのできる情報処理装置、情報処理方法、及び情報処理プログラムの提供を目的とする。 The present invention has been made in view of the above points, and is information that can reduce the influence on the upper-level program due to the specification of the lower-level program module used for executing communication by a predetermined communication protocol. An object is to provide a processing device, an information processing method, and an information processing program.
そこで上記課題を解決するため、本発明は、通信インタフェース提供手段と通信プラグイン手段と通信プロトコルエンジン手段とを有し、前記通信インタフェース提供手段は、遠隔呼び出しに係るメソッドを呼び出すためのインタフェースを備え、該インタフェースの呼び出しに応じて、前記メソッドについて所定の通信プロトコルに応じたシリアライズ及びデシリアライズの実行を動的に関連付けられている前記通信プラグイン手段に予め定められたインタフェースを介して要求し、前記通信プラグイン手段は、前記予め定められたインタフェースを介した要求に応じ、当該通信プラグイン手段が対応する前記通信プロトコルエンジン手段に前記シリアライズ及びデシリアライズの実行を要求し、前記通信プロトコルエンジン手段は、前記シリアライズ及びデシリアライズを複数の仕様の中のいずれかの仕様に基づいて実行することを特徴とする。 In order to solve the above-described problem, the present invention includes a communication interface providing unit, a communication plug-in unit, and a communication protocol engine unit, and the communication interface providing unit includes an interface for calling a method related to remote calling. In response to the call of the interface, the method is requested via the predetermined interface to the communication plug-in means dynamically associated with the execution of serialization and deserialization according to a predetermined communication protocol, In response to a request through the predetermined interface, the communication plug-in means requests the communication protocol engine means corresponding to the communication plug-in means to execute the serialization and deserialization, and the communication protocol engine means Said And executes based Realize and deserialization to any of the specifications of a plurality of specifications.
このような情報処理装置では、所定の通信プロトコルによる通信を実行するために利用される下位のプログラムモジュールの仕様による上位のプログラムに対する影響を軽減させることができる。 In such an information processing apparatus, it is possible to reduce the influence on the upper program due to the specification of the lower program module used for executing communication by a predetermined communication protocol.
本発明によれば、所定の通信プロトコルによる通信を実行するために利用される下位のプログラムモジュールの仕様による上位のプログラムに対する影響を軽減させることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供することができる。 According to the present invention, an information processing apparatus, an information processing method, and an information processing program capable of reducing the influence on a higher-order program due to specifications of a lower-order program module used for executing communication using a predetermined communication protocol Can be provided.
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるシステム構成例を示す図である。同図において、一台以上の複合機1と一台以上のサーバ2とは、LAN(Local Area Network)等のネットワーク3(有線又は無線の別は問わない。)を介して接続されている。複合機1は、コピー機能、印刷機能、スキャナ機能、及びFAX機能等を一台の筐体において実現する画像形成装置であり、本実施の形態において情報処理装置の一例である。各複合機1及び各サーバ2との間では、SOAP(Simple Object Access Protocol)による通信が行われる。複合機1はサーバ2におけるWebサービスの機能をSOAPのRPC(Remote Procedure Call)によって呼び出す。サーバ2は、呼び出された機能を実行し、応答を複合機1に対して返信する。なお、サーバ2として機能する複合機1が存在してもよい。この場合、複合機1同士の間で、サービスの実行要求(SOAPリクエスト)、及びそれに対する応答の返信(SOAPレスポンス)が行われる。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram showing an example of a system configuration in the embodiment of the present invention. In the figure, one or more
図2は、本発明の実施の形態における複合機のハードウェア構成の一例を示す図である。複合機1のハードウェアとしては、コントローラ601と、オペレーションパネル602と、ファクシミリコントロールユニット(FCU)603と、撮像部604と、印刷部605が存在する。
FIG. 2 is a diagram illustrating an example of a hardware configuration of the multifunction peripheral according to the embodiment of the present invention. As the hardware of the
コントローラ601は、CPU611、ASIC612、NB621、SB622、MEM−P631、MEM−C632、HDD(ハードディスクドライブ)633、メモリカードスロット634、NIC(ネットワークインタフェースコントローラ)641、USBデバイス642、IEEE1394デバイス643、セントロニクスデバイス644により構成される。
The
CPU611は、種々の情報処理用のICである。ASIC612は、種々の画像処理用のICである。NB621は、コントローラ601のノースブリッジである。SB622は、コントローラ601のサウスブリッジである。MEM−P631は、複合機1のシステムメモリである。MEM−C632は、複合機1のローカルメモリである。HDD633は、複合機1のストレージである。メモリカードスロット634は、メモリカード635をセットするためのスロットである。NIC641は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス642は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス643は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス644は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル602は、オペレータが複合機1に入力を行うためのハードウェア(操作装置)であると共に、オペレータが複合機1から出力を得るためのハードウェア(表示装置)である。
The
図3は、本発明の実施の形態における複合機のソフトウェア構成例を示す図である。同図に示されるように、複合機1のソフトウェアは、基本プラットフォーム10、システムサービス20、及び一以上のアプリケーション30等より構成される。各ソフトウェアは、HDDの中633又はメモリカード635等に記録されているプログラムがCPU611に実行させる処理によってその機能を実現する。
FIG. 3 is a diagram illustrating a software configuration example of the multifunction machine according to the embodiment of the present invention. As shown in the figure, the software of the
基本プラットフォーム10は、OS(Operating System)11、JVM(Java(登録商標) Virtual Machine)12、及びOSGi(Open Services Gateway Initiative)フレームワーク13等を含み、システムサービス20及びアプリケーション30の実行環境を提供する。
The
OS11は、いわゆるOS(Operating System)である。JVM12は、Java(登録商標)バイトコードをOS11上で動作可能なネイティブコードに変換して実行する。OSGiフレームワーク13は、OSGiアライアンスによる標準化技術であり、Java(登録商標)言語に基づいたオープンなソフトウェア部品化技術に基づいて作成されたソフトウェア部品の実行環境を提供するソフトウェアプラットフォームである。OSGiフレームワーク13上において、Java(登録商標)言語のソフトウェアは「バンドル」と呼ばれるソフトウェア部品の形で実装される。一つのバンドルは、一つのJAR(Java(登録商標) ARchive)ファイルによって構成され、それぞれ独立して動的に(装置の再起動を要することなく)インストール可能である。
The OS 11 is a so-called OS (Operating System). The JVM 12 converts Java (registered trademark) bytecode into native code operable on the OS 11 and executes it. The OSGi
システムサービス20は、各種のアプリケーション30より共通に利用される機能(サービス)を提供する部分であり、SOAP通信制御部21及びHTTP(HyperText Transfer Protocol)通信制御部22等を含む。
The
SOAP通信制御部21は、SOAPによる通信を制御する。HTTP通信制御部22は、SOAPメッセージを転送するためのHTTP通信を制御する。
The SOAP
アプリケーション30は、システムサービス20を利用してより応用度の高い機能を提供するソフトウェアである。本実施の形態では、SOAP通信制御部21の利用者として位置付けられる。
The
SOAP通信制御部21について更に詳しく説明する。図4は、SOAP通信制御部の構成例を示す図である。図4中、図3と同一部分には同一符号を付している。同図において、SOAP通信制御部21には、SOAPエンジン211a及び211b(以下、総称する場合「SOAPエンジン211」という。)と、SOAP通信プラグイン212a及び212b(以下、総称する場合「SOAP通信プラグイン212」という。)と、SOAP通信モジュール213とを含む。
The SOAP
SOAPエンジン211は、WSDL(Web Services Description Language)によって定義されるメソッド(サーバ20におけるWebサービス20のメソッド)をRPC(Remote Procedure Call)によって呼び出すためのSOAPの実装であり、一般的にSOAPエンジンと呼ばれるプログラムモジュールある。したがって、SOAPエンジン211は、WSDLの定義に応じて実装される。SOAPエンジン211は、主としてSOAPメッセージのシリアライズ及びデシリアライズ等を実行する。本実施の形態において、SOAPエンジン211aとSOAPエンジン211bとは、その実装が異なる。したがって、解釈可能なSOAPメッセージの形式が異なる。また、SOAPエンジン211aとSOAPエンジン211bとは、利用者(ソフトウェア)側に対するインタフェースも異なりうる。したがって、SOAPエンジン211aを利用する場合とSOAPエンジン211bを利用する場合とでは、利用者側において異なる実装が要求される。
The SOAP
SOAP通信プラグイン212は、各SOAPエンジン211に固有の仕様を吸収し、SOAP通信モジュール213との間で予め定められたインタフェースの呼び出しに応じてSOAPエンジン211にシリアライズ及びデシリアライズを実行させるプログラムモジュールである。SOAP通信プラグイン212は、SOAPエンジン211ごとに実装される。例えば、SOAP通信プラグイン212aはSOAPエンジン211aに対応し、SOAP通信プラグイン212bはSOAPエンジン212bに対応する。
The SOAP communication plug-in 212 absorbs the specifications specific to each
SOAP通信モジュール213は、SOAP通信プラグイン212を動的に切り替えて利用可能であり、SOAPエンジン211の相違に対して共通のインタフェースをアプリケーション30に対して提供するプログラムモジュールである。したがって、アプリケーション30は、SOAP通信モジュール213によって提供されるインタフェースによってSOAPエンジン211の相違を意識することなくWebサービスの呼び出し(メソッドの遠隔呼び出し)を実行することができる。但し、SOAP通信モジュール213は、WSDLによって定義されるメソッドをアプリケーションに提供するものである。したがって、SOAP通信モジュール213はWSDLの定義に応じて実装される。
The
HTTPクライアントサービス221は、HTTP通信制御部22に含まれるプログラムモジュールであり、HTTPリクエストの送信制御を行う。
The
なお、各SOAP通信プラグイン212及びSOAP通信モジュール213は、それぞれOSGiフレームワーク13上で動作するバンドル又はJARファイルとして実装される。
Each SOAP communication plug-in 212 and
また、図中では、二つのSOAPエンジン211のみが示されているが、三つ以上のSOAPエンジン211が存在してもよい。但し、或る時点において利用可能なSOAPエンジン211は一つである。すなわち、図示されるように、二つのSOAPエンジン211と二つのSOAP通信プラグイン212がインストールされている状態において、実際に有効なSOAPエンジン211及びSOAP通信プラグイン212は、いずれか一方のみである。
In the figure, only two
SOAP通信モジュール213及びSOAP通信プラグイン211について更に詳しく説明する。図5は、SOAP通信モジュール及びSOAP通信プラグインのクラス構成例を示す図である。
The
同図において、SOAP通信モジュール213は、起動クラス2131、SOAP通信プラグイン検出クラス2132、SOAPクライアント生成クラス2133、SOAPクライアントサービスインタフェースクラス2134、SOAPクライアントサービスクラス2135、SOAPクライアントプラグインインタフェースクラス2136、スキーマ生成インタフェースクラス2137、スキーマ1インタフェースクラス2138−1、及びスキーマnインタフェースクラス2138−2等より構成される。
In the figure, a
起動クラス2131は、SOAP通信モジュール213の起動時の初期処理を起動させるクラスである。起動クラス2131は、起動メソッドを有する。起動メソッドは、SOAP通信モジュール213の起動要求をOSGiフレームワーク13より受け付け、起動時の初期処理を起動させる。
The
SOAP通信プラグイン検出クラス2132は、SOAP通信モジュール213の起動、又は新たなSOAP通信プラグイン212のインストールの検知に応じてSOAP通信プラグイン212を利用可能な状態にするための処理を起動するクラスである。
The SOAP communication plug-in
SOAP通信プラグイン検出クラス2132は、起動受付メソッド、プラグイン検出受付メソッド、及びプラグインリスナー登録メソッド等を有する。起動受付メソッドは、起動クラス2131よりSOAP通信モジュール213の起動通知を受け付け、それに応じて現在有効なSOAP通信プラグイン212を利用可能な状態にするための処理を起動する。プラグイン検出受付メソッドは、OSGiフレームワーク13よりSOAP通信プラグイン212のインストール通知を受け付け、それに応じて新たにインストールされたSOAP通信プラグイン212を利用可能な状態にするための処理を起動する。プラグインリスナー登録メソッドは、OSGiフレームワーク13上に対する新たなソフトウェア(バンドル)のインストールの通知を、OSGiフレームワーク13に要求する。すなわち、プラグインリスナー登録メソッドによるOSGiフレームワーク13に対する要求により、プラグイン検出受付メソッドを介してSOAP通信プラグイン212のインストールがSOAP通信プラグイン検出クラス2132に通知される。
The SOAP communication plug-in
SOAPクライアント生成クラス2133は、現在有効なSOAP通信プラグイン212と、SOAP通信モジュール213との関連付けの生成又は削除を実行するクラスである。SOAPクライアント生成クラス2133は、SOAPクライアントサービス生成メソッド及びSOAPクライアントサービス削除メソッド等を有する。SOAPクライアントサービス生成メソッドは、SOAPクライアントサービス2135のインスタンスを生成することにより、SOAP通信プラグイン212との関連付けを生成する。SOAPクライアントサービス削除メソッドは、SOAPクライアントサービス2135のインスタンスを削除することにより、SOAP通信プラグイン212との関連付けを削除する。
The SOAP
SOAPクライアントサービスインタフェースクラス2134は、WSDLに定義されたWebサービスのメソッドを呼び出すためのインタフェースが定義された仮想クラスである。SOAPクライアントサービスインタフェースクラス2134に図示されている「SOAPアクション1実行」や「SOAPアクション2実行」等は、WSDLに定義されたメソッドを表現したものである。アプリケーション30は、SOAPクライアントサービスインタフェースクラス2134のメソッドを呼び出すことで、Webサービスの機能を透過的に呼び出すことができる。
The SOAP client
SOAPクライアントサービスクラス2135は、SOAPクライアントサービスインタフェースクラス2134において定義されたインタフェースの実装が定義されたクラスである。SOAPクライアントサービスクラス2135は、SOAPクライアント属性を有する。SOAPクライアント属性は、SOAPクライアントプラグインインタフェース型による属性であり、利用対象とされたSOAP通信プラグイン212との関連付けを保持する。この関連付けによって当該SOAP通信プラグイン212は利用可能とされる。
The SOAP
SOAPクライアントインタフェースクラス2136は、SOAP通信プラグイン212が実装すべきメソッドが定義された仮想クラスである。当該メソッドとしては、WSDLに定義されたメソッドごとにSOAPメッセージのシリアライズ用のメソッド(例えば、SOAPアクション1シリアライズメソッド、SOAPアクションnシリアライズメソッド)及びデSOAPメッセージのデシリアライズ用のメソッドがある。
The SOAP client interface class 2136 is a virtual class in which methods to be implemented by the SOAP communication plug-in 212 are defined. The method includes a method for serializing a SOAP message (for example, a
スキーマ生成インタフェース213は、スキーマの実体の生成を行うクラスである。本実施の形態においてスキーマとは、データ型(基本データ型や構造体等を含む)を意味する。すなわち、スキーマ生成インタフェース213は、Webサービスのメソッドの引数や戻り値として利用される各種データ型の実体を生成する。
The
スキーマ1インタフェースクラス2138−1及びスキーマnインタフェースクラス2138n(以下、総称する場合「スキーマインタフェースクラス2138」という。)は、スキーマ(データ型)を表現する仮想クラスであり、スキーマごとに定義される。したがってそのインスタンス(厳密にはスキーマインタフェースクラス2138のサブクラスのインスタンス)は、当該スキーマのデータそのものとなる。各スキーマインタフェースクラス2138は、当該スキーマの値を設定するためのメソッド及び取得するためのメソッドを有する。
The
上記の中で、SOAPクライアントサービスインタフェースクラス2134、スキーマ生成インタフェースクラス2137、及びスキーマインタフェースクラス2138は、アプリケーション30より直接利用(操作)される。
Among the above, the SOAP client
一方、SOAP通信プラグインクラス212a及び212bは、それぞれ、SOAPクライアントクラス2121、スキーマ生成クラス2122、スキーマ1クラス2123−1、スキーマnクラス2133−2等より構成される。なお、SOAP通信プラグインクラス212a及び212bのそれぞれのクラスを総称する場合、それぞれを区別するために参照番号に付されている「a」又は「b」の符号は削除して説明する。
On the other hand, the SOAP communication plug-in
SOAPクライアントクラス2121は、SOAPクライアントプラグインインタフェースクラス2136のサブクラスである。SOAPクライアントクラス2121には、対応するSOAPエンジン211を利用してシリアライズ及びデシリアライズを実行するための処理が実装される。
The SOAP client class 2121 is a subclass of the SOAP client plug-in interface class 2136. In the SOAP client class 2121, processing for executing serialization and deserialization using the corresponding
スキーマ生成クラス2122は、スキーマ生成インタフェース2137のサブクラスであり、対応するSOAPエンジン211に応じたスキーマの実体の生成処理が実装される。
The
スキーマ1クラス2123−1及びスキーマクラス2133−2(以下、総称する場合「スキーマクラス2123」という。)は、それぞれのスキーマ(データ型)に係るスキーマインタフェースクラス2138のサブクラスであり、対応するSOAPエンジン211に応じたスキーマの実体を操作するための処理が実装される。
The
以上のように、各SOAP通信プラグイン212は、SOAP通信モジュール213において定義されているインタフェース(SOAPクライアントプラグインインタフェース2136、スキーマ生成インタフェース2137、及びスキーマインタフェースクラス2138等)を継承することにより、SOAP通信モジュール213によって予め定められたインタフェースにより呼び出し可能とされている。また、SOAP通信プラグイン212を構成するクラスは、SOAP通信モジュール213が予定している、予め定められたクラス名によって実装される。
As described above, each SOAP communication plug-in 212 inherits the interfaces defined in the SOAP communication module 213 (SOAP client plug-in interface 2136,
以下、複合機1におけるSOAP通信に関する処理手順について説明する。図6は、SOAP通信モジュール起動時の処理手順を説明するためのシーケンス図である。なお、シーケンス図において、各クラスのインスタンス(オブジェクト)には、当該クラスと同一の参照番号を付す。また、「XXXクラス」のインスタンスを「XXXオブジェクト」と呼ぶ。
Hereinafter, a processing procedure related to SOAP communication in the
例えば、複合機1の起動時等において、OSGiフレームワーク13は、起動オブジェクト2131の起動メソッドを呼び出すことにより、SOAP通信モジュール213の起動を要求する(S101)。起動オブジェクト2131は、起動メソッドの呼び出しに応じ、SOAP通信プラグイン検出オブジェクト2132の起動受付メソッドを呼び出す(S102)。SOAP通信プラグイン検出オブジェクト2132は、起動受付メソッドの呼び出しに応じ、自らのプラグインイントールリスナー登録メソッドを呼び出す(S103)。続いて、SOAP通信プラグイン検出オブジェクト2132は、プラグインイントールリスナー登録メソッド内において、ソフトウェアがインストールされた際の通知をOSGiフレームワーク13に要求する(S104)。当該要求では、SOAP通信プラグイン検出オブジェクト2132の識別情報(例えば、参照)がOSGiフレームワーク13に引き渡される。
For example, when the
続いて、SOAP通信プラグイン検出オブジェクト2132は、SOAPクライアント生成オブジェクト2133のSOAPクライアントサービス生成メソッドを呼び出すことにより、現在有効なSOAP通信プラグイン212を利用可能な状態とするよう要求する(S105)。SOAPクライアント生成オブジェクト2133は、SOAPクライアントサービス生成メソッドの呼び出しに応じ、現在有効なSOAP通信プラグイン212におけるSOAPクライアントクラス2121及びスキーマ生成クラス2122のクラス名を判別する。
Subsequently, the SOAP communication plug-in
現在有効なSOAP通信プラグイン212は、HDD633等の記憶装置に記録されている情報に基づいて判断すればよい。具体的には、SOAP通信プラグイン212は、予め定められた場所(フォルダ)に、予め定められた名前(プラグイン名)によってインストールされるのであれば、当該フォルダに保存されているファイルに基づいて判別すればよい。また、SOAPクライアントクラス2121及びスキーマ生成クラス2122のクラス名は、当該SOAP通信プラグイン212のパッケージ(JARファイル)内における定義情報等に基づいて判別すればよい。なお、ここでは、現在有効なSOAP通信プラグイン212は、SOAP通信プラグイン212aであるとする。
The currently valid SOAP communication plug-in 212 may be determined based on information recorded in a storage device such as the
続いて、SOAPクライアント生成オブジェクト2133は、SOAPクライアントサービスオブジェクト2135を生成(インスタンス化)する(S106)。この際、例えば、コンストラクタの引数としてSOAP通信プラグイン212aにおけるSOAPクライアントクラス2121aのクラス名がSOAPクラアイントサービスオブジェクト2135に引き渡される。
Subsequently, the SOAP
SOAPクライアントサービスオブジェクト2135は生成に応じ、引き渡されたクラス名に基づいてSOAP通信プラグイン212aのSOAPクライアントオブジェクト2121aを生成(インスタンス化)する(S107)。SOAPクライアントサービスオブジェクト2135は、生成されたSOAPクライアントオブジェクト2121aの参照をSOAPクライアント属性に保持する。
In response to the generation, the SOAP
続いて、SOAPクライアント生成オブジェクト2133は、スキーマ生成インタフェースオブジェクト2137を生成(インスタンス化)する(S108)。この際、例えば、コンストラクタの引数としてSOAP通信プラグイン212aにおけるスキーマ生成クラス2122aのクラス名がスキーマ生成インタフェースオブジェクト2137に引き渡される。
Subsequently, the SOAP
スキーマ生成インタフェースオブジェクト2137は生成に応じ、引き渡されたクラス名に基づいてSOAP通信プラグイン212aのスキーマ生成オブジェクト2122aを生成(インスタンス化)する(S109)。スキーマ生成インタフェースオブジェクト2137は、生成されたスキーマ生成オブジェクト2122aの参照を保持する。
In response to the generation, the schema
以上によって、SOAP通信プラグイン212を介してSOAPエンジン211aを用いたSOAP通信が可能となる。なお、SOAPエンジン11は、予めインストールされている必要がある。
As described above, SOAP communication using the
次に、図7は、アプリケーションによるSOAP通信モジュール利用時の処理手順を説明するためのシーケンス図である。 Next, FIG. 7 is a sequence diagram for explaining a processing procedure when the SOAP communication module is used by an application.
アプリケーション30は、SOAPによって呼び出すメソッドにおいて利用するスキーマ(ここでは、スキーマ1とする)に対応するスキーマ1オブジェクト2123a−1を生成する(S201)。なお、厳密には、スキーマオブジェクト2123はスキーマ生成オブジェクト212aを介して生成されるが、ここでは便宜上省略している。
The
続いて、アプリケーション30は、生成されたスキーマ1オブジェクト2133a−1に対して値を設定する(S202)。続いて、アプリケーション30は、SOAPクライアントサービスオブジェクト2135に対して、SOAPクライアントサービスインタフェース2134において定義されているWebサービスのメソッドのうち所望のメソッド(例えば、「SOAPアクション1実行メソッド」)の呼び出しを実行する(S203)。当該メソッドの引数には、スキーマ1オブジェクト2123a−1が指定される。
Subsequently, the
続いて、SOAPクライアントサービスオブジェクト2135は、SOAPクライアント属性にその参照が保持されている、SOAP通信プラグイン212aのSOAPクライアントオブジェクト2121aに、SOAPアクション1実行メソッドの呼び出し要求のシリアライズを要求する(S204)。SOAPクライアントオブジェクト2121aは、SOAPエンジン211aにシリアライズを実行させ、その結果をSOAPクライアントサービスオブジェクト2135に返却する(S205)。
Subsequently, the SOAP
続いて、SOAPクライアントサービス2135は、シリアライズされたXML(eXtensible Markup Language)データを含むSOAPメッセージ(SOAPリクエスト)の送信をHTTPクライアントサービス221に要求する(S206)。HTTPクライアントサービス221は、SOAPリクエストをサーバ2に送信し、その処理結果として返信されるSOAPメッセージ(SOAPレスポンス)をサーバ2より受信する。HTTPクライアントサービス221は、受信されたSOAPレスポンスをSOAPクライアントサービスオブジェクト2135に返却する(S207)。
Subsequently, the
SOAPクライアントサービスオブジェクト2135は、返却されたSOAPレスポンスのデシリアライズ(XML形式からプログラム言語に応じたデータ形式への変換)をSOAP通信プラグイン212aのSOAPクライアントオブジェクト2121aに要求する(S208)。SOAPクライアントオブジェクト2121aは、SOAPエンジン211aにデシリアライズを実行させ、その結果をSOAPクライアントサービスオブジェクト2135に返却する(S209)。
The SOAP
SOAPクライアントサービスオブジェクト2135は、デシリアライズされたデータ(例えば、メソッドの戻り値)をアプリケーション30に返却する(S210)。なお、スキーマ1オブジェクト2123a−1に係る引数がIN/OUT型である場合、アプリケーション30は、スキーマ1オブジェクト2123a−1より値を取得する(S211、S212)。続いて、アプリケーション30は、不要となったスキーマ1オブジェクト2123a−1を削除する(S213)。
The SOAP
このように、アプリケーション30は、SOAPエンジン211とは直接やりとりする必要がない。したがって、SOAPエンジン211が入れ替わったとしても、同一の手順(ソースコード)によって、同一のメソッドを呼び出すことができる。
As described above, the
次に、図8は、新たなSOAP通信プラグインのインストール時の処理手順を説明するためのシーケンス図である。同図では、SOAP通信プラグイン212aが利用可能な状態において、SOAP通信プラグイン212bがインストールされたときの処理手順を説明する。 Next, FIG. 8 is a sequence diagram for explaining a processing procedure when a new SOAP communication plug-in is installed. In the figure, a processing procedure when the SOAP communication plug-in 212b is installed in a state where the SOAP communication plug-in 212a is available will be described.
OSGiフレームワーク13上に新たなソフトウェア(バンドル)がインストールされると、OSGiフレームワーク13は、図6のステップS104における要求に基づいて、インストールされたソフトウェアの識別名(バンドル名又はプラグイン名等)を引数としてSOAP通信プラグイン検出オブジェクト2132のプラグイン検出受付メソッドを呼び出すことにより、インストールが行われたことを通知する(S301)。
When new software (bundle) is installed on the
SOAP通信プラグイン検出オブジェクト2132は、プラグイン検出受付メソッドの呼び出しに応じ、インストールされたソフトウェアがSOAP通信プラグイン212であるか否かを判定する(S302)。当該判定は、引数に指定されている識別名と、SOAP通信プラグイン212として予定されている名前とを比較することにより行えばよい。
The SOAP communication plug-in
インストールされたソフトウェアがSOAP通信プラグイン212でない場合は、以降の処理は実行されない。インストールされたソフトウェアがSOAP通信プラグイン212である場合、SOAP通信プラグイン検出オブジェクト2132は、SOAPクライアント生成オブジェクト2133のSOAPクライアントサービス削除メソッドを呼び出すことにより、現在利用されているSOAP通信プラグイン211aの無効化を要求する(S303)。
If the installed software is not the SOAP communication plug-in 212, the subsequent processing is not executed. When the installed software is the SOAP communication plug-in 212, the SOAP communication plug-in
SOAPクライアント生成オブジェクト2133は、SOAPクライアントサービス削除メソッドの呼び出しに応じ、SOAPクライアントサービスオブジェクト2135を削除する(S304)。SOAPクライアントサービスオブジェクト2135は、削除に応じ、SOAP通信プラグイン212aのSOAPクライアントオブジェクト2121a及びスキーマ生成オブジェクト2122aを削除する(S305、S306)。
The SOAP
以上によって、SOAP通信モジュール213とSOAP通信プラグイン212aとの関連付けは削除される。
Thus, the association between the
続いて、ステップS307〜S311において、図6のステップS105〜S109と同様の処理が、SOAP通信プラグイン212bを対象として実行される。その結果、SOAP通信プラグイン212bが利用可能とされる。 Subsequently, in steps S307 to S311, processing similar to that in steps S105 to S109 in FIG. 6 is executed for the SOAP communication plug-in 212b. As a result, the SOAP communication plug-in 212b can be used.
次に、図9は、SOAP通信プラグインのアンインストール時の処理手順を説明するためのシーケンス図である。同図では、SOAP通信プラグイン212bが利用可能な状態において、SOAP通信プラグイン212bがアンインストールされたときの処理手順を説明する。 Next, FIG. 9 is a sequence diagram for explaining a processing procedure when uninstalling the SOAP communication plug-in. In the figure, a processing procedure when the SOAP communication plug-in 212b is uninstalled in a state where the SOAP communication plug-in 212b is available will be described.
OSGiフレームワーク13上のソフトウェア(バンドル)がアンインストールされると、OSGiフレームワーク13は、図6のステップS104における要求に基づいて、アンインストールされたソフトウェアの識別名(バンドル名又はプラグイン名等)を引数としてSOAP通信プラグイン検出オブジェクト2132のプラグイン検出受付メソッドを呼び出すことにより、アンインストールが行われたことを通知する(S401)。
When the software (bundle) on the
SOAP通信プラグイン検出オブジェクト2132は、プラグイン検出受付メソッドの呼び出しに応じ、アンインストールされたソフトウェアがSOAP通信プラグイン212であるか否かを判定する(S402)。
The SOAP communication plug-in
アンインストールされたソフトウェアがSOAP通信プラグイン212でない場合は、以降の処理は実行されない。アンインストールされたソフトウェアがSOAP通信プラグイン212である場合、ステップS403〜S406において、図8のステップS303〜S306と同様の処理が、SOAP通信プラグイン212bを対象として実行される。その結果、SOAP通信モジュール213とSOAP通信プラグイン212bとの関連付けは削除され、SOAP通信プラグイン212b及びSOAPエンジン211bは利用対象でなくなる。
If the uninstalled software is not the SOAP communication plug-in 212, the subsequent processing is not executed. When the uninstalled software is the SOAP communication plug-in 212, in steps S403 to S406, processing similar to that in steps S303 to S306 in FIG. 8 is executed for the SOAP communication plug-in 212b. As a result, the association between the
上述したように、本実施の形態における複合機1によれば、SOAP通信プラグイン212によって各SOAPエンジン211に固有の仕様が吸収される。また、SOAP通信モジュール213によって、利用対象とするSOAP通信プラグイン212が自動的に判別される。したがって、アプリケーション30は、いずれのSOAPエンジン211が利用されるかは意識する必要はなく、SOAP通信モジュール213によって提供されるインタフェースを意識していればよい。よって、アプリケーション30のソースコードを、利用されるSOAPエンジン211に応じて修正する必要はない。
As described above, according to the
また、SOAP通信モジュール213とSOAP通信プラグイン212との間は、予め定められたインタフェースによってやりとりが行われる。したがって、SOAP通信モジュール213とSOAP通信プラグイン212との関連付けを動的なものとすることができ、新たなSOAP通信プラグイン212が追加された場合であっても、SOAP通信モジュール213のソースコードを修正することなく対応することができる。
In addition, the
なお、本実施の形態では通信プロトコルとしてSOAPを例として説明したが、本発明の適用範囲はSOAPに限られない。 Although the present embodiment has been described with SOAP as an example of the communication protocol, the scope of application of the present invention is not limited to SOAP.
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 As mentioned above, although the Example of this invention was explained in full detail, this invention is not limited to such specific embodiment, In the range of the summary of this invention described in the claim, various deformation | transformation・ Change is possible.
1 複合機
2 サーバ
3 ネットワーク
10 基本プラットフォーム
11 OS
12 JVM
13 OSGiフレームワーク
20 システムサービス
21 SOAP通信制御部
22 HTTP通信制御部22
30 アプリケーション
211a SOAPエンジン
211b SOAPエンジン
212a SOAP通信プラグイン
212b SOAP通信プラグイン
213 SOAP通信モジュール
221 HTTPクライアントサービス
604 撮像部
605 印刷部
601 コントローラ
602 オペレーションパネル
603 ファクシミリコントロールユニット
611 CPU
612 ASIC
621 NB
622 SB
631 MEM−P
632 MEM−C
633 HDD
634 メモリカードスロット
635 メモリカード
641 NIC
642 USBデバイス
643 IEEE1394デバイス
644 セントロニクスデバイス
2131 起動クラス
2132 SOAP通信プラグイン検出クラス
2133 SOAPクライアント生成クラス
2134 SOAPクライアントサービスインタフェースクラス
2135 SOAPクライアントサービスクラス
2136 SOAPクライアントプラグインインタフェースクラス
2137 スキーマ生成インタフェースクラス
2138−1 スキーマ1インタフェースクラス
2138−2 スキーマnインタフェースクラス
2121a SOAPクライアントクラス
2122a スキーマ生成クラス
2123a−1 スキーマ1クラス
2133a−2 スキーマnクラス
1
12 JVM
13
30
612 ASIC
621 NB
622 SB
631 MEM-P
632 MEM-C
633 HDD
634
642
Claims (12)
前記通信インタフェース提供手段は、遠隔呼び出しの対象として定義されたメソッドを呼び出すための第一のインタフェースを備え、該第一のインタフェースを介した前記メソッドの呼び出しに応じて、当該メソッドについて所定の通信プロトコルに応じたシリアライズ及びデシリアライズの実行を動的に関連付けられている前記通信プラグイン手段に予め定められた第二のインタフェースを介して要求し、
前記通信プラグイン手段は、前記第二のインタフェースを介した要求に応じ、当該通信プラグイン手段が対応する前記通信プロトコルエンジン手段に、前記シリアライズ及びデシリアライズの実行を、複数の仕様の中のいずれかの仕様に基づく第三のインタフェースを介して要求し、
前記通信プロトコルエンジン手段は、前記第三のインタフェースを介した要求に応じ、前記シリアライズ及びデシリアライズを前記複数の仕様の中のいずれかの仕様に基づいて実行し、
前記第一のインタフェースは、前記複数の仕様に対して共通であることを特徴とする情報処理装置。 Communication interface providing means, communication plug-in means, and communication protocol engine means,
The communication interface providing means includes a first interface for invoking methods defined as a target for a remote call, in response to a call of the method through the first interface, the predetermined communication protocol for the method Requesting the communication plug-in means that is dynamically associated to execute serialization and deserialization according to the second interface,
The communication plug-in unit, in response to a request through the second interface, to the communication protocol engine means that the communication plug-in unit corresponding, the execution of the serialization and deserialization, any of the plurality of specifications Request via a third interface based on
The communication protocol engine means, in response to a request through the third interface, and run on the basis of the serialization and deserialization any specification of the plurality of specifications,
The information processing apparatus according to claim 1, wherein the first interface is common to the plurality of specifications .
前記通信インタフェース提供手段が、遠隔呼び出しの対象として定義されたメソッドを呼び出すための第一のインタフェースを備え、該第一のインタフェースを介した前記メソッドの呼び出しに応じて、当該メソッドについて所定の通信プロトコルに応じたシリアライズ及びデシリアライズの実行を動的に関連付けられている前記通信プラグイン手段に予め定められた第二のインタフェースを介して要求する手順と、
前記通信プラグイン手段が、前記第二のインタフェースを介した要求に応じ、当該通信プラグイン手段が対応する前記通信プロトコルエンジン手段に、前記シリアライズ及びデシリアライズの実行を、複数の仕様の中のいずれかの仕様に基づく第三のインタフェースを介して要求する手順と、
前記通信プロトコルエンジン手段が、前記第三のインタフェースを介した要求に応じ、前記シリアライズ及びデシリアライズを前記複数の仕様の中のいずれかの仕様に基づいて実行する手順とを有し、
前記第一のインタフェースは、前記複数の仕様に対して共通であることを特徴とする情報処理方法。 An information processing method executed by an information processing apparatus having communication interface providing means, communication plug-in means, and communication protocol engine means,
The communication interface provides means comprises a first interface for invoking methods defined as an object of remote calls, the in response to the first invocation of the method via the interface, a predetermined communication protocol for the method A step of requesting the communication plug-in means that is dynamically associated with the execution of serialization and deserialization according to a predetermined second interface;
In response to a request through the second interface, the communication plug-in means performs the serialization and deserialization on the communication protocol engine means corresponding to the communication plug-in means , and performs any of the specifications. A request through a third interface based on any specification ,
The communication protocol engine unit, have a the procedure which the response to the third request via an interface, executes the basis the serialization and deserialization any specification of the plurality of specifications,
The information processing method , wherein the first interface is common to the plurality of specifications .
通信インタフェース提供手段と通信プラグイン手段と通信プロトコルエンジン手段として機能させ、
前記通信インタフェース提供手段は、遠隔呼び出しの対象として定義されたメソッドを呼び出すための第一のインタフェースを備え、該第一のインタフェースを介した前記メソッドの呼び出しに応じて、当該メソッドについて所定の通信プロトコルに応じたシリアライズ及びデシリアライズの実行を動的に関連付けられている前記通信プラグイン手段に予め定められた第二のインタフェースを介して要求し、
前記通信プラグイン手段は、前記第二のインタフェースを介した要求に応じ、当該通信プラグイン手段が対応する前記通信プロトコルエンジン手段に、前記シリアライズ及びデシリアライズの実行を、複数の仕様の中のいずれかの仕様に基づく第三のインタフェースを介して要求し、
前記通信プロトコルエンジン手段は、前記第三のインタフェースを介した要求に応じ、前記シリアライズ及びデシリアライズを前記複数の仕様の中のいずれかの仕様に基づいて実行し、
前記第一のインタフェースは、前記複数の仕様に対して共通であることを特徴とする情報処理プログラム。 Computer
Function as communication interface providing means, communication plug-in means, and communication protocol engine means;
The communication interface providing means includes a first interface for invoking methods defined as a target for a remote call, in response to a call of the method through the first interface, the predetermined communication protocol for the method Requesting the communication plug-in means that is dynamically associated to execute serialization and deserialization according to the second interface,
The communication plug-in unit, in response to a request through the second interface, to the communication protocol engine means that the communication plug-in unit corresponding, the execution of the serialization and deserialization, any of the plurality of specifications Request via a third interface based on
The communication protocol engine means, in response to a request through the third interface, and run on the basis of the serialization and deserialization any specification of the plurality of specifications,
The information processing program characterized in that the first interface is common to the plurality of specifications .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007316129A JP5020046B2 (en) | 2007-12-06 | 2007-12-06 | Information processing apparatus, information processing method, and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007316129A JP5020046B2 (en) | 2007-12-06 | 2007-12-06 | Information processing apparatus, information processing method, and information processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009140245A JP2009140245A (en) | 2009-06-25 |
JP5020046B2 true JP5020046B2 (en) | 2012-09-05 |
Family
ID=40870787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007316129A Expired - Fee Related JP5020046B2 (en) | 2007-12-06 | 2007-12-06 | Information processing apparatus, information processing method, and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5020046B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005173701A (en) * | 2003-12-08 | 2005-06-30 | Canon Inc | Information processor, information processing method, and program therefor |
JP4873852B2 (en) * | 2004-02-26 | 2012-02-08 | 株式会社リコー | First communication device, information processing device, information processing program, recording medium |
JP4704105B2 (en) * | 2005-05-24 | 2011-06-15 | 株式会社リコー | COMMUNICATION DEVICE, COMMUNICATION SYSTEM, AND COMMUNICATION METHOD |
-
2007
- 2007-12-06 JP JP2007316129A patent/JP5020046B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009140245A (en) | 2009-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5447030B2 (en) | Electronic device, information processing method, and information processing program | |
US8826176B2 (en) | Information processing apparatus and control method | |
US9026588B2 (en) | Storage device including software development kit that includes web service interface and terminal apparatus including the software development kit | |
US20050172000A1 (en) | Embedded apparatus including web server function | |
JP2013191196A (en) | Information processing device, apparatus, information processing system, information processing method, and information processing program | |
JP2013168129A (en) | Information processing system, data providing device, electronic apparatus, information processing method, data providing method, data acquiring method, and program | |
US20090300478A1 (en) | Image forming apparatus, information processing method and program | |
JP6975009B2 (en) | Image processing device, its control method, and program | |
JP5487792B2 (en) | Image forming apparatus, information processing system, information processing method, and information processing program | |
JP2004220448A (en) | Information providing device, information providing method, information providing system and information providing program | |
JP5692319B2 (en) | Integrated management apparatus, control method, and program | |
US9489219B2 (en) | Integration and management apparatus, integration and management system and computer readable information recording medium | |
JP2009205262A (en) | Application program installation device, application program installation method, program, and recording medium | |
JP2009137165A (en) | Image formation device, information processing method and program | |
JP5020046B2 (en) | Information processing apparatus, information processing method, and information processing program | |
JP2004133926A (en) | Device, method and program for generating cooperative information and document processing system | |
JP5036273B2 (en) | Image forming apparatus, display data generation method and program | |
JP4159869B2 (en) | Information providing apparatus, information providing method, information providing system, and information providing program | |
EP4064027A1 (en) | Information processing apparatus, information processing system, information processing method, and carrier means | |
JP5042079B2 (en) | Image processing apparatus and application activation method | |
JP5692320B2 (en) | Integrated management apparatus, control method, and program | |
JP2005051308A (en) | Document management apparatus, document management method, and document management system | |
JP2004206456A (en) | Information providing device, information providing method, information providing system, and information providing program | |
JP2019071038A (en) | Image processing device, method for controlling the same, and program | |
JP2009302865A (en) | Image forming apparatus, facsimile transmission data processing method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100823 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120412 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120515 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120612 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5020046 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150622 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |