JP2009140245A - Information processing apparatus, method and program - Google Patents

Information processing apparatus, method and program Download PDF

Info

Publication number
JP2009140245A
JP2009140245A JP2007316129A JP2007316129A JP2009140245A JP 2009140245 A JP2009140245 A JP 2009140245A JP 2007316129 A JP2007316129 A JP 2007316129A JP 2007316129 A JP2007316129 A JP 2007316129A JP 2009140245 A JP2009140245 A JP 2009140245A
Authority
JP
Japan
Prior art keywords
communication
soap
plug
communication plug
interface
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.)
Granted
Application number
JP2007316129A
Other languages
Japanese (ja)
Other versions
JP5020046B2 (en
Inventor
Yasuko Hasegawa
康子 長谷川
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 JP2007316129A priority Critical patent/JP5020046B2/en
Publication of JP2009140245A publication Critical patent/JP2009140245A/en
Application granted granted Critical
Publication of JP5020046B2 publication Critical patent/JP5020046B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce the extent to which the specifications of a lower-level program module used to perform communication using a predetermined communication protocol affect an upper-level program. <P>SOLUTION: An information processing apparatus has a communication interface providing means, a communication plug-in means and a communication protocol engine means. In response to a call of an interface for calling a method related to a remote call, the communication interface providing means requests the dynamically associated communication plug-in means via a predetermined interface to perform serialization and deserialization that correspond to a predetermined communication protocol, for the method. The communication plug-in means requests the communication protocol engine means which the communication plug-in means is associated with to execute the serialization and deserialization, and the communication protocol engine means executes the serialization and deserialization. <P>COPYRIGHT: (C)2009,JPO&INPIT

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エンジンの仕様は必ずしも同一ではない。
特開2006−330877号公報
At present, there are various implementations of SOAP engines. Specifically, the specifications of the SOAP engine provided by each vendor are not necessarily the same.
JP 2006-330877 A

しかしながら、いずれの実装を利用するかはユーザの好みや、システムの実行環境に対する相性等によって選択されうるところ、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 multifunction peripherals 1 and one or more servers 2 are connected via a network 3 (whether wired or wireless) such as a LAN (Local Area Network). The multifunction device 1 is an image forming apparatus that realizes a copy function, a print function, a scanner function, a FAX function, and the like in a single casing, and is an example of an information processing apparatus in the present embodiment. Communication between each MFP 1 and each server 2 is performed by SOAP (Simple Object Access Protocol). The multi function device 1 calls the function of the Web service in the server 2 by SOAP RPC (Remote Procedure Call). The server 2 executes the called function and returns a response to the multifunction device 1. There may be a multifunction device 1 that functions as the server 2. In this case, a service execution request (SOAP request) and a reply to the response (SOAP response) are performed between the multifunction devices 1.

図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 multifunction device 1, there are a controller 601, an operation panel 602, a facsimile control unit (FCU) 603, an imaging unit 604, and a printing unit 605.

コントローラ601は、CPU611、ASIC612、NB621、SB622、MEM−P631、MEM−C632、HDD(ハードディスクドライブ)633、メモリカードスロット634、NIC(ネットワークインタフェースコントローラ)641、USBデバイス642、IEEE1394デバイス643、セントロニクスデバイス644により構成される。   The controller 601 includes a CPU 611, ASIC 612, NB621, SB622, MEM-P631, MEM-C632, HDD (hard disk drive) 633, memory card slot 634, NIC (network interface controller) 641, USB device 642, IEEE 1394 device 643, Centronics device. 644.

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 CPU 611 is an IC for various information processing. The ASIC 612 is an IC for various image processing. The NB 621 is a north bridge of the controller 601. The SB 622 is a south bridge of the controller 601. The MEM-P 631 is a system memory of the multifunction device 1. The MEM-C 632 is a local memory of the multifunction machine 1. The HDD 633 is storage of the multifunction device 1. The memory card slot 634 is a slot for setting a memory card 635. The NIC 641 is a controller for network communication using a MAC address. The USB device 642 is a device for providing a USB standard connection terminal. The IEEE 1394 device 643 is a device for providing a connection terminal of the IEEE 1394 standard. The Centronics device 644 is a device for providing connection terminals of Centronics specifications. The operation panel 602 is hardware (operation device) for an operator to input to the multifunction device 1 and hardware (display device) for an operator to obtain an output from the multifunction device 1.

図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 multifunction device 1 includes a basic platform 10, a system service 20, and one or more applications 30. Each software implements its function by a process executed by the CPU 611 by a program recorded in the HDD 633 or the memory card 635.

基本プラットフォーム10は、OS(Operating System)11、JVM(Java(登録商標) Virtual Machine)12、及びOSGi(Open Services Gateway Initiative)フレームワーク13等を含み、システムサービス20及びアプリケーション30の実行環境を提供する。   The basic platform 10 includes an OS (Operating System) 11, a JVM (Java (registered trademark) Virtual Machine) 12, an OSGi (Open Services Gateway Initiative) framework 13, and the like, and provides an execution environment for the system service 20 and the application 30. To do.

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 framework 13 is a standardized technology by the OSGi Alliance, and is a software platform that provides an execution environment for software components created based on an open software componentization technology based on the Java (registered trademark) language. On the OSGi framework 13, Java (registered trademark) language software is implemented in the form of software components called “bundles”. One bundle is constituted by one JAR (Java (registered trademark) ARchive) file, and can be installed dynamically independently (without restarting the apparatus).

システムサービス20は、各種のアプリケーション30より共通に利用される機能(サービス)を提供する部分であり、SOAP通信制御部21及びHTTP(HyperText Transfer Protocol)通信制御部22等を含む。   The system service 20 is a part that provides functions (services) commonly used by various applications 30, and includes a SOAP communication control unit 21, an HTTP (HyperText Transfer Protocol) communication control unit 22, and the like.

SOAP通信制御部21は、SOAPによる通信を制御する。HTTP通信制御部22は、SOAPメッセージを転送するためのHTTP通信を制御する。   The SOAP communication control unit 21 controls communication using SOAP. The HTTP communication control unit 22 controls HTTP communication for transferring a SOAP message.

アプリケーション30は、システムサービス20を利用してより応用度の高い機能を提供するソフトウェアである。本実施の形態では、SOAP通信制御部21の利用者として位置付けられる。   The application 30 is software that provides a function with a higher degree of application using the system service 20. In the present embodiment, it is positioned as a user of the SOAP communication control unit 21.

SOAP通信制御部21について更に詳しく説明する。図4は、SOAP通信制御部の構成例を示す図である。図4中、図3と同一部分には同一符号を付している。同図において、SOAP通信制御部21には、SOAPエンジン211a及び211b(以下、総称する場合「SOAPエンジン211」という。)と、SOAP通信プラグイン212a及び212b(以下、総称する場合「SOAP通信プラグイン212」という。)と、SOAP通信モジュール213とを含む。   The SOAP communication control unit 21 will be described in more detail. FIG. 4 is a diagram illustrating a configuration example of the SOAP communication control unit. 4, the same parts as those in FIG. 3 are denoted by the same reference numerals. In the figure, the SOAP communication control unit 21 includes SOAP engines 211a and 211b (hereinafter, collectively referred to as “SOAP engine 211”) and SOAP communication plug-ins 212a and 212b (hereinafter collectively referred to as “SOAP communication plug”). And a SOAP communication module 213.

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 engine 211 is an implementation of SOAP for calling a method (method of the Web service 20 in the server 20) defined by WSDL (Web Services Description Language) by RPC (Remote Procedure Call). There is a program module called. Therefore, the SOAP engine 211 is implemented according to the definition of WSDL. The SOAP engine 211 mainly executes serialization and deserialization of a SOAP message. In the present embodiment, the SOAP engine 211a and the SOAP engine 211b have different implementations. Therefore, the interpretable SOAP message format is different. Also, the SOAP engine 211a and the SOAP engine 211b may have different interfaces to the user (software) side. Therefore, different implementations are required on the user side when using the SOAP engine 211a and when using the SOAP engine 211b.

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 engine 211, and causes the SOAP engine 211 to execute serialization and deserialization in response to a predetermined interface call with the SOAP communication module 213. It is. The SOAP communication plug-in 212 is implemented for each SOAP engine 211. For example, the SOAP communication plug-in 212a corresponds to the SOAP engine 211a, and the SOAP communication plug-in 212b corresponds to the SOAP engine 212b.

SOAP通信モジュール213は、SOAP通信プラグイン212を動的に切り替えて利用可能であり、SOAPエンジン211の相違に対して共通のインタフェースをアプリケーション30に対して提供するプログラムモジュールである。したがって、アプリケーション30は、SOAP通信モジュール213によって提供されるインタフェースによってSOAPエンジン211の相違を意識することなくWebサービスの呼び出し(メソッドの遠隔呼び出し)を実行することができる。但し、SOAP通信モジュール213は、WSDLによって定義されるメソッドをアプリケーションに提供するものである。したがって、SOAP通信モジュール213はWSDLの定義に応じて実装される。   The SOAP communication module 213 can be used by dynamically switching the SOAP communication plug-in 212 and is a program module that provides the application 30 with a common interface with respect to differences in the SOAP engine 211. Therefore, the application 30 can execute a web service call (remote method call) without being aware of the difference of the SOAP engine 211 by the interface provided by the SOAP communication module 213. However, the SOAP communication module 213 provides a method defined by WSDL to an application. Therefore, the SOAP communication module 213 is mounted according to the definition of WSDL.

HTTPクライアントサービス221は、HTTP通信制御部22に含まれるプログラムモジュールであり、HTTPリクエストの送信制御を行う。   The HTTP client service 221 is a program module included in the HTTP communication control unit 22 and controls transmission of an HTTP request.

なお、各SOAP通信プラグイン212及びSOAP通信モジュール213は、それぞれOSGiフレームワーク13上で動作するバンドル又はJARファイルとして実装される。   Each SOAP communication plug-in 212 and SOAP communication module 213 are each implemented as a bundle or a JAR file that operates on the OSGi framework 13.

また、図中では、二つのSOAPエンジン211のみが示されているが、三つ以上のSOAPエンジン211が存在してもよい。但し、或る時点において利用可能なSOAPエンジン211は一つである。すなわち、図示されるように、二つのSOAPエンジン211と二つのSOAP通信プラグイン212がインストールされている状態において、実際に有効なSOAPエンジン211及びSOAP通信プラグイン212は、いずれか一方のみである。   In the drawing, only two SOAP engines 211 are shown, but three or more SOAP engines 211 may exist. However, only one SOAP engine 211 can be used at a certain time. That is, as shown in the figure, in the state where the two SOAP engines 211 and the two SOAP communication plug-ins 212 are installed, only one of the SOAP engine 211 and the SOAP communication plug-in 212 that are actually effective is available. .

SOAP通信モジュール213及びSOAP通信プラグイン211について更に詳しく説明する。図5は、SOAP通信モジュール及びSOAP通信プラグインのクラス構成例を示す図である。   The SOAP communication module 213 and the SOAP communication plug-in 211 will be described in more detail. FIG. 5 is a diagram illustrating a class configuration example of the SOAP communication module and the SOAP communication plug-in.

同図において、SOAP通信モジュール213は、起動クラス2131、SOAP通信プラグイン検出クラス2132、SOAPクライアント生成クラス2133、SOAPクライアントサービスインタフェースクラス2134、SOAPクライアントサービスクラス2135、SOAPクライアントプラグインインタフェースクラス2136、スキーマ生成インタフェースクラス2137、スキーマ1インタフェースクラス2138−1、及びスキーマnインタフェースクラス2138−2等より構成される。   In the figure, the SOAP communication module 213 includes an activation class 2131, a SOAP communication plug-in detection class 2132, a SOAP client generation class 2133, a SOAP client service interface class 2134, a SOAP client service class 2135, a SOAP client plug-in interface class 2136, a schema. The generated interface class 2137, the schema 1 interface class 2138-1, the schema n interface class 2138-2, and the like.

起動クラス2131は、SOAP通信モジュール213の起動時の初期処理を起動させるクラスである。起動クラス2131は、起動メソッドを有する。起動メソッドは、SOAP通信モジュール213の起動要求をOSGiフレームワーク13より受け付け、起動時の初期処理を起動させる。   The activation class 2131 is a class that activates initial processing when the SOAP communication module 213 is activated. The activation class 2131 has an activation method. The activation method accepts an activation request for the SOAP communication module 213 from the OSGi framework 13 and activates an initial process at activation.

SOAP通信プラグイン検出クラス2132は、SOAP通信モジュール213の起動、又は新たなSOAP通信プラグイン212のインストールの検知に応じてSOAP通信プラグイン212を利用可能な状態にするための処理を起動するクラスである。   The SOAP communication plug-in detection class 2132 is a class for starting processing for making the SOAP communication plug-in 212 available in response to activation of the SOAP communication module 213 or detection of installation of a new SOAP communication plug-in 212. It is.

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 detection class 2132 includes an activation reception method, a plug-in detection reception method, a plug-in listener registration method, and the like. The activation reception method receives activation notification of the SOAP communication module 213 from the activation class 2131 and activates processing for making the currently valid SOAP communication plug-in 212 available accordingly. The plug-in detection acceptance method accepts the installation notification of the SOAP communication plug-in 212 from the OSGi framework 13 and activates a process for making the newly installed SOAP communication plug-in 212 available in response. The plug-in listener registration method requests the OSGi framework 13 to notify the OSGi framework 13 of the installation of new software (bundle). That is, the installation of the SOAP communication plug-in 212 is notified to the SOAP communication plug-in detection class 2132 through the plug-in detection acceptance method in response to a request to the OSGi framework 13 by the plug-in listener registration method.

SOAPクライアント生成クラス2133は、現在有効なSOAP通信プラグイン212と、SOAP通信モジュール213との関連付けの生成又は削除を実行するクラスである。SOAPクライアント生成クラス2133は、SOAPクライアントサービス生成メソッド及びSOAPクライアントサービス削除メソッド等を有する。SOAPクライアントサービス生成メソッドは、SOAPクライアントサービス2135のインスタンスを生成することにより、SOAP通信プラグイン212との関連付けを生成する。SOAPクライアントサービス削除メソッドは、SOAPクライアントサービス2135のインスタンスを削除することにより、SOAP通信プラグイン212との関連付けを削除する。   The SOAP client generation class 2133 is a class for generating or deleting the association between the SOAP communication plug-in 212 that is currently valid and the SOAP communication module 213. The SOAP client generation class 2133 has a SOAP client service generation method, a SOAP client service deletion method, and the like. The SOAP client service generation method generates an association with the SOAP communication plug-in 212 by generating an instance of the SOAP client service 2135. The SOAP client service deletion method deletes the association with the SOAP communication plug-in 212 by deleting the instance of the SOAP client service 2135.

SOAPクライアントサービスインタフェースクラス2134は、WSDLに定義されたWebサービスのメソッドを呼び出すためのインタフェースが定義された仮想クラスである。SOAPクライアントサービスインタフェースクラス2134に図示されている「SOAPアクション1実行」や「SOAPアクション2実行」等は、WSDLに定義されたメソッドを表現したものである。アプリケーション30は、SOAPクライアントサービスインタフェースクラス2134のメソッドを呼び出すことで、Webサービスの機能を透過的に呼び出すことができる。   The SOAP client service interface class 2134 is a virtual class in which an interface for calling a method of a Web service defined in WSDL is defined. “SOAP action 1 execution”, “SOAP action 2 execution” and the like illustrated in the SOAP client service interface class 2134 represent methods defined in WSDL. The application 30 can call the function of the Web service transparently by calling the method of the SOAP client service interface class 2134.

SOAPクライアントサービスクラス2135は、SOAPクライアントサービスインタフェースクラス2134において定義されたインタフェースの実装が定義されたクラスである。SOAPクライアントサービスクラス2135は、SOAPクライアント属性を有する。SOAPクライアント属性は、SOAPクライアントプラグインインタフェース型による属性であり、利用対象とされたSOAP通信プラグイン212との関連付けを保持する。この関連付けによって当該SOAP通信プラグイン212は利用可能とされる。   The SOAP client service class 2135 is a class in which the implementation of the interface defined in the SOAP client service interface class 2134 is defined. The SOAP client service class 2135 has a SOAP client attribute. The SOAP client attribute is an attribute according to the SOAP client plug-in interface type, and holds an association with the SOAP communication plug-in 212 that is a usage target. With this association, the SOAP communication plug-in 212 can be used.

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. As the method, there are a method for serializing a SOAP message (for example, a SOAP action 1 serialized method, a SOAP action n serialized method) and a method for deserializing a de SOAP message for each method defined in WSDL.

スキーマ生成インタフェース213は、スキーマの実体の生成を行うクラスである。本実施の形態においてスキーマとは、データ型(基本データ型や構造体等を含む)を意味する。すなわち、スキーマ生成インタフェース213は、Webサービスのメソッドの引数や戻り値として利用される各種データ型の実体を生成する。   The schema generation interface 213 is a class that generates a schema entity. In this embodiment, a schema means a data type (including basic data types and structures). That is, the schema generation interface 213 generates entities of various data types used as arguments and return values of Web service methods.

スキーマ1インタフェースクラス2138−1及びスキーマnインタフェースクラス2138n(以下、総称する場合「スキーマインタフェースクラス2138」という。)は、スキーマ(データ型)を表現する仮想クラスであり、スキーマごとに定義される。したがってそのインスタンス(厳密にはスキーマインタフェースクラス2138のサブクラスのインスタンス)は、当該スキーマのデータそのものとなる。各スキーマインタフェースクラス2138は、当該スキーマの値を設定するためのメソッド及び取得するためのメソッドを有する。   The schema 1 interface class 2138-1 and the schema n interface class 2138n (hereinafter collectively referred to as “schema interface class 2138”) are virtual classes representing schemas (data types) and are defined for each schema. Therefore, the instance (strictly, an instance of a subclass of the schema interface class 2138) becomes the data of the schema itself. Each schema interface class 2138 has a method for setting and acquiring a value of the schema.

上記の中で、SOAPクライアントサービスインタフェースクラス2134、スキーマ生成インタフェースクラス2137、及びスキーマインタフェースクラス2138は、アプリケーション30より直接利用(操作)される。   Among the above, the SOAP client service interface class 2134, the schema generation interface class 2137, and the schema interface class 2138 are directly used (operated) by the application 30.

一方、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 classes 212a and 212b are composed of a SOAP client class 2121, a schema generation class 2122, a schema 1 class 2123-1, a schema n class 2133-2, and the like. When generically referring to the SOAP communication plug-in classes 212a and 212b, the reference numeral “a” or “b” is omitted in order to distinguish them.

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 SOAP engine 211 is implemented.

スキーマ生成クラス2122は、スキーマ生成インタフェース2137のサブクラスであり、対応するSOAPエンジン211に応じたスキーマの実体の生成処理が実装される。   The schema generation class 2122 is a subclass of the schema generation interface 2137, and a schema entity generation process corresponding to the corresponding SOAP engine 211 is implemented.

スキーマ1クラス2123−1及びスキーマクラス2133−2(以下、総称する場合「スキーマクラス2123」という。)は、それぞれのスキーマ(データ型)に係るスキーマインタフェースクラス2138のサブクラスであり、対応するSOAPエンジン211に応じたスキーマの実体を操作するための処理が実装される。   A schema 1 class 2213-1 and a schema class 2133-2 (hereinafter collectively referred to as “schema class 2123”) are subclasses of the schema interface class 2138 relating to the respective schemas (data types), and corresponding SOAP engines. A process for operating a schema entity corresponding to 211 is implemented.

以上のように、各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, schema generation interface 2137, schema interface class 2138, etc.), thereby The communication module 213 can be called by a predetermined interface. In addition, classes constituting the SOAP communication plug-in 212 are implemented by a predetermined class name scheduled by the SOAP communication module 213.

