JP5246299B2 - Apparatus, information processing system, information processing method, information processing program, and recording medium - Google Patents

Apparatus, information processing system, information processing method, information processing program, and recording medium Download PDF

Info

Publication number
JP5246299B2
JP5246299B2 JP2011129761A JP2011129761A JP5246299B2 JP 5246299 B2 JP5246299 B2 JP 5246299B2 JP 2011129761 A JP2011129761 A JP 2011129761A JP 2011129761 A JP2011129761 A JP 2011129761A JP 5246299 B2 JP5246299 B2 JP 5246299B2
Authority
JP
Japan
Prior art keywords
update
state
timing
information processing
bundle
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.)
Active
Application number
JP2011129761A
Other languages
Japanese (ja)
Other versions
JP2011238247A (en
Inventor
光男 安藤
邦洋 秋吉
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 JP2011129761A priority Critical patent/JP5246299B2/en
Publication of JP2011238247A publication Critical patent/JP2011238247A/en
Application granted granted Critical
Publication of JP5246299B2 publication Critical patent/JP5246299B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、コピー/プリンタ/スキャナ/ファクシミリ/複合機/融合機等の機器、情報処理システム、情報処理方法、情報処理プログラム、SDメモリカード等の記録媒体に関する。   The present invention relates to a device such as a copy / printer / scanner / facsimile / multifunction machine / multifunction machine, an information processing system, an information processing method, an information processing program, and an SD memory card.

近年、コピー機能とプリンタ機能とスキャナ機能とファクシミリ機能を備える複合機や融合機が市販されるようになった。複合機や融合機は、コピーやプリンタとして機能する場合には、画像を印刷用紙に印刷することになり、コピーやスキャナとして機能する場合には、画像を読取原稿から読み取ることになり、ファクシミリとして機能する場合には、画像を電話回線を介して他の機器と授受することになる。   In recent years, multifunction peripherals and multifunction peripherals having a copy function, a printer function, a scanner function, and a facsimile function have come to be marketed. When a multifunction device or multifunction device functions as a copy or a printer, it prints an image on printing paper. When it functions as a copy or a scanner, it reads an image from a read original, and functions as a facsimile. In the case of functioning, images are exchanged with other devices via a telephone line.

近年、複合機や融合機には様々なプログラムが実装される。そして、これらの機器ではこれらのプログラムをアップデートすべき場面も出て来る。機器の機能を拡張する場合やプログラムのバグを修正する場合などである。従来の複合機や融合機では、プログラムのアップデート処理は機器の起動時に実施されるのが通例であった。よって、プログラムをアップデートするには機器を再起動しなければならないという問題点があった。そして、機器の再起動を手動式にすれば、再起動操作をユーザに強制する事になりユーザに操作の負担を掛ける事になるし、だからと言って、機器の再起動を自動式にすれば、再起動処理がユーザの知らぬ間に実施される事になりユーザに心理的な抵抗感が生じる事になる。   In recent years, various programs have been implemented in multifunction peripherals and multi-function peripherals. And on these devices, there are times when these programs need to be updated. For example, when expanding the function of a device or correcting a bug in a program. In conventional multifunction peripherals and multi-function peripherals, the program update process is usually performed when the device is started. Therefore, there is a problem that the device must be restarted to update the program. If the device is restarted manually, the restart operation is forced on the user, which puts a burden on the user, and that means that the device restart is automatic. In this case, the restart process is performed without the user's knowledge, and a psychological resistance is generated for the user.

本発明は、種々のプログラムが実装される機器に関して、機器に実装された種々のプログラムのアップデート処理(更新処理)に関する新たな手法を提案することを課題とする。   This invention makes it a subject to propose the new method regarding the update process (update process) of the various program mounted in the apparatus regarding the apparatus by which a various program is mounted.

そこで上記課題を解決するため、本発明は、互いに排他的に動作する複数のモジュールの接続によって構成されるプログラムを実行する機器であって、前記プログラムの更新情報の入力を受け付ける入力手段と、前記プログラムの動作状態が、前記更新情報において指定されている更新のタイミングに相当するか否かを判定するタイミング判定手段と、前記タイミング判定手段によって前記更新のタイミングであると判定されたときに、前記更新情報に従って、前記複数のモジュールの接続関係を変更する変更手段とを有し、前記更新情報には、動作中のモジュールを特定することにより前記更新のタイミングが指定されており、前記判定手段は、前記更新のタイミングとして指定されたモジュールが動作中であるときに、当該更新のタイミングであると判定することを特徴とする。   Therefore, in order to solve the above-described problem, the present invention is an apparatus that executes a program configured by connecting a plurality of modules that operate exclusively with each other, and includes an input unit that receives input of update information of the program, Timing determination means for determining whether the operating state of the program corresponds to the update timing specified in the update information, and when the timing determination means determines that the update timing is the update timing, Change means for changing the connection relationship of the plurality of modules according to update information, and the update information specifies a timing of the update by specifying a module in operation, and the determination means When the module specified as the update timing is in operation, the update timing And judging that the grayed.

このような機器によれば、種々のプログラムのアップデート処理(更新処理)に関する新たな手法を提案することができる。   According to such a device, it is possible to propose a new technique related to update processing (update processing) of various programs.

本発明は、種々のプログラムが実装される機器に関して、機器に実装された種々のプログラムのアップデート処理(更新処理)に関する新たな手法を提案するものである。   The present invention proposes a new technique related to update processing (update processing) of various programs installed in a device with respect to the device in which the various programs are mounted.

本発明の実施例に該当する融合機を表す。1 shows a multi-function machine corresponding to an embodiment of the present invention. 図1の融合機に係るハードウェア構成図である。It is a hardware block diagram concerning the compound machine of Drawing 1. 図1の融合機に係る外観図である。It is an external view which concerns on the compound machine of FIG. オペレーションパネルを表す。Represents the operation panel. 図1のCSDKアプリとJSDKアプリのソフトウェア構成図である。It is a software block diagram of the CSDK application and JSDK application of FIG. 図1の融合機におけるOSGiについて説明するための図である。It is a figure for demonstrating OSGi in the compound machine of FIG. バンドルサービスのオブジェクト構成の具体例を表す。A specific example of an object configuration of a bundle service is shown. バンドルサービス「FaxTx1」の状態遷移図である。It is a state transition diagram of bundle service “FaxTx1”. バンドルサービス「FaxTx2」の状態遷移図である。It is a state transition diagram of bundle service "FaxTx2". バンドルサービスを構成するクラス図の一例である。It is an example of the class diagram which comprises a bundle service. バンドルサービス「FaxTx1」のオブジェクト構成を表す。This represents the object configuration of the bundle service “FaxTx1”. バンドルサービス「FaxTx2」のオブジェクト構成を表す。This represents the object configuration of the bundle service “FaxTx2”. バンドルサービスの更新処理に係るコラボレーション図である。It is a collaboration figure which concerns on the update process of a bundle service. バンドルサービス「FaxTx1」のオブジェクト構成の構築処理を説明するためのシーケンス図である。FIG. 10 is a sequence diagram for explaining an object configuration construction process of a bundle service “FaxTx1”. バンドルサービス「FaxTx1」の状態遷移情報の定義例を示す図である。It is a figure which shows the example of a definition of the state transition information of bundle service "FaxTx1." バンドルサービス「FaxTx1」の状態遷移情報の定義例を示す図である。It is a figure which shows the example of a definition of the state transition information of bundle service "FaxTx1." FaxTx1からFaxTx2への更新処理を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the update process from FaxTx1 to FaxTx2. SDカード内の追加モジュールの構成例を示す図である。It is a figure which shows the structural example of the additional module in an SD card. AspectSMの記述例を示す図である。It is a figure which shows the example of description of AspectSM. バンドルサービス「FaxTx1」のオブジェクト構成の更新処理を説明するためのシーケンス図である。FIG. 10 is a sequence diagram for explaining an update process of an object configuration of a bundle service “FaxTx1”. バンドルアプリの更新処理に係るコラボレーション図である。It is a collaboration figure which concerns on the update process of a bundle application. バンドルアプリとバンドルサービスとの間の利用関係の具体例を表す。A specific example of the usage relationship between the bundle application and the bundle service is shown. FaxTx1とFaxTx2とFaxTx3との間の継承関係の例を表す。The example of the inheritance relationship between FaxTx1, FaxTx2, and FaxTx3 is represented. 利用関係の設定画面の具体例を表す。A specific example of a usage relationship setting screen is shown. 更新処理用のモジュールの取得態様について説明するための図である。It is a figure for demonstrating the acquisition aspect of the module for update processes.

図1は、本発明の実施例に該当する融合機101を表す。図1の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。   FIG. 1 shows a compound machine 101 corresponding to an embodiment of the present invention. The compound machine 101 shown in FIG. 1 includes various hardware 111, various software 112, and a compound machine starting unit 113.

融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像(画像データ)を読み取るためのハードウェアである。印刷部122は、画像(画像データ)を印刷用紙に印刷するためのハードウェアである。   As the hardware 111 of the multi-function peripheral 101, there are an imaging unit 121, a printing unit 122, and other hardware 123. The imaging unit 121 is hardware for reading an image (image data) from a read original. The printing unit 122 is hardware for printing an image (image data) on printing paper.

融合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX(登録商標)等のOS(オペレーティングシステム)によりプロセス単位で並列的に実行される。   As the software 112 of the multi-function peripheral 101, there are various applications 131 and various platforms 132. These programs are executed in parallel on a process basis by an OS (Operating System) such as UNIX (registered trademark).

アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。   The application 131 includes a copy application 141 that is a copy application, a printer application 142 that is a printer application, a scanner application 143 that is a scanner application, a facsimile application 144 that is a facsimile application, and a network file application. There is a network file application 145.

アプリケーション131は、専用のSDK(ソフトウェア開発キット)を使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するための「CSDK」や、Java(登録商標)言語でアプリケーション131を開発するための「JSDK」が提供される。CSDKを使用して開発したアプリケーション131を「CSDKアプリ」と呼び、JSDKを使用して開発したアプリケーション131を「JSDKアプリ」と呼ぶ。図1の融合機101にも、CSDKアプリ146と、JSDKアプリ147が存在する。図1の融合機101にはさらに、Java(登録商標)言語で記述されたJSDKアプリ147とC言語で記述された他のソフトウェア112との仲介を行うソフトウェア112として、JSDKプラットフォーム148が存在する。   The application 131 can be developed using a dedicated SDK (software development kit). An application 131 developed using the SDK is called an SDK application. As the dedicated SDK, “CSDK” for developing the application 131 in C language and “JSDK” for developing the application 131 in Java (registered trademark) language are provided. An application 131 developed using CSDK is called a “CSDK application”, and an application 131 developed using JSDK is called a “JSDK application”. The MFP 101 in FIG. 1 also has a CSDK application 146 and a JSDK application 147. 1 further includes a JSDK platform 148 as software 112 that mediates between the JSDK application 147 written in the Java (registered trademark) language and the other software 112 written in the C language.

プラットフォーム132としては、種々のコントロールサービス151、システムリソースマネージャ152、種々のハンドラ153が存在する。コントロールサービス151としては、ネットワークコントロールサービス(NCS)161、ファクシミリコントロールサービス(FCS)162、デリバリコントロールサービス(DCS)163、エンジンコントロールサービス(ECS)164、メモリコントロールサービス(MCS)165、オペレーションパネルコントロールサービス(OCS)166、サーティフィケーションコントロールサービス(CCS)167、ユーザディレクトリコントロールサービス(UCS)168、システムコントロールサービス(SCS)169が存在する。ハンドラ153としては、ファクシミリコントロールユニットハンドラ(FCUH)171、イメージメモリハンドラ(IMH)172が存在する。   The platform 132 includes various control services 151, a system resource manager 152, and various handlers 153. The control service 151 includes a network control service (NCS) 161, a facsimile control service (FCS) 162, a delivery control service (DCS) 163, an engine control service (ECS) 164, a memory control service (MCS) 165, and an operation panel control service. There are (OCS) 166, a certification control service (CCS) 167, a user directory control service (UCS) 168, and a system control service (SCS) 169. As the handler 153, there are a facsimile control unit handler (FCUH) 171 and an image memory handler (IMH) 172.

NCS161のプロセスは、ネットワーク通信の仲介を行う。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。   The process of the NCS 161 mediates network communication. The FCS 162 process provides a facsimile API. The process of the DCS 163 performs control related to the distribution processing of the stored document. The process of the ECS 164 performs control related to the imaging unit 121 and the printing unit 122. The process of the MCS 165 controls the memory and hard disk drive. The process of the OCS 166 performs control related to the operation panel. The process of the CCS 167 performs control related to authentication processing and billing processing. The process of the UCS 168 performs control related to management of user information. The process of the SCS 169 performs control related to system management.

アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービス(VAS)135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。   A virtual application service (VAS) 135 exists as software 112 that mediates between the application 131 and the platform 132. The VAS 135 operates as a server process using the application 131 as a client, and also operates as a client process using the platform 132 as a server. The VAS 135 has a wrapping function that hides the platform 132 when viewed from the application 131, and plays a role of absorbing version differences associated with version upgrades of the platform 132.

融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX(登録商標)等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。   The MFP starter 113 is executed first when the MFP 101 is turned on. As a result, an OS such as UNIX (registered trademark) is activated, and the application 131 and the platform 132 are activated. These programs are stored in the hard disk drive or the memory card, and are reproduced from the hard disk drive or the memory card and activated in the memory.

図2は、図1の融合機101に係るハードウェア構成図である。融合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。   FIG. 2 is a hardware configuration diagram according to the MFP 101 of FIG. The hardware 111 of the multi-function peripheral 101 includes a controller 201, an operation panel 202, a facsimile control unit (FCU) 203, an imaging unit 121, and a printing unit 122.

コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。   The controller 201 includes a CPU 211, ASIC 212, NB221, SB222, MEM-P231, MEM-C232, HDD (hard disk drive) 233, memory card slot 234, NIC (network interface controller) 241, USB device 242, IEEE 1394 device 243, and Centronics device. 244.

CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM−P231は、融合機101のシステムメモリである。MEM−C232は、融合機101のローカルメモリである。HDD233は、融合機101のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。   The CPU 211 is an IC for various information processing. The ASIC 212 is an IC for various image processing. The NB 221 is a north bridge of the controller 201. The SB 222 is a south bridge of the controller 201. The MEM-P 231 is a system memory of the multifunction machine 101. The MEM-C 232 is a local memory of the multifunction machine 101. The HDD 233 is a storage of the multifunction machine 101. The memory card slot 234 is a slot for setting the memory card 235. The NIC 241 is a controller for network communication using a MAC address. The USB device 242 is a device for providing a USB standard connection terminal. The IEEE 1394 device 243 is a device for providing a connection terminal of the IEEE 1394 standard. The Centronics device 244 is a device for providing a Centronics specification connection terminal.

オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア(操作部)であると共に、オペレータが融合機101から出力を得るためのハードウェア(表示部)である。   The operation panel 202 is hardware (operation unit) for an operator to input to the multifunction machine 101 and hardware (display unit) for the operator to obtain an output from the multifunction machine 101.

図3は、図1の融合機101に係る外観図である。図3には、撮像部121の位置と、印刷部122の位置と、オペレーションパネル202の位置が図示されている。図3には更に、読取原稿のセット先となる原稿セット部301と、印刷用紙の給紙先となる給紙部302と、印刷用紙の排紙先となる排紙部303が図示されている。   FIG. 3 is an external view of the multi-function peripheral 101 of FIG. FIG. 3 shows the position of the imaging unit 121, the position of the printing unit 122, and the position of the operation panel 202. FIG. 3 further illustrates a document setting unit 301 that is a setting destination of a read document, a paper feeding unit 302 that is a printing paper feeding destination, and a paper discharging unit 303 that is a printing paper discharging destination. .

オペレーションパネル202は、図4のように、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェア(タッチ操作部)であると共に、画面表示で出力を得るためのハードウェア(画面表示部)である。テンキー312は、キー(ボタン)操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、キー(ボタン)操作でCSDKアプリ146やJSDKアプリ147による操作画面を表示させるためのハードウェアである。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。   As shown in FIG. 4, the operation panel 202 includes a touch panel 311, a numeric keypad 312, a start button 313, a reset button 314, a function key 315, and an initial setting button 316. The touch panel 311 is hardware (touch operation unit) for inputting by a touch operation and hardware (screen display unit) for obtaining an output by screen display. The numeric keypad 312 is hardware for inputting numbers by operating keys (buttons). The start button 313 is hardware for performing a start operation by a button operation. The reset button 314 is hardware for performing a reset operation by a button operation. The function key 315 is hardware for displaying an operation screen by the CSDK application 146 or the JSDK application 147 by a key (button) operation. The initial setting button 316 is hardware for displaying an initial setting screen by button operation.

原稿セット部301は、ADF(自動原稿搬送装置)321と、フラットベッド322と、フラットベッドカバー323により構成される。給紙部302は、4個の給紙トレイにより構成される。排紙部303は、1個の排紙トレイにより構成される。   The document setting unit 301 includes an ADF (automatic document feeder) 321, a flat bed 322, and a flat bed cover 323. The paper feed unit 302 includes four paper feed trays. The paper discharge unit 303 includes a single paper discharge tray.

(CSDK/JSDK/OSGi)
図5は、図1のCSDKアプリ146とJSDKアプリ147のソフトウェア構成図である。CSDKアプリ146は、C言語のアプリケーションであり、それぞれプロセスとして実行される事になる。JSDKアプリ147は、Java(登録商標)言語のアプリケーションであり、それぞれスレッドとして実行される事になる。
(CSDK / JSDK / OSGi)
FIG. 5 is a software configuration diagram of the CSDK application 146 and the JSDK application 147 of FIG. The CSDK application 146 is a C language application and is executed as a process. The JSDK application 147 is a Java (registered trademark) language application, and is executed as a thread.

図1の融合機101には、CSDKアプリ146として、他のCSDKアプリ146の制御を行うSAS(SDKアプリケーションサービス)411が存在し、JSDKアプリ147として、他のJSDKアプリ147の制御を行うSAS Manager(SDKアプリケーションサービスマネージャ)511が存在する。CSDKアプリ146の方はプロセスとして実行されてJSDKアプリ147の方はスレッドとして実行されるので、CSDKアプリ146用のアプリケーション管理機構とJSDKアプリ147用のアプリケーション管理機構が別個に存在するのである。SAS411とSAS Manager511はそれぞれ、CSDKアプリ146とJSDKアプリ147の起動制御,起動解除制御,インストール制御,アンインストール制御,アップデート制御等を行う。   1 includes a SAS (SDK application service) 411 that controls another CSDK application 146 as the CSDK application 146, and a SAS Manager that controls another JSDK application 147 as the JSDK application 147. (SDK application service manager) 511 exists. Since the CSDK application 146 is executed as a process and the JSDK application 147 is executed as a thread, an application management mechanism for the CSDK application 146 and an application management mechanism for the JSDK application 147 exist separately. The SAS 411 and the SAS manager 511 perform activation control, activation release control, installation control, uninstallation control, update control, and the like of the CSDK application 146 and the JSDK application 147, respectively.

さて、SAS411は、CSDKアプリ146の制御を行う事ができるだけではなく、SAS Manager511を介してJSDKアプリ147の制御を行う事もできる。SAS411は、CSDKアプリ146については直接的にその制御を行う事ができると共に、JSDKアプリ147についてはSAS Manager511を介して間接的にその制御を行う事ができるのである。このように、CSDKアプリ146用のアプリケーション管理機構とJSDKアプリ147用のアプリケーション管理機構は、SAS Manager511を制御できる機能をSAS411に具備させると言う形で統合的に構成されている。融合機101のソフトウェアの根幹部分はC言語によるので、SDKアプリを制御する機能を同じくC言語によるSAS411に集中しておくのが好適なのである。   The SAS 411 can not only control the CSDK application 146, but can also control the JSDK application 147 via the SAS Manager 511. The SAS 411 can directly control the CSDK application 146 and can indirectly control the JSDK application 147 via the SAS Manager 511. As described above, the application management mechanism for the CSDK application 146 and the application management mechanism for the JSDK application 147 are integratedly configured in such a manner that the SAS 411 is provided with a function capable of controlling the SAS Manager 511. Since the fundamental part of the software of the multi-function peripheral 101 is in C language, it is preferable to concentrate the functions for controlling the SDK application on the SAS 411 in the same C language.

図6は、図1の融合機101におけるOSGi(Open Service Gateway initiative)サービスプラットフォームについて説明するための図である。OSGiサービスプラットフォームは、OSGiアライアンスによる標準化技術であり、Java(登録商標)言語に基づいたオープンなソフトウェア部品化技術である。OSGiサービスプラットフォームが実装された機器では、Java(登録商標)言語のソフトウェアは「バンドル」と言うソフトウェア部品の形で実装される。そして、該機器の諸機能はバンドルをもって構成する事ができると共に、該機器の諸機能のアップデートやカスタマイズやメンテナンスはバンドルのダウンロードをもって実現する事ができる。   FIG. 6 is a diagram for explaining an OSGi (Open Service Gateway initial) service platform in the multi-function peripheral 101 of FIG. The OSGi service platform is a standardized technology by the OSGi Alliance, and is an open software componentization technology based on the Java (registered trademark) language. In a device on which the OSGi service platform is mounted, Java (registered trademark) language software is mounted in the form of a software component called “bundle”. The functions of the device can be configured with a bundle, and updates, customization, and maintenance of the functions of the device can be realized by downloading the bundle.

図1の融合機101には、Java(登録商標)言語のソフトウェアとして、JSDKアプリ147と、JSDKプラットフォーム148と、OSGi用のアプリケーションであるOSGiアプリ401と、OSGi用のサービスであるOSGiサービス402と、バンドルの管理(バンドルのライフサイクルやデータの管理等)を行うOSGiフレームワーク403が存在する。   1 includes, as software in Java (registered trademark), a JSDK application 147, a JSDK platform 148, an OSGi application 401 that is an OSGi application, and an OSGi service 402 that is an OSGi service. There is an OSGi framework 403 that manages bundles (such as bundle lifecycle and data management).

さて、OSGiアプリ401とJSDKアプリ147に関して、OSGiアプリ401はバンドル化された状態で融合機101に実装するものとするが、JSDKアプリ147はバンドル化されていない状態で融合機101に実装するものとする。理由は、JSDKアプリ147をバンドル化して実装する負担をJSDKアプリ147のベンダに課さないようにするためである。その代わり、JSDKアプリ147をバンドル化する「Bundle Activator404」がJSDKプラットフォーム148に存在している。そして、OSGiフレームワーク403は、バンドル化された状態で融合機101に実装されたバンドル(OSGiアプリ401)の管理を行うと共に、バンドル化されていない状態で融合機101に実装されて「Bundle Activator404」によってバンドル化されるバンドル(JSDKアプリ147)の管理を行う事になる。このようにして、OSGiアプリ401用のアプリケーション管理機構とJSDKアプリ147用のアプリケーション管理機構は、OSGiフレームワーク403とBundle Activator404を併設すると言う形で統合的に構成されているのである。これにより、Java(登録商標)言語のアプリケーションの管理先の一元化が実現されている。   Now, regarding the OSGi application 401 and the JSDK application 147, the OSGi application 401 is mounted on the MFP 101 in a bundled state, but the JSDK application 147 is mounted on the MFP 101 in a non-bundled state. And The reason is that the burden of bundling and mounting the JSDK application 147 is not imposed on the vendor of the JSDK application 147. Instead, the “Bundle Activator 404” for bundling the JSDK application 147 exists in the JSDK platform 148. The OSGi framework 403 manages the bundle (OSGi application 401) installed in the multi-function peripheral 101 in a bundled state, and is installed in the multi-function peripheral 101 in a non-bundled state to display “Bundle Activator 404”. ”(JSDK application 147) is managed. In this way, the application management mechanism for the OSGi application 401 and the application management mechanism for the JSDK application 147 are configured in an integrated manner in such a manner that the OSGi framework 403 and the bundle activator 404 are provided side by side. Thereby, unification of management destinations of Java (registered trademark) language applications is realized.

なお、OSGiフレームワーク403は、当然の事ながら、OSGiサービス402を構成するバンドルの管理や、JSDKプラットフォーム148を構成するバンドルの管理も行う。Java(登録商標)言語のソフトウェアの管理先の一元化が実現されていると言える。そして、OSGiアプリ401はここではServletかJSPであるものとする。そして、JSDKアプリ147はここではXletであるものとする。   As a matter of course, the OSGi framework 403 also manages bundles constituting the OSGi service 402 and bundles constituting the JSDK platform 148. It can be said that unification of management destinations of Java (registered trademark) language software is realized. The OSGi application 401 is assumed to be Servlet or JSP here. The JSDK application 147 is assumed to be Xlet here.

なお、JSDKアプリ147についても、バンドル化された状態で実装するものとしてもよい。さらに、JSDKアプリ147については、バンドル化された状態で実装してもバンドル化されていない状態で実装してもどちらでもよいものとしてもよい。バンドル化された状態で実装されるJSDKアプリ147については、Bundle Activator404によるバンドル化は不要である。   Note that the JSDK application 147 may also be implemented in a bundled state. Furthermore, the JSDK application 147 may be mounted either in a bundled state or in a non-bundled state. For the JSDK application 147 implemented in a bundled state, bundling by the bundle activator 404 is not necessary.

(更新処理)
以下、バンドルとして管理されるJava(登録商標)言語のソフトウェアの更新処理について説明する。先ず、図1の融合機101内のJSDKプラットフォーム(バンドルサービス)148の更新処理について説明して、次に、図1の融合機101内のJSDKアプリ(バンドルアプリ)147の更新処理について説明する。なお、当該融合機101内のJSDKプラットフォーム(バンドルサービス)148やJSDKアプリ(バンドルアプリ)147の更新処理は当該融合機101内のSAS Manager511により実行される。
(Update process)
Hereinafter, update processing of Java (registered trademark) language software managed as a bundle will be described. First, update processing of the JSDK platform (bundle service) 148 in the multifunction peripheral 101 in FIG. 1 will be described, and next, update processing of the JSDK application (bundle application) 147 in the multifunction peripheral 101 in FIG. 1 will be described. Note that the update processing of the JSDK platform (bundle service) 148 and JSDK application (bundle application) 147 in the multi-function peripheral 101 is executed by the SAS Manager 511 in the multi-function peripheral 101.

図7は、バンドルサービス148のオブジェクト構成の具体例を表す。図7のバンドルサービス148は、4個のオブジェクト(モジュール)A/B/C/Dにより構成されている。   FIG. 7 shows a specific example of the object configuration of the bundle service 148. The bundle service 148 in FIG. 7 includes four objects (modules) A / B / C / D.

さて、オブジェクトA/B/C/Dが相互に関連している場合には、バンドルサービス148の実行中(動作中)にオブジェクトAをオブジェクトA'に入れ替える事は困難である。オブジェクトAが提供するサービスをオブジェクトB/C/Dが利用すべく、オブジェクトAをオブジェクトB/C/Dが参照している可能性があるからである。よって、オブジェクトAをオブジェクトA'に入れ替える場合には、オブジェクトAを入れ替える旨をオブジェクトB/C/Dに通知し、オブジェクトB/C/DがオブジェクトAの参照をオブジェクトA'の参照に切り替える必要がある。したがって、オブジェクトAをオブジェクトA'に入れ替えるなど、バンドルサービス148の更新処理をバンドルサービス148の動作中にバンドルサービス148のモジュール毎に実行するには、従来は融合機101の再起動処理が必要だった。   If the objects A / B / C / D are related to each other, it is difficult to replace the object A with the object A ′ during the execution (operation) of the bundle service 148. This is because the object B / C / D may refer to the object A so that the object B / C / D uses the service provided by the object A. Therefore, when replacing the object A with the object A ′, it is necessary to notify the object B / C / D that the object A is to be replaced, and the object B / C / D needs to switch the reference of the object A to the reference of the object A ′. There is. Therefore, in order to execute the update process of the bundle service 148 for each module of the bundle service 148 during the operation of the bundle service 148, such as replacing the object A with the object A ′, conventionally, a restart process of the MFP 101 is necessary. It was.

しかしながら、融合機101は、バンドルサービス148の更新処理をバンドルサービス148の動作中にバンドルサービス148のモジュール毎に実行するのに、融合機101の再起動処理を伴わずに実行する。よって、バンドルサービス148の更新処理を実施するのに、融合機101の再起動操作をユーザに強制する事もなくなるし、融合機101の再起動処理がユーザの知らぬ間に実施される事もなくなるのである。   However, the MFP 101 executes the update process of the bundle service 148 for each module of the bundle service 148 during the operation of the bundle service 148, without executing the restart process of the MFP 101. Therefore, in order to execute the update process of the bundle service 148, the user is not forced to restart the MFP 101, and the restart process of the MFP 101 may be performed without the user's knowledge. It will disappear.

すなわち、融合機101は、バンドルサービス148の更新処理をバンドルサービス148の更新部分のオブジェクトがアクティブ状態ではないとき(動作中でないとき)に実行する。これによって、融合機101は、再起動処理を伴わずに、バンドルサービス148の更新処理をバンドルサービス148の動作中にバンドルサービス148のモジュール毎に実行する事ができる。   That is, the multi-function peripheral 101 executes the update process of the bundle service 148 when the object of the update part of the bundle service 148 is not in the active state (when not operating). Accordingly, the multi-function peripheral 101 can execute the update process of the bundle service 148 for each module of the bundle service 148 during the operation of the bundle service 148 without the restart process.

以下、バンドルサービス148の更新処理の具体例として、バンドルサービス「FaxTx1」がバンドルサービス「FaxTx2」に更新される様子について説明する。バンドルサービス「FaxTx1」は、画像データをFAX送信するサービスを提供するバンドルサービス148である。「FaxTx2」は、画像データをPDFからTIFFに変換してFAX送信するサービスを提供するバンドルサービス148である。   Hereinafter, as a specific example of the update process of the bundle service 148, a state in which the bundle service “FaxTx1” is updated to the bundle service “FaxTx2” will be described. The bundle service “FaxTx1” is a bundle service 148 that provides a service for transmitting image data by FAX. “FaxTx2” is a bundle service 148 that provides a service for converting image data from PDF to TIFF and transmitting it by FAX.

図8はバンドルサービス「FaxTx1」の状態遷移図である。FaxTx1の状態としては、初期状態601、終期状態602、Idle状態603、Send状態604が存在する。Idle状態603は、FAX送信処理の待機中の状態である。Send状態604は、FAX送信処理を実行中の状態である。Idle状態603からSend状態604には、送信開始イベント611により遷移する。Send状態604から終期状態602には、送信終了イベント612により遷移する。   FIG. 8 is a state transition diagram of the bundle service “FaxTx1”. As states of FaxTx1, there are an initial state 601, an end state 602, an idle state 603, and a send state 604. The Idle state 603 is a state waiting for FAX transmission processing. The Send state 604 is a state in which a FAX transmission process is being executed. Transition from the Idle state 603 to the Send state 604 is caused by a transmission start event 611. Transition from the Send state 604 to the final state 602 is made by a transmission end event 612.

図9はバンドルサービス「FaxTx2」の状態遷移図である。FaxTx2の状態としては、初期状態601、終期状態602、Idle状態603、Send状態604に加えて、Transform状態605が存在する。Transform状態605は、PDFからTIFFへの変換処理を実行中の状態である。Idle状態603からTransform状態605には、送信開始イベント611により遷移する。Transform状態605からSend状態604には、変換終了イベント613により遷移する。   FIG. 9 is a state transition diagram of the bundle service “FaxTx2”. In addition to the initial state 601, the final state 602, the idle state 603, and the send state 604, the FaxTx2 state includes a transform state 605. The Transform state 605 is a state in which conversion processing from PDF to TIFF is being executed. Transition from the Idle state 603 to the Transform state 605 is caused by a transmission start event 611. Transition from the Transform state 605 to the Send state 604 is caused by a conversion end event 613.

状態遷移図に基づいて、本実施の形態におけるバンドルサービス148は、図10に示されるようなクラス群によってモデル化されている。図10は、バンドルサービスを構成するクラス図の一例である。   Based on the state transition diagram, the bundle service 148 in the present embodiment is modeled by a class group as shown in FIG. FIG. 10 is an example of a class diagram constituting the bundle service.

図10において、StateMachineクラス1001は、一つのバンドルサービス148を表現するクラスである。すなわち、バンドルサービス「FaxTx1」や「FaxTx2」を表現するオブジェクトは、SateMachineクラス1001のインスタンス(StateMachineオブジェクト)として生成される。StateVertexクラス1002は、抽象クラスであり、状態遷移図において状態を表現するクラスのルートクラスに相当する。StateVertexクラス1002は、connectメソッド1002aや、reconnectメソッド1002b等のメソッドが定義されている。connectメソッド1002aは、遷移先の状態及びその状態遷移との接続を実行するメソッドである。状態遷移についてはTransitクラス1003によって表現される。したがって、より具体的には、connectメソッド1002aは、遷移先のStateVertexオブジェクト(厳密にはそのサブクラスのオブジェクト。以下、総称する場合「状態オブジェクト」という。)と、その状態遷移に対応するTransitオブジェクト(以下、「遷移オブジェクト」という。)との接続を実行するクラスである。ここでいう接続は、例えば、状態オブジェクト内に、遷移先の状態オブジェクトや、その遷移オブジェクトの識別情報(ID、参照、又はポインタ等)を保持することで実現される。reconnectメソッド1002bは、遷移先の変更を実行するメソッドである。なお、Trasitクラス1003には、インタフェースとしてEventインタフェース1003a、Guradインタフェース1003b、及びActionインタフェース1003c等が定義されている。Eventインタフェース1003aは、状態遷移の遷移イベントを実装するインタフェースである。Guardインタフェース1003bは、ガード条件を実装するインタフェースである。Actionインタフェース1003cは、状態遷移時に実行するアクションを実装するインタフェースである。   In FIG. 10, a StateMachine class 1001 is a class that represents one bundle service 148. That is, an object expressing the bundle service “FaxTx1” or “FaxTx2” is generated as an instance of the StateMachine class 1001 (StateMachine object). The StateVertex class 1002 is an abstract class and corresponds to the root class of a class that represents a state in the state transition diagram. The StateVertex class 1002 defines methods such as a connect method 1002a and a connect method 1002b. The connect method 1002a is a method for executing a transition destination state and connection with the state transition. The state transition is expressed by a Transit class 1003. Therefore, more specifically, the connect method 1002a includes a transition destination StateVertex object (strictly, an object of a subclass thereof, hereinafter referred to as a “state object” when generically referred to), and a Transit object ( Hereinafter, this class is called “transition object”). The connection here is realized, for example, by holding a transition destination state object and identification information (ID, reference, pointer, etc.) of the transition object in the state object. The reconnect method 1002b is a method for executing transition destination change. In the Trait class 1003, an event interface 1003a, a Gurad interface 1003b, an action interface 1003c, and the like are defined as interfaces. The Event interface 1003a is an interface for implementing a transition event of state transition. The Guard interface 1003b is an interface that implements a guard condition. The Action interface 1003c is an interface for implementing an action to be executed at the time of state transition.

StateVertexクラス1002のサブクラスとしては、Stateクラス1004及びPseudoStateクラス1005が定義されている。Stateクラス1004は、例えば、バンドルサービス148に応じて定義される状態を表現するクラスである。Stateクラス1004には、インタフェースとしてIStateインタフェース1004a及びActivityインタフェース1004b等が定義されている。IStateインタフェース1004aは、状態の入場時の処理(入場処理)及び退場時の処理(退場処理)を実装するインタフェースである。Activityインタフェース1004bは、状態にある間実行する処理を実装するインタフェースである。これらインタフェースは、クラスとして実装される。したがって、例えば、Activityインタフェース1004bの処理は、Activityクラスに実装される。   As subclasses of the StateVertex class 1002, a State class 1004 and a PseudoState class 1005 are defined. The State class 1004 is a class that expresses a state defined according to the bundle service 148, for example. In the State class 1004, an IState interface 1004a and an Activity interface 1004b are defined as interfaces. The IState interface 1004a is an interface that implements a state entry process (entrance process) and an exit process (exit process). The Activity interface 1004b is an interface that implements processing to be executed while in a state. These interfaces are implemented as classes. Therefore, for example, the processing of the Activity interface 1004b is implemented in the Activity class.

PseudoSateクラス1005は、初期状態や終期状態等、その名の通り擬似的な状態を表現するクラスであり、そのサブクラスとしては初期状態を表現するInitialStateクラス1006及び終期状態を表現するFinalStateクラス1007等がある。   The PseudoState class 1005 is a class that represents a pseudo state such as an initial state and an end state, and its subclass includes an InitialState class 1006 that represents an initial state, a FinalState class 1007 that represents an end state, and the like. is there.

上記クラス間の関係について説明する。StateMachineクラス1001は、StateVertexクラス1002を集約する。これは、一つのバンドルサービスは、一つ以上の状態を有することを表現したものである。StateVertexクラス1002は、Transitクラスを集約する。これは、状態と状態との間は遷移によって接続されることを表現したものである。   The relationship between the classes will be described. The StateMachine class 1001 aggregates the StateVertex class 1002. This expresses that one bundle service has one or more states. The StateVertex class 1002 aggregates the Transit class. This expresses that a state is connected by a transition.

以上のような、モデルに基づいて、バンドルサービス「FaxTx1」及び「FaxTx2」は、以下のようなオブジェクトによって構成される。   Based on the model as described above, the bundle services “FaxTx1” and “FaxTx2” are configured by the following objects.

図11はバンドルサービス「FaxTx1」のオブジェクト構成を表す。FaxTx1は、図8の状態遷移図に基づいて、初期状態オブジェクト701、終期状態オブジェクト702、Idle状態オブジェクト703、Send状態オブジェクト704、送信開始オブジェクト711T、送信処理オブジェクト712Aにより構成されている。   FIG. 11 shows an object configuration of the bundle service “FaxTx1”. The Fax Tx1 includes an initial state object 701, an end state object 702, an idle state object 703, a send state object 704, a transmission start object 711T, and a transmission processing object 712A based on the state transition diagram of FIG.

また、図12はバンドルサービス「FaxTx2」のオブジェクト構成を表す。FaxTx2は、図9の状態遷移図に基づいて、初期状態オブジェクト701、終期状態オブジェクト702、Idle状態オブジェクト703、Send状態オブジェクト704、Transform状態オブジェクト705、送信開始オブジェクト711T、送信処理オブジェクト712A、変換処理オブジェクト713A、変換終了オブジェクト713Tにより構成されている。   FIG. 12 shows an object configuration of the bundle service “FaxTx2”. The Fax Tx2 is based on the state transition diagram of FIG. 9 and includes an initial state object 701, an end state object 702, an idle state object 703, a send state object 704, a transform state object 705, a transmission start object 711T, a transmission processing object 712A, and a conversion processing. An object 713A and a conversion end object 713T are included.

図11及び図12においてオブジェクト同士を連結する線分は、オブジェクト同士の参照関係を表す。遷移元の状態オブジェクトは遷移先の状態オブジェクトを参照している。なお、図中では状態オブジェクト間に遷移オブジェクトが接続されている場合がある。例えば、Idle状態オブジェクト703とSend状態オブジェクト704との間には送信開始オブジェクト711Tが接続されている。しかし、このことはIdle状態703が、Send状態オブジェクト704を参照していないことを示すものではない。Idle状態オブジェクト703は、Send状態オブジェクト703を参照すると共に、その状態遷移に対応する遷移オブジェクトとして送信開始オブジェクト711Tをも参照することを表現したものである。   In FIG. 11 and FIG. 12, the line segment connecting the objects represents the reference relationship between the objects. The transition state object refers to the transition state object. In the figure, transition objects may be connected between state objects. For example, a transmission start object 711T is connected between the Idle state object 703 and the Send state object 704. However, this does not indicate that the idle state 703 does not refer to the send state object 704. The Idle state object 703 represents that the Send state object 703 is referred to, and the transmission start object 711T is also referred to as a transition object corresponding to the state transition.

図11及び図12より、バンドルサービス「FaxTx1」から「FaxTx2」への更新処理とは、FaxTx1に「Transform状態オブジェクト705」や「変換処理オブジェクト713A」や「変換終了オブジェクト713T」と言った更新処理用のオブジェクトをFaxTx1に対して追加する事で実現できることが分かる。   From FIG. 11 and FIG. 12, the update process from the bundle service “FaxTx1” to “FaxTx2” is an update process such as “Transform state object 705”, “Conversion process object 713A”, and “Conversion end object 713T”. It can be seen that this can be realized by adding an object for FaxTx1.

バンドルサービス148の更新処理の影響が顕著なオブジェクトが、バンドルサービス148の更新部分のオブジェクトである。バンドルサービス148の更新部分のオブジェクトとは、オブジェクトの入替部分やオブジェクトの追加部分(バンドルサービス148の更新部分)に連結するオブジェクトを意味する。図11から図12への更新処理では、バンドルサービス148の更新部分に相当するのがスイッチ721等の追加部分であり、バンドルサービス148の更新部分のオブジェクトに相当するのがSend状態オブジェクト704や送信開始オブジェクト711Tである。   An object that is noticeably influenced by the update process of the bundle service 148 is an object of the update part of the bundle service 148. The object of the update part of the bundle service 148 means an object linked to the replacement part of the object or the additional part of the object (update part of the bundle service 148). In the update process from FIG. 11 to FIG. 12, the update part of the bundle service 148 corresponds to the additional part of the switch 721 and the like, and the update part object of the bundle service 148 corresponds to the Send state object 704 and transmission. A start object 711T.

オブジェクトの状態は、サービスの授受を行う「アクティブ状態」とサービスの授受を行わない「非アクティブ状態」に分類される。バンドルサービス148の更新処理をバンドルサービス148の動作中に実行するには、バンドルサービス148の更新部分のオブジェクトがアクティブ状態ではないとき(非アクティブ状態のとき)に実行すればよい。バンドルサービス148の動作中のオブジェクト同士のサービスの授受が更新処理により阻害されずに済むからである。よって、バンドルサービス148の更新処理をバンドルサービス148の更新部分のオブジェクトがアクティブ状態ではないときに実行するのである。なお、状態遷移図によるモデリングでは、一のオブジェクトがアクティブ状態のときは他のオブジェクトは非アクティブ状態に限定される。すなわち、各オブジェクトは互いに排他的に処理を実行する(動作する)。   The state of the object is classified into an “active state” in which service is transferred and an “inactive state” in which service is not transferred. In order to execute the update process of the bundle service 148 during the operation of the bundle service 148, the update process may be executed when the object of the update part of the bundle service 148 is not in an active state (in an inactive state). This is because the service transfer between objects during the operation of the bundle service 148 is not hindered by the update process. Therefore, the update process of the bundle service 148 is executed when the object of the update part of the bundle service 148 is not in the active state. In the modeling based on the state transition diagram, when one object is in the active state, the other objects are limited to the inactive state. That is, each object executes (operates) processing exclusively from each other.

図13は、バンドルサービス148の更新処理に係るコラボレーション図である。同図の更新処理は、バンドルサービス「FaxTx1」をバンドルサービス「FaxTx2」に更新するものである。   FIG. 13 is a collaboration diagram related to the update process of the bundle service 148. The update process in FIG. 6 updates the bundle service “FaxTx1” to the bundle service “FaxTx2”.

FaxTx1をFaxTx2に更新する旨の更新操作が融合機101又はクライアント端末801の操作画面で実施されると、FaxTx1をFaxTx2に更新する旨の更新要求がSAS411からSAS Manager511に送信(S11)される。次に、SAS Manager511では、FaxTx1からFaxTx2への更新処理を実施可能かどうかのチェックが実行(S12)される。次に、SAS Manager511では、更新処理用のモジュールを融合機101にインストール可能かどうかのチェックが実行(S13)される。   When an update operation for updating FaxTx1 to FaxTx2 is performed on the operation screen of the MFP 101 or the client terminal 801, an update request for updating FaxTx1 to FaxTx2 is transmitted from the SAS 411 to the SAS Manager 511 (S11). Next, in the SAS manager 511, a check is performed as to whether update processing from Fax Tx1 to Fax Tx2 can be performed (S12). Next, in the SAS manager 511, it is checked whether or not the module for update processing can be installed in the multi-function peripheral 101 (S13).

続いて、SAS Manager511は、更新処理用のモジュールを融合機101にインストール(S14)する。続いて、SAS Manager511は、更新処理用のモジュールをアクティブ状態に遷移(S15)させる。続いて、SAS Manager511は、FaxTx1に更新処理用のモジュールを追加して、スイッチ721をFaxTx1側からFaxTx2側に切り替えて、FaxTx2を生成(S16)する。   Subsequently, the SAS manager 511 installs a module for update processing in the multi-function peripheral 101 (S14). Subsequently, the SAS manager 511 causes the update processing module to transition to the active state (S15). Subsequently, the SAS manager 511 adds a module for update processing to FaxTx1, switches the switch 721 from the FaxTx1 side to the FaxTx2 side, and generates FaxTx2 (S16).

なお、更新処理が行われるタイミングは、更新処理用のモジュールに同梱されているAspectSM811と言うXMLファイルに記述されている。また、FaxTx1やFaxTx2とJSDKアプリ147との仲介制御は、JSDKプラットフォーム148を構成するProxy Service822が実行する。   The timing at which the update process is performed is described in an XML file called “AspectSM811” included in the module for the update process. Further, the proxy service 822 constituting the JSDK platform 148 executes the mediation control between the FaxTx1 and FaxTx2 and the JSDK application 147.

FaxTx1からFaxTx2への更新処理について更に詳しく説明する。更新処処理自体の詳細説明の前に、図11に示されるFaxTx1のオブジェクト構成が構築される過程について説明する。   The update process from Fax Tx1 to Fax Tx2 will be described in more detail. Before the detailed description of the update processing itself, a process of constructing the object structure of FaxTx1 shown in FIG. 11 will be described.

図14は、バンドルサービス「FaxTx1」のオブジェクト構成の構築処理を説明するためのシーケンス図である。図14の処理は、FaxTx1オブジェクト831がインスタンス化された際に実行される。   FIG. 14 is a sequence diagram for explaining an object configuration construction process of the bundle service “FaxTx1”. The process of FIG. 14 is executed when the FaxTx1 object 831 is instantiated.

FaxTx1オブジェクト831は、インスタンス化されると、バンドルサービス「FaxTx1」の状態遷移情報に基づいて当該状態遷移に対応したオブジェクト構成を構築する(101)。状態遷移情報は、例えば、融合機101の所定の記憶装置内に、以下の形式で保存されている。   When the FaxTx1 object 831 is instantiated, an object configuration corresponding to the state transition is constructed based on the state transition information of the bundle service “FaxTx1” (101). For example, the state transition information is stored in a predetermined storage device of the multi-function peripheral 101 in the following format.

図15及び図16は、バンドルサービス「FaxTx1」の状態遷移情報の定義例を示す図である。図15及び図16によって一つの状態遷移情報900の記述例が示されている。状態遷移情報900は、XMI(XML Metadata Interchange)に従った記述例が示されている。XMIは、モデルを各種のソフトウェアの間でXML文書によって交換することを目的とした標準規格である。但し、本実施の形態を実施するにあたり、状態遷移情報は、必ずしもXMIに従って記述される必要はない。なお、図中における行番号は、説明の便宜上付加したものである。   FIG. 15 and FIG. 16 are diagrams illustrating definition examples of state transition information of the bundle service “FaxTx1”. A description example of one state transition information 900 is shown in FIG. 15 and FIG. The state transition information 900 shows a description example according to XMI (XML Metadata Interchange). XMI is a standard for the purpose of exchanging models between various types of software through XML documents. However, in implementing this embodiment, the state transition information does not necessarily have to be described according to XMI. Note that the line numbers in the figure are added for convenience of explanation.

状態遷移情報900の121行目における<StateMachine>タグのタグ名、及びそのname属性の値(「FaxTx1」)によって、状態遷移情報900は、バンドルサービス「FaxTx1」に対応するものであることが定義されている。また、当該<StateMachine>タグにおけるxmi.id属性の値(「004」)は、バンドルサービス「FaxTx1」を識別するIDである。   It is defined that the state transition information 900 corresponds to the bundle service “FaxTx1” by the tag name of the <StateMachine> tag on the 121st line of the state transition information 900 and the value of its name attribute (“FaxTx1”). Has been. Also, xmi. In the <StateMachine> tag. The value of the id attribute (“004”) is an ID for identifying the bundle service “FaxTx1”.

125行目の<CompositeState>タグは、バンドルサービス「FaxTx1」における状態の定義の開始の宣言に相当する。当該宣言は、<CompositeState>タグのxmi.idの値(「017」)によって識別される。   The <CompositeState> tag on the 125th line corresponds to a declaration of a state definition start in the bundle service “FaxTx1”. The declaration includes xmi. Of the <CompositeState> tag. It is identified by the value of id (“017”).

130行目から137行目における<Pseudostate>タグによって囲まれたPseudostate要素910は、初期状態601に対する定義である。Pseudostate要素910のname属性の値には「Init」が設定され、xmi.id要素の値には、「018」が設定されている。   A Pseudostate element 910 surrounded by <Pseudostate> tags in the 130th to 137th lines is a definition for the initial state 601. The value of the name attribute of the pseudostate element 910 is set to “Init”, and xmi. The value of the id element is set to “018”.

138行目から148行目におけるCompositeState要素920は、Send状態604に対する定義である。CompositeState要素920のname属性の値には「Send」が設定され、xmi.id要素の値には、「019」が設定されている。   The CompositeState element 920 from the 138th line to the 148th line is a definition for the Send state 604. The value of the name attribute of the CompositeState element 920 is set to “Send”, and xmi. “019” is set as the value of the id element.

149行目から159行目におけるCompositeState要素930は、Idle状態603に対する定義である。CompositeState要素930のname属性の値には「Idle」が設定され、xmi.id要素の値には、「022」が設定されている。   The CompositeState element 930 from the 149th line to the 159th line is a definition for the idle state 603. The value of the name attribute of the CompositeState element 930 is set to “Idle”, and xmi. “022” is set as the value of the id element.

160行目から183行目におけるPseudostate要素940は、終期状態602に対する定義である。Pseudostate要素940のname属性の値には「end」が設定され、xmi.id要素の値には、「024」が設定されている。   The pseudostate element 940 from the 160th line to the 183rd line is a definition for the final state 602. The value of the name attribute of the Pseudostate element 940 is set to “end”, and xmi. The value of the id element is set to “024”.

また、191行目から228行目には、バンドルサービス「FaxTx1」における各状態遷移が定義されている。すなわち、191行目から204行目におけるTransition要素950は、Idle状態603からSend状態604への状態遷移に対する定義である。Transition要素950が当該状態遷移に対する定義であることは、Transition要素950の子要素として定義されている、Transition.source要素951及びTransition.target要素952より特定される。Transition.source要素951は遷移元の状態が設定される要素である。Transition.source要素951の子要素のxmi.idref属性の値は「022」である。したがって、遷移元は、xmi.id属性の値が「022」の状態、すなわち、Idle状態603であることが分かる。また、Transition.target要素952は遷移先の状態が設定される要素である。Transition.target要素952の子要素のxmi.idref属性の値は「019」である。したがって、遷移先は、xmi.idの値が「019」の状態、すなわち、Send状態604であることが分かる。なお、Transition要素950のname属性の値は「送信開始」であり、xmi.id属性の値は「023」である。   Further, in the 191st to 228th lines, each state transition in the bundle service “FaxTx1” is defined. That is, the Transition element 950 from the 191st line to the 204th line is a definition for the state transition from the Idle state 603 to the Send state 604. That the Transition element 950 is a definition for the state transition indicates that the Transition.950 is defined as a child element of the Transition element 950. source element 951 and Transition. It is specified by the target element 952. Transition. A source element 951 is an element in which a transition source state is set. Transition. xmi. of the child element of the source element 951 The value of the idref attribute is “022”. Therefore, the transition source is xmi. It can be seen that the id attribute value is “022”, that is, the idle state 603. In addition, Transition. A target element 952 is an element in which a transition destination state is set. Transition. xmi. of the child element of the target element 952. The value of the idref attribute is “019”. Therefore, the transition destination is xmi. It can be seen that the id value is “019”, that is, the Send state 604. Note that the value of the name attribute of the Transition element 950 is “start transmission”, and xmi. The value of the id attribute is “023”.

205行目から218行目におけるTransition要素960は、Send状態604から終期状態602への状態遷移に対する定義である。Transition要素960が当該状態遷移に対する定義であることは、Transition.source要素961内のxmi.idref属性の値が「019」(Send状態604)であり、Transition.target要素962内のxmi.idref属性の値が「024」(終期状態602)であることから特定される。なお、Transition要素960のname属性の値は「送信終了」であり、xmi.id属性の値は「020」である。   The Transition element 960 from the 205th line to the 218th line is a definition for the state transition from the Send state 604 to the final state 602. The Transition element 960 is a definition for the state transition. xmi. in the source element 961. The value of the idref attribute is “019” (Send state 604), and Transition. xmi. in the target element 962. It is specified from the value of the idref attribute being “024” (the final state 602). Note that the value of the name attribute of the Transition element 960 is “transmission end”, and xmi. The value of the id attribute is “020”.

219行目から228行目におけるTransition要素970は、初期状態601からIdle状態603への状態遷移に対する定義である。Transition要素970が当該状態遷移に対する定義であることは、Transition.source要素971内のxmi.idref属性の値が「018」(初期状態601)であり、Transition.target要素972内のxmi.idref属性の値が「022」(Idle状態603)であることから特定される。なお、Transition要素970のxmi.id属性の値は「018」である。   The Transition element 970 from the 219th line to the 228th line is a definition for the state transition from the initial state 601 to the idle state 603. That the Transition element 970 is a definition for the state transition is that the Transition. xmi. in the source element 971. The value of the idref attribute is “018” (initial state 601), and Transition. xmi. in the target element 972. It is specified from the value of the idref attribute being “022” (Idle state 603). Note that the xmi. The value of the id attribute is “018”.

130行目以降の説明に戻る。各状態に対応する、Pseudostate要素910、CompositeState要素920、及びCompositeState要素930は、StateVertex.outgoing要素及びStateVertex.incoming要素の少なくともいずれか一方を子要素として有する。StateVertex.outgoing要素は、遷移元からの状態遷移に対する接続が定義される要素である。StateVertex.incoming要素は、遷移先への状態遷移に対する接続が定義される要素である。   Returning to the description after the 130th line. A Pseudostate element 910, a CompositeState element 920, and a CompositeState element 930 corresponding to each state are in the StateVertex. outgoing element and StateVertex. It has at least one of incoming elements as a child element. StateVertex. The outgoing element is an element in which a connection to a state transition from the transition source is defined. StateVertex. The incoming element is an element in which a connection for a state transition to a transition destination is defined.

例えば、初期状態601に対応するPseudostate要素910におけるStateVertex.outgoing要素911において、その子要素のxmi.idref属性の値は「018」である。したがって、初期状態601からの遷移先への状態遷移は、Transition要素970が対応する状態遷移に相当することが分かる。   For example, StateVertex. In the Pseudostate element 910 corresponding to the initial state 601. In the outgoing element 911, the child element xmi. The value of the idref attribute is “018”. Therefore, it can be seen that the state transition from the initial state 601 to the transition destination corresponds to the state transition corresponding to the Transition element 970.

また、Send状態604に対応するCompositeState要素920おけるStateVertex.outgoing要素921においてその子要素のxmi.idref属性の値は「020」であり、StateVertex.incoming要素922において、その子要素のxmi.idref属性の値は「023」である。したがって、Send状態604からの遷移先への状態遷移は、Transition要素960が対応する状態遷移に相当し、遷移元の状態遷移は、Transition要素950が対応する状態遷移に相当することが分かる。   In addition, StateVertex. In the CompositeState element 920 corresponding to the Send state 604. In the outgoing element 921, the child element xmi. The value of the idref attribute is “020”, and StateVertex. In the incoming element 922, the child element xmi. The value of the idref attribute is “023”. Therefore, it can be seen that the state transition from the Send state 604 to the transition destination corresponds to the state transition corresponding to the Transition element 960, and the state transition of the transition source corresponds to the state transition corresponding to the Transition element 950.

なお、Idle状態603に対応するCompositeState要素930、終期状態602に対応するPseudostate要素940においても同様に状態遷移との接続が定義されている。   In the CompositeState element 930 corresponding to the Idle state 603 and the Pseudostate element 940 corresponding to the final state 602, connection with the state transition is similarly defined.

上記のような状態遷移情報900に基づいて、FaxTx1オブジェクト831は、まず、各状態オブジェクト及び遷移オブジェクト等をインスタンス化する。図中では、状態遷移情報900におけるPseudostate要素910、CompositeState要素930、CompositeState要素940、Pseudostate要素940、及びTransition要素950のそれぞれに基づいて、初期状態オブジェクト701、Idle状態オブジェクト703、Send状態オブジェクト704、終期状態オブジェクト702、送信開始オブジェクト711Tが生成されている例が示されている(S102〜S106)。   Based on the state transition information 900 as described above, the FaxTx1 object 831 first instantiates each state object, transition object, and the like. In the drawing, based on the Pseudostate element 910, the CompositeState element 930, the CompositeState element 940, the Pseudostate element 940, and the Transition element 950 in the state transition information 900, an initial state object 701, an idle state object 703, a send state object 704, An example in which an end state object 702 and a transmission start object 711T are generated is shown (S102 to S106).

続いて、FaxTx1オブジェクト831は、各状態オブジェクトの参照関係が状態遷移情報900に定義された状態遷移の順になるよう、遷移元の状態オブジェクトに対して遷移先の状態オブジェクトを接続する。例えば、FaxTx1オブジェクト831は、Idle状態オブジェクト703の識別情報を引数として、初期状態オブジェクト701のconnect()メソッドを呼び出す(S107)。また、FaxTx1オブジェクト831は、Send状態オブジェクト704の識別情報を引数として、Idle状態オブジェクト703のconnect()メソッドを呼び出す(S108)。また、FaxTx1オブジェクト831は、終期状態オブジェクト702の識別情報を引数として、Send状態オブジェクト704のconnect()メソッドを呼び出す(S109)。connect()メソッドを呼び出された各状態オブジェクトは、当該状態オブジェクト内において引数に指定された識別情報を保持する。   Subsequently, the FaxTx1 object 831 connects the state object of the transition destination to the state object of the transition source so that the reference relationship of each state object is in the order of the state transition defined in the state transition information 900. For example, the FaxTx1 object 831 calls the connect () method of the initial state object 701 using the identification information of the Idle state object 703 as an argument (S107). Further, the FaxTx1 object 831 calls the connect () method of the Idle state object 703 using the identification information of the Send state object 704 as an argument (S108). Further, the FaxTx1 object 831 calls the connect () method of the Send state object 704 using the identification information of the final state object 702 as an argument (S109). Each state object for which the connect () method is called holds identification information designated as an argument in the state object.

また、必要に応じて、connect()メソッドの引数には遷移オブジェクトの識別情報も指定される。例えば、ステップS108において、Idle状態オブジェクト703のconnect()メソッドが呼び出される際は、送信開始オブジェクト711Tの識別情報も引数に指定される。このように、connect()メソッドの引数に、状態オブジェクトと遷移オブジェクトとのそれぞれの識別情報が指定された場合、当該メソッドが呼び出された状態オブジェクトは、その状態オブジェクトの識別情報と遷移オブジェクトの識別情報とを関連付けて(ペアで)保持する。これによって、ある状態オブジェクトがアクティブのときに、あるイベントが発生したときの遷移先の状態オブジェクトが特定され得る。   Further, identification information of the transition object is also specified as an argument of the connect () method as necessary. For example, when the connect () method of the Idle state object 703 is called in step S108, the identification information of the transmission start object 711T is also specified as an argument. As described above, when the identification information of the state object and the transition object is designated as the argument of the connect () method, the state object from which the method is called has the identification information of the state object and the identification of the transition object. Associate and keep information (in pairs). Thereby, when a certain state object is active, a state object of a transition destination when a certain event occurs can be specified.

以上の処理によって、バンドルサービス「FaxTx1」について、図11に示されるようなオブジェクト構成が構築される。   Through the above processing, an object configuration as shown in FIG. 11 is constructed for the bundle service “FaxTx1”.

上記をふまえて、バンドルサービス「FaxTx1」の「FaxTx2」への更新処理の詳細について説明する。図17は、FaxTx1からFaxTx2への更新処理を説明するためのシーケンス図である。   Based on the above, details of the update process of the bundle service “FaxTx1” to “FaxTx2” will be described. FIG. 17 is a sequence diagram for explaining an update process from FaxTx1 to FaxTx2.

例えば、管理者は、FaxTx2とFaxTx1との差分の追加モジュールが格納されたSDカードを融合機101のメモリカードスロット234に挿入する(S201)。   For example, the administrator inserts an SD card storing an additional module of the difference between FaxTx2 and FaxTx1 into the memory card slot 234 of the multi-function peripheral 101 (S201).

図18は、SDカード内の追加モジュールの構成例を示す図である。図18に示されるSDカード235aには、更新差分サービスバンドル840とAspectSM.xmlファイル811(AspectSM811)とが格納されている。更新差分サービスバンドル840には、更新処理を実行するにあたり、図10のクラス図において、IStateインタフェース1004a、Activityインタフェース1004b、Eventインタフェース1003a、Guardインタフェース1003b、又はActionインタフェース1003cに対応するクラスのうち、追加が必要とされるクラスが実装された機能モジュール(例えば、Java(登録商標)のクラスファイル。以下「追加モジュール」という。))が格納されている。ここでは、追加モジュールとして、PDF2Tiff841とConvertEnd842とが格納されている。   FIG. 18 is a diagram illustrating a configuration example of an additional module in the SD card. The SD card 235a shown in FIG. 18 includes an update difference service bundle 840, an AspectSM. An xml file 811 (AspectSM 811) is stored. In the update difference service bundle 840, when executing the update process, in the class diagram of FIG. 10, among the classes corresponding to the IState interface 1004a, the Activity interface 1004b, the Event interface 1003a, the Guard interface 1003b, or the Action interface 1003c is added. A function module (for example, a Java (registered trademark) class file; hereinafter referred to as an “additional module”)) is stored. Here, PDF2Tiff841 and ConvertEnd842 are stored as additional modules.

