JP4791910B2 - 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体 - Google Patents

画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体 Download PDF

Info

Publication number
JP4791910B2
JP4791910B2 JP2006224521A JP2006224521A JP4791910B2 JP 4791910 B2 JP4791910 B2 JP 4791910B2 JP 2006224521 A JP2006224521 A JP 2006224521A JP 2006224521 A JP2006224521 A JP 2006224521A JP 4791910 B2 JP4791910 B2 JP 4791910B2
Authority
JP
Japan
Prior art keywords
state
update
bundle
service
faxtx1
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006224521A
Other languages
English (en)
Other versions
JP2007089139A (ja
Inventor
光男 安藤
邦洋 秋吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006224521A priority Critical patent/JP4791910B2/ja
Priority to US11/509,601 priority patent/US8522229B2/en
Publication of JP2007089139A publication Critical patent/JP2007089139A/ja
Application granted granted Critical
Publication of JP4791910B2 publication Critical patent/JP4791910B2/ja
Priority to US13/947,849 priority patent/US8819665B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00026Methods therefor
    • H04N1/00066Methods therefor using a program downloaded or received from another apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00885Power supply means, e.g. arrangements for the control of power supply to the apparatus or components thereof
    • H04N1/00888Control thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00965Input arrangements for operating instructions or parameters, e.g. updating internal software using a plug-in memory module, e.g. memory card, memory stick
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00973Input arrangements for operating instructions or parameters, e.g. updating internal software from a remote device, e.g. receiving via the internet instructions input to a computer terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32561Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32561Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
    • H04N1/32598Bus based systems
    • H04N1/32603Multi-bus systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、コピー/プリンタ/スキャナ/ファクシミリ/複合機/融合機等の画像形成装置、情報処理方法、情報処理プログラム、SDメモリカード等の記録媒体に関する。
近年、コピー機能とプリンタ機能とスキャナ機能とファクシミリ機能を備える複合機や融合機が市販されるようになった。複合機や融合機は、コピーやプリンタとして機能する場合には、画像を印刷用紙に印刷することになり、コピーやスキャナとして機能する場合には、画像を読取原稿から読み取ることになり、ファクシミリとして機能する場合には、画像を電話回線を介して他の機器と授受することになる。
特開2002−84383号公報
近年、複合機や融合機には様々なプログラムが実装される。そして、これらの機器ではこれらのプログラムをアップデートすべき場面も出て来る。機器の機能を拡張する場合やプログラムのバグを修正する場合などである。従来の複合機や融合機では、プログラムのアップデート処理は機器の起動時に実施されるのが通例であった。よって、プログラムをアップデートするには機器を再起動しなければならないという問題点があった。そして、機器の再起動を手動式にすれば、再起動操作をユーザに強制する事になりユーザに操作の負担を掛ける事になるし、だからと言って、機器の再起動を自動式にすれば、再起動処理がユーザの知らぬ間に実施される事になりユーザに心理的な抵抗感が生じる事になる。
本発明は、種々のプログラムが実装される画像形成装置に関して、画像形成装置に実装された種々のプログラムのアップデート処理(更新処理)に関する新たな手法を提案することを課題とする。
そこで上記課題を解決するため、本発明は、互いに排他的に動作する複数のモジュールの接続によって構成されるプログラムを実行する画像形成装置であって、前記プログラムの更新情報の入力を受け付ける入力手段と、前記プログラムの動作状態が、前記更新情報において指定されている更新のタイミングに相当するか否かを判定するタイミング判定手段と、前記タイミング判定手段によって前記更新のタイミングであると判定されたときに、前記更新情報に従って、前記複数のモジュールの接続関係を変更する変更手段とを有することを特徴とする。
このような画像形成装置によれば、種々のプログラムのアップデート処理(更新処理)に関する新たな手法を提案することができる。
本発明は、種々のプログラムが実装される画像形成装置に関して、画像形成装置に実装された種々のプログラムのアップデート処理(更新処理)に関する新たな手法を提案するものである。
図1は、本発明の実施例に該当する融合機101を表す。図1の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。
融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像(画像データ)を読み取るためのハードウェアである。印刷部122は、画像(画像データ)を印刷用紙に印刷するためのハードウェアである。
融合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX(登録商標)等のOS(オペレーティングシステム)によりプロセス単位で並列的に実行される。
アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。
アプリケーション131は、専用のSDK(ソフトウェア開発キット)を使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するための「CSDK」や、Java(登録商標)言語でアプリケーション131を開発するための「JSDK」が提供される。CSDKを使用して開発したアプリケーション131を「CSDKアプリ」と呼び、JSDKを使用して開発したアプリケーション131を「JSDKアプリ」と呼ぶ。図1の融合機101にも、CSDKアプリ146と、JSDKアプリ147が存在する。図1の融合機101にはさらに、Java(登録商標)言語で記述されたJSDKアプリ147とC言語で記述された他のソフトウェア112との仲介を行うソフトウェア112として、JSDKプラットフォーム148が存在する。
プラットフォーム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が存在する。
NCS161のプロセスは、ネットワーク通信の仲介を行う。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。
アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービス(VAS)135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。
融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX(登録商標)等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
図2は、図1の融合機101に係るハードウェア構成図である。融合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。
CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM−P231は、融合機101のシステムメモリである。MEM−C232は、融合機101のローカルメモリである。HDD233は、融合機101のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。
オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア(操作部)であると共に、オペレータが融合機101から出力を得るためのハードウェア(表示部)である。
図3は、図1の融合機101に係る外観図である。図3には、撮像部121の位置と、印刷部122の位置と、オペレーションパネル202の位置が図示されている。図3には更に、読取原稿のセット先となる原稿セット部301と、印刷用紙の給紙先となる給紙部302と、印刷用紙の排紙先となる排紙部303が図示されている。
オペレーションパネル202は、図4のように、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェア(タッチ操作部)であると共に、画面表示で出力を得るためのハードウェア(画面表示部)である。テンキー312は、キー(ボタン)操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、キー(ボタン)操作でCSDKアプリ146やJSDKアプリ147による操作画面を表示させるためのハードウェアである。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。
原稿セット部301は、ADF(自動原稿搬送装置)321と、フラットベッド322と、フラットベッドカバー323により構成される。給紙部302は、4個の給紙トレイにより構成される。排紙部303は、1個の排紙トレイにより構成される。
(CSDK/JSDK/OSGi)
図5は、図1のCSDKアプリ146とJSDKアプリ147のソフトウェア構成図である。CSDKアプリ146は、C言語のアプリケーションであり、それぞれプロセスとして実行される事になる。JSDKアプリ147は、Java(登録商標)言語のアプリケーションであり、それぞれスレッドとして実行される事になる。
図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の起動制御,起動解除制御,インストール制御,アンインストール制御,アップデート制御等を行う。
さて、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に集中しておくのが好適なのである。
図6は、図1の融合機101におけるOSGi(Open Service Gateway initiative)サービスプラットフォームについて説明するための図である。OSGiサービスプラットフォームは、OSGiアライアンスによる標準化技術であり、Java(登録商標)言語に基づいたオープンなソフトウェア部品化技術である。OSGiサービスプラットフォームが実装された機器では、Java(登録商標)言語のソフトウェアは「バンドル」と言うソフトウェア部品の形で実装される。そして、該機器の諸機能はバンドルをもって構成する事ができると共に、該機器の諸機能のアップデートやカスタマイズやメンテナンスはバンドルのダウンロードをもって実現する事ができる。
図1の融合機101には、Java(登録商標)言語のソフトウェアとして、JSDKアプリ147と、JSDKプラットフォーム148と、OSGi用のアプリケーションであるOSGiアプリ401と、OSGi用のサービスであるOSGiサービス402と、バンドルの管理(バンドルのライフサイクルやデータの管理等)を行うOSGiフレームワーク403が存在する。
さて、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(登録商標)言語のアプリケーションの管理先の一元化が実現されている。
なお、OSGiフレームワーク403は、当然の事ながら、OSGiサービス402を構成するバンドルの管理や、JSDKプラットフォーム148を構成するバンドルの管理も行う。Java(登録商標)言語のソフトウェアの管理先の一元化が実現されていると言える。そして、OSGiアプリ401はここではServletかJSPであるものとする。そして、JSDKアプリ147はここではXletであるものとする。
なお、JSDKアプリ147についても、バンドル化された状態で実装するものとしてもよい。さらに、JSDKアプリ147については、バンドル化された状態で実装してもバンドル化されていない状態で実装してもどちらでもよいものとしてもよい。バンドル化された状態で実装されるJSDKアプリ147については、Bundle Activator404によるバンドル化は不要である。
(更新処理)
以下、バンドルとして管理されるJava(登録商標)言語のソフトウェアの更新処理について説明する。先ず、図1の融合機101内のJSDKプラットフォーム(バンドルサービス)148の更新処理について説明して、次に、図1の融合機101内のJSDKアプリ(バンドルアプリ)147の更新処理について説明する。なお、当該融合機101内のJSDKプラットフォーム(バンドルサービス)148やJSDKアプリ(バンドルアプリ)147の更新処理は当該融合機101内のSAS Manager511により実行される。
図7は、バンドルサービス148のオブジェクト構成の具体例を表す。図7のバンドルサービス148は、4個のオブジェクト(モジュール)A/B/C/Dにより構成されている。
さて、オブジェクトA/B/C/Dが相互に関連している場合には、バンドルサービス148の実行中(動作中)にオブジェクトAをオブジェクトA'に入れ替える事は困難である。オブジェクトAが提供するサービスをオブジェクトB/C/Dが利用すべく、オブジェクトAをオブジェクトB/C/Dが参照している可能性があるからである。よって、オブジェクトAをオブジェクトA'に入れ替える場合には、オブジェクトAを入れ替える旨をオブジェクトB/C/Dに通知し、オブジェクトB/C/DがオブジェクトAの参照をオブジェクトA'の参照に切り替える必要がある。したがって、オブジェクトAをオブジェクトA'に入れ替えるなど、バンドルサービス148の更新処理をバンドルサービス148の動作中にバンドルサービス148のモジュール毎に実行するには、従来は融合機101の再起動処理が必要だった。
しかしながら、融合機101は、バンドルサービス148の更新処理をバンドルサービス148の動作中にバンドルサービス148のモジュール毎に実行するのに、融合機101の再起動処理を伴わずに実行する。よって、バンドルサービス148の更新処理を実施するのに、融合機101の再起動操作をユーザに強制する事もなくなるし、融合機101の再起動処理がユーザの知らぬ間に実施される事もなくなるのである。
すなわち、融合機101は、バンドルサービス148の更新処理をバンドルサービス148の更新部分のオブジェクトがアクティブ状態ではないとき(動作中でないとき)に実行する。これによって、融合機101は、再起動処理を伴わずに、バンドルサービス148の更新処理をバンドルサービス148の動作中にバンドルサービス148のモジュール毎に実行する事ができる。
以下、バンドルサービス148の更新処理の具体例として、バンドルサービス「FaxTx1」がバンドルサービス「FaxTx2」に更新される様子について説明する。バンドルサービス「FaxTx1」は、画像データをFAX送信するサービスを提供するバンドルサービス148である。「FaxTx2」は、画像データをPDFからTIFFに変換してFAX送信するサービスを提供するバンドルサービス148である。
図8はバンドルサービス「FaxTx1」の状態遷移図である。FaxTx1の状態としては、初期状態601、終期状態602、Idle状態603、Send状態604が存在する。Idle状態603は、FAX送信処理の待機中の状態である。Send状態604は、FAX送信処理を実行中の状態である。Idle状態603からSend状態604には、送信開始イベント611により遷移する。Send状態604から終期状態602には、送信終了イベント612により遷移する。
図9はバンドルサービス「FaxTx2」の状態遷移図である。FaxTx2の状態としては、初期状態601、終期状態602、Idle状態603、Send状態604に加えて、Transform状態605が存在する。Transform状態605は、PDFからTIFFへの変換処理を実行中の状態である。Idle状態603からTransform状態605には、送信開始イベント611により遷移する。Transform状態605からSend状態604には、変換終了イベント613により遷移する。
状態遷移図に基づいて、本実施の形態におけるバンドルサービス148は、図10に示されるようなクラス群によってモデル化されている。図10は、バンドルサービスを構成するクラス図の一例である。
図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は、状態遷移時に実行するアクションを実装するインタフェースである。
StateVertexクラス1002のサブクラスとしては、Stateクラス1004及びPseudoStateクラス1005が定義されている。Stateクラス1004は、例えば、バンドルサービス148に応じて定義される状態を表現するクラスである。Stateクラス1004には、インタフェースとしてIStateインタフェース1004a及びActivityインタフェース1004b等が定義されている。IStateインタフェース1004aは、状態の入場時の処理(入場処理)及び退場時の処理(退場処理)を実装するインタフェースである。Activityインタフェース1004bは、状態にある間実行する処理を実装するインタフェースである。これらインタフェースは、クラスとして実装される。したがって、例えば、Activityインタフェース1004bの処理は、Activityクラスに実装される。
PseudoSateクラス1005は、初期状態や終期状態等、その名の通り擬似的な状態を表現するクラスであり、そのサブクラスとしては初期状態を表現するInitialStateクラス1006及び終期状態を表現するFinalStateクラス1007等がある。
上記クラス間の関係について説明する。StateMachineクラス1001は、StateVertexクラス1002を集約する。これは、一つのバンドルサービスは、一つ以上の状態を有することを表現したものである。StateVertexクラス1002は、Transitクラスを集約する。これは、状態と状態との間は遷移によって接続されることを表現したものである。
以上のような、モデルに基づいて、バンドルサービス「FaxTx1」及び「FaxTx2」は、以下のようなオブジェクトによって構成される。
図11はバンドルサービス「FaxTx1」のオブジェクト構成を表す。FaxTx1は、図8の状態遷移図に基づいて、初期状態オブジェクト701、終期状態オブジェクト702、Idle状態オブジェクト703、Send状態オブジェクト704、送信開始オブジェクト711T、送信処理オブジェクト712Aにより構成されている。
また、図12はバンドルサービス「FaxTx2」のオブジェクト構成を表す。FaxTx2は、図9の状態遷移図に基づいて、初期状態オブジェクト701、終期状態オブジェクト702、Idle状態オブジェクト703、Send状態オブジェクト704、Transform状態オブジェクト705、送信開始オブジェクト711T、送信処理オブジェクト712A、変換処理オブジェクト713A、変換終了オブジェクト713Tにより構成されている。
図11及び図12においてオブジェクト同士を連結する線分は、オブジェクト同士の参照関係を表す。遷移元の状態オブジェクトは遷移先の状態オブジェクトを参照している。なお、図中では状態オブジェクト間に遷移オブジェクトが接続されている場合がある。例えば、Idle状態オブジェクト703とSend状態オブジェクト704との間には送信開始オブジェクト711Tが接続されている。しかし、このことはIdle状態703が、Send状態オブジェクト704を参照していないことを示すものではない。Idle状態オブジェクト703は、Send状態オブジェクト703を参照すると共に、その状態遷移に対応する遷移オブジェクトとして送信開始オブジェクト711Tをも参照することを表現したものである。
図11及び図12より、バンドルサービス「FaxTx1」から「FaxTx2」への更新処理とは、FaxTx1に「Transform状態オブジェクト705」や「変換処理オブジェクト713A」や「変換終了オブジェクト713T」と言った更新処理用のオブジェクトをFaxTx1に対して追加する事で実現できることが分かる。
バンドルサービス148の更新処理の影響が顕著なオブジェクトが、バンドルサービス148の更新部分のオブジェクトである。バンドルサービス148の更新部分のオブジェクトとは、オブジェクトの入替部分やオブジェクトの追加部分(バンドルサービス148の更新部分)に連結するオブジェクトを意味する。図11から図12への更新処理では、バンドルサービス148の更新部分に相当するのがスイッチ721等の追加部分であり、バンドルサービス148の更新部分のオブジェクトに相当するのがSend状態オブジェクト704や送信開始オブジェクト711Tである。
オブジェクトの状態は、サービスの授受を行う「アクティブ状態」とサービスの授受を行わない「非アクティブ状態」に分類される。バンドルサービス148の更新処理をバンドルサービス148の動作中に実行するには、バンドルサービス148の更新部分のオブジェクトがアクティブ状態ではないとき(非アクティブ状態のとき)に実行すればよい。バンドルサービス148の動作中のオブジェクト同士のサービスの授受が更新処理により阻害されずに済むからである。よって、バンドルサービス148の更新処理をバンドルサービス148の更新部分のオブジェクトがアクティブ状態ではないときに実行するのである。なお、状態遷移図によるモデリングでは、一のオブジェクトがアクティブ状態のときは他のオブジェクトは非アクティブ状態に限定される。すなわち、各オブジェクトは互いに排他的に処理を実行する(動作する)。
図13は、バンドルサービス148の更新処理に係るコラボレーション図である。同図の更新処理は、バンドルサービス「FaxTx1」をバンドルサービス「FaxTx2」に更新するものである。
FaxTx1をFaxTx2に更新する旨の更新操作が融合機101又はクライアント端末801の操作画面で実施されると、FaxTx1をFaxTx2に更新する旨の更新要求がSAS411からSAS Manager511に送信(S11)される。次に、SAS Manager511では、FaxTx1からFaxTx2への更新処理を実施可能かどうかのチェックが実行(S12)される。次に、SAS Manager511では、更新処理用のモジュールを融合機101にインストール可能かどうかのチェックが実行(S13)される。
続いて、SAS Manager511は、更新処理用のモジュールを融合機101にインストール(S14)する。続いて、SAS Manager511は、更新処理用のモジュールをアクティブ状態に遷移(S15)させる。続いて、SAS Manager511は、FaxTx1に更新処理用のモジュールを追加して、スイッチ721をFaxTx1側からFaxTx2側に切り替えて、FaxTx2を生成(S16)する。
なお、更新処理が行われるタイミングは、更新処理用のモジュールに同梱されているAspectSM811と言うXMLファイルに記述されている。また、FaxTx1やFaxTx2とJSDKアプリ147との仲介制御は、JSDKプラットフォーム148を構成するProxy Service822が実行する。
FaxTx1からFaxTx2への更新処理について更に詳しく説明する。更新処処理自体の詳細説明の前に、図11に示されるFaxTx1のオブジェクト構成が構築される過程について説明する。
図14は、バンドルサービス「FaxTx1」のオブジェクト構成の構築処理を説明するためのシーケンス図である。図14の処理は、FaxTx1オブジェクト831がインスタンス化された際に実行される。
FaxTx1オブジェクト831は、インスタンス化されると、バンドルサービス「FaxTx1」の状態遷移情報に基づいて当該状態遷移に対応したオブジェクト構成を構築する(101)。状態遷移情報は、例えば、融合機101の所定の記憶装置内に、以下の形式で保存されている。
図15及び図16は、バンドルサービス「FaxTx1」の状態遷移情報の定義例を示す図である。図15及び図16によって一つの状態遷移情報900の記述例が示されている。状態遷移情報900は、XMI(XML Metadata Interchange)に従った記述例が示されている。XMIは、モデルを各種のソフトウェアの間でXML文書によって交換することを目的とした標準規格である。但し、本実施の形態を実施するにあたり、状態遷移情報は、必ずしもXMIに従って記述される必要はない。なお、図中における行番号は、説明の便宜上付加したものである。
状態遷移情報900の121行目における<StateMachine>タグのタグ名、及びそのname属性の値(「FaxTx1」)によって、状態遷移情報900は、バンドルサービス「FaxTx1」に対応するものであることが定義されている。また、当該<StateMachine>タグにおけるxmi.id属性の値(「004」)は、バンドルサービス「FaxTx1」を識別するIDである。
125行目の<CompositeState>タグは、バンドルサービス「FaxTx1」における状態の定義の開始の宣言に相当する。当該宣言は、<CompositeState>タグのxmi.idの値(「017」)によって識別される。
130行目から137行目における<Pseudostate>タグによって囲まれたPseudostate要素910は、初期状態601に対する定義である。Pseudostate要素910のname属性の値には「Init」が設定され、xmi.id要素の値には、「018」が設定されている。
138行目から148行目におけるCompositeState要素920は、Send状態604に対する定義である。CompositeState要素920のname属性の値には「Send」が設定され、xmi.id要素の値には、「019」が設定されている。
149行目から159行目におけるCompositeState要素930は、Idle状態603に対する定義である。CompositeState要素930のname属性の値には「Idle」が設定され、xmi.id要素の値には、「022」が設定されている。
160行目から183行目におけるPseudostate要素940は、終期状態602に対する定義である。Pseudostate要素940のname属性の値には「end」が設定され、xmi.id要素の値には、「024」が設定されている。
また、191行目から228行目には、バンドルサービス「FaxTx1」における各状態遷移が定義されている。すなわち、191行目から204行目におけるTransition要素950は、Idle状態603からSend状態604への状態遷移に対する定義である。Transition要素950が当該状態遷移に対する定義であることは、Transition要素950の子要素として定義されている、Transition.source要素951及びTransition.target要素952より特定される。Transition.source要素951は遷移元の状態が設定される要素である。Transition.source要素951の子要素のxmi.idref属性の値は「022」である。したがって、遷移元は、xmi.id属性の値が「022」の状態、すなわち、Idle状態603であることが分かる。また、Transition.target要素952は遷移先の状態が設定される要素である。Transition.target要素952の子要素のxmi.idref属性の値は「019」である。したがって、遷移先は、xmi.idの値が「019」の状態、すなわち、Send状態604であることが分かる。なお、Transition要素950のname属性の値は「送信開始」であり、xmi.id属性の値は「023」である。
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」である。
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」である。
130行目以降の説明に戻る。各状態に対応する、Pseudostate要素910、CompositeState要素920、及びCompositeState要素930は、StateVertex.outgoing要素及びStateVertex.incoming要素の少なくともいずれか一方を子要素として有する。StateVertex.outgoing要素は、遷移元からの状態遷移に対する接続が定義される要素である。StateVertex.incoming要素は、遷移先への状態遷移に対する接続が定義される要素である。
例えば、初期状態601に対応するPseudostate要素910におけるStateVertex.outgoing要素911において、その子要素のxmi.idref属性の値は「018」である。したがって、初期状態601からの遷移先への状態遷移は、Transition要素970が対応する状態遷移に相当することが分かる。
また、Send状態604に対応するCompositeState要素920おけるStateVertex.outgoing要素921においてその子要素のxmi.idref属性の値は「020」であり、StateVertex.incoming要素922において、その子要素のxmi.idref属性の値は「023」である。したがって、Send状態604からの遷移先への状態遷移は、Transition要素960が対応する状態遷移に相当し、遷移元の状態遷移は、Transition要素950が対応する状態遷移に相当することが分かる。
なお、Idle状態603に対応するCompositeState要素930、終期状態602に対応するPseudostate要素940においても同様に状態遷移との接続が定義されている。
上記のような状態遷移情報900に基づいて、FaxTx1オブジェクト831は、まず、各状態オブジェクト及び遷移オブジェクト等をインスタンス化する。図中では、状態遷移情報900におけるPseudostate要素910、CompositeState要素930、CompositeState要素940、Pseudostate要素940、及びTransition要素950のそれぞれに基づいて、初期状態オブジェクト701、Idle状態オブジェクト703、Send状態オブジェクト704、終期状態オブジェクト702、送信開始オブジェクト711Tが生成されている例が示されている(S102〜S106)。
続いて、FaxTx1オブジェクト831は、各状態オブジェクトの参照関係が状態遷移情報900に定義された状態遷移の順になるよう、遷移元の状態オブジェクトに対して遷移先の状態オブジェクトを接続する。例えば、FaxTx1オブジェクト831は、Idle状態オブジェクト703の識別情報を引数として、初期状態オブジェクト701のconnect()メソッドを呼び出す(S107)。また、FaxTx1オブジェクト831は、Send状態オブジェクト704の識別情報を引数として、Idle状態オブジェクト703のconnect()メソッドを呼び出す(S108)。また、FaxTx1オブジェクト831は、終期状態オブジェクト702の識別情報を引数として、Send状態オブジェクト704のconnect()メソッドを呼び出す(S109)。connect()メソッドを呼び出された各状態オブジェクトは、当該状態オブジェクト内において引数に指定された識別情報を保持する。
また、必要に応じて、connect()メソッドの引数には遷移オブジェクトの識別情報も指定される。例えば、ステップS108において、Idle状態オブジェクト703のconnect()メソッドが呼び出される際は、送信開始オブジェクト711Tの識別情報も引数に指定される。このように、connect()メソッドの引数に、状態オブジェクトと遷移オブジェクトとのそれぞれの識別情報が指定された場合、当該メソッドが呼び出された状態オブジェクトは、その状態オブジェクトの識別情報と遷移オブジェクトの識別情報とを関連付けて(ペアで)保持する。これによって、ある状態オブジェクトがアクティブのときに、あるイベントが発生したときの遷移先の状態オブジェクトが特定され得る。
以上の処理によって、バンドルサービス「FaxTx1」について、図11に示されるようなオブジェクト構成が構築される。
上記をふまえて、バンドルサービス「FaxTx1」の「FaxTx2」への更新処理の詳細について説明する。図17は、FaxTx1からFaxTx2への更新処理を説明するためのシーケンス図である。
例えば、管理者は、FaxTx2とFaxTx1との差分の追加モジュールが格納されたSDカードを融合機101のメモリカードスロット234に挿入する(S201)。
図18は、SDカード内の追加モジュールの構成例を示す図である。図18に示されるSDカード235aには、更新差分サービスバンドル840とAspectSM.xmlファイル811(AspectSM811)とが格納されている。更新差分サービスバンドル840には、更新処理を実行するにあたり、図10のクラス図において、IStateインタフェース1004a、Activityインタフェース1004b、Eventインタフェース1003a、Guardインタフェース1003b、又はActionインタフェース1003cに対応するクラスのうち、追加が必要とされるクラスが実装された機能モジュール(例えば、Java(登録商標)のクラスファイル。以下「追加モジュール」という。))が格納されている。ここでは、追加モジュールとして、PDF2Tiff841とConvertEnd842とが格納されている。
AspectSM811は、FaxTx1からFaxTx2への更新処理をどのように実施するかについての仕様がXML形式記述されているファイルである。
図19は、AspectSMの記述例を示す図である。図中、行番号は説明の便宜上付加したものである。AspectSM811には、バンドルサービス「FaxTx1」の状態遷移情報900(図15及び図16)に対する変更内容が記述されている。
AxpectSM811の記述例において、2行目は、xmi.idの値が「004」であるFaxTx1に対して状態遷移の変更を行うことを指示している。すなわち、2行目におけるxmi.idref属性は、変更の対象となるバンドルサービスのxmi.idが指定される。
3行目から20行目までは一つ目の変更箇所に関する変更情報が記述されている。3行目には、変更箇所と変更タイミングが指定されている。変更箇所は、pointcut.<xxx>における<xxx>の記述とxmi.ref属性の値とによって指定される。ここで、<xxx>の部分は「CompositeState」であり、xmi.ref属性の値は「017」である。したがって、状態遷移情報900の125行目における<CompositeState>タグ内に対する変更が指定されていることになる。また、変更のタイミングは、timing属性の値によって指定される。ここでは、「Idle」が指定されている。したがって、FaxTx1がIdle状態603にあるときに、変更を行うべきことが指定されている。
4行目には、変更の内容が指定されている。すなわち、<advice.CompositeState>タグのタグ名におけるadvice.以降によって、変更の対象がCompositeState要素であることが指定されている。また、type属性によって、変更の種別が「insert」(挿入)であることが指定されている。すなわち、3行目及び4行目によって、<CompositeState>タグ内に新たなCompositeState要素を挿入すべき旨が指定されている。
5行目から18行目は、挿入の対象となるCompositeState要素850の定義である。CompositeState要素850は、FaxTx2のTransform状態605に対応する。CompositeState要素850内の記述形式は、図15及び図16において説明した通りである。すなわち、CompositeState要素850の子要素である、StateVertex.outgoing要素851において遷移先への接続が定義され、StateVertex.incoming要素852において遷移元への接続が定義されている。
ところで、CompositeState要素850は、State.entry要素853が子要素として定義されている。State.entry要素853は、CompositeState要素850が対応するTransform状態605における入場処理が定義される要素である。すなわち、CompositeState要素850の子要素として、Action要素854が定義されているが、そのxmi.id属性とname属性より、xmi.id属性の値が「026」であり、name属性の値がpdf2tiffによって識別される処理が実行されることが指定されている。
21行目から42行目までは二つ目の変更箇所に関する変更情報が指定されている。21行目には、変更箇所及び変更のタイミングが指定されている。ここでは、Idle状態603のときにTransition要素950(図16参照)に対して変更を行うことが指定されている。
二つ目の変更箇所には、二つの変更が指定されている。22行目から24行目までに一つ目の変更が指定されており、25行目から41行目までに二つ目の変更が指定されている。
一つ目の変更については、22行目の<advice.Transition.target>タグのタグ名におけるadovice.以降によって変更対象がTransition.target要素952であることが指定されている。また、type属性によって、変更の種別が修正(modify)であることが指定されている。23行目には、変更の対象に関して修正後の定義が記述されている。すなわち、一つ目の変更は、Idle状態603からSend状態604への状態遷移を、Idle状態603からTransform状態605への状態遷移に修正することである。
二つ目の変更(25行目から41行目)は、新たな状態遷移(Tranform状態605からSend状態604への状態遷移)に対応するTransision要素の挿入をIdle状態603のときに行うことである。この内容は、上記の説明から読み取れるため、各行毎の説明は省略する。
43行目から55行目は、標準ではなく独自の書式に基づく定義が行われている拡張記述部分である。43行目のpointcut.以下の「XMI.extension」によって、拡張記述部分であることが指定されている。本実施の形態では、この部分に、状態遷移処理で呼ばれるアクション処理と、イベント処理等に使用する機能モジュール(例えば、Java(登録商標)クラス)との関連付けが定義される。
44行目では、当該advice要素の子要素の定義を挿入(insert)すべきことが指定されている。
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クラスが実行されるときのプロパティ情報である。
50行目から52行目は、Transform状態605からSend状態604への状態遷移のトリガーとなる変換完了イベントとjp.co.rrr.function.convertEndクラスとの関連付けが定義されている。これによって、Traneform状態605中に変換完了イベントが検知されると、jp.co.rrr.function.convertEndクラスが実行され、その実行結果がtrueであれば、Send状態604に遷移することになる。
図17に戻る。管理者によるSDカード235aの挿入が自動的に検知されると、又はSDカード235aが挿入され、オペレーションパネル202から更新指示が入力されると、SAS411は、SAS Manager511に更新処理の実行を要求する(S202)。なお、SDカード235aに記録された情報は、ネットワークを介してダウンロードされてもよい。この場合、SDカードのような記録媒体を用いる必要はない。
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)。
OSGiフレームワーク403は、更新差分サービスバンドル840のインスタンスを(以下、「更新差分オブジェクト840a」という。)生成し、アクティブな状態に遷移させる(S207)。更新差分オブジェクト840aは、Plugin Agent821に対して更新差分サービスバンドル840がプラグインされたことをAspectSM811を添えて通知する(S208)。
Plugin Agent821は、FaxTx1オブジェクト831に対して、AspectSM811を添えてFaxTx2への更新要求を行う(S209)。FaxTx1オブジェクト831は、AspectSM811に基づいて、サービスバンドル「FaxTx1」をFaxTx2へ更新する為に必要な追加モジュール判断し、当該追加モジュール(ここでは、PDF2Tiff841及びConvertEnd842)の取得を更新差分オブジェクト840aに要求する(S210)。更新差分オブジェクト840aは、当該追加モジュールを取得し、FaxTx1オブジェクト831に返却する(S211)。
続いて、FaxTx1オブジェクト831は、AspectSM811に従って、バンドルサービス「FaxTx1」のオブジェクト構成を、FaxTx2に対応するものに更新すると共に、当該更新によって新たに追加されたActivityオブジェクトと追加モジュールとの関連付けを行う(S212)。なお、ステップS212の処理は、AspectSM811に記述されているタイミングで行われる。
続いて、FaxTx1オブジェクト831は、バンドルサービス「FaxTx1」について「FaxTx2」への更新が完了したことをPlugin Agent821に通知する(S213)。但し、FaxTx1をFaxTx2に切り替えるスイッチ721は、FaxTx1の状態のままである。
更新が完了した旨の通知は、SAS Manaer511を介してSAS411に通知される(S214、S215)。SAS411は、管理者に更新完了を通知するため、オペレーションパネル202に更新完了を通知するメッセージを表示させる(S216)。なお、この状態では、スイッチ721は、まだFaxTx2には切り替えられていないので、SAS411は、管理者にFaxTx2へ切り替える否かを問い合わせる。
そこで、管理者が、オペレーションパネル202を介してFaxTx2への切替指示を入力すると(S217)、SAS411は、FaxTx2への切替要求をSAS Manager511に通知する(S218)。SAS Manager511は、Plugin Agent821にFaxTx2への切り替えを要求する(S219)。Plugin Agent821は、FaxTx1オブジェクト831に対して、その振る舞い(状態遷移)をFaxTx2に対応するものに切り替えるように指示する(S220)。
FaxTx1オブジェクト831は、バンドルサービス「FaxTx1」がIdle状態703になるまで待機する。Idle状態703に遷移すると、FaxTx1オブジェクト831は、スイッチ721を切り換えることにより、自己の振る舞いをFaxTx2に対応するものに切り替える(S221)。切り替えが完了すると、FaxTx1オブジェクト831は、Plugin Agent821に対して、切替完了通知を行う(S222)。切替完了通知は、SAS Manager511を介してSAS411に伝達される(S223、S224)。SAS411は、切替完了通知に応じ、バンドルサービス「FaxTx1」の切り替えが完了した旨をオペレーションパネル202に表示させる(S225)。
次に、ステップS212における、バンドルサービス「FaxTx1」のオブジェクト構成の更新処理の詳細について説明する。図20は、バンドルサービス「FaxTx1」のオブジェクト構成の更新処理を説明するためのシーケンス図である。
まず、FaxTx1オブジェクト831は、バンドルサービス「FaxTx1」の状態が、AspectSM811に指定されている変更箇所ごとにおけるtiming属性の値に指定されている状態に遷移するまで待機する(S2111)。図19のAspectSM811の例では、全ての変更箇所に対するタイミングは、Idle状態603として指定されている。したがって、ここでは、Idle状態603に遷移するまで待機する。
バンドルサービス「FaxTx1」の状態がIdle状態603に遷移すると、FaxTx1オブジェクト831は、AspectSM811の記述にしたがって、更新処理を開始する。
例えば、FaxTx1オブジェクト831は、AspectSM811の3行目から20行目に基づいてTransform状態605に対応するTransformオブジェクト状態705を生成する(S2112)。続いて、FaxTx1オブジェクト831は、AspectSM811の25行目から41行目に基づいて、変換終了オブジェクト713Tを生成する(S2113)。続いて、FaxTx1オブジェクト831は、AspectSM811の9行目から14行目や、22行目から24行目に基づいて、オブジェクト間の接続関係を変更する。すなわち、FaxTx1オブジェクト831は、Transform状態オブジェクト705の識別情報を引数としてIdle状態オブジェクト703のreconnect()メソッドを呼び出す(S2114)。これに応じて、Idle状態オブジェクト704は、遷移先の状態オブジェクトとして、Send状態オブジェクト704とTransForm状態オブジェクト705とを保持することになる。これは、ちょうど図12において、スイッチ721によって遷移先が分岐している状態に相当する。スイッチ721は、例えば、Idle状態オブジェクト703が参照可能なフラグ変数として実装される。例えば、当該フラグ変数の値が0のときには遷移先はSend状態オブジェクト704とされ、1のときには遷移先はTransform状態オブジェクト705とされるといった具合である。なお、Idle状態オブジェクト703とTransform状態オブジェクト705との接続は行われたが、図17において説明したように、この時点では、スイッチ721は切り替えられていないため、Idle状態オブジェクト703からの遷移先のオブジェクトはSend状態オブジェクト704のままである(すなわち、バンドルサービス「FaxTx1」として機能する。)。
続いて、FaxTx1オブジェクト831は、Send状態オブジェクト704の識別情報と変換完了オブジェクト713Tの識別情報とを引数としてTransform状態オブジェクト705のconnect()メソッドを呼び出す(S2115)。これに応じて、Transform状態オブジェクト705は、Send状態オブジェクト704の識別情報と変換完了オブジェクト713Tの識別情報とを関連付けて保持する。すなわち、変換終了イベントが発生した際のTransform状態605からSend状態604への状態遷移に対応する接続が構築されたことになる。
続いて、FaxTx1オブジェクト831は、AspectSM811の43行目から55行目に基づいて、追加モジュールとオブジェクトとの関連付けを行う。すなわち、Transform状態オブジェクト705の入場処理のインタフェース(IStateインタフェース1004a)に対してPDF2TIFF841を関連付ける(S2116)。続いて、変換完了オブジェクト713TのEventインタフェース1003aに対してConvertEnd842を関連付ける(S2117)。
以上の処理によって、バンドルサービスFaxTx1のオブジェクト構成は、図12に示されるようなものに更新される。
ところで、図19において、AspectSM811にはバンドルサービス「FaxTx1」の状態遷移情報900(図15及び図16)に対する変更内容が記述されていると説明した。しかし、上記のように、FaxTx1オブジェクト831は、AspectSM811に基づいて状態遷移情報900を書き換えるのではなく、バンドルサービス「FaxTx1」を構成するオブジェクトを変更することで更新処理を実現する。図14において説明したように、バンドルサービス「FaxTx1」は、状態遷移情報900に基づいてそのオブジェクトが構築されたものである。したがって、状態遷移情報900に対する変更内容が記述されたAspectSM811は、そのままバンドルサービス「FaxTx1」のオブジェクト構成に適用することができるのである。なお、AspectSM811に基づいて状態遷移情報900を更新し、更新された状態遷移情報900に基づいてFaxTx1(厳密には、FaxTx2に更新されたもの)を再構築してもよい。但し、この場合、再構築の前にバンドルサービス「FaxTx1」を構成するオブジェクト群が破棄されるため、バンドルサービス「FaxTx1」を利用中のアプリケーション等との参照関係が破壊されてしまう。したがって、本実施の形態のように、オブジェクト群を再構築するのではなく、既存のオブジェクト構成を変更する方が好適である。
なお、上記のように、更新処理後は、バンドルサービス「FaxTx1」と「FaxTx2」とは、スイッチ721を切り替えることにより容易に切り替えが可能である。したがって、「FaxTx1」から「FaxTx2」への更新後、再度「FaxTx2」から「FaxTx1」に戻したい場合は、スイッチ721を切り替えることにより実現すればよい。すなわち、Idle状態オブジェクト703が参照可能なフラグ変数の値を更新すればよい。また、「FaxTx2」から「FaxTx1」への更新指示が記述されたAspectSMに基づいて、「FaxTx2」から「FaxTx1」への更新を実現してもよい。この場合スイッチ721を切り替えるタイミングは、当該AspectSMに記述されたタイミングで行われる。
上述したように、本実施の形態におけるバンドルサービスは、状態オブジェクトの遷移によってサービスを実現する。また、サービスの実現過程において、アクティブな状態オブジェクトが限定されるように構成されている。言い換えれば、非アクティブな状態オブジェクトが存在することになる。このような構成を前提として、AspectSM811には、更新部分が非アクティブなタイミングで更新が行われるような更新指示が記述されている。そして、かかるAspectSM811に従って、更新部分が非アクティブなときに更新が実行される。したがって、本実施の形態におけるバンドルサービスは、当該バンドルサービスの実行中にその振る舞いの更新を実行することができる。また、振る舞いの更新にあたり、オブジェクト群が再構築されるわけではないので、当該バンドルサービスの参照側との参照関係が破壊されることなく、動的にその振る舞いを更新することが可能となっている。よって、融合機101を再起動することなくバンドルサービスの振る舞いは更新され得る。
なお、本実施の形態においては、バンドルサービスが状態遷移図に基づいて設計された例を用いて説明したが、本発明が適用可能なプログラムは、状態ごとにオブジェクトが構築されるような構成であるものに限定されない。お互いに排他的に動作する複数のモジュール(オブジェクトも含む)の接続によって構成されているものでればよい。ここで排他的に処理を実行するとは、あるモジュールが動作中(アクティブ)のときは、他のモジュールは動作中でない(非アクティブである)ことが保証されることをいう。このようなソフトウェアであれば、動作中でないモジュールの接続関係を変更することが可能であり、本実施の形態において説明した更新処理を適用させることができる。
以上、バンドルサービス148の更新処理を説明したが、以下、図21ではバンドルアプリ147の更新処理を説明する。バンドルアプリ147の更新処理ではバンドルサービス148の更新処理と異なりサービスの提供が問題にならないので、バンドルアプリ147の更新処理はバンドルサービス148の更新処理に比べて単純になる。
図21は、バンドルアプリ147の更新処理に係るコラボレーション図である。同図の更新処理は、バンドルアプリ「AppXt1」をバンドルアプリ「AppXt2」に更新するものである。
AppXt1をAppXt2に更新する旨の更新操作が融合機101又はクライアント端末801の操作画面で実施されると、AppXt1をAppXt2に更新する旨の更新要求がSAS411からSAS Manager511に送信(S21)される。次に、SAS Manager511では、更新処理用のモジュールを融合機101にインストール可能かどうかのチェックが実行(S22)される。
続いて、SAS Manager511は、更新処理用のモジュールを融合機101にインストール(S23)する。続いて、SAS Manager511は、更新処理用のモジュールをアクティブ状態に遷移(S24)させる。続いて、SAS Manager511は、AppXt1に更新処理用のモジュールを追加して、所定のスイッチをAppXt1側からAppXt2側に切り替えて、AppXt2を生成(S25)する。
なお、上記のスイッチをAppXt1側からAppXt2側に切り替えるタイミングは任意である。
以上、バンドルアプリ147に係る説明とバンドルサービス148に係る説明とを別個に実施したが、以下、バンドルアプリ147に係る説明とバンドルサービス148に係る説明とを同時に実施する。
図22は、バンドルアプリ147とバンドルサービス148との間の利用関係の具体例を表す。バンドルアプリ147やバンドルサービス148の更新処理が実施される場合において、どのバンドルアプリ147がどのバンドルサービス148を利用するかと言う利用関係を設定できるようにしてもよい。図22は、バンドルアプリ「AppXt1」がバンドルサービス「FaxTx1」を利用する、バンドルアプリ「AppXt2」がバンドルサービス「FaxTx2」を利用する、バンドルアプリ「AppXt3」がバンドルサービス「FaxTx3」を利用すると言う利用関係を表す。
図23は、FaxTx1とFaxTx2とFaxTx3との間の継承関係の例を表す。FaxTx1とFaxTx2については、FaxTx1が親でFaxTx2が子の関係の継承関係にある。FaxTx3については、FaxTx1ともFaxTx2とも継承関係にない。FaxTx1やFaxTx2やFaxTx3の継承関係はPlugin Agent821の処理やProxy Service822の処理に影響する。
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との仲介制御を実行する。
図24は、利用関係の設定画面の具体例を表す。図24の設定画面は、融合機101やクライアント端末801の表示画面にSAS411が表示する。前者はいわゆるローカル表示であり、後者はいわゆるリモート表示である。リモート表示を実現するには例えば、融合機101とクライアント端末801にWebサーバ機能とWebクライアント機能を具備させればよい。
図24の設定画面は、AppXt1にFaxTx1を利用させるかFaxTx2を利用させるかFaxTx3を利用させるかを設定するための設定画面である。AppXt1に係る表示情報は、AppXt1のJARファイルに対応するJNLPファイル(アプリケーション管理ファイル)に起因する。図24の設定画面で指定されたFaxTx(FaxTx1/2/3)が融合機101に実装されていない場合、図13のようなインストール処理やアップデート処理が実行される。なお、図24の設定画面での指定操作は、図13の説明で登場した操作画面での更新操作の一環として実施されるものとしてもよい。
図25は、バンドルアプリ147やバンドルサービス148の更新処理用のモジュールの取得態様について説明するための図である。
図中のAの矢印は、更新処理用のモジュールを融合機101に挿入されたメモリカード235から取得する態様を表す。メモリカード235は例えば、SDカードやICカードである。図25のAでは、SAS Manager511は、融合機101に実装されたバンドルアプリ147やバンドルサービス148を、メモリカード235から取得されたプログラムにより更新する。図25のAの取得態様では、ネットワーク接続されていない機器においても更新処理を実施する事ができる。
図中のBの矢印は、更新処理用のモジュールをPull型の通信によりバンドルサーバ901から取得する態様を表す。Pull型の通信処理の主体は、融合機101のSAS411である。図25のBでは、SAS Manager511は、融合機101に実装されたバンドルアプリ147やバンドルサービス148を、Pull型の通信により取得されたプログラムにより更新する。図25のBの取得態様では、SDカードやICカードを利用せずに更新処理を実施する事ができる。
図中のCの矢印は、更新処理用のモジュールをPush型の通信によりバンドルサーバ901から取得する態様を表す。Push型の通信処理の主体は、バンドルサーバ901である。図25のCでは、SAS Manager511は、融合機101に実装されたバンドルアプリ147やバンドルサービス148を、Push型の通信により取得されたプログラムにより更新する。図25のCの取得態様では、サーバからの遠隔制御のもとで更新処理を実施する事ができる。
なお、更新処理の実施態様は自動更新でも手動更新でもよい。図13や図21では更新操作の直後に更新処理が実施されるようにしているが、更新操作による更新設定を契機として更新処理が定期的に実施されるようにしてもよい。
本発明の実施例に該当する融合機を表す。 図1の融合機に係るハードウェア構成図である。 図1の融合機に係る外観図である。 オペレーションパネルを表す。 図1のCSDKアプリとJSDKアプリのソフトウェア構成図である。 図1の融合機におけるOSGiについて説明するための図である。 バンドルサービスのオブジェクト構成の具体例を表す。 バンドルサービス「FaxTx1」の状態遷移図である。 バンドルサービス「FaxTx2」の状態遷移図である。 バンドルサービスを構成するクラス図の一例である。 バンドルサービス「FaxTx1」のオブジェクト構成を表す。 バンドルサービス「FaxTx2」のオブジェクト構成を表す。 バンドルサービスの更新処理に係るコラボレーション図である。 バンドルサービス「FaxTx1」のオブジェクト構成の構築処理を説明するためのシーケンス図である。 バンドルサービス「FaxTx1」の状態遷移情報の定義例を示す図である。 バンドルサービス「FaxTx1」の状態遷移情報の定義例を示す図である。 FaxTx1からFaxTx2への更新処理を説明するためのシーケンス図である。 SDカード内の追加モジュールの構成例を示す図である。 AspectSMの記述例を示す図である。 バンドルサービス「FaxTx1」のオブジェクト構成の更新処理を説明するためのシーケンス図である。 バンドルアプリの更新処理に係るコラボレーション図である。 バンドルアプリとバンドルサービスとの間の利用関係の具体例を表す。 FaxTx1とFaxTx2とFaxTx3との間の継承関係の例を表す。 利用関係の設定画面の具体例を表す。 更新処理用のモジュールの取得態様について説明するための図である。
符号の説明
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クラス