以下、複合機1におけるSOAP通信に関する処理手順について説明する。図6は、SOAP通信モジュール起動時の処理手順を説明するためのシーケンス図である。なお、シーケンス図において、各クラスのインスタンス(オブジェクト)には、当該クラスと同一の参照番号を付す。また、「XXXクラス」のインスタンスを「XXXオブジェクト」と呼ぶ。   Hereinafter, a processing procedure related to SOAP communication in the multifunction machine 1 will be described. FIG. 6 is a sequence diagram for explaining a processing procedure when the SOAP communication module is activated. In the sequence diagram, an instance (object) of each class is assigned the same reference number as that class. An instance of “XXX class” is referred to as “XXX object”.

例えば、複合機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 MFP 1 is activated, the OSGi framework 13 requests activation of the SOAP communication module 213 by calling an activation method of the activation object 2131 (S101). The activation object 2131 calls the activation reception method of the SOAP communication plug-in detection object 2132 in response to the activation method call (S102). The SOAP communication plug-in detection object 2132 calls its own plug-in installation listener registration method in response to the call of the activation reception method (S103). Subsequently, the SOAP communication plug-in detection object 2132 requests the OSGi framework 13 to notify when the software is installed in the plug-in installation listener registration method (S104). In this request, identification information (for example, reference) of the SOAP communication plug-in detection object 2132 is passed to the OSGi framework 13.

