(57)【要約】【課題】各ユーザが所望する設定に応じた機能の実行を適切に実現することを目的とする。【解決手段】画像形成装置であって、ネットワークを介して接続する情報処理装置が有するアプリケーションが当該画像形成装置に対して実行を要求する機能を識別する機能識別情報と、該アプリケーションに関連付けられたユーザを識別するユーザ識別情報とを含むアプリケーション情報を情報処理装置より受信し、アプリ情報管理手段に記録する手段と、当該画像形成装置の操作者のユーザ識別情報に係るアプリケーション情報の一覧をアプリ情報管理手段より取得し、表示装置に表示させる手段と、少なくとも一覧において選択されたアプリケーション情報に含まれる機能識別情報に係る機能に対する設定情報を情報処理装置より受信する手段と、機能識別情報に係る機能を設定情報に基づいて実行させる手段とを有することにより上記課題を解決する。【選択図】図１
2010074302.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
ネットワークを介して接続する情報処理装置が有するアプリケーションが当該画像形成装置に対して実行を要求する機能を識別する機能識別情報と、該アプリケーションに関連付けられたユーザを識別するユーザ識別情報とを含むアプリケーション情報を前記情報処理装置より受信し、アプリ情報管理手段に記録するアプリ情報受信手段と、
当該画像形成装置の操作者のユーザ識別情報に係る前記アプリケーション情報の一覧を前記アプリ情報管理手段より取得し、表示装置に表示させる表示制御手段と、
少なくとも前記一覧において選択されたアプリケーション情報に含まれる前記機能識別情報に係る機能に対する設定情報を前記情報処理装置より受信する設定情報受信手段と、
前記機能識別情報に係る機能を前記設定情報に基づいて実行させる機能実行制御手段と、を有する画像形成装置。
【請求項２】
前記アプリ情報受信手段は、有効期間を示す情報を含む前記アプリケーション情報を定期的に受信し、
前記有効期間を示す情報に基づいて、有効期限の切れた前記アプリケーション情報を前記アプリ情報管理手段より削除する削除手段を有することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記アプリ情報受信手段によって受信される前記アプリケーション情報に含まれる有効期間に基づいて、前記アプリ情報管理手段に管理される該受信したアプリケーション情報の有効期限を示す情報を更新し、更新後の前記受信したアプリケーション情報の有効期限を示す情報前記情報処理装置に送信する有効期限送信手段を有することを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記機能の実行結果に関する情報を前記情報処理装置に送信する結果送信手段を有し、
前記アプリケーション情報は、ネットワーク上において前記アプリケーションを識別するアプリ識別情報を含み、
前記結果送信手段は、前記機能の実行結果に関する情報を前記アプリ識別情報に基づく送信先に送信することを特徴とする請求項１乃至３いずれか一項記載の画像形成装置。
【請求項５】
請求項４記載の画像形成装置とネットワークを介して接続する情報処理装置であって、
当該情報処理装置が有するアプリケーションに関する前記機能識別情報及び前記ユーザ識別情報を含む前記アプリケーション情報を前記画像形成装置に送信するアプリ情報送信手段と、
前記機能に対する設定情報を前記画像形成装置に送信する設定情報送信手段と、
前記機能の実行結果に関する情報を前記画像形成装置より受信する結果受信手段とを有し、
前記アプリケーションは、前記実行結果に関する情報を用いて処理を実行することを特徴とする情報処理装置。
【請求項６】
前記アプリ情報送信手段は、前記アプリケーション情報の送信に応じて前記画像形成装置より送信される、前記アプリケーション情報の有効期限を示す情報に基づいて、前記アプリケーション情報を前記有効期限内に再送信することを特徴とする請求項５記載の情報処理装置。
【請求項７】
複数の前記アプリケーションに関して統合的に前記画像形成装置との通信を行うアプリケーション管理手段を有し、
前記アプリケーション管理手段は、前記アプリ情報送信手段と、前記設定情報送信手段と、前記結果受信手段とを含むことを特徴とする請求項５又は６記載の情報処理装置。
【請求項８】
画像形成装置と情報処理装置とを含む情報処理システムであって、
前記画像形成装置は、
前記情報処理装置が有するアプリケーションが当該画像形成装置に対して実行を要求する機能を識別する機能識別情報と、該アプリケーションに関連付けられたユーザを識別するユーザ識別情報とを含むアプリケーション情報を前記情報処理装置より受信し、アプリ情報管理手段に記録するアプリ情報受信手段と、
当該画像形成装置の操作者のユーザ識別情報に係る前記アプリケーション情報の一覧を前記アプリ情報管理手段より取得し、表示装置に表示させる表示制御手段と、
少なくとも前記一覧において選択されたアプリケーション情報に含まれる前記機能識別情報に係る機能に対する設定情報を前記情報処理装置より受信する設定情報受信手段と、
前記機能識別情報に係る機能を前記設定情報に基づいて実行させる機能実行制御手段と、
前記機能の実行結果に関する情報を前記情報処理装置に送信する結果送信手段とを有することを特徴とする情報処理システム。
【請求項９】
画像形成装置が実行する情報処理方法であって、
ネットワークを介して接続する情報処理装置が有するアプリケーションが当該画像形成装置に対して実行を要求する機能を識別する機能識別情報と、該アプリケーションに関連付けられたユーザを識別するユーザ識別情報とを含むアプリケーション情報を前記情報処理装置より受信し、アプリ情報管理手段に記録するアプリ情報受信手順と、
当該画像形成装置の操作者のユーザ識別情報に係る前記アプリケーション情報の一覧を前記アプリ情報管理手段より取得し、表示装置に表示させる表示制御手順と、
少なくとも前記一覧において選択されたアプリケーション情報に含まれる前記機能識別情報に係る機能に対する設定情報を前記情報処理装置より受信する設定情報受信手順と、
前記機能識別情報に係る機能を前記設定情報に基づいて実行させる機能実行制御手順と、を有する情報処理方法。
【請求項１０】
請求項１乃至４いずれか一項記載の画像形成装置とネットワークを介して接続する情報処理装置が実行する情報処理方法であって、
当該情報処理装置が有するアプリケーションに関する前記機能識別情報及び前記ユーザ識別情報を含む前記アプリケーション情報を前記画像形成装置に送信するアプリ情報送信手順と、
前記機能に対する設定情報を前記画像形成装置に送信する設定情報送信手順と、
前記機能の実行結果に関する情報を前記画像形成装置より受信する結果受信手順とを有し、
前記アプリケーションは、前記実行結果に関する情報を用いて処理を実行することを特徴とする情報処理方法。
【請求項１１】
画像形成装置に、
ネットワークを介して接続する情報処理装置が有するアプリケーションが当該画像形成装置に対して実行を要求する機能を識別する機能識別情報と、該アプリケーションに関連付けられたユーザを識別するユーザ識別情報とを含むアプリケーション情報を前記情報処理装置より受信し、アプリ情報管理手段に記録するアプリ情報受信手順と、
当該画像形成装置の操作者のユーザ識別情報に係る前記アプリケーション情報の一覧を前記アプリ情報管理手段より取得し、表示装置に表示させる表示制御手順と、
少なくとも前記一覧において選択されたアプリケーション情報に含まれる前記機能識別情報に係る機能に対する設定情報を前記情報処理装置より受信する設定情報受信手順と、
前記機能識別情報に係る機能を前記設定情報に基づいて実行させる機能実行制御手順と、
前記機能の実行結果に関する情報を前記情報処理装置に送信する結果送信手順とを実行させるためのプログラム。
【請求項１２】
請求項１乃至４いずれか一項記載の画像形成装置とネットワークを介して接続する情報処理装置に、
当該情報処理装置が有するアプリケーションに関する前記機能識別情報及び前記ユーザ識別情報を含む前記アプリケーション情報を前記画像形成装置に送信するアプリ情報送信手順と、
前記機能に対する設定情報を前記画像形成装置に送信する設定情報送信手順と、
前記機能の実行結果に関する情報を前記画像形成装置より受信する結果受信手順とを実行させ、
前記アプリケーションは、前記実行結果に関する情報を用いて処理を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、オフィス内では、画像形成装置やＦＡＸ装置等のオフィス機器が頻繁に利用され、業務の効率化が図られている。オフィス機器が導入された際に、オフィスで働く人々（オフィス機器のユーザ）は、自らのＰＣに関する情報の登録や、自らが望む機能に関する設定（カスタマイズ）等を当該オフィス機器に対して行っておくことで、より業務の効率化を図ることができる。
【０００３】
斯かる設定は、オフィス機器の操作パネルを介して行うことができる。但し、各オフィス機器の操作パネル上での操作は、ＰＣ上での設定と異なり煩雑かつ複雑である。また、利用したいオフィス機器が複数存在する場合は、各オフィス機器について同様の操作を繰り返す必要があった。
【０００４】
そこで、従来、ＰＣ上で設定された設定データを各オフィス機器がダウンロードする技術が提案されている（例えば、特許文献１）。斯かる技術によれば、オフィス機器に関する設定をＰＣ上で比較的簡便に行うことができる。
【特許文献１】特開２００４−２３４６１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された技術では、ダウンロードされた設定データはその機器を利用する全てのユーザに対して共通に適用されてしまう。そのため、各ユーザは共通の設定を受け入れざるを得ず、個別の設定を実現するためには、各オフィス機器の操作パネル上でその都度設定をしなおすという作業が必要であった。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、各ユーザが所望する設定に応じた機能の実行を適切に実現することのできる画像形成装置、情報処理装置、情報処理システム、情報処理方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、画像形成装置であって、ネットワークを介して接続する情報処理装置が有するアプリケーションが当該画像形成装置に対して実行を要求する機能を識別する機能識別情報と、該アプリケーションに関連付けられたユーザを識別するユーザ識別情報とを含むアプリケーション情報を前記情報処理装置より受信し、アプリ情報管理手段に記録するアプリ情報受信手段と、当該画像形成装置の操作者のユーザ識別情報に係る前記アプリケーション情報の一覧を前記アプリ情報管理手段より取得し、表示装置に表示させる表示制御手段と、少なくとも前記一覧において選択されたアプリケーション情報に含まれる前記機能識別情報に係る機能に対する設定情報を前記情報処理装置より受信する設定情報受信手段と、前記機能識別情報に係る機能を前記設定情報に基づいて実行させる機能実行制御手段とを有することを特徴とする。
【０００８】
このような画像形成装置では、各ユーザが所望する設定に応じた機能の実行を適切に実現することができる。
【発明の効果】
【０００９】
本発明によれば、各ユーザが所望する設定に応じた機能の実行を適切に実現することのできる画像形成装置、情報処理装置、情報処理システム、情報処理方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、第一の実施の形態におけるシステム構成例を示す図である。同図において、画像形成装置１０とクライアントＰＣ２０とは、ＬＡＮ（Local Area Network）又はインターネット等のネットワーク３０（有線又は無線の別は問わない）を介して接続されている。
【００１１】
画像形成装置１０は、印刷、スキャン、コピー、及びＦＡＸ送受信等の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を実現する装置（プリンタ、スキャナ、コピー機、ファクシミリ等）を画像形成装置１０として用いてもよい。同図において、画像形成装置１０は、サーバアプリ１２及びアプリケーションプラットフォーム１３等のソフトウェアを有する。
【００１２】
サーバアプリ１２は、クライアントＰＣ２０におけるアプリケーションプログラム（後述されるクライアントアプリ２２）と連携して動作するアプリケーションプログラムであり、クライアントアプリ登録部１２１、ＵＩ制御部１２２、クライアントアプリ検知部１２３、サービス制御部１２４、機能制御部１２５、クライアントアプリ連携部１２６、及びクライアントアプリ管理テーブル１２７等を有する。
【００１３】
クライアントアプリ検知部１２３は、ネットワーク３０を介してクライアントアプリ２２の存在を自動検知する。クライアントアプリ登録部１２１は、クライアントアプリ検知部１２３によって検知されたクライアントアプリ２２に関する情報（以下、「クライアントアプリ情報」という。）を当該クライアントアプリ２２より取得し、当該クライアントアプリ情報をクライアントアプリ管理テーブル１２７に登録（記録）する。クライアント登録部１２１は、また、有効期限が切れたクライアントアプリ情報をクライアントアプリ管理テーブル１２７より削除する。
【００１４】
ＵＩ制御部１２２は、クライアントアプリ２２を利用させるための画面等を画像形成装置１０の操作パネルに表示させる。例えば、ＵＩ制御部１２２は、クライアントアプリ管理テーブル１２７にクライアントアプリ情報が登録されているクライアントアプリ２２の一覧（クライアントアプリリスト）等を表示させ、実行対象とするクライアントアプリ２２をユーザに選択させる。すなわち、クライアントアプリ２２の実行指示は画像形成装置１０側において入力される。サービス制御部１２４は、実行対象とされたクライアントアプリ２２が画像形成装置１０に対して実行を要求するサービスの実行を制御する。クライアントアプリ２２が画像形成装置１０に対して実行を要求するサービスの識別情報（サービスＩＤ）は、クライアントアプリ情報に含まれている。なお、ここでいう「サービス」とは、画像形成装置１０に固有のハードウェア資源を利用して実現される機能の実行と、当該機能の実行結果の提供とをいう。例えば、サービスの一例としてスキャン機能の実行とスキャン結果としての画像データの提供、印刷機能の実行と印刷結果の提供等が挙げられる。クライアントアプリ連携部１２６は、サービス制御部１２４からの指示に応じ、クライアントアプリ２２と通信を行う。クライアントアプリ連携部１２６は、当該通信によって、サービスの実行に必要な設定情報（例えば、スキャンの設定情報（実行条件）等。以下「サービス設定情報」という。）を受信したり、サービス（機能）の実行結果（例えば、スキャンされた画像データ）を送信したりする。機能制御部１２５は、画像形成装置１０の機能（スキャン機能、印刷機能等）ごとに存在し、各機能に応じた処理制御を行う。
【００１５】
アプリケーションプラットフォーム１３は、サーバアプリケーション１２の実行環境を提供するソフトウェアであり、ＯＳ（Operating System）や画像形成装置１０の各種ハードウェア資源のドライバプログラム等を含む。
【００１６】
クライアントＰＣ２０は、一般的なＰＣ（Personal Computer）であり、例えば、ユーザごとに複数台配置されている。各クライアントＰＣ２０は、クライアントアプリ２２及びアプリケーションプラットフォーム２３等のソフトウェアを有する。
【００１７】
クライアントアプリ２２は、サーバアプリ１２と連携して当該クライアントアプリ２２に実装された業務ロジック（ワークフロー等）を実現するアプリケーションプログラムであり、業務ロジックごとに存在する。各クライアントアプリ２２は、自動検知応答部２２１、ＵＩ制御部２２２、Ｗｅｂサービス実行部２２３、サーバアプリ連携部２２４、外部アプリ実行部２２５、及び設定情報管理ファイル２２６等を有する。
【００１８】
自動検知応答部２２１は、クライアントアプリ検知部１２３より発行（送信）される、クライアントアプリ２２の検知用のメッセージに対して応答を行う。自動検知応答部２２１は、また、クライアントアプリ登録部１２１からの要求に応じ、クライアントアプリ情報を返信する。サーバアプリ連携部２２４は、クライアントアプリ連携部１２６からの要求に応じ、サービス設定情報を送信したり、サービスの実行結果に関する情報を受信したりする。サービス設定情報は、設定情報管理ファイル２２６に登録されている。Ｗｅｂサービス実行部２２３は、サービスの実行結果（例えば、スキャンされた画像データ）を利用して、非図示のＷｅｂサービスと連携した機能を実現する。外部アプリ実行部２２５は、サービスの実行結果を利用して、非図示の外部アプリケーション（クライアントＰＣ２０における他のアプリケーション）と連携した機能を実現する。なお、Ｗｅｂサービス実行部２２３及び外部アプリ実行部２２５は、外部との連携が不要なクライアントアプリ２２は備えていなくてもよい。
【００１９】
アプリケーションプラットフォーム２３は、各クライアントアプリ２２の実行環境を提供するソフトウェアであり、ＯＳ等を含む。
【００２０】
続いて、各装置のハードウェア構成について説明する。図２は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図２において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、ネットワークインタフェース１５、及び操作パネル１６等のハードウェアを有する。
【００２１】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、及びＨＤＤ１１４等より構成される。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等（例えば、クライアントアプリ管理テーブル１２７）が記録される。
【００２２】
スキャナ１２は、原稿より画像データを読み取るためのハードウェアである。プリンタは１３、画像データを印刷用紙に印刷するためのハードウェアである。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。ネットワークインタフェース１５は、ＬＡＮ（Local Area Network）等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。操作パネル１６は、ユーザからの入力の受け付けや、ユーザに対する情報の通知等を行うめのボタン、液晶パネル等を備えたハードウェアである。
【００２３】
図３は、本発明の実施の形態におけるクライアントＰＣのハードウェア構成例を示す図である。同図のクライアントＰＣ２０は、それぞれバスBで相互に接続されているドライブ装置２００と、補助記憶装置２０２と、メモリ装置２０３と、ＣＰＵ２０４と、インタフェース装置２０５と、表示装置２０６と、入力装置２０７とを有するように構成される。
【００２４】
クライアントＰＣ２０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体２０１によって提供される。プログラムを記録した記録媒体２０１がドライブ装置２００にセットされると、プログラムが記録媒体２０１からドライブ装置２００を介して補助記憶装置２０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体２０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置２０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等（例えば、設定情報管理ファイル２２６）を格納する。
【００２５】
メモリ装置２０３は、プログラムの起動指示があった場合に、補助記憶装置２０２からプログラムを読み出して格納する。ＣＰＵ２０４は、メモリ装置２０３に格納されたプログラムに従ってクライアントＰＣ２０に係る機能を実現する。インタフェース装置２０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置２０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置２０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００２６】
以下、本実施の形態におけるシステムの処理手順について説明する。図４は、クライアントアプリ情報の登録時の処理手順を説明するためのフローチャートである。
【００２７】
ステップＳ１１において、サーバアプリ１２のクライアントアプリ検知部１２３は、ネットワーク３０上において利用可能な（起動されている）クライアントアプリ２２の存在を検知するための処理（自動検知処理）を実行する。自動検知処理は、例えば、画像形成装置１０がネットワーク３０に接続されているクライアントＰＣ２０をブロードキャスト等によって自動的に検知する手順と、検知されたクライアントＰＣ２０に対してクライアントアプリ２２の検知用のメッセージ（クライアントアプリ検知用メッセージ）を送信する手順と、当該メッセージに対してクライアントアプリ２２の自動検知応答部２２１より応答を受信する手順とを有する。また、検知対象とするクライアントＰＣ２０のＩＰアドレスが画像形成装置１０に予め登録されていてもよいし、操作パネル１６を介してユーザより適宜入力されてもよい。この場合、クライアントＰＣ２０を検知する手順を省いて、登録されているＩＰアドレスに対してクライアントアプリ検知用メッセージを送信すればよい。
【００２８】
続いて、クライアントアプリ登録部１２１は、クライアントアプリ検知部１２３によって検知されたクライアントアプリ２２の自動検知応答部２２１に対してクライアントアプリ情報の送信を要求する（Ｓ１２）。続いて、クライアントアプリ登録部１２１は、当該要求に応じ自動検知応答部２２１より返信される当該クライアントアプリ２２のクライアントアプリ情報を受信する（Ｓ１３）。なお、クライアントアプリ情報は、クライアントアプリ２２ごとに関連付けられて補助記憶装置２０２に保存されている。
【００２９】
図５は、クライアントアプリ情報の構成例を示す図である。同図において、クライアントアプリ情報５０は、管理情報及びプレゼンテーション情報を含む。管理情報は、サーバアプリ１２がロジックを実行する上で必要な情報であり、アプリＩＤ、ユーザＩＤ、サービスＩＤ、クライアントアプリアドレス、及び有効期間等を含む。プレゼンテーション情報は、表示情報として用いられる情報であり、ユーザ表示名及びクライアントアプリ表示名等を含む。
【００３０】
アプリＩＤは、各クライアントアプリ２２を一意に識別する識別情報である。ユーザＩＤは、クライアントアプリ２２に関連付けられているユーザの識別情報である。サービスＩＤは、上記したサービスＩＤである。クライアントアプリアドレスは、ネットワーク３０上において各クライアントアプリ２２を一意に識別するための識別情報である。有効期間は、クライアントアプリ情報５０の有効期間であり、クライアントアプリ登録部１２１が、クライアントアプリ管理テーブル１２７よりクライアントアプリ情報５０を削除する際の判断材料として用いられる。ユーザ表示名は、ユーザＩＤに対応するユーザの名前の表示用の文字列である。クライアントアプリ表示名は、クライアントアプリ２２の名前の表示用の文字列である。
【００３１】
図６は、クライアントアプリ情報の具体例を示す図である。同図では、クライアントアプリ情報５０の具体例として、クライアントアプリ情報５０ａ及び５０ｂが示されている。
【００３２】
クライアントアプリ情報５０ａは、「ＳｃａｎＴｏＭｅ」と呼ばれるクライアントアプリ２２（以下、「ＳｃａｎＴｏＭｅアプリ」という。）のクライアントアプリ情報５０である。ＳｃａｎＴｏＭｅアプリは、画像形成装置１０にスキャンを実行させ、スキャンされた画像データをクライアントＰＣ２０の補助記憶装置２０２の所定の記憶領域（例えば、所定のフォルダ）に保存するといった機能を実現するクライアントアプリ２２である。したがって、サービスＩＤの「ｓｃａｎ」は、画像形成装置１０のスキャン機能を示す。また、クライアントアプリ表示名は「ＳｃａｎＴｏＭｅ」とされている。したがって、ＳｃａｎＴｏＭｅアプリは、クライアントアプリリストにおいて「ＳｃａｎＴｏＭｅ」という文字列によって表現される。
【００３３】
一方、クライアントアプリ情報５０ｂは、「ＭｙＰｒｉｎｔ」と呼ばれるクライアントアプリ２２（以下、「ＭｙＰｒｉｎｔアプリ」という。）のクライアントアプリ情報５０である。ＭｙＰｒｉｎｔアプリは、クライアントＰＣ２０の補助記憶装置２０２に保存されている所定の文書データを画像形成装置１０に印刷させるといった機能を実現するクライアントアプリ２２である。したがって、サービスＩＤの「ｐｒｉｎｔ」は、画像形成装置１０の印刷機能を示す。また、クライアントアプリ表示名は「ＭｙＰｒｉｎｔ」とされている。したがって、ＭｙＰｒｉｎｔアプリは、クライアントアプリリストにおいて「ＭｙＰｒｉｎｔ」という文字列によって表現される。
【００３４】
なお、クライアントアプリ情報５０ａ及び５０ｂにおいてクライアントアプリアドレスには各クライアントアプリ２２に対して割り当てられたＵＲＬが用いられている。但し、クライアントアプリアドレスは、ＵＲＬに限定されない。ネットワーク３０上で各クライアントアプリ２２を識別可能な情報であればよく、例えば、クライアントＰＣ２０のＩＰアドレスと、当該クライアントＰＣ２０内においてクライアントアプリ２２を識別可能な情報（例えば、ポート番号）との組み合わせであってもよい。
【００３５】
斯かるクライアントアプリ情報５０の受信に応じ、クライアントアプリ登録部１２１は、受信されたクライアントアプリ情報５０が既にクライアントアプリ管理テーブル１２７に登録されているか否かを判定する（Ｓ１４）。クライアントアプリ情報５０の一致は、アプリＩＤ、ユーザＩＤ及びクライアントアプリアドレスに基づいて行えばよい。同一機能のクライアントアプリ２２であっても（例えば、ＳｃａｎＴｏＭｅアプリであっても）、インストールされているクライアントＰＣ２０が異なればクライアントアプリアドレスは異なる。また、利用するユーザが異なればユーザＩＤは異なる。斯かる点を考慮すれば、アプリＩＤ、ユーザＩＤとクライアントアプリアドレスとの組み合わせによって各クライアントアプリ２２を識別するのが妥当だからである。
【００３６】
当該クライアントアプリ情報５０が未登録である場合（Ｓ１４でＮｏ）、クライアントアプリ登録部１２１は、当該クライアントアプリ情報５０をクライアントアプリ管理テーブル１２７に新規に登録する（Ｓ１５）。
【００３７】
図７は、クライアントアプリ管理テーブルの構成例を示す図である。同図に示されるように、クライアントアプリ管理テーブル１２７には、クライアントアプリ情報の各項目の値がそのまま登録される。但し、有効期間は有効期限に置換される。すなわち、クライアントアプリ登録部１２１は、登録時の時刻に有効期間を加算した時刻を有効期限としてクライアントアプリ管理テーブル１２７に登録する。なお、同図のクライアント管理テーブル１２７は、図６におけるクライアントアプリ情報５０ａ及び５０ｂが登録された状態を示す。
【００３８】
続いて、クライアントアプリ登録部１２１は、登録されたクライアントアプリ情報５０に対応するクライアントアプリ２２の自動検知応答部２２１に対し、クライアントアプリ情報５０が登録されたことを示すメッセージを送信する（Ｓ１６）。
【００３９】
一方、受信されたクライアントアプリ情報５０がクライアントアプリ管理テーブル１２７に既に登録されている場合（Ｓ１４でＹｅｓ）、クライアントアプリ登録部１２１は、既に登録されているレコードを、受信されたクライアントアプリ情報５０によって更新する（Ｓ１７）。更新により、有効期限が更新（延長）される。続いて、クライアントアプリ登録部１２１は、当該クライアントアプリ情報５０に対応するクライアントアプリ２２の自動検知応答部２２１に対し、クライアントアプリ情報５０が更新されたことを示すメッセージを送信する（Ｓ１８）。
【００４０】
なお、クライアント登録部１２１は、ステップＳ１６又はステップＳ１８において送信されるメッセージ内に、クライアントアプリ情報５０の有効期限を示す情報を含めるようにしてもよい。当該情報を受信した自動検知応答部２２１は、当該情報に基づいて、当該有効期限内にクライアントアプリ情報５０の再登録要求をクライアントアプリ登録部１２１に送信するようにしてもよい。
【００４１】
また、ステップＳ１６又はステップＳ１８に応じて、クライアントアプリ２２のＵＩ制御部２２２は、クライアントアプリ情報２２が登録又は更新されたことを示す画面を表示装置２０６にポップアップ表示させてもよい。この場合、ステップＳ１６又はＳ１８におけるメッセージには、クライアントアプリ情報５０の登録を行った画像形成装置１０の識別情報（機器名又は配置位置を示す情報等）を含めるようにするとよい。そうすることにより、ＵＩ制御部２２２は、当該画面上に、当該クライアントアプリ情報２２に対応するクライアントアプリ２２のクライアントアプリ表示名と共に登録先の画像形成装置１０の識別情報を表示させることができる。その結果、当該画面を参照したユーザは、どの画像形成装置１０において当該クライアントアプリ２２を利用することができるかを認識することができる。
【００４２】
続いて、クライアントアプリ２２の利用時（実行時）の処理手順について説明する。図８は、クライアントアプリの実行時の処理手順を説明するためのシーケンス図である。
【００４３】
例えば、ユーザ（画像形成装置１０の操作者）が、操作パネル１６において所定のキー（サーバアプリ１２に対応するキー）を押下すると、サーバアプリ１２のＵＩ制御部１２２は、サーバアプリ１２に対するログイン画面を表示させる（Ｓ２１）。続いて、ユーザがログイン画面を介してユーザＩＤ及びパスワードを入力すると、ＵＩ制御部１２２は、非図示の認証部にユーザの認証を実行させる（Ｓ２２）。認証に成功すると、ユーザは、画像形成装置１０内においてログインユーザとして認識され、以降の処理が実行される。なお、操作者の識別は、ＩＣカードを用いて行われてもよい。すなわち、画像形成装置１０に接続されたカードリーダがＩＣカードより読み取った情報に基づいて操作者が識別されてもよい。また、セキュリティ上の要件が低い場合は、単にユーザ一覧を操作パネル１６に表示させ、当該ユーザ一覧において選択されたユーザが操作者として識別されるようにしてもよい。
【００４４】
続いて、ＵＩ制御部１２２は、ログインユーザのユーザＩＤと一致するユーザＩＤを有するクライアントアプリ情報をクライアントアプリ管理テーブル１２７より検索し、検索されたクライアントアプリ情報のクライアントアプリ表示名の一覧（クライアントアプリリスト）を操作パネル１６に表示させる（Ｓ２３）。すなわち、各ユーザは、自らのユーザＩＤをアプリケーション情報に含むクライアントアプリ２２のみが利用可能である。
【００４５】
続いて、クライアントアプリリストにおいて実行対象とするクライアントアプリ２２が選択され、操作パネル１６におけるスタートキーが押下される（Ｓ２４）。スタートキーの押下に応じ、ＵＩ制御部１２２は、選択されたクライアントアプリ２２（以下、「カレントクライアントアプリ」という。）のクライアントアプリ情報に含まれているサービスＩＤをサービス制御部１２４に通知する。サービス制御部１２４は、通知されたサービスＩＤに応じた処理制御を行う。すなわち、サービス制御部１２４は、サービスＩＤの意味を知っており、サービスＩＤごとにどのような機能を実行すべきかを知っている。なお、サービスＩＤと実行すべき機能との対応付けについては、サービス制御部１２４内にロジックとして組み込まれていてもよいし、定義ファイルとしてＨＤＤ１１４に保存されていてもよい。
【００４６】
また、上記Ｓ２１〜Ｓ２４の処理の別形態として次のようにすることもできる。操作者がＳ２２のログイン処理を行う前に、クライアントアプリ管理テーブルに登録されているクライアントアプリ情報のクライアントアプリ表示名の一覧を操作パネル１６に表示し（Ｓ２３１）、表示された一覧から所望のクライアントアプリが選択されると選択されたクライアントアプリに対応付けられたユーザの一覧をクライアントアプリ管理テーブルから取得して操作パネル１６に表示し（Ｓ２３２）、操作パネル１６に表示されたユーザの一覧からユーザの選択がなされると、選択されたユーザについてログイン処理を実行する（Ｓ２２）。ログイン処理によりユーザの認証が成功すると、操作パネル１６におけるスタートキーの押下（Ｓ２４）によりサービス制御部へのサービスＩＤの通知が行われる。
【００４７】
例えば、カレントクライアントアプリよりサービス設定情報を取得する必要がある場合、サービス制御部１２４は、クライアントアプリ連携部１２６に対してサービスＩＤに応じたサービス設定情報（例えば、サービスＩＤが「ｓｃａｎ」であれば、スキャン機能に対する設定情報であり、サービスＩＤが「ｐｒｉｎｔ」であれば、印刷機能に対する設定情報）の取得を指示する。この際、カレントクライアントアプリのクライアントアプリアドレスがクライアントアプリ連携部１２６に通知される。当該指示に応じ、クライアントアプリ連携部１２６は、クライアントアプリアドレスに基づいて、カレントクライアントアプリ２２に対してサービス設定情報の送信を要求する（Ｓ２５）。
【００４８】
カレントクライアントアプリのサーバアプリ連携部２２４は、当該要求を受信すると、カレントクライアントアプリに対応する設定情報管理ファイル２２６よりサービス設定情報を取得し（読み込み）、当該サービス設定情報をクライアントアプリ連携部１２６に返信する（Ｓ２６）。
【００４９】
図９は、サービス設定情報の具体例を示す図である。同図において、２２６ａは、ＳｃａｎＴｏＭｅアプリの設定情報管理ファイル２２６に格納されているサービス設定情報の一例である。また、２２６ｂは、ＭｙＰｒｉｎｔアプリの設定情報管理ファイル２２６に格納されているサービス設定情報の一例である。
【００５０】
それぞれのサービス設定情報は、サーバ情報及びクライアント情報より構成されている。サーバ情報は、画像形成装置１０（サーバアプリ１２）がサービスを実行するにあたり必要な情報である。クライアント情報は、クライアントＰＣ２０（クライアントアプリ２２）が、画像形成装置１０にサービスを実行させるにあたり必要となる情報である。
【００５１】
例えば、サービス設定情報２２６ａにおけるサーバ情報はスキャンの実行条件である。クライアント情報は、スキャンの実行結果である画像データを保存すべきフォルダの名前。また、サービス設定情報２２６ｂにおけるサーバ情報は印刷の実行条件である。クライアント情報は、印刷対象とするファイルの名前である。
【００５２】
したがって、基本的に、サービス設定情報の全てがサーバアプリ１２に送信される必要はない。少なくともサーバ情報が送信されればよい。但し、ＭｙＰｒｉｎｔアプリの場合、クライアント情報に指定されている対象ファイルを取得し、当該対象ファイルをサーバ情報と共にサーバアプリ１２に送信する。このように、クライアント情報の位置付け（利用されるタイミング等）は、クライアントアプリ２２に応じて異なりうる。
【００５３】
クライアントアプリ連携部１２６によって受信されたサービス設定情報は、サービス制御部１２４に通知される。サービス制御部１２４は、サービスＩＤに対応する機能制御部１２５を呼び出し、当該サービス設定情報を通知する。
【００５４】
なお、サービス設定情報は、クライアントアプリ２２の検知時にクライアント情報５０と共にクライアントアプリ登録部１２１に送信され、クライアントアプリ管理テーブル１２７に登録されていてもよい。この場合、ステップＳ２５及びＳ２６においてサービス設定情報が取得される必要はない。但し、画像形成装置１０のような組み込み系の機器は搭載されているメモリ容量は小さいことに鑑みれば、クライアントアプリ管理テーブル１２７には、クライアントアプリ情報５０のみが登録される方が望ましい。
【００５５】
続いて、呼び出された機能制御部１２５は、当該サービス設定情報に基づいて当該機能（スキャン機能又は印刷機能等）を実行する（Ｓ２７）。例えば、スキャン機能に対応する機能制御部１２５であれば、ユーザによって画像形成装置１０にセットされた原稿に対するスキャンをスキャナ１２に実行させ、その結果得られる画像データを機能の実行結果としてサービス制御部１２４に出力する。また、印刷機能に対応する機能制御部１２５であれば、サービス設定情報と共にクライアントアプリ２２より受信された印刷対象のファイルの印刷をプリンタ１３に実行させ、その結果（例えば、印刷の成否）を示す情報を機能の実行結果としてサービス制御部１２４に出力する。
【００５６】
サービス制御部１２４は、機能の実行結果のカレントクライアントアプリへの送信をクライアントアプリ連携部１２６に指示する。クライアントアプリ連携部１２６は、当該指示に応じ、機能（サービス）の実行結果をサーバアプリ連携部２２４に送信する（Ｓ２８）。
【００５７】
サーバアプリ連携部２２４によって機能の実行結果が受信されると、カレントクライアントアプリは、自らに実装されている業務ロジックに応じた処理を実行する。例えば、カレントクライアントアプリは、機能の実行結果に含まれている画像データ（スキャンでーた）を、サービス設定情報２２６ａのクライアント情報に登録されている保存先に保存する。また、カレントクライアントアプリは、機能の実行結果に含まれている印刷結果を表示装置２０６に表示させる。また、カレントクライアントアプリが外部アプリ２７と連携するクライアントアプリ２２であれば、カレントクライアントアプリの外部アプリ実行部２２５は外部アプリ２７を呼び出し、機能の実行結果を当該外部アプリ２７に通知する（Ｓ２９）。呼び出された外部アプリ２７は、当該外部アプリ２７に固有の処理を実行する（Ｓ３０）。外部アプリ２７による処理は、所定のものに限定されず、実現したいソリューション又はワークフロー等に応じて様々である。例えば、スキャン画像に対してＯＣＲ（Optical Character Reader）を実行してもよいし、所定の文書管理ＤＢにスキャン画像を登録してもよい。
【００５８】
外部アプリ実行部２２５が、外部アプリ２７の処理の実行を検知すると（Ｓ３１）、サーバアプリ連携部２２４は、カレントクライアントアプリの処理（クライアント処理）の終了をクライアントアプリ連携部１２６に通知する（Ｓ３２）。クライアントアプリ連携部１２６によるクライアント処理の通知の受信に応じ、ＵＩ制御部１２２は、カレントクライアントアプリによる処理の終了を操作パネル１６に表示させる（Ｓ３３）。
【００５９】
ところで、クライアントアプリ検知部１２３によって検知されたクライアントアプリ２２はその後も起動しているとは限らない。例えば、ユーザの都合等に応じてクライアントアプリ２２の起動が停止される場合もある。クライアントＰＣ２０の電源がＯＦＦにされる場合もある。また、クライアントアプリ検知部１２３による自動検知処理の実行後にクライアントアプリ２２が起動される場合もある。したがって、クライアントアプリ管理テーブル１２７と、実際に利用可能なクライアントアプリ２２との間に不整合が生じる可能性がある。そうすると、操作パネル１６に表示されたクライアントアプリリストにおいて選択されたクライアントアプリ２２を実行できなかったり、実行可能なクライアントアプリ２２がクライアントアプリリスト内に含まれていなかったりといった事態が生じうる
そこで、クライアントアプリ検知部１２３は、クライアントアプリ２２の自動検知を定期的（例えば、数秒、数分、又は数時間おき等）に行うようにしてもよい。そうすることにより、新たに起動されたクライアントアプリ２２のクライアントアプリ情報５０が適切にクライアントアプリ管理テーブル１２７に登録されうる。また、併せてクライアントアプリ登録部１２１が図１０に示される処理を定期的に実行してもよい。
【００６０】
図１０は、クライアントアプリ管理テーブルからのクライアントアプリ情報の削除処理を説明するためのフローチャートである。
【００６１】
ステップＳ４１において、クライアントアプリ登録部１２１は、クライアントアプリ管理テーブル１２７に登録されているレコードのうち、最初のレコードをチェック対象とする。続いて、クライアントアプリ登録部１２１は、クライアントアプリ管理テーブル１２７の全レコードについてチェックを完了したか否かを判定する（Ｓ４２）。
【００６２】
全レコードについてチェックが完了した場合（Ｓ４２でＹｅｓ）、図１０の処理は終了する。全レコードについてチェックが完了していない場合（Ｓ４２でＮｏ）、クライアントアプリ登録部１２１は、チェック対象のレコードに係るクライアントアプリ情報５０は削除対象か否かを判定する（Ｓ４３）。具体的には、現在時刻が、当該クライアントアプリ情報５０の有効期限を経過しているか否かを判定する。
【００６３】
当該クライアントアプリ情報５０が削除対象である場合（現在時刻が有効期限を経過している場合）（Ｓ４３でＹｅｓ）、クライアントアプリ登録部１２１は、当該クライアントアプリ情報５０をクライアントアプリ管理テーブル１２７より削除する（Ｓ４４）。続いて、クライアントアプリ登録部１２１は、当該クライアントアプリ情報５０に係るクライアントアプリ２２の自動検知応答部２２１に対して、クライアントアプリ情報５０の削除を通知する（Ｓ４５）。なお、当該通知を受けたクライアントアプリ２２（すなわち、実行可能な状態にあるにも拘わらずクライアントアプリ管理テーブル１２７における登録が解除されたクライアントアプリ２２）の自動検知応答部２２１は、当該通知に応じて改めてアプリケーション情報５０の再登録の要求をクライアントアプリ登録部１２１に送信するようにしてもよい。
【００６４】
続いて、クライアントアプリ登録部１２１は、チェック対象を次のレコードとし（Ｓ４６）、ステップＳ４２以降の処理を繰り返す。
【００６５】
図１０の処理によれば、有効期限の切れたクライアントアプリ情報５０をクライアントアプリ管理テーブル１２７より削除することができる。したがって、クライアントアプリ検知部１２３による定期的な自動検知処理と組み合わせることにより、クライアントアプリ管理テーブル１２７と、実際に利用可能なクライアントアプリ２２との不整合を低減させることができる。
【００６６】
なお、有効期限切れによりアプリケーション情報５０が削除されたクライアントアプリ２２であっても、その後にクライアントアプリ検知部１２３によって検知されれば、当該クライアントアプリ２２のクライアントアプリ情報５０はクライアントアプリ管理テーブル１２７に再登録される。再登録後は、図８において説明したように当該クライアントアプリ２２を画像形成装置１０より実行させることができる。
【００６７】
また、クライアントＰＣ２０がクライアントアプリ２２の終了したことを画像形成装置１０に通知することにより、各クライアントアプリ情報の有効期限に関わらず、クライアントアプリ管理部から当該通知を受けたクライアントＰＣ２０に関するクライアントアプリ情報を削除するようにしてもよい。
【００６８】
ところで、上記では、サーバアプリ１２がクライアントアプリ２２を検知する例について説明したが、クライアントアプリ２２がサーバアプリ１２を検知し、自らのクライアントアプリ情報５０の登録を要求するようにしてもよい。斯かる形態のシステム構成例を図１１に示す。
【００６９】
図１１は、第一の実施の形態における第二のシステム構成例を示す図である。図１１中、図１と同一部分には同一符号を付し、その説明は省略する。同図におけるサーバアプリ１２は、クライアントアプリ検知部１２３を有さない。また、クライアントアプリ２２は、自動検知応答部２２１の代わりにサーバアプリ検知部２２７を有する。
【００７０】
同図の構成の場合、各クライアントアプリ２２のサーバアプリ検知部２２７は、サーバアプリ１２の検知用のメッセージ（サーバアプリ検知用メッセージ）をネットワーク３０上に送信する。各サーバアプリ１２のクライアントアプリ登録部１２１は、サーバアプリ検知用メッセージを受信すると、当該メッセージに対する応答を送信する。サーバアプリ検知部２２７は、当該応答の送信元のクライアントアプリ登録部１２１に対してクライアントアプリ情報を送信する。その後は、図４のステップＳ１４以降と同様でよい。
【００７１】
なお、サーバアプリ検知用メッセージ内に、クライアントアプリ２２が利用したいサービスのサービスＩＤ（すなわち、当該クライアントアプリ２２に係るサービス設定情報に含まれているサービスＩＤ）を含めてもよい。サービスＩＤの含まれているサーバアプリ検知用メッセージを受信したクライアントアプリ登録部１２１は、当該画像形成装置１０において当該サービスＩＤに対応した機能が実行可能か否か（当該サービスＩＤに対応した機能制御部１２５が存在するか否か）を判定し、当該機能を実行可能である場合に応答を送信すればよい。そうすることにより、クライアントアプリ２２が要求するサービスを実行可能な画像形成装置１０に対してのみ当該クライアントアプリ２２のクライアントアプリ情報が登録される。その結果、画像形成装置１０がサービスを提供可能なクライアントアプリ２２のみをクライアントアプリリストとして操作パネル１６に表示させることができる。なお、画像形成装置１０における、サービスＩＤに対応した機能の実行の可否の判定は、例えば、実行可能なサービスＩＤの一覧をＨＤＤ１１４に予め保存しておき、当該一覧に基づいて行えばよい。
【００７２】
一方、図１の構成の場合も同様に、クライアントアプリ検知部１２３は、画像形成装置１０が実行可能なサービスのサービスＩＤの一覧をクライアント検知用メッセージ内に含めるようにしてもよい。当該クライアント検知用メッセージを受信した各クライアントアプリ２２の自動検知応答部２２１は、当該クライアント検知用メッセージに含まれているサービスＩＤが、自らが要求するサービスのサービスＩＤであれば応答を返信する。そうすることにより、当該画像形成装置１０が実行可能な機能に関してサービスを要求するクライアントアプリ２２のクライアントアプリ情報のみがクライアントアプリ管理テーブル１２７に登録される。
【００７３】
上述したように、第一の実施の形態によれば、画像形成装置１０の操作パネル１６から、当該画像形成装置１０の機能を組み込んだ任意のクライアントアプリ２２（ワークフロー）を実行することが可能である。この際、画像形成装置１０の機能については、ユーザに関連付けられたクライアントアプリ２２単位で設定情報（サービス設定情報）を保持しているため、より個人的な（ユーザごとに固有の）ワークフローを実現することができる。
【００７４】
また、各クライアントアプリ２２を実行させるための操作は、異なる機能又はワークフローであっても、統一的である（クライアントアプリリストからの選択とスタートキーの押下）であるため、操作者は、機能やワークフローごとに実行のための操作を覚える必要はない。
【００７５】
更に、画像形成装置１０はシンプルな画像入出力機能を提供するのみでよく、付加的な処理はクライアントＰＣ２０上で実行される。このため、画像形成装置１０の機能の複雑化を回避することができると共に、あらゆる意味において制約の少ないクライアントＰＣ２０上に複雑な機能を実装することができる。
【００７６】
また、各クライアントアプリ２２は、自動的に検知され画像形成装置１０に登録される。したがって、ユーザが画像形成装置１０に対して各クライアントアプリ２２の登録作業を行う必要はない。また、不在のクライアントＰＣ２０上のクライアプリケーション２２を登録対象から除外することができるため、画像形成装置１０においてクライアントアプリ２２を選択させる際、余分な実行候補が提示されることを回避することができる。
【００７７】
次に、クライアントアプリ２２の構成の変形例として第二の実施の形態を説明する。図１２は、第二の実施の形態におけるクライアントＰＣのソフトウェア構成例を示す図である。図１２中、図１と同一部分には同一符号を付している。なお、画像形成装置１０のソフトウェア構成例は、図１と同様でよい。
【００７８】
第二の実施の形態において第一の実施の形態と大きく異なる点は、クライアントＰＣ２０がクライアントアプリマネージャ２４を有する点である。クライアントアプリマネージャ２４は、複数のクライアントアプリ２２ａに関して、サーバアプリ１２との連携に関する処理（通信処理等）を統合的又は共通的に行う部分である。同図において、クライアントアプリマネージャ２４は、自動検知応答部２４１、サーバアプリ連携部２４２、クライアントアプリ登録部２４３、クライアントアプリ管理テーブル２４４、及び結果管理部２４５等を有する。
【００７９】
自動検知応答部２４１、サーバアプリ連携部２４２の機能は、図１における自動検知応答部２２１、サーバアプリ連携部２４２と同様である。但し、自動検知応答部２４１及びサーバアプリ連携部２４２は、クライアントアプリ管理テーブル２４４にクライアントアプリ情報が登録されている各クライアントアプリ２２ａの代理として統合的に各機能を実行する点が異なる。クライアントアプリ登録部２４３は、各クライアントアプリ２２ａより通知されるクライアントアプリ情報をクライアントアプリ管理テーブル２４４に登録する。結果管理部２４５は、サーバアプリ連携部２４２によって受信される機能の実行結果を管理し、当該実行結果に対応するクライアントアプリ２２ａに伝達する。なお、クライアントアプリマネージャ２４は、同一のクライアントＰＣ２０上で動作するクライアントアプリ２２ａのみならず、他の装置（例えば、クライアントＰＣ２０と無線通信が可能な携帯端末５０）において動作するクライアントアプリ２２ａについても管理が可能である。
【００８０】
一方、各クライアントアプリ２２ａは、ＵＩ制御部２２２、Ｗｅｂサービス実行部２２３、外部アプリ実行部２２５、設定情報管理ファイル２２６、登録要求部２２８、及び結果取得部２２９等を有する。登録要求部２２８は、当該クライアントアプリ２２ａのクライアントアプリ情報の登録をクライアントアプリマネージャ２４のクライアントアプリ登録部２４３に要求する。結果取得部２２９は、結果管理部２４５によって管理されている機能の実行結果を取得する。なお、第二の実施の形態において、各クライアントアプリ２２ａは、自動検知応答部２２１及びサーバアプリ連携部２２４に相当する機能は有さない。上記したように、クライアントアプリマネージャ２４が代行してくれるからである。
【００８１】
以下、第二の実施の形態におけるシステムの処理手順について説明する。図１３は、クライアントアプリマネージャに対するクライアントアプリの登録処理を説明するためのシーケンス図である。
【００８２】
ステップＳ５１、Ｓ５２では、ユーザの指示入力等に応じて、アプリケーションプラットフォーム２３は、クライアントアプリマネージャ２４及び各クライアントアプリ２２ａを起動させる。クライアントアプリ２２ａの登録要求部２２８は、起動に応じ、当該クライアントアプリ２２ａの登録要求部２２８は、当該クライアントアプリ２２ａのクライアントアプリ情報の登録をクライアントアプリ登録部２４３に要求する（Ｓ５３）。
【００８３】
図１４は、第二の実施の形態におけるクライアントアプリ情報の構成例を示す図である。同図において、クライアントアプリ情報５０ａは、第一の実施の形態におけるクライアントアプリ情報５０（図５参照）に対してホストアドレスを管理情報の構成要素として追加したものである。ホストアドレスは、当該クライアントアプリ２２ａがインストールされているクライアントＰＣ２０のＩＰアドレスである。
【００８４】
ステップＳ５３における要求に応じ、クライアントアプリマネージャ２４は、クライアントアプリ情報をクライアントアプリ管理テーブル２４に登録し、結果取得用コマンドをクライアントアプリ２２ａに通知する（Ｓ５４）。ここで、結果取得用コマンドとは、クライアントアプリマネージャ２４によってサーバアプリ１２のクライアントアプリ連携部１２６より受信される機能の実行結果を、クライアントアプリ２２ａがクライアントアプリ２２ａに対して問い合わせるためのコマンドである。
【００８５】
図１３の変形例について説明する。図１５は、クライアントアプリマネージャに対するクライアントアプリの登録処理を説明するための第二のシーケンス図である。
【００８６】
ステップＳ６１において、アプリケーションプラットフォーム２３は、クライアントアプリ２２ａのみを起動させる。クライアントアプリ２２ａの登録要求部２２８は、起動に応じ、当該クライアントアプリ２２ａのクライアントアプリ情報５０ａの登録をクライアントアプリ登録部２４３に要求する（Ｓ６２）。しかし、クライアントアプリマネージャ２４は起動されていないため、当該要求に対する応答は返信されない（Ｓ６３）。そこで、クライアントアプリ２２ａは、ステップＳ６２の登録要求を定期的に繰り返す。
【００８７】
その後、ユーザからの指示入力等に応じ、アプリケーションプラットフォーム２３は、クライアントアプリマネージャ２４を起動させる（Ｓ６４）。クライアントアプリマネージャ２４は、クライアントアプリ２２ａからのクライアントアプリ情報５０ａの登録要求を受信すると（Ｓ６５）、クライアントアプリ情報５０ａの登録処理を行い、結果取得用コマンドを返信する（Ｓ６６）。
【００８８】
続いて、図１３又は図１５において、クライアントアプリ２２ａからのクライアントアプリ情報５０ａの登録要求に応じてクライアントアプリマネージャ２４によって実行される処理の詳細について説明する。図１６は、クライアントアプリマネージャによるクライアントアプリの登録処理を説明するためのフローチャートである。
【００８９】
クライアントアプリ情報５０ａの登録要求を受信すると（Ｓ７１）、受信されたクライアントアプリ情報５０が既にクライアントアプリ管理テーブル２４４に登録されているか否かを判定する（Ｓ７２）。当該クライアントアプリ情報５０ａが未登録である場合（Ｓ７２でＹｅｓ）、当該クライアントアプリ情報５０ａをクライアントアプリ管理テーブル２４４に新規に登録する（Ｓ７３）。
【００９０】
図１７は、クライアントマネージャによって管理されるクライアントアプリ管理テーブルの構成例を示す図である。同図に示されるように、クライアントアプリ管理テーブル２４４には、クライアントアプリ情報の各項目の値がそのまま登録される。但し、有効期間は有効期限に置換される。
【００９１】
一方、登録が要求されたクライアントアプリ情報２２ａが既に登録されている場合（Ｓ７２でＮｏ）、既に登録されているクライアントアプリ情報２２ａの有効期限を現在時刻と有効期間とに基づいて更新する（Ｓ７４）。
【００９２】
続いて、当該クライアントアプリ２２ａに対する結果取得用コマンドを生成する（Ｓ７５）。例えば、結果取得用コマンドは、次のようなテンプレート文字列（雛形）の＜＞内に該当する文字列を当てはめることにより生成される。
ｈｔｔｐ：／／＜クライアントアプリマネージャ２４のホストアドレス＞：＜クライアントアプリマネージャ２４のポート番号＞／＜クライアントアプリ２２ａのアプリＩＤ＞＋＜クライアントアプリ２２ａのホストアドレス＞／ｒｅｓｕｌｔ
例えば、クライアントアプリマネージャ２４のホストアドレスが「２０１．ＸＸＸ．ＸＸＸ．ＸＸＸ」であり、ポート番号が「８０８０」の場合であって、図１７の１レコード目に対応するクライアントアプリ情報５０ａが登録された場合は、次のような結果取得用コマンド（１）が生成される。
ｈｔｔｐ：／／２０１．ＸＸＸ．ＸＸＸ．ＸＸＸ：８０８０／ａｐｌ００１／２０１．ＸＸＸ．ＸＸＸ．ＸＸＸ／ｒｅｓｕｌｔ  ・・・  （１）
このように、結果取得用コマンドは、各クライアントアプリ２２ａに対して一意なＵＲＬとなる。
【００９３】
続いて、生成された結果取得用コマンドをクライアントアプリ２２ａに返信する（Ｓ７６）。
【００９４】
その後、クライアントアプリマネージャ２４は、クライアントアプリ管理テーブル２４４に登録されたクライアントアプリ情報５０ａを用いて、第一の実施の形態の図４、図８において各クライアントアプリ２２ａによって行われていた処理を代行（統合的に実行）する。
【００９５】
例えば、サーバアプリ１２のクライアントアプリ検知部１２３より送信されるクライアントアプリ検知用メッセージ等に対しては、クライアントアプリマネージャ２４の自動検知応答部２４１が応答を行い、クライアントアプリ管理テーブル２４４に登録されているクライアントアプリ情報５０ａの登録をサーバアプリ１２１のクライアントアプリ登録部１２１に要求する（図４：Ｓ１２〜Ｓ１４）。
【００９６】
また、図８のステップＳ２５において、サーバアプリ２２のクライアントアプリ連携部１２６より送信されるサービス設定情報の送信要求は、クライアントアプリマネージャ２４のサーバアプリ連携部２４２が受信する。サーバアプリ連携部２４２は、当該送信要求に含まれているアプリＩＤに対応するクライアントアプリ２２ａよりサービス設定情報を取得し、クライアントアプリ連携部１２６に対して返信する。なお、各クライアントアプリ２２ａのサービス設定情報は、クライアントアプリ情報５０ａと同じタイミングで各クライアントアプリ２２ａより取得され、クライアントアプリ管理テーブル２４４に登録されていてもよい。
【００９７】
また、図８のステップＳ２８において、クライアントアプリ連携部１２６より送信される機能の実行結果は、クライアントアプリマネージャ２４のサーバアプリ連携部２４２が受信し、結果管理部２４５が、メモリ装置２０３又は補助記憶装置２０２内においてクライアントアプリ２２ａとごとに異なる記憶領域（例えば、フォルダ等、クライアントアプリ２２ａに対して通知した結果取得用コマンドのＵＲＬに対応する記憶領域。以下、「結果保持領域」という。）に保存しておく。
【００９８】
続いて、このようにクライアントアプリマネージャ２４によって保持されている機能の実行結果を、当該実行結果に対応するクライアントアプリ２２ａに伝達するための処理手順について説明する。
【００９９】
図１８は、クライアントアプリへの機能の実行結果の伝達処理の処理手順を説明するためのシーケンス図である。
【０１００】
クライアントアプリ２２ａの結果取得部２２９は、クライアントアプリ情報５０ａの登録後（図１３又は図１５の実行後）、定期的に結果取得用コマンドをクライアントアプリマネージャ２４に対して発行している（Ｓ８１）。結果取得用コマンドに応じ、ライアントアプリマネージャ２４の結果管理部２４５は、次のような処理を実行する。
【０１０１】
図１９は、結果取得用コマンドに応じて結果管理部が実行する処理の処理手順を説明するためのフローチャートである。
【０１０２】
ステップＳ９１において結果取得用コマンドを受信する（Ｓ９１）。ここで、結果取得用コマンドは、例えば、次のように構成される。
ｈｔｔｐ：／／２０１．ＸＸＸ．ＸＸＸ．ＸＸＸ：８０８０／ａｐｌ００１／２０１．ＸＸＸ．ＸＸＸ．ＸＸＸ／ｒｅｓｕｌｔ？ｍｅｔｈｏｄ＝ＧＥＴ＆ａｐｌ＿ｉｄ＝ａｐｌ００１＆ｈｏｓｔ＝２０１．ＸＸＸ．ＸＸＸ．ＸＸＸ  ・・・  （２）
結果取得用コマンド（２）において、「？」以降については、クライアントアプリ２２ａの結果取得部２２９が自らのクライアントアプリ情報に基づいて付加した部分（以下、「メソッド情報」という。）であり、以下のような文法に基づく。
ｍｅｔｈｏｄ＝Ｇｅｔ＆ａｐｌ＿ｉｄ＝＜クライアントアプリ２２ａのアプリＩＤ＞＆ｈｏｓｔ＝＜クライアントアプリ２２ａのホストアドレス＞
続いて、結果取得用コマンドの発行元の正当性を判定する（Ｓ９２）。具体的には、結果取得用コマンドの発行元が、クライアントアプリマネージャ２４より当該結果取得用コマンドを入手したものであるか否かを判定する。当該判定は、結果取得用コマンドに付加されているはずのメソッド情報に基づいて行う。メソッド情報に含まれているクライアントアプリ２２ａのアプリＩＤとホストアドレスが、メソッド情報の前（？以前）に含まれているものと一致すれば、結果取得用コマンドの発行元は正当であると判定する。それ以外の場合は、結果取得用コマンドの発行元は不正であると判定する。
【０１０３】
結果取得用コマンドの発行元は正当であると判定した場合（Ｓ９２でＹｅｓ）、当該結果取得用コマンドによって特定されるＵＲＬに対応する結果保持領域に機能の実行結果（結果データ）が保持（保存）されているか否かを確認する（Ｓ９３）。結果データが保持されている場合は結果データを返信し（Ｓ９４）、結果データが保持されていない場合は結果データは無いことを示すデータを返信する（Ｓ９５）。
【０１０４】
一方、結果取得用コマンドの発行元は不正であると判定した場合（Ｓ９２でＮｏ）、結果データの取得は許可できないことを示すデータを返信する（Ｓ９６）。
【０１０５】
図１８に戻る。結果データが返信された場合、クライアントアプリ２２ａは、結果データ（例えば、スキャン画像）を用いてクライアントアプリ２２ａに固有の業務ロジックを実行する（Ｓ８３）。
【０１０６】
続いて、クライアントアプリ２２ａの終了時の処理について説明する。ここで、終了時とは、クライアントアプリ２２のプロセス又はスレッドの終了時（停止時）をいう。図２０は、クライアントアプリの終了時の処理手順を説明するためのシーケンス図である。
【０１０７】
ユーザによる指示入力等に応じてアプリケーションプラットフォー２３が、クライアントアプリ２２ａに対して終了を指示すると、当該クライアントアプリ２２ａの登録要求部２２８は、当該クライアントアプリ２２ａのアプリＩＤを引数として、登録の解除をクライアントアプリマネージャ２４に要求する（Ｓ１０２）。クライアントアプリマネージャ２４のクライアントアプリ登録部２４３は、当該クライアントアプリ２２ａの登録解除処理を実行し、その結果をクライアントアプリ２２ａに通知する（Ｓ１０３）
続いて、図２０においてクライアントアプリ登録部２４３によって実行されるクライアントアプリ２２ａの登録解除処理について説明する。
【０１０８】
図２１は、クライアントアプリマネージャのクライアントアプリ登録部によるクライアントアプリの登録解除処理を説明するためのフローチャートである。
【０１０９】
クライアントアプリ２２ａの登録要求部２２８より、アプリＩＤと共に登録の解除要求を受信すると（Ｓ１１１）、当該アプリＩＤに係るレコードがクライアントアプリ管理テーブル２４４に存在するか否かを判定する（Ｓ１１２）。当該レコードが存在する場合（Ｓ１１２でＹｅｓ）、当該レコード（クライアントアプリ情報）を削除し（Ｓ１１３）、登録解除を完了した旨を登録要求部２２８に返信する（Ｓ１１４）。
【０１１０】
一方、当該レコードが存在しない場合（Ｓ１１２でＮｏ）、解除対象が無い旨を登録要求部２２８に返信する（Ｓ１１５）。
【０１１１】
図２１の処理によれば、起動中のクライアントアプリ２２ａと、クライアントアプリ管理テーブル２４４との整合性を適切に図ることができる。
【０１１２】
なお、クライアントアプリマネージャ２４のクライアント登録部２４３は、有効期限の切れたクライアントアプリ情報を定期的にクライアントアプリ管理テーブル２４４より削除するようにしてもよい。図２２は、クライアントアプリマネージャのクライアント登録部による有効期限切れのクライアントアプリ情報の削除処理を説明するためのフローチャートである。
【０１１３】
ステップＳ１２１において、クライアントアプリ管理テーブル２４４に登録されているレコードのうち、最初のレコードをチェック対象とする。続いて、クライアントアプリ管理テーブル２４４の全レコードについてチェックを完了したか否かを判定する（Ｓ１２２）。全レコードについてチェックが完了した場合（Ｓ１２２でＹｅｓ）、図２２の処理は終了する。全レコードについてチェックが完了していない場合（Ｓ１２２でＮｏ）、チェック対象のレコードに係るクライアントアプリ情報５０ａは、削除対象か否かを判定する（Ｓ１２３）。具体的には、現在時刻が、当該クライアントアプリ情報５０ａの有効期限を経過しているか否かを判定する。
【０１１４】
当該クライアントアプリ情報５０ａが削除対象である場合（現在時刻が有効期限を経過している場合）（Ｓ１２３でＹｅｓ）、当該クライアントアプリ情報５０ａをクライアントアプリ管理テーブル２４４より削除する（Ｓ１２４）。  続いて、チェック対象を次のレコードとし（Ｓ１２５）、ステップＳ１２２以降の処理を繰り返す。
【０１１５】
図２２の処理と、図１３又は図１５の処理とを定期的に行うことにより、図２１の処理が行われない場合であっても、起動中のクライアントアプリ２２ａと、クライアントアプリ管理テーブル２４４との整合性を適切に図ることができる。
【０１１６】
上述したように、第二の実施の形態によれば、クライアントアプリマネージャ２４が統合的に画像形成装置１０との通信を行う。したがって、通信ポートの占有数を削減することができる。すなわち、第一の実施の形態の場合、クライアントアプリ２２間で同一の通信ポートをシェアすることはできない。このため、クライアントアプリ２２の数に比例して通信ポートの占有数が増加してしまう。一方、第二の実施の形態では、通信用のモジュールの共用が可能となるため、クライアントアプリ２２の数の増加に影響を受けることなく最低限のポートで運用することができる。
【０１１７】
また、第一の実施の形態では各クライアントアプリ２２に実装されていた機能の一部が、第二の実施の形態ではクライアントアプリケーションマネージャ２４によって実現されるため、各クライアントアプリ２２ａを軽量化することができる。したがって、各クライアントアプリ２２ａの配布サイズを小さくすることができる。
【０１１８】
また、各クライアントアプリ２２ａについては、画像形成装置１０とのやりとりに関して実装する必要がない。したがって、クライアントアプリ２２の本来の機能（業務ロジック等）に開発リソースを集中させることができる。
【０１１９】
一方、第一の実施の形態におけるクライアントアプリ２２の構成の場合、各クライアントアプリ２２の独立性が高く、一つのクライアントアプリ２２内において画像形成装置１０との通信から業務ロジックの実行までの機能が完結している。したがって、クライアントアプリマネージャ２４のようなプラットフォームのインストールを前提とせずに、各クライアントアプリ２２を単独でインストールしてそのまま利用することができる。
【０１２０】
なお、サーバアプリ１２に相当する機能を実装可能な装置は画像形成装置に限定されない。所定のサービス（機能）をネットワークを介して提供可能な装置（例えば、Ｗｅｂサービスを備えた装置等）であればサーバアプリ１２に相当する機能を実装可能である。
【０１２１】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１２２】
【図１】第一の実施の形態におけるシステム構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態におけるクライアントＰＣのハードウェア構成例を示す図である。
【図４】クライアントアプリ情報の登録時の処理手順を説明するためのフローチャートである。
【図５】クライアントアプリ情報の構成例を示す図である。
【図６】クライアントアプリ情報の具体例を示す図である。
【図７】クライアントアプリ管理テーブルの構成例を示す図である。
【図８】クライアントアプリの実行時の処理手順を説明するためのシーケンス図である。
【図９】サービス設定情報の具体例を示す図である。
【図１０】クライアントアプリ管理テーブルからのクライアントアプリ情報の削除処理を説明するためのフローチャートである。
【図１１】第一の実施の形態における第二のシステム構成例を示す図である。
【図１２】第二の実施の形態におけるクライアントＰＣのソフトウェア構成例を示す図である。
【図１３】クライアントアプリマネージャに対するクライアントアプリの登録処理を説明するためのシーケンス図である。
【図１４】第二の実施の形態におけるクライアントアプリ情報の構成例を示す図である。
【図１５】クライアントアプリマネージャに対するクライアントアプリの登録処理を説明するための第二のシーケンス図である。
【図１６】クライアントアプリマネージャによるクライアントアプリの登録処理を説明するためのフローチャートである。
【図１７】クライアントマネージャによって管理されるクライアントアプリ管理テーブルの構成例を示す図である。
【図１８】クライアントアプリへの機能の実行結果の伝達処理の処理手順を説明するためのシーケンス図である。
【図１９】結果取得用コマンドに応じて結果管理部が実行する処理の処理手順を説明するためのフローチャートである。
【図２０】クライアントアプリの終了時の処理手順を説明するためのシーケンス図である。
【図２１】クライアントアプリマネージャのクライアントアプリ登録部によるクライアントアプリの登録解除処理を説明するためのフローチャートである。
【図２２】クライアントアプリマネージャのクライアント登録部による有効期限切れのクライアントアプリ情報の削除処理を説明するためのフローチャートである。
【符号の説明】
【０１２３】
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          ネットワークインタフェース
１６          操作パネル
２０          クライアントＰＣ
２２          クライアントアプリ
２３          アプリケーションプラットフォーム
２４          クライアントアプリマネージャ
３０          ネットワーク
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１２１        クライアントアプリ登録部
１２２        ＵＩ制御部
１２３        クライアントアプリ検知部
１２４        サービス制御部
１２５        機能制御部
１２６        クライアントアプリ連携部
１２７        クライアントアプリ管理テーブル
２００        ドライブ装置
２０１        記録媒体
２０２        補助記憶装置
２０３        メモリ装置
２０４        ＣＰＵ
２０５        インタフェース装置
２０６        表示装置
２０７        入力装置
２２１        自動検知応答部
２２２        ＵＩ制御部
２２３        Ｗｅｂサービス実行部
２２４        サーバアプリ連携部
２２５        外部アプリ実行部
２２６        設定情報管理ファイル
２２７        サーバアプリ検知部
２２８        登録要求部
２２９        結果取得部
２４１        自動検知応答部
２４２        サーバアプリ連携部
２４３        クライアントアプリ登録部
２４４        クライアントアプリ管理テーブル
２４５        結果管理部
Ｂ            バス
【図１】
2010074302.tif 000003
【図２】
2010074302.tif 000004
【図３】
2010074302.tif 000005
【図４】
2010074302.tif 000006
【図５】
2010074302.tif 000007
【図６】
2010074302.tif 000008
【図７】
2010074302.tif 000009
【図８】
2010074302.tif 000010
【図９】
2010074302.tif 000011
【図１０】
2010074302.tif 000012
【図１１】
2010074302.tif 000013
【図１２】
2010074302.tif 000014
【図１３】
2010074302.tif 000015
【図１４】
2010074302.tif 000016
【図１５】
2010074302.tif 000017
【図１６】
2010074302.tif 000018
【図１７】
2010074302.tif 000019
【図１８】
2010074302.tif 000020
【図１９】
2010074302.tif 000021
【図２０】
2010074302.tif 000022
【図２１】
2010074302.tif 000023
【図２２】
2010074302.tif 000024