Claims (14)

  1. 互いに排他的に動作する複数のモジュールの接続によって構成されるプログラムを実行する画像形成装置であって、
    前記プログラムの更新情報の入力を受け付ける入力手段と、
    前記プログラムの動作状態が、前記更新情報において指定されている更新のタイミングに相当するか否かを判定するタイミング判定手段と、
    前記タイミング判定手段によって前記更新のタイミングであると判定されたときに、前記更新情報に従って、前記複数のモジュールの接続関係を変更する変更手段とを有することを特徴とする画像形成装置。
  2. 前記変更手段は、前記更新情報に指定されている変更箇所に対応するモジュールの接続関係を変更することを特徴とする請求項1記載の画像形成装置。
  3. 前記更新情報には、少なくとも前記変更箇所に対応するモジュールが動作中でないときが前記更新のタイミングとして指定されていることを特徴とする請求項2記載の画像形成装置。
  4. 前記判定手段によって前記更新のタイミングであると判定されるまで、前記変更手段による変更を待機することを特徴とする請求項1乃至いずれか一項記載の画像形成装置。
  5. 前記変更手段は、前記更新情報に新たなモジュールの追加が指定されているときは、当該新たなモジュールを生成し、当該新たなモジュールも含めて複数の前記モジュールの接続関係を変更することを特徴とする請求項1乃至いずれか一項記載の画像形成装置。
  6. 前記プログラムを構成する各モジュールは、当該プログラムの状態遷移における各状態に対応することを特徴とする請求項1乃至いずれか一項記載の画像形成装置。
  7. 互いに排他的に動作する複数のモジュールの接続によって構成されるプログラムを実行する画像形成装置によって実行される情報処理方法であって、
    前記プログラムの更新情報の入力を受け付ける入力手順と、
    前記プログラムの動作状態が、前記更新情報において指定されている更新のタイミングに相当するか否かを判定するタイミング判定手順と、
    前記タイミング判定手順において前記更新のタイミングであると判定されたときに、前記更新情報に従って、前記複数のモジュールの接続関係を変更する変更手順とを有することを特徴とする情報処理方法。
  8. 前記変更手順は、前記更新情報に指定されている変更箇所に対応するモジュールの接続関係を変更することを特徴とする請求項記載の情報処理方法。
  9. 前記更新情報には、少なくとも前記変更箇所に対応するモジュールが動作中でないときが前記更新のタイミングとして指定されていることを特徴とする請求項記載の情報処理方法。
  10. 前記判定手順において前記更新のタイミングであると判定されるまで、前記変更手順による変更を待機することを特徴とする請求項乃至いずれか一項記載の情報処理方法。
  11. 前記変更手順は、前記更新情報に新たなモジュールの追加が指定されているときは、当該新たなモジュールを生成し、当該新たなモジュールも含めて複数の前記モジュールの接続関係を変更することを特徴とする請求項乃至10いずれか一項記載の情報処理方法。
  12. 前記プログラムを構成する各モジュールは、当該プログラムの状態遷移における各状態に対応することを特徴とする請求項乃至11いずれか一項記載の情報処理方法。
  13. 請求項乃至12いずれか一項記載の情報処理方法をコンピュータに実行させるための情報処理プログラム。
  14. 請求項13記載の情報処理プログラムを記録したコンピュータ読取可能な記録媒体。