AspectSM811は、FaxTx1からFaxTx2への更新処理をどのように実施するかについての仕様がXML形式記述されているファイルである。   The AspectSM 811 is a file in which specifications for how to update from FaxTx1 to FaxTx2 are described in XML format.

図19は、AspectSMの記述例を示す図である。図中、行番号は説明の便宜上付加したものである。AspectSM811には、バンドルサービス「FaxTx1」の状態遷移情報900(図15及び図16)に対する変更内容が記述されている。   FIG. 19 is a diagram illustrating a description example of AspectSM. In the figure, line numbers are added for convenience of explanation. The aspect SM 811 describes changes to the state transition information 900 (FIGS. 15 and 16) of the bundle service “FaxTx1”.

AxpectSM811の記述例において、2行目は、xmi.idの値が「004」であるFaxTx1に対して状態遷移の変更を行うことを指示している。すなわち、2行目におけるxmi.idref属性は、変更の対象となるバンドルサービスのxmi.idが指定される。   In the description example of AspectSM811, the second line is xmi. It is instructed to change the state transition to FaxTx1 whose id value is “004”. That is, xmi. The idref attribute is set to xmi. of the bundle service to be changed. id is specified.

3行目から20行目までは一つ目の変更箇所に関する変更情報が記述されている。3行目には、変更箇所と変更タイミングが指定されている。変更箇所は、pointcut.<xxx>における<xxx>の記述とxmi.ref属性の値とによって指定される。ここで、<xxx>の部分は「CompositeState」であり、xmi.ref属性の値は「017」である。したがって、状態遷移情報900の125行目における<CompositeState>タグ内に対する変更が指定されていることになる。また、変更のタイミングは、timing属性の値によって指定される。ここでは、「Idle」が指定されている。したがって、FaxTx1がIdle状態603にあるときに、変更を行うべきことが指定されている。   From the 3rd line to the 20th line, change information relating to the first change location is described. In the third line, the change location and the change timing are specified. The changed part is pointcut. <Xxx> in <xxx> and xmi. It is specified by the value of the ref attribute. Here, the part of <xxx> is “CompositeState”, and xmi. The value of the ref attribute is “017”. Therefore, a change in the <CompositeState> tag in the 125th line of the state transition information 900 is designated. Also, the timing of the change is specified by the value of the timing attribute. Here, “Idle” is designated. Therefore, it is specified that the change should be made when FaxTx1 is in the Idle state 603.

