JP5036770B2 - Apparatus, wrapping processing method, and program - Google Patents

Apparatus, wrapping processing method, and program Download PDF

Info

Publication number
JP5036770B2
JP5036770B2 JP2009174424A JP2009174424A JP5036770B2 JP 5036770 B2 JP5036770 B2 JP 5036770B2 JP 2009174424 A JP2009174424 A JP 2009174424A JP 2009174424 A JP2009174424 A JP 2009174424A JP 5036770 B2 JP5036770 B2 JP 5036770B2
Authority
JP
Japan
Prior art keywords
application
version
function
service
message
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.)
Expired - Lifetime
Application number
JP2009174424A
Other languages
Japanese (ja)
Other versions
JP2009301558A (en
Inventor
勉 大石
克彦 中川
邦洋 秋吉
浩行 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009174424A priority Critical patent/JP5036770B2/en
Publication of JP2009301558A publication Critical patent/JP2009301558A/en
Application granted granted Critical
Publication of JP5036770B2 publication Critical patent/JP5036770B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

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

Description

この発明は、コピー、プリンタ、スキャナおよびファクシミリなどの画像形成処理にかかるユーザサービスを提供する画像形成装置に関し、特に、アプリケーションとアプリケーションが利用するサービスとの間でバージョン差が生じた場合に、バージョン差を吸収できる画像形成装置に関するものである。   The present invention relates to an image forming apparatus that provides a user service for image forming processing such as a copy, a printer, a scanner, and a facsimile, and in particular, when a version difference occurs between an application and a service used by the application. The present invention relates to an image forming apparatus capable of absorbing the difference.

近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が一般的に知られている。この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する3種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナ又はファクシミリ装置として動作させるものである。   In recent years, image forming apparatuses (hereinafter referred to as “multifunction machines”) in which the functions of apparatuses such as a printer, a copy machine, a facsimile machine, and a scanner are housed in a single housing are generally known. This multifunction device is provided with a display unit, a printing unit, an imaging unit, and the like in a single casing, and is provided with three types of software corresponding to a printer, a copying machine, and a facsimile machine, and by switching these software, Are operated as a printer, a copy, a scanner, or a facsimile machine.

このような従来の複合機では、プリンタ、コピー、ファクシミリ、スキャナなどの各機能単位でアプリケーションプログラムが起動され、ハードウェア資源にアクセスする機能を持ち合わせている。その際、アプリケーションプログラムが前提としているオペレーティングシステム(OS)のバージョンと、実際のオペレーティングシステム(OS)のバージョンとが同じことが前提となるが、例えば、OSをバージョンアップしてアプリケーションとの間でバージョン差が生じた場合、今まで使えていた機能が使えなくなったり、アプリケーションそのものが起動しなくなったりすることがある。   In such a conventional multi-function peripheral, an application program is activated for each functional unit such as a printer, a copy, a facsimile, and a scanner, and has a function of accessing hardware resources. At that time, it is assumed that the version of the operating system (OS) assumed by the application program is the same as the version of the actual operating system (OS). If there is a version difference, the functions that have been available up to now may not be used, or the application itself may not start.

このため、従来の複合機では、OSなどをバージョンアップすると、それに伴ってアプリケーションの方もコンパイルし直すことで、常に対応したバージョン関係にあることが要請されている。   For this reason, in a conventional multi-function device, when the OS is upgraded, the application is also recompiled accordingly, so that it is always required to have a compatible version relationship.

ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアがそれぞれ別個に設けられているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピー又はファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置(複合機)を発明した。   By the way, in such a conventional multi-function machine, software corresponding to a printer, a copy, a scanner, and a facsimile apparatus is provided separately, so that development of each software takes a lot of time. For this reason, the applicant has an application that has hardware resources used in image forming processing such as a display unit, a printing unit, and an imaging unit, and performs processing specific to each user service such as a printer, copy, or facsimile. When a user service is provided by interposing between these applications and hardware resources, hardware resource management, execution control, and image formation processing that are commonly required by at least two of the applications are provided. Invented an image forming apparatus (multifunction machine) equipped with a platform comprising various control services.

このような新規な複合機では、アプリケーションとコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが新規なアプリケーションを開発して複合機に搭載することが可能となり、これによって多種多様な機能を提供することが可能となる。   In such a new multifunction device, the application and the control service are provided separately. Therefore, after the multifunction device is shipped, a user or a third party as a third party develops and installs the new application on the multifunction device. This makes it possible to provide a wide variety of functions.

このような新規な複合機では、アプリケーションの少なくとも2つが共通に必要とするサービスを提供するコントロールサービスをアプリケーションと別個に設けた構成となっているため、新規アプリケーションを開発する場合には、各種コントロールサービスとのプロセス間通信を実現する処理をソースコードで記述する必要がある。しかしながら、新規アプリケーションを開発する場合、各コントロールサービスが提供する関数やメッセージなどを正確に把握した上で、予め規定された手順で記述しなければならず、各コントロールサービスやアプリケーションからの処理要求を受信可能とするアプリケーションプログラムインタフェース(API)をデバッグや機能追加によって繰り返しバージョンアップすると、ベンダーはどのバージョンに合わせてアプリケーション開発すればよいかが非常に分かり難くなり、アプリケーションの開発が難しくなる。また、バージョン差のあるアプリケーションを実行させることにより、システムに影響を及ぼす恐れもある。このことは、固定的な複数の機能を寄せ集めた従来の複合機では問題にならなかった新規な課題である。   In such a new multifunction device, a control service that provides services that are shared by at least two of the applications is provided separately from the application. Therefore, when developing a new application, various controls are provided. Processing to realize inter-process communication with the service needs to be described in source code. However, when developing a new application, it is necessary to accurately describe the functions and messages provided by each control service and describe them in a predefined procedure. If the application program interface (API) that can be received is repeatedly upgraded by debugging or adding functions, it becomes difficult for the vendor to know which version the application should be developed for, and it becomes difficult to develop the application. In addition, there is a possibility of affecting the system by executing an application having a version difference. This is a new problem that has not been a problem in conventional multi-function peripherals that have a plurality of fixed functions.

また、各コントロールサービスとアプリケーションのインタフェース(API )のすべてを、新規アプリケーションを開発するサードベンダなどの第三者に開示することは、プログラムの秘匿性、システムの安全性の観点から好ましくない。   Also, it is not preferable to disclose all control services and application interfaces (APIs) to a third party such as a third vendor who develops a new application from the viewpoint of program confidentiality and system security.

この発明は上記に鑑みてなされたもので、バージョンアップ等によりアプリケーションが使用している関数とコントロールサービス側の関数とで差異が生じた場合でも、アプリケーションのソースプログラムを書き換えることなく、関数呼び出しを行うことを可能とする技術を提供することを目的とする。また、コントロールサービスからアプリに通知されるメッセージを秘匿する技術を提供することを目的とする。   The present invention has been made in view of the above. Even when there is a difference between a function used by an application and a function on the control service side due to version upgrade or the like, a function call can be made without rewriting the source program of the application. It aims at providing the technology which can be performed. It is another object of the present invention to provide a technique for concealing a message notified to an application from a control service.

本発明の一実施形態によれば、アプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた装置において、前記コントロールサービスが送信するメッセージが、前記アプリケーションに通知しないものとして予め定めた非通知メッセージであるか否かを判断し、非通知メッセージである場合は、前記メッセージを前記アプリケーションに通知せず、非通知メッセージでない場合に、前記メッセージを前記アプリケーションに通知するラッピング処理手段を備えたことを特徴とする装置が提供される。 According to an embodiment of the present invention, in an apparatus including an application and a control service that performs processing on the system side based on a function call from the application, a message transmitted by the control service is not notified to the application. It is determined whether or not the message is a predetermined non-notification message. If the message is a non-notification message, the message is not notified to the application, and if the message is not a non-notification message, the message is notified to the application . There is provided an apparatus comprising a wrapping processing means.

本発明によれば、コントロールサービスからアプリに通知されるメッセージのうち特定のメッセージを秘匿することが可能となる。   ADVANTAGE OF THE INVENTION According to this invention, it becomes possible to conceal a specific message among the messages notified to an application from a control service.

実施の形態1にかかる複合機の構成を示すブロック図である。1 is a block diagram illustrating a configuration of a multifunction machine according to a first embodiment. 実施の形態1にかかる複合機のハードウェア構成を示すブロック図である。1 is a block diagram illustrating a hardware configuration of a multifunction machine according to a first embodiment; 実施の形態1にかかる複合機のVASの構成と、VASと各アプリ、コントロールサービス層および汎用OSとの関係を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration of a VAS of the multifunction peripheral according to the first embodiment and a relationship among the VAS, each application, a control service layer, and a general-purpose OS. HDに格納されるラッピング処理情報ファイルの内容例を示す説明図である。It is explanatory drawing which shows the example of the content of the wrapping process information file stored in HD. バージョン管理テーブルの内容例を示す説明図である。It is explanatory drawing which shows the example of the content of a version management table. VASによりラッピング処理を行う手順を示すフローチャートである。It is a flowchart which shows the procedure which performs a wrapping process by VAS. バージョンアップの有無及びバージョンアップの態様を記録したテーブルを示す図である。It is a figure which shows the table which recorded the presence or absence of version upgrade, and the aspect of version upgrade. ダミー引数を補充する場合のVAS140の記述例を示す図である。It is a figure which shows the example of description of VAS140 in the case of supplementing a dummy argument. VASにより特定のメッセージを隠蔽するためのラッピング処理を行う手順を示すフローチャートである。It is a flowchart which shows the procedure which performs the wrapping process for concealing a specific message by VAS. VASにより全体バージョンをチェックする手順を示すフローチャートである。It is a flowchart which shows the procedure which checks the whole version by VAS. VASにより関数単位にバージョンをチェックする手順を示すフローチャートである。It is a flowchart which shows the procedure which checks a version for every function by VAS. 実施の形態2にかかる複合機の構成を示すブロック図である。3 is a block diagram illustrating a configuration of a multifunction machine according to a second embodiment; FIG. 実施の形態2にかかる複合機のVASの構成と、VASと各アプリ、コントロールサービス層および汎用OSとの関係を示すブロック図である。FIG. 6 is a block diagram illustrating a configuration of a VAS of a multifunction peripheral according to a second embodiment and a relationship between the VAS, each application, a control service layer, and a general-purpose OS. VASの構成例を示す図である。It is a figure which shows the structural example of VAS.

以下に添付図面を参照して、本発明の好適な実施の形態を詳細に説明する。   Exemplary embodiments of the present invention will be described below in detail with reference to the accompanying drawings.

(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」という)の構成を示すブロック図である。図1に示すように、複合機100は、白黒レーザプリンタ(B&W LP)101と、カラーレーザプリンタ(Color LP)102と、スキャナ、ファクシミリ、ハードディスク、メモリ、ネットワークインタフェースなどのハードウェアリソース103を有するとともに、プラットホーム120とアプリケーション130と仮想アプリケーションサービス(VAS:Virtual Application Service)140から構成されるソフトウェア群110を備えている。
(Embodiment 1)
FIG. 1 is a block diagram showing a configuration of an image forming apparatus (hereinafter referred to as “multifunction machine”) according to Embodiment 1 of the present invention. As shown in FIG. 1, the multi-function device 100 includes a monochrome laser printer (B & W LP) 101, a color laser printer (Color LP) 102, and hardware resources 103 such as a scanner, a facsimile, a hard disk, a memory, and a network interface. A software group 110 including a platform 120, an application 130, and a virtual application service (VAS) 140 is also provided.

仮想アプリケーションサービス(VAS)140は、アプリケーション130とプラットホーム120の間に配置される。VAS140は、アプリから見るとプラットホーム120のサービス層として認識され、サービス層から見るとアプリとして認識されるように登録される。また、VAS140は、アプリに対してはサーバプロセスとして動作し、各コントロールサービスに対してはクライアントプロセスとして動作する。   A virtual application service (VAS) 140 is disposed between the application 130 and the platform 120. The VAS 140 is registered so as to be recognized as a service layer of the platform 120 when viewed from the application and as an application when viewed from the service layer. Further, the VAS 140 operates as a server process for an application and operates as a client process for each control service.

このVAS140の第1の基本機能は、アプリケーションがコントロールサービスの機能を利用するために使用しているAPIとしての関数と、コントロールサービスが提供するAPIとしての関数との間でのバージョン差を吸収する機能である。この機能により、バージョン差があったとしても、アプリケーション130を再コンパイルすることなくそのまま関数呼び出しを行うことができる。また、コントロールサービスからのメッセージを取捨選択することによってプラットホーム120を隠蔽する機能もある。これらをラッピング機能という。   The first basic function of the VAS 140 absorbs a version difference between an API function used by an application to use the control service function and an API function provided by the control service. It is a function. With this function, even if there is a version difference, a function call can be performed without recompiling the application 130. There is also a function for concealing the platform 120 by selecting messages from the control service. These are called wrapping functions.

VAS140の第2の基本機能は、アプリがVAS140に対して使用する関数のバージョンと、VAS140が有する関数のバージョンとのバージョン差を検出し、その検出されたバージョン差がVAS140によってサポート可能な範囲か否かを判定して、その判定結果をアプリに通知する機能を有している。これにより、例えばアプリ動作前にバージョンが適切かどうかを判断できる。これをバージョン管理機能という。   The second basic function of the VAS 140 is to detect a version difference between a function version used by the application for the VAS 140 and a function version of the VAS 140, and whether the detected version difference can be supported by the VAS 140. It has a function of determining whether or not to notify the app of the determination result. Thereby, for example, it is possible to determine whether the version is appropriate before the application operation. This is called a version control function.

なお、VAS140のプログラムを、例えば、SD(Secure Digital)カードに格納して、そこからVAS140を起動することも可能である。また、ネットワーク接続されたサーバにVAS140のプログラムを格納しておき、そこからネットワーク経由でVAS140を複合機100にインストール、もしくは、起動することが可能である。   It is also possible to store the VAS 140 program in, for example, an SD (Secure Digital) card and start the VAS 140 from there. Further, the VAS 140 program can be stored in a server connected to the network, and the VAS 140 can be installed or activated in the MFP 100 via the network.

プラットホーム120は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一又は複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。   The platform 120 interprets a processing request from an application and generates a hardware resource acquisition request, and a system resource manager that manages one or a plurality of hardware resources and arbitrates the acquisition request from the control service. (SRM) 123 and a general-purpose OS 121.

コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。なお、このプラットホーム120の各サービスは、予め定義された関数により前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有している。   The control service is formed of a plurality of service modules, and includes an SCS (system control service) 122, an ECS (engine control service) 124, an MCS (memory control service) 125, an OCS (operation panel control service) 126, and an FCS. (Fax Control Service) 127 and NCS (Network Control Service) 128. Each service of the platform 120 has an application program interface (API) that can receive a processing request from the application 130 by a predefined function.

汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。   The general-purpose OS 121 is a general-purpose operating system such as UNIX (registered trademark), and executes the software of the platform 120 and the application 130 in parallel as processes.

SRM123のプロセスは、SCS122とともにシステムの制御およびリソースの管理を行うものである。SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。   The process of the SRM 123 performs system control and resource management together with the SCS 122. The SRM123 process uses hardware resources such as engines such as a scanner unit and printer unit, memory, HDD files, and host I / O (centro I / F, network I / F, IEEE 1394 I / F, RS232C I / F, etc.). Arbitration is performed according to the request from the upper layer to be used, and execution control is performed.

具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。   Specifically, the SRM 123 determines whether the requested hardware resource is available (whether it is not used by another request), and if it is available, the requested hardware resource is used. Tell the upper layer that it is possible. In addition, the SRM 123 performs use scheduling of hardware resources in response to a request from an upper layer, and directly executes request contents (for example, paper conveyance and image forming operation, memory allocation, file generation, etc. by a printer engine). .

SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。   The process of the SCS 122 performs application management, operation unit control, system screen display, LED display, resource management, interrupt application control, and the like.

ECS124のプロセスは、白黒レーザプリンタ(B&W LP)101、カラーレ
ーザプリンタ(Color LP)102、スキャナ、ファクシミリなどからなるハードウェアリソース103のエンジンの制御を行う。
The process of the ECS 124 controls the engine of the hardware resource 103 including a monochrome laser printer (B & W LP) 101, a color laser printer (Color LP) 102, a scanner, a facsimile, and the like.

MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。   The MCS 125 process acquires and releases an image memory, uses a hard disk device (HDD), compresses and decompresses image data, and the like.

FCS127のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。   The process of FCS 127 includes facsimile transmission / reception using PSTN / ISDN network from each application layer of the system controller, registration / quotation of various facsimile data managed by BKM (backup SRAM), facsimile reading, facsimile reception printing, and fusion transmission / reception. Provides an API to do.

NCS128のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。   The NCS 128 process is a process for providing a service that can be commonly used for applications that require network I / O. Data received from the network side according to each protocol is distributed to each application, and data from the application. Mediation when sending to the network side. Specifically, it has server daemons such as ftpd, httpd, lpd, snmpd, telnetd, and smtpd and client functions of the same protocol.

OCS126のプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)の制御を行う。OCS126は、オペレーションパネルからのキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信するOCSプロセスの部分と、アプリケーション130又はコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などが予め登録されたOCSライブラリの部分とから構成される。このOCSライブラリは、アプリケーション130およびコントロールサービスの各モジュールにリンクされて実装されている。なお、OCS126のすべてをプロセスとして動作させるように構成しても良く、あるいはOCS126のすべてをOCSライブラリとして構成しても良い。   The process of the OCS 126 controls an operation panel (operation panel) serving as information transmission means between the operator (user) and the main body control. The OCS 126 acquires a key press from the operation panel as a key event, transmits a key event function corresponding to the acquired key to the SCS 122, and displays various screens on the operation panel according to a request from the application 130 or the control service. A drawing function for drawing and outputting, a function for controlling the operation panel, and the like are composed of pre-registered OCS library portions. The OCS library is mounted by being linked to each module of the application 130 and the control service. The OCS 126 may be configured to operate as a process, or the OCS 126 may be configured as an OCS library.

アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116とを有している。これらの各アプリは、その起動時にVAS140に対して自プロセスのプロセスIDとともにアプリ登録要求メッセージを送信し、アプリ登録要求メッセージを受信したVAS140によって、起動したアプリに対する登録が行われるようになっている。   The application 130 includes a printer application 111 that is a printer application having a page description language (PDL), PCL, and postscript (PS), a copy application 112 that is a copy application, and a fax application 113 that is a facsimile application. A scanner application 114 as a scanner application, a network file application 115 as a network file application, and a process inspection application 116 as a process inspection application. Each of these applications transmits an application registration request message together with the process ID of its own process to the VAS 140 at the time of activation, and registration of the activated application is performed by the VAS 140 that has received the application registration request message. .

アプリケーション130の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。   Each process of the application 130 and each process of the control service realize user services related to image forming processing such as copying, printers, scanners, and facsimiles while performing inter-process communication by calling functions, sending return values thereof, and sending and receiving messages. is doing.

このように、実施の形態1にかかる複合機100には、複数のアプリケーション130および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一又は複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション130に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。また、複合機100には、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に新規アプリ117、118を開発して搭載することが可能となっている。図1では、この新規アプリ117、118を搭載した例を示している。   As described above, the MFP 100 according to the first embodiment includes a plurality of applications 130 and a plurality of control services, all of which operate as processes. In each of these processes, one or a plurality of threads are generated and parallel execution is performed in units of threads. The control service provides a common service to the application 130. For this reason, a large number of these processes perform a parallel operation and a parallel operation of threads to perform inter-process communication with each other. User services related to image forming processing such as copying, printers, scanners, and facsimiles are provided. In addition, a third party such as a third vendor can develop and install new applications 117 and 118 in the application layer above the control service layer in the multifunction peripheral 100. FIG. 1 shows an example in which the new applications 117 and 118 are installed.

なお、実施の形態1にかかる複合機100では、複数のアプリケーション130のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション130とコントロールサービスのプロセスをそれぞれ単一の構成とすることも可能である。また、各アプリケーション130は、アプリケーションごとに追加又は削除することができる。更に、実施の形態1にかかる複合機100では、VAS140に加えてダイナミックリンクライブラリ(DLL)を採用することが可能である。   In the MFP 100 according to the first embodiment, a plurality of application 130 processes and a plurality of control service processes are operating. However, the application 130 and the control service process have a single configuration. Is also possible. Each application 130 can be added or deleted for each application. Furthermore, in the MFP 100 according to the first embodiment, it is possible to employ a dynamic link library (DLL) in addition to the VAS 140.

図2に複合機100のハードウェア構成例を示す。   FIG. 2 shows a hardware configuration example of the multifunction peripheral 100.

複合機100は、コントローラ160と、オペレーションパネル175と、ファックスコントロールユニット(FCU)176と、プリンタ等の画像形成処理に特有のハードウェア資源であるエンジン部177とを含む。コントローラ160は、CPU161と、システムメモリ162と、ノースブリッジ(NB)163と、サウスブリッジ(SB)164と、ASIC166と、ローカルメモリ167と、HDD168と、ネットワークインターフェースカード(NIC)169と、SDカード用スロット170と、USBデバイス171と、IEEE1394デバイス172と、セントロニクス173とを含む。なお、メモリ162、167はRAM、ROM等を含む。FCU176およびエンジン部177は、コントローラ160のASIC166にPCIバス178で接続されている。   The multi-function device 100 includes a controller 160, an operation panel 175, a fax control unit (FCU) 176, and an engine unit 177 that is a hardware resource unique to image forming processing such as a printer. The controller 160 includes a CPU 161, a system memory 162, a north bridge (NB) 163, a south bridge (SB) 164, an ASIC 166, a local memory 167, an HDD 168, a network interface card (NIC) 169, and an SD card. Slot 170, USB device 171, IEEE 1394 device 172, and Centronics 173. The memories 162 and 167 include RAM, ROM, and the like. The FCU 176 and the engine unit 177 are connected to the ASIC 166 of the controller 160 via the PCI bus 178.

