(57)【要約】【課題】クライアントが所定のプログラムを保持していないと、そのプログラム向けのコンテンツを処理することができない。【解決手段】コンテンツ提供装置１００は、クライアント２００が有するプログラムを検出する。そして、クライアント２００がプラグイン・プログラムを保持する場合、コンテンツ提供装置１００は、そのプラグイン・プログラムでコンテンツを処理することをクライアント２００に指示する。クライアント２００がプラグイン・プログラムを保持していない場合、コンテンツ提供装置１００は代替プログラムでコンテンツを処理することをクライアント２００に指示する。これにより、コンテンツ提供装置１００は、クライアント２００が保持するプログラムに応じて適切なプログラムでコンテンツを処理することを指示することができる。【選択図】        図１
2004362278.tif 000002
【特許請求の範囲】
【請求項１】
所定のコンテンツをクライアントに提供する装置であって、
前記クライアントが有するプログラムを検出し、前記クライアントが前記コンテンツの処理に利用するプログラムを決定する検出手段と、
そのプログラムで処理することを指定する情報とともに、前記コンテンツを前記クライアントに提供する手段と、
を備えることを特徴とするコンテンツ提供装置。
【請求項２】
前記検出手段は、第１のプログラムで前記コンテンツを処理することを前記クライアントに指示した後、前記クライアントから前記第１のプログラムで処理できない旨を示す情報を受信した場合、前記第１のプログラムとは異なる第２のプログラムで前記コンテンツを処理することを決定する請求項１に記載のコンテンツ提供装置。
【請求項３】
所定のコンテンツをクライアントに提供する装置であって、
前記クライアントが有するプログラムを検出する手段と、
前記プログラム毎にコンテンツを格納する格納手段と、
前記クライアントが有するプログラムで処理されるべきコンテンツを前記格納手段から選択する手段と、
選択したコンテンツを前記クライアントに提供する手段と、
を備えることを特徴とするコンテンツ提供装置。
【請求項４】
コンピュータに、
所定のコンテンツの送信先となるクライアントが有するプログラムを検出し、そのクライアントが前記コンテンツの処理に利用するプログラムを決定する検出手段と、
そのプログラムで処理することを指定する情報とともに、前記コンテンツを前記クライアントに提供する手段と、
を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はコンテンツ提供技術に関し、とくにクライアントが有するプログラムに応じてコンテンツを適切に処理するための技術に関する。
【０００２】
【従来の技術】
ネットワーク技術の発達にともない、サーバ・クライアントシステムが広く普及している。サーバおよびクライアントは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワークに接続し、互いに通信可能に構成されている。サーバは、例えば文書ファイル、画像データ、音声データ、映像データなどのコンテンツや種々のデータを保持し、クライアントからの要求に応じて提供する。そしてクライアントは、所定のプログラムを利用して受信したコンテンツを処理し、例えばクライアントの画面に文書や画像を表示したり、スピーカから音声を出力したりする。一般に、例えば画像データなどのコンテンツを処理するためのプログラムは複数存在し、ユーザが任意のプログラムを選択して実行する。また、コンテンツの内容を解析し、解析結果に基づいて、適切なプログラムを自動的に選択する技術がある。（特許文献１）
【０００３】
【特許文献１】
特開平１０−２７５２０９号公報
【０００４】
【発明が解決しようとする課題】
一般にウェブブラウザは、プラグインと呼ばれるプログラムを加えることで機能を拡張することができる。プラグインを追加することにより、ユーザは様々なコンテンツを利用することができる。プラグイン・プログラムがインストールされている場合、そうしたコンテンツはプラグイン・プログラムを用いて処理される。しかし、プラグイン・プログラムがインストールされていない場合には、コンテンツを処理できずにクライアント側でエラーが発生してしまう。
【０００５】
本発明はこうした点に鑑みてなされたもので、その目的は、クライアントにプラグイン・プログラムがインストールされていない場合でも、代替のプログラムを利用してコンテンツを処理可能にする技術の提供にある。
【０００６】
【課題を解決するための手段】
本発明のある態様は、所定のコンテンツをクライアントに提供する装置である。この装置は、クライアントが有するプログラムを検出し、クライアントがコンテンツの処理に利用するプログラムを決定する検出手段と、そのプログラムで処理することを指定する情報とともに、コンテンツをクライアントに提供する手段とを備える。これにより、クライアントが有するプログラムに応じて、コンテンツの処理に利用するプログラムを指定することができる。
【０００７】
この装置の検出手段は、第１のプログラムでコンテンツを処理することをクライアントに指示した後、そのクライアントから第１のプログラムで処理できない旨を示す情報を受信した場合、第１のプログラムとは異なる第２のプログラムでコンテンツを処理することを決定してもよい。これにより、この装置は、コンテンツの処理に利用するプログラムを複数の中から指定することができる。
【０００８】
本発明の別の態様は、所定のコンテンツをクライアントに提供する装置である。この装置は、クライアントが有するプログラムを検出する手段と、プログラム毎にコンテンツを格納する格納手段と、クライアントが有するプログラムで処理されるべきコンテンツを格納手段から選択する手段と、選択したコンテンツをクライアントに提供する手段とを備える。これにより、この装置は、クライアントが有するプログラムに適したコンテンツを、そのクライアントに提供することができる。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００１０】
【発明の実施の形態】
図１は、実施の形態に係るコンテンツ提供システム１０の構成図である。コンテンツ提供装置１００は、クライアント２００が有するプログラムを検出して、検出したプログラムに応じてコンテンツを提供する。クライアント２００が第１のプログラムを保持する場合、コンテンツ提供装置１００はクライアント２００に第１のプログラムでコンテンツを処理させる。また、クライアント２００が第１のプログラムを保持せず第２のプログラムを保持する場合、コンテンツ提供装置１００はクライアント２００に第２のプログラムでコンテンツを処理させる。ここで、第１のプログラムはクライアント２００のユーザにより任意にインストールされる種類のプログラムであり、第２のプログラムはクライアント２００に必ずインストールされている種類のプログラムである。本実施の形態では、第１のプログラムは、クライアント２００におけるウェブブラウザのプラグイン・プログラムであり、画像ファイルの表示機能、編集機能等を備える。第２のプログラムはクライアント２００が予め保持するプログラムであり、画像ファイルの表示機能のみを備える。
【００１１】
第１表示画面２０は、クライアント２００がプラグイン・プログラムを保持している場合の表示画面の一例である。第１操作ボタン群２４には、コンテンツ提供装置１００から供給されたコンテンツを処理することで表示された画像を編集するための複数の操作ボタンが表示されている。第２表示画面２２は、クライアント２００がプラグイン・プログラムを保持していない場合の表示画面の一例である。第２操作ボタン群２６には、コンテンツ提供装置１００供給されたコンテンツを処理することで表示された画像を拡大、縮小するための操作ボタンが表示されている。このように、クライアント２００が保持するプログラムに応じて、コンテンツを処理するためのプログラムを選択的に指定することにより、プラグイン・プログラムが保持されていない場合でも、例えばクライアント２００に必ず保持されているプログラムなどの代替プログラムを利用してコンテンツを処理することができる。これにより、クライアント２００にプラグイン・プログラムが保持されていないために、コンテンツが表示されないという状況を避けることができる。本実施の形態では、画像ビューアを例に説明するが、他の例では動画ビューア、音楽再生プログラム、文書編集プログラムなど任意のプログラムであってよい。
【００１２】
図２は、図１のコンテンツ提供装置１００の内部構成図である。コンテンツ提供装置１００の各構成要素は、ハードウエアコンポーネントで言えば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インターフェース等を中心に実現されるが、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。これから説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００１３】
検出部１０４は、クライアント２００が保持するプログラムを検出して、検出したプログラムの中からコンテンツの処理に用いるプログラムを選択する。例えば、検出部１０４は、クライアント２００にインストール済みのプログラムを問い合わせ、その問い合わせ結果を受信することでプログラムを検出してもよいし、後述の方法のように理想的なプログラムから順に有無を確認し、徐々に絞り込むことでインストール済みのプログラムを検出し、コンテンツの処理に用いるプログラムを特定してもよい。そして、検出部１０４は、例えばプログラム名やプログラムの識別情報等、選択したプログラムを特定する情報（以下、単に「プログラム情報」という）を提供部１０６に出力する。
【００１４】
提供部１０６は、図１のクライアント２００から要求されたコンテンツをコンテンツ格納部１０８から読み込む。そして、提供部１０６は、検出部１０４から供給されたプログラム情報で特定されるプログラムで処理することを指示する情報とともにそのコンテンツをクライアント２００に送信する。例えば、提供部１０６は、特定のプログラムを起動するためのコードとコンテンツのＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒｓ）やＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）とを含むＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）をクライアント２００に送信してもよいし、プログラム毎に用意されたコンテンツをクライアント２００に送信してもよい。プログラム毎に用意されたコンテンツは、コンテンツのファイル形式や拡張子などの識別子により区別されていてもよい。この場合、後述のクライアント２００は、識別子とプログラムとを対応付けて保持しており、コンテンツ提供装置１００から受信したコンテンツの識別子に応じて、対応するプログラムを起動する。
【００１５】
一例として、クライアント２００におけるプログラムの有無を確認し、徐々に絞り込む形態を詳細に説明する。この場合、コンテンツ提供装置１００は、例えばＡＳＰ（Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）などの既知の技術に準じて処理を行う。コンテンツを提供する際、まず、提供部１０６は、コンテンツをプラグイン・プログラムで処理するためのコードを含むデータをクライアント２００に送信する。図１のクライアント２００がプラグイン・プログラムを保持する場合、クライアント２００は、そのデータに指定されたプラグイン・プログラムを起動し、コンテンツを処理する。
【００１６】
クライアント２００がプラグイン・プログラムを保持していない場合、クライアント２００は、指定されたプラグイン・プログラムを保持していないことを示すエラーコードをコンテンツ提供装置１００に送信する。エラーコード受信部１０２は、そのエラーコードを受信し、検出部１０４に通知する。検出部１０４は、その通知を受けて、代替プログラムでコンテンツを処理するためのコードをクライアント２００に送信することを提供部１０６に指示する。これにより、クライアント２００は、代替プログラムを起動し、コンテンツを処理する。
【００１７】
図３は、コンテンツ格納部１０８に格納されるファイルに含まれるプログラムコードの一例を示す図である。このプログラムコードは、コンテンツ提供装置１００側で処理するためのコードであり、例えばＪａｖａＳｃｒｉｐｔ（登録商標）やＶＢＳｃｒｉｐｔなどのプログラムコードで記述されている。このプログラムコードは、クライアント２００から要求されたファイルに含まれていてよく、クライアント２００にファイルを要求されるとコンテンツ提供装置１００側で実行される。そのファイルが要求されると、まず、コンテンツ提供装置１００は、ｔｒｙ文１５４のプラグイン・プログラムを利用してコンテンツを処理することを指定するコード１５０を実行する。つまり、このコードにより、コンテンツ提供装置１００は、クライアント２００にプラグイン・プログラムを利用してコンテンツを処理することを指示する。
【００１８】
ｔｒｙ文１５４に含まれるコードを実行後に、エラーが生じた場合、コンテンツ提供装置１００は、ｃａｔｃｈ文１５６に記述されたプログラムコードを実行する。本図では、ｃａｔｃｈ文１５６には、所定のＵＲＬで指定されるファイルを開くことを指定するコード１５２が記述されている。すなわち、コンテンツ提供装置１００は、クライアント２００にプラグイン・プログラムを利用しないでコンテンツを処理することを指示する。このプログラムコードにより図２のエラーコード受信部１０２、検出部１０４および提供部１０６を実現できる。また、クライアント２００が画像ファイルを処理するための複数のプログラムを有する場合、複数のｔｒｙ文１５４とｃａｔｃｈ文１５６とを組み合わせることで、２つ以上のプログラムから最も適切なプログラムを選択することができる。また、その組み合わせの順序を、処理に利用すべき理想的なプログラムから優先順位に応じて決めてもよい。これにより、クライアント２００が有するプログラムの中で最も適切なプログラムを選択することができる。
【００１９】
図４は、図１のクライアント２００の内部構成図である。要求部２０２は、コンテンツ提供装置１００にコンテンツを要求する。コンテンツ受信部２０４は、コンテンツ提供装置１００からコンテンツとそのコンテンツを処理するためのプログラムを特定する情報とを受信する。すなわち、コンテンツ受信部２０４は、上述した図２の提供部１０６が送信するデータを受信する。プログラム格納部２１０は、少なくとも代替プログラムを保持する。また、クライアント２００毎に、プラグイン・プログラムを更に保持していたり、保持していなかったりする。
【００２０】
処理部２０６は、受信したデータに基づいて、まずプラグイン・プログラムを利用してコンテンツを処理できるか否かを判定する。処理できる場合、処理部２０６は、プログラム格納部２１０からプラグイン・プログラムを読み込み、起動してコンテンツを処理する。そして、図１の第１表示画面２０が表示部２０８に表示される。プログラム格納部２１０がプラグイン・プログラムを保持しておらず、コンテンツをプラグイン・プログラムで処理できない場合、処理部２０６は、その旨を示すエラーコードをコンテンツ提供装置１００に向けて送信することを要求部２０２に指示する。また、他の例では、代替プログラム用のコンテンツを要求するよう要求部２０２に指示してもよい。
【００２１】
エラーコードの送信後、代替プログラムでコンテンツを処理することが指示された場合、処理部２０６は、プログラム格納部２１０から代替プログラムを読み込み、起動してコンテンツを処理する。そして、図１の第２表示画面２２が表示部２０８に表示される。このように、クライアント２００は、プラグイン・プログラムを保持する場合、そのプラグイン・プログラムを利用してコンテンツを処理し、プラグイン・プログラムを保持していない場合、代替プログラムを利用してコンテンツを処理することができる。
【００２２】
他の例において、コンテンツ提供装置１００からプログラム格納部２１０に保持されているプログラムのリストを要求された場合、処理部２０６は、そのリストを、要求部２０２を介してコンテンツ提供装置１００に提供してもよい。そして、コンテンツ提供装置１００は、そのリストに応じてコンテンツの処理に利用するプログラムを選択してもよい。
【００２３】
図５は、図１のコンテンツ提供装置１００およびクライアント２００における処理のシーケンスを示す図である。まず、クライアント２００は、コンテンツ提供装置１００にコンテンツを要求する（Ｓ１０）。コンテンツ提供装置１００は、そのコンテンツの処理に利用するプラグイン・プログラムの起動を指示する（Ｓ１２）。クライアント２００は、プラグイン・プログラムを起動できるか否かを判定する（Ｓ１４）。起動できる場合（Ｓ１４のＹ）、クライアント２００は、指定されたプラグイン・プログラムを起動してコンテンツを処理する（Ｓ１６）。起動できない場合（Ｓ１４のＮ）、クライアント２００は、エラーコードをコンテンツ提供装置１００に送信する（Ｓ１８）。コンテンツ提供装置１００は、そのエラーコードに応じて、代替プログラムを起動することをクライアント２００に指示する（Ｓ２０）。そして、クライアント２００は、代替プログラムを起動してコンテンツを処理する（Ｓ２２）。
【００２４】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【発明の効果】
本発明によれば、クライアントが有するプログラムに応じて、コンテンツの処理に利用するプログラムを適切に決めることができる。
【図面の簡単な説明】
【図１】実施の形態に係るコンテンツ提供システムの構成図である。
【図２】図１のコンテンツ提供装置の内部構成図である。
【図３】コンテンツ格納部に格納されるファイルに含まれるプログラムコードの一例を示す図である。
【図４】図１のクライアントの内部構成図である。
【図５】図１のコンテンツ提供装置およびクライアントにおける処理のシーケンスを示す図である。
【符号の説明】
１０  コンテンツ提供システム、１２  ネットワーク、２０  第１表示画面、２２  第２表示画面、２４  第１操作ボタン群、２６  第２操作ボタン群、１００  コンテンツ提供装置、１０２  エラーコード受信部、１０４  検出部、１０６  提供部、１０８  コンテンツ格納部、２００  クライアント、２０２  要求部、２０４  コンテンツ受信部、２０６  処理部、２０８  表示部、２１０  プログラム格納部。
【図１】
2004362278.tif 000003
【図２】
2004362278.tif 000004
【図３】
2004362278.tif 000005
【図４】
2004362278.tif 000006
【図５】
2004362278.tif 000007