続いて、SOAP通信プラグイン検出オブジェクト2132は、SOAPクライアント生成オブジェクト2133のSOAPクライアントサービス生成メソッドを呼び出すことにより、現在有効なSOAP通信プラグイン212を利用可能な状態とするよう要求する(S105)。SOAPクライアント生成オブジェクト2133は、SOAPクライアントサービス生成メソッドの呼び出しに応じ、現在有効なSOAP通信プラグイン212におけるSOAPクライアントクラス2121及びスキーマ生成クラス2122のクラス名を判別する。   Subsequently, the SOAP communication plug-in detection object 2132 requests to make the currently valid SOAP communication plug-in 212 available by calling the SOAP client service generation method of the SOAP client generation object 2133 (S105). The SOAP client generation object 2133 determines the class names of the SOAP client class 2121 and the schema generation class 2122 in the currently valid SOAP communication plug-in 212 in response to the call of the SOAP client service generation method.

現在有効な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 HDD 633. Specifically, if the SOAP communication plug-in 212 is installed in a predetermined location (folder) with a predetermined name (plug-in name), the SOAP communication plug-in 212 is based on a file stored in the folder. It can be discriminated. The class names of the SOAP client class 2121 and the schema generation class 2122 may be determined based on definition information in the package (JAR file) of the SOAP communication plug-in 212. Here, it is assumed that the currently effective SOAP communication plug-in 212 is the SOAP communication plug-in 212a.