CPU161が、複合機100にインストールされるアプリケーション、コントロールサービス等のプログラムを、メモリから読み出して実行する。   The CPU 161 reads programs such as applications and control services installed in the multifunction peripheral 100 from the memory and executes them.

図3は、実施の形態1にかかる複合機100のVAS140の構成と、VAS140と各アプリ、コントロールサービス層150および汎用OS121との関係を示すブロック図である。なお、図3では、アプリケーション130の例として、プリンタアプリ111、コピーアプリ112、新規アプリ117、118を示しているが、更にアプリを追加することもできる。   FIG. 3 is a block diagram illustrating the configuration of the VAS 140 of the multifunction peripheral 100 according to the first embodiment and the relationship between the VAS 140 and each application, the control service layer 150, and the general-purpose OS 121. In FIG. 3, the printer application 111, the copy application 112, and the new applications 117 and 118 are shown as examples of the application 130, but more applications can be added.

仮想アプリケーションサービス(VAS)140のプロセスには、ディスパッチャ144と、制御スレッド143と、ラッピング処理スレッド141と、バージョン管理スレッド142とが動作している。   In the process of the virtual application service (VAS) 140, a dispatcher 144, a control thread 143, a wrapping processing thread 141, and a version management thread 142 are operating.

ディスパッチャ144は、アプリケーション130やコントロールサービスからのメッセージ受信を監視し、受信したメッセージに応じて制御スレッド143 、ラッピング処理スレッド141、バージョン管理スレッド142に処理要求を行うものである。実施の形態1の複合機100では、ディスパッチャ144は、各アプリが起動したときにアプリからのアプリ登録要求メッセージを受信すると、そのアプリ登録要求メッセージを制御スレッド143に送信する。   The dispatcher 144 monitors message reception from the application 130 and the control service, and makes processing requests to the control thread 143, the wrapping processing thread 141, and the version management thread 142 according to the received message. In the multifunction device 100 of the first embodiment, when the dispatcher 144 receives an application registration request message from the application when each application is activated, the dispatcher 144 transmits the application registration request message to the control thread 143.

制御スレッド143は、ディスパッチャ144からアプリ登録要求メッセージを受信してアプリ登録処理を行う。ここで、アプリ登録処理とは、RAM210にアプリ登録テーブル(図示せず)を生成し、アプリ登録要求メッセージを送信したアプリの識別情報であるアプリIDをアプリ登録テーブルに記録する処理をいう。また、制御スレッド143は、HD200に格納されたラッピング処理情報ファイル201を参照して、アプリ登録要求を行ったアプリについて、ラッピング処理情報が記録されているか否かをチェックする。   The control thread 143 receives the application registration request message from the dispatcher 144 and performs application registration processing. Here, the application registration process is a process of generating an application registration table (not shown) in the RAM 210 and recording an application ID, which is identification information of the application that transmitted the application registration request message, in the application registration table. Also, the control thread 143 refers to the wrapping process information file 201 stored in the HD 200 and checks whether wrapping process information is recorded for the application that has made the application registration request.

ラッピング処理スレッド141の機能概要は次のとおりである。   An outline of the function of the wrapping processing thread 141 is as follows.

コントロールサービスが提供する関数(API)がバージョンアップして引数の追加等がされたが、アプリ側でそのコントロールサービスに対して使用するその関数はバージョンアップ前のものであったとしても、ラッピング処理スレッド141がアプリ側から呼び出された関数の変更を行うことにより、バージョン差を吸収するというものである。   The function (API) provided by the control service has been upgraded and arguments have been added, etc., but even if the function used for the control service on the application side was before the upgrade, wrapping processing The thread 141 absorbs the version difference by changing the function called from the application side.

更に、ラッピング処理スレッド141は、ラッピング処理情報ファイル201を参照することにより、コントロールサービス層150からアプリに対して通知されるメッセージを選択する機能を有している。特に、複合機100のシステムに大きく影響を与えるインタフェースについては、サードベンダなどの第三者に対し隠蔽しておき、直接コントロールサービスに対してアクセスすることを回避する。これにより、複合機のセキュリティ面および障害発生の未然防止を行うことができる。   Further, the wrapping processing thread 141 has a function of selecting a message notified from the control service layer 150 to the application by referring to the wrapping processing information file 201. In particular, an interface that greatly affects the system of the multifunction peripheral 100 is hidden from a third party such as a third vendor to avoid direct access to the control service. As a result, it is possible to prevent the security of the multifunction peripheral and the occurrence of a failure.

また、バージョン管理スレッド142は、制御スレッド143からの処理要求を受け、アプリがVAS140に対して使用する関数のバージョンと、実際のVAS140が有する関数のバージョンとの違いを検出し、バージョン管理テーブル211を参照することにより、発生したバージョン差がVAS140によってサポート可能な範囲か否かを判定する。   Also, the version management thread 142 receives a processing request from the control thread 143, detects the difference between the function version used by the application for the VAS 140 and the function version of the actual VAS 140, and the version management table 211 , It is determined whether the generated version difference is within a range that can be supported by the VAS 140.

図4は、HD200に格納されるラッピング処理情報ファイル201の内容例を示す説明図である。図4に示すように、ラッピング処理情報ファイル201は、コントロールサービス層150からアプリに対するメッセージ(イベント)の非通知設定を行うための情報ファイルであり、複合機100のシステムに大きく影響を与えるインタフェースについては第三者に対して隠蔽するよう、メッセージごとに任意の非通知設定を行うことができる。図4のイベントAとCは、非通知設定がなされているのでアプリには通知されず、また、イベントBのように非通知設定がなされていないイベントについては、通常通り通知が行われる。   FIG. 4 is an explanatory diagram showing an example of the contents of the wrapping processing information file 201 stored in the HD 200. As shown in FIG. As shown in FIG. 4, the wrapping processing information file 201 is an information file for performing a non-notification setting of a message (event) to the application from the control service layer 150, and an interface that greatly affects the system of the multifunction peripheral 100. Can set any non-notification for each message so as to conceal it from a third party. Events A and C in FIG. 4 are not notified to the application because non-notification is set, and events that are not set for non- notification such as event B are notified as usual.

図5は、バージョン管理テーブル211の内容例を示す説明図である。なお、このテーブルは、VAS140の実行ファイルに含める形で実装でき、VAS140が実行される際には例えばRAM210に展開される。実行ファイルにテーブル211を含めるには、例えば、図5に示すバージョン情報をインクルードファイルとして作成しておき、作成したプログラムにインクルードしてコンパイルする。また、このテーブルを別ファイルとし、これを複合機100に格納しておき、VAS140が適宜このファイルを参照してもよい。   FIG. 5 is an explanatory diagram showing an example of the contents of the version management table 211. This table can be mounted so as to be included in the execution file of the VAS 140. When the VAS 140 is executed, the table is expanded in the RAM 210, for example. In order to include the table 211 in the execution file, for example, the version information shown in FIG. 5 is created as an include file, and included in the created program and compiled. Alternatively, this table may be a separate file, stored in the multifunction device 100, and the VAS 140 may refer to this file as appropriate.

図5に示すように、このバージョン管理テーブル211には、VAS140の全体バージョン番号と、VAS140がサポート可能なアプリの全体バージョンの範囲が記録されている。なお、サポート可能な範囲は、例えば、複合機100で使用されるVAS140のバージョンより一定範囲前のバージョンまでである。   As shown in FIG. 5, in this version management table 211, the overall version number of the VAS 140 and the range of the overall version of the application that can be supported by the VAS 140 are recorded. The supportable range is, for example, a version up to a certain range before the version of the VAS 140 used in the MFP 100.

なお、ここで、VAS140の全体バージョンとは、VAS140が提供する関数のセットのバージョンであり、アプリの全体バージョンとは、アプリがVAS140に対して使用する関数のセットのバージョンである。なお、アプリがVAS140に対して使用する関数のセットのバージョン、アプリを作成するときに使用したVAS140の関数セットのバージョンと同じである。   Here, the overall version of the VAS 140 is a version of a function set provided by the VAS 140, and the overall version of the application is a version of a set of functions used by the application for the VAS 140. Note that the version of the function set used by the application for the VAS 140 and the version of the function set of the VAS 140 used when creating the application are the same.

更に、バージョン管理テーブル211は、関数毎に、VAS140の関数のバージョン番号とその関数がサポートできる、アプリ側がVAS140に対して使用する関数のバージョンの範囲を含んでいる。なお、VAS140は上記のように各機能をスレッドとして実装してもよいし、1つのプロセスとして動作するようにしてもよい。   Further, the version management table 211 includes, for each function, the version number of the function of the VAS 140 and the function version range that can be supported by the application for the VAS 140. Note that the VAS 140 may implement each function as a thread as described above, or may operate as one process.

次に、このように構成された複合機100のVAS140によるラッピング処理とバージョン管理について説明する。まず、ラッピング処理について説明する。   Next, wrapping processing and version management by the VAS 140 of the MFP 100 configured as described above will be described. First, the wrapping process will be described.

図6は、VAS140のラッピング処理スレッドによるラッピング処理の手順を示すフローチャートである。   FIG. 6 is a flowchart showing the procedure of the wrapping process performed by the VAS 140 wrapping process thread.

コントロールサービスが提供する関数がバージョンアップされた場合、その関数と、アプリがそのコントロールサービスに対して使用する関数との間にバージョン差が生じる。このような場合に、上記関数間の違いを吸収するためのVAS140の処理を図6を用いて説明する。   When a function provided by the control service is upgraded, a version difference occurs between the function and a function used by the application for the control service. In such a case, the processing of the VAS 140 for absorbing the difference between the functions will be described with reference to FIG.

なお、VAS140は、各コントロールサービスに対する関数毎に、その前のバージョンに対して、関数がバージョンアップされているか否か、バージョンアップされているとすればそのバージョンアップがどのようなものかを示す情報を有している。この情報は、VAS140のプログラムの作成時に、例えば図7に示すテーブルの形式でプログラムに含めることができる。なお、バージョンアップの態様としては、例えば、関数の追加、分割、削除、変更、統合があり、また、引数の追加、分割、削除がある。   The VAS 140 indicates, for each function for each control service, whether or not the function has been upgraded with respect to the previous version, and if so, what the version upgrade is. Have information. This information can be included in the program when the VAS 140 program is created, for example, in the form of a table shown in FIG. Examples of version upgrade include addition, division, deletion, change, and integration of functions, and addition, division, and deletion of arguments.

まず、ステップS601において、アプリからの処理要求に対応する関数がバージョンアップされているか否かを図7の情報を参照することによりチェックする。バージョンアップされていなければ通常の処理を行う(ステップS604)。バージョンアップされていれば、そのバージョンアップの態様が、関数の分割又は引数の追加かどうかを判断する(ステップS602)。   First, in step S601, it is checked by referring to the information in FIG. 7 whether the function corresponding to the processing request from the application has been upgraded. If the version has not been upgraded, normal processing is performed (step S604). If the version has been upgraded, it is determined whether the version upgrade mode is function division or argument addition (step S602).

