(57)【要約】【課題】ネットワークに接続された複数の外部機器の機能や能力が個々に違っていても、共通のアプリケーションでサービスを提供する。【解決手段】ネットワーク１００には、複数のＭＦＰ１０４とともにサーバ１０２が接続さている。サーバ１０２には、プラットフォームとなるＯＳ１１０とともに仮想マシン１１２によるアプリケーション実行環境が構築されている。またサーバ１０２には複数種類のコントローラＡＰＩ１１４〜１１８が組み込まれており、これらはＭＦＰ１０４の個々の機能や能力の違いに合わせて予め用意されている。サーバ１０２は、ＭＦＰ１０４からアプリケーションの実行要求が発せられると、その機能や能力に応じて適当なコントローラＡＰＩ１１４〜１１８を選択する。【選択図】図２
2008176674.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部機器とともにネットワークに接続され、このネットワーク上でサーバ型のコンピュータとして機能する電子機器において、
前記コンピュータとしての機能を実現するためのプラットフォームと、
前記外部機器に対し、ネットワークを通じて前記外部機器の動作を制御するサービスを提供するためのアプリケーションと、
複数の前記外部機器が有する固有の特性に応じて予め用意された複数種類のアプリケーションプログラムインタフェースと、
ネットワークを通じて前記外部機器から発せられたアプリケーションの実行要求を受け付ける実行要求受付手段と、
複数の前記外部機器のうち、前記実行要求を発した前記外部機器に固有の特性に応じて複数種類の前記アプリケーションプログラムインタフェースの中からいずれかを選択する選択手段と、
前記実行要求に基づき、前記選択手段により選択された前記アプリケーションプログラムインタフェースを通じて前記プラットフォーム上で前記アプリケーションを実行するアプリケーション実行手段と
を備えたことを特徴とする電子機器。
【請求項２】
請求項１に記載の電子機器において、
複数の前記外部機器に対して個々を識別するための識別情報を付与するとともに、各識別情報について予め対応するアプリケーションプログラムインタフェースの種類を関連付けた外部機器情報を記憶する記憶部をさらに備え、
前記選択手段は、前記記憶部に記憶された外部機器情報から前記実行要求を発した前記外部機器の識別情報を取得し、この取得した識別情報に対して予め関連付けられた種類のアプリケーションプログラムインタフェースを選択することを特徴とする電子機器。
【請求項３】
請求項２に記載の電子機器において、
前記記憶部は、１つの前記外部機器を識別する１つの識別情報に対して複数種類のアプリケーションプログラムインタフェースを関連付けて記憶しており、
前記選択手段は、取得した識別情報に対して複数種類のアプリケーションプログラムインタフェースが関連付けられている場合、その中から使用可能な種類のアプリケーションプログラムインタフェースを選択することを特徴とする電子機器。
【請求項４】
複数の外部機器とともにサーバ型のコンピュータとして機能する電子機器が接続されたネットワーク環境下で、前記電子機器から前記外部機器に対しネットワークを通じて前記外部機器の動作を制御するサービスを提供するサービス提供方法において、
前記電子機器に、
コンピュータとしての機能を実現するためのプラットフォームと、
前記外部機器に対してネットワークを通じて前記外部機器の動作を制御するサービスを提供するアプリケーションと、
複数の前記外部機器が有する固有の特性に応じて予め用意された複数種類のアプリケーションプログラムインタフェースとを組み込んだ状態で、
前記電子機器に対し、ネットワークを通じて前記外部機器から発せられたアプリケーションの実行要求を受け付けるステップと、
複数の前記外部機器のうち、前記実行要求を発した前記外部機器に固有の特性に応じて複数種類の前記アプリケーションプログラムインタフェースの中からいずれかを選択するステップと、
前記実行要求に基づき、前記選択手段により選択された前記アプリケーションプログラムインタフェースを通じて前記プラットフォーム上で前記アプリケーションを実行するステップと
を実行することを特徴とするサービス提供方法。
【請求項５】
請求項４に記載のサービス提供方法において、
前記電子機器が有する記憶部に対し、予め複数の前記外部機器に対して個々を識別するための識別情報を付与するとともに各識別情報について予め対応するアプリケーションプログラムインタフェースの種類を関連付けた外部機器情報を記憶させておき、
前記アプリケーションプログラムインタフェースを選択するステップでは、前記記憶部に記憶された外部機器情報から前記実行要求を発した前記外部機器の識別情報を取得し、この取得した識別情報に対して予め関連付けられた種類のアプリケーションプログラムインタフェースを選択することを特徴とするサービス提供方法。
【請求項６】
請求項５に記載のサービス提供方法において、
前記記憶部に対し、１つの前記外部機器を識別する１つの識別情報に対して複数種類のアプリケーションプログラムインタフェースを関連付けて記憶させておき、
前記アプリケーションプログラムインタフェースを選択するステップでは、取得した識別情報に対して複数種類のアプリケーションプログラムインタフェースが関連付けられている場合、その中から使用可能な種類のアプリケーションプログラムインタフェースを選択することを特徴とするサービス提供方法。
【請求項７】
複数の外部機器とともにネットワークに接続され、このネットワーク上でサーバ型のコンピュータとしての機能を実現するためのプラットフォームを有した電子機器のコンピュータに、
ネットワークを通じて前記外部機器から発せられたアプリケーションの実行要求を受け付ける手順と、
複数の前記外部機器のうち前記実行要求を発した前記外部機器に固有の特性に基づいて、予め複数の前記外部機器が有する固有の特性に応じて用意された複数種類のアプリケーションプログラムインタフェースの中からいずれかを選択する手順と、
前記選択手段により選択された前記アプリケーションプログラムインタフェースを経由して、前記外部機器に対しネットワークを通じて前記外部機器の動作を制御するサービスを提供するためのアプリケーションを前記プラットフォーム上で実行する手順と
を実行させるプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、
前記アプリケーションプログラムインタフェースを選択する手順で前記電子機器のコンピュータに、
予め複数の前記外部機器に対して個々を識別するための識別情報を付与するとともに各識別情報について予め対応するアプリケーションプログラムインタフェースの種類を関連付けた外部機器情報の中から前記実行要求を発した前記外部機器の識別情報を取得する手順と、
前記取得した識別情報に対して予め関連付けられた種類のアプリケーションプログラムインタフェースを選択する手順と
をさらに実行させるプログラム。
【請求項９】
請求項８に記載のプログラムにおいて、
前記アプリケーションプログラムインタフェースを選択する手順で前記電子機器のコンピュータに、
前記取得した識別情報に対して複数種類のアプリケーションプログラムインタフェースが関連付けられている場合、その中から使用可能な種類のアプリケーションプログラムインタフェースを選択する手順をさらに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上でサーバ型のコンピュータとして機能する電子機器、ネットワークを通じてサービスを提供するサービス提供方法及びコンピュータにより実行可能なプログラムに関するものである。
【背景技術】
【０００２】
従来、画像形成装置にアプリケーションの実行環境を構築して、そこにインストールされたアプリケーションによるサービスを画像形成装置で利用する先行技術が知られている（例えば、特許文献１参照）。この先行技術では、画像形成装置に複数のアプリケーションをインストールしておき、これらを共通の仮想マシン上で動作させている。仮想マシンがいずれかのアプリケーションを実行する際、画像形成装置のハードウエア資源（プリンタやスキャナ、ＦＡＸ等）を制御するためにアプリケーションからＡＰＩ（アプリケーションプログラムインタフェース）を呼び出し、画像形成装置のコントロールサービスを制御するものとなっている。
【０００３】
上記の他に、画像形成装置とは別のネットワークプリントサーバ又はプリンタコントローラにユーザアプリケーションをインストールしておき、画像形成装置に対して、サーバのオペレーティングシステム上で実行したアプリケーションによるサービスを提供する先行技術が知られている（例えば、特許文献２参照。）。この先行技術では、サーバ内のＡＰＩを通じてオペレーティングシステムが備える各種機能をアプリケーションに提供している。
【特許文献１】特開２００４−３１２７１１号公報（図３）
【特許文献２】特開２００５−３８０１０号公報（図４）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
先に挙げた先行技術では、画像形成装置内に多数のアプリケーションをインストールするための記憶容量が必要であり、それだけハードウエア資源が圧迫されるという問題がある。また、アプリケーションによるサービスを利用するには、各画像形成装置にアプリケーションをインストールしなければならないため、その分の記憶容量が各画像形成装置に要求されるし、多数の画像形成装置を使用する場合、アプリケーションをインストールする作業の手間が膨大である。
【０００５】
この点、後に挙げた先行技術では、ネットワーク上のサーバでアプリケーションを管理しているため、各画像形成装置にアプリケーションをインストールする必要はない。
【０００６】
しかしながら、ネットワークに接続された複数の画像形成装置について、それぞれの有する機能（プリンタ、スキャナ、ＦＡＸ等）にばらつきがある場合、対応可能な機能別に複数のアプリケーションを用意しなければならない。
【０００７】
そこで本発明は、ネットワークに接続された複数の外部機器の機能や能力が個々に違っていても、共通のアプリケーションでサービスを提供することができる技術の提供を課題としている。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明は第１にサーバとしての機能を有した電子機器を提供する。第２に本発明は、サーバとしての機能を有した電子機器によるサービス提供方法を提供する。また第３に本発明は、サーバとしての機能を有した電子機器のコンピュータにて実行可能なプログラムを提供する。
【０００９】
本発明の電子機器は、複数の外部機器とともにネットワークに接続され、このネットワーク上でサーバ型のコンピュータとして機能するものである。電子機器は、コンピュータとしての機能を実現するためのプラットフォームの他に、外部機器に対してネットワークを通じてその動作を制御するサービスを提供するためのアプリケーションを有している。また電子機器は、複数の外部機器が有する固有の特性に応じて予め用意された複数種類のアプリケーションプログラムインタフェースを有している。
【００１０】
本発明の電子機器に対しては、ネットワークを通じて外部機器からアプリケーションの実行要求を発することができ、これを受けて電子機器がアプリケーションを実行することで、外部機器がサービスの提供を受けることができる。このとき電子機器は、実行要求を発した外部機器に固有の特性に応じて複数種類のアプリケーションプログラムインタフェースの中からいずれかを選択し、この選択したアプリケーションプログラムインタフェースを通じてプラットフォーム上でアプリケーションを実行する。
【００１１】
すなわち本発明では、外部機器の機能や能力の違いに合わせて予め複数種類のアプリケーションプログラムインタフェース（以下、「ＡＰＩ」という。）がサーバに組み込まれているため、電子機器から外部機器にサービスを提供するに際し、その実行要求を発した外部機器に適したＡＰＩを選択し、その上で共通のアプリケーションを実行することができる。このため、アプリケーションを構築するにあたり、複数の外部機器の能力差を考慮して複数パターンのアプリケーションを用意する必要がない。すなわち、電子機器には汎用性の高い共通のアプリケーションを用意しておき、後は外部機器の能力に応じて用意されたＡＰＩをその都度、適当なものに切り替えて使用すればよい。
【００１２】
また本発明では、複数ある外部機器に対して個々を識別するための識別情報を付与するとともに、各識別情報について予め対応するＡＰＩの種類を関連付けた外部機器情報を記憶しておくことができる。この場合、ある外部機器が実行要求を発すると、外部機器情報からその外部機器の識別情報を取得し、この取得した識別情報に対して予め関連付けられた種類のＡＰＩを選択することができる。
【００１３】
このように、予め個々の外部機器について識別情報とＡＰＩの種類とを関連付けて記憶しておけば、実行要求を発した外部機器に対して迅速に適当なＡＰＩを選択し、速やかに電子機器からサービスを提供することができる。
【００１４】
本発明では、上述した外部機器情報の記憶に関して、１つの外部機器を識別する１つの識別情報に対して複数種類のＡＰＩを関連付けておくこともできる。そして、実際にサービスの提供にあたり、外部機器情報から取得した識別情報に対して複数種類のＡＰＩが関連付けられている場合、その中から使用可能な種類のＡＰＩを選択してアプリケーションを実行することができる。
【００１５】
このような態様であれば、たとえ一部のＡＰＩが動作可能な状態でなかったとしても、その他の動作可能なＡＰＩを選択してアプリケーションを実行することができるので、外部機器に対するサービスの提供を滞りなく行うことができる。
【００１６】
また本発明では、電子機器がアプリケーションを実行中であっても、この間に動作していない他のＡＰＩについてはアイドル状態であるため、これを更新する等の保守作業を容易に行うことができる。この点、先行技術ではアプリケーションの実行中はＡＰＩが完全に占有されてしまうため、アプリケーションの実行が終了するまでＡＰＩを更新する等の保守作業が制約されてしまう。これに対し、本発明ではアプリケーションの実行中でも容易にＡＰＩの更新を行うことができるという利点がある。
【００１７】
本発明のサービス提供方法は、上述した電子機器の動作を伴って実現される。またプログラムは、電子機器のコンピュータにより実行される。
【発明の効果】
【００１８】
本発明によれば、ネットワークに接続された複数の外部機器に対して、個々の機能や能力の違いに依存することなく、共通のアプリケーションを用いてサービスを提供することができる。
【００１９】
また、実際にサービスの提供を行っている途中であっても、動作していないＡＰＩについてはフリーに更新等の保守作業を行うことができるため、ネットワーク全体の稼働効率を低下させることなくバージョンアップ等の作業を行うことができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の好ましい一実施形態について、図面を参照しながら説明する。
図１は、ネットワーク環境の一構成例を示した概略図である。このネットワーク環境は、例えばＬＡＮ（ローカルエリアネットワーク）等のネットワーク１００を備え、ネットワーク１００にはサーバ１０２をはじめ、複数の多機能周辺機器（以下、ＭＦＰと称する。）１０４やプリンタ１０６等が接続されている。サーバ１０２は例えばアプリケーションサーバであり、またＭＦＰ１０４は、画像形成装置を基本構成としたネットワーク対応のデジタル複合機である。その他にもネットワーク１００には、図示されていないクライアント型ＰＣ（パーソナルコンピュータ）や別のサーバ等が接続されている。
【００２１】
図２は、サーバ１０２及びＭＦＰ１０４の各構成例をより具体的に示した図である。以下、それぞれの構成について説明する。なお図２には、複数あるＭＦＰ１０４のうち１台のみが示されている。
【００２２】
サーバ１０２は、ネットワーク１００に接続された状態でサーバ型のコンピュータとして機能する。このためサーバ１０２は、図示しないＣＰＵやメモリデバイス等のハードウエア資源を備えている。サーバ１０２は、これらハードウエア資源を用いてサーバ用の基本ソフトウェアであるＯＳ（オペレーティングシステム）１１０を実行し、それによってサーバ型コンピュータとしてのプラットフォームを構築している。
【００２３】
またサーバ１０２には、そのハードウエア資源を用いてＯＳ１１０上にＪａｖａ（登録商標）仮想マシン１１２が構築されている。この仮想マシン１１２はコントローラＡＰＩ１１４，１１６，１１８を通じて各種のＪａｖａ（登録商標）アプリケーション１２０，１２２，１２４，１２６を実行することができる。
【００２４】
さらにサーバ１０２には、仮想マシン１１２上にコントローラＡＰＩ切替コントローラ２００としての機能要素が構成されている。このコントローラＡＰＩ切替コントローラ２００は、ＯＳ１１０上で仮想マシン１１２が各アプリケーション１２０〜１２６を実行する際、いずれか適切なコントローラＡＰＩ１１４〜１１８を選択的に切り替えて使用する。なお、コントローラＡＰＩ切替コントローラ２００をはじめ、複数あるコントローラＡＰＩ１１４〜１１８及びアプリケーション１２０〜１２６についてはさらに後述する。
【００２５】
サーバ１０２にインストールされたＯＳ１１０には、ネットワーク制御部１１０ａとしての機能要素が含まれている。ネットワーク制御部１１０ａは、所定の通信プロトコルを使用してネットワーク１００に接続する。
【００２６】
またサーバ１０２は、記憶装置としてのデータ格納部１２８及び外部装置能力記憶部１３０等を有している。これら記憶装置は、例えばハードディスク装置や半導体メモリ等のハードウエア資源を用いて構成されている。データ格納部１２８には、ＯＳ１１０の実行に伴う各種の制御情報が記憶されており、サーバ１０２のコンピュータは適宜、データ格納部１２８から制御情報を読み出してサーバとしての機能を実行する。また外部装置能力記憶部１３０には、サーバ１０２からみて外部機器（外部装置）となるＭＦＰ１０４に固有の情報が記憶されている。なお、外部装置能力記憶部１３０についてはさらに後述する。
【００２７】
ＭＦＰ（Multiple Function Peripheral）１０４は、例えば複写機としての機能に加えて、プリンタ２２２やスキャナ２２４、ファクシミリ（ＦＡＸ）２２６としての機能を備えている。プリンタ２２２は、原稿の複写物やＦＡＸ２２６にて受信した文書等の印刷を行う。またスキャナ２２４は、原稿を読み取って画像データを生成するものであり、この画像データを元に複写やＦＡＸ送信が行われる。またＭＦＰ１０４はこれらの機能に加えて、ネットワークプリンタやネットワークスキャナ、あるいはネットワーククライアントとしての機能をも複合的に備えている。ネットワーク対応のプリンタ機能やスキャナ機能等は、ネットワーク１００を通じて他のクライアントＰＣに利用される。
【００２８】
ＭＦＰ１０４にも、ＣＰＵやメモリデバイス等のハードウエア資源が装備されている。ＭＦＰ１０４は、ハードウエア資源を用いてＯＳ２２８を実行することで、ネットワーク１００に接続されたクライアントコンピュータとしても機能することができる。上記のプリンタ２２２やスキャナ２２４、ＦＡＸ２２６等の機能は、コントローラ２２０の管理の下にＯＳ２２８上で動作する。ＭＦＰ１０４についても、そのＯＳ２２８にネットワーク制御部２２８ａとしての機能要素が組み込まれている。ネットワーク制御部２２８ａは、ＭＦＰ１０４のＯＳ２２８がネットワーク１００に接続する際の動作を制御する。なお、スキャナ２２４やＦＡＸ２２６の機能は、これらを全てＭＦＰ１０４が備えている場合もあれば、その一部のみを備えている場合もあるし、いずれも備えていない場合もある。いずれの機能を備えるかは、個々のＭＦＰ１０４の機種（型式）や個体差に基づく。
【００２９】
ＭＦＰ１０４の基本的な構成については公知のものを適用することができ、具体的には、印刷用紙を供給する用紙供給部をはじめ、原稿の画像を読み取るスキャナ（画像読取部）、原稿をスキャナの画像読取位置へ搬送する自動原稿搬送装置（ＡＤＦ）、画像データに基づいて形成した画像を用紙に転写するプリントエンジン（画像形成部）、転写済みの用紙に対してソートや穴開け、ステープル処理等の後処理を行う後処理装置等を備えており、これらの動作は上記のコントローラ２２０により制御されている。またＭＦＰ１０４は、ユーザの操作を受け付けるための操作キーや、タッチ式の操作パネル（図示されていない）を備えている。操作パネルには、タッチ操作用のボタン領域の他、文字情報や案内画像等が表示される。
【００３０】
以上がネットワーク１００に接続されたサーバ１０２及びＭＦＰ１０４のそれぞれの構成である。このような環境下においてサーバ１０２は、複数あるＭＦＰ１０４に対し、ネットワーク１００を通じてアプリケーション１２０〜１２６の実行に伴うサービスを個別に提供する。これにより各ＭＦＰ１０４は、それ自身が個々にアプリケーションをインストールしていなくても、あたかも自己が保有しているかのようにしてアプリケーション１２０〜１２６の実行に伴う機能を活用することが可能となる。
【００３１】
ただし、上述したように複数のＭＦＰ１０４については、個々の機種（型式）等に応じて能力に違いがある。例えば複数あるＭＦＰ１０４のうち、上記のスキャナ２２４やＦＡＸ２２６としての機能を全て備えた機種もあれば、その一部しか備えていない機種もあり、あるいは両方を備えていない機種もある。このように、同じネットワーク１００に接続されたＭＦＰ１０４であっても、個々に能力の違いがあるため、サーバ１０２が保有するアプリケーション１２０〜１２６についても、全てのＭＦＰ１０４が全く共通に利用できるわけではない。例えば、あるアプリケーションがプリンタ２２２、スキャナ２２４及びＦＡＸ２２６の全てを制御する機能を有していても、これを利用するＭＦＰ１０４にプリンタ２２２の機能しか備わっていなければ、そのアプリケーションがスキャナ２２４やＦＡＸ２２６の機能を呼び出そうとしても、ＭＦＰ１０４では応答することができない。
【００３２】
そこで本実施形態では、上記のようにサーバ１０２が複数のコントローラＡＰＩ１１４〜１１８を予め保有しており、各コントローラＡＰＩ１１４〜１１８は、ＭＦＰ１０４の能力の違いに応じてタイプが異なっている。そしてサーバ１０２は、アプリケーション１２０〜１２６を利用するＭＦＰ１０４の能力に応じて適切なコントローラＡＰＩ１１４〜１１８を選択的に切り替えて使用するものとしている。以下、その具体的な動作例について説明する。また、この間にサーバ１０２は、データ格納部１２８から読み出したプログラムを実行しつつ以下の動作を行うことができる。
【００３３】
図３は、ＭＦＰ１０４からの要求に応じてサーバ１０２がアプリケーションの実行に伴うサービスの提供を返すまでの手順例を示したシーケンス図である。
【００３４】
ステップＳ１００：例えばユーザの操作によりＭＦＰ１０４で利用するアプリケーション１２０〜１２６を選択する。ＭＦＰ１０４は、ユーザにより選択されたアプリケーション１２０〜１２６の実行要求をサーバ１０２に送信する。このときユーザは、例えばＭＦＰ１０４の操作パネルを通じてアプリケーションを選択する操作を行うことができる。操作パネルの表示画面には、サーバ１０２にインストールされたアプリケーション１２０〜１２６のタイトル一覧（利用可能なもの）がボタン形式等で表示されており、その中からユーザが所望のタイトルボタンに触れることで、アプリケーション１２０〜１２６を選択する操作が行われる。
【００３５】
ステップＳ１０１：選択されたアプリケーション１２０〜１２６の実行要求をサーバ１０２のＯＳ１１０にて受け付ける。ＯＳ１１０は、ＭＦＰ１０４から実行要求を受け付けたアプリケーションの種類（あるいはタイトル）とともに、その実行要求を発したＭＦＰ１０４に関する情報をコントローラＡＰＩ切替コントローラ２００に通知する。
【００３６】
ステップＳ１０２，Ｓ１０３：コントローラＡＰＩ切替コントローラ２００は外部装置能力記憶部１３０にアクセスし、実行要求を発したＭＦＰ１０４に関する情報に基づいてコントローラＡＰＩ１１４〜１１８の関連情報を取得する。
【００３７】
ステップＳ１０４：コントローラＡＰＩ切替コントローラ２００は、取得した関連情報に基づいて適当なコントローラＡＰＩ１１４〜１１８を選択する。ここで選択されるコントローラＡＰＩ１１４〜１１８は、実行要求を発したＭＦＰ１０４が有する固有の特性、つまり、その能力に合わせて構成されたものとなる。例えば、実行要求を発したＭＦＰ１０４がスキャナ２２４の機能を備えていない場合には、アプリケーション１２０〜１２６がスキャナ機能の呼び出しを行わないことを前提として構成されたコントローラＡＰＩ１１４〜１１８が選択される。なお、コントローラＡＰＩ１１４〜１１８の選択とその関連情報については別の図面を参照しながら後述する。
【００３８】
ステップＳ１０５：コントローラＡＰＩ切替コントローラ２００は、先のステップＳ１０４で選択した適当なコントローラＡＰＩ１１４〜１１８をアプリケーション１２０〜１２６に渡す。
【００３９】
ステップＳ１０６，Ｓ１０７：アプリケーション１２０〜１２６は、渡されたコントローラＡＰＩ１１４〜１１８を認識すると、認識完了をコントローラＡＰＩ切替コントローラ２００に通知する。
【００４０】
ステップＳ１０８，Ｓ１０９：コントローラＡＰＩ切替コントローラ２００は、ＭＦＰ１０４から実行要求があったアプリケーション１２０〜１２６を起動する。
【００４１】
ステップＳ１１０：起動されたアプリケーション１２０〜１２６は、選択されたコントローラＡＰＩ１１４〜１１８を通じてＯＳ１１０（仮想マシン１１２）上で実行される。
【００４２】
ステップＳ１１１：サーバ１０２のＯＳ１１０（仮想マシン１１２）上でアプリケーション１２０〜１２６が実行されると、その実行要求を発したＭＦＰ１０４に対してアプリケーション１２０〜１２６の実行に伴うサービスが提供される。このときアプリケーション１２０〜１２６は、適当なコントローラＡＰＩ１１４〜１１８を通じてＭＦＰ１０４の有する能力、つまり、プリンタ２２２やスキャナ２２４、ＦＡＸ２２６の機能を利用してＭＦＰ１０４の動作を制御することができる。
【００４３】
図４は、コントローラＡＰＩ切替コントローラ２００が適当なコントローラＡＰＩ１１４〜１１８を選択する手順例を示したフローチャートである。コントローラＡＰＩ切替コントローラ２００は、上記シーケンス中のステップＳ１０４で図４の手順を実行する。以下、フローチャートの手順例に沿って説明する。
【００４４】
本フローチャートの実行に際し、コントローラＡＰＩ切替コントローラ２００は、実行要求を発したＭＦＰ１０４の個体を識別するための識別情報を取得する。識別情報としては、例えばネットワーク１００内でのＭＦＰ１０４の装置名称や装置番号等である。ここでは一例として、装置名称を使用する。
【００４５】
ステップＳ２００：コントローラＡＰＩ切替コントローラ２００は、取得した識別情報（装置名称「ＭｆｐＮａｍｅ＿Ｃ」）に基づき、外部装置能力記憶部１３０から装置名称「ＭｆｐＮａｍｅ＿Ｃ」に関連付けられたコントローラＡＰＩ１１４〜１１８を取得する。
【００４６】
図５は、外部装置能力記憶部１３０に記憶されている関連付けリストの第１例である。例えば、ネットワーク１００に装置名称「ＭｆｐＮａｍｅ＿Ａ」，「ＭｆｐＮａｍｅ＿Ｂ」，「ＭｆｐＮａｍｅ＿Ｃ」，「ＭｆｐＮａｍｅ＿Ｄ」，「ＭｆｐＮａｍｅ＿Ｅ」，・・・が付与されたＭＦＰ１０４が接続されている場合を想定する。この場合、各ＭＦＰ１０４は、それぞれ固有の能力に応じて使用可能なコントローラＡＰＩ１１４〜１１８が異なる。図５に示される第１例では、サーバ１０２に組み込まれたコントローラＡＰＩ１１４〜１１８について、これらを（１）〜（３）の番号で識別し、ＭＦＰ１０４の装置名称とコントローラＡＰＩ１１４〜１１８の番号とを相互に関連付けてリスト化している。なお、（１）〜（３）の各番号は、３種類のコントローラＡＰＩ１１４〜１１８のいずれかに該当するものとする。なお、以降の説明では表記の煩雑化を防止するため、コントローラＡＰＩを番号（１），（２），（３），・・・によって識別する場合、これまでに使用した参照符号の記載を省略するものとする。
【００４７】
ステップＳ２００では、コントローラＡＰＩ切替コントローラ２００は図５に示される関連付けリストを参照して、装置名称「ＭｆｐＮａｍｅ＿Ｃ」に関連付けられた３種類のコントローラＡＰＩ（３），（２），（１）を取得することができる。
【００４８】
ステップＳ２０１：次にコントローラＡＰＩ切替コントローラ２００は、取得した３種類のうち、コントローラＡＰＩ（３）が現時点で正常に動作可能な状態であるか否かを確認する。ここで「動作可能な状態」とは、特にコントローラＡＰＩ（３）が更新中である等の事情がなく、サーバ１０２において問題なく利用することができることを意味する。その結果、コントローラＡＰＩ（３）が動作可能であれば（Ｙｅｓ）、コントローラＡＰＩ切替コントローラ２００はステップＳ２０４に進み、選択されたアプリケーション１２０〜１２６にコントローラＡＰＩ（３）を渡す。
【００４９】
これに対し、コントローラＡＰＩ（３）が現時点で動作可能でないと判断すると（Ｎｏ）、コントローラＡＰＩ切替コントローラ２００は次にステップＳ２０２に進む。
【００５０】
ステップＳ２０２：コントローラＡＰＩ切替コントローラ２００は、次にコントローラＡＰＩ（２）が現時点で正常に動作可能な状態であるか否かを確認する。その結果、コントローラＡＰＩ（２）が動作可能であれば（Ｙｅｓ）、コントローラＡＰＩ切替コントローラ２００はステップＳ２０５に進み、選択されたアプリケーション１２０〜１２６にコントローラＡＰＩ（２）を渡す。
【００５１】
これに対し、コントローラＡＰＩ（２）が現時点で動作可能でないと判断すると（Ｎｏ）、コントローラＡＰＩ切替コントローラ２００は次にステップＳ２０３に進む。
【００５２】
ステップＳ２０３：コントローラＡＰＩ切替コントローラ２００は、次にコントローラＡＰＩ（１）が現時点で正常に動作可能な状態であるか否かを確認する。その結果、コントローラＡＰＩ（１）が動作可能であれば（Ｙｅｓ）、コントローラＡＰＩ切替コントローラ２００はステップＳ２０６に進み、選択されたアプリケーション１２０〜１２６にコントローラＡＰＩ（１）を渡す。
【００５３】
以上の手順を経て、コントローラＡＰＩ切替コントローラ２００は番号（１）〜（３）の中からいずれかのコントローラＡＰＩを選択することができる。図５の関連付けリストでは、１台のＭＦＰ１０４に対して複数種類のコントローラＡＰＩが一定の優先順位（３→２→１の順）で割り当てられているが、優先順位の高いコントローラＡＰＩが動作可能でなくても、次の優先順位のコントローラＡＰＩが動作可能であれば、そのコントローラＡＰＩを使用することができる。
【００５４】
一方、最も優先順位の低いコントローラＡＰＩ（１）についても現時点で動作可能でないと判断すると（Ｎｏ）、コントローラＡＰＩ切替コントローラ２００は次にステップＳ２０７に進む。
【００５５】
ステップＳ２０７：コントローラＡＰＩ切替コントローラ２００は、現時点で適当なコントローラＡＰＩがないことをＯＳ１１０に通知する。この通知を受けたＯＳ１１０は、実行要求を発したＭＦＰ１０４に対して、現在アプリケーション１２０〜１２６が利用できない旨の通知を行う。この場合ユーザは、サーバ１０２においてコントローラＡＰＩが利用可能となるのを待ってから改めてアプリケーション１２０〜１２６を選択することになる。
【００５６】
〔その他の関連付け〕
以上の第１例は、複数のＭＦＰ１０４を装置名称で識別し、それぞれに対応するコントローラＡＰＩの番号を関連付けた場合であるが、この他にも、本実施形態では複数のＭＦＰ１０４とコントローラＡＰＩ１１４〜１１８との関連付けについて、それぞれに固有の特性に応じて以下のパターンを適用することができる。
【００５７】
〔第２例〕
図６は、外部装置能力記憶部１３０に記憶されている関連付けリストの第２例である。例えば、ネットワーク１００に複数の機種「ＭｆｐＭｏｄｅｌ＿Ａ」，「ＭｆｐＭｏｄｅｌ＿Ｂ」，「ＭｆｐＭｏｄｅｌ＿Ｃ」，「ＭｆｐＭｏｄｅｌ＿Ｄ」，「ＭｆｐＭｏｄｅｌ＿Ｅ」，・・・のＭＦＰ１０４が接続されている場合を想定する。この場合、各ＭＦＰ１０４は、それぞれ機種に固有の能力に応じて使用可能なコントローラＡＰＩ１１４〜１１８が異なる。図６に示される第２例では、サーバ１０２に組み込まれたコントローラＡＰＩ１１４〜１１８を（１）〜（３）の番号で識別し、ＭＦＰ１０４の機種とコントローラＡＰＩ１１４〜１１８の番号とを相互に関連付けてリスト化している。
【００５８】
第２例のパターンを適用した場合、コントローラＡＰＩ切替コントローラ２００は、ＭＦＰ１０４が実行要求を発すると同時に、そのＭＦＰ１０４の機種名を取得して、その機種名から関連付けを参照し、使用するコントローラＡＰＩを選択する。例えば、実行要求を発したＭＦＰ１０４の機種名が「ＭｆｐＭｏｄｅｌ＿Ｃ」である場合、上記のステップＳ２００では、コントローラＡＰＩ切替コントローラ２００は図６に示される関連付けリストを参照して、機種「ＭｆｐＭｏｄｅｌ＿Ｃ」に関連付けられた３種類のコントローラＡＰＩ（３），（２），（１）を取得することができる。
【００５９】
〔第３例〕
図７は、外部装置能力記憶部１３０に記憶されている関連付けリストの第３例である。例えば、ネットワーク１００に接続された複数のＭＦＰ１０４について、装置名称「ＭｆｐＮａｍｅ＿Ａ」，「ＭｆｐＮａｍｅ＿Ｂ」，「ＭｆｐＮａｍｅ＿Ｃ」，「ＭｆｐＮａｍｅ＿Ｄ」，「ＭｆｐＮａｍｅ＿Ｅ」，・・・で識別されるものと、機種名「ＭｆｐＭｏｄｅｌ＿Ａ」，「ＭｆｐＭｏｄｅｌ＿Ｂ」，「ＭｆｐＭｏｄｅｌ＿Ｃ」，「ＭｆｐＭｏｄｅｌ＿Ｄ」，「ＭｆｐＭｏｄｅｌ＿Ｅ」，・・・で識別されるものが混在する場合を想定する（全てのＭＦＰ１０４が装置名称と機種名の両方を付与されていても良い）。この場合、各ＭＦＰ１０４は、それぞれ装置名称又は機種に固有の能力に応じて使用可能なコントローラＡＰＩ１１４〜１１８が異なる。
【００６０】
図７に示される第３例では、サーバ１０２に組み込まれたコントローラＡＰＩ１１４〜１１８を（１）〜（３）の番号で識別し、ＭＦＰ１０４の装置名称とコントローラＡＰＩ１１４〜１１８の番号とを相互に関連付けたものと、機種名とコントローラＡＰＩ１１４〜１１８の番号とを相互に関連付けたものとを混在させてリスト化している。
【００６１】
第３例のパターンを適用した場合、コントローラＡＰＩ切替コントローラ２００は、ＭＦＰ１０４が実行要求を発すると同時に、そのＭＦＰ１０４の装置名称又は機種名で表される識別子を取得して、その識別子が装置名称又は機種名のいずれを意味するかを判別する。そして、装置名称又は機種名から関連付けを参照し、使用するコントローラＡＰＩを選択する。例えば、実行要求を発したＭＦＰ１０４の識別子が機種「ＭｆｐＭｏｄｅｌ＿Ｃ」を表している場合、上記のステップＳ２００では、コントローラＡＰＩ切替コントローラ２００は図７に示される関連付けリストを参照して、機種「ＭｆｐＭｏｄｅｌ＿Ｃ」に関連付けられた３種類のコントローラＡＰＩ（３），（２），（１）を取得することができる。
【００６２】
また本実施形態では、上記の関連付けを決定する際に以下の事情を考慮することができる。具体的には、各ＭＦＰ１０４にオプションで搭載されている機能の有無と、それらの動作を制御することができるコントローラＡＰＩのバージョンを考慮して関連付けが決定されている。
【００６３】
図８は、ＭＦＰ１０４の装置名称と、搭載されている機能の有無及びコントローラＡＰＩのバージョンとの対応関係を示した対応表である。なお図中の○印はその機能が搭載されていることを意味し、×印はその機能が搭載されていないことを意味する。例えば、装置名称「ＭｆｐＮａｍｅ＿Ａ」のＭＦＰ１０４には、スキャナ２２４及びＦＡＸ２２６の機能が両方とも備わっており、このＭＦＰ１０４でスキャナ２２４及びＦＡＸ２２６の動作を制御できるコントローラＡＰＩのバージョンは「１．１０」である。
【００６４】
次に図９は、コントローラＡＰＩの番号と、それぞれが制御可能なオプション機能及びそのバージョンとの対応関係を示した対応表である。例えば、番号（１）のコントローラＡＰＩは、スキャナ２２４及びＦＡＸ２２６の機能に対応しており、そのバージョンは「１．１０」である。
【００６５】
以上の性能を有する複数のＭＦＰ１０４と、複数種類のコントローラＡＰＩを有するサーバ１０２とがネットワーク１００に接続されていると想定した場合、これらは図１０に示されるような関連付けがなされる。
【００６６】
〔第４例〕
図１０は、外部装置能力記憶部１３０に記憶されている関連付けリストの第４例である。以下、各関連付けの根拠について説明する。
【００６７】
Ｎｏ．１：
装置名称「ＭｆｐＮａｍｅ＿Ａ」のＭＦＰ１０４に搭載されたオプション機能に対応できるコントローラＡＰＩのバージョンは１．１０であるため、ここにはコントローラＡＰＩ（１）が関連付けられる。あるいは、バージョン１．１０の機能を全てカバーしているバージョン２．１０もここに関連付けることができる。
【００６８】
より詳細には、例えば誤って装置名称「ＭｆｐＮａｍｅ＿Ａ」のＭＦＰ１０４に対してコントローラＡＰＩ（３）を関連付けてしまった場合、そのＭＦＰ１０４のスキャナ２２４の機能をアプリケーションが使用しようとしても、コントローラＡＰＩ（３）はスキャナ２２４の機能に対応していないため、アプリケーションは正常に動作することができない。したがって、装置名称「ＭｆｐＮａｍｅ＿Ａ」のＭＦＰ１０４には、コントローラＡＰＩ（１），（２）が関連付けられることになる。
【００６９】
Ｎｏ．２：
装置名称「ＭｆｐＮａｍｅ＿Ｂ」のＭＦＰ１０４に搭載されたオプション機能に対応できるコントローラＡＰＩのバージョンは２．１０であるため、ここにはコントローラＡＰＩ（２）だけが関連付けられる。
【００７０】
例えば、誤って装置名称「ＭｆｐＮａｍｅ＿Ｂ」のＭＦＰ１０４に対してコントローラＡＰＩ（１）を関連付けてしまった場合、バージョン２．１０でのみ実装されているインタフェースをアプリケーションが使用することができない。すなわち、ＭＦＰ１０４ではコントローラＡＰＩのバージョン１．１０で実装されているインタフェースしか利用できないからである。
【００７１】
Ｎｏ．３：
装置名称「ＭｆｐＮａｍｅ＿Ｃ」のＭＦＰ１０４に搭載されたオプション機能に対応できるコントローラＡＰＩのバージョンは２．０８であるため、ここにはコントローラＡＰＩ（２）だけが関連付けられる。同バージョンのコントローラＡＰＩ（３）はスキャナ２２４の機能に対応していないので、ここには関連付けられない。
【００７２】
Ｎｏ．４：
装置名称「ＭｆｐＮａｍｅ＿Ｄ」のＭＦＰ１０４に搭載されたオプション機能に対応するコントローラＡＰＩのバージョンは２．０５であるため、ここにはコントローラ（２）が関連付けられる。また、ＦＡＸ２２６の機能に対応する同バージョン以上のコントローラＡＰＩ（３），（４）もまたここに関連付けることができる。
【００７３】
Ｎｏ．５：
装置名称「ＭｆｐＮａｍｅ＿Ｅ」のＭＦＰ１０４に搭載されたオプション機能に対応するコントローラＡＰＩのバージョンは２．００であり、また、装置名称「ＭｆｐＮａｍｅ＿Ｅ」のＭＦＰ１０４はオプションデバイス（スキャナ２２４及びＦＡＸ２２６）を搭載していないため、ここにはコントローラＡＰＩ（２），（３），（４），（５）を関連付けることができる。
【００７４】
上述した一実施形態によれば、ネットワーク１００に接続された複数のＭＦＰ１０４に対し、サーバ１０２が共通のアプリケーションを利用したサービスを提供することができる。特に、複数のＭＦＰ１０４ごとに性能が違っていても、それぞれの性能に合わせて適切なコントローラＡＰＩを選択的に使用することができるので、ＭＦＰ１０４の個別の能力に合わせて複数のアプリケーションを用意する必要がなく、それだけサーバ１０２の構成を簡略化することができる。
【００７５】
またサーバ１０２では、動作中のコントローラＡＰＩを止めることなしに、新規にコントローラＡＰＩを組み込んだり、その他のコントローラＡＰＩを更新したりすることができる。
【図面の簡単な説明】
【００７６】
【図１】ネットワーク環境の一構成例を示した概略図である。
【図２】サーバ及びＭＦＰの各構成例をより具体的に示した図である。
【図３】ＭＦＰからの要求に応じてサーバがアプリケーションの実行に伴うサービスの提供を返すまでの手順例を示したシーケンス図である。
【図４】コントローラＡＰＩ切替コントローラが適当なコントローラＡＰＩを選択する手順例を示したフローチャートである。
【図５】外部装置能力記憶部に記憶されている関連付けリストの第１例である。
【図６】外部装置能力記憶部に記憶されている関連付けリストの第２例である。
【図７】外部装置能力記憶部に記憶されている関連付けリストの第３例である。
【図８】ＭＦＰの装置名称と、搭載されている機能の有無及びコントローラＡＰＩのバージョンとの対応関係を示した対応表である。
【図９】コントローラＡＰＩの番号と、それぞれが制御可能なオプション機能及びそのバージョンとの対応関係を示した対応表である。
【図１０】外部装置能力記憶部に記憶されている関連付けリストの第４例である。
【符号の説明】
【００７７】
１００    ネットワーク
１０２    サーバ（アプリケーションサーバ）
１０４    ＭＦＰ
１１０    オペレーティングシステム
１１２    仮想マシン
１１４，１１６，１１８  コントローラＡＰＩ
１２０，１２２，１２４，１２６  アプリケーション
２００    コントローラＡＰＩ切替コントローラ
【図１】
2008176674.tif 000003
【図２】
2008176674.tif 000004
【図３】
2008176674.tif 000005
【図４】
2008176674.tif 000006
【図５】
2008176674.tif 000007
【図６】
2008176674.tif 000008
【図７】
2008176674.tif 000009
【図８】
2008176674.tif 000010
【図９】
2008176674.tif 000011
【図１０】
2008176674.tif 000012