JP2006224521A 2005-08-26 2006-08-21 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体 Active JP4791910B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006224521A JP4791910B2 (ja) 2005-08-26 2006-08-21 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
US11/509,601 US8522229B2 (en) 2005-08-26 2006-08-25 Image forming apparatus, information processing method, and recording medium for directly update a module of the image forming apparatus without changing other modules
US13/947,849 US8819665B2 (en) 2005-08-26 2013-07-22 Image forming apparatus, information processing method, and recording medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005246226 2005-08-26
JP2005246226 2005-08-26
JP2006224521A JP4791910B2 (ja) 2005-08-26 2006-08-21 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011129761A Division JP5246299B2 (ja) 2005-08-26 2011-06-10 機器、情報処理システム、情報処理方法、情報処理プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
JP2007089139A JP2007089139A (ja) 2007-04-05
JP4791910B2 true JP4791910B2 (ja) 2011-10-12

Family

ID=37803668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006224521A Active JP4791910B2 (ja) 2005-08-26 2006-08-21 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体

Country Status (2)

Country Link
US (2) US8522229B2 (ja)
JP (1) JP4791910B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4769515B2 (ja) 2004-09-07 2011-09-07 株式会社リコー アプリケーション実行方法、情報処理装置、画像形成装置、アプリケーション実行プログラム、記録媒体、及び情報処理システム
US7685167B2 (en) * 2007-01-30 2010-03-23 Bmc Software, Inc. Configuration management database reference instance
JP5304360B2 (ja) * 2009-03-17 2013-10-02 株式会社リコー 情報処理装置、情報処理方法および情報処理プログラム
JP2011123842A (ja) * 2009-12-14 2011-06-23 Ricoh Co Ltd 画像形成装置、機能追加方法、及びプログラム
JP5418442B2 (ja) 2010-08-18 2014-02-19 株式会社リコー 情報処理装置、電子機器、更新処理支援方法、更新処理支援プログラム、及び更新処理支援システム
JP5740257B2 (ja) * 2011-09-08 2015-06-24 株式会社日立ソリューションズ OSGiプログラム、OSGiシステム
JP5543997B2 (ja) 2012-08-28 2014-07-09 住友電気工業株式会社 被遠隔管理装置、被遠隔管理方法および被遠隔管理プログラム
JP6057740B2 (ja) * 2013-01-24 2017-01-11 キヤノン株式会社 画像形成装置、情報処理方法及びプログラム
JP5578255B2 (ja) * 2013-06-27 2014-08-27 株式会社リコー 情報処理装置、情報処理方法および情報処理プログラム
US9463647B1 (en) 2015-07-15 2016-10-11 Toshiba Tec Kabushiki Kaisha Printer and method for operating the same
JP2018028842A (ja) 2016-08-19 2018-02-22 株式会社リコー 情報処理装置、情報処理方法、及び情報処理プログラム
JP6720795B2 (ja) 2016-09-16 2020-07-08 株式会社リコー 機器、情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6870311B2 (ja) 2016-12-16 2021-05-12 株式会社リコー 情報処理システム、機器、情報処理方法及びプログラム
JP7119844B2 (ja) 2018-03-05 2022-08-17 株式会社リコー 情報処理システム、情報処理装置、情報処理方法及びプログラム
EP3629167A1 (en) 2018-09-27 2020-04-01 Ricoh Company, Ltd. Information processing system, information processing apparatus, method of processing information, and carrier means
US11153401B2 (en) 2018-09-28 2021-10-19 Ricoh Company, Ltd. Information processing system, information processing apparatus, and method of processing information
US11431874B2 (en) 2018-11-28 2022-08-30 Ricoh Company, Ltd. Information processing system to securely upload image data
JP7188024B2 (ja) 2018-11-29 2022-12-13 株式会社リコー 情報処理装置、情報処理システム、情報処理方法及びプログラム
US10911624B2 (en) 2018-11-30 2021-02-02 Ricoh Company, Ltd. Server, method of controlling data communication, and storage medium

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3177117B2 (ja) * 1994-05-11 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 複数のノード内の制御コードを更新する方法および装置
JPH08194612A (ja) 1994-11-15 1996-07-30 Nippon Telegr & Teleph Corp <Ntt> プログラム実行制御方法及びプログラム実行制御システム
JP4280311B2 (ja) 1995-10-11 2009-06-17 キヤノン株式会社 画像処理複合装置およびその制御方法
US6204928B1 (en) 1995-10-11 2001-03-20 Canon Kabushiki Kaisha Data processing apparatus and a method for controlling the apparatus
US5996073A (en) * 1997-12-18 1999-11-30 Tioga Systems, Inc. System and method for determining computer application state
US6360363B1 (en) * 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
US6202207B1 (en) * 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
JPH11259284A (ja) * 1998-03-12 1999-09-24 Fujitsu Ltd オンラインプログラム更新システム及びプログラム更新用プログラムを記録したコンピュータ読み取り可能な記録媒体
US6452695B1 (en) * 1998-04-24 2002-09-17 Lexmark International, Inc. System and method for enabling an image input device and a printer to operate as a digital copier
US6286138B1 (en) * 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
US7062765B1 (en) * 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
WO2001048615A1 (fr) * 1999-12-27 2001-07-05 Fujitsu Limited Imprimante et procede de commande, support de memorisation lisible par ordinateur contenant un programme de commande d'imprimante
JP3679349B2 (ja) 2000-07-05 2005-08-03 株式会社リコー 画像形成装置、画像形成方法、画像形成プログラムおよびアプリケーションプログラム
US6931637B2 (en) * 2001-06-07 2005-08-16 Taiwan Semiconductor Manufacturing Co., Ltd Computer system upgrade method employing upgrade management utility which provides uninterrupted idle state
US20030005426A1 (en) * 2001-06-08 2003-01-02 Scholtens Dale A. Methods and apparatus for upgrading software without affecting system service
JP4083505B2 (ja) * 2001-08-27 2008-04-30 株式会社リコー 画像形成装置,プログラム更新方法および記録媒体
EP1292109A1 (en) * 2001-08-27 2003-03-12 Ricoh Company, Ltd. Information processing system
JP2003084984A (ja) * 2001-09-12 2003-03-20 Canon Inc 情報処理装置、及び、情報処理方法、及び、制御プログラム、及び、制御プログラムを記憶した記憶媒体
JP3653073B2 (ja) 2001-10-22 2005-05-25 株式会社リコー 画像形成装置、利用者制限方法およびこの方法をコンピュータに実行させるプログラム
US6983449B2 (en) * 2002-03-15 2006-01-03 Electronic Data Systems Corporation System and method for configuring software for distribution
US20040021890A1 (en) 2002-03-25 2004-02-05 Takumi Hirai Image forming apparatus, information processing apparatus and the authentication method
US20030218765A1 (en) * 2002-04-26 2003-11-27 Tsutomu Ohishi Apparatus for controlling launch of application and method
CA2391733A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Framework to access a remote system from an integrated development environment
JP4365148B2 (ja) * 2002-07-19 2009-11-18 株式会社リコー 画像形成装置及びラッピング処理方法並びにプログラム
US7554685B2 (en) * 2002-07-26 2009-06-30 Ricoh Company, Ltd. Image forming apparatus, information processing apparatus, program execution method and program producing method
US7636172B2 (en) 2002-07-31 2009-12-22 Ricoh Company, Ltd. Image forming apparatus, information processing apparatus and version check method using an API from an application
EP1398948B1 (en) 2002-09-13 2013-11-06 Ricoh Company, Ltd. Image forming apparatus, methods used therein and a computer readable storage medium
JP2004242295A (ja) 2003-01-15 2004-08-26 Ricoh Co Ltd 画像形成装置、画像形成方法、情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2004312711A (ja) * 2003-03-25 2004-11-04 Ricoh Co Ltd 画像形成装置及び画像形成装置を遠隔のアプリケーションにより操作する方法
US20040249934A1 (en) * 2003-06-06 2004-12-09 Anderson Jeff M. Updating print server software based on update emails
JP4728611B2 (ja) 2003-08-12 2011-07-20 株式会社リコー 記憶媒体、記憶装置、情報処理装置、情報処理方法、情報処理プログラム及び記録媒体
JP4676724B2 (ja) 2003-08-12 2011-04-27 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US20050068558A1 (en) * 2003-09-30 2005-03-31 Jianxin Wang Method and system to automatically update in real-time a printer driver configuration
JP2005135187A (ja) * 2003-10-30 2005-05-26 Toshiba Corp 電子機器および組み込みソフトウェア更新方法
US8432562B2 (en) 2004-02-17 2013-04-30 Ricoh Company, Ltd. Image processing apparatus, method, program, and computer readable recording medium for controlling operation switching and displaying at occurrence of error conditions
JP4769515B2 (ja) 2004-09-07 2011-09-07 株式会社リコー アプリケーション実行方法、情報処理装置、画像形成装置、アプリケーション実行プログラム、記録媒体、及び情報処理システム
US7509249B2 (en) * 2005-06-07 2009-03-24 Rockwell Automation Technologies, Inc. Event-driven component mirroring method and system
US7546582B2 (en) * 2005-03-30 2009-06-09 International Business Machines Corporation Managing dynamic configuration data for producer components in a computer infrastructure