ここで、関数の分割又は引数の追加、のいずれでもない場合には、バージョンアップが関数の削除、変更、統合等である。この場合には、アプリからの要求に対応する関数がコントロールサービス側に存在しなくなるため、アプリからの関数呼び出しがあってもその処理を行うことができない。このため、アプリに対してNGであることを通知し(ステップS605)、終了を処理する(ステップS606)。   Here, when the function is not divided or an argument is added, the version upgrade is deletion, change, integration, or the like of the function. In this case, since the function corresponding to the request from the application does not exist on the control service side, even if there is a function call from the application, the process cannot be performed. For this reason, it is notified that the application is NG (step S605), and the termination is processed (step S606).

一方、ステップS602において、関数の分割、引数の追加である場合、対応する関数の数、引数の数が増えるため、増えた部分にダミー関数、又は、ダミー引数を補填する(ステップS603)、そして、通常の処理を行う(ステップ604)。なお、ダミー引数を補充する場合のVAS140の記述例を図8に示す。図8に示すように、アプリ側から要求を受ける関数"API_for_Apli_No1(int arg1, int arg2)"を、引数dummyを含む"API_for_XCS_No1(arg1, arg2, dummy)"に変換している。   On the other hand, in the case of dividing the function and adding an argument in step S602, since the number of corresponding functions and the number of arguments increase, a dummy function or dummy argument is filled in the increased portion (step S603), and Normal processing is performed (step 604). FIG. 8 shows a description example of the VAS 140 when supplementing dummy arguments. As shown in FIG. 8, the function “API_for_Apli_No1 (int arg1, int arg2)” received from the application side is converted to “API_for_XCS_No1 (arg1, arg2, dummy)” including the argument dummy.

なお、関数が追加されたことによりコントロールサービスがバージョンアップしている場合には、既存の関数自体は変化しないことから、追加された機能はアプリから使えないが、アプリからの関数呼び出しには影響を与えない。   Note that if the control service is upgraded due to the addition of a function, the existing function itself will not change, so the added function cannot be used from the application, but it will affect the function call from the application. Not give.

次に、コントロールサービスの特定のインタフェースを隠蔽するための処理について説明する。コントロールサービスからアプリに対して全てメッセージ通知(例えば、イベント通知)が行われるとすると、複合機100のシステムに大きく影響を与えるコントロールサービスに対して直接アクセスすることが可能となり、複合機のセキュリティ面および障害発生を未然に防止する面から好ましくない。   Next, a process for hiding a specific interface of the control service will be described. If all message notifications (for example, event notification) are performed from the control service to the application, it is possible to directly access the control service that greatly affects the system of the multifunction device 100, and the security aspects of the multifunction device. It is not preferable from the viewpoint of preventing the occurrence of a failure.

そこで、実施の形態1では、非通知とするイベントを、図4のラッピング処理情報ファイル201に予め設定する。この設定はどのようにして行ってもよい。例えば、複合機100外でラッピング処理情報ファイル201を作成し、複合機100に格納してもよいし、VAS140が設定のための画面をオペレーションパネルに表示し、そこから設定してもよい。また、VAS140の実行ファイルに含めるようにして実装してもよい。   Therefore, in the first embodiment, an event to be notified is set in advance in the wrapping processing information file 201 of FIG. This setting may be performed in any way. For example, the wrapping processing information file 201 may be created outside the multi-function device 100 and stored in the multi-function device 100, or the VAS 140 may display a setting screen on the operation panel and set from there. Further, it may be mounted so as to be included in the execution file of the VAS 140.

図9は、VAS140によりラッピング処理を行う手順を示すフローチャートである。   FIG. 9 is a flowchart showing a procedure for performing a wrapping process by the VAS 140.

あるコントロールサービスからアプリに向けてメッセージ通知がなされる場合、ラッピング処理スレッド141がラッピング処理情報ファイル201を参照する(ステップS701)。そのメッセージに対して非通知設定がなされているかどうかをチェックし(ステップS702)、そのメッセージに対して非通知設定がなされていれば、ラッピング処理スレッド141はそのメッセージをアプリに通知しない(ステップS703)。また、上記ステップS701において、上記のメッセージに対してラッピング処理情報ファイル201内の設定自体が行われていないか、非通知設定されていない場合は、通常通りアプリにメッセージが通知される(ステップS704)。   When a message notification is made from a certain control service to the application, the wrapping processing thread 141 refers to the wrapping processing information file 201 (step S701). It is checked whether or not non-notification setting is made for the message (step S702), and if non-notification setting is made for the message, the wrapping thread 141 does not notify the message to the application (step S703). ). In step S701, if the setting in the wrapping processing information file 201 is not performed for the above message or if no notification is set, the message is notified to the application as usual (step S704). ).

ここでは、特定のイベントをアプリに通知するか否かを任意かつ事前に設定できるようにしたため、複合機のセキュリティ面および障害発生を未然に防止することが可能になる。また、実施の形態1では、新規アプリケーションを開発するサードベンダなどの第三者に特定のインタフェースを開示する必要があるため、開示できるインタフェースを自由に選択できるようにすることは非常に重要である。   Here, since it is possible to arbitrarily set in advance whether or not to notify the application of a specific event, it is possible to prevent the security of the multifunction device and the occurrence of a failure. In the first embodiment, since it is necessary to disclose a specific interface to a third party such as a third vendor who develops a new application, it is very important to be able to freely select an interface that can be disclosed. .

次に、アプリがVAS140に対して使用する関数(API)と、VAS140が有する関数とのバージョン差をチェックする手順について説明する。上記のように、VAS140により、アプリとコントロールサービス間での関数のバージョン差を吸収するが、VAS140自体のバージョンアップにより、VAS140がアプリに対して提供する関数と、アプリがVAS140に対して使用する関数との間でバージョン差が生じることがある。これから説明する処理は、バージョン差をチェックし、VAS140がサポートできる範囲のバージョン差であればVAS140の通常の処理を行うというものである。   Next, a procedure for checking a version difference between a function (API) used by the application for the VAS 140 and a function included in the VAS 140 will be described. As described above, the VAS 140 absorbs the function version difference between the application and the control service. However, the VAS 140 itself upgrades the function provided to the application by the VAS 140 itself, and the application uses the VAS 140. Version differences may occur between functions. The process described below is to check the version difference and perform the normal process of the VAS 140 if the version difference is within the range that the VAS 140 can support.

この処理では、アプリ自身が、全体バージョン情報と、VAS140に対して使用する関数毎のバージョン情報を保持し、アプリが起動したときに、その情報をプロセス間通信によりVAS140に通知している。アプリ側のこのバージョン情報は、例えばアプリの作成時にアプリに含められる。   In this process, the application itself holds the overall version information and version information for each function used for the VAS 140, and notifies the VAS 140 of the information by inter-process communication when the application is activated. This version information on the application side is included in the application when the application is created, for example.

VAS140によるバージョンチェック時期としては、アプリが実行される前であれば良く、例えばここではアプリ登録時に行ったが、これに限定されない。例えば、アプリを仮起動させて、そのときにVAS140がバージョンチェックを行ってもよい。仮起動とは、VAS140が、アプリとのプロセス間通信によりアプリの情報を取得するためだけにアプリを起動することである。なお、この場合のアプリは仮起動可能なように作られている。   The version check time by the VAS 140 may be before the application is executed. For example, although it is performed at the time of application registration here, it is not limited to this. For example, the application may be temporarily activated and the VAS 140 may check the version at that time. The provisional activation means that the VAS 140 activates the application only for acquiring the application information through inter-process communication with the application. Note that the application in this case is created so that it can be temporarily activated.

登録時には次のような処理が行われる。   The following processing is performed during registration.

ディスパッチャ144が、起動されたアプリからアプリ登録要求メッセージを受信すると、アプリ登録要求メッセージをそのアプリのプロセスIDとともに制御スレッド143に受け渡す。制御スレッド143は、アプリ登録要求メッセージとプロセスIDをディスパッチャ144から受信すると、アプリを識別するアプリIDを決定して、RAM210などに格納したアプリ登録テーブル(図示せず)にアプリIDを記録することにより、アプリ登録が行われる。なお、アプリIDは、コピーアプリ112、プリンタアプリ111など既存のアプリケーションについては、予め定められており、各アプリIDをVAS140の内部で保持している。また、サードベンダなどが開発した新規アプリ117、118については、最初の起動時におけるアプリ登録処理の中で決定される。   When the dispatcher 144 receives the application registration request message from the activated application, the dispatcher 144 passes the application registration request message to the control thread 143 together with the process ID of the application. Upon receiving the application registration request message and the process ID from the dispatcher 144, the control thread 143 determines an application ID for identifying the application, and records the application ID in an application registration table (not shown) stored in the RAM 210 or the like. Thus, application registration is performed. The application ID is determined in advance for existing applications such as the copy application 112 and the printer application 111, and each application ID is held inside the VAS 140. Further, the new applications 117 and 118 developed by a third vendor or the like are determined in the application registration process at the first activation.

以下、全体バージョンのチェックを行う場合と、関数毎のバージョンチェックを行う場合を分けて説明するが、全体バージョンチェックにおいてサポート範囲外と判断された場合にのみ、関数毎のバージョンチェックを行うようにしてもよい。   In the following, the case of checking the entire version and the case of checking the version for each function will be described separately. However, the version check for each function should be performed only when it is determined that the overall version check is out of the support range. May be.

まず、全体バージョンのチェックを行う場合について図10を参照して説明する。   First, the case of checking the entire version will be described with reference to FIG.

アプリ登録の要求があった場合(ステップS801)、まず、VAS140はアプリが有している全体バージョン番号を取得する(ステップS802)。   When there is a request for application registration (step S801), first, the VAS 140 acquires the overall version number of the application (step S802).

VAS140は、バージョン管理テーブル211の全体バージョンのサポート範囲とアプリの全体バージョン番号とを比較し、サポート範囲内か否かを判断する(ステップS803)。例えば、現在使用されているVAS140がサポートできるバージョンの範囲が1.0〜1.6であれば、この範囲内のバージョン番号であるときにサポート範囲内と判定する。この場合、当該アプリに対して「OK」が通知され(ステップS804)、正常にアプリ登録され(ステップS805)、通常の複合機100における処理が行われる(ステップS806)。また、ステップS803でアプリから取得したバージョン番号がサポート範囲外である場合には、当該アプリに対して「NG」が通知され(ステップS807)、アプリ登録が終了する(ステップS808)。   The VAS 140 compares the support range of the entire version in the version management table 211 with the overall version number of the application, and determines whether or not it is within the support range (step S803). For example, if the version range that can be supported by the currently used VAS 140 is 1.0 to 1.6, it is determined that the version number is within this range and that it is within the support range. In this case, “OK” is notified to the application (step S804), the application is normally registered (step S805), and processing in the normal multifunction peripheral 100 is performed (step S806). If the version number acquired from the application in step S803 is out of the support range, “NG” is notified to the application (step S807), and application registration ends (step S808).

次に、バージョンを関数毎にチェックする場合について説明する。図11にその処理手順を示す。   Next, a case where the version is checked for each function will be described. FIG. 11 shows the processing procedure.

