JP2007048270A - Image forming apparatus, information processing apparatus, information processing method, information processing program, and recording medium - Google Patents
Image forming apparatus, information processing apparatus, information processing method, information processing program, and recording medium Download PDFInfo
- Publication number
- JP2007048270A JP2007048270A JP2006158707A JP2006158707A JP2007048270A JP 2007048270 A JP2007048270 A JP 2007048270A JP 2006158707 A JP2006158707 A JP 2006158707A JP 2006158707 A JP2006158707 A JP 2006158707A JP 2007048270 A JP2007048270 A JP 2007048270A
- Authority
- JP
- Japan
- Prior art keywords
- application
- bundle
- jsdk
- control
- information processing
- 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.)
- Pending
Links
Images
Landscapes
- Control Or Security For Electrophotography (AREA)
- Stored Programmes (AREA)
- Facsimiles In General (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
Description
本発明は、コピー/プリンタ/スキャナ/ファクシミリ/複合機/融合機等の画像形成装置、パーソナルコンピュータ等の情報処理装置、情報処理方法、情報処理プログラム、SDメモリカード等の記録媒体に関する。 The present invention relates to an image forming apparatus such as a copy / printer / scanner / facsimile / multifunction machine / multifunction machine, an information processing apparatus such as a personal computer, an information processing method, an information processing program, and a recording medium such as an SD memory card.
近年、コピー機能とプリンタ機能とスキャナ機能とファクシミリ機能を備える複合機や融合機が市販されるようになった。複合機や融合機は、コピーやプリンタとして機能する場合には、画像を印刷用紙に印刷することになり、コピーやスキャナとして機能する場合には、画像を読取原稿から読み取ることになり、ファクシミリとして機能する場合には、画像を電話回線を介して他の機器と授受することになる。
さて、複合機や融合機に実装されるアプリケーションと言えば、従来はC言語のアプリケーションが主流だったが、近頃はJava(登録商標)言語のアプリケーションも登場しつつある。さらに、一言でJava(登録商標)言語のアプリケーションと言っても、AppletやXletやServletやJSP等の様々な種類のアプリケーションが存在する。ゆえに、これらのアプリケーションの管理を行うプラットフォーム等のアプリケーション管理機構は徐々に複雑化する傾向にある。アプリケーション管理機構の複雑化は機器の性能面から言っても開発の効率面から言ってもあまり好ましくないため、アプリケーション管理機構はなるべく統合的に構成することが望ましい。 Speaking of applications implemented in multi-function peripherals and multi-function peripherals, C language applications have been the mainstream in the past, but recently, Java (registered trademark) language applications are also appearing. Furthermore, there are various types of applications such as Applet, Xlet, Servlet, and JSP, even if it is a Java (registered trademark) language application. Therefore, application management mechanisms such as platforms for managing these applications tend to become increasingly complex. Since the complexity of the application management mechanism is not preferable in terms of device performance or development efficiency, it is desirable to configure the application management mechanism as integratedly as possible.
本発明は、画像形成装置に実装されるアプリケーションの管理を行うアプリケーション管理機構を統合的に構成することを課題とする。 It is an object of the present invention to integrally configure an application management mechanism that manages applications installed in an image forming apparatus.
そこで上記課題を解決するため、本発明は、バンドルとして実装されている第一のアプリケーションを制御するバンドル制御手段を備えた画像形成装置であって、前記第一のアプリケーションと同一のインタフェースを前記バンドル制御手段に対して提供し、前記バンドル制御手段による前記インタフェースの呼び出しに応じてバンドルとして実装されていない第二のアプリケーションの制御を仲介する制御仲介手段を有することを特徴とする。 Therefore, in order to solve the above-described problem, the present invention provides an image forming apparatus including a bundle control unit that controls a first application implemented as a bundle, and includes the same interface as the first application. Control intermediary means that mediates control of a second application that is provided to the control means and is not implemented as a bundle in response to the interface call by the bundle control means.
また、上記課題を解決するため、本発明は、画像形成装置のエミュレータとして機能し、バンドルとして実装されている第一のアプリケーションを制御するバンドル制御手段を備えた情報処理装置であって、前記第一のアプリケーションと同一のインタフェースを前記バンドル制御手段に対して提供し、前記バンドル制御手段による前記インタフェースの呼び出しに応じてバンドルとして実装されていない第二のアプリケーションの制御を仲介する制御仲介手段を有することを特徴とする。 In order to solve the above-described problem, the present invention provides an information processing apparatus including a bundle control unit that functions as an emulator of an image forming apparatus and controls a first application mounted as a bundle. A control intermediary unit that provides the same interface as the one application to the bundle control unit and mediates control of a second application that is not implemented as a bundle in response to the interface call by the bundle control unit; It is characterized by that.
このような画像形成装置又は情報処理装置では、画像形成装置に実装されるアプリケーションの管理を行うアプリケーション管理機構を統合的に構成することができる。 In such an image forming apparatus or information processing apparatus, an application management mechanism that manages applications installed in the image forming apparatus can be integrated.
本発明は、画像形成装置に実装されるアプリケーションの管理を行うアプリケーション管理機構を統合的に構成することを可能にする。 The present invention makes it possible to integrally configure an application management mechanism that manages applications installed in an image forming apparatus.
図1は、本発明の実施例に該当する融合機101を表す。図1の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。
FIG. 1 shows a
融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像(画像データ)を読み取るためのハードウェアである。印刷部122は、画像(画像データ)を印刷用紙に印刷するためのハードウェアである。
As the
融合機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が存在する。すなわち、融合機101は、C言語で実装されたCSDKアプリの実行環境やJava(登録商標)言語で実装されたJSDKアプリの実行環境等、複数のアプリ実行環境を有する。なお、JSDKアプリの実行環境の具体例としては、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 MFP
図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)
図5は、CSDKアプリとJSDKアプリの管理機構の第一の例を示す図である。CSDKアプリ146は、C言語のアプリケーションであり、それぞれプロセスとして実行される事になる。JSDKアプリ147は、Java(登録商標)言語のアプリケーションであり、それぞれスレッドとして実行される事になる。
(CSDK and JSDK)
FIG. 5 is a diagram illustrating a first example of a management mechanism for the CSDK application and the JSDK application. The
図1の融合機101には、CSDKアプリ146として、他のCSDKアプリ146の制御を行うSAS(SDKアプリケーションサービス)411が存在し、JSDKアプリ147として、他のJSDKアプリ147の制御を行うSAS Manager(SDKアプリケーションサービスマネージャ)511が存在する。SAS411とSAS Manager511はそれぞれ、CSDKアプリ146とJSDKアプリ147の起動制御,起動解除(停止も含む)制御,インストール制御,アンインストール制御,アップデート制御等を行う。このように、CSDKアプリ146とJSDKアプリ147とによってそれぞれ管理機構体が異なるのは、それぞれのアプリケーションの開発言語が異なる点がその理由の一つとして挙げられる。例えば、SAS411によって、JSDKアプリ147の制御を直接行おうとすると、C言語のソースコードの中からJava(登録商標)言語によるインタフェースを呼び出さなければならず、高度なプログラミング技術が必要とされるとともに、その処理内容が煩雑となるからである。また、CSDKアプリ146の方はプロセスとして実行され、JSDKアプリ147の方はスレッドとして実行されるといったように、両者の実行形態が異なる点を考慮しても、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に具備させると言う形で統合的に構成されている。なお、SAS411とSAS Manager511とのやり取りは、HTTP(HyperText Transfer Protocol)やSOAP(Simple Object Access Protocol)等、開発言語の別を問わず簡便に利用できるプロトコルを用いるとよい。そうすることによって、C言語のソースコードの中からJava(登録商標)言語によるインタフェースを呼び出す必要がなくなり、処理内容の煩雑さの問題が解消される。また、融合機101のソフトウェアの根幹部分がC言語によることも、SDKアプリを制御する機能を同じくC言語によるSAS411に集中しておくのが好適である理由の一つであるといえる。
However, the
また、図6は、CSDKアプリとJSDKアプリの管理機構の第二の例を示す図である。図6中、図5と同一部分には同一符号を付し、その説明は省略する。図6ではJSDKプラットフォーム148が複数存在する例が示されている。このような場合、JSDKプラッとフォーム148ごとにSAS Manager511が設けられる。したがって、SAS411は、各JSDKプラットフォーム148のSAS Manager511を介して、それぞれのJSDKプラットフォーム148上のJSDKアプリ147の制御を行う。したがって、この場合もSDKアプリの管理機構はSAS411に統合されている。
FIG. 6 is a diagram illustrating a second example of the management mechanism of the CSDK application and the JSDK application. In FIG. 6, the same parts as those in FIG. FIG. 6 shows an example in which a plurality of
更に、図7は、CSDKアプリが存在しない場合のJSDKアプリの管理機構の例を示す図である。図7中、図5又は図6と同一部分には同一符号を付し、その説明は省略する。すなわち、図7では、CSDKアプリは存在せず、複数のJSDKプラットフォーム148が存在する場合に、各プラットフォーム上のJSDKアプリの制御を統合的に管理するための機構が示されている。この場合、複数のJSDKプラットフォーム148のうちのいずれか一つのJSDKプラットフォーム148上で動作するSAS Manager511が、他のJSDKプラットフォーム148上のSAS Manager511を介して、当該他のJSDKプラットフォーム148上のJSDKアプリ147の制御を統合的に行えばよい。
Further, FIG. 7 is a diagram illustrating an example of a management mechanism of the JSDK application when no CSDK application exists. In FIG. 7, the same parts as those in FIG. 5 or FIG. That is, FIG. 7 shows a mechanism for managing the control of JSDK applications on each platform in an integrated manner when there is no CSDK application and there are a plurality of
図8は、タッチパネル311(図4参照)に表示される操作画面の画面遷移図である。図8Aの操作画面で機能キー315(図4参照)を押下すると、図8Bの操作画面に遷移する。図8Bの操作画面は、CSDKアプリ146とJSDKアプリ147を操作対象とする操作画面である。図8Bの操作画面で「CSDKアプリ1,2,3」のどれかを指定すると、図8Cの操作画面に遷移する。図8Cの操作画面は、指定されたCSDKアプリ146による操作画面である。一方、図8Bの操作画面で「JSDKアプリ」を指定すると、図8Dの操作画面に遷移する。図8Dの操作画面は、スレッドとして実行されているJSDKアプリ147を操作対象とする操作画面である。図8Dから図8Eへの画面遷移が表示画面を占有するJSDKアプリ147の「切替」として実施されるので、実行中のJSDKアプリ147のみが図8Dの操作画面の表示対象となり、実行中でないJSDKアプリ147は図8Dの操作画面の表示対象とならない。図8Dの操作画面で「JSDKアプリ1,2,3,4,5,6」のどれかを指定すると、図8Eの操作画面に遷移する。図8Eの操作画面は、指定されたJSDKアプリ147による操作画面である。
FIG. 8 is a screen transition diagram of the operation screen displayed on the touch panel 311 (see FIG. 4). When the function key 315 (see FIG. 4) is pressed on the operation screen of FIG. 8A, the operation screen of FIG. 8B is displayed. The operation screen in FIG. 8B is an operation screen for which the
図8Bの操作画面を表示する機能や、図8B,C,Dの操作画面に画面を遷移する機能は、SCS169(図1参照)が受け持つ。図8Dの操作画面を表示する機能や、図8Eの操作画面に画面を遷移する機能は、Screen Manager512(図11参照)が受け持つ。あるCSDKアプリ146やJSDKアプリ147を図8Bや図8Dの操作画面の表示対象とするには、そのCSDKアプリ146やJSDKアプリ147をインストール操作画面でのインストール操作をもってインストールしておく必要がある。必要がある場合には、起動画面での起動操作をもって起動しておく必要もある。そして、インストール操作画面でのインストール操作や起動画面での起動操作に呼応してCSDKアプリ146やJSDKアプリ147のインストール制御や起動制御を行うのが、SAS411やSAS Manager511である。CSDKアプリ146やJSDKアプリ147のアンインストール制御や起動解除制御についても同様である。
The function of displaying the operation screen of FIG. 8B and the function of changing the screen to the operation screens of FIGS. 8B, C, and D are handled by the SCS 169 (see FIG. 1). The screen manager 512 (see FIG. 11) is responsible for the function of displaying the operation screen of FIG. 8D and the function of shifting the screen to the operation screen of FIG. 8E. In order for a
(OSGi)
図9は、JSDKプラットフォーム及びJSDKアプリの詳細について説明するための図である。本実施の形態におけるJSDKプラットフォーム148は、OSGi(Open Service Gateway initiative)サービスプラットフォームに準拠している。OSGiサービスプラットフォームは、OSGiアライアンスによる標準化技術であり、Java(登録商標)言語に基づいたオープンなソフトウェア部品化技術である。OSGiサービスプラットフォームが実装された機器では、Java(登録商標)言語のソフトウェアは「バンドル(Bundle)」と言うソフトウェア部品の形で実装される。そして、該機器の諸機能はバンドルをもって構成する事ができると共に、該機器の諸機能のアップデートやカスタマイズやメンテナンスはバンドルのダウンロードをもって実現する事ができる。
(OSGi)
FIG. 9 is a diagram for explaining the details of the JSDK platform and the JSDK application. The
図9において、OSGiフレームワーク403及びOSGiサービス402は、JSDKプラットフォーム148をOSGiプラットフォームとして機能させるためのものである。OSGiフレームワーク403は、バンドルの管理及び制御(バンドルのライフサイクルやデータの管理等)を行う。OSGiサービス402は、バンドルに対して各種のサービスを提供するライブラリ群である。
In FIG. 9, an
このように、JSDKプラットフォーム148は、OSGiサービスプラットフォームとして機能するため、その上で動作するアプリケーション(すなわちJSDKアプリ147)は、バンドルとして実装されうる。図中においても、JSDKアプリ147の一部がバンドル407として実装されている様子が示されている。OSGiサービスプラットフォームにおいて、各バンドルにはBundle Activator4071が実装されることになっている。Bundle Activator4071は、OSGiフレームワーク403にバンドルを管理及び制御させるためのインフェースを提供する。すなわち、OSGiフレームワーク403は、各バンドルのBundle Activator4071を呼び出すことにより、当該バンドルの管理及び制御を行う。なお、本実施の形態においてバンドル407を総称する場合、OSGiアプリ401という。
Thus, since the
更に、本実施の形態における融合機101は、JSDKアプリ147として、バンドル以外のアプリケーションの実行も可能とされている。本実施の形態では、かかるアプリケーションとしてXlet406を採用した例を示す。図中のJSDKプラットフォーム148において、JSDKシステムサービス405は、Xlet406に対して各種サービスを提供するものである。JSDKシステムサービス405には、XletBundleActivator404、MultiXletManager532、InstallManager545等のクラスが含まれる。
Furthermore, the multifunction peripheral 101 according to the present embodiment can execute an application other than the bundle as the
XletBundleActivator404は、OSGiフレームワーク403に対して、Xlet406をバンドルとして見せるためのモジュールである。MultiXletManager532は、各Xlet406のライフサイクル等を管理する。InstallManager545は、Xlet406について、SDcardやWebからのインストールやアンインストールの管理を行う。
The
なお、CVM555は、Java(登録商標)の実行環境を実現する仮想マシンである。
The
XletBundleActivator404について更に詳しく説明する。Xlet406は、バンドルとして実装されていないため、そのままではOSGiフレームワーク403によって管理等することができない。そうすると、JSDKアプリ147において、バンドル407として実装されたアプリケーションとXlet406として実装されたアプリケーションとの管理機構を別個に設けなければならず、JSDKプラットフォーム148の構成が複雑化してしまう。したがって、OSGiフレーム403によって全てのJSDKアプリ147の管理等が一元的に行われることが望まれる。そこで、OSGiフレームワーク403が、Xlet406をバンドル407と同様のインタフェースによって管理できるようXletBundleActivator404が設けられている。具体的には、XletBundleActivator404は、それぞれのバンドル407に実装されているBundel Activatorと同様のインタフェースをOSGiフレームワーク404に対して提供する。XletBundleActivator404は、OSGiフレームワーク403による当該インタフェーの呼び出しに応じ、Xlet406において当該インタフェースに対応したインタフェースを呼び出す。すなわち、XletBundleActivator404は、OSGiフレームワーク403が解釈可能なインタフェースと、Xlet406が解釈可能なインタフェースとの仲介を行うことにより、Xlet406のライフサイクル管理等の仲介を行うのである。このように、XletBundleActivator404によって、バンドルであるかXletであるかを問わず、OSGiフレームワーク403によるJSDKアプリ147の管理の一元化が実現されている。
The
図10は、XletBundleActivatorによるXletのバンドル化の様子を概念的に示す図である。ここで、「バンドル化」とは、OSGiフレームワーク403から見て、Xlet406がバンドル407と同様の制御方法によって制御可能なように構成されることをいう。
FIG. 10 is a diagram conceptually illustrating how Xlet bundles are bundled by the XletBundleActivator. Here, “bundling” means that the
OSGiサービスプラットフォームにおいて、OSGiフレームワークは、バンドルを起動する際、当該バンドルのBundle Activatorに実装されているstart()メソッドを呼び出す。また、バンドルを起動解除させる際、当該バンドルのBundle Activatorに実装されているstop()メソッドを呼び出す。 In the OSGi service platform, when the OSGi framework starts a bundle, it calls a start () method implemented in the bundle activator of the bundle. Further, when the bundle is activated, the stop () method implemented in the bundle activator of the bundle is called.
一方、Xletは、起動及び起動解除を含むライフサイクルを制御するためのメソッドとして、initXlet()、startXlet()、pauseXlet()、及びdestroyXlet()等が実装される。 On the other hand, in the Xlet, initXlet (), startXlet (), pauseXlet (), destroyXlet (), and the like are implemented as methods for controlling a life cycle including activation and deactivation.
図10では、このようなインタフェースの相違が、XletBundleActivator404によって吸収されている様子が示されている。すなわち、OSGiフレームワーク403は、XletBundleActivator404のstart()やstop()を呼び出すことで、Xlet406の起動又は起動解除を要求する。XletBundleActivator404は、これらのメソッドの呼び出しに応じ、Xlet406のinitXlet()、startXlet()、pauseXlet()、及びdestroyXlet()等を呼び出すことにより、Xlet406の起動又は起動解除を実現する。したがって、OSGiフレームワーク403は、JSDKアプリ147が、Xlet406として実装されているか又はバンドル407として実装されているかを意識することなく、各JSDKアプリ147を管理することができる。
FIG. 10 shows a state in which such an interface difference is absorbed by the
このようにJSDKプラットフォーム148においてXletBundleActivator404が実装されているといった構成は、JSDKアプリ147のベンダにとって特に便宜である。例えば、既存のXlet406によるJSDKアプリ147に対して何の変更もせずに、当該Xlet406によるJSDKアプリ147をOSGiフレームワーク403の上で動作させることができるからである。
The configuration in which the
ところで、バンドルとXletとの状態遷移は異なっており、その相違が両者のインタフェースの相違にも現れている。したがって、かかる状態遷移の整合性が図られてこそ、Xletのバンドル化が実現されるといえる。本実施の形態において、両者の状態遷移の整合性がどのように図られているか、以下に説明する。 By the way, the state transition between the bundle and the Xlet is different, and the difference also appears in the difference in the interface between the two. Therefore, it can be said that Xlet bundling is realized only when the state transitions are consistent. In the present embodiment, how the consistency of both state transitions is achieved will be described below.
図11は、バンドルの状態遷移図である。 FIG. 11 is a state transition diagram of a bundle.
バンドルの状態には、インストール状態(INSTALLED)や、アンインストール状態(UNINSTALLED)や、有効状態(ACTIVE)や、無効状態(RESOLVED)や、起動処理中状態(STARTING)や、起動解除処理中状態(STOPPING)等が存在する。バンドルの状態は、インストール(install)や、アンインストール(uninstall)や、アップデート(update)や、起動(start)や、起動解除(stop)等により遷移する。バンドルのライフサイクルとは、このようなバンドルの状態遷移にほかならない。バンドルのライフサイクルは、OSGiフレームワーク403により管理される。
The bundle status includes an install status (INSTALLED), an uninstall status (UNINSTALLED), a valid status (ACTIVE), an invalid status (RESOLVED), a startup processing status (STARTING), and a startup release processing status (STARTING). STOPPING) and the like. The state of the bundle changes due to installation (install), uninstallation (uninstall), update (update), activation (start), activation cancellation (stop), and the like. The life cycle of a bundle is nothing but the state transition of such a bundle. The life cycle of the bundle is managed by the
インストール状態は、バンドルのインストールの直後の状態である。アンインストール状態は、バンドルのアンインストールの直後の状態である。有効状態は、バンドルが起動中の状態である。無効状態は、バンドルが起動解除中の状態である。起動処理中状態は、バンドルの起動処理を実行中の状態である。起動解除処理中状態は、バンドルの起動解除処理を実行中の状態である。 The installation state is a state immediately after the bundle installation. The uninstall state is a state immediately after the bundle is uninstalled. The valid state is a state in which the bundle is being activated. The invalid state is a state in which the bundle is being released from activation. The activation process in progress state is a state in which the bundle activation process is being executed. The activation cancellation processing state is a state in which the bundle activation cancellation processing is being executed.
図12は、Xletの状態遷移図である。 FIG. 12 is a state transition diagram of Xlet.
Xletの状態には、初期化状態(Loaded)や、停止状態(Paused)や、活性化状態(Active)や、終了状態(Destroyed)が存在する。Xletの状態は、起動(initXlet)や、開始(startXlet)や、停止(pauseXlet)や、終了(destroyXlet)により遷移する。Xletのライフサイクルとは、このようなXletの状態遷移にほかならない。XletであるJSDKアプリ147のライフサイクルは、JSDKプラットフォーム148により管理される。
The Xlet state includes an initialization state (Loaded), a stopped state (Paused), an activation state (Active), and an end state (Destroyed). The state of Xlet is changed by activation (initXlet), start (startXlet), stop (pauseXlet), or termination (destroyXlet). The life cycle of Xlet is nothing but the state transition of Xlet. The life cycle of the
初期化状態は、Xletインスタンスの生成直後の状態である。停止状態は、サービス提供停止中の状態である。活性化状態は、サービス提供中の状態である。終了状態は、Xletインスタンスの消滅直後の状態である。初期化状態や終了状態への遷移は1度だけ可能であり、停止状態と活性化状態との間の遷移は何度でも可能である。 The initialization state is a state immediately after the generation of the Xlet instance. The stop state is a state in which service provision is stopped. The activated state is a state in which service is being provided. The end state is a state immediately after the Xlet instance disappears. The transition to the initialization state or the end state is possible only once, and the transition between the stop state and the activation state is possible any number of times.
図13は、バンドル化されて管理されるXletの状態遷移図である。 FIG. 13 is a state transition diagram of Xlet managed by being bundled.
Xletがバンドル化されて管理される場合には、Xletの初期化状態,停止状態,活性化状態,終了状態はバンドルの有効状態に入る事になる。即ち、バンドルの有効状態として、Xletの初期化状態,停止状態,活性化状態,終了状態が存在する事になる。このように、Xlet406の状態遷移をバンドルの状態遷移にマッピングすることで、OSGiフレームワーク403上において、Xlet406は、バンドル407と同様の状態遷移を実現する。
When Xlet is bundled and managed, the initialization state, stop state, activation state, and end state of Xlet enter the valid state of the bundle. That is, there are an Xlet initialization state, a stop state, an activation state, and an end state as valid states of the bundle. In this way, by mapping the state transition of the
次に、OSGiフレームワーク403上において、Xlet406とバンドル401とのインストール及びアンインストール処理、並びに起動及び起動解除処理が、どのように整合性がとられているかについてシーケンス図を用いて説明する。
Next, how the
まず、インストール及びアンインストール処理について説明する。図14は、バンドルのインストール処理及びアンインストール処理を説明するためのシーケンス図である。 First, installation and uninstallation processing will be described. FIG. 14 is a sequence diagram for explaining bundle installation processing and uninstallation processing.
SAS411が、タッチパネル311に表示させている操作画面を介して、JSDKアプリ147のインストールの指示をユーザより受け付けると、SAS411は、SASManager511にインストールの実行を要求する(S11)。JSDKアプリ147のインストールはSASManager511によって制御されるからである。SASManager511は、操作画面において選択されているインストール元(例えば、WebサイトやSDカード等)よりインストール可能なJSDKアプリ147を検索するようInstallManager545に要求する(S12)。InstallManager545は、当該インストール可能なJSDKアプリ147を検索し、検索結果をSASManager511に返却する(S13)。SASManager511は、検索結果として取得されたJSDKアプリ147の一覧の中からユーザによって選択されたJSDKアプリ147がバンドル407として実装されたものである場合は、当該バンドル407のインストールをOSGiフレームワーク403に要求する(S14)。OSGiフレームワーク403は、インストール対象とされたバンドル407のBundle Activator4071に対してインストールを要求する(S15)。その要求に基づいて、バンドル407は融合機101にインストールされる。
When the
一方、SAS411が、タッチパネル311に表示させている操作画面を介して、JSDKアプリ147のアンインストールの指示をユーザより受け付けると、SAS411は、SASManager511にアンインストールの実行を要求する(S21)。SASManager511は、融合機101にインストールされているJSDKアプリ147の検索をInstallManager545に要求する(S22)。InstallManager545は、インストールされているJSDKアプリ147を検索し、検索結果をSASManager511に返却する(S23)。SASManager511は、検索結果として取得されたJSDKアプリ147の一覧の中からユーザによって選択されたJSDKアプリ147がバンドル407である場合は、当該バンドル407のアンインストールをOSGiフレームワーク403に要求する(S24)。OSGiフレームワーク403は、アンインストールの対象とされたバンドル407のBundle Activator4071に対してアンインストールを要求する(S25)。その要求に基づいて、バンドル407は融合機101からアンインストールされる。
On the other hand, when the
また、図15は、バンドル化されたXletのインストール処理及びアンインストール処理を説明するためのシーケンス図である。図15において、ステップS31〜S33は、図14におけるステップS11〜S23と同様であるためここでの説明は省略する。 FIG. 15 is a sequence diagram for explaining bundled Xlet installation processing and uninstallation processing. In FIG. 15, steps S31 to S33 are the same as steps S11 to S23 in FIG.
SASManager511は、検索結果として取得されたJSDKアプリ147の一覧の中からユーザによって選択されたJSDKアプリ147がXlet406として実装されたものである場合は、当該Xlet406のインストールをInstallManager545に要求する(S34)。InstallManager545は、XletBundleActivator404のクラスファイルをコピーすることにより、インストール対象とされたXlet406に対するXletBundleActivator404を生成する(S35、S36)。すなわち、XletBunleActivator404のクラスファイルは、Xlet406ごとに必要とされるが、その実装内容は共通のものでよいため、予め用意されているクラスファイルを単にコピーすることでインストール対象とされたXlet406に対するXletBundleActivator404が生成されるのである。続いて、InstallManager545は、Xlet406を融合機101にインストールする(S37)。Xlet406のインストールが正常に行われると、SASManager511は、OSGiフレームワーク403に、バンドル化されたXlet406のインストールを要求する(S38)。この呼び出しは、図14におけるステップS14に相当する。この場合、OSGiフレームワーク403は、インストール対象がXlet406であることは関知しない。したがって、バンドル407のインストールが要求された場合と同様の処理を実行する。ここでは、OSGiフレームワーク403には、XletBunldleActivator404が、図14におけるBundle Activator4071と同様に見えている。したがって、OSGiフレームワーク403は、XletBundleActivator404に対してインストールを要求する(S39)。但し、Xlet406は既にインストールされているため、ここではXlet406ではなくXletBundleActivator404がインストールされる。
If the
図15において、ステップS41以降は、Xlet406のアンインストール処理を示すものである。ステップS41〜S43は、図14におけるステップS21〜S23と同様であるためここでの説明は省略する。SASManager511は、検索結果として取得されたJSDKアプリ147の一覧の中からユーザによって選択されたJSDKアプリ147がXlet406である場合は、当該Xlet406のアンインストールをInstallManager545に要求する(S44)。InstallManger545は、アンインストールの対象とされたXlet406をアンインストールする(S45)。Xlet406のアンインストールが正常に行われると、SASManager511は、OSGiフレームワーク403に、バンドル化されたXlet406のアンインストールを要求する(S46)。この呼び出しは、図14におけるステップS24に相当する。この場合、OSGiフレームワーク403は、アンインストール対象がXlet406であることは関知しない。したがって、バンドル407のアンインストールが要求された場合と同様の処理を実行する。ここでは、OSGiフレームワーク403には、XletBunldleActivator404が図14におけるBundle Activator4071と同様に見えている。したがって、OSGiフレームワーク403は、XletBundleActivator404に対してアンインストールを要求する(S47)。但し、Xlet406は既にアンインストールされているため、ここではXlet406ではなくXletBundleActivator404がアンインストールされる。
In FIG. 15, steps after step S <b> 41 indicate an uninstall process for
このように、本実施の形態における融合機101では、OSGiフレームワーク403から見て、バンドル407とXlet406のインストール及びアンインストール処理が同様の手順によって行われる。すなわち、図14におけるOSGiフレームワーク403に対する呼び出し(S14、S24)と、図15におけるOSGiフレームワーク403に対する呼び出し(S38、S46)とは整合性がとられている。また、図14におけるOSGiフレームワーク403による呼び出し(S15、S25)と、図15におけるOSGiフレームワーク403による呼び出し(S39、S47)とは整合性がとられている。したがって、OSGiフレームワーク403は、バンドル407とXlet406との違いを意識することなく、そのインストール及びアンインストールを実現しているといえる。
As described above, in the
次に、起動及び起動解除処理について説明する。図16は、バンドルの起動処理及び起動解除処理を説明するためのシーケンス図である。 Next, activation and activation cancellation processing will be described. FIG. 16 is a sequence diagram for explaining bundle activation processing and activation cancellation processing.
SAS411が、タッチパネル311に表示させている操作画面を介して、JSDKアプリ147の起動の指示をユーザより受け付けると、SAS411はSASManager511に起動の実行を要求する(S51)。JSDKアプリ147の起動はSASManager511によって制御されるからである。SASManager511は、融合機101にインストールされているJSDKアプリ147を検索するようInstallManager545に要求する(S52)。InstallManager545は、インストールされているJSDKアプリ147を検索し、検索結果をSASManager511に返却する(S53)。SASManager511は、検索結果として取得されたJSDKアプリ147の一覧の中から、ユーザによって選択されたJSDKアプリ147の起動をOSGiフレームワーク403に要求する(S54)。OSGiフレームワーク403は、起動対象とされたバンドル407のBundle Activator4071のstart()メソッドを呼び出すことによりバンドル407を起動させる(S55)。
When the
一方、SAS411が、タッチパネル311に表示させている操作画面を介して、JSDKアプリ147の停止(起動解除)の指示をユーザより受け付けると、SAS411は、SASManager511にJSDKアプリ147の停止の実行を要求する(S61)。SASManager511は、融合機101にインストールされているJSDKアプリ147の検索をInstallManager545に要求する(S62)。InstallManager545は、インストールされているJSDKアプリ147を検索し、検索結果をSASManager511に返却する(S63)。SASManager511は、検索結果として取得されたJSDKアプリ147の一覧の中からユーザによって選択されたJSDKアプリ147の停止をOSGiフレームワーク403に要求する(S64)。OSGiフレームワーク403は、停止対象とされたバンドル407のBundle Activator4071のstop()メソッドを呼び出すことにより当該バンドル407を停止させる(S65)。
On the other hand, when the
また、図17は、バンドル化されたXletの起動処理及び起動解除処理を説明するためのシーケンス図である。図17において、ステップS71〜S74は図16におけるステップS51〜S54と同様であるためここでの説明は省略する。 FIG. 17 is a sequence diagram for explaining bundled Xlet activation processing and activation cancellation processing. In FIG. 17, steps S71 to S74 are the same as steps S51 to S54 in FIG.
OSGiフレームワーク403は、起動対象とされたXlet406に対応するXletBundleActivator404のstart()メソッドを呼び出す(S75)。但し、OSGiフレームワーク403は、起動対象がXlet406であることは意識していない。OSGiフレームワーク403には、XletBundleActivator404が、図16におけるBundle Activator401と同様に見えており、図16のステップS55においてBundleActivator404のstart()メソッドを呼び出す場合と同様に、XletBundleActivator404のstart()メソッドを呼び出しているだけである。start()メソッドを呼び出されたXletBundleActivator404は、MultiXletManager532のcreateXlet()メソッドを呼び出すことにより、Xlet406の起動(生成)を要求する(S76)。MultiXletManager532は、Xlet406のinitXlet()メソッドを呼び出すことによりXlet406を初期化し(S77)、更に、startXlet()メソッドを呼び出すことによりXlet406を起動させる(S78)。
The
図17において、ステップS81以降は、Xlet406の起動解除処理を示すものである。図中ステップS81〜S84は、図16におけるステップS61〜S64と同様であるためここでの説明は省略する。OSGiフレームワーク403は、停止対象とされたXlet406に対応するXletBundleActivator404のstop()メソッドを呼び出す(S85)。但し、OSGiフレームワーク403は、停止対象がXlet406であることは意識していない。すなわち、図16のステップS65においてBundleActivator404のstop()メソッドを呼び出す場合と同様に、XletBundleActivator404のstop()メソッドを呼び出しているだけである。stop()メソッドを呼び出されたXletBundleActivator404は、MultiXletManager532のdestroyXlet()メソッドを呼び出すことにより、Xlet406の停止(破棄)を要求する(S86)。MultiXletManager532は、Xlet406のdestroyXlet()メソッドを呼び出すことによりXlet406停止させる(S87)。
In FIG. 17, steps after step S <b> 81 indicate activation release processing of
このように、本実施の形態における融合機101では、OSGiフレームワーク403から見て、バンドル407とXlet406の起動及び起動解除処理が同様の手順によって行われる。すなわち、図16におけるOSGiフレームワーク403に対する呼び出し(S54、S64)と、図17におけるOSGiフレームワーク403に対する呼び出し(S74、S84)とは整合性がとられている。また、図16におけるOSGiフレームワーク403による呼び出し(S55、S65)と、図17におけるOSGiフレームワーク403による呼び出し(S75、S85)とは整合性がとられている。したがって、OSGiフレームワーク403は、バンドル407とXlet406との違いを意識することなく、その起動及び起動解除を実現しているといえる。
As described above, in the
(JSDK)
図18は、図1のJSDKアプリ147とJSDKプラットフォーム148のクラス図である。JSDKアプリ147とJSDKプラットフォーム148は、全体で1プロセスとして、同一のプロセス上で実行される。JSDKアプリ147とJSDKプラットフォーム148中の各ブロックは、それぞれ1プロセス上のスレッドとして、スレッド単位で並列的に実行(マルチスレッド)される。JSDKアプリ147とJSDKプラットフォーム148は、Java(登録商標)コンパイラによりソースコードからバイトコードに一括翻訳されており、Java(登録商標)仮想マシンにより逐次実行される。JSDKアプリ147とJSDKプラットフォーム148は「Java(登録商標) 2 Micro Edition」の「Foundation Profile」がベースとなっている。
(JSDK)
FIG. 18 is a class diagram of the
JSDKアプリ147としては、図に示す通り、ユーザアプリ501と、SAS Manager511と、Screen Manager512等が存在する。
As shown in the figure, the
ユーザアプリ501は、融合機101のユーザ(例えばベンダ)がJSDKを使用して開発したJSDKアプリ147である。SAS Manager511は、他のJSDKアプリ147(ユーザアプリ501等)の制御等を行うJSDKアプリ147である。Screen Manager512は、他のJSDKアプリ147(ユーザアプリ501等)を操作対象とする操作画面の表示等を行うJSDKアプリ147である。
The
ユーザアプリ501はここでは、スタンドアロンアプリケーションやアプレットと並ぶJava(登録商標)アプリケーションの一種であるXletである。SAS Manager511とScreen Manager512はここでは、独自の拡張を施したXlet(XletEx)である。
Here, the
JSDKプラットフォーム148には、図に示す通り、JSDK Environment521と、Xlet Manager531と、Multi Xlet Manager532と、Send Manager541と、Event Manager542と、System Event Manager543と、Panel Manager544と、Install Manager545と、Server/Client Manager546等のクラスが存在する。
As shown in the figure, the
JSDK Environment521は、JSDKシステムの実行環境を反映したJSDKシステムの起動環境設定を実行するクラスである。
The
Xlet Manager531は、1対1でXletを管理するクラスである。ここでは、5個のXletのライフサイクルやデータがそれぞれ1対1で5個のXlet Manager531によって管理される。Multi Xlet Manager532は、全てのXlet Manager531を管理するクラスである。ここでは、5個のXlet Manager531のライフサイクルやデータが全て1個のMulti Xlet Manager532によって管理される。なお、SAS Manager511,Screen Manager512,JSDK Environment521,Multi Xlet Manager532,Send Manager541,Event Manager542,System Event Manager543,Panel Manager544,Install Manager545,Server/Client Manager546の「バンドル」のライフサイクルやデータは、OSGiフレームワーク403によって管理される。
The
System Event Manager543は、図1のプラットフォーム132からのシステムイベント(電力モード等)の管理を行うクラスである。Panel Manager544は、1個のXletがオペレーションパネル202の画面を占有する際の調停を行うクラスである。Install Manager545は、SDcardやWebからのインストールやアンインストールの管理を行うクラスである。
The
図18のJSDKシステムでは、JSDK API551とJSDK API552がAPIとして利用される。なお、XletとXletExの差異として、オブジェクトにアクセスするのにJSDK API551の利用とJSDKプラットフォーム148へのアクセスが可能である点が挙げられる。図1の融合機101には更に、図18のJSDKシステムに係る要素として、C言語とJava(登録商標)言語のインタフェースとなるJSDK Session553とNative JSDK Session554や、JSDKアプリ147とJSDKプラットフォーム148を実行するためJava(登録商標)仮想マシンであるCVM555が存在する。
In the JSDK system of FIG. 18, the
図19は、JSDKシステムの起動処理に関するクラス図である。JSDKシステムの起動処理では先ず、OSGiフレームワーク403が、OSGiアプリ401やOSGiサービス402を構成するバンドルを生成(S1)する。次に、OSGiフレームワーク403が、JSDKアプリ147やJSDKプラットフォーム148を構成するバンドルを生成(S2)する。次に、JSDK Environment521が、JSDK Session553やNative JSDK Session554を生成するなど、JSDKシステムの実行環境を反映したJSDKシステムの起動環境設定を実行(S3)する。次に、JSDK Session553が、Send Manager541やEvent Manager542を生成(S4)する。なお、ユーザアプリ501の起動処理に関してはSAS411やSAS Manager511が関与(S5)する。
FIG. 19 is a class diagram relating to the startup process of the JSDK system. In the startup process of the JSDK system, first, the
(エミュレータ)
図20は、本発明の実施例に該当するPC(パーソナルコンピュータ)701を表す。図20のPC701は、図1の融合機101とネットワーク801で接続されており、図1の融合機101のエミュレータとして機能する。
(emulator)
FIG. 20 shows a PC (personal computer) 701 corresponding to an embodiment of the present invention. A
図20のPC701は、PC本体711と、キーボード712と、マウス713と、ディスプレイ714等により構成される。PC本体711には、CPU、ROM、RAM、NVRAM、HDD、MODEM、NIC等が存在する。キーボード712とマウス713は、融合機101のオペレーションパネル202に代わって、オペレータが入力を行うためのハードウェア(操作部)となる。ディスプレイ714は、融合機101のオペレーションパネル202に代わって、オペレータが出力を得るためのハードウェア(表示部)となる。
20 includes a PC
図21は、図20のPC701内のJSDKアプリ147とJSDKプラットフォーム148のクラス図である。図1の融合機101と同様のJSDKアプリ147,JSDKプラットフォーム148,OSGiアプリ401,OSGiサービス402,OSGiフレームワーク403が、図20のPC701内にも存在するのである。図1の融合機101内のJSDKアプリ147とJSDKプラットフォーム148のクラス図については、図18を参照されたい。以下、図18と図21の差異について説明する。
FIG. 21 is a class diagram of the
第1に、図18のSAS411は、図21のSAS Emulator611に置換される。第2に、図18のPanel Manager544は、図21のPanel Manager Emulator744に置換される。第3に、図18のJSDK Session553は、図21のEmulator JSDK Session753に置換される。第4に、図18のNative JSDK Session554は、図21のEvent Emulator754に置換される。第5には、図18のCVM555は、図21のJVM755に置換される。
First, the
SAS Emulator611は、他のCSDKアプリ146の制御を行うCSDKアプリ146であり、融合機101内やPC701内のSAS Manager511を介してJSDKアプリ147の制御(図中の矢印Aや矢印B)を行う事もできる。Panel Manager Emulator744は、Panel Manager544をエミュレートして、オペレーションパネル202の操作をキーボード712やマウス713の操作に変換するクラスである。Emulator JSDK Session753は、通信経路の確立処理を実行するクラスである。Event Emulator754は、融合機101の動作をエミュレートするクラスである。JVM755は、JSDKアプリ147,JSDKプラットフォーム148,OSGiアプリ401,OSGiサービス402,OSGiフレームワーク403を実行するためのJava(登録商標)仮想マシンである。
The SAS emulator 611 is a
なお、図20のPC701内のJSDKシステムの起動処理に関しては、図19と同様である。また、図20のPC701では図1の融合機101の遠隔操作を行う事ができるのだが、図20のPC701にて図1の融合機101の遠隔操作を行うに際しては、図1の融合機101内のJSDKシステムの起動処理は図22や図23のように実施される。
Note that the startup processing of the JSDK system in the
第1に、図19のS3の処理の代わりとして、融合機101内のJSDK Environment521が、PC701内のJSDKプラットフォーム148を登録(S3)する。第2に、図19のS4の処理の代わりとして、融合機101内のOSGiフレームワーク403が、PC701内のServer/Client Manager546を登録(S4)する。
First, as an alternative to the process of S3 in FIG. 19, the
図22では、ユーザアプリ501の起動処理にPC701内のSAS Emulator611が関与するため、図22のS4の処理では、融合機101内のOSGiフレームワーク403が、PC701内のSAS Emulator611を登録する。
In FIG. 22, the
図23では、ユーザアプリ501の起動処理に融合機101内のSAS411が関与するため、図23のS4の処理では、融合機101内のOSGiフレームワーク403は、PC701内のSAS Emulator611を登録しない。
In FIG. 23, the
なお、図5から図17による説明事項については、図1の融合機101についてと同様に、図20のPC701についても成り立つ。ただし、SAS411はSAS Manager611に読み替えるものとする。
5 to FIG. 17 is applicable to the
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 XletBundleActivator
405 JSDKシステムサービス
406 Xlet
407 バンドル(Bundle)
411 SAS
501 ユーザアプリ
511 SAS Manager
512 Screen Manager
521 JSDK Environment
531 Xlet Manager
532 Multi Xlet Manager
541 Send Manager
542 Event Manager
543 System Event Manager
544 Panel Manager
545 Install Manager
546 Server/Client Manager
551 JSDK API
552 JSDK API
553 JSDK Session
554 Native JSDK Session
555 CVM
611 SAS Emulator
701 PC
711 PC本体
712 キーボード
713 マウス
714 ディスプレイ
744 Panel Manager Emulator
753 Emulator JSDK Session
754 Event Emulator
755 JVM
801 ネットワーク
4071 Bundle Activator
DESCRIPTION OF
212 ASIC
221 NB
222 SB
231 MEM-P
232 MEM-C
233 HDD
234
242
322
405
407 Bundle
411 SAS
501
512 Screen Manager
521 JSDK Environment
531 Xlet Manager
532 Multi Xlet Manager
541 Send Manager
542 Event Manager
543 System Event Manager
544 Panel Manager
545 Install Manager
546 Server / Client Manager
551 JSDK API
552 JSDK API
553 JSDK Session
554 Native JSDK Session
555 CVM
611 SAS Emulator
701 PC
711 PC main body 712
753 Emulator JSDK Session
754 Event Emulator
755 JVM
801
Claims (13)
前記第一のアプリケーションと同一のインタフェースを前記バンドル制御手段に対して提供し、前記バンドル制御手段による前記インタフェースの呼び出しに応じてバンドルとして実装されていない第二のアプリケーションの制御を仲介する制御仲介手段を有することを特徴とする画像形成装置。 An image forming apparatus including a bundle control unit that controls a first application implemented as a bundle,
Control mediation means for providing the same interface as the first application to the bundle control means, and mediating control of the second application not implemented as a bundle in response to the interface call by the bundle control means An image forming apparatus comprising:
前記制御仲介手段は、前記バンドル制御手段による前記インタフェースの呼び出しに応じて前記ライフサイクル制御手段に前記第二のアプリケーションのライフサイクルを制御させることを特徴とする請求項1乃至3いずれか一項記載の画像形成装置。 Having a life cycle control means for controlling the life cycle of the second application;
The said control mediation means makes the said life cycle control means control the life cycle of said 2nd application according to the call of the said interface by the said bundle control means, The Claim 1 thru | or 3 characterized by the above-mentioned. Image forming apparatus.
前記第一のアプリケーションと同一のインタフェースを前記バンドル制御手段に対して提供し、前記バンドル制御手段による前記インタフェースの呼び出しに応じてバンドルとして実装されていない第二のアプリケーションの制御を仲介する制御仲介手段を有することを特徴とする情報処理装置。 An information processing apparatus that functions as an emulator of an image forming apparatus and includes a bundle control unit that controls a first application implemented as a bundle,
Control mediation means for providing the same interface as the first application to the bundle control means, and mediating control of the second application not implemented as a bundle in response to the interface call by the bundle control means An information processing apparatus comprising:
前記第一のアプリケーションと同一のインタフェースを前記バンドル制御手段に提供する制御仲介手段が、前記バンドル制御手段による前記インタフェースの呼び出しに応じてバンドルとして実装されていない第二のアプリケーションの制御を仲介することを特徴とする情報処理方法。 An information processing method executed by an image forming apparatus provided with a bundle control unit that controls a first application implemented as a bundle,
Control mediation means for providing the same interface as the first application to the bundle control means mediates control of a second application that is not implemented as a bundle in response to the interface call by the bundle control means. An information processing method characterized by the above.
前記第一のアプリケーションと同一のインタフェースを前記バンドル制御手段に提供する制御仲介手段が、前記バンドル制御手段による前記インタフェースの呼び出しに応じてバンドルとして実装されていない第二のアプリケーションの制御を仲介することを特徴とする情報処理方法。 An information processing method executed by an information processing apparatus including a bundle control unit that functions as an emulator of an image forming apparatus and controls a first application implemented as a bundle,
Control mediation means for providing the same interface as the first application to the bundle control means mediates control of a second application that is not implemented as a bundle in response to the interface call by the bundle control means. An information processing method characterized by the above.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006158707A JP2007048270A (en) | 2005-07-11 | 2006-06-07 | Image forming apparatus, information processing apparatus, information processing method, information processing program, and recording medium |
| US11/477,656 US8264717B2 (en) | 2005-07-11 | 2006-06-30 | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
| US13/564,424 US8767244B2 (en) | 2005-07-11 | 2012-08-01 | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005202152 | 2005-07-11 | ||
| JP2006158707A JP2007048270A (en) | 2005-07-11 | 2006-06-07 | Image forming apparatus, information processing apparatus, information processing method, information processing program, and recording medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2007048270A true JP2007048270A (en) | 2007-02-22 |
Family
ID=37851012
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006158707A Pending JP2007048270A (en) | 2005-07-11 | 2006-06-07 | Image forming apparatus, information processing apparatus, information processing method, information processing program, and recording medium |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2007048270A (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007049677A (en) * | 2005-07-11 | 2007-02-22 | Ricoh Co Ltd | Image forming apparatus, information processing apparatus, information processing method, information processing program, and recording medium |
| JP2009294773A (en) * | 2008-06-03 | 2009-12-17 | Ricoh Co Ltd | Information processor, information processing method, information processing program and recording medium |
| JP2011123570A (en) * | 2009-12-08 | 2011-06-23 | Sumitomo Electric Ind Ltd | Information-processing device, server device, distribution system, receiving method and program module providing method |
| US8713561B2 (en) | 2011-08-08 | 2014-04-29 | Ricoh Company, Ltd. | Device, information processing method, and computer-readable storage medium |
| US9009280B2 (en) | 2008-05-08 | 2015-04-14 | Ricoh Company, Ltd. | Equipment management device, equipment management system, equipment management method, and recording medium |
| US9274776B2 (en) | 2010-09-16 | 2016-03-01 | Ricoh Company, Ltd. | Product, method, and apparatus for installing a second program based on a call from a first program |
| US9286141B2 (en) | 2009-08-11 | 2016-03-15 | Ricoh Company, Ltd. | Image forming apparatus, program management system, program management method, and computer-readable storage medium |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0954685A (en) * | 1995-03-31 | 1997-02-25 | Sun Microsyst Inc | Method and apparatus for generating distributed objects and installing distributed objects in a distributed object system |
| JP2001092664A (en) * | 1999-09-24 | 2001-04-06 | Toshiba Corp | Computer-readable recording medium recording object computer system and program |
| JP2004185594A (en) * | 2002-07-26 | 2004-07-02 | Ricoh Co Ltd | Image forming apparatus and program execution method |
| WO2004068792A1 (en) * | 2003-01-24 | 2004-08-12 | Robert Bosch Gmbh | Method and device for controlling havi standard devices by device control modules of an osgi platform |
| JP2004318459A (en) * | 2003-04-16 | 2004-11-11 | Alpine Electronics Inc | Life time management method for native application in virtual system and computer program |
| JP2005063449A (en) * | 2003-08-19 | 2005-03-10 | Toshiba Corp | Method and apparatus for Java native interface mapping from object to object |
-
2006
- 2006-06-07 JP JP2006158707A patent/JP2007048270A/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0954685A (en) * | 1995-03-31 | 1997-02-25 | Sun Microsyst Inc | Method and apparatus for generating distributed objects and installing distributed objects in a distributed object system |
| JP2001092664A (en) * | 1999-09-24 | 2001-04-06 | Toshiba Corp | Computer-readable recording medium recording object computer system and program |
| JP2004185594A (en) * | 2002-07-26 | 2004-07-02 | Ricoh Co Ltd | Image forming apparatus and program execution method |
| WO2004068792A1 (en) * | 2003-01-24 | 2004-08-12 | Robert Bosch Gmbh | Method and device for controlling havi standard devices by device control modules of an osgi platform |
| JP2004318459A (en) * | 2003-04-16 | 2004-11-11 | Alpine Electronics Inc | Life time management method for native application in virtual system and computer program |
| JP2005063449A (en) * | 2003-08-19 | 2005-03-10 | Toshiba Corp | Method and apparatus for Java native interface mapping from object to object |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007049677A (en) * | 2005-07-11 | 2007-02-22 | Ricoh Co Ltd | Image forming apparatus, information processing apparatus, information processing method, information processing program, and recording medium |
| US9009280B2 (en) | 2008-05-08 | 2015-04-14 | Ricoh Company, Ltd. | Equipment management device, equipment management system, equipment management method, and recording medium |
| JP2009294773A (en) * | 2008-06-03 | 2009-12-17 | Ricoh Co Ltd | Information processor, information processing method, information processing program and recording medium |
| US9286141B2 (en) | 2009-08-11 | 2016-03-15 | Ricoh Company, Ltd. | Image forming apparatus, program management system, program management method, and computer-readable storage medium |
| JP2011123570A (en) * | 2009-12-08 | 2011-06-23 | Sumitomo Electric Ind Ltd | Information-processing device, server device, distribution system, receiving method and program module providing method |
| US9274776B2 (en) | 2010-09-16 | 2016-03-01 | Ricoh Company, Ltd. | Product, method, and apparatus for installing a second program based on a call from a first program |
| US8713561B2 (en) | 2011-08-08 | 2014-04-29 | Ricoh Company, Ltd. | Device, information processing method, and computer-readable storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8767244B2 (en) | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium | |
| JP4625343B2 (en) | Image forming apparatus, terminal apparatus, information processing method, information processing program, and recording medium | |
| US8432562B2 (en) | Image processing apparatus, method, program, and computer readable recording medium for controlling operation switching and displaying at occurrence of error conditions | |
| US7812978B2 (en) | Application executing method, information processing apparatus, image forming apparatus, terminal equipment, information processing method and computer-readable storage medium | |
| JP4597834B2 (en) | Image forming apparatus, information processing method, information processing program, and recording medium | |
| JP4843386B2 (en) | Apparatus, 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 | |
| JP5025192B2 (en) | Apparatus, information processing method, information processing program, and recording medium | |
| JP5565439B2 (en) | Apparatus, information processing method, information processing program, and recording medium | |
| JP4832226B2 (en) | 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 | |
| JP5686155B2 (en) | Apparatus, information processing system, information processing method, program, and recording medium | |
| JP2005269439A (en) | Image forming apparatus, information processing method, information processing program, and recording medium | |
| JP5025193B2 (en) | Apparatus, information processing method, information processing program, and recording medium | |
| JP2005267447A (en) | Image forming apparatus and image forming method | |
| JP4862094B2 (en) | Terminal device, information processing method, information processing program, and recording medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090324 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111017 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111025 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111216 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120117 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120316 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120410 |