(57)【要約】【課題】仕様の拡張のための部分を用いてプログラムを容易に配信する。【解決手段】クライアント２０において、ＸＭＬデータ生成部２４が、認証情報が設定された既存要素とクライアントプログラム情報が設定されたＡｎｙ要素とを含むＸＭＬデータを生成し、送信部２５がＸＭＬデータをサーバ１０に送信する。サーバ１０では、受信部１６がＸＭＬデータを受信し、ＸＭＬデータ解析部１７がＸＭＬデータから認証情報及びクライアントプログラム情報を抽出し、ＸＭＬデータ生成部１４が、認証結果が設定された既存要素と最新のクライアントプログラム情報が設定されたＸＭＬデータを生成し、送信部１５がＸＭＬデータをクライアント２０に送信する。クライアント２０では、受信部２６がＸＭＬデータを受信し、ＸＭＬデータ解析部２７がＸＭＬデータから認証結果及び最新のクライアントプログラム情報を抽出する。【選択図】図７
2010072920.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書の仕様の拡張のための拡張要素を含み、配信対象の特定プログラムを決定するための情報が当該拡張要素に設定された第１の構造化文書データを、他の装置から受信する受信手段と、
前記受信手段により受信した前記第１の構造化文書データに含まれる拡張要素に設定された情報に基づいて、前記特定プログラムを決定する決定手段と、
構造化文書の仕様の拡張のための拡張要素を含み、前記決定手段により決定された前記特定プログラム、及び、当該特定プログラムの入手先を示す情報の少なくとも何れか一方が当該拡張要素に設定された第２の構造化文書データを生成する生成手段と、
前記生成手段により生成された前記第２の構造化文書データを、前記他の装置に送信する送信手段と
を備えたことを特徴とするプログラム配信装置。
【請求項２】
前記構造化文書は、ＸＭＬ文書であり、
前記拡張要素は、Ａｎｙ要素であることを特徴とする請求項１記載のプログラム配信装置。
【請求項３】
前記受信手段は、構造化文書の既存の仕様のための既存要素を含み、前記特定プログラムを実行する際に必要となる入力情報が当該既存要素に設定された前記第１の構造化文書データを受信し、
前記生成手段は、構造化文書の既存の仕様のための既存要素を含み、前記入力情報を処理した結果である結果情報が当該既存要素に設定された前記第２の構造化文書データを生成することを特徴とする請求項１記載のプログラム配信装置。
【請求項４】
前記受信手段は、前記他の装置が保持するプログラムのバージョン情報が前記特定プログラムを決定するための情報として拡張要素に設定された前記第１の構造化文書データを受信し、
前記決定手段は、前記受信手段により受信した前記第１の構造化文書データに含まれる拡張要素に設定された前記プログラムのバージョン情報と、自装置が管理する当該プログラムのバージョン情報とを比較することにより、前記特定プログラムを決定することを特徴とする請求項１記載のプログラム配信装置。
【請求項５】
前記受信手段は、前記特定プログラムの配信を要求するかどうか、及び、当該特定プログラムの入手先を示す情報の配信を要求するかどうかを示す配信方法指示情報が拡張要素に設定された前記第１の構造化文書データを受信し、
前記生成手段は、前記特定プログラム及び当該特定プログラムの入手先を示す情報のうち、前記配信方法指示情報に基づいて決定された方が拡張要素に設定された前記第２の構造化文書データを生成することを特徴とする請求項１記載のプログラム配信装置。
【請求項６】
構造化文書の仕様の拡張のための拡張要素を含み、自装置が提供する画像処理の機能を端末装置に利用させるために配信すべき特定プログラムを決定するための情報が当該拡張要素に設定された第１の構造化文書データを、当該端末装置から受信する受信手段と、
前記受信手段により受信した前記第１の構造化文書データに含まれる拡張要素に設定された情報に基づいて、前記特定プログラムを決定する決定手段と、
構造化文書の仕様の拡張のための拡張要素を含み、前記決定手段により決定された前記特定プログラム、及び、当該特定プログラムの入手先を示す情報の少なくとも何れか一方が当該拡張要素に設定された第２の構造化文書データを生成する生成手段と、
前記生成手段により生成された前記第２の構造化文書データを、前記端末装置に送信する送信手段と
を備えたことを特徴とする画像処理装置。
【請求項７】
構造化文書の仕様の拡張のための拡張要素を含み、配信対象の特定プログラムを決定するための情報が当該拡張要素に設定された第１の構造化文書データを生成する第１の生成手段と、当該第１の生成手段により生成された当該第１の構造化文書データを送信する第１の送信手段とを含むクライアントコンピュータと、
前記第１の送信手段により送信された前記第１の構造化文書データを受信すると、構造化文書の仕様の拡張のための拡張要素を含み、当該拡張要素に、当該第１の構造化文書データに含まれる拡張要素に設定された情報に基づいて決定された前記特定プログラム、及び、当該特定プログラムの入手先を示す情報の少なくとも何れか一方が設定された第２の構造化文書データを生成する第２の生成手段と、当該第２の生成手段により生成された当該第２の構造化文書データを前記クライアントコンピュータに送信する第２の送信手段とを含むサーバコンピュータと
を備えたことを特徴とするコンピュータシステム。
【請求項８】
コンピュータに、
構造化文書の仕様の拡張のための拡張要素を含み、配信対象の特定プログラムを決定するための情報が当該拡張要素に設定された第１の構造化文書データを、他の装置から受信する機能と、
受信した前記第１の構造化文書データに含まれる拡張要素に設定された情報に基づいて、前記特定プログラムを決定する機能と、
構造化文書の仕様の拡張のための拡張要素を含み、決定された前記特定プログラム、及び、当該特定プログラムの入手先を示す情報の少なくとも何れか一方が当該拡張要素に設定された第２の構造化文書データを生成する機能と、
生成された前記第２の構造化文書データを、前記他の装置に送信する機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム配信装置、画像処理装置、コンピュータシステム、プログラムに関する。
【背景技術】
【０００２】
端末でプリンタにおける印刷処理を指示すると、端末のドライバプログラムが、コアプログラムをサーバのプログラムデータベースからダウンロードし印刷処理を行うことにより、プリンタを利用するときに、そのドライバプログラムを自動的に最新なものにして処理を行えるようにしたドライバプログラムの配信方法が知られている（例えば、特許文献１参照）。
【特許文献１】特開２００３−１３１９７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ここで、一般に、プログラムの配信は既存の仕様の範囲内で行われるものであり、仕様の拡張のための部分を用いてプログラムを容易に配信することはできなかった。
本発明の目的は、仕様の拡張のための部分を用いてプログラムを容易に配信することにある。
【課題を解決するための手段】
【０００４】
請求項１に記載の発明は、構造化文書の仕様の拡張のための拡張要素を含み、配信対象の特定プログラムを決定するための情報が当該拡張要素に設定された第１の構造化文書データを、他の装置から受信する受信手段と、前記受信手段により受信した前記第１の構造化文書データに含まれる拡張要素に設定された情報に基づいて、前記特定プログラムを決定する決定手段と、構造化文書の仕様の拡張のための拡張要素を含み、前記決定手段により決定された前記特定プログラム、及び、当該特定プログラムの入手先を示す情報の少なくとも何れか一方が当該拡張要素に設定された第２の構造化文書データを生成する生成手段と、前記生成手段により生成された前記第２の構造化文書データを、前記他の装置に送信する送信手段とを備えたことを特徴とするプログラム配信装置である。
請求項２に記載の発明は、前記構造化文書は、ＸＭＬ文書であり、前記拡張要素は、Ａｎｙ要素であることを特徴とする請求項１記載のプログラム配信装置である。
請求項３に記載の発明は、前記受信手段は、構造化文書の既存の仕様のための既存要素を含み、前記特定プログラムを実行する際に必要となる入力情報が当該既存要素に設定された前記第１の構造化文書データを受信し、前記生成手段は、構造化文書の既存の仕様のための既存要素を含み、前記入力情報を処理した結果である結果情報が当該既存要素に設定された前記第２の構造化文書データを生成することを特徴とする請求項１記載のプログラム配信装置である。
請求項４に記載の発明は、前記受信手段は、前記他の装置が保持するプログラムのバージョン情報が前記特定プログラムを決定するための情報として拡張要素に設定された前記第１の構造化文書データを受信し、前記決定手段は、前記受信手段により受信した前記第１の構造化文書データに含まれる拡張要素に設定された前記プログラムのバージョン情報と、自装置が管理する当該プログラムのバージョン情報とを比較することにより、前記特定プログラムを決定することを特徴とする請求項１記載のプログラム配信装置である。
請求項５に記載の発明は、前記受信手段は、前記特定プログラムの配信を要求するかどうか、及び、当該特定プログラムの入手先を示す情報の配信を要求するかどうかを示す配信方法指示情報が拡張要素に設定された前記第１の構造化文書データを受信し、前記生成手段は、前記特定プログラム及び当該特定プログラムの入手先を示す情報のうち、前記配信方法指示情報に基づいて決定された方が拡張要素に設定された前記第２の構造化文書データを生成することを特徴とする請求項１記載のプログラム配信装置である。
請求項６に記載の発明は、構造化文書の仕様の拡張のための拡張要素を含み、自装置が提供する画像処理の機能を端末装置に利用させるために配信すべき特定プログラムを決定するための情報が当該拡張要素に設定された第１の構造化文書データを、当該端末装置から受信する受信手段と、前記受信手段により受信した前記第１の構造化文書データに含まれる拡張要素に設定された情報に基づいて、前記特定プログラムを決定する決定手段と、構造化文書の仕様の拡張のための拡張要素を含み、前記決定手段により決定された前記特定プログラム、及び、当該特定プログラムの入手先を示す情報の少なくとも何れか一方が当該拡張要素に設定された第２の構造化文書データを生成する生成手段と、前記生成手段により生成された前記第２の構造化文書データを、前記端末装置に送信する送信手段とを備えたことを特徴とする画像処理装置である。
請求項７に記載の発明は、構造化文書の仕様の拡張のための拡張要素を含み、配信対象の特定プログラムを決定するための情報が当該拡張要素に設定された第１の構造化文書データを生成する第１の生成手段と、当該第１の生成手段により生成された当該第１の構造化文書データを送信する第１の送信手段とを含むクライアントコンピュータと、前記第１の送信手段により送信された前記第１の構造化文書データを受信すると、構造化文書の仕様の拡張のための拡張要素を含み、当該拡張要素に、当該第１の構造化文書データに含まれる拡張要素に設定された情報に基づいて決定された前記特定プログラム、及び、当該特定プログラムの入手先を示す情報の少なくとも何れか一方が設定された第２の構造化文書データを生成する第２の生成手段と、当該第２の生成手段により生成された当該第２の構造化文書データを前記クライアントコンピュータに送信する第２の送信手段とを含むサーバコンピュータとを備えたことを特徴とするコンピュータシステムである。
請求項８に記載の発明は、コンピュータに、構造化文書の仕様の拡張のための拡張要素を含み、配信対象の特定プログラムを決定するための情報が当該拡張要素に設定された第１の構造化文書データを、他の装置から受信する機能と、受信した前記第１の構造化文書データに含まれる拡張要素に設定された情報に基づいて、前記特定プログラムを決定する機能と、構造化文書の仕様の拡張のための拡張要素を含み、決定された前記特定プログラム、及び、当該特定プログラムの入手先を示す情報の少なくとも何れか一方が当該拡張要素に設定された第２の構造化文書データを生成する機能と、生成された前記第２の構造化文書データを、前記他の装置に送信する機能とを実現させるためのプログラムである。
【発明の効果】
【０００５】
請求項１の発明によれば、本構成を有していない場合に比較して、仕様の拡張のための部分を用いてプログラムを容易に配信することができる。
請求項２の発明によれば、本構成を有していない場合に比較して、ＸＭＬ文書のＡｎｙ要素の部分を用いてプログラムを容易に配信することができる。
請求項３の発明によれば、既存の仕様における入力情報はそのまま処理することができる。
請求項４の発明によれば、本構成を有していない場合に比較して、他の装置におけるバージョン情報と自装置におけるバージョン情報とを比較することで決定されたプログラムを、仕様の拡張のための部分を用いて容易に配信することができる。
請求項５の発明によれば、プログラムそのもの、プログラムの入手先のうち、指示された方を配信することができる。
請求項６の発明によれば、本構成を有していない場合に比較して、仕様の拡張のための部分を用いてプログラムを容易に配信することができる。
請求項７の発明によれば、本構成を有していない場合に比較して、仕様の拡張のための部分を用いてプログラムを容易に配信することができる。
請求項８の発明によれば、本構成を有していない場合に比較して、仕様の拡張のための部分を用いてプログラムを容易に配信することができる。
【発明を実施するための最良の形態】
【０００６】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、「実施の形態」という）について詳細に説明する。
図１は、本実施の形態が適用されるコンピュータシステムの構成を示している。
図示するように、このコンピュータシステムは、画像処理装置１０と、端末装置２０とが、ネットワーク８０で接続されることにより構成されている。
【０００７】
このうち、画像処理装置１０は、端末装置２０からネットワーク８０を介して入力された情報や、直接メディアを挿入したり紙文書をスキャンしたりすることで得られた情報に基づいて、画像処理を行う装置である。例えば、プリンタであり、この観点からは画像形成装置として捉えることができる。また、スキャナであってもよく、この観点からは画像読取装置として捉えることもできる。更に、ファクシミリであってもよく、この観点からは画像送信装置又は画像受信装置として捉えることもできる。尚、本実施の形態において、画像処理装置１０は、Web Services on Devices仕様をサポートしているものとする。
【０００８】
また、端末装置２０は、文書の印刷や文書のファクシミリ送信等を画像処理装置１０に指示する装置であり、ＰＣ（Personal Computer）が例示される。尚、端末装置２０は、ウェブブラウザを有することもでき、その場合は、画像処理装置１０の各種設定をウェブブラウザから行うことができる。
更に、ネットワーク８０は、ＬＡＮ（Local Area Network）であってもよいし、インターネットであってもよい。
【０００９】
ところで、本実施の形態において、画像処理装置１０は、端末装置２０に画像処理の機能を提供し、端末装置２０は、画像処理装置１０が提供する画像処理の機能を利用する。そこで、以下では、一般化して、画像処理装置１０をサービスを提供するサーバ１０として、端末装置２０をサービスの提供を受けるクライアント２０として説明することにする。
【００１０】
さて、このようなサーバ１０とクライアント２０と間の通信の規約としてＸＭＬスキーマを用いたものがある。例えば、ＳＯＡＰ（Simple Object Access Protocol）である。ここで、ＸＭＬスキーマでは、サーバ１０とクライアント２０の間で交換されることが分かっている情報を指定する要素、つまり、既存の仕様のための要素（以下、「既存要素」という）と、サーバ１０とクライアント２０の間で将来的に交換されるであろう情報を指定するために用意される要素、つまり、仕様の拡張のための要素（以下、「拡張要素」という）とを定義することができる。ＸＭＬスキーマにおいて、後者のような、拡張が許されている要素は、特に「Ａｎｙ要素」と呼ばれる。本実施の形態において、サーバ１０は、Ａｎｙ要素を持つＸＭＬスキーマを用いてウェブサービスを提供することを前提にする。
近年では、各企業のデバイスに特化した情報をＡｎｙ要素に追加できるようにスキーマを定義することが多い。しかしながら、各企業のデバイスに特化した情報をＡｎｙ要素に追加することでサーバ１０側の仕様を変更すると、そのＡｎｙ要素の情報を処理できるプログラム（クライアントプログラム）をクライアント２０側に用意しなければならず、ユーザに面倒な作業を強いることになる。
【００１１】
こうしたことから、サーバ１０における仕様の変更に伴って必要となるクライアントプログラムを利用者が容易に取得できるようなクライアントプログラム配信の仕組みが望まれる。ところが、ＸＭＬスキーマを使った仕様として、クライアントプログラムをダウンロードするための一般的な仕様は未だ存在しない。一方で、Ｊａｖａ（登録商標）やＦｌａｓｈ（登録商標）等のプラットフォーム（ＯＳ）に依存しない実行環境は整備されつつある。
【００１２】
そこで、本実施の形態では、クライアントプログラムや、クライアントプログラムに関する各種情報も、Ａｎｙ要素に追加することで、ユーザが容易にクライアントプログラムを入手可能にする。また、Ａｎｙ要素を使用することで、既存のスキーマを変更する必要がなく、Ａｎｙ要素以外のメッセージはそのまま処理することを可能とする。即ち、ウェブサービス等の仕様の範囲内でクライアントプログラムのインストールを支援する機能を提供し、他の仕様には依存しないようにする。
具体的には、クライアントプログラムに関する情報（以下、「クライアントプログラム情報」という）を表す要素をＡｎｙ要素に新たに追加し、クライアント２０に配信する。ここで、クライアントプログラム情報には、クライアントプログラムそのものや、クライアントプログラムを入手できる場所、クライアントプログラムのバージョンや種類等を表す情報が含まれる。クライアント２０はそれらの情報を使ってクライアントプログラムを更新する。
【００１３】
次に、このような動作を実現するサーバ１０及びクライアント２０について詳細に説明する。
図２は、本実施の形態におけるサーバ１０とクライアント２０のメッセージ交換の様子を模式的に示した図である。
まず、図示しないが、サーバ１０及びクライアント２０に設けられる主な手段について説明する。
【００１４】
サーバ１０には、クライアントプログラム、クライアントプログラムの入手先、クライアントプログラムのバージョンや種類等の情報をＡｎｙ要素に追加したＸＭＬデータをクライアントに送信する手段が設けられている。また、クライアント２０からＸＭＬデータを受信した際に、ＸＭＬデータのＡｎｙ要素に含まれるクライアントプログラム情報を参照し、クライアント２０に返信するＸＭＬデータのＡｎｙ要素に追加するクライアントプログラム情報を決定する手段も設けられている。
【００１５】
クライアント２０には、サーバ１０がクライアントプログラム情報を確認できるよう、現在のクライアントプログラムのバージョン、種類、クライアントプログラムを要求するか、クライアントプログラムの場所を要求するか等をＡｎｙ要素に追加したＸＭＬデータをサーバ１０に送信する手段が設けられている。また、サーバ１０からＸＭＬデータを受信した際に、ＸＭＬデータのＡｎｙ要素に含まれるクライアントプログラムを実行したり、クライアントプログラム入手先に接続したりする手段も設けられている。
【００１６】
次いで、サーバ１０とクライアント２０の間でメッセージ交換を行う際の概略動作を説明する。
図示するように、最初、クライアント２０には、クライアントプログラムのＵＩであるサービス認証画面３１が表示されている。そして、このサービス認証画面３１には、ユーザ名とパスワードの入力欄が表示されている。また、サービス認証画面３１には、クライアントプログラムのバージョンが１．０であることも表示されている。
【００１７】
このような状態で、まず、ユーザは、サービス認証画面３１にユーザ名とパスワードを入力してサーバ１０への送信を要求する。すると、クライアント２０は、ユーザ名とパスワードからなる認証情報を既存要素（Ａｎｙ要素以外の要素）にセットし、現在のクライアント２０におけるクライアントプログラム情報をＡｎｙ要素にセットしたＸＭＬデータをサーバ１０に送信する（Ａ）。尚、この例において、クライアント２０が保持するバージョン１．０のクライアントプログラムは、企業のデバイスに特化した情報を追加したＡｎｙ要素に対応していないものとする。
【００１８】
これにより、サーバ１０は、Ａで送信された認証情報及びクライアントプログラム情報を処理する（Ｂ）。即ち、Ａで送信されたクライアントプログラム情報と、サーバ１０が保持している最新のクライアントプログラム情報とを照合する。その結果、クライアント２０で使用されているクライアントプログラムのバージョンが古ければ、クライアント２０へ最新のクライアントプログラムを送信することを決定する。また、Ａで送信された認証情報を用いて、通常の認証処理も行う。
【００１９】
その後、サーバ１０は、認証結果を既存要素（Ａｎｙ要素以外の要素）にセットしたＸＭＬデータをクライアント２０に送信する。但し、Ｂにおいて、クライアント２０におけるクライアントプログラムのバージョンが、最新のクライアントプログラムのバージョンよりも古いと判定されると、認証結果に加え、最新のクライアントプログラム情報をＡｎｙ要素にセットしたＸＭＬデータを送信する（Ｃ）。ここで、最新のクライアントプログラム情報には、クライアントプログラムそのものを含めてもよいし、クライアントプログラムの入手先を示す情報（例えば、ＵＲＬ）を含めてもよい。
【００２０】
これにより、クライアント２０は、Ｃで送信された情報に基づいて取得した最新のクライアントプログラムを実行又はインストールし、処理を継続する（Ｄ）。また、受信した認証結果を処理する。ここでは、クライアントプログラムのＵＩである認証成功画面３２を表示している。また、認証成功画面３２には、クライアントプログラムのバージョンが２．０であることも表示されている。尚、この例において、サーバ１０から受信したバージョン２．０のクライアントプログラムは最新のものであり、企業のデバイスに特化した情報を追加したＡｎｙ要素に対応している。
【００２１】
ここで、サーバ１０とクライアント２０の間で交換されるＸＭＬデータ、及び、そのＸＭＬデータの要素を定義するＸＭＬスキーマの具体例を示す。
図３は、図２のＡでクライアント２０からサーバ１０へ送信されるＸＭＬデータ（ＳＯＡＰリクエスト）の例である。
図示するように、<soap:Body>から</soap:Body>の間には、既存要素として、UserName要素と、Password要素とが記述されている。ここで、UserName要素にはユーザ名が設定され、Password要素にはパスワードが設定される。
【００２２】
また、<soap:Body>から</soap:Body>の間には、Ａｎｙ要素４１も記述されている。このＡｎｙ要素４１は、Name要素、Version要素、Type要素、DataRequired要素、LocationRequired要素等を含む。ここで、Name要素にはクライアントプログラムの名前が設定され、Version要素にはクライアントプログラムのバージョンが設定され、Type要素にはクライアントプログラムのタイプが設定される。また、DataRequired要素には、クライアントプログラムの配信を要求するかどうかが設定される。クライアントプログラムの配信を要求する場合には「true」が設定され、要求しない場合には「false」が設定される。更に、LocationRequired要素には、クライアントプログラムの入手先を示す情報の配信を要求するかどうかが設定される。クライアントプログラムの入手先を示す情報の配信を要求する場合には「true」が設定され、要求しない場合には「false」が設定される。
【００２３】
図４は、図３に示したＳＯＡＰリクエストのうち、Ａｎｙ要素４１が含む要素を定義するスキーマの例である。Ａｎｙ要素４１に含まれるName要素、Version要素、Type要素、DataRequired要素、LocationRequired要素等が定義されている。
【００２４】
図５−１及び図５−２は、図２のＣでサーバ１０からクライアント２０へ送信されるＸＭＬデータ（ＳＯＡＰレスポンス）の例である。尚、このＸＭＬデータは、一続きのデータであるが、ここでは、図面作成の都合上、途中で２つに分けて示している。
図示するように、<soap:Body>から</soap:Body>の間には、既存要素として、Result要素が記述されている。ここで、Result要素には認証結果が設定される。
【００２５】
また、<soap:Body>から</soap:Body>の間には、Ａｎｙ要素４２も記述されている。このＡｎｙ要素４２は、Name要素、Version要素、Type要素、Data要素、Location要素等を含む。ここで、Name要素にはクライアントプログラムの名前が設定され、Version要素にはクライアントプログラムのバージョンが設定され、Type要素にはクライアントプログラムのタイプが設定される。また、Data要素には、クライアントプログラムそのものが設定される。但し、ここでは、Include要素でクライアントプログラムを含む添付ファイルの記述４３の識別情報を指定している。更に、Location要素には、クライアントプログラムの入手先を示す情報が設定される。
【００２６】
図６は、図５−１及び図５−２に示したＳＯＡＰレスポンスのうち、Ａｎｙ要素４２が含む要素を定義するスキーマの例である。Ａｎｙ要素４２に含まれるName要素、Version要素、Type要素、Data要素、Location要素等が定義されている。
【００２７】
次に、本実施の形態におけるサーバ１０及びクライアント２０の機能構成について詳細に説明する。
図７は、サーバ１０及びクライアント２０の機能構成例を示したブロック図である。
まず、サーバ１０の機能構成について説明する。尚、本実施の形態において、サーバ１０は、プログラム配信装置の一例である。
図示するように、本実施の形態におけるサーバ１０は、プログラム記憶部１１と、管理情報記憶部１２と、既存定義記憶部１３ａと、拡張定義記憶部１３ｂと、ＸＭＬデータ生成部１４と、送信部１５と、受信部１６と、ＸＭＬデータ解析部１７と、認証部１８と、決定部１９とを備える。尚、これらのうち、プログラム記憶部１１、管理情報記憶部１２、既存定義記憶部１３ａ、拡張定義記憶部１３ｂは、例えばＨＤＤにより実現される。また、ＸＭＬデータ生成部１４、送信部１５、受信部１６、ＸＭＬデータ解析部１７、認証部１８、決定部１９の各機能は、ＣＰＵがＲＯＭに記憶されたプログラムをＲＡＭに読み込んで実行することにより、実現される。
【００２８】
プログラム記憶部１１は、クライアント２０に配信する対象であるクライアントプログラムを記憶する。
管理情報記憶部１２は、クライアントプログラム情報を記憶する。ここで、クライアントプログラム情報には、クライアントプログラムの名前、バージョン、タイプ、入手先等がある。
【００２９】
既存定義記憶部１３ａは、既存要素に関する定義情報を記憶する。
拡張定義記憶部１３ｂは、拡張要素（Ａｎｙ要素）に関する定義情報を記憶する。
ＸＭＬデータ生成部１４は、既存定義記憶部１３ａを参照して決定された要素に、認証部１８による認証結果を設定し、拡張定義記憶部１３ｂを参照して決定された要素に、決定部１９による決定結果、プログラム記憶部１１から取得したクライアントプログラム、管理情報記憶部１２から取得した入手先を設定することにより、ＸＭＬデータを生成する。本実施の形態では、第２の構造化文書データを生成する生成手段及び第２の生成手段の一例として、ＸＭＬデータ生成部１４を設けている。
送信部１５は、ＸＭＬデータ生成部１４により生成されたＸＭＬデータをクライアント２０に送信する。本実施の形態では、第２の構造化文書データを送信する送信手段及び第２の送信手段の一例として、送信部１５を設けている。
【００３０】
受信部１６は、クライアント２０からＸＭＬデータを受信する。本実施の形態では、第１の構造化文書データを受信する受信手段の一例として、受信部１６を設けている。
ＸＭＬデータ解析部１７は、受信部１６により受信されたＸＭＬデータを解析して情報を抽出する。
認証部１８は、ＸＭＬデータ解析部１７が抽出した情報に基づいて、認証処理を行う。
決定部１９は、ＸＭＬデータ解析部１７が抽出した情報と管理情報記憶部１２に記憶された情報とに基づいて、配信対象の候補である最新プログラムの名前、バージョン等を決定する。本実施の形態では、特定プログラムを決定する決定手段の一例として、決定部１９を設けている。
【００３１】
次に、クライアント２０の機能構成について説明する。
図示するように、本実施の形態におけるクライアント２０は、プログラム記憶部２１と、管理情報記憶部２２と、既存定義記憶部２３ａと、拡張定義記憶部２３ｂと、ＸＭＬデータ生成部２４と、送信部２５と、受信部２６と、ＸＭＬデータ解析部２７と、表示部２８と、操作受付部２９とを備える。尚、これらのうち、プログラム記憶部２１、管理情報記憶部２２、既存定義記憶部２３ａ、拡張定義記憶部２３ｂは、例えばＨＤＤにより実現される。また、ＸＭＬデータ生成部２４、送信部２５、受信部２６、ＸＭＬデータ解析部２７、表示部２８、操作受付部２９の各機能は、ＣＰＵがＲＯＭに記憶されたプログラムをＲＡＭに読み込んで実行することにより、実現される。
【００３２】
プログラム記憶部２１は、サーバ２０から配信されたクライアントプログラムを記憶する。
管理情報記憶部２２は、クライアントプログラム情報を記憶する。ここで、クライアントプログラム情報には、クライアントプログラムの名前、バージョン、タイプ、入手先等がある。
【００３３】
既存定義記憶部２３ａは、既存要素に関する定義情報を記憶する。
拡張定義記憶部２３ｂは、拡張要素（Ａｎｙ要素）に関する定義情報を記憶する。
ＸＭＬデータ生成部２４は、既存定義記憶部２３ａを参照して決定された要素に、操作受付部２９から取得した情報を設定し、拡張定義記憶部２３ｂを参照して決定された要素に、管理情報記憶部２２から取得した情報を設定することにより、ＸＭＬデータを生成する。本実施の形態では、第１の構造化文書データを生成する第１の生成手段の一例として、ＸＭＬデータ生成部２４を設けている。
送信部２５は、ＸＭＬデータ生成部２４により生成されたＸＭＬデータをサーバ１０に送信する。本実施の形態では、第１の構造化文書データを送信する第１の送信手段の一例として、送信部２５を設けている。
【００３４】
受信部２６は、サーバ１０からＸＭＬデータを受信する。
ＸＭＬデータ解析部２７は、受信部２６により受信されたＸＭＬデータを解析して情報を抽出する。
表示部２８は、ＸＭＬデータ解析部２７が抽出した情報に基づく表示を行う。
操作受付部２９は、ＸＭＬデータの既存要素に含めてサーバ１０に受け渡す情報の入力操作を受け付ける。
【００３５】
次いで、本実施の形態におけるサーバ１０及びクライアント２０の動作について詳細に説明する。
まず、クライアント２０がサーバ１０にＸＭＬデータを送信するときの動作を説明する。
図８は、このときのクライアント２０の動作を示したフローチャートである。
クライアント２０では、まず、操作受付部２９が、サービス認証画面３１上で入力されたユーザ名及びパスワードを取得し、ＸＭＬデータ生成部２４に受け渡す（ステップ２０１）。すると、ＸＭＬデータ生成部２４は、サービス認証画面３１から使用されるクライアントプログラムの名前、バージョン、タイプを管理情報記憶部２２から取り出すと共に、クライアントプログラムそのものを要求するかどうかの指示（以下、「プログラム要求指示」という）、クライアントプログラムの入手先を要求するかどうかの設定（以下、「入手先要求指示」という）を図示しない指示情報記憶部から取り出す（ステップ２０２）。
【００３６】
その後、ＸＭＬデータ生成部２４は、既存要素及びＡｎｙ要素以外の部分が予め記述されたＸＭＬデータの雛型に対して、ユーザ名が設定されたUserName要素と、パスワードが設定されたPassword要素とからなる既存要素を追加する（ステップ２０３）。このとき、各情報を設定すべき要素は、既存定義記憶部２３ａを参照することにより特定される。
また、ＸＭＬデータ生成部２４は、ステップ２０３で既存要素が追加されたＸＭＬデータの雛型に対して、名前が設定されたName要素、バージョンが設定されたVersion要素、タイプが設定されたType要素、プログラム要求指示が設定されたDataRequired要素、入手先要求指示が設定されたLocationRequired要素等からなるＡｎｙ要素を追加する（ステップ２０４）。このとき、各情報を設定すべき要素は、拡張定義記憶部２３ｂを参照することにより特定される。
これにより、ＸＭＬデータが生成されるので、送信部２５は、ＸＭＬデータ生成部２４からＸＭＬデータを受け取り、これをサーバ１０に送信する（ステップ２０５）。
【００３７】
次に、サーバ１０がクライアント２０からＸＭＬデータを受信してクライアント２０に応答を返すときの動作を説明する。
図９は、このときのサーバ１０の動作を示したフローチャートである。
サーバ１０では、まず、受信部１６が、クライアント２０からＸＭＬデータを受信し、ＸＭＬデータ解析部１７に受け渡す（ステップ１０１）。
すると、ＸＭＬデータ解析部１７は、ＸＭＬデータの既存要素を解析し、ユーザ名をUserName要素から、パスワードをPassword要素からそれぞれ抽出し、認証部１８に受け渡す（ステップ１０２）。このとき、抽出した各情報に対する処理内容は、既存定義記憶部１３ａを参照することにより特定される。
また、ＸＭＬデータ解析部１７は、ＸＭＬデータのＡｎｙ要素を解析し、名前をName要素から、バージョンをVersion要素から、タイプをType要素から、プログラム要求指示をDataRequired要素から、入手先要求指示をLocationRequired要素からそれぞれ抽出し、決定部１９に受け渡す（ステップ１０３）。このとき、抽出した各情報に対する処理内容は、拡張定義記憶部１３ｂを参照することにより特定される。尚、ここで取得したクライアント２０が保持するクライアントプログラムのバージョンを、以下では「Ｖｃ」と表記する。
【００３８】
これにより、認証部１８は、認証処理を行う（ステップ１０４）。即ち、ユーザ名とパスワードの組み合わせが登録済のものと同じかどうかを判定する。そして、同じであれば、認証結果に「ＯＫ」を代入し、異なっていれば、認証結果に「ＮＧ」を代入し、認証結果をＸＭＬデータ生成部１４に受け渡す。
一方、名前、バージョン、タイプを渡された決定部１９は、配信対象の候補のプログラム、つまり、サーバ１０が管理する最新のプログラムを決定する（ステップ１０５）。具体的には、管理情報記憶部１２を参照して、同じ名前、タイプに対応する最新のバージョンを求める。そして、この求めたバージョンを、名前、タイプと共にＸＭＬデータ生成部１４に受け渡す。また、DataRequired要素に設定されたプログラム要求指示、及び、LocationRequired要素に設定された入手先要求指示もＸＭＬデータ生成部１４に受け渡す。尚、ここで取得したサーバ１０が保持するクライアントプログラムのバージョンを、以下では「Ｖｓ」と表記する。
【００３９】
その後、ＸＭＬデータ生成部１４は、既存要素及びＡｎｙ要素以外の部分が予め記述されたＸＭＬデータの雛型に対して、認証結果が設定されたResult要素からなる既存要素を追加する（ステップ１０６）。このとき、各情報を設定すべき要素は、既存定義記憶部１３ａを参照することにより特定される。
また、ＸＭＬデータ生成部１４は、ＶｃよりもＶｓが大きいかどうかを判定する（ステップ１０７）。即ち、クライアント２０が保持するクライアントプログラムのバージョンが、サーバ１０が保持するクライアントプログラムのバージョンよりも古く、クライアントプログラムを配信する必要があるかどうかを判定する。
その結果、ＶｃよりもＶｓが大きくないと判定されれば、クライアントプログラム情報をＡｎｙ要素に設定することなく、ステップ１１３へ進む。
【００４０】
一方、ＶｃよりもＶｓが大きいと判定されれば、ステップ１０６で既存要素が追加されたＸＭＬデータの雛型に対して、名前が設定されたName要素、バージョンが設定されたVersion要素、タイプが設定されたType要素からなるＡｎｙ要素を追加する（ステップ１０８）。このとき、各情報を設定すべき要素は、拡張定義記憶部１３ｂを参照することにより特定される。
その後、ＸＭＬデータ生成部１４は、DataRequired要素に設定されたプログラム要求指示が「True」であるかどうかを判定する（ステップ１０９）。そして、「True」であれば、クライアントプログラムをData要素に設定してＡｎｙ要素に追加する（ステップ１１０）。この場合、図５−２に示したように、クライアントプログラムは添付ファイルとし、添付ファイルの識別情報をData要素に設定すればよい。また、「True」でなければ、Data要素をＡｎｙ要素に追加しない。
加えて、ＸＭＬデータ生成部１４は、LocationRequired要素に設定された入手先要求指示が「True」であるかどうかを判定する（ステップ１１１）。そして、「True」であれば、クライアントプログラムの入手先をLocation要素に設定してＡｎｙ要素に追加する（ステップ１１２）。また、「True」でなければ、Location要素をＡｎｙ要素に追加しない。
これにより、ＸＭＬデータが生成されるので、送信部１５は、ＸＭＬデータ生成部１４からＸＭＬデータを受け取り、これをクライアント２０に送信する（ステップ１１３）。
【００４１】
次いで、クライアント２０がサーバ１０からＸＭＬデータを受信するときの動作を説明する。
図１０は、このときのクライアント２０の動作を示したフローチャートである。
クライアント２０では、まず、受信部２６が、サーバ１０からＸＭＬデータを受信し、ＸＭＬデータ解析部２７に受け渡す（ステップ２２１）。
すると、ＸＭＬデータ解析部２７は、ＸＭＬデータの既存要素を解析し、認証結果をResult要素から抽出し、表示部２８に受け渡す（ステップ２２２）。このとき、抽出した各情報に対する処理内容は、既存定義記憶部２３ａを参照することにより特定される。その後、表示部２８は、認証結果が「ＯＫ」であるかどうかを判定する（ステップ２２３）。そして、「ＯＫ」であれば、認証成功画面３２を表示し（ステップ２２４）、「ＯＫ」でなければ、認証が失敗したことを示す認証失敗画面を表示する（ステップ２２５）。
【００４２】
また、ＸＭＬデータ解析部２７は、ＸＭＬデータのＡｎｙ要素を解析し、名前をName要素から、バージョンをVersion要素から、タイプをType要素からそれぞれ抽出し、管理情報記憶部２２を更新する（ステップ２２６）。このとき、抽出した各情報に対する処理内容は、拡張定義記憶部２３ｂを参照することにより特定される。
【００４３】
更に、ＸＭＬデータ解析部２７は、Ａｎｙ要素にData要素が含まれているかどうかを判定する（ステップ２２７）。ここで、Data要素が含まれていると判定されれば、添付ファイルの識別情報をData要素から抽出して、この識別情報に基づいて特定された添付ファイルからプログラムを取り出し、プログラム記憶部２１に記憶する（ステップ２２８）。一方、Data要素が含まれていないと判定されれば、クライアントプログラムを記憶することなく次の処理へ進む。
【００４４】
更にまた、ＸＭＬデータ解析部２７は、Ａｎｙ要素にLocation要素が含まれているかどうかを判定する（ステップ２２９）。ここで、Location要素が含まれていると判定されれば、クライアントプログラムの入手先を示す情報をLocation要素から抽出し、管理情報記憶部２２を更新する（ステップ２３０）。そして、この入手先を示す情報に基づいて、その入手先からクライアントプログラム取得し、プログラム記憶部２１に記憶する（ステップ２３１）。一方、Location要素が含まれていないと判定されれば、クライアントプログラムを記憶することなく処理を終了する。
【００４５】
尚、本実施の形態では、各企業のデバイスに特化した情報を追加したＡｎｙ要素に対応しないクライアントプログラムを、そのようなＡｎｙ要素に対応するクライアントプログラムにバージョンアップするために配信する場面を例示した。しかしながら、種々の目的の下でのクライアントプログラムの配信の場面において、本実施の形態は適用可能である。また、クライアントプログラムは、Ｊａｖａ（登録商標）やＦｌａｓｈ（登録商標）等のプラットフォームに依存せずに実行可能なコードや、ドライバ、プラグイン等でもよい。更には、アプリケーションプログラムであってもよい。
【００４６】
また、本実施の形態では、クライアントプログラム情報をＡｎｙ要素に含めたが、クライアントプログラム情報の他に、認証情報やフィルタ情報等をＡｎｙ要素に含めてもよい。
更に、クライアント２０が受信したクライアントプログラムの扱いは、予め決めておいてもよいし、ユーザに決めさせてもよい。また、クライアントプログラムを保存しておいて次回に利用するようにしてもよい。
更にまた、本実施の形態では、サーバ１０が、クライアントプログラムのバージョンや種類によってクライアントプログラムを配信するかどうかを決定したが、サーバ１０がこのような決定を行わない場合は、クライアント２０が、クライアントプログラムのバージョンや種類によってクライアントプログラムを実行するか、クライアントプログラムの入手先への接続を行うかを決定するようにしてもよい。
【００４７】
また、本実施の形態では、バージョンの比較によってクライアントプログラムを配信するかどうかを決定したが、クライアントプログラムを配信するかどうかを決定する態様は、これには限らない。例えば、クライアント２０から要求されたクライアントプログラムをサーバ１０が保持しているかどうかによって、クライアントプログラムを配信するかどうかを決定するようなものであってもよい。
更に、本実施の形態では、既存要素及びＡｎｙ要素以外の部分が予め記述されたＸＭＬデータの雛型に対して、既存要素及びＡｎｙ要素を自動生成して追加することにより、ＸＭＬデータを生成した。しかしながら、これはあくまで一例であり、図３、図５−１及び図５−２に示したようなＸＭＬデータが生成できれば、如何なる処理手順を採用してもよい。
更にまた、本実施の形態では、DataRequired要素に「False」が設定されていればData要素は生成せず、LocationRequired要素に「False」が設定されていればLocation要素は生成しなかった。これは、Data要素及びLocation要素がオプションとして定義され省略可能であることを前提としたためである。しかしながら、Data要素及びLocation要素がオプションとして定義されていない場合もあり得る。この場合は、DataRequired要素に「False」が設定されていれば、例えば空の値が設定されたData要素を生成し、LocationRequired要素に「False」が設定されていれば、例えば空の値が設定されたLocation要素を生成するようにすればよい。
【００４８】
ところで、本実施の形態では、画像処理装置１０がクライアントプログラムを配信し、端末装置２０がクライアントプログラムの配信を要求し、配信されたクライアントプログラムを実行することを前提とした。しかしながら、画像処理装置１０で行われる処理、及び、端末装置２０で行われる処理は、汎用のコンピュータで行うようにしてもよい。
そこで、これらの処理をコンピュータ９０で行うものとして、コンピュータ９０のハードウェア構成について説明する。
【００４９】
図１１は、コンピュータ９０のハードウェア構成を示した図である。
図示するように、コンピュータ９０は、演算手段であるＣＰＵ（Central Processing Unit）９１と、記憶手段であるメインメモリ９２及び磁気ディスク装置（ＨＤＤ：Hard Disk Drive）９３とを備える。ここで、ＣＰＵ９１は、ＯＳ（Operating System）やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ９２は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置９３は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ９０は、外部との通信を行うための通信Ｉ／Ｆ９４と、ビデオメモリやディスプレイ等からなる表示機構９５と、キーボードやマウス等の入力デバイス９６とを備える。
【００５０】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供するようにしてもよい。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態が適用されるシステムの構成を示した図である。
【図２】本発明の実施の形態の概要を説明するための図である。
【図３】本発明の実施の形態でクライアントからサーバへ送信されるリクエストの例を示した図である。
【図４】図３のリクエストに設定されるクライアントプログラム情報を表すスキーマの例を示した図である。
【図５−１】本発明の実施の形態でサーバからクライアントへ送信されるレスポンスの例を示した図である。
【図５−２】本発明の実施の形態でサーバからクライアントへ送信されるレスポンスの例を示した図である。
【図６】図５−１及び図５−２のレスポンスに設定されるクライアントプログラム情報を表すスキーマの例を示した図である。
【図７】本発明の実施の形態におけるサーバ及びクライアントの機能構成例を示した図である。
【図８】本発明の実施の形態におけるクライアントのリクエスト送信時の動作例を示したフローチャートである。
【図９】本発明の実施の形態におけるサーバのリクエスト受信からレスポンス送信までの動作例を示したフローチャートである。
【図１０】本発明の実施の形態におけるクライアントのレスポンス受信時の動作例を示したフローチャートである。
【図１１】本発明の実施の形態を実現可能なコンピュータのハードウェア構成図である。
【符号の説明】
【００５２】
１０…画像処理装置（サーバ）、１１，２１…プログラム記憶部、１２，２２…管理情報記憶部、１３ａ，２３ａ…既存定義記憶部、１３ｂ，２３ｂ…拡張定義記憶部、１４，２４…ＸＭＬデータ生成部、１５，２５…送信部、１６，２６…受信部、１７，２７…ＸＭＬデータ解析部、１８…認証部、１９…決定部、２０…端末装置（クライアント）、２８…表示部、２９…操作受付部
【図１】
2010072920.tif 000003
【図２】
2010072920.tif 000004
【図３】
2010072920.tif 000005
【図４】
2010072920.tif 000006
【図５−１】
2010072920.tif 000007
【図５−２】
2010072920.tif 000008
【図６】
2010072920.tif 000009
【図７】
2010072920.tif 000010
【図８】
2010072920.tif 000011
【図９】
2010072920.tif 000012
【図１０】
2010072920.tif 000013
【図１１】
2010072920.tif 000014