図11の場合も、図10と同様にVAS140によるバージョンチェック時期として、アプリが実行される前であれば良く、ここではアプリ登録時を想定している。   Also in the case of FIG. 11, the version check time by the VAS 140 may be before the application is executed as in FIG. 10, and the application registration time is assumed here.

アプリ登録の要求があった場合(ステップS901)、VAS140はアプリから、アプリがVAS140に対して使用している関数毎のバージョン情報を取得する(ステップS902)。そして、VAS140は、バージョン管理テーブル211を参照し、アプリがVAS140に対して使用している関数毎に、アプリがVAS140に対して使用する関数のバージョン番号と、サポート範囲とを比較することにより、当該関数がVAS140のサポート範囲内か否かを判断する(ステップS903)。例えば、アプリがVAS140に対して使用している関数番号が「2」、「3」であり、そのバージョン番号がそれぞれ「バージョン1.1」と「バージョン2.0」である場合には、各関数がサポート範囲内となる。   When there is a request for application registration (step S901), the VAS 140 acquires version information for each function that the application uses for the VAS 140 from the application (step S902). Then, the VAS 140 refers to the version management table 211 and compares the version number of the function used by the application for the VAS 140 with the support range for each function used by the application for the VAS 140. It is determined whether or not the function is within the support range of the VAS 140 (step S903). For example, when the function numbers used by the application for the VAS 140 are “2” and “3” and the version numbers are “version 1.1” and “version 2.0”, respectively, The function is within the supported range.

図11の処理において、ステップS903においてアプリケーションがVAS140に対して使用している全ての関数についてサポート範囲内と判定された場合は、上記した図10のA以降と同様に処理され、ステップS903においてサポート範囲内でないと判定された場合は、図10のB以降と同様に処理される。なお、NGの場合に、VAS140は、どの関数がNGであるかをオペレーションパネルに表示してもよい。   In the processing of FIG. 11, if it is determined in step S903 that all functions used by the application for the VAS 140 are within the support range, the processing is performed in the same manner as in FIG. If it is determined that it is not within the range, the processing is performed in the same manner as in FIG. In the case of NG, the VAS 140 may display which function is NG on the operation panel.

アプリが使用していない関数のバージョンがVAS140側で変更された場合でも、VAS140のバージョンは変更されるため、全体バージョンの比較をしただけではバージョン差によってアプリの実行が不可となる場合があり得る。そこで、図11に示した処理のように、アプリがVAS140に対して使用している関数のバージョンを関数毎にチェックすることにより、上記の場合でもアプリの実行に問題がないことを判断できる。また、関数毎のチェックでサポート範囲外と判定された場合、その原因となった関数を容易に特定できる。   Even if the version of the function that is not used by the application is changed on the VAS 140 side, the version of the VAS 140 is changed. Therefore, the application may not be executed due to the version difference only by comparing the entire versions. . Therefore, by checking the function version used by the application for the VAS 140 for each function as in the process shown in FIG. 11, it can be determined that there is no problem in the execution of the application even in the above case. In addition, when it is determined that the check for each function is out of the support range, the function that caused the problem can be easily identified.

このように、実施の形態1にかかる複合機100では、VAS140のラッピング処理スレッド141が、バージョン差を吸収するので、コントロールサービスの関数がバージョンアップしたとしても、アプリをコンパイルし直す必要が無くなる。また、VAS140は、コントロールサービスからアプリに対するメッセージを取捨選択できるため、複合機100のシステムに大きく影響を与えるようなインタフェースについては、第三者に対して隠蔽することができる。   As described above, in the MFP 100 according to the first embodiment, the wrapping processing thread 141 of the VAS 140 absorbs the version difference, so that it is not necessary to recompile the application even if the function of the control service is upgraded. Further, since the VAS 140 can select a message for the application from the control service, an interface that greatly affects the system of the multifunction peripheral 100 can be hidden from a third party.

また、実施の形態1にかかる複合機100では、VAS140が、アプリから取得したバージョン情報を用いてバージョンチェックをできるので、安全にアプリを実行できる。また、実施の形態1にかかる複合機100では、上記したようにVAS140に加えてダイナミックリンクライブラリ(DLL)を採用することも可能であり、その場合はアプリケーションとコントロールサービス間のバージョン差の吸収力が増大するとともに、インタフェースを隠蔽することができるためインタフェースの秘匿性をより強固に確保することが可能となる。   Further, in the multifunction machine 100 according to the first embodiment, the VAS 140 can perform version check using the version information acquired from the application, so that the application can be executed safely. Further, in the MFP 100 according to the first embodiment, it is possible to adopt a dynamic link library (DLL) in addition to the VAS 140 as described above, and in this case, the absorbability of the version difference between the application and the control service. In addition, since the interface can be concealed, the secrecy of the interface can be more securely ensured.

(実施の形態2)
実施の形態1にかかる複合機100は、VAS140が全アプリケーションに対して1つだけ存在するものであった。この実施の形態2にかかる複合機では、各アプリごとに一つのVASが起動し、各VASは対応するアプリに対してのみバージョン管理およびラッピング処理を行うものである。
(Embodiment 2)
In the MFP 100 according to the first embodiment, only one VAS 140 exists for all applications. In the MFP according to the second embodiment, one VAS is activated for each application, and each VAS performs version management and wrapping processing only for the corresponding application.

図12は、実施の形態2にかかる複合機800の構成を示すブロック図である。図12に示すように、複合機800では、複数の仮想アプリケーションサービス(VAS)841〜848がアプリケーション130の各アプリごとに動作している点が、実施の形態1にかかる複合機100と異なっている。   FIG. 12 is a block diagram of the configuration of the multi-function device 800 according to the second embodiment. As illustrated in FIG. 12, the MFP 800 is different from the MFP 100 according to the first embodiment in that a plurality of virtual application services (VAS) 841 to 848 operate for each application of the application 130. Yes.

VAS841〜848は、プリンタアプリ111、コピーアプリ112、ファックスアプリ113、スキャナアプリ114、ネットファイルアプリ115、工程検査アプリ116、新規アプリ117および118に対応して、バージョン管理およびラッピング処理を行うようになっている。   The VASs 841 to 848 perform version management and wrapping processing corresponding to the printer application 111, the copy application 112, the fax application 113, the scanner application 114, the net file application 115, the process inspection application 116, and the new applications 117 and 118. It has become.

図13は、実施の形態2にかかる複合機800のVAS841〜848の構成と、VAS841〜848と各アプリ、コントロールサービス層150および汎用OS121との関係を示すブロック図である。なお、図12では、アプリケーション130として、プリンタアプリ111、コピーアプリ112、新規アプリ117、118の例を示し、更にこれら各アプリに対応したVAS841、842、847および848を例として示したが、他のアプリの場合も同様の構成となる。   FIG. 13 is a block diagram illustrating the configuration of the VASs 841 to 848 of the multi-function device 800 according to the second embodiment and the relationship between the VASs 841 to 848 and each application, the control service layer 150, and the general-purpose OS 121. In FIG. 12, examples of the printer application 111, the copy application 112, and the new applications 117 and 118 are shown as the application 130, and VAS 841, 842, 847, and 848 corresponding to these applications are shown as examples. In the case of this app, the configuration is the same.

また、実施の形態2にかかる複合機800では、実施の形態1の複合機100と異なり、図13に示すように、各VAS841〜848と各アプリとの間にはVAS制御プロセス(デーモン)801が動作している。   Also, in the multifunction device 800 according to the second embodiment, unlike the multifunction device 100 according to the first embodiment, as shown in FIG. 13, there is a VAS control process (daemon) 801 between each VAS 841 to 848 and each application. Is working.

このVAS制御プロセス(デーモン)801は、各アプリからアプリ登録要求メッセージを受信してアプリ登録処理を行うとともに、アプリ登録要求を行ったアプリに対応したVAS841〜848を生成する。また、各スレッドに対して処理の指示を行う。   The VAS control process (daemon) 801 receives an application registration request message from each application, performs application registration processing, and generates VASs 841 to 848 corresponding to the application that has made the application registration request. Also, processing instructions are given to each thread.

そして、仮想アプリケーションサービス(VAS)841〜848のプロセスには、ディスパッチャ144と、ラッピング処理スレッド141と、バージョン管理スレッド142とが動作している。   A dispatcher 144, a wrapping processing thread 141, and a version management thread 142 are operating in the processes of the virtual application service (VAS) 841 to 848.

ディスパッチャ144は、アプリケーション130やコントロールサービスからのメッセージ受信を監視し、例えば、受信したメッセージに応じてラッピング処理スレッド141、あるいはバージョン管理スレッド142に対して処理要求を行うものである。実施の形態2の複合機800では、ディスパッチャ144は、VAS制御プロセス801から、アプリID、アプリのプロセスIDとともに、バージョン管理要求メッセージ又はラッピング処理要求メッセージを受信するようになっている。ディスパッチャ144は、バージョン管理要求メッセージを受信したときには、アプリID、アプリのプロセスIDとともに受信したバージョン管理要求メッセージをバージョン管理スレッド142に送信し、ラッピング処理要求メッセージを受信したときには、アプリID、アプリのプロセスIDとともに受信したラッピング処理要求メッセージをラッピング処理スレッド141に送信する。バージョン管理スレッド142とラッピング処理スレッド141の処理内容は第1の実施の形態と同様である。   The dispatcher 144 monitors message reception from the application 130 or the control service, and makes a processing request to the wrapping processing thread 141 or the version management thread 142 according to the received message, for example. In the MFP 800 according to the second embodiment, the dispatcher 144 receives a version management request message or a wrapping process request message from the VAS control process 801 together with an application ID and an application process ID. When receiving the version management request message, the dispatcher 144 transmits the received version management request message together with the application ID and the process ID of the application to the version management thread 142. When receiving the wrapping processing request message, the dispatcher 144 receives the application ID and the application ID. The wrapping process request message received together with the process ID is transmitted to the wrapping process thread 141. The processing contents of the version management thread 142 and the wrapping processing thread 141 are the same as those in the first embodiment.

このように実施の形態2にかかる複合機800によれば、第1の実施の形態と同様の効果がある。更に、実施の形態2にかかる複合機800では、VAS841〜848は起動されるアプリケーション130ごとに別個に起動されるので、複数のアプリケーション130に対する判断処理を各アプリケーション130に対応するVAS841〜848で並列に実行することができ、処理が効率的に行えると共に、上記したバージョン管理やラッピング処理がアプリごとに行えるので、新規アプリの追加や交換時にも効率良く処理を行うことができる。   As described above, according to the MFP 800 according to the second embodiment, the same effects as those in the first embodiment can be obtained. Furthermore, in the multi-function device 800 according to the second embodiment, the VASs 841 to 848 are activated separately for each activated application 130, so that determination processing for a plurality of applications 130 is performed in parallel by the VASs 841 to 848 corresponding to each application 130. Since the above-described version management and wrapping process can be performed for each application, the process can be performed efficiently even when a new application is added or exchanged.