4行目には、変更の内容が指定されている。すなわち、<advice.CompositeState>タグのタグ名におけるadvice.以降によって、変更の対象がCompositeState要素であることが指定されている。また、type属性によって、変更の種別が「insert」(挿入)であることが指定されている。すなわち、3行目及び4行目によって、<CompositeState>タグ内に新たなCompositeState要素を挿入すべき旨が指定されている。   The contents of the change are specified in the fourth line. That is, <advice. In the tag name of CompositeState> tag, “advice. Henceforth, it is specified that the object of change is a CompositeState element. In addition, the type attribute specifies that the type of change is “insert” (insert). That is, the third and fourth lines specify that a new CompositeState element should be inserted in the <CompositeState> tag.

5行目から18行目は、挿入の対象となるCompositeState要素850の定義である。CompositeState要素850は、FaxTx2のTransform状態605に対応する。CompositeState要素850内の記述形式は、図15及び図16において説明した通りである。すなわち、CompositeState要素850の子要素である、StateVertex.outgoing要素851において遷移先への接続が定義され、StateVertex.incoming要素852において遷移元への接続が定義されている。   Lines 5 to 18 are definitions of a CompositeState element 850 to be inserted. The CompositeState element 850 corresponds to the Transform state 605 of FaxTx2. The description format in the CompositeState element 850 is as described in FIGS. 15 and 16. That is, StateVertex., Which is a child element of the CompositeState element 850. In the outgoing element 851, a connection to the transition destination is defined, and the StateVertex. In the incoming element 852, a connection to the transition source is defined.