続いて、SOAPクライアント生成オブジェクト2133は、SOAPクライアントサービスオブジェクト2135を生成(インスタンス化)する(S106)。この際、例えば、コンストラクタの引数としてSOAP通信プラグイン212aにおけるSOAPクライアントクラス2121aのクラス名がSOAPクラアイントサービスオブジェクト2135に引き渡される。   Subsequently, the SOAP client generation object 2133 generates (instantiates) a SOAP client service object 2135 (S106). At this time, for example, the class name of the SOAP client class 2121a in the SOAP communication plug-in 212a is delivered to the SOAP client service object 2135 as an argument of the constructor.

SOAPクライアントサービスオブジェクト2135は生成に応じ、引き渡されたクラス名に基づいてSOAP通信プラグイン212aのSOAPクライアントオブジェクト2121aを生成(インスタンス化)する(S107)。SOAPクライアントサービスオブジェクト2135は、生成されたSOAPクライアントオブジェクト2121aの参照をSOAPクライアント属性に保持する。   In response to the generation, the SOAP client service object 2135 generates (instantiates) the SOAP client object 2121a of the SOAP communication plug-in 212a based on the delivered class name (S107). The SOAP client service object 2135 holds the reference of the generated SOAP client object 2121a in the SOAP client attribute.

続いて、SOAPクライアント生成オブジェクト2133は、スキーマ生成インタフェースオブジェクト2137を生成(インスタンス化)する(S108)。この際、例えば、コンストラクタの引数としてSOAP通信プラグイン212aにおけるスキーマ生成クラス2122aのクラス名がスキーマ生成インタフェースオブジェクト2137に引き渡される。   Subsequently, the SOAP client generation object 2133 generates (instantiates) the schema generation interface object 2137 (S108). At this time, for example, the class name of the schema generation class 2122a in the SOAP communication plug-in 212a is passed to the schema generation interface object 2137 as an argument of the constructor.

