JP2008107987A - 情報提供装置及び情報提供方法 - Google Patents
情報提供装置及び情報提供方法 Download PDFInfo
- Publication number
- JP2008107987A JP2008107987A JP2006288927A JP2006288927A JP2008107987A JP 2008107987 A JP2008107987 A JP 2008107987A JP 2006288927 A JP2006288927 A JP 2006288927A JP 2006288927 A JP2006288927 A JP 2006288927A JP 2008107987 A JP2008107987 A JP 2008107987A
- Authority
- JP
- Japan
- Prior art keywords
- content
- user
- client
- web server
- calendar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】コンテンツ提供者から提供されるコンテンツの再利用を可能にして、ユーザにとって利便性の高いコンテンツ提供サービスを実現する。
【解決手段】コンテンツ提供元から得られるコンテンツをログ記録するテーブルを設ける。コンテンツ提供元のアクセス方法に応じて、コンテンツ或はそのリンクをカレンダに含めて表示する。また、記録したログを検索できるようにする。
【選択図】図1
【解決手段】コンテンツ提供元から得られるコンテンツをログ記録するテーブルを設ける。コンテンツ提供元のアクセス方法に応じて、コンテンツ或はそのリンクをカレンダに含めて表示する。また、記録したログを検索できるようにする。
【選択図】図1
Description
本発明は、情報提供装置及び情報提供方法に関する。
より詳細には、インターネット等を通じて提供するwebサービスに関する。
より詳細には、インターネット等を通じて提供するwebサービスに関する。
近年、インターネットの普及により、webブラウザによって得られる様々な情報提供サービスが登場している。
一例としては、ポータルサイトと呼ばれる、総合的なwebサービスが挙げられる。ポータルサイトは、インターネットの入り口となる巨大なwebサイトである。検索エンジンやリンク集を核として、ニュースや株価などの情報提供サービス、ブラウザから利用できるwebメールサービス、電子掲示板、チャットなど、ユーザがインターネットで必要とする機能をすべて無料で提供して利用者数を増やし、広告や電子商取引仲介サービスなどで収入を得るサイトを指す。
また、「SNS」と略される、ソーシャルネットワーキングサービスが挙げられる。これは、参加者が互いに友人を紹介しあって、新たな友人関係を広げることを目的に開設されたコミュニティ型のwebサイトである。
一方で、webブラウザを用いてスケジュール管理等を行うサービス等も存在する。
なお、特許文献1にコンテンツ配信に関する先行技術文献を記す。
特開2006−120051号公報
一例としては、ポータルサイトと呼ばれる、総合的なwebサービスが挙げられる。ポータルサイトは、インターネットの入り口となる巨大なwebサイトである。検索エンジンやリンク集を核として、ニュースや株価などの情報提供サービス、ブラウザから利用できるwebメールサービス、電子掲示板、チャットなど、ユーザがインターネットで必要とする機能をすべて無料で提供して利用者数を増やし、広告や電子商取引仲介サービスなどで収入を得るサイトを指す。
また、「SNS」と略される、ソーシャルネットワーキングサービスが挙げられる。これは、参加者が互いに友人を紹介しあって、新たな友人関係を広げることを目的に開設されたコミュニティ型のwebサイトである。
一方で、webブラウザを用いてスケジュール管理等を行うサービス等も存在する。
なお、特許文献1にコンテンツ配信に関する先行技術文献を記す。
従来のポータルサイトでは、ユーザ毎に表示内容を設定することは可能であるが、表示を設定したコンテンツを過去に遡って閲覧する、という機能は広範囲に提供されてはいない。例えば、天気予報であれば「過去の天気」として閲覧は可能であるものの、ユーザ個別の情報として表示できるものではない。
今、当該ユーザが栃木県に在住していて、当該ユーザが欲しい情報は過去の栃木県の天気であると仮定する。この場合、従来のポータルサイトでは、全国の過去の天気の情報から栃木県の天気の情報を検索する、という手間がかかる。
また、コンテンツ提供者によっては過去のコンテンツを順次削除してしまう業務形態もある。この場合、削除されたコンテンツは閲覧が不可能である。
今、当該ユーザが栃木県に在住していて、当該ユーザが欲しい情報は過去の栃木県の天気であると仮定する。この場合、従来のポータルサイトでは、全国の過去の天気の情報から栃木県の天気の情報を検索する、という手間がかかる。
また、コンテンツ提供者によっては過去のコンテンツを順次削除してしまう業務形態もある。この場合、削除されたコンテンツは閲覧が不可能である。
本発明はかかる点に鑑みてなされたものであり、ユーザの利便性を向上したコンテンツ提供を行う情報提供装置及び情報提供方法を提供することを目的とする。
上記課題を解決するための本発明は、複数の登録ユーザに情報閲覧サービスの提供を行う情報提供装置である。
この情報提供装置は、登録ユーザを重複のないユーザIDにて管理するユーザテーブル、コンテンツ提供者によるコンテンツ提供サービスの一覧を保持するコンテンツテーブル、ユーザIDとコンテンツ提供者を識別する情報とを関連付けるコンテンツ配信登録テーブルを備える。
更に、登録ユーザに提供するコンテンツをコンテンツ提供サービスから取得するコンテンツ取得部、コンテンツ取得部から得られるコンテンツがコンテンツ取得部によって登録ユーザのユーザIDと共に記録されるログ記録テーブル、登録ユーザが発するコンテンツ取得要求に応じて、コンテンツが既にログ記録テーブルに記録されていれば、前記ログ記録テーブルに記録済みのコンテンツを登録ユーザのクライアント装置に送信し、コンテンツがログ記録テーブルに記録されていなければ、コンテンツ取得部を起動する、コンテンツ送信部を備えることを特徴とするものである。
この情報提供装置は、登録ユーザを重複のないユーザIDにて管理するユーザテーブル、コンテンツ提供者によるコンテンツ提供サービスの一覧を保持するコンテンツテーブル、ユーザIDとコンテンツ提供者を識別する情報とを関連付けるコンテンツ配信登録テーブルを備える。
更に、登録ユーザに提供するコンテンツをコンテンツ提供サービスから取得するコンテンツ取得部、コンテンツ取得部から得られるコンテンツがコンテンツ取得部によって登録ユーザのユーザIDと共に記録されるログ記録テーブル、登録ユーザが発するコンテンツ取得要求に応じて、コンテンツが既にログ記録テーブルに記録されていれば、前記ログ記録テーブルに記録済みのコンテンツを登録ユーザのクライアント装置に送信し、コンテンツがログ記録テーブルに記録されていなければ、コンテンツ取得部を起動する、コンテンツ送信部を備えることを特徴とするものである。
従来、スケジューラというものが周知である。スケジューラは予定を記入するものである。このスケジューラに、コンテンツ配信業者が発するコンテンツを記録できれば、必要な情報を過去に遡って取得したり検索したりすることが容易に可能になる。
本発明により、コンテンツ提供者から得られるコンテンツサービスをログ記録し、コンテンツを再利用することのできる、ユーザにとって利便性の高い情報提供装置及び情報提供方法を提供することができる。
以下、本発明の実施の形態を、図1〜図23を参照して説明する。
本発明の実施形態を詳述する前に、本実施形態の概略を説明する。
本実施形態は、クライアント・サーバシステムである。
本実施形態の中心は、webサーバよりなる。
webサーバは、複数の登録ユーザのスケジュールや日記等の、登録ユーザに強く依存する情報と、登録ユーザが興味を持ち、継続して提供を受ける情報提供サービスから得られる情報を、日々記録し、ユーザの要求に応じて送信する。
webサーバは、登録ユーザのそれら情報をログ記録する。
登録ユーザはそのログをカレンダの形式にて一覧表示する。
情報提供サービスから得られる情報の一例としては、ニュース、天気予報、株式情報、就職・転職・人材派遣・アルバイト情報、音楽・テレビ・映画・演劇等の趣味的情報等、様々な情報提供サービスが挙げられる。
webサーバは、情報提供サービス業者との契約に応じて、カレンダ内のコンテンツ表示形態を変更する。
なお、本実施形態において「コンテンツ」とは情報を指す。本実施形態においては、後述の天気予報や音楽のヒットチャート、イベント情報等、コンテンツ提供者によって有償或は無償にて提供される情報も含まれる。コンテンツとは、電子文書の中身ともいえる。
本実施形態は、クライアント・サーバシステムである。
本実施形態の中心は、webサーバよりなる。
webサーバは、複数の登録ユーザのスケジュールや日記等の、登録ユーザに強く依存する情報と、登録ユーザが興味を持ち、継続して提供を受ける情報提供サービスから得られる情報を、日々記録し、ユーザの要求に応じて送信する。
webサーバは、登録ユーザのそれら情報をログ記録する。
登録ユーザはそのログをカレンダの形式にて一覧表示する。
情報提供サービスから得られる情報の一例としては、ニュース、天気予報、株式情報、就職・転職・人材派遣・アルバイト情報、音楽・テレビ・映画・演劇等の趣味的情報等、様々な情報提供サービスが挙げられる。
webサーバは、情報提供サービス業者との契約に応じて、カレンダ内のコンテンツ表示形態を変更する。
なお、本実施形態において「コンテンツ」とは情報を指す。本実施形態においては、後述の天気予報や音楽のヒットチャート、イベント情報等、コンテンツ提供者によって有償或は無償にて提供される情報も含まれる。コンテンツとは、電子文書の中身ともいえる。
図1は、本発明の一実施形態による、カレンダサービスを提供するシステムの機能ブロック図である。
本実施形態は、webサーバ102を中心とする、クライアント103へ情報(コンテンツ)を提供する役務である。
クライアントPC104とwebサーバ102は、それぞれインターネット108に接続されている。
クライアントPC104はwebブラウザ105を内包し、キーボード106やマウス107を介したユーザの操作によって、インターネット108を通じてhtml文書等を受信し、ディスプレイ109に表示する。なお、ここでは「クライアントPC104」と、クライアント103はパソコンであることを想定したが、所定の条件を満たす機器であれば、パソコンには限られない。それら所定の条件を満たせば、webブラウザ105を内包する携帯電話であってもよい。この条件については後述する。
webサーバ102は、概略的にはHTTP(Hyper Text Transfer Protocol)を用いて、クライアント103のwebブラウザ105の要求に応じて、クライアント103にhtml文書を送信する、周知のwebサーバである。
一方、webサーバ102は複数のコンテンツ提供者サーバ110、111及び112から有償或は無償のコンテンツの提供を受けており、ユーザの設定に応じて、それらコンテンツをコンテンツ提供者サーバからインターネット108を通じて受信し、加工した上でクライアントPC104へhtml文書と共に送信する。
本実施形態は、webサーバ102を中心とする、クライアント103へ情報(コンテンツ)を提供する役務である。
クライアントPC104とwebサーバ102は、それぞれインターネット108に接続されている。
クライアントPC104はwebブラウザ105を内包し、キーボード106やマウス107を介したユーザの操作によって、インターネット108を通じてhtml文書等を受信し、ディスプレイ109に表示する。なお、ここでは「クライアントPC104」と、クライアント103はパソコンであることを想定したが、所定の条件を満たす機器であれば、パソコンには限られない。それら所定の条件を満たせば、webブラウザ105を内包する携帯電話であってもよい。この条件については後述する。
webサーバ102は、概略的にはHTTP(Hyper Text Transfer Protocol)を用いて、クライアント103のwebブラウザ105の要求に応じて、クライアント103にhtml文書を送信する、周知のwebサーバである。
一方、webサーバ102は複数のコンテンツ提供者サーバ110、111及び112から有償或は無償のコンテンツの提供を受けており、ユーザの設定に応じて、それらコンテンツをコンテンツ提供者サーバからインターネット108を通じて受信し、加工した上でクライアントPC104へhtml文書と共に送信する。
図2(a)及び(b)は、本実施形態のカレンダサービス提供システムによってもたらされる、クライアントPC104上における画面の遷移状態を示す状態遷移図と、その画面との関係を示す図である。なお、実際にはwebサーバ102は図2(b)に示した以外に、クライアントPC104に対して多くの表示画面を提供するのだが、本発明と直接関係しない画面については省略している。
図2(a)及び(b)において、ユーザはログイン画面202においてユーザIDとパスワードを入力して「ログイン」ボタン220を押す。すると、ログインに成功したらカレンダ表示画面203に推移する。ログインに失敗したら、エラーメッセージを伴って再びログイン画面202が表示される。
カレンダ表示画面203において、表示月の変更を行うべく表示月変更ボタン204及び205のいずれかを押すと、webサーバ102から当該表示月のコンテンツが送信され、当該表示月がカレンダとして表示される。
カレンダ表示画面203において、「ログアウト」ボタン206を押すと、webサーバ102内部にてログアウト処理が行われ、ログイン画面202が表示される。
カレンダ表示画面203において、「コンテンツ登録」ボタン207を押すと、コンテンツ登録画面208が表示される。
カレンダ表示画面203において、「ログアウト」ボタン206を押すと、webサーバ102内部にてログアウト処理が行われ、ログイン画面202が表示される。
カレンダ表示画面203において、「コンテンツ登録」ボタン207を押すと、コンテンツ登録画面208が表示される。
コンテンツ登録画面208は、画面左側に登録可能コンテンツ表示欄209が設けられ、画面右側に登録済みコンテンツ表示欄210が設けられている。
登録可能コンテンツ表示欄209と登録済みコンテンツ表示欄210との間には右矢印ボタン(→)211と左矢印ボタン(←)212が設けられている。
登録可能コンテンツ表示欄209に列挙表示されているコンテンツのうちの一つをマウス107でクリックして選択した後、右矢印ボタン211を押すと、選択されたコンテンツが登録可能コンテンツ表示欄209から消去されると共に、登録済みコンテンツ表示欄210に表示される。
逆に、登録済みコンテンツ表示欄210に列挙表示されているコンテンツのうちの一つをマウス107でクリックして選択した後、左矢印ボタン212を押すと、選択されたコンテンツが登録済みコンテンツ表示欄210から消去されると共に、登録可能コンテンツ表示欄209に表示される。
以上のような操作によって、ユーザ固有のコンテンツ表示設定が行われる。
登録可能コンテンツ表示欄209と登録済みコンテンツ表示欄210との間には右矢印ボタン(→)211と左矢印ボタン(←)212が設けられている。
登録可能コンテンツ表示欄209に列挙表示されているコンテンツのうちの一つをマウス107でクリックして選択した後、右矢印ボタン211を押すと、選択されたコンテンツが登録可能コンテンツ表示欄209から消去されると共に、登録済みコンテンツ表示欄210に表示される。
逆に、登録済みコンテンツ表示欄210に列挙表示されているコンテンツのうちの一つをマウス107でクリックして選択した後、左矢印ボタン212を押すと、選択されたコンテンツが登録済みコンテンツ表示欄210から消去されると共に、登録可能コンテンツ表示欄209に表示される。
以上のような操作によって、ユーザ固有のコンテンツ表示設定が行われる。
コンテンツ登録画面208において、「OK」ボタン213を押すと、登録済みコンテンツ表示欄210に設定したコンテンツ設定をwebサーバ102に登録した後、カレンダ表示画面203が表示される。
コンテンツ登録画面208において、「キャンセル」ボタン214を押すと、登録済みコンテンツ表示欄210に設定したコンテンツ設定を破棄した後、カレンダ表示画面203が表示される。つまり、登録済みコンテンツ表示欄210を変更した内容は無視され、元の設定状態のままとなる。
コンテンツ登録画面208において、「キャンセル」ボタン214を押すと、登録済みコンテンツ表示欄210に設定したコンテンツ設定を破棄した後、カレンダ表示画面203が表示される。つまり、登録済みコンテンツ表示欄210を変更した内容は無視され、元の設定状態のままとなる。
再び図1に戻って、詳細な部分を説明する。
webサーバ102は、一般的なネットワークOSが稼動するコンピュータである。一例としては、FreeBSD等のBSD系、或はLinux(登録商標)等のPOSIX(Portable Operating System Interface for UNIX(登録商標))系OSである。
実行制御部121は、クライアント103から来る要求(コマンド)を受信し、これに応じて、HTTPにてhtml文書をクライアント103へ送信する機能を提供する。端的にいえばwebサーバソフトウェアであり、一例としてはApache(http://www.apache.org/)等である。実行制御部121はクライアント103の要求に応じ、cgi(Common Gateway Interface)の実行をも行う。
cgiは周知のプログラムである。cgiの実体は標準出力にテキストを出力するプログラムである。cgiが生成するテキストが、実行制御部121によってHTTPにてクライアント103へ送信される。cgiを構成する要素としては、どのようなプログラミング言語であってもよい。perl(http://www.perl.org/)やPHP(http://php.net/)、python(http://www.python.org/)、ruby(http://www.ruby-lang.org/ja/)等のインタプリタ言語に留まらず、CやJava(登録商標)等のコンパイルを要する言語であってもよい。簡単な内容であればシェルスクリプトであってもよい。
webサーバ102は、一般的なネットワークOSが稼動するコンピュータである。一例としては、FreeBSD等のBSD系、或はLinux(登録商標)等のPOSIX(Portable Operating System Interface for UNIX(登録商標))系OSである。
実行制御部121は、クライアント103から来る要求(コマンド)を受信し、これに応じて、HTTPにてhtml文書をクライアント103へ送信する機能を提供する。端的にいえばwebサーバソフトウェアであり、一例としてはApache(http://www.apache.org/)等である。実行制御部121はクライアント103の要求に応じ、cgi(Common Gateway Interface)の実行をも行う。
cgiは周知のプログラムである。cgiの実体は標準出力にテキストを出力するプログラムである。cgiが生成するテキストが、実行制御部121によってHTTPにてクライアント103へ送信される。cgiを構成する要素としては、どのようなプログラミング言語であってもよい。perl(http://www.perl.org/)やPHP(http://php.net/)、python(http://www.python.org/)、ruby(http://www.ruby-lang.org/ja/)等のインタプリタ言語に留まらず、CやJava(登録商標)等のコンパイルを要する言語であってもよい。簡単な内容であればシェルスクリプトであってもよい。
各々のcgiは主にwebブラウザに表示する画面を作るためのhtml文書を作成する。つまり、html文書はwebブラウザを通じてGUI(Graphical User Interface)を作成する手段である。実際のwebサーバ102では、本発明に直接関係しない画面を多数表示するので、図1ではそれらcgiを点線で示している。同様に、図2(a)の点線で示す内容もその一部である。
なお、図1ではwebブラウザ105に表示させる画面毎にcgiが個別に設けられているが、単一のcgiで構成することも可能である。但し、その場合は単一のcgiの中に複数の表示画面を作成する機能が含まれることとなる。
なお、図1ではwebブラウザ105に表示させる画面毎にcgiが個別に設けられているが、単一のcgiで構成することも可能である。但し、その場合は単一のcgiの中に複数の表示画面を作成する機能が含まれることとなる。
ログイン画面cgi122は、クライアント103からの要求に応じて実行制御部121によって実行され、クライアント103にログイン画面202を表示するhtml文書を作成する。
認証cgi123は、ログイン画面202を表示しているクライアント103から、ログインボタンを押した行為によって発生する要求に応じて、実行制御部121によって実行される。
認証cgi123は、実行されると、クライアント103から得られたパラメータであるユーザIDとパスワードをユーザテーブル131から検索して照合する。
ユーザテーブル131には、登録ユーザの重複のないユーザIDが記録されている。このユーザテーブル131は、各登録ユーザのユーザIDをパスワードと共に管理するためのものである。
照合の結果、ユーザIDとパスワードが合致していれば、正常にログインが完了したことを示すcookie(クッキー:webサイトの提供者が、webブラウザを通じて訪問者のコンピュータに一時的にデータを書き込んで保存させるしくみ。殆どの場合、アルファベット及び数字の1バイト文字列にて構成される。)を作成すると共に、自動的にカレンダ画面cgi124に移行するためのhtml文書を作成する。これらは実行制御部121を通じてクライアント103に送信される。
一方、照合の結果、ユーザIDとパスワードが合致していなければ、ログインが失敗したことを示すエラーメッセージを付して、自動的にログイン画面cgi122に移行するhtmlメッセージを作成する。これらは実行制御部121を通じてクライアント102に送信される。
認証cgi123は、ログイン画面202を表示しているクライアント103から、ログインボタンを押した行為によって発生する要求に応じて、実行制御部121によって実行される。
認証cgi123は、実行されると、クライアント103から得られたパラメータであるユーザIDとパスワードをユーザテーブル131から検索して照合する。
ユーザテーブル131には、登録ユーザの重複のないユーザIDが記録されている。このユーザテーブル131は、各登録ユーザのユーザIDをパスワードと共に管理するためのものである。
照合の結果、ユーザIDとパスワードが合致していれば、正常にログインが完了したことを示すcookie(クッキー:webサイトの提供者が、webブラウザを通じて訪問者のコンピュータに一時的にデータを書き込んで保存させるしくみ。殆どの場合、アルファベット及び数字の1バイト文字列にて構成される。)を作成すると共に、自動的にカレンダ画面cgi124に移行するためのhtml文書を作成する。これらは実行制御部121を通じてクライアント103に送信される。
一方、照合の結果、ユーザIDとパスワードが合致していなければ、ログインが失敗したことを示すエラーメッセージを付して、自動的にログイン画面cgi122に移行するhtmlメッセージを作成する。これらは実行制御部121を通じてクライアント102に送信される。
自動的にカレンダ画面cgi124に移行するhtmlメッセージとは、HTTPのステータスコードの一種である、転送機能を用いている。
http ver.1.1の場合は「303 See Other」というステータスコードと、カレンダ画面cgi124のURIを、HTTP応答ヘッダに記す。
http ver.1.0の場合は「302 Found」というステータスコードと、カレンダ画面cgi124のURIを、HTTP応答ヘッダに記す。
認証cgi123は、このように構成したHTTP応答ヘッダを作成し、クライアントへ送信する。
クライアント103のwebブラウザは、このHTTP応答ヘッダを解釈し、直ちに記されているURIに基づいてカレンダ画面cgi124をwebサーバに要求する。
すなわち、認証cgi123はwebブラウザによって表示画面に表示されるhtml文書を作成しない。或は、認証cgi123がhtml文書を作成しても、webブラウザの機能により、webブラウザがHTTP応答ヘッダ中の転送ステータスコードを検出して転送を実行するので、当該作成されたhtml文書はwebブラウザには表示されない。
ログイン失敗時に自動的にログイン画面cgi122に移行するhtmlメッセージも、同様である。
http ver.1.1の場合は「303 See Other」というステータスコードと、カレンダ画面cgi124のURIを、HTTP応答ヘッダに記す。
http ver.1.0の場合は「302 Found」というステータスコードと、カレンダ画面cgi124のURIを、HTTP応答ヘッダに記す。
認証cgi123は、このように構成したHTTP応答ヘッダを作成し、クライアントへ送信する。
クライアント103のwebブラウザは、このHTTP応答ヘッダを解釈し、直ちに記されているURIに基づいてカレンダ画面cgi124をwebサーバに要求する。
すなわち、認証cgi123はwebブラウザによって表示画面に表示されるhtml文書を作成しない。或は、認証cgi123がhtml文書を作成しても、webブラウザの機能により、webブラウザがHTTP応答ヘッダ中の転送ステータスコードを検出して転送を実行するので、当該作成されたhtml文書はwebブラウザには表示されない。
ログイン失敗時に自動的にログイン画面cgi122に移行するhtmlメッセージも、同様である。
カレンダ画面cgi124は、JavaScriptプログラムを実行させるタグが多数埋め込まれたhtml文書を作成する。
カレンダ画面cgi124が作成するhtml文書の内容の一部を図3に示す。
図3に示されるhtml文書301は、htmlの文法(フォーマット)に準じてタグが記載されている。「<html>」タグ302で始まり、「</html>」タグ303で終わる。
「<html>」タグ302と「</html>」タグ303の中は、「<head>」タグ304から始まり「</head>」タグ305で終わるヘッダ部分と、「<body>」タグ306から始まり「</body>」タグ307で終わる本文部分で構成されている。
このうち、ヘッダ部分(図3中の「<head>」タグ304から「</head>」タグ305まで囲まれた範囲)には、「<script ・・・」にて始まり、「</script>」にて終了する「script」タグ308が複数行記載されている。これらはwebサーバ102のJavaScriptプログラムソース128のURI(Uniform Resource Identifier: インターネット108上に存在する情報資源の場所を指し示す記述方式)を記している。図3においては「src=」以降にダブルクォーテーション(「”」)で囲まれた文字列が、JavaScriptプログラムソース128のURIを示している。
カレンダ画面cgi124が作成するhtml文書の内容の一部を図3に示す。
図3に示されるhtml文書301は、htmlの文法(フォーマット)に準じてタグが記載されている。「<html>」タグ302で始まり、「</html>」タグ303で終わる。
「<html>」タグ302と「</html>」タグ303の中は、「<head>」タグ304から始まり「</head>」タグ305で終わるヘッダ部分と、「<body>」タグ306から始まり「</body>」タグ307で終わる本文部分で構成されている。
このうち、ヘッダ部分(図3中の「<head>」タグ304から「</head>」タグ305まで囲まれた範囲)には、「<script ・・・」にて始まり、「</script>」にて終了する「script」タグ308が複数行記載されている。これらはwebサーバ102のJavaScriptプログラムソース128のURI(Uniform Resource Identifier: インターネット108上に存在する情報資源の場所を指し示す記述方式)を記している。図3においては「src=」以降にダブルクォーテーション(「”」)で囲まれた文字列が、JavaScriptプログラムソース128のURIを示している。
JavaScriptは、Sun Microsystems社とNetscape Communications社が開発した、webブラウザなどでの利用に適したスクリプト言語(簡易プログラミング言語)である。今日の主要なwebブラウザには、このJavaScriptインタプリタが内蔵されている。
本実施形態の場合、先ず、カレンダ画面cgi124が作成した図3のhtml文書をwebブラウザ105が読み込み、タグの記述を解釈していく。やがて、ヘッダ部分の「script」タグ308に列挙記載されているJavaScriptプログラムソース128のURIをwebブラウザ105が解釈し、webサーバ102に対して、JavaScriptプログラムソース128を要求する。webサーバ102はクライアント103のwebブラウザ105の要求に応じて、不揮発性ストレージ127に格納されているJavaScriptプログラムソース128を送信する。クライアント103のwebブラウザ105がJavaScriptプログラムソース128を読み込むと、webブラウザ105の内蔵インタプリタがこれを実行し、その結果、ディスプレイ109にカレンダが表示される。
本実施形態の場合、先ず、カレンダ画面cgi124が作成した図3のhtml文書をwebブラウザ105が読み込み、タグの記述を解釈していく。やがて、ヘッダ部分の「script」タグ308に列挙記載されているJavaScriptプログラムソース128のURIをwebブラウザ105が解釈し、webサーバ102に対して、JavaScriptプログラムソース128を要求する。webサーバ102はクライアント103のwebブラウザ105の要求に応じて、不揮発性ストレージ127に格納されているJavaScriptプログラムソース128を送信する。クライアント103のwebブラウザ105がJavaScriptプログラムソース128を読み込むと、webブラウザ105の内蔵インタプリタがこれを実行し、その結果、ディスプレイ109にカレンダが表示される。
図4はwebブラウザ105が図3のhtml文書301を読み込み、更にJavaScriptを実行した結果がディスプレイ109に表示された状態を示す。
図4中、点線で囲まれた範囲402が、JavaScriptの実行結果によって表示された内容である。
より詳細には、Ajaxという技術を用いている。
図4中、点線で囲まれた範囲402が、JavaScriptの実行結果によって表示された内容である。
より詳細には、Ajaxという技術を用いている。
Ajax(「エイジャックス」と読む)は、Asynchronous JavaScript + XML の略である。これは、webブラウザ105に実装されているJavaScriptのHTTP通信機能を使って、webページのリロードを伴わずに、webサーバ102とXML形式のデータのやり取りを行って処理を進めていく、対話型webアプリケーションの実装形態である。
従来、webブラウザ105を使ったwebアプリケーションでは、データをサーバに通知して処理結果を得るにはページ全体をロードし直さなければならず、通常のアプリケーションソフトウェアのような操作性を得ることは難しかった。Ajaxでは、指定したURIからXML文書を読み込む機能を使い、ユーザの操作や画面描画などと並行してサーバと非同期に通信を行うことで、サーバの存在を感じさせないシームレスなwebアプリケーションを実現することができる。
特に、本実施形態では、カレンダを表示するhtml文書を作成する際に、複数のコンテンツ提供サービスにアクセスする必要がある。アクセスに時間が掛かると、いつまで経ってもカレンダが表示されない、という不都合を生じる。そこで、html文書の大枠は先に送信し、他の情報提供サイトにアクセスする必要がある箇所の情報は後から取得し、その部分だけ画面に表示すると、仮にコンテンツ取得に時間が掛かってもその他の箇所のボタン操作等は可能になるので、何も操作ができないという最悪の状態だけは免れることができる。
図4においては、表示月変更ボタン204及び205のいずれかを押すと、点線で囲まれたAjax用表示範囲402だけが書き換えられる。したがって、html文書全体を読み直す(リロードする)必要がなく、HTTPのトラフィックが軽減されると共に、webブラウザ105の画面描画処理も軽くなるので、通常のアプリケーションソフトウェアに近い自然な操作感覚を得ることができる。
従来、webブラウザ105を使ったwebアプリケーションでは、データをサーバに通知して処理結果を得るにはページ全体をロードし直さなければならず、通常のアプリケーションソフトウェアのような操作性を得ることは難しかった。Ajaxでは、指定したURIからXML文書を読み込む機能を使い、ユーザの操作や画面描画などと並行してサーバと非同期に通信を行うことで、サーバの存在を感じさせないシームレスなwebアプリケーションを実現することができる。
特に、本実施形態では、カレンダを表示するhtml文書を作成する際に、複数のコンテンツ提供サービスにアクセスする必要がある。アクセスに時間が掛かると、いつまで経ってもカレンダが表示されない、という不都合を生じる。そこで、html文書の大枠は先に送信し、他の情報提供サイトにアクセスする必要がある箇所の情報は後から取得し、その部分だけ画面に表示すると、仮にコンテンツ取得に時間が掛かってもその他の箇所のボタン操作等は可能になるので、何も操作ができないという最悪の状態だけは免れることができる。
図4においては、表示月変更ボタン204及び205のいずれかを押すと、点線で囲まれたAjax用表示範囲402だけが書き換えられる。したがって、html文書全体を読み直す(リロードする)必要がなく、HTTPのトラフィックが軽減されると共に、webブラウザ105の画面描画処理も軽くなるので、通常のアプリケーションソフトウェアに近い自然な操作感覚を得ることができる。
Ajaxによるデータの受け渡しはXML文書にて行われる。このXML文書を作成する機能を提供するものが、Ajax用データ送信cgi125である。JavaScriptによるデータ要求に呼応して、カレンダに表示するコンテンツをXML文書の形式にて作成する。
Ajax用データ送信cgi125には、カレンダに表示するコンテンツとして、オブジェクトテーブル132、コンテンツオブジェクトテーブル133、コンテンツテーブル134、コンテンツ配信登録テーブル135、コンテンツ蓄積テーブル136の各種テーブルが接続されている。
また、Ajax用データ送信cgi125は、必要に応じてデータ取得クライアントプログラム141を起動する機能を備える。データ取得クライアントプログラム141は、コンテンツ提供者サーバ100、111及び112に必要なコンテンツを取りに行くためのソフトウェアである。例えば非対話型webクライアント等で実装される。
Ajax用データ送信cgi125には、カレンダに表示するコンテンツとして、オブジェクトテーブル132、コンテンツオブジェクトテーブル133、コンテンツテーブル134、コンテンツ配信登録テーブル135、コンテンツ蓄積テーブル136の各種テーブルが接続されている。
また、Ajax用データ送信cgi125は、必要に応じてデータ取得クライアントプログラム141を起動する機能を備える。データ取得クライアントプログラム141は、コンテンツ提供者サーバ100、111及び112に必要なコンテンツを取りに行くためのソフトウェアである。例えば非対話型webクライアント等で実装される。
オブジェクトテーブル132はwebブラウザ105が提供するサービスの登録ユーザ自身が記入する様々な情報を格納する。例えばスケジュールや、日記等の情報である。オブジェクトテーブル132は、一旦情報が記録されると、所定の条件を満たさない限り情報を保持し続ける。つまり、ユーザ自身の日々の生活等の記録であり、いわば「ログ」である。なお、オブジェクトテーブル132の詳細な内容は、本実施形態と直接には関係しないので、割愛する。
コンテンツオブジェクトテーブル133は本実施形態の中核をなすテーブルである。コンテンツオブジェクトテーブル133は、コンテンツ提供者サーバから得られたコンテンツを日々記録するものである。つまり、「コンテンツのログ」である。前述のオブジェクトテーブル132とは目的が類似しているが、記録する内容が異なる。
コンテンツオブジェクトテーブル133は本実施形態の中核をなすテーブルである。コンテンツオブジェクトテーブル133は、コンテンツ提供者サーバから得られたコンテンツを日々記録するものである。つまり、「コンテンツのログ」である。前述のオブジェクトテーブル132とは目的が類似しているが、記録する内容が異なる。
コンテンツテーブル134は、webサーバ102が外部のコンテンツ提供者と契約している、コンテンツ提供者サーバによって得られるサービスを列挙記載したテーブルである。
コンテンツ配信登録テーブル135は、ユーザがサービスの提供を受けるコンテンツ配信サービスを列挙記載したテーブルである。つまり、ユーザIDと契約しているコンテンツとの関係を示すテーブルである。
コンテンツ蓄積テーブル136は、コンテンツ配信サービスのうち、定期的に巡回してコンテンツを蓄積するためのテーブルである。コンテンツ提供時間間隔が一定である天気予報等がこれに該当する。定期巡回クライアントプログラム142は、コンテンツ蓄積テーブル136に定期的にコンテンツを追記するためのプログラムである。一例として、POSIX系OSであれば、cronに登録した、非対話型webクライアントソフトウェア等で実装することとなるだろう。
コンテンツ配信登録テーブル135は、ユーザがサービスの提供を受けるコンテンツ配信サービスを列挙記載したテーブルである。つまり、ユーザIDと契約しているコンテンツとの関係を示すテーブルである。
コンテンツ蓄積テーブル136は、コンテンツ配信サービスのうち、定期的に巡回してコンテンツを蓄積するためのテーブルである。コンテンツ提供時間間隔が一定である天気予報等がこれに該当する。定期巡回クライアントプログラム142は、コンテンツ蓄積テーブル136に定期的にコンテンツを追記するためのプログラムである。一例として、POSIX系OSであれば、cronに登録した、非対話型webクライアントソフトウェア等で実装することとなるだろう。
なお、上述の各テーブルのうち、オブジェクトテーブル132、コンテンツオブジェクトテーブル133、コンテンツテーブル134、コンテンツ配信登録テーブル135のフィールドについては後述する。
図5は、クライアント103がカレンダを表示するに際して、クライアント103とwebサーバ102の間で送受信される情報を記したシーケンス図である。
先ず、クライアント103がログインに成功したり、或は他の表示画面からカレンダ画面cgi124を呼び出す処理を行うと、カレンダ画面cgi124を実行する要求がクライアント103からwebサーバ102へ送信される(S501)。
webサーバ102はこの要求を受け、カレンダ画面cgi124を実行し、カレンダ表示html文書を作成し、クライアント103へ送信する(S502)。
クライアント103はカレンダ表示html文書を受信し、そのhtmlタグを解釈する。解釈の結果、JavaScriptプログラムソース128の送信をwebサーバ102に要求する(S503)。
webサーバ102はクライアント103から送信されたJavaScriptプログラムソース128の要求に応じて、不揮発性ストレージ127に格納されているJavaScriptプログラムソース128をクライアント103へ送信する(S504)。
クライアント103はJavaScriptプログラムソース128を受信し、内蔵インタプリタにて実行する。実行の結果、webサーバ102のAjax用データ送信cgi125に対し、指定期間内のカレンダに表示するデータを送信すべく要求する(S505)。
webサーバ102はクライアント103から来た要求のうち、ユーザIDと指定期間のパラメータをAjax用データ送信cgi125に渡す。Ajax用データ送信cgi125は当該ユーザIDについて指定期間内のデータをオブジェクトテーブル132及びコンテンツオブジェクトテーブル133から検索し、XML文書にフォーマットを変換した後、クライアント103へ送信する(S506)。
クライアント103はJavaScriptの機能によってXML文書を受信し、その内容をカレンダに表示する。
先ず、クライアント103がログインに成功したり、或は他の表示画面からカレンダ画面cgi124を呼び出す処理を行うと、カレンダ画面cgi124を実行する要求がクライアント103からwebサーバ102へ送信される(S501)。
webサーバ102はこの要求を受け、カレンダ画面cgi124を実行し、カレンダ表示html文書を作成し、クライアント103へ送信する(S502)。
クライアント103はカレンダ表示html文書を受信し、そのhtmlタグを解釈する。解釈の結果、JavaScriptプログラムソース128の送信をwebサーバ102に要求する(S503)。
webサーバ102はクライアント103から送信されたJavaScriptプログラムソース128の要求に応じて、不揮発性ストレージ127に格納されているJavaScriptプログラムソース128をクライアント103へ送信する(S504)。
クライアント103はJavaScriptプログラムソース128を受信し、内蔵インタプリタにて実行する。実行の結果、webサーバ102のAjax用データ送信cgi125に対し、指定期間内のカレンダに表示するデータを送信すべく要求する(S505)。
webサーバ102はクライアント103から来た要求のうち、ユーザIDと指定期間のパラメータをAjax用データ送信cgi125に渡す。Ajax用データ送信cgi125は当該ユーザIDについて指定期間内のデータをオブジェクトテーブル132及びコンテンツオブジェクトテーブル133から検索し、XML文書にフォーマットを変換した後、クライアント103へ送信する(S506)。
クライアント103はJavaScriptの機能によってXML文書を受信し、その内容をカレンダに表示する。
図6から図9、図18と図19は、前述の図5によって示される処理の流れを詳述するフローチャートである。
図6はログインからカレンダを表示する、クライアント103とwebサーバ102の両方の処理を含めた、全体的な流れを示す。
処理を開始すると(S601)、ユーザはクライアント103のキーボード106及びマウス107を用いてwebブラウザ105を操作して、webサーバ102のログイン画面cgi122にアクセスする(S602)。
webサーバ102は、このクライアント103から発される要求に呼応して、ログイン画面cgi122を実行する。ログイン画面cgi122は、ログイン画面202のhtml文書を作成する。作成したhtml文書は実行制御部121(webサーバソフトウェア)によってクライアント103へ送信される(S603)。
図6はログインからカレンダを表示する、クライアント103とwebサーバ102の両方の処理を含めた、全体的な流れを示す。
処理を開始すると(S601)、ユーザはクライアント103のキーボード106及びマウス107を用いてwebブラウザ105を操作して、webサーバ102のログイン画面cgi122にアクセスする(S602)。
webサーバ102は、このクライアント103から発される要求に呼応して、ログイン画面cgi122を実行する。ログイン画面cgi122は、ログイン画面202のhtml文書を作成する。作成したhtml文書は実行制御部121(webサーバソフトウェア)によってクライアント103へ送信される(S603)。
クライアント103では、ユーザがwebブラウザ105によって表示されているログイン画面202のダイアログボックスにユーザIDとパスワードを入力して、「ログイン」ボタンを押す(S604)。すると、「ログイン」ボタンによって、ユーザID及びパスワードと共に認証cgi123を起動する要求がwebサーバ102に送信され、認証cgi123が実行される。認証cgi123は受信したユーザIDとパスワードをユーザテーブル131にて照合する(S605)。
照合の結果、ユーザIDとパスワードが一致しなければ(S605のN)、認証cgi123はエラーフラグをセットして(S606)、ログイン画面cgi122を起動する(S603)。つまり、認証が成功するまで繰り返される。なお、セキュリティの向上のために、認証エラーが所定回数に達したら当該ユーザのログイン処理を一定時間拒絶する処理を加えることができる。
照合の結果、ユーザIDとパスワードが一致したら、認証cgi123はカレンダ画面cgi124を起動する。カレンダ画面cgi124はカレンダ表示htmlを作成し、これが実行制御部121によってクライアント103へ送信され(S607)、一連の処理は終了する(S608)。
照合の結果、ユーザIDとパスワードが一致しなければ(S605のN)、認証cgi123はエラーフラグをセットして(S606)、ログイン画面cgi122を起動する(S603)。つまり、認証が成功するまで繰り返される。なお、セキュリティの向上のために、認証エラーが所定回数に達したら当該ユーザのログイン処理を一定時間拒絶する処理を加えることができる。
照合の結果、ユーザIDとパスワードが一致したら、認証cgi123はカレンダ画面cgi124を起動する。カレンダ画面cgi124はカレンダ表示htmlを作成し、これが実行制御部121によってクライアント103へ送信され(S607)、一連の処理は終了する(S608)。
図7はクライアント103のwebブラウザ105における、カレンダ表示処理の動作を示すフローチャートである。
クライアント103のwebブラウザ105は、webサーバ102に対してカレンダ画面cgi124の実行を要求した後(S701)、webサーバ102から送信されるカレンダ表示html文書を受信する(S702)。
次に、webブラウザ105は受信したカレンダ表示html文書内のhtmlタグを解析する(S703)。その結果、タグがJavaScriptであれば(S703のY)、これを解釈し、URIにあるwebサーバ102のJavaScriptプログラムソース128を受信すべく、webサーバ102に要求する(S704)。そして、受信したJavaScriptプログラムソース128を内蔵インタプリタにて実行する(S705)。
タグがJavaScriptでなければ(S703のN)、html文法にしたがってこれを解釈し、画面表示を行う(S706)。
htmlタグを解釈し、実行した後、カレンダ表示html文書の終端でなければ(S707のN)、html文書の受信を継続する(S702)。そうでない場合は、処理を終了する(S708)。
クライアント103のwebブラウザ105は、webサーバ102に対してカレンダ画面cgi124の実行を要求した後(S701)、webサーバ102から送信されるカレンダ表示html文書を受信する(S702)。
次に、webブラウザ105は受信したカレンダ表示html文書内のhtmlタグを解析する(S703)。その結果、タグがJavaScriptであれば(S703のY)、これを解釈し、URIにあるwebサーバ102のJavaScriptプログラムソース128を受信すべく、webサーバ102に要求する(S704)。そして、受信したJavaScriptプログラムソース128を内蔵インタプリタにて実行する(S705)。
タグがJavaScriptでなければ(S703のN)、html文法にしたがってこれを解釈し、画面表示を行う(S706)。
htmlタグを解釈し、実行した後、カレンダ表示html文書の終端でなければ(S707のN)、html文書の受信を継続する(S702)。そうでない場合は、処理を終了する(S708)。
図8は、クライアント103におけるJavaScriptプログラムソース128の実行の詳細を示すフローチャートである。図7のS705がこれに該当する。
JavaScriptプログラムソース128を内蔵インタプリタが実行すると(S801)、当該JavaScriptはwebブラウザ105の子プロセスで稼動する、XML文書を受信するwebブラウザ105としての機能を発揮する。
先ず、html文書のカレンダ部分の領域に表示するコンテンツをwebサーバ102に要求する(S802)。これがAjax要求である。
webサーバ102はこれを解釈し、XML文書の形式にてコンテンツを送信する。
JavaScriptよりなるwebブラウザ105機能は、webサーバ102から送信されたXML文書を受信する(S803)。そして、XML文書のタグを解釈し、タグからデータ(コンテンツ)を抽出し、カレンダに表示する(S804)。
この処理を、XML文書の終端まで繰り返す(S805、S806)。
JavaScriptプログラムソース128を内蔵インタプリタが実行すると(S801)、当該JavaScriptはwebブラウザ105の子プロセスで稼動する、XML文書を受信するwebブラウザ105としての機能を発揮する。
先ず、html文書のカレンダ部分の領域に表示するコンテンツをwebサーバ102に要求する(S802)。これがAjax要求である。
webサーバ102はこれを解釈し、XML文書の形式にてコンテンツを送信する。
JavaScriptよりなるwebブラウザ105機能は、webサーバ102から送信されたXML文書を受信する(S803)。そして、XML文書のタグを解釈し、タグからデータ(コンテンツ)を抽出し、カレンダに表示する(S804)。
この処理を、XML文書の終端まで繰り返す(S805、S806)。
図9は、webサーバ102側における、クライアント103から発されるAjax要求に対する応答の処理を示すフローチャートである。つまり、Ajax用データ送信cgi125の処理内容である。
Ajax用データ送信cgi125が起動されると(S901)、クライアント103からユーザIDとカレンダ表示期間(指定期間)を受信する(S902)。
次に、ユーザIDと指定期間をキーに、オブジェクトテーブル132を検索し、ヒットしたレコードをXML文書のフォーマットに変換して出力する(S903)。
次に、ユーザIDと指定期間をキーに、コンテンツオブジェクトテーブル133を検索し、ヒットしたレコードをXML文書のフォーマットに変換して出力し(S904)、終了する(S905)。
なお、上記のステップS903とステップS904の処理は並列に処理してもよい。
Ajax用データ送信cgi125が起動されると(S901)、クライアント103からユーザIDとカレンダ表示期間(指定期間)を受信する(S902)。
次に、ユーザIDと指定期間をキーに、オブジェクトテーブル132を検索し、ヒットしたレコードをXML文書のフォーマットに変換して出力する(S903)。
次に、ユーザIDと指定期間をキーに、コンテンツオブジェクトテーブル133を検索し、ヒットしたレコードをXML文書のフォーマットに変換して出力し(S904)、終了する(S905)。
なお、上記のステップS903とステップS904の処理は並列に処理してもよい。
図10から図16は、コンテンツ提供者サーバのコンテンツ提供形態の種類と、そのコンテンツ提供の処理の流れを説明する図である。
コンテンツ提供者が、そのコンテンツをwebサーバ運営者にコンテンツ提供を許諾するに当たり、著作権等の契約体系と利便性に応じて、コンテンツ直接参照型、コンテンツ蓄積型、コンテンツバックアップ型の、三種類のコンテンツ提供手順がある。更に、コンテンツバックアップ型にはコンテンツの容量等の事情にしたがって、二つのコンテンツ提供手順がある。
コンテンツ提供者が、そのコンテンツをwebサーバ運営者にコンテンツ提供を許諾するに当たり、著作権等の契約体系と利便性に応じて、コンテンツ直接参照型、コンテンツ蓄積型、コンテンツバックアップ型の、三種類のコンテンツ提供手順がある。更に、コンテンツバックアップ型にはコンテンツの容量等の事情にしたがって、二つのコンテンツ提供手順がある。
先ず、コンテンツ提供者がコンテンツをwebサーバ102に記録することを許可していない場合は、クライアント103が直接コンテンツ提供者サーバにアクセスすることを要する。これが図10に示す、コンテンツ直接参照型である。
図10において、「(1)ログイン後、指定期間のコンテンツ要求」とあるのは、webサーバ102からクライアントPC104がカレンダ表示htmlを受信した後、JavaScriptを実行した結果、クライアントPC104がwebサーバ102にAjax要求(カレンダ表示のためのデータ要求)をしたことを示す。
「(2)コンテンツ参照URIのみ返信」とあるのは、クライアントPC104がwebサーバ102へ送信したAjax要求に応じて、webサーバ102からクライアントPC104へ送信されたXML文書に基づいて、クライアントPC104のディスプレイ109に表示されたカレンダの中身(コンテンツ)には、コンテンツ提供者サーバを参照するURIだけが埋め込まれていることを示す。(なお、実際はカレンダには複数のコンテンツが埋め込まれているが、ここではある一つのコンテンツだけを注目して言及していることに注意されたい。)
「(3)コンテンツ参照URIを選択し、コンテンツ提供サーバにコンテンツを要求」とあるのは、コンテンツ提供者サーバ1002を参照するURIをマウス107等でクリックした結果、コンテンツ取得要求がコンテンツ提供者サーバ1002に送信される動作を示す。
「(4)コンテンツを返信」とあるのは、コンテンツ提供者サーバ1002からクライアントPC104へコンテンツが送信される動作を示す。
図10において、「(1)ログイン後、指定期間のコンテンツ要求」とあるのは、webサーバ102からクライアントPC104がカレンダ表示htmlを受信した後、JavaScriptを実行した結果、クライアントPC104がwebサーバ102にAjax要求(カレンダ表示のためのデータ要求)をしたことを示す。
「(2)コンテンツ参照URIのみ返信」とあるのは、クライアントPC104がwebサーバ102へ送信したAjax要求に応じて、webサーバ102からクライアントPC104へ送信されたXML文書に基づいて、クライアントPC104のディスプレイ109に表示されたカレンダの中身(コンテンツ)には、コンテンツ提供者サーバを参照するURIだけが埋め込まれていることを示す。(なお、実際はカレンダには複数のコンテンツが埋め込まれているが、ここではある一つのコンテンツだけを注目して言及していることに注意されたい。)
「(3)コンテンツ参照URIを選択し、コンテンツ提供サーバにコンテンツを要求」とあるのは、コンテンツ提供者サーバ1002を参照するURIをマウス107等でクリックした結果、コンテンツ取得要求がコンテンツ提供者サーバ1002に送信される動作を示す。
「(4)コンテンツを返信」とあるのは、コンテンツ提供者サーバ1002からクライアントPC104へコンテンツが送信される動作を示す。
図11(a)及び(b)は、図10に示した動作を、画面の内容の変化を伴って説明するための図である。
図11(a)はディスプレイ109に表示されるカレンダ、つまりユーザがコンテンツ要求を発する前の段階のカレンダを示す。図11(a)には一例として、2006年10月のカレンダが表示されている。
ここで、10月2日(月)の欄に、星印1102がある。この星印1102には、コンテンツ直接参照型のコンテンツ提供者サーバへのURIが埋め込まれている。ユーザはこの星印1102をクリックすると、JavaScriptよりなるwebブラウザ機能はコンテンツ提供者サーバ1002へアクセスし、コンテンツを取得する。そして、その内容を図11(b)に示すように、カレンダ表示領域内にウィンドウの形態にて表示する。これが図11(b)の、コンテンツ表示ウィンドウ1103である。
図11(b)ではこのような契約体系に該当するコンテンツの一例として、毎週決まった曜日に配信される、音楽のヒットチャートを提供するコンテンツ提供者のコンテンツを示している。このウィンドウ内に示されるコンテンツは、webサーバ102内のコンテンツオブジェクトテーブル133には一切記録されない。
図11(a)はディスプレイ109に表示されるカレンダ、つまりユーザがコンテンツ要求を発する前の段階のカレンダを示す。図11(a)には一例として、2006年10月のカレンダが表示されている。
ここで、10月2日(月)の欄に、星印1102がある。この星印1102には、コンテンツ直接参照型のコンテンツ提供者サーバへのURIが埋め込まれている。ユーザはこの星印1102をクリックすると、JavaScriptよりなるwebブラウザ機能はコンテンツ提供者サーバ1002へアクセスし、コンテンツを取得する。そして、その内容を図11(b)に示すように、カレンダ表示領域内にウィンドウの形態にて表示する。これが図11(b)の、コンテンツ表示ウィンドウ1103である。
図11(b)ではこのような契約体系に該当するコンテンツの一例として、毎週決まった曜日に配信される、音楽のヒットチャートを提供するコンテンツ提供者のコンテンツを示している。このウィンドウ内に示されるコンテンツは、webサーバ102内のコンテンツオブジェクトテーブル133には一切記録されない。
コンテンツ提供者がコンテンツをwebサーバ102に記録することを許可している場合は、提供されるコンテンツの配信タイミング等に応じて、複数の取得形態がある。
一つは、提供されるコンテンツの配信タイミングが必ず決まっている場合である。この場合は、webサーバ102がコンテンツ提供者サーバへ定期的にコンテンツを取得して、コンテンツ蓄積テーブル136に蓄積しておく。そして、クライアント103から要求があったら、コンテンツ蓄積テーブル136からコンテンツを読み出してクライアント103へ出力する、という形態である。これが図12に示す、コンテンツ蓄積型である。定期巡回クライアントプログラム142はこのために設けられている。
図12において、「(1)ログイン後、指定期間のコンテンツ要求」とあるのは、クライアントPC104がwebサーバ102からカレンダ表示htmlを受信した後、JavaScriptを実行した結果、webサーバ102にAjax要求をしたことを示す。
「(2)コンテンツを返信」とあるのは、webサーバ102からクライアント103へコンテンツが送信される動作を示す。
一つは、提供されるコンテンツの配信タイミングが必ず決まっている場合である。この場合は、webサーバ102がコンテンツ提供者サーバへ定期的にコンテンツを取得して、コンテンツ蓄積テーブル136に蓄積しておく。そして、クライアント103から要求があったら、コンテンツ蓄積テーブル136からコンテンツを読み出してクライアント103へ出力する、という形態である。これが図12に示す、コンテンツ蓄積型である。定期巡回クライアントプログラム142はこのために設けられている。
図12において、「(1)ログイン後、指定期間のコンテンツ要求」とあるのは、クライアントPC104がwebサーバ102からカレンダ表示htmlを受信した後、JavaScriptを実行した結果、webサーバ102にAjax要求をしたことを示す。
「(2)コンテンツを返信」とあるのは、webサーバ102からクライアント103へコンテンツが送信される動作を示す。
図13は、図12に示した動作に対応する画面の内容を説明する図である。
図13には一例として、2006年10月のカレンダの一部が表示されている。ここで、10月2日(月)の欄に、傘と雲のマーク1302がある。このマークは、コンテンツ蓄積型によるコンテンツを示す。つまり、コンテンツ蓄積サーバに蓄積されているコンテンツが、カレンダに直接表示されているのである。
図13ではこのような契約体系に該当するコンテンツの一例として、毎日決まった時間に配信される、天気予報と過去の天気のコンテンツを示している。これは図示しない画像データのリンク(「<img>」タグ)が埋め込まれており、画像にマウスカーソル1303を重ねると、詳細な内容が吹き出しのようなウィンドウ1304にて表示される。これは周知のhtmlの「<img>」タグに「title」タグを付したものである。なお、このウィンドウをJavaScriptで表示させることも可能である。
図13には一例として、2006年10月のカレンダの一部が表示されている。ここで、10月2日(月)の欄に、傘と雲のマーク1302がある。このマークは、コンテンツ蓄積型によるコンテンツを示す。つまり、コンテンツ蓄積サーバに蓄積されているコンテンツが、カレンダに直接表示されているのである。
図13ではこのような契約体系に該当するコンテンツの一例として、毎日決まった時間に配信される、天気予報と過去の天気のコンテンツを示している。これは図示しない画像データのリンク(「<img>」タグ)が埋め込まれており、画像にマウスカーソル1303を重ねると、詳細な内容が吹き出しのようなウィンドウ1304にて表示される。これは周知のhtmlの「<img>」タグに「title」タグを付したものである。なお、このウィンドウをJavaScriptで表示させることも可能である。
コンテンツ提供者がコンテンツをwebサーバ102に記録することを許可している場合のもう一つの取得形態は、提供されるコンテンツの配信タイミングが決まっていない、不定期の取得形態である。この場合は、webサーバ102がコンテンツ提供者サーバへ定期的にコンテンツを取得しても、最新のデータが得られるとは限らない。また、今日のインターネット108には、多数のクライアント103の要求に耐え得る、強靭なwebサービスを提供する業者が多数存在する。そこで、クライアント103の要求に毎回呼応するように、webサーバ102が毎回コンテンツ提供者サーバにアクセスする。これがコンテンツバックアップ型である。
コンテンツバックアップ型は、配信されるコンテンツがカレンダの小さな欄内に表示可能であるか否かで、二つのアクセス方法を用意している。その一つが、図14に示す、コンテンツバックアップ型の「アクセス方法その1」である。
「アクセス方法その1」は、表示するコンテンツの内容(バイト数)が少なく、カレンダの小さな表示欄内に表示可能である場合に、この方法が採用される。
図14において、「(1)ログイン後、指定期間のコンテンツ要求」とあるのは、クライアントPC104がwebサーバ102からカレンダ表示htmlを受信した後、JavaScriptを実行した結果、webサーバ102にAjax要求をしたことを示す。
「(2)指定期間のコンテンツを要求」とあるのは、webサーバ102がコンテンツ提供者サーバ1402に対して指定期間に対応するコンテンツを要求することを示す。
「(3)コンテンツを返信」とあるのは、コンテンツ提供者サーバ1402がwebサーバ102の要求に応じて、webサーバ102にコンテンツが送信されるありさまを示す。
「(4)コンテンツを返信」とあるのは、webサーバ102からクライアントPC104へコンテンツが送信される動作を示す。
なお、表示画面の説明は図13と等価であるので省略する。
コンテンツバックアップ型は、配信されるコンテンツがカレンダの小さな欄内に表示可能であるか否かで、二つのアクセス方法を用意している。その一つが、図14に示す、コンテンツバックアップ型の「アクセス方法その1」である。
「アクセス方法その1」は、表示するコンテンツの内容(バイト数)が少なく、カレンダの小さな表示欄内に表示可能である場合に、この方法が採用される。
図14において、「(1)ログイン後、指定期間のコンテンツ要求」とあるのは、クライアントPC104がwebサーバ102からカレンダ表示htmlを受信した後、JavaScriptを実行した結果、webサーバ102にAjax要求をしたことを示す。
「(2)指定期間のコンテンツを要求」とあるのは、webサーバ102がコンテンツ提供者サーバ1402に対して指定期間に対応するコンテンツを要求することを示す。
「(3)コンテンツを返信」とあるのは、コンテンツ提供者サーバ1402がwebサーバ102の要求に応じて、webサーバ102にコンテンツが送信されるありさまを示す。
「(4)コンテンツを返信」とあるのは、webサーバ102からクライアントPC104へコンテンツが送信される動作を示す。
なお、表示画面の説明は図13と等価であるので省略する。
コンテンツバックアップ型は、配信されるコンテンツがカレンダの小さな欄内に表示可能であるか否かで、二つのアクセス方法を用意している。そのもう一つが、図15に示す、コンテンツバックアップ型の「アクセス方法その2」である。
「アクセス方法その2」は、表示するコンテンツの内容(バイト数)がカレンダの小さな表示欄内に表示しきれない場合に、この方法が採用される。つまり、カレンダの小さな表示欄内には、先のコンテンツ直接参照型と同様にリンクのみを記し、当該リンクをクリックすると、webサーバ102を通じてコンテンツ提供者サーバにアクセスする、という形態である。
図15において、「(1)ログイン後、指定期間のコンテンツ要求」とあるのは、クライアントPC104がwebサーバ102からカレンダ表示htmlを受信した後、JavaScriptを実行した結果、webサーバ102にAjax要求をしたことを示す。
「(2)コンテンツ参照URIのみ返信」とあるのは、Ajax要求に応じてディスプレイ109に表示されたカレンダの中身には、webサーバ102を参照するURIが埋め込まれていることを示す。このURIは、コンテンツ提供者サーバ1502へアクセスするためのURI等を含むものである。
「(3)コンテンツ参照URIを選択し、コンテンツを要求」とあるのは、前述の(2)で、カレンダに埋め込まれている、webサーバ102を参照するURIをユーザがマウス107等でクリックした結果、コンテンツ取得要求がwebサーバ102に送信される動作を示す。
「(4)指定期間のコンテンツを要求」とあるのは、webサーバ102がコンテンツ提供者サーバ1502に対して指定期間に対応するコンテンツを要求することを示す。
「(5)コンテンツを返信」とあるのは、コンテンツ提供者サーバ1502がwebサーバ102の要求に応じて、webサーバ102にコンテンツが送信されるありさまを示す。
「(6)コンテンツを返信」とあるのは、webサーバ102からクライアントPC104へコンテンツが送信される動作を示す。
「アクセス方法その2」は、表示するコンテンツの内容(バイト数)がカレンダの小さな表示欄内に表示しきれない場合に、この方法が採用される。つまり、カレンダの小さな表示欄内には、先のコンテンツ直接参照型と同様にリンクのみを記し、当該リンクをクリックすると、webサーバ102を通じてコンテンツ提供者サーバにアクセスする、という形態である。
図15において、「(1)ログイン後、指定期間のコンテンツ要求」とあるのは、クライアントPC104がwebサーバ102からカレンダ表示htmlを受信した後、JavaScriptを実行した結果、webサーバ102にAjax要求をしたことを示す。
「(2)コンテンツ参照URIのみ返信」とあるのは、Ajax要求に応じてディスプレイ109に表示されたカレンダの中身には、webサーバ102を参照するURIが埋め込まれていることを示す。このURIは、コンテンツ提供者サーバ1502へアクセスするためのURI等を含むものである。
「(3)コンテンツ参照URIを選択し、コンテンツを要求」とあるのは、前述の(2)で、カレンダに埋め込まれている、webサーバ102を参照するURIをユーザがマウス107等でクリックした結果、コンテンツ取得要求がwebサーバ102に送信される動作を示す。
「(4)指定期間のコンテンツを要求」とあるのは、webサーバ102がコンテンツ提供者サーバ1502に対して指定期間に対応するコンテンツを要求することを示す。
「(5)コンテンツを返信」とあるのは、コンテンツ提供者サーバ1502がwebサーバ102の要求に応じて、webサーバ102にコンテンツが送信されるありさまを示す。
「(6)コンテンツを返信」とあるのは、webサーバ102からクライアントPC104へコンテンツが送信される動作を示す。
図16(a)及び(b)は、図15に示した動作を、画面の内容の変化を伴って説明するための図である。
図16(a)はディスプレイ109に表示されるカレンダ、すなわちユーザがコンテンツ要求を発する前の段階のカレンダを示す。図16(a)には一例として、2006年10月のカレンダが表示されている。
ここで、10月2日(月)の欄に、星印1602がある。この星印1602には、コンテンツバックアップ型の「アクセス方法その2」における、コンテンツ提供者サーバへのURIが埋め込まれている。ユーザはこの星印1602をクリックすると、JavaScriptよりなるwebブラウザ105機能はwebサーバ102へアクセスする。
次に、webサーバ102はコンテンツ提供者サーバ1502にアクセスし、コンテンツを取得する。
次に、webサーバ102はコンテンツ提供者サーバ1502から取得したコンテンツをクライアントPC104へ送信する。
そして、クライアントPC104はその内容を図11(b)に示すように、カレンダ表示領域内にウィンドウの形態にて表示する。これが図16(b)の、コンテンツ表示ウィンドウ1603である。
図16(b)ではこのような契約体系に該当するコンテンツの一例として、不定期に配信される、イベント情報を提供するコンテンツ提供者のコンテンツを示している。このウィンドウ内に示されるコンテンツは、webサーバ102内のコンテンツオブジェクトテーブル133に記録される。
図16(a)はディスプレイ109に表示されるカレンダ、すなわちユーザがコンテンツ要求を発する前の段階のカレンダを示す。図16(a)には一例として、2006年10月のカレンダが表示されている。
ここで、10月2日(月)の欄に、星印1602がある。この星印1602には、コンテンツバックアップ型の「アクセス方法その2」における、コンテンツ提供者サーバへのURIが埋め込まれている。ユーザはこの星印1602をクリックすると、JavaScriptよりなるwebブラウザ105機能はwebサーバ102へアクセスする。
次に、webサーバ102はコンテンツ提供者サーバ1502にアクセスし、コンテンツを取得する。
次に、webサーバ102はコンテンツ提供者サーバ1502から取得したコンテンツをクライアントPC104へ送信する。
そして、クライアントPC104はその内容を図11(b)に示すように、カレンダ表示領域内にウィンドウの形態にて表示する。これが図16(b)の、コンテンツ表示ウィンドウ1603である。
図16(b)ではこのような契約体系に該当するコンテンツの一例として、不定期に配信される、イベント情報を提供するコンテンツ提供者のコンテンツを示している。このウィンドウ内に示されるコンテンツは、webサーバ102内のコンテンツオブジェクトテーブル133に記録される。
図17は、本実施形態のwebサーバ102内に設けられている各種テーブルのうち、本発明に関係するもののフィールド名とその内容を列挙したものである。なお、オブジェクトテーブル132は本発明に直接的には関係しないが、後述のコンテンツオブジェクトテーブル133と対比して説明するために敢えて掲載している。
オブジェクトテーブル132は、webサーバ102を利用する登録ユーザ自身が、自らに関係する種々雑多な情報を記録するものである。つまり、ユーザ自身の日々の生活等の記録であり、いわば登録ユーザ自身の「ログ」である。以下、主要なフィールドの説明を記す。
「TYPE_NO」はオブジェクト種別である。記録されるコンテンツの内容に応じて、スケジュール、イベント、日記、アルバム、ライフログ、目標、メモ等の種別を記す数値データが記録される。
「NAME」はタイトルである。「DESCRIPTION」は内容である。「LINK」はリンク、つまりコンテンツに関係するURIである。つまり、この三つのフィールドが、登録ユーザが記録するコンテンツの主たる実体である。
「USERID」はユーザIDである。これは後述のテーブルのみならず、ユーザテーブル131においても共通である。
「TYPE_NO」はオブジェクト種別である。記録されるコンテンツの内容に応じて、スケジュール、イベント、日記、アルバム、ライフログ、目標、メモ等の種別を記す数値データが記録される。
「NAME」はタイトルである。「DESCRIPTION」は内容である。「LINK」はリンク、つまりコンテンツに関係するURIである。つまり、この三つのフィールドが、登録ユーザが記録するコンテンツの主たる実体である。
「USERID」はユーザIDである。これは後述のテーブルのみならず、ユーザテーブル131においても共通である。
コンテンツオブジェクトテーブル133の説明の前に、コンテンツテーブル134の説明をする。
コンテンツテーブル134は、コンテンツ提供者によるコンテンツ提供サービスの一覧である。
コンテンツテーブル134は、コンテンツ提供サービス毎にフィールド名「NO」のコンテンツ番号が付与されている。また、コンテンツ提供サービス毎に異なるコンテンツ配信方法(コンテンツ直接参照型、コンテンツバックアップ型、コンテンツ蓄積型)に応じて、フィールド名「DELIVER_METHOD」にそれらの配信方法を認識するための数値データが記録される。
「CONTENTS_SRC」は、コンテンツバックアップ型及びコンテンツ蓄積型においては、コンテンツ提供者サーバからwebサーバ102がコンテンツを取得する際のURIを記載する。コンテンツ直接参照型においては、コンテンツ提供者サーバから登録ユーザが直接コンテンツを取得する際のURIを記載する。また、URIの他に、必要に応じてコンテンツ取得の際のプロトコルやコンテンツを加工するコマンド等も記載する。
コンテンツテーブル134は、コンテンツ提供者によるコンテンツ提供サービスの一覧である。
コンテンツテーブル134は、コンテンツ提供サービス毎にフィールド名「NO」のコンテンツ番号が付与されている。また、コンテンツ提供サービス毎に異なるコンテンツ配信方法(コンテンツ直接参照型、コンテンツバックアップ型、コンテンツ蓄積型)に応じて、フィールド名「DELIVER_METHOD」にそれらの配信方法を認識するための数値データが記録される。
「CONTENTS_SRC」は、コンテンツバックアップ型及びコンテンツ蓄積型においては、コンテンツ提供者サーバからwebサーバ102がコンテンツを取得する際のURIを記載する。コンテンツ直接参照型においては、コンテンツ提供者サーバから登録ユーザが直接コンテンツを取得する際のURIを記載する。また、URIの他に、必要に応じてコンテンツ取得の際のプロトコルやコンテンツを加工するコマンド等も記載する。
コンテンツ配信登録テーブル135は、登録ユーザが契約して利用するコンテンツ提供サービスとの関係を示すものである。したがって、「USERID」のユーザIDと、「CONTENTS_NO」のコンテンツ番号が記されている。
コンテンツオブジェクトテーブル133は、webサーバ102を利用する登録ユーザが、コンテンツ配信登録テーブル135にて登録した、コンテンツ提供者からのコンテンツを記録するものである。つまり、ユーザが利用し、提供を受けたコンテンツの記録であり、いわば登録ユーザの「コンテンツのログ」である。前述のオブジェクトテーブル132とは目的が類似しているが、記録する内容が異なる。以下、主要なフィールドの説明を記す。
「CONTENTS_NO」はコンテンツ番号である。コンテンツテーブル134の「NO」のコンテンツ番号と等しい。
「NAME」はタイトルである。「DESCRIPTION」は内容である。「LINK」はリンク、つまりコンテンツに関係するURIである。つまり、この三つのフィールドが、登録ユーザが記録するコンテンツの主たる実体である。
「READFLAG」は閲覧済みフラグである。すなわち、このコンテンツを閲覧したらフラグを上げる。
「CONTENTS_NO」はコンテンツ番号である。コンテンツテーブル134の「NO」のコンテンツ番号と等しい。
「NAME」はタイトルである。「DESCRIPTION」は内容である。「LINK」はリンク、つまりコンテンツに関係するURIである。つまり、この三つのフィールドが、登録ユーザが記録するコンテンツの主たる実体である。
「READFLAG」は閲覧済みフラグである。すなわち、このコンテンツを閲覧したらフラグを上げる。
図18及び図19は、本実施形態において、webサーバ102内のAjax用データ送信cgi125の動作の主要部分である、コンテンツオブジェクトテーブル133を検索してXML文書を送信するまでの詳細な流れを示すフローチャートである。図9のS904の中身に該当する。
コンテンツオブジェクトテーブル133の検索開始に際し(S1801)、ユーザIDと指定期間にてコンテンツオブジェクトテーブル133を検索し、ヒットしたレコードを一旦図示しないwebサーバ102のメモリに保持する(S1802)。
次に、コンテンツ番号をキーに、コンテンツ配信登録テーブル135とコンテンツテーブル134を関係付ける(リレーション)。その上で、ユーザIDにて検索を行い、ヒットしたレコードの数を変数「N」に保持する(S1803)。
コンテンツオブジェクトテーブル133の検索開始に際し(S1801)、ユーザIDと指定期間にてコンテンツオブジェクトテーブル133を検索し、ヒットしたレコードを一旦図示しないwebサーバ102のメモリに保持する(S1802)。
次に、コンテンツ番号をキーに、コンテンツ配信登録テーブル135とコンテンツテーブル134を関係付ける(リレーション)。その上で、ユーザIDにて検索を行い、ヒットしたレコードの数を変数「N」に保持する(S1803)。
これ以降はループ処理である。メモリに保持したコンテンツオブジェクトテーブル133のヒットしたレコード群に対し、先の検索にてヒットしたコンテンツテーブル134のコンテンツの種類を確認しながら、コンテンツの有無を検索する処理を行う。
最初に、カウンタを構成する変数iを1に初期化する(S1804)。
次に、先の検索にてヒットしたコンテンツテーブル134のレコードのうち、i番目のレコードのコンテンツの種類を見る。
最初に、カウンタを構成する変数iを1に初期化する(S1804)。
次に、先の検索にてヒットしたコンテンツテーブル134のレコードのうち、i番目のレコードのコンテンツの種類を見る。
当該コンテンツがコンテンツバックアップ型であれば(S1805のY)、そのコンテンツがメモリに保持したコンテンツオブジェクトテーブル133のヒットしたレコード群にあるか否か、検索して確認する(S1806)。
もしあれば、それは既にコンテンツ提供者サーバからコンテンツを取得済みであるので、ヒットしたレコードに記録されているコンテンツをXMLフォーマットに変換して出力する(S1807)。
もしなければ、それは未だコンテンツ提供者サーバからコンテンツを取得していないので、コンテンツ提供者サーバにアクセスし、コンテンツを取得する(S1808)。そして、コンテンツオブジェクトテーブル133に取得したコンテンツを記録すると共に、当該コンテンツをXMLフォーマットに変換して出力する(S1809)。
もしあれば、それは既にコンテンツ提供者サーバからコンテンツを取得済みであるので、ヒットしたレコードに記録されているコンテンツをXMLフォーマットに変換して出力する(S1807)。
もしなければ、それは未だコンテンツ提供者サーバからコンテンツを取得していないので、コンテンツ提供者サーバにアクセスし、コンテンツを取得する(S1808)。そして、コンテンツオブジェクトテーブル133に取得したコンテンツを記録すると共に、当該コンテンツをXMLフォーマットに変換して出力する(S1809)。
当該コンテンツがコンテンツ蓄積型であれば(S1810のY)、そのコンテンツがメモリに保持したコンテンツオブジェクトテーブル133のヒットしたレコード群にあるか否か、検索して確認する(S1811)。
もしあれば、それは既にコンテンツ蓄積テーブル136からコンテンツを取得済みであるので、ヒットしたレコードに記録されているコンテンツをXMLフォーマットに変換して出力する(S1807)。
もしなければ、それは未だコンテンツ蓄積テーブル136からコンテンツを取得していないので、コンテンツ蓄積テーブル136にアクセスし、コンテンツを取得する(S1812)。そして、コンテンツオブジェクトテーブル133に取得したコンテンツを記録すると共に、当該コンテンツをXMLフォーマットに変換して出力する(S1809)。
もしあれば、それは既にコンテンツ蓄積テーブル136からコンテンツを取得済みであるので、ヒットしたレコードに記録されているコンテンツをXMLフォーマットに変換して出力する(S1807)。
もしなければ、それは未だコンテンツ蓄積テーブル136からコンテンツを取得していないので、コンテンツ蓄積テーブル136にアクセスし、コンテンツを取得する(S1812)。そして、コンテンツオブジェクトテーブル133に取得したコンテンツを記録すると共に、当該コンテンツをXMLフォーマットに変換して出力する(S1809)。
当該コンテンツがコンテンツ直接参照型である場合は、コンテンツテーブル134にあるリンクのURIをXMLフォーマットに変換して出力する(S1813)。
以上の処理の後(図19の○囲みA)、カウンタを構成する変数iをインクリメントする(S1914)。
そして、変数iが最大レコード数Nを超えたか否かを確認し(S1915)、超えていなければ(図19の○囲みB)再び処理を繰り返す(図18の○囲みBからS1805)。超えていれば、処理を終了する(S1916)。
そして、変数iが最大レコード数Nを超えたか否かを確認し(S1915)、超えていなければ(図19の○囲みB)再び処理を繰り返す(図18の○囲みBからS1805)。超えていれば、処理を終了する(S1916)。
本実施形態では、webサービスの提供を受ける登録ユーザに、外部の複数のコンテンツ提供サービス業者が提供するコンテンツを、登録ユーザの契約内容に応じて、単一の表示画面に一元的に提供することができる。
提供を受けたコンテンツのうち、契約内容によってはそれを登録ユーザ毎に「ログ」として記録する。このようにwebサーバを構成することにより、一旦取得したコンテンツを過去に遡って何度でも閲覧することが可能になる。更に、提供を受けたコンテンツはログとして記録されているので、コンテンツ提供サービス業者との契約開始時点、及び契約終了時点が正確にわかる。つまり、登録ユーザのコンテンツ利用料金の計算が正確になると共に一目瞭然で判るので、登録ユーザとwebサーバ運営側との間で料金関係に疑義が生じ難い。
提供を受けたコンテンツのうち、契約内容によってはそれを登録ユーザ毎に「ログ」として記録する。このようにwebサーバを構成することにより、一旦取得したコンテンツを過去に遡って何度でも閲覧することが可能になる。更に、提供を受けたコンテンツはログとして記録されているので、コンテンツ提供サービス業者との契約開始時点、及び契約終了時点が正確にわかる。つまり、登録ユーザのコンテンツ利用料金の計算が正確になると共に一目瞭然で判るので、登録ユーザとwebサーバ運営側との間で料金関係に疑義が生じ難い。
本実施形態には、以下のような応用例が考えられる。
(1)コンテンツオブジェクトテーブル133に対する検索機能を提供することができる。検索画面html文書を生成するcgiを用意し、コンテンツ名称、コンテンツ内容、記録を行った日時、コンテンツの種別等で絞込み検索を実行できるようにする。
(1)コンテンツオブジェクトテーブル133に対する検索機能を提供することができる。検索画面html文書を生成するcgiを用意し、コンテンツ名称、コンテンツ内容、記録を行った日時、コンテンツの種別等で絞込み検索を実行できるようにする。
図20はwebサーバの一部を拡大したブロック図である。
webサーバ2001は、図2に示すwebサーバ102と構成は殆ど同じである。webサーバ102との相違点は、検索cgi2002が追加されていることである。
検索cgi2002は、クライアントから来る検索命令にしたがって、検索結果としてのコンテンツをhtml文書にてクライアントへ返送する。
図21は検索画面を示す。図4のwebブラウザ表示画面401から、所定のボタンをマウスでクリックする等の操作を経て、検索画面が表示された結果である。
検索画面2101の中には、やや縮小表示処理が行われているカレンダ領域2102と、その左側に、検索領域2103とタグ領域2104が表示されている。
webサーバ2001は、図2に示すwebサーバ102と構成は殆ど同じである。webサーバ102との相違点は、検索cgi2002が追加されていることである。
検索cgi2002は、クライアントから来る検索命令にしたがって、検索結果としてのコンテンツをhtml文書にてクライアントへ返送する。
図21は検索画面を示す。図4のwebブラウザ表示画面401から、所定のボタンをマウスでクリックする等の操作を経て、検索画面が表示された結果である。
検索画面2101の中には、やや縮小表示処理が行われているカレンダ領域2102と、その左側に、検索領域2103とタグ領域2104が表示されている。
検索領域2103には、検索用語入力欄2105と検索ボタン2106とログ種類選択欄2107が設けられている。
検索用語入力欄2105はユーザが検索したいキーワードを入力する欄である。
検索ボタン2106は検索用語入力欄2105に入力されたキーワードを検索cgi2002に送信し、検索cgi2002に検索を実行させるためのユーザインターフェースである。
ログ種類選択欄2107は、検索対象を絞り込むためのものである。各項目はログのカテゴリ別に分類され、各項目毎にチェックボックスが設けられている。このチェックボックスをマウスでオン・オフすることで、当該ログの種類の選択或は選択解除を制御できる。ログ種類選択欄2107の中には、本実施形態にかかるコンテンツの項目も設けられており、その選択或は選択解除もできる。
検索用語入力欄2105はユーザが検索したいキーワードを入力する欄である。
検索ボタン2106は検索用語入力欄2105に入力されたキーワードを検索cgi2002に送信し、検索cgi2002に検索を実行させるためのユーザインターフェースである。
ログ種類選択欄2107は、検索対象を絞り込むためのものである。各項目はログのカテゴリ別に分類され、各項目毎にチェックボックスが設けられている。このチェックボックスをマウスでオン・オフすることで、当該ログの種類の選択或は選択解除を制御できる。ログ種類選択欄2107の中には、本実施形態にかかるコンテンツの項目も設けられており、その選択或は選択解除もできる。
タグ領域2104には、タグ2108が設けられている。
タグ2108は、予めユーザが自ら作成している固定キーワードである。図17のオブジェクトテーブル132及びコンテンツオブジェクトテーブル133に設けられている「タグ」フィールドがこれに該当する。
一方、タグ領域2104に列挙されているタグ2108は、ユーザテーブル131に保持されている。ユーザはタグ領域2104内のタグ2108の一つを選択してマウスにてクリックすることにより、当該タグ2108と完全一致する文字列を、図17のオブジェクトテーブル132及びコンテンツオブジェクトテーブル133に設けられている「タグ」フィールドから探す。
なお、タグ領域2108内のタグは、文字フォントの大きさが異なるものが散在する。これはhtml文書内のCSS(Cascading Style Sheets:webページのレイアウトを定義する規格。)等にて、当該タグの利用頻度に応じて文字フォントの大きさを変える指示があることによる。
タグ2108は、予めユーザが自ら作成している固定キーワードである。図17のオブジェクトテーブル132及びコンテンツオブジェクトテーブル133に設けられている「タグ」フィールドがこれに該当する。
一方、タグ領域2104に列挙されているタグ2108は、ユーザテーブル131に保持されている。ユーザはタグ領域2104内のタグ2108の一つを選択してマウスにてクリックすることにより、当該タグ2108と完全一致する文字列を、図17のオブジェクトテーブル132及びコンテンツオブジェクトテーブル133に設けられている「タグ」フィールドから探す。
なお、タグ領域2108内のタグは、文字フォントの大きさが異なるものが散在する。これはhtml文書内のCSS(Cascading Style Sheets:webページのレイアウトを定義する規格。)等にて、当該タグの利用頻度に応じて文字フォントの大きさを変える指示があることによる。
図22はタグ領域2104に列挙されているタグ2108にてタグの検索を実行した結果を示す。タグ検索結果画面2201は、検索画面2101とは別のウィンドウにて表示される。
図23は検索領域2103にて任意のキーワード検索を実行した結果を示す。通常検索結果画面2301は、検索画面2101とは別のウィンドウにて表示される。また、再検索を可能にするため、再検索欄2302が画面最上位に設けられている。
図23は検索領域2103にて任意のキーワード検索を実行した結果を示す。通常検索結果画面2301は、検索画面2101とは別のウィンドウにて表示される。また、再検索を可能にするため、再検索欄2302が画面最上位に設けられている。
以上に記した検索の実行に際しては、オブジェクトテーブル132及びコンテンツオブジェクトテーブル133を当該ユーザIDにて限定した上で検索を行うこととなる。
このような機能を提供することにより、ユーザは過去の事象を思い出したり、過去の情報を容易に利用可能になる。
このような機能を提供することにより、ユーザは過去の事象を思い出したり、過去の情報を容易に利用可能になる。
(2)カレンダを表示する技術は、Ajaxに限られない。コンテンツ提供者サーバがwebサーバと一体である場合は、Ajaxを用いずにhtmlの文法のみでカレンダを表示することもできる。
また、Ajax以外にもMacromedia社のShockwave(登録商標)やFlash(登録商標)、或はJavaアプレット等の技術が利用可能である。
また、Ajax以外にもMacromedia社のShockwave(登録商標)やFlash(登録商標)、或はJavaアプレット等の技術が利用可能である。
(3)コンテンツ表示は月別表示のカレンダ形式には囚われない。週別表示でもよいし、日めくり、三日めくり等の形式も可能である。
本実施形態においては、コンテンツ提供者から得られるコンテンツサービスをログ記録し、コンテンツを再利用することのできる、ユーザにとって利便性の高い情報提供装置を実現できる。
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことは言うまでもない。
102…webサーバ、103…クライアント、104…クライアントPC、105…webブラウザ、106…キーボード、107…マウス、108…インターネット、109…ディスプレイ、110、111、112…コンテンツ提供者サーバ、121…実行制御部、122…ログイン画面cgi、123…認証cgi、124…カレンダ画面cgi、125…Ajax用データ送信cgi、127…不揮発性ストレージ、128…JavaScriptプログラムソース、131…ユーザテーブル、132…オブジェクトテーブル、133…コンテンツオブジェクトテーブル、134…コンテンツテーブル、135…コンテンツ配信登録テーブル、136…コンテンツ蓄積テーブル、141…データ取得クライアントプログラム、142…定期巡回クライアントプログラム、202…ログイン画面、203…カレンダ表示画面、204、205…表示月変更ボタン、206…「ログアウト」ボタン、207…「コンテンツ登録」ボタン、208…コンテンツ登録画面、209…登録可能コンテンツ表示欄、210…登録済みコンテンツ表示欄、211…右矢印ボタン、212…左矢印ボタン、213…「OK」ボタン、214…「キャンセル」ボタン
Claims (4)
- 複数の登録ユーザに情報閲覧サービスの提供を行う情報提供装置であり、前記情報提供装置は、
前記登録ユーザを重複のないユーザIDにて管理するユーザテーブルと、
コンテンツ提供者によるコンテンツ提供サービスの一覧を保持するコンテンツテーブルと、
前記ユーザテーブルに記録されているユーザIDと、前記コンテンツテーブルに記録されているコンテンツ提供者を識別する情報とを関連付けるコンテンツ配信登録テーブルと、
前記登録ユーザに提供するコンテンツを前記コンテンツ提供サービスから取得するコンテンツ取得部と、
前記コンテンツ取得部から得られるコンテンツが前記コンテンツ取得部によって前記登録ユーザの前記ユーザIDと共に記録されるログ記録テーブルと、
前記登録ユーザが発するコンテンツ取得要求に応じて、前記コンテンツ提供サービスから得られるコンテンツが既に前記ログ記録テーブルに記録されていれば、前記ログ記録テーブルに記録済みのコンテンツを前記登録ユーザが用いるクライアント装置に送信し、前記コンテンツ提供サービスから得られるコンテンツが前記ログ記録テーブルに記録されていなければ、前記コンテンツ取得部を起動する、コンテンツ送信部と
を備えることを特徴とする情報提供装置。 - 前記登録ユーザが発するコンテンツ取得要求の発生時点とは関係なく、前記コンテンツ提供サービスからコンテンツを定期的に収集する定期巡回コンテンツ取得部と、
前記定期巡回コンテンツ取得部から得られるコンテンツを蓄積するコンテンツ蓄積テーブルと
を更に備え、
前記コンテンツ送信部は、前記コンテンツ提供サービスに応じて前記コンテンツ取得部を起動するか、もしくは前記コンテンツ蓄積テーブルから所定のコンテンツを取得することを特徴とする、請求項1記載の情報提供装置。 - 更に、前記ログ記録テーブルに記録されているコンテンツを、記録が行われた日時を用いて検索する機能を備えることを特徴とする、請求項1記載の情報提供装置。
- 登録ユーザを識別するステップと、
クライアントが所定のコンテンツを表示する文書を情報提供装置へ要求するステップと、
前記情報提供装置へ要求するステップに呼応して、前記所定のコンテンツの取得が済んでいない場合は前記コンテンツを取得するステップと、
前記コンテンツを取得するステップに呼応して、前記コンテンツを前記登録ユーザを識別する情報と共にログ記録テーブルに記録するステップと、
前記情報提供装置へ要求するステップに呼応して、前記ログ記録テーブルから前記所定のコンテンツの取得が済んでいる場合は前記クライアントに前記コンテンツを送信するステップと
よりなることを特徴とする情報提供方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006288927A JP2008107987A (ja) | 2006-10-24 | 2006-10-24 | 情報提供装置及び情報提供方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006288927A JP2008107987A (ja) | 2006-10-24 | 2006-10-24 | 情報提供装置及び情報提供方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008107987A true JP2008107987A (ja) | 2008-05-08 |
Family
ID=39441301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006288927A Withdrawn JP2008107987A (ja) | 2006-10-24 | 2006-10-24 | 情報提供装置及び情報提供方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008107987A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011197834A (ja) * | 2010-03-17 | 2011-10-06 | Ricoh Co Ltd | 画面制御システム、サーバ、及び画面制御方法 |
JP2012523047A (ja) * | 2009-04-02 | 2012-09-27 | アリババ グループ ホールディング リミテッド | Ajaxウェブページコンテンツを取得する方法およびシステム |
-
2006
- 2006-10-24 JP JP2006288927A patent/JP2008107987A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012523047A (ja) * | 2009-04-02 | 2012-09-27 | アリババ グループ ホールディング リミテッド | Ajaxウェブページコンテンツを取得する方法およびシステム |
JP2015135680A (ja) * | 2009-04-02 | 2015-07-27 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | Ajaxウェブページコンテンツを取得する方法およびシステム |
US9767082B2 (en) | 2009-04-02 | 2017-09-19 | Alibaba Group Holding Limited | Method and system of retrieving ajax web page content |
JP2011197834A (ja) * | 2010-03-17 | 2011-10-06 | Ricoh Co Ltd | 画面制御システム、サーバ、及び画面制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7890957B2 (en) | Remote management of an electronic presence | |
US7305616B1 (en) | Document builder for interactive dynamic documentation web site | |
US7680856B2 (en) | Storing searches in an e-mail folder | |
US8176120B2 (en) | Web-page authoring tool for automatic enrollment in advertising program | |
CN100458789C (zh) | 用于交换门户组件配置数据的方法和系统 | |
US20080065974A1 (en) | Template-based electronic presence management | |
US8732252B2 (en) | Cooperating system, chat server, program, and cooperating method | |
KR20090005097A (ko) | 웹 커뮤니티 및 웹 애플리케이션에 대해 데이터를 변환하는시스템 및 방법 | |
US20070239674A1 (en) | Method and System for Providing Weblog Author-Defined, Weblog-Specific Search Scopes in Weblogs | |
CN102349087A (zh) | 自动提供与捕获的信息例如实时捕获的信息关联的内容 | |
WO2008040016A1 (en) | Content feed user interface | |
US20030177202A1 (en) | Method and apparatus for executing an instruction in a web page | |
JP5309121B2 (ja) | 情報処理方法、プログラム、情報処理システム | |
JP2008083803A (ja) | 広告配信装置 | |
JP2006190008A (ja) | データ連携装置及びデータ連携方法 | |
CN101127068A (zh) | 信息处理系统、信息处理器、信息处理方法和记录介质 | |
US10262064B2 (en) | Information processing apparatus, information processing method, information processing program, recording medium having stored therein information processing program | |
JP2015219689A (ja) | マルチメディア向け情報発信システム及び方法 | |
JP2006139470A (ja) | 情報提供装置および情報提供方法ならびにそのプログラム | |
JP2002041737A (ja) | スケジュール情報システム | |
JP2008250889A (ja) | コミュニティ管理システム | |
JP2008107987A (ja) | 情報提供装置及び情報提供方法 | |
US8849692B1 (en) | Online advertising program enrollment program | |
WO2001098977A1 (fr) | Systeme de signets | |
JP2013125537A (ja) | 求人情報提供システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100105 |