ところで、CompositeState要素850は、State.entry要素853が子要素として定義されている。State.entry要素853は、CompositeState要素850が対応するTransform状態605における入場処理が定義される要素である。すなわち、CompositeState要素850の子要素として、Action要素854が定義されているが、そのxmi.id属性とname属性より、xmi.id属性の値が「026」であり、name属性の値がpdf2tiffによって識別される処理が実行されることが指定されている。   By the way, the CompositeState element 850 is a State. An entry element 853 is defined as a child element. State. The entry element 853 is an element in which entry processing in the Transform state 605 corresponding to the CompositeState element 850 is defined. That is, an Action element 854 is defined as a child element of the CompositeState element 850, and the xmi. From the id attribute and the name attribute, xmi. The value of the id attribute is “026”, and it is specified that the process in which the value of the name attribute is identified by pdf2tiff is executed.

21行目から42行目までは二つ目の変更箇所に関する変更情報が指定されている。21行目には、変更箇所及び変更のタイミングが指定されている。ここでは、Idle状態603のときにTransition要素950(図16参照)に対して変更を行うことが指定されている。   From the 21st line to the 42nd line, change information relating to the second change location is designated. In the 21st line, a change location and a change timing are specified. Here, it is specified that the transition element 950 (see FIG. 16) is changed in the idle state 603.