また、VASの構成として上記の構成の他、図14(a)〜(c)に示す構成をとることもできる。   In addition to the above-described configuration, the configuration shown in FIGS. 14A to 14C can be adopted as the configuration of the VAS.

図14(a)は、各アプリケーションに対して起動されるVASを、親VASの子プロセスとする場合であり、親VAS自体は画面制御権(ユーザインターフェース)を持たない。図14(b)は、親VAS自体が画面制御権(ユーザインターフェース)を持つ場合である。図14(c)は、各アプリケーションに対応するVASの機能をスレッドとして起動する場合を示している。   FIG. 14A shows a case where the VAS activated for each application is a child process of the parent VAS, and the parent VAS itself does not have a screen control right (user interface). FIG. 14B shows a case where the parent VAS itself has a screen control right (user interface). FIG. 14C shows a case where the VAS function corresponding to each application is activated as a thread.

なお、本明細書で説明した画像形成装置等の構成は例えば次のようにまとめることができる。   The configuration of the image forming apparatus and the like described in this specification can be summarized as follows, for example.

(構成1)
画像形成に関する処理を行うアプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた画像形成装置において、
アプリケーションから呼び出される関数を変換し、変換後の関数を用いてコントロールサービスへの関数呼び出しを行うラッピング処理手段を備えたことを特徴とする画像形成装置。
(Configuration 1)
In an image forming apparatus comprising an application that performs processing related to image formation, and a control service that performs processing on the system side based on a function call from the application,
An image forming apparatus comprising: a wrapping processing unit that converts a function called from an application and performs a function call to a control service using the converted function.

本構成によれば、アプリケーションから呼び出された関数を変換して、関数呼び出しを行うので、アプリケーションが使用している関数とコントロールサービス側の関数とで差異が生じた場合でも、アプリケーションのソースプログラムを書き換えることなく、関数呼び出しを行うことが可能となる。   According to this configuration, the function called from the application is converted and the function is called, so even if there is a difference between the function used by the application and the function on the control service side, the application source program It is possible to make function calls without rewriting.

(構成2)
前記ラッピング処理手段は、前記アプリケーションが前記コントロールサービスに対して使用する関数と、この関数に対応してコントロールサービスが有する関数との間でバージョン差がある場合に前記関数の変換を行う構成1に記載の画像形成装置。
(Configuration 2)
The wrapping processing unit converts the function when there is a version difference between a function used by the application for the control service and a function of the control service corresponding to the function. The image forming apparatus described.

本構成によれば、例えば、コントロールサービス側の関数のバージョンアップがあり、バージョン差が生じている場合に関数の変換を行う。これにより、バージョン不整合による不具合発生を防止できる。   According to this configuration, for example, there is a version upgrade of a function on the control service side, and the function is converted when a version difference occurs. Thereby, it is possible to prevent the occurrence of problems due to version mismatch.

(構成3)
前記ラッピング処理手段は、前記コントロールサービスが有する関数のバージョンが変更されたことを示す情報を参照することにより、前記バージョン差があることを判断する構成2に記載の画像形成装置。これによりバージョン差があること正確に判断できる。
(Configuration 3)
The image forming apparatus according to Configuration 2, wherein the wrapping processing unit determines that there is a version difference by referring to information indicating that a version of a function included in the control service has been changed. This makes it possible to accurately determine that there is a version difference.

(構成4)
前記ラッピング処理手段は、前記アプリケーションが前記コントロールサービスに対して使用する関数と、当該関数に対応するコントロールサービス側の関数との間で関数の数又は引数の数が異なる場合に、ダミーの関数又はダミーの引数を補填する変換を行う構成1に記載の画像形成装置。
(Configuration 4)
When the number of functions or the number of arguments differs between the function used by the application for the control service and the function on the control service side corresponding to the function, the wrapping processing means The image forming apparatus according to Configuration 1, wherein conversion is performed to compensate for dummy arguments.

アプリケーションが前記コントロールサービスに対して使用する関数と、当該関数に対応するコントロールサービス側の関数との間で関数の数又は引数の数が異なる場合には、関数呼び出しを行うことができなくなるが、本発明によれば、増加した関数や関数の引数に対応するダミーの関数又は関数の引数を補填することによって関数呼び出しが可能となる。   If the number of functions or the number of arguments differs between the function used by the application for the control service and the function on the control service side corresponding to the function, the function call cannot be performed. According to the present invention, it is possible to call a function by supplementing dummy functions or function arguments corresponding to the increased functions and function arguments.

(構成5)
画像形成に関する処理を行うアプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた画像形成装置において、
前記コントロールサービスが送信するメッセージの中から前記アプリケーションに通知するメッセージを取捨選択するラッピング処理手段を備えたことを特徴とする画像形成装置。
(Configuration 5)
In an image forming apparatus comprising an application that performs processing related to image formation, and a control service that performs processing on the system side based on a function call from the application,
An image forming apparatus comprising: a wrapping processing unit for selecting a message to be notified to the application from messages transmitted by the control service.

本構成によれば、第三者に対してはコントロールサービスとの間のインタフェースを隠蔽することができる。   According to this configuration, the interface with the control service can be hidden from a third party.

(構成6)
前記ラッピング処理手段は、前記アプリケーションに対して通知しない特定のメッセージを記録した情報を参照することにより、前記アプリケーションに対するメッセージを取捨選択する構成5に記載の画像形成装置。
(Configuration 6)
The image forming apparatus according to Configuration 5, wherein the wrapping processing unit selects messages for the application by referring to information in which a specific message not notified to the application is recorded.

本構成によれば、アプリケーションに対して通知しない特定のメッセージを記録した情報を参照するようにしたので、当該情報に所望のメッセージを記録しておくことにより、容易にメッセージを取捨選択を行うことが可能となる。   According to this configuration, since the information recorded with a specific message not notified to the application is referred to, the message can be easily selected by recording the desired message in the information. Is possible.

(構成7)
前記コントロールサービスをサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを更に備え、
前記ラッピング処理手段は、前記仮想アプリケーションサービスに含まれる構成1ないし6のうちいずれか1項に記載の画像形成装置。
(Configuration 7)
A virtual application service that operates as a client process that uses the control service as a server and that operates as a server process that uses the application as a client;
The image forming apparatus according to any one of Configurations 1 to 6, wherein the wrapping processing unit is included in the virtual application service.

(構成8)
前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを判断するバージョン管理手段を更に有する構成7に記載の画像形成装置。
(Configuration 8)
8. The image forming apparatus according to configuration 7, further comprising version management means for determining whether a version of an entire function used by the application for the virtual application service is within a predetermined range that can be supported by the virtual application service. apparatus.

本構成によれば、アプリケーションが仮想アプリケーションサービスに対して使用する関数全体のバージョンが、仮想アプリケーションサービスのサポート範囲内か否かを判断できるため、例えば、アプリケーションを実際に使用する前にこの判断を行うことにより、アプリケーションが仮想アプリケーションサービス上で使用できるもの否かを判断でき、障害の発生を未然に防止することができる。   According to this configuration, since it is possible to determine whether the version of the entire function used by the application for the virtual application service is within the support range of the virtual application service, for example, this determination is performed before actually using the application. By doing so, it can be determined whether or not the application can be used on the virtual application service, and the occurrence of a failure can be prevented in advance.

(構成9)
前記バージョン管理手段は、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記バージョンが前記所定の範囲内であるか否かを判断する構成8に記載の画像形成装置。
(Configuration 9)
The version management means obtains version information of the entire function used by the application for the virtual application service from the application, and refers to the information recorded in the predetermined range, so that the version is the predetermined 9. The image forming apparatus according to Configuration 8, wherein the image forming apparatus determines whether the range is within the range.

本構成によれば、容易に前記バージョンが前記所定の範囲内であるか否かを判断できる。   According to this configuration, it is possible to easily determine whether or not the version is within the predetermined range.

(構成10)
前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを、関数単位に判断するバージョン管理手段を更に有する構成7に記載の画像形成装置。
(Configuration 10)
The configuration 7 further includes version management means for determining, on a function basis, whether a version of a function used by the application for the virtual application service is within a predetermined range that the virtual application service can support. Image forming apparatus.

本構成によれば、関数単位に判断できるので、例えば、アプリケーションが使用していない関数がバージョンアップされても、このことに影響を受けずに判断を行うことができる。また、サポートが不可能なバージョン差がある関数を容易に特定することができる。   According to this configuration, since the determination can be made on a function basis, for example, even if a function that is not used by an application is upgraded, the determination can be made without being affected by this. In addition, it is possible to easily identify a function having a version difference that cannot be supported.

(構成11)
前記バージョン管理手段は、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数毎のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記関数のバージョンが前記所定の範囲内であるか否かを関数単位に判断する構成10に記載の画像形成装置。
(Configuration 11)
The version management means obtains version information for each function used by the application for the virtual application service from the application, and refers to the information recording the predetermined range, so that the version of the function is 11. The image forming apparatus according to the configuration 10, wherein whether or not it is within a predetermined range is determined on a function basis.

(構成12)
画像形成に関する処理を行うアプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた画像形成装置が実行する処理の方法であって、
アプリケーションから呼び出される関数を変換し、変換後の関数を用いてコントロールサービスへの関数呼び出しを行うラッピング処理ステップを有することを特徴とする方法。
(Configuration 12)
A method of processing executed by an image forming apparatus including an application that performs processing related to image formation and a control service that performs processing on the system side based on a function call from the application,
A method comprising a wrapping process step of converting a function called from an application and performing a function call to the control service using the converted function.

(構成13)
前記ラッピング処理ステップにおいて、前記アプリケーションが前記コントロールサービスに対して使用する関数と、この関数に対応してコントロールサービスが有する関数との間でバージョン差がある場合に関数の変換を行う構成12に記載の方法。
(Configuration 13)
The configuration 12 performs function conversion when there is a version difference between a function used by the application for the control service and a function of the control service corresponding to the function in the wrapping processing step. the method of.

(構成14)
前記ラッピング処理ステップにおいて、前記コントロールサービスが有する関数のバージョンが変更されたことを示す情報を参照することにより、前記バージョン差があることを判断する構成13に記載の方法。
(Configuration 14)
14. The method according to configuration 13, wherein in the wrapping processing step, the version difference is determined by referring to information indicating that a version of a function included in the control service has been changed.

(構成15)
前記ラッピング処理ステップにおいて、前記アプリケーションが前記コントロールサービスに対して使用する関数と、当該関数に対応するコントロールサービス側の関数との間で関数の数又は引数の数が異なる場合に、ダミーの関数又はダミーの引数を補填する変換を行う構成12に記載の方法。
(Configuration 15)
In the wrapping step, if the number of functions or the number of arguments differs between the function used by the application for the control service and the function on the control service side corresponding to the function, a dummy function or The method according to the configuration 12, which performs conversion to compensate for dummy arguments.

(構成16)
画像形成に関する処理を行うアプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた画像形成装置が実行する処理の方法であって、
前記コントロールサービスが送信するメッセージの中から前記アプリケーションに通知するメッセージを取捨選択するラッピング処理ステップを有することを特徴とする方法。
(Configuration 16)
A method of processing executed by an image forming apparatus including an application that performs processing related to image formation and a control service that performs processing on the system side based on a function call from the application,
A wrapping processing step of selecting a message to be notified to the application from messages transmitted by the control service.

