JP2009134695A - Information processor, image processor, application execution method and application execution program - Google Patents
Information processor, image processor, application execution method and application execution program Download PDFInfo
- Publication number
- JP2009134695A JP2009134695A JP2008222129A JP2008222129A JP2009134695A JP 2009134695 A JP2009134695 A JP 2009134695A JP 2008222129 A JP2008222129 A JP 2008222129A JP 2008222129 A JP2008222129 A JP 2008222129A JP 2009134695 A JP2009134695 A JP 2009134695A
- Authority
- JP
- Japan
- Prior art keywords
- application
- processing apparatus
- unit
- information processing
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
- Facsimiles In General (AREA)
Abstract
Description
本発明は、入力、加工、出力の各機能を連携し動作させることでアプリケーションが有する機能を実現する情報処理装置、画像処理装置、アプリケーション実行方法、及びアプリケーション実行プログラムに関するものである。 The present invention relates to an information processing apparatus, an image processing apparatus, an application execution method, and an application execution program that realize functions that an application has by linking and operating input, processing, and output functions.
近年におけるプリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機(MFP:Multifunction Peripheral)などの画像処理装置では、メモリなどの制限は厳しいものの、汎用的なコンピュータと同様にCPU(Central Processing Unit)を備え、各機能がアプリケーションの制御によって実現されるようになっている。 In recent years, image processing devices such as printers, copiers, scanners, facsimiles, or multifunction peripherals (MFPs) that realize these functions in a single housing are generally used, although memory restrictions are severe. Like a computer, it has a CPU (Central Processing Unit), and each function is realized by application control.
例えば、特許文献1に記載された画像処理装置では、各アプリケーションから共通的に利用される機能をプラットフォームとして備えており、当該プラットフォームのAPI(Application Program Interface)を利用してアプリケーションを実装することができる。係る画像処理装置によれば、共通的に利用される機能がプラットフォームとして備えられていることにより、アプリケーションごとに重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
For example, the image processing apparatus described in
その結果、係る画像処理装置では、システムにアプリケーションを追加・拡張することで、ユーザの所望する機能を提供する。 As a result, the image processing apparatus provides a function desired by the user by adding / extending an application to the system.
また、このような画像処理装置の中には、現在、実装する環境(実装機種)などに依存しないという特徴を生かし、携帯電話や家電製品などの開発にも用いられている、Sun Microsystems社が開発したJava(登録商標)言語によって機能開発されているものもある。また、実装する環境において、プロセスを複数に分割することでマルチプロセス化を行うことのできるプロセスベースのUNIX(登録商標)系OS(Operating System)を採用しているものもある。
しかしながら、このような画像処理装置では、以下に挙げる点を考慮する必要がある。 However, in such an image processing apparatus, it is necessary to consider the following points.
まず、1つ目は、システムの堅牢性である。拡張性の高い画像処理装置では、システムの基本機能を実現する自社製アプリケーションや、後に導入され拡張機能を実現する他社(以下、「サードベンダ」という。)製アプリケーションなど、様々な環境化で開発されたアプリケーションが動作する。 The first is system robustness. Highly expandable image processing devices are developed in various environments such as in-house applications that realize the basic functions of the system and applications made by other companies (hereinafter referred to as “third-vendors”) that are introduced later to realize extended functions. Run the application.
しかし、このような環境化であっても、当該画像処理装置では、拡張機能の導入によって、システムの基本機能がそこなわれることがあってはならない。 However, even in such an environment, the basic functions of the system must not be impaired by the introduction of the extended function in the image processing apparatus.
プロセスベースのOSでは、システムの堅牢性を向上させるために、適切な粒度でプロセスを分割するのが一般的である。しかし、Java(登録商標)言語によって開発を行う場合、単一のプロセス(JVM:Java Virtual Machine)上で複数のアプリケーションを動作させることになり、細かい粒度でプロセス(JVM)を分割するのは現実的でなく、少なくとも自社とサードベンダのアプリケーションが動作するJVMを分離することが要件となる。 In process-based OSs, it is common to divide processes with the appropriate granularity to improve system robustness. However, when developing with the Java (registered trademark) language, multiple applications will run on a single process (JVM: Java Virtual Machine), and it is a reality to divide processes (JVM) at a fine granularity. The requirement is to separate the JVMs that run at least your company and third-party applications.
また、Java(登録商標)言語ベースシステムの堅牢性については、Nativeコードの実行とメモリ使用量を考慮すべきである。すなわち、悪意のあるNativeコードの実行によりシステム全体がクラッシュ(異常終了)する可能性があり、巨大なメモリを使用するアプリケーションによりJave(登録商標)のヒープが占有され、OutOfMemoryErrorが発生する可能性がある。 Also, the robustness of Java language-based systems should take into account native code execution and memory usage. In other words, the execution of malicious Native code may cause the entire system to crash (abnormal termination), and an application that uses huge memory may occupy the Jave (registered trademark) heap and cause an OutOfMemoryError. is there.
次に、アプリケーションに開発容易性である。システムを複数JVMに分散する場合、マルチプロセス化の影響をうけるコンポーネント(ソフトウェア部品)をなるべく少なくする必要がある。 Next is the ease of development into the application. When distributing a system to multiple JVMs, it is necessary to reduce the number of components (software parts) that are affected by multi-process.
カスタマイズ可能なシステムにおいて、SDK(Software Development Kit)によるアプリケーション開発が容易であることは必須であり、複数のJVM上で動作することを意識することなくアプリケーション開発が行えなければならない。 In a customizable system, it is essential that application development by SDK (Software Development Kit) is easy, and application development must be possible without being conscious of operating on multiple JVMs.
このように、マルチプロセス化の影響は、フレームワークに相当する限定されたコンポーネント(ソフトウェア部品)で行い、アプリケーションはマルチプロセス化を意識しなくてよい設計を検討する必要がある。 As described above, the influence of the multi-process is performed by a limited component (software part) corresponding to the framework, and the application needs to consider a design that does not need to be aware of the multi-process.
そこで、本発明では、上記従来技術の問題点に鑑み、マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供することができる情報処理装置、画像処理装置、アプリケーション実行方法、及びアプリケーション実行プログラムを提供することを目的とする。 Therefore, in the present invention, in view of the above-described problems of the prior art, the application can be easily customized or expanded without being conscious of multi-process, and the malfunction of the expanded function does not affect the basic function of the system. An object is to provide an information processing apparatus, an image processing apparatus, an application execution method, and an application execution program that can provide a system having high robustness.
上記目的を達成するため、本発明に係る情報処理装置は、データを入力する入力手段と、データを加工する加工手段と、データを出力する出力手段とを有し、前記入力手段と、前記加工手段と、前記出力手段とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置であって、前記アプリケーションの起動や終了などの管理を行うアプリケーション管理ソフトウェアを動作させる第1のプロセスと、当該情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを動作させる第2のプロセスと、当該情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを動作させる第3のプロセスとを有し、更に、前記第1のプロセス、前記第2のプロセス、及び前記第3のプロセスを実行する実行手段を有することを特徴とする。 In order to achieve the above object, an information processing apparatus according to the present invention includes input means for inputting data, processing means for processing data, and output means for outputting data, and the input means and the processing An information processing apparatus that realizes a function of one application by operating the output unit and the output unit in cooperation with each other, and operates first application management software that manages the activation and termination of the application A process, a second process for operating basic application software for realizing the basic functions of the information processing apparatus, and a third process for operating extended application software for realizing an extended function added to the information processing apparatus. In addition, the first process, the second process, and the third process It characterized in that it has an execution means for executing the process.
上記目的を達成するため、本発明に係る情報処理装置は、データを入力する入力手段と、データを加工する加工手段と、データを出力する出力手段とを有し、前記入力手段と、前記加工手段と、前記出力手段とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置であって、前記アプリケーションの起動や終了などの管理を行うアプリケーション管理ソフトウェア、及び当該情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを動作させる第1のプロセスと、当該情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを動作させる第2のプロセスとを有し、更に、前記第1のプロセス及び前記第2のプロセスを実行する実行手段を有することを特徴とする。 In order to achieve the above object, an information processing apparatus according to the present invention includes input means for inputting data, processing means for processing data, and output means for outputting data, and the input means and the processing An information processing apparatus that realizes a function of one application by operating the means and the output means in cooperation with each other, and application management software for managing the activation and termination of the application, and the information processing apparatus A first process for operating basic application software that realizes the basic function of the information processing apparatus, and a second process for operating extended application software that realizes the extended function added to the information processing apparatus, And having execution means for executing the first process and the second process. That.
これによって、本発明に係る情報処理装置は、システムの基本機能を実現する基本アプリケーション(自社製アプリケーション)と、追加される拡張機能を実現する拡張アプリケーション(サードベンダ製アプリケーション)とを、異なるプロセス(JVM)で動作させ、更に、プロセス間通信などのマルチプロセス化の影響を、フレームワークに相当する限定されたコンポーネント(ソフトウェア部品)で行う(マルチプロセス化の影響を隠蔽する)ことにより、マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供することができる。 As a result, the information processing apparatus according to the present invention uses a different process for a basic application (an in-house application) that realizes the basic function of the system and an extended application (an application made by a third vendor) that realizes an added extended function ( Multi-process by running on the JVM) and performing multi-process effects such as interprocess communication with limited components (software parts) corresponding to the framework (hiding the effects of multi-process) Therefore, it is possible to easily customize or extend an application without being aware of it, and to provide a system having high robustness in which a malfunction of the extended function does not affect the basic function of the system.
よって、本発明に係る情報処理装置は、開発者に対して簡便なアプリケーション開発を許可し、且つユーザに対して安定した機能を提供することができる。 Therefore, the information processing apparatus according to the present invention allows a developer to develop a simple application and can provide a stable function to a user.
また、上記目的を達成するため、本発明に係る情報処理装置は、所定のアプリケーションが有する機能を実現するために動作する前記入力手段と、前記加工手段と、前記出力手段において、同一プロセスで動作することを特徴とする。また、前記所定のアプリケーションは、前記基本アプリケーションソフトウェアであることを特徴とする。 In order to achieve the above object, an information processing apparatus according to the present invention operates in the same process in the input unit, the processing unit, and the output unit that operate to realize a function of a predetermined application. It is characterized by doing. Further, the predetermined application is the basic application software.
これによって、本発明に係る情報処理装置は、システムが有する機能のうち、比較的使用頻度の高い基本機能を安定してユーザに提供することができる。 Accordingly, the information processing apparatus according to the present invention can stably provide basic functions, which are relatively frequently used, among the functions of the system.
また、上記目的を達成するため、本発明に係る情報処理装置は、所定のアプリケーションが有する機能を実現するために動作する前記入力手段と、前記加工手段と、前記出力手段において、それぞれが特定の単一プロセスで動作することを特徴とする。 In order to achieve the above object, an information processing apparatus according to the present invention is characterized in that each of the input unit, the processing unit, and the output unit that operates to realize a function of a predetermined application is specified. It is characterized by operating in a single process.
これによって、本発明に係る情報処理装置は、当該装置が有するメモリ資源を効率的に使用し、基本機能をユーザに提供することができる。 Thus, the information processing apparatus according to the present invention can efficiently use the memory resources of the apparatus and provide basic functions to the user.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーションに対して、前記アプリケーション管理ソフトウェアと前記アプリケーションとの間で行うデータのやり取りと同じ振る舞いをするソフトウェア部品を有し、前記ソフトウェア部品が、前記アプリケーションと同じプロセスで動作することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention has a software component that behaves the same as the exchange of data performed between the application management software and the application for the application, The software component operates in the same process as the application.
これによって、本発明に係る情報処理装置は、マルチプロセス環境における各プロセス同士で行うプロセス間通信を、フレームワークに相当する限定されたコンポーネント(ソフトウェア部品)で行うことにより、マルチプロセス化の影響を隠蔽することができる。その結果、アプリケーションを、マルチプロセス環境を意識することなく設計・開発することができる。 As a result, the information processing apparatus according to the present invention performs multi-process communication between processes in a multi-process environment using limited components (software parts) corresponding to the framework, thereby reducing the influence of multi-process. Can be concealed. As a result, applications can be designed and developed without being conscious of the multi-process environment.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーションの動作設定要求を受け付けたときに、前記アプリケーションごとの前記動作設定要求に対応する前記ユーザインタフェースを構成する画面要素を識別する画面要素識別情報と、前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報に基づいて、前記画面要素識別情報から特定したプロセスに対して、前記動作設定要求を送信する動作設定要求送信手段を有することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention, when receiving an operation setting request for the application, includes a screen element constituting the user interface corresponding to the operation setting request for each application. Operation setting for transmitting the operation setting request to a process specified from the screen element identification information based on information associating screen element identification information to be identified with process identification information for identifying a process in which the application operates It has a request transmission means.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーションの動作設定要求を受け付けたときに、前記アプリケーションごとの前記動作設定要求に対応する前記ユーザインタフェースを構成する画面要素を識別する画面要素識別情報と、前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報に基づいて、前記画面要素識別情報から特定したプロセスに対して、前記動作設定要求を送信する動作設定要求送信手段を有することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention, when receiving an operation setting request for the application, includes a screen element constituting the user interface corresponding to the operation setting request for each application. Operation setting for transmitting the operation setting request to a process specified from the screen element identification information based on information associating screen element identification information to be identified with process identification information for identifying a process in which the application operates It has a request transmission means.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーションの実行要求を受け付けたときに、前記実行要求を識別する実行要求識別情報と、実行対象となる前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報に基づいて、前記実行要求識別情報から特定したプロセスに対して前記実行要求を送信し、前記アプリケーションに実行開始を指示する実行要求管理手段を有することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention, when receiving an execution request for the application, executes request identification information for identifying the execution request and the application to be executed. An execution request management means for transmitting the execution request to the process specified from the execution request identification information and instructing the application to start execution based on information associated with process identification information for identifying a process; Features.
これによって、本発明に係る情報処理装置は、マルチプロセス環境において、アプリケーションの選択・動作設定・機能実行などを安定して行うことができる。 Accordingly, the information processing apparatus according to the present invention can stably perform application selection, operation setting, function execution, and the like in a multi-process environment.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーション管理ソフトウェアが動作するプロセス以外のプロセスが異常終了したことを検知する検知手段と、前記検知手段により検知されたプロセス異常終了を前記アプリケーション管理ソフトウェアが動作するプロセスに通知する通知手段とを有することを特徴とする。 In order to achieve the above object, an information processing apparatus according to the present invention includes a detection unit that detects that a process other than the process in which the application management software operates is abnormally terminated, and a process abnormality detected by the detection unit. Notification means for notifying the process of the application management software of the termination.
これによって、本発明に係る情報処理装置は、異常終了したプロセスを、システム環境から切り離しことができ、例えば基本機能のみなどのような機能縮退した状態で、ユーザへの機能提供サービスを継続することができる。 As a result, the information processing apparatus according to the present invention can disconnect the abnormally terminated process from the system environment and, for example, continue the function providing service to the user in a function-degenerated state such as only the basic function. Can do.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記検知手段及び前記通知手段が、前記第1のプロセス、前記第2のプロセス、及び前記第3のプロセス、又は、前記第1のプロセス及び前記第2のプロセスを生成した親プロセスで動作することを特徴とする。また、前記検知手段は、子プロセスにあたる前記アプリケーション管理ソフトウェアが動作するプロセス以外のプロセス終了によるシグナルを受信することで、プロセスの異常終了を検知することを特徴とする。 In order to achieve the above object, in the information processing apparatus according to the present invention, the detection unit and the notification unit include the first process, the second process, the third process, or the first process. It is characterized by operating in the parent process that created the first process and the second process. Further, the detection means detects abnormal termination of a process by receiving a signal due to process termination other than a process in which the application management software corresponding to a child process operates.
これによって、本発明に係る情報処理装置は、プロセスの異常終了を即座に検知することができる。 As a result, the information processing apparatus according to the present invention can immediately detect the abnormal end of the process.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記検知手段及び前記通知手段が、前記第1のプロセスで動作することを特徴とする。また、前記検知手段は、前記アプリケーション管理ソフトウェアが動作するプロセス以外のプロセスに対して、プロセスの状態を示す状態情報の取得を要求し、要求への応答があるか否かに基づき、プロセスの異常終了を検知する、又は、前記アプリケーション管理ソフトウェアが動作するプロセス以外のプロセスから送信されるプロセスの状態を示す状態情報を受信したか否かに基づき、プロセスの異常終了を検知することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention is characterized in that the detection means and the notification means operate in the first process. Further, the detection means requests a process other than the process in which the application management software operates to obtain status information indicating the status of the process, and determines whether there is a process abnormality based on whether there is a response to the request. An abnormal termination of a process is detected based on whether or not termination information is detected or status information indicating a status of a process transmitted from a process other than the process in which the application management software operates is received. .
これによって、本発明に係る情報処理装置は、簡単な機能構成によりプロセスの異常終了を検知することができる。 Thus, the information processing apparatus according to the present invention can detect abnormal termination of the process with a simple functional configuration.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーション管理ソフトウェアが動作するプロセスが、前記通知手段によるプロセス異常終了の通知を受け付けたときに、前記アプリケーション管理ソフトウェアが有するコンポーネントが、前記アプリケーションを識別するアプリケーション識別情報と、前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報から、異常終了したプロセスで動作するアプリケーションのアプリケーション識別情報を削除することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention includes a component included in the application management software when the process in which the application management software operates receives a process abnormal termination notification from the notification unit. Deletes the application identification information of the application that operates in the abnormally terminated process from the information that associates the application identification information that identifies the application with the process identification information that identifies the process in which the application operates. .
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーション管理ソフトウェアが動作するプロセスが、前記通知手段によるプロセス異常終了の通知を受け付けたときに、前記アプリケーション管理ソフトウェアが有するコンポーネントが、前記アプリケーションごとの前記動作設定要求に対応するユーザインタフェースを構成する画面要素を識別する画面要素識別情報と、前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報から、異常終了したプロセスで生成された画面要素の画面要素識別情報を削除することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention includes a component included in the application management software when the process in which the application management software operates receives a process abnormal termination notification from the notification unit. Has ended abnormally from information associating screen element identification information for identifying a screen element constituting a user interface corresponding to the operation setting request for each application and process identification information for identifying a process in which the application operates. The screen element identification information of the screen element generated in the process is deleted.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーション管理ソフトウェアが動作するプロセスが、前記通知手段によるプロセス異常終了の通知を受け付けたときに、前記アプリケーション管理ソフトウェアが有するコンポーネントが、前記実行要求を識別する実行要求識別情報と、実行対象となる前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報から、異常終了したプロセスで生成された実行要求の実行要求識別情報を削除することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention includes a component included in the application management software when the process in which the application management software operates receives a process abnormal termination notification from the notification unit. Is an execution request identification of an execution request generated by an abnormally terminated process from information associating execution request identification information for identifying the execution request with process identification information for identifying a process in which the application to be executed is operated. It is characterized by deleting information.
これによって、本発明に係る情報処理装置は、不要な情報を削除することで、記憶リソース資源を効率良く使用し、かつ、異常終了により動作不可能なアプリケーションの誤動作を防ぐことができる。 Accordingly, the information processing apparatus according to the present invention can delete unnecessary information, efficiently use storage resource resources, and prevent malfunction of an application that cannot be operated due to abnormal termination.
また、上記目的を達成するため、本発明に係る情報処理装置は、前記アプリケーション管理ソフトウェアが動作するプロセスが、前記通知手段によるプロセス異常終了の通知を受け付けたときに、異常終了したプロセスで動作していたアプリケーションのうち、プロセスが異常終了する直前に動作していたアプリケーションと、それ以外のアプリケーションとを、異なる態様で表示することを特徴とする。 In order to achieve the above object, the information processing apparatus according to the present invention operates in an abnormally terminated process when a process in which the application management software operates receives a process abnormal termination notification from the notification unit. Among the applications that were running, the application that was running immediately before the process ended abnormally and the other applications are displayed in different ways.
これによって、本発明に係る情報処理装置は、ユーザに対して異常終了の原因を推定又は特定するための情報を提示することができる。その結果、ユーザが原因を解決する手段を講じることで(例えば、原因となったソフトの無効化やアンインストールなど。)、システムを安定した状態に復帰させることができる。 Thereby, the information processing apparatus according to the present invention can present information for estimating or identifying the cause of abnormal termination to the user. As a result, the user can take measures to solve the cause (for example, invalidation or uninstallation of the software causing the cause), and the system can be returned to a stable state.
また、上記目的を達成するため、本発明に係る情報処理装置は、異常終了したプロセスの有効化/無効化を選択設定する画面を表示することを特徴とする。また、前記アプリケーション管理ソフトウェアが動作するプロセスが、前記通知手段によるプロセス異常終了の通知を受け付けたときに、異常終了したプロセスを無効に設定することを特徴とする。 In order to achieve the above object, an information processing apparatus according to the present invention displays a screen for selecting and setting validation / invalidation of an abnormally terminated process. In addition, when the process in which the application management software operates receives a notification of abnormal process termination by the notification unit, the abnormally terminated process is set to be invalid.
また、上記目的を達成するため、本発明に係る画像処理装置は、原稿を画像データとして読み取る原稿読み取り装置と、画像データを紙に印刷する印刷装置と、上記に記載した、いずれかの特徴を有する情報処理装置とを有することを特徴とする。 In order to achieve the above object, an image processing apparatus according to the present invention includes a document reading device that reads a document as image data, a printing device that prints image data on paper, and any of the features described above. And an information processing apparatus.
これによって、本発明に係る画像処理装置は、マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有する画像処理システムを、ユーザに提供することができる。 As a result, the image processing apparatus according to the present invention can easily customize or extend an application without being conscious of multi-process, and has high robustness that does not affect the basic function of the system due to an extended function failure. An image processing system having the above can be provided to the user.
よって、本発明に係る画像処理装置は、開発者に対して簡便なアプリケーション開発を許可し、且つユーザに対して安定した機能を提供することができる。 Therefore, the image processing apparatus according to the present invention permits a developer to develop a simple application and can provide a stable function to the user.
上記目的を達成するため、本発明に係るアプリケーション実行方法は、データを入力する入力部と、データを加工する加工部と、データを出力する出力部とを有し、前記加工部と、前記出力部とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置におけるアプリケーション実行方法であって、前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェアと、前記情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアと、前記情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアとを、それぞれが異なるプロセスで実行することを特徴とする。 In order to achieve the above object, an application execution method according to the present invention includes an input unit that inputs data, a processing unit that processes data, and an output unit that outputs data, the processing unit, and the output An application execution method in an information processing apparatus that realizes a function of one application by operating in cooperation with a unit, application management software for managing the activation and termination of the application, and the information processing apparatus The basic application software for realizing the basic functions and the extended application software for realizing the extended functions added to the information processing apparatus are executed in different processes.
上記目的を達成するため、本発明に係るアプリケーション実行方法は、データを入力する入力部と、データを加工する加工部と、データを出力する出力部とを有し、前記入力部と、前記加工部と、前記出力部とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置におけるアプリケーション実行方法であって、前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、及び前記情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを第1のプロセスで実行し、前記情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを第2のプロセスで実行することを特徴とする。 In order to achieve the above object, an application execution method according to the present invention includes an input unit that inputs data, a processing unit that processes data, and an output unit that outputs data, and the input unit and the processing An application execution method in an information processing apparatus for realizing a function of one application by operating the output unit and the output unit in cooperation with each other, and application management software for managing the start and end of the application, and the like Basic application software that realizes basic functions of the information processing apparatus is executed in a first process, and extended application software that realizes an extended function added to the information processing apparatus is executed in a second process. And
上記目的を達成するため、本発明に係るアプリケーション実行方法は、データを入力する入力部と、データを加工する加工部と、データを出力する出力部とを有し、前記加工部と、前記出力部とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置におけるアプリケーション実行方法であって、前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェアが動作する第1のプロセスを実行し、予め前記情報処理装置が有する、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第2のプロセスを実行し、機能拡張のときに前記情報処理装置に追加される、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第3のプロセスを実行することを特徴とする。 In order to achieve the above object, an application execution method according to the present invention includes an input unit that inputs data, a processing unit that processes data, and an output unit that outputs data, the processing unit, and the output An application execution method in an information processing apparatus that realizes a function of one application by operating in cooperation with a unit, and a first process in which application management software that manages the start and end of the application operates The information processing apparatus previously executes a second process in which a component program that functions as the input unit, the processing unit, and / or the output unit operates, and the information processing is performed when the function is expanded. Components that are added to the apparatus and function as the input unit, the processing unit, and / or the output unit And executes a third process that whereof program operates.
上記目的を達成するため、本発明に係るアプリケーション実行方法は、データを入力する入力部と、データを加工する加工部と、データを出力する出力部とを有し、前記入力部と、前記加工部と、前記出力部とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置におけるアプリケーション実行方法であって、前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、ならびに予め前記情報処理装置が有する、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第1のプロセスを実行し、機能拡張のときに前記情報処理装置に追加される、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第2のプロセスを実行することを特徴とする。 In order to achieve the above object, an application execution method according to the present invention includes an input unit that inputs data, a processing unit that processes data, and an output unit that outputs data, and the input unit and the processing An application execution method in an information processing apparatus for realizing a function of one application by operating the output unit and the output unit in cooperation with each other, and application management software for managing the start and end of the application, and the like A first process in which a component program that functions as the input unit, the processing unit, and / or the output unit of the information processing apparatus operates in advance is added to the information processing apparatus when the function is expanded. The component unit that functions as the input unit, the processing unit, and / or the output unit. And executes a second process which grams operates.
これによって、本発明に係るアプリケーション実行方法は、システムの基本機能を実現する基本アプリケーションと、追加される拡張機能を実現する拡張アプリケーションとを、異なるプロセスで動作させ、更に、プロセス間通信などのマルチプロセス化の影響を、フレームワークに相当する限定されたコンポーネントで行うことにより、マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供することができる。 As a result, the application execution method according to the present invention operates a basic application that realizes the basic function of the system and an extended application that realizes the added extended function in different processes, and further performs multi-process communication such as inter-process communication. By performing the impact of the process on a limited component equivalent to the framework, the application can be easily customized or expanded without being aware of the multi-process, and the malfunction of the expanded function affects the basic function of the system. It is possible to provide a system having high robustness that does not affect
上記目的を達成するため、本発明に係るアプリケーション実行プログラムは、データを入力する入力部と、データを加工する加工部と、データを出力する出力部とを有し、前記加工部と、前記出力部とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置におけるアプリケーション実行プログラムであって、コンピュータで、前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェアと、前記情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアと、前記情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアとを、それぞれが異なるプロセスで実行する。 In order to achieve the above object, an application execution program according to the present invention includes an input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, the processing unit, and the output An application execution program in an information processing apparatus that realizes a function of one application by operating in cooperation with a unit, application management software for managing the start and end of the application on a computer, and the information The basic application software that realizes the basic function of the processing device and the extended application software that realizes the extended function added to the information processing device are executed in different processes.
上記目的を達成するため、本発明に係るアプリケーション実行プログラムは、データを入力する入力部と、データを加工する加工部と、データを出力する出力部とを有し、前記入力部と、前記加工部と、前記出力部とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置におけるアプリケーション実行プログラムであって、コンピュータで、前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、及び前記情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを第1のプロセスで実行し、前記情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを第2のプロセスで実行する。 In order to achieve the above object, an application execution program according to the present invention includes an input unit that inputs data, a processing unit that processes data, and an output unit that outputs data, the input unit, and the processing Is an application execution program in an information processing apparatus that realizes a function of one application by operating the output unit and the output unit in cooperation with each other, and the application management for managing the activation and termination of the application by the computer Software and basic application software that realizes basic functions of the information processing apparatus are executed in a first process, and extended application software that realizes extended functions added to the information processing apparatus is executed in a second process .
上記目的を達成するため、本発明に係るアプリケーション実行プログラムは、データを入力する入力部と、データを加工する加工部と、データを出力する出力部とを有し、前記加工部と、前記出力部とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置におけるアプリケーション実行プログラムであって、コンピュータで、前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェアが動作する第1のプロセスを実行し、予め前記情報処理装置が有する、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第2のプロセスを実行し、機能拡張のときに前記情報処理装置に追加される、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第3のプロセスを実行する。 In order to achieve the above object, an application execution program according to the present invention includes an input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, the processing unit, and the output An application execution program in an information processing apparatus that realizes a function of one application by operating in cooperation with a unit, and application management software for managing the start and end of the application is operated on a computer. When the function is expanded by executing a second process in which the component program functioning as the input unit, the processing unit, and / or the output unit, which is included in the information processing apparatus in advance, operates. The input unit, the processing unit, and / or the front added to the information processing apparatus Performing a third process a component program which functions as an output unit is operated.
上記目的を達成するため、本発明に係るアプリケーション実行プログラムは、データを入力する入力部と、データを加工する加工部と、データを出力する出力部とを有し、前記加工部と、前記出力部とを連携し動作させることで1つのアプリケーションが有する機能を実現する情報処理装置におけるアプリケーション実行プロセスであって、コンピュータで、前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、ならびに予め前記情報処理装置が有する、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第1のプロセスを実行し、機能拡張のときに前記情報処理装置に追加される、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第2のプロセスを実行する。 In order to achieve the above object, an application execution program according to the present invention includes an input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, the processing unit, and the output An application execution process in an information processing apparatus that realizes a function of one application by operating in cooperation with a unit, application management software for managing the activation and termination of the application on a computer, The information processing device has a first process in which a component program that functions as the input unit, the processing unit, and / or the output unit operates, and is added to the information processing device at the time of function expansion. A computer that functions as the input unit, the processing unit, and / or the output unit. Over whereof program executes a second process running.
これによって、本発明に係るアプリケーション実行プログラムは、コンピュータを、システムの基本機能を実現する基本アプリケーションと、追加される拡張機能を実現する拡張アプリケーションとが、異なるプロセスで動作するように実行させることができる。 Thus, the application execution program according to the present invention allows a computer to execute so that a basic application that realizes the basic function of the system and an extended application that realizes the added extended function operate in different processes. it can.
本発明によれば、マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを備える情報処理装置、画像処理装置、アプリケーション実行方法、及びアプリケーション実行プログラムを提供することができる。 According to the present invention, it is possible to easily customize or extend an application without being conscious of multi-process, and information including a system having high robustness so that a malfunction of the extended function does not affect a basic function of the system. A processing apparatus, an image processing apparatus, an application execution method, and an application execution program can be provided.
以下、本発明の好適な実施の形態(以下、「実施形態」という。)について、図面を用いて詳細に説明する。 DESCRIPTION OF EMBODIMENTS Hereinafter, preferred embodiments of the present invention (hereinafter referred to as “embodiments”) will be described in detail with reference to the drawings.
[第1の実施形態]
<画像処理装置のハードウェア構成について>
まず、本実施形態に係る画像処理装置のハードウェア構成について、図1を用いて説明する。
[First Embodiment]
<Hardware configuration of image processing apparatus>
First, the hardware configuration of the image processing apparatus according to the present embodiment will be described with reference to FIG.
図1は、本発明の第1の実施形態に係る画像処理装置100のハードウェア構成の一例を示す図である。
FIG. 1 is a diagram illustrating an example of a hardware configuration of an
図中に示すように、画像処理装置100は、制御部11、主記憶部12、補助記憶部13、ネットワークI/F14、外部記憶装置I/F15、外部装置I/F16、表示部(パネル表示)19、入力部(操作部)20、印刷部(プロッタ部)21及びスキャナ部(原稿読み取り部)22などにより構成されている。
As shown in the figure, the
制御部(CPU)11は、コンピュータの中で、各装置の制御やデータの演算・加工を行う。制御部11は、主記憶部12に記憶されたプログラムを実行する演算装置で、入力装置や記憶装置からデータを受け取り、演算・加工した上で、出力装置や記憶装置に出力する。
The control unit (CPU) 11 controls each device and calculates / processes data in a computer. The
主記憶部(ROM:Read Only Memory、RAM:Random Access Memory)12は、制御部11が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保持する記憶装置である。
A main storage unit (ROM: Read Only Memory, RAM: Random Access Memory) 12 is a storage device that stores or temporarily stores programs and data such as an OS and application software that are basic software executed by the
補助記憶部(HD:Hard Disk)13は、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。また、補助記憶部13には、画像処理装置100が管理する各種情報(例えば、ユーザ情報など。)が格納され、データベース(DB:database)やファイルシステム(FS:File System)などの機能により管理される。
The auxiliary storage unit (HD: Hard Disk) 13 is a storage device that stores data related to application software and the like. The
ネットワークI/F14は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続された通信機能を有する周辺機器と当該画像処理装置100とのインタフェースである。
The network I /
外部記憶装置I/F15は、USB(Universal Serial Bus)などのデータ伝送路を介して接続された外部記憶装置(例えば、記憶メディアドライブなど。)と当該画像処理装置100とのインタフェースである。
The external storage device I /
外部装置I/F16は、USBなどのデータ伝送路を介して接続された外部装置(例えば、デジタルカメラなど。)と当該画像処理装置100とのインタフェースである。
The external device I /
画像処理装置100は、これらのインタフェースを介して、外部と各種データ(例えば、画像データなど。)のやり取り(送受信や読み込み/書き込み)を行っている。
The
表示部(パネル表示)19及び入力部(操作部)20は、キースイッチ(ハードキー)とタッチパネル機能(GUI(Graphical User Interface)のソフトウェアキーを含む。)を備えたLCD(Liquid Crystal Display)とから構成され、画像処理装置100が有する機能を利用する際のUI(User Interface)として機能する表示及び/又は入力装置である。
The display unit (panel display) 19 and the input unit (operation unit) 20 are an LCD (Liquid Crystal Display) having a key switch (hard key) and a touch panel function (including software keys for GUI (Graphical User Interface)), and And a display and / or input device that functions as a UI (User Interface) when using the functions of the
印刷部(プロッタ部)21は、CMYKからなる画像データを受け取ると、レーザービームを用いた電子写真プロセス(露光、潜像、現像及び転写のプロセス)を用いて、受け取った画像データを転写紙(印刷用紙)に出力(印刷)するプロッタ装置である。 Upon receiving the image data composed of CMYK, the printing unit (plotter unit) 21 uses the electrophotographic process (exposure, latent image, development, and transfer process) using a laser beam to transfer the received image data to transfer paper ( This is a plotter device that outputs (prints) to (printing paper).
スキャナ部(原稿読み取り部)22は、CCD(Charge Coupled Devices)光電変換素子からなるラインセンサとA/Dコンバータとこれらを駆動する駆動回路を備え、原稿読み取り面(コンタクトガラス上)にセットされた原稿をスキャンすることでRGB各8ビットのデジタル画像データを生成(原稿から情報を読み取り電子化)する読み取り装置である。 The scanner unit (document reading unit) 22 includes a line sensor composed of a CCD (Charge Coupled Devices) photoelectric conversion element, an A / D converter, and a drive circuit for driving them, and is set on the document reading surface (on the contact glass). This is a reading device that generates RGB 8-bit digital image data (reads information from the original and digitizes it) by scanning the original.
このように、画像処理装置100は、主記憶部12や補助記憶部13などの記憶装置に格納されたプログラムを制御部11で実行し、制御信号(制御命令)を各装置へ送出すること(各装置を制御すること)で、画像処理装置100が有するコピー、ファックス、スキャナ、プリンタなどの機能を実現し、画像処理装置100で管理する情報、又は画像処理装置100が接続されたシステム内で管理する情報を処理することができる。
As described above, the
<画像処理装置100のソフトウェア構成及び基本処理手順について>
次に、本実施形態に係る画像処理装置100の機能を実現するためのソフトウェア構成及び基本処理手順について、図2〜5を用いて説明する。
<Software Configuration and Basic Processing Procedure of
Next, a software configuration and a basic processing procedure for realizing the functions of the
図2は、本発明の第1の実施形態に係る画像処理装置100のソフトウェア構成の一例を示す図である。
FIG. 2 is a diagram illustrating an example of a software configuration of the
図中に示すように、本実施形態に係るソフトウェアは、ユーザインタフェース層101、コントロール層102、アプリケーションロジック層103、デバイスサービス層104及びデバイス制御層105などにより構成されている。なお、図中における各層の上下関係は、基本的に上にある層が下の層を呼び出す関係に基づいている。
As shown in the figure, the software according to the present embodiment includes a
ユーザインタフェース層101は、機能(例えば、コピー、ファックス、スキャナ、プリンタなどのアプリケーション機能)の実行要求を受け付けるためのUI機能が実装されている部分であり、例えば、通信サーバ部301及びローカルUI部302などが含まれる。
The
通信サーバ部301は、例えば、非図示の通信機器を有する周辺機器であるクライントPC(Personal Computer)などからネットワークを介して各種要求(例えば、印刷動作要求など。)を受け付ける。また、ローカルUI部302は、例えば、非図示のオペレーションパネルを介して入力される各種要求(例えば、コピー動作要求や動作設定など。)を受け付ける。
The
ユーザインタフェース層101において受け付けられた要求は、コントロール層102に伝えられる。
A request accepted by the
コントロール層102は、要求された機能を実現するための処理を制御するための機能が実装されている部分である。例えば、コントロール部303などが含まれている。具体的には、コントロール部303において、要求された機能に応じて、後述するアプリケーションロジック層103における各フィルタを接続し、接続されたフィルタに基づいて機能の実行を制御する。なお、本実施形態において「画像処理装置100の機能」とは、画像処理装置100がユーザに対して提供する1つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスと同義であり、ソフトウェア的には1つのまとまった単位のサービスを提供するアプリケーションと同義である。
The
アプリケーションロジック層103は、それぞれが画像処理装置100において提供される機能の一部を実現する部品群(ソフトウェア部品群)が実装されている部分である。すなわち、アプリケーションロジック層103における部品を組み合わせることにより1つの機能が実現される。本実施形態では、各部品を「フィルタ」と呼ぶ。これは、画像処理装置100のソフトウェアアーキテクチャが「パイプ&フィルタ」と呼ばれる考え方に基づくものである。
The
図3は、本発明の第1の実施形態に係るパイプ&フィルタの概念及びフィルタの構成要素の一例を示す図である。図3の(a)には、パイプ&フィルタの概念を示し、図3の(b)には、フィルタの構成要素の一例を示す。 FIG. 3 is a diagram illustrating an example of a pipe and filter concept and a filter component according to the first embodiment of the present invention. FIG. 3A shows the concept of the pipe and filter, and FIG. 3B shows an example of the components of the filter.
まず、パイプ&フィルタの概念について説明する。図3の(a)において、「F」はフィルタを示し、「P」はパイプを示す。図中に示すように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して所定の変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。すなわち、本実施形態に係る画像処理装置100では、各機能を、画像処理装置100内部で管理する情報(例えば、ユーザ情報や画像データなど。)に対する「変換」の連続として捉える。画像処理装置100の各機能は、画像処理装置100内部で取り扱う情報の入力、加工及び出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」及び「出力」を「変換」として捉え、1つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ(入力手段)」と言う。また、加工を実現するフィルタを特に「変換フィルタ(加工手段)」と言う。更に、出力を実現するフィルタを特に「出力フィルタ(出力手段)」と言う。なお、各フィルタは独立しており、フィルタ間における依存関係(呼び出し関係)は基本的に存在しない。従って、フィルタ単位で追加(インストール)又は削除(アンインストール)が可能とされている。
First, the concept of pipe and filter will be described. In FIG. 3A, “F” indicates a filter, and “P” indicates a pipe. As shown in the figure, each filter is connected by a pipe. The filter performs predetermined conversion on the input data and outputs the result. The pipe transmits the data output from the filter to the next filter. That is, in the
図2に戻り、アプリケーションロジック層103には、入力フィルタ103aとして、例えば、読み取りフィルタ304などが含まれている。
Returning to FIG. 2, the
読み取りフィルタ304は、スキャナ部22による画像データの読み取りを制御し、読み取られた画像データを出力する。
The reading
その他、入力フィルタ103aとして、補助記憶部13に保管されている文書データ(画像データ)を読み出し、読み出されたデータを出力する保管文書読出フィルタ、電子メールの受信し、当該電子メールに含まれているデータを出力するメール受信フィルタ、FAX受信を制御し、受信されたデータを出力するFAX受信フィルタ、非図示のクライアントPCから印刷データを受信し、受信された印刷データを出力するPC文書受信フィルタ、画像処理装置100の設定情報や履歴情報などを、例えば表形式に整形されたデータとして出力するレポートフィルタなどが含まれている。
In addition, as the
また、変換フィルタ103bとしては、例えば、文書加工フィルタ305などが含まれている。文書加工フィルタ305は、入力されたデータに所定の画像変換処理(集約、拡大、又は縮小など)を施し出力する。
The
その他、変換フィルタ103bとして、入力されたPostScriptデータをビットマップデータに変換して出力する(レンダリング処理を実行する)文書変換フィルタなどが含まれている。
In addition, the
また、出力フィルタ103cとしては、例えば、印刷フィルタ306などが含まれている。印刷フィルタ306は、入力されたデータを印刷部21に出力(印刷)させる。
The
その他、出力フィルタ103cとして、入力されたデータを補助記憶部13に保存する保管文書登録フィルタ、入力されたデータを電子メールに添付して送信するメール送信フィルタ、入力されたデータをFAX送信するFAX送信フィルタ、入力されたデータを、非図示のクラインアントPCに送信するPC文書送信フィルタ、入力されたデータを表示部19にプレビュー表示させるプレビューフィルタなどが含まれている。
In addition, as the
デバイスサービス層104は、アプリケーションロジック層103における各フィルタから共通に利用される下位機能が実装されている部分であり、例えば、画像パイプ307、データ管理部308などが含まれている。
The
画像パイプ307は、或るフィルタからの出力データを次のフィルタに伝達するパイプの機能を実現する。また、データ管理部308は、ユーザ情報が登録されたデータベース(DB)や文書又は画像データなどが蓄積されるデータベースなどの各種のデータベースを表現する。
The
デバイス制御層105は、デバイス(ハードウェア)を制御するドライバと呼ばれるプログラムモジュール群が実装されている部分であり、例えば、スキャナ制御部309、プロッタ制御部310、メモリ制御部311、及び操作デバイス制御部312などが含まれる。各制御部は、当該制御部の名前に付けられている各デバイスを制御する。
The
アスペクト106は、例えば、アクセス制御、履歴、課金といった、システム全体に渡る横断的な情報を取り扱うプログラムモジュール群が実装されている部分である。
The
ここから、フィルタについて更に詳しく説明する。図3の(b)は、フィルタの構成要素の一例を示す図である。図中に示すように、各フィルタは、フィルタ設定用UI、フィルタロジック、フィルタ固有下位サービス及び永続記憶領域情報などにより構成されている。このうち、フィルタ設定用UI、フィルタ固有下位サービス及び永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。 From here, the filter will be described in more detail. FIG. 3B is a diagram illustrating an example of components of the filter. As shown in the figure, each filter includes a filter setting UI, filter logic, filter-specific lower services, permanent storage area information, and the like. Among these, the filter setting UI, the filter-specific lower service, and the permanent storage area information are not necessarily included in the components by the filter.
フィルタ設定用UIは、フィルタの実行条件などを設定させるための画面を表示部19などに表示させるプログラムである。例えば、読取フィルタ304であれば、解像度、濃度、画像種別などを設定させる画面(動作(条件)設定画面)が相当する。なお、表示部19の表示がHTML(HyperText Markup Language)データやスクリプトに基づいて行われることを考えると、フィルタ設定用UIは、HTMLデータやスクリプトであってもよい。
The filter setting UI is a program that causes the
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスやデバイスサービス層104又はデバイス制御層105などを利用して、フィルタ設定用UIを介して設定された実行条件に応じてフィルタの機能を実現する。例えば、読取フィルタ304であれば、スキャナ部22による原稿の読み取り制御のためのロジックが相当する。
The filter logic is a program in which logic is implemented to realize a filter function. That is, the filter function is realized according to the execution condition set via the filter setting UI by using the filter-specific lower-level service, the
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能(ライブラリ)である。すなわち、デバイスサービス層104又はデバイス制御層105に相当する機能であるが、他のフィルタから使用されないものについては、フィルタの一部として実装されてもよく、当該一部がフィルタ固有下位サービスに相当する。例えば、読取フィルタ304であれば、スキャナ部22を制御するための機能が相当するが、本実施形態では、デバイス制御層105においてスキャナ制御部309として実装されている。従って、読取フィルタ304において、フィルタ固有下位サービスの実装は必ずしも必要ではない。
The filter-specific lower service is a lower function (library) necessary for realizing the filter logic. That is, the function is equivalent to the
永続記憶領域情報は、フィルタに対する設定情報(例えば、実行条件のデフォルト値など。)など、不揮発メモリ(例えば、NVRAM(Non Volatile RAM)など。)に記憶する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタがインストールされるときにデータ管理部308に登録される。
The permanent storage area information corresponds to a schema definition of data that needs to be stored in a nonvolatile memory (for example, NVRAM (Non Volatile RAM), etc.), such as setting information for a filter (for example, default values of execution conditions). . The schema definition is registered in the
ここで、本実施形態に係る画像処理装置100における各機能を実現するためのフィルタの組み合わせの一例について以下に説明する。
Here, an example of a combination of filters for realizing each function in the
例えば、コピー機能の場合は、読取フィルタ304と印刷フィルタ306とを接続することにより実現される。読取フィルタ304によって原稿より読み取られた画像データを印刷フィルタ306によって印刷すればよいからである。なお、集約、拡大、又は縮小などの加工が要求された場合には、これらの加工を実現する文書加工フィルタ305が二つのフィルタの間に挿入されることにより実現される。
For example, the copy function is realized by connecting the
次に、本実施形態のソフトウェア構成により実行される基本処理手順について、図4及び5を用いて説明する。
図4及び5は、本発明の第1の実施形態に係る画像処理装置100の基本処理手順の一例を示すフローチャートである。ここで言う「基本処理手順」とは、画像処理装置100が1つの機能を実現する際の処理手順のことを意味する。
Next, a basic processing procedure executed by the software configuration of this embodiment will be described with reference to FIGS.
4 and 5 are flowcharts showing an example of a basic processing procedure of the
まず、ユーザによって入力フィルタ103aが選択され(S11)、選択された入力フィルタ103aの実行条件が設定される(S12)。同様に、変換フィルタ(加工手段)103b又は出力フィルタ103cについても選択が行われ(S13)、フィルタ間の接続が指定され(S14)、実行条件が設定される(S15)。
First, the
上記の操作は、ユーザインタフェース層101のローカルUI部302の制御の基、例えば、図1において例に挙げたタッチパネル機能を有する表示部19や入力部20などを介して行われる。
The above operation is performed through the control of the
各フィルタの選択が完了し(S16がYESの場合)、スタートボタンが押下されると、ユーザインタフェース層101からコントロール層102に対して、要求内容(例えば、フィルタの種別と当該フィルタに対する動作設定情報など。)が通知される。
When the selection of each filter is completed (when S16 is YES) and the start button is pressed, the request contents (for example, the type of filter and the operation setting information for the filter) are sent from the
コントロール層102は、ユーザインタフェース層101からの要求内容を受けて、選択された各フィルタ間をパイプによって接続する(S17)。パイプの実体はメモリ(補助記憶部13の格納領域も含む。)であるが、パイプの両端のフィルタに応じて利用するメモリの種類が異なり、その対応関係は、例えば、画像処理装置100の補助記憶部13内に予め定義されている。従って、コントロール層102は、定義された対応関係に基づいて、各フィルタ間を特定のパイプで接続する。
In response to the request content from the
続いて、コントロール層102は、各フィルタに対して並列的に実行要求を出力する(S18)。すなわち、フィルタの呼び出しはフィルタの接続順ではなく、全てのフィルタに対してほぼ同時に行われる。なぜならフィルタ間の同期はパイプによってとられるからである。すなわち、コントロール層102からの実行要求を受けて、各フィルタは自分の入力側のパイプにデータが入力されるまで待機する。但し、入力フィルタ103aには、入力側にパイプは存在しない。従って、入力フィルタ103aは実行要求に応じて処理を開始する。
Subsequently, the
処理手順は図5に移り、まず、入力フィルタ103aは、入力デバイスよりデータを入力し(S21)、当該データを、出力側に接続されているパイプに出力する(S22)。なお、データが複数回に分けて入力される場合(複数枚の原稿がスキャンされる場合など)は、データの入力とパイプへの出力が繰り返される。全ての入力データについて処理が終了すると(S23がYESの場合)、入力フィルタ103aの処理は終了する。
The processing procedure moves to FIG. 5. First, the
変換フィルタ103bは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み(S31)、データに対して画像処理を施す(S32)。続いて、処理結果としてのデータを出力側に接続されているパイプに出力する(S33)。入力側のパイプに入力された全てのデータについて処理が終了すると(S34がYESの場合)、変換フィルタ103bの処理は終了する。
The
出力フィルタ103cは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み(S41)。続いて、読み込まれたデータを出力デバイスを利用して出力する(S42)。入力側のパイプに入力された全てのデータについて処理が終了すると(S43がYESの場合)、出力フィルタ103cの処理は終了する。
The
<「パイプ&フィルタ」によるアプリケーション機能について>
これまで説明した「パイプ&フィルタ」のソフトウェア構成及び基本処理手順を踏まえて、本実施形態に係るアプリケーション機能を実現する場合について考える。
<Application function by "Pipe &Filter">
Consider the case where the application function according to the present embodiment is realized based on the software configuration and the basic processing procedure of the “pipe & filter” described so far.
このように、これまで説明を行ってきた「パイプ&フィルタ」のソフトウェア構成上で動作するアプリケーションを実現するためには、画像処理装置100で行いたい処理の目的にあわせて、データを入力する入力フィルタ103aと、入力したデータを加工する変換フィルタ103bと、加工したデータを出力する出力フィルタ103cとを組み合わせ、入力・加工・出力の一連の作業工程(ワークフロー)を構成する。次に、これらの各フィルタ(入力・加工・出力の各手段)をパイプで接続する。
As described above, in order to realize an application that operates on the software configuration of the “pipe and filter” described so far, input for inputting data in accordance with the purpose of processing desired to be performed by the
これによって、アプリケーションは、入力フィルタ103aで入力したデータを、次工程の変換フィルタ103bへ伝達でき、変換フィルタ103bで加工したデータを、次工程の出力フィルタ103cへ伝達する。すなわち、画像処理装置100が有する入力・加工・出力機能コンポーネント(入力・加工・出力の各ソフトウェア部品)を連携し動作させることで機能を実現する。
Thereby, the application can transmit the data input by the
このように、本実施形態に係る画像処理装置100には、アプリケーションが目的とする機能を実現する入力・加工・出力機能コンポーネントを、必要に応じてインストールすることで、アプリケーションがもつ機能そのものを実装できる。
As described above, the
<情報処理装置のハードウェア構成について>
図6は、本発明の第1の実施形態に係る情報処理装置200のハードウェア構成の一例を示す図である。
<Hardware configuration of information processing device>
FIG. 6 is a diagram illustrating an example of a hardware configuration of the
図中に示すように、本実施形態に係る情報処理装置200は、制御部11、主記憶部12、補助記憶部13、ネットワークI/F14、外部記憶装置I/F15、外部装置I/F16、出力装置I/F17、及び入力装置I/F18などにより構成されている。これらの構成要素は、図1を用いて説明した本実施形態に係る画像処理装置100で示した構成要素と一部同じ装置を有していることから、同じ構成要素については、図1と同じ参照符号を用いることで説明を省略し、異なる構成要素についてのみ以下に説明する。
As shown in the figure, the
出力装置I/F17は、専用ケーブルなどのデータ伝送路を介して接続された出力装置(例えば、CRT(Cathode Ray Tube)やLCDなど。)と当該情報処理装置200とのインタフェースである。
The output device I /
入力装置I/F18は、USBなどのデータ伝送路を介して接続された入力装置(例えば、キーボードやマウスなど。)と当該情報処理装置200とのインタフェースである。
The input device I /
このように、本実施形態に係る情報処理装置200は、主記憶部12や補助記憶部13などの記憶装置に格納されたプログラムを制御部11で実行し、制御信号を各装置へ送出することで、情報処理装置200が有する機能を実現している。画像処理装置100との違いは、装置に接続された入力/出力装置の特性が異なる点であって、制御部11によりプログラムを実行し、各装置を制御することで「情報処理装置200で管理する情報、又は情報処理装置200が接続されたシステム内で管理する情報を処理する」点において同じである。
As described above, the
よって、本発明の「マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供する」という目的を達成するために必要なハードウェアの最小構成要素は、画像処理装置100及び情報処理装置200ともに同じであることから、これまでに説明した画像処理装置100を、印刷部21、スキャナ部22、及び情報処理装置200を有する装置として解釈できる。このことから、以降、情報処理装置200として本発明の実施形態について説明を行う。
Therefore, the present invention provides a system having high robustness that can easily customize or extend an application without being aware of multi-process and does not affect the basic function of the system. The minimum hardware components necessary for achieving the purpose of the
<マルチプロセス化について>
では、図2〜5を用いて説明した「パイプ&フィルタ」のソフトウェア構成におけるマルチプロセス化について、図7〜9を用いて説明する。
<About multi-process>
Now, multi-processing in the “pipe & filter” software configuration described with reference to FIGS. 2 to 5 will be described with reference to FIGS.
本実施形態に係る情報処理装置200では、「マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供する」ために、以下の基本方針に従ってマルチプロセス化を行う。
(方針1)自社が提供する基本機能と、サードベンダが提供する拡張機能とを、異なるプロセスで動作させる。
(方針2)ユーザからの使用頻度が高い基本機能(基本アプリケーション)を、同じプロセス(同じJVM)で動作させる。
(方針3)アプリケーションロジック層103へのコンポーネント実装の影響を最小化する。
In the
(Policy 1) The basic function provided by the company and the extended function provided by the third vendor are operated in different processes.
(Policy 2) Basic functions (basic applications) frequently used by users are operated in the same process (same JVM).
(Policy 3) Minimize the effect of component implementation on the
<<プロセス構成>>
図7は、本発明の第1の実施形態に係るプロセス構成の一例を示す図である。
<< Process configuration >>
FIG. 7 is a diagram illustrating an example of a process configuration according to the first embodiment of the present invention.
図中に示すように、本実施形態に係る情報処理装置200は、先に示した(方針1)に従ってマルチプロセス化を実現するため、OS31(例えば、NetBSDなど。)から起動されるプロセス構成を、アプリケーション管理用JVMを動作させるプロセスA(第1のプロセス)32aと、自社製アプリケーション用(基本アプリケーション用)JVMを動作させるプロセスB(第2のプロセス)32bと、サードベンダ製アプリケーション用(拡張アプリケーション用)JVMを動作させるプロセスC(第3のプロセス)32cとする。
As shown in the figure, the
ここで、JVMについて簡単に説明する。JVMはOS31上のプロセスの1つとして、メインメモリ上にアドレス空間を構築する。ここで言う「アドレス空間」とは、プロセス管理下のメモリ管理単位を意味する。OS31は、ハードディスクなどの補助記憶部13に格納されたプログラムをメモリ上に展開(ロード)することでプロセスを起動し、プロセスごとに物理メモリを割り振り(ディスパッチして)、使用状況を管理する。メモリ上に展開されたJVMのアドレス空間には、Javaアプリケーションを展開するための領域が確保される。
Here, JVM is explained briefly. The JVM constructs an address space on the main memory as one of the processes on the
プロセスA32aでは、アプリケーションの起動や終了などの管理を行う「アプリケーション管理ソフトウェア(システム:自社開発した基盤ソフト)」を実行する。プロセスB32bでは、情報処理装置200が有する基本機能を実現する「基本アプリケーションソフトウェア」を実行する。プロセスC32cでは、情報処理装置200に追加される拡張機能を実現する「拡張アプリケーションソフトウェア」を実行する。
In the process A32a, “application management software (system: platform software developed in-house)” for managing the start and end of the application is executed. In the process B32b, “basic application software” that realizes basic functions of the
これによって、本実施形態に係る情報処理装置200は、拡張した機能(インストールした拡張アプリケーション)の不具合がシステムの基本機能に影響を及ぼす(例えば、システムがクラッシュ(異常終了)する。)ことがなく、また、拡張した機能が多くのメモリを使用した場合でも、アプリケーション管理ソフトウェアに影響を与えることなく、ユーザに対して安定した機能を提供することができる。
Thus, in the
<<各レイヤのプロセス配置>>
図8は、本発明の第1の実施形態に係る各レイヤをプロセスに配置する一例を示す図である。
<< Process arrangement of each layer >>
FIG. 8 is a diagram showing an example of arranging each layer in the process according to the first embodiment of the present invention.
図7を用いて説明したように、適切な粒度で分割された3つのプロセス(3種類のJVM)に対して、各プロセスで動作させるレイヤのコンポーネントを、図8に示すように配置する。 As described with reference to FIG. 7, for the three processes (three types of JVMs) divided at an appropriate granularity, the components of the layers operated in each process are arranged as shown in FIG.
ユーザインタフェース層101は、全ての機能に対するUIのフレームワークとなるコンポーネントが含まれており、これらはシステムワイドな性質からアプリケーション管理ソフトウェアが動作するプロセスA32aに配置する。また、アプリケーション個別のUIについては、基本アプリケーション(自社製アプリケーション)や拡張アプリケーション(サードベンダ製アプリケーション)それぞれが動作するプロセスB32b及びプロセスC32cに配置する。
The
コントロール層102は、アプリケーションの動作を制御するコンポーネント(リクエスト管理、セッション管理などのソフトウェア部品)と、全てのコンポーネントに関連する機能を実現するコンポーネント(プラグイン管理、機内監視などのソフトウェア部品)が含まれており、いずれもシステムワイドな性質からアプリケーション管理ソフトウェアが動作するプロセスA32aに配置する。
The
アプリケーションロジック層103は、情報処理装置200が有する機能を実現するためのコンポーネントが含まれており、機能追加・変更・削除などが簡便に行えるように、アプリケーション管理ソフトウェアが動作するプロセスA32aと異なる、基本アプリケーションが動作するプロセスB32b及び拡張アプリケーションが動作するプロセスC32cに配置する。
The
デバイスサービス層104は、アプリケーション層103から利用される共通のサービスを実現するコンポーネントが含まれており、アプリケーション層103のコンポーネントが、その動作単位でプロセスB32b及びプロセスC32cに配置されることを考慮し、必要なサービスも同一のプロセスB32b及びプロセスC32cに配置する。
The
デバイス制御層105は、システムで扱うデバイスに相当するコンポーネントが含まれており、情報処理装置200の性能に大きく影響するため、アプリケーション管理ソフトウェアが動作するプロセスA32a及び情報処理装置200が有する機能を実現する基本アプリケーションが動作するプロセスB32bに配置する。
The
アスペクト106は、システム全体に渡る横断的な関心ごとを取り扱うコンポーネントが含まれており、いずれもシステムワイドな性質からアプリケーション管理ソフトウェアが動作するプロセスA32aに配置する。
The
このように、本実施形態に係る情報処理装置200は、各レイヤの特徴を考慮して、レイヤのコンポーネントを最適なプロセスに配置する。また、先に示した(方針2)に従って、「情報処理装置200が有する基本機能のうち、ユーザからの使用頻度の高いコピー機能などのアプリケーションが有する機能を実現するために用いる入力フィルタ103a、変換フィルタ103b、出力フィルタ103cなどの各コンポーネントを、同じプロセスで動作させること」とする。
As described above, the
これによって、本実施形態に係る情報処理装置200は、システムが有する機能のうち、比較的使用頻度の高い基本機能を安定してユーザに提供することができる。
As a result, the
<<アクティビティ及びフィルタのプロセス配置>>
図9は、本発明の第1の実施形態に係る各アクティビティ及びフィルタをプロセスに配置する一例を示す図である。
<< Process arrangement of activities and filters >>
FIG. 9 is a diagram showing an example of arranging each activity and filter according to the first embodiment of the present invention in a process.
図8では、各レイヤの特徴に基づいたマルチプロセス化における各レイヤのコンポーネントの配置について説明を行った。ここでは、更に細かい単位に視点を移し、「パイプ&フィルタ」における「フィルタ」と、一連のフィルタをつなぎ合わせることで実現される機能の「アクティビティ」それぞれの単位で、マルチプロセス化におけるコンポーネントの配置について、図9を用いて説明する。 In FIG. 8, the arrangement of components of each layer in the multi-process based on the characteristics of each layer has been described. Here, we move the viewpoint to finer units, and arrange components in multi-process in units of “activities” of functions realized by connecting “filters” in “pipe & filter” and a series of filters. Will be described with reference to FIG.
図9の(a)には、「アクティビティ」の単位でコンポーネントを配置する「アクティビティ集約型」の一例が示されている。また、図9の(b)には、「フィルタ」の単位でコンポーネントを配置する「フィルタ集約型」の一例が示されている。また、図9では、「フィルタA」Faと「フィルタB」Fbとを「パイプ」Pで接続して実現される「アクティビティ1」A1、また、「フィルタA」Faと「フィルタC」Fcとを「パイプ」Pで接続して実現される「アクティビティ2」A2が示されている。
FIG. 9A shows an example of an “activity intensive type” in which components are arranged in units of “activity”. FIG. 9B shows an example of “filter aggregation type” in which components are arranged in units of “filter”. In FIG. 9, “
「アクティビティ集約型」は、図9の(a)に示すように、アクティビティコンポーネントに必要な1つ又は複数のフィルタコンポーネントを、アクティビティコンポーネントと同じプロセスに配置し、アクティビティが単一プロセス(単一JVM)で実行するためのコンポーネント構成である。 As shown in (a) of FIG. 9, “activity intensive type” is a method in which one or more filter components required for an activity component are arranged in the same process as the activity component, and the activity is a single process (single JVM). ) Is a component configuration for execution.
それに対して、「フィルタ集約型」は、図9の(b)に示すように、単一プロセスに、1つのフィルタコンポーネントを配置し、アクティビティが複数のプロセス(複数のJVM)をまたいで各フィルタを利用するコンポーネント構成である。 On the other hand, as shown in Fig. 9 (b), the "filter aggregation type" arranges a single filter component in a single process, and each filter spans multiple processes (multiple JVMs). This is a component configuration that uses.
「アクティビティ集約型」のメリット及びデメリットは、以下の通りである。
[メリット]
・拡張アプリケーションのコンポーネントが不正な処理を行っても、他のアクティビティの実行に影響しない。
・機能選択、動作設定、アクティビティ実行まで、単一プロセスで動作するため、フィルタ間でのプロセス間通信が発生しないため、プロセス間通信を実装するコンポーネントが少なくてすみ、またプロセス間通信のオーバーヘッドにより生じる性能低下を抑えることができる。
・アクティビティ実行中に、プロセスを動的に終了するなどの後処理を容易に行うことができる。
[デメリット]
・複数のプロセスに同じコンポーネントが配置されるため、同じクラスのバイトコードが必要となる(但し、プロセス間でバイトコードを共有する対応策がある)。
・同じフィルタコンポーネントが複数のプロセスに存在するため、複数のプロセス間で、フィルタが使用するリソースのスケジューリング(排他制御)を行う必要がある。
The advantages and disadvantages of “activity-intensive” are as follows.
[merit]
-Even if an extended application component performs unauthorized processing, it does not affect the execution of other activities.
・ Since function selection, operation setting and activity execution are performed in a single process, no inter-process communication occurs between filters, so there are fewer components to implement inter-process communication, and due to the overhead of inter-process communication The resulting performance degradation can be suppressed.
-It is possible to easily perform post-processing such as dynamically ending the process during activity execution.
[Demerit]
-Since the same component is arranged in a plurality of processes, the byte code of the same class is required (however, there is a countermeasure for sharing the byte code between processes).
-Since the same filter component exists in a plurality of processes, it is necessary to perform scheduling (exclusive control) of resources used by the filter between the plurality of processes.
「フィルタ集約型」のメリット及びデメリットは、以下の通りである。
[メリット]
・同じフィルタコンポーネントが複数のプロセスに存在しないため、メモリ効率がよい。
・同じフィルタコンポーネントが複数のプロセスに存在しないため、フィルタで使用するリソースのスケジューリングが単一プロセス内で解決できる。
[デメリット]
・拡張アプリケーションが基本アプリケーション用のフィルタコンポーネントを利用する場合、基本アプリケーションの実行に影響を及ぼす。
・機能選択、動作設定、アクティビティ実行まで、複数のプロセスで動作するため、複数のフィルタコンポーネントにアクセスする必要があり、頻繁にフィルタ間でのプロセス間通信が発生する。
・フィルタコンポーネントごとにプロセスが割り当てられているため、アクティビティ実行中に、プロセスを動的に終了するなどの後処理が難しい。
The advantages and disadvantages of the “filter aggregation type” are as follows.
[merit]
-Memory efficiency is good because the same filter component does not exist in multiple processes.
-Since the same filter component does not exist in multiple processes, scheduling of resources used in the filter can be solved within a single process.
[Demerit]
-When the extended application uses the filter component for the basic application, the execution of the basic application is affected.
-Since it operates in a plurality of processes from function selection to operation setting to activity execution, it is necessary to access a plurality of filter components, and inter-process communication frequently occurs between filters.
-Since a process is assigned to each filter component, post-processing such as dynamically ending the process during activity execution is difficult.
これらのことを踏まえて総合的に判断すると、本実施形態に係る情報処理装置200の「パイプ&フィルタ」における最適なマルチプロセス化には、「拡張アプリケーションのコンポーネントが不正な処理を行っても、他のアクティビティの実行に影響しない」と「機能選択、動作設定、アクティビティ実行まで、単一プロセスで動作し、フィルタ間でのプロセス間通信が発生しないため、プロセス間通信を実装するコンポーネントが少なくてすみ、またプロセス間通信のオーバーヘッドにより生じる性能低下を抑えることができる。」の利点がある「アクティビティ集約型」を採用する。
Comprehensively based on these matters, the optimum multi-process in the “pipe & filter” of the
このように、本実施形態に係る情報処理装置200は、先に示した(方針3)に従って、「アクティビティコンポーネントで利用可能なフィルタコンポーネントを、アクティビティコンポーネントと同じプロセスに配置し、アクティビティが単一プロセスで実行するためのコンポーネント構成である「アクティビティ集約型」」を採用し、「マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステム」を実現している。
As described above, the
これによって、本実施形態に係る情報処理装置200は、マルチプロセス環境における各プロセス同士(各JVM同士)で行うプロセス間通信を、フレームワークに相当する限定されたコンポーネントで行えるように構成することにより、アプリケーションへのマルチプロセス化の影響を隠蔽することができる。その結果、アプリケーションを、マルチプロセス環境を意識することなく設計・開発することができる。
As a result, the
<情報処理装置における主な機能構成について>
ここからは、図7〜9を用いて説明したプロセス構成及び各レイヤのプロセス配置において、本実施形態に係る情報処理装置200が有する基本機能及び拡張機能をどうのように動作させるのか、すなわち「マルチプロセス環境においてアプリケーションをどのような仕組みで実行させるのか」について、図10〜16を用いて説明する。
<Main functional configuration of information processing device>
From here, how to operate the basic function and the extended function of the
図10は、本発明の第1の実施形態に係る情報処理装置200の主な機能構成の一例を示す図である。
FIG. 10 is a diagram illustrating an example of a main functional configuration of the
本実施形態に係る情報処理装置200は、図7に示した3つのプロセス(3種類のJVM)を実行する実行手段51を有している。
The
実行手段51は、図10に示すように、以下の3つのプロセスを実行する。実行手段51は、例えばOS31である。
The
[プロセスA]
プロセスA32aは、アプリケーションの起動や終了などの管理を行うアプリケーション管理ソフトウェアを動作させるプロセスである。また、プロセスA32aは、情報処理装置200の起動後、常駐する。
[Process A]
The process A32a is a process for operating application management software for managing application activation and termination. Further, the
[プロセスB]
プロセスB32bは、予め当該情報処理装置200が有する、入力フィルタ103a、変換フィルタ103b、及び/又は出力フィルタ103cとして機能するコンポーネント、すなわち情報処理装置200が有する標準的な機能を実現するコンポーネントを動作させるプロセスである。
[Process B]
The process B32b operates in advance components that function as the
[プロセスC]
プロセスC32cは、機能拡張のときに当該情報処理装置200に追加される、入力フィルタ103a、変換フィルタ103b、及び/又は出力フィルタ103cとして機能するコンポーネントを動作させるプロセスである。
[Process C]
The process C32c is a process for operating components that function as the
また、プロセスB32b及びプロセスC32cは、ユーザからの動作要求を受けたときなど、必要に応じて実行手段51により実行される。
Further, the
このように、本実施形態に係る情報処理装置200は、システムと、基本機能を実現する基本アプリケーション81と、拡張機能を実現する拡張アプリケーション82とにおいて、それぞれが動作するメモリ空間を分離し、互いに影響を及ぼさないマルチプロセス化を実現している。
As described above, the
実行手段51によって実行された3つのプロセスでは、先に説明した(方針3)に従って、プロセス間通信が最小限となるコンポーネント構成としたが、アプリケーション管理ソフトウェアと基本アプリケーション81や、アプリケーション管理ソフトウェアと拡張アプリケーション82との間では、動作要求、動作設定、及び実行要求などのプロセス間通信を行わなければならない。
The three processes executed by the execution means 51 have component configurations that minimize inter-process communication according to the above-described (policy 3). However, the application management software and the
そこで、本実施形態に係る情報処理装置200では、アプリケーション管理ソフトウェアと、アプリケーション管理ソフトウェアが動作するプロセスA32aと異なるプロセスB32b又はプロセスC32cで動作する各アプリケーションとの間で、データのやり取りを行う代理コンポーネント71を有している。
Therefore, in the
図11は、本発明の第1の実施形態に係る代理コンポーネントの仕組みの一例を示す図である。 FIG. 11 is a diagram illustrating an example of a mechanism of a proxy component according to the first embodiment of the present invention.
図11の(a)には、アプリケーション管理ソフトウェアからアプリケーションAPを呼び出す例が示されている。また、図11の(b)には、アプリケーションAPからアプリケーション管理ソフトウェアを呼び出す例が示されている。 FIG. 11A shows an example of calling an application AP from the application management software. FIG. 11B shows an example of calling application management software from the application AP.
通常、アプリケーション管理ソフトウェアから各アプリケーションAP1及びAP2を呼び出す場合、呼び出しイベントは、システムワイドなフレームワークFWコンポーネントからプロセス間通信によってアプリケーションAPに送信される。また、各アプリケーションAP1及びAP2からアプリケーション管理ソフトウェアを呼び出す場合、呼び出しイベントは、アプリケーションAPからプロセス間通信によってシステムワイドなフレームワークFWコンポーネントに送信される。そのため、アプリケーションAPを開発するときに、プロセス間通信を考慮して開発を行わなければならない。 Normally, when calling each application AP1 and AP2 from the application management software, the call event is transmitted from the system-wide framework FW component to the application AP by inter-process communication. When the application management software is called from each application AP1 and AP2, the call event is transmitted from the application AP to the system-wide framework FW component by inter-process communication. Therefore, when developing an application AP, development must be performed in consideration of inter-process communication.
そこで、本実施形態では、アプリケーション管理用プロセスA32aとアプリケーション用プロセスB32b又はC32cとの間でプロセス間通信を行うことで、アプリケーションAPに対して、アプリケーション管理ソフトウェアとのデータのやり取りと同じ振る舞いをする代理コンポーネント71を、各アプリケーションAP1及びAP2が動作するプロセスB32b又はプロセスC32cに配置し、プロセス間通信(リモート呼び出し機能)を隠蔽する。
Therefore, in this embodiment, inter-process communication is performed between the application
その結果、アプリケーションAPは、単一プロセスで動作しているときと同じように、ローカル呼び出しによって、アプリケーション管理ソフトウェアとのイベントのやり取りを行うことができる。 As a result, the application AP can exchange events with the application management software by a local call in the same manner as when operating in a single process.
このように、本実施形態に係る情報処理装置200は、マルチプロセス環境における各プロセス同士で行うプロセス間通信を、フレームワークFWに相当する限定されたコンポーネントで行うことにより、マルチプロセス化の影響を隠蔽することができる。その結果、アプリケーションAPを、アプリケーション管理ソフトウェアとのプロセス間通信を意識することなく(マルチプロセス環境を意識することなく)設計・開発することができる。
As described above, the
図12は、本発明の第1の実施形態に係る各レイヤに属するコンポーネントをプロセスに配置する一例(アクティビティ集約型の場合)を示す図である。 FIG. 12 is a diagram showing an example (in the case of activity intensive type) in which components belonging to each layer according to the first embodiment of the present invention are arranged in a process.
アプリケーション管理ソフトウェアが動作するプロセスA32aと、基本プリケーション81が動作するプロセスB32b又は拡張プリケーション82が動作するプロセスC32cとの間でプロセス間通信を行う必要がある、システムワイドな性質をもつコンポーネントは、ユーザインタフェース層101のローカルUI部302、コントロール層102のコントロール部303、デバイスサービス層104のデータ管理部308、データ制御層105のスキャナ制御部309、プロッタ制御部310、及びメモリ制御部311である。
A component having a system-wide property that needs to perform inter-process communication between the
そこで、図中の破線枠に示すように、上記コンポーネントの代理コンポーネント71を、各アプリケーションが動作するプロセスB32b及びプロセスC32cに配置する。
Therefore, as shown by the broken line frame in the figure, the
次に、本実施形態に係る情報処理装置200は、マルチプロセス化においてアプリケーションAPを実行するときの「アプリケーションの動作要求」、「アプリケーションの動作設定要求」、及び「アプリケーションの実行要求」をどのように行うのかについて説明する。
Next, the
本実施形態に係る情報処理装置200において、ユーザが、UI画面を介してアプリケーションAPを実行するまでに行う操作は、「動作対象のアプリケーションAPの選択(動作要求の指示)」、「選択されたアプリケーションAPにおける入力・加工・出力の各フィルタの動作設定(動作設定の指示)」、「アプリケーションAPの実行指示(実行要求の指示)」の順で行われる。
In the
そのため、マルチプロセス化を行った場合には、アプリケーション管理ソフトウェアが、各操作段階において、次処理を行うコンポーネントにユーザの指示に従ったイベントを通知しなければならないため、次処理を行うコンポーネントが動作するプロセスを知る必要がある。 Therefore, when multi-processing is performed, the application management software must notify the event that follows the user's instruction to the component that performs the next process at each operation stage. Need to know the process to do.
そのため、本実施形態に係る情報処理装置200は、動作要求送信手段61、動作設定送信手段62、及び実行要求管理手段63を有している。
Therefore, the
動作要求送信手段61は、動作させるアプリケーションAPの選択指示を受け付けたときに、選択指示されたアプリケーションAPが動作するプロセスに対して、受け付けた動作要求を送信する。
When the operation
動作設定送信手段62は、アプリケーションAPの動作設定要求を受け付けたときに、動作設定を行うアプリケーションAPが動作するプロセスに対して、受け付けた動作設定要求を送信する。
When the operation setting
実行要求管理手段63は、受け付けた実行要求(リクエスト)をスケジューリングし、実行可能となったアプリケーションAPが動作するプロセスに対して、実行開始を指示する。 The execution request management means 63 schedules the received execution request (request), and instructs the process in which the application AP that has become executable operates to start execution.
では、動作要求送信手段61、動作設定送信手段62、及び実行要求管理手段63について、以降に詳しく説明する。
The operation
まず、動作要求送信手段61について説明する。動作要求送信手段61は、アプリケーション管理ソフトウェアのローカルUI部302が有する機能であり、動作させるアプリケーションAPの選択指示を、UIを介してユーザから受け付けたときに、選択されたアプリケーションAPが動作するプロセスを特定可能な情報に基づいてプロセスを特定し、特定されたプロセスに受け付けた動作要求を送信する。
First, the operation
そのため、アプリケーション管理ソフトウェアは、図13に示す方法によって、アプリケーションAPが動作するプロセスを特定できる情報を生成し、メモリに保持する。 Therefore, the application management software generates information that can identify the process in which the application AP operates by the method shown in FIG. 13, and stores the information in the memory.
図13は、本発明の第1の実施形態に係る動作するプロセスの判別方法(アクティビティ選択方法)の一例を示す図である。 FIG. 13 is a diagram showing an example of an operating process determination method (activity selection method) according to the first embodiment of the present invention.
図13には、各アプリケーションAPがインストールされたときに、「どのプロセスで動作するのか」を、アプリケーション管理ソフトウェアに登録するときの一例が示されている。 FIG. 13 shows an example in which “which process operates” is registered in the application management software when each application AP is installed.
図中に示すよう、アプリケーションAPは、自らがインストールされたときに、ローカルUI部302の代理コンポーネント71を介して、アプリケーションAPを識別するアプリケーション識別情報(例えば、アクティビティの名称。)と、アプリケーションAPが動作するプロセスを識別するプロセス識別情報(例えば、プロセスID。)とを、アプリケーション管理ソフトウェアに送信する。
As shown in the figure, when the application AP is installed, the application AP identifies the application AP (for example, the name of the activity) via the
例えば、コピーアプリケーションがインストールされた場合には、図中に示すように、コピーアプリケーションのコピーアクティビティUI(Copy Activity UI)401が、代理コンポーネント71を介して、「アクティビティ名前="Copy"」及び「プロセスID="プロセスB"」の情報を、登録情報としてアプリケーション管理ソフトウェアに送信する。また、ベンダアプリケーションがインストールされた場合には、図中に示すように、ベンダアプリケーションのベンダアクティビティUI(Vendor Activity UI)405が、代理コンポーネント71を介して、「アクティビティ名前="Vendor"」及び「プロセスID="プロセスC"」の情報を、登録情報としてアプリケーション管理ソフトウェアに送信する。
For example, when a copy application is installed, as shown in the figure, the copy activity UI (Copy Activity UI) 401 of the copy application passes through the
図14は、本発明の第1の実施形態に係るアクティビティとアクティビティが動作するプロセスとが対応付けられたデータ41の一例を示す図である。
FIG. 14 is a diagram illustrating an example of
その結果、アプリケーション管理ソフトウェアでは、代理コンポーネント71とのプロセス間通信によって、アプリケーションAPを識別するアプリケーション識別情報とアプリケーションAPが動作するプロセスを識別するプロセス識別情報とを各プロセスから収集し、収集したアプリケーション識別情報とプロセス識別情報とを、例えば、図14に示すようなデータ構造によって関連付けて、関連付けデータ41としてメモリ上に一時保持する。
As a result, the application management software collects application identification information for identifying the application AP and process identification information for identifying the process in which the application AP operates from each process through inter-process communication with the
これによって、動作要求送信手段61は、アプリケーション識別情報とプロセス識別情報とを関連付ける情報41に基づいて、選択指示されたアプリケーションAPのアプリケーション識別情報から特定したプロセスに対して、受け付けた動作要求を送信する。
Thereby, the operation request transmission means 61 transmits the received operation request to the process specified from the application identification information of the application AP instructed to select, based on the
図10に戻り、動作設定要求送信手段62について説明する。動作設定要求送信手段62は、アプリケーション管理ソフトウェアのローカルUI部302が有する機能であり、アプリケーションAPごとの動作設定要求を、UIを介してユーザから受け付けたときに、要求されたアプリケーションAPが動作するプロセスを特定可能な情報に基づいて特定し、特定されたプロセスに受け付けた動作設定要求を送信する。
Returning to FIG. 10, the operation setting request transmission means 62 will be described. The operation setting
「動作対象のアプリケーションAPの選択(動作要求の指示)」の次に、ユーザによって行われる操作は、「選択されたアプリケーションAPにおける入力・加工・出力の各フィルタの動作設定(動作設定の指示)」である。そのため、アプリケーション管理ソフトウェアは、アプリケーションAPの動作設定をユーザから受け付けるためのUI画面表示の生成を、UI要素(オブジェクト)を生成するコンポーネントである各アクティビティUIや各フィルタUIに通知しなければならない。また、生成されたUI画面表示を介して操作イベントを受け取るのは、アプリケーション管理ソフトウェアの操作デバイス制御部312であるため、受け取ったイベントを適切なプロセスに分配しなければならない。このことから、アプリケーション管理ソフトウェアは、各アクティビティUIや各フィルタUIが動作するプロセスを特定する必要がある。
After “Selection of application AP to be operated (instruction for operation request)”, the operation performed by the user is “Operation setting of each filter of input / processing / output in the selected application AP (instruction for operation setting)” It is. Therefore, the application management software must notify each activity UI or each filter UI, which is a component that generates UI elements (objects), of the generation of a UI screen display for accepting the operation setting of the application AP from the user. Further, since it is the operation
そこで、アプリケーション管理ソフトウェア、アクティビティUIやフィルタUIが動作するプロセスを特定可能な情報として、例えば図15に示すようなデータをメモリに保持する。 Therefore, for example, data as shown in FIG. 15 is held in the memory as information that can identify the process in which the application management software, the activity UI, and the filter UI operate.
図15は、本発明の第1の実施形態に係るにUIとUIを生成するプロセスとが対応付けられたデータ42の一例を示す図である。
FIG. 15 is a diagram illustrating an example of
図中に示すように、アプリケーション管理ソフトウェアは、メモリ上に、各アクティビティUIや各フィルタUIを制御する(UI要素の生成を含む)コンポーネントを識別するUI制御コンポーネント識別情報と、UIを制御するコンポーネント(以下、「UI制御コンポーネント」という。)により生成され表示画面に表示されるアプリケーションAPのUI要素を識別する画面要素識別情報と、要求を分配する対象となる各アクティビティや各フィルタが動作するプロセスを識別するプロセス識別情報とを関連付けて保持する。 As shown in the figure, the application management software has UI control component identification information for identifying components (including generation of UI elements) that control each activity UI and each filter UI on the memory, and components that control the UI. (Hereinafter referred to as “UI control component”) and the screen element identification information for identifying the UI element of the application AP that is displayed on the display screen, and the process in which each activity and each filter to which the request is distributed operates Is stored in association with process identification information for identifying
上記画面要素識別情報は、アプリケーションAPがUIを介して選択されたときに、選択されたアプリケーションAPのUI制御コンポーネント(アクティビティUI又はフィルタUI)によってUI要素が生成され、生成されたUI要素に対して自動的に採番される。このとき、代理コンポーネント71を含むローカルUI部302が、採番された画面要素識別情報とプロセス識別情報とを関連付けてデータ42に追加する。
When the application AP is selected via the UI, the screen element identification information is generated by the UI control component (activity UI or filter UI) of the selected application AP. Is automatically numbered. At this time, the
例えば、コピーアプリケーションがインストールされている場合には、図中に示すように、コピーアプリケーションのUI制御コンポーネント(コピーアクティビティUI401)により生成されたUI要素に対して画面要素ID'1'が採番され、ローカルUI部302とプロセスB32bで動作する代理コンポーネント71とによって、採番された画面要素ID'1'とコピーアクティビティUI401が動作するプロセスB32bとが関連付けられる。コピーアプリケーション機能を実現するために動作する読み取りフィルタUI(Scan Filter UI)402及び印刷フィルタUI(Print Filter UI)403についても同様の方法で関連付けられデータ42に追加される。また、ベンダアプリケーションがインストールされている場合には、ベンダアプリケーションのUI制御コンポーネント(ベンダアクティビティUI405)により生成されたUI要素に対して画面要素ID'4'が採番され、ローカルUI部302とプロセスC32cで動作する代理コンポーネント71とによって、採番された画面要素ID'4'とベンダアクティビティUI405とが動作するプロセスC32cとが関連付けられる。ベンダアプリケーション機能を実現するために動作するベンダフィルタUI(Vender Filter UI)406及び印刷フィルタUI403についても同様の方法で関連付けられデータ42に追加される。
For example, when the copy application is installed, as shown in the figure, the screen element ID “1” is assigned to the UI element generated by the UI control component (copy activity UI 401) of the copy application. The numbered screen element ID '1' and the
このように、アプリケーション管理ソフトウェアでは、ローカルUI部302(代理コンポーネント71を含む)において、採番した画面要素識別情報とプロセス識別情報とを関連付けて、関連付けデータ42としてメモリ上に一時保持する。
As described above, in the application management software, the numbered screen element identification information and the process identification information are associated with each other in the local UI unit 302 (including the proxy component 71), and temporarily stored in the memory as the
その結果、アプリケーション管理ソフトウェアは、例えば、本実施形態に係る情報処理装置200が有する出力装置I/F17を介して、タッチパネル機能を有する表示装置が接続されている場合、ユーザが表示装置に表示された表示画面をタッチすることでアプリケーションAPの動作設定を指示すると、表示画面でタッチされた画面要素(所定の画面表示領域)を認識し、認識した画面要素の画面要素識別番号を得る。
As a result, for example, when a display device having a touch panel function is connected to the application management software via the output device I /
これによって、動作設定要求送信手段62は、画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、画面要素識別情報から特定された、各アクティビティUI及び各フィルタUI(代理コンポーネント71を含む)が動作するプロセスに対して、操作デバイス制御部312で受け付けた動作設定要求を分配する。
Accordingly, the operation setting
図10に戻り、実行要求管理手段63ついて説明する。実行要求管理手段63は、主に2つの機能を有している。一つは、アプリケーション管理ソフトウェアのローカルUI部302(代理コンポーネント71を含む)により実現する「実行要求登録」機能であり、もう一つは、コントロール部303により実現する「実行開始指示」機能である。
Returning to FIG. 10, the execution request management means 63 will be described. The execution request management means 63 mainly has two functions. One is an “execution request registration” function realized by the local UI unit 302 (including the proxy component 71) of the application management software, and the other is an “execution start instruction” function realized by the
・「実行要求登録機能について」
実行要求管理手段63は、ローカルUI部302により受け付けた実行要求(リクエスト)をコントローラ部303へ登録する実行要求登録機能を有している。より具体的には、アプリケーションAPの実行要求を受け付けたときに、要求されたアプリケーションAPが動作するプロセスを特定可能な情報に基づいてプロセスを特定し、特定されたプロセスに受け付けた実行要求を送信する。
・ About the execution request registration function
The execution
「選択されたアプリケーションAPにおける入力・加工・出力の各フィルタの動作設定(動作設定の指示)」の次に、ユーザによって行われる操作は、「アプリケーションAPの実行指示(実行要求の指示)」である。 The operation performed by the user after “Operation setting of each filter of input / processing / output in the selected application AP (operation setting instruction)” is “Application application execution instruction (execution request instruction)”. is there.
ユーザがアプリケーションAPの実行指示の操作(実行要求の指示)を行うと、操作デバイス制御部312は対象となる画面要素IDを含む操作イベントを受け取る。実行指示がハードキー(例えば、画像処理装置100の場合には「スタートキー」、また情報処理装置200の場合には「エンターキー」など。)でなされた場合は、現在表示画面の前面に表示されている画面要素が対象となる。
When the user performs an execution instruction (execution request instruction) for the application AP, the operation
実行要求管理手段63は、実行要求登録機能により、図15に示すデータ42を参照し、実行要求の送信対象となるコンポーネントとそのコンポーネントが動作するプロセスを特定する。その後、実行要求管理手段63は、プロセス間通信により操作イベントを代理コンポーネント71に転送し、代理コンポーネント71からUI制御コンポーネント(実行対象となるアプリケーションAPに対応するアクティビティUI)に通知する。その結果、UI制御コンポーネントが、通知された画面要素にて現在設定されている動作設定の情報を含む実行要求をコントロール部303に登録する。
The execution request management means 63 refers to the
・「実行開始指示機能について」
次に、実行要求管理手段64は、登録された実行要求をスケジューリングし、要求が実行可能となったアプリケーションAPに実行開始を指示する実行開始指示機能を有している。より具体的には、アプリケーションAPの実行要求を受け付けたときに、受け付けたリクエストを所定の方法によってキューイングし、キューイングされた情報に基づいて、実行可能となったリクエストをアプリケーションAPに通知する。
・ About the execution start instruction function
Next, the execution request management means 64 has an execution start instruction function for scheduling a registered execution request and instructing the application AP that can execute the request to start execution. More specifically, when an application AP execution request is received, the received request is queued by a predetermined method, and the application AP is notified of an executable request based on the queued information. .
上記リクエストは、複数のプロセスで生成されるため、全てのプロセスで生成されたリクエストを一元的に管理(キューイング)する必要がある。よって、UI制御コンポーネントがコントロール部303に登録するリクエストは、代理コンポーネント71を介してアプリケーション管理用プロセスA32aに通知され、アプリケーション管理用プロセスA32aで動作するコントロール部303で一元的に管理される。また、実行可能となったリクエストをアプリケーションAPに通知する必要があるため、リクエストを生成したアプリケーションAPが動作するプロセスを特定可能な情報として、例えば図16に示すようなデータをメモリに保持する。
Since the request is generated by a plurality of processes, it is necessary to centrally manage (queue) the requests generated by all the processes. Therefore, the request that the UI control component registers in the
図16は、本発明の第1の実施形態に係るにリクエストとリクエストを生成するプロセスとが対応付けられたデータ43の一例を示す図である。
FIG. 16 is a diagram illustrating an example of
図中に示すように、アプリケーション管理ソフトウェアは、メモリ上に、アプリケーションAPの実行要求を受け付けたときにコントロール部303へ登録する実行要求を識別する実行要求識別情報と、要求を分配する対象となるアプリケーションAPが動作するプロセスを識別するプロセス識別情報とを関連付けて保持する。
As shown in the figure, the application management software becomes execution target identification information for identifying an execution request to be registered in the
上記実行要求識別情報は、アプリケーションAPの実行要求を受け付けたときに、受け付け順などに従って自動的に発行される。このとき、コントロール部303が、発行された実行要求識別情報とプロセス識別情報とを関連付けてデータ43に追加する。
The execution request identification information is automatically issued according to the order of reception when an execution request of the application AP is received. At this time, the
例えば、コピーアプリケーションの実行要求を受け付けた場合には、図中に示すように、コントロール部303とプロセスB32bで動作する代理コンポーネント71とによって、受け付けたときに発行された実行要求を識別するリクエストID'1'と、コピーアプリケーションが動作するプロセスB32bとが関連付けられデータ43に追加される。また、ベンダアプリケーションの実行要求を受け付けた場合には、コントロール部303とプロセスC32cで動作する代理コンポーネント71とによって、受け付けたときに発行された実行要求を識別するリクエストID'2'と、ベンダアプリケーションが動作するプロセスC32cとが関連付けられデータ43に追加される。
For example, when an execution request for a copy application is received, as shown in the figure, a request ID for identifying an execution request issued at the time of reception by the
このように、アプリケーション管理ソフトウェアでは、コントロール部303(代理コンポーネント71を含む)において、発行された実行要求識別情報とプロセス識別情報とを関連付けて、関連付けデータ43としてメモリ上に一時保持する。
In this way, in the application management software, the control unit 303 (including the proxy component 71) associates the issued execution request identification information with the process identification information, and temporarily holds them in the memory as the
実行要求管理手段63は、実行開始指示機能により、図16に示す実行要求識別情報とプロセス識別情報とを関連付ける情報43に基づいて、実行可能になった実行要求識別情報から特定された、発行元のアプリケーションAPが動作するプロセスに対して、そのプロセス上で動作する代理コンポーネント71にリクエスト実行開始の指示を送信し、代理コンポーネント71と同一プロセス上で動作するアプリケーションAPに対してこれを通知する。
The execution request management means 63 uses the execution start instruction function to identify the issuer identified from the execution request identification information that can be executed based on the
このように、実行要求管理手段63は、上記2つの機能によって、ユーザから受け付けた実行要求に従って、要求されたアプリケーションAPの実行開始を指示する。
As described above, the execution
本実施形態に係る情報処理装置200は、マルチプロセス環境において、アプリケーションを実行するために、上記に説明した各手段を以下の手順に従って実施する。
In order to execute an application in a multi-process environment, the
(手順1)動作対象アプリケーションAPの選択(アクティビティの選択)
本実施形態に係る情報処理装置200は、アプリケーション管理ソフトウェアのローカルUI部302によって、ユーザからの動作要求を受け付ける。
情報処理装置200は、動作させるアプリケーションAPの選択指示を受け付けたときに、ローカルUI部302が有する動作要求送信手段61によって、メモリ上に保持されたアプリケーション識別情報とプロセス識別情報とを関連付ける情報41に基づいて、アプリケーション識別情報から特定したプロセスに対して、受け付けた動作要求を送信する。
(Procedure 1) Selecting application target application AP (Activity selection)
The
When the
(手順2)アプリケーションAPの動作設定
本実施形態に係る情報処理装置200は、アプリケーション管理ソフトウェアのローカルUI部302によって、ユーザからの動作設定要求を受け付ける。
情報処理装置200は、アプリケーションAPの動作設定要求を受け付けたときに、ローカルUI部302が有する動作設定要求送信手段62によって、メモリ上に保持された画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、画面要素識別情報から特定したプロセスに対して、受け付けた動作設定要求を送信する。
(Procedure 2) Operation setting of application AP The
When the
(手順3)アプリケーションAPの実行
本実施形態に係る情報処理装置200は、アプリケーション管理ソフトウェアのローカルUI部302によって、ユーザからの動作設定要求を受け付ける。
情報処理装置200は、アプリケーションAPの実行要求を受け付けたときに、実行要求管理手段63におけるローカルUI部302が有する実行要求転送機能によって、メモリ上に保持された画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、実行要求情報から特定したプロセスに対して、受け付けた実行要求を送信する。その後、情報処理装置200は、実行要求管理手段63におけるコントロール部303が有する実行開始指示機能によって、実行要求識別情報とプロセス識別情報とを関連付ける情報43に基づいて、実行要求識別情報から特定したプロセスに対して、実行可能となった実行要求を送信し、アプリケーションAPに実行開始を指示する。
(Procedure 3) Execution of Application AP The
When the
このように、本実施形態に係る情報処理装置200では、上記に説明した(手順1)〜(手順3)により、「マルチプロセス環境において、アプリケーションAPの選択・動作設定・機能実行などを安定して行う」ことができる。すなわち、「ユーザに対し、安定した機能提供」を実現している。
As described above, in the
<アプリケーション実行の基本処理手順について(コピー機能の場合)>
これまでに説明した本実施形態に係る情報処理装置200におけるアプリケーション実行の具体的な処理手順について、基本アプリケーション81のコピー機能を例に図17〜19を用いて説明する。
<About the basic processing procedure of application execution (in the case of copy function)>
A specific processing procedure of application execution in the
本実施形態に係る情報処理装置200は、例えば、情報処理装置200が有するハードディスクなどの補助記憶部13に格納されたアプリケーション管理ソフトウェアや基本アプリケーションプログラム(自社製アプリケーションプログラム)、また、インストールされた拡張アプリケーションプログラム(サードベンダ製アプリケーションプログラム)などを主記憶部12であるメモリ上に展開し、制御部11で実行する。このとき、以下の図17〜19に示す処理手順が、ユーザ操作段階に応じて実行される。ここで言う「操作段階」とは、UI画面を介してアプリケーションAPを実行するまでにユーザが行う、「動作対象のアプリケーションAPの選択(動作要求の指示)」、「選択されたアプリケーションAPにおける入力・加工・出力の各フィルタの動作設定(動作設定の指示)」、及び「アプリケーションAPの実行指示(実行要求の指示)」の操作を意味する。
The
図17は、本発明の第1の実施形態に係るコピー機能を実現するときの処理手順(その1:アクティビティ選択)の一例を示す図である。 FIG. 17 is a diagram showing an example of a processing procedure (part 1: activity selection) when realizing the copy function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、動作させるアプリケーションAPの選択指示(コピー機能を選択)によるユーザからの動作要求を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(動作要求)をローカルUI部302へ通知する(S101)。
The
ローカルUI部302は、動作要求送信手段61によって、メモリ上に保持されているアプリケーション識別情報とプロセス識別情報とを関連付ける情報41に基づいて、実行手段51によって実行された、コピー機能が動作するプロセスB32bを特定し、プロセス間通信によって、特定したプロセスB32bにUIイベント(動作要求)を送信する(S102)。
The
プロセスB32bでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスB32bのローカルUI部)を介して、受信したUIイベント(動作要求)を、動作させるコピー機能のコピーアクティビティUI(Copy Activity UI)401に渡す(S103)。
In the process B32b, a copy activity UI (copy activity UI of a copy function that operates the received UI event (operation request) via the
UIイベント(動作要求)を受け取ったコピーアクティビティUI401は、自らのUI要素を生成し、更に、コピーアプリケーションを実現するための読み取りフィルタUI402及び印刷フィルタUI403に受け取ったUIイベント(動作要求)を渡す(S104)。
Upon receiving the UI event (operation request), the
UIイベント(動作要求)を受け取った読み取りフィルタUI402及び印刷フィルタUI403は、それぞれが自らのUI要素を生成する。その後、生成された各UI要素は、ローカルUI部302の代理コンポーネント71に渡され、ローカルUI部302が、各UI要素に対して画面要素識別情報を採番し、画面要素識別情報とプロセス識別情報とを関連付けて、メモリ上の関連付け情報42に登録する。登録された各UI要素は、操作デバイス制御部312に渡され、操作デバイス制御部312によって表示される。
The
これによって、本実施形態に係る情報処理装置200では、ユーザの動作要求に応じて、動作させるアプリケーションAPの動作設定を行うUI画面を表示させることができる。
As a result, the
図18は、本発明の第1の実施形態に係るコピー機能を実現するときの処理手順(その2:設定変更)の一例を示す図である。 FIG. 18 is a diagram showing an example of a processing procedure (part 2: setting change) when realizing the copy function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、アプリケーションAPの動作設定によるユーザからの動作設定要求を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(動作設定要求)をローカルUI部302へ通知する(S201)。
When the
ローカルUI部302は、動作設定要求送信手段62によって、メモリ上に保持されている画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、実行手段51によって実行された、コピー機能が動作するプロセスB32bを特定し、プロセス間通信によって、特定したプロセスB32bにUIイベント(動作設定要求)を送信する(S202)。
The
プロセスB32bでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスB32bのローカルUI部)を介して、受信したUIイベント(動作設定要求)に含まれる画面要素識別情報を基に、各UI要素を生成したコンポーネント、すなわち、コピーアクティビティUI401、コピーアプリケーションを実現するための読み取りフィルタUI(Scan Filter UI)402、又は印刷フィルタUI(Print Filter UI)403を特定し、動作設定を転送する(S203)。
In the process B32b, based on the screen element identification information included in the UI event (operation setting request) received via the
コピーアクティビティUI401、読み取りフィルタUI402及び印刷フィルタUI403は、それぞれの動作条件を、コピーアクティビティロジック(Copy Activity Logic)501、読み取りフィルタロジック(Scan Filter Logic)502及び印刷フィルタロジック(Print Filter Logic)503に設定する(S204)。
The
これによって、本実施形態に係る情報処理装置200では、ユーザから設定要求された動作条件を、動作させるアプリケーションAPが有する機能を実現するコンポーネントに設定できる。
Thereby, in the
図19は、本発明の第1の実施形態に係るコピー機能を実現するときの処理手順(その3:リクエスト実行)の一例を示す図である。 FIG. 19 is a diagram illustrating an example of a processing procedure (part 3: request execution) when realizing the copy function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、アプリケーションAPの実行指示によるユーザからの実行要求を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(実行要求)をローカルUI部302へ通知する(S301)。
When the
ローカルUI部302は、受け取ったUIイベントを、実行要求管理手段63によって、メモリ上に保持されている画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、実行手段51によって実行された、コピー機能が動作するプロセスB32bを特定し、プロセス間通信によって、特定したプロセスB32bにUIイベントを送信する(S302)。
The
プロセスB32bでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスB32bのローカルUI部)が、送信されたUIイベント(実行要求)を、実行するUI制御コンポーネントであるコピー機能のコピーアクティビティUI401に渡す(S303)。
In the process B32b, the
コピーアクティビティUI401は、受け取ったUIイベント(実行要求)を、コントロール部303の代理コンポーネント71(図中の破線枠に示すプロセスB32bのコントローラ部)に、受け付けたUIイベント(実行要求)を登録する(S304)。
The
プロセスB32bで動作するコントロール部303の代理コンポーネント71は、コピーアプリケーション機能を実現するために動作する読み取りフィルタロジック502及び印刷フィルタロジック503を、画像パイプ307を介して接続する(S305)。このとき、コントロール部303の代理コンポーネント71は、受け取ったUIイベント(実行要求)に対して実行要求識別情報を発行する。コントロール部303の代理コンポーネント71は、S305の処理を行った後、プロセス間通信によりUIイベント(実行要求)を、プロセスA32aに送信する(S306)。
The
プロセスA32aでは、コントロール部303が、UIイベント(実行要求)(図19の以下の説明では、「実行要求(リクエスト)」という。)のキューイングを行う。コントロール部303は、登録された実行要求(リクエスト)をスケジューリングし、実行可能となった実行要求(リクエスト)の実行要求識別情報から特定された、発行元のアプリケーションAPが動作するプロセスに対して、そのプロセス上で動作する代理コンポーネント71に実行開始の指示を送信する(S401)。本実施形態では、コピー機能を例に説明を行っているため、コピー機能の実行要求(リクエスト)が実行可能であったとすると、特定されたプロセスB32bに実行要求(リクエスト)を送信し、コピーアプリケーションに実行開始を指示する。
In the process A32a, the
プロセスB32bでは、コントロール部303が、受け取った実行要求(リクエスト)を、コピーアクティビティロジック501に渡す(S402)。コピーアクティビティロジック501は、更に、コピーアプリケーション機能を実現するために動作する読み取りフィルタロジック502及び印刷フィルタロジック503に、実行要求(リクエスト)を渡す(S403)。
In the process B32b, the
読み取りフィルタロジック502は、実行要求(リクエスト)を受けて、S305の処理において各フィルタを接続した画像パイプ307に、読み取った画像を記憶するメモリ領域の確保を指示する(S501)。画像パイプ307は、メモリ確保の指示に従って、メモリ制御部311に所定のメモリ領域の確保をさせる(S502)。
In response to the execution request (request), the reading
次に、読み取りフィルタロジック502は、実行要求(リクエスト)を受けて、スキャナ制御部309に画像の読み取りを指示する(S503)。スキャナ制御部309は、読み取り指示に従って画像を読み取り(S504)、読み取った画像データを、確保しておいた所定のメモリ領域に書き込む(S505)。読み取りフィルタロジック502は、書き込まれた画像データの格納先情報(アドレス情報)の通知を画像パイプ307に指示する(S506)。
Next, in response to the execution request (request), the reading
また、印刷フィルタロジック503は、実行要求(リクエスト)を受けて、画像パイプ307に、書き込まれた画像データが格納された格納先情報を要求し、S505の処理によってメモリ上に画像データが書き込まれていれば、画像パイプ307から機能先情報を取得する(S601)。
In response to the execution request (request), the
次に、印刷フィルタロジック503は、取得した格納先情報に基づいて、プロッタ制御部310に画像データの印刷(プロット)を指示する(S602)。プロッタ制御部310は、格納先情報に基づいて、メモリ制御部311を介して画像データを読み出し(S603)、読み出した画像データを用紙に印刷する(S604)。
Next, the
その後、印刷フィルタロジック503は、格納先情報に基づいて、画像パイプ307に、S501の処理によって確保したメモリ領域の開放を指示する(S605)。
Thereafter, the
その結果、画像パイプ307は、メモリ制御部311に確保したメモリ領域の解放を指示する(S606)。
As a result, the
これによって、本実施形態に係る情報処理装置200では、ユーザの実行要求に従って、アプリケーションAPの実行を行うことができる。
As a result, the
<アプリケーション実行の基本処理手順について(ベンダ拡張機能の場合)>
次に、本実施形態に係る情報処理装置200におけるアプリケーション実行の具体的な処理手順について、拡張アプリケーション82のベンダ拡張機能を例に図20〜22を用いて説明する。図20〜22に説明するサードベンダ製アプリケーション82は、サードベンダが独自の開発した入力フィルタ103aと、情報処理装置200が標準的に搭載している出力フィルタ103cとを画像パイプ307で接続することで、1つの機能を実現する拡張機能の一例を示すものである。
<Basic procedure for application execution (in case of vendor extension function)>
Next, a specific processing procedure for executing an application in the
図20は、本発明の第1の実施形態に係るサードベンダ製アプリケーション機能を実現するときの処理手順(その1:アクティビティ選択)の一例を示す図である。 FIG. 20 is a diagram illustrating an example of a processing procedure (part 1: activity selection) when realizing the third-vendor application function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、動作させるアプリケーションAPの選択指示(ベンダ機能を選択)によるユーザからの動作要求を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(動作要求)をローカルUI部302へ通知する(S701)。
The
ローカルUI部302は、動作要求送信手段61によって、メモリ上に保持されたアプリケーション識別情報とプロセス識別情報とを関連付ける情報41に基づいて、実行手段51によって実行された、ベンダ機能が動作するプロセスC32cを特定し、プロセス間通信によって、特定したプロセスC32cにUIイベント(動作要求)を送信する(S702)。
The
プロセスC(第3のプロセス)32cでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスC32cのローカルUI部)を介して、受信したUIイベント(動作要求)を、動作させるベンダ機能のベンダアクティビティUI(Vendor Activity UI)405に渡す(S703)。
In the process C (third process) 32c, the received UI event (operation request) is operated via the
ベンダアクティビティUI405は、自らのUI要素を生成し、更に、ベンダアプリケーションを実現するためのベンダ(入力)フィルタUI(Vendor Filter UI)406(以下、「ベンダフィルタUI406」という。)及び印刷フィルタUI403に受け取ったUIイベント(動作要求)を渡す(S704)。
The
UIイベント(動作要求)を受け取ったベンダフィルタUI406及び印刷フィルタUI403は、それぞれが自らのUI要素を生成する。その後、生成された各UI要素は、ローカルUI部302の代理コンポーネント71に渡され、代理コンポーネント71が、各UI要素に対して画面要素識別情報を採番し、画面要素識別情報とプロセス識別情報とを関連付けて、メモリ上の関連付け情報42に登録する。登録された各UI要素は、操作デバイス制御部312に渡され、操作デバイス制御部312によって表示される。
Upon receiving the UI event (operation request), the
図21は、本発明の第1の実施形態に係るサードベンダ製アプリケーション機能を実現するときの処理手順(その2:設定変更)の一例を示す図である。 FIG. 21 is a diagram illustrating an example of a processing procedure (part 2: setting change) when realizing the third-vendor application function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、アプリケーションAPの動作(条件)設定によるユーザからの動作設定要求を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(動作設定要求)をローカルUI部302へ通知する(S801)。
In the process A32a executed by the
ローカルUI部302は、動作設定要求送信手段62によって、メモリ上に保持された画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、実行手段51によって実行された、ベンダ機能が動作するプロセスC32cを特定し、プロセス間通信によって、特定したプロセスC32cにUIイベント(動作設定要求)を送信する(S802)。
The
プロセスC(第3のプロセス)32cでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスC32cのローカルUI部)を介して受信した、UIイベント(動作設定要求)に含まれる画面要素識別情報を基に、各UI要素を生成したコンポーネント、すなわち、ベンダアクティビティUI405、ベンダアプリケーションを実現するためのベンダフィルタUI406、又は印刷フィルタUI403を特定し、動作設定を転送する(S803)。
The process C (third process) 32c is included in the UI event (operation setting request) received via the
ベンダアクティビティUI405、ベンダフィルタUI406及び印刷フィルタUI403は、それぞれの動作条件を、ベンダアクティビティロジック(Vendor Activity Logic)505、ベンダ入力フィルタロジック(Vendor Filter Logic)506(以下、「ベンダフィルタロジック506」という。)及び印刷フィルタロジック503に設定する(S804)。
The
図22は、本発明の第1の実施形態に係るサードベンダ製アプリケーション機能を実現するときの処理手順(その3:リクエスト実行)の一例を示す図である。 FIG. 22 is a diagram illustrating an example of a processing procedure (part 3: request execution) when realizing the third-vendor application function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、アプリケーションAPの実行指示によるユーザからの実行要求(リクエスト)を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(実行要求)をローカルUI部302へ通知する(S901)。
When the
ローカルUI部302は、受け取ったUIイベント(実行要求)を、実行要求管理手段63によって、メモリ上に保持されている画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、実行手段51によって実行された、ベンダ機能が動作するプロセスC32cを特定し、プロセス間通信によって、特定したプロセスC32cにUIイベント(実行要求)を送信する(S902)。
The
プロセスC32cでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスC32cのローカルUI部)が、送信されたUIイベント(実行要求)を、実行するUI制御コンポーネントであるベンダ機能のベンダアクティビティUI405に渡す(S903)。
In the process C32c, the
ベンダアクティビティUI405は、受け取ったUIイベント(実行要求)を、コントロール部303の代理コンポーネント71(図中の破線枠に示すプロセスC32cのコントローラ部)に、受け付けたUIイベント(実行要求)を登録する(S904)。
The
プロセスC32cで動作するコントロール部303の代理コンポーネント71は、ベンダアプリケーション機能を実現するために動作するベンダフィルタロジック506及び印刷フィルタロジック503を、画像パイプ307を介して接続する(S905)。このとき、コントロール部303の代理コンポーネント71は、受け取ったUIイベント(実行要求)に対して実行要求識別情報を発行する。コントロール部303の代理コンポーネント71は、S905の処理を行った後、プロセス間通信によりUIイベント(実行要求)を、プロセスA32aに送信する(S906)。
The
プロセスA32aでは、コントロール部303が、UIイベント(実行要求)(図22の以下の説明では、「実行要求(リクエスト)」という。)のキューイングを行う。コントロール部303は、登録された実行要求(リクエスト)をスケジューリングし、実行可能となった実行要求(リクエスト)の実行要求識別情報から特定された、発行元のアプリケーションAPが動作するプロセスに対して、そのプロセス上で動作する代理コンポーネント71に実行開始の指示を送信する(S1001)。本実施形態では、ベンダ機能を例に説明を行っているため、ベンダ機能の実行要求(リクエスト)が実行可能であったとすると、特定されたプロセスC32cに実行要求(リクエスト)を送信し、ベンダアプリケーションに実行開始を指示する。
In the process A32a, the
プロセスC32cでは、コントロール部303が、受け取った実行要求(リクエスト)を、ベンダアクティビティロジック505に渡す(S1002)。ベンダアクティビティロジック505は、更に、ベンダアプリケーション機能を実現するために動作するベンダフィルタロジック506及び印刷フィルタロジック503に、実行要求(リクエスト)を渡す(S1003)。
In the process C32c, the
ベンダフィルタロジック506は、実行要求(リクエスト)を受けて、S905の処理において各フィルタを接続した画像パイプ307に、読み取った画像を記憶するメモリ領域の確保を指示する(S1101)。画像パイプ307は、メモリ確保の指示に従って、メモリ制御部311の代理コンポーネント71(図中の破線枠に示すプロセスC32cのメモリ制御部)を介して、プロセスB32bで動作するメモリ制御部311に所定のメモリ領域の確保をさせる(S1102及びS1103)。
In response to the execution request (request), the
次に、ベンダフィルタロジック506は、実行要求(リクエスト)を受けて、例えば、情報処理装置200が有するネットワークI/F14を介した画像データの入力や、外部記憶装置I/F15を介してメモリカードなど記憶された画像データの入力など、所定の方法によって画像データを入力する(S1104)。ベンダフィルタロジック506は、入力した画像データを、確保しておいた所定のメモリ領域に、メモリ制御部311の代理コンポーネント71を介して書き込む(S1105)。ベンダフィルタロジック506は、書き込んだ画像データの格納先情報の通知を画像パイプ307に指示する(S1106)。
Next, the
また、印刷フィルタロジック503は、実行要求(リクエスト)を受けて、画像パイプ307に、書き込まれた画像データが格納された格納先情報を要求し、S1105の処理によってメモリ上に画像データが書き込まれていれば、画像パイプ307から機能先情報を取得する(S1201)。
In response to the execution request (request), the
次に、印刷フィルタロジック503は、取得した格納先情報に基づいて、プロッタ制御部310の代理コンポーネント71(図中の破線枠に示すプロセスC32cのプロッタ制御部)を介して、プロセスB32bで動作するプロッタ制御部310に画像データの印刷を指示する(S1202及びS1203)。プロッタ制御部310は、格納先情報に基づいて、メモリ制御部311を介して画像データを読み出し(S1204)、読み出した画像データを用紙に印刷する(S1205)。
Next, the
その後、印刷フィルタロジック503は、格納先情報に基づいて、画像パイプ307に、S1101の処理によって確保したメモリ領域の開放を指示する(S1206)。
Thereafter, the
その結果、画像パイプ307は、メモリ解放の指示に従って、メモリ制御部311の代理コンポーネント71(図中の破線枠に示すプロセスC32cのメモリ制御部)を介して、プロセスB32bで動作するメモリ制御部311に、確保していた所定のメモリ領域を解放させる(S1207及びS1208)。
As a result, the
<フィルタ集約型のコンポーネント配置について>
プロセスで動作するコンポーネントの適切な分散配置について図9を用いて説明を行った。その中で、フィルタ集約型よりアクティビティ集約型を採用する方が適切であるとの結果を示した。
<About filter-intensive component placement>
An appropriate distributed arrangement of components operating in the process has been described with reference to FIG. Among them, the results showed that it is more appropriate to adopt the activity intensive type than the filter intensive type.
図17〜22では、その点を踏まえて、アクティビティ集約型のコンポーネント配置におけるアプリケーション実行の処理手順について説明を行った。 In FIGS. 17 to 22, based on this point, the application execution processing procedure in the activity-intensive component arrangement has been described.
ここからは、フィルタ集約型を採用した場合のコンポーネント配置、及びアプリケーション実行の処理手順について、図23〜26を用いて説明する。 From here, the component arrangement | positioning at the time of employ | adopting a filter aggregation type | mold and the process sequence of application execution are demonstrated using FIGS.
図23は、本発明の第1の実施形態に係る各レイヤに属するコンポーネントをプロセスに配置する一例(フィルタ集約型の場合)を示す図である。 FIG. 23 is a diagram illustrating an example (in the case of a filter aggregation type) in which components belonging to each layer according to the first embodiment of the present invention are arranged in a process.
フィルタ集約型を採用した場合と、アクティビティ集約型を採用した場合との違いは、フィルタ集約型の特徴である、フィルタ単位でプロセスを分割する点である。 The difference between the case where the filter aggregation type is adopted and the case where the activity aggregation type is adopted is that the process is divided in units of filters, which is a feature of the filter aggregation type.
そのため、アクティビティ集約型のコンポーネント配置を示す図12と図23とを比較すると、例えば、サードベンダ製アプリケーション82が、サードベンダが独自の開発した入力フィルタ103aと、情報処理装置200が標準的に搭載している出力フィルタ103cとを画像パイプ307で接続することで、1つの機能を実現する拡張機能の場合、図12に示すアクティビティ集約型では、情報処理装置200が標準的に搭載している出力フィルタ103cである印刷フィルタに関するコンポーネントが、プロセスB32b及びプロセスC32cの両方に配置されているが、図23に示すフィルタ集約型では、印刷フィルタに関するコンポーネントがプロセスC32cに配置されておらず、サードベンダが独自の開発した入力フィルタ103aに関するコンポーネントのみ配置されている。
Therefore, comparing FIG. 12 and FIG. 23 showing the activity-intensive component arrangement, for example, the third-
このように、フィルタ集約型のコンポーネント配置では、基本アプリケーション81と拡張アプリケーション82とで共通して利用するフィルタを、拡張アプリケーション82が動作するプロセスに配置しない。すなわち、全てのプロセスにおいて、重複するフィルタコンポーネントは存在しない。
As described above, in the filter aggregation type component arrangement, a filter that is commonly used by the
<フィルタ集約型のコンポーネント配置におけるアプリケーション実行の基本処理手順について(ベンダ拡張機能の場合)>
図23を用いて説明したフィルタ集約型のコンポーネント配置におけるアプリケーション実行の処理手順について説明する。
<Basic processing procedure for application execution in filter-intensive component arrangement (for vendor extension function)>
A processing procedure for executing an application in the filter-intensive component arrangement described with reference to FIG. 23 will be described.
図24は、本発明の第1の実施形態に係るサードベンダ製アプリケーション機能を実現するときの処理手順(その4:アクティビティ選択)の一例を示す図である。 FIG. 24 is a diagram illustrating an example of a processing procedure (part 4: activity selection) when realizing the third-vendor application function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、動作させるアプリケーションAPの選択指示(ベンダ機能を選択)によるユーザからの動作要求を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(動作要求)をローカルUI部302へ通知する(S701)。
The
ローカルUI部302は、動作要求送信手段61によって、メモリ上に保持されたアプリケーション識別情報とプロセス識別情報とを関連付ける情報41に基づいて、実行手段51によって実行された、ベンダ機能が動作するプロセスC32cを特定し、プロセス間通信によって、特定したプロセスC32cにUIイベント(動作要求)を送信する(S702)。
The
プロセスC32cでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスC32cのローカルUI部)を介して、受信したUIイベント(動作要求)を、動作させるベンダ機能のベンダアクティビティUI405に渡す(S703)。
In the process C32c, the UI event (operation request) received via the
ベンダアクティビティUI405は、自らのUI要素を生成し、更に、ベンダアプリケーションを実現するためのベンダフィルタUI406に受け取ったUIイベント(動作要求)を渡す(S704)。UIイベント(動作要求)を受け取ったベンダフィルタUI406は、自らのUI要素を生成する。
The
また、ベンダアクティビティUI405は、プロセス間通信によって、受け取ったUIイベント(動作要求)を、プロセスC32cで動作するローカルUI部302の代理コンポーネント71から、プロセスB32bで動作するローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスB32bのローカルUI部)へ転送する(S705及びS706)。
Also, the
プロセスB32bでは、ローカルUI部302の代理コンポーネント71を介してUIイベント(動作要求)を受け取ると、印刷フィルタUI403が自らのUI要素を生成する(S707)。
In process B32b, when a UI event (operation request) is received via the
その後、生成された各UI要素は、ローカルUI部302の代理コンポーネント71に渡され、代理コンポーネント71が、各UI要素に対して画面要素識別情報を採番し、画面要素識別情報とプロセス識別情報とを関連付けて、メモリ上の関連付け情報42に登録する。登録された各UI要素は、操作デバイス制御部312に渡され、操作デバイス制御部312によって表示される。
Thereafter, each generated UI element is transferred to the
図25は、本発明の第1の実施形態に係るサードベンダ製アプリケーション機能を実現するときの処理手順(その5:設定変更)の一例を示す図である。 FIG. 25 is a diagram showing an example of a processing procedure (No. 5: setting change) when realizing the third-vendor application function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、アプリケーションAPの動作設定によるユーザからの動作設定要求を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(動作設定要求)をローカルUI部302へ通知する(S801)。
When the
ローカルUI部302は、動作設定要求送信手段62によって、メモリ上に保持された画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、実行手段51によって実行された、ベンダ機能が動作するプロセスC32c、又はプリンタ機能が動作するプロセスB32bを特定し、UIイベント(動作設定要求)を送信する。このとき、プリンタ機能が動作するプロセスB32bを特定した場合には、プロセス間通信によって、特定したプロセスB32bにUIイベント(動作設定要求)を送信する(S802)。
The
プロセスC32cでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスC32cのローカルUI部)を介して受信した、UIイベント(動作設定要求)に含まれる画面要素識別情報を基に、各UI要素を生成したコンポーネント、すなわち、ベンダアクティビティUI405、又はベンダアプリケーションを実現するためのベンダフィルタUI406を特定し、UIイベントである動作設定を転送する(S803)。
In the process C32c, based on the screen element identification information included in the UI event (operation setting request) received via the
ベンダアクティビティUI405、ベンダフィルタUI406は、それぞれの動作条件を、ベンダアクティビティロジック505及びベンダフィルタロジック506に設定する(S804)。
The
また、プロセスB32bでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスB32bのローカルUI部)を介して、受信したUIイベント(動作設定要求)を、印刷機能の印刷フィルタUI403に渡す(S803)。
Further, in the process B32b, the UI event (operation setting request) received via the
印刷フィルタUI403は、動作条件を印刷フィルタロジック503に設定する(S804)。
The
図26は、本発明の第1の実施形態に係るサードベンダ製アプリケーション機能を実現するときの処理手順(その6:リクエスト実行)の一例を示す図である。 FIG. 26 is a diagram illustrating an example of a processing procedure (No. 6: request execution) when realizing the third-vendor application function according to the first embodiment of the present invention.
本実施形態に係る情報処理装置200は、実行手段51によって実行された、アプリケーション管理ソフトウェアが動作するプロセスA32aにおいて、アプリケーションAPの実行指示によるユーザからの実行要求(リクエスト)を受け付けた場合、操作デバイス制御部312から受け付けたUIイベント(実行要求)をローカルUI部302へ通知する(S901)。
When the
ローカルUI部302は、受け取ったUIイベント(実行要求)を、実行要求管理手段63によって、メモリ上に保持されている画面要素識別情報とプロセス識別情報とを関連付ける情報42に基づいて、実行手段51によって実行された、ベンダ機能が動作するプロセスC32cを特定し、プロセス間通信によって、特定したプロセスC32cにUIイベント(実行要求)を送信する(S902)。
The
プロセスC32cでは、ローカルUI部302の代理コンポーネント71(図中の破線枠に示すプロセスC32cのローカルUI部)が、送信されたUIイベント(実行要求)を、実行するUI制御コンポーネントであるベンダ機能のベンダアクティビティUI405に渡す(S903)。
In the process C32c, the
ベンダアクティビティUI405は、受け取ったUIイベント(実行要求)を、コントロール部303の代理コンポーネント71(図中の破線枠に示すプロセスC32cのコントローラ部)に、受け付けたUIイベント(実行要求)を登録する(S904)。
The
プロセスC32cで動作するコントロール部303の代理コンポーネント71は、プロセスB32bで動作する代理コンポーネント71(図中の破線枠に示すプロセスB32bのコントローラ部)とプロセス間通信により連携してベンダアプリケーション機能を実現するために動作するベンダフィルタロジック506及び印刷フィルタロジック503を、画像パイプ307を介して接続する(S905〜S907)。このとき、コントロール部303の代理コンポーネント71は、受け取った実行要求(リクエスト)に対して実行要求識別情報を発行する。また、コントロール部303の代理コンポーネント71は、S905〜S907の処理が行われた後に、プロセス間通信により実行要求(リクエスト)を、プロセスA32aに送信する(S908)。
The
プロセスA32aでは、コントロール部303が、実行要求(リクエスト)(図26の以下の説明では、「実行要求(リクエスト)」という。)のキューイングを行う。コントロール部303は、登録された実行要求(リクエスト)をスケジューリングし、実行可能となった実行要求(リクエスト)の実行要求識別情報から特定された、発行元のアプリケーションAPが動作するプロセスに対して、そのプロセス上で動作する代理コンポーネント71に実行開始の指示を送信する(S1001)。本実施形態では、ベンダ機能を例に説明を行っているため、ベンダ機能の実行要求(リクエスト)が実行可能であったとすると、特定されたプロセスC32cに実行要求(リクエスト)を送信し、ベンダアプリケーションに実行開始を指示する。
In the process A32a, the
プロセスC32cでは、コントロール部303が、受け取った実行要求(リクエスト)を、ベンダアクティビティロジック505に渡す(S1002)。ベンダアクティビティロジック505は、更に、ベンダアプリケーション機能を実現するために動作するベンダフィルタロジック506に実行要求(リクエスト)を渡す(S1003)。
In the process C32c, the
また、ベンダアクティビティロジック505は、プロセス間通信によって、受け取った実行要求(リクエスト)を、プロセスC32cで動作するコントロール部303の代理コンポーネント71から、プロセスB32bで動作するコントロール部303の代理コンポーネント71(図中の破線枠に示すプロセスB32bのコントロール部)へ転送する(S1004及びS1005)。
Further, the
プロセスB32bでは、コントロール部303の代理コンポーネント71を介して、印刷フィルタロジック503に実行要求(リクエスト)を渡す(S1006)。
In the process B32b, an execution request (request) is passed to the
次に、ベンダフィルタロジック506は、実行要求(リクエスト)を受けて、S905〜S907の処理において各フィルタを接続した画像パイプ307に、プロセスC32cで動作する画像パイプ307の代理コンポーネント71(図中の破線枠に示すプロセスC32cの画像パイプ)を介して、読み取った画像を記憶するメモリ領域の確保を指示する(S1101)。画像パイプ307は、画像パイプ307の代理コンポーネント71を介して受け取ったメモリ確保の指示に従って、メモリ制御部311の代理コンポーネント71(図中の破線枠に示すプロセスC32cのメモリ制御部)を介して、プロセスB32bで動作するメモリ制御部311に所定のメモリ領域の確保をさせる(S1102及びS1103)。
Next, the
次に、ベンダフィルタロジック506は、実行要求(リクエスト)に従って、例えば、情報処理装置200が有するネットワークI/F14を介した画像データの入力や、外部記憶装置I/F15を介してメモリカードなど記憶された画像データの入力など、所定の方法によって画像データを入力する(S1104)。ベンダフィルタロジック506は、入力した画像データを、確保しておいた所定のメモリ領域に、メモリ制御部311の代理コンポーネント71を介して書き込む(S1105)。ベンダフィルタロジック506は、書き込んだ画像データの格納先情報の通知を、画像パイプ307の代理コンポーネント71を介して画像パイプ307に指示する(S1106及びS1107)。
Next, according to the execution request (request), the
また、印刷フィルタロジック503は、S1006の処理による実行要求(リクエスト)に従って、画像パイプ307に、書き込まれた画像データが格納された格納先情報を要求し、S1105の処理によってメモリ上に画像データが書き込まれていれば、画像パイプ307から機能先情報を取得する(S1201)。
Also, the
次に、印刷フィルタロジック503は、取得した格納先情報に基づいて、プロッタ制御部310に画像データの印刷を指示する(S1202)。プロッタ制御部310は、格納先情報に基づいて、メモリ制御部311を介して画像データを読み出し(S1203)、読み出した画像データを用紙に印刷する(S1204)。
Next, the
その後、印刷フィルタロジック503は、格納先情報に基づいて、画像パイプ307に、S1102及びS1103の処理によって確保したメモリ領域の開放を指示する(S1205)。
Thereafter, the
その結果、画像パイプ307は、メモリ制御部311に確保したメモリ領域の解放を指示する(S1206)。
As a result, the
<まとめ>
以上のように、本発明の第1の実施形態によれば、本実施形態に係る情報処理装置200は、システムの基本機能を実現する基本アプリケーション81と、追加される拡張機能を実現する拡張アプリケーション82とを、異なるプロセスで動作させ、更に、プロセス間通信などのマルチプロセス化の影響を、フレームワークFWに相当する限定されたコンポーネントで行う(マルチプロセス化の影響を隠蔽する)ことができる。
<Summary>
As described above, according to the first embodiment of the present invention, the
よって、本実施形態に係る情報処理装置200は、マルチプロセス化を意識することなくアプリケーションAPのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供することができる。
Therefore, the
[第2の実施形態]
本実施形態は、システムの基本機能を実現する基本アプリケーションと、追加される拡張機能を実現する拡張アプリケーションとを、異なるプロセスで動作させるマルチプロセス化において、アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、及び当該情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを第1のプロセスで実行し、当該情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを第2のプロセスで実行するプロセス構成にすることにより、マルチプロセス化を意識することなくアプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供するものである。
[Second Embodiment]
This embodiment is an application that manages the start and end of an application in multi-process where a basic application that realizes the basic function of the system and an extended application that realizes an added extended function are operated in different processes. Management software and basic application software that realizes basic functions of the information processing apparatus are executed in a first process, and extended application software that realizes an extended function added to the information processing apparatus is executed in a second process With this process configuration, it is possible to easily customize or extend an application without being conscious of multi-process, and a system with high robustness that does not affect the basic function of the system due to the failure of the extended function. It is intended to provide.
第1の実施形態と本実施形態と異なる点は、第1の実施形態では、アプリケーション管理ソフトウェアを第1のプロセスで実行し、基本アプリケーションソフトウェアを第2のプロセスで実行し、拡張アプリケーションソフトウェアを第3のプロセスで実行するという「3つのプロセス」で構成したのに対して、本実施形態では、アプリケーション管理ソフトウェアと基本アプリケーションソフトウェアとを第1のプロセスで実行し、拡張アプリケーションソフトウェアを第2のプロセスで実行するという「2つのプロセス」で構成する点である。 The difference between the first embodiment and this embodiment is that in the first embodiment, application management software is executed in the first process, basic application software is executed in the second process, and extended application software is executed in the first process. In this embodiment, the application management software and the basic application software are executed in the first process, and the extended application software is executed in the second process. It consists of “two processes” that are executed in
よって、以降に行う本実施形態の説明では、第1の実施形態と同じ事項について、同一の図面及び図中の参照符号をもってその説明を省略し、第1の実施形態と異なる点について、図27〜31を用いて説明する。 Therefore, in the following description of the present embodiment, the same matters as in the first embodiment will be omitted with the same drawings and reference numerals in the drawings, and the points different from the first embodiment will be described with reference to FIG. This will be described using ˜31.
<マルチプロセス化について>
本実施形態においても、図7〜9を用いて説明した「パイプ&フィルタ」のソフトウェア構成におけるマルチプロセス化については、「マルチプロセス化を意識することなくアプリケーションAPのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供する」ために、第1の実施形態と同様の基本方針(方針1)〜(方針3)に従ってマルチプロセス化を行う。
<About multi-process>
Also in this embodiment, regarding the multi-process in the “pipe & filter” software configuration described with reference to FIGS. 7 to 9, “application AP can be easily customized or expanded without being conscious of multi-process, In order to provide a system having high robustness in which the malfunction of the extended function does not affect the basic function of the system, "according to the basic policies (policy 1) to (policy 3) similar to those of the first embodiment Perform multi-process.
<<プロセス構成>>
図27は、本発明の第2の実施形態に係るプロセス構成の一例を示す図である。
<< Process configuration >>
FIG. 27 is a diagram showing an example of a process configuration according to the second embodiment of the present invention.
図中に示すように、本実施形態に係る情報処理装置200は、第1の実施形態で示した(方針1)に従ってマルチプロセス化を実現するため、OS31から起動されるプロセス構成を、アプリケーション管理及び自社製アプリケーション用に共通するJVMを動作させるプロセスA32aと、サードベンダ製アプリケーション用JVMを動作させるプロセスB32bとする。
As shown in the figure, the
プロセスA32aでは、アプリケーションAPの起動や終了などの管理を行う「アプリケーション管理ソフトウェア」を実行するとともに、情報処理装置200が有する基本機能を実現する「基本アプリケーションソフトウェア81」を実行する。すなわち、本実施形態では、自社開発した基盤ソフトであるシステムと基本機能を実現する基本アプリケーション81とを同一のメモリ空間で実行する。プロセスB32bでは、情報処理装置200に追加される拡張機能を実現する「拡張アプリケーションソフトウェア82」を実行する。
In the process A32a, “application management software” for managing the activation and termination of the application AP is executed, and “
これによって、本実施形態に係る情報処理装置200は、拡張した機能(インストールした拡張アプリケーション82)の不具合がシステムの基本機能(基本アプリケーション81)に影響を及ぼす(例えば、システムがクラッシュ(異常終了)する。)ことがなく、また、拡張した機能(インストールした拡張アプリケーション82)が多くのメモリを使用した場合でも、アプリケーション管理ソフトウェアに影響を与えることなく、ユーザに対して安定した機能を提供することができる。
Accordingly, in the
<<各レイヤのプロセス配置>>
図28は、本発明の第2の実施形態に係る各レイヤをプロセスに配置する一例を示す図である。
<< Process arrangement of each layer >>
FIG. 28 is a diagram illustrating an example of arranging each layer according to the second exemplary embodiment of the present invention in a process.
図27を用いて説明したように、適切な粒度で分割された2つのプロセスに対して、各プロセスで動作させるレイヤのコンポーネントを、図28に示すように配置する。 As described with reference to FIG. 27, the components of the layers operated in each process are arranged as shown in FIG. 28 for the two processes divided at an appropriate granularity.
第1の実施形態と違う配置になるコンポーネントは、第1の実施形態において、基本アプリケーション81が動作するプロセスに配置されていたコンポーネントである。その対象となるレイヤについて、本実施形態におけるコンポーネントの配置について説明する。
Components that are arranged differently from the first embodiment are components that are arranged in a process in which the
ユーザインタフェース層101では、基本アプリケーション81のUI、また、アプリケーションロジック層103では、基本アプリケーション81のコンポーネントを、アプリケーション管理ソフトウェア及び基本アプリケーション81が動作するプロセスA32aに配置する。
In the
このように、本実施形態に係る情報処理装置200は、各レイヤの特徴を考慮して、レイヤのコンポーネントを最適なプロセスに配置する。また、第1の実施形態に示した(方針2)に従って、「情報処理装置200が有する基本機能のうち、ユーザからの使用頻度の高いコピー機能などのアプリケーションAPが有する機能を実現するために動作する入力フィルタ103a、変換フィルタ103b、出力フィルタ103cなどの各コンポーネントを、同じプロセスで動作させること」とする。
As described above, the
これによって、本実施形態に係る情報処理装置200は、システムが有する機能のうち、比較的使用頻度の高い基本機能を安定してユーザに提供することができる。また、第1の実施形態に係る情報処理装置200では、アプリケーション管理ソフトウェアと基本アプリケーション81とが動作するプロセスが異なっていたため、プロセス間通信により互いのプロセス間のデータのやり取りを行っていたが、本実施形態に係る情報処理装置200では、同一プロセスで動作するため、プロセス間通信によるシステムやアーキテクチャへの影響がない。
As a result, the
<情報処理装置における主な機能構成について>
ここからは、図27及び図28を用いて説明したプロセス構成及び各レイヤのプロセス配置において、本実施形態に係る情報処理装置200が有する基本機能及び拡張機能をどうのように動作させるのか、すなわち「マルチプロセス環境においてアプリケーションAPをどのような仕組みで実行させるのか」について、図29を用いて説明する。
<Main functional configuration of information processing device>
From here, how to operate the basic function and the extended function of the
図29は、本発明の第2の実施形態に係る情報処理装置200の主な機能構成の一例を示す図である。
FIG. 29 is a diagram illustrating an example of a main functional configuration of the
第1の実施形態における機能構成との違いは、2つのプロセスを実行する実行手段51を有している点と、アプリケーション管理ソフトウェアと、基本アプリケーション81との間で、データのやり取りを行う代理コンポーネント71を有していない点である。以下にその点について説明する。
The difference from the functional configuration in the first embodiment is that it has an execution means 51 that executes two processes, and a proxy component that exchanges data between the application management software and the
本実施形態に係る情報処理装置200は、図27に示した2つのプロセスを実行する実行手段51を有している。
The
実行手段51は、図29に示すように、以下の2つのプロセスを実行する。実行手段51は、例えばOS31である。
The
[プロセスA]
プロセスA32aは、アプリケーションの起動や終了などの管理を行うアプリケーション管理ソフトウェア、及び予め当該情報処理装置200が有する、入力フィルタ103a、変換フィルタ103b、及び/又は出力フィルタ103cとして機能するコンポーネント、すなわち情報処理装置200が有する標準的な機能を実現するコンポーネントを動作させるプロセスである。また、プロセスA32aは、情報処理装置200の起動後、常駐する。
[Process A]
The
[プロセスB]
プロセスB32bは、機能拡張のときに当該情報処理装置200に追加される、入力フィルタ(入力手段)103a、変換フィルタ103b、及び/又は出力フィルタ103cとして機能するコンポーネントを動作させるプロセスである。
[Process B]
The process B32b is a process for operating components that function as the input filter (input unit) 103a, the
また、プロセスB32bは、ユーザからの動作要求を受けたときなど、必要に応じて実行手段51により実行される。
Further, the process B32b is executed by the
このように、本実施形態に係る情報処理装置200は、システム(自社開発した基盤ソフト)及び基本機能を実現する基本アプリケーション81と、拡張機能を実現する拡張アプリケーション82とにおいて、それぞれが動作するメモリ空間を分離し、互いに影響を及ぼさないマルチプロセス化を実現している。
As described above, the
実行手段51によって実行された2つのプロセスでは、第1の実施形態に説明した(方針3)に従って、図28に示すようなプロセス間通信が最小限となるコンポーネント構成としたが、アプリケーション管理ソフトウェアと拡張アプリケーション82との間では、動作要求、動作設定、及び実行要求などのプロセス間通信を行わなければならない。
In the two processes executed by the
そこで、本実施形態に係る情報処理装置200では、アプリケーション管理ソフトウェアが動作するプロセスA32aと、アプリケーション管理ソフトウェアが動作するプロセスA32aと異なるプロセスB32bで動作する拡張アプリケーション82との間でプロセス間通信を行うことによって、拡張アプリケーション82に対して、アプリケーション管理ソフトウェアとのデータのやり取りと同じ振る舞いをする代理コンポーネント71を有している。
Therefore, in the
また、基本アプリケーション81は、アプリケーション管理ソフトウェアと同一のプロセスA32aで動作するため、アプリケーション管理ソフトウェアと基本アプリケーション81との間では、動作要求、動作設定、及び実行要求などのプロセス間通信を行う必要がないため、代理コンポーネント71を有していない。
Further, since the
これ以外の点では、第1の実施形態の機能構成と同じであるため、本実施形態における動作要求送信手段61、動作設定要求送信手段62、及び実行要求管理手段63の各手段の技術的特徴及び各手段によるアプリケーションAPの実行手順などについての説明は省略する。
In other respects, the functional configuration is the same as that of the first embodiment. Therefore, the technical features of the respective units of the operation
<各レイヤに属するコンポーネントのプロセス配置について>
次に、本実施形態に係る情報処理装置200のプロセス構成において、アクティビティ集約型とフィルタ集約型のそれぞれのコンポーネント配置について、図30及び図31を用いて説明する。
<Process allocation of components belonging to each layer>
Next, in the process configuration of the
<<アクティビティ集約型>>
図30は、本発明の第2の実施形態に係る各レイヤに属するコンポーネントをプロセスに配置する一例(アクティビティ集約型の場合)を示す図である。
<< Activity-intensive >>
FIG. 30 is a diagram showing an example (in the case of activity intensive type) in which components belonging to each layer according to the second embodiment of the present invention are arranged in a process.
第1の実施形態におけるコンポーネント配置との違いは、先の機能構成でも説明したように、アプリケーション管理ソフトウェアと基本アプリケーション81とが同一のプロセスA32aで動作するため、図12に示す第1の実施形態のような、基本アプリケーション81がアプリケーション管理ソフトウェアと異なるプロセスで動作するときに配置されていた、ローカルUI部302、コントロール部303、及びデータ管理部308それぞれの代理コンポーネント71が配置されていない。
The difference from the component arrangement in the first embodiment is that, as described in the previous functional configuration, the application management software and the
これ以外の点では、第1の実施形態の機能構成と同じであるため、本実施形態におけるコンポーネントの配置についての説明は省略する。 In other respects, the functional configuration is the same as that of the first embodiment, and a description of the arrangement of components in this embodiment is omitted.
<<フィルタ集約型>>
図31は、本発明の第2の実施形態に係る各レイヤに属するコンポーネントをプロセスに配置する一例(フィルタ集約型の場合)を示す図である。
<< Filter aggregation type >>
FIG. 31 is a diagram illustrating an example (filter aggregation type) in which components belonging to each layer according to the second embodiment of the present invention are arranged in a process.
第1の実施形態におけるコンポーネント配置との違いは、先のアクティビティ集約型でも説明したように、アプリケーション管理ソフトウェアと基本アプリケーション81とが同一のプロセスA32aで動作するため、図23に示す第1の実施形態のような、基本アプリケーション81がアプリケーション管理ソフトウェアと異なるプロセスで動作するときに配置されていた、ローカルUI部302、コントロール部303、及びデータ管理部308それぞれの代理コンポーネント71が配置されていない。
The difference from the component arrangement in the first embodiment is that the application management software and the
これ以外の点では、第1の実施形態の機能構成と同じであるため、本実施形態におけるコンポーネントの配置についての説明は省略する。 In other respects, the functional configuration is the same as that of the first embodiment, and a description of the arrangement of components in this embodiment is omitted.
<アプリケーション実行の基本処理手順について>
第1の実施形態では、アクティビティ集約型のコンポーネント配置におけるアプリケーション実行の基本処理手順を、図17〜22を用いて説明し、フィルタ集約型のコンポーネント配置におけるアプリケーション実行の基本処理手順を、図24〜26を用いて説明した。
<Basic processing procedure for application execution>
In the first embodiment, a basic processing procedure of application execution in the activity-intensive component arrangement will be described with reference to FIGS. 17 to 22, and a basic processing procedure of application execution in the filter-intensive component arrangement will be described with reference to FIGS. 26.
アプリケーション実行の基本処理手順における、第1の実施形態と本実施形態との違いは、アプリケーション管理ソフトウェアと基本アプリケーション81との間のイベント・データなどのやり取りを、代理コンポーネントである代理コンポーネント71を介さず行う点である。そのため、本実施形態では、アプリケーション管理ソフトウェアのローカルUI部302及びコントローラ部303と、基本アプリケーション81のアクティビティUI及びアクティビティロジックやフィルタUI及びフィルタロジックとが、直接データのやり取りを行う。
The difference between the first embodiment and the present embodiment in the basic processing procedure of application execution is that exchange of event data and the like between the application management software and the
これ以外の点では、第1の実施形態のアプリケーション実行の基本処理手順と同じであるため、本実施形態におけるアプリケーション実行の基本処理手順についての説明は省略する。 In other respects, the procedure is the same as the basic processing procedure for executing an application according to the first embodiment.
<まとめ>
以上のように、本発明の第2の実施形態によれば、本実施形態に係る情報処理装置200は、システムの基本機能を実現する基本アプリケーション81と、追加される拡張機能を実現する拡張アプリケーション82とを、異なるプロセスで動作させ、更に、プロセス間通信などのマルチプロセス化の影響を、フレームワークFWに相当する限定されたコンポーネントで行う(マルチプロセス化の影響を隠蔽する)ことができる。
<Summary>
As described above, according to the second embodiment of the present invention, the
よって、本実施形態に係る情報処理装置200は、第1の実施形態と同じ効果を奏することができる。
Therefore, the
[第3の実施形態]
本実施形態は、システムの基本機能を実現する基本アプリケーションと、追加される拡張機能を実現する拡張アプリケーションとを、異なるプロセスで動作させるマルチプロセス化において、拡張機能が動作するプロセスが異常終了した場合に、その後も基本機能の動作を可能とするために、システムから異常終了したプロセスを切り離すことにより、マルチプロセス化を意識することなく、アプリケーションのカスタマイズ又は拡張を簡便に行え、拡張した機能の不具合がシステムの基本機能に影響を及ぼすことのない高い堅牢性を有するシステムを提供するものである。
[Third Embodiment]
In the present embodiment, in a multi-process where the basic application that realizes the basic function of the system and the extended application that realizes the added extended function are operated in different processes, the process in which the extended function operates is abnormally terminated. In addition, in order to enable the operation of the basic functions after that, it is possible to easily customize or extend the application without considering the multi-process by separating the abnormally terminated process from the system. Provides a robust system that does not affect the basic functionality of the system.
第1及び第2の実施形態と本実施形態と異なる点は、拡張機能が動作するプロセスの異常終了を検知し、その旨をアプリケーション管理ソフトウェアが有する各コンポーネントへ通知する点(プロセス異常終了検知・通知機能を有する点)である。 The difference between the first and second embodiments and the present embodiment is that the abnormal end of the process in which the extended function operates is detected, and the fact is notified to each component of the application management software (process abnormal end detection / It has a notification function.
よって、以降に行う本実施形態の説明では、第1及び第2の実施形態と同じ事項について、同一の図面及び参照符号をもってその説明を省略し、第1及び第2の実施形態と異なる点について、図32〜38を用いて説明する。 Therefore, in the following description of the present embodiment, the same matters as in the first and second embodiments will be omitted with the same drawings and reference numerals, and different from the first and second embodiments. This will be described with reference to FIGS.
<情報処理装置における主な機能構成について>
では、本実施形態に係る情報処理装置200が、「どのようにして拡張機能が動作するプロセスの異常終了を検知し、その旨をアプリケーション管理ソフトウェアへ通知するのか」について、図32を用いて説明する。なお、以下の説明では、第1の実施形態において説明を行った「アプリケーション管理、基本機能、及び拡張機能が、それぞれ異なるプロセスで動作する構成」を、プロセス異常終了検知・通知機能が動作するマルチプロセス環境の一例として挙げる。
<Main functional configuration of information processing device>
Then, the
図32は、本発明の第3の実施形態に係る情報処理装置200の主な機能構成の一例を示す図である。
FIG. 32 is a diagram illustrating an example of a main functional configuration of the
第1の実施形態における機能構成との違いは、アプリケーション管理ソフトウェアが動作するプロセス以外のプロセスの異常終了を検知する検知手段91と、検知結果をアプリケーション管理ソフトウェアが有する各コンポーネントへ通知する通知手段92とを、更に有する点である。
The difference from the functional configuration in the first embodiment is that a
マルチプロセス化における全てのプロセスは、あるプロセスをコピーして生成される。例えば本実施形態のようなUNIX環境では、新しいプロセスを生成するシステムコールであるforkを用いて行う。forkを用いて生成されるプロセスは、forkをコールする親プロセスの子プロセスであり、親プロセスのファイルハンドル、変数、環境変数など、親プロセスと全く同じ状態が引き継がれる。 All processes in multi-process are created by copying a certain process. For example, in the UNIX environment like this embodiment, it is performed using fork which is a system call for generating a new process. A process created using fork is a child process of the parent process that calls fork, and the same state as the parent process, such as the file handle, variable, and environment variable of the parent process, is inherited.
例えば、図32には、アプリケーション管理、基本機能、及び拡張機能のそれぞれが動作するプロセスA32a、プロセスB32b、及びプロセスC32cが、子プロセスとして親プロセスとして生成された場合の例が示されている。
For example, FIG. 32 shows an example in which a
また、forkを用いて生成される子プロセスは、プロセスが異常終了した場合に、親プロセスへ、その旨を通知するシグナル(SIGCHLD)を送信する。これによって、親プロセスは、自身が生成した子プロセスの生存(正常動作しているか否か)を確認することができる。 Further, when the process is terminated abnormally, the child process generated using fork transmits a signal (SIGCHLD) for notifying the parent process. As a result, the parent process can confirm the survival of the child process generated by itself (whether it is operating normally).
そこで、本実施形態では、親プロセスが、プロセスの異常終了を検知する検知手段91と、アプリケーション管理ソフトウェアが動作するプロセスA32a(子プロセス)に異常終了した旨を通知する通知手段92aとを有し、親プロセスと子プロセスとのプロセス間通信により、プロセス異常終了検知・通知機能を実現している。
Therefore, in the present embodiment, the parent process has a
さらに、本実施形態では、子プロセスであるプロセスA32aが、親プロセスからの通知を受けて、アプリケーション管理ソフトウェアが有する全てのコンポーネントに、異常終了した旨を通知する通知手段92bを有し、各コンポーネントが、正常に動作していないアプリケーションAPが、他のアプリケーションAPの動作に影響しないように、異常終了したプロセスで動作するアプリケーションAPに関する各種管理情報の整合をとる(異常終了したプロセスで動作するアプリケーションAPの関連データを削除する)。
Furthermore, in this embodiment, the
<プロセス異常終了時の検知・通知の基本処理手順について>
これまでに説明した本実施形態に係る情報処理装置200におけるプロセス異常終了時の検知・通知の具体的な処理手順について、拡張アプリケーションソフトウェアが動作するプロセスC32cが異常終了した場合を例に図33を用いて説明する。
<Basic processing procedure for detection and notification at abnormal process termination>
FIG. 33 shows an example of a case where the process C32c in which the extended application software operates abnormally ends with respect to a specific processing procedure for detection and notification at the time of abnormal process end in the
図33は、本発明の第3の実施形態に係るプロセス異常終了時の検知・通知機能を実現するときの処理手順(その1)の一例を示すシーケンス図である。 FIG. 33 is a sequence diagram showing an example of a processing procedure (part 1) when realizing the detection / notification function at the time of abnormal process end according to the third embodiment of the present invention.
本実施形態に係る情報処理装置200は、親プロセスで動作する検知手段91によって上記シグナル(SIGCHLD)を受け取り、他の子プロセスであるプロセスC32cの異常終了を検知し(S1301)、その検知結果を、同プロセスで動作する通知手段92aに送信する(S1302)。
The
通知手段92aは、受信した検知結果を基に、アプリケーション管理ソフトウェアが動作するプロセスA32a(子プロセス)に、異常終了した旨を、ソケットやメッセージキューなどのプロセス間通信により通知する(S1303)。
Based on the received detection result, the
通知を受けたアプリケーション管理ソフトウェアは、内部の通知手段92bにより、異常終了した旨を、自身が有する全てのコンポーネント(コンポーネント数:N)に対して通知する(S13041〜S1304n)。
Upon receiving the notification, the application management software notifies all the components (the number of components: N) that it has terminated abnormally by the
例えば、アプリケーション管理ソフトウェアが有するローカルUI部302が、通知手段92bから異常終了した旨の通知を受け取ると、異常終了したプロセスC32cのプロセス識別情報(例えば、プロセスID。)を基に、アクティビティとアクティビティを実行するプロセスとが対応付けられたデータ41を参照し、該当する関連データを削除する(S1305)。
For example, when the
続いて、ローカルUI部302は、UIとUIを生成するプロセスとが対応付けられたデータ42を参照し、該当する関連データを削除する(S1306)。
Subsequently, the
また、アプリケーション管理ソフトウェアが有するコントローラ部303が、通知手段92bから異常終了した旨の通知を受け取ると、異常終了したプロセスC32cのプロセス識別情報(例えば、プロセスID。)を基に、リクエストとリクエストを生成するプロセスとが対応付けられたデータ43を参照し、該当する関連データを削除する(S1307)。
In addition, when the
図34は、本発明の第3の実施形態に係るプロセス異常終了に対応して整合された各種データの一例を示す図である。 FIG. 34 is a diagram showing an example of various data matched in response to abnormal process termination according to the third embodiment of the present invention.
ここで、上記S1305〜S1307において行われる関連データの削除について、図34を用いて説明する。なお、以下の説明では、図33と同様に、拡張アプリケーションソフトウェアが動作するプロセスC32cが異常終了した場合を例に説明する。 Here, deletion of related data performed in S1305 to S1307 will be described with reference to FIG. In the following description, as in FIG. 33, a case where the process C32c in which the extended application software operates abnormally ends will be described as an example.
上記S1305では、ローカルUI部302が、異常終了したプロセスC32cのプロセスID"プロセスC"に基づいて、図34の(a)に示す、アクティビティとアクティビティを実行するプロセスとが対応付けられたデータ41を参照し、図中の破線枠に示す情報項目「アクティビティ名」の該当関連データを削除する。
In step S1305, the
更に、上記S1306では、プロセスID"プロセスC"に基づいて、図34の(b)に示す、UIとUIを生成するプロセスとが対応付けられたデータ42を参照し、図中の破線枠に示す情報項目「UI制御コンポーネントID」及び「画面要素ID」の該当関連データを削除する。
Further, in S1306, referring to the
このとき、ローカルUI部302は、上記各データ41及び42から該当関連データを削除するとともに、データ42の情報項目である画面要素IDを基に、アプリケーションAPの選択画面であるメニューを構成する該当グラフィック部品(例えば、アイコン。)を削除、又は該当グラフィック部品の表示属性を半輝度(グレーダウン)に設定変更する。
At this time, the
また、上記S1307では、コントロール部303が、異常終了したプロセスC32cのプロセスID"プロセスC"に基づいて、図34の(c)に示す、リクエストとリクエストを生成するプロセスとが対応付けられたデータ43を参照し、図中の破線枠に示す情報項目「リクエストID」の該当関連データを削除する。
In step S1307, the
このとき、コントロール部303は、削除したリクエストに関して、画面表示、ステータスレポート印刷、管理者宛メール送信、ジョブ要求者宛メール送信などのさまざまな通知方法によってその旨を知らせる。また、コントロール部303では、削除したリクエストに関する情報をハードディスクなどの補助記憶部13に格納し、永続化した後に、次回の正常起動時に、永続化情報を基に再実行する構成にしても良い。
At this time, the
このようにして、本実施形態に係る情報処理装置200では、マルチプロセス化において、拡張機能が動作するプロセスが異常終了した場合に、その後も基本機能の動作を可能とするために、システムから異常終了したプロセスを切り離すことができる。
As described above, in the
<変形例>
上記に説明を行ったプロセス異常終了検知・通知機能では、親プロセスで検知・通知機能を実現する各手段91及び92aが動作する構成であった。このような構成の場合、シグナルによるプロセス間通信によって、異常終了を即座に検知することができる点がメリットとして挙げられる。その一方で、マルチプロセス環境における機能実装が複雑となると言うデメリットが挙げられる。
<Modification>
In the process abnormal end detection / notification function described above, each means 91 and 92a for realizing the detection / notification function in the parent process operates. In such a configuration, the advantage is that abnormal termination can be detected immediately by inter-process communication using signals. On the other hand, there is a demerit that function implementation in a multi-process environment becomes complicated.
そこで、以降に、上記機能構成より簡単な構成で機能実装を可能とする例について、図35を用いて説明する。 Therefore, hereinafter, an example in which the function can be implemented with a simpler configuration than the above functional configuration will be described with reference to FIG.
図35は、本発明の第3の実施形態に係るプロセス異常終了時の検知・通知機能の変形例を示す図である。 FIG. 35 is a diagram showing a modification of the detection / notification function at the time of abnormal process end according to the third embodiment of the present invention.
図35に示すように、本変形例では、アプリケーション管理ソフトウェアが動作するプロセスA32aが検知手段91及び通知手段92を有し、アプリケーション管理ソフトウェアが管理する各種アプリケーションAPが動作するプロセスB32b及びプロセスC32cそれぞれが、各プロセスの状態情報を送信する送信手段93を有する構成となっている。
As shown in FIG. 35, in the present modification, the
また、このような構成の場合、2つの検知・通知方法が考えられる。 In such a configuration, two detection / notification methods are conceivable.
1つ目は、プロセスA32aで動作する検知手段91が、他のプロセスに対してプロセスの状態情報の取得を定期的に要求し、各プロセスで動作する送信手段93が応答することで、他のプロセスの生存確認を行う方法、また2つ目は、他のプロセスで動作する送信手段93が、プロセスA32aに対してプロセスの状態情報(ハートビート)を定期的に送信し、プロセスA32aで動作する検知手段91が受信することで、他のプロセスの生存確認を行う方法である。
The first is that the detection means 91 operating in the process A 32a periodically requests acquisition of process status information from other processes, and the transmission means 93 operating in each process responds. A method for confirming the existence of a process, and second, a transmission means 93 operating in another process periodically transmits process state information (heartbeat) to the
このように、本変形例では、子プロセス間のプロセス間通信により、プロセス異常終了検知・通知機能を実現している。 Thus, in this modification, the process abnormal end detection / notification function is realized by inter-process communication between child processes.
<プロセス異常終了時の検知・通知の基本処理手順について>
では、本変形例に係る情報処理装置200におけるプロセス異常終了時の検知・通知の具体的な処理手順について、拡張アプリケーションソフトウェアが動作するプロセスC32cが異常終了した場合を例に図36及び図37を用いて説明する。
<Basic processing procedure for detection and notification at abnormal process termination>
Now, with respect to a specific processing procedure for detection and notification at the time of abnormal process end in the
図36には、プロセスA32aが他のプロセスの状態情報を取得要求する検知・通知機能の処理手順の一例、また、図37には、他のプロセスが状態情報(ハートビート)をプロセスA32aに送信する検知・通知機能の処理手順の一例が示されている。
FIG. 36 shows an example of the processing procedure of the detection / notification function in which the
<<プロセスAが他のプロセスの状態情報を取得要求する検知・通知機能の場合>>
図36は、本発明の第3の実施形態に係るプロセス異常終了時の検知・通知機能を実現するときの処理手順(その2)の一例を示すシーケンス図である。
<< When the process A is a detection / notification function that requests acquisition of status information of other processes >>
FIG. 36 is a sequence diagram illustrating an example of a processing procedure (part 2) for realizing the detection / notification function at the time of abnormal process end according to the third embodiment of the present invention.
本変形例に係る情報処理装置200は、プロセスA32aで動作する検知手段91によって、定期的に他のプロセスの生存確認を行う。より具体的には、検知手段91は、プロセスB32bに対して、プロセスの状態情報の取得を要求し、プロセスB32bで動作する送信手段93bが、要求に応じて状態情報を送信(応答)する(S1401b)。続いて、検知手段91は、プロセスC32cに対して、プロセスの状態情報の取得を要求し、プロセスC32cで動作する送信手段93cが、要求に応じて状態情報を送信(応答)する(S1401c)。
The
上記状態情報取得要求の中で、検知手段91は、他のプロセスからの応答結果に基づいて、プロセスの異常終了を検知する(S1402)。例えば、プロセスC32cが異常終了している場合には、状態情報取得要求に対して応答ができないことから、検知手段91は、情報取得要求に対して応答のなかったプロセスを異常終了したものと判断し検知する。また子プロセス間のプロセス間通信エラーを基に検知しても良い。
In the status information acquisition request, the
以降のS1403〜S1406は、図33のS1302〜S1307の処理手順と同様であり、検知手段91からの検知結果を受けて、通知手段92が、アプリケーション管理ソフトウェアが有する全てのコンポーネントに、その旨を通知する。
Subsequent steps S1403 to S1406 are the same as the processing procedures of steps S1302 to S1307 in FIG. 33. Upon receiving the detection result from the
<<他のプロセスが状態情報(ハートビート)をプロセスAに送信する検知・通知機能の場合>>
図37は、本発明の第3の実施形態に係るプロセス異常終了時の検知・通知機能を実現するときの処理手順(その3)の一例を示すシーケンス図である。
<< For the detection / notification function in which another process sends status information (heartbeat) to process A >>
FIG. 37 is a sequence diagram illustrating an example of a processing procedure (part 3) for realizing the detection / notification function at the time of abnormal process end according to the third embodiment of the present invention.
本変形例に係る情報処理装置200は、プロセスB32bで動作する送信手段93b及びプロセスC32cで動作する送信手段93cによって、定期的にプロセスの状態情報(ハートビート)がプロセスA32aに送信される。より具体的には、送信手段93は、一定間隔で自身が動作するプロセス(プロセスB32b及びプロセスC32c)の状態情報(ハートビート)を取得し(S1501b及びS1501c)、プロセスA32aに送信する(S1502b及びS1502c)。その結果、これらの状態情報(ハートビート)は、プロセスA32aで動作する検知手段91により受信される。
In the
上記状態情報送信の中で、検知手段91は、他のプロセスからの受信結果に基づいて、プロセスの異常終了を検知する(S1503)。例えば、プロセスC32cが異常終了している場合には、一定間隔で状態情報(ハートビート)が送信できないことから、検知手段91は、一定時間経過してもプロセスの状態情報(ハートビート)を受信できなかったプロセスを異常終了したものと判断し検知する。
During the transmission of the status information, the
以降のS1504〜S1507は、図33のS1302〜S1307の処理手順と同様であり、検知手段91からの検知結果を受けて、通知手段92が、アプリケーション管理ソフトウェアが有する全てのコンポーネントに、その旨を通知する。
Subsequent steps S1504 to S1507 are the same as the processing procedure of steps S1302 to S1307 in FIG. 33. Upon receiving the detection result from the
<プロセス異常終了時の操作画面>
また、上記変形例を含む本実施形態では、ローカルUI部302が、通知手段92から異常終了を検知した旨の通知を受け取ると、例えば図38に示すような画面Wが、本実施形態に係る情報処理装置200が有する出力装置I/F17を介して接続される表示装置に表示される。
<Operation screen when process ends abnormally>
Further, in the present embodiment including the above-described modification, when the
図38は、本発明の第3の実施形態に係るアプリケーション管理UIの表示画面Wの一例を示す図である。なお、図38でも、これまでの説明と同様にプロセスC32cが異常終了した場合の例が示されている。 FIG. 38 is a diagram showing an example of the display screen W of the application management UI according to the third embodiment of the present invention. FIG. 38 also shows an example in which the process C32c ends abnormally as in the above description.
図38に示す表示画面Wは、アプリケーション管理UIにより表示される。アプリケーション管理UIは、ローカルUI部302と同様、プロセスA32aのユーザインタフェース層101に配置される。プロセス異常終了を受け付けたローカルUI部302は、アプリケーション管理UIに画面生成要求を行い、アプリケーション管理UIが要求に応じてUI要素を生成し、生成したUI要素をローカルUI部302へ返す。このように、第1の実施形態において説明を行ったアプリケーションAPのUI表示と同様の手順により表示される。
A display screen W shown in FIG. 38 is displayed by the application management UI. Similar to the
図38の(a)には、情報処理装置200にインストールされた各種アプリケーションAPの一覧表示画面Wが示されている。
FIG. 38A shows a list display screen W for various applications AP installed in the
各種アプリケーションAPの一覧表示には、アプリケーションの状態(有効:○/無効:−)、アプリケーションAPの名称、バージョン、更新日時、動作するプロセスなどの各種情報項目が含まれる。 The list display of the various application APs includes various information items such as the application status (valid: ○ / invalid:-), application AP name, version, update date and time, and operating process.
また、この一覧表示領域には、アプリケーションの有効化/無効化を選択設定するボタン、アプリケーションの更新(再インストール)を指示するボタン、及びアプリケーションの削除(アンインストール)を指示するボタンなどの複数種のアクションボタンが用意されており、ユーザは、これらアクションボタンを選択することにより、上記設定、更新、及び削除の動作を実行させることができる。 The list display area includes a plurality of types of buttons, such as a button for selecting / setting application validation / invalidation, a button for instructing application update (reinstallation), and a button for instructing application deletion (uninstallation). The action buttons are prepared, and the user can execute the setting, updating, and deletion operations by selecting these action buttons.
例えば、ユーザが、アプリケーション名「Print」のアクションボタン[有効化]を選択すると、「Print」の状態が、無効から有効へ変更される。 For example, when the user selects the action button [validate] with the application name “Print”, the status of “Print” is changed from invalid to valid.
更に、同画面Wでは、各種アプリケーションAPが動作するプロセスの有効化/無効化を選択設定する操作領域が用意されており、ユーザは、プロセス単位で有効/無効を設定することができる。 Further, on the screen W, an operation area for selectively enabling / disabling processes in which various application APs operate is prepared, and the user can set enable / disable for each process.
例えば、ユーザが、プロセス名「プロセスB」の有効ボタンを選択すると、「プロセスB」の状態が、無効から有効へと変更される。 For example, when the user selects a valid button with the process name “process B”, the state of “process B” is changed from invalid to valid.
また、各種アプリケーションAPの一覧表示の中で、表示される情報項目の「状態」には、プロセスの異常終了の直前に実行されたリクエストに対応するアプリケーションAPが分かるように表示される。 In the list display of various application APs, the “status” of the displayed information item is displayed so that the application AP corresponding to the request executed immediately before the abnormal termination of the process can be seen.
図中では、プロセスC32cが異常終了していることから、該当する複数のアプリケーションAPの状態[×]が表示されている。図中の[×]は、異常終了したプロセスで動作していたアプリケーションAPを示している。また、図中の[×××]は、異常終了の直前に実行していたアプリケーションAPを示している。 In the figure, since the process C32c has ended abnormally, the statuses [x] of the corresponding application APs are displayed. [X] in the figure indicates an application AP that was operating in a process that ended abnormally. [Xxx] in the figure indicates an application AP that was executed immediately before abnormal termination.
異常終了の直前に実行されたアプリケーションAPへのリクエストが、異常終了の原因である可能性が高い。そのため、異常終了したプロセスにおいて、直前に実行されたアプリケーションAPとそれ以外のアプリケーションAPとを異なる態様で表示することにより、原因の特定に役立てることができ、特定したアプリケーションAPを、アクションボタンを選択することで、無効化又は削除(アンインストール)することができる。 A request to the application AP executed just before the abnormal termination is likely to cause the abnormal termination. Therefore, by displaying the application AP executed immediately before and the other application AP in different modes in the abnormally terminated process, it can be useful for identifying the cause. Select the action button for the identified application AP By doing so, it can be invalidated or deleted (uninstalled).
以上のように、上記表示画面Wを介して、異常終了したプロセスへの対応を簡便に行うことができ、マルチプロセス環境を安定した状態に復帰することができる。 As described above, it is possible to easily deal with abnormally terminated processes via the display screen W, and it is possible to return the multi-process environment to a stable state.
図38の(b)には、検知したプロセス異常終了の通知と無効化を促す表示画面Wが示されている。このような、簡易な表示画面Wで、異常終了したプロセスを無効にするようにしても良い。 FIG. 38 (b) shows a display screen W prompting the notification and invalidation of the detected abnormal process. Such a simple display screen W may be used to invalidate a process that has ended abnormally.
また、上記表示画面Wを介して、異常終了したプロセスが無効にされたり、異常終了の原因となったアプリケーションAPがアンインストールされたりした場合には、マルチプロセス環境を自動的にリブート(再起動)するようにしても良い。 In addition, if a process that terminated abnormally is disabled or the application AP that caused the abnormal termination is uninstalled via the display screen W, the multi-process environment is automatically rebooted (restarted). ).
<まとめ>
以上のように、本発明の第3の実施形態によれば、本実施形態に係る情報処理装置200は、アプリケーション管理ソフトウェアで管理される各種アプリケーションAPが動作するプロセスの異常終了を検知し、その検知結果に基づき、アプリケーション管理ソフトウェアが、自身が有する全てのコンポーネントにその旨を通知し、各コンポーネントにより、正常に動作していないアプリケーションAPが、他のアプリケーションAPの動作に影響しないように、異常終了したプロセスで動作するアプリケーションAPに関する各種管理情報の整合をとり、アプリケーション管理を行う。
<Summary>
As described above, according to the third embodiment of the present invention, the
よって、本実施形態に係る情報処理装置200では、第1及び第2の実施形態と同じを奏することができるとともに、マルチプロセス化において、拡張機能が動作するプロセスが異常終了した場合に、その後も基本機能の動作を可能とするために、システムから異常終了したプロセスを切り離すことができる。
Therefore, in the
なお、上記第3の実施形態では、アプリケーション管理、基本機能、及び拡張機能が、それぞれ異なる3つのプロセスで動作する構成を、プロセス異常終了検知・通知機能が動作するマルチプロセス環境の一例として挙げたが、第2の実施形態において説明を行った2つのプロセスで動作する構成においても本機能が適用可能であることは言うまでもない。 In the third embodiment, the configuration in which the application management, basic function, and extended function operate in three different processes is given as an example of a multi-process environment in which the process abnormal termination detection / notification function operates. However, it goes without saying that this function can also be applied to a configuration that operates in the two processes described in the second embodiment.
これまでに説明を行ってきた上記各実施形態に係る情報処理装置200が有する機能は、動作環境(プラットフォーム)にあったプログラミング言語で、図17〜22、図24〜26において説明した各処理手順をコード化したアプリケーション実行プログラムを、コンピュータで実行することにより実現する。よって、上記各実施形態に係るアプリケーション実行プログラムは、コンピュータが読み取り可能な記憶媒体に格納することができる。
The functions of the
また、第1の実施形態に係る画像処理装置100は、図1及び図6に示したように、原稿を画像データとして読み取るスキャナ部22と、画像データを紙に印刷する印刷部21と、第1及び第2の実施形態において説明を行った情報処理装置200とから構成されていることから、上記各実施形態において説明を行った情報処理装置200と同様の効果を奏することができる。
As shown in FIGS. 1 and 6, the
また、上記各実施形態において、実行手段51により実行されるプロセスについて説明を行ってきたが、本発明は、起動されるプロセスの数に限定されるものではない。すなわち、アプリケーション管理用プロセスA32aと、1つ以上のアプリケーション用プロセスとが実行される構成であれば良い。
In the above embodiments, the processes executed by the
最後に、上記各実施形態に挙げた形状に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。 Finally, the present invention is not limited to the requirements shown here, such as combinations of other elements with the shapes listed in the above embodiments. With respect to these points, the present invention can be changed within a range that does not detract from the gist of the present invention, and can be appropriately determined according to the application form.
11 制御部(CPU)
12 主記憶部(ROM,RAM)
13 補助記憶部(HD)
14 ネットワークI/F
15 外部記憶装置I/F
16 外部装置I/F
17 出力装置I/F
18 入力装置I/F
19 表示部(パネル表示)
20 入力部(操作部)
21 印刷部(プロッタ部)
22 スキャナ部(原稿読み取り部)
31 OS(基本ソフトウェア)
32a プロセスA(第1のプロセス)
32b プロセスB(第2のプロセス)
32c プロセスC(第3のプロセス)
41 アプリケーション識別情報とプロセス識別情報とを関連付ける情報
42 画面要素識別情報とプロセス識別情報とを関連付ける情報
43 実行要求識別情報とプロセス識別情報とを関連付ける情報
51 実行手段
61 動作要求送信手段
62 動作設定送信手段
63 実行要求管理手段
71 代理コンポーネント(ソフトウェア部品)
81 基本アプリケーション(自社製アプリケーション)
82 拡張アプリケーション(サードベンダ製アプリケーション)
91 検知手段
92 通知手段
93 送信手段
100 画像処理装置
101 ユーザインタフェース層
102 コントロール層
103 アプリケーションロジック層
103a 入力手段(入力フィルタ)
103b 加工手段(変換フィルタ)
103c 出力手段(出力フィルタ)
104 デバイスサービス層
105 デバイス制御層
106 アスペクト
200 情報処理装置
301 通信サーバ部
302 ローカルUI部
303 コントロール部
304 読取フィルタ
305 文書加工フィルタ
306 印刷フィルタ
307 画像パイプ
308 データ管理部
309 スキャナ制御部
310 プロッタ制御部
311 メモリ制御部
312 操作デバイス制御部
401 コピーアクティビティUI
402 読み取りフィルタUI
403 印刷フィルタUI
405 ベンダアクティビティUI
406 ベンダ(入力)フィルタUI
501 コピーアクティビティロジック
502 読み取りフィルタロジック
503 印刷フィルタロジック
505 ベンダアクティビティロジック
506 ベンダ(入力)フィルタロジック
A アクティビティ(1:アクティビティ1, 2:アクティビティ)
AP アプリケーション(1:アプリケーション1, 2:アプリケーション2)
F フィルタ(a:フィルタA, b:フィルタB, c:フィルタC)
FW フレームワーク
P パイプ
W 表示画面
11 Control unit (CPU)
12 Main memory (ROM, RAM)
13 Auxiliary memory (HD)
14 Network I / F
15 External storage device I / F
16 External device I / F
17 Output device I / F
18 Input device I / F
19 Display (panel display)
20 Input unit (operation unit)
21 Printing section (plotter section)
22 Scanner section (original reading section)
31 OS (basic software)
32a Process A (first process)
32b Process B (second process)
32c Process C (Third process)
41 Information for associating application identification information with
81 Basic application (in-house application)
82 Extended application (third-party vendor application)
91 Detection means 92 Notification means 93 Transmission means 100
103b Processing means (conversion filter)
103c Output means (output filter)
104
402 Read filter UI
403 Print Filter UI
405 Vendor Activity UI
406 Vendor (input) filter UI
501
AP application (1:
F Filter (a: Filter A, b: Filter B, c: Filter C)
FW Framework P Pipe W Display screen
Claims (29)
前記アプリケーションの起動や終了などの管理を行うアプリケーション管理ソフトウェアを動作させる第1のプロセスと、
当該情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを動作させる第2のプロセスと、
当該情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを動作させる第3のプロセスとを有し、
更に、前記第1のプロセス、前記第2のプロセス、及び前記第3のプロセスを実行する実行手段を有することを特徴とする情報処理装置。 An input unit that inputs data, a processing unit that processes data, and an output unit that outputs data; and by operating the input unit, the processing unit, and the output unit in cooperation with each other, An information processing apparatus that realizes a function of an application,
A first process for operating application management software for managing startup and termination of the application;
A second process for operating basic application software for realizing the basic functions of the information processing apparatus;
A third process for operating extended application software that realizes an extended function added to the information processing apparatus,
The information processing apparatus further comprises execution means for executing the first process, the second process, and the third process.
前記アプリケーションの起動や終了などの管理を行うアプリケーション管理ソフトウェア、及び当該情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを動作させる第1のプロセスと、
当該情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを動作させる第2のプロセスとを有し、
更に、前記第1のプロセス及び前記第2のプロセスを実行する実行手段を有することを特徴とする情報処理装置。 An input unit that inputs data, a processing unit that processes data, and an output unit that outputs data; and by operating the input unit, the processing unit, and the output unit in cooperation with each other, An information processing apparatus that realizes a function of an application,
Application management software for managing the activation and termination of the application, and a first process for operating basic application software for realizing basic functions of the information processing apparatus;
A second process for operating extended application software that realizes an extended function added to the information processing apparatus,
The information processing apparatus further comprises execution means for executing the first process and the second process.
同一プロセスで動作することを特徴とする請求項1又は2に記載の情報処理装置。 The input means, the processing means, and the output means that operate to realize a function of a predetermined application,
The information processing apparatus according to claim 1, wherein the information processing apparatus operates in the same process.
それぞれが特定の単一プロセスで動作することを特徴とする請求項1又は2に記載の情報処理装置。 The input means, the processing means, and the output means that operate to realize a function of a predetermined application,
The information processing apparatus according to claim 1, wherein each of the information processing apparatuses operates in a specific single process.
前記ソフトウェア部品は、
前記アプリケーションと同じプロセスで動作することを特徴とする請求項1ないし4のいずれか一項に記載の情報処理装置。 For the application, having a software component that behaves the same as the exchange of data performed between the application management software and the application,
The software component is
5. The information processing apparatus according to claim 1, wherein the information processing apparatus operates in the same process as the application.
前記アプリケーションを識別するアプリケーション識別情報と、前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報に基づいて、前記アプリケーション識別情報から特定したプロセスに対して、動作要求を送信する動作要求送信手段を有することを特徴とする請求項1ないし5のいずれか一項に記載の情報処理装置。 When receiving an instruction to select the application to be operated,
Operation request transmission for transmitting an operation request to a process specified from the application identification information based on information associating application identification information for identifying the application with process identification information for identifying a process in which the application operates 6. The information processing apparatus according to claim 1, further comprising: means.
前記アプリケーションごとの前記動作設定要求に対応するユーザインタフェースを構成する画面要素を識別する画面要素識別情報と、前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報に基づいて、前記画面要素識別情報から特定したプロセスに対して、前記動作設定要求を送信する動作設定要求送信手段を有することを特徴とする請求項1ないし6のいずれか一項に記載の情報処理装置。 When receiving the operation setting request of the application,
The screen element based on information associating screen element identification information for identifying a screen element constituting a user interface corresponding to the operation setting request for each application and process identification information for identifying a process in which the application operates The information processing apparatus according to claim 1, further comprising an operation setting request transmission unit configured to transmit the operation setting request to a process specified from the identification information.
前記実行要求を識別する実行要求識別情報と、実行対象となる前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報に基づいて、前記実行要求識別情報から特定したプロセスに対して前記実行要求を送信し、前記アプリケーションに実行開始を指示する実行要求管理手段を有することを特徴とする請求項1ないし7のいずれか一項に記載の情報処理装置。 When an execution request for the application is received,
Based on information associating execution request identification information for identifying the execution request with process identification information for identifying a process in which the application to be executed is executed, the execution for the process identified from the execution request identification information The information processing apparatus according to claim 1, further comprising an execution request management unit that transmits a request and instructs the application to start execution.
前記検知手段により検知されたプロセス異常終了を前記アプリケーション管理ソフトウェアが動作するプロセスに通知する通知手段とを有することを特徴とする請求項1ないし8のいずれか一項に記載の情報処理装置。 Detection means for detecting that a process other than the process in which the application management software operates has ended abnormally;
The information processing apparatus according to claim 1, further comprising a notification unit configured to notify the process in which the application management software operates of the abnormal process detected by the detection unit.
前記第1のプロセス、前記第2のプロセス、及び前記第3のプロセス、又は、前記第1のプロセス及び前記第2のプロセスを生成した親プロセスで動作することを特徴とする請求項9に記載の情報処理装置。 The detection means and the notification means are:
The operation according to claim 9, wherein the first process, the second process, and the third process, or a parent process that generates the first process and the second process are operated. Information processing device.
子プロセスにあたる前記アプリケーション管理ソフトウェアが動作するプロセス以外のプロセス終了によるシグナルを受信することで、プロセスの異常終了を検知することを特徴とする請求項10に記載の情報処理装置。 The detection means includes
The information processing apparatus according to claim 10, wherein an abnormal termination of a process is detected by receiving a signal due to termination of a process other than a process in which the application management software operating as a child process operates.
前記第1のプロセスで動作することを特徴とする請求項9に記載の情報処理装置。 The detection means and the notification means are:
The information processing apparatus according to claim 9, wherein the information processing apparatus operates in the first process.
前記アプリケーション管理ソフトウェアが動作するプロセス以外のプロセスに対して、プロセスの状態を示す状態情報の取得を要求し、要求への応答があるか否かに基づき、プロセスの異常終了を検知することを特徴とする請求項12に記載の情報処理装置。 The detection means includes
A process other than the process in which the application management software operates is requested to acquire status information indicating the status of the process, and abnormal termination of the process is detected based on whether there is a response to the request. The information processing apparatus according to claim 12.
前記アプリケーション管理ソフトウェアが動作するプロセス以外のプロセスから送信されるプロセスの状態を示す状態情報を受信したか否かに基づき、プロセスの異常終了を検知することを特徴とする請求項12に記載の情報処理装置。 The detection means includes
13. The information according to claim 12, wherein abnormal termination of a process is detected based on whether or not status information indicating a status of a process transmitted from a process other than the process in which the application management software operates is received. Processing equipment.
前記アプリケーション管理ソフトウェアが有するコンポーネントが、前記アプリケーションを識別するアプリケーション識別情報と、前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報から、異常終了したプロセスで動作するアプリケーションのアプリケーション識別情報を削除することを特徴とする請求項9ないし14のいずれか一項に記載の情報処理装置。 When the process in which the application management software operates receives a process abnormal end notification by the notification unit,
The component included in the application management software includes application identification information of an application that operates in an abnormally terminated process, from information that associates application identification information that identifies the application with process identification information that identifies a process in which the application operates. The information processing apparatus according to claim 9, wherein the information processing apparatus is deleted.
前記アプリケーション管理ソフトウェアが有するコンポーネントが、前記アプリケーションごとの前記動作設定要求に対応するユーザインタフェースを構成する画面要素を識別する画面要素識別情報と、前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報から、異常終了したプロセスで生成された画面要素の画面要素識別情報を削除することを特徴とする請求項9ないし15のいずれか一項に記載の情報処理装置。 When the process in which the application management software operates receives a process abnormal end notification by the notification unit,
The component included in the application management software includes screen element identification information for identifying a screen element constituting a user interface corresponding to the operation setting request for each application, and process identification information for identifying a process in which the application operates. The information processing apparatus according to any one of claims 9 to 15, wherein the screen element identification information of the screen element generated by the abnormally terminated process is deleted from the associated information.
前記アプリケーション管理ソフトウェアが有するコンポーネントが、前記実行要求を識別する実行要求識別情報と、実行対象となる前記アプリケーションが動作するプロセスを識別するプロセス識別情報とを関連付ける情報から、異常終了したプロセスで生成された実行要求の実行要求識別情報を削除することを特徴とする請求項9ないし16のいずれか一項に記載の情報処理装置。 When the process in which the application management software operates receives a process abnormal end notification by the notification unit,
A component included in the application management software is generated by an abnormally terminated process from information that associates execution request identification information that identifies the execution request and process identification information that identifies a process in which the application to be executed operates. The information processing apparatus according to claim 9, wherein the execution request identification information of the execution request is deleted.
異常終了したプロセスで動作していたアプリケーションのうち、
プロセスが異常終了する直前に動作していたアプリケーションと、それ以外のアプリケーションとを、異なる態様で表示することを特徴とする請求項9ないし17のいずれか一項に記載の情報処理装置。 When the process in which the application management software operates receives a process abnormal end notification by the notification unit,
Of the applications that were running in abnormally terminated processes,
The information processing apparatus according to any one of claims 9 to 17, wherein an application that has been operating immediately before the process ends abnormally and another application are displayed in different modes.
異常終了したプロセスを無効に設定することを特徴とする請求項9ないし19のいずれか一項に記載の情報処理装置。 When the process in which the application management software operates receives a process abnormal end notification by the notification unit,
The information processing apparatus according to claim 9, wherein the abnormally terminated process is set to be invalid.
画像データを紙に印刷する印刷装置と、
請求項1ないし20のいずれか一項に記載の情報処理装置とを有することを特徴とする画像処理装置。 An original reading device for reading an original as image data;
A printing device for printing image data on paper;
An image processing apparatus comprising the information processing apparatus according to claim 1.
前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェアと、
前記情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアと、
前記情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアとを、それぞれが異なるプロセスで実行することを特徴とするアプリケーション実行方法。 An input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, and operating the input unit, the processing unit, and the output unit in cooperation with each other. An application execution method in an information processing apparatus for realizing a function of an application,
Application management software for managing startup and termination of the application;
Basic application software for realizing the basic functions of the information processing apparatus;
An application execution method, wherein extended application software that realizes an extended function added to the information processing apparatus is executed by different processes.
前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、及び前記情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを第1のプロセスで実行し、
前記情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを第2のプロセスで実行することを特徴とするアプリケーション実行方法。 An input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, and operating the input unit, the processing unit, and the output unit in cooperation with each other. An application execution method in an information processing apparatus for realizing a function of an application,
The application management software for managing the start and end of the application and the basic application software for realizing the basic functions of the information processing apparatus are executed in a first process,
An application execution method, wherein extended application software for realizing an extended function added to the information processing apparatus is executed in a second process.
前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェアが動作する第1のプロセスを実行し、
予め前記情報処理装置が有する、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第2のプロセスを実行し、
機能拡張のときに前記情報処理装置に追加される、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第3のプロセスを実行することを特徴とするアプリケーション実行方法。 An input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, and operating the input unit, the processing unit, and the output unit in cooperation with each other. An application execution method in an information processing apparatus for realizing a function of an application,
Executing a first process in which application management software for managing activation and termination of the application operates,
The information processing apparatus has a second process in which a component program that functions as the input unit, the processing unit, and / or the output unit operates,
An application execution characterized by executing a third process in which a component program that functions as the input unit, the processing unit, and / or the output unit is added to the information processing apparatus at the time of function expansion. Method.
前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、ならびに予め前記情報処理装置が有する、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第1のプロセスを実行し、
機能拡張のときに前記情報処理装置に追加される、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第2のプロセスを実行することを特徴とするアプリケーション実行方法。 An input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, and operating the input unit, the processing unit, and the output unit in cooperation with each other. An application execution method in an information processing apparatus for realizing a function of an application,
Application management software for managing the activation and termination of the application, and a first process in which the information processing apparatus has a component program that functions as the input unit, the processing unit, and / or the output unit. Run
Application execution characterized by executing a second process in which a component program functioning as the input unit, the processing unit, and / or the output unit, which is added to the information processing apparatus at the time of function expansion, operates. Method.
コンピュータに、
前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェアと、
前記情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアと、
前記情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアとを、それぞれが異なるプロセスで実行させるアプリケーション実行プログラム。 An input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, and operating the input unit, the processing unit, and the output unit in cooperation with each other. An application execution program in an information processing apparatus that realizes a function of an application,
On the computer,
Application management software for managing startup and termination of the application;
Basic application software for realizing the basic functions of the information processing apparatus;
An application execution program that executes extended application software that realizes an extended function added to the information processing apparatus in different processes.
コンピュータに、
前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、及び前記情報処理装置が有する基本機能を実現する基本アプリケーションソフトウェアを第1のプロセスで実行させ、
前記情報処理装置に追加される拡張機能を実現する拡張アプリケーションソフトウェアを第2のプロセスで実行させるアプリケーション実行プログラム。 An input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, and operating the input unit, the processing unit, and the output unit in cooperation with each other. An application execution program in an information processing apparatus that realizes a function of an application,
On the computer,
Application management software for managing the start and end of the application, and basic application software for realizing basic functions of the information processing apparatus are executed in a first process,
An application execution program for executing, in a second process, extended application software for realizing an extended function added to the information processing apparatus.
コンピュータに、
前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェアが動作する第1のプロセスを実行させ、
予め前記情報処理装置が有する、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第2のプロセスを実行させ、
機能拡張のときに前記情報処理装置に追加される、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第3のプロセスを実行させるアプリケーション実行プログラム。 An input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, and operating the input unit, the processing unit, and the output unit in cooperation with each other. An application execution program in an information processing apparatus that realizes a function of an application,
On the computer,
Executing a first process in which application management software for performing management such as activation and termination of the application operates;
Causing the information processing apparatus to execute a second process in which a component program that functions as the input unit, the processing unit, and / or the output unit operates;
An application execution program that executes a third process in which a component program that functions as the input unit, the processing unit, and / or the output unit is added to the information processing apparatus when the function is expanded.
コンピュータに、
前記アプリケーションの起動と終了などの管理を行うアプリケーション管理ソフトウェア、ならびに予め前記情報処理装置が有する、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第1のプロセスを実行させ、
機能拡張のときに前記情報処理装置に追加される、前記入力部、前記加工部、及び/又は前記出力部として機能するコンポーネントプログラムが動作する第2のプロセスを実行させるアプリケーション実行プログラム。 An input unit for inputting data, a processing unit for processing data, and an output unit for outputting data, and operating the input unit, the processing unit, and the output unit in cooperation with each other. An application execution process in an information processing apparatus that realizes a function of an application,
On the computer,
Application management software for managing the activation and termination of the application, and a first process in which the information processing apparatus has a component program that functions as the input unit, the processing unit, and / or the output unit. And execute
An application execution program that executes a second process in which a component program that functions as the input unit, the processing unit, and / or the output unit is added to the information processing apparatus during function expansion.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008222129A JP2009134695A (en) | 2007-11-07 | 2008-08-29 | Information processor, image processor, application execution method and application execution program |
US12/263,691 US8438567B2 (en) | 2007-11-07 | 2008-11-03 | Information processing device and image processing apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007290214 | 2007-11-07 | ||
JP2008222129A JP2009134695A (en) | 2007-11-07 | 2008-08-29 | Information processor, image processor, application execution method and application execution program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009134695A true JP2009134695A (en) | 2009-06-18 |
Family
ID=40866487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008222129A Pending JP2009134695A (en) | 2007-11-07 | 2008-08-29 | Information processor, image processor, application execution method and application execution program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009134695A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011086141A (en) * | 2009-10-16 | 2011-04-28 | Ricoh Co Ltd | Image forming apparatus and program operating method |
JP2011197827A (en) * | 2010-03-17 | 2011-10-06 | Ricoh Co Ltd | Information processor, information processing method, and information processing program |
JP2012212348A (en) * | 2011-03-31 | 2012-11-01 | Brother Ind Ltd | Image processing program, information processing terminal device and control method for information processing terminal device |
US8745640B2 (en) | 2009-09-10 | 2014-06-03 | Ricoh Company, Ltd. | Integration and management apparatus, integration and management system and computer readable information recording medium |
US9019539B2 (en) | 2012-09-03 | 2015-04-28 | Konica Minolta, Inc. | Image data transmission apparatus, image data transmission method, and computer-readable storage medium for computer program configured to send image data to a plurality of destinations using separate methods |
JP2015125740A (en) * | 2013-12-27 | 2015-07-06 | キヤノン株式会社 | Information processing device, information processing method, and computer program |
US9383950B2 (en) | 2013-01-11 | 2016-07-05 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, and process execution method |
JP2020205068A (en) * | 2020-08-20 | 2020-12-24 | 株式会社リコー | Information processing system, information processing apparatus, information processing method, and program |
EP3767464A1 (en) | 2019-07-19 | 2021-01-20 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, information processing method, and program |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164582A (en) * | 2002-09-24 | 2004-06-10 | Ricoh Co Ltd | Information processing apparatus and program generation method |
JP2005196414A (en) * | 2004-01-06 | 2005-07-21 | Fuji Xerox Co Ltd | Information processor and information processing program |
JP2006277115A (en) * | 2005-03-28 | 2006-10-12 | Fujitsu Ten Ltd | Abnormality detection program and abnormality detection method |
JP2006338499A (en) * | 2005-06-03 | 2006-12-14 | Fuji Xerox Co Ltd | Image processor, image processing method, and program |
JP2007201957A (en) * | 2006-01-27 | 2007-08-09 | Kyocera Mita Corp | Image forming apparatus |
-
2008
- 2008-08-29 JP JP2008222129A patent/JP2009134695A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164582A (en) * | 2002-09-24 | 2004-06-10 | Ricoh Co Ltd | Information processing apparatus and program generation method |
JP2005196414A (en) * | 2004-01-06 | 2005-07-21 | Fuji Xerox Co Ltd | Information processor and information processing program |
JP2006277115A (en) * | 2005-03-28 | 2006-10-12 | Fujitsu Ten Ltd | Abnormality detection program and abnormality detection method |
JP2006338499A (en) * | 2005-06-03 | 2006-12-14 | Fuji Xerox Co Ltd | Image processor, image processing method, and program |
JP2007201957A (en) * | 2006-01-27 | 2007-08-09 | Kyocera Mita Corp | Image forming apparatus |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8745640B2 (en) | 2009-09-10 | 2014-06-03 | Ricoh Company, Ltd. | Integration and management apparatus, integration and management system and computer readable information recording medium |
US9489219B2 (en) | 2009-09-10 | 2016-11-08 | Ricoh Company, Ltd. | Integration and management apparatus, integration and management system and computer readable information recording medium |
JP2011086141A (en) * | 2009-10-16 | 2011-04-28 | Ricoh Co Ltd | Image forming apparatus and program operating method |
JP2011197827A (en) * | 2010-03-17 | 2011-10-06 | Ricoh Co Ltd | Information processor, information processing method, and information processing program |
JP2012212348A (en) * | 2011-03-31 | 2012-11-01 | Brother Ind Ltd | Image processing program, information processing terminal device and control method for information processing terminal device |
US9019539B2 (en) | 2012-09-03 | 2015-04-28 | Konica Minolta, Inc. | Image data transmission apparatus, image data transmission method, and computer-readable storage medium for computer program configured to send image data to a plurality of destinations using separate methods |
US9383950B2 (en) | 2013-01-11 | 2016-07-05 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, and process execution method |
JP2015125740A (en) * | 2013-12-27 | 2015-07-06 | キヤノン株式会社 | Information processing device, information processing method, and computer program |
EP3767464A1 (en) | 2019-07-19 | 2021-01-20 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, information processing method, and program |
US11748173B2 (en) | 2019-07-19 | 2023-09-05 | Ricoh Company, Ltd. | Information processing system, information processing method, and storage medium for controlling virtual server that executes program |
JP2020205068A (en) * | 2020-08-20 | 2020-12-24 | 株式会社リコー | Information processing system, information processing apparatus, information processing method, and program |
JP2022160695A (en) * | 2020-08-20 | 2022-10-19 | 株式会社リコー | Information processing system, information processing apparatus, information processing method, and program |
JP7173106B2 (en) | 2020-08-20 | 2022-11-16 | 株式会社リコー | Information processing system, information processing device, information processing method, and program |
JP7444208B2 (en) | 2020-08-20 | 2024-03-06 | 株式会社リコー | Information processing system, information processing device, information processing method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8438567B2 (en) | Information processing device and image processing apparatus | |
JP4861883B2 (en) | Image forming apparatus and application execution method | |
JP2009134695A (en) | Information processor, image processor, application execution method and application execution program | |
JP5724344B2 (en) | Image forming apparatus, customization control method, and customization control program | |
JP4625343B2 (en) | Image forming apparatus, terminal apparatus, information processing method, information processing program, and recording medium | |
JP5975666B2 (en) | Information processing apparatus, information processing method, and program | |
KR101337160B1 (en) | Information processing apparatus, information processing method and storage medium | |
JP5310246B2 (en) | Information processing apparatus, information processing system, and program | |
KR20170033785A (en) | Image processing apparatus, display control method in the image processing apparatus, and storage medium | |
JP2008181237A (en) | Image processor and digital copying machine | |
JP2011124956A (en) | Information processing apparatus, control method of the same, program, and storage medium | |
EP3471388A1 (en) | Image processing apparatus, method for controlling the same, and program | |
JP5488014B2 (en) | Information processing apparatus, deactivation processing control method, program, and storage medium | |
JP2004127251A (en) | Output management method and information processing apparatus | |
JP2011124957A (en) | Information processor, method to control the same, program, and memory medium | |
JP2008305004A (en) | Image forming apparatus, application execution method, and application execution program | |
JP5664692B2 (en) | Electronic device, image forming apparatus, information processing method, information processing program, and recording medium | |
WO2014136429A1 (en) | Information processing apparatus and method for the same | |
JP2022051794A (en) | Image forming apparatus and control method thereof | |
JP2015108939A (en) | Information processing system, information processing device, information processing method and program | |
JP2009177828A (en) | Multifunction peripheral, and apparatus and method for configuring user interface | |
JP2011227739A (en) | Information processing device, control method and program | |
JP2009205262A (en) | Application program installation device, application program installation method, program, and recording medium | |
JP6287880B2 (en) | Image forming apparatus, image forming method, and image forming program | |
JP2012165325A (en) | Image processing apparatus, screen control program and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110602 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120821 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121017 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130326 |