二つ目の変更箇所には、二つの変更が指定されている。22行目から24行目までに一つ目の変更が指定されており、25行目から41行目までに二つ目の変更が指定されている。   Two changes are specified in the second change place. The first change is specified from the 22nd line to the 24th line, and the second change is specified from the 25th line to the 41st line.

一つ目の変更については、22行目の<advice.Transition.target>タグのタグ名におけるadovice.以降によって変更対象がTransition.target要素952であることが指定されている。また、type属性によって、変更の種別が修正(modify)であることが指定されている。23行目には、変更の対象に関して修正後の定義が記述されている。すなわち、一つ目の変更は、Idle状態603からSend状態604への状態遷移を、Idle状態603からTransform状態605への状態遷移に修正することである。   Regarding the first change, the <advice. Transition. target> tag in the tag name. After that, the change target is Transition. A target element 952 is designated. In addition, the type attribute specifies that the type of change is modification. The 23rd line describes the definition after correction with respect to the change target. That is, the first change is to correct the state transition from the Idle state 603 to the Send state 604 to a state transition from the Idle state 603 to the Transform state 605.

二つ目の変更(25行目から41行目)は、新たな状態遷移(Tranform状態605からSend状態604への状態遷移)に対応するTransision要素の挿入をIdle状態603のときに行うことである。この内容は、上記の説明から読み取れるため、各行毎の説明は省略する。   The second change (from the 25th line to the 41st line) is that the transition element corresponding to the new state transition (the state transition from the Transform state 605 to the Send state 604) is inserted in the Idle state 603. is there. Since this content can be read from the above description, the description for each row is omitted.

43行目から55行目は、標準ではなく独自の書式に基づく定義が行われている拡張記述部分である。43行目のpointcut.以下の「XMI.extension」によって、拡張記述部分であることが指定されている。本実施の形態では、この部分に、状態遷移処理で呼ばれるアクション処理と、イベント処理等に使用する機能モジュール(例えば、Java(登録商標)クラス)との関連付けが定義される。   The 43rd to 55th lines are an extended description part in which a definition based on a unique format, not a standard, is performed. On line 43, pointcut. The following “XMI.extension” specifies that it is an extended description part. In this embodiment, an association between an action process called in the state transition process and a function module (for example, Java (registered trademark) class) used for an event process or the like is defined in this part.

44行目では、当該advice要素の子要素の定義を挿入(insert)すべきことが指定されている。   The 44th line specifies that the definition of the child element of the adice element should be inserted.

45行目から49行目までは、挿入される定義である。45行目には、Bundleを実装することが指定されている。Bundleの実装先は、xmi.idref属性の値(「004」)で指定される。すなわち、FaxTx1である。   Lines 45 to 49 are definitions to be inserted. The 45th line specifies that the Bundle should be implemented. The implementation destination of Bundle is xmi. It is specified by the value of the idref attribute (“004”). That is, FaxTx1.

46行目から49行目までは、Transform状態605に対応させて新たに挿入するCompositeState要素850(5行目から18行目)の入場処理の定義(15行目から17行目)におけるpdf2tiffと、実際にその処理が実装されているjp.co.rrr.function.pdf2tiffクラスとの関連付けが定義されている。これによって、FaxTx2に更新された後、Transform状態605に遷移したときには、jp.co.rrr.function.pdf2tiffが実行されることになる。48行目のproperty要素は、jp.co.rrr.function.pdf2tiffクラスが実行されるときのプロパティ情報である。   From the 46th line to the 49th line, the pdf2tiff in the definition of the entry process (the 15th line to the 17th line) of the CompositeState element 850 (the 5th line to the 18th line) to be newly inserted corresponding to the Transform state 605 Jp. Where the processing is actually implemented. co. rrr. function. Association with the pdf2tiff class is defined. As a result, when the state transitions to the Transform state 605 after updating to FaxTx2, jp. co. rrr. function. pdf2tiff will be executed. The property element on line 48 is jp. co. rrr. function. This is property information when the pdf2tiff class is executed.

50行目から52行目は、Transform状態605からSend状態604への状態遷移のトリガーとなる変換完了イベントとjp.co.rrr.function.convertEndクラスとの関連付けが定義されている。これによって、Traneform状態605中に変換完了イベントが検知されると、jp.co.rrr.function.convertEndクラスが実行され、その実行結果がtrueであれば、Send状態604に遷移することになる。   The 50th to 52nd lines are a conversion completion event that triggers a state transition from the Transform state 605 to the Send state 604, and jp. co. rrr. function. An association with the convertEnd class is defined. Thus, when a conversion completion event is detected during the Trainform state 605, jp. co. rrr. function. If the convertEnd class is executed and the execution result is true, the state transits to the Send state 604.

図17に戻る。管理者によるSDカード235aの挿入が自動的に検知されると、又はSDカード235aが挿入され、オペレーションパネル202から更新指示が入力されると、SAS411は、SAS Manager511に更新処理の実行を要求する(S202)。なお、SDカード235aに記録された情報は、ネットワークを介してダウンロードされてもよい。この場合、SDカードのような記録媒体を用いる必要はない。   Returning to FIG. When the insertion of the SD card 235a by the administrator is automatically detected, or when the SD card 235a is inserted and an update instruction is input from the operation panel 202, the SAS 411 requests the SAS manager 511 to execute the update process. (S202). Note that the information recorded on the SD card 235a may be downloaded via a network. In this case, it is not necessary to use a recording medium such as an SD card.

SAS Manager511は、挿入されたSDカード235aの更新差分サービスバンドル840によるFaxTx1からFaxTx2への更新の可否についてチェックを行う(S203)。更新が可能な場合、SAS Manager511は、更新差分サービスバンドル840の融合機101へのインストールの可否をチェックする(S204)。インストールが可能な場合、SAS Manager511は、SDカード235a内の更新差分サービスバンドル840をOSGiフレームワーク403(融合機101)にインストールする(S205)。更新差分サービスバンドル840のインストールが完了すると、SAS Manager511は、更新差分サービスバンドル840をアクティブ状態に遷移させるようにOSGiフレームワーク403に要求する(S206)。   The SAS manager 511 checks whether or not the update difference service bundle 840 of the inserted SD card 235a can be updated from Fax Tx1 to Fax Tx2 (S203). If the update is possible, the SAS Manager 511 checks whether or not the update difference service bundle 840 can be installed in the multi-function peripheral 101 (S204). If installation is possible, the SAS manager 511 installs the update difference service bundle 840 in the SD card 235a in the OSGi framework 403 (multifunction machine 101) (S205). When the installation of the update difference service bundle 840 is completed, the SAS Manager 511 requests the OSGi framework 403 to shift the update difference service bundle 840 to the active state (S206).

