(57)【要約】【課題】  新たなアプリケーション管理機構を備える画像形成装置を提案すること。【解決手段】  スレッドとして実行されるアプリケーションがメモリ上に確保しているデータの管理を行うデータ管理手段を備えることを特徴とする画像形成装置。【選択図】  図５
2005269439.tif 000002
【特許請求の範囲】
【請求項１】
スレッドとして実行されるアプリケーションがメモリ上に確保しているデータの管理を行うデータ管理手段を備えることを特徴とする画像形成装置。
【請求項２】
前記データ管理手段として、スレッドとして実行されるアプリケーションがメモリ上に確保している描画データの管理を行う描画データ管理手段を備えることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記描画データ管理手段は、当該画像形成装置の画面を占有する前記アプリケーションの描画データをメモリ上に反映させて、当該画像形成装置の画面を占有しない前記アプリケーションの描画データをメモリ上から削除するような前記描画データの管理を行うことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記描画データ管理手段は、前記アプリケーションのウィンドウの表示枚数の管理を行うことを特徴とする請求項２又は３に記載の画像形成装置。
【請求項５】
前記描画データ管理手段は、前記アプリケーションのウィンドウの表示順番の管理を行うことを特徴とする請求項２又は３に記載の画像形成装置。
【請求項６】
前記描画データ管理手段は、前記アプリケーションのウィンドウのハイライト表示の管理を行うことを特徴とする請求項２又は３に記載の画像形成装置。
【請求項７】
スレッドとして実行されるアプリケーションのライフサイクルの管理を行うアプリケーション管理手段と、前記アプリケーションのライフサイクルに影響する当該画像形成装置のイベントを前記アプリケーション管理手段に通知するイベント通知手段とを備えることを特徴とする画像形成装置。
【請求項８】
前記イベント通知手段として、前記アプリケーションのライフサイクルに影響する当該画像形成装置の電源のイベントを前記アプリケーション管理手段に通知する電源イベント通知手段を備えることを特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記アプリケーションは、Ｘｌｅｔであることを特徴とする請求項１乃至８のいずれか１項に記載の画像形成装置。
【請求項１０】
前記アプリケーション管理手段は、Ｘｌｅｔ  Ｍａｎａｇｅｒであることを特徴とする請求項７又は８に記載の画像形成装置。
【請求項１１】
画像形成装置によって実行される情報処理方法であって、
スレッドとして実行されるアプリケーションがメモリ上に確保しているデータの管理を行うデータ管理段階を備えることを特徴とする情報処理方法。
【請求項１２】
前記データ管理段階として、スレッドとして実行されるアプリケーションがメモリ上に確保している描画データの管理を行う描画データ管理段階を備えることを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
前記描画データ管理段階で、当該画像形成装置の画面を占有する前記アプリケーションの描画データをメモリ上に反映させて、当該画像形成装置の画面を占有しない前記アプリケーションの描画データをメモリ上から削除するような前記描画データの管理を行うことを特徴とする請求項１２に記載の情報処理方法。
【請求項１４】
前記描画データ管理段階では、前記アプリケーションのウィンドウの表示枚数の管理を行うことを特徴とする請求項１２又は１３に記載の情報処理方法。
【請求項１５】
前記描画データ管理段階では、前記アプリケーションのウィンドウの表示順番の管理を行うことを特徴とする請求項１２又は１３に記載の情報処理方法。
【請求項１６】
前記描画データ管理段階では、前記アプリケーションのウィンドウのハイライト表示の管理を行うことを特徴とする請求項１２又は１３に記載の情報処理方法。
【請求項１７】
スレッドとして実行されるアプリケーションのライフサイクルの管理を行うアプリケーション管理手段を備える画像形成装置によって実行される情報処理方法であって、
前記アプリケーションのライフサイクルに影響する当該画像形成装置のイベントを前記アプリケーション管理手段に通知するイベント通知段階を備えることを特徴とする情報処理方法。
【請求項１８】
前記イベント通知段階として、前記アプリケーションのライフサイクルに影響する当該画像形成装置の電源のイベントを前記アプリケーション管理手段に通知する電源イベント通知段階を備えることを特徴とする請求項１７に記載の情報処理方法。
【請求項１９】
前記アプリケーションは、Ｘｌｅｔであることを特徴とする請求項１１乃至１８のいずれか１項に記載の情報処理方法。
【請求項２０】
前記アプリケーション管理手段は、Ｘｌｅｔ  Ｍａｎａｇｅｒであることを特徴とする請求項１７又は１８に記載の情報処理方法。
【請求項２１】
請求項１１乃至２０のいずれか１項に記載の情報処理方法をコンピュータに実行させる情報処理プログラム。
【請求項２２】
請求項１１乃至２０のいずれか１項に記載の情報処理方法をコンピュータに実行させる情報処理プログラムが記録されたコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コピー／プリンタ／スキャナ／ファクシミリ／複合機／融合機等の画像形成装置、情報処理方法、情報処理プログラム、ＳＤｃａｒｄ／ＣＤ−ＲＯＭ等の記録媒体に関する。
【背景技術】
【０００２】
近年、コピーとプリンタとスキャナとファクシミリとしての機能を備える複合機や融合機が市販されるようになった。複合機や融合機は、撮像部や印刷部や通信部や操作表示部等のハードウェアを備えると共に、コピーとプリンタとスキャナとファクシミリに対応する４種類のソフトウェアを備え、これらのソフトウェアが切り替わることにより、コピーやプリンタやスキャナやファクシミリとして機能する。複合機や融合機は、コピーやプリンタとして機能する場合、画像を印刷用紙等に印刷することになり、コピーやスキャナやとして機能する場合、画像を読取原稿から読み取ることになり、ファクシミリとして機能する場合、画像を電話回線等を介して他の機器と授受することになる。
【特許文献１】特開２００２−８４３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
複合機や融合機内では、様々なアプリケーションが実行される。複合機や融合機内でのアプリケーションの実行態様としては、１プロセス上で１アプリケーションが実行される「１プロセス１アプリ」が主流であるが、１プロセス上で複数のアプリケーションが実行される「１プロセス複数アプリ」も登場しつつある。しかし、１プロセス１アプリを前提とするシステムで１プロセス複数アプリの情報処理を実行するような場合、１プロセス１アプリ向けのアプリケーション管理機構では１プロセス複数アプリの各アプリケーションを管理することができないので、１プロセス複数アプリ向けのアプリケーション管理機構が必要となる。この例からも理解されるように、複合機や融合機には、アプリケーションの実行態様に応じたアプリケーション管理機構が必要である。
【０００４】
したがって、本発明は、新たなアプリケーション管理機構を備える画像形成装置を提案することを課題とする。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明（画像形成装置）は、スレッドとして実行されるアプリケーションがメモリ上に確保しているデータの管理を行うデータ管理手段を備える。
【０００６】
請求項２に記載の発明（画像形成装置）は、請求項１に記載の発明（画像形成装置）に関して、前記データ管理手段として、スレッドとして実行されるアプリケーションがメモリ上に確保している描画データの管理を行う描画データ管理手段を備える。
【０００７】
請求項３に記載の発明（画像形成装置）は、請求項２に記載の発明（画像形成装置）に関して、前記描画データ管理手段は、当該画像形成装置の画面を占有する前記アプリケーションの描画データをメモリ上に反映させて、当該画像形成装置の画面を占有しない前記アプリケーションの描画データをメモリ上から削除するような前記描画データの管理を行う。
【０００８】
請求項４に記載の発明（画像形成装置）は、請求項２又は３に記載の発明（画像形成装置）に関して、前記描画データ管理手段は、前記アプリケーションのウィンドウの表示枚数の管理を行う。
【０００９】
請求項５に記載の発明（画像形成装置）は、請求項２又は３に記載の発明（画像形成装置）に関して、前記描画データ管理手段は、前記アプリケーションのウィンドウの表示順番の管理を行う。
【００１０】
請求項６に記載の発明（画像形成装置）は、請求項２又は３に記載の発明（画像形成装置）に関して、前記描画データ管理手段は、前記アプリケーションのウィンドウのハイライト表示の管理を行う。
【００１１】
請求項７に記載の発明（画像形成装置）は、スレッドとして実行されるアプリケーションのライフサイクルの管理を行うアプリケーション管理手段と、前記アプリケーションのライフサイクルに影響する当該画像形成装置のイベントを前記アプリケーション管理手段に通知するイベント通知手段とを備える。
【００１２】
請求項８に記載の発明（画像形成装置）は、請求項７に記載の発明（画像形成装置）に関して、前記イベント通知手段として、前記アプリケーションのライフサイクルに影響する当該画像形成装置の電源のイベントを前記アプリケーション管理手段に通知する電源イベント通知手段を備える。
【００１３】
請求項９に記載の発明（画像形成装置）は、請求項１乃至８のいずれか１項に記載の発明（画像形成装置）に関して、前記アプリケーションは、Ｘｌｅｔである。
【００１４】
請求項１０に記載の発明（画像形成装置）は、請求項７又は８に記載の発明（画像形成装置）に関して、前記アプリケーション管理手段は、Ｘｌｅｔ  Ｍａｎａｇｅｒである。
【００１５】
請求項１１に記載の発明（情報処理方法）は、画像形成装置によって実行される情報処理方法であって、スレッドとして実行されるアプリケーションがメモリ上に確保しているデータの管理を行うデータ管理段階を備える。
【００１６】
請求項１２に記載の発明（情報処理方法）は、請求項１１に記載の発明（情報処理方法）に関して、前記データ管理段階として、スレッドとして実行されるアプリケーションがメモリ上に確保している描画データの管理を行う描画データ管理段階を備える。
【００１７】
請求項１３に記載の発明（情報処理方法）は、請求項１２に記載の発明（情報処理方法）に関して、前記描画データ管理段階で、当該画像形成装置の画面を占有する前記アプリケーションの描画データをメモリ上に反映させて、当該画像形成装置の画面を占有しない前記アプリケーションの描画データをメモリ上から削除するような前記描画データの管理を行う。
【００１８】
請求項１４に記載の発明（情報処理方法）は、請求項１２又は１３に記載の発明（情報処理方法）に関して、前記描画データ管理段階では、前記アプリケーションのウィンドウの表示枚数の管理を行う。
【００１９】
請求項１５に記載の発明（情報処理方法）は、請求項１２又は１３に記載の発明（情報処理方法）に関して、前記描画データ管理段階では、前記アプリケーションのウィンドウの表示順番の管理を行う。
【００２０】
請求項１６に記載の発明（情報処理方法）は、請求項１２又は１３に記載の発明（情報処理方法）に関して、前記描画データ管理段階では、前記アプリケーションのウィンドウのハイライト表示の管理を行う。
【００２１】
請求項１７に記載の発明（情報処理方法）は、スレッドとして実行されるアプリケーションのライフサイクルの管理を行うアプリケーション管理手段を備える画像形成装置によって実行される情報処理方法であって、前記アプリケーションのライフサイクルに影響する当該画像形成装置のイベントを前記アプリケーション管理手段に通知するイベント通知段階を備える。
【００２２】
請求項１８に記載の発明（情報処理方法）は、請求項１７に記載の発明（情報処理方法）に関して、前記イベント通知段階として、前記アプリケーションのライフサイクルに影響する当該画像形成装置の電源のイベントを前記アプリケーション管理手段に通知する電源イベント通知段階を備える。
【００２３】
請求項１９に記載の発明（情報処理方法）は、請求項１１乃至１８のいずれか１項に記載の発明（情報処理方法）に関して、前記アプリケーションは、Ｘｌｅｔである。
【００２４】
請求項２０に記載の発明（情報処理方法）は、請求項１７又は１８に記載の発明（情報処理方法）に関して、前記アプリケーション管理手段は、Ｘｌｅｔ  Ｍａｎａｇｅｒである。
【００２５】
請求項２１に記載の発明（情報処理プログラム）は、請求項１１乃至２０のいずれか１項に記載の情報処理方法をコンピュータに実行させる情報処理プログラムである。
【００２６】
請求項２２に記載の発明（情報処理プログラム）は、請求項１１乃至２０のいずれか１項に記載の情報処理方法をコンピュータに実行させる情報処理プログラムが記録されたコンピュータ読取可能な記録媒体である。
【発明の効果】
【００２７】
このように、本発明は、新たなアプリケーション管理機構を備える画像形成装置を提案するものである。
【発明を実施するための最良の形態】
【００２８】
図１は、本発明の実施例に該当する融合機１０１を表す。図１の融合機１０１は、種々のハードウェア１１１と、種々のソフトウェア１１２と、融合機起動部１１３により構成される。図１の融合機１０１は、コピーやプリンタやスキャナやファクシミリとして機能することができる。
【００２９】
融合機１０１のハードウェア１１１としては、撮像部１２１と、印刷部１２２と、その他のハードウェア１２３が存在する。
【００３０】
撮像部１２１は、原稿から画像（画像データ）を読み取るためのハードウェアであり、コピーやスキャナやファクシミリとして機能する際に使用される。撮像部１２１は、白黒画像用の物でもカラー画像用の物でもよい。撮像部１２１は、原稿に関する機構として、原稿セット部等を備える。
【００３１】
印刷部１２２は、画像（画像データ）を印刷用紙等の印刷媒体に印刷するためのハードウェアであり、コピーやプリンタやファクシミリとして機能する際に使用される。印刷部１２２は、白黒画像用の物でもカラー画像用の物でもよい。印刷部１２２は、ここでは電子写真方式を採用しており、感光体、帯電機、露光機、現像機、転写機、定着機等を備える。印刷部１２２は、印刷用紙等に関する機構として、給紙部、排紙部、印刷用紙等搬送機構等を備える。
【００３２】
その他のハードウェア１２３については、図２において説明する。
【００３３】
融合機１０１のソフトウェア１１２としては、種々のアプリケーション１３１と、種々のプラットフォーム１３２が存在する。これらのプログラムは、ＵＮＩＸ（登録商標）等のＯＳ（オペレーティングシステム）によりプロセス単位で並列的に実行される。
【００３４】
アプリケーション１３１は、コピーやプリンタやスキャナやファクシミリ等の機能に固有な情報処理を実行するためのソフトウェアである。アプリケーション１３１としては、コピー用のアプリケーションであるコピーアプリ１４１と、プリンタ用のアプリケーションであるプリンタアプリ１４２と、スキャナ用のアプリケーションであるスキャナアプリ１４３と、ファクシミリ用のアプリケーションであるファクシミリアプリ１４４と、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ１４５が存在する。ネットワークファイルアプリ１４５は、ＨＴＭＬ文書等の閲覧用のＷｅｂブラウザや、ＨＴＭＬ文書等の配信用のＷｅｂサーバソフトにより構成される。
【００３５】
アプリケーション１３１は、専用のＳＤＫ（ソフトウェア開発キット）を使用して開発することができる。ＳＤＫを使用して開発したアプリケーション１３１をＳＤＫアプリと呼ぶ。専用のＳＤＫとしては、Ｃ言語でアプリケーション１３１を開発するための「ＣＳＤＫ」や、Ｊａｖａ（登録商標）言語でアプリケーション１３１を開発するための「ＪＳＤＫ」が提供される。ＣＳＤＫを使用して開発したアプリケーション１３１を「ＣＳＤＫアプリ」と呼び、ＪＳＤＫを使用して開発したアプリケーション１３１を「ＪＳＤＫアプリ」と呼ぶ。図１の融合機１０１にも、ＣＳＤＫアプリ１４６と、ＪＳＤＫアプリ１４７が存在する。図１の融合機１０１にはさらに、Ｊａｖａ（登録商標）言語で記述されたＪＳＤＫアプリ１４７とＣ言語で記述された他のソフトウェア１１２との仲介を行うソフトウェア１１２として、ＪＳＤＫプラットフォーム１４８が存在する。
【００３６】
プラットフォーム１３２は、アプリケーション１３１からの処理要求に関する情報処理を実行するためのソフトウェアである。アプリケーション１３１からの処理要求の受信には、予め定義されている関数により処理要求を受信するアプリケーションプログラムインタフェース（ＡＰＩ）１３３を利用して、要求内容の実施には、エンジンインタフェース１３４を利用する。プラットフォーム１３２としては、種々のコントロールサービス１５１と、システムリソースマネージャ１５２と、種々のハンドラ１５３が存在する。
【００３７】
コントロールサービス１５１は、アプリケーション１３１からの処理要求を解釈して、解釈結果に応じてハードウェア１１１の獲得要求を発生させる。コントロールサービス１５１としては、ネットワークコントロールサービス（ＮＣＳ）１６１と、ファクシミリコントロールサービス（ＦＣＳ）１６２と、デリバリコントロールサービス（ＤＣＳ）１６３と、エンジンコントロールサービス（ＥＣＳ）１６４と、メモリコントロールサービス（ＭＣＳ）１６５と、オペレーションパネルコントロールサービス（ＯＣＳ）１６６と、サーティフィケーションコントロールサービス（ＣＣＳ）１６７と、ユーザディレクトリコントロールサービス（ＵＣＳ）１６８と、システムコントロールサービス（ＳＣＳ）１６９が存在する。
【００３８】
ＮＣＳ１６１のプロセスは、ネットワーク等を介してデータ通信を行うための仲介を行う。ＦＣＳ１６２のプロセスは、ファクシミリとして画像データ通信・画像データ読取・画像データ印刷等を行うためのＡＰＩを提供する。ＤＣＳ１６３のプロセスは、融合機１０１に蓄積された文書データの配信に関する制御を行う。ＥＣＳ１６４のプロセスは、撮像部１２１や印刷部１２２等のエンジン部に関する制御を行う。ＭＣＳ１６５のプロセスは、画像データ記憶・画像データ処理等のメモリやハードディスクドライブに関する制御を行う。ＯＣＳ１６６のプロセスは、オペレーションパネルに関する制御を行う。ＣＣＳ１６７のプロセスは、認証処理や課金処理に関する制御を行う。ＵＣＳ１６８のプロセスは、ユーザ情報の管理に関する制御を行う。ＳＣＳ１６９のプロセスは、システムの管理に関する制御を行う。
【００３９】
システムリソースマネージャ（ＳＲＭ）１５２は、ハードウェア１１１の獲得要求を調停して、調停結果に応じて要求内容を実施するための制御を行う。詳細に言うと、ＳＲＭ１５２のプロセスは、獲得要求に係るハードウェア１１１が利用可能か否か（他の獲得要求と競合しないか否か）を判定して、利用可能である場合にはその旨をコントロールサービス１５１の各プロセスに通知する。さらに、獲得要求に係るハードウェア１１１の利用スケジュールを作成して、作成結果に応じて要求内容を実施するための制御を行う。
【００４０】
ハンドラ１５３は、調停結果に応じてハードウェア１１１を管理する。ハンドラ１５３としては、ファクシミリコントロールユニットハンドラ（ＦＣＵＨ）１７１と、イメージメモリハンドラ（ＩＭＨ）１７２が存在する。ＦＣＵＨ１７１は、ファクシミリコントロールユニットを管理する。ＩＭＨ１７２は、各プロセスにメモリを割り振り、各プロセスに割り振ったメモリを管理する。
【００４１】
アプリケーション１３１とプラットフォーム１３２の仲介を行うソフトウェア１１２として、仮想アプリケーションサービス（ＶＡＳ）１３５が存在する。ＶＡＳ１３５は、アプリケーション１３１をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム１３２をサーバとするクライアントプロセスとして動作する。ＶＡＳ１３５は、アプリケーション１３１から見てプラットフォーム１３２を隠蔽するラッピング機能を備え、プラットフォーム１３２のバージョンアップに伴うバージョン差を吸収する役割等を担う。
【００４２】
融合機起動部１１３は、融合機１０１の電源投入時に最初に実行される。これにより、ＵＮＩＸ（登録商標）等のＯＳが起動され、アプリケーション１３１やプラットフォーム１３２が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
【００４３】
図２は、図１の融合機１０１に係るハードウェア構成図である。融合機１０１のハードウェア１１１としては、コントローラ２０１と、オペレーションパネル２０２と、ファクシミリコントロールユニット（ＦＣＵ）２０３と、撮像部１２１と、印刷部１２２が存在する。撮像部１２１と印刷部１２２を除く各構成要素が、図１の「その他のハードウェア１２３」に該当する。
【００４４】
コントローラ２０１は、ＣＰＵ２１１と、ＡＳＩＣ２１２と、ＮＢ（ノースブリッジ）２２１と、ＳＢ（サウスブリッジ）２２２と、ＭＥＭ−Ｐ（システムメモリ）２３１と、ＭＥＭ−Ｃ（ローカルメモリ）２３２と、ＨＤＤ（ハードディスクドライブ）２３３と、メモリカードスロット２３４と、ＮＩＣ（ネットワークインタフェースコントローラ）２４１と、ＵＳＢデバイス２４２と、ＩＥＥＥ１３９４デバイス２４３と、セントロニクスデバイス２４４により構成される。
【００４５】
ＣＰＵ２１１は、種々の情報処理を実行するためのＩＣであり、アプリケーション１３１やプラットフォーム１３２をＵＮＩＸ（登録商標）等のＯＳによりプロセス単位で並列的に実行する。ＡＳＩＣ２１２は、画像処理用のＩＣである。ＮＢ２２１は、ＣＰＵ２１１とＡＳＩＣ２１２を接続するためのブリッジである。ＳＢ２２２は、ＮＢ２２１と周辺機器等を接続するためのブリッジである。ＡＳＩＣ２１２とＮＢ２２１は、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）を介して接続されている。
【００４６】
ＭＥＭ−Ｐ２３１は、ＮＢ２２１に接続されたメモリである。ＭＥＭ−Ｃ２３２は、ＡＳＩＣ２１２に接続されたメモリである。ＨＤＤ２３３は、ＡＳＩＣ２１２に接続されたストレージであり、画像データ蓄積・文書データ蓄積・プログラム蓄積・フォントデータ蓄積・フォームデータ蓄積等を行うために使用される。メモリカードスロット２３４は、ＳＢ２２２に接続されたスロットであり、メモリカード２３５をセット（挿入）するために使用される。
【００４７】
ＮＩＣ２４１は、ネットワーク等を介してＭＡＣアドレス等を使用したデータ通信を行うためのコントローラである。ＵＳＢデバイス２４２は、ＵＳＢ規格に準拠したシリアルポートを提供するためのデバイスである。ＩＥＥＥ１３９４デバイス２４３は、ＩＥＥＥ１３９４規格に準拠したシリアルポートを提供するためのデバイスである。セントロニクスデバイス２４４は、セントロニクス仕様に準拠したパラレルポートを提供するためのデバイスである。ＮＩＣ２４１と、ＵＳＢデバイス２４２と、ＩＥＥＥ１３９４デバイス２４３と、セントロニクスデバイス２４４は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｅｃｔ）バスを介してＮＢ２２１とＳＢ２２２に接続されている。
【００４８】
オペレーションパネル２０２は、オペレータが融合機１０１に入力を行うためのハードウェア（操作部）であると共に、オペレータが融合機１０１から出力を得るためのハードウェア（表示部）である。オペレーションパネル２０２は、ＡＳＩＣ２１２に接続されている。ＦＣＵ２０３と、撮像部１２１と、印刷部１２２は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｅｃｔ）バスを介してＡＳＩＣ２１２に接続されている。
【００４９】
図３は、図１の融合機１０１に係る外観図である。図３には、撮像部１２１の位置と、印刷部１２２の位置と、オペレーションパネル２０２の位置が図示されている。図３にはまた、原稿をセットするための原稿セット部３０１と、印刷用紙等の給紙先となる給紙部３０２と、印刷用紙等の排紙先となる排紙部３０３が図示されている。原稿セット部３０１は、撮像部１２１の構成要素であり、給紙部３０２と排紙部３０３は、印刷部１２２の構成要素である。
【００５０】
オペレーションパネル２０２は、図４のように、タッチパネル３１１と、テンキー３１２と、スタートボタン３１３と、リセットボタン３１４と、機能キー３１５と、初期設定ボタン３１６により構成される。
【００５１】
タッチパネル３１１は、タッチ操作で入力を行うためのハードウェア（タッチ操作部）であると共に、画面表示で出力を得るためのハードウェア（画面表示部）である。テンキー３１２は、キー操作で数字入力を行うためのハードウェアである。スタートボタン３１３は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン３１４は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー３１５は、キー操作でＣＳＤＫ１４６による操作画面やＪＳＤＫ１４７による操作画面を表示させるためのハードウェアである。初期設定ボタン３１６は、ボタン操作で初期設定画面を表示させるためのハードウェアである。
【００５２】
融合機１０１は、原稿セット部３０１に原稿がセットされている場合、スタートボタン３１３が押されることで、撮像部１２１によりその原稿から画像を読み取る。融合機１０１は、コピーとして機能する場合、印刷部１２２によりその画像を印刷用紙等に印刷することになり、ファクシミリとして機能する場合、ＦＣＵ２０３やＮＩＣ２４１によりその画像を電話回線やネットワーク等を介して他の機器に送信することになる。印刷用紙等の給紙先は給紙部３０２であり、印刷用紙等の排紙先は排紙部３０３である。
【００５３】
原稿セット部３０１は、ＡＤＦ（自動原稿搬送装置）３２１と、フラットベッド３２２と、フラットベッドカバー３２３により構成される。給紙部３０２は、４個の給紙トレイと１個の手差しトレイにより構成される。排紙部３０３は、１個の排紙トレイにより構成される。
【００５４】
ＡＤＦ３２１には、複数枚の原稿を重ねてセットすることができる。融合機１０１は、ＡＤＦ３２１に原稿がセットされている場合、スタートボタン３１３が押されることで、撮像部１２１によりその原稿から画像を読み取る。詳細に言うと、ＡＤＦ３２１に複数枚の原稿が重ねてセットされている場合、スタートボタン３１３が押されることで、ＡＤＦ３２１が、図３の矢印のような経路で複数枚の原稿を１枚ずつ搬送し、撮像部１２１が、図３の矢印のような経路で１枚ずつ搬送される原稿から画像を読み取る。
【００５５】
フラットベッド３２２には、原稿を下向きにセットする。融合機１０１は、フラットベッド３２２に原稿がセットされている場合、スタートボタン３１３が押されることで、撮像部１２１によりその原稿から画像を読み取る。詳細に言うと、フラットベッド３２２に原稿が下向きにセットされている場合、スタートボタン３１３が押されることで、撮像部１２１が、透明なフラットベッド３２２を介して対面する原稿から画像を読み取る。
【００５６】
（ＪＳＤＫ）
図５は、図１のＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８のクラス図である。ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８は、全体で１プロセスとして、同一プロセス上で実行される。ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８中の各ブロックは、それぞれこの１プロセス上のスレッドとして、スレッド単位で並列的に実行（マルチスレッド）される。ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８は、Ｊａｖａ（登録商標）コンパイラによりソースコードからバイトコードに一括翻訳されており、Ｊａｖａ（登録商標）仮想マシンにより逐次実行される。ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８は、Ｊａｖａ（登録商標）  ２  Ｍｉｃｒｏ  ＥｄｉｔｉｏｎのＰｅｒｓｏｎａｌ  Ｂａｓｉｓ  Ｐｒｏｆｉｌｅをベースとする実装となっている。
【００５７】
ＪＳＤＫアプリ１４７としては、ユーザアプリ５０１と、ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１と、Ｔａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ５１２等が存在する。
【００５８】
ユーザアプリ５０１は、融合機１０１のユーザ（例えばベンダ）がＪＳＤＫを使用して開発したＪＳＤＫアプリである。ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１は、他のＪＳＤＫアプリ（ユーザアプリ５０１等）を操作対象とする操作画面の表示等を行うＪＳＤＫアプリである。Ｔａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ５１２は、他のＪＳＤＫアプリ（ユーザアプリ５０１等）を操作対象とするタスクバーの表示等を行うＪＳＤＫアプリである。
【００５９】
ユーザアプリ５０１はここでは、スタンドアロンアプリケーションやアプレットと並ぶＪａｖａ（登録商標）アプリケーションであるＸｌｅｔである。ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１とＴａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ５１２はここでは、独自の拡張を施したＸｌｅｔ（ＸｌｅｔＥｘ）である。
【００６０】
ＪＳＤＫプラットフォーム１４８には、ＪＳＤＫ  Ｍａｉｎ５２１と、ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ５２２と、Ｌｏｃａｌｅ  Ｍａｎａｇｅｒ５２３と、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１と、Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ５３２と、ＪＳＤＫ  Ｍａｎａｇｅｒ５３３と、Ｓｅｎｄ  Ｍａｎａｇｅｒ５４１と、Ｅｖｅｎｔ  Ｍａｎａｇｅｒ５４２と、Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ５４３と、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４と、Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５と、Ｓｅｒｖｅｒ／Ｃｌｉｅｎｔ  Ｍａｎａｇｅｒ５４６等のクラスが存在する。
【００６１】
ＪＳＤＫ  Ｍａｉｎ５２１は、ＪＳＤＫシステムの起動設定を行うクラスである。ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ５２２は、ＪＳＤＫシステムの起動環境設定を行うクラスである。Ｌｏｃａｌｅ  Ｍａｎａｇｅｒ５２３は、国際化対応（言語指定）を行うクラスである。
【００６２】
Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１は、１対１でＸｌｅｔのライフサイクルを管理するクラスである。ここでは、５個のＸｌｅｔのライフサイクルが１対１で５個のＸｌｅｔ  Ｍａｎａｇｅｒ５３１によって管理される。Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ５３２は、全てのＸｌｅｔ  Ｍａｎａｇｅｒ５３１のライフサイクルを管理するクラスである。ここでは、５個のＸｌｅｔ  Ｍａｎａｇｅｒ５３１のライフサイクルが全て１個のＭｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ５３２によって管理される。ＪＳＤＫ  Ｍａｎａｇｅｒ５３３は、ＪＳＤＫシステム全体のライフサイクルを管理するクラスである。例えば、Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ５３２，Ｓｅｎｄ  Ｍａｎａｇｅｒ５４１，Ｅｖｅｎｔ  Ｍａｎａｇｅｒ５４２，Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ５４３，Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４，Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５，Ｓｅｒｖｅｒ／Ｃｌｉｅｎｔ  Ｍａｎａｇｅｒ５４６のライフサイクルが、ＪＳＤＫ  Ｍａｎａｇｅｒ５３３によって管理される。
【００６３】
Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ５４３は、図１のプラットフォーム１３２からのシステムイベント（電力モード等）の管理を行うクラスである。Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、１個のＸｌｅｔがオペレーションパネル２０２の画面を占有する際の調停等を行うクラスである。Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５は、ＳＤｃａｒｄやＷｅｂからのインストールやアンインストールの管理を行うクラスである。
【００６４】
図５のＪＳＤＫシステムでは、ＡＰＩとして、ＪＳＤＫ  ＡＰＩ５５１とＪＳＤＫ  ＡＰＩ５５２が利用される。なお、ＸｌｅｔとＸｌｅｔＥｘの差異として、オブジェクトにアクセスするのにＪＳＤＫ  ＡＰＩ５５１の利用とＪＳＤＫプラットフォーム１４８へのアクセスが可能である点が挙げられる。図１の融合機１０１にはさらに、図５のＪＳＤＫシステムに係る要素として、Ｃ言語とＪａｖａ（登録商標）言語のインタフェースとなるＪＳＤＫ  Ｓｅｓｓｉｏｎ５５３とＮａｔｉｖｅ  ＪＳＤＫ  Ｓｅｓｓｉｏｎ５５４や、ＪＳＤＫアプリ１４７とＪＳＤＫプラットフォーム１４８を実行するためＪａｖａ（登録商標）仮想マシンであるＣＶＭ５５５等が存在する。
【００６５】
ここで、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４について説明する。Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、ＪＳＤＫアプリ１４７が融合機１０１の画面（タッチパネル３１１）に描画するために融合機１０１のメモリ（ＭＥＭ−Ｐ２３１やＭＥＭ−Ｃ２３２）上に確保している描画データの管理を行う。ＯＣＳ１６６は、プロセス単位での描画データの管理を前提としており、ＪＳＤＫプラットフォーム１４８が、スレッド単位での描画データの管理を行う必要があるからである。ＪＳＤＫアプリ１４７の描画データの例としては、ＪＳＤＫアプリ１４７のウィンドウ，当該ウィンドウ内のメッセージ，当該ウィンドウ内のボタン，当該ウィンドウ内のアイコン等が挙げられる。
【００６６】
Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、以下のような描画情報管理を行う。１）融合機１０１の画面を占有するＪＳＤＫアプリ１４７の描画データをメモリ上に反映させ、融合機１０１の画面を占有しないＪＳＤＫアプリ１４７の描画データをメモリ上から削除するような描画情報管理。２）上記のウィンドウの表示枚数の管理。３）上記のウィンドウの表示順番の管理。４）上記ウィンドウのハイライト表示の管理。５）融合機１０１の電源のＯＮ／ＯＦＦに伴う再描画処理のための描画情報管理。
【００６７】
上記の１）は、上記のメモリの節約等を目的として実行される。融合機１０１の画面を占有するＪＳＤＫアプリ１４７と占有しないＪＳＤＫアプリ１４７とがメモリを消費するとメモリが不足するおそれがあるため、ＪＳＤＫアプリ１４７には意識させることなく、融合機１０１の画面を占有しないＪＳＤＫアプリ１４７の描画データをメモリ上から削除するようにしたのである。上記の２）は主に、上記のウィンドウの表示枚数がメモリ上に確保可能なウィンドウの最大許容枚数を越えることを防ぐために実行される。上記の３）は主に、メモリ上から削除したウィンドウを再びメモリ上に反映させる際にウィンドウの表示順番を復元するために実行される。上記の４）は主に、メモリ上から削除したウィンドウを再びメモリ上に反映させる際にウィンドウのハイライト表示を復元するために実行される。上記の５）は、アイコンローディング等を目的として実行される。
【００６８】
図２１は、融合機１０１の画面を占有するＪＳＤＫアプリ１４７を切り替える切替処理について説明するための図である。図２１Ａは、ＡＷＴに準拠したＣＶＭ５５５上の描画データ（ウィンドウ）のツリー構造を表す。ウィンドウ６１１は、ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１のウィンドウである。ウィンドウ６１１Ａが親ウィンドウ（ｒｏｏｔウィンドウ）であり、ウィンドウ６１１Ｂが子ウィンドウである。ウィンドウ６１２は、Ｔａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ５１２のウィンドウである。ウィンドウ６１２Ａが親ウィンドウ（ｒｏｏｔウィンドウ）である。ウィンドウ６０１−１は、ユーザアプリ５０１（１）のウィンドウである。ウィンドウ６０１−１Ａが親ウィンドウ（ｒｏｏｔウィンドウ）であり、ウィンドウ６０１−１Ｂ，Ｃ，Ｄが子ウィンドウである。ウィンドウ６０１−２は、ユーザアプリ５０１（２）のウィンドウである。ウィンドウ６０１−２Ａが親ウィンドウ（ｒｏｏｔウィンドウ）であり、ウィンドウ６０１−２Ｂ，Ｃ，Ｄが子ウィンドウである。ウィンドウ６０１−３は、ユーザアプリ５０１（３）のウィンドウである。ウィンドウ６０１−３Ａが親ウィンドウ（ｒｏｏｔウィンドウ）であり、ウィンドウ６０１−３Ｂが子ウィンドウである。
【００６９】
融合機１０１の画面のオーナーがユーザアプリ５０１（１）である場合には、図２１Ｂのように、ユーザアプリ５０１（１）のウィンドウ６０１−１とＴａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ６１１のウィンドウ６１１とがメモリ上に反映される。融合機１０１の画面のオーナーがユーザアプリ５０１（２）である場合には、図２１Ｃのように、ユーザアプリ５０１（２）のウィンドウ６０１−２とＴａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ６１１のウィンドウ６１１とがメモリ上に反映される。融合機１０１の画面のオーナーがユーザアプリ５０１（１）からユーザアプリ５０１（２）に切り替えられると、図２１Ｂから図２１Ｃのように、ユーザアプリ５０１（１）のウィンドウ６０１−１がメモリ上から削除され、ユーザアプリ５０１（２）のウィンドウ６０１−２がメモリ上に反映されることになる。
【００７０】
図２２は、ＪＳＤＫアプリ１４７のウィンドウの表示順番管理について説明するためのシーケンス図である。ウィンドウの表示順番とは、あるウィンドウが画面の前面にあってあるウィンドウが画面の後面にあるというウィンドウの重なり順番のことである。
【００７１】
ウィンドウの表示順番は、ＷｉｎＯｒｄｅｒクラスとＷｉｎｄｏｗクラスが利用されて管理される。ＷｉｎＯｒｄｅｒクラスは、ウィンドウの表示順番を管理するためのクラスであり、ウィンドウオブジェクトを格納するためのコンテナを持つ。Ｗｉｎｄｏｗクラスは、コンテナを継承したクラスであり、コンテナに対するウィンドウオブジェクトの追加や削除を行う。ＷｉｎＯｒｄｅｒクラスのメソッドとしては、指定ウィンドウをコンテナ先頭に追加するａｄｄＷｉｎｄｏｗ（）や、指定ウィンドウをコンテナから削除するｒｅｍｏｖｅＷｉｎｄｏｗ（）や、指定ウィンドウをコンテナ先頭に移動するｓｅｔＦｉｒｓｔ（）や、指定ウィンドウをコンテナ末尾に移動するｓｅｔＬａｓｔ（）等が存在する。Ｗｉｎｄｏｗクラスのメソッドとしては、指定ウィンドウ（子ウィンドウ）をコンテナに追加するａｄｄ（）や、指定ウィンドウ（子ウィンドウ）にＷｉｎＯｒｄｅｒを引き渡すｗｉｎ．ｓｅｔＷｉｎＯｒｄｅｒ（）や、指定ＷｉｎＯｒｄｅｒをＯｒｄｅｒフィールドに割付けるｓｅｔＷｉｎＯｒｄｅｒ（）や、自らを最前面表示させるｔｏＦｒｏｎｔ（）等が存在する。
【００７２】
図２２の説明に入る。始めに、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１がユーザアプリ５０１−１を生成（Ｓ１）する。これに続いて、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１からＰａｎｅｌ  Ｍａｎａｇｅｒ５４４に、ユーザアプリ５０１−１のルートウィンドウ６０１−１Ａの生成要求が送信（Ｓ２）される。これに応じて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４がユーザアプリ５０１−１のルートウィンドウ６０１−１Ａを生成（Ｓ３）する。これに続いて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４がユーザアプリ５０１−１のＷｉｎＯｒｄｅｒ７０１−１を生成（Ｓ４）する。これに続いて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、ルートウィンドウ６０１−１ＡにＷｉｎＯｒｄｅｒ７０１−１をリンク（Ｓ５）させる。これに応じて、ルートウィンドウ６０１−１Ａは、自らをＷｉｎＯｒｄｅｒ７０１−１に登録（Ｓ６）する。これにて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４からＸｌｅｔ  Ｍａｎａｇｅｒ５３１に、ユーザアプリ５０１−１のルートウィンドウ６０１−１Ａの生成応答が送信（Ｓ７）される。図２２のように、この時点でのウィンドウの表示順番は「ルートウィンドウＡ」が「１番」になる。
【００７３】
続いて、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１がユーザアプリ５０１−１を起動（Ｓ１１）させて開始（Ｓ１２）させる。これに続いて、ユーザアプリ５０１−１がウィンドウ６０１−１Ｂを生成（Ｓ１３）する。これに続いて、ユーザアプリ５０１−１は、ルートウィンドウ６０１−１Ａにウィンドウ６０１−１Ｂを貼り付け（Ｓ１４）る。これに応じて、ルートウィンドウ６０１−１Ａは、ウィンドウ６０１−１ＢにＷｉｎＯｒｄｅｒ７０１−１をリンク（Ｓ１５）させる。これに応じて、ウィンドウ６０１−１Ｂは、自らをＷｉｎＯｒｄｅｒ７０１−１に登録（Ｓ１６）する。図２２のように、この時点でのウィンドウの表示順番は「ウィンドウＢ」が「１番」で「ルートウィンドウＡ」が「２番」になる。
【００７４】
続いて、ユーザアプリ５０１−１からルートウィンドウ６０１−１Ａに、ルートウィンドウ６０１−１Ａを最前面表示させる旨の要求が送信（Ｓ２１）される。これに応じて、ルートウィンドウ６０１−１Ａは、自らを最前面表示させる旨をＷｉｎＯｒｄｅｒ７０１−１に登録（Ｓ２２）する。図２２のように、この時点でのウィンドウの表示順番は「ルートウィンドウＡ」が「１番」で「ウィンドウＢ」が「２番」になる。
【００７５】
図２３は、ＪＳＤＫアプリ１４７のウィンドウのハイライト表示管理について説明するためのシーケンス図である。ウィンドウのハイライト表示とは、あるウィンドウが画面に明色表示されてあるウィンドウが画面に暗色表示されるというウィンドウの明色暗色表示のことである。
【００７６】
ウィンドウのハイライト表示は、ＨｉＬｉｇｈｔＷｉｎクラスとＷｉｎｄｏｗクラスが利用されて管理される。ＨｉＬｉｇｈｔＷｉｎクラスは、ウィンドウのハイライト表示を管理するためのクラスであり、ハイライト表示されるウィンドウオブジェクトを格納するためのコンテナを持つ。Ｗｉｎｄｏｗクラスは、コンテナを継承したクラスであり、コンテナに対するウィンドウオブジェクトの追加や削除を行う。ＨｉＬｉｇｈｔＷｉｎクラスのメソッドとしては、指定ウィンドウをコンテナに追加するａｄｄＷｉｎｄｏｗ（）や、指定ウィンドウをコンテナから削除するｒｅｍｏｖｅＷｉｎｄｏｗ（）や、ハイライト表示されるウィンドウ等をコンテナから取得するｇｅｔＨｉＬｉｇｈｔ（）等が存在する。Ｗｉｎｄｏｗクラスのメソッドとしては、指定ウィンドウ（子ウィンドウ）をコンテナに追加するａｄｄ（）や、指定ウィンドウ（子ウィンドウ）にＨｉＬｉｇｈｔＷｉｎを引き渡すｗｉｎ．ｌｉｎｋＨｉＬｉｇｈｔＷｉｎ（）や、指定ＨｉＬｉｇｈｔＷｉｎをＨｉＬｉｇｈｔフィールドに割付けるｌｉｎｋＨｉＬｉｇｈｔＷｉｎ（）や、自らをハイライト表示させるｓｅｔＨｉＬｉｇｈｔ（）等が存在する。
【００７７】
図２３の説明に入る。始めに、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１がユーザアプリ５０１−１を生成（Ｓ１）する。これに続いて、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１からＰａｎｅｌ  Ｍａｎａｇｅｒ５４４に、ユーザアプリ５０１−１のルートウィンドウ６０１−１Ａの生成要求が送信（Ｓ２）される。これに応じて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４がユーザアプリ５０１−１のルートウィンドウ６０１−１Ａを生成（Ｓ３）する。これに続いて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４がユーザアプリ５０１−１のＨｉＬｉｇｈｔＷｉｎ８０１−１を生成（Ｓ４）する。これに続いて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、ルートウィンドウ６０１−１ＡにＨｉＬｉｇｈｔＷｉｎ８０１−１をリンク（Ｓ５）させる。これに続いて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、タスクバー、すなわち、Ｔａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ５１２のルートウィンドウ６１２ＡをＨｉＬｉｇｈｔＷｉｎ８０１−１に登録（Ｓ６）する。これにて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４からＸｌｅｔ  Ｍａｎａｇｅｒ５３１に、ユーザアプリ５０１−１のルートウィンドウ６０１−１Ａの生成応答が送信（Ｓ７）される。図２３のように、この時点のハイライト表示対象のウィンドウは「タスクバー」になる。
【００７８】
続いて、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１がユーザアプリ５０１−１を起動（Ｓ１１）させて開始（Ｓ１２）させる。これに続いて、ユーザアプリ５０１−１がウィンドウ６０１−１Ｂを生成（Ｓ１３）する。これに続いて、ユーザアプリ５０１−１は、ルートウィンドウ６０１−１Ａにウィンドウ６０１−１Ｂを貼り付け（Ｓ１４）る。これに応じて、ルートウィンドウ６０１−１Ａは、ウィンドウ６０１−１ＢにＨｉＬｉｇｈｔＷｉｎ８０１−１をリンク（Ｓ１５）させる。図２３のように、この時点でのハイライト表示対象のウィンドウは「タスクバー」になる。
【００７９】
続いて、ユーザアプリ５０１−１からウィンドウ６０１−１Ｂに、ウィンドウ６０１−１Ｂをハイライト表示させる旨の要求が送信（Ｓ２１）される。これに応じて、ウィンドウ６０１−１Ｂは、自らをハイライト表示させる旨をＷｉｎＯｒｄｅｒ７０１−１に登録（Ｓ２２）する。図２３のように、この時点でのハイライト表示対象のウィンドウは「タスクバー」と「ウィンドウＢ」になる。
【００８０】
図２４は、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４が管理する描画関連データのデータ構造を表す。Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、各ＪＳＤＫアプリ１４７に係る描画関連データを、各ＪＳＤＫアプリ１４７に係るＸｌｅｔＩｎｆｏクラス９０１に格納して管理する。ＸｌｅｔＩｎｆｏクラス９０１は、Ｘｌｅｔを特定するための情報を格納するためのＸｌｅｔクラス９１１，上述のＷｉｎＯｒｄｅｒクラス９１２，上述のＨｉＬｉｇｈｔＷｉｎクラス９１３，ルートウィンドウに係る上述のＷｉｎｄｏｗクラス９１４Ａにより構成される。
【００８１】
ルートウィンドウに係るＷｉｎｄｏｗクラス９１４Ａは、ルートウィンドウの下位階層のウィンドウ（ここではウィンドウＢ）に係るＷｉｎｄｏｗクラス９１４Ｂ等により構成される。ウィンドウＢに係るＷｉｎｄｏｗクラス９１４Ｂは、ウィンドウＢの下位階層のウィンドウ（ここではウィンドウＣ）に係るＷｉｎｄｏｗクラス９１４Ｃ等によって構成される。Ｗｉｎｄｏｗクラス９１４Ａ，Ｂ，Ｃは更に、メッセージ，ボタン，アイコン等を格納するためのクラス等により構成される。図２５は、図２４の描画関連データに対応する描画内容を表す。
【００８２】
ここで、Ｓｙｓｔｅｍ  Ｍａｎａｇｅｒ５４３を構成するＰｏｗｅｒ  Ｍａｎａｇｅｒについて説明する。Ｐｏｗｅｒ  Ｍａｎａｇｅｒは、融合機１０１の電源のＯＮ／ＯＦＦイベント（電源モード移行）をＸｌｅｔ  Ｍａｎａｇｅｒ５３１に通知するものとする。ＪＳＤＫアプリ１４７（Ｘｌｅｔ）のライフサイクルに影響する電源のＯＮ／ＯＦＦイベントを、ＪＳＤＫアプリ１４７（Ｘｌｅｔ）のライフサイクルの管理を行うＸｌｅｔ  Ｍａｎａｇｅｒ５３１に通知するのである。
【００８３】
図２６は、電源のＯＮ／ＯＦＦイベントの通知処理について説明するためのシーケンス図である。融合機１０１の電源がＯＦＦになる際には、ＳＣＳ１６９からＰｏｗｅｒ  Ｍａｎａｇｅｒ５６１に、電源ＯＦＦの問い合わせが送信（Ｓ１）される。これに応じて、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１は、電源ＯＦＦが可能かどうかを判断（Ｓ２）する。電源ＯＦＦが可能でない場合には、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１からＳＣＳ１６９に、電源ＯＦＦ却下応答が送信（Ｓ３）される。電源ＯＦＦが可能である場合には、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１から各Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１に、電源がＯＦＦになる旨が通知（Ｓ４）される。これに応じて、各Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１から各Ｘｌｅｔに、電源がＯＦＦになる旨が通知（Ｓ５）される。これに応じて、所定の各Ｘｌｅｔが停止（Ｓ６）することになる。そして、各Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１からＰａｎｅｌ  Ｍａｎａｇｅｒ５４４に、電源がＯＦＦになる旨が通知（Ｓ７）される。これに応じて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、各Ｘｌｅｔが確保しているメモリを開放（Ｓ８）することになる。そして、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４からＰｏｗｅｒ  Ｍａｎａｇｅｒ５６１に、電源ＯＦＦ処理の完了通知が送信（Ｓ９）される。これに応じて、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１からＳＣＳ１６９に、電源ＯＦＦ許可応答が送信（Ｓ１０）される。
【００８４】
続いて、ＳＣＳ１６９からＰｏｗｅｒ  Ｍａｎａｇｅｒ５６１に、電源ＯＦＦの結果が
送信（Ｓ１１）される。ここで、融合機１０１の電源ＯＦＦが確定した（Ｓ１２）場合、ＳＣＳ１６９からＰｏｗｅｒ  Ｍａｎａｇｅｒ５６１に、電源がＯＮになる旨が通知（Ｓ１３）されると、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１から各Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１に、電源がＯＮになる旨が通知（Ｓ１４）される。融合機１０１の電源ＯＦＦが確定しなかった（Ｓ１２）場合も、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１から各Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１に、電源がＯＮになる旨が通知（Ｓ１４）される。これに応じて、各Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１からＰａｎｅｌ  Ｍａｎａｇｅｒ５４４に、電源がＯＮになる旨が通知（Ｓ１５）される。これに応じて、Ｐａｎｅｌ  Ｍａｎａｇｅｒ５４４は、メモリへの書込処理を実行（Ｓ１６）することになる。そして、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１から各Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１に、書込処理の完了通知が送信（Ｓ１７）される。これに応じて、各Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１から各Ｘｌｅｔに、電源がＯＮになる旨が通知（Ｓ１８）される。これに応じて、所定の各Ｘｌｅｔが再開（Ｓ１９）することになる。一方で、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１からＰｏｗｅｒ  Ｍａｎａｇｅｒ５６１に、書込処理の完了通知が送信（Ｓ２１）される。これに応じて、Ｐｏｗｅｒ  Ｍａｎａｇｅｒ５６１からＳＣＳ１６９に、電源ＯＮ準備完了応答が送信（Ｓ２２）される。
【００８５】
図６は、ＪＳＤＫシステムの起動手順について説明するための図である。ＪＳＤＫシステムではまず、ＪＳＤＫアプリ１４７を起動するｍａｉｎ（）関数を有するクラスであるＪＳＤＫ  Ｍａｉｎ５２１が、ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ５２２を生成（Ｓ１）する。続いて、ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ５２２が、Ｎａｔｉｖｅ層の構築（Ｓ２）と言語環境の構築（Ｓ３）をもって、ＪＳＤＫシステムの実行環境の構築を行う。続いて、ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ５２２が、ＪＳＤＫ  Ｍａｎａｇｅｒ５３３を生成（Ｓ４）する。ＪＳＤＫシステムではそして、ＪＳＤＫ  Ｍａｎａｇｅｒ５３３が、システム層のＭａｎａｇｅｒを生成（Ｓ５−１２）し、Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ５３２とＸｌｅｔ  Ｍａｎａｇｅｒ５３１を通じて、アプリ層のＭａｎａｇｅｒを生成（Ｓ１３−１４）する。
【００８６】
図７は、ＪＳＤＫシステムのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）について説明するための図である。融合機１０１の機能キー３１５（図４参照）を押すと、図６のＳ１−１４が実行されて、図７のＧＵＩが融合機１０１のタッチパネル３１１（図４参照）に表示される。図７のＧＵＩは、ユーザアプリ５０１を操作対象とする操作画面であり、図６のＳ１３で起動されたＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１によって表示される。
【００８７】
図７Ａは、画面を占有させるユーザアプリ５０１の切替操作を行うための切替操作画面である。図７Ｂは、ユーザアプリ５０１の起動操作を行うための起動操作画面である。図７Ｃは、ユーザアプリ５０１の終了操作を行うための終了操作画面である。図７Ｄは、ユーザアプリ５０１のインストール操作を行うためのインストール操作画面である。図７Ｅは、ユーザアプリ５０１のアンインストール操作を行うためのアンインストール操作画面である。図７Ａが、機能キー３１５を押した直後にタッチパネル３１１に表示される初期画面であり、図７Ａ，Ｂ，Ｃ，Ｄ，Ｅはそれぞれ切り替え，起動，終了，インストール，アンインストールのボタンをタッチすると表示されることになる。
【００８８】
ＳｉｍｐｌｅＰｒｉｎｔ，ＳｉｍｐｌｅＣｏｐｙ，ＳｉｍｐｌｅＯｃｒ，ＳｉｍｐｌｅＳｃａｎ等はそれぞれユーザアプリ５０１である。例えば、ＳｉｍｐｌｅＰｒｉｎｔは、電子文書のファイル名を入力することで当該電子文書のプリントを実行できるようにするためのアプリケーションである。なお、アプリケーションのタイプとは、ＧＵＩを有するアプリケーションであるか否かを意味する。
【００８９】
図７Ａの切替操作画面について説明する。図７Ａの切替操作画面には、切替操作対象としてインストール済みで実行中のユーザアプリ５０１の一覧が表示される。
【００９０】
図７Ａの切替操作画面で「ＳｉｍｐｌｅＰｒｉｎｔ」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔにオペレーションパネル２０２のオーナー権が付与されることになり、ＳｉｍｐｌｅＰｒｉｎｔが画面を占有することになる。これに伴って、図７Ａの画面から図８Ａの画面に画面が移る。図８Ａは、画面を占有するＳｉｍｐｌｅＰｒｉｎｔにより表示されるＧＵＩである。
【００９１】
図７Ａの切替操作画面で「ＳｉｍｐｌｅＣｏｐｙ」にタッチすると、ＳｉｍｐｌｅＣｏｐｙにオペレーションパネル２０２のオーナー権が付与されることになり、ＳｉｍｐｌｅＣｏｐｙが画面を占有することになる。これに伴って、図７Ａの画面から図８Ｂの画面に画面が移る。図７Ａに示すように、ＳｉｍｐｌｅＣｏｐｙの状態は「異常」なので、図８Ｂのように、画面上にはＳｉｍｐｌｅＣｏｐｙに係るエラーメッセージが表示される。
【００９２】
図７Ａの切替操作画面で「ＳｉｍｐｌｅＯｃｒ」にタッチすると、ＳｉｍｐｌｅＯｃｒにオペレーションパネル２０２のオーナー権が付与されることになり、ＳｉｍｐｌｅＯｃｒが画面を占有することになる。これに伴って、図７Ａの画面から図８Ｃの画面に画面が移る。図７Ａに示すように、ＳｉｍｐｌｅＯｃｒのタイプは「ＧＵＩ無」なので、図８Ｃのように、画面上にはＳｉｍｐｌｅＯｃｒの状態が表示される。
【００９３】
図８Ａ，Ｂ，Ｃの画面の左端（楕円形で示す領域内）には、図６のＳ１４で起動されたＴａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ５１２により、ユーザアプリ５０１を操作対象とするタスクバーが表示される。これらのタスクバーは、画面を占有させるユーザアプリ５０１の切替操作を行うための切替タスクバーである。
【００９４】
図８Ａの画面で切替タスクバー中の「ＳＣ」や「ＳＯ」にタッチすると、ＳｉｍｐｌｅＣｏｐｙやＳｉｍｐｌｅＯｃｒにオペレーションパネル２０２のオーナー権が付与されることになり、ＳｉｍｐｌｅＣｏｐｙやＳｉｍｐｌｅＯｃｒが画面を占有することになる。これに伴い、図８Ａの画面から図８Ｂや図８Ｃの画面に画面が移る。図８Ａの画面で切替タスクバー中の「ＪＳＤＫ」にタッチすると、図７Ａの画面に画面が戻る。
【００９５】
図８Ｂの画面で切替タスクバー中の「ＳＰ」や「ＳＯ」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔやＳｉｍｐｌｅＯｃｒにオペレーションパネル２０２のオーナー権が付与されることになり、ＳｉｍｐｌｅＰｒｉｎｔやＳｉｍｐｌｅＯｃｒが画面を占有することになる。これに伴い、図８Ｂの画面から図８Ａや図８Ｃの画面に画面が移る。図８Ｂの画面で切替タスクバー中の「ＪＳＤＫ」にタッチすると、図７Ａの画面に画面が戻る。
【００９６】
図８Ｃの画面で切替タスクバー中の「ＳＰ」や「ＳＣ」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔやＳｉｍｐｌｅＣｏｐｙにオペレーションパネル２０２のオーナー権が付与されることになり、ＳｉｍｐｌｅＰｒｉｎｔやＳｉｍｐｌｅＣｏｐｙが画面を占有することになる。これに伴い、図８Ｃの画面から図８Ａや図８Ｂの画面に画面が移る。図８Ｃの画面で切替タスクバー中の「ＪＳＤＫ」にタッチすると、図７Ａの画面に画面が戻る。
【００９７】
図７Ｂの起動操作画面について説明する。図７Ｂの起動操作画面には、起動操作対象としてインストール済みで実行されていないユーザアプリ５０１の一覧が表示される。
【００９８】
図７Ｂの起動操作画面で「ＳｉｍｐｌｅＰｒｉｎｔ」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔの起動処理を実行するか否かを確認する確認画面（図９）が表示される。図９の確認画面でプロダクトコードを入力し「実行」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔが起動されることになる。
【００９９】
図７Ｃの終了操作画面について説明する。図７Ｃの終了操作画面には、終了操作対象としてインストール済みで実行中のユーザアプリ５０１の一覧が表示される。
【０１００】
図７Ｃの終了操作画面で「ＳｉｍｐｌｅＰｒｉｎｔ」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔの強制終了処理を実行するか否かを確認する確認画面（図１０）が表示される。図１０の確認画面で「実行」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔが強制終了されることになる。
【０１０１】
図７Ｄのインストール操作画面について説明する。ユーザアプリ５０１のインストール処理により、起動可能ユーザアプリとして未登録のユーザアプリ５０１が起動可能ユーザアプリとして登録されることになる。図７Ｄのインストール操作画面には、インストール操作対象としてユーザアプリ５０１の一覧がインストール状況と共に表示される。
【０１０２】
図７Ｄのインストール操作画面で「ＳｉｍｐｌｅＰｒｉｎｔ」にタッチすると、ＳＤｃａｒｄを格納元とするＳｉｍｐｌｅＰｒｉｎｔのインストール先を確認する確認画面（図１１）が表示される。図１１の確認画面で「ＳＤｃａｒｄ」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔがＳＤｃａｒｄをインストール先としてインストールされることになり、図１１の確認画面で「ＨＤＤ」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔがＨＤＤをインストール先としてインストールされることになる。
【０１０３】
図７Ｅのアンインストール操作画面について説明する。ユーザアプリ５０１のアンインストール処理により、起動可能ユーザアプリとして登録済みのユーザアプリ５０１が起動可能ユーザアプリとしての登録を抹消されることになる。図７Ｅのアンインストール操作画面には、アンインストール操作対象として登録済みのユーザアプリ５０１の一覧が表示される。
【０１０４】
図７Ｅのアンインストール操作画面で「ＳｉｍｐｌｅＰｒｉｎｔ」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔのアンインストール処理を実行するか否かを確認する確認画面（図１２）が表示される。図１２の確認画面で「実行」にタッチすると、ＳｉｍｐｌｅＰｒｉｎｔがアンインストールされることになる。
【０１０５】
図１３は、起動操作画面の表示手順について説明するための図である。切替操作画面で起動のボタンがタッチされると、ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１からＩｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５に、インストール済みのユーザアプリ５０１の一覧要求が送信（Ｓ１）される。これに応じて、Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５は、インストール済みのユーザアプリ５０１の格納位置に係る情報（融合機１０１内のＮＶＲＡＭに格納されている）を元に、インストール済みのユーザアプリ５１１のＪＮＬＰファイルを取得（Ｓ２）する。融合機１０１にセットされたＳＤｃａｒｄからは、当該ＳＤｃａｒｄ内のユーザアプリ５１１のＪＮＬＰファイルが取得される。融合機１０１内のＨＤＤからは、当該ＨＤＤ内のユーザアプリ５１１のＪＮＬＰファイルが取得される。ＪＮＬＰファイルは、ユーザアプリ５１１と１対１で対応しており、ユーザアプリ５１１の定義付けに係る情報を含んでいる。そして、インストール済みのユーザアプリ５１１のＪＮＬＰファイルの内容を元に、Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５からＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１に、インストール済みのユーザアプリ５０１の一覧応答が送信（Ｓ３）される。これにより、切替操作画面から起動操作画面に画面が移ることになる。
【０１０６】
図１４は、起動処理の実行手順について説明するための図である。起動操作画面で選択操作が実行されて確認画面で確認操作が実行されると、ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１からＪＳＤＫ  Ｍａｎａｇｅｒ５３３に、ユーザアプリ５０１の起動要求が送信（Ｓ１）される。これに応じて、ＪＳＤＫ  Ｍａｎａｇｅｒ５３３からＭｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ５３２に、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ５４７による認証処理を経由してから、ユーザアプリ５０１の起動要求が送信（Ｓ２）される。これに応じて、Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ５３２がＸｌｅｔ  Ｍａｎａｇｅｒ５３１を起動（Ｓ３）し、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１がＰａｎｅｌ  Ｍａｎａｇｅｒ５４４からルートウィンドウを取得（Ｓ４）し、Ｘｌｅｔ  Ｍａｎａｇｅｒ５３１がユーザアプリ５０１を起動（Ｓ５）する。そして、Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ５３２からＪＳＤＫ  Ｍａｎａｇｅｒ５３３に、ユーザアプリ５３３の起動応答が送信（Ｓ６）される。そして、ＪＳＤＫ  Ｍａｎａｇｅｒ５３３からＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１に、ユーザアプリ５３３の起動応答が送信（Ｓ７）される。
【０１０７】
図１５は、インストール操作画面の表示手順について説明するための図である。切替操作画面上でインストールのボタンがタッチされると、ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１からＩｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５に、ユーザアプリ５０１の一覧要求が送信（Ｓ１）される。これに応じて、Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５は、ユーザアプリ５１１のＪＮＬＰファイルを取得（Ｓ２）する。融合機１０１にセットされたＳＤｃａｒｄからは、当該ＳＤｃａｒｄ内のユーザアプリ５１１のＪＮＬＰファイルが取得される。融合機１０１とネットワークで接続されたＷｅｂサーバからは、当該Ｗｅｂサーバ内のユーザアプリ５１１のＪＮＬＰファイルが取得される。ＪＮＬＰファイルは、ユーザアプリ５１１と１対１で対応しており、ユーザアプリ５１１の定義付けに係る情報を含んでいる。そして、ユーザアプリ５０１のインストール状況に関する情報（融合機１０１内のＮＶＲＡＭに格納されている）や、ユーザアプリ５１１のＪＮＬＰファイルの内容を元にして、Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５からＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１に、ユーザアプリ５０１の一覧応答が送信（Ｓ３）される。これにより、切替操作画面からインストール操作画面に画面が移ることになる。
【０１０８】
図１６は、インストール処理の実行手順について説明するための図である。インストール操作画面で選択操作が実行されて確認画面で確認操作が実行されると、ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１からＩｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５に、ユーザアプリ５０１のインストール要求が送信（Ｓ１）される。これに応じて、Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５は、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ５４７による認証処理を経由してから、ユーザアプリ５０１をインストール（Ｓ２）する。そして、Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ５４５からＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ５１１に、ユーザアプリ５３３のインストール応答が送信（Ｓ３）される。
【０１０９】
図１７は、ＪＮＬＰファイルの構文の例を表す。ＪＮＬＰ（Ｊａｖａ（登録商標）  Ｎｅｔｗｏｒｋ  Ｌａｕｎｃｈｉｎｇ  Ｐｒｏｔｏｃｏｌ）ファイルはＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイルであり、ＪＮＬＰファイル書式はＪＮＬＰ規格に準拠している。ただし、ＪＳＤＫ向けに独自の拡張を施している部分があるため、以下その部分について説明する。
【０１１０】
記述１は、ｉｎｆｏｒｍａｔｉｏｎエレメントであり、アプリケーション名を示すｔｉｔｌｅエレメント（記述１Ａ）や、ベンダ名を示すｖｅｎｄｅｒエレメント（記述１Ｂ）や、ベンダの電話番号を示すｔｅｌｅｐｈｏｎｅエレメント（記述１Ｃ）や、ベンダのファクス電話番号を示すｆａｘエレメント（記述１Ｄ）や、アプリケーションのプロダクトＩＤを示すｐｒｏｄｕｃｔＩＤエレメント（記述１Ｅ）を含んでいる。
【０１１１】
記述２は、ｓｅｃｕｒｉｔｙエレメントである。
【０１１２】
記述３は、ｒｅｓｏｕｒｃｅエレメントであり、ＪＳＤＫのバージョンを指定するｊｓｄｋエレメント（記述３Ａ）や、ＪＡＲファイル（アプリケーションの実行ファイル）とそのバージョンを指定するｊａｒエレメント（記述３Ｂ）や、ＳＵＢ−ＪＮＬＰファイルを指定するｓｕｂ−ｊｎｌｐエレメント（記述３Ｃ）を含んでいる。
【０１１３】
記述４は、ｕｐｄａｔｅエレメントであり、更新処理の実行方法を設定するエレメントである。ａｕｔｏであればアプリケーションの更新処理は自動更新で実行され、ｍａｎｕａｌであればアプリケーションの更新処理は手動更新で実行され、ｍａｉｌであればアプリケーションの更新処理が実行可能である場合にその旨を通知する更新通知メールが配信される。
【０１１４】
記述５は、ｉｎｓｔａｌｌエレメントであり、インストール処理の実行方法を設定するエレメントである。ａｕｔｏであればアプリケーションのインストール先は自動選択にて選択され、ｍａｎｕａｌであればアプリケーションのインストール先は手動選択にて選択される。
【０１１５】
記述６は、アプリケーションのタイプが「ＧＵＩ有」であるか「ＧＵＩ無」であるかを示す。
【０１１６】
図１７のｕｐｄａｔｅエレメントで触れたように、インストール済みのＪＳＤＫアプリ１４７は更新処理の対象となる。以下、インストール済みのＪＳＤＫアプリ１４７を自動更新する自動更新処理について説明する。
【０１１７】
図１８は、ＳＤｃａｒｄ又はＨＤＤ内のＪＳＤＫアプリ１４７（更新対象アプリ）を、ＳＤｃａｒｄからのＪＳＤＫアプリ１４７（更新用アプリ）に自動更新する自動更新処理に係るフローチャートである。
【０１１８】
ＪＳＤＫプラットフォーム１４８は、融合機１０１に接続された更新用ＳＤｃａｒｄスロットに更新用ＳＤｃａｒｄがセットされた場合、更新用ＳＤｃａｒｄ内の更新用アプリのＪＮＬＰファイルを取得（Ｓ１０１）する。ＪＳＤＫプラットフォーム１４８は、そのＪＮＬＰファイルのｕｐｄａｔｅエレメントが「ａｕｔｏ」で、そのＪＮＬＰファイルに係る更新用アプリと同一の更新対象アプリが存在する場合（Ｓ１０２・Ｓ１０３）には、その更新用アプリのバージョンとその更新対象アプリのバージョンとを比較（Ｓ１０４）する。ＪＳＤＫプラットフォーム１４８は、更新用アプリのバージョンが更新対象アプリのバージョンより新しい場合（Ｓ１０５）には、更新用アプリをもって更新対象アプリを更新（Ｓ１０６）する。
【０１１９】
図１９は、ＳＤｃａｒｄ又はＨＤＤ内のＪＳＤＫアプリ１４７（更新対象アプリ）を、ＷｅｂからのＪＳＤＫアプリ１４７（更新用アプリ）に自動更新する自動更新処理に係るフローチャートである。
【０１２０】
ＪＳＤＫプラットフォーム１４８は、更新対象アプリのＪＮＬＰファイルを取得（Ｓ２０１）する。ＪＳＤＫプラットフォーム１４８は、そのＪＮＬＰファイルのｕｐｄａｔｅエレメントが「ａｕｔｏ」で、そのＪＮＬＰファイルに係る更新対象アプリと同一の更新用アプリが、融合機１０１とネットワーク接続されたＷｅｂサーバ内に存在する場合（Ｓ２０２・Ｓ２０３）には、その更新対象アプリのバージョンとその更新用アプリのバージョンとを比較（Ｓ２０４）する。ＪＳＤＫプラットフォーム１４８は、更新対象アプリのバージョンより更新用アプリのバージョンが新しい場合（Ｓ２０５）には、更新対象アプリを更新用アプリをもって更新（Ｓ２０６）する。
【０１２１】
最後に、図５の説明中で登場したＸｌｅｔ等のライフサイクルについて説明することにする。
【０１２２】
図２０は、Ｘｌｅｔの状態遷移図である。Ｘｌｅｔの状態としては、初期化状態（Ｌｏａｄｅｄ）と、停止状態（Ｐａｕｓｅｄ）と、活性化状態（Ａｃｔｉｖｅ）と、終了状態（Ｄｅｓｔｒｏｙｅｄ）が存在する。Ｘｌｅｔの状態は、起動（ｉｎｉｔＸｌｅｔ）や、開始（ｓｔａｒｔＸｌｅｔ）や、停止（ｐａｕｓｅＸｌｅｔ）や、終了（ｄｅｓｔｒｏｙＸｌｅｔ）等のメソッドコールによって遷移する。Ｘｌｅｔのライフサイクルとは、このようなＸｌｅｔの状態遷移にほかならない。ただし、どのような状態が存在するか、どのようにして状態が遷移するか、については様々なバリエーションがあり得るだろう。このことは、Ｘｌｅｔ  ＭａｎａｇｅｒやＭｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒその他の各Ｍａｎａｇｅｒについても同様である。
【０１２３】
初期化状態は、Ｘｌｅｔインスタンスの生成直後の状態である。初期化状態への遷移は１度限りである。停止状態は、サービス提供停止中の状態であり、活性化状態は、サービス提供中の状態である。停止状態と活性化状態との間の遷移は何度でも可能である。終了状態は、Ｘｌｅｔインスタンスの消滅直後の状態である。終了状態への遷移は１度限りである。
【０１２４】
図５の説明中で記載したように、ＪＳＤＫアプリ１４７のライフサイクルは、ＪＳＤＫプラットフォーム１４８によって管理される。例えば、ＪＳＤＫアプリ１４７は、自己の開始・停止・終了の際には自己の開始・停止・終了をＪＳＤＫプラットフォーム１４８に依頼するのである。ＪＳＤＫアプリ１４７のライフサイクルをＪＳＤＫプラットフォーム１４８によって管理するメリットとしては例えば、メモリの節約が可能になることが挙げられる。特に、多数のＪＳＤＫアプリ１４７がそれぞれスレッドとして実行されるマルチスレッドにおいては、このメリットの存在価値は大きいと言える。ＪＳＤＫアプリ１４７をＸｌｅｔとするメリットとしては例えば、ＪＳＤＫアプリ１４７のライフサイクル管理が容易になることが挙げられる。
【０１２５】
（変形例）
図１の融合機１０１は、本発明（画像形成装置）の実施例に該当し、図１の融合機１０１によって実行される情報処理は、本発明（情報処理方法）の実施例に該当する。図５のＪＳＤＫプラットフォーム１４８は、本発明（情報処理プログラム）の実施例に該当し、図５のＪＳＤＫプラットフォーム１４８が記録されたＳＤｃａｒｄやＣＤ−ＲＯＭは、本発明（記録媒体）の実施例に該当する。
【図面の簡単な説明】
【０１２６】
【図１】本発明の実施例に該当する融合機を表す。
【図２】図１の融合機に係るハードウェア構成図である。
【図３】図１の融合機に係る外観図である。
【図４】オペレーションパネルを表す。
【図５】図１のＪＳＤＫアプリとＪＳＤＫプラットフォームのクラス図である。
【図６】ＪＳＤＫシステムの起動手順について説明するための図である。
【図７】ＪＳＤＫシステムのＧＵＩについて説明するための図である。
【図８】切替操作画面について説明するための図である。
【図９】起動操作画面について説明するための図である。
【図１０】終了操作画面について説明するための図である。
【図１１】インストール操作画面について説明するための図である。
【図１２】アンインストール操作画面について説明するための図である。
【図１３】起動操作画面の表示手順について説明するための図である。
【図１４】起動処理の実行手順について説明するための図である。
【図１５】インストール操作画面の表示手順について説明するための図である。
【図１６】インストール処理の実行手順について説明するための図である。
【図１７】ＪＮＬＰファイルの構文の例を表す。
【図１８】ＪＳＤＫアプリをＳＤｃａｒｄからのＪＳＤＫアプリに自動更新する自動更新処理に係るフローチャートである。
【図１９】ＪＳＤＫアプリをＷｅｂからのＪＳＤＫアプリに自動更新する自動更新処理に係るフローチャートである。
【図２０】Ｘｌｅｔの状態遷移図である。
【図２１】切替処理について説明するための図である。
【図２２】表示順番管理について説明するためのシーケンス図である。
【図２３】ハイライト表示管理について説明するためのシーケンス図である。
【図２４】Ｐａｎｅｌ  Ｍａｎａｇｅｒが管理する描画関連データのデータ構造を表す。
【図２５】図２４の描画関連データに対応する描画内容を表す。
【図２６】電源のＯＮ／ＯＦＦイベントの通知処理について説明するためのシーケンス図である。
【符号の説明】
【０１２７】
１０１  融合機
１１１  ハードウェア
１１２  ソフトウェア
１１３  融合機起動部
１２１  撮像部
１２２  印刷部
１２３  その他のハードウェア
１３１  アプリケーション
１３２  プラットフォーム
１３３  アプリケーションプログラムインタフェース
１３４  エンジンインタフェース
１３５  仮想アプリケーションサービス
１４１  コピーアプリ
１４２  プリンタアプリ
１４３  スキャナアプリ
１４４  ファクシミリアプリ
１４５  ネットワークファイルアプリ
１４６  ＣＳＤＫアプリ
１４７  ＪＳＤＫアプリ
１４８  ＪＳＤＫプラットフォーム
１５１  コントロールサービス
１５２  システムリソースマネージャ
１５３  ハンドラ
１６１  ネットワークコントロールサービス
１６２  ファクシミリコントロールサービス
１６３  デリバリコントロールサービス
１６４  エンジンコントロールサービス
１６５  メモリコントロールサービス
１６６  オペレーションパネルコントロールサービス
１６７  サーティフィケーションコントロールサービス
１６８  ユーザディレクトリコントロールサービス
１６９  システムコントロールサービス
１７１  ファクシミリコントロールユニットハンドラ
１７２  イメージメモリハンドラ
２０１  コントローラ
２０２  オペレーションパネル
２０３  ファクシミリコントロールユニット
２１１  ＣＰＵ
２１２  ＡＳＩＣ
２２１  ＮＢ
２２２  ＳＢ
２３１  ＭＥＭ−Ｐ
２３２  ＭＥＭ−Ｃ
２３３  ＨＤＤ
２３４  メモリカードスロット
２３５  メモリカード
２４１  ＮＩＣ
２４２  ＵＳＢデバイス
２４３  ＩＥＥＥ１３９４デバイス
２４４  セントロニクスデバイス
３０１  原稿セット部
３０２  給紙部
３０３  排紙部
３１１  タッチパネル
３１２  テンキー
３１３  スタートボタン
３１４  リセットボタン
３１５  機能キー
３１６  初期設定ボタン
３２１  ＡＤＦ
３２２  フラットベッド
３２３  フラットベッドカバー
５０１  ユーザアプリ
５１１  ＪＳＤＫ  ＧＵＩ  Ｍａｎａｇｅｒ
５１２  Ｔａｓｋ  Ｂａｒ  Ｍａｎａｇｅｒ
５２１  ＪＳＤＫ  Ｍａｉｎ
５２２  ＪＳＤＫ  Ｅｎｖｉｒｏｎｍｅｎｔ
５２３  Ｌｏｃａｌｅ  Ｍａｎａｇｅｒ
５３１  Ｘｌｅｔ  Ｍａｎａｇｅｒ
５３２  Ｍｕｌｔｉ  Ｘｌｅｔ  Ｍａｎａｇｅｒ
５３３  ＪＳＤＫ  Ｍａｎａｇｅｒ
５４１  Ｓｅｎｄ  Ｍａｎａｇｅｒ
５４２  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ
５４３  Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｍａｎａｇｅｒ
５４４  Ｐａｎｅｌ  Ｍａｎａｇｅｒ
５４５  Ｉｎｓｔａｌｌ  Ｍａｎａｇｅｒ
５４６  Ｓｅｒｖｅｒ／Ｃｌｉｅｎｔ  Ｍａｎａｇｅｒ
５４７  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ
５５１  ＪＳＤＫ  ＡＰＩ
５５２  ＪＳＤＫ  ＡＰＩ
５５３  ＪＳＤＫ  Ｓｅｓｓｉｏｎ
５５４  Ｎａｔｉｖｅ  ＪＳＤＫ  Ｓｅｓｓｉｏｎ
５５５  ＣＶＭ
５６１  Ｐｏｗｅｒ  Ｍａｎａｇｅｒ
６０１  ウィンドウ
６１１  ウィンドウ
６１２  ウィンドウ
７０１  ＷｉｎＯｒｄｅｒ
８０１  ＨｉＬｉｇｈｔＷｉｎ
９０１  ＸｌｅｔＩｎｆｏクラス
９１１  Ｘｌｅｔクラス
９１２  ＷｉｎＯｒｄｅｒクラス
９１３  ＨｉＬｉｇｈｔＷｉｎクラス
９１４  Ｗｉｎｄｏｗクラス
【図１】
2005269439.tif 000003
【図２】
2005269439.tif 000004
【図３】
2005269439.tif 000005
【図４】
2005269439.tif 000006
【図５】
2005269439.tif 000007
【図６】
2005269439.tif 000008
【図７】
2005269439.tif 000009
【図８】
2005269439.tif 000010
【図９】
2005269439.tif 000011
【図１０】
2005269439.tif 000012
【図１１】
2005269439.tif 000013
【図１２】
2005269439.tif 000014
【図１３】
2005269439.tif 000015
【図１４】
2005269439.tif 000016
【図１５】
2005269439.tif 000017
【図１６】
2005269439.tif 000018
【図１７】
2005269439.tif 000019
【図１８】
2005269439.tif 000020
【図１９】
2005269439.tif 000021
【図２０】
2005269439.tif 000022
【図２１】
2005269439.tif 000023
【図２２】
2005269439.tif 000024
【図２３】
2005269439.tif 000025
【図２４】
2005269439.tif 000026
【図２５】
2005269439.tif 000027
【図２６】
2005269439.tif 000028