スキーマ生成インタフェースオブジェクト2137は生成に応じ、引き渡されたクラス名に基づいてSOAP通信プラグイン212aのスキーマ生成オブジェクト2122aを生成(インスタンス化)する(S109)。スキーマ生成インタフェースオブジェクト2137は、生成されたスキーマ生成オブジェクト2122aの参照を保持する。   In response to the generation, the schema generation interface object 2137 generates (instantiates) the schema generation object 2122a of the SOAP communication plug-in 212a based on the delivered class name (S109). The schema generation interface object 2137 holds a reference to the generated schema generation object 2122a.

以上によって、SOAP通信プラグイン212を介してSOAPエンジン211aを用いたSOAP通信が可能となる。なお、SOAPエンジン11は、予めインストールされている必要がある。   As described above, SOAP communication using the SOAP engine 211a can be performed via the SOAP communication plug-in 212. The SOAP engine 11 needs to be installed in advance.

次に、図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 application 30 generates a schema 1 object 2123a-1 corresponding to a schema (here, schema 1) used in a method called by SOAP (S201). Strictly speaking, the schema object 2123 is generated via the schema generation object 212a, but is omitted here for convenience.

続いて、アプリケーション30は、生成されたスキーマ1オブジェクト2133a−1に対して値を設定する(S202)。続いて、アプリケーション30は、SOAPクライアントサービスオブジェクト2135に対して、SOAPクライアントサービスインタフェース2134において定義されているWebサービスのメソッドのうち所望のメソッド(例えば、「SOAPアクション1実行メソッド」)の呼び出しを実行する(S203)。当該メソッドの引数には、スキーマ1オブジェクト2123a−1が指定される。   Subsequently, the application 30 sets a value for the generated schema 1 object 2133a-1 (S202). Subsequently, the application 30 calls a desired method (for example, “SOAP action 1 execution method”) among Web service methods defined in the SOAP client service interface 2134 with respect to the SOAP client service object 2135. (S203). A schema 1 object 2123a-1 is designated as an argument of the method.

続いて、SOAPクライアントサービスオブジェクト2135は、SOAPクライアント属性にその参照が保持されている、SOAP通信プラグイン212aのSOAPクライアントオブジェクト2121aに、SOAPアクション1実行メソッドの呼び出し要求のシリアライズを要求する(S204)。SOAPクライアントオブジェクト2121aは、SOAPエンジン211aにシリアライズを実行させ、その結果をSOAPクライアントサービスオブジェクト2135に返却する(S205)。   Subsequently, the SOAP client service object 2135 requests the SOAP client object 2121a of the SOAP communication plug-in 212a whose reference is held in the SOAP client attribute to serialize the request for calling the SOAP action 1 execution method (S204). . The SOAP client object 2121a causes the SOAP engine 211a to perform serialization and returns the result to the SOAP client service object 2135 (S205).

続いて、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 client service 2135 requests the HTTP client service 221 to transmit a SOAP message (SOAP request) including serialized XML (eXtensible Markup Language) data (S206). The HTTP client service 221 transmits a SOAP request to the server 2 and receives a SOAP message (SOAP response) returned as a processing result from the server 2. The HTTP client service 221 returns the received SOAP response to the SOAP client service object 2135 (S207).

SOAPクライアントサービスオブジェクト2135は、返却されたSOAPレスポンスのデシリアライズ(XML形式からプログラム言語に応じたデータ形式への変換)をSOAP通信プラグイン212aのSOAPクライアントオブジェクト2121aに要求する(S208)。SOAPクライアントオブジェクト2121aは、SOAPエンジン211aにデシリアライズを実行させ、その結果をSOAPクライアントサービスオブジェクト2135に返却する(S209)。   The SOAP client service object 2135 requests the SOAP client object 2121a of the SOAP communication plug-in 212a to deserialize the returned SOAP response (conversion from the XML format to the data format according to the program language) (S208). The SOAP client object 2121a causes the SOAP engine 211a to execute deserialization and returns the result to the SOAP client service object 2135 (S209).

SOAPクライアントサービスオブジェクト2135は、デシリアライズされたデータ(例えば、メソッドの戻り値)をアプリケーション30に返却する(S210)。なお、スキーマ1オブジェクト2123a−1に係る引数がIN/OUT型である場合、アプリケーション30は、スキーマ1オブジェクト2123a−1より値を取得する(S211、S212)。続いて、アプリケーション30は、不要となったスキーマ1オブジェクト2123a−1を削除する(S213)。   The SOAP client service object 2135 returns the deserialized data (for example, the return value of the method) to the application 30 (S210). If the argument related to the schema 1 object 2123a-1 is an IN / OUT type, the application 30 acquires a value from the schema 1 object 2123a-1 (S211 and S212). Subsequently, the application 30 deletes the unnecessary schema 1 object 2123a-1 (S213).