OSGiフレームワーク403は、更新差分サービスバンドル840のインスタンスを(以下、「更新差分オブジェクト840a」という。)生成し、アクティブな状態に遷移させる(S207)。更新差分オブジェクト840aは、Plugin Agent821に対して更新差分サービスバンドル840がプラグインされたことをAspectSM811を添えて通知する(S208)。   The OSGi framework 403 generates an instance of the update difference service bundle 840 (hereinafter referred to as “update difference object 840a”), and transitions to an active state (S207). The update difference object 840a notifies the plug-in Agent 821 that the update difference service bundle 840 has been plugged in, along with the aspect SM 811 (S208).

Plugin Agent821は、FaxTx1オブジェクト831に対して、AspectSM811を添えてFaxTx2への更新要求を行う(S209)。FaxTx1オブジェクト831は、AspectSM811に基づいて、サービスバンドル「FaxTx1」をFaxTx2へ更新する為に必要な追加モジュール判断し、当該追加モジュール(ここでは、PDF2Tiff841及びConvertEnd842)の取得を更新差分オブジェクト840aに要求する(S210)。更新差分オブジェクト840aは、当該追加モジュールを取得し、FaxTx1オブジェクト831に返却する(S211)。   The Plug-in Agent 821 makes an update request to the Fax Tx 2 with the Aspect SM 811 added to the Fax Tx 1 object 831 (S209). The FaxTx1 object 831 determines an additional module necessary for updating the service bundle “FaxTx1” to FaxTx2 based on the AspectSM811, and requests the update difference object 840a to acquire the additional modules (here, PDF2Tiff841 and ConvertEnd842). (S210). The update difference object 840a acquires the additional module and returns it to the FaxTx1 object 831 (S211).

続いて、FaxTx1オブジェクト831は、AspectSM811に従って、バンドルサービス「FaxTx1」のオブジェクト構成を、FaxTx2に対応するものに更新すると共に、当該更新によって新たに追加されたActivityオブジェクトと追加モジュールとの関連付けを行う(S212)。なお、ステップS212の処理は、AspectSM811に記述されているタイミングで行われる。   Subsequently, the FaxTx1 object 831 updates the object configuration of the bundle service “FaxTx1” to the one corresponding to FaxTx2 and associates the Activity object newly added by the update with the additional module according to the AspectSM811 ( S212). Note that the processing in step S212 is performed at the timing described in the AspectSM811.

続いて、FaxTx1オブジェクト831は、バンドルサービス「FaxTx1」について「FaxTx2」への更新が完了したことをPlugin Agent821に通知する(S213)。但し、FaxTx1をFaxTx2に切り替えるスイッチ721は、FaxTx1の状態のままである。   Subsequently, the FaxTx1 object 831 notifies the Plug Agent 821 that the update of the bundle service “FaxTx1” to “FaxTx2” has been completed (S213). However, the switch 721 that switches FaxTx1 to FaxTx2 remains in the state of FaxTx1.

更新が完了した旨の通知は、SAS Manaer511を介してSAS411に通知される(S214、S215)。SAS411は、管理者に更新完了を通知するため、オペレーションパネル202に更新完了を通知するメッセージを表示させる(S216)。なお、この状態では、スイッチ721は、まだFaxTx2には切り替えられていないので、SAS411は、管理者にFaxTx2へ切り替える否かを問い合わせる。   The notification that the update has been completed is notified to the SAS 411 via the SAS manager 511 (S214, S215). The SAS 411 displays a message notifying the update completion on the operation panel 202 in order to notify the administrator of the update completion (S216). In this state, since the switch 721 has not been switched to FaxTx2, the SAS 411 inquires of the administrator whether to switch to FaxTx2.

そこで、管理者が、オペレーションパネル202を介してFaxTx2への切替指示を入力すると(S217)、SAS411は、FaxTx2への切替要求をSAS Manager511に通知する(S218)。SAS Manager511は、Plugin Agent821にFaxTx2への切り替えを要求する(S219)。Plugin Agent821は、FaxTx1オブジェクト831に対して、その振る舞い(状態遷移)をFaxTx2に対応するものに切り替えるように指示する(S220)。   Therefore, when the administrator inputs an instruction to switch to FaxTx2 via the operation panel 202 (S217), the SAS 411 notifies the SAS Manager 511 of a request to switch to FaxTx2 (S218). The SAS manager 511 requests the plug-in agent 821 to switch to FaxTx2 (S219). The Plug Agent 821 instructs the FaxTx1 object 831 to switch its behavior (state transition) to that corresponding to FaxTx2 (S220).

FaxTx1オブジェクト831は、バンドルサービス「FaxTx1」がIdle状態703になるまで待機する。Idle状態703に遷移すると、FaxTx1オブジェクト831は、スイッチ721を切り換えることにより、自己の振る舞いをFaxTx2に対応するものに切り替える(S221)。切り替えが完了すると、FaxTx1オブジェクト831は、Plugin Agent821に対して、切替完了通知を行う(S222)。切替完了通知は、SAS Manager511を介してSAS411に伝達される(S223、S224)。SAS411は、切替完了通知に応じ、バンドルサービス「FaxTx1」の切り替えが完了した旨をオペレーションパネル202に表示させる(S225)。   The FaxTx1 object 831 waits until the bundle service “FaxTx1” enters the idle state 703. When the state transitions to the Idle state 703, the FaxTx1 object 831 switches its behavior to one corresponding to FaxTx2 by switching the switch 721 (S221). When the switching is completed, the FaxTx1 object 831 issues a switching completion notification to the Plug Agent 821 (S222). The switch completion notification is transmitted to the SAS 411 via the SAS Manager 511 (S223, S224). In response to the notification of switching completion, the SAS 411 displays on the operation panel 202 that the switching of the bundle service “FaxTx1” has been completed (S225).

次に、ステップS212における、バンドルサービス「FaxTx1」のオブジェクト構成の更新処理の詳細について説明する。図20は、バンドルサービス「FaxTx1」のオブジェクト構成の更新処理を説明するためのシーケンス図である。   Next, details of the update processing of the object configuration of the bundle service “FaxTx1” in step S212 will be described. FIG. 20 is a sequence diagram for explaining the update processing of the object configuration of the bundle service “FaxTx1”.

まず、FaxTx1オブジェクト831は、バンドルサービス「FaxTx1」の状態が、AspectSM811に指定されている変更箇所ごとにおけるtiming属性の値に指定されている状態に遷移するまで待機する(S2111)。図19のAspectSM811の例では、全ての変更箇所に対するタイミングは、Idle状態603として指定されている。したがって、ここでは、Idle状態603に遷移するまで待機する。   First, the FaxTx1 object 831 waits until the state of the bundle service “FaxTx1” transitions to the state specified by the timing attribute value for each change location specified in the AspectSM 811 (S2111). In the example of the aspect SM 811 in FIG. 19, the timings for all the changed portions are designated as the idle state 603. Therefore, here, it waits until it changes to the Idle state 603.

バンドルサービス「FaxTx1」の状態がIdle状態603に遷移すると、FaxTx1オブジェクト831は、AspectSM811の記述にしたがって、更新処理を開始する。   When the state of the bundle service “FaxTx1” transitions to the Idle state 603, the FaxTx1 object 831 starts update processing according to the description of the AspectSM811.

例えば、FaxTx1オブジェクト831は、AspectSM811の3行目から20行目に基づいてTransform状態605に対応するTransformオブジェクト状態705を生成する(S2112)。続いて、FaxTx1オブジェクト831は、AspectSM811の25行目から41行目に基づいて、変換終了オブジェクト713Tを生成する(S2113)。続いて、FaxTx1オブジェクト831は、AspectSM811の9行目から14行目や、22行目から24行目に基づいて、オブジェクト間の接続関係を変更する。すなわち、FaxTx1オブジェクト831は、Transform状態オブジェクト705の識別情報を引数としてIdle状態オブジェクト703のreconnect()メソッドを呼び出す(S2114)。これに応じて、Idle状態オブジェクト704は、遷移先の状態オブジェクトとして、Send状態オブジェクト704とTransForm状態オブジェクト705とを保持することになる。これは、ちょうど図12において、スイッチ721によって遷移先が分岐している状態に相当する。スイッチ721は、例えば、Idle状態オブジェクト703が参照可能なフラグ変数として実装される。例えば、当該フラグ変数の値が0のときには遷移先はSend状態オブジェクト704とされ、1のときには遷移先はTransform状態オブジェクト705とされるといった具合である。なお、Idle状態オブジェクト703とTransform状態オブジェクト705との接続は行われたが、図17において説明したように、この時点では、スイッチ721は切り替えられていないため、Idle状態オブジェクト703からの遷移先のオブジェクトはSend状態オブジェクト704のままである(すなわち、バンドルサービス「FaxTx1」として機能する。)。   For example, the FaxTx1 object 831 generates a Transform object state 705 corresponding to the Transform state 605 based on the third to twentieth lines of the AspectSM 811 (S2112). Subsequently, the FaxTx1 object 831 generates a conversion end object 713T based on the 25th to 41st lines of the AspectSM 811 (S2113). Subsequently, the FaxTx1 object 831 changes the connection relationship between the objects based on the 9th to 14th lines and the 22nd to 24th lines of the AspectSM811. That is, the FaxTx1 object 831 calls the connect () method of the Idle state object 703 using the identification information of the Transform state object 705 as an argument (S2114). In response to this, the Idle state object 704 holds a Send state object 704 and a TransForm state object 705 as transition state objects. This corresponds to a state where the transition destination is branched by the switch 721 in FIG. For example, the switch 721 is implemented as a flag variable to which the Idle state object 703 can be referred. For example, when the value of the flag variable is 0, the transition destination is the Send state object 704, and when the value is 1, the transition destination is the Transform state object 705. Although the Idle state object 703 and the Transform state object 705 are connected, as described with reference to FIG. 17, the switch 721 has not been switched at this time, so the transition destination from the Idle state object 703 is not changed. The object remains the Send state object 704 (ie, functions as a bundle service “FaxTx1”).

続いて、FaxTx1オブジェクト831は、Send状態オブジェクト704の識別情報と変換完了オブジェクト713Tの識別情報とを引数としてTransform状態オブジェクト705のconnect()メソッドを呼び出す(S2115)。これに応じて、Transform状態オブジェクト705は、Send状態オブジェクト704の識別情報と変換完了オブジェクト713Tの識別情報とを関連付けて保持する。すなわち、変換終了イベントが発生した際のTransform状態605からSend状態604への状態遷移に対応する接続が構築されたことになる。   Subsequently, the FaxTx1 object 831 calls the connect () method of the Transform state object 705 using the identification information of the Send state object 704 and the identification information of the conversion completion object 713T as arguments (S2115). In response to this, the Transform state object 705 holds the identification information of the Send state object 704 and the identification information of the conversion completion object 713T in association with each other. That is, the connection corresponding to the state transition from the Transform state 605 to the Send state 604 when the conversion end event occurs is established.

続いて、FaxTx1オブジェクト831は、AspectSM811の43行目から55行目に基づいて、追加モジュールとオブジェクトとの関連付けを行う。すなわち、Transform状態オブジェクト705の入場処理のインタフェース(IStateインタフェース1004a)に対してPDF2TIFF841を関連付ける(S2116)。続いて、変換完了オブジェクト713TのEventインタフェース1003aに対してConvertEnd842を関連付ける(S2117)。   Subsequently, the FaxTx1 object 831 associates the additional module with the object based on the 43rd to 55th lines of the AspectSM811. That is, the PDF2TIFF 841 is associated with the entrance processing interface (IState interface 1004a) of the Transform state object 705 (S2116). Subsequently, ConvertEnd 842 is associated with Event interface 1003a of conversion completion object 713T (S2117).

以上の処理によって、バンドルサービスFaxTx1のオブジェクト構成は、図12に示されるようなものに更新される。   Through the above processing, the object configuration of the bundle service FaxTx1 is updated as shown in FIG.

ところで、図19において、AspectSM811にはバンドルサービス「FaxTx1」の状態遷移情報900(図15及び図16)に対する変更内容が記述されていると説明した。しかし、上記のように、FaxTx1オブジェクト831は、AspectSM811に基づいて状態遷移情報900を書き換えるのではなく、バンドルサービス「FaxTx1」を構成するオブジェクトを変更することで更新処理を実現する。図14において説明したように、バンドルサービス「FaxTx1」は、状態遷移情報900に基づいてそのオブジェクトが構築されたものである。したがって、状態遷移情報900に対する変更内容が記述されたAspectSM811は、そのままバンドルサービス「FaxTx1」のオブジェクト構成に適用することができるのである。なお、AspectSM811に基づいて状態遷移情報900を更新し、更新された状態遷移情報900に基づいてFaxTx1(厳密には、FaxTx2に更新されたもの)を再構築してもよい。但し、この場合、再構築の前にバンドルサービス「FaxTx1」を構成するオブジェクト群が破棄されるため、バンドルサービス「FaxTx1」を利用中のアプリケーション等との参照関係が破壊されてしまう。したがって、本実施の形態のように、オブジェクト群を再構築するのではなく、既存のオブジェクト構成を変更する方が好適である。   In FIG. 19, it has been described that the aspect SM 811 describes changes to the state transition information 900 (FIGS. 15 and 16) of the bundle service “FaxTx1”. However, as described above, the FaxTx1 object 831 does not rewrite the state transition information 900 based on the AspectSM811, but implements the update process by changing the objects constituting the bundle service “FaxTx1”. As described with reference to FIG. 14, the bundle service “FaxTx1” is an object constructed based on the state transition information 900. Therefore, the aspect SM 811 in which the contents of change to the state transition information 900 are described can be directly applied to the object configuration of the bundle service “FaxTx1”. Note that the state transition information 900 may be updated based on the AspectSM 811 and FaxTx1 (strictly, updated to FaxTx2) may be reconstructed based on the updated state transition information 900. However, in this case, since the object group constituting the bundle service “FaxTx1” is discarded before the reconstruction, the reference relationship with the application or the like that is using the bundle service “FaxTx1” is destroyed. Therefore, it is preferable to change the existing object configuration instead of reconstructing the object group as in the present embodiment.

