(57)【要約】【課題】  従来、クライアント側で選択されたサーバー側で提供するＷｅｂサービスについて、実行時遅延バインディングによるサービス呼び出しに応じて、その前後のクライアント側の連係動作を柔軟に行うための手法が提供されていなかった。【解決手段】  そこで、本発明は、例えば、クライアントが、サーバーから受信した該サーバーが提供するサービスに対応する操作制御情報を登録する登録手段と、ユーザーにより前記登録された操作制御情報に対応するサービスが選択された場合に、当該サービスを前記サーバーで実行させるために、当該サービスを呼び出す呼び出し手段と、ユーザーにより前記登録された操作制御情報に対応するサービスが選択された場合に、当該サービスの呼び出しに際して、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理を実行する実行手段と、を有することを特徴とする。【選択図】  図６
2014146276.tif 000002
【特許請求の範囲】
【請求項１】
サーバーと通信を行うクライアントであって、
前記サーバーが提供するサービスに対応する操作制御情報を要求する要求手段と、
前記サーバーから受信した操作制御情報を登録する登録手段と、
ユーザーにより前記登録手段により登録された操作制御情報に対応するサービスが選択された場合に、当該サービスを前記サーバーで実行させるために、当該サービスを呼び出す呼び出し手段と、
ユーザーにより前記登録手段により登録された操作制御情報に対応するサービスが選択された場合に、当該サービスの呼び出しに際して、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理を実行する実行手段と、
を有することを特徴とするクライアント。
【請求項２】
前記実行手段は、ユーザーにより前記登録手段により登録された操作制御情報に対応するサービスが選択された場合に、当該サービスの呼び出しの前に、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理を実行することを特徴とする請求項１に記載のクライアント。
【請求項３】
前記呼び出し手段は、前記実行手段により実行された処理の結果を前記サーバーにわたして、前記サービスを呼び出すことを特徴とする請求項２に記載のクライアント。
【請求項４】
前記実行手段は、ユーザーにより前記登録手段により登録された操作制御情報に対応するサービスが選択された場合に、呼び出された当該サービスの実行の後に、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理を実行することを特徴とする請求項１乃至３のいずれか１項に記載のクライアント。
【請求項５】
前記実行手段は、ユーザーにより前記登録手段により登録された操作制御情報に対応するサービスが選択された場合に、呼び出された当該サービスの合間に、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理を実行することを特徴とする請求項１乃至４のいずれか１項に記載のクライアント。
【請求項６】
前記サービスには、ファームウェア管理サービス、レポーティングサービス、アプリケーション配信サービス、リソース配信サービス、アドレス帳配信サービス及び印刷サービスの少なくとも何れかが含まれることを特徴とする請求項１乃至５のいずれか１項に記載のクライアント。
【請求項７】
前記サービスの呼び出しに際して、操作制御情報で示すクライアントで実行すべき処理には、クライアントとネットワークを介して接続された機器に対しての、機器情報の取得する処理、状態情報の取得する処理、印刷履歴情報の取得する処理、ファームウェアの情報の取得する処理、ファームウェアを配信する処理、及び当該サービスを継続するかを問い合わせる処理の少なくとも何れかが含まれることを特徴とする請求項１乃至６のいずれか１項に記載のクライアント。
【請求項８】
前記操作制御情報には、前記サービスの呼び出しに際してクライアントで実行すべき処理の対象となる機器を特定するための情報が指定されており、
前記実行手段は、前記クライアントとネットワークを介して接続された機器のなかで、当該機器を特定するための情報に対応する機器を対象として、前記サービスの呼び出しに際してクライアントで実行すべき処理を実行することを特徴とする請求項１乃至７のいずれか１項に記載のクライアント。
【請求項９】
前記器を特定するための情報には、ベンダーを特定するための情報、製品カテゴリを特定するための情報、モデルを特定するための情報、及び機器で動作するプラットフォームを特定するための情報の少なくとも何れかが含まれることを特徴とする請求項８に記載のクライアント。
【請求項１０】
クライアントと通信を行うサーバーであって、
クライアントの要求に応じて、当該クライアントに提供するサービスに対応する操作制御情報を含むデータをクライアントに対して送信する送信手段と、
前記クライアントからの前記サービスの呼び出しに応じて、当該サービスを実行する実行手段と、を有し、
前記操作制御情報には、前記サービスの呼び出しに際して前記クライアントで実行すべき処理が指定されていることを特徴とするサーバー。
【請求項１１】
前記実行手段は、前記クライアントからの前記サービスの呼び出し際して、対応する操作制御情報で示すクライアントで実行すべき処理の結果が渡された場合には、当該結果に従い前記サービスを実行することを特徴とする請求項１０に記載のサーバー。
【請求項１２】
前記操作制御情報には、前記サービスの呼び出しに際してクライアントで実行すべき処理の対象となる機器を特定するための情報が指定されていることを特徴とする請求項１０または１１に記載のサーバー。
【請求項１３】
前記器を特定するための情報には、ベンダーを特定するための情報、製品カテゴリを特定するための情報、モデルを特定するための情報、及び機器で動作するプラットフォームを特定するための情報の少なくとも何れかが含まれることを特徴とする請求項１２に記載のサーバー。
【請求項１４】
請求項１乃至９のいずれか１項に記載のクライアントと、請求項１０乃至１３のいずれか１項に記載の１以上のサーバーと、からなる管理システム。
【請求項１５】
サーバーと通信を行うクライアントにおける方法であって、
前記サーバーが提供するサービスに対応する操作制御情報を要求する要求工程と、
前記サーバーから受信した操作制御情報を登録する登録工程と、
ユーザーにより前記登録された操作制御情報に対応するサービスが選択された場合に、当該サービスを前記サーバーで実行させるために、当該サービスを呼び出す呼び出し工程と、
ユーザーにより前記登録された操作制御情報に対応するサービスが選択された場合に、当該サービスの呼び出しに際して、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理を実行する実行工程と、
を有することを特徴とする方法。
【請求項１６】
前記実行工程では、ユーザーにより前記登録された操作制御情報に対応するサービスが選択された場合に、当該サービスの呼び出しの前に、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理が実行されることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記呼び出し工程では、前記実行された処理の結果を前記サーバーにわたして、前記サービスが呼び出されることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記実行工程では、ユーザーにより前記登録された操作制御情報に対応するサービスが選択された場合に、呼び出された当該サービスの実行の後に、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理が実行されることを特徴とする請求項１５乃至１７のいずれか１項に記載の方法。
【請求項１９】
前記実行工程では、ユーザーにより前記登録された操作制御情報に対応するサービスが選択された場合に、呼び出された当該サービスの合間に、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理が実行されることを特徴とする請求項１５乃至１８のいずれか１項に記載の方法。
【請求項２０】
クライアントと通信を行うサーバーにおける方法であって、
クライアントの要求に応じて、当該クライアントに提供するサービスに対応する操作制御情報を含むデータをクライアントに対して送信する送信工程と、
前記クライアントからの前記サービスの呼び出しに応じて、当該サービスを実行する実行工程と、を有し、
前記操作制御情報には、前記サービスの呼び出しに際して前記クライアントで実行すべき処理が指定されていることを特徴とする方法。
【請求項２１】
前記実行工程では、前記クライアントからの前記サービスの呼び出し際して、対応する操作制御情報で示すクライアントで実行すべき処理の結果が渡された場合には、当該結果に従い前記サービスが実行されることを特徴とする請求項２０に記載の方法。
【請求項２２】
請求項１乃至９のいずれか１項に記載の手段としてコンピューターを機能させるためのプログラム。
【請求項２３】
請求項１０乃至１３のいずれか１項に記載の手段としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ネットワーク上の機器が提供するサービスを利用するための技術に関する。
【背景技術】
【０００２】
現在、クライアントが、多種のＷｅｂサーバーが提供する各Ｗｅｂアプリケーション（サービス）専用のＡＰＩを使わずに任意のＷｅｂアプリケーションと連携するための仕組みが提供されている。たとえば、実行時遅延バインディングで、クライアントのアプリケーションとＷｅｂアプリケーションを疎結合にする方法が存在する。
【０００３】
まず、クライアントアプリケーションに対してユーザーが特定の操作を要求したタイミングで、クライアントアプリケーションに事前に特定の操作に対するハンドラとして登録された各Ｗｅｂアプリケーションをリストアップしてユーザーに選択させる。そしてクライアントアプリケーションは、ユーザーが選択したＷｅｂアプリケーションに対して、決められたフォーマットで記述された実行用データを渡すことで汎用操作の実行責務を委譲する。以上の処理により、実行時遅延バインディングによるクライアントアプリケーションとＷｅｂアプリケーションの連携を実現する。たとえばこの方法を採用しているものとして、Ｗｅｂ  Ｉｎｔｅｎｔｓと呼ばれる技術が存在する。
【０００４】
また、クライアントアプリケーションとＷｅｂアプリケーションの処理をシームレスに連携させる方法として、Ｗｅｂアプリケーションとして動作していたアプリケーションをクライアントインストールしてしまうといった方法が提案されている。（例えば、特許文献１参照）
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００７−５１９０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
Ｗｅｂアプリケーションの提供するサービスによっては、サービス実行前後にクライアント側でサービスに依存した前後処理が行われることが望ましい場合がある。
【０００７】
例えば、Ｗｅｂアプリケーションで、クライアントが管理している複数のネットワーク機器の運用状況をレポーティングするレポート出力サービスを提供する場合を想定する。この場合、レポート出力サービスを呼び出す前に、クライアント側のモジュールがネットワーク機器から所望の情報をサービス実行時（直前）に取得できれば、精度の高いレポーティングのための情報をＷｅｂアプリケーションに対して入力できる。
【０００８】
また、Ｗｅｂアプリケーションで、クライアントが管理している複数のネットワーク機器のためのファームウェアを配信するファームウェア管理サービスを提供する場合を想定する。この場合、ファームウェア管理サービスを呼び出す前に、クライアント側のモジュールがネットワーク機器から現在のファームウェア情報をサービス実行時（直前）に取得できれば、より適切なファームウェアをネットワーク機器またはクライアントに提供できる。また、ファームウェア管理サービスの呼び出し後に、クライアントに対してファームウェアが提供された際には、クライアント側のモジュールが後処理としてネットワーク機器にファームウェアを配信するなどの処理が必要になる。
【０００９】
背景技術で挙げた技術では、このようなＷｅｂアプリケーションが提供するサービスを呼び出す場合の、該サービスに連動した前後の処理の実行を想定していない。
【００１０】
そこで、本発明は、クライアント側で、呼び出したＷｅｂアプリケーションなどが提供するサービスに対応する連携動作を柔軟に行うための手法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明におけるクライアントは、サーバーが提供するサービスに対応する操作制御情報を要求する要求手段と、前記サーバーから受信した操作制御情報を登録する登録手段と、ユーザーにより前記登録手段により登録された操作制御情報に対応するサービスが選択された場合に、当該サービスを前記サーバーで実行させるために、当該サービスを呼び出す呼び出し手段と、ユーザーにより前記登録手段により登録された操作制御情報に対応するサービスが選択された場合に、当該サービスの呼び出しに際して、当該サービスに対応する操作制御情報で示すクライアントで実行すべき処理を実行する実行手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、クライアント側で、呼び出したＷｅｂアプリケーションなどが提供するサービスに対応する連携動作を柔軟に行うことが可能となる。
【図面の簡単な説明】
【００１３】
【図１】システム構成およびハードウェア構成を示す図である
【図２】ソフトウェア構成を示す図である
【図３】データベース構成を示す図である
【図４】実施例１における操作制御情報登録時のサーバー／クライアントの処理を説明するためのフローチャートを示す図である
【図５】実施例１におけるＨＴＭＬデータの例である
【図６】実施例１におけるサービス呼び出し時のクライアントの処理を説明するためのフローチャートを示す図である
【図７】実施例１におけるサービス選択画面の例である
【図８】実施例２におけるＨＴＭＬデータの例である
【図９】実施例２における初回サービス呼び出し後に表示されるポップアップ画面の例である
【図１０】実施例２におけるサービス呼び出し時のクライアントの処理を説明するためのフローチャートを示す図である
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１５】
（実施例１）
本発明に係る管理システムの一実施形態について説明する。なお、クライアント上で動作するアプリケーションが、サーバー上で動作するＷｅｂ（ウェブ）アプリケーションと連携するための操作制御情報を用いた制御の仕組みとして、ここではＷｅｂ  Ｉｎｔｅｎｔｓ（ウェブインテンツ）を例に挙げて説明する。もちろん、同様に操作制御情報を用いた制御を行うのであればＷｅｂ  Ｉｎｔｅｎｔｓ以外の仕組みであってもよい。
【００１６】
また、サーバー上で動作するＷｅｂアプリケーションの例として、複数台のネットワークプリンターに対するファームウェア管理サービスおよび印刷利用状況のレポーティングサービスを例に挙げて説明する。他にも、同様なネットワーク機器の管理サービスとして、複数台のネットワークプリンターに対するアプリケーション配信サービスやリソース配信サービス、アドレス帳配信サービス等のＷｅｂサービスに関しても本発明は適用可能です。また、Ｗｅｂアプリケーションが提供する印刷サービスを呼び出す際に、クライアント側でネットワークプリンターの機器情報や状態情報を収集するといった場合でも、本発明は適用可能である。
【００１７】
図１は、本実施形態のクライアント及びサーバーを含む管理システムのシステム構成およびハードウェア構成を説明するブロック図である。
【００１８】
管理システムは、ＬＡＮで接続されたクライアント１２０と、Ｆｉｒｅｗａｌｌ１６０越しにＷＡＮを介して接続される１台以上のサーバー１００より構成される。また、クライアント１２０が管理するネットワーク機器として、ＬＡＮで接続された１台以上のネットワークプリンター１４０が存在する。なお、サーバー１００およびクライアント１２０は汎用コンピューターの構成を有する。サーバー１００とクライアント１２０のハードウェア構成で重複するものについては、どちらか一方のみを説明し、もう一方については説明を省略する。
【００１９】
本実施例では、複数のサーバーは、それぞれ異なるＷｅｂアプリケーションが動作していることを想定している。クライアントは、いずれのサーバーのＷｅｂアプリケーションが提供するサービスであっても、例えばクライアント上で動作するブラウザアプリケーションなどを用いて同様の操作で呼び出すことが可能である。また、複数のサーバーのそれぞれのＷｅｂアプリケーションは、同じ種類のサービスを提供する場合がある。つまり、クライアントのユーザーは、各サービスの内容を考慮して、適宜、サービスを選択して呼び出すことが可能である。よって、本発明においては、近年増加している、いわゆるクラウドサービスと呼ばれるインターネット上で提供されるようなＷｅｂサービスを、ユーザーが提供元のベンダーを意識せずに、呼び出して実行可能となる。
【００２０】
また、１つのサーバーは、複数の装置からなるシステムとして構成され、当該複数の装置が連携することによりＷｅｂアプリケーションによるサービスをクライアントに対して提供してもよい。
【００２１】
サーバー１００において、１０１はＣＰＵであり、ＲＯＭ１０３あるいは外部メモリ１０６に記憶されたアプリケーションプログラム等に基づいて処理を実行する。さらに、ＣＰＵ１０１はシステムバス１０７に接続される各デバイスを総括的に制御する。１０２はＲＡＭで、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。１０３はＲＯＭであり、基本Ｉ／Ｏプログラム等の記憶領域として機能する読み出し専用のメモリである。このＲＯＭ１０３あるいは外部メモリ１０６には、ＣＰＵ１０１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等が記憶される。さらにＲＯＭ１０３あるいは外部メモリ１０６には上記アプリケーションプログラム等に基づく処理の際に使用するファイルやその他各種データを記憶する。１０４はネットワークＩ／Ｆであり、ネットワークへ接続しネットワーク通信を行う。１０５は外部メモリＩ／Ｆで、ハードディスク（ＨＤ）等の外部メモリ１０６とのアクセスを制御する。１０６は外部メモリであり、ブートプログラム、各種のアプリケーション、ユーザーファイル、編集ファイル等を記憶する。サーバー１００は、ＣＰＵ１０１がＲＯＭ１０３や外部メモリ１０６に書き込まれた基本Ｉ／ＯプログラムおよびＯＳを実行している状態で動作する。基本Ｉ／ＯプログラムはＲＯＭ１０３に書き込まれており、ＯＳはＲＯＭ１０３もしくは外部メモリ１０６に書き込まれている。そしてコンピューターの電源がＯＮされたときに、基本Ｉ／Ｏプログラム中のイニシャルプログラムロード機能により、ＲＯＭ１０３もしくは外部メモリ１０６からＯＳがＲＡＭ１０２に書き込まれ、ＯＳの動作が開始される。１０７はシステムバスであり、各デバイスを接続する。
【００２２】
クライアント１２０において、１２１はキーボードＩ／Ｆで、キーボード１２２や不図示のポインティングデバイスからの入力を制御する。１２３はディスプレイＩ／Ｆで、ディスプレイ１２４の表示を制御する。ＣＰＵ１０１は、ディスプレイ１２４上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００２３】
ネットワークプリンター１４０において、１４１はネットワークＩ／Ｆであり、ネットワークへ接続しネットワーク通信を行う。１４２はＣＰＵであり、制御プログラム等に基づいてシステムバス１５１に接続されるプリンターＩ／Ｆ１４７を介してプリンター１４８に出力情報としての画像信号を出力する。なお、制御プログラムはＲＯＭ１４４や外部メモリ１５０等に記憶される。ＣＰＵ１４２はネットワークＩ／Ｆ１４１を介してコンピューターとの通信処理が可能となっており、ネットワークプリンター１４０内の情報等をクライアント１２０に通知可能に構成されている。さらにＣＰＵ１４２はＲＯＭ１４４あるいは外部メモリ１５０に記憶されたアプリケーションプログラム等に基づいて処理を実行する。１４３はＲＡＭであり、ＣＰＵ１４２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１４３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。１４４はＲＯＭであり、１５０はハードディスク（ＨＤ）等の外部メモリである。このＲＯＭ１４４あるいは外部メモリ１５０には、ＣＰＵ１４２の制御プログラムや上記出力情報を生成する際に使用するフォントデータ、ネットワークプリンター１４０上で利用される情報等が記憶される。１４５は操作部Ｉ／Ｆであり、操作部１４６との間のインタフェースをつかさどり、表示すべき画像データを操作部１４６に対して出力する。また、ユーザーが操作部１４６を介して入力した情報の受信も行う。１４６は操作部であり、操作のためのスイッチおよびＬＥＤ表示器等が配されている操作パネル等に相当する。１４７はプリンターＩ／Ｆで、プリンター１４８（プリンターエンジン）に出力情報としての画像信号を出力する。１４９は外部メモリＩ／Ｆ（メモリコントローラ）であり、ハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１５０のアクセスを制御する。また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンター制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作部１４６からのプリンターモード設定情報を記憶するようにしてもよい。１５１はシステムバスであり、各デバイスを接続する。
【００２４】
上述のハードウェア構成に関しては、各装置において、同様のハードウェアデバイスを複数備えるように構成してもよい。たとえば、サーバー１００は、ＣＰＵを複数備えるよう構成してもよい。
【００２５】
図２は、本実施形態における管理システムのソフトウェア構成を説明するブロック図である。
【００２６】
まず、サーバー１００のソフトウェア構成を示す。サーバー１００において、アプリケーション２０４および各モジュールは、外部メモリ１０６に保存されたファイルとして存在する。これらは実行時にＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされ実行されるプログラムモジュールである。また、アプリケーション２０４は、外部メモリ１０６の不図示のＣＤ−ＲＯＭ、あるいはネットワークを経由して外部メモリ１０６のＨＤに追加することが可能となっている。
【００２７】
２００はネットワークモジュールであり、コンピューターとのネットワーク通信を行う。ネットワークモジュール２００はＴＣＰ／ＩＰモジュール２０１、ＨＴＴＰモジュール２０２より構成される。ＴＣＰ／ＩＰモジュール２０１はＴＣＰ／ＩＰプロトコルでのネットワーク通信を行う。ＨＴＴＰモジュール２０２はトランスポート・プロトコルとしてＴＣＰを使用し、ＨＴＴＰプロトコルでのネットワーク通信を行う。２０３はＷｅｂサーバーサービスモジュールであり、クライアント１２０からのＨＴＴＰリクエストを受け取るとＨＴＴＰレスポンスを応答するサービスを提供する。２０４はアプリケーションであり、クライアント１２０に指示を出すことで、クライアント１２０経由でネットワークプリンター１４０を管理する。アプリケーション２０４は、例えばＨＴＴＰリクエストに応答して処理を実行するプログラムとして実装される。
【００２８】
上記のように、アプリケーション２０４は、Ｗｅｂサーバーサービスモジュール２０３とともに、クライアント１２０およびネットワークプリンター１４０を管理するためのサービスを提供するＷｅｂアプリケーションを実現している。
【００２９】
２０５は、レポーティングモジュールであり、クライアント１２０上で動作するアプリケーション２２３のレポーティングモジュール２２５が収集したネットワークプリンター１４０の情報を受信する。レポーティングモジュール２０５が受信するネットワークプリンター１４０の情報は、例えばネットワークプリンターの機器構成情報や印刷履歴情報から構成される。受信したネットワークプリンター１４０の情報を元に、レポーティングモジュール２０５が表やグラフによりネットワークプリンター１４０の利用状況を示す利用状況レポートを生成する。生成されたレポートは、データベースサーバーサービスモジュール（ＤＢモジュール）２０９に格納される。そして、アプリケーション２０４が、クライアント１２０上で動作するＷｅｂブラウザー２２８を通じてレポート表示要求を受信すると、レポーティングモジュール２０５にレポート取得処理を依頼する。レポート取得要求を受信したレポーティングモジュール２０５が、ＤＢモジュール２０９に格納された利用状況レポートを取得する。レポーティングモジュール２０５が生成するネットワークプリンター１４０の利用状況レポートはクライアント１２０上で動作するＷｅｂブラウザー２２８にＵＩ表示される。利用状況レポートはＣＳＶやＰＤＦ等の任意フォーマット形式ファイルでのダウンロードが可能であってもよい。
【００３０】
２０６は、ファームウェア管理モジュールであり、ネットワークプリンター１４０用のファームウェアをＤＢモジュール２０９に格納する。ファームウェア管理モジュール２０６は、後述のクライアント１２０上で動作するアプリケーション２２３のファームウェア配信モジュール２２６からファームウェア取得要求を受信する。ファームウェア管理モジュール２０６は、ファームウェア取得要求を受信したら、ＤＢモジュール２０９からネットワークプリンター１４０用のファームウェアを取得する。そしてファームウェア管理モジュール２０６は、取得したファームウェアを要求元であるクライアント１２０上で動作するアプリケーション２２３のファームウェア配信モジュール２２６に返却する。
【００３１】
２０７は、ＡｕｔｏＤｏｗｎｌｏａｄモジュールであり、クライアント１２０上で動作するアプリケーション２２３のＡｕｔｏＤｏｗｎｌｏａｄモジュール２２７からの要求に対して、要求されたモジュールファイルを返却する。たとえば、ＡｕｔｏＤｏｗｎｌｏａｄモジュール２２７は、ＤＢモジュール２０９よりモジュールファイルを取得する。また、ＡｕｔｏＤｏｗｎｌｏａｄモジュール２０７は、要求されたモジュールファイルをダウンロード可能な別のデータベースサーバーのアクセス情報（ＵＲＬ情報）を返却してもよい。この場合には、クライアント１２０上で動作するＡｕｔｏＤｏｗｎｌｏａｄモジュール２２７が該アクセス情報を用いて、該当するモジュールファイルを取得することになる。
【００３２】
２０８は、操作制御情報管理モジュールであり、操作制御情報に関する制御全般を行う。クライアント１２０上で動作するアプリケーション２２３の操作制御情報管理モジュール２２４からの要求に対して、操作制御情報の登録用のタグ情報を含むＨＴＭＬデータを生成し返却する。
【００３３】
２０９は、データベースサーバーサービスモジュール（ＤＢモジュール）であり、データを管理し、他モジュールからの要求に合わせてデータの格納と取り出しを行う。ＤＢモジュール２０９は、アプリケーション２０４からアクセス可能であれば、サーバー１００とは別の機器上にあってもよい。
【００３４】
図３は、ＤＢモジュール２０９内のテーブル構成の例を示す。なお、図３のテーブル構成はあくまで一例であり、同様な情報が格納されているなら、本例とは異なるテーブル構成であってもよい。
【００３５】
３００は、サービス管理テーブルであり、アプリケーション２０４が提供するサービスに関する情報を管理するテーブルである。サービス管理テーブル３００で管理する情報は、例えばＳｅｒｖｉｃｅＩＤ、ＳｅｒｖｉｃｅＮａｍｅ等である。ここでＳｅｒｖｉｃｅＩＤとはサービスを一意に識別するＩＤであり、ＳｅｒｖｉｃｅＮａｍｅはサービスの名称を示す。
【００３６】
３０１は、操作制御情報管理テーブルであり、アプリケーション２０４が提供するサービスの操作制御情報を管理するテーブルである。操作制御情報管理テーブル３０１で管理する情報は、例えばＳｅｒｖｉｃｅＩＤ、Ａｃｔｉｏｎ、Ｔｙｐｅ、Ｈｒｅｆ、Ｄｉｓｐｏｓｉｔｉｏｎ等である。ここでＳｅｒｖｉｃｅＩＤはサービスを一意に識別するＩＤであり、Ａｃｔｉｏｎはサービスが実行可能な操作を示す情報であり、ＴｙｐｅはＡｃｔｉｏｎに付随するフィルタ情報である。Ｈｒｅｆはサービス選択時にロードされるページを示す情報であり、Ｄｉｓｐｏｓｉｔｉｏｎはサービスのページのオープン方法を示す。
【００３７】
３０２は、クライアント処理情報管理テーブルであり、アプリケーション２０４が提供するサービスの呼び出し（または実行）に付随して、クライアント側で実行が必要な処理に関する情報を管理するテーブルである。クライアント処理情報管理テーブル３０２で管理する情報は、例えばＳｅｒｖｉｃｅＩＤ、Ｆｉｌｅ、Ｃｌａｓｓ、Ｍｅｔｈｏｄ、ＥｘｅｃｕｔｅＡｔ、ＡｕｔｏＤｏｗｎｌｏａｄ、ＤｅｖｉｃｅＴｙｐｅ等である。
【００３８】
ここで、ＳｅｒｖｉｃｅＩＤはサービスを一意に識別するＩＤであり、Ｆｉｌｅはクライアント処理実行が必要なファイル名を示す。Ｃｌａｓｓはクライアント処理実行が必要なクラス名、Ｍｅｔｈｏｄはクライアント処理実行が必要なメソッド名を示す。ＥｘｅｃｕｔｅＡｔはクライアント処理の実行されるタイミングを示す。ここではサービス呼び出し前に実行が必要な場合はｂｅｆｏｒｅ、サービス呼び出し後に実行が必要な場合はａｆｔｅｒが値として指定されている。ＡｕｔｏＤｏｗｎｌｏａｄはクライアント実行処理に必要なファイルがクライアントに存在しない場合に、サーバー１００から自動ダウンロードを行うかどうかを示す。
【００３９】
ＤｅｖｉｃｅＴｙｐｅは、クライアント実行処理がアプリケーション２０４を提供するベンダー製（自社製）のネットワーク機器向け（Ｐｒｉｖａｔｅ）か、異なるベンダー製（他社製）のネットワーク機器向け（Ｓｔａｎｄａｒｄ）か、どうかを示す。ＤｅｖｉｃｅＴｙｐｅの指定方法としては、ベンダーを識別するＩＤを指定する方式でもよい。
【００４０】
なお、ＤｅｖｉｃｅＴｙｐｅは、サービス対象の機器の種類を特定する情報が、クライアント側のモジュールが処理可能なように、サービスそれぞれで定義されて指定されればよい。従って、ＤｅｖｉｃｅＴｙｐｅのような機器を特定する情報（条件）を複数設定することも想定される。その場合には、ベンダーの情報以外にも、プリンター、スキャナー、スマートフォン、デジタルカメラ、カーナビ、などといった機器の製品カテゴリをＤｅｖｉｃｅＴｙｐｅのＩＤとして設定することも可能である。また、ネットワーク機器のベンダーが定義するようなモデル情報をＤｅｖｉｃｅＴｙｐｅのＩＤとして設定することも可能である。それ以外にも、ネットワーク機器で動作するＯＳなどのプラットフォームを特定する情報をＤｅｖｉｃｅＴｙｐｅのＩＤとして設定することも可能である。
【００４１】
３０３は、ファームウェア管理テーブルであり、ファームウェア管理サービスで提供されるファームウェアの情報を管理するテーブルである。ファームウェア管理テーブル３０３で管理する情報は、例えばＦｉｒｍｗａｒｅＩＤ、ＰｒｏｄｕｃｔＩＤ、ＦｉｒｍｗａｒｅＶｅｒｓｉｏｎ、Ｆｉｌｅ等である。ここでＦｉｒｍｗａｒｅＩＤとはファームウェアを一意に識別するＩＤである。ＰｒｏｄｕｃｔＩＤとはファームウェアを適用可能なネットワークプリンター１４０などの機器の製品種別を一意に示すＩＤである。ＦｉｒｍｗａｒｅＶｅｒｓｉｏｎはファームウェアのバージョンを示す情報であり、Ｆｉｌｅはファームウェアのファイル名を示す。
【００４２】
３０４は、レポート管理テーブルであり、レポーティングサービスで提供されるレポートの情報を管理するテーブルである。レポート管理テーブル３０４で管理する情報は、例えばＲｅｐｏｒｔＩＤ、Ｆｉｌｅ、ＣｒｅａｔｅＯｎ等である。ここでＲｅｐｏｒｔＩＤはレポートを一意に識別するＩＤであり、Ｆｉｌｅはレポートのファイル名を、ＣｒｅａｔｅＯｎはレポート作成日時情報を示す。
【００４３】
次に、クライアント１２０のソフトウェア構成を示す。なお、クライアント１２０を構成する各モジュールはそれぞれＲＯＭ１０３もしくは外部メモリ１０６に保存されたファイルとして存在するプログラムモジュールである。そして、実行時にＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされ実行される。
【００４４】
２２０は、ネットワークモジュールであり、サーバー１００やネットワークプリンター１４０とのネットワーク通信を行う。ネットワークモジュール２２０はＴＣＰ／ＩＰモジュール２２１、ＨＴＴＰモジュール２２２より構成される。ＴＣＰ／ＩＰモジュール２２１はＴＣＰ／ＩＰプロトコルでのネットワーク通信を行う。ＨＴＴＰモジュール２２２はトランスポート・プロトコルとしてＴＣＰを使用し、ＨＴＴＰプロトコルでのネットワーク通信を行う。
【００４５】
２２３はアプリケーションであり、ネットワークプリンター１４０を管理し、サーバー１００上のアプリケーション２０４に対してサービスの呼び出しを行う。２２４は操作制御情報管理モジュールであり、操作制御情報関連全般の処理を行う。アプリケーション２２３は、例えば、ネットワーク上に存在するネットワークプリンターを探索して、それらの機器情報を表示したり、ステータス情報を管理したりする管理アプリケーションが挙げられる。ほかにも、サーバーで提供するサービスを実行するモジュールを追加することで機能拡張できるアプリケーションであれば、本発明は適用可能である。具体的には、汎用のＷｅｂブラウザーなどであってもよい。
【００４６】
操作制御情報管理モジュール２２４は、ネットワークモジュール２２０を介してサーバー１００上のアプリケーション２０４にアクセスし、取得したＨＴＭＬデータから操作制御情報登録用のタグ情報を取得して登録する。また、ユーザーがサービスに対する操作を要求時に、ユーザーが指定したデータを操作制御情報に設定し、該当する操作に関して操作制御情報登録されたサービスをユーザーが選択できるようにＵＩ表示する。そしてユーザーがサービスを選択すると操作制御情報管理モジュール２２４は、操作制御情報に設定されたデータを用いて、ユーザーが選択したサービスの呼び出し処理を行う。
【００４７】
２２５は、レポーティングモジュールであり、サーバー１００上のアプリケーション２０４が提供するレポーティングサービスの実行に付随してクライアント側で必要な処理を実行するためのモジュールである。レポーティングモジュール２２５はレポーティングサービス実行前の事前処理として、ネットワークプリンター１４０の印刷処理モジュール２４１を通じて印刷履歴情報を取得する。またレポーティングモジュール２２５はレポーティングサービス実行前の事前処理として、後述のネットワークプリンター１４０の機器情報管理モジュール２４２を通じて構成情報の取得も行う。
【００４８】
２２６は、ファームウェア配信モジュールであり、サーバー１００上のアプリケーション２０４が提供するファームウェア管理サービスの実行に付随してクライアント側で必要な処理を実行するためのモジュールである。ファームウェア配信モジュール２２６はファームウェア管理サービス実行前の事前処理として、ネットワークプリンター１４０の機器情報管理モジュール２４２を通じて構成情報を取得し、ネットワーク経由でのファームウェア更新機能を有効化する。また、ファームウェア配信モジュール２２６はファームウェア管理サービス実行後の事後処理として、後述のネットワークプリンター１４０の機器情報管理モジュール２４２にファームウェアを送信し、ファームウェア更新を要求する。
【００４９】
２２７は、ＡｕｔｏＤｏｗｎｌｏａｄモジュールであり、サーバー１００上のＡｕｔｏＤｏｗｎｌｏａｄモジュール２０７を介して、クライアント側での実行処理に必要なモジュールファイルをダウンロードする。２２８はＷｅｂブラウザーであり、ネットワークモジュール２２０を介してＨＴＴＰリクエストメッセージを送信し、ＨＴＴＰレスポンスメッセージを受信して表示する。クライアント１２０からサーバー１００へのアクセスはＷｅｂブラウザー２２８を通じて行われる。
【００５０】
なお、アプリケーション２０４及びアプリケーション２２３に関しては、レポーティングやファームウェア管理といった複数のサービスを提供するよう構成されていた。ここで、それぞれのサービスを提供し、操作制御情報管理モジュールをもつ複数のアプリケーションが動作するようにしても、本実施例は実現可能である。また、操作制御情報管理モジュールを、ＯＳなど、アプリケーションが動作するプラットフォーム上に組み込み、アプリケーションの各モジュールとＯＳとが連携することで、本発明を実現することも可能である。
【００５１】
続いて、ネットワークプリンター１４０のソフトウェア構成を示す。ネットワークプリンター１４０において、各種モジュールはＲＯＭ１４４あるいは外部メモリ１５０に保存されたファイルとして存在し、実行時にＲＡＭ１４３にロードされ実行される。
【００５２】
２４０は、ネットワークモジュールであり、任意の通信プロトコルを使用してクライアント１２０とのネットワーク通信を行う。２４１は印刷処理モジュールであり、クライアント１２０から送信された印刷ジョブの受信および制御、印刷処理を行う。また、印刷処理モジュール２４１は、処理対象となった印刷ジョブの各履歴を印刷履歴情報として管理し、クライアント１２０のレポーティングモジュール２２５からの要求に対して返却する。２４２は機器情報管理モジュールであり、ネットワークプリンター１４０の製品種別情報やＩＰアドレス、設置場所情報、ファームウェアバージョン情報等の構成情報を管理する。また機器情報管理モジュール２４２は、クライアント１２０のレポーティングモジュール２２５からの要求に対して構成情報を返却する。また、機器情報管理モジュール２４２は、ネットワークプリンター１４０のファームウェアの管理も行う。機器情報管理モジュール２４２がネットワークモジュール２４０経由でクライアント１２０上のファームウェア配信モジュール２２６からのファームウェア配信指示を受信すると、受信したファームウェアで自機のファームウェアを更新する。また機器情報管理モジュール２４２は、クライアント１２０のファームウェア配信モジュール２２６からの要求に対して、自機のネットワーク経由でのファームウェア更新機能を有効化する。
【００５３】
図４で示すフローチャートを用いて、クライアント１２０がサーバー１００にアクセスして、操作制御情報の登録処理を行う際のサーバー１００およびクライアント１２０の動作について述べる。
【００５４】
Ｓ４００で、クライアント１２０の操作制御情報管理モジュール２２４が、サーバー１００の操作制御情報管理モジュール２０８に対して操作制御情報の登録要求を送信する。Ｓ４０１でサーバー１００の操作制御情報管理モジュール２０８が、クライアント１２０から送信された操作制御情報の登録要求を受信する。Ｓ４０２で操作制御情報管理モジュール２０８が、ＤＢモジュール２０９の操作制御情報管理テーブル３０１から操作制御情報を取得する。Ｓ４０３で操作制御情報管理モジュール２０８が、ＤＢモジュール２０９のクライアント処理情報管理テーブル３０２に格納された情報をもとに、操作制御情報に係るサービスを呼び出す際にクライアントで実行すべき処理（クライアント実行処理）があるかどうかを判断する。クライアント実行処理がある場合にはＳ４０４に進み、そうでない場合はＳ４０５に進む。Ｓ４０４で操作制御情報管理モジュール２０８が、ＤＢモジュール２０９のクライアント処理情報管理テーブル３０２から、クライアント実行処理に係る処理情報を取得する。
【００５５】
Ｓ４０５で操作制御情報管理モジュール２０８が、クライアント１２０に返却するＨＴＭＬデータを生成する。その際、Ｓ４０２で取得した操作制御情報をタグ情報として宣言する。また、Ｓ４０４でクライアント実行処理情報を取得した場合は、その情報もクライアント１２０の操作制御情報管理モジュール２２４が解釈可能な形式で宣言する。Ｓ４０６で、サーバー１００の操作制御情報管理モジュール２０８がクライアント１２０の操作制御情報管理モジュール２２４に対してＳ４０５で生成したＨＴＭＬデータを送信する。
【００５６】
図５に、操作制御情報管理モジュール２０８がＳ４０５で生成するＨＴＭＬデータの例を示す。もちろん、図５で示す記述は、あくまでＷｅｂ  Ｉｎｔｅｎｔの記述ルールに基づく一例であり、操作制御情報およびクライアント実行処理情報は他の形式・表記で記載されていてもよい。
【００５７】
５００は、ファームウェア管理サービスに対応する操作制御情報およびクライアントで実行すべき処理に係る処理情報が記述されたＨＴＭＬデータの例である。
【００５８】
５０１は、ファームウェア管理サービスの操作制御情報であり、ＸＭＬ形式のデータをパラメーターとして受け取り、サービスページが新規ＷｉｎｄｏｗもしくはＰｉｃｋｅｒなどのＩｎｌｉｎｅ表示のいずれでも表示可能なことを示す。５０２〜５０４はクライアントで実行すべき処理情報を示す。５０２は、ファームウェア管理サービスを呼び出す際の事前処理として、ネットワークプリンター１４０の構成情報の取得処理の実行が必要なことを示している。５０３は、ファームウェア管理サービスを呼び出す際の事前処理として、ネットワークプリンター１４０のネットワーク経由でのファームウェア更新機能を有効化する処理の実行が必要なことを示している。５０４は、ファームウェア管理サービスを呼び出す際の事後処理として、クライアント側でのネットワークプリンター１４０へのファームウェアの配信処理の実行が必要なことを示している。
【００５９】
５１０は、レポーティングサービスに対応する操作制御情報およびクライアントで実行すべき処理に係る処理情報が記述されたＨＴＭＬデータの例である。
【００６０】
５１１は、レポーティングサービスの操作制御情報であり、ＸＭＬ形式のデータをパラメーターとして受け取り、サービスページが新規ＷｉｎｄｏｗもしくはＰｉｃｋｅｒなどのＩｎｌｉｎｅ表示のいずれでも表示可能なことを示す。５１２〜５１３はクライアントで実行すべき処理に係る処理情報を示す。５１２はレポーティングサービスを呼び出す際の事前処理として、クライアントが管理対象とする該サービスの提供元と同じベンダー製のネットワークプリンター１４０から、印刷履歴情報や構成情報等を取得する処理が必要なことを示している。５１３はレポーティングサービスを呼び出す際の事前処理として、クライアントが管理対象とする該サービスの提供元と異なるベンダー製のネットワークプリンター１４０から、印刷履歴情報や構成情報等を取得する処理が必要なことを示している。
【００６１】
なお、提供されるレポーティングサービスによっては、該サービスの提供元と異なるベンダー製の機器についてのレポーティングができない場合などもある。よって、Ｓ４０５で生成されるＨＴＭＬデータには、クライアントで実行すべき処理に係る処理情報が上述のように複数存在する場合もあれば、１つしかない、１つも存在しない場合もある。
【００６２】
次に、Ｓ４０７でクライアント１２０の操作制御情報管理モジュール２２４が、サーバー１００から送信されたＨＴＭＬデータを受信する。Ｓ４０８で操作制御情報管理モジュール２２４がＳ４０７で受信したＨＴＭＬデータからタグ情報内の操作制御情報およびクライアント実行処理情報を取得する。Ｓ４０９で操作制御情報管理モジュール２２４が操作制御情報とクライアント実行処理情報を関連付けて操作制御情報を登録し、処理を完了する。
【００６３】
ここでの操作制御情報の登録処理に従い、ユーザーは、アプリケーション２２４から、サーバー側のＷｅｂアプリケーションが提供するサービスを選択して、実行することが可能となる。
【００６４】
図６で示すフローチャートを用いて、クライアント１２０がサーバー１００のサービスを呼び出す際のクライアント１２０における動作について述べる。本処理は、クライアント１２０のＵＩ画面上でユーザーにより既に登録された操作制御情報に対応するサービスが選択されると、アプリケーション２２３により実行される。
【００６５】
図７に、クライアント１２０上でユーザーがサービスを選択する画面の例を示す。サービスを選択する画面は、図７の（ａ）のように、まずサービスを選択する画面を表示し、アプリケーション２２３が管理するネットワークプリンター１４０すべてがサービスの対象ネットワークプリンターとして選択されるようにしてもよい。また、図７の（ｂ）のように、まずクライアント１２０のアプリケーション２２３が管理するネットワークプリンター１４０の中からサービスの対象ネットワークプリンターを選択してもよい。その場合、選択されたネットワークプリンター１４０について次画面で適用可能なサービスを選択する、といった画面遷移になる。
【００６６】
Ｓ６００で、クライアント１２０の操作制御情報管理モジュール２２４が、ユーザーにより選択されたサービスについて登録されている操作制御情報を元に、クライアントで実行すべき処理があるかどうかを判断する。クライアントで実行処理が必要な場合にはＳ６０１に進み、実行処理が不要の場合はＳ６０９に進む。
【００６７】
Ｓ６０１で、操作制御情報管理モジュール２２４が、登録された操作制御情報からクライアントで実行すべき処理に係る処理情報を取得する。Ｓ６０２で、操作制御情報管理モジュール２２４が、アプリケーション２２３内にクライアントで実行すべき処理に必要なモジュールファイルが存在するかどうかを確認する。例えばファームウェア管理サービスの場合は、ファームウェア配信モジュール２２６が存在するかどうかを確認する。例えばレポーティングサービスの場合はレポーティングモジュール２２５が存在するかどうかを確認する。モジュールファイルが存在する場合はＳ６０５で対象処理（図６（ｂ））を実行する。モジュールファイルが存在しない場合は、Ｓ６０３で操作制御情報管理モジュール２２４が、該モジュールファイルがＡｕｔｏＤｏｗｎｌｏａｄ対象のファイルかどうかを、Ｓ６０１で取得した処理情報に基づき判断する。モジュールファイルがＡｕｔｏＤｏｗｎｌｏａｄ対象の場合にはＳ６０４に進み、ＡｕｔｏＤｏｗｎｌｏａｄ対象でない場合にはクライアント処理が実行できないので、必要に応じてエラーメッセージを出力した上で、本処理を終了する。Ｓ６０４では、操作制御情報管理モジュール２２４が、ＡｕｔｏＤｏｗｎｌｏａｄモジュール２２７に必要なモジュールファイルのＡｕｔｏＤｏｗｎｌｏａｄ処理をサーバー１００へ依頼する。必要なモジュールファイルのＡｕｔｏＤｏｗｎｌｏａｄが完了したら、Ｓ６０５の処理（図６（ｂ））に進む。
【００６８】
図６（ｂ）では、まずＳ６０６で、操作制御情報管理モジュール２２４が、Ｓ６０１で取得した処理情報を元に、実行タイミングを判定する。Ｓ６０５のタイミングで本処理が実行された場合、サービス呼び出し前に実行が必要な処理情報があるかどうかを判断する。サービス呼び出し前に実行すべき処理がある場合にはＳ６０７に進み、そうでない場合は本処理（図６（ｂ））を抜けて、Ｓ６０９に進む。
【００６９】
Ｓ６０７及びＳ６０８では、操作制御情報管理モジュール２２４が、アプリケーション２２３の管理対象であるネットワーク機器（ここではネットワークプリンター１４０）のすべてに対して処理を行う。Ｓ６０７で、操作制御情報管理モジュール２２４が、ネットワークプリンター１４０の機器情報を分析しデバイスタイプを特定する。具体的には、ネットワークプリンター１４０がサービスの提供元ベンダーのプリンターか、それ以外のベンダー製のプリンターかを特定する。Ｓ６０８で、操作制御情報管理モジュール２２４が、アプリケーション２２３内の各モジュールに対して特定された機器のタイプに対応する処理情報に対応する処理の実行を依頼する。なお、クライアントで実行すべき処理に係る処理情報における定義において、機器のタイプによって処理内容に違いがない場合は、同様の処理が実行されることになる。
【００７０】
例えば、ファームウェア管理サービスの場合、サービス呼び出し前に実行される処理として、ファームウェア配信モジュール２２６によるネットワークプリンターの構成情報の取得、およびネットワーク経由でのファームウェア更新機能の有効化処理が実行される。例えば、レポーティングサービスの場合、サービス呼び出し前に実行される処理として、レポーティングモジュール２２５によるネットワークプリンター１４０の機器構成情報や印刷履歴情報の取得処理が実行される。ここでの処理実行の結果である、ネットワークプリンターの構成情報や印刷履歴情報の取得結果は、例えばＸＭＬファイル形式等で出力され、そのままサービス呼び出しのパラメーターとして使用される。
【００７１】
続いて、Ｓ６０９で操作制御情報管理モジュール２２４が、操作制御情報を元にサーバー１００の提供するサービスを呼び出す。この際に、必要に応じてＳ６０５での処理結果をパラメーターとして、該サービスが呼び出される。また、サービス呼び出し結果は、必要に応じて、ＸＭＬファイル形式等で出力され、そのままサービス呼び出し後のクライアントで実行すべき処理のパラメーターとして使用される。その後、Ｓ６１０に進み、サービス呼び出し後にクライアントで実行すべき処理（図６（ｂ））を実行する。Ｓ６００で、操作制御情報を元にクライアントで実行すべき処理がないと判断された場合にはＳ６１０の処理を省略する。図６（ｂ）では、前述したのと同様の処理が実行されることになる。ここでは、Ｓ６１０のタイミングで本処理が実行された場合なので、サービス呼び出し後に実行が必要な処理情報があるかどうかを判断され、適宜処理が実行される。具体的には、ファームウェア管理サービスの場合、サービス呼び出し後に実行されるクライアント実行処理として、ファームウェア配信モジュール２２６によるネットワークプリンター１４０へのファームウェアの配信処理が実行される。
【００７２】
以上により、サーバー側の実行時遅延バインディングによるＷｅｂアプリケーションが提供するサービスの呼び出しに際して、本発明のように操作制御情報を拡張することで、その前後でのクライアント側の処理も合わせて指示することができるようになる。また、本発明では、クライアント側でも、当該操作制御情報に従い、適切なタイミングで、必要な処理を実行できるよう構成している。
【００７３】
（実施例２）
実施例１では、サービス呼び出し前後でクライアントの連携動作が必要なサービスの場合に、サーバー側から実行時遅延バインディングにより、サービス呼び出し前後のクライアント側の処理も合わせて指示する方法を示した。
【００７４】
実施例２では更に、複数のネットワークプリンター１４０に対するサービスの呼び出しの合間に、クライアント側で処理が実行されるケースを説明する。サーバー上で動作するＷｅｂアプリケーションの例として、複数台のネットワークプリンターに対するファームウェア管理サービスを例に挙げて説明する。もちろん、本実施例で挙げる例以外のＷｅｂアプリケーションに関して本発明を適用してもよい。
【００７５】
本実施形態の管理システムのシステム構成およびハードウェア構成・ソフトウェア構成については、実施例１の図１、図２および図３と同様のため説明を省略する。また、クライアント１２０がサーバー１００にアクセスし操作制御情報登録を行う際のサーバー１００およびクライアント１２０の動作についても、実施例１の図４とほぼ同様のため、その説明を省略する。
【００７６】
図８に、実施例２におけるＳ４０５で、操作制御情報管理モジュール２０８が生成するＨＴＭＬデータの例を示す。図８の表記はあくまでＷｅｂ  Ｉｎｔｅｎｔの記述ルールに基づく一例であり、他の形式・表記で記載されていてもよい。なお図８の５００〜５０４は図５と同様のため説明を省略する。
【００７７】
８００は、複数のネットワークプリンター１４０に対するサービス呼び出しに際して、初回呼び出しおよび呼び出し後のクライアント実行処理が完了した後に、呼び出されるクライアント実行処理を示している。本実施例では、最初の１台のネットワークプリンター１４０に対してファームウェア管理サービスが呼び出されてファームウェアが配信された後に、残りのネットワークプリンター１４０について継続処理を行うかどうかユーザーに確認する画面を表示する例を示す。
【００７８】
図９は、８００のクライアント実行処理が実行された結果、クライアント１２０のＵＩ上に表示される、ユーザーに処理継続の確認を求めるポップアップダイアログの例を示す。
【００７９】
図１０で示すフローチャートを用いて、クライアント１２０がサーバー１００のサービスを呼び出す際のクライアント１２０の動作について述べる。なお、ここでは、図６（ａ）で示すＳ６００〜Ｓ６０５、Ｓ６０９、および図６（ｂ）で示すＳ６０６〜Ｓ６０８と同様の処理については説明を省略する。
【００８０】
Ｓ６０５でサービス呼び出し前の処理が完了したら、Ｓ１０００のサービス呼び出しの処理（図１０（ｂ））に進む。本処理は、サービスの対象となる管理対象のネットワーク機器（ここではネットワークプリンター１４０）のそれぞれに対して実行される。
【００８１】
Ｓ１００１で、操作制御情報管理モジュール２２４が、操作制御情報を元に、クライアント実行処理結果をパラメーターとしてサーバー１００の提供するサービスを呼び出す。サービス呼び出し結果は例えばＸＭＬファイル形式等で出力され、そのままサービス呼び出し後のクライアント実行処理のパラメーターとして使用される。
【００８２】
その後、Ｓ１００２で、前述した図６（ｂ）で示す処理を実行される。具体的には、操作制御情報管理モジュール２２４が処理情報を元に、サービス呼び出し後の処理が必要に応じて事項されることになる。本実施例では、例えば、操作制御情報管理モジュール２２４がファームウェア配信モジュール２２６に実行処理を依頼し、ユーザーに処理継続の確認を求める図９のポップアップダイアログで示すＵＩを表示する。
【００８３】
Ｓ１００３で、操作制御情報管理モジュール２２４が、図９のポップアップダイアログを介した入力に基づき、処理を継続するかどうかを判断する。図９のポップアップダイアログＵＩでユーザーにＹｅｓボタンが選択された場合、Ｓ１００３の分岐はＹｅｓに進み、次のネットワークプリンターに対する処理に進む。図９のポップアップダイアログＵＩでユーザーにＮｏボタンが選択された場合、Ｓ１００３の分岐はＮｏに進み、処理を継続せずに本処理（図１０（ｂ））を終了する。
【００８４】
なお、上述のＳ１００２において、サービス呼び出し後に実行すべき処理がない場合には、Ｓ１００３の処理を省略し、Ｓ１００１に戻り、すべての管理対象のネットワークプリンターに対する処理を行うまで繰り返す。
【００８５】
以上の処理により、複数のネットワークプリンター１４０に対するサービス呼び出しの合間にクライアント側で処理が実行されるケースにおいても、サーバー側から実行時遅延バインディングによりクライアント側の処理も合わせて指示することができる。とくに、複数の管理機器に対して、サービス呼び出しの前後に処理を行う際に、処理を中断させるためのユーザー入力が可能となる。
【００８６】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００８７】
さらに、本発明には、上述した実施形態の適宜組み合わせることにより構成されたシステムやその機能も含まれるものとする。
【図１】
2014146276.tif 000003
【図２】
2014146276.tif 000004
【図３】
2014146276.tif 000005
【図４】
2014146276.tif 000006
【図５】
2014146276.tif 000007
【図６】
2014146276.tif 000008
【図７】
2014146276.tif 000009
【図８】
2014146276.tif 000010
【図９】
2014146276.tif 000011
【図１０】
2014146276.tif 000012