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 PDFInfo
- 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
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は、本発明の実施例に該当する融合機101を表す。図1の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。
FIG. 1 shows a
融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像(画像データ)を読み取るためのハードウェアである。印刷部122は、画像(画像データ)を印刷用紙に印刷するためのハードウェアである。
As the hardware 111 of the multi-function peripheral 101, there are an
融合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX(登録商標)等のOS(オペレーティングシステム)によりプロセス単位で並列的に実行される。
As the
アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。
The
アプリケーション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
プラットフォーム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
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
アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービス(VAS)135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。
A virtual application service (VAS) 135 exists as
融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX(登録商標)等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
The
図2は、図1の融合機101に係るハードウェア構成図である。融合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。
FIG. 2 is a hardware configuration diagram according to the
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。
The
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
オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア(操作部)であると共に、オペレータが融合機101から出力を得るためのハードウェア(表示部)である。
The
図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
オペレーションパネル202は、図4のように、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェア(タッチ操作部)であると共に、画面表示で出力を得るためのハードウェア(画面表示部)である。テンキー312は、キー(ボタン)操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、キー(ボタン)操作でCSDKアプリ146やJSDKアプリ147による操作画面を表示させるためのハードウェアである。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。
As shown in FIG. 4, the
原稿セット部301は、ADF(自動原稿搬送装置)321と、フラットベッド322と、フラットベッドカバー323により構成される。給紙部302は、4個の給紙トレイにより構成される。排紙部303は、1個の排紙トレイにより構成される。
The
(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
図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
さて、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
図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
さて、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フレームワーク403は、当然の事ながら、OSGiサービス402を構成するバンドルの管理や、JSDKプラットフォーム148を構成するバンドルの管理も行う。Java(登録商標)言語のソフトウェアの管理先の一元化が実現されていると言える。そして、OSGiアプリ401はここではServletかJSPであるものとする。そして、JSDKアプリ147はここではXletであるものとする。
As a matter of course, the
なお、JSDKアプリ147についても、バンドル化された状態で実装するものとしてもよい。さらに、JSDKアプリ147については、バンドル化された状態で実装してもバンドル化されていない状態で実装してもどちらでもよいものとしてもよい。バンドル化された状態で実装されるJSDKアプリ147については、Bundle Activator404によるバンドル化は不要である。
Note that the
(更新処理)
以下、バンドルとして管理される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
図7は、バンドルサービス148のオブジェクト構成の具体例を表す。図7のバンドルサービス148は、4個のオブジェクト(モジュール)A/B/C/Dにより構成されている。
FIG. 7 shows a specific example of the object configuration of the
さて、オブジェクト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
しかしながら、融合機101は、バンドルサービス148の更新処理をバンドルサービス148の動作中にバンドルサービス148のモジュール毎に実行するのに、融合機101の再起動処理を伴わずに実行する。よって、バンドルサービス148の更新処理を実施するのに、融合機101の再起動操作をユーザに強制する事もなくなるし、融合機101の再起動処理がユーザの知らぬ間に実施される事もなくなるのである。
However, the
すなわち、融合機101は、バンドルサービス148の更新処理をバンドルサービス148の更新部分のオブジェクトがアクティブ状態ではないとき(動作中でないとき)に実行する。これによって、融合機101は、再起動処理を伴わずに、バンドルサービス148の更新処理をバンドルサービス148の動作中にバンドルサービス148のモジュール毎に実行する事ができる。
That is, the multi-function peripheral 101 executes the update process of the
以下、バンドルサービス148の更新処理の具体例として、バンドルサービス「FaxTx1」がバンドルサービス「FaxTx2」に更新される様子について説明する。バンドルサービス「FaxTx1」は、画像データをFAX送信するサービスを提供するバンドルサービス148である。「FaxTx2」は、画像データをPDFからTIFFに変換してFAX送信するサービスを提供するバンドルサービス148である。
Hereinafter, as a specific example of the update process of the
図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
図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
状態遷移図に基づいて、本実施の形態におけるバンドルサービス148は、図10に示されるようなクラス群によってモデル化されている。図10は、バンドルサービスを構成するクラス図の一例である。
Based on the state transition diagram, the
図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
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
PseudoSateクラス1005は、初期状態や終期状態等、その名の通り擬似的な状態を表現するクラスであり、そのサブクラスとしては初期状態を表現するInitialStateクラス1006及び終期状態を表現するFinalStateクラス1007等がある。
The
上記クラス間の関係について説明する。StateMachineクラス1001は、StateVertexクラス1002を集約する。これは、一つのバンドルサービスは、一つ以上の状態を有することを表現したものである。StateVertexクラス1002は、Transitクラスを集約する。これは、状態と状態との間は遷移によって接続されることを表現したものである。
The relationship between the classes will be described. The
以上のような、モデルに基づいて、バンドルサービス「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
また、図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
図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
図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
バンドルサービス148の更新処理の影響が顕著なオブジェクトが、バンドルサービス148の更新部分のオブジェクトである。バンドルサービス148の更新部分のオブジェクトとは、オブジェクトの入替部分やオブジェクトの追加部分(バンドルサービス148の更新部分)に連結するオブジェクトを意味する。図11から図12への更新処理では、バンドルサービス148の更新部分に相当するのがスイッチ721等の追加部分であり、バンドルサービス148の更新部分のオブジェクトに相当するのがSend状態オブジェクト704や送信開始オブジェクト711Tである。
An object that is noticeably influenced by the update process of the
オブジェクトの状態は、サービスの授受を行う「アクティブ状態」とサービスの授受を行わない「非アクティブ状態」に分類される。バンドルサービス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
図13は、バンドルサービス148の更新処理に係るコラボレーション図である。同図の更新処理は、バンドルサービス「FaxTx1」をバンドルサービス「FaxTx2」に更新するものである。
FIG. 13 is a collaboration diagram related to the update process of the
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
続いて、SAS Manager511は、更新処理用のモジュールを融合機101にインストール(S14)する。続いて、SAS Manager511は、更新処理用のモジュールをアクティブ状態に遷移(S15)させる。続いて、SAS Manager511は、FaxTx1に更新処理用のモジュールを追加して、スイッチ721をFaxTx1側からFaxTx2側に切り替えて、FaxTx2を生成(S16)する。
Subsequently, the
なお、更新処理が行われるタイミングは、更新処理用のモジュールに同梱されている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
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
図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
状態遷移情報900の121行目における<StateMachine>タグのタグ名、及びそのname属性の値(「FaxTx1」)によって、状態遷移情報900は、バンドルサービス「FaxTx1」に対応するものであることが定義されている。また、当該<StateMachine>タグにおけるxmi.id属性の値(「004」)は、バンドルサービス「FaxTx1」を識別するIDである。
It is defined that the
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
138行目から148行目におけるCompositeState要素920は、Send状態604に対する定義である。CompositeState要素920のname属性の値には「Send」が設定され、xmi.id要素の値には、「019」が設定されている。
The
149行目から159行目におけるCompositeState要素930は、Idle状態603に対する定義である。CompositeState要素930のname属性の値には「Idle」が設定され、xmi.id要素の値には、「022」が設定されている。
The
160行目から183行目におけるPseudostate要素940は、終期状態602に対する定義である。Pseudostate要素940のname属性の値には「end」が設定され、xmi.id要素の値には、「024」が設定されている。
The
また、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
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
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
130行目以降の説明に戻る。各状態に対応する、Pseudostate要素910、CompositeState要素920、及びCompositeState要素930は、StateVertex.outgoing要素及びStateVertex.incoming要素の少なくともいずれか一方を子要素として有する。StateVertex.outgoing要素は、遷移元からの状態遷移に対する接続が定義される要素である。StateVertex.incoming要素は、遷移先への状態遷移に対する接続が定義される要素である。
Returning to the description after the 130th line. A
例えば、初期状態601に対応するPseudostate要素910におけるStateVertex.outgoing要素911において、その子要素のxmi.idref属性の値は「018」である。したがって、初期状態601からの遷移先への状態遷移は、Transition要素970が対応する状態遷移に相当することが分かる。
For example, StateVertex. In the
また、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
なお、Idle状態603に対応するCompositeState要素930、終期状態602に対応するPseudostate要素940においても同様に状態遷移との接続が定義されている。
In the
上記のような状態遷移情報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
続いて、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
また、必要に応じて、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
以上の処理によって、バンドルサービス「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
図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
AspectSM811は、FaxTx1からFaxTx2への更新処理をどのように実施するかについての仕様がXML形式記述されているファイルである。
The
図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
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
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要素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
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
二つ目の変更箇所には、二つの変更が指定されている。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
二つ目の変更(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
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
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である。
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
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
図17に戻る。管理者によるSDカード235aの挿入が自動的に検知されると、又はSDカード235aが挿入され、オペレーションパネル202から更新指示が入力されると、SAS411は、SAS Manager511に更新処理の実行を要求する(S202)。なお、SDカード235aに記録された情報は、ネットワークを介してダウンロードされてもよい。この場合、SDカードのような記録媒体を用いる必要はない。
Returning to FIG. When the insertion of the
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
OSGiフレームワーク403は、更新差分サービスバンドル840のインスタンスを(以下、「更新差分オブジェクト840a」という。)生成し、アクティブな状態に遷移させる(S207)。更新差分オブジェクト840aは、Plugin Agent821に対して更新差分サービスバンドル840がプラグインされたことをAspectSM811を添えて通知する(S208)。
The
Plugin Agent821は、FaxTx1オブジェクト831に対して、AspectSM811を添えてFaxTx2への更新要求を行う(S209)。FaxTx1オブジェクト831は、AspectSM811に基づいて、サービスバンドル「FaxTx1」をFaxTx2へ更新する為に必要な追加モジュール判断し、当該追加モジュール(ここでは、PDF2Tiff841及びConvertEnd842)の取得を更新差分オブジェクト840aに要求する(S210)。更新差分オブジェクト840aは、当該追加モジュールを取得し、FaxTx1オブジェクト831に返却する(S211)。
The Plug-in
続いて、FaxTx1オブジェクト831は、AspectSM811に従って、バンドルサービス「FaxTx1」のオブジェクト構成を、FaxTx2に対応するものに更新すると共に、当該更新によって新たに追加されたActivityオブジェクトと追加モジュールとの関連付けを行う(S212)。なお、ステップS212の処理は、AspectSM811に記述されているタイミングで行われる。
Subsequently, the
続いて、FaxTx1オブジェクト831は、バンドルサービス「FaxTx1」について「FaxTx2」への更新が完了したことをPlugin Agent821に通知する(S213)。但し、FaxTx1をFaxTx2に切り替えるスイッチ721は、FaxTx1の状態のままである。
Subsequently, the
更新が完了した旨の通知は、SAS Manaer511を介してSAS411に通知される(S214、S215)。SAS411は、管理者に更新完了を通知するため、オペレーションパネル202に更新完了を通知するメッセージを表示させる(S216)。なお、この状態では、スイッチ721は、まだFaxTx2には切り替えられていないので、SAS411は、管理者にFaxTx2へ切り替える否かを問い合わせる。
The notification that the update has been completed is notified to the
そこで、管理者が、オペレーションパネル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
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
次に、ステップ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
バンドルサービス「FaxTx1」の状態がIdle状態603に遷移すると、FaxTx1オブジェクト831は、AspectSM811の記述にしたがって、更新処理を開始する。
When the state of the bundle service “FaxTx1” transitions to the
例えば、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オブジェクト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
続いて、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
以上の処理によって、バンドルサービス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
なお、上記のように、更新処理後は、バンドルサービス「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
上述したように、本実施の形態におけるバンドルサービスは、状態オブジェクトの遷移によってサービスを実現する。また、サービスの実現過程において、アクティブな状態オブジェクトが限定されるように構成されている。言い換えれば、非アクティブな状態オブジェクトが存在することになる。このような構成を前提として、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
なお、本実施の形態においては、バンドルサービスが状態遷移図に基づいて設計された例を用いて説明したが、本発明が適用可能なプログラムは、状態ごとにオブジェクトが構築されるような構成であるものに限定されない。お互いに排他的に動作する複数のモジュール(オブジェクトも含む)の接続によって構成されているものでればよい。ここで排他的に処理を実行するとは、あるモジュールが動作中(アクティブ)のときは、他のモジュールは動作中でない(非アクティブである)ことが保証されることをいう。このようなソフトウェアであれば、動作中でないモジュールの接続関係を変更することが可能であり、本実施の形態において説明した更新処理を適用させることができる。 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
図21は、バンドルアプリ147の更新処理に係るコラボレーション図である。同図の更新処理は、バンドルアプリ「AppXt1」をバンドルアプリ「AppXt2」に更新するものである。
FIG. 21 is a collaboration diagram related to the update process of the
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
続いて、SAS Manager511は、更新処理用のモジュールを融合機101にインストール(S23)する。続いて、SAS Manager511は、更新処理用のモジュールをアクティブ状態に遷移(S24)させる。続いて、SAS Manager511は、AppXt1に更新処理用のモジュールを追加して、所定のスイッチをAppXt1側からAppXt2側に切り替えて、AppXt2を生成(S25)する。
Subsequently, the
なお、上記のスイッチを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
図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
図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 Agent821では、FaxTx1やFaxTx2やFaxTx3の管理を継承関係を利用せず実施する。図23のように、Plugin Agent821では、FaxTx1もFaxTx2もFaxTx3もそれぞれ個別に管理する。継承関係がPlugin Agent821の処理に影響するのは、継承関係にあるFaxTx1とFaxTx2のスイッチをFaxTx1側からFaxTx2側に切り替える切替制御である。
Proxy Service822では、FaxTx1やFaxTx2やFaxTx3の登録を継承関係を利用して実施する。FaxTx1とFaxTx2については継承関係にあるため、図23のように、親のFaxTx1は登録されるが子のFaxTx2は登録不要である。FaxTx3についてはFaxTx1ともFaxTx2とも継承関係にないため、図23のように、FaxTx3は登録される。Proxy Service822では、AppXt1/2/3とFaxTx1/2/3との仲介制御を実行する。
In
図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
図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
図中の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
図中の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
図中の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
なお、更新処理の実施態様は自動更新でも手動更新でもよい。図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
212 ASIC
221 NB
222 SB
231 MEM-P
232 MEM-C
233 HDD
234
242
322
411 SAS
511 SAS Manager
555 CVM
801
821 Plugin Agent
822 Proxy Service
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.
前記機器は、
動作中の前記プログラムの更新情報を前記情報処理装置より取得する取得手段と、
前記プログラムの動作状態が、前記更新情報において指定されている更新のタイミングに相当するか否かを判定するタイミング判定手段と、
前記タイミング判定手段によって前記更新のタイミングであると判定されたときに、前記更新情報に従って、前記複数のモジュールの接続関係を変更する変更手段とを有し、
前記更新情報には、動作中のモジュールを特定することにより前記更新のタイミングが指定されており、
前記判定手段は、前記更新のタイミングとして指定されたモジュールが動作中であるときに、当該更新のタイミングであると判定することを特徴とする情報処理システム。 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.
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)
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)
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 |
-
2011
- 2011-06-10 JP JP2011129761A patent/JP5246299B2/en active Active
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 |