なお、上記のように、更新処理後は、バンドルサービス「FaxTx1」と「FaxTx2」とは、スイッチ721を切り替えることにより容易に切り替えが可能である。したがって、「FaxTx1」から「FaxTx2」への更新後、再度「FaxTx2」から「FaxTx1」に戻したい場合は、スイッチ721を切り替えることにより実現すればよい。すなわち、Idle状態オブジェクト703が参照可能なフラグ変数の値を更新すればよい。また、「FaxTx2」から「FaxTx1」への更新指示が記述されたAspectSMに基づいて、「FaxTx2」から「FaxTx1」への更新を実現してもよい。この場合スイッチ721を切り替えるタイミングは、当該AspectSMに記述されたタイミングで行われる。   As described above, after the update process, the bundle services “FaxTx1” and “FaxTx2” can be easily switched by switching the switch 721. Therefore, after updating from “FaxTx1” to “FaxTx2”, if it is desired to return from “FaxTx2” to “FaxTx1” again, this can be realized by switching the switch 721. That is, the value of the flag variable that can be referred to by the Idle state object 703 may be updated. Further, the update from “FaxTx2” to “FaxTx1” may be realized based on AspectSM in which an update instruction from “FaxTx2” to “FaxTx1” is described. In this case, the switch 721 is switched at the timing described in the AspectSM.

上述したように、本実施の形態におけるバンドルサービスは、状態オブジェクトの遷移によってサービスを実現する。また、サービスの実現過程において、アクティブな状態オブジェクトが限定されるように構成されている。言い換えれば、非アクティブな状態オブジェクトが存在することになる。このような構成を前提として、AspectSM811には、更新部分が非アクティブなタイミングで更新が行われるような更新指示が記述されている。そして、かかるAspectSM811に従って、更新部分が非アクティブなときに更新が実行される。したがって、本実施の形態におけるバンドルサービスは、当該バンドルサービスの実行中にその振る舞いの更新を実行することができる。また、振る舞いの更新にあたり、オブジェクト群が再構築されるわけではないので、当該バンドルサービスの参照側との参照関係が破壊されることなく、動的にその振る舞いを更新することが可能となっている。よって、融合機101を再起動することなくバンドルサービスの振る舞いは更新され得る。   As described above, the bundle service in the present embodiment realizes a service by transition of state objects. Also, the active state object is limited in the service realization process. In other words, there will be an inactive state object. Assuming such a configuration, the AspectSM 811 describes an update instruction so that the update is performed at a timing when the update portion is inactive. Then, according to the aspect SM 811, the update is executed when the update part is inactive. Therefore, the bundle service in the present embodiment can update the behavior during execution of the bundle service. In addition, since the objects are not reconstructed when the behavior is updated, it is possible to update the behavior dynamically without destroying the reference relationship with the reference side of the bundle service. Yes. Therefore, the behavior of the bundle service can be updated without restarting the multi-function peripheral 101.

なお、本実施の形態においては、バンドルサービスが状態遷移図に基づいて設計された例を用いて説明したが、本発明が適用可能なプログラムは、状態ごとにオブジェクトが構築されるような構成であるものに限定されない。お互いに排他的に動作する複数のモジュール(オブジェクトも含む)の接続によって構成されているものでればよい。ここで排他的に処理を実行するとは、あるモジュールが動作中(アクティブ)のときは、他のモジュールは動作中でない(非アクティブである)ことが保証されることをいう。このようなソフトウェアであれば、動作中でないモジュールの接続関係を変更することが可能であり、本実施の形態において説明した更新処理を適用させることができる。   In this embodiment, the description has been given using the example in which the bundle service is designed based on the state transition diagram. However, the program to which the present invention can be applied has a configuration in which an object is constructed for each state. It is not limited to a certain thing. What is necessary is just to be comprised by the connection of the several module (an object is also included) which mutually operate | moves exclusively. Here, exclusive processing means that when a certain module is operating (active), it is guaranteed that other modules are not operating (inactive). With such software, it is possible to change the connection relationship of modules that are not operating, and the update processing described in this embodiment can be applied.

以上、バンドルサービス148の更新処理を説明したが、以下、図21ではバンドルアプリ147の更新処理を説明する。バンドルアプリ147の更新処理ではバンドルサービス148の更新処理と異なりサービスの提供が問題にならないので、バンドルアプリ147の更新処理はバンドルサービス148の更新処理に比べて単純になる。   The update process of the bundle service 148 has been described above. Hereinafter, the update process of the bundle application 147 will be described with reference to FIG. Unlike the bundle service 148 update process, the bundle application 147 update process is simpler than the bundle service 148 update process.

図21は、バンドルアプリ147の更新処理に係るコラボレーション図である。同図の更新処理は、バンドルアプリ「AppXt1」をバンドルアプリ「AppXt2」に更新するものである。   FIG. 21 is a collaboration diagram related to the update process of the bundle application 147. The update process in FIG. 6 updates the bundle application “AppXt1” to the bundle application “AppXt2”.

AppXt1をAppXt2に更新する旨の更新操作が融合機101又はクライアント端末801の操作画面で実施されると、AppXt1をAppXt2に更新する旨の更新要求がSAS411からSAS Manager511に送信(S21)される。次に、SAS Manager511では、更新処理用のモジュールを融合機101にインストール可能かどうかのチェックが実行(S22)される。   When an update operation for updating AppXt1 to AppXt2 is performed on the operation screen of the MFP 101 or the client terminal 801, an update request for updating AppXt1 to AppXt2 is transmitted from the SAS 411 to the SAS Manager 511 (S21). Next, in the SAS manager 511, it is checked whether or not the update processing module can be installed in the multi-function peripheral 101 (S22).

続いて、SAS Manager511は、更新処理用のモジュールを融合機101にインストール(S23)する。続いて、SAS Manager511は、更新処理用のモジュールをアクティブ状態に遷移(S24)させる。続いて、SAS Manager511は、AppXt1に更新処理用のモジュールを追加して、所定のスイッチをAppXt1側からAppXt2側に切り替えて、AppXt2を生成(S25)する。   Subsequently, the SAS manager 511 installs a module for update processing in the multi-function peripheral 101 (S23). Subsequently, the SAS manager 511 causes the update processing module to transition to the active state (S24). Subsequently, the SAS manager 511 adds an update processing module to AppXt1, switches a predetermined switch from the AppXt1 side to the AppXt2 side, and generates AppXt2 (S25).

なお、上記のスイッチをAppXt1側からAppXt2側に切り替えるタイミングは任意である。   In addition, the timing which switches said switch from the AppXt1 side to the AppXt2 side is arbitrary.

以上、バンドルアプリ147に係る説明とバンドルサービス148に係る説明とを別個に実施したが、以下、バンドルアプリ147に係る説明とバンドルサービス148に係る説明とを同時に実施する。   As described above, the description related to the bundle application 147 and the description related to the bundle service 148 are performed separately. However, the description related to the bundle application 147 and the description related to the bundle service 148 are performed simultaneously.

図22は、バンドルアプリ147とバンドルサービス148との間の利用関係の具体例を表す。バンドルアプリ147やバンドルサービス148の更新処理が実施される場合において、どのバンドルアプリ147がどのバンドルサービス148を利用するかと言う利用関係を設定できるようにしてもよい。図22は、バンドルアプリ「AppXt1」がバンドルサービス「FaxTx1」を利用する、バンドルアプリ「AppXt2」がバンドルサービス「FaxTx2」を利用する、バンドルアプリ「AppXt3」がバンドルサービス「FaxTx3」を利用すると言う利用関係を表す。   FIG. 22 shows a specific example of the usage relationship between the bundle application 147 and the bundle service 148. When the update process of the bundle application 147 or the bundle service 148 is performed, a usage relationship such as which bundle application 147 uses which bundle service 148 may be set. FIG. 22 shows that the bundle application “AppXt1” uses the bundle service “FaxTx1”, the bundle application “AppXt2” uses the bundle service “FaxTx2”, and the bundle application “AppXt3” uses the bundle service “FaxTx3”. Represents a relationship.

図23は、FaxTx1とFaxTx2とFaxTx3との間の継承関係の例を表す。FaxTx1とFaxTx2については、FaxTx1が親でFaxTx2が子の関係の継承関係にある。FaxTx3については、FaxTx1ともFaxTx2とも継承関係にない。FaxTx1やFaxTx2やFaxTx3の継承関係はPlugin Agent821の処理やProxy Service822の処理に影響する。   FIG. 23 illustrates an example of the inheritance relationship among FaxTx1, FaxTx2, and FaxTx3. Regarding FaxTx1 and FaxTx2, FaxTx1 is a parent and FaxTx2 is a child. For FaxTx3, neither FaxTx1 nor FaxTx2 has an inheritance relationship. The inheritance relationship of FaxTx1, FaxTx2, and FaxTx3 affects the processing of Plugin Agent 821 and the processing of Proxy Service 822.

Plugin Agent821では、FaxTx1やFaxTx2やFaxTx3の管理を継承関係を利用せず実施する。図23のように、Plugin Agent821では、FaxTx1もFaxTx2もFaxTx3もそれぞれ個別に管理する。継承関係がPlugin Agent821の処理に影響するのは、継承関係にあるFaxTx1とFaxTx2のスイッチをFaxTx1側からFaxTx2側に切り替える切替制御である。   Plugin Agent 821 performs management of FaxTx1, FaxTx2, and FaxTx3 without using the inheritance relationship. As shown in FIG. 23, the Plug Agent 821 manages FaxTx1, FaxTx2, and FaxTx3 individually. The inheritance relationship affects the processing of the Plug Agent 821 is switching control for switching the FaxTx1 and FaxTx2 switches in the inheritance relationship from the FaxTx1 side to the FaxTx2 side.

Proxy Service822では、FaxTx1やFaxTx2やFaxTx3の登録を継承関係を利用して実施する。FaxTx1とFaxTx2については継承関係にあるため、図23のように、親のFaxTx1は登録されるが子のFaxTx2は登録不要である。FaxTx3についてはFaxTx1ともFaxTx2とも継承関係にないため、図23のように、FaxTx3は登録される。Proxy Service822では、AppXt1/2/3とFaxTx1/2/3との仲介制御を実行する。   In Proxy Service 822, registration of FaxTx1, FaxTx2, and FaxTx3 is performed using the inheritance relationship. Since FaxTx1 and FaxTx2 have an inheritance relationship, as shown in FIG. 23, the parent FaxTx1 is registered, but the child FaxTx2 does not need to be registered. Since FaxTx3 has no inheritance relationship with FaxTx1 and FaxTx2, FaxTx3 is registered as shown in FIG. In Proxy Service 822, mediation control between AppXt1 / 2/3 and FaxTx1 / 2/3 is executed.

図24は、利用関係の設定画面の具体例を表す。図24の設定画面は、融合機101やクライアント端末801の表示画面にSAS411が表示する。前者はいわゆるローカル表示であり、後者はいわゆるリモート表示である。リモート表示を実現するには例えば、融合機101とクライアント端末801にWebサーバ機能とWebクライアント機能を具備させればよい。   FIG. 24 shows a specific example of a usage relationship setting screen. The setting screen of FIG. 24 is displayed by the SAS 411 on the display screen of the multi-function peripheral 101 or the client terminal 801. The former is a so-called local display, and the latter is a so-called remote display. In order to realize remote display, for example, the MFP 101 and the client terminal 801 may be provided with a Web server function and a Web client function.

図24の設定画面は、AppXt1にFaxTx1を利用させるかFaxTx2を利用させるかFaxTx3を利用させるかを設定するための設定画面である。AppXt1に係る表示情報は、AppXt1のJARファイルに対応するJNLPファイル(アプリケーション管理ファイル)に起因する。図24の設定画面で指定されたFaxTx(FaxTx1/2/3)が融合機101に実装されていない場合、図13のようなインストール処理やアップデート処理が実行される。なお、図24の設定画面での指定操作は、図13の説明で登場した操作画面での更新操作の一環として実施されるものとしてもよい。   The setting screen of FIG. 24 is a setting screen for setting whether AppXt1 uses FaxTx1, FaxTx2, or FaxTx3. The display information related to AppXt1 is caused by a JNLP file (application management file) corresponding to the JAR file of AppXt1. If FaxTx (FaxTx1 / 2/3) designated on the setting screen of FIG. 24 is not installed in the multi-function peripheral 101, installation processing and update processing as shown in FIG. 13 are executed. Note that the designation operation on the setting screen of FIG. 24 may be performed as part of the update operation on the operation screen that appeared in the description of FIG.

図25は、バンドルアプリ147やバンドルサービス148の更新処理用のモジュールの取得態様について説明するための図である。   FIG. 25 is a diagram for describing an acquisition mode of modules for update processing of the bundle application 147 and the bundle service 148.

図中のAの矢印は、更新処理用のモジュールを融合機101に挿入されたメモリカード235から取得する態様を表す。メモリカード235は例えば、SDカードやICカードである。図25のAでは、SAS Manager511は、融合機101に実装されたバンドルアプリ147やバンドルサービス148を、メモリカード235から取得されたプログラムにより更新する。図25のAの取得態様では、ネットワーク接続されていない機器においても更新処理を実施する事ができる。   An arrow A in the figure represents a mode in which a module for update processing is acquired from the memory card 235 inserted in the multi-function peripheral 101. The memory card 235 is, for example, an SD card or an IC card. In A of FIG. 25, the SAS manager 511 updates the bundle application 147 and the bundle service 148 installed in the multi-function peripheral 101 with a program acquired from the memory card 235. In the acquisition mode of A in FIG. 25, the update process can be performed even in a device that is not connected to the network.

図中のBの矢印は、更新処理用のモジュールをPull型の通信によりバンドルサーバ901から取得する態様を表す。Pull型の通信処理の主体は、融合機101のSAS411である。図25のBでは、SAS Manager511は、融合機101に実装されたバンドルアプリ147やバンドルサービス148を、Pull型の通信により取得されたプログラムにより更新する。図25のBの取得態様では、SDカードやICカードを利用せずに更新処理を実施する事ができる。   The arrow B in the figure represents a mode in which an update processing module is acquired from the bundle server 901 by Pull-type communication. The subject of Pull type communication processing is the SAS 411 of the multi-function peripheral 101. In B of FIG. 25, the SAS manager 511 updates the bundle application 147 and the bundle service 148 installed in the multi-function peripheral 101 with a program acquired by Pull-type communication. In the acquisition mode of B in FIG. 25, the update process can be performed without using an SD card or an IC card.

図中のCの矢印は、更新処理用のモジュールをPush型の通信によりバンドルサーバ901から取得する態様を表す。Push型の通信処理の主体は、バンドルサーバ901である。図25のCでは、SAS Manager511は、融合機101に実装されたバンドルアプリ147やバンドルサービス148を、Push型の通信により取得されたプログラムにより更新する。図25のCの取得態様では、サーバからの遠隔制御のもとで更新処理を実施する事ができる。   An arrow C in the figure represents a mode in which an update processing module is acquired from the bundle server 901 by Push-type communication. The subject of Push type communication processing is the bundle server 901. In C of FIG. 25, the SAS manager 511 updates the bundle application 147 and the bundle service 148 installed in the multi-function peripheral 101 with a program acquired by Push-type communication. In the acquisition mode shown in FIG. 25C, the update process can be performed under remote control from the server.

なお、更新処理の実施態様は自動更新でも手動更新でもよい。図13や図21では更新操作の直後に更新処理が実施されるようにしているが、更新操作による更新設定を契機として更新処理が定期的に実施されるようにしてもよい。   The update process may be performed automatically or manually. Although the update process is performed immediately after the update operation in FIGS. 13 and 21, the update process may be performed periodically triggered by the update setting by the update operation.

