(57)【要約】サービス（１４９）を取得するシステム、サービスを取得する方法、およびサービスを取得する、コンピュータ可読媒体に具体化されたプログラムを提供する。たとえば、この方法は、ネットワーク（１０９）に接続されたプロセッサベースのシステムで処理機能を実行するのに必要なサービス（１４９）を特定するステップと、上記サービス（１４９）で処理機能を実行するために上記ネットワーク（１０９）上で少なくとも１つの遠隔デバイス（１０３）を検索するステップとを含む。
2005533294.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されたプロセッサベースのシステムで所定の処理機能を実行するのに必要なサービスを特定することと、
前記所定の処理機能を実行するための前記サービスを求めて、前記ネットワーク上の少なくとも１つの遠隔デバイスを検索することと、
を含む、サービス取得方法。
【請求項２】
前記サービスがローカルにあるかどうかを判定することをさらに含み、
前記ネットワーク上の少なくとも１つの遠隔デバイスを検索することは、前記サービスがローカルにない場合に実施される、請求項１に記載のサービス取得方法。
【請求項３】
ローカルにある前記サービスの第１の改訂を見つけることをさらに含み、
前記ネットワーク上で少なくとも１つの遠隔デバイスを検索することは、前記第１の改訂よりも後である前記サービスの第２の改訂を得るために前記少なくとも１つの遠隔デバイスを検索することをさらに含む、
請求項１に記載のサービス取得方法。
【請求項４】
前記サービスが前記少なくとも１つの遠隔デバイスで見つかった場合、該少なくとも１つの遠隔デバイスから前記サービスを自動的にダウンロードすることと、
前記プロセッサベースのシステムに前記サービスを自動的にインストールすることと、
前記所定の処理機能を実行することと、
をさらに含む、請求項１に記載のサービス取得方法。
【請求項５】
前記ネットワークに接続された前記プロセッサベースのシステムで前記所定の処理機能を実行するのに必要なサービスを特定することは、デジタル文書を検査して該デジタル文書に含まれるフォントを判定することをさらに含み、前記サービスはフォントであり、前記所定の処理機能は、前記デジタル文書の描写を行うことを伴う、請求項２に記載のサービス取得方法。
【請求項６】
ネットワークに接続されたプロセッサベースのシステムで所定の処理機能を実行するのに必要なサービスを特定する手段と、
前記所定の処理機能を実行するための前記サービスを求めて、前記ネットワーク上の少なくとも１つの遠隔デバイスを検索する手段とを備える、サービス取得システム。
【請求項７】
前記サービスがローカルにあるかどうかを判定する手段をさらに備え、
前記サービスで前記所定の処理機能を実行するために前記ネットワーク上で少なくとも１つの遠隔デバイスを検索する手段は、前記サービスがローカルにない場合に実施される、請求項６に記載のサービス取得システム。
【請求項８】
ローカルにある前記サービスの第１の改訂を見つける手段をさらに備え、
前記サービスで前記所定の処理機能を実行するために前記ネットワーク上で少なくとも１つの遠隔デバイスを検索する手段は、前記第１の改訂より後である前記サービスの第２の改訂を得るために前記少なくとも１つの遠隔デバイスを検索する手段をさらに備える、請求項６に記載のサービス取得システム。
【請求項９】
前記サービスで前記所定の処理機能を実行するために前記ネットワーク上で少なくとも１つの遠隔デバイスを検索する手段は、前記サービスを前記少なくとも１つの遠隔デバイスに関連付けるディレクトリを調べる手段をさらに備える、請求項６に記載のサービス取得システム。
【請求項１０】
前記ネットワークに接続された前記プロセッサベースのシステムで前記所定の処理機能を実行するのに必要な前記サービスを特定する手段は、デジタル文書を検査して該デジタル文書に含まれるフォントを判定する手段をさらに備え、前記サービスはフォントであり、前記所定の処理機能は、前記デジタル文書の描写を行うことを伴う、請求項７に記載のサービス取得システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、ネットワークアプリケーションの分野に関し、詳細には、ネットワーク上のサービスを取得するためのシステムおよび方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータの普及およびインターネットの出現により、一般の人々に利用可能なサービスおよびアプリケーションの数が劇的に増加した。具体的には、平均的なユーザのパーソナルコンピュータなどで実行可能なソフトウェアアプリケーションおよびサービスが、多数の場所から入手可能であり、インターネットを介してオンラインで接続される。
【０００３】
例えば、文書の印刷またはそれ以外の描写に使用可能な多くの異なるソフトウェアアプリケーションが存在する。このようなアプリケーションにより、ユーザは、メモリに記憶されるデジタル文書を作成することが可能となることが多い。デジタル文書の特定のデジタルフォーマットは、その作成で使用される特定のアプリケーションと互換性のあるメーカ独自のフォーマットであることが多い。例えば、ワシントン州レドモンドのMicrosoft Corporationによって作成されたMicrosoft  Wordや、カリフォルニア州サンノゼのAdobe Systems, Inc.によって作成されたAdobe  Acrobatといったソフトウェアパッケージを使用してデジタル文書を作成することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
デジタル文書または他のファイルを具体的に表現できる多くの異なるフォーマットが存在することから、時に、ユーザは、これらのデジタル文書または他のファイルを印刷または閲覧等するための描写に必要な対応するアプリケーションがなくても、自身のコンピュータシステムでこのような文書または他のファイルにアクセスできる場合が発生する。例えば、ユーザは、このような文書または他のファイルをインターネットにより電子メールを介して添付書類として受信することができる。対応するアプリケーションが、ユーザのコンピュータにインストールされていない場合、ユーザは、特定の文書またはファイルを印刷、閲覧、または他の操作等を行うために描写することが妨げられることがあり、それ以外のアクセスおよび利用も妨げられることがある。
【０００５】
また、いくつかの状況において、ユーザは、自身のコンピュータシステムにアプリケーションの更新版を有しないことがある。例えば、文書を印刷する際、多くの場合、ドライバが、コンピュータシステムによって使用され、プリンタとの通信および他の印刷操作を実行する。時に、ユーザのコンピュータシステムによって現在使用されているドライバのより新しい版が入手可能であることがある。しかしながら、ユーザは、そのドライバのより新しい版を取得するのに必要な動作を手動で行わない限り、古いドライバが継続して使用されることになる。その結果、ユーザは、ドライバの新しい版に伴う利益を何ら受けることができない。
【課題を解決するための手段】
【０００６】
前記内容に鑑み、本発明は、サービスを取得するシステム、サービスを取得する方法、およびサービスを取得する、コンピュータ可読媒体に具体化されたプログラムを提供する。一実施の形態では、この方法は、ネットワークに接続されたプロセッサベースのシステムで所定の処理機能を実行するのに必要なサービスを特定するステップと、上記サービスを得るために上記ネットワーク上で少なくとも１つの遠隔デバイスを検索して、上記所定の処理機能を実行するステップとを含む。
【０００７】
別の実施の形態では、本発明は、サービスを取得する、コンピュータ可読媒体に記憶されたプログラムを提供する。この点について、このプログラムは、ネットワークに接続されたプロセッサベースのシステムで所定の処理機能を実行するのに必要なサービスを特定するコードと、上記サービスを得るために上記ネットワーク上で少なくとも１つの遠隔デバイスを検索して、上記所定の処理機能を実行するコードとを含む。
【０００８】
さらに別の実施形態において、サービスを取得するシステムが提供される。このことに関して、本システムは、ネットワークに接続されたプロセッサベースのシステムで所定の処理機能を実行するのに必要なサービスを特定する手段を備える。本システムではまた、サービスを得るために、ネットワーク上で少なくとも１つの遠隔デバイスを検索し、それによって所定の処理機能を実行する。
【０００９】
本発明は、図面を参照することにより理解することができる。図面の構成要素は、必ずしも同一縮尺あるとは限らない。また、図面では、いくつかの図を通して、同じ参照符号は、対応する部分を示す。
【発明を実施するための最良の形態】
【００１０】
図１を参照して、本発明の一態様によるデータ通信ネットワーク１００を示す。このデータ通信ネットワーク１００は、サービスサーバ１０３およびクライアント１０６を備える。これらのサービスサーバ１０３およびクライアント１０６の双方とも、ネットワーク１０９に接続されている。この点で、サービスサーバ１０３およびクライアント１０６は、例えば、プロセッサベースのシステムまたは当業者がよく理解できるような同様の機能を有するシステムといったコンピュータシステムを備えていてもよい。
【００１１】
ネットワーク１０９には、例えば、インターネット、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、もしくは他の適切なネットワークなど、またはこのようなネットワークの２つまたは３つ以上の任意の組み合わせが含まれる。サービスサーバ１０３およびクライアント１０６がネットワーク１０９に接続されることにより、当業者に一般に知られているようなネットワーク１０９を介した相互のデータ通信が容易になる。例えば、サービスサーバ１０３およびクライアント１０６は、共に、例えばネットワークカード、モデム、または他の通信デバイスといったさまざまなデバイスを使用してネットワーク１０９にリンクすることができる。
【００１２】
クライアント１０６は、表示デバイス１１３、マウス１１６、キーボード１１９、およびプリンタ１２３を備える。表示デバイス１１３は、例えば、陰極線管（ＣＲＴ）、液晶表示スクリーン、ガスプラズマベースのフラットパネルディスプレイ、または他の適切な表示デバイスであってもよい。プリンタ１２３は、クライアント１０６に直接接続されたローカルプリンタ、または、ネットワーク１０９に直接接続されたネットワークプリンタなどであってもよい。また、他の周辺デバイスも、クライアント１０６と共に使用されてもよい。他の周辺デバイスとしては、例えば、キーパッド、タッチパッド、タッチスクリーン、マイク、スキャナ、ジョイスティック、または１つもしくは２つ以上のプッシュボタン、インジケータライト、スピーカ、さらには、当業者がよく理解できるような他のデバイスといったものがある。サーバ１０３も、クライアント１０６と共に使用されるすべての周辺デバイスを備えてもよい。
【００１３】
サービスサーバ１０３は、プロセッサ１３３およびメモリ１３６を有するプロセッサ回路を含む。これらのプロセッサ１３３およびメモリ１３６の双方とも、ローカルインターフェース１３９に接続されている。この点で、ローカルインターフェース１３９は、当業者が一般に理解するような付属した制御／アドレスバスを有するデータバスであってもよい。このように、サービスサーバ１０３は、当業者がよく理解できるようなプロセッサベースのシステムである。オペレーティングシステム１４３およびネットワークサーバ１４６が、メモリ１３６に記憶され、プロセッサ１３３によって実行可能である。ネットワークサーバ１４６は、例えば、ウェブサーバであってもよいし、当業者がよく理解できるような同様のデバイスであってもよい。ネットワークサーバ１４６は、後述するように、要求を行うクライアント１０６に「サービス」１４９を提供する。
【００１４】
クライアント１０６も、プロセッサ１５３およびメモリ１５６を有するプロセッサ回路を含む。これらのプロセッサ１５３およびメモリ１５６の双方とも、ローカルインターフェース１５９に接続されている。この点で、ローカルインターフェース１５９は、例えば、当業者がよく理解できるような付属した制御／アドレスバスを有するデータバスであってもよい。このように、クライアント１０６は、当業者がよく理解できるようなプロセッサベースのシステムである。オペレーティングシステム１６３、１つまたは２つ以上のアプリケーション１６６、およびサービスロケータ１６９が、メモリ１５６に記憶され、プロセッサ１５３によって実行可能である。オペレーティングシステム１６３、アプリケーション１６６、およびサービスロケータ１６９の動作については、後述する。
【００１５】
プリンタ１２３も、プロセッサ１７３およびメモリ１７６を有するプロセッサ回路を含む。これらのプロセッサ１７３およびメモリ１７６の双方とも、ローカルインターフェース１７９に接続されている。ローカルインターフェース１７９は、例えば、当業者がよく理解できるような付属した制御／アドレスバスを有するデータバスであってもよい。この点で、プリンタ１２３は、当業者がよく理解できるようなプロセッサベースのシステムである。オペレーティングシステム１８３およびプリンタ制御システム１８６が、メモリ１７６に記憶され、プロセッサ１７３によって実行可能である。プリンタ１２３が、ネットワーク対応プリンタ１０９である場合には、サービスロケータ１６９も、プリンタ１２３内に配置することができる。
【００１６】
メモリ１３６、１５６、１７６のそれぞれには、揮発性メモリ素子および不揮発性メモリ素子の双方が含まれ得る。揮発性素子は、電源が切れると、データ値を保持しない素子である。不揮発性素子は、電源が切れても、データを保持する素子である。したがって、メモリ１３６、１５６、１７６のそれぞれには、例えば、ランダムアクセスメモリ（RAM）、読み出し専用メモリ（ROM）、ハードディスクドライブ、関連したフロッピィディスクドライブを介してアクセスされるフロッピィディスク、コンパクトディスクドライブを介してアクセスされるコンパクトディスク、適切なテープドライブを介してアクセスされる磁気テープ、および／もしくは他のメモリ素子、またはこれらのメモリ素子の任意の２つまたは３つ以上を組み合わせたものが含まれ得る。さらに、RAMには、例えば、スタティックランダムアクセスメモリ（SRAM）、ダイナミックランダムアクセスメモリ（DRAM）、または磁気ランダムアクセスメモリ（MRAM）および他のこのようなデバイスが含まれ得る。ROMには、例えば、プログラマブル読み出し専用メモリ（PROM）、消去可能プログラマブル読み出し専用メモリ（EPROM）、電気的消去可能プログラマブル読み出し専用メモリ（EEPROM）、または他の同様のメモリデバイスが含まれ得る。
【００１７】
また、プロセッサ１３３、１５３、および１７３のそれぞれは、並列処理回路でそれぞれ動作する複数のプロセッサを表してもよく、メモリ１３６、１５６、１７６のそれぞれは、並列処理回路でそれぞれ動作する複数のメモリを代表してもよい。このような場合、ローカルインターフェース１３９、１５９、１７９のそれぞれは、複数のプロセッサのうちの任意の２つの間の通信、任意のプロセッサとメモリのうちの任意のものとの間の通信、または、メモリのうちの任意の２つの間の通信等を容易にする適切なネットワークとすることができる。プロセッサ１３３、１５３、１７３は、実際には電気によるものであってもよいし、光によるものであってもよい。
【００１８】
オペレーティングシステム１４３、１６３、および１８３は、サービスサーバ１０３、クライアント１０６、およびプリンタ１２３のハードウェア資源の割り当ておよび使用をそれぞれ制御するために実行される。具体的には、オペレーティングシステム１４３、１６３、および１８３は、メモリ１３６、１５６、１７６のさまざまな部分の割り当ておよび使用、処理時間、ならびに周辺デバイスを制御すると共に、他の機能も実行する。このように、オペレーティングシステム１４３、１６３、１８３は、当業者に一般に知られているように、アプリケーションが依拠する土台としての機能を果たす。
【００１９】
次に、データ通信ネットワーク１００のさまざまな構成要素の動作の概要を提供する。しかしながら、その動作の解説を行う前に、まず、「サービス」１４９の定義を提供する。特に、本明細書で説明するようなサービス１４９には、クライアント１０６、サービスサーバ１０３、またはプリンタ１２３で実施できるアプリケーションを含んださまざまなソフトウェアサービスまたは他のサービスが含まれる。例えば、サービス１４９は、特定のアプリケーション１６６であってもよいし、アプリケーション１６６の一部であってもよい。特に、アプリケーション１６６が、ワードプロセッサであると仮定する。この場合、文書を印刷するために、サービス１４９は、プリンタ１２３で文書を印刷する際にそのワードプロセッサによって使用されるドライバまたはフォントであってもよい。他の状況では、サービス１４９は、ネットワーク１０９を介して利用可能なサービスサーバ１０３上の任意のタイプのプログラムまたはアプリケーションであってもよい。特に、サービス１４９には、例えば、クライアント１０６によってアクセスされて特定のタスクを実行できる任意のオンラインアプリケーションが含まれ得る。例えば、サービス１４９には、ある言語のテキストを別の言語に自動翻訳する翻訳サービスが含まれ得る。また、サービス１４９には、当業者がよく理解できるような、さまざまなファイルをあるフォーマットから第２のフォーマットに変換するのに必要な機能も含まれ得る。
【００２０】
サービス１４９は、本明細書では、さまざまなシナリオの状況で説明される。このさまざまなシナリオは、サービス１４９が、クライアント１０６にダウンロードされてインストールされ、そして実行されるか、または、サービス１４９が、サービスサーバ１０３で実行されてクライアント１０６によってアクセスされるかのいずれかである。第１のシナリオでは、クライアント１０６が、特定のタスクを実行するが、その特定のタスク用のソフトウェアコンポーネントがメモリ１５６で利用可能でないと仮定する。例えば、クライアント１０６のユーザは、付属のプリンタ１２３で文書を印刷したいと考えるが、クライアント１０６が、プリンタ１２３に固有のフォーマットで文書を描写するのに必要なドライバを持たない場合がある。あるいは、印刷される文書が、クライアント１０６に含まれていないフォントを含むことがあり、したがって、それに応じて印刷できない。
【００２１】
この状況では、サービス１４９は、文書の印刷に必要なドライバの場合もあるし、フォント（１つまたは複数）の場合もある。このようなサービス１４９は、クライアント１０６が文書を適切に印刷できるように、クライアント１０６に取得されてインストールされなければならない。このタスクを達成するために、クライアント１０６には、サービスロケータ１６９が設けられる。このサービスロケータ１６９は、サービスサーバ１０３を検索して、サービスサーバ１０３からサービス１４９を取得する。この点で、サービスサーバ１０３は、それに応じて検索することができるネットワーク１０９に接続された多数のサーバを代表している。検索機能を実行する際、サービスロケータ１６９は、所望のサービス１４９を、そのサービス１４９が位置し得るさまざまなサービスサーバ１０３の各ユニフォームリソース指示子（ＵＲＩ（uniform resource indicator））にマッピングする参照表を調べることができる。参照表を調べることにより、サービスロケータ１６９は、必要なサービス１４９を見つけるために検索されるサーバ１０３を特定する。参照表は、サービスロケータ１６９の実行前に作成し、記憶しておくことができる。
【００２２】
第２のシナリオでは、クライアント１０６が、旧式の可能性のあるアプリケーション１６６またはサービス１４９をメモリ１５６に含む。例えば、クライアント１０６のユーザが、文書を印刷したいものと仮定する。また、サービス１４９は、プリンタに固有の言語で文書を描写するのに必要なプリンタドライバであるものと仮定する。このシナリオでは、必要なプリンタドライバの後の版が入手可能であり、かつ、サービスサーバ１０３に記憶されているという点で、クライアント１０６は、この必要なプリンタドライバの旧式である旧版を含んでいる。このような場合、サービスロケータ１６９は、まず、クライアント１０６に記憶されているドライバの現在の版の改訂日を判断する。次に、サービスロケータ１６９は、サービスサーバ１０３の検索を実行して、同じドライバまたはサービスの後の版が、サービスサーバ１０３に記憶されているかどうかを判断する。サービス１４９の後の版が、サービスサーバ１０３で見つかると、サービスロケータ１６９は、文書を印刷する際の今後の使用のために、その新版のドライバをダウンロードしてクライアント１０６にインストールする。
【００２３】
このように、あらゆる種類のサービス１４９の更新したものを、自動化された形式で、各サービスサーバ１０３からダウンロードして、クライアント１０６にインストールすることができる。サービスロケータ１６９は、ネットワーク１０９で利用可能なすべてのサービスサーバの中でどのサービスサーバ１０３を検索して、サービス１４９の後の版を見つけるかを判断する際に、クライアント１０６のメモリ１５６に記憶された参照表を調べることができることに留意されたい。この参照表は、捜し求めるさまざまなサービス１４９の更新版を提供する可能性があると判明している各サービスサーバ１０３のユニフォームリソース指示子（URI）に所望のサービス１４９をマッピングする。その結果、ネットワーク１０９上でのサービス１４９の検索は、ランダムな形式で実行されるものではない。
【００２４】
図２Ａ〜図２Ｄを参照して、本発明の一態様によるサービスロケータ１６９のフローチャートを示す。あるいは、図２Ａ〜図２Ｄのフローチャートは、クライアント１０６で実施される方法のステップ、または、サービスロケータ１６９がインストールされている場合のプリンタ１２３で実施される方法のステップとして見ることができる。
【００２５】
ブロック２０３から開始して、サービスロケータ１６９は、サービス１４９（図１）が、クライアント１０６（図１）で必要とされているかどうかを判断する。この点で、サービスロケータ１６９の実行は、クライアント１０６の個々のアプリケーション１６６（図１）によって実施することができる。このようなケースとしては、例えば、クライアント１０６の各サービスの後のどの改訂が、各サービスサーバ１０３（図１）で入手可能であるかどうかを調べることが望ましい場合が挙げられる。あるいは、サービスロケータ１６９は、クライアント１０６が有しないクライアント１０６の機能をユーザが実施しようとする場合に実行することができる。このようなケースとしては、例えば、ユーザが、クライアント１０６に存在しない特定のアプリケーション１６６を必要とするデータファイルまたは他のファイルにアクセスしようとする場合が挙げられる。
【００２６】
別の場合として、ユーザが、サービスロケータ１６９の機能を手動で実施することもできるし、当業者がよく理解できるように、サービスロケータ１６９が周期的に実行されるように構成することもできる。いずれの場合も、クライアント１０６がネットワーク１０９に接続されて、サービスサーバ１０３とのデータ通信が容易にされると、サービスロケータ１６９は実行されることが想定される。あるいは、サービスロケータ１６９がプリンタに配置されている場合には、プリンタ１２３についても同じことが言える。
【００２７】
あるサービスが必要とされていると仮定すると、サービスロケータ１６９は、ボックス２０６に進み、ボックス２０６では、必要とされているサービスのタイプが決定される。例えば、文書が印刷される場合、サービスロケータ１６９は、印刷タスクを実行するのに必要なさまざまな処理機能を決定する。具体的には、例えば、印刷に必要な形式で文書を描写するために、文書のフォントのすべてが、特定されて、クライアント１０６内に配置される。この点で、サービスロケータ１６９は、その文書の印刷に必要なフォントのすべてをメモリ１５６内に配置しようとする。これは、例えば、フォントディレクトリを調べて、必要なフォントが、クライアント１０６にローカルで利用可能であるかどうかを判断することにより行うことができる。
【００２８】
あるいは、別の例では、プリンタドライバが、各プリンタ１２３で文書を印刷するために必要な場合がある。この場合、サービスロケータ１６９は、文書を印刷するために実行されるドライバをメモリ１５６内で特定しようとする。このようなケースとしては、特に、さまざまなタイプのプリンタ用の多数のドライバが、クライアント１０６内に存在する場合が挙げられる。他のタスクを実行して、所望の処理機能を最終的に実行するために必要なサービスを正確に決定してもよいことに留意されたい。
【００２９】
サービスロケータ１６９が、必要とされる処理機能を実行するのに必要なサービス１４９を決定すると、サービスロケータ１６９は、ボックス２０９に進む。ボックス２０９では、サービス１４９が、クライアント１０６にローカルで利用可能である（すなわち、メモリ１５６に記憶されている）かどうかが判断される。次に、ボックス２１３で、その特定のサービス１４９が、ローカルで利用可能である場合、サービスロケータ１６９は、図示するようにコネクタＡに進む。そうでない場合、サービスローカル１６９は、ボックス２１６に移動する。
【００３０】
ボックス２１６で、サービスロケータ１６９は、各サービス１４９に関連付けられた複数の検索場所を特定する。これらの検索場所は、例えば、さまざまなサーバ１０３（図１）のユニフォームリソース指示子（ＵＲＩ）であってもよいし、各サーバ１０３を特定する他の手段であってもよい。具体的には、検索場所は、クライアント１０６が連係してどんなサービス１４９をそのサーバから取得できるかを判断できる各サーバ１０３を指し示すネットワーク１０９上のアドレスとすることができる。各サービス１４９に関連付けられた正確な検索場所の決定は、当業者が良く理解できるように、各サービス１４９を検索場所とマッピングする参照表を調べることにより特定できることに留意されたい。
【００３１】
次に、ボックス２１９で、所望のサービス１４９に関連付けられた最初の検索場所が、検索のために指定される。その後、ボックス２２３で、その場所が検索されて、所望のサービス１４９がその場所に記憶されているかどうかが判断される。具体的には、例えば、サービスサーバ１０３（図１）がウェブサーバであり、ネットワーク１０９がインターネットであると仮定すると、クライアント１０６は、サービスサーバ１４９上で事前に定義されたＵＲＩで指定されるハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成することができる。あるいは、サービスサーバ１０３で利用可能なさまざまなサービス１４９を列挙するウェブページが、サービスサーバ１０３に含まれるネットワークサーバ１４６からダウンロードされてもよい。
【００３２】
ボックス２２６で、各サービス１４９が現在の検索場所で見つかると、サービスロケータ１６９はコネクタＢに進む。そうでない場合には、サービスロケータ１６９はボックス２２９に進む。ボックス２２９では、所望のサービス１４９に関連付けられた最後の検索場所が検索されたかどうかが判断される。最後の検索場所が検索されていない場合には、サービスロケータ１６９はボックス２２３に進む。ボックス２２３では、次の検索場所が検索のために指定される。その後、サービスロケータ１６９は、図示するようにボックス２２３に戻る。一方、ボックス２２９で、最後の検索場所が検索されたと判断された場合には、サービスロケータ１６９は、コネクタＣに進む。
【００３３】
図２Ｂを参照して、ボックス２２６（図２Ａ）において、サービス１４９が各サービスサーバ１０３（図１）で発見された場合におけるサービスロケータ１６９のさらに別の機能を示す。ボックス２３６では、新しく発見されたサービス１４９（図１）が、実行のためにサービスサーバ１０３からクライアント１０６にダウンロードされ、クライアント１０６にインストールされる。その後、ボックス２３９において、インストールが成功した場合、サービスロケータ１６９はそれに応じて終了する。他方で、インストールが失敗した場合には、サービスロケータ１６９はボックス２４３に進む。ボックス２４３では、サービス１４９が、インストールの失敗または他の問題のために利用可能でないことがユーザに告げられる。その後、サービスロケータ１６９は終了し、それによって、同じサービス１０３からサービス１４９を取得しようとするさらに別の試みが防止される。
【００３４】
図２Ｃを参照して、ボックス２２９（図２Ａ）において、最後の検索場所が検索されていた場合におけるサービスロケータ１６９のさらに別の機能を示す。最後の検索場所が検索されていたと仮定すると、サービスロケータ１６９はボックス２５３に進む。ボックス２５３では、手動検索プロンプトが、表示デバイス１１３（図１）に表示される。この手動検索プロンプトは、クライアント１０６に記憶された参照表で指定される関連付けられたサービスサーバ１０３のいずれにおいても各サービス１４９を見つけることができなかったことをユーザに告げる。また、手動検索プロンプトは、ユーザが手動検索を実行したいかどうかに関する選択肢もユーザに提供する。ボックス２５６で、ユーザが、手動検索を実行したいことを示した場合には、サービスロケータ１６９は、ボックス２５９に進む。そうでない場合には、サービスロケータ１６９はそれに応じて終了する。ボックス２５９では、適切なアプリケーションが、クライアント１０６で実行され、それによって、ユーザは、所望のサービス１４９の手動によるネットワーク検索を実行することが可能となる。この点で、このアプリケーションは、例えばブラウザであってもよいし、手動形式でネットワーク１０９を検索する機能を提供する他のアプリケーションであってもよい。その後、サービスロケータ１６９は終了する。
【００３５】
次に、図２Ｄを参照して、本発明の一態様によるサービスロケータ１６９のさらに別の機能を示す。サービスロケータは、所望のサービス１４９がクライアント１０６でローカルで利用可能であると判断したものと仮定すると、サービスロケータ１６９は、コネクタＡを通じてボックス２６３に進む。例えば、サービス１４９が、クライアント１０６にインストールされているか、またはそれ以外に、サービス１４９の検索を実行することなくクライアント１０６によってアクセス可能である場合には、そのサービス１４９は、クライアント１０６にローカルで利用可能である。ボックス２６３で、サービスロケータは、クライアント１０６にローカルにあるサービス１４９の正確な改訂日を決定する。この決定は、サービスサーバ１０３内に記憶されている同じサービス１４９の可能性のある後の改訂日と比較するための改訂日を得るために行われる。
【００３６】
その後、ボックス２６６で、所望のサービス１４９に関連付けられた検索場所が、例えば参照表を使用するか、またはさまざまな検索場所を記憶してそれらの検索場所を各サービス１４９に関連付ける他の手段を使用することによって特定される。次に、ボックス２６９で、関連付けられた検索場所のうちの最初のものが、検索のために指定される。次に、ボックス２７３で、各検索場所に相応する各サービスサーバ１０３から各ディレクトリおよび／または他の情報をダウンロードすることにより、指定された検索場所が検索される。ローカルにあるサービス１４９の将来版であり得る版が一般に提供されていることが判明しているか、または、そうでない場合にはアクセス可能になっていることが判明している検索場所が、検索される検索場所であることに留意されたい。ボックス２７６で、検索場所で見つかったローカルにあるサービス１４９のいずれかの版が、クライアント１０６にローカルにある版よりも後である場合には、サービスロケータ１６９は、ボックス２７９に進む。ボックス２７９では、その後の版が、今後の使用のために、クライアント１０６にダウンロードされて、クライアント１０６にインストールされる。その後、サービスロケータ１６９は終了する。
【００３７】
一方、ボックス２７６で、ローカルにあるサービス１４９の後の版が見つからなかった場合には、サービスロケータ１６９はボックス２８３に進む。ボックス２８３では、最後の検索場所が検索されたかどうかが判断される。最後の検索場所が検索されていない場合には、サービスロケータ１６９はボックス２８６に戻る。ボックス２８６では、次の検索場所が検索のために指定される。その後、検索ロケータ１６９はボックス２７３に戻る。他方で、ボックス２８３で、最後の検索場所が検索されている場合には、サービスロケータ１６９は終了する。このような場合、クライアント１０６にローカルにあるサービス１４９が、実行されるタスクに使用される。
【００３８】
本発明のサービスロケータ１６９（図１および図２Ａ〜図２Ｄ）は、上述したような汎用のハードウェアによって実行されるソフトウェアまたはコードで具体化されるが、別の方法として、サービスロケータ１６９を専用ハードウェアで具体化することもできるし、ソフトウェア／汎用ハードウェアおよび専用ハードウェアを組み合わせたもので具体化することもできる。専用のハードウェアで具体化する場合、サービスロケータ１６９は、複数の技術のいずれか１つもしくはこれら多数の技術を組み合わせたものを使用する回路または状態機械として実施することができる。これらの技術には、例えば、１つまたは２つ以上のデータ信号が適用されるとさまざまな論理機能を実施する論理ゲートを有するディスクリート論理回路、適切な論理ゲートを有する特定用途向け集積回路、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の素子などが含まれ得るが、これらに限定されるものではない。このような技術は一般に、当業者に既知であるので、本明細書では詳細に説明しない。
【００３９】
図２Ａ〜図２Ｄのフローチャートは、サービスロケータ１６９の一実施態様のアーキテクチャ、機能、および動作を示している。ソフトウェアで具体化される場合、各ブロックは、指定された論理機能（複数可）を実施するプログラム命令を含んだコードのモジュール、セグメント、または一部を表すことができる。これらのプログラム命令は、プログラミング言語で記述された人間が読むことができる文を含んだソースコードの形式で具体化することもできるし、コンピュータシステムまたは他のシステムのプロセッサといった適切な実行システムによって認識可能な数値命令を含んだ機械コードの形式で具体化することもできる。機械コードは、ソースコードなどから変換することができる。ハードウェアで具体化される場合、各ブロックは、指定された論理機能（複数可）を実施する１つの回路または複数の相互接続された回路を表すことができる。
【００４０】
図２Ａ〜図２Ｄのフローチャートは、特定の実行順序を示しているが、実行順序は、示したものと異なってよいことが分かる。例えば、２つまたは３つ以上のブロックの実行順序は、図示した順序に対してスクランブルされてもよい。また、図２Ａ〜図２Ｄに連続して示す２つまたは３つ以上のブロックは、同時に実行されてもよいし、部分的に同時に実行されてもよい。さらに、任意の個数のカウンタ、状態変数、警告発行セマフォ（warning semaphore）、またはメッセージが、有用性の強化、課金、性能測定、または故障診断の支援の提供などの目的で、本明細書で説明した論理フローに追加されてもよい。このようなすべての変形は、本発明の範囲内に含まれることが分かる。また、図２Ａ〜図２Ｄのフローチャートは、比較的一目瞭然であり、ソフトウェアおよび／またはハードウェアが本明細書で説明したようなさまざまな論理機能を実行するように当業者が作成可能である程度に、当業者によって理解される。
【００４１】
また、サービスロケータ１６９が、ソフトウェアまたはコードを含む場合、サービスロケータ１６９は、命令実行システムにより使用されるか、または、命令実行システムと共に使用される任意のコンピュータ可読媒体に具体化することができる。この命令実行システムは、例えばコンピュータシステムのプロセッサまたは他のシステムのプロセッサといったものである。この意味で、論理には、例えば、コンピュータ可読媒体からフェッチでき、命令実行システムによって実行できる命令および宣言を含む文が含まれ得る。本発明の状況では、「コンピュータ可読媒体」は、命令実行システムにより使用されるか、または、命令実行システムと共に使用されるサービスロケータ１６９の収容、記憶、または維持を行うことができる任意の媒体とすることができる。このコンピュータ可読媒体には、例えば電子媒体、磁気媒体、光媒体、電磁気媒体、赤外線媒体、または半導体媒体といった多くの物理媒体の任意の一つが含まれ得る。適切なコンピュータ可読媒体のさらに具体的な例には、磁気テープ、磁気フロッピィディスケット、磁気ハードドライブ、またはコンパクトディスクが含まれるが、これらに限定されるものではない。また、コンピュータ可読媒体は、ランダムアクセスメモリ（RAM）であってもよく、このランダムアクセスメモリには、例えば、スタティックランダムアクセスメモリ（SRAM）およびダイナミックランダムアクセスメモリ（DRAM）、または磁気ランダムアクセス（MRAM）が含まれる。さらに、コンピュータ可読媒体は、読み出し専用メモリ（ROM）、プログラマブル読み出し専用メモリ（PROM）、消去可能プログラマブル読み出し専用メモリ（EPROM）、電気的消去可能プログラマブル読み出し専用メモリ（EEPROM）、または他のタイプのメモリデバイスであってもよい。
【００４２】
本発明をある一定の好ましい実施の形態に関して図示して説明してきたが、当業者が本明細書を読んで理解すると、その当業者には均等物および変更が思い浮かぶことは明らかである。本発明は、このようなすべての均等物および変更を含むものであり、特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００４３】
【図１】本発明の一態様のサービスロケータを使用するデータ通信ネットワーク図。
【図２Ａ】図１のサービスロケータのフローチャート。
【図２Ｂ】図１のサービスロケータのフローチャート。
【図２Ｃ】図１のサービスロケータのフローチャート。
【図２Ｄ】図１のサービスロケータのフローチャート。
【図１】
2005533294.tif 000003
【図２Ａ】
2005533294.tif 000004
【図２Ｂ】
2005533294.tif 000005
【図２Ｃ】
2005533294.tif 000006
【図２Ｄ】
2005533294.tif 000007
【手続補正書】
【提出日】平成17年6月24日(2005.6.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サービスを取得する方法であって、
ネットワークに接続されたプロセッサベースのシステムにおいて、所定の処理機能を実行するのに必要なサービスを特定するステップと、
前記所定の処理機能を実行するための前記サービスを求めて、前記ネットワーク上の少なくとも１つの遠隔デバイスを検索するステップと、を含み、
ネットワーク上の少なくとも１つの遠隔デバイスを検索する前記ステップは、さらに、前記少なくとも１つの遠隔デバイスに前記サービスを関連づけるディレクトリを調べることを含む、
方法。
【請求項２】
さらに、前記サービスがローカルで利用可能であるかどうかを判定するステップを含み、
ネットワーク上の少なくとも１つの遠隔デバイスを検索する前記ステップは、前記サービスがローカルで利用可能でない場合に実施される、
請求項１に記載の方法。
【請求項３】
さらに、ローカルで利用可能な前記サービスの第１の改訂を見つけるステップを含み、
ネットワーク上で少なくとも１つの遠隔デバイスを検索する前記ステップは、前記第１の改訂よりも後である前記サービスの第２の改訂を得るために、前記少なくとも１つの遠隔デバイスを検索することを含む、
請求項１に記載の方法。
【請求項４】
さらに、
前記サービスが前記少なくとも１つの遠隔デバイスで見つかった場合、該少なくとも１つの遠隔デバイスから該サービスを自動的にダウンロードするステップと、
前記プロセッサベースのシステムに前記サービスを自動的にインストールするステップと、
前記所定の処理機能を実行するステップと、
を含む、請求項１に記載の方法。
【請求項５】
サービスを特定する前記ステップは、さらに、デジタル文書を検査して該デジタル文書に含まれるフォントを判定することを含み、
前記サービスはフォントであり、前記所定の処理機能は、前記デジタル文書の描写を行うことを伴う、
請求項２に記載の方法。
【請求項６】
サービスを取得するためのシステムであって、
ネットワークに接続されたプロセッサベースのシステムにおいて所定の処理機能を実行するのに必要なサービスを特定する手段と、
前記所定の処理機能を実行するため、前記サービスを求めて、前記ネットワーク上の少なくとも１つの遠隔デバイスを検索する手段と、を備え、
ネットワーク上の少なくとも１つの遠隔デバイスを検索する前記手段は、該少なくとも１つの遠隔デバイスに前記サービスを関連づけるディレクトリを調べる手段を含む、
システム。
【請求項７】
さらに、前記サービスがローカルで利用可能かどうかを判定する手段を備え、
ネットワーク上で少なくとも１つの遠隔デバイスを検索する前記手段は、前記サービスがローカルで利用可能でない場合に実施される、
請求項６に記載のシステム。
【請求項８】
さらに、ローカルで利用可能である前記サービスの第１の改訂を見つける手段を備え、
ネットワーク上で少なくとも１つの遠隔デバイスを検索する前記手段は、さらに、前記第１の改訂より後である前記サービスの第２の改訂を得るために、前記少なくとも１つの遠隔デバイスを検索する手段を含む、
請求項６に記載のシステム。
【請求項９】
サービスを特定する前記手段は、デジタル文書を検査して該デジタル文書に含まれるフォントを判定する手段をさらに含み、
前記サービスはフォントであり、前記所定の処理機能は、前記デジタル文書の描写を行うことを伴う、
請求項７に記載のシステム。
【請求項１０】
図面を参照して明細書に実質的に記述されると共に、該図面に実質的に示される、サービスを取得する方法。
【請求項１１】
図面を参照して明細書に実質的に記述されると共に、該図面に実質的に示される、サービスを取得するシステム。
【国際調査報告】
2005533294.tif 000008
2005533294.tif 000009
2005533294.tif 000010