このように、アプリケーション30は、SOAPエンジン211とは直接やりとりする必要がない。したがって、SOAPエンジン211が入れ替わったとしても、同一の手順(ソースコード)によって、同一のメソッドを呼び出すことができる。   As described above, the application 30 does not need to directly communicate with the SOAP engine 211. Therefore, even if the SOAP engine 211 is replaced, the same method can be called by the same procedure (source code).

次に、図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 OSGi framework 13, the OSGi framework 13 determines the identification name (bundle name or plug-in name, etc.) of the installed software based on the request in step S104 in FIG. ) As an argument, the plug-in detection reception method of the SOAP communication plug-in detection object 2132 is called to notify that the installation has been performed (S301).

SOAP通信プラグイン検出オブジェクト2132は、プラグイン検出受付メソッドの呼び出しに応じ、インストールされたソフトウェアがSOAP通信プラグイン212であるか否かを判定する(S302)。当該判定は、引数に指定されている識別名と、SOAP通信プラグイン212として予定されている名前とを比較することにより行えばよい。   The SOAP communication plug-in detection object 2132 determines whether or not the installed software is the SOAP communication plug-in 212 in response to the call of the plug-in detection reception method (S302). This determination may be made by comparing the identification name specified in the argument with the name scheduled as the SOAP communication plug-in 212.

インストールされたソフトウェアが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 detection object 2132 calls the SOAP client service deletion method of the SOAP client generation object 2133, so that the SOAP communication plug-in 211 a currently used is used. An invalidation is requested (S303).

SOAPクライアント生成オブジェクト2133は、SOAPクライアントサービス削除メソッドの呼び出しに応じ、SOAPクライアントサービスオブジェクト2135を削除する(S304)。SOAPクライアントサービスオブジェクト2135は、削除に応じ、SOAP通信プラグイン212aのSOAPクライアントオブジェクト2121a及びスキーマ生成オブジェクト2122aを削除する(S305、S306)。   The SOAP client generation object 2133 deletes the SOAP client service object 2135 in response to calling the SOAP client service deletion method (S304). In response to the deletion, the SOAP client service object 2135 deletes the SOAP client object 2121a and the schema generation object 2122a of the SOAP communication plug-in 212a (S305, S306).

以上によって、SOAP通信モジュール213とSOAP通信プラグイン212aとの関連付けは削除される。   Thus, the association between the SOAP communication module 213 and the SOAP communication plug-in 212a is deleted.

続いて、ステップ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 OSGi framework 13 is uninstalled, the OSGi framework 13 determines the identification name (bundle name, plug-in name, etc.) of the uninstalled software based on the request in step S104 in FIG. ) As an argument, the plug-in detection reception method of the SOAP communication plug-in detection object 2132 is called to notify that the uninstallation has been performed (S401).

SOAP通信プラグイン検出オブジェクト2132は、プラグイン検出受付メソッドの呼び出しに応じ、アンインストールされたソフトウェアがSOAP通信プラグイン212であるか否かを判定する(S402)。   The SOAP communication plug-in detection object 2132 determines whether or not the uninstalled software is the SOAP communication plug-in 212 in response to the call of the plug-in detection reception method (S402).

アンインストールされたソフトウェアが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 SOAP communication module 213 and the SOAP communication plug-in 212b is deleted, and the SOAP communication plug-in 212b and the SOAP engine 211b are not used.

上述したように、本実施の形態における複合機1によれば、SOAP通信プラグイン212によって各SOAPエンジン211に固有の仕様が吸収される。また、SOAP通信モジュール213によって、利用対象とするSOAP通信プラグイン212が自動的に判別される。したがって、アプリケーション30は、いずれのSOAPエンジン211が利用されるかは意識する必要はなく、SOAP通信モジュール213によって提供されるインタフェースを意識していればよい。よって、アプリケーション30のソースコードを、利用されるSOAPエンジン211に応じて修正する必要はない。   As described above, according to the MFP 1 in the present embodiment, the SOAP communication plug-in 212 absorbs the specifications specific to each SOAP engine 211. In addition, the SOAP communication module 213 automatically determines the SOAP communication plug-in 212 to be used. Therefore, the application 30 does not need to be aware of which SOAP engine 211 is used, and only needs to be aware of the interface provided by the SOAP communication module 213. Therefore, it is not necessary to modify the source code of the application 30 according to the SOAP engine 211 used.

また、SOAP通信モジュール213とSOAP通信プラグイン212との間は、予め定められたインタフェースによってやりとりが行われる。したがって、SOAP通信モジュール213とSOAP通信プラグイン212との関連付けを動的なものとすることができ、新たなSOAP通信プラグイン212が追加された場合であっても、SOAP通信モジュール213のソースコードを修正することなく対応することができる。   In addition, the SOAP communication module 213 and the SOAP communication plug-in 212 exchange with each other through a predetermined interface. Therefore, the association between the SOAP communication module 213 and the SOAP communication plug-in 212 can be made dynamic, and even when a new SOAP communication plug-in 212 is added, the source code of the SOAP communication module 213 Can be dealt with without correcting.

なお、本実施の形態では通信プロトコルとして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.