Also Published As

Publication number Publication date
US20130308161A1 (en) 2013-11-21
US20070047017A1 (en) 2007-03-01
US8819665B2 (en) 2014-08-26
US8522229B2 (en) 2013-08-27
JP2007089139A (ja) 2007-04-05

Similar Documents

Publication Publication Date Title
JP4791910B2 (ja) 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
US8264717B2 (en) Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium
US9141374B2 (en) Image forming device, information processing method, information processing program, and recording medium
JP4769515B2 (ja) アプリケーション実行方法、情報処理装置、画像形成装置、アプリケーション実行プログラム、記録媒体、及び情報処理システム
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
JP5025192B2 (ja) 機器、情報処理方法、情報処理プログラム、及び記録媒体
JP2005269619A (ja) 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2006148876A (ja) 画像形成装置、情報処理方法、情報処理プログラム及び記録媒体
JP4832226B2 (ja) 機器、情報処理方法、情報処理プログラム、及び記録媒体
JP2007049677A (ja) 画像形成装置、情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2007048270A (ja) 画像形成装置、情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
JP4848468B2 (ja) 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP5246299B2 (ja) 機器、情報処理システム、情報処理方法、情報処理プログラム、及び記録媒体
JP5025193B2 (ja) 機器、情報処理方法、情報処理プログラム、及び記録媒体
JP2006079211A (ja) 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP4459033B2 (ja) 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2005269439A (ja) 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP5565439B2 (ja) 装置、情報処理方法、情報処理プログラム、及び記録媒体
JP5418543B2 (ja) 端末装置、情報処理方法、情報処理プログラム、記録媒体及び情報処理システム
JP5648723B2 (ja) 機器、情報処理方法、プログラム、記録媒体、及び情報処理システム
JP2011120250A (ja) 端末装置、情報処理方法、情報処理プログラム、及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110610

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110722

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

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4791910

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150