(57)【要約】【課題】  情報が情報所有者（サーバ）から情報要求者（クライエント）に確実に配信され、正しくインストールされる情報配信システムを提供する。【解決手段】  少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、前記サーバが、各種情報を記憶するサーバデータベース、配信すべき情報を前もって準備するサーバ処理部、クライエントとサーバとが情報の送受信を行うサーバ通信部、クライエントから受け取ったデータを分析し処理するサーバセッション処理部、クライエントから受け取ったデータやクライエントに配信するデータを格納するサーバプール及び配信するデータの配信状態を一時的に記憶するサーバメモリーを備えた情報配信システムである。【選択図】  図２
2005038190.tif 000002
【特許請求の範囲】
【請求項１】
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記サーバが、各種情報を記憶するサーバデータベース、配信すべき情報を前もって準備するサーバ処理部、クライエントとサーバとが情報の送受信を行うサーバ通信部、クライエントから受け取ったデータを分析し処理するサーバセッション処理部、クライエントから受け取ったデータやクライエントに配信するデータを格納するサーバプール及び配信するデータの配信状態を一時的に記憶するサーバメモリーを備え、
サーバプールにはクライエントの要求データを格納するリクエストテーブルとクライエントに配信する配信情報を格納するサーバプッシュテーブルとが設けられ、
サーバセッション処理部が、
クライエントから受け取ったリクエストデータをそのステータスをRECEIVEDにしてサーバプールのリクエストテーブルに格納する手段、
前記クライエントから受け取ったリザルトデータのステータスをSENTをRECEIVEDにSENDAGAINをPROCEEDに変更してサーバプッシュテーブルに格納する手段、
クライエントから受け取ったリザルトデータのステータスをRECEIVEDにし、サーバのレスポンスとしてサーバメモリーに記憶する手段、
クライエントの要求に基づきクライエントに配信すべき情報をサーバプールのリクエストテーブルからそのステータスがRECEIVEDであるものを抽出する手段、上記抽出したデータをそのステータスをPREPAREDに変更しサーバプッシュテーブルに格納する手段、
上記データを抽出した後ステータスをPROCEEDにしてサーバのレスポンスとしてサーバメモリーに記憶する手段、
サーバプッシュテーブルの中から該当するクライエントＩＤ、シリアル番号をもちかつステータスがSENT又はPREPAREDであるデータを抽出しそのステータスをSENTの場合はSENDAGAINに、PREPAREDの場合はSENTに変更し、該変更したステータスをサーバプッシュテーブルに格納する手段、
上記抽出したデータにサーバメモリーに記憶したレスポンスを付加してクライエントに配信する情報を組み立てる手段、
サーバ通信部が上記組み立てた情報をクライエントに配信する手段、
を備えたことを特徴とする情報配信システム。
【請求項２】
サーバのサーバプッシュテーブル及びサーバのリクエストテーブルに少なくともクライエントＩＤ、シリアル番号、データ及びステータスのフィールドを設けたことを特徴とする請求項１に記載の情報配信システム。
【請求項３】
サーバプールにタスクテーブルを設け、
サーバ処理部が、タスクＩＤとクライエントに配信すべきデータを前記タスクテーブルに格納する手段とサーバプッシュテーブルのデータのフィールドに前記タスクＩＤを書き込む手段とを備え、
サーバセッション処理部が、前記タスクＩＤとクライエントＩＤをサーバプッシュテーブルから抽出し、該タスクＩＤが一致するデータをタスクテーブルから抽出し、サーバメモリーに記憶したRECEIVED及びPROCEEDのステータスをレスポンスとして加えクライエントに配信する情報を組み立てる手段及び前記組み立てた配信用情報をクライエントに配信する手段を備えたことを特徴とする請求項１又は請求項２に記載の情報配信システム。
【請求項４】
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記サーバが、各種情報を記憶するサーバデータベース、配信すべき情報を前もって準備するサーバ処理部、クライエントとサーバとが情報の送受信を行うサーバ通信部、クライエントから受け取ったデータを分析し処理するサーバセッション処理部、クライエントから受け取ったデータやクライエントに配信するデータを格納するサーバプール及び配信するデータの配信状態を一時的に記憶するサーバメモリーを備え、
サーバプールにはクライエントの要求データを格納するリクエストテーブルとクライエントに配信する配信情報を格納するサーバプッシュテーブルとが設けられ、
サーバセッション処理部が、
クライエントから受け取ったリクエストデータをそのステータスをRECEIVEDにしてサーバプールのリクエストテーブルに格納する手段、
前記クライエントから受け取ったリザルトデータのステータスをSENTをRECEIVEDにSENDAGAINをPROCEEDに変更してサーバプッシュテーブルに格納する手段、
クライエントから受け取ったリザルトデータのステータスをRECEIVEDにし、サーバのレスポンスとしてサーバメモリーに記憶する手段、
クライエントの要求に基づきクライエントに配信すべき情報をサーバプールのリクエストテーブルからそのステータスがRECEIVEDであるものを抽出する手段、上記抽出したデータをそのステータスをPREPAREDに変更しサーバプッシュテーブルに格納する手段、
上記データを抽出した後ステータスをPROCEEDにしてサーバのレスポンスとしてサーバメモリーに記憶する手段、
サーバプッシュテーブルの中から該当するクライエントＩＤ、シリアル番号をもちかつステータスがSENT又はPREPAREDであるデータを抽出しそのステータスをSENTの場合はSENDAGAINに、PREPAREDの場合はSENTに変更し、該変更したステータスをサーバプッシュテーブルに格納する手段、
上記抽出したデータにサーバメモリーに記憶したレスポンスを付加してクライエントに配信する情報を組み立てる手段、
サーバ通信部が上記組み立てた情報をクライエントに配信する手段、
として機能させるためのプログラム。
【請求項５】
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記サーバが、各種情報を記憶するサーバデータベース、配信すべき情報を前もって準備するサーバ処理部、クライエントとサーバとが情報の送受信を行うサーバ通信部、クライエントから受け取ったデータを分析し処理するサーバセッション処理部、クライエントから受け取ったデータやクライエントに配信するデータを格納するサーバプール及び配信するデータの配信状態を一時的に記憶するサーバメモリーを備え、
サーバプールにはクライエントの要求データを格納するリクエストテーブルとクライエントに配信する配信情報を格納するサーバプッシュテーブルとが設けられ、
サーバセッション処理部が、
クライエントから受け取ったリクエストデータをそのステータスをRECEIVEDにしてサーバプールのリクエストテーブルに格納する手段、
前記クライエントから受け取ったリザルトデータのステータスをSENTをRECEIVEDにSENDAGAINをPROCEEDに変更してサーバプッシュテーブルに格納する手段、
クライエントから受け取ったリザルトデータのステータスをRECEIVEDにし、サーバのレスポンスとしてサーバメモリーに記憶する手段、
クライエントの要求に基づきクライエントに配信すべき情報をサーバプールのリクエストテーブルからそのステータスがRECEIVEDであるものを抽出する手段、上記抽出したデータをそのステータスをPREPAREDに変更しサーバプッシュテーブルに格納する手段、
上記データを抽出した後ステータスをPROCEEDにしてサーバのレスポンスとしてサーバメモリーに記憶する手段、
サーバプッシュテーブルの中から該当するクライエントＩＤ、シリアル番号をもちかつステータスがSENT又はPREPAREDであるデータを抽出しそのステータスをSENTの場合はSENDAGAINに、PREPAREDの場合はSENTに変更し、該変更したステータスをサーバプッシュテーブルに格納する手段、
上記抽出したデータにサーバメモリーに記憶したレスポンスを付加してクライエントに配信する情報を組み立てる手段、
サーバ通信部が上記組み立てた情報をクライエントに配信する手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記クライエントが、データを記憶するクライエントデータベース、サーバに送出すべき情報を前もって準備するクライエント処理部、クライエントとサーバとが情報の送受信を行うクライエント通信部、サーバから受け取ったデータを分析し処理するクライエントセッション処理部、サーバから受け取ったデータやサーバに送出するデータを格納するクライエントプール及び送出するデータの送出状態を一時的に記憶するクライエントメモリーを備え、
クライエントプールにはクライエントの要求データを格納するリクエストテーブルとサーバの配信情報を格納したサーバプッシュテーブルとが設けられ、
クライエント処理部が、サーバに送出するデータをリクエストテーブルに格納する手段、
クライエントセッション処理部が、
サーバから受け取った情報をそのステータスをRECEIVEDにしてサーバプッシュテーブルに格納する手段、
サーバから受け取ったレスポンスデータをリクエストテーブルに格納する手段、
サーバから受け取ったレスポンスデータのステータスをRECEIVEDにしてリザルトとしてクライエントメモリーに記憶する手段、
サーバプッシュテーブルからステータスがRECEIVEDのデータを抽出する手段、
上記抽出したデータをそのステータスをPREPAREDにしてリクエストテーブルに格納する手段、
上記データを抽出した後そのステータスをPROCEEDに変更しクライエントメモリーに記憶する手段、
サーバに送信すべきデータの有無を調べる手段、
リクエストテーブルからサーバＩＤをもちかつステータスがPREPAREDであるデータをリクエストテーブルから抽出する手段、
上記抽出したデータにクライエントメモリーに記憶したデータを付加して、サーバに送信するデータを組み立てる手段、
クライエント通信部が上記組み立てた情報をサーバに送信する手段、
として機能させるためのプログラム。
【請求項７】
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記クライエントが、データを記憶するクライエントデータベース、サーバに送出すべき情報を前もって準備するクライエント処理部、クライエントとサーバとが情報の送受信を行うクライエント通信部、サーバから受け取ったデータを分析し処理するクライエントセッション処理部、サーバから受け取ったデータやサーバに送出するデータを格納するクライエントプール及び送出するデータの送出状態を一時的に記憶するクライエントメモリーを備え、
クライエントプールにはクライエントの要求データを格納するリクエストテーブルとサーバの配信情報を格納したサーバプッシュテーブルとが設けられ、
クライエント処理部が、サーバに送出するデータをリクエストテーブルに格納する手段、
クライエントセッション処理部が、
サーバから受け取った情報をそのステータスをRECEIVEDにしてサーバプッシュテーブルに格納する手段、
サーバから受け取ったレスポンスデータをリクエストテーブルに格納する手段、
サーバから受け取ったレスポンスデータのステータスをRECEIVEDにしてリザルトとしてクライエントメモリーに記憶する手段、
サーバプッシュテーブルからステータスがRECEIVEDのデータを抽出する手段、
上記抽出したデータをそのステータスをPREPAREDにしてリクエストテーブルに格納する手段、
上記データを抽出した後そのステータスをPROCEEDに変更しクライエントメモリーに記憶する手段、
サーバに送信すべきデータの有無を調べる手段、
リクエストテーブルからサーバＩＤをもちかつステータスがPREPAREDであるデータをリクエストテーブルから抽出する手段、
上記抽出したデータにクライエントメモリーに記憶したデータを付加して、サーバに送信するデータを組み立てる手段、
クライエント通信部が上記組み立てた情報をサーバに送信する手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種データ、コンテンツ等の情報を情報所有者（サーバ）から情報要求者（クライエント）に安全、確実に配信するシステムに関する。なかでも、著作権管理技術（ＤＲＭ）に係わる情報を配信する際に、安全、確実に情報所有者から情報要求者に配信するシステムに関する。
【背景技術】
【０００２】
ネットワークにおいて、例えば、インターネットにおいて、情報所有者（サーバ）から情報要求者（クライエント）に多くの情報が配信されている。なかには無料の情報もあれば、有料の情報もあり、著作権に係わる情報もある。著作権に係わる情報の提供に関しては、近時、著作権管理技術（ＤＲＭ）が注目を集めている。特に有料の情報、著作権に係わる情報の配信に当たっては、安全、確実に情報要求者（クライエント）に配信されることが求められる。
【０００３】
インターネットにおける現状の通信システムにおいて、その情報配信の安全性、確実性に問題が指摘されている。安全性に関しては、暗号化技術や透かし技術が実用化されつつある。確実性の問題に関しては、情報配信の途中で、ネットワークやクライエント側の障害により、接続状態が維持されなくなって、要求する情報がクライエントに届かなかったり、正しくインストールされなかったりする。このような状態、即ち、情報が配信されない、配信した情報が正しくインストールされていないという状態は、従来の技術ではサーバからは検知できず、従って、サーバが積極的に対応策を取っていないのが実情である。クライエントに要求する情報が配信されない又は情報がクライエントに正しくインストールされていない状態は、情報要求者にとっては許し難いものである。
【０００４】
このようなネットワークの情報配信状況に鑑みて、情報を情報所有者（サーバ）から情報要求者（クライエント）に確実に配信し、正しくインストールされる情報配信システムが求められている。確実に配信する手段としては、再配信する方法が有力なものである。
【０００５】
再配信する情報配信システムとして、特開２００２−２１６０４０、特開２００２−３３４１７３、特開２００２−３００５０４、特開平１１−１８７０１７等のように、クライエントからの要求に応じて再配信するものが多く知られている。また、特開２００２−８４３０８では、情報があて先に送信できず不達になった場合、その不達になった情報をあて先毎に蓄積管理し、あて先の要求に応じて再配信するシステムが開示されているが、積極的にサーバから情報を再配信するものではない。特開平１１−２７５２５２には、情報の配信をその情報の本来のサイズと送信済み情報のサイズとを比較し、配信が完了したか否かを判定し、その判定に基づいて課金処理をするシステムが記載されているが、積極的にサーバから情報を再配信するものではない。更に、特開２００２−３３０１７０には、検索部で検索した電子メールを複数の電子メールを格納した格納部から抽出し再送信する電子メール配信システムが記載されているが、電子メールを再送する条件として、電子メールの開封状態を主体にするものであり、電子メールに特化された情報の再送方式であって、情報一般を再送するには適していないものである。
【特許文献１】特開２００２−２１６０４０号公報
【特許文献２】特開２００２−３３４１７３号公報
【特許文献３】特開２００２−３００５０４号公報
【特許文献４】特開平１１−１８７０１７号公報
【特許文献５】特開２００２−８４３０８号公報
【特許文献６】特開平１１−２７５２５２号公報
【特許文献７】特開２００２−３３０１７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明者は、このようなネットワークの情報配信状況に鑑みて、情報を情報所有者（サーバ）から情報要求者（クライエント）に確実に配信し、正しくインストールされる情報配信システムを提供しようとするものである。情報が正しくクライエントに配信されなくても、クライエントがサーバにアクセスするだけで、その配信されなかった情報をクライエントに再配信できるシステムを提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明は、情報を情報所有者（サーバ）から情報要求者（クライエント）に確実に配信される情報配信システムを提供するものである。その基本は、配信する情報（データ）に配信状態を表すステータスを付与し、このステータスに基づいて、クライエントが再接続した際に、配信されなかった情報（データ）を判定し、クライエントに情報（データ）を再配信するものである。
【０００８】
本発明の要旨は、少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記サーバが、各種情報を記憶するサーバデータベース、配信すべき情報を前もって準備するサーバ処理部、クライエントとサーバとが情報の送受信を行うサーバ通信部、クライエントから受け取ったデータを分析し処理するサーバセッション処理部、クライエントから受け取ったデータやクライエントに配信するデータを格納するサーバプール及び配信するデータの配信状態を一時的に記憶するサーバメモリーを備え、
サーバプールにはクライエントの要求データを格納するリクエストテーブルとクライエントに配信する配信情報を格納するサーバプッシュテーブルとが設けられ、
サーバセッション処理部が、
クライエントから受け取ったリクエストデータをそのステータスをRECEIVEDにしてサーバプールのリクエストテーブルに格納する手段、
前記クライエントから受け取ったリザルトデータのステータスをSENTをRECEIVEDにSENDAGAINをPROCEEDに変更してサーバプッシュテーブルに格納する手段、
クライエントから受け取ったリザルトデータのステータスをRECEIVEDにし、サーバのレスポンスとしてサーバメモリーに記憶する手段、
クライエントの要求に基づきクライエントに配信すべき情報をサーバプールのリクエストテーブルからそのステータスがRECEIVEDであるものを抽出する手段、上記抽出したデータをそのステータスをPREPAREDに変更しサーバプッシュテーブルに格納する手段、
上記データを抽出した後ステータスをPROCEEDにしてサーバのレスポンスとしてサーバメモリーに記憶する手段、
サーバプッシュテーブルの中から該当するクライエントＩＤ、シリアル番号をもちかつステータスがSENT又はPREPAREDであるデータを抽出しそのステータスをSENTの場合はSENDAGAINに、PREPAREDの場合はSENTに変更し、該変更したステータスをサーバプッシュテーブルに格納する手段、
上記抽出したデータにサーバメモリーに記憶したレスポンスを付加してクライエントに配信する情報を組み立てる手段、
サーバ通信部が上記組み立てた情報をクライエントに配信する手段、
を備えたことを特徴とする情報配信システムである。
【０００９】
サーバのサーバプッシュテーブル及びサーバのリクエストテーブルに少なくともクライエントＩＤ、シリアル番号、データ及びステータスのフィールドを設けることができる。
【００１０】
また、本情報配信システムは、サーバプールにタスクテーブルを設け、
サーバ処理部が、タスクＩＤとクライエントに配信すべきデータを前記タスクテーブルに格納する手段とサーバプッシュテーブルのデータのフィールドに前記タスクＩＤを書き込む手段とを備え、
サーバセッション処理部が、前記タスクＩＤとクライエントＩＤをサーバプッシュテーブルから抽出し、該タスクＩＤが一致するデータをタスクテーブルから抽出し、サーバメモリーに記憶したRECEIVED及びPROCEEDのステータスをレスポンスとして加えクライエントに配信する情報を組み立てる手段及び前記組み立てた配信用情報をクライエントに配信する手段を備えることができる。
【００１１】
本発明のシステムは、コンピュータにおいて、手段として機能させるためのプログラムで提供することができる。即ち、
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記サーバが、各種情報を記憶するサーバデータベース、配信すべき情報を前もって準備するサーバ処理部、クライエントとサーバとが情報の送受信を行うサーバ通信部、クライエントから受け取ったデータを分析し処理するサーバセッション処理部、クライエントから受け取ったデータやクライエントに配信するデータを格納するサーバプール及び配信するデータの配信状態を一時的に記憶するサーバメモリーを備え、
サーバプールにはクライエントの要求データを格納するリクエストテーブルとクライエントに配信する配信情報を格納するサーバプッシュテーブルとが設けられ、
サーバセッション処理部が、
クライエントから受け取ったリクエストデータをそのステータスをRECEIVEDにしてサーバプールのリクエストテーブルに格納する手段、
前記クライエントから受け取ったリザルトデータのステータスをSENTをRECEIVEDにSENDAGAINをPROCEEDに変更してサーバプッシュテーブルに格納する手段、
クライエントから受け取ったリザルトデータのステータスをRECEIVEDにし、サーバのレスポンスとしてサーバメモリーに記憶する手段、
クライエントの要求に基づきクライエントに配信すべき情報をサーバプールのリクエストテーブルからそのステータスがRECEIVEDであるものを抽出する手段、上記抽出したデータをそのステータスをPREPAREDに変更しサーバプッシュテーブルに格納する手段、
上記データを抽出した後ステータスをPROCEEDにしてサーバのレスポンスとしてサーバメモリーに記憶する手段、
サーバプッシュテーブルの中から該当するクライエントＩＤ、シリアル番号をもちかつステータスがSENT又はPREPAREDであるデータを抽出しそのステータスをSENTの場合はSENDAGAINに、PREPAREDの場合はSENTに変更し、該変更したステータスをサーバプッシュテーブルに格納する手段、
上記抽出したデータにサーバメモリーに記憶したレスポンスを付加してクライエントに配信する情報を組み立てる手段、
サーバ通信部が上記組み立てた情報をクライエントに配信する手段、
として機能させるためのプログラムである。
【００１２】
本発明のシステムは、コンピュータにおいて、手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体として提供することができる。即ち、
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記サーバが、各種情報を記憶するサーバデータベース、配信すべき情報を前もって準備するサーバ処理部、クライエントとサーバとが情報の送受信を行うサーバ通信部、クライエントから受け取ったデータを分析し処理するサーバセッション処理部、クライエントから受け取ったデータやクライエントに配信するデータを格納するサーバプール及び配信するデータの配信状態を一時的に記憶するサーバメモリーを備え、
サーバプールにはクライエントの要求データを格納するリクエストテーブルとクライエントに配信する配信情報を格納するサーバプッシュテーブルとが設けられ、
サーバセッション処理部が、
クライエントから受け取ったリクエストデータをそのステータスをRECEIVEDにしてサーバプールのリクエストテーブルに格納する手段、
前記クライエントから受け取ったリザルトデータのステータスをSENTをRECEIVEDにSENDAGAINをPROCEEDに変更してサーバプッシュテーブルに格納する手段、
クライエントから受け取ったリザルトデータのステータスをRECEIVEDにし、サーバのレスポンスとしてサーバメモリーに記憶する手段、
クライエントの要求に基づきクライエントに配信すべき情報をサーバプールのリクエストテーブルからそのステータスがRECEIVEDであるものを抽出する手段、上記抽出したデータをそのステータスをPREPAREDに変更しサーバプッシュテーブルに格納する手段、
上記データを抽出した後ステータスをPROCEEDにしてサーバのレスポンスとしてサーバメモリーに記憶する手段、
サーバプッシュテーブルの中から該当するクライエントＩＤ、シリアル番号をもちかつステータスがSENT又はPREPAREDであるデータを抽出しそのステータスをSENTの場合はSENDAGAINに、PREPAREDの場合はSENTに変更し、該変更したステータスをサーバプッシュテーブルに格納する手段、
上記抽出したデータにサーバメモリーに記憶したレスポンスを付加してクライエントに配信する情報を組み立てる手段、
サーバ通信部が上記組み立てた情報をクライエントに配信する手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００１３】
また、クライエント側の情報配信システムをプログラムとして、更には、プログラムを記録したコンピュータ読み取り可能な記録媒体として提供することができる。即ち、プログラムは、
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記クライエントが、データを記憶するクライエントデータベース、サーバに送出すべき情報を前もって準備するクライエント処理部、クライエントとサーバとが情報の送受信を行うクライエント通信部、サーバから受け取ったデータを分析し処理するクライエントセッション処理部、サーバから受け取ったデータやサーバに送出するデータを格納するクライエントプール及び送出するデータの送出状態を一時的に記憶するクライエントメモリーを備え、
クライエントプールにはクライエントの要求データを格納するリクエストテーブルとサーバの配信情報を格納したサーバプッシュテーブルとが設けられ、
クライエント処理部が、サーバに送出するデータをリクエストテーブルに格納する手段、
クライエントセッション処理部が、
サーバから受け取った情報をそのステータスをRECEIVEDにしてサーバプッシュテーブルに格納する手段、
サーバから受け取ったレスポンスデータをリクエストテーブルに格納する手段、
サーバから受け取ったレスポンスデータのステータスをRECEIVEDにしてリザルトとしてクライエントメモリーに記憶する手段、
サーバプッシュテーブルからステータスがRECEIVEDのデータを抽出する手段、
上記抽出したデータをそのステータスをPREPAREDにしてリクエストテーブルに格納する手段、
上記データを抽出した後そのステータスをPROCEEDに変更しクライエントメモリーに記憶する手段、
サーバに送信すべきデータの有無を調べる手段、
リクエストテーブルからサーバＩＤをもちかつステータスがPREPAREDであるデータをリクエストテーブルから抽出する手段、
上記抽出したデータにクライエントメモリーに記憶したデータを付加して、サーバに送信するデータを組み立てる手段、
クライエント通信部が上記組み立てた情報をサーバに送信する手段、
として機能させるためのプログラムである。
【００１４】
プログラムを記録したコンピュータ読み取り可能な記録媒体は、
少なくともネットワークで結ばれたサーバとクライエントとからなり、クライエントの要求に対して前記サーバから情報をクライエントに配信する情報配信システムにおいて、
前記クライエントが、データを記憶するクライエントデータベース、サーバに送出すべき情報を前もって準備するクライエント処理部、クライエントとサーバとが情報の送受信を行うクライエント通信部、サーバから受け取ったデータを分析し処理するクライエントセッション処理部、サーバから受け取ったデータやサーバに送出するデータを格納するクライエントプール及び送出するデータの送出状態を一時的に記憶するクライエントメモリーを備え、
クライエントプールにはクライエントの要求データを格納するリクエストテーブルとサーバの配信情報を格納したサーバプッシュテーブルとが設けられ、
クライエント処理部が、サーバに送出するデータをリクエストテーブルに格納する手段、
クライエントセッション処理部が、
サーバから受け取った情報をそのステータスをRECEIVEDにしてサーバプッシュテーブルに格納する手段、
サーバから受け取ったレスポンスデータをリクエストテーブルに格納する手段、
サーバから受け取ったレスポンスデータのステータスをRECEIVEDにしてリザルトとしてクライエントメモリーに記憶する手段、
サーバプッシュテーブルからステータスがRECEIVEDのデータを抽出する手段、
上記抽出したデータをそのステータスをPREPAREDにしてリクエストテーブルに格納する手段、
上記データを抽出した後そのステータスをPROCEEDに変更しクライエントメモリーに記憶する手段、
サーバに送信すべきデータの有無を調べる手段、
リクエストテーブルからサーバＩＤをもちかつステータスがPREPAREDであるデータをリクエストテーブルから抽出する手段、
上記抽出したデータにクライエントメモリーに記憶したデータを付加して、サーバに送信するデータを組み立てる手段、
クライエント通信部が上記組み立てた情報をサーバに送信する手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１５】
本発明は、サーバにサーバプールを備え、そのサーバプールにはサーバプッシュテーブルとリクエストテーブルを設け、同様に、クライエントにクライエントプールを備え、そのクライエントプールにサーバプッシュテーブルとリクエストテーブルを設ける。サーバプッシュテーブルにはサーバからのセッションが格納され、リクエストテーブルにはクライエントからのセッションが格納される。そして、それぞれのテーブルにはステータスが付与される。更に、クライエントからの送信があると、サーバはクライエントから要求のあった情報にresponseを付加してクライエントに情報を配信する。自らが要求した情報とともにresponseを受け取ったクライエントは、サーバからのresponseをresultとしてサーバに送り返す。各テーブルのステータス及びクライエントからのresultに基づき、情報の配信が間違いなく行うことができ、二重配信が防止でき、更には、アクセスの途中で通信が途切れても、再アクセスしたときに、所望の情報が正しく配信されるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
本発明を、以下実施形態に基づいて説明する。通常のネットワーク通信において、クライエントがサーバからクライエントが要求する情報の提供を受ける場合、データの授受は典型的には図１のように行われる。即ち、クライエント処理部で、サーバに提供を要求する情報を特定する等のデータを準備する（Ｃ１）。クライエントはサーバにネットワークを介して接続する（Ｃ２）。接続状態で、クライエントが準備したデータをサーバに送信する（Ｃ３）。サーバ側では、クライエントの送信したデータを受信する（Ｃ４）。サーバ処理部では、受信したデータを処理して（Ｃ５）、クライエントが要求する情報を配信すべく準備する（Ｃ６）。配信準備をしたクライエント要求の情報をサーバからクライエントに配信する（Ｃ７）。クライエントはサーバが配信した情報を受け取る（Ｃ８）。クライエントが要求の情報を受け取ると、サーバへの接続を切断する（Ｃ９）。その後、クライエントは受信した情報を処理し、利用可能にする（Ｃ１０）。尚、図１において、クライエントは、ユーザーが使用している例えばパソコンなどのコンピュータで構成され、表示手段、マウス、キーボードなどの入力手段、記憶手段を有し、記憶手段にはＷＥＢブラウザと予め作成された情報提供プログラムがインストールされている。サーバも同様に、コンピュータで構成され、表示手段、マウス、キーボードなどの入力手段、記憶手段を有し、記憶手段にはＷＥＢブラウザと情報提供プログラムがインストールされている。
【００１７】
情報の授受の過程において、接続が切断するなどの理由で、クライエントが要求する情報を完全な形で受け取れない事態が発生することがある。即ち、Ｃ２のサーバへの接続ができない、Ｃ３〜Ｃ４の通信が失敗する、Ｃ３〜Ｃ８間の待ち時間で接続が切断される、Ｃ７〜Ｃ８の通信が切断される等の理由で、クライエントが要求する情報を正しく受け取れないという結果になる。このような場合は、準備された配信データが失われてしまう。そうなると、クライエントは再度サーバに情報の提供を求めることになるが、この情報が著作権に係わるものである場合には、当然情報入手のために所定の費用を支払わなければならないので、二重、三重に課金の請求を受けることになり、情報を正しく受け取っていないにもかかわらず、クライエントは多額の費用を負担することになり、不都合が生じる。
【００１８】
この種の問題に対して、先に述べたように、課金処理を工夫することにより対処する方法もあるが、本発明は、通信の途中で何らかのトラブルでクライエントが情報を入手できなかった場合にも、課金処理に頼ることなく、該情報を確実に入手できる情報配信システムを提供する。
【００１９】
本発明における情報配信システムの概略を図３に示した。情報を配信する情報配信サーバ１と複数のユーザーの端末であるクライエント２、３、４等がネットワーク５で結ばれている。クライエント２〜４は、サーバ１に接続し要求の情報をサーバ１から取得する。ネットワーク５は、公衆電話網、インターネット、ＬＡＮやＷＡＮ等を含む。クライエントの構成は、図２５に示すように、クライエントデータベース、クライエント処理部、クライエントメモリー、クライエントプール、クライエントセッション処理部及びクライエント通信部が設けられ、サーバには、同様に図２６に示すように、サーバデータベース、サーバ処理部、サーバメモリー、サーバプール、サーバセッション処理部及びサーバ通信部が設けられる。クライエントプールにはリクエストテーブル、サーバプッシュテーブルが設けられ、サーバプールにはサーバプッシュテーブル、リクエストテーブルが設けられる。
【００２０】
プールはデータベースの一種であり、クライエント側とサーバ側の両者に設けている。当然使用するエンジンは、クライエント側とサーバ側では多少異なるが、実現された効果としてはほぼ同じものになる。データ構造は、serverpushid（ユーザーへのserverpush ID）、serialno（シリアルナンバー）、machineuid（コンピュータUniqueID）、applicationuid（アプリケーションUniqueID）、useruid（ユーザーUniqueID）、centeruid（どこから）、Taskdataid（タスクデータID）、type（操作の種類）、work（データに対しての操作）、datatype（データのタイプ）、datasize（データのサイズ）、data（データの中味）、errorcode（エラーコード）、taskdatetime（serverpushに追加される日付時間）、expiredatetime（配信の有効期限）、senddatetime（送信日付時間）、resultdatetime（結果出す日付時間）、status（状態）等のフィールドを含むが、クライエント側には、useruid、machineuid、applicationuid等のフィールドをプールに保持する必要はない。リクエストプールは、クライエントから発したセッションに関するものであり、所謂クライエントセッションの格納場所である。サーバプールは、サーバから発したセッションに関するものであり、所謂サーバセッションの格納場所である。テーブルの構造は、リクエストプールのテーブルとサーバプールのテーブルは類似しているが、サーバ側の拡張性を持たせるめに、サーバプールのテーブルは、リクエストプールのテーブルより多くのフィールドを持っている。
【００２１】
図２に、本発明の情報配信システムの構成を示すブロック図を示した。クライエント処理部は、クライエントがサーバに対して要求する情報を取得するための処理、特に、データの準備を受け持つ。クライエントメモリーは、必要に応じてデータを一時的に格納する記憶装置である。クライエントプールは、クライエントがサーバに対して送信すべきデータ、サーバから受け取ったデータ等を格納した記憶装置である。クライエントセッション処理部は、クライエントプールのデータの処理を行うものである。クライエント通信部は、クライエントとサーバとの情報の送受信を行うものである。サーバ処理部は、サーバがクライエントに対して情報を配信するための処理、特に、クライエントに配信する一般的な情報（データ）の準備を受け持つ。サーバメモリーは、必要に応じてデータを一時的に格納する記憶装置である。サーバプールは、サーバがクライエントに対して配信すべきデータ、クライエントから受け取ったデータ等を格納した記憶装置である。サーバのセッション処理部は、サーバが配信すべきデータの処理を行うものである。サーバ通信部は、サーバとクライエントとの情報の送受信を行うものである。また、本システムの流れ図を図２７に示した。
【００２２】
クライエント処理部では、まず要求する情報の入手に先立ち、情報入手のための準備を行う。この準備は、ネットワーク環境が無くても可能である。該準備は、クライエントプールのリクエストテーブルに、サーバに送信する必要があるデータとして格納されることで行われる（Ｓ１２）。クライエントプールは、クライエントがもつデータベースの一種である。クライエントのリクエストテーブルには、図４に示すように、serialno（シリアルナンバー）、centeruid（送信先）、type（操作の種類）、work（データに対しての操作）、datatype（データのタイプ）、datasize（データのサイズ）、data（データの中味）、errorcode（エラーコード）、senddatetime（送信日付時間）、responsedatetime（受信日付時間）、status（状態）等のフィールドから構成され、データ毎にテーブルが作成される。新たに作成されたデータのステータスはPREPAREDである。
【００２３】
クライエントプールには、クライエントテーブルの他にサーバプッシュテーブルを設ける。サーバプッシュテーブルは、データ構造的には、リクエストテーブルのそれと類似している。サーバプッシュテーブルは、サーバから配信されてくるデータを格納するデータベースの一種である。サーバプッシュテーブルには、図９に示すように、serialno（シリアルナンバー）、centeruid（送信先）、type（操作の種類）、work（データに対しての操作）、datatype（データのタイプ）、datasize（データのサイズ）、data（データの中味）、errorcode（エラーコード）、senddatetime（送信日付時間）、responsedatetime（受信日付時間）、status（状態）等のフィールドから構成され、データ毎にテーブルが作成される。
【００２４】
送信の準備ができると、クライエントセッション処理部はサーバへ接続指令を出す。実際には、例えば、接続のボタンがクッリクされる（Ｓ１３）。サーバへの接続ができたか否かを確認する（Ｓ１４）。サーバへの接続が確認できないときには、以降のステップには進まない。サーバへの接続が確認されると、クライエントプールのセッション取出Ｓ１５で、リクエストテーブルのなかからステータスがSENT でかつ該当する centeruid のデータを取り出し、そのステータスを SENDAGAIN に変更する。同様に、クライエントのリクエストテーブルのなかからステータスが PREPARED でかつ該当する centeruid のデータを取り出し、そのステータスを SENT に変更する。
【００２５】
Ｓ１６の送信データの組み立てにおいて、クライエントの識別ＩＤ等からなるヘッダー部分及び送信が必要なデータからなるボディ部分を作成する。このようにして組み立てた送信すべき送信内容をサーバへの接続（Ｓ１７）の下にサーバに送信する（Ｓ１８）。クライエントからサーバに送信されるデータは、クライエントプールに格納されているデータのうち、リクエストデータのステータスが PREPARED又はSENTの状態にあるものである。クライエントからサーバに送信する送信内容は、例えば、図５に示したように、ヘッダー部分は、クライエントの情報として、 useruid、machineuid、applicationuid、language、codepage、os等のデータ、サーバの情報として、centeruid、protocol、idspace、idspacemask、serverurl等のデータから組み立てられ、ボディ部分は、requestとしてserialno、type、work、datatype、datasize、data等のデータとresultとしてserialno、type、work、status等のデータから組み立てられている。ボディ部分のリザルトデータは、サーバから配信されたresponseデータが記述されている。クライエントがサーバに送信するデータは、リクエストテーブルからそのステータスがSENT又はPREPAREDのものを抽出し、これに更に、クライエントメモリーに記憶されているデータを付加したものとして組み立てられる。クライエントからサーバに送信する送信内容は、暗号化したものないしは透かしをいれたものにすることができる。暗号化、透かしは既知の手法を適用することができる。
【００２６】
例えば、クライエントが図１１に示すリクエストデータをサーバに送信する際、該データはクライエントプールのリクエストテーブルに図１２のように格納されている。このリクエストデータは、サーバへアクセスする前に前もって準備しておくことができる。このデータをクライエントテーブルから取り出しrequestとし、これにサーバに送信するリクエストデータのステータスを記録したresultを付加してボディ部分を構成する。resultのデータは、サーバから配信されたresponseに記述されたデータである。更に、サーバのＩＤ、クライエントのＩＤ等で構成するヘッダー部分を作成し、ボディ部分と合わせてサーバへの送信データを作成する。そのデータは、ＸＭＬ文で記述され、例えば、図５に示したものとなる。このリクエストデータがサーバに送信される際に、クライエントプールのリクエストテーブルのデータのステータスはPREPAREDからSENTに変更される。リクエストテーブルのステータスがSENTの場合は、SENDAGAINに変更される。
【００２７】
クライエントを識別するＩＤは、useruidとmachineuidである。また、通信するapplicationuidをとるため、同じマシンで複数のApplicationから同時に通信しても、混乱が起こることはない。通信先であるそれぞれのサーバにはcenteruidという識別ＩＤが振られ、そしてクライエント側でＵＲＬとＩＤの両方が保存される。requestとresultの両者にシリアル番号がつけられる。Typeとworkでサーバに送信するデータ中味に対する望んだ操作が定義される。クライエントがサーバに送信する送信内容は、ＸＭＬで記述され、ＺＩＰで圧縮してから、ＨＥＸ（１バイトを２バイトに変換する）化される形式となっている。しかし、これに限られるものではない。
【００２８】
サーバ処理部は、クライエントに対してクライエントが要求する情報を配信するための処理を受け持つ。サーバ側では、クライエントに提供すべき情報を前もって準備をしておく（Ｓ４２）。この準備はクライエントからの接続が無い状態で行うことができる。準備は、サーバプールにおけるサーバプッシュテーブルにクライエントに配信すべき情報を格納することで行われる（Ｓ４１）。テーブルに情報が格納されたときには、そのステータスは PREPARED となる。サーバ処理部では、特に、クライエントに一般的に提供する情報の準備がなされる。
【００２９】
サーバプッシュテーブルの構成例を、図６に示した。サーバプッシュテーブルには、serverpushid、serialno、machineuid、applicationuid、useruid、centeruid、Taskdataid、type、work、datatype、datasize、data、errorcode、taskdatetime、expiredatetime、senddatetime、resultdatetime、status等のフィールドから構成され、データ毎にテーブルが作成される。
【００３０】
サーバは、クライエントから送信されてきた送信内容を受け取る（Ｓ４３）。クライエントから送信された内容が暗号化等されている場合には、複合化して受け取る。サーバが受け取ったデータは、データ分析Ｓ４４で分析される。即ち、クライエントから送信されたデータのうちヘッダー部分からクライエントの識別ＩＤ等の情報を取得し、ボディ部分から、requestとresultのデータを取得する。Ｓ４５のセッション変更において、resultデータのステータスをSENTがRECEIVEDに変更され、SENDAGAINがPROCEEDに変更される。そして、クライエントから受け取ったデータは、サーバプールのサーバプッシュテーブルに格納される。また、セッション蓄積Ｓ４６において、クライエントから受け取ったrequestデータをそのステータスをRECEIVEDにしてサーバプールのリクエストテーブルに格納される。クライエントから受け取ったresultデータは、そのステータスをRECEIVEDにしてサーバメモリーに記憶する（Ｓ４７）。
【００３１】
例えば、クライエントから送信された図５のデータから、サーバプールのリクエストテーブルに図１３のようなデータが書き込まれる。そして、Ｓ４７のステータス一時追加で、resultデータのステータスがresponseとして図１４のようにサーバメモリーに記憶される。
【００３２】
サーバプールのリクエストテーブルの構成例を図７に示した。サーバプールのリクエストテーブルは、requestedid、serialno、machineuid、applicationuid、useruid、centeruid、type、work、datatype、datasize、data、errorcode、senddatetime、responsedatetime、status 等のフィールドから構成され、データ毎にテーブルが作成される。
【００３３】
Ｓ４８のデータ処理・処理結果において、サーバプールにあるリクエストテーブルから、クライエントから送信されてきたクライエントの同じ識別ＩＤを有し、かつ、ステータスがRECEIVEDであるデータを取り出して処理する。処理した結果は、S５０のデータ蓄積で、クライエントに配信すべきデータを取り出してサーバプールのサーバプッシュテーブルに格納する。このときステータスはPREPAREDに変更される。同時に、Ｓ５１ステータスの一時追加でサーバメモリーにステータスがPROCEEDのresponseが一時的に記憶される。
【００３４】
例えば、Ｓ４８の処理において、Ｓ４９のデータ取り出しでリクエストテーブルから該当するクライエントＩＤをもちかつそのステータスがRECEIVEDであるデータが取り出される。該データが取り出されると、そのステータスが、例えば図１５のように、PROCEEDに変更される。そして、図１６のデータがresponseとしてサーバメモリーに記憶される（Ｓ５１）。処理の結果として、サーバプールのサーバプッシュテーブルに、図１７のようにデータが格納され、そのステータスはPREPAREDになっている（Ｓ５０）。実際にサーバがクライエントに情報を配信するとき、serverpushは図１８のような形式になる。
【００３５】
Ｓ５２の配信データの組立てにおいて、クライエントの識別ＩＤ等からなるヘッダー部分を作成し、クライエントに配信すべきデータからなるボディを作成する。組み立てられた配信情報は、Ｓ５０のデータ抽出で取り出したクライエントの要求に答える情報の他に、サーバメモリーに記憶されたresponseデータを付加する。このようにして組み立てた配信すべき配信内容をクライエントとの接続の下にクライエントに配信する（Ｓ５４）。サーバがクライエントに配信する配信内容は、暗号化したものないしは透かしをいれたものにすることができる。暗号化、透かしは既知の手法を適用することができる。
【００３６】
サーバからクライエントに配信されるデータは、サーバプッシュテーブルに格納されているデータのうち、ステータスがSENT又はPREPAREDの状態にあるものである。Ｓ５３のデータ取出で、サーバプッシュテーブルのなかから該当するクライエントのＩＤとステータスがSENTのデータを取り出しそのステータスをSENDAGAINに変更する。同様に、ステータスがPREPAREDのデータを取り出しそのステータスをSENTに変更する。
【００３７】
サーバからクライエントに配信する配信内容は、例えば、図８に示したように、ヘッダー部分は、クライエントの情報として、client useruid、machineuid、applicationuid、language、codepage、os等のデータ、サーバの情報として、centeruid、protocol、idspace、idspacemask、serverurl等のデータから組み立てられ、ボディ部分は、２個のresponseとserverpushとから構成されている。serverpushはserialno、type、work、datatype、datasize、data等のデータから、responseは受信時のデータとして、serialno、type、work、status等のデータから組み立てられている。サーバがクライエントに配信する配信内容は、ＸＭＬで、ＺＩＰで圧縮してから、ＨＥＸ（１バイトを２バイトに変換する）化される形式となっている。しかし、これに限られるものではない。サーバ側のデータ組立Ｓ５２で組み立てられたデータは、配信される（Ｓ５４）。また、サーバからクライエントに配信する配信内容は、暗号化したものないしは透かしをいれたものにすることができる。暗号化、透かしは既知の手法を適用することができる。
【００３８】
サーバから配信されたデータをクライエントが受取る（Ｓ２７）。クライエントがデータ受信の途中で通信が切れて、接続が切断されることもある（Ｓ２８）。クライエントはサーバが配信したデータを受取ると、データ分析Ｓ２１でＸＭＬ文が解析される。この際、ヘッダー部分の解析は省略される。サーバから配信された情報は、responseのsirialno、statusに基づいて、クライエントのリクエストテーブルに格納される（Ｓ２０）。データ分析２１でボデイ部分からresponseとserverpushまでに分解し、セッション蓄積Ｓ２２で、serverpushをクライエントのサーバプッシュテーブルに格納し、ステータスをRECEIVEDにする。そして、ステータス一時追加Ｓ１９で、ステータスがRECEIVEDのデータをresultとしてクライエントメモリーに記憶する。
【００３９】
次に、データ処理Ｓ２６において、クライエントプールのサーバプッシュテーブルからステータスがRECEIVEDとなっているデータを取り出す（Ｓ２４）。取り出したデータのうち、クライエントプールのリクエストテーブルにサーバに送信する必要があるデータを格納する。サーバに送信する必要があるデータのステータスはPREPAREDとなる（Ｓ２５）。そして、ステータスがPROCEEDのデータをresultとしてクライエントメモリーに記憶する（Ｓ２３）。
【００４０】
Ｓ２９で、更にサーバに送信すべきデータがあるか否かを判断する。リクエストテーブルにそのステータスがRECEIVEDになっているデータが有る限り、また、クライエントメモリーにそのステータスがRECEIVED又はPROCEEDとなっているデータが有る限り、サーバに通信を継続し、ステータスがRECEIVEDになっているリクエストを送信し、クライエントメモリーのRECEIVED又はPROCEEDのデータを送信する。サーバに送信すべきデータが無い場合は、通信完了になる。サーバに送信すべきデータがある場合は、Ｓ１６の送信データの組み立てに戻り、必要なデータをサーバに送信する。
【００４１】
データの送受信の状況を具体的な例を挙げて説明する。例えば、クライエントが図１１に示すデータをサーバに送信する際、該データは送信時点でクライエントプールのリクエストテーブルに、図１２のように格納されている。クライエントがサーバにクライエントの要求を送信する場合、図５に示したようなＸＭＬ文で送信される。ＸＭＬ文は、ヘッダー部分とボディ部分とから構成される。ヘッダー部分には、クライエントやサーバのＩＤやマシン番号等が記述され、ボディ部分には、requestデータ、サーバから配信されたresponseデータをresultデータとして記述されている。
【００４２】
このデータを受け取ったサーバ側はＸＭＬ解析をして、サーバプールのリクエストテーブルに図１３のように書き込まれる。そのステータスは、RECEIVEDになっている。そして、図１４のデータをresponseとしてサーバメモリーに記憶する。そのステータスは、RECEIVEDである。次に、Ｓ４８の処理において、Ｓ４９のデータ取り出しで、ステータスがRECEIVEDのデータを取り出す。取り出したデータは、そのステータスをPROCEEDに変更してリクエストテーブルに図１５のように格納される。データを取り出した後、データを取り出したことを示すresponseデータとしてステータスをPROCEEDにして、図１６のようにサーバメモリーに記憶される。
【００４３】
取り出されたデータは、サーバプールのサーバプッシュテーブルに、図１７のように格納される。この際、ステータスはPREPAREDになる。サーバがクライエントに配信するserverpushは、図１８のような形式になる。次に、サーバプッシュテーブルからそのステータスがSENTのデータを取り出しそのステータスをSENDAGAINに変更し、また、そのステータスがPREPAREDのデータを取り出し、そのステータスをSENTに変更して、サーバプッシュテーブルに格納する。このようにして取り出したデータに、サーバメモリーに記憶したデータを付加して、クライエントに配信するＸＭＬ文を作成する。ＸＭＬ文の例を、図８に示した。ヘッダー部分には、クライエントのＩＤやマシン番号、サーバのＩＤ等が記述され、ボディ部分にはserverpush及びサーバメモリーに記憶されていたresponseが記述されている。このＸＭＬ文が、サーバからクライエントに配信される。
【００４４】
このＸＭＬ文はクライエントに配信されると、クライエント側でＸＭＬを解析し、serverpushデータとresponseデータが取り出され、responseデータがリクエストテーブルに格納され、serverpushデータがそのステータスをRECEIVEDにしてサーバプッシュテーブルに図１９のように格納される。そして、サーバから配信されたresponseデータが図２０というrequestデータとしてクライエントメモリーに記憶される。そして、サーバプッシュテーブルからそのステータスがRECEIVEDになっているデータを取り出し、サーバに送信するデータとしてリクエストテーブルにそのステータスをPREPAREDになってリクエストテーブルに格納される。その例を図２１に示した。サーバから配信されたresponseデータは、クライエントのresultデータとしてステータスがPROCEEDとなってクライエントメモリーに図２２のように記憶される。
【００４５】
ここでクライエントは、サーバプッシュテーブルにステータスがPREPAREDとなっているデータが無い場合には、クライエントメモリーのresultデータをサーバに送信する。データを受け取ったサーバは、そのデータをサーバプッシュテーブルに格納する。格納されたデータの例を、図２３に示した。そのステータスはPROCEEDになっている。これに対して、サーバはデータを受け取った旨のデータを配信する。そのデータは、最早ボデイ部分はデータは無く、ヘッダー部分のみとなっている。その例を図２４に示した。この時点で、クライエント側にも送信するデータはないので、通信プロセスは終了する。
【００４６】
クライエントからサーバに送信されるデータは、図５に例示したように、クライエントの要求がrequestとして、また、サーバがクライエントに配信したresponseデータをresultとして記述されている。resultデータにRECEIVED、PROCEEDのステータスが記述されている場合は、サーバは、既に情報がクライエントに無事配信されたものと判断し、クライエントへの情報の配信は行わない。
【００４７】
接続切断時の処理についで、以下説明する。接続切断のケースとしては、１）Ｓ１４で接続確認ができなくて、接続自体が成立していないケース、２）クライエントからサーバに送信するときに切断されるケース、即ち、図２においてＳ１７、Ｓ１８、Ｓ４３のいずれかで接続できないケース、３）サーバ受信のあとネットワーク障害によってクライエントへ返信できないケース、即ち、図２において、Ｓ５４、Ｓ１８〜Ｓ２７までの待ち時間でネットワーク障害が発生するケースである。
【００４８】
１）の接続自体が成立していないケースにおいては、エラーをクライエント処理部に返す。クライエントセッション処理部では、Ｓ１６の送信データ組み立てを行っていないので、セッションのステータスは接続開始前と変化していない。従って、次回通信指令を出すときには、同じrequestデータをサーバに送ることになる。
【００４９】
２）のケースにおいて、クライエントセッションのrequestデータのステータスはSENT に変わるが、サーバには受信されていないので、requestデータはまだサーバプールには格納されていない状態にある。Ｓ１７、Ｓ１８のところで自動的にネットワークエラーを検知すると、３回まで通信のリトライを行う。通信のリトライで接続が成功する場合、通信自体は問題はないことになる。
【００５０】
この際、serverpushの処理結果をサーバに送信する必要がある場合には、サーバからのserverpushの処理結果として、サーバに送信すべきresultはクライエントメモリーなかに保存されているが、クライエントセッション処理部で通信が終了されると、この部分のデータは失われる。その場合、次回サーバからクライエントに情報配信された際に、serverpushデータをクライエントプールに格納するまえに、同じserialno、Type、workのserverpushデータが既にクライエントプールに存在するかどうかのチェックで、存在することをわかると、そのステータスをとって、resultを作成する。
【００５１】
３）のサーバ受信のあと、ネットワーク障害によってクライエントへ配信できないケースでは、Ｓ５４、Ｓ１７〜Ｓ２７までの待ち時間でネットワーク障害が発生する場合、クライエントから送信されたrequestはサーバプールに格納されるが、クライエントに正しいresponseを返えすことができないので、クライエントのrequestデータのステータスは変化しない。そのため、次回クライエントからサーバに、同じrequestを送信することになる。そのrequestをサーバが受け取ると、同じserialno、Type、workのrequestデータは既にサーバプールにあるため、サーバプールにはそのまま格納せずに、既存のrequestデータのステータスを取り出して、responseを作成する。そして、クライエントがサーバに再度接続すると、正しいserverpushの配信を受け取ることができる。その他、resultデータとresponseデータが送信できないケースを想定して、２回目送信してきたデータを処理せず、以前処理したステータスをresult又はresponseにして送り返すことができる。
【００５２】
サーバ側に、全く同じデータを大多数のユーザーに配信する場合は、拡張タスクの手段を使う。サーバ側のサーバプッシュに、タスクテーブルを設ける。この拡張タスク手段の作用について説明する。まず、タスクの名前とデータをタスクテーブルに追加し、相手となるユーザーのmachineuid、useruid、applicationuidをもって、サーバプッシュテーブルに追加する。タスクテーブル自身にはデータは持たずに、データの代わりにサーバプッシュテーブルのTaskdataidをタスクテーブルの該当するレコードに該Taskdataidを入れる（図１０）。クライエント側に配信するとき、Taskdataidがあれば、サーバプッシュ自身のデータを使わず、該当するタスクテーブルのTaskData フィールドにいれたデータを配信するデータとして使う。クライエントから見れば、サーバから送ってきたサーバプッシュは通常のサーバプッシュとは違いはないものになる。このようにして、大量のデータを重複してサーバプールに書き込むことなく、必要なデータを配信することができる。
【００５３】
本願発明の情報配信システムは、従来の通信システムの上にもう一階層を作ったものに該当する。それは、セッション処理部を設けた点である。クライエント側とサーバ側両方にプールももち、両者のプールはそれぞれ自分自身特有のセッションももつ。クライエントプールとサーバプールは、接続がないときでも、そのなかにセッションをいれることができるのが特徴である。クライエントからの通信指令は、クライエントのクライエントセッションをサーバに送ることにある。
【００５４】
尚、各テーブルに格納するデータのステータスを示すために、RECEIVED、SENT、SENDAGAIN、PREPARED等の語句を使用して、本発明を説明しているが、これは便宜上使用しているものであって、他の語句ないし記号を使用しても差し支えないことはいうまでもない。
【産業上の利用可能性】
【００５５】
本発明は、サーバにサーバプールを備え、そのサーバプールにはサーバプッシュテーブルとリクエストテーブルを設け、同様に、クライエントにクライエントプールを備え、そのクライエントプールにサーバプッシュテーブルとリクエストテーブルを設ける。サーバプッシュテーブルにはサーバからのセッションが格納され、リクエストテーブルにはクライエントからのセッションが格納される。そして、それぞれのテーブルにはステータスが付与される。更に、クライエントからの送信があると、サーバはクライエントから要求のあった情報にresponseを付加してクライエントに情報を配信する。自らが要求した情報とともにresponseを受け取ったクライエントは、サーバからのresponseをresultとしてサーバに送り返す。各テーブルのステータス及びクライエントからのresultに基づき、情報の配信が間違いなく行うことができ、二重配信が防止でき、更には、アクセスの途中で通信が途切れても、再アクセスしたときに、所望の情報が正しく配信される。このシステムを利用して、情報配信がスムースに行われる。
【図面の簡単な説明】
【００５６】
【図１】従来の情報配信システム構成を示す図である
【図２】情報配信システムの構成を示すブロック図である
【図３】情報配信システムの概略を示す図である
【図４】クライエントプールのリクエストテーブルの例を示す図である
【図５】クライエントがサーバに送信する送信内容の例を示す図である
【図６】サーバプールのサーバプッシュテーブルの例を示す図である
【図７】サーバプールのリクエストテーブルの例を示す図である
【図８】サーバがクライエントに配信する内容の例を示す図である
【図９】クライエントプールのサーバプッシュテーブルの例を示す図である
【図１０】サーバのタスクテーブルの例を示す図である
【図１１】クライエントがサーバに送信する際のデータの一例を示す図である
【図１２】クライエントプールのリクエストテーブルに格納されるクライエントがサーバに送信する際のデータを示す図である
【図１３】クライエントからのリクエストデータがサーバプールのリクエストテーブルに格納されるデータを示す図である
【図１４】メモリーに一時出力されるデータを示す図である
【図１５】サーバで処理されたデータを示す図である
【図１６】一時メモリーに出力されるデータを示す図である
【図１７】サーバプールのサーバプッシュテーブルに格納されるデータを示す図である
【図１８】サーバが配信するデータの形式を示す図である
【図１９】クライエント側のサーバプッシュテーブルに格納されるデータを示す図である
【図２０】一時メモリーに出力されるデータを示す図である
【図２１】サーバからのresponseに基づきリクエストテーブルの更新したデータを示す図である
【図２２】一時メモリーに出力されるデータを示す図である
【図２３】サーバプールのサーバプッシュテーブルに格納されたデータを示す図である
【図２４】サーバがデータを受け取った旨配信するデータを示す図である
【図２５】クライエント構成を示す図である
【図２６】サーバ構成を示す図である
【図２７】情報配信システム構成を示す流れ図である
【図１】
2005038190.tif 000003
【図２】
2005038190.tif 000004
【図３】
2005038190.tif 000005
【図４】
2005038190.tif 000006
【図５】
2005038190.tif 000007
【図６】
2005038190.tif 000008
【図７】
2005038190.tif 000009
【図８】
2005038190.tif 000010
【図９】
2005038190.tif 000011
【図１０】
2005038190.tif 000012
【図１１】
2005038190.tif 000013
【図１２】
2005038190.tif 000014
【図１３】
2005038190.tif 000015
【図１４】
2005038190.tif 000016
【図１５】
2005038190.tif 000017
【図１６】
2005038190.tif 000018
【図１７】
2005038190.tif 000019
【図１８】
2005038190.tif 000020
【図１９】
2005038190.tif 000021
【図２０】
2005038190.tif 000022
【図２１】
2005038190.tif 000023
【図２２】
2005038190.tif 000024
【図２３】
2005038190.tif 000025
【図２４】
2005038190.tif 000026
【図２５】
2005038190.tif 000027
【図２６】
2005038190.tif 000028
【図２７】
2005038190.tif 000029