本発明の実施の形態におけるシステム構成例を示す図である。It is a figure which shows the system configuration example in embodiment of this invention. 本発明の実施の形態における複合機のハードウェア構成の一例を示す図である。FIG. 2 is a diagram illustrating an example of a hardware configuration of a multifunction machine according to an embodiment of the present invention. 本発明の実施の形態における複合機のソフトウェア構成例を示す図である。FIG. 3 is a diagram illustrating a software configuration example of a multifunction machine according to an embodiment of the present invention. SOAP通信制御部の構成例を示す図である。It is a figure which shows the structural example of a SOAP communication control part. SOAP通信モジュール及びSOAP通信プラグインのクラス構成例を示す図である。It is a figure which shows the class structural example of a SOAP communication module and a SOAP communication plug-in. SOAP通信モジュール起動時の処理手順を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the process sequence at the time of SOAP communication module starting. アプリケーションによるSOAP通信モジュール利用時の処理手順を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the process sequence at the time of the SOAP communication module use by an application. 新たなSOAP通信プラグインのインストール時の処理手順を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the process sequence at the time of installation of a new SOAP communication plug-in. SOAP通信プラグインのアンインストール時の処理手順を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the process sequence at the time of uninstallation of a SOAP communication plug-in.

符号の説明Explanation of symbols

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 MFP 2 Server 3 Network 10 Basic platform 11 OS
12 JVM
13 OSGi framework 20 System service 21 SOAP communication control unit 22 HTTP communication control unit 22
30 Application 211a SOAP engine 211b SOAP engine 212a SOAP communication plug-in 212b SOAP communication plug-in 213 SOAP communication module 221 HTTP client service 604 Imaging unit 605 Printing unit 601 Controller 602 Operation panel 603 Facsimile control unit 611 CPU
612 ASIC
621 NB
622 SB
631 MEM-P
632 MEM-C
633 HDD
634 Memory card slot 635 Memory card 641 NIC
642 USB device 643 IEEE 1394 device 644 Centronics device 2131 Startup class 2132 SOAP communication plug-in detection class 2133 SOAP client generation class 2134 SOAP client service interface class 2135 SOAP client service class 2136 SOAP client plug-in interface class 2137 Schema generation interface class 2138-1 Schema 1 interface class 2138-2 Schema n interface class 2121a SOAP client class 2122a Schema generation class 2123a-1 Schema 1 class 2133a-2 Schema n class

Claims (12)

通信インタフェース提供手段と通信プラグイン手段と通信プロトコルエンジン手段とを有し、
前記通信インタフェース提供手段は、遠隔呼び出しに係るメソッドを呼び出すためのインタフェースを備え、該インタフェースの呼び出しに応じて、前記メソッドについて所定の通信プロトコルに応じたシリアライズ及びデシリアライズの実行を動的に関連付けられている前記通信プラグイン手段に予め定められたインタフェースを介して要求し、
前記通信プラグイン手段は、前記予め定められたインタフェースを介した要求に応じ、当該通信プラグイン手段が対応する前記通信プロトコルエンジン手段に前記シリアライズ及びデシリアライズの実行を要求し、
前記通信プロトコルエンジン手段は、前記シリアライズ及びデシリアライズを複数の仕様の中のいずれかの仕様に基づいて実行することを特徴とする情報処理装置。
Communication interface providing means, communication plug-in means, and communication protocol engine means,
The communication interface providing means includes an interface for calling a method related to remote calling, and serialization and deserialization execution according to a predetermined communication protocol is dynamically associated with the method according to the calling of the interface. Requesting the communication plug-in means via a predetermined interface;
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,
The information processing apparatus, wherein the communication protocol engine means executes the serialization and deserialization based on any one of a plurality of specifications.
前記通信インタフェース提供手段は、当該情報処理装置において有効な前記通信プラグイン手段を判定し、該通信プラグイン手段を関連付けることを特徴とする請求項1記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the communication interface providing unit determines the communication plug-in unit effective in the information processing apparatus and associates the communication plug-in unit. 前記通信インタフェース提供手段は、前記通信プラグイン手段を実現するプログラムのインストールの検知に応じ、前記プログラムに係る前記通信プラグイン手段を関連付けることを特徴とする請求項1又は2記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the communication interface providing unit associates the communication plug-in unit related to the program in response to detection of installation of a program that realizes the communication plug-in unit. 前記インタフェース提供手段は、前記通信プラグイン手段を実現するプログラムのアンインストールの検知に応じ、前記プログラムに係る前記通信プラグイン手段との関連付けを削除することを特徴とする請求項1乃至3いずれか一項記載の情報処理装置。   4. The interface providing unit according to any one of claims 1 to 3, wherein the interface providing unit deletes the association with the communication plug-in unit related to the program in response to detection of uninstallation of the program realizing the communication plug-in unit. The information processing apparatus according to one item. 通信インタフェース提供手段と通信プラグイン手段と通信プロトコルエンジン手段とを有する情報処理装置が実行する情報処理方法であって、
前記通信インタフェース提供手段が、遠隔呼び出しに係るメソッドを呼び出すためのインタフェースを備え、該インタフェースの呼び出しに応じて、前記メソッドについて所定の通信プロトコルに応じたシリアライズ及びデシリアライズの実行を動的に関連付けられている前記通信プラグイン手段に予め定められたインタフェースを介して要求する手順と、
前記通信プラグイン手段が、前記予め定められたインタフェースを介した要求に応じ、当該通信プラグイン手段が対応する前記通信プロトコルエンジン手段に前記シリアライズ及びデシリアライズの実行を要求する手順と、
前記通信プロトコルエンジン手段が、前記シリアライズ及びデシリアライズを複数の仕様の中のいずれかの仕様に基づいて実行する手順とを有することを特徴とする情報処理方法。
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 providing means includes an interface for calling a method related to remote calling, and serialization and deserialization execution according to a predetermined communication protocol is dynamically associated with the method in response to the calling of the interface. Requesting the communication plug-in means via a predetermined interface;
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;
The communication protocol engine means includes a procedure for executing the serialization and deserialization based on any one of a plurality of specifications.
前記通信インタフェース提供手段が、当該情報処理装置において有効な前記通信プラグイン手段を判定し、該通信プラグイン手段を関連付ける手順を有することを特徴とする請求項5記載の情報処理方法。   6. The information processing method according to claim 5, further comprising a step of determining the communication plug-in means effective in the information processing apparatus and associating the communication plug-in means. 前記通信インタフェース提供手段が、前記通信プラグイン手段を実現するプログラムのインストールの検知に応じ、前記プログラムに係る前記通信プラグイン手段を関連付ける手順を有することを特徴とする請求項5又は6記載の情報処理方法。   7. The information according to claim 5, wherein the communication interface providing means includes a procedure for associating the communication plug-in means related to the program in response to detection of installation of a program that realizes the communication plug-in means. Processing method. 前記インタフェース提供手段が、前記通信プラグイン手段を実現するプログラムのアンインストールの検知に応じ、前記プログラムに係る前記通信プラグイン手段との関連付けを削除する手順を有することを特徴とする請求項5乃至7いずれか一項記載の情報処理方法。   6. The interface providing unit includes a procedure of deleting association with the communication plug-in unit related to the program in response to detection of uninstallation of the program that realizes the communication plug-in unit. The information processing method according to claim 7. コンピュータを、
通信インタフェース提供手段と通信プラグイン手段と通信プロトコルエンジン手段として機能させ、
前記通信インタフェース提供手段は、遠隔呼び出しに係るメソッドを呼び出すためのインタフェースを備え、該インタフェースの呼び出しに応じて、前記メソッドについて所定の通信プロトコルに応じたシリアライズ及びデシリアライズの実行を動的に関連付けられている前記通信プラグイン手段に予め定められたインタフェースを介して要求し、
前記通信プラグイン手段は、前記予め定められたインタフェースを介した要求に応じ、当該通信プラグイン手段が対応する前記通信プロトコルエンジン手段に前記シリアライズ及びデシリアライズの実行を要求し、
前記通信プロトコルエンジン手段は、前記シリアライズ及びデシリアライズを複数の仕様の中のいずれかの仕様に基づいて実行することを特徴とする情報処理プログラム。
Computer
Function as communication interface providing means, communication plug-in means, and communication protocol engine means;
The communication interface providing means includes an interface for calling a method related to remote calling, and serialization and deserialization execution according to a predetermined communication protocol is dynamically associated with the method according to the calling of the interface. Requesting the communication plug-in means via a predetermined interface;
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,
The information processing program, wherein the communication protocol engine means executes the serialization and deserialization based on any one of a plurality of specifications.
前記通信インタフェース提供手段は、当該情報処理装置において有効な前記通信プラグイン手段を判定し、該通信プラグイン手段を関連付けることを特徴とする請求項9記載の情報処理プログラム。   The information processing program according to claim 9, wherein the communication interface providing unit determines the communication plug-in unit effective in the information processing apparatus and associates the communication plug-in unit. 前記通信インタフェース提供手段は、前記通信プラグイン手段を実現するプログラムのインストールの検知に応じ、前記プログラムに係る前記通信プラグイン手段を関連付けることを特徴とする請求項9又は10記載の情報処理プログラム。   The information processing program according to claim 9 or 10, wherein the communication interface providing means associates the communication plug-in means related to the program in response to detection of installation of a program that realizes the communication plug-in means. 前記インタフェース提供手段は、前記通信プラグイン手段を実現するプログラムのアンインストールの検知に応じ、前記プログラムに係る前記通信プラグイン手段との関連付けを削除することを特徴とする請求項9乃至11いずれか一項記載の情報処理プログラム。   12. The interface providing unit, according to detection of uninstallation of a program that realizes the communication plug-in unit, deletes the association with the communication plug-in unit related to the program. An information processing program according to one item.
JP2007316129A 2007-12-06 2007-12-06 Information processing apparatus, information processing method, and information processing program Expired - Fee Related JP5020046B2 (en)

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 true JP2009140245A (en) 2009-06-25
JP5020046B2 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)