(構成17)
前記ラッピング処理ステップにおいて、前記アプリケーションに対して通知しない特定のメッセージを記録した情報を参照することにより、前記アプリケーションに対するメッセージを取捨選択する構成16に記載の方法。
(Configuration 17)
The method according to the configuration 16, wherein in the wrapping processing step, a message for the application is selected by referring to information in which a specific message not notified to the application is recorded.

(構成18)
前記画像形成装置は、前記コントロールサービスをサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを更に備え、前記ラッピング処理ステップは、前記仮想アプリケーションサービスが実行する構成12ないし17のうちいずれか1項に記載の方法。
(Configuration 18)
The image forming apparatus further includes a virtual application service that operates as a client process that uses the control service as a server and that operates as a server process that uses the application as a client. The wrapping processing step is executed by the virtual application service. 18. The method according to any one of configurations 12 to 17.

(構成19)
前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを判断するバージョン管理ステップを更に有する構成18に記載の方法。
(Configuration 19)
19. The method of configuration 18, further comprising a version management step of determining whether a version of an entire function used by the application for the virtual application service is within a predetermined range that the virtual application service can support.

(構成20)
前記バージョン管理ステップにおいて、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記バージョンが前記所定の範囲内であるか否かを判断する構成19に記載の方法。
(Configuration 20)
In the version management step, the version information of the entire function used by the application for the virtual application service is acquired from the application, and the version is determined by referring to the information recording the predetermined range. The method according to configuration 19, wherein it is determined whether or not it is within a range.

(構成21)
前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを、関数単位に判断するバージョン管理ステップを更に有する構成18に記載の方法。
(Configuration 21)
The configuration 18 further includes a version management step of determining, on a function basis, whether a version of a function used by the application for the virtual application service is within a predetermined range that can be supported by the virtual application service. the method of.

(構成22)
前記バージョン管理ステップにおいて、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数毎のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記関数のバージョンが前記所定の範囲内であるか否かを関数単位に判断する構成21に記載の方法。
(Configuration 22)
In the version management step, the version information of each function used by the application for the virtual application service is acquired from the application, and the version of the function is determined by referring to the information recording the predetermined range. The method according to the configuration 21, wherein it is determined on a function basis whether or not it is within a predetermined range.

(構成23)
画像形成に関する処理を行うアプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた画像形成装置を、
アプリケーションから呼び出される関数を変換し、変換後の関数を用いてコントロールサービスへの関数呼び出しを行うラッピング処理手段として機能させるプログラム。
(Configuration 23)
An image forming apparatus including an application that performs processing related to image formation and a control service that performs processing on the system side based on a function call from the application.
A program that converts a function called from an application and functions as a wrapping processing means for making a function call to the control service using the converted function.

(構成24)
前記ラッピング処理手段は、前記アプリケーションが前記コントロールサービスに対して使用する関数と、この関数に対応してコントロールサービスが有する関数との間でバージョン差がある場合に関数の変換を行う構成23に記載のプログラム。
(Configuration 24)
In the configuration 23, the wrapping processing unit performs function conversion when there is a version difference between a function used by the application for the control service and a function of the control service corresponding to the function. Program.

(構成25)
前記ラッピング処理手段は、前記コントロールサービスが有する関数のバージョンが変更されたことを示す情報を参照することにより、前記バージョン差があることを判断する構成24に記載のプログラム。
(Configuration 25)
25. The program according to configuration 24, wherein the wrapping processing unit determines that there is a version difference by referring to information indicating that a version of a function included in the control service has been changed.

(構成26)
前記ラッピング処理手段は、前記アプリケーションが前記コントロールサービスに対して使用する関数と、当該関数に対応するコントロールサービス側の関数との間で関数の数又は引数の数が異なる場合に、ダミーの関数又はダミーの引数を補填する変換を行う構成23に記載のプログラム。
(Configuration 26)
When the number of functions or the number of arguments differs between the function used by the application for the control service and the function on the control service side corresponding to the function, the wrapping processing means The program according to the configuration 23, which performs conversion to compensate for dummy arguments.

(構成27)
画像形成に関する処理を行うアプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた画像形成装置を、
前記コントロールサービスが送信するメッセージの中から前記アプリケーションに通知するメッセージを取捨選択するラッピング処理手段として機能させるプログラム。
(Configuration 27)
An image forming apparatus including an application that performs processing related to image formation and a control service that performs processing on the system side based on a function call from the application.
A program that functions as wrapping processing means for selecting a message to be notified to the application from messages transmitted by the control service.

(構成28)
前記ラッピング処理手段は、前記アプリケーションに対して通知しない特定のメッセージを記録した情報を参照することにより、前記アプリケーションに対するメッセージを取捨選択する構成27に記載のプログラム。
(Configuration 28)
The program according to the configuration 27, wherein the wrapping processing unit selects a message for the application by referring to information recording a specific message not notified to the application.

(構成29)
前記プログラムは、前記コントロールサービスをサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスのプログラムに含まれる構成23ないし28のうちいずれか1項に記載のプログラム。
(Configuration 29)
The program according to any one of configurations 23 to 28 included in a virtual application service program that operates as a client process using the control service as a server and operates as a server process using the application as a client. program.

(構成30)
前記画像形成装置を、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを判断するバージョン管理手段として更に機能させる構成29に記載のプログラム。
(Configuration 30)
The image forming apparatus further functions as a version management unit that determines whether the version of the entire function used by the application for the virtual application service is within a predetermined range that can be supported by the virtual application service. The program according to Configuration 29.

(構成31)
前記バージョン管理手段は、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記バージョンが前記所定の範囲内であるか否かを判断する構成30に記載のプログラム。
(Configuration 31)
The version management means obtains version information of the entire function used by the application for the virtual application service from the application, and refers to the information recorded in the predetermined range, so that the version is the predetermined The program according to configuration 30, wherein the program determines whether or not it is within a range.

(構成32)
前記画像形成装置を、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを、関数単位に判断するバージョン管理手段として更に機能させる構成29に記載のプログラム。
(Configuration 32)
Version management means for determining whether the version of a function used by the application for the virtual application service is within a predetermined range that can be supported by the virtual application service. The program according to Configuration 29, which further functions.

(構成33)
前記バージョン管理手段は、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数毎のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記関数のバージョンが前記所定の範囲内であるか否かを関数単位に判断する構成32に記載のプログラム。
(Configuration 33)
The version management means obtains version information for each function used by the application for the virtual application service from the application, and refers to the information recording the predetermined range, so that the version of the function is The program according to the configuration 32, which determines whether or not the function is within a predetermined range in units of functions.

(構成34)
構成23ないし33のうちいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
(Configuration 34)
A computer-readable recording medium on which the program according to any one of configurations 23 to 33 is recorded.

なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。   The present invention is not limited to the above-described embodiment, and various modifications and applications can be made within the scope of the claims.

100 複合機
101 白黒レーザプリンタ
102 カラーレーザプリンタ
103 ハードウェアリソース
110 ソフトウェア群
111 プリンタアプリ
112 コピーアプリ
113 ファックスアプリ
114 スキャナアプリ
115 ネットファイルアプリ
116 工程検査アプリ
117、118 新規アプリ
120 プラットホーム
121 汎用OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
130 アプリケーション
140、841〜848 仮想アプリケーションサービス(VAS)
141 ラッピング処理スレッド
142 バージョン管理スレッド
143 制御スレッド
144 ディスパッチャ
150 コントロールサービス層
200 ハードディスク(HD)
201 ラッピング処理情報ファイル
210 RAM
211 バージョン管理テーブル
800 複合機
801 VAS制御プロセス
DESCRIPTION OF SYMBOLS 100 MFP 101 Black-and-white laser printer 102 Color laser printer 103 Hardware resource 110 Software group 111 Printer application 112 Copy application 113 Fax application 114 Scanner application 115 Net file application 116 Process inspection application 117, 118 New application 120 Platform 121 General-purpose OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
130 Application 140, 841-848 Virtual Application Service (VAS)
141 Wrapping processing thread 142 Version management thread 143 Control thread 144 Dispatcher 150 Control service layer 200 Hard disk (HD)
201 Wrapping process information file 210 RAM
211 Version management table 800 MFP 801 VAS control process

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

Claims (22)

アプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた装置において、
前記コントロールサービスが送信するメッセージが、前記アプリケーションに通知しないものとして予め定めた非通知メッセージであるか否かを判断し、非通知メッセージである場合は、前記メッセージを前記アプリケーションに通知せず、非通知メッセージでない場合に、前記メッセージを前記アプリケーションに通知するラッピング処理手段を備えたことを特徴とする装置。
In a device including an application and a control service that performs processing on the system side based on a function call from the application,
It is determined whether or not the message transmitted by the control service is a non-notification message predetermined as not to be notified to the application. If the message is a non-notification message, the message is not notified to the application. An apparatus comprising: wrapping processing means for notifying the application of the message when the message is not a notification message .
前記ラッピング処理手段は、前記アプリケーションに対して通知しない前記非通知メッセージを記録した情報を参照することにより、前記コントロールサービスが送信するメッセージが、前記非通知メッセージであるか否かを判断する請求項1に記載の装置。 The wrapping processing unit determines whether or not a message transmitted by the control service is the non-notification message by referring to information in which the non-notification message not notified to the application is recorded. The apparatus according to 1. 前記コントロールサービスをサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを更に備え、
前記ラッピング処理手段は、前記仮想アプリケーションサービスに含まれる請求項1又は2に記載の装置。
A virtual application service that operates as a client process that uses the control service as a server and that operates as a server process that uses the application as a client;
The apparatus according to claim 1, wherein the wrapping processing unit is included in the virtual application service.
前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを判断するバージョン管理手段を更に有する請求項3に記載の装置。   The apparatus according to claim 3, further comprising version management means for determining whether a version of an entire function used by the application for the virtual application service is within a predetermined range that can be supported by the virtual application service. . 前記バージョン管理手段は、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記バージョンが前記所定の範囲内であるか否かを判断する請求項4に記載の装置。   The version management means obtains version information of the entire function used by the application for the virtual application service from the application, and refers to the information recorded in the predetermined range, so that the version is the predetermined The apparatus according to claim 4, wherein it is determined whether or not it is within a range. 前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを、関数単位に判断するバージョン管理手段を更に有する請求項3に記載の装置。   The version management means which judges whether the version of the function which the said application uses with respect to the said virtual application service is in the predetermined range which the said virtual application service can support is further provided to the function unit. The device described. 前記バージョン管理手段は、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数毎のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記関数のバージョンが前記所定の範囲内であるか否かを関数単位に判断する請求項6に記載の装置。   The version management means obtains version information for each function used by the application for the virtual application service from the application, and refers to the information recording the predetermined range, so that the version of the function is The apparatus according to claim 6, wherein it is determined on a function basis whether or not it is within a predetermined range. アプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた装置が実行するラッピング処理方法であって、
前記コントロールサービスが送信するメッセージが、前記アプリケーションに通知しないものとして予め定めた非通知メッセージであるか否かを判断し、非通知メッセージである場合は、前記メッセージを前記アプリケーションに通知せず、非通知メッセージでない場合に、前記メッセージを前記アプリケーションに通知するラッピング処理ステップを有することを特徴とするラッピング処理方法。
A wrapping processing method executed by a device including an application and a control service that performs processing on the system side based on a function call from the application,
It is determined whether or not the message transmitted by the control service is a non-notification message predetermined as not to be notified to the application. If the message is a non-notification message, the message is not notified to the application. A wrapping processing method comprising a wrapping processing step of notifying the application of the message when it is not a notification message .
前記ラッピング処理ステップにおいて、前記アプリケーションに対して通知しない前記非通知メッセージを記録した情報を参照することにより、前記コントロールサービスが送信するメッセージが、前記非通知メッセージであるか否かを判断する請求項8に記載のラッピング処理方法。 The wrapping step determines whether or not a message transmitted by the control service is the non-notification message by referring to information recording the non-notification message not notified to the application. The wrapping method according to claim 8. 前記装置は、前記コントロールサービスをサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを更に備え、前記ラッピング処理ステップは、前記仮想アプリケーションサービスが実行する請求項8又は9に記載のラッピング処理方法。 The apparatus further includes a virtual application service that operates as a client process that uses the control service as a server and that operates as a server process that uses the application as a client, and the wrapping processing step is executed by the virtual application service. Item 10. A wrapping method according to Item 8 or 9. 前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを判断するバージョン管理ステップを更に有する請求項10に記載のラッピング処理方法。 The wrapping according to claim 10, further comprising a version management step of determining whether a version of an entire function used by the application for the virtual application service is within a predetermined range that can be supported by the virtual application service. Processing method. 前記バージョン管理ステップにおいて、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記バージョンが前記所定の範囲内であるか否かを判断する請求項11に記載のラッピング処理方法。 In the version management step, the version information of the entire function used by the application for the virtual application service is acquired from the application, and the version is determined by referring to the information recording the predetermined range. The wrapping method according to claim 11, wherein it is determined whether or not it is within a range. 前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを、関数単位に判断するバージョン管理ステップを更に有する請求項10に記載のラッピング処理方法。 The version management step further comprising: determining a version of a function used by the application for the virtual application service within a predetermined range that can be supported by the virtual application service. The wrapping processing method described. 前記バージョン管理ステップにおいて、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数毎のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記関数のバージョンが前記所定の範囲内であるか否かを関数単位に判断する請求項13に記載のラッピング処理方法。 In the version management step, the version information of each function used by the application for the virtual application service is acquired from the application, and the version of the function is determined by referring to the information recording the predetermined range. The wrapping processing method according to claim 13, wherein it is determined on a function basis whether or not it is within a predetermined range. アプリケーションと、当該アプリケーションからの関数呼び出しに基づきシステム側の処理を行うコントロールサービスとを備えた装置を、
前記コントロールサービスが送信するメッセージが、前記アプリケーションに通知しないものとして予め定めた非通知メッセージであるか否かを判断し、非通知メッセージである場合は、前記メッセージを前記アプリケーションに通知せず、非通知メッセージでない場合に、前記メッセージを前記アプリケーションに通知するラッピング処理手段として機能させるプログラム。
A device comprising an application and a control service that performs processing on the system side based on a function call from the application,
It is determined whether or not the message transmitted by the control service is a non-notification message predetermined as not to be notified to the application. If the message is a non-notification message, the message is not notified to the application. A program that functions as wrapping processing means for notifying the application of the message when it is not a notification message .
前記ラッピング処理手段は、前記アプリケーションに対して通知しない前記非通知メッセージを記録した情報を参照することにより、前記コントロールサービスが送信するメッセージが、前記非通知メッセージであるか否かを判断する請求項15に記載のプログラム。 The wrapping processing unit determines whether or not a message transmitted by the control service is the non-notification message by referring to information in which the non-notification message not notified to the application is recorded. 15. The program according to 15. 前記プログラムは、前記コントロールサービスをサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスのプログラムに含まれる請求項15又は16に記載のプログラム。   The program according to claim 15 or 16, wherein the program is included in a virtual application service program that operates as a client process using the control service as a server and operates as a server process using the application as a client. 前記装置を、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを判断するバージョン管理手段として更に機能させる請求項17に記載のプログラム。   The apparatus is further caused to function as version management means for determining whether a version of an entire function used by the application for the virtual application service is within a predetermined range that can be supported by the virtual application service. The program according to 17. 前記バージョン管理手段は、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数全体のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記バージョンが前記所定の範囲内であるか否かを判断する請求項18に記載のプログラム。   The version management means obtains version information of the entire function used by the application for the virtual application service from the application, and refers to the information recorded in the predetermined range, so that the version is the predetermined The program according to claim 18, wherein it is determined whether or not it is within a range. 前記装置を、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数のバージョンが、前記仮想アプリケーションサービスがサポートできる所定の範囲内であるか否かを、関数単位に判断するバージョン管理手段として更に機能させる請求項17に記載のプログラム。   The apparatus further functions as a version management unit that determines, in function units, whether or not the version of a function used by the application for the virtual application service is within a predetermined range that the virtual application service can support. The program according to claim 17. 前記バージョン管理手段は、前記アプリケーションが前記仮想アプリケーションサービスに対して使用する関数毎のバージョン情報を前記アプリケーションから取得し、前記所定の範囲を記録した情報を参照することにより、前記関数のバージョンが前記所定の範囲内であるか否かを関数単位に判断する請求項20に記載のプログラム。   The version management means obtains version information for each function used by the application for the virtual application service from the application, and refers to the information recording the predetermined range, so that the version of the function is 21. The program according to claim 20, wherein it is determined on a function basis whether or not it is within a predetermined range. 請求項15ないし21のうちいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the program according to any one of claims 15 to 21 is recorded.
JP2009174424A 2002-07-19 2009-07-27 Apparatus, wrapping processing method, and program Expired - Lifetime JP5036770B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009174424A JP5036770B2 (en) 2002-07-19 2009-07-27 Apparatus, wrapping processing method, and program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002211685 2002-07-19
JP2002211685 2002-07-19
JP2009174424A JP5036770B2 (en) 2002-07-19 2009-07-27 Apparatus, wrapping processing method, and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003196228A Division JP4365148B2 (en) 2002-07-19 2003-07-14 Image forming apparatus, wrapping processing method, and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012106228A Division JP2012192740A (en) 2002-07-19 2012-05-07 Apparatus, method, program and recording medium

Publications (2)

Publication Number Publication Date
JP2009301558A JP2009301558A (en) 2009-12-24
JP5036770B2 true JP5036770B2 (en) 2012-09-26

Family

ID=41548333

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009174424A Expired - Lifetime JP5036770B2 (en) 2002-07-19 2009-07-27 Apparatus, wrapping processing method, and program
JP2012106228A Pending JP2012192740A (en) 2002-07-19 2012-05-07 Apparatus, method, program and recording medium

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012106228A Pending JP2012192740A (en) 2002-07-19 2012-05-07 Apparatus, method, program and recording medium

Country Status (1)

Country Link
JP (2) JP5036770B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6340786B2 (en) * 2013-12-24 2018-06-13 株式会社リコー Information processing system, information processing apparatus, information processing method, and information processing program
JP6350308B2 (en) * 2015-01-28 2018-07-04 住友電気工業株式会社 Optical transceiver

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994025918A1 (en) * 1993-05-05 1994-11-10 Apple Computer, Inc. Method and apparatus for verifying compatibility between modular components in a computer system
JPH0744338A (en) * 1993-07-27 1995-02-14 Toshiba Corp Print processing device/method for computer system
JPH11282684A (en) * 1998-03-27 1999-10-15 Canon Inc Image processor, method for controlling image processor and storage medium
JP2000099344A (en) * 1998-09-22 2000-04-07 Hitachi Ltd Program production method and computer readable recording medium
JP4018277B2 (en) * 1998-12-24 2007-12-05 キヤノン株式会社 Host device, host device control method, and computer-readable storage medium storing host device control program
JP2000207372A (en) * 1999-01-08 2000-07-28 Hitachi Ltd Method and system for operation management
JP2000222146A (en) * 1999-02-04 2000-08-11 Seiko Epson Corp Printing data converter, conversion method for printing data and medium recording conversion control program of printing data
JP2000315192A (en) * 1999-04-30 2000-11-14 Ntt Data Corp Client-server system, method for managing server application and recording medium
JP3815942B2 (en) * 2000-03-17 2006-08-30 富士通株式会社 Message model conversion system
JP2002082806A (en) * 2000-07-05 2002-03-22 Ricoh Co Ltd Device and method for forming image and program
JP4548758B2 (en) * 2000-09-05 2010-09-22 大日本印刷株式会社 Portable information processing device with shared access management function
JP4334214B2 (en) * 2002-01-08 2009-09-30 株式会社リコー Image forming apparatus, application program, and recording medium

Also Published As

Publication number Publication date
JP2009301558A (en) 2009-12-24
JP2012192740A (en) 2012-10-11

Similar Documents

Publication Publication Date Title
JP4365148B2 (en) Image forming apparatus, wrapping processing method, and program
US7636172B2 (en) Image forming apparatus, information processing apparatus and version check method using an API from an application
EP1398948B1 (en) Image forming apparatus, methods used therein and a computer readable storage medium
US7633639B2 (en) Compound machine for scanning and printing and a method thereof
US7209249B2 (en) Method of and apparatus for image formation, and computer product
JP4276909B2 (en) Image forming apparatus and application activation control method
US20110202433A1 (en) License management system, license management method, and computer program product
JP2011197831A (en) Information processing system, management apparatus, information processing apparatus, installation processing method, program and storage medium
JP4344203B2 (en) Image forming apparatus and information display method
US7302578B2 (en) Information processing apparatus, image forming apparatus, program-initiation error processing method, and recording medium
JP5700093B2 (en) Image forming apparatus
JP5454208B2 (en) Image processing apparatus, software management system, software management method, and program
JP4394740B2 (en) Image forming apparatus, method, and program
JP5359427B2 (en) License management system, license management server, information processing apparatus, image forming apparatus, license management method, and license management program
JP5036770B2 (en) Apparatus, wrapping processing method, and program
JP4128506B2 (en) Image forming apparatus and application information acquisition method
JP4676977B2 (en) Image forming apparatus, application information acquisition method, and program
JP2004127253A (en) Information processing apparatus and version check method
JP4334214B2 (en) Image forming apparatus, application program, and recording medium
JP2004164582A (en) Information processing apparatus and program generation method
JP2004129220A (en) Image forming apparatus and version check method
JP4677054B2 (en) Image forming apparatus, program, recording medium, and method
JP3977039B2 (en) Communication program generating method for image information processing apparatus and communication program generating apparatus for image information processing apparatus
JP2003174533A (en) Image forming device, method for displaying communication history between processes and program for making computer perform the method
JP4485749B2 (en) Image forming apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120507

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

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

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

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5036770

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

EXPY Cancellation because of completion of term