以下、本発明の実施の形態について図面に基づいて説明する。
図3は、本発明を実施するシステム構成を説明するためのシステム構成図(その1)である。図3では説明に必要な構成を表し、説明に必要の無い構成を省略してある。以下の図においても同様である。
図3に示すシステム構成では、クライアント20と、サービス情報提供サーバ10と、画像形成装置1200と、サーバAと、サーバBとがネットワーク5を介して接続されている。
サービス情報提供サーバ10は、サービス情報提供プロセス40と、サービス情報格納部45とを有し、サービス情報格納部45には、例えば、サービス情報提供サーバ10が管理するサーバAに存在するプリントサービス提供サービス41が提供するプリントサービスに係る情報と、サービス情報提供サーバ10が管理するサーバBに存在するリポジトリサービス提供サービス42が提供するリポジトリサービスに係る情報とが格納されている。
クライアント20は、サービスを検索する検索条件を含んだリクエストを生成し、生成したリクエストをサービス情報提供サーバ10に送信する。
サービス情報提供サーバ10のサービス情報提供プロセス40は、クライアント20から送信されたリクエストを受信すると、リクエストを解析し、サービス情報格納部45に格納されているサービスに係る情報を用いて、リクエストに対応したレスポンスを生成し、クライアント20に送信する。
クライアント20は、レスポンスを受信し、解析して、サービスに係る情報を表示内容とする画面を生成し、ディスプレイに表示する。
また、クライアント20は、サービス情報提供サーバ10及びサービス情報提供サーバ10が管理するサーバが提供するサービスに係る情報の一覧を取得する旨のリクエストを生成し、生成したリクエストをサービス情報提供サーバ10に送信する。
サービス情報提供サーバ10のサービス情報提供プロセス40は、クライアント20から送信されたリクエストを受信すると、リクエストを解析し、サービス情報格納部45に格納されているサービスに係る情報を用いて、リクエストに対応したレスポンスを生成し、クライアント20に送信する。
なお、画像形成装置1200は、プリントサービス提供サービス41が提供するプリントサービスにおいて、プリンタとしてのハードウェア機能を有する装置の一例である。同様に、画像形成装置1200は、リポジトリサービス提供サービス42が提供するリポジトリサービスにおいて、文書データ等を格納するハードウェア機能も有する。
図4は、本発明を実施するシステム構成を説明するためのシステム構成図(その2)である。
図4に示すシステム構成では、クライアント20と、サービス情報提供サーバ10とがネットワーク5を介して接続されている。
図4のシステム構成は、図3のシステム構成と比べて、プリントサービスを提供するプリントサービス提供サービス41と、リポジトリサービスを提供するリポジトリサービス提供サービス42とが、サービス情報提供サーバ10に含まれる構成となっている。
サービス情報提供サーバ10は、サービス情報提供プロセス40やサービス情報格納部45以外に、プリントサービス提供サービス41やリポジトリサービス提供サービス42などサービスを提供するアプリケーションを含むように構成されていてもよい。
図4に示すようなシステム構成であっても、上述したように、サービス情報提供プロセス40は、クライアント20から送信されたリクエストを受信すると、リクエストを解析し、サービス情報格納部45に格納されているサービスに係る情報を用いて、リクエストに対応したレスポンスを生成し、クライアント20に送信する。
図5は、本発明を実施するシステム構成を説明するためのシステム構成図(その3)である。
図5に示すシステム構成では、クライアント20と、画像形成装置1200とがネットワーク5を介して接続されている。
図5のシステム構成は、図3及び図4のシステム構成と比べて、サービス情報提供プロセス40と、サービス情報格納部45と、プリントサービス提供サービス41と、リポジトリサービス提供サービス42とが、画像形成装置1200に含まれる構成となっている。
図5に示すようなシステム構成であっても、上述したように、サービス情報提供プロセス40は、クライアント20から送信されたリクエストを受信すると、リクエストを解析し、サービス情報格納部45に格納されているサービスに係る情報を用いて、リクエストに対応したレスポンスを生成し、クライアント20に送信する。
図6は、サービス情報提供サーバの一例のハードウェア構成図である。
図6に示されるサービス情報提供サーバ10のハードウェア構成は、それぞれバスBで相互に接続されている入力装置11と、表示装置12と、ドライブ装置13と、ROM(Read Only Memory)15と、RAM(Random Access Memory)16と、CPU(Central Processing Unit)17と、インターフェース装置18と、HDD(Hard Disk Drive)19とから構成されている。
入力装置11は、サービス情報提供サーバ10の利用者が操作するキーボード及びマウスなどで構成され、サービス情報提供サーバ10に各種操作信号を入力するのに用いられる。
表示装置12は、サービス情報提供サーバ10の利用者が操作するディスプレイなどで構成され、後述する各種画面を表示する。
インターフェース装置18は、サービス情報提供サーバ10をネットワーク5に接続するインターフェースである。
サービス情報提供プロセス40に対応するサービス情報提供プログラムや、サービス情報提供サーバ10の全体の処理を制御するメインプログラムは、例えば、CD−ROMなどの記録媒体14によってサービス情報提供サーバ10に提供されるか、ネットワーク5を通じてダウンロードされる。記録媒体14は、ドライブ装置13にセットされ、サービス情報提供プログラムやメインプログラムなどが記録媒体14からドライブ装置13を介してHDD19にインストールされる。
ROM15は、データなどを格納する。RAM16は、サービス情報提供サーバ10の起動時にHDD19からサービス情報提供プログラムやメインプログラムなどを読み出して格納する。CPU17は、RAM16に読み出され格納されたサービス情報提供プログラムやメインプログラムなどに従って処理を実行する。
以下、サービス情報提供プロセス40の機能の一例を、図7を用いて説明する。
図7は、サービス情報提供プロセスの一例を、機能ブロック図を用いて説明するための図である。
サービス情報提供プロセス40は、ネットワークI/F部51と、リクエスト解析部52と、レスポンス生成部53と、サービス情報管理部54と、動作状況判定部55と、検索条件判定部56とを含む。
ネットワークI/F部51は、クライアント20より送信されたリクエストを、ネットワーク5を介して受信し、受診したリクエストをリクエスト解析部52に渡したり、レスポンス生成部53で生成したレスポンスを、ネットワーク5を介してクライアント20に送信したりする。
リクエスト解析部52は、ネットワークI/F部51より渡されたリクエストの内容を解析し、リクエストに含まれる情報を保持する。
なお、リクエストの詳細は、後述する図12や、図14、図18を用いて説明する。
サービス情報管理部54は、サービスを提供するサービス提供サービス及びサービス提供サービスが提供するサービスに係る情報を管理し、例えば、図3に示されるように、ネットワーク5を介してサービス情報提供サーバ10と接続された他のサーバ又は図4に示されるように、サービス情報提供サーバ10に存在するサービス提供サービスより、サービス提供サービスに係る情報及びサービス提供サービスが提供するサービスに係る情報を取得し、サービス情報格納部45に登録する。
なお、サービス提供サービスに係る情報としては、例えばサービス提供サービスが動作中か停止中かの情報等がある。また、サービス提供サービスが提供するサービスに係る情報としては、例えばサービスの名前やサービスの表示用の名前、サービスの実装タイプ等がある。
また、サービス情報管理部54は、例えば、クライアント20からのリクエストに含まれる検索条件に基づいて、サービス情報格納部45を検索したり、検索条件に合うサービスに係る情報をサービス情報格納部45より取得したり、サービス情報格納部45に格納されているサービスに係る情報を更新したりする。
なお、サービス情報格納部45の詳細は、後述する図8、図9、図10、図11を用いて説明する。
動作状況判定部55は、サービス情報管理部54がサービス情報格納部45より取得したサービスに係る情報の内、後述するActiveの値を参照し、対応するサービス提供サービスが動作中か、動作していないかを判定したり、サービス情報管理部54が行った検索結果に基づいて、対応するサービス提供サービスが動作中か、動作していないかを判定したりする。
検索条件判定部56は、サービス情報管理部54がサービス情報格納部45より取得したサービスに係る情報の中に、クライアント20から送信されたリクエストに含まれる検索条件に一致するサービスに係る情報が存在するかどうかを判定したり、サービス情報管理部54が行った検索結果に基づいて、クライアント20から送信されたリクエストに含まれる検索条件に一致するサービスに係る情報が、サービス情報格納部45に存在するかどうかを判定したりする。
また、検索条件判定部56において、リクエスト解析部52が解析し、保持しているリクエストに含まれる後述する言語指定情報を基に、日本語でレスポンスをすることが要求されているかどうかを判定するようにしてもよい。
レスポンス生成部53は、サービス情報管理部54が、サービス情報格納部45より取得したサービスに係る情報を含むレスポンスを生成し、生成したレスポンスをネットワークI/F部51に渡す。
なお、レスポンスの詳細は、後述する図13、図15、図16、図17、図19、図20を用いて説明する。
以下、サービス情報格納部の詳細を図8から図11を用いて説明する。
図8は、サービス情報格納部を説明するための図(その1)である。
図8に示すように、サービス情報格納部45は、Nameと、Display Nameと、Access portと、Access Uriと、Activeと、Typeと、Machine Nameと、Internet Protocol Addressとを項目として含む。
Nameには、サービスの名前が格納されている。
Display Nameには、サービスの表示用の名前が英語で格納されている。
Access Portには、サービスのエンドポイント(SOAPリクエストのPOST先)のポート番号が格納されている。
Access Uriには、サービスのエンドポイント(SOAPリクエストのPOST先)のリクエストURI(HTTP URLのホスト記述部より後の部分)が格納されている。
Activeには、サービスを提供するサービス提供サービスが動作中なら「1」が、停止中なら「0」が格納されている。
Typeには、サービスの実装タイプが格納されている。例えば、実装タイプは、サービスの名前空間が同一であったとしても、実装や目的、性能、セキュリティ、利用料金などが異なる複数のサービスが同一ホストに存在する場合に、それぞれのサービスを区別するために用いられる。
Machine Nameには、サービスを提供する装置の名前が英語で格納されている。
Internet Protocol Addressには、サービスを提供するサービス提供サービスが実装されている装置のIPアドレスが格納されている。
サービス情報格納部45において、サービス情報提供サーバ10が管理対象とするサービスに係る情報を一元的に管理するため、サービス情報提供プロセス40は、クライアント20からのリクエストに対して、検索条件などを判定し、リクエストに応じて、図8に示されるようなサービスの表示用の名前や、サービスの実装タイプ、サービスを提供する装置の名前などを含むレスポンスを生成して、クライアント20に送信することができる。
なお、クライアント20からのリクエストの一例は、後述する図12を用いて説明する。また、クライアント20へのレスポンスの一例は、後述する図13を用いて説明する。
クライアント20は、サービス情報提供サーバ10にリクエストを1度送信するだけで、サービスの表示用の名前や、サービスの実装タイプ、サービスを提供する装置の名前など、ユーザがサービスを選択する場合に必要とする情報を含むレスポンスを取得することができる。
図9は、サービス情報格納部を説明するための図(その2)である。
図9に示すように、サービス情報格納部45は、Nameと、Display Nameと、Display Name jaと、Access portと、Access Uriと、Activeと、Typeと、Machine Nameと、Machine Name jaと、Internet Protocol Addressとを項目として含む。
図9に示すサービス情報格納部45は、図8に示すサービス情報格納部45と比較して、Display Name jaと、Machine Name jaとの項目が新たに追加されている。
Display Name jaには、サービスの表示用の名前が日本語で格納されている。
Machine Name jaには、サービスを提供する装置の名前が日本語で格納されている。
サービス情報提供プロセス40は、後述する図14において説明するように、クライアント20からのリクエストにおいて、レスポンスに含むサービスに係る情報の言語を日本語と指定されると、日本語で記述されたサービスの表示用の名前やサービスを提供する装置の名前などを含むレスポンスを生成し、クライアント20に送信するする。
なお、言語を指定するリクエストの一例は後述する図14を用いて説明する。また、日本語を含むレスポンスの一例は後述する図15を用いて説明する。
図10は、サービス情報格納部を説明するための図(その3)である。
図10に示すように、サービス情報格納部45は、Nameと、Display Nameと、Display Name jaと、Access portと、Access Uriと、Activeと、Typeと、Machine Nameと、Machine Name jaと、Internet Protocol Addressと、Iconとを項目として含む。
図10に示すサービス情報格納部45は、図9に示すサービス情報格納部45と比較して、Iconの項目が新たに追加されている。
Iconには、サービスに係るアイコンの情報が格納されている。
サービス情報提供プロセス40は、クライアント20からのリクエストに対して、図10に示されるサービス情報格納部45に格納されている、サービスに係るアイコンの情報を含むレスポンスを生成し、クライアント20に送信する。
なお、アイコンの情報を含むレスポンスの一例は後述する図16を用いて説明する。
以下、サービス情報格納部45の他の例を、図11を用いて説明する。図11は、サービス情報格納部を説明するための図(その4)である。
図8から図10では、サービス情報格納部45を、リレーショナルデータベース(RDB)のような形で構成した場合の例を示したが、サービス情報格納部45を、図11に示すように、XML(eXtensible Markup Language)データベース(XMLDB)のような形で構成してもよい。なお、図11に示すサービス情報格納部45に格納されている内容は、図9に示されるサービス情報格納部45に格納されている内容と同様である。
図12は、リクエストを説明するための図(その1)である。
図12に示されるリクエストには、「ST:」の後の「http://foo/var/repository」によって、検索対象とするサービスのIDが記述され、「?」の後の「type=mfp」によって、検索条件が「key=value」の形で記述されている。
クライアント20は、図12に示されるが如く、「?」の後に検索条件を含んだ検索のリクエストをサービス情報提供サーバ10に送信する。
クライアント20は、検索条件を含んだ検索のリクエストを用いてサービスを検索することによって、よりユーザの要求に沿ったサービスを検索することができる。
なお、クライアント20は、検索条件として、「key1=value1&key2=value2・・・」と、複数の検索条件を指定することもできる。
図13は、レスポンスを説明するための図(その1)である。
図13に示されるレスポンスには、「ST:」の後の「http://foo/var/repository」によって、サービスのIDが記述され、「?」の後の「type=mfp&machinename=third Floor east side&displayname=Repository for Development section」によって、サービスに係る情報が記述されている。
より具体的には、「type=mfp」によって、サービスの実装タイプが記述され、「machinename=third Floor east side」によって、サービスを提供する装置の名前が英語で記述され、「displayname=Repository for Development section」によって、サービスの表示用の名前が英語で記述されている。
なお、実際のレスポンスには、空白を含めることができないため、空白の代わりにHTTPスペース文字用エスケープシーケンス(%20)が含められているが、説明の簡略化のため、本発明の実施の形態においては、空白を含めて説明を行っている。
サービス情報提供プロセス40は、図12に示されるようなリクエストを1度受信すると、図13に示すが如く、「?」の後にサービスの実装タイプや、サービスを提供する装置の名前、サービスの表示用の名前などのユーザがサービスを選択する場合に必要とする情報を含むレスポンスを生成し、クライアント20に送信することができる。
図14は、リクエストを説明するための図(その2)である。
図14に示されるリクエストには、「type=mfp&」の後の「lang=ja」によって、当該リクエストに対するレスポンスに含まれるサービスに係る情報の言語が指定されている。
より具体的には、図14のリクエストでは、「lang=ja」によって、当該リクエストに対するレスポンスに含まれるサービスに係る情報の内、日本語に対応している情報は日本語によってレスポンスすることが指定されている。
クライアント20は、当該リクエストに対するレスポンスに含まれるサービスに係る情報の言語を指定する言語指定情報を、「?」の後の検索条件の付加情報に含めたリクエストを用いてサービスを検索することによって、ユーザにとって分かりやすい言語で記述されたサービスに係る情報をレスポンスとして取得し、ユーザに提供することができる。
図15は、レスポンスを説明するための図(その2)である。
図15に示されるレスポンスには、「type=mfp&machinename=3階東側&displayname=開発部用リポジトリサービス」によって、サービスに係る情報が、日本語に対応している部分は、日本語で記述されている。
なお、実際のレスポンスは、空白の場合と同様、日本語は、%〜のようにエスケープした形で記述されるが、説明の簡略化のため、本発明の実施の形態においては、そのままの日本語を用いて説明を行っている。
サービス情報提供プロセス40は、クライアント20により送信された図14に示されるようなリクエストを受信すると、図14に示されるリクエストに含まれる「lang=」の部分を解析し、図15に示されるような「?」の後に日本語で記述されたサービスに係る情報を含むレスポンスを生成し、クライアント20に送信することができる。
図16は、レスポンスを説明するための図(その3)である。
図16に示されるレスポンスには、「icon=jh76FSD8wefqwde2DSte53uiweyr7wyr723fr23rr8fwe」によって、サービスに係るアイコンの情報が記述されている。
サービス情報提供プロセス40は、図16に示されるようなサービスに係るアイコンの情報を含むレスポンスを生成することによって、一度の検索のリクエストに対して、ユーザがサービスを選択する場合に分かりやすさを提供するアイコン情報を含んだレスポンスをクライアント20に送信することができる。
以下、レスポンスの他の例を、図17を用いて説明する。図17は、レスポンスを説明するための図(その4)である。
本発明に係るサービス情報提供プロセス40は、サービス情報提供サーバ10又は他のサーバ等に実装されているサービス提供サービスが提供するサービスに係る情報を複数、管理しているため、例えば、図14に示されるようなリクエストに対して、複数のサービスに係る情報を含むレスポンスを作成し、クライアント20に提供することができる。
以下、リクエストの他の例を、図18を用いて説明する。図18は、リクエストを説明するための図(その3)である。
図18に示されるリクエストには、「ST:」の後の「http://foo/var/scan」によって、検索対象とするサービスのIDが記述され、「?」の後の「with=print」によって、検索対象のサービスの条件が記述されている。なお、図18は、プリントサービスと同居しているスキャンサービスを検索するリクエストの例となっている。
以下、図18に示されるようなリクエストを受信した場合、サービス情報提供プロセス40が作成するレスポンスの一例を、図19を用いて説明する。図19は、レスポンスを説明するための図(その5)である。
図19では、プリントサービスと同居しているスキャンサービスに係る情報が含まれている。
なお、クライアント20は、図12や図14、図18を用いて説明したように、サービスを検索する検索のリクエストをサービス情報提供サーバ10に送信する他に、サービス情報提供サーバ10が有するサービスに係る情報の一覧の取得を要求するHTTP1.1のGETリクエストをサービス情報提供サーバ10に送信することができる。
以下、GETリクエストに対するレスポンスの一例を、図20を用いて説明する。
図20は、レスポンスを説明するための図(その6)である。
図20に示される<machineName lang=" en"></machineName>のタグには、サービスを提供する装置の名前が英語で格納されている。
また、<machineName lang=" ja"></machineName>のタグには、サービスを提供する装置の名前が日本語で格納されている。
また、<displayName lang=" en"></displayName>のタグには、サービスの表示用の名前が英語で格納されている。
また、<displayName lang=" ja"></displayName>のタグには、サービスの表示用の名前が日本語で格納されている。
サービス情報提供プロセス40は、クライアント20よりGETリクエストを受信すると、サービス情報格納部45に格納されているサービスに係る情報を取得し、図20に示されるような、サービスの一覧情報を含むレスポンスを生成し、クライアント20に送信することができる。
以下、サービス情報提供プロセス40におけるサービス情報提供処理の例を図21から図23を用いて説明する。
図21は、サービス情報提供処理のフローチャート(その1)である。
ステップS10においてネットワークI/F部51は、クライアント20より送信された図12や図14、図18を用いて説明したような検索のリクエストを受信する。
ステップS10に続いてステップS11に進み、リクエスト解析部52は、ステップS10において受信したリクエストの内容を解析する。
例えば、リクエスト解析部51は、図12において説明したリクエストの「?」の後に記述されている検索条件(type=mfp)や、図14において説明したリクエストの「lang=」で指定される言語指定情報を解析する。
ステップS11に続いてステップS12に進み、サービス情報管理部54は、サービス情報格納部45よりサービスに係る情報を全て取得し、保持する。
ステップS12に続いてステップS13に進み、動作状況判定部55は、ステップS12において取得し、保持されている全てのサービスに係る情報のActiveの値を参照し、それぞれのサービスを提供するサービス提供サービスが動作中か停止中かを判定する。
動作状況判定部55は、ステップS12において取得した全てのサービスに係る情報に対応するサービス提供サービスの全てが動作中であると判定すると(ステップS13においてYES)、ステップS15に進み、ステップS12において取得した全てのサービスに係る情報に対応するサービス提供サービスの内、少なくとも1つ以上のサービス提供サービスが停止中であると判定すると(ステップS13においてNO)、ステップS14に進む。
例えば、動作状況判定部55は、Activeの値が「1」だと対応するサービスを提供するサービス提供サービスが動作中だと判定し、Activeの値が「0」だと対応するサービスを提供するサービス提供サービスが停止中であると判定する。
ステップS14では、サービス情報管理部54が、ステップS12においてサービス情報格納部45より取得し、保持しているサービスに係る情報の内、ステップS13において対応するサービス提供サービスが停止中であると判定されたサービスに係る情報を破棄する。
ステップS15では、検索条件判定部56が、ステップS11において解析した検索条件と、サービス情報管理部54が保持しているサービスに係る情報とを比較して、サービス情報管理部54が保持しているサービスに係る情報の中に、検索条件と一致するサービスに係る情報があるかどうかを判定する。
検索条件判定部56は、サービス情報管理部54が保持しているサービスに係る情報の中に、検索条件と一致するサービスに係る情報があると判定すると(ステップS15においてYES)、ステップS16に進み、サービス情報格納部45に格納されているサービスに係る情報の中に、検索条件と一致するサービスに係る情報が一つもないと判定すると(ステップS15においてNO)、処理を終了する。
例えば、検索条件判定部56は、図12に示されるリクエストに含まれる検索条件であるtypeの値と、図8に示されるサービス情報格納部より取得したサービスの実装タイプの値とを比較して、サービス情報格納部45より取得し、サービス情報管理部54において保持しているサービスに係る情報の中に、検索条件と一致するサービスに係る情報があるかどうかを判定する。
ステップS16では、検索条件判定部56が、ステップS11においてリクエストを解析した結果に基づいて、日本語でレスポンスをすることが要求されているかどうかを判定する。
検索条件判定部56は、日本語でレスポンスをすることが要求されていると判定すると(ステップS16においてYES)、ステップS18に進み、日本語でレスポンスをすることが要求されていないと判定すると(ステップS16においてNO)、ステップS17に進む。
例えば、検索条件判定部56は、ステップS11において解析した結果、リクエストに「lang=ja」が含まれているかどうかに基づいて、日本語でレスポンスをすることが要求されているかどうかを判定する。
ステップS17においてレスポンス生成部53は、サービス情報管理部54が保持しているサービスに係る情報を用いて、日本語を含まないレスポンス(例えば、図13参照)を生成する。
また、ステップS18においてレスポンス生成部53は、サービス情報管理部54が保持しているサービスに係る情報を用いて、日本語を含むレスポンス(例えば、図15又は図16参照)を生成する。
ステップS19では、ネットワークI/F部51が、ステップS17又はステップS18において生成したレスポンスを、ネットワーク5を介してクライアント20に送信する。
図21に示す処理を行うことによって、サービス情報提供プロセス40は、例えば、図12や図14、図18に示すような検索のリクエストの内容を解析して、リクエストに対する、図13や図15、図16、図17、図19に示すようなレスポンスを生成することができる。
なお、図21においては、ステップS12において全てのサービスに係る情報をサービス情報格納部45より取得し、ステップS13やステップS14においてActiveの値を参照し、対応するサービス提供サービスが動作していないサービスに係る情報は破棄するような、構成としたが、全てのサービスに係る情報をサービス情報格納部45より取得するのではなく、サービスに係る情報をサービス情報格納部45より1行ずつ読み出してActiveの値を参照し、対応するサービス提供サービスが動作していないサービスに係る情報は破棄したりするような構成としても良い。
また、サービスに係る情報をサービス情報格納部45より取得した後に検索条件などと比較するのではなく、リクエストに含まれる検索条件などを用いて、例えば、Activeの値が1で、typeの値がmfpのサービスに係る情報をサービス情報格納部45の中から検索して取得するような構成としてもよい。
以下、検索条件を用いて、サービス情報格納部45より検索条件に合うサービスに係る情報を取得する場合のフローチャートの一例を、図22を用いて説明する。図22は、サービス情報提供処理のフローチャート(その2)である。
ステップS60においてネットワークI/F部51は、クライアント20より送信された図12や図14、図18を用いて説明したような検索のリクエストを受信する。
ステップS60に続いてステップS61に進み、リクエスト解析部52は、取得したリクエストの内容を解析し、クエリーを作成する。なお、リクエスト解析部52は、サービス情報格納部45が、図8から図10に示したようにRDB形式であった場合は、SQL(Structured Query Language)を用いてクエリーを作成し、サービス情報格納部45が、図11に示したようにXMLDB形式であった場合は、XQueryを用いてクエリーを作成する。
ステップS61に続いてステップS62に進み、サービス情報管理部54は、サービス情報格納部45に対して、ステップS61において作成したクエリーを用いて検索を実行する。なお、クエリーには、例えば、図12において説明したリクエストの「?」の後に記述されている検索条件(type=mfp)や、図14において説明した「lang=」で指定される言語指定情報、及びActiveの値が「1」等の検索条件が含まれる。
ステップS62に続いてステップS63に進み、例えば動作状況判定部55及び/又は検索条件判定部56は、ステップS62において実行した検索の結果に基づいて、ステップS61において作成したクエリーに含まれる検索条件等に合うサービスに係る情報がサービス情報格納部45に存在するかどうかを判定する。
動作状況判定部55及び/又は検索条件判定部56は、クエリーに含まれる検索条件等に合うサービスに係る情報がサービス情報格納部45に存在すると判定すると(ステップS63においてYES)、ステップS64に進み、クエリーに含まれる検索条件等に合うサービスに係る情報がサービス情報格納部45に存在しないと判定すると(ステップS63においてNO)、処理を終了する。
ステップS64では、サービス情報管理部54が、リクエストにおいて要求されているサービスに係る情報を、サービス情報格納部45より取得する。例えば、リクエストにおいて、「lang=」で日本語が指定されていた場合、サービス情報管理部54は、日本語に対応しているサービスに係る情報は、日本語で書かれているサービスに係る情報を取得する。
ステップS64に続いてステップS65に進み、レスポンス生成部53は、ステップS64において取得したサービスに係る情報を含むレスポンスを生成する。
ステップS65に続いてステップS66に進み、ネットワークI/F部51は、ステップS65において作成したレスポンスを、クライアント20に送信する。
図22に示すような処理を行っても、サービス情報提供プロセス40は、例えば、図12や図14、図18に示すような検索のリクエストに応じて、リクエストに対する、図13、図15、図16、図17、図19に示すようなレスポンスを生成し、クライアント20に送信することができる。
図23は、サービス情報提供処理のフローチャート(その3)である。
ステップS20においてネットワークI/F部51は、クライアント20より送信されたHTTP1.1のGETリクエストを受信する。
ステップS20に続いてステップS21に進み、リクエスト解析部51は、ステップS20において受信したリクエストの内容を解析する。
ステップS21に続いてステップS22に進み、サービス情報管理部54は、サービス情報格納部45よりサービスに係る情報を全て取得し、保持する。
例えば、サービス情報管理部54は、図10に示されるようなサービス情報格納部45より、サービスの表示用の名前や、サービスの実装タイプ、サービスを提供する装置の名前などのサービスに係る情報を取得し、保持する。
ステップS22に続いてステップS23に進み、レスポンス生成部53は、ステップS22においてサービス情報格納部45より取得したサービスに係る情報を含むレスポンス(例えば、図20参照)を生成する。
図23に示す処理を行うことによって、サービス情報提供プロセス40は、HTTP1.1のGETリクエストの内容を解析して、リクエストに対する、図20に示すようなレスポンスを生成することができる。
以下、図8から図11に示されるサービス情報格納部45に、サービスに係る情報を登録する登録処理の一例を、図24を用いて説明する。
図24は、サービス情報登録処理の一例のフローチャートである。
ステップS30において、サービス情報管理部54は、プリントサービス提供サービス41やリポジトリサービス提供サービス42などのサービス提供サービスが提供するサービスに係る情報を取得する。
例えば、プリントサービス提供サービス41やリポジトリサービス提供サービス42などのサービス提供サービスのインストーラに、サービス提供サービスが提供するサービスに係る情報を、サービス情報提供プロセス40に送信するようプログラムしておき、サービス提供サービスがサーバなどの装置にインストールされた際、サービス情報管理部54が、サービス提供サービスのインストーラより送信されるサービスに係る情報を取得するような構成としてもよい。
また、例えば、サービス情報管理部54が、管理対象となっている装置にインストールされているプリントサービス提供サービス41やリポジトリサービス提供サービス42などのサービス提供サービスに、サービスに係る情報の取得要求を送信し、サービス提供サービスよりサービスに係る情報を取得するような構成としてもよい。
また、例えば、サービス情報提供サーバ10を管理している管理者が手動で入力したサービスに係る情報をサービス情報管理部54が取得するような構成としてもよい。
ステップS30に続いてステップS31に進み、サービス情報管理部54は、ステップS30において取得したサービスに係る情報をサービス情報格納部45に登録する。
図24に示すような処理を行うことによって、サービス情報格納部45にサービスに係る情報を登録することができる。
以下、図8から図11に示されるサービス情報格納部45に格納されているサービスに係る情報を更新する更新処理の一例を、図25を用いて説明する。
図25は、サービス情報更新処理の一例のフローチャートである。
ステップS40においてサービス情報管理部54は、サービス情報格納部45に格納されているサービスに係る情報の更新情報を取得する。
例えば、サービス情報管理部54は、プリントサービス提供サービス41やリポジトリサービス提供サービス42などのサービス提供サービスから動作を停止する旨の更新情報を取得する。
ステップS40に続いてステップS41に進み、サービス情報管理部54は、ステップS40において取得した更新情報に基づいて、サービス情報格納部45に格納されているサービスに係る情報を更新する。
例えば、ステップS40においてサービス提供サービスから動作を停止する旨の更新情報を取得すると、サービス情報管理部54は、サービス情報格納部45に格納されている更新情報を送信してきたサービス提供サービスに対応するActiveの値を1から0に更新する。
図25に示すような処理を行うことによって、サービス情報格納部45に格納されているサービスに係る情報を更新することができる。
以下、クライアント20のハードウェア構成を、図26を用いて説明する。
図26は、クライアントの一例のハードウェア構成図である。
図26に示されるクライアント20のハードウェア構成は、それぞれバスBで相互に接続されている入力装置21と、ディスプレイ装置22と、ドライブ装置23と、ROM(Read Only Memory)25と、RAM(Random Access Memory)26と、CPU(Central Processing Unit)27と、インターフェース装置28と、HDD(Hard Disk Drive)29とから構成されている。
入力装置21は、クライアント20の利用者が操作するキーボード及びマウスなどで構成され、クライアント20に各種操作信号を入力するのに用いられる。
表示装置22は、クライアント20の利用者が操作するディスプレイなどで構成され、後述する各種画面を表示する。
インターフェース装置28は、クライアント20をネットワーク5に接続するインターフェースである。
ユーザがサービスを選択する場合に必要とするサービスに係る情報を取得するサービス情報取得プログラムは、例えば、CD−ROMなどの記録媒体24によってクライアント20に提供されるか、ネットワーク5を通じてダウンロードされる。記録媒体24は、ドライブ装置23にセットされ、データやサービス情報取得プログラムが記録媒体24からドライブ装置23を介してHDD29にインストールされる。
ROM25は、データなどを格納する。RAM26は、クライアント20の起動時にHDD29からサービス情報取得プログラムを読み出して格納する。CPU27は、RAM26に読み出され格納されたサービス情報取得プログラムに従って処理を実行する。
以下、クライアントの機能の一例を、図27を用いて説明する。
図27は、クライアントの機能の一例を、機能ブロック図を用いて説明するための図である。
図27に示すように、クライアント20は、リクエスト生成部60と、レスポンス解析部61と、ユーザI/F部62と、ネットワークI/F部63とを含む。
リクエスト生成部60は、サービスの検索のリクエスト(例えば、図12又は図14又は図18参照)及びHTTP1.1のGETリクエストを生成する。
レスポンス解析部61は、サービス情報提供サーバ10より受信した、レスポンス(例えば、図13、図15、図16、図17、図19、図20参照)を解析する。
ユーザI/F部62は、後述する図28や図29に示されるような画面を生成し、ディスプレイに表示する。また、表示した画面のボタンなどがユーザによってクリックされると、イベント情報を取得し、リクエスト生成部60などに通知する。
ネットワークI/F部63は、クライアント20と他の装置とを接続するインターフェースで、リクエスト生成部60において生成したリクエストを、ネットワーク5を介してサービス情報提供サーバ30に送信したり、サービス情報提供サーバ30からのレスポンスを、ネットワーク5を介して受信したりする。
以下、ユーザI/F部62が生成して表示した画面の例を図28及び図29を用いて説明する。
図28は、検索サービス選択画面の一例を説明するための図である。
ユーザI/F部62は、クライアント20を利用するユーザからの要求に基づいて、図28に示すような、ユーザに検索するサービスを選択させる画面を生成し、ディスプレイに表示する。
ユーザは、図28に示されるような画面を用いて、検索するサービスを選択する。
ユーザI/F部62は、例えば、ユーザによって、リポジトリサービスが選択され、OKボタンがクリックされると、イベント情報を取得し、リクエスト生成部60などに通知する。
リクエスト生成部60は、ユーザI/F部62よりユーザがリポジトリサービスを選択してOKボタンをクリックした旨のイベント情報を取得すると、例えば、図12に示されるようなリクエストを生成し、サービス情報提供サーバ10などに送信する。
図29は、検索結果画面の一例を説明するための図である。
クライアント20は、レスポンス(例えば、図13、図15、図16、図17、図19、図20参照)をサービス情報提供サーバ10などより受信する。
レスポンス解析部61は、レスポンスを解析し、ユーザI/F部62は、レスポンス解析部61において解析した解析結果に基づいて、図29に示すような画面を生成し、ディスプレイに表示する。
図29には、検索したサービスの結果として、サービスの表示用の名前と、サービスを提供する装置の名前とが日本語で表記され、サービスに係るアイコン(MFPのアイコン)が表示されている。
図28及び図29に示すように、ユーザは、本発明によるサービス情報提供サーバ10及びクライアント20を用いることによって、検索するサービスを指定し、1度検索を実行するだけで、ユーザがサービスを選択する場合に必要とする情報を取得することができる。
以下、クライアント20におけるサービス情報取得処理の一例を、図30を用いて説明する。
図30は、サービス情報取得処理の一例のフローチャートである。
リクエスト生成部60は、ユーザI/F部62より、図28に示すような検索サービス選択画面において、ユーザによって、検索するサービスが指定され、OKボタンがクリックされた旨の情報を取得すると、以下のステップS50からの処理を開始する。
ステップS50において、リクエスト生成部60は、サービスの検索のリクエスト(例えば、図12又は図14参照)及び/又はHTTP1.1のGETリクエストを生成する。
ステップS50に続いてステップS51に進み、ネットワークI/F部63は、ステップS50において生成したリクエストを、送信する。
例えばネットワークI/F部63は、図12や図14に示されるサービスの検索のリクエストを、ネットワーク5を介して、サービス情報提供サーバ10などに送信したり、HTTP1.1のGETリクエストをサービス情報提供サーバ10などに送信したりする。
ステップS51に続いてステップS52に進み、ネットワークI/F部63は、ネットワーク5を介して、サービス情報提供サーバ10などから送信されたサービスの検索のレスポンス(例えば、図13、図15、図16、図17、図19参照)及び/又はHTTP1.1のGETリクエストに対するレスポンス(例えば、図20参照)を受信する。
ステップS52に続いてステップS53に進み、レスポンス解析部61は、ステップS52において取得したレスポンスを解析する。
ステップS53に続いてステップS54に進み、ユーザI/F部62は、ステップS53において解析した結果に基づいて、例えば、図29に示されるような画面を生成する。
ステップS54に続いてステップS55に進み、ユーザI/F部62は、ステップS54において生成した画面をディスプレイに表示する。
図30に示す処理を行うことによって、クライアント20は、図12や図14に示されるようなリクエスト及び/又はHTTP1.1のGETリクエストをサービス情報提供サーバ10に送信して、図13、図15、図16、図17、図19に示されるようなレスポンス及び/又は図20に示されるようなレスポンスを取得し、ユーザがサービスを選択する場合に必要とする情報を1度の検索及び/又は取得要求で、ユーザに提供することができる。
なお、上述したクライアント20では、専用のプログラムを用い、図13、図15、図16、図17、図19に示されるようなレスポンスでも、図20に示されるようなレスポンスでもそれぞれ解釈し、画面を生成し、表示する構成としたが、例えば、サービス情報提供サーバ10と、クライアント20との間に図20に示されるようなXMLベースの言語をHTMLベースの言語に変換するXSLT(XML Stylesheet Language Transform)プロセッサを設け、サービス情報提供サーバ10から返信されるレスポンスをクライアント20のブラウザで表示するような構成としてもよい。
以下では、図5に示したように、サービス情報提供プロセス40が実装された装置の他の例として、画像を形成する画像形成装置(以下、融合機という)について、図31及び図32を用いて説明する。
図31は、融合機の機能構成を示すブロック図である。
図31において、融合機1200は、プロッタ1201と、スキャナ1202と、ファクシミリなどのハードウェアリソース1203などを有するとともに、プラットフォーム1220とアプリケーション1230とから構成されるソフトウェア群1210と、融合機起動部1240とを備えている。
融合機起動部1240は、融合機1200の電源投入時に先ず始めに実行され、プラットフォーム1220やアプリケーション1230を起動する。
プラットフォーム1220は、アプリケーション1230からの処理要求を解釈して、ハードウェア資源の獲得要求を発生させる下記に示すコントロールサービス1250と、一又は複数のハードウェア資源の管理をおこない、コントロールサービス1250からの獲得要求を調停するシステムリソースマネージャー(SRM(System Resource Manager)1223)と、OS1221とを有する。
このコントロールサービス1250は、複数のサービスモジュールにより形成され、具体的には、SCS(System Control Service)1222と、ECS(Engine Control Service)1224と、MCS(Memory Control Service)1225と、OCS(Operation panel Control Service)1226と、FCS(FAX Control Service)1227と、NCS(Network Control Service)1228と、IMH(Imaging Memory Handler)1229と、サービス情報提供プロセス40とがある。なお、このプラットフォーム1220は、あらかじめ定義された関数によりアプリケーションからの処理要求を受信可能とするアプリケーションプログラムインターフェースを有する。
OS1221は、UNIX(登録商標)などのオペレーティング・システムであり、プラットフォーム1220並びにアプリケーション1230の各ソフトウェアをそれぞれプロセスとして並列実行する。
SRM1223は、SCS1222とともにシステムの制御及びリソースの管理を行うものであり、スキャナやプロッタなどのエンジン部、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394I/F、RS232CI/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停をおこない、実行制御する。
SCS1222は、アプリ管理、操作部制御、システム画面表示(ジョブリスト画面、カウンタ表示画面など)、LED表示、リソース管理、割り込みアプリ制御等の複数の機能を行なう。
ECS1224は、プロッタ1201と、スキャナ1202と、その他ハードウェアリソース1203などのエンジン部を制御するものであり、画像読み込みと印刷動作、状態通知、ジャムリカバリなどを行う。
MCS1225は、メモリ制御を行う。
OCS1226は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールであり、オペレータのキー操作イベントを本体制御に通知する処理、各アプリがGUIを構築するためのライブラリ関数を提供する処理、構築されたGUI情報をアプリ別に管理する処理、操作パネル上への表示反映処理などを行う。
FCS1227は、システムコントローラの各アプリ層からPSTN/ISDN網を使ったファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読み取り、ファクシミリ受信印刷、融合送受信を行うためのAPI(Application Progaram Interface)1205を提供する。
NCS1228は、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行ったりする。
本実施例において、例えば、NCS1228で、複数のプロトコルのうちhttpd(Hypertext Transfer Protocol Daemon)2によって、インターネットを介して接続されるクライアントとのデータ通信をHTTP(Hypertext Transfer Protocol)で制御し、HTTPリクエストなどのリクエストをサービス情報提供プロセス40に提供し、リクエストに対する処理結果をHTTPレスポンスでクライアントへ通知するように構成しても良い。
IMH1229は、イメージデータを仮想メモリ領域(ユーザ仮想空間)から物理メモリへマップする。
サービス情報提供プロセス40は、上述したように、クライアント20から図12や図14を用いて説明した検索のリクエストを受信すると、図21に示した処理を行い、リクエストに対する図13や図15、図16に示すようなレスポンスを生成する。
また、サービス情報提供プロセス40は、クライアント20からHTTP1.1のGETリクエストを取得すると、図23に示した処理を行い、GETリクエストに対する図20に示すようなレスポンスを生成する。
なお、サービス情報格納部45は、後述する融合機1200のHDD1303又はフラッシュメモリに格納される。
アプリケーション1230は、ページ記述言語(PDL)、PCL及びポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ1211と、コピー用アプリケーションであるコピーアプリ1212と、ファクシミリ用アプリケーションであるファックスアプリ1213と、スキャナ用アプリケーションであるスキャナアプリ1214と、WebサービスアプリケーションであるWebサービス処理アプリ1215と、工程検査用アプリケーションである工程検査アプリ1216と、配信用アプリケーションである配信アプリ1217と、を有する。
Webサービス処理アプリ1215は、Webサービスを要求するHTTPリクエストを受信して、HTTPレスポンスを送信することによってWebサービスを提供するWebサーバ500と、API(Application Program Interface)1205を介してコントロールサービス1250を利用して所定処理を行い、その処理結果をWS−API(Web Service Application Progaram Interface)を介してWebサービスとして提供するWebサービスファンクション(WSF)1400とを有する。
なお、プリントサービス提供サービス41やリポジトリサービス提供サービス42等は、WSF1400として融合機1200に実装される。
融合機1200は、各アプリで共通的に必要となる処理をプラットフォーム1220で一元的に処理する。
次に、融合機1200のハードウェア構成について説明する。図32は、融合機のハードウェア構成を示すブロック図である。図32に示すように、この融合機1200は、オペレーションパネル1310、FAXコントロールユニット(FCU)1530、エンジン部1350(スキャナ1202等が接続される)及びプロッタ1201とコントローラ1300のASIC1301とをPCI(Peripheral Component Interconnect)バス1309等で接続した構成となる。
コントローラ1300は、ASIC1301にMEM−C1302、HDD(Hard Disk Drive)1303などを接続するとともに、このASIC1301とCPU1304とをCPUチップセットのNB1305を介して接続している。
CPU1304は、融合機1200の全体制御を行うものであり、具体的には、OS1221上でプラットフォーム1220を形成するSCS1222、SRM1223、ECS1224、MCS1225、OCS1226、FCS1227、NCS1228、サービス情報提供プロセス40をそれぞれプロセスとして起動して実行させるとともに、アプリケーション1230を形成するプリンタアプリ1211、コピーアプリ1212、ファックスアプリ1213、スキャナアプリ1214、Webサービス処理アプリ1215、工程検査アプリ1216、配信アプリ1217を起動して実行させる。
NB1305は、CPU1304とMEM−P1306、SB1307、NIC(Network Interface Card)1341、USB(Universal Serial Bus)1330、IEEE13941340、セントロニクス1342、ASIC1301とを接続するためのブリッジである。
MEM−P1306は、融合機の描画用メモリなどとして用いるシステムメモリであり、SB1307は、NB1305とROM、PCIデバイス、周辺デバイスとを接続するためのブリッジである。MEM−C1302は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ASIC1301は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。
HDD1303は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積及びサービスに係る情報を格納するストレージであり、オペレーションパネル1310は、操作者からの入力操作の受け付け並びに操作者に向けた表示を行う操作部である。
したがって、ASIC1301には、MEM−C1302を接続するためのRAMインターフェースと、HDD1303を接続するためのハードディスクインターフェースが設けられ、これらの記憶部に対して画像データの入出力を行う場合には、入出力先がRAMインターフェース又はハードディスクインターフェースに切り替えられる。
AGP1308は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、システムメモリに高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にする。
サービス情報提供プロセス40が実装された装置が、融合機1200であったとしても、クライアント20は、サービスの検索のリクエスト(例えば、図12又は図14参照)及び/又はHTTP1.1のGETリクエストを生成し、送信して、融合機1200より、サービスの検索のレスポンス(例えば、図13、図15、図16、図17、図19参照)及び/又はHTTP1.1のGETリクエストに対するレスポンス(例えば、図20参照)を受信し、ユーザがサービスを選択する場合に必要とする情報を1度の検索及び/又は取得要求で、ユーザに提供することができる。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。