Citations (3)

* Cited by examiner, † Cited by third party
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
JP2005278144A (en) * 2004-02-26 2005-10-06 Ricoh Co Ltd Communication device, service providing method, service providing program, and storage medium
JP2006330877A (en) * 2005-05-24 2006-12-07 Ricoh Co Ltd Communication method and communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
JP2005278144A (en) * 2004-02-26 2005-10-06 Ricoh Co Ltd Communication device, service providing method, service providing program, and storage medium
JP2006330877A (en) * 2005-05-24 2006-12-07 Ricoh Co Ltd Communication method and communication system

Also Published As

Publication number Publication date
JP5020046B2 (en) 2012-09-05

Similar Documents

Publication Publication Date Title
US8826176B2 (en) Information processing apparatus and control method
US9218224B2 (en) Electronic apparatus, information processing method, and recording medium storing information processing program
US9026588B2 (en) Storage device including software development kit that includes web service interface and terminal apparatus including the software development kit
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
JP6975009B2 (en) Image processing device, its control method, and program
JP2004220448A (en) Information providing device, information providing method, information providing system and information providing program
JP5487792B2 (en) Image forming apparatus, information processing system, information processing method, and information processing program
JP2009205262A (en) Application program installation device, application program installation method, program, and recording medium
US9489219B2 (en) Integration and management apparatus, integration and management system and computer readable information recording medium
JP5692319B2 (en) Integrated management apparatus, control method, and program
JP2009137165A (en) Image formation device, information processing method and program
JP5020046B2 (en) Information processing apparatus, information processing method, and information processing program
JP5036273B2 (en) Image forming apparatus, display data generation method and program
EP4064027A1 (en) Information processing apparatus, information processing system, information processing method, and carrier means
JP4159869B2 (en) Information providing apparatus, information providing method, information providing system, and information providing program
JP5042079B2 (en) Image processing apparatus and application activation method
JP2007286723A (en) Information processor, display controller, information processing system, information processing method, display control method, information processing program, and display control program
JP2007087129A (en) Information processor, device setting method, storage medium and program
JP5692320B2 (en) Integrated management apparatus, control method, and program
TWI581185B (en) Method and system for installing application
JP5748011B2 (en) Apparatus, information processing system, information processing method, and information processing program
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
JP2012003717A (en) Document management system

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