(57)【要約】【課題】多数のプロセスが実行される画像形成装置で動作するアプリケーションを効率的に開発するとともに、正確かつ効率的に検証すること。【解決手段】画像形成装置の起動時に、新規アプリケーションの実行形式プログラムとコントロールサービスの実行形式プログラムが記録された起動用記録媒体から、前記コントロールサービスの実行形式プログラムと前記新規アプリケーションの実行形式プログラムとを読み出して前記画像形成装置上で起動する。【選択図】図１１
2007073066.tif 000002
【特許請求の範囲】
【請求項１】
画像形成処理で使用されるハードウェア資源を有し、画像形成に関する処理を行うアプリケーションと、該アプリケーションと前記ハードウェア資源との間に介在するコントロールサービスとを搭載可能とした画像形成装置に搭載され、前記コントロールサービスとプロセス間通信を行う新規アプリケーションを起動する画像形成装置用アプリケーション起動方法であって、
前記画像形成装置の起動時に、前記新規アプリケーションの実行形式プログラムと前記コントロールサービスの実行形式プログラムが記録された起動用記録媒体から、前記コントロールサービスの実行形式プログラムと前記新規アプリケーションの実行形式プログラムとを読み出して前記画像形成装置上で起動するプログラム起動ステップを有することを特徴とする画像形成装置用アプリケーション起動方法。
【請求項２】
画像形成処理で使用されるハードウェア資源を有し、画像形成に関する処理を行うアプリケーションと、該アプリケーションと前記ハードウェア資源との間に介在するコントロールサービスとを搭載可能とした画像形成装置に搭載され、前記コントロールサービスとプロセス間通信を行う新規アプリケーションを起動する画像形成装置用アプリケーション起動方法であって、
前記画像形成装置の起動時に、前記新規アプリケーションの実行形式プログラムが記録された起動用記録媒体から、該新規アプリケーションの実行形式プログラムを読み出して前記画像形成装置上で起動し、前記コントロールサービスの実行形式プログラムが記録された前記画像形成装置内の記憶装置から、前記コントロールサービスの実行形式プログラムを読み出して前記画像形成装置上で起動するプログラム起動ステップを有することを特徴とする画像形成装置用アプリケーション起動方法。
【請求項３】
前記起動用記録媒体には、さらに前記アプリケーションの実行形式プログラムが記録されており、
前記プログラム起動ステップでは、前記起動用記録媒体から、前記コントロールサービスの実行形式プログラムと前記新規アプリケーションの実行形式プログラムと前記アプリケーションの実行形式プログラムとを読み出して前記画像形成装置上で起動することを特徴とする請求項１に記載の画像形成装置用アプリケーション起動方法。
【請求項４】
画像形成処理で使用されるハードウェア資源を有し、画像形成に関する処理を行うアプリケーションと、該アプリケーションと前記ハードウェア資源との間に介在するコントロールサービスとを搭載可能とした画像形成装置に搭載され、前記コントロールサービスとプロセス間通信を行う新規アプリケーションを起動する画像形成装置用アプリケーション起動方法であって、
前記画像形成装置の起動時に、前記新規アプリケーションの実行形式プログラムが格納されたネットワーク上のファイルシステムを、前記画像形成装置のファイルシステムにネットワーク経由でマウントする接続ステップと、
前記接続ステップによってマウントされたネットワーク上のファイルシステムから前記新規アプリケーションを起動するアプリ起動ステップと、
を含んだことを特徴とする画像形成装置用アプリケーション起動方法。
【請求項５】
前記接続ステップによってマウントされたネットワーク上のファイルシステムから前記コントロールサービスを起動するサービス層起動ステップをさらに有する請求項４に記載の画像形成装置用アプリケーション起動方法。
【請求項６】
前記画像形成装置内の記憶装置から前記コントロールサービスを起動するサービス層起動ステップをさらに有する請求項４に記載の画像形成装置用アプリケーション起動方法。
【請求項７】
前記ネットワーク上のファイルシステムには、さらに前記アプリケーションの実行形式プログラムが記録されており、
前記アプリ起動ステップは、前記接続ステップによってマウントされたネットワーク上のファイルシステムから前記アプリケーションおよび前記新規アプリケーションを起動することを特徴とする請求項４に記載の画像形成装置用アプリケーション起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コピー、プリンタ、スキャナおよびファクシミリなどの画像形成処理にかかるユーザサービスを提供する画像形成装置に搭載されるアプリケーションを開発するための技術に関する。
【背景技術】
【０００２】
近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、「複合機」という。）が一般的に知られている。この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する３種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【０００３】
このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置（複合機）を発明した。
【０００４】
この複合機によれば、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
【特許文献１】特開２００２−３４２１１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このような新規な複合機では、アプリケーションとコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダーが新規なアプリケーションを開発して複合機に搭載することが可能となっており、新規アプリケーションを開発して複合機に搭載することによって、多種多様な機能を提供することが可能となる。
【０００６】
従って、新規な複合機において、新規アプリケーションを効率的に開発し、かつ開発した新規アプリケーションの動作を正確かつ効果的に検証するデバッグ作業を行うことが必要であるという従来の構成の複合機には問題にならなかった新規な課題が生じてくる。
【０００７】
この発明は上記に鑑みてなされたもので、多数のプロセスが実行される画像形成装置で動作するアプリケーションを効率的に開発することができ、また生成されたアプリケーションを正確かつ効率的に検証することができる技術を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための請求項１にかかる発明は、画像形成処理で使用されるハードウェア資源を有し、画像形成に関する処理を行うアプリケーションと、該アプリケーションと前記ハードウェア資源との間に介在するコントロールサービスとを搭載可能とした画像形成装置に搭載され、前記コントロールサービスとプロセス間通信を行う新規アプリケーションを起動する画像形成装置用アプリケーション起動方法であって、前記画像形成装置の起動時に、前記新規アプリケーションの実行形式プログラムと前記コントロールサービスの実行形式プログラムが記録された起動用記録媒体から、前記コントロールサービスの実行形式プログラムと前記新規アプリケーションの実行形式プログラムとを読み出して前記画像形成装置上で起動するプログラム起動ステップを有することを特徴とする。
【０００９】
この請求項１の発明によれば、画像形成装置の起動時に、プログラム起動ステップによって、新規アプリケーションの実行形式プログラムとコントロールサービスの実行形式プログラムが記録された起動用記録媒体から、コントロールサービスの実行形式プログラムと新規アプリケーションの実行形式プログラムとを読み出して画像形成装置上で起動することにより、デバッグ作業を行えるので、新規アプリケーションのデバッグ作業を効率的に行うことができる。また、新規アプリケーションを迅速にユーザに提供することが可能となる。
【００１０】
請求項２に記載の発明は、画像形成処理で使用されるハードウェア資源を有し、画像形成に関する処理を行うアプリケーションと、該アプリケーションと前記ハードウェア資源との間に介在するコントロールサービスとを搭載可能とした画像形成装置に搭載され、前記コントロールサービスとプロセス間通信を行う新規アプリケーションを起動する画像形成装置用アプリケーション起動方法であって、前記画像形成装置の起動時に、前記新規アプリケーションの実行形式プログラムが記録された起動用記録媒体から、該新規アプリケーションの実行形式プログラムを読み出して前記画像形成装置上で起動し、前記コントロールサービスの実行形式プログラムが記録された前記画像形成装置内の記憶装置から、前記コントロールサービスの実行形式プログラムを読み出して前記画像形成装置上で起動するプログラム起動ステップを有することを特徴とする。
【００１１】
本発明によれば、新規アプリケーションの実行形式プログラムとを読み出して画像形成装置上で起動することにより、デバッグ作業を行えるので、新規アプリケーションのデバッグ作業を効率的に行うことができる。また、新規アプリケーションを迅速にユーザに提供することが可能となる。
【００１２】
また、請求項３にかかる発明は、請求項１に記載の画像形成装置用アプリケーション起動方法において、前記起動用記録媒体には、さらに前記アプリケーションの実行形式プログラムが記録されており、前記プログラム起動ステップは、前記画像形成装置の起動時に、前記起動用記録媒体から、前記コントロールサービスの実行形式プログラムと前記新規アプリケーションの実行形式プログラムと前記アプリケーションの実行形式プログラムとを読み出して前記画像形成装置上で起動することを特徴とする。
【００１３】
この請求項３の発明によれば、起動用記録媒体から、コントロールサービスの実行形式プログラムと新規アプリケーションの実行形式プログラムと既存のアプリケーションの実行形式プログラムとを読み出して画像形成装置上で起動することで、新規アプリケーションがコントロールサービスとのプロセス間通信の他、既存のアプリケーションを利用する場合でも起動用記録媒体から既存のアプリケーション、新規アプリケーションおよびコントロールサービスの起動を行えるので、既存のアプリケーションの起動を画像形成装置のフラッシュＲＯＭからの起動をする必要がなく、新規アプリケーションのデバッグ作業を効率的に行うことができる。
【００１４】
また、請求項４にかかる発明は、画像形成処理で使用されるハードウェア資源を有し、画像形成に関する処理を行うアプリケーションと、該アプリケーションと前記ハードウェア資源との間に介在するコントロールサービスとを搭載可能とした画像形成装置に搭載され、前記コントロールサービスとプロセス間通信を行う新規アプリケーションを起動する画像形成装置用アプリケーション起動方法であって、前記画像形成装置の起動時に、前記新規アプリケーションの実行形式プログラムが格納されたネットワーク上のファイルシステムを、前記画像形成装置のファイルシステムにネットワーク経由でマウントする接続ステップと、前記接続ステップによってマウントされたネットワーク上のファイルシステムから前記新規アプリケーションを起動するアプリ起動ステップと、を含んだことを特徴とする。
【００１５】
この請求項４の発明によれば、画像形成装置の起動時に、接続ステップによって、新規アプリケーションの実行形式プログラムが格納されたネットワーク上のファイルシステムを画像形成装置のファイルシステムにネットワーク経由でマウントし、アプリ起動ステップによって、マウントされたネットワーク上のファイルシステムから新規アプリケーションを起動することで、ネットワークファイルシステムを画像形成装置のファイルシステムとみなして新規アプリケーションを起動することができるので、開発した新規アプリケーションを起動用記録媒体に記録する必要がなく、新規アプリケーションの生成後、新規アプリケーションのデバッグ作業をより一層効率的に行うことができる。また、遠隔のサーバから画像形成装置の新規アプリケーションのサービスを提供することが可能となる。
【００１６】
請求項５に記載の発明は、請求項４の記載において、前記接続ステップによってマウントされたネットワーク上のファイルシステムから前記コントロールサービスを起動するサービス層起動ステップをさらに有するものである。また、請求項６に記載の発明は、請求項４の記載において、前記画像形成装置内の記憶装置から前記コントロールサービスを起動するサービス層起動ステップをさらに有するものである。上記の発明によっても、請求項４の発明と同様に、新規アプリケーションのデバッグ作業をより効率的に行うことができる。
【００１７】
また、請求項７にかかる発明は、請求項４に記載の画像形成装置用アプリケーション起動方法において、前記ネットワーク上のファイルシステムには、さらに前記アプリケーションの実行形式プログラムが記録されており、前記アプリ起動ステップは、前記接続ステップによってマウントされたネットワーク上のファイルシステムから前記アプリケーションおよび前記新規アプリケーションを起動することを特徴とする。
【００１８】
この請求項７の発明によれば、ネットワーク上のファイルシステムに既存のアプリケーションの実行形式プログラムが記録されており、アプリ起動ステップによって、マウントされたネットワーク上のファイルシステムから既存のアプリケーションおよび新規アプリケーションを起動することで、新規アプリケーションがコントロールサービスとのプロセス間通信の他、既存のアプリケーションを利用する場合でも、ネットワークファイルシステムを画像形成装置のファイルシステムとみなして既存のアプリケーションおよび新規アプリケーションの起動を行えるので、既存のアプリケーションおよび開発した新規アプリケーションを起動用記録媒体に記録する必要がなく、新規アプリケーションの生成後、新規アプリケーションのデバッグ作業をより一層効率的に行うことができる。
【発明の効果】
【００１９】
本発明によれば、多数のプロセスが実行される画像形成装置で動作するアプリケーションを効率的に開発することができ、また生成されたアプリケーションを正確かつ効率的に検証することができる。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、本発明の好適な実施の形態を詳細に説明する。
【００２１】
（実施の形態１）
この発明の実施の形態１では、画像形成装置（以下、「複合機」という。）で動作させる新規アプリケーションを開発する場合、開発用ＰＣ（Personal Computer）によってアプリケーションソースファイルを作成する。そして、アプリケーション開発のためにＣＤ−ＲＯＭなどの記録媒体で提供されるアプリ開発キットを開発用サーバにインストールして、作成したアプリケーションソースファイルを、開発用サーバでコンパイル、リンクして複合機で実行可能なアプリケーションの実行形式ファイルを生成している。
【００２２】
図１は、実施の形態１である開発用サーバ１００のソフトウェア構成を示すブロック図である。この図１では、アプリ開発キットを開発用サーバ１００のハードディスク（ＨＤ）１３０にインストールした状態を示している。実施の形態１にかかる開発用サーバ１００は、複合機で動作させるための新規アプリケーションのソースファイルをコンパイルおよびリンクして、新規アプリーションの実行形式プログラムを生成するものである。実施の形態１にかかる開発用サーバ１００は、図１に示すように、デバッグ機能付きコンパイラ１１０と、リンカ１２０とから構成される。
【００２３】
デバッグ機能付きコンパイラ１１０は、ハードディスク（ＨＤ）１３０に格納されたアプリケーションのソースコードが記述された新規アプリソースファイル１３２を、コマンドの指定に従って、オブジェクトコードからなるオブジェクトファイルを生成するものである。デバッグ機能付きコンパイラ１１０は、図１に示すように、さらにコマンド解析部１１１と、構文解析部１１２と、タグ付加部１１３と、コード生成部１１４とから構成される。
【００２４】
ＨＤ（ハードディスク）１３０には、アプリケーション開発用のアプリ開発キット１３１がインストールされている。また、ＨＤ１３０にアプリケーションのＣ言語ソースコードが記述された新規アプリソースファイル１３２が格納される。この新規アプリソースファイル１３２は、開発用ＰＣでエディタによって作成され、開発用サーバ１００にコピーされる。また、ＨＤ１３０には、デバッグ機能付きコンパイラ１１０によって、オブジェクトファイル１３３が生成され、さらにリンカ１２０によってアプリケーションの実行形式ファイル１３４が生成される。
【００２５】
デバッグ機能付きコンパイラ１１０のコマンド解析部１１１は、ユーザからキーボードなどの入力装置によって入力されたコマンドのパラメータや構文の解析を行って、入力されたコマンドが文法的に正確か否かを判断するものである。
【００２６】
構文解析部１１２は、ＨＤ１３０に格納されたアプリケーションの新規アプリソースファイル１３２を入力して、新規アプリソースファイル１３２に記述されたＣ言語ソースコードを、Ｃ言語文法に従って解析し、導出木や構文木などを生成するものであり、通常のコンパイラにおける構文解析と同様の処理を行う。
【００２７】
タグ付加部１１３は、コマンドの指定によって、新規アプリソースファイル１３２に記述された関数の入口と出口にデバッグ用の検証コードであるタグを付加するものである。
【００２８】
コード生成部１１４は、構文解析され、必要に応じて検証コード（タグ）が付加された新規アプリソースファイル１３２から、オブジェクトコードからなるアプリケーションのオブジェクトファイル１３３を生成するものである。
【００２９】
リンカ１２０は、コード生成部１１４によって生成されたオブジェクトファイル１３３と、アプリ開発キット１３１の中のコントロールサービス関数ライブラリおよび標準関数ライブラリとをリンク（結合）して、複合機３００およびコンピュータのＯＳ上で実行可能なアプリ実行形式ファイル１３４を生成するものである。
【００３０】
アプリ開発キット１３１は、ＣＤ−ＲＯＭまたはフレキシブルディスク（ＦＤ）などの記録媒体にインストール可能な形式で提供され、開発用サーバ１００のＨＤ１３０にインストールされる。このアプリ開発キット１３１の中には、図１に示すように、ＥＣＳ３２４、ＭＣＳ３２５などの各コントロールサービスの実行形式ファイルと、各コントロールサービスごとに、提供するサービス関数を登録したコントロールサービス関数ライブラリ（たとえば、ＥＣＳ関数ライブラリ、ＭＣＳ関数ライブラリなど）と、ｓｔｒｃｐｙ，ｍｅｍｃｐｙなどのＣ言語標準関数を登録した標準関数ライブラリと、アプリケーションとコントロールサービスに共通で使用される関数宣言やメッセージ宣言が記述されているヘッダファイルと、デバッグ機能付きコンパイラ１１０のプログラムと、リンカ１２０のプログラムと、汎用ＯＳプログラムと、デバッガなどのデバッグ用ユーティリティとが含まれている。
【００３１】
上記デバッグ機能付きコンパイラ１１０の各部およびリンカ１２０は、このアプリ開発キット１３１を実行したときに、ＲＡＭ２０３上に生成されて実行される。
【００３２】
なお、実施の形態１では、アプリ開発キットを記録媒体で提供することとしているが、また、このような実行可能な形式またはインストール可能な形式のファイルを、ネットワーク経由でダウンロードすることにより提供するように構成しても良い。
【００３３】
図２は、実施の形態１にかかる開発用サーバ、開発用ＰＣのハードウェア構成および開発環境を示すブロック図である。図２に示すように、この開発用サーバ１００は、ＣＰＵなどの制御装置２０４と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、ＨＤ１３０と、ディスプレイ装置などの表示装置２０２と、キーボードやマウスなどの入力装置２０１と、ＬＡＮボードやモデムなどの通信装置２０６と、フラッシュカードのリード／ライトを制御するフラッシュカードインタフェースやＣＤ−ＲＯＭのリード制御を行うＣＤドライブ装置などの外部記憶装置２０５とを備えており、ＰＣ、ワークステーションなどのコンピュータを利用した通常の構成である。
【００３４】
この開発用サーバ１００は、イーサネット（登録商標）２２０などのネットワークによって開発用ＰＣ２００と複合機３００に接続されており、ＬＡＮ環境が構築されている。開発用ＰＣ２００のハードウェア構成は、図２に示す通り、開発用サーバ１００と同様の構成となっている。複合機３００には、複合機３００の起動を制御したり、エラー表示のためのコンソールＰＣ２３０がケーブルによって接続されている。
【００３５】
次に、デバッグ対象である複合機３００について説明する。図３は、複合機３００の機能的構成を示すブロック図である。図３に示すように、複合機３００は、白黒ラインプリンタ（B&W LP）３０１と、カラーラインプリンタ（Color LP）３０２と、スキャナ、ファクシミリ、ハードディスク（ＨＤ）、メモリ、ネットワークインタフェースなどのハードウェアリソース３０３を有するとともに、プラットホーム３２０とアプリケーション３３０とから構成されるソフトウェア群３１０とを備えている。
【００３６】
プラットホーム３２０は、アプリケーション３３０からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）３２３と、汎用ＯＳ３２１とを備えている。
【００３７】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）３２２と、ＥＣＳ（エンジンコントロールサービス）３２４と、ＭＣＳ（メモリコントロールサービス）３２５と、ＯＣＳ（オペレーションパネルコントロールサービス）３２６と、ＦＣＳ（ファックスコントロールサービス）３２７と、ＮＣＳ（ネットワークコントロールサービス）３２８とから構成される。なお、このプラットホーム３２０は、あらかじめ定義された関数により前記アプリケーション３３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有する。
【００３８】
汎用ＯＳ３２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム３２０並びにアプリケーション３３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００３９】
ＳＲＭ３２３のプロセスは、ＳＣＳ３２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ３２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＲＳ２３２Ｃ  Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する。
【００４０】
具体的には、このＳＲＭ３２３は、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ３２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００４１】
ＳＣＳ３２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。
【００４２】
ＥＣＳ３２４のプロセスは、白黒ラインプリンタ（B&W LP）３０１、カラーラインプリンタ（Color LP）３０２、スキャナ、ファクシミリなどからなるハードウェアリソース３０３のエンジンの制御を行う。
【００４３】
ＭＣＳ３２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【００４４】
ＦＣＳ３２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００４５】
ＮＣＳ３２８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
【００４６】
ＯＣＳ３２６は、オペレータ（ユーザ）と本体制御間の情報伝達手段となるオペレーションパネル（操作パネル）の制御を行う。ＯＣＳ３２６は、オペレーションパネル４１０からキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をＳＣＳ３２２に送信するＯＣＳプロセスの部分と、アプリケーション３３０またはコントロールサービスからの要求によりオペレーションパネル４１０に各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたＯＣＳライブラリの部分とから構成される。このＯＣＳライブラリは、アプリケーション３３０およびコントロールサービスの各モジュールにリンクされて実装されている。なお、ＯＣＳ３２６のすべてをプロセスとして動作させるように構成しても良く、あるいはＯＣＳ３２６のすべてをＯＣＳライブラリとして構成しても良い。
【００４７】
アプリケーション３３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ３１１と、コピー用アプリケーションであるコピーアプリ３１２と、ファクシミリ用アプリケーションであるファックスアプリ３１３と、スキャナ用アプリケーションであるスキャナアプリ３１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ３１５と、工程検査用アプリケーションである工程検査アプリ３１６とを有している。これらのアプリケーション３３０はいずれも複合機３００の起動時に初期化部（図示せず）によりプロセスとして生成され、動作する。
【００４８】
アプリケーション３３０の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【００４９】
このように、実施の形態１にかかる複合機３００には、複数のアプリケーション３３０および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション３３０に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。そして、複合機３００には、サードベンダーなどの第三者がコントロールサービス層の上のアプリケーション層に新規なアプリケーション（新規アプリ３１７）を開発して搭載することが可能となっている。
【００５０】
図４は、図３に示した実施の形態１の複合機３００のハードウェア構成図である。図４に示すように、この複合機３００は、ＣＰＵ４０２、ＳＤＲＡＭ４０３、ＳＲＡＭ４０８、フラッシュメモリ４０４、フラッシュカードインタフェース部４０６およびＨＤ４０５などをＡＳＩＣ４０１に接続したコントローラボード４００と、オペレーションパネル４１０と、ファックスコントロールユニット（ＦＣＵ）４２０と、ＵＳＢ４３０と、ＩＥＥＥ1394 ４４０と、プリンタ４５０とから構成されている。オペレーションパネル４１０はＡＳＩＣ４０１に直接接続され、ＦＣＵ４２０、ＵＳＢ４３０、ＩＥＥＥ1394 ４４０およびプリンタ４５０はＰＣＩバスを介してＡＳＩＣ４０１に接続されている。
【００５１】
フラッシュカードインタフェース部４０６は、フラッシュカード４０７を挿入して、フラッシュカード４０７とデータのやりとりを行うインタフェースである。このフラッシュカードインタフェース部４０６によって、開発用サーバ１００で生成された新規アプリが記録されたフラッシュカード４０７を読み込むことができるようになっている。
【００５２】
フラッシュメモリ（以下、「フラッシュＲＯＭ」という。）４０４には、上述の各アプリ、プラットホーム３２０を構成する各コントロールサービスやＳＲＭ３２３の各プログラムが格納されている。
【００５３】
オペレーションパネル４１０は、利用者のキー入力、ボタン押下などのキー操作を入力する操作部と、ボタン、ウィンドウ、各種画面などの描画データを表示する表示部とから構成されている。
【００５４】
図５は、新規アプリ３１７とコントロールサービスの関数呼び出しの関係を示すブロック図である。図５に示すように、新規アプリ３１７のプロセスからコントロールサービスのプロセス（図５ではＥＣＳ３２４）に対してＡＰＩ（アプリケーションプログラミングインタフェース）を利用してコントロールサービスで提供される関数の呼び出し（図５ではＥｃｓ＿ｆｕｎｃ関数）によるプロセス間通信を行った場合に、コントロールサービス側で呼び出された関数が実行される。すなわち、サービス関数の実体はコントロールサービス側にある。このサービス関数は、コントロールサービス関数ライブラリ（図５ではＥＣＳ関数ライブラリ）に登録されており、コントロールサービス関数ライブラリは、呼び出し側の新規アプリ３１７にリンクされている。実施の形態１のアプリ開発キット１３１は、このコントロールサービス関数ライブラリと、コントロールサービス実行形式ファイル（実行形式プログラム）を提供するものである。
【００５５】
次に、以上のように構成された実施の形態１にかかる開発用サーバ１００、開発用ＰＣ２００およびアプリ開発キット１３１を利用した新規アプリの生成について説明する。
【００５６】
まず、デバッグ作業を行うユーザは開発用ＰＣ２００において、エディタなどの編集ツールによって新規アプリ３１７のソースコードを記述しソースファイルを生成する。ここで、新規アプリ３１７は任意の機能を持たせることができるが、例えば、以下のような機能を新規アプリ３１７の一部または全部の機能とすることが考えられる。オペレーションパネル４１０の操作部表示画面の設計、スキャナから読み取ったデータのファイル保存、ＨＤ４０５上の画像データの加工および編集、プロッタを利用した印刷、機器状態の通知要求および通知、イーサネット（登録商標）を利用した他の機器との接続などの機能を有する新規アプリ３１７を、アプリ開発キット１３１を利用して作成することが可能である。また、複合機３００の汎用ＯＳ３２１がＵＮＩＸ（登録商標）である場合には、ＵＮＩＸ（登録商標）用のソフトウェアを新規アプリ３１７とすることも可能である。なお、新規アプリ３１７の機能としてはこれらの機能に限定されるものではない。
【００５７】
そして、この新規アプリソースファイルを開発用サーバ１００のＨＤ１３０にネットワーク経由で格納する。そして、ユーザは、新規アプリ３１７の実行形式ファイルを生成するために、開発用サーバ１００のキーボードなどの入力装置２１１から、デバッグ機能付きコンパイラおよびリンカの起動コマンドを入力する。
【００５８】
図６は、開発用サーバ１００による新規アプリ生成処理の手順を示すフローチャートである。起動コマンドが入力されると、デバッグ機能付きコンパイラ１１０が起動し、コマンド解析部１１１によって入力されたコマンドの解析を行う（ステップＳ６０１）。具体的にはパラメータや構文の解析を行って、入力されたコマンドが文法的に正確か否かを判断する。
【００５９】
次に、構文解析部１１２によって、新規アプリソースファイル１３２とインストール済みのアプリ開発キット１３１の中のヘッダファイルを読み込み（ステップＳ６０２）、新規アプリソースファイル１３２に記述されたＣ言語ソースコードの構文解析を行う（ステップＳ６０３）。具体的には、構文解析部１１２は、Ｃ言語ソースコードをＣ言語文法に従って解析し、導出木や構文木などを生成する。
【００６０】
そして、コマンド解析部１１１によって、入力された起動コマンドにデバッグオプションが指定されているか否かを調べる（ステップＳ６０４）。そして、デバッグオプションが指定されている場合には、関数の入口と出口などにｐｒｉｎｔｆ文やａｓｓｅｒｔ文などのデバッグ用に変数や関数引数あるいは関数戻り値などを出力するための検証コードとしてのタグを付加する（ステップＳ６０５）。一方、デバッグオプションが指定されていない場合には、タグ付加の処理は行わず、通常のコンパイル処理を行う。
【００６１】
次に、コード生成部１１４によってコード生成処理を行って、新規アプリ３１７のオブジェクトコードを生成し、オブジェクトファイル１３３としてＨＤ１３０に格納する（ステップＳ６０６）。そして、生成された新規アプリ３１７のオブジェクトファイル１３３と、アプリ開発キット１３１のコントロールサービス関数ライブラリと標準関数ライブラリとをリンクして、アプリ実行形式ファイル１３４を生成する（ステップＳ６０７）。そして、生成されたアプリ実行形式ファイル１３４を、アプリ開発キット１３１の中のすべてのコントロールサービス実行形式ファイルとともにフラッシュカードに書き込む（ステップＳ６０８）。ここで、このようなフラッシュカード４０７への書き込みは、コンパイラ１１０およびリンカ１２０の起動コマンドとともにカード書き込みコマンドを、例えばＭａｋｅファイルのようなスクリプトに記述して、コンパイルからフラッシュカード４０７への書き込みを自動的に行う他、ユーザが手動で各コマンドを入力するようにしても良い。
【００６２】
図７は、フラッシュカード４０７のデータの内容を示すデータ構造図である。フラッシュカード４０７には、図７に示すように、先頭のＲＯＭモニタ起動命令と、ヘッダ情報と、コンフィグレーションファイルと、ＥＣＳ実行形式ファイルやＭＣＳ実行形式ファイルなどのコントロールサービス実行形式ファイルと、新規アプリ３１７のアプリ実行形式ファイル１３４とが、ユーザの指定によって格納される。
【００６３】
ＲＯＭモニタ起動命令は、複合機３００の起動時に参照されて後述するＲＯＭモニタの起動を行うコマンドである。ヘッダ情報は、コンフィグレーションファイルやコントロールサービス実行形式ファイルのフラッシュカード先頭アドレスからのオフセットやデータ長などを設定したものである。コンフィグレーションファイルは、複合機３００の起動時に参照され、複合機３００で実行されるコントロールサービスやアプリケーション３３０を指定したものである。このコンフィグレーションファイルは、あらかじめ開発用サーバ１００においてユーザによって作成される。これらの各ファイルは、上述のユーザのカード書き込みコマンド入力によって実行されるステップＳ６０８によって、各コントロールサービス実行形式ファイルおよびアプリ実行形式ファイルとともにフラッシュカード４０７に書き込まれる。
【００６４】
図７に示す例では、フラッシュカード４０７に新規アプリの実行形式ファイルとともに各種コントロールサービスの実行形式ファイルを格納しているが、フラッシュカード４０７に格納する情報は図７に示す例に限られない。
【００６５】
例えば、図８に示すように、コンフィグレーションファイルと新規アプリの実行形式ファイルのみをフラッシュカード４０７に格納してもよい。この場合、複合機の起動に必要な他のプログラムは複合機内のＲＯＭに予め格納しておく。そして、新規アプリはフラッシュカード４０７から起動され、各コントロールサービスはＲＯＭから起動される。
【００６６】
更に、図９に示すように、特定のコントロールサービスの実行形式ファイルと新規アプリの実行形式ファイルをフラッシュカード４０７に格納してもよい。これば、例えば、特定のコントロールサービス（図９の例ではＥＣＳ実行形式ファイル）に対してユーザの要望に応じたカスタマイズがなされた場合に適用できる。この場合も、複合機３００の起動に必要な他のプログラムは複合機内のＲＯＭに予め格納しておく。
【００６７】
また、フラッシュカード４０７に限らず、記録媒体に新規アプリの実行形式ファイルのみを格納し、その記録媒体（インストール用記録媒体）から新規アプリの実行形式ファイルを複合機３００のＨＤ４０５にインストールし、新規アプリをＨＤ４０５から起動することも可能である。また、新規アプリと特定のコントロールサービスの実行形式ファイルのみを記録媒体に格納し、複合機３００のＨＤ４０５にインストールし、新規アプリと特定のコントロールサービスをＨＤ４０５から起動することも可能である。
【００６８】
次に、このように生成された新規アプリ３１７のデバッグ方法について説明する。なお、以下、フラッシュカード４０７に図７に示すファイルが格納される場合の形態である。
【００６９】
デバッグ作業を行うユーザは、新規アプリ３１７（アプリ実行形式ファイル１３４）とコントロールサービス（実行形式ファイル）を格納したフラッシュカード４０７を複合機３００のフラッシュカードインタフェース部４０６に挿入して複合機３００の電源を投入し、複合機３００を起動する。
【００７０】
図１０は、複合機３００の起動時に実行される複合機初期化部８００の構成を示すブロック図である。複合機初期化部８００は、ＲＯＭモニタ８０１とプログラム起動部８０２とから構成される。ＲＯＭモニタ８０１は、フラッシュカード４０７の先頭に記録されたＲＯＭモニタ起動命令を実行することにより起動され、ハードウェアの初期化、コントローラボードの診断、ソフトウェアの初期化、汎用ＯＳ３２１の起動などを行う。
【００７１】
プログラム起動部８０２は、汎用ＯＳ３２１から呼び出されるものであり、フラッシュカード４０７の中のコンフィグレーションファイルを参照して、コンフィグレーションファイルに指定されているコントロールサービスとアプリを、フラッシュカードから読み出して複合機３００上で起動するものである。
【００７２】
図１１は、複合機３００がフラッシュカード４０７を挿入した状態で起動した場合の初期化処理の手順を示すフローチャートである。デバッグ作業を行うユーザは、まず複合機３００のコントローラボード４００のディップスイッチをフラッシュカード４０７からの起動側の位置に設定し、フラッシュカード４０７をフラッシュカードインタフェース部４０６に挿入して電源投入を行う。このとき複合機３００では複合機初期化部８００がまず起動し、フラッシュカード４０７の先頭に格納されているＲＯＭモニタ起動命令を読み出し、ＲＯＭモニタ８０１を起動する。そして、ＲＯＭモニタ８０１は、ハードウェアの初期化、コントローラボード４００などのハードウェアの診断処理を行う（ステップＳ９０１）。そして、ＲＯＭモニタ８０１は、汎用ＯＳ３２１をフラッシュメモリ４０４から起動する（ステップＳ９０２）。
【００７３】
次に、プログラム起動部８０２が汎用ＯＳ３２１によって呼び出され、起動されたプログラム起動部８０２はフラッシュカード４０７からコンフィグレーションファイルを読み込む（ステップＳ９０３）。なお、コンフィグレーションファイルおよび後述するコントロールサービス実行形式ファイル、アプリ実行形式ファイルのフラッシュカード４０７内での位置は、ヘッダ情報のオフセットを参照することによって取得している。
【００７４】
そして、プログラム起動部８０２は、コンフィグレーションファイルの設定に従って、フラッシュカード４０７から各コントロールサービスを起動する（ステップＳ９０４）。さらに、プログラム起動部８０２は、フラッシュカード４０７から新規アプリ３１７のアプリ実行形式ファイル１３４を起動する（ステップＳ９０５）。
【００７５】
これにより、図３に示すように、複合機３００で新規アプリ３１７が実行された状態となる。このため、ユーザが新規アプリ３１７をデバッグオプションを指定して生成した場合、コンソールＰＣ２３０のディスプレイ装置あるいはオペレーションパネル４１０の表示部などに、ｐｒｉｎｔｆ文、ａｓｓｅｒｔ文などにより変数の値、関数引数、関数戻り値などがメッセージとともに出力され、これによりデバッグ作業を行う。
【００７６】
このように実施の形態１の開発用サーバ１００では、アプリ開発キット１３１の中のコントロールサービス関数ライブラリと、新規アプリソースファイル１３２をコンパイルしたオブジェクトファイル１３３とをリンクして、新規アプリ３１７のアプリ実行形式ファイル１３４を生成しているので、コントロールサービスが提供するサービス関数を呼び出してプロセス間通信を行う新規アプリ３１７を効率的に開発することができる。
【００７７】
実施の形態１のアプリ開発キット１３１には、作成した新規アプリ３１７のプロセス間通信に必要なコントロールサービスの実行形式ファイルも含まれているので、新規アプリ３１７のデバッグ作業を、複合機３００内のコントロールサービスを用いずに、アプリ開発キット１３１の中のコントロールサービスだけを用いて行うことができ、効率的なデバッグ作業を行うことができる。
【００７８】
また、実施の形態１のアプリ開発キット１３１は、コントロールサービス実行形式ファイルを含んでおり、開発用サーバ１００によって、新規アプリ３１７のアプリ実行形式ファイル１３４と、コントロールサービス実行形式ファイルとを、複合機３００の起動用のフラッシュカード４０７に格納しているので、複合機３００の起動時にこのフラッシュカード４０７からコントロールサービスおよび新規アプリ３１７の起動を行うことができ、新規アプリ３１７のデバッグ作業を容易に行うことができる。
【００７９】
さらに、図８、９に示したように、ユーザの要望に応じて開発した新規アプリの実行形式ファイルのみをフラッシュカード４０７に格納し、ユーザに納入済みの複合機において、フラッシュカード４０７からその新規アプリを起動させることができる。
【００８０】
（実施の形態２）
実施の形態１のデバッグ方法では、開発用サーバ１００で生成した新規アプリ３１７のアプリ実行形式ファイル１３４やコントロールサービス実行形式ファイルを、フラッシュカード４０７に記録して、複合機３００でフラッシュカード４０７からアプリやコントロールサービスを起動してデバッグ作業を行っていたが、この実施の形態２にかかるデバッグ方法では、フラッシュカード４０７を用いずにネットワーク経由でデバッグ環境を構築するものである。
【００８１】
図１２は、実施の形態２にかかる開発用サーバ１００、開発用ＰＣ２００、ネットワークサーバ１０００および複合機３００のネットワーク構成並びにデバッグ環境を示すブロック図である。図１２に示すように、実施の形態２では、実施の形態１のデバッグ環境と同様に、開発用サーバ１００と、複数の開発用ＰＣ２００と、複合機３００がイーサネット（登録商標）２２０に接続されているが、さらにネットワークサーバ１０００もイーサネット（登録商標）２２０に接続されたＬＡＮ環境が構築されている。なお、開発用サーバ１００、開発用ＰＣ２００、複合機３００およびコンソールＰＣ２３０については、実施の形態１で説明した構成と同様である。
【００８２】
ネットワークサーバ１０００は、開発用サーバ１００で生成された新規アプリ３１７を、ＮＦＳ（ネットワークファイルシステム）によって複合機３００にマウントさせるものである。このため、ネットワークサーバ１０００は、ＮＦＳの機能を有している。
【００８３】
次に、以上のように構成された複合機３００、ネットワークサーバ１０００による新規アプリ３１７のデバッグ方法について説明する。なお、新規アプリ３１７の生成処理については実施の形態１で説明した開発用サーバ１００によるアプリ生成処理と同様に行われる。
【００８４】
まず、デバッグ作業を行うユーザは、開発用サーバ１００で生成された新規アプリ３１７のアプリ実行形式ファイル１３４とコンフィグレーションファイルとアプリ開発キット１３１の中のコントロールサービス実行形式ファイルとを、ネットワークサーバ１０００のハードディスクの所定のディレクトリにコピーする。コンフィグレーションファイルは、実施の形態１と同様に、複合機３００で実行されるコントロールサービスやアプリケーション３３０を指定したものである。このコンフィグレーションファイルは、あらかじめユーザによって作成される。
【００８５】
そして、複合機３００のネットワークボードのＭＡＣ（Media Access Control）アドレス、複合機３００のＩＰアドレス、ネットワークサーバのＩＰアドレスなどのネットワーク情報、および複合機３００にマウントさせるアプリ実行形式ファイル１３４の存在するディレクトリをエクスポートするためのディスク情報などを設定して、ネットワークサーバ１０００を再起動する。かかるネットワーク情報とディスク情報は、汎用ＯＳ３２１がＵＮＩＸ（登録商標）であれば、起動時に実行されるシェルスクリプトに記述しておき、ネットワークサーバ１０００を再起動させれば良い。
【００８６】
図１３は、複合機３００がネットワークブートした場合の初期化処理の手順を示すフローチャートである。ユーザは、複合機３００のディップスイッチをネットワークブート側に設定して、複合機３００の電源を投入する。このとき、実施の形態１の複合機３００と同様に、複合機初期化部８００のＲＯＭモニタ８０１によってハードウェアの初期化と診断処理が行われる（ステップＳ１１０１）。次に、ネットワークブートの場合、ＲＯＭモニタ８０１はコンソールＰＣ２３０に起動コマンド入力待ちの画面を表示するので、ユーザはコンソールＰＣ２３０から複合機３００の起動コマンドを入力する。ＲＯＭモニタ８０１は入力された起動コマンドを受け付けた後（ステップＳ１１０２）、汎用ＯＳ３２１を起動する（ステップＳ１１０３）。
【００８７】
起動した汎用ＯＳ３２１は、コンソールＰＣ２３０に対してログイン入力画面を表示し、ユーザからのログイン入力待ち状態となる。ユーザは、コンソールＰＣ２３０からユーザ名、パスワードを入力して複合機３００に対してログインを行うと、汎用ＯＳ３２１は、入力されたユーザ名、パスワードによるログインを受け付けて、ユーザ認証処理を行う（ステップＳ１１０４）。そして、正当なユーザの場合には、汎用ＯＳ３２１はプログラム起動部８０２を起動する。
【００８８】
プログラム起動部８０２は、まずネットワークサーバ１０００のエクスポートされたディスク（またはディレクトリ）をマウントする（ステップＳ１１０５）。かかるマウント処理は、汎用ＯＳ３２１がＵＮＩＸ（登録商標）の場合、マウント先をネットワークサーバ１０００で設定したディスク情報に記述されたディスクまたはディレクトリを指定したマウントコマンドを、あらかじめ記述したシェルスクリプトを用意して、プログラム起動部８０２の実行時にかかるシェルスクリプトを実行するように構成しておけば良い。
【００８９】
次に、プログラム起動部８０２は、マウントしたネットワークサーバ１０００のディスクからコンフィグレーションファイルを読み込み（ステップＳ１１０６）、かかるコンフィグレーションファイルの設定に従って、ＮＦＳマウントされたネットワークサーバ１０００のディスク（またはディレクトリ）から各コントロールサービスを起動する（ステップＳ１１０７）。さらに、プログラム起動部８０２は、ネットワークサーバ１０００のディスク（またはディレクトリ）から新規アプリ３１７のアプリ実行形式ファイル１３４を起動する（ステップＳ１１０８）。
【００９０】
これにより、図３に示すように、複合機３００で新規アプリ３１７が実行された状態となる。このため、ユーザが新規アプリ３１７をデバッグオプションを指定して生成した場合、コンソールＰＣ２３０のディスプレイ装置あるいはオペレーションパネル４１０の表示部などに、ｐｒｉｎｔｆ文、ａｓｓｅｒｔ文などにより変数の値、関数引数、関数戻り値などがメッセージとともに出力され、これによりデバッグ作業を行う。
【００９１】
このように実施の形態２のアプリ開発キット１３１、開発用サーバ１００、開発用ＰＣ２００、ネットワークサーバ１０００および複合機３００では、起動時に、新規アプリ３１７のアプリ実行形式ファイル１３４が格納されたネットワークサーバ１０００のディスクまたはディレクトリを、複合機３００のファイルシステムにＮＦＳマウントし、マウントされたネットワークサーバ１０００上のファイルシステムからコントロールサービス、ついで新規アプリ３１７を起動して、新規アプリのデバッグを行っているので、コントロールサービスや開発した新規アプリをフラッシュカード４０７などの記録媒体に格納する必要がなく、新規アプリ３１７のデバッグ作業をより一層効率的に行うことができる。なお、ネットワークサーバ１０００が新規アプリのアプリ実行形式ファイルのみを保持しておき、新規アプリのアプリ実行形式ファイルはネットワークサーバ１０００から起動し、各種コントロールサービスは複合機３００内のＲＯＭから起動するようにしてもよい。
【００９２】
また、ネットワークサーバ１０００から新規アプリを起動することは、上記のようなデバッグの場面のみならず、ユーザによる複合機の使用場面でも用いることができる。例えば、複合機３００をインターネット接続されたＬＡＮに接続しておき、新規アプリを遠隔にあるインターネット接続されたサーバから起動する。
【００９３】
（実施の形態３）
実施の形態１および２にかかるアプリ開発キット１３１は、コントロールサービス実行形式ファイルが格納されており、アプリ実行形式ファイル１３４は格納されてはいなかったが、この実施の形態３にかかるアプリ開発キットは、アプリ実行形式ファイル１３４も格納して提供するものである。
【００９４】
図１４は、実施の形態３にかかる開発用サーバ１００のＨＤ１３０に格納されるファイルを示す説明図である。実施の形態３にかかる開発用サーバ１００のＨＤ１３０には、実施の形態１の開発用サーバ１００と同様に、アプリ開発キット１２０１がインストールされ、新規アプリソースファイル１３２と、アプリのオブジェクトファイル１３３と、アプリ実行形式ファイル１３４とが生成される。
【００９５】
アプリ開発キット１２０１は、実施の形態１のアプリ開発キット１３１と同様に、ＣＤ−ＲＯＭまたはフレキシブルディスク（ＦＤ）などの記録媒体にインストール可能な形式で提供され、開発用サーバ１００のＨＤ１３０にインストールされる。この記録媒体のアプリ開発キット１２０１の中には、図１４に示すように、ＥＣＳ３２４、ＭＣＳ３２５などの各コントロールサービスの実行形式ファイルと、各コントロールサービスごとに、提供するサービス関数を登録したコントロールサービス関数ライブラリ（たとえば、ＥＣＳ関数ライブラリ、ＭＣＳ関数ライブラリなど）と、コピーアプリ３１２、プリンタアプリ３１１などの各アプリケーション実行形式ファイルと、ｓｔｒｃｐｙ，ｍｅｍｃｐｙなどのＣ言語標準関数を登録した標準関数ライブラリと、アプリケーション３３０とコントロールサービスに共通で使用される関数宣言やメッセージ宣言が記述されているヘッダファイルと、デバッグ機能付きコンパイラ１１０のプログラムと、リンカ１２０のプログラムと、汎用ＯＳプログラムと、デバッガなどのデバッグ用ユーティリティとが含まれている。すなわち、実施の形態３にかかるアプリ開発キット１２０１は、アプリケーション実行形式ファイルがアプリケーション３３０ごとに含まれている点が実施の形態１にかかるアプリ開発キット１３１と異なっている。
【００９６】
このため、実施の形態１のように、新規アプリ３１７（アプリ実行形式ファイル１３４）をフラッシュカード４０７に格納する際には、アプリ開発キット１２０１の中のアプリケーション実行形式ファイルもコントロールサービス実行形式ファイルやコンフィグレーションファイルとともにフラッシュカード４０７に格納する。
【００９７】
実施の形態２のように、新規アプリ３１７をネットワークサーバ１０００のハードディスクにネットワーク経由でコピーする際には、アプリ開発キット１２０１の中のアプリケーション実行形式ファイルもコントロールサービス実行形式ファイルやコンフィグレーションファイルとともにネットワークサーバ１０００のハードディスクにネットワーク経由でコピーする。また、実施の形態２のように、複合機３００をネットワークブートしてデバッグ作業を行う場合には、複合機初期化部８００のプログラム起動部８０２は、図１１のステップＳ１１０７において、コントロールサービスを起動した後に、ＮＦＳマウントされたネットワークサーバ１０００のハードディスクからアプリケーション３３０を起動するという処理を行う。
【００９８】
実施の形態３において、既存のアプリケーションとは、例えば図３に示す、プリンタアプリ３１１、コピーアプリ３１２、スキャナアプリ３１４、ファックスアプリ３１３、ネットファイルアプリ３１５、工程検査アプリ３１６などをいい、新規アプリ３１７は、これらの中の一または複数のアプリとのプロセス間通信を利用するように設計することが可能である。
【００９９】
このように実施の形態３のアプリ開発キット１２０１は、既存のアプリケーション３３０の実行形式ファイルを含み、新規アプリ３１７のアプリ実行形式ファイル１３４と既存のアプリケーションの実行形式ファイルおよびコントロールサービス実行形式ファイルとを、複合機起動用のフラッシュカード４０７に格納しているので、新規アプリ３１７がコントロールサービスとのプロセス間通信の他、既存のアプリケーション３３０を利用した所定の機能を実現する場合でも、アプリ開発キット１２０１を利用して開発を行うことができ、新規アプリ３１７を効率的に開発することができる。
【０１００】
また、実施の形態３のアプリ開発キット１２０１には既存のアプリケーション３３０の実行形式ファイルが記録されており、複合機３００はその起動時に、起動用のフラッシュカード４０７またはＮＦＳマウントされたネットワークサーバ１０００上のディレクトリから、コントロールサービス実行形式ファイルと新規アプリのアプリ実行形式ファイル１３４と既存のアプリケーション３３０の実行形式ファイルとを読み出して、複合機３００上で起動しているので、新規アプリ３１７がコントロールサービスとのプロセス間通信の他、既存のアプリケーション３３０を利用して機能を実現する場合でも、新規アプリ３１７のデバッグ作業を効率的に行うことができる。
【０１０１】
なお、実施の形態１〜３では、開発用サーバ１００と、開発用ＰＣ２００と、ネットワークサーバ１０００とを別個に設ける構成としているが、この他、図１５のネットワーク構成図に示すように、ネットワークサーバと開発用サーバとを一つのコンピュータ１３０１で兼用する構成としたり、図１６のネットワーク構成図に示すように、ネットワークサーバと開発用サーバと開発用ＰＣとを一つのコンピュータ１３０２で兼用する構成とすることも可能である。
【図面の簡単な説明】
【０１０２】
【図１】実施の形態１にかかる開発用サーバのソフトウェア構成を示すブロック図である。
【図２】実施の形態１にかかる開発用サーバ、開発用ＰＣのハードウェア構成および開発環境を示すブロック図である。
【図３】実施の形態１にかかる複合機の機能的構成を示すブロック図である。
【図４】実施の形態１の複合機のハードウェア構成図である。
【図５】新規アプリとコントロールサービスの関数呼び出しの関係を示すブロック図である。
【図６】実施の形態１の開発用サーバによる新規アプリ生成処理の手順を示すフローチャートである。
【図７】実施の形態１におけるフラッシュカードのデータの内容を示すデータ構造図である。
【図８】実施の形態１におけるフラッシュカードのデータの内容を示すデータ構造図の他の例である。
【図９】実施の形態１におけるフラッシュカードのデータの内容を示すデータ構造図の他の例である。
【図１０】実施の形態１の複合機の起動時に実行される複合機初期化部の構成を示すブロック図である。
【図１１】実施の形態１の複合機がフラッシュカードを挿入した状態で起動した場合の初期化処理の手順を示すフローチャートである。
【図１２】実施の形態２にかかる開発用サーバ、開発用ＰＣ、ネットワークサーバおよび複合機のネットワーク構成並びにデバッグ環境を示すブロック図である。
【図１３】実施の形態２にかかる複合機がネットワークブートした場合の初期化処理の手順を示すフローチャートである。
【図１４】実施の形態３にかかる開発用サーバのＨＤに格納されるファイルを示す説明図である。
【図１５】開発環境およびデバッグ環境の他の例を示すネットワーク構成図である。
【図１６】開発環境およびデバッグ環境の他の例を示すネットワーク構成図である。
【符号の説明】
【０１０３】
１００  開発用サーバ
１１０  コンパイラ
１１１  コマンド解析部
１１２  構文解析部
１１３  タグ付加部
１１４  コード生成部
１２０  リンカ
１３０，２３０  ハードディスク（ＨＤ）
１３１  アプリ開発キット
１３２  新規アプリソースファイル
１３３  オブジェクトファイル
１３４  アプリ実行形式ファイル
２０１，２１１  入力装置
２０２，２１２  表示装置
２０３，２１３  ＲＡＭ
２０４，２１４  制御装置
２０５，２１５  外部記憶装置
２０６，２１６  通信装置
３００  複合機
３０１  白黒ラインプリンタ
３０２  カラーラインプリンタ
３０３  ハードウェアリソース
３１０  ソフトウェア群
３１１  プリンタアプリ
３１２  コピーアプリ
３１３  ファックスアプリ
３１４  スキャナアプリ
３１５  ネットファイルアプリ
３１６  工程検査アプリ
３２０  プラットホーム
３２１  汎用ＯＳ
３２２  ＳＣＳ
３２３  ＳＲＭ
３２４  ＥＣＳ
３２５  ＭＣＳ
３２６  ＯＣＳ
３２７  ＦＣＳ
３２８  ＮＣＳ
３３０  アプリケーション
４００  コントローラボード
４０１  ＡＳＩＣ
４０２  ＣＰＵ
４０３  ＳＤＲＡＭ（ＲＡＭ）
４０４  フラッシュメモリ（ＲＯＭ）
４０５  ＨＤ
４０６  フラッシュカードインタフェース部
４０７  フラッシュカード
４０８  ＳＲＡＭ
４１０  オペレーションパネル
４３０  ＵＳＢ
４４０  ＩＥＥＥ１３９４
４５０  プリンタ
８００  複合機初期化部
８０１  モニタ
８０２  プログラム起動部
１０００  ネットワークサーバ
１２０１  アプリ開発キット
１３０１  ネットワークサーバ兼開発用サーバ
１３０２  ネットワークサーバ兼開発用サーバ兼開発用ＰＣ
【図１】
2007073066.tif 000003
【図２】
2007073066.tif 000004
【図３】
2007073066.tif 000005
【図４】
2007073066.tif 000006
【図５】
2007073066.tif 000007
【図６】
2007073066.tif 000008
【図７】
2007073066.tif 000009
【図８】
2007073066.tif 000010
【図９】
2007073066.tif 000011
【図１０】
2007073066.tif 000012
【図１１】
2007073066.tif 000013
【図１２】
2007073066.tif 000014
【図１３】
2007073066.tif 000015
【図１４】
2007073066.tif 000016
【図１５】
2007073066.tif 000017
【図１６】
2007073066.tif 000018