101 融合機
111 ハードウェア
112 ソフトウェア
113 融合機起動部
121 撮像部
122 印刷部
123 その他のハードウェア
131 アプリケーション
132 プラットフォーム
133 アプリケーションプログラムインタフェース
134 エンジンインタフェース
135 仮想アプリケーションサービス
141 コピーアプリ
142 プリンタアプリ
143 スキャナアプリ
144 ファクシミリアプリ
145 ネットワークファイルアプリ
146 CSDKアプリ
147 JSDKアプリ
148 JSDKプラットフォーム
151 コントロールサービス
152 システムリソースマネージャ
153 ハンドラ
161 ネットワークコントロールサービス
162 ファクシミリコントロールサービス
163 デリバリコントロールサービス
164 エンジンコントロールサービス
165 メモリコントロールサービス
166 オペレーションパネルコントロールサービス
167 サーティフィケーションコントロールサービス
168 ユーザディレクトリコントロールサービス
169 システムコントロールサービス
171 ファクシミリコントロールユニットハンドラ
172 イメージメモリハンドラ
201 コントローラ
202 オペレーションパネル
203 ファクシミリコントロールユニット
211 CPU
212 ASIC
221 NB
222 SB
231 MEM−P
232 MEM−C
233 HDD
234 メモリカードスロット
235 メモリカード
241 NIC
242 USBデバイス
243 IEEE1394デバイス
244 セントロニクスデバイス
301 原稿セット部
302 給紙部
303 排紙部
311 タッチパネル
312 テンキー
313 スタートボタン
314 リセットボタン
315 機能キー
316 初期設定ボタン
321 ADF
322 フラットベッド
323 フラットベッドカバー
401 OSGiアプリ
402 OSGiサービス
403 OSGiフレームワーク
404 Bundle Activator
411 SAS
511 SAS Manager
555 CVM
801 クライアント端末
811 AspectSM
821 Plugin Agent
822 Proxy Service
901 バンドルサーバ
1001 StateMachineクラス
1002 StateVertexクラス
1003 Transitクラス
1003a Eventインタフェース
1003b Guardインタフェース
1003c Actionインタフェース
1004 Stateクラス
1004a IStateインタフェース
1004b Activityインタフェース
1005 PseudoStateクラス
1006 InitialStateクラス
1007 FinalStateクラス
DESCRIPTION OF SYMBOLS 101 Compound machine 111 Hardware 112 Software 113 Compound machine starting part 121 Imaging part 122 Printing part 123 Other hardware 131 Application 132 Platform 133 Application program interface 134 Engine interface 135 Virtual application service 141 Copy application 142 Printer application 143 Scanner application 144 Facsimile Application 145 Network file application 146 CSDK application 147 JSDK application 148 JSDK platform 151 Control service 152 System resource manager 153 Handler 161 Network control service 162 Facsimile control service 163 Delivery control service 164 an engine control service 165 a memory control service 166 operation panel control service 167 a certification control service 168 user directory control service 169 system control service 171 a facsimile control unit handler 172 image memory handler 201 controller 202 an operation panel 203 facsimile control unit 211 CPU
212 ASIC
221 NB
222 SB
231 MEM-P
232 MEM-C
233 HDD
234 Memory card slot 235 Memory card 241 NIC
242 USB device 243 IEEE 1394 device 244 Centronics device 301 Document setting unit 302 Paper feed unit 303 Paper discharge unit 311 Touch panel 312 Numeric keypad 313 Start button 314 Reset button 315 Function key 316 Initial setting button 321 ADF
322 Flatbed 323 Flatbed cover 401 OSGi app 402 OSGi service 403 OSGi framework 404 Bundle Activator
411 SAS
511 SAS Manager
555 CVM
801 Client terminal 811 AspectSM
821 Plugin Agent
822 Proxy Service
901 Bundle server 1001 StateMachine class 1002 StateVertex class 1003 Transit class 1003a Event interface 1003b Guard interface 1003c Action class 1004 State class 1004aSituState interface 1004b ActiveStic interface 1004b

特開2002−84383号公報JP 2002-84383 A

Claims (13)

互いに排他的に動作する複数のモジュールの接続によって構成されるプログラムを実行する機器であって、
動作中の前記プログラムの更新情報の入力を受け付ける入力手段と、
前記プログラムの動作状態が、前記更新情報において指定されている更新のタイミングに相当するか否かを判定するタイミング判定手段と、
前記タイミング判定手段によって前記更新のタイミングであると判定されたときに、前記更新情報に従って、前記複数のモジュールの接続関係を変更する変更手段とを有し、
前記更新情報には、動作中のモジュールを特定することにより前記更新のタイミングが指定されており、
前記判定手段は、前記更新のタイミングとして指定されたモジュールが動作中であるときに、当該更新のタイミングであると判定することを特徴とする機器。
A device that executes a program configured by connecting a plurality of modules that operate exclusively with each other,
Input means for receiving input of update information of the program in operation ;
Timing determination means for determining whether the operation state of the program corresponds to the update timing specified in the update information;
Change means for changing the connection relationship of the plurality of modules according to the update information when the timing determination means determines that it is the update timing;
In the update information, the timing of the update is specified by specifying an operating module,
The determination unit determines that it is the update timing when the module specified as the update timing is operating.
前記変更手段は、前記更新情報に指定されている変更箇所に対応するモジュールの接続関係を変更することを特徴とする請求項1記載の機器。   2. The device according to claim 1, wherein the changing unit changes a connection relation of modules corresponding to a changed portion specified in the update information. 前記判定手段によって前記更新のタイミングであると判定されるまで、前記変更手段による変更を待機することを特徴とする請求項1又は2記載の機器。   The apparatus according to claim 1 or 2, wherein the apparatus waits for a change by the changing means until it is determined by the determining means that the update timing is reached. 前記変更手段は、前記更新情報に新たなモジュールの追加が指定されているときは、当該新たなモジュールを生成し、当該新たなモジュールも含めて複数の前記モジュールの接続関係を変更することを特徴とする請求項1乃至3いずれか一項記載の機器。   The changing means generates a new module when the addition of a new module is specified in the update information, and changes the connection relation of the plurality of modules including the new module. The device according to any one of claims 1 to 3. 前記プログラムを構成する各モジュールは、当該プログラムの状態遷移における各状態に対応することを特徴とする請求項1乃至4いずれか一項記載の機器。   5. The device according to claim 1, wherein each module constituting the program corresponds to each state in a state transition of the program. 互いに排他的に動作する複数のモジュールの接続によって構成されるプログラムを実行する機器と情報処理装置とを含む情報処理システムであって、
前記機器は、
動作中の前記プログラムの更新情報を前記情報処理装置より取得する取得手段と、
前記プログラムの動作状態が、前記更新情報において指定されている更新のタイミングに相当するか否かを判定するタイミング判定手段と、
前記タイミング判定手段によって前記更新のタイミングであると判定されたときに、前記更新情報に従って、前記複数のモジュールの接続関係を変更する変更手段とを有し、
前記更新情報には、動作中のモジュールを特定することにより前記更新のタイミングが指定されており、
前記判定手段は、前記更新のタイミングとして指定されたモジュールが動作中であるときに、当該更新のタイミングであると判定することを特徴とする情報処理システム。
An information processing system including an information processing apparatus and a device that executes a program configured by connecting a plurality of modules that operate exclusively with each other,
The equipment is
Acquisition means for acquiring update information of the program in operation from the information processing apparatus;
Timing determination means for determining whether the operation state of the program corresponds to the update timing specified in the update information;
Change means for changing the connection relationship of the plurality of modules according to the update information when the timing determination means determines that it is the update timing;
In the update information, the timing of the update is specified by specifying an operating module,
The information processing system according to claim 1, wherein the determination unit determines that the update timing is reached when the module specified as the update timing is operating.
互いに排他的に動作する複数のモジュールの接続によって構成されるプログラムを実行する機器によって実行される情報処理方法であって、
動作中の前記プログラムの更新情報の入力を受け付ける入力手順と、
前記プログラムの動作状態が、前記更新情報において指定されている更新のタイミングに相当するか否かを判定するタイミング判定手順と、
前記タイミング判定手順において前記更新のタイミングであると判定されたときに、前記更新情報に従って、前記複数のモジュールの接続関係を変更する変更手順とを有し、
前記更新情報には、動作中のモジュールを特定することにより前記更新のタイミングが指定されており、
前記判定手順は、前記更新のタイミングとして指定されたモジュールが動作中であるときに、当該更新のタイミングであると判定することを特徴とする情報処理方法。
An information processing method executed by a device that executes a program configured by connecting a plurality of modules that operate exclusively with each other,
An input procedure for receiving input of update information of the program in operation ;
A timing determination procedure for determining whether or not the operating state of the program corresponds to the update timing specified in the update information;
A change procedure for changing the connection relationship of the plurality of modules according to the update information when it is determined that the update timing is in the timing determination procedure;
In the update information, the timing of the update is specified by specifying an operating module,
The information processing method according to claim 1, wherein when the module specified as the update timing is in operation, the determination procedure determines that the update timing is reached.
前記変更手順は、前記更新情報に指定されている変更箇所に対応するモジュールの接続関係を変更することを特徴とする請求項7記載の情報処理方法。   The information processing method according to claim 7, wherein the changing procedure changes a connection relation of modules corresponding to a changed portion specified in the update information. 前記判定手順において前記更新のタイミングであると判定されるまで、前記変更手順による変更を待機することを特徴とする請求項7又は8記載の情報処理方法。   9. The information processing method according to claim 7 or 8, wherein a change in the change procedure is waited until it is determined in the determination procedure that the update timing is reached. 前記変更手順は、前記更新情報に新たなモジュールの追加が指定されているときは、当該新たなモジュールを生成し、当該新たなモジュールも含めて複数の前記モジュールの接続関係を変更することを特徴とする請求項7乃至9いずれか一項記載の情報処理方法。   In the change procedure, when addition of a new module is specified in the update information, the new module is generated, and the connection relationship of the plurality of modules including the new module is changed. The information processing method according to any one of claims 7 to 9. 前記プログラムを構成する各モジュールは、当該プログラムの状態遷移における各状態に対応することを特徴とする請求項7乃至10いずれか一項記載の情報処理方法。   11. The information processing method according to claim 7, wherein each module constituting the program corresponds to each state in a state transition of the program. 請求項7乃至11いずれか一項記載の情報処理方法をコンピュータに実行させるための情報処理プログラム。   An information processing program for causing a computer to execute the information processing method according to any one of claims 7 to 11. 請求項12記載の情報処理プログラムを記録したコンピュータ読取可能な記録媒体。   A computer-readable recording medium on which the information processing program according to claim 12 is recorded.
JP2011129761A 2005-08-26 2011-06-10 Apparatus, information processing system, information processing method, information processing program, and recording medium Active JP5246299B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011129761A JP5246299B2 (en) 2005-08-26 2011-06-10 Apparatus, information processing system, information processing method, information processing program, and recording medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005246226 2005-08-26
JP2005246226 2005-08-26
JP2011129761A JP5246299B2 (en) 2005-08-26 2011-06-10 Apparatus, information processing system, information processing method, information processing program, and recording medium

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006224521A Division JP4791910B2 (en) 2005-08-26 2006-08-21 Image forming apparatus, information processing method, information processing program, and recording medium

Publications (2)

Publication Number Publication Date
JP2011238247A JP2011238247A (en) 2011-11-24
JP5246299B2 true JP5246299B2 (en) 2013-07-24

Family

ID=45326086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011129761A Active JP5246299B2 (en) 2005-08-26 2011-06-10 Apparatus, information processing system, information processing method, information processing program, and recording medium

Country Status (1)

Country Link
JP (1) JP5246299B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5543997B2 (en) * 2012-08-28 2014-07-09 住友電気工業株式会社 Remote management apparatus, remote management method, and remote management program
JP6083302B2 (en) * 2013-04-02 2017-02-22 コニカミノルタ株式会社 Image forming apparatus and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08194612A (en) * 1994-11-15 1996-07-30 Nippon Telegr & Teleph Corp <Ntt> Method and system for controlling program execution
JP4280311B2 (en) * 1995-10-11 2009-06-17 キヤノン株式会社 Image processing composite apparatus and control method thereof
JP2988462B2 (en) * 1998-02-12 1999-12-13 三菱電機株式会社 Autonomous cooperative processing device, autonomous cooperative processing method, and recording medium therefor
JPH11259284A (en) * 1998-03-12 1999-09-24 Fujitsu Ltd On-line program updating system and computer readable storage medium for recording program for updating program

Also Published As

Publication number Publication date
JP2011238247A (en) 2011-11-24

Similar Documents

Publication Publication Date Title
JP4791910B2 (en) Image forming apparatus, information processing method, information processing program, and recording medium
US8264717B2 (en) Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium
US9164865B2 (en) Image processing apparatus, method, program, and computer readable recording medium for controlling operation switching and displaying at occurrence of error conditions
US9141374B2 (en) Image forming device, information processing method, information processing program, and recording medium
US20040109188A1 (en) Image forming apparatus and methods used in the image forming apparatus
US10296401B2 (en) Apparatus and method that determine whether the apparatus can execute an application program
JP2006109411A (en) Application execution method, information processor, image forming apparatus, application execution program, terminal device, information processing method, information processing program, and storage medium
JP2005269619A (en) Image forming apparatus, terminal apparatus, information processing method, information processing program, and recording medium
JP5025192B2 (en) Apparatus, information processing method, information processing program, and recording medium
JP4832226B2 (en) Apparatus, information processing method, information processing program, and recording medium
JP2007049677A (en) Image forming apparatus, information processor, information processing method, information processing program and recording medium
JP5664692B2 (en) Electronic device, image forming apparatus, information processing method, information processing program, and recording medium
JP2007048270A (en) Image forming apparatus, information processing apparatus, information processing method, information processing program and recording medium
JP5246299B2 (en) Apparatus, information processing system, information processing method, information processing program, and recording medium
JP5025193B2 (en) Apparatus, information processing method, information processing program, and recording medium
JP2006079211A (en) Image formation apparatus, information processing method, information processing program and recording medium
JP4459033B2 (en) Image forming apparatus, terminal apparatus, information processing method, information processing program, and recording medium
JP2005269439A (en) Image forming apparatus, information processing method, information processing program, and recording medium
JP5565439B2 (en) Apparatus, information processing method, information processing program, and recording medium
JP2011101422A (en) Image forming apparatus, information processing method, program, and recording medium
JP5418543B2 (en) Terminal device, information processing method, information processing program, recording medium, and information processing system
JP5648723B2 (en) Apparatus, information processing method, program, recording medium, and information processing system
JP2011120250A (en) Terminal equipment, information processing method, information processing program, and computer-readable storage medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130215

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: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R151 Written notification of patent or utility model registration

Ref document number: 5246299

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3