(57)【要約】【課題】異なる層で起動されるプログラム間の依存関係を無くすこと、プログラムの登録を容易化することを両立できる情報処理装置、プログラム登録起動方法、登録起動プログラムを提供することを目的とする。【解決手段】情報処理装置であって、フレームワーク上の第１層に起動される第１仲介手段と、フレームワーク上の第２層に起動される第２仲介手段と、第１層及び第２層に起動された第１及び第２プログラムからのメッセージを受け付ける第１仲介手段と第２仲介手段との間で通信を行う通信手段と、第２層への第２プログラムの登録を受け付け、第２プログラムを第２層に起動する為に必要な設定情報をデータ管理手段に保存する登録受付手段とを有し、第１仲介手段は設定情報に従って第２仲介手段を起動し、第２仲介手段は設定情報に従って第２プログラムを起動し、第２プログラムは設定情報に従って動作することにより上記課題を解決する。【選択図】図２
2010066903.tif 000002
【特許請求の範囲】
【請求項１】
一のプログラム言語をベースとした所定のフレームワークを適用している情報処理装置であって、
前記一のプログラム言語で記述された第１プログラムが起動される前記フレームワーク上の第１層に起動される第１仲介手段と、
他のプログラム言語で記述された第２プログラムが起動される前記フレームワーク上の第２層に起動される第２仲介手段と、
前記第１層に起動された前記第１プログラムからのメッセージを受け付ける第１仲介手段と前記第２層に起動された前記第２プログラムからのメッセージを受け付ける第２仲介手段との間で通信を行う通信手段と、
前記第２層への前記第２プログラムの登録を受け付け、前記第２プログラムを前記第２層に起動する為に必要な設定情報をデータ管理手段に保存する登録受付手段と、を有し、
前記フレームワークの起動後、前記第１仲介手段は前記データ管理手段に保存されている前記設定情報に従って前記第２仲介手段を起動し、前記第２仲介手段は前記設定情報に従って前記第２プログラムを起動し、前記第２プログラムは前記設定情報に従って動作することを特徴とする情報処理装置。
【請求項２】
前記登録受付手段は、前記第２プログラムと前記設定情報とを含む登録データを取得する手段と、
前記登録データを前記第２プログラムと前記設定情報とに分解し、前記設定情報を前記データ管理手段に保存し、前記第２プログラムを前記フレームワーク上の第２層に配置する手段と
を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第１仲介手段は、前記第１層に起動された前記第１プログラムからのメッセージを受信する手段と、
前記第１層に起動された前記第１プログラムにメッセージを送信する手段と、
前記第２層に起動された前記第２プログラムからのメッセージを、前記第２仲介手段を介して受信する手段と、
前記第２層に起動された前記第２プログラムへのメッセージを、前記第２仲介手段を介して送信する手段と、
を有することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記第１仲介手段は、前記第２仲介手段用の設定情報及び前記第２プログラム用の設定情報を前記データ管理手段から取得して前記第２仲介手段用の設定ファイル及び前記第２プログラム用の設定ファイルを生成する手段を更に有し、
前記第２仲介手段は、前記第２仲介手段用の設定ファイルを参照する手段と、
前記第２仲介手段用の設定ファイルに従って前記第２プログラムを起動する手段と、
を有することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記第２仲介手段は、前記第２層に起動された前記第２プログラムからのメッセージを受信する手段と、
前記第２層に起動された前記第２プログラムにメッセージを送信する手段と、
前記第１層に起動された前記第１プログラムからのメッセージを、前記第１仲介手段を介して受信する手段と、
前記第１層に起動された前記第１プログラムへのメッセージを、前記第１仲介手段を介して送信する手段と、
を更に有することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記第２プログラムは、前記第２プログラム用の設定ファイルを参照する手段と、
前記第２プログラム用の設定ファイルに従って動作する手段と
を有することを特徴とする請求項４又は５記載の情報処理装置。
【請求項７】
前記第２プログラムは、起動されたあと、前記第２仲介手段に自分自身を登録し、
前記第２仲介手段は登録された前記第２プログラムに識別子を割り当て、前記識別子を用いて前記第２プログラムを区別することを特徴とする請求項１乃至６何れか一項記載の情報処理装置。
【請求項８】
前記通信手段は、前記第１仲介手段と前記第２仲介手段との間でメッセージの送受信を可能とするＡＰＩ（Application Program Interface）であることを特徴とする請求項１乃至７何れか一項記載の情報処理装置。
【請求項９】
前記一のプログラム言語はＪａｖａ（登録商標）言語であり、前記他のプログラム言語はオープンソースソフトウェア（ＯＳＳ）であり、前記フレームワークはＪａｖａ（登録商標）言語をベースとしたＯＳＧｉフレームワークであることを特徴とする請求項１乃至８何れか一項記載の情報処理装置。
【請求項１０】
前記通信手段は、ＪＮＩ（Java Native Interface）であることを特徴とする請求項１乃至９何れか一項記載の情報処理装置。
【請求項１１】
前記設定情報はマークアップ言語で記載されており、前記マークアップ言語の内容から前記第２仲介手段用の設定情報及び前記第２プログラム用の設定情報が解析されることを特徴とする請求項１乃至１０何れか一項記載の情報処理装置。
【請求項１２】
一のプログラム言語をベースとした所定のフレームワークを適用している情報処理装置によって実行されるプログラム登録起動方法であって、
前記情報処理装置は、
前記一のプログラム言語で記述された第１プログラムが起動される前記フレームワーク上の第１層に起動される第１仲介手段と、
他のプログラム言語で記述された第２プログラムが起動される前記フレームワーク上の第２層に起動される第２仲介手段と、
前記第１層に起動された前記第１プログラムからのメッセージを受け付ける第１仲介手段と前記第２層に起動された前記第２プログラムからのメッセージを受け付ける第２仲介手段との間で通信を行う通信手段と、
前記第２層への前記第２プログラムの登録を受け付ける登録受付手段と、を有し、
前記登録受付手段が、前記第２層への前記第２プログラムの登録を受け付けるステップと、
前記登録受付手段が、前記第２プログラムを前記第２層に起動する為に必要な設定情報をデータ管理手段に保存するステップと、
前記フレームワークの起動後、前記第１仲介手段が前記データ管理手段に保存されている前記設定情報に従って前記第２仲介手段を起動するステップと、
前記第２仲介手段が前記設定情報に従って前記第２プログラムを起動するステップと、
前記第２プログラムが前記設定情報に従って動作するステップと
を有することを特徴とするプログラム登録起動方法。
【請求項１３】
前記登録受付手段は、前記第２プログラムと前記設定情報とを含む登録データを取得するステップと、
前記登録データを前記第２プログラムと前記設定情報とに分解し、前記設定情報を前記データ管理手段に保存し、前記第２プログラムを前記フレームワーク上の第２層に配置するステップと
を有することを特徴とする請求項１２記載のプログラム登録起動方法。
【請求項１４】
前記通信手段は、前記第１仲介手段と前記第２仲介手段との間でメッセージの送受信を可能とするＡＰＩ（Application Program Interface）であることを特徴とする請求項１２又は１３記載のプログラム登録起動方法。
【請求項１５】
前記一のプログラム言語はＪａｖａ（登録商標）言語であり、前記他のプログラム言語はオープンソースソフトウェア（ＯＳＳ）であり、前記フレームワークはＪａｖａ（登録商標）言語をベースとしたＯＳＧｉフレームワークであることを特徴とする請求項１２乃至１４何れか一項記載のプログラム登録起動方法。
【請求項１６】
前記通信手段は、ＪＮＩ（Java Native Interface）であることを特徴とする請求項１２乃至１５何れか一項記載のプログラム登録起動方法。
【請求項１７】
請求項１２乃至１６何れか一項記載のプログラム登録起動方法をコンピュータに実行させるための登録起動プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム登録起動方法、登録起動プログラムに係り、特に一のプログラム言語をベースとした所定のフレームワークを適用した情報処理装置、プログラム登録起動方法、プログラム起動プログラムに関する。
【背景技術】
【０００２】
近年、情報処理装置の一例としての画像形成装置には必要なモジュールをプラグインできるものが存在するようになった。プラグインとは、小さなプログラム（プラグイン）を用いて各種アプリケーション等に機能を追加するものである。なお、画像形成装置は例えばコピー，プリンタ，スキャナ，ファクシミリ，複合機等の総称である。
【０００３】
図１は必要なモジュールをプラグインできる画像形成装置のソフトウェア構成を示した簡略図である。画像形成装置１はＯＳＧｉ（Open Service Gateway initiative）フレームワーク１１を適用している。
【０００４】
ＯＳＧｉフレームワーク１１は、ＯＳＧｉアライアンスによる標準化技術であり、Ｊａｖａ（登録商標）言語をベースとしたオープンなソフトウェア部品化技術である。ＯＳＧｉフレームワーク１１を適用している画像形成装置では、Ｊａｖａ（登録商標）言語のソフトウェアがバンドル（Bundle）というソフトウェア部品の単位（バンドル単位）で実装される。
【０００５】
図１の画像形成装置１は、機能をバンドルにより構成することができると共に、機能のアップデートやカスタマイズ、メンテナンスをバンドルのインストールにより実現することができる。
【０００６】
図１の画像形成装置１は、Ｊａｖａ（登録商標）言語のソフトウェアを実行する為のＣＶＭ（Compact Virtual Machine）１０，バンドルの管理を行うＯＳＧｉフレームワーク１１，バンドル１２，Ｊａｖａ（登録商標）言語のソフトウェアであるコンポーネント１３，Ｎａｔｉｖｅ言語のソフトウェアであるデーモン（Daemon）１４を有する。
【０００７】
図１の画像形成装置１のＯＳＧｉフレームワーク１１上においてコンポーネント１３はバンドル１２を用いてＪａｖａ（登録商標）層に対するコンポーネント１３のプラグインを行う。なお、Ｎａｔｉｖｅ言語のソフトウェアであるデーモン１４をＮａｔｉｖｅ層にインストールする場合、従来の画像形成装置１は、例えばバンドル１２にデーモン１４を含める形で行っていた。バンドル１２にデーモン１４を含める形でＮａｔｉｖｅ言語のソフトウェアであるデーモン１４をＮａｔｉｖｅ層にインストールする形は、デーモン１４の登録が容易であった。なお、ＯＳＧｉフレームワーク１１を適用した画像形成装置１は従来から知られている（例えば特許文献１参照）。
【特許文献１】特開２００７−１１０６８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、図１の画像形成装置１では、Ｎａｔｉｖｅ層にインストールされたデーモン１４がＪａｖａ（登録商標）層のコンポーネント１３とメッセージ送受信を行う場面で問題が生じる。
【０００９】
バンドル１２にデーモン１４を含める形でＮａｔｉｖｅ言語のソフトウェアであるデーモン１４をＮａｔｉｖｅ層にインストールした場合、Ｊａｖａ（登録商標）層とＮａｔｉｖｅ層との間のメソッド呼び出しは、主にＪＮＩ（Java Native Interface）で行われる。ＪＮＩは、Ｊａｖａ（登録商標）言語で開発されたコンポーネント１３と、Ｎａｔｉｖｅ言語で開発されたデーモン１４との間でメソッド呼び出しを行う為のＡＰＩ（Application Program Interface）である。
【００１０】
ＪＮＩでメソッド呼び出しを行う場合は、相手のクラス名やメソッド名の指定が必要となるため、デーモン１４は、その指定をハードコーディングする必要があり、呼び出し相手のコンポーネント１３と依存関係ができてしまう。このため、図１の画像形成装置１ではＮａｔｉｖｅ言語で開発されたデーモン１４にありがちなバージョンアップや脆弱性対応が難しくなるという問題があった。
【００１１】
つまり、従来の画像形成装置１は、Ｊａｖａ（登録商標）言語で開発されたコンポーネント１３と、Ｎａｔｉｖｅ言語で開発されたデーモン１４との依存関係を無くすことと、Ｎａｔｉｖｅ層にデーモン１４とを容易にインストールすることとの両立が難しかった。
【００１２】
本発明は、上記の点に鑑みなされたもので、異なる層で起動されるプログラム間の依存関係を無くすこと、プログラムの登録を容易化することを両立できる情報処理装置、プログラム登録起動方法、登録起動プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決する為、本発明は、一のプログラム言語をベースとした所定のフレームワークを適用している情報処理装置であって、前記一のプログラム言語で記述された第１プログラムが起動される前記フレームワーク上の第１層に起動される第１仲介手段と、他のプログラム言語で記述された第２プログラムが起動される前記フレームワーク上の第２層に起動される第２仲介手段と、前記第１層に起動された前記第１プログラムからのメッセージを受け付ける第１仲介手段と前記第２層に起動された前記第２プログラムからのメッセージを受け付ける第２仲介手段との間で通信を行う通信手段と、前記第２層への前記第２プログラムの登録を受け付け、前記第２プログラムを前記第２層に起動する為に必要な設定情報をデータ管理手段に保存する登録受付手段と、を有し、前記フレームワークの起動後、前記第１仲介手段は前記データ管理手段に保存されている前記設定情報に従って前記第２仲介手段を起動し、前記第２仲介手段は前記設定情報に従って前記第２プログラムを起動し、前記第２プログラムは前記設定情報に従って動作することを特徴とする。
【００１４】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１５】
本発明によれば、異なる層で起動されるプログラム間の依存関係を無くすこと、プログラムの登録を容易化することを両立できる情報処理装置、プログラム登録起動方法、登録起動プログラムを提供可能である。
【発明を実施するための最良の形態】
【００１６】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【００１７】
図２は本実施例の画像形成装置のソフトウェア構成を示した簡略図である。図２の画像形成装置２は、ＣＶＭ１０と、ＯＳＧｉフレームワーク１１と、デーモン１４と、ｈｔｔｐサービスコンポーネント（ｈｔｔｐ  ｓｅｒｖｉｃｅＣＭＰ）２１と、データ管理コンポーネント２２と、各種アプリケーションなどの機能を持つＯＳＧｉフレームワーク１１上にある印刷管理コンポーネント，ＦＡＸコンポーネント等のコンポーネント２３と、仲介コンポーネント２４と、仲介デーモン２５とを有する。
【００１８】
なお、図２の画像形成装置２は図１の画像形成装置１と同一部分について同一符号を付して説明を適宜省略する。ｈｔｔｐサービスコンポーネント２１は、デーモン１４を追加して登録する際の受付口の例である。データ管理コンポーネント２２は各種設定情報等のデータを管理するものである。データ管理コンポーネント２２は各種設定情報等のデータの保管を担うものである。コンポーネント２３は、デーモン１４が最終的にメッセージを送受信したい相手である。
【００１９】
また、仲介コンポーネント２４は、Ｊａｖａ（登録商標）層とＮａｔｉｖｅ層との間のメッセージの橋渡しをする上でＪａｖａ（登録商標）層側のメッセージ受付を行うものである。仲介デーモン２５はＪａｖａ（登録商標）層とＮａｔｉｖｅ層との間のメッセージの橋渡しをする上で、Ｎａｔｉｖｅ層側のメッセージ受付を行うものである。
【００２０】
図２に示すように、画像形成装置２はＪａｖａ（登録商標）層に仲介コンポーネント２４が起動されると共に、Ｎａｔｉｖｅ層とに仲介デーモン２５が起動される。この理由はＪａｖａ（登録商標）層とＮａｔｉｖｅ層との間で通信する際に、相手とＪＮＩの関数を固定する必要があるからである。ＪＮＩの関数を仲介コンポーネント２４と仲介デーモン２５とで固定することにより、Ｊａｖａ（登録商標）層とＮａｔｉｖｅ層との間で通信するデーモン１４等の利用者は、ＪＮＩを意識せずに通信が可能となる。
【００２１】
図１に示した画像形成装置１では、コンポーネント１３のプラグインの概念によって様々な機能の追加が可能である。しかし、多くの場合、Ｎａｔｉｖｅ層で起動されるＮａｔｉｖｅ言語のソフトウェアであるデーモン１４は、Ｊａｖａ（登録商標）によって提供されているＩ／Ｆを直接呼び出すことができないため、プラグインの概念で様々な機能の追加に対応できない。
【００２２】
図２に示した本実施例の画像形成装置２は、Ｊａｖａ（登録商標）層及びＮａｔｉｖｅ層に、それぞれＪａｖａ（登録商標）層及びＮａｔｉｖｅ層の依存関係を代理で吸収する仲介コンポーネント２４及び仲介デーモン２５が起動されることで、Ｊａｖａ（登録商標）層及びＮａｔｉｖｅ層の依存関係を無くし、Ｎａｔｉｖｅ言語のソフトウェアであるデーモン１４を、ＯＳＧｉフレームワーク１１に対応する形で動的に追加する仕組みを提供する。
【００２３】
図３は本実施例の画像形成装置のソフトウェア構成におけるクラス図である。ｈｔｔｐサービスコンポーネント２１は登録データ３１を取得する。登録データ３１は、デーモン１４のプログラムとＸＭＬで記述された設定情報のセットである。ｈｔｔｐサービスコンポーネント２１は、登録データ３１をデーモン１４のプログラムとＸＭＬで記述された設定情報とに分解し、デーモン１４のプログラムをインストールする。ｈｔｔｐサービスコンポーネント２１は、ＸＭＬで記述された設定情報の内容を解析し、デーモン１４のプロファイルと仲介デーモン２５のプロファイルとを作成してデータ管理コンポーネント２２に登録する。
【００２４】
また、仲介コンポーネント２４は、データ管理コンポーネント２２からデーモン１４のプロファイルと仲介デーモン２５のプロファイルとを取得して、仲介デーモン２５用の設定ファイル３２と、デーモン１４用の設定ファイル３３とを生成する。仲介デーモン２５は仲介デーモン２５用の設定ファイル３２を参照し、デーモン１４を起動する。デーモン１４は、デーモン１４用の設定ファイル３３を参照し、デーモン１４用の設定ファイル３３に従って動作する。
【００２５】
起動されたあと、仲介コンポーネント２４はＪａｖａ（登録商標）層側からメッセージを受信し、Ｊａｖａ（登録商標）層側へメッセージを送信する。また、仲介コンポーネント２４はＮａｔｉｖｅ層側からメッセージを仲介デーモン２５経由で受信し、Ｎａｔｉｖｅ層側へメッセージを仲介デーモン２５経由で送信する。
【００２６】
仲介デーモン２５はＮａｔｉｖｅ層側のデーモン１４からメッセージを受信し、Ｊａｖａ（登録商標）層側へメッセージを仲介コンポーネント２４経由で送信する。また、仲介デーモン２５はＪａｖａ（登録商標）層側からメッセージを仲介コンポーネント２４経由で受信し、Ｎａｔｉｖｅ層側のデーモン１４へメッセージを送信する。
【００２７】
（デーモン１４の登録時の処理）
図４はデーモンの登録時の処理を示した簡略図である。ユーザはデーモン１４を登録する場合、登録データ３１のインストールを行う。登録データ３１はデーモン１４のプログラム４１とＸＭＬで記述された設定情報４２のセットである。なお、登録データ３１の内容は一例である。例えば登録データ３１は、デーモン１４のプログラム４１とＸＭＬで記述された設定情報４２以外にも予め定義されている情報が含まれていたり、暗号化や独自フォーマット化されていたりする場合も考えられる。
【００２８】
図５はＸＭＬで記述された設定情報の一例を示す構成図である。図５の設定情報は仲介デーモン２５のプロファイルを作成する為の情報部分５１とデーモン１４のプロファイルを作成する為の情報部分５２とを有する構成である。情報部分５１には、仲介デーモン２５がデーモン１４を起動する為の情報（例えばファイルパス，起動プログラム名，起動オプション等）が記述されている。情報部分５２には、デーモン１４が動作する為の情報（例えばデーモン１４用の設定ファイル３３のパス，ファイル名，設定内容等）が記述されている。
【００２９】
登録データ３１がインストールされると、デーモン１４用の仲介コンポーネント２４が生成される。ｈｔｔｐサービスコンポーネント２１は、登録データ３１をデーモン１４のプログラムとＸＭＬで記述された設定情報とに分解する。ｈｔｔｐサービスコンポーネント２１は、デーモン１４のプログラムを所定の場所に配置する。また、ｈｔｔｐサービスコンポーネント２１は、ＸＭＬで記述された設定情報の内容を解析し、デーモン１４のプロファイルと仲介デーモン２５のプロファイルとを作成してデータ管理コンポーネント２２に登録する。ｈｔｔｐサービスコンポーネント２１は仲介デーモン２５が次回起動以降に生成されるようにＯＳＧｉフレームワーク１１へ登録を行う。
【００３０】
図６はデーモンの登録時の処理を示したシーケンス図である。デーモン１４を登録する場合、ユーザはステップＳ１に進み、登録データ３１のインストールを行う。登録データ３１のインストールが行われると、ｈｔｔｐサービスコンポーネント２１はステップＳ２に進み、取得した登録データ３１をパースし、デーモン１４のプログラムとＸＭＬで記述された設定情報とに分解する。
【００３１】
ステップＳ３に進み、ｈｔｔｐサービスコンポーネント２１は、ＸＭＬで記述された設定情報の内容を解析し、デーモン１４のプロファイルを作成してデータ管理コンポーネント２２に登録する。また、ステップＳ４に進み、ｈｔｔｐサービスコンポーネント２１はＸＭＬで記述された設定情報の内容を解析し、仲介デーモン２５のプロファイルを作成してデータ管理コンポーネント２２に登録する。
【００３２】
ステップＳ５に進み、ｈｔｔｐサービスコンポーネント２１はデーモン１４のプログラムを予め決定している所定の場所に配置する。ステップＳ６に進み、ｈｔｔｐサービスコンポーネント２１は仲介コンポーネント２４を生成する。ステップＳ７に進み、ｈｔｔｐサービスコンポーネント２１は仲介デーモン２５が次回起動以降に生成されるようにＯＳＧｉフレームワーク１１へ登録を行う。
（仲介デーモン２４の起動時の処理）
図７は仲介デーモンの起動時の処理を示した簡略図である。ＯＳＧｉフレームワーク１１の起動時、仲介コンポーネント２４はデータ管理コンポーネント２２からデーモン１４のプロファイルと仲介デーモン２５のプロファイルとを取得する。仲介コンポーネント２４は取得した仲介デーモン２５のプロファイルから仲介デーモン２５用の設定ファイル３２を生成する。また、仲介コンポーネント２４は取得したデーモン１４のプロファイルからデーモン１４用の設定ファイル３３を生成する。
【００３３】
図５の設定情報の場合、仲介コンポーネント２４は例えば図８に示すようなデーモン１４用の設定ファイル３３を生成する。図８はデーモン用の設定ファイルの一例を示す構成図である。仲介デーモン２５用の設定ファイル３２及びデーモン１４用の設定ファイル３３を生成したあと、仲介コンポーネント２４は仲介デーモン２５を起動する。
【００３４】
図９は、仲介デーモンの起動時の処理を示したシーケンス図である。ＯＳＧｉフレームワーク１１の起動時、仲介コンポーネント２４はステップＳ１１に進み、データ管理コンポーネント２２から仲介デーモン２５のプロファイルを取得する。また、ステップＳ１２に進み、仲介コンポーネント２４は仲介デーモン２５のプロファイルから仲介デーモン２５用の設定ファイル３２を生成する。
【００３５】
ステップＳ１３に進み、仲介コンポーネント２４はデータ管理コンポーネント２２からデーモン１４のプロファイルを取得する。ステップＳ１４に進み、仲介コンポーネント２４はデーモン１４のプロファイルからデーモン１４用の設定ファイル３３を生成する。ステップＳ１５に進み、仲介コンポーネント２４は仲介デーモン２５を起動する。
（仲介デーモン２４の起動後の初期処理）
図１０は仲介デーモンの起動後の初期処理を示した簡略図である。仲介デーモン２５は起動された直後に、自分が動作する設定を仲介デーモン２５用の設定ファイル３２から取得する。仲介デーモン２５用の設定ファイル３２には仲介デーモン２５が起動するデーモン１４に関する記載が含まれる。仲介デーモン２５は仲介デーモン２５用の設定ファイル３２の記載に従ってデーモン１４を起動する。
【００３６】
デーモン１４は、デーモン１４用の設定ファイル３３を参照し、デーモン１４用の設定ファイル３３に従って動作する。仲介デーモン２５は、この後、メッセージ受付待ち状態となる。メッセージの詳細に関しては、後述する。
【００３７】
図１１は、仲介デーモンの起動後の初期処理を示したシーケンス図である。仲介デーモン２５は起動された直後、ステップＳ２１に進み、自分が動作する設定を仲介デーモン２５用の設定ファイル３２から取得する。仲介デーモン２５用の設定ファイル３２には仲介デーモン２５が起動するデーモン１４に関する記載が含まれる。
【００３８】
ステップＳ２２に進み、仲介デーモン２５は仲介デーモン２５用の設定ファイル３２の記載に従ってデーモン１４を起動する。ステップＳ２３に進み、デーモン１４はデーモン１４用の設定ファイル３３を参照し、デーモン１４用の設定ファイル３３に従って動作する。仲介デーモン２５は、この後、メッセージ受付待ち状態となる。
（仲介デーモン２４の起動からデーモン１４の起動までの全体処理）
図１２は仲介デーモンの起動からデーモンの起動までの全体処理を示したシーケンス図である。ステップＳ１１〜Ｓ２３は図９及び図１１のシーケンス図をまとめて表したものである。ここでは説明を省略する。
【００３９】
ステップＳ２３に続いてステップＳ２４に進み、デーモン１４は自分自身を仲介デーモン２５に登録する。なお、デーモン１４は終了時、ステップＳ２５に進み、仲介デーモン２５に登録の解除を依頼する。
【００４０】
図１３はデーモンが自分自身を仲介デーモンに登録する処理を示す簡略図である。図１３のデーモン１４はステップＳ２２において起動され、ステップＳ２３においてデーモン１４用の設定ファイル３３を参照した後、仲介デーモン２５に自分自身を登録する。
【００４１】
デーモン１４と仲介デーモン２５とのメッセージ手段に関しては特に限定しない。例えばデーモン１４と仲介デーモン２５とのメッセージ手段とは、Ｕｎｉｘ（登録商標）  Ｄｏｍａｉｎ  Ｓｏｃｋｅｔによる通信などのプロセス間通信処理が考えられる。この場合の通信先ソケットファイル名などはｃｏｎｆの仕組みを利用する。
【００４２】
デーモン１４の登録時、仲介デーモン２５はデーモン識別ＩＤを割り当てる。以後、そのデーモン識別ＩＤを利用して、デーモン１４はメッセージを交換する。仲介デーモン２５はデーモン識別ＩＤによりデーモン１４を区別する。
【００４３】
図１４は、デーモンが仲介デーモンから自分自身の登録を解除する処理を示す簡略図である。図１４のデーモン１４は終了時、ステップＳ２５に進み、仲介デーモン２５に自分自身の登録の削除を依頼する。デーモン１４の登録の削除時、仲介デーモン２５はデーモン識別ＩＤの割り当てを解除し、その旨をデーモン１４に通知する。
（デーモン１４の起動後の通信処理）
図１５は、デーモンの起動後の通信処理を示した簡略図である。図１５の仲介デーモン２５は、デーモン１４に対してＩ／Ｆを提供し、メッセージを仲介する。仲介コンポーネント２４は、仲介デーモン２５からメッセージを受け付ける入り口となる。また、仲介コンポーネント２４はメッセージに従い、他のＪａｖａ（登録商標）層とメッセージを送受信する。なお、仲介デーモン２５と仲介コンポーネント２４との間では、ＪＮＩによるＪａｖａ（登録商標）−Ｎａｔｉｖｅ変換が行われる。
【００４４】
図１６はデーモンの起動後の通信処理を示したシーケンス図である。デーモン１４からＪａｖａ層へのメッセージはステップＳ３１〜Ｓ３３のように送信される。ネットワークからのデータ受信等をトリガとしてデーモン１４はステップＳ３１に進み、ネットワークから受信したメッセージ（データ）を仲介デーモン２５へ送信する。
【００４５】
ステップＳ３２に進み、仲介デーモン２５はＪＮＩ呼び出しで仲介コンポーネント２４にメッセージを送信する。ステップＳ３３に進み、仲介コンポーネント２４は必要に応じてＯＳＧｉフレームワーク１１上の所定のコンポーネント２３にメッセージを送信する。
【００４６】
Ｊａｖａ層からデーモン１４／ネットワークへのメッセージはステップＳ３４〜Ｓ３６のように送信される。ステップＳ３４に進み、仲介コンポーネント２４はＪａｖａ層にあるコンポーネント２３からデーモン１４宛のメッセージを受信する。
【００４７】
ステップＳ３５に進み、仲介コンポーネント２４はＪＮＩ呼び出しで仲介デーモン２５へメッセージを送信する。ステップＳ３６に進み、仲介デーモン２５はデーモン１４に対してメッセージを送信する。なお、図１６のシーケンス図に示したやりとりはデーモン１４の登録依頼も含めて同様な動きとなる。
（サービス層を有する画像形成装置への応用）
本願発明は例えば図１７に示すような構成の画像形成装置にも応用可能である。図１７はサービス層を有する画像形成装置のソフトウェア構成を示した簡略図である。印刷アプリケーション１００は図２のデーモン１４に対応する。サービス層１１０は図２のＪａｖａ層に対応する。ＯＳＧｉフレームワーク１１はＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ１２０に対応する。
【００４８】
また、ｈｔｔｐサービス１１１は、図２のｈｔｔｐサービスコンポーネント２１に対応する。データ管理サービス１１２は図２のデータ管理コンポーネント２２に対応する。各種アプリケーションなどの機能を持つＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ１２０上にあるプリントサービス，ＦＡＸサービス等のモジュール１１３は、図２の印刷管理コンポーネント，ＦＡＸコンポーネント等のコンポーネント２３に対応する。
【００４９】
したがって、図１７の画像形成装置は図２の仲介コンポーネント２４及び仲介デーモン２５に対応する構成を設けることで、本願発明と同様な効果を奏することができる。
【００５０】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００５１】
【図１】必要なモジュールをプラグインできる画像形成装置のソフトウェア構成を示した簡略図である。
【図２】本実施例の画像形成装置のソフトウェア構成を示した簡略図である。
【図３】本実施例の画像形成装置のソフトウェア構成におけるクラス図である。
【図４】デーモンの登録時の処理を示した簡略図である。
【図５】ＸＭＬで記述された設定情報の一例を示す構成図である。
【図６】デーモンの登録時の処理を示したシーケンス図である。
【図７】仲介デーモンの起動時の処理を示した簡略図である。
【図８】デーモン用の設定ファイルの一例を示す構成図である。
【図９】仲介デーモンの起動時の処理を示したシーケンス図である。
【図１０】仲介デーモンの起動後の初期処理を示した簡略図である。
【図１１】仲介デーモンの起動後の初期処理を示したシーケンス図である。
【図１２】仲介デーモンの起動からデーモンの起動までの全体処理を示したシーケンス図である。
【図１３】デーモンが自分自身を仲介デーモンに登録する処理を示す簡略図である。
【図１４】デーモンが仲介デーモンから自分自身の登録を解除する処理を示す簡略図である。
【図１５】デーモンの起動後の通信処理を示した簡略図である。
【図１６】デーモンの起動後の通信処理を示したシーケンス図である。
【図１７】サービス層を有する画像形成装置のソフトウェア構成を示した簡略図である。
【符号の説明】
【００５２】
１，２    画像形成装置
１０    ＣＶＭ（Compact Virtual Machine）
１１    ＯＳＧｉ（Open Service Gateway initiative）フレームワーク
１２    バンドル
１３，２３    コンポーネント
１４    デーモン（Daemon）
２１    ｈｔｔｐサービスコンポーネント（ｈｔｔｐ  ｓｅｒｖｉｃｅＣＭＰ）
２２    データ管理コンポーネント
２４    仲介コンポーネント
２５    仲介デーモン
３１    登録データ
３２    仲介デーモン２５用の設定ファイル
３３    デーモン１４用の設定ファイル
４１    デーモン１４のプログラム
４２    ＸＭＬで記述された設定情報
【図１】
2010066903.tif 000003
【図２】
2010066903.tif 000004
【図３】
2010066903.tif 000005
【図４】
2010066903.tif 000006
【図５】
2010066903.tif 000007
【図６】
2010066903.tif 000008
【図７】
2010066903.tif 000009
【図８】
2010066903.tif 000010
【図９】
2010066903.tif 000011
【図１０】
2010066903.tif 000012
【図１１】
2010066903.tif 000013
【図１２】
2010066903.tif 000014
【図１３】
2010066903.tif 000015
【図１４】
2010066903.tif 000016
【図１５】
2010066903.tif 000017
【図１６】
2010066903.tif 000018
【図１７】
2010066903.tif 000019