(57)【特許請求の範囲】
【請求項１】
ユーザによる選択が可能な複数のサーバを含む通信ネットワークを介してサービスを提供するコンピュータ・システムであって、
ネットワークに結合され、ユーザからの要求を前記ネットワークに送り出すとともに、前記要求に対する応答を前記ネットワークから受け取るクライアントを備え、
更に、前記クライアントは、ユーザにより選択されたネットワーク上の第１のサーバに、ユーザにより選択された第２のサーバの識別子と、該第２のサーバが提供する特定のサービスの識別子とを含むメッセージを送るか、またはユーザにより選択されたネットワーク上の第２のサーバに、ユーザにより選択された第１のサーバの識別子と、該第１のサーバが提供するコンテンツの識別子とを含むメッセージを送るための通信機構を有し、
前記第１のサーバまたは前記第２のサーバは、前記第１のサーバが提供するコンテンツに対して特定のサービスを実行させるコンピュータ実行可能コードを、前記メッセージに応答して、前記第２のサーバから前記第１のサーバに送るための機構を含み、
更に、前記第１のサーバにおいて前記コンピュータ実行可能コードを実行するための実行機構と、
前記第１のサーバに設けられ、前記実行機構の少なくとも部分的な結果を前記通信ネットワークによって前記クライアントに戻す手段と
を備えるコンピュータ・システム。
【請求項２】
前記コンピュータ実行可能コードが、特定のサービスをするために必要な１つまたは複数の計算資源を指定することを特徴とする請求項１に記載のシステム。
【請求項３】
前記第１のサーバに接続され、少なくとも部分的な結果の前記クライアントに対するコストを決定するためのコンピュータ化した支払い手段をさらに含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記通信ネットワークに接続され、コンテンツの利用の代金を前記第１のサーバに貸方記入し、サービスの利用の代金を前記第２のサーバに貸方記入するための手段をさらに含むことを特徴とする請求項３に記載のシステム。
【請求項５】
ユーザによる選択が可能な複数のサーバが接続された、ワールド・ワイド・ウェブ（ＷＷＷ）を含む通信ネットワークを介して、前記通信ネットワークに結合され、ユーザからの要求を前記通信ネットワークに送り出すとともに、前記要求に対する応答を前記通信ネットワークから受け取るクライアントにサービスを提供するコンピュータ・システムであって、
前記クライアントは、前記クライアントのユーザにより選択されたネットワーク上のデータ分析サーバに、前記ユーザにより選択された独立のデータベース・サーバの識別子と、該データベース・サーバが提供するデータベースの識別子とを含むメッセージを送るか、または前記ユーザにより選択されたネットワーク上のデータベース・サーバに、前記ユーザにより選択された独立のデータ分析サーバの識別子と、該データ分析サーバが提供する特定のデータ分析アルゴリズムの識別子とを含むメッセージを送るための通信機構を有し、
前記データ分析サーバまたは前記データベース・サーバは、前記データベース・サーバが提供するデータベースに対して照会を実行させるダウンロード可能なコード・フラグメントを、前記データ分析サーバから前記データベース・サーバに送るための機構を含み、
さらに、前記データベース・サーバにおいて前記ダウンロード可能なコード・フラグメントを実行し、同時にデータベースと関連付けられたアプリケーションへの通信を制限するための実行機構と、
前記データベース・サーバに設けられ、前記実行機構の少なくとも部分的な結果を前記通信ネットワークによって前記クライアントに返す手段と
を含むことを特徴とするコンピュータ・システム。
【請求項６】
前記データベース・サーバに結合された、少なくとも部分的な結果の前記クライアントに対するコストを決定するためのコンピュータ化された支払い手段をさらに含むことを特徴とする請求項５に記載のシステム。
【請求項７】
前記通信ネットワークに接続され、データベースの利用の料金を前記データベース・サーバに貸方記入し、サービスの利用の代金を前記データ分析サーバに貸方記入する手段をさらに含むことを特徴とする請求項６に記載のシステム。
【請求項８】
前記コード・フラグメントがアプレットであり、
前記データベース・サーバにおける実行環境が、さらに、
マルチスレッド機構と、
スレッド内でアプレットが実行される共用メモリとを含み、
前記スレッドが前記共用メモリだけを介して通信するように制限されていることを特徴とする請求項５に記載のシステム。
【請求項９】
アプレットに結合されたシステム・スレッドが前記クライアントに部分的結果を送ることを特徴とする請求項８に記載のシステム。
【請求項１０】
アプレットに結合され、システム・スレッドを含むコンテンツ配布機構が前記クライアントに部分的結果を送ることを特徴とする請求項８に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信ネットワークを介してサービスを提供する方法およびシステムに関し、より詳細には、ワールド・ワイド・ウェブおよびインターネットを利用するための方法およびシステムに関する。インターネット上でデータ分析アルゴリズムとデータベースとを結合する機構を提供する。
【０００２】
【従来の技術】
まず、本明細書で使用する用語について簡単に説明しておく。
【０００３】
インターネット。ＴＣＰ／ＩＰプロトコルを利用するネットワークおよびゲートウェイのネットワーク。
【０００４】
クライアント。クライアントはサーバにコマンドを発行するコンピュータであり、サーバがそのコマンドと関連付けられたタスクを実行する。
【０００５】
サーバ。別のコンピュータのコマンドによってタスクを実行するコンピュータがサーバである。ウェブ・サーバは、通常、１つまたは複数のクライアントをサポートする。
【０００６】
ワールド・ワイド・ウェブ（ＷＷＷまたはウェブ）。興味のある強調表示された語または文（ハイパーリンク）をクリックすることにより、インターネット上で情報を探す人をサーバからサーバ、データベースからデータベースに切り換えるインターネットのアプリケーション。インターネットのＷＷＷサーバはクライアントをサポートし、情報を提供する。ウェブは、すべての資源がＵＲＬとしてアドレス指定されたインターネットと見なすことができ、ＨＴＭＬを利用してＵＲＬに対応する情報を表示し、他のＵＲＬへのポイント・アンド・クリック・インタフェースを提供する。
【０００７】
ユニバーサル・リソース・ロケータ（ＵＲＬ）。インターネット上の情報を一意に識別またはアドレス指定する手段。電子メール・アドレスのウェブ文書版と考えることができる。ハイパーリンクによってアクセスすることができる。ＵＲＬの例は、「ｈｔｔｐ：／／ｗｗｗ．ａｒｕｎ．ｃｏｍ：８０／ｔａｂｌｅ．ｈｔｍｌ」である。ＵＲＬは、４つの部分からなる。左側から説明すると、最初の部分は、利用するプロトコルを指定し、「：」で残りのロケータと分離される。次は、ターゲット・ホストのホスト名またはＩＰアドレスであり、これは、左側が「／／」で、右側が「／」または任意選択で「：」で区切られる。ポート番号は任意であり、左側が「：」でホスト名から区切られ、右側が「／」で区切られる。４番目の要素は、実際のファイル名またはプログラム名である。この例では、「．ｈｔｍｌ」拡張子は、これがＨＴＭＬファイルであることを意味する。
【０００８】
ハイパーテキスト・マークアップ言語（ＨＴＭＬ）。ＨＴＭＬは、ウェブ・クライアントが閲覧する文書を作成し接続するためにウェブ・サーバが使用する言語である。ＨＴＭＬはハイパーテキスト文書を使用する。ハイパーテキスト文書の他の利用法は、１９９３年４月２０日にバーンスタイン（Ｂｅｒｎｓｔｅｉｎ）他に付与された米国特許第５２０４９４７号、１９９４年３月２２日にバーンスタイン他に付与された米国特許第５２９７２４９号、１９９４年１０月１１日にルイス（Ｌｅｗｉｓ）に付与された米国特許第５３５５４７２号に記載されている。
【０００９】
ハイパーテキスト転送プロトコル（ＨＴＴＰ）。ＨＴＴＰは、クライアントからサーバへのすべての要求が独立に処理されることを意味するステートレス・プロトコルの例である。サーバは、以前の接続の記録をもたない。ＵＲＬの始めの「ｈｔｔｐ：」は、そのファイルがハイパーリンクを含むことを示す。
【００１０】
インターネット・ブラウザまたはウェブ・ブラウザ。ｈｔｔｐなどのインターネット・プロトコルを実行し、顧客の画面上に結果を表示するグラフィカル・インタフェース・ツール。ブラウザは、インターネットのツアー・ガイドとして働き、ユーザがインターネットを「サーフィン」するときに使用する絵画的デスクトップ、ディレクトリおよび探索ツールがそろっている。本願において、ウェブ・ブラウザは、ワールド・ワイド・ウェブと通信するクライアント・サービスである。
【００１１】
ＨＴＴＰデーモン（ＨＴＴＰＤ）。ハイパーテキスト・マークアップ言語とコモン・ゲートウェイ・インタフェースの機能を有するサーバ。ＨＴＴＰＤは、通常、ＴＣＰ／ＩＰ接続など、イントラネット上のマシンへのハードウェア接続を提供しインターネットへのアクセスを提供する、アクセス・エージェントによってサポートされる。
【００１２】
アプレット。ダウンロード可能なコード・フラグメント。
【００１３】
アプレット・システム。コードを安全にダウンロードし実行できるシステム。
【００１４】
Ｊａｖａ。Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓによって開発された、インターネット上でプログラムするためのコンピュータ・プログラミング言語。
【００１５】
セキュア・エレクトロニック・トランザクション（ＳＥＴ）プロトコル。クレジット・カードを利用して商品またはサービスを購入するため、インターネット上で安全な電子的トランザクションを行うためのプロトコル。
【００１６】
データ分析アルゴリズム。データを分析してデータの特性を推論するコンピュータ・プロセス。
【００１７】
データベース。データまたは情報の貯蔵場所。
【００１８】
商用のデータ分析サービスは、従来から、データ分析アルゴリズムとデータベースが単一のシステム提供物の一部である、モノリシック・システムとして提供されてきた。図１に、そのような従来技術によるシステムの例を示す。図示したように、顧客９００は、データ分析提供者９３０と対話し、結果を獲得し、その結果の代金を課金される。データ分析提供者は、データ分析アルゴリズム９１０と、分析すべきデータベース９２０とを有する。システムは、顧客とデータ分析提供者が、あるネットワーク（多分インターネットまたはイントラネット）を介して対話する、クライアント−サーバ・システムとして実施することができる。また、データ分析アルゴリズムとデータベースが異なる組織によって開発されていることもある。しかし、顧客が対話するデータ分析提供者は、モノリシック・システムである。例として、Ｒｅｅｄ−Ｅｌｓｅｖｉｅｒ，Ｉｎｃの一部門によって提供されるＬｅｘｉｓ−Ｎｅｘｉｓサービスがある。
【００１９】
最近において、インターネット上で、データ分析サービスのもう１つのモデルが一般的になりつつある。インターネット上では、データ分析アルゴリズムは、Ｙａｈｏｏ！（Ｙａｈｏｏ！  Ｃｏｒｐｏｒａｔｉｏｎによる）やＡｌｔａ  Ｖｉｓｔａ（Ｄｉｇｉｔａｌ  Ｅｑｕｉｐｍｅｎｔ  Ｃｏｒｐｏｒａｔｉｏｎ）などの検索エンジンによって提供される。データベースは、インターネット上のすべてのウェブ・ページであり、その一部は関係データを含むが、通常は、テキスト、数字、図、イメージ／ビデオ、音声を有する非構造的データを含む。インデックス・データベースが定期的に手動でまたは自動で構成される。顧客は、インデックス・データベースの検索をトリガする情報を要求し、関連するインターネット・ソースを指示される。インデックスと検索機構とでデータ分析アルゴリズムを構成する。これらの検索エンジンのデータ分析アルゴリズムは、検索エンジンと一緒にパッケージされており、顧客の要求によって動的に置き換えられない。さらに、検索エンジンとデータベースは無料である。収益があるとすれば、検索エンジンによって作成された様々なウェブ・ページに関連した広告によるものである。
【００２０】
【発明が解決しようとする課題】
したがって、ユーザがたとえばデータ分析アルゴリズムのサービス提供者を、たとえばデータベースの独立したコンテンツ提供者と動的に結合できる、インターネット上で利用可能なシステムが必要である。また、独自のアルゴリズムおよびデータベース、ならびにアルゴリズムおよびデータベースへのアクセスに関して顧客に課金する価格付け機構に関して適切なセキュリティを維持するシステムが必要とされる。本発明は、そのような必要に対処するものである。
【００２１】
電子取引モデル、セキュア・エレクトロニック・トランザクション（ＳＥＴ）は、ＩＢＭ、Ｍｉｃｒｏｓｏｆｔ、ＶＩＳＡ、Ｍａｓｔｅｒｃａｒｄを含む大手クレジット会社とコンピュータ・ベンダによって提案された。このモデルは、インターネット上での取引に携わる多くの団体によってサポートされることになるであろう。たとえば、ＩＢＭの商業サーバ「Ｎｅｔ．Ｃｏｍｍｅｒｃｅ」とサイバー・ショッピング・モール「Ｗｏｒｌｄ  Ａｖｅｎｕｅ」は、ＳＥＴを利用する計画を公表した。ＳＥＴの詳細については、ＵＲＬ  ｈｔｔｐ：／／ｗｗｗ．ｖｉｓａ．ｃｏｍを参照されたい。
【００２２】
【課題を解決するための手段】
本発明は、インターネット上でデータ分析アルゴリズムとデータベースを安全に結合するオープン・アーキテクチャを対象とし、このデータ分析アルゴリズムとデータベースは、異なるベンダーまたはサプライヤによるものでもよい。
【００２３】
本発明の一態様によれば、通信ネットワークを介してサービスを提供するコンピュータ化した方法は、ネットワーク上のサービス提供者に、ユーザが選択した独立のコンテンツ提供者の識別子と、サービス提供者に関連付けられた特定のサービスの識別子とを含むメッセージを送る段階と、そのメッセージに応答して、サービス提供者からコンテンツ提供者に、コンテンツ提供者によって実行されたときコンテンツ提供者が制御するコンテンツに対して特定のサービスを実行させるコンピュータ実行可能コードを送る段階と、コンテンツ提供者がコンピュータ実行可能コードを実行する段階と、前記実行段階の少なくとも部分的な結果を通信ネットワークによってユーザに戻す段階とを含む。
【００２４】
本発明の第２の態様によれば、コンピュータ実行可能コードが、特定のサービスをするために必要な、メモリ、ディスクおよびＣＰＵ時間のうちの１つを含む１つまたは複数の計算資源を指定する。
【００２５】
本発明の第３の態様によれば、コンテンツ提供者が、特定のサービスをするために使用できる、メモリまたはディスクを含む１つまたは複数の計算資源を指定する。
【００２６】
本発明の第４の態様によれば、実行する段階がさらに、コンピュータ実行可能コードによる、実行されるコンテンツと関連付けられたアプリケーションへの通信を制限する段階を含む。
【００２７】
本発明の第５の態様によれば、ネットワークがインターネットであり、サービス提供者とコンテンツ提供者とユーザが、Ｊａｖａで使用可能となるマシンと通信し、コンピュータ実行可能コードが、Ｊａｖａアプレット（ダウンロード可能なコード・フラグメント）である。
【００２８】
本発明の第６の態様は、前記戻す段階に応答して、特定のサービス、コンテンツ、および少なくとも部分的な結果のうちの１つまたは複数に基づいてユーザに課金する段階を含む。
【００２９】
本発明の第７の態様は、部分的結果に関してユーザに対話式に課金する段階を含む。
【００３０】
本発明の第８の態様によれば、部分的結果に関してユーザに対話式に課金する段階が、電子商取引モデルを用いて実施される。
【００３１】
本発明の第９の態様によれば、コンテンツの利用に関してコンテンツ提供者に貸方記入し、サービスの利用に関してサービス提供者に貸方記入する段階を含む。
【００３２】
本発明の第１０の態様によれば、サービス提供者がデータ分析サービス提供者であり、コンテンツ提供者が独立のデータベース提供者であり、サービスが、サービス提供者と関連付けられた特定のデータ分析アルゴリズムであり、コンテンツがデータベース提供者によって管理されるデータベースである。
【００３３】
【発明の実施の形態】
図２は、データ分析アルゴリズム・サプライヤ５０によって提供されるデータ分析アルゴリズム５５などのコンピュータ・サービスを、データベース・サプライヤ６０によって提供されるデータベース７０と任意に結合する、本発明の機能を有するシステムを示す。この図では、顧客（ユーザとも呼ぶ）１０は、クライアントが実行するブラウザ２０を利用して、インターネット３０およびＴＣＰ／ＩＰネットワーク・プロトコルを介してサーバ５０、６０にアクセスする。ネットワーク・プロトコルは、マシンが互いに通信するための標準的な方法を提供する。プロトコルは、ネットワークを介した送受信のためにデータをどのようにフォーマットすべきかを示す。標準プロトコルにより、ネットワーク上で異機種のマシンがシームレスに通信することができる。標準のインターネット・プロトコルの例には、ＨＴＴＰ、ＳＭＴＰおよびＦＴＰがある。ＨＴＴＰに関しては、Ｔ．バーナース  リー（Ｔ．Ｂｅｒｎｅｒｓ−Ｌｅｅ）、Ｒ．フィールディング（Ｆｉｅｌｄｉｎｇ）およびＨ．フリスタイク（Ｆｒｙｓｔｙｋ）の論文「Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ−ＨＴＴＰ／１．０」、ｈｔｔｐ：／／ｗｗｗ．ｉｃｓ．ｕｃｉ．ｅｄｕ／ｐｕｂ／ｉｅｔｆ／ｈｔｔｐ／ｄｒａｆｔｉｅｔｆ−ｈｔｔｐ−ｖ１０−ｓｐｅｃ−０３．ｈｔｍｌ、１９９５年９月４日を参照されたい。ＳＭＴＰに関しては、Ｊ．Ｂ  ポステル（Ｐｏｓｔｅｌ）の論文「Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ」、ＲＦＣ８２１、Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｃｉｅｎｃｅ  Ｉｎｓｔｉｔｕｔｅ、ＵＳＣ、１９８２年８月、ｈｔｔｐ：／／ｄｓ．ｉｎｔｅｒｎｉｃ．ｎｅｔ／ｓｔｄ／ｓｔｄ１０．ｔｘｔ．を参照されたい。ＦＴＰに関しては、Ｊ．ポステル（Ｐｏｓｔｅｌ）とＪ．Ｋ．レノルズ（Ｒｅｙｎｏｌｄｓ）の論文「Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＦＴＰ）」、ＲＦＣ９５９、Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｃｉｅｎｃｅｓ  Ｉｎｓｔｉｔｕｔｅ、ＵＳＣ、１９８５年１０月、ｈｔｔｐ：／／ｄｓ．ｉｎｔｅｒｎｉｃ．ｎｅｔ／ｓｔｄ／ｓｔｄ９．ｔｘｔを参照されたい。クライアント−サーバ・モデルは、ネットワーク・プログラミングにおいて主流のパラダイムの１つであり、これに関しては、たとえば、Ｗ．Ｒ．スチーブンス（Ｓｔｅｖｅｎｓ）の論文「Ｕｎｉｘ  Ｎｅｔｗｏｒｋ  Ｐｒｏｇｒａｍｍｉｎｇ」、Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ  ＰＴＲ、Ｅｎｇｌｅｗｏｏｄ  Ｃｌｉｆｆｓ、ＮＪ、１９９０と、Ｄ．Ｅ．カマー（Ｃｏｍｅｒ）の論文「Ｉｎｔｅｒｎｅｔｗｏｒｋｉｎｇ  ｗｉｔｈ  ＴＣＰ／ＩＰ」ｖｏｌ．１、Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ、Ｅｎｇｌｅｗｏｏｄ  Ｃｌｉｆｆｓ、ＮＪ、１９９１を参照されたい。サーバ・プログラム４０、５０、６０は、ネットワークを介して多数のユーザがアクセスできるサービスを提供する。プログラムは、メッセージをサーバに送って、サーバ４０、５０、６０から応答を待つときにクライアント２０になる。クライアント・プロセスは、通常、ユーザの対話に最適化されており、要求されたサービスまたはサーバの詳しい働きを知らなくてもサービスを利用することができる。ワールド・ワイド・ウェブ上では、「ブラウザ」は、���ライアント・プログラムとなり、ブラウザに情報を戻すプログラムが、サーバ・プログラムとなる。従来通り、ウェブ・サーバは、通常、ＴＣＰ／ＩＰ結合など、イントラネット上のマシンへのハードウェア接続を提供し、インターネットへのアクセスを提供するアクセス・エージェントによってサポートされたＨＴＴＰデーモン（ＨＴＴＰＤ）を有する。ＨＴＴＰＤの例は、ＩＢＭ  ＯＳ／２ウェブ・サーバ、あるいはハイパーテキスト・マークアップ言語およびコモン・ゲートウェイ・インタフェースの機能を有する他の任意のサーバである。
【００３４】
本発明によれば、顧客１０は、アルゴリズム・サプライヤ５０（メソッド・サーバとも呼ばれる）からのアルゴリズム５５を突きとめ、データベース・サプライヤ６０（コンテンツ・サーバとも呼ばれる）からのデータベース７０を突きとめる。次に、データ分析アルゴリズム５５は、データベース・サプライヤ６０に安全にリロケートされ、アプレット実行環境７５（図５を参照して後で説明する）を利用して適切なデータベース７０上で実行される。検索の結果が、ブラウザ２０上に表示される。このようなブラウザの例は、ＩＢＭから商標ＷｅｂＥｘｐｌｏｒｅｒ、またＮｅｔｓｃａｐｅから商標Ｎｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒのもとで販売されているものである。
【００３５】
本発明のもう１つの態様によれば、アルゴリズム５５が実行されるとき、部分的結果が顧客１０に送り戻される。顧客１０は、次に、データベース（ＤＢ）７０上でアルゴリズムを実行し続けるかどうかを決定する。また、顧客１０は、増分的に課金され、アルゴリズム５５を続けて実行することを要求するごとに課金される。インターネット上でサービスとコンテンツの組合せに対するアクセスに関して課金するために、ＳＥＴなどの電子商取引システム４０を利用することができる。本発明のさらに別の態様によれば、料金は、データベース・サプライヤの支払い機構８５（図６を参照して後で説明する）によって決定される。
【００３６】
本発明のもう１つの態様によれば、アルゴリズム・サプライヤ５０とデータベース・サプライヤ６０は共にアルゴリズムの実行について貸方記入される。貸方記入される金額は、データベース・サプライヤ６０が決定することができる。
【００３７】
当業者は、本発明の範囲内で、ブローカが顧客とアルゴリズム・サプライヤおよびデータベース・サプライヤとの間の仲介者として働くことができることを理解されよう。そのようなブローカは、サプライヤを突きとめ、部分的結果の集成を取り次ぐことができる。１９９６年５月３０日付けの米国特許出願第６５５１３８号に、信用される第３者を利用し、情報製品の内容全体を開示することなく情報製品の記述を見込み客に提供する特定の例が出ている。
【００３８】
図３は、図２に示したコンピュータ・システム内での対話の論理流れ図を示す。ブラウザ２０を使って、ウェブをサーフィンし、顧客１０の情報を表示する。図に示したように、ステップ５００で、顧客１０は、適切なデータベース７０を突きとめる。ステップ５１０で、顧客１０は、特定のデータ分析アルゴリズムを選択する。これにはウェブ検索を必要とすることもあり、顧客１０がアルゴリズム・サプライヤ５０またはデータベース・サプライヤ６０あるいはその両方のＵＲＬを知っていることもある。アルゴリズム・サプライヤ５０は、選択されたアルゴリズムのデータベース・サイズの関数として、最低の資源要件（メモリ、ディスク、時間）を提供することができる。アルゴリズム・サプライヤは、任意選択で、最低要件よりも多い資源（メモリ、ディスク）の時間見積りを示す関数を提供することもできる。同様に、データベース・サプライヤ６０は、インターネット・データ分析に利用できる資源（メモリ、ディスク）または関連データベースのサイズあるいはその両方を指定することができる。ステップ５２０で、顧客１０は、アルゴリズム名とアルゴリズム・サプライヤ５０のＵＲＬを、データベース・サプライヤ６０に渡す。顧客１０は、任意選択で、最低要件ではなく追加の資源（メモリ、ディスク）を利用すると指定することができる。ＤＢサプライヤ６０は、アルゴリズム・サプライヤ５０の場所を突きとめ、適切なデータ分析アルゴリズムをダウンロードする。（図４と図５を参照して説明する）好ましい実施形態では、データ分析アルゴリズムは、Ｊａｖａアプレットなどのダウンロード可能なコード・フラグメントである。それぞれのダウンロード可能なコード・フラグメントは、基礎となる実行環境７５に適合するか確認することが好ましい。別法として、アルゴリズム・サプライヤ５０がＤＢサプライヤ６０から信用されている場合は、二進数のアルゴリズムをＤＢサプライヤ６０にダウンロードすることができる。次に、ステップ５３０で、ダウンロード可能なコード・フラグメント８０が、データベース・サプライヤ６０の実行環境で実行される。ステップ５３０で、実行環境７５は、マルチスレッド・プロセスを使用可能にする。マルチスレッド・プロセスは、選択されたデータベース・アプリケーションとだけ通信するように制限することができる。データベース実行環境７５のスレッドは、それぞれの顧客１０のトランザクションをサポートするために使用することができる。ステップ５４０で、データベース・サプライヤ６０は、少なくとも部分的な結果を顧客１０に戻す。顧客１０には、各ラウンドごとに部分的結果について課金することができる（図６を参照して後で説明する）。好ましい実施形態では、ＳＥＴなどの電子商取引モデル４０を、顧客１０に課金し、データベース・サプライヤ５０とデータ分析アルゴリズム・サプライヤ６０に貸方記入するために採用する。ステップ５７０で、顧客が続行を望む場合は、プロセスはステップ５３０から繰り返す。そうでない場合は、プロセスはステップ５６０で終了する。
【００３９】
図４に、本発明によるコンピュータ・システムと論理流れを組み合わせた例を示す。この実施形態では、実行環境７５は、Ｊａｖａ仮想マシン（図５を参照して詳細に説明する）を含み、ダウンロード可能なコード・フラグメントはＪａｖａアプレットである。Ｊａｖａは、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓによってインターネット用に開発された周知のコンピュータ・プログラミング言語である。たとえば、パトリック・ノートン（Ｐａｔｒｉｃｋ  Ｎａｕｇｈｔｏｎ）著「Ｔｈｅ  Ｊａｖａ  Ｈａｎｄｂｏｏｋ」Ｏｓｂｏｒｎｅ  ＭｃＧｒａｗ−Ｈｉｌｌ（１９９６）を参照されたい。また、ＵＲＬ  ｈｔｔｐ：／／ｗｗｗ．ｊａｖａｓｏｆｔ．ｃｏｍ／ｊａｖａ．ｓｕｎ．ｃｏｍ／ｓｏｕｒｃｅ．ｈｔｍｌも参照されたい。図示したように、対話する構成要素の対が、データまたは制御の流れを示す方向線Ｉ１ないしＩ７（一方向または双方向）によって接続される。以下に列挙するように、様々な参加者の間で行われる対話は７種ある。
【００４０】
１．顧客１０が、特定のデータ分析アルゴリズムを選択する。これにはウェブ検索が必要なこともあり、顧客１０がすでにアルゴリズム・サプライヤ５０のＵＲＬを知っていることもある。アルゴリズム・サプライヤ５０は、選択されたアルゴリズムのデータベース・サイズの関数として最低の資源要件（メモリ、ディスク、時間）を提供する。サプライヤは、任意選択で、最低要件よりも多い資源（メモリ、ディスク）の時間見積りを示す関数を提供することもできる。ブラウザ２０が、顧客１０の情報を表示するために使用される。
２．顧客１０が、適切なデータベースを突きとめる。顧客がウェブ検索を実行することもでき、すでにデータベース・サプライヤ６０のＵＲＬを知っていることもある。また、データベース・サプライヤ６０は、インターネットのデータ分析に利用できる資源（メモリ、ディスク）と関連データベースのサイズを指定することができる。
３．顧客１０は、アルゴリズム・サプライヤ５０のアルゴリズム名とＵＲＬをデータベース・サプライヤ６０に渡す。顧客１０は、任意選択で、最低要件ではなく追加の資源（メモリ、ディスク）の使用を指定することができる。
４．ＤＢサプライヤ６０が、アルゴリズム・サプライヤ５０の場所を突きとめる。
５．ＤＢサプライヤ６０が、適切なアプレット８０をダウンロードする。
６．各アプレット８０は、最初に、Ｊａｖａコード検査機構によって、そのアプレットが基礎となるアプレット・システムに適合するかどうか検査することが好ましい。次に、修正Ｊａｖａコード検査機構を利用して、コード・セキュリティ証明と資源制約を検査する。アナンド（Ａｎａｎｄ）他の「Ａ  Ｕｎｉｆｏｒｍ  Ｍｅｃｈａｎｉｓｍ  ｆｏｒ  Ｕｓｉｎｇ  Ｓｉｇｎｅｄ  Ｃｏｎｔｅｎｔｓ」と題する１９９６年６月１１日付けの米国特許出願第６６１６８７号は、アプレットが制御された方式でシステム資源にアクセスする機構を記載している。この機構により、Ｊａｖａアプレットは、ＣＬＡＳＳＰＡＴＨ変数を使って静的に指定された以外のファイル・システムの部分にアクセスすることができ、アプレットがそこからダウンロードされたサーバ以外のサーバと通信することができる。本発明では、各アプレットに、アプレットがどこから来てどの資源を使用するかを指定するセキュリティおよび資源の証明をスタンプすることができる。アプレットの出所が信用できる場合は、資源制約も信用できる。Ｊａｖａは、ダウンロードされたアプレットがマシン固有のコードで実行するようにコンパイルできるかあるいはインタープリットできることを条件とする。アルゴリズム・サプライヤ５０がＤＢサプライヤ６０によって信用される場合、二進数のアルゴリズムをＤＢサプライヤ６０に送ることができる。次に、アプレット８０が、データベース・サプライヤ６０上で実行される。
Ｊａｖａは、また、マルチスレッド・プログラミング・パラダイムを提供する。たとえば、ノートンの著書１８１〜１９９ページを参照されたい。アプレットは、データベース以外のアプリケーションと通信できないように実行が制約されることが好ましい。各顧客１０のトランザクションをサポートするために、データベース・アプレット・システム内のシステム・スレッド１００を使用することができる。
７．ＤＢサプライヤ６０は、結果（部分的な結果のこともある）を顧客１０に戻す。価格付け機構（後で考察する）を用い、各ラウンドごとに部分的結果に対して顧客１０に課金することができる。
【００４１】
顧客１０に課金し、データ分析アルゴリズム・サプライヤ５０およびデータベース・サプライヤ６０に貸方記入するために、ＳＥＴなどの電子商取引モデル４０を採用することが好ましい。
【００４２】
当業者は、ＤＢサプライヤ６０を選択することだけを除き、顧客１０がアルゴリズム・サプライヤ５０と対話するように対話を容易に変更できることを理解されよう。この場合、上記の対話３は、顧客１０がデータベース名とデータベース・サプライヤ６０のＵＲＬをアルゴリズム・サプライヤ５０に渡すように変更される。対話４は、アルゴリズム・サプライヤ５０がデータベース・サプライヤ６０を突きとめるように変更される。また、対話５は、アルゴリズム・サプライヤ５０がアプレット８０をデータベース・サプライヤ６０にアップロードするように変更することができる。
【００４３】
上記の対話で唯一の本質的依存条件は次の通りである。すなわち、対話１と対話２は、任意の順序で行われるが、対話３よりも前に行われなければならない。対話３、４、５、６、７は、この順序で行われる。対話７は、部分的結果が顧客１０に返されるときに複数回行われ、顧客１０は、アルゴリズムの使用量、データベース・アクセスおよび返された部分的結果について課金される。
【００４４】
前述の１人または複数の論理的参加者が単一の物理的参加者に写像できることに留意されたい。
【００４５】
また、当業者は、このアーキテクチャが、以下の点で反復的であることを理解されよう。データベース・サプライヤ６０は、実際にインターネットを介してデータ分析サービスを購入する顧客１０になることによりそのデータを得ることができる。逆に、図４の顧客１０は、別の参加者グループとの別のデータ分析トランザクションに関してデータベース・サプライヤ６０になることができる。すなわち、あるトランザクションで顧客１０である参加者が、別のトランザクションでサプライヤになることができる。
【００４６】
また、顧客１０と他の当事者との間の仲介者として働くブローカを追加することもできる。顧客１０は、何でも入手できる便利なサプライヤとして、仲介者とのみ対話する。仲介者は、前述のように、アルゴリズム・サプライヤ５０およびデータベース・サプライヤ６０と（図４で仲介者が顧客１０であるかのように）対話する。
【００４７】
図４において対話を実施するために、次のプロトコルを使用することができる。対話Ｉ１、Ｉ２、Ｉ３、Ｉ７は、ＨＴＴＰプロトコルを使って実施することができる。対話Ｉ４およびＩ５は、Ｊａｖａダウンロード・プロトコルを使って実施することができる。電子商取引システムとのすべての対話は、ＳＥＴ（ｈｔｔｐ：／／ｗｗｗ．ｖｉｓａ．ｃｏｍ／ｃｇｉ−ｂｉｎ／ｖｅｅ／ｓｆ／ｓｅｔ／ｉｎｔｒｏ．ｈｔｍｌ？２＋０を参照）プロトコルを使って実施することができる。
【００４８】
本発明の好ましい実施形態においては、顧客（ユーザ）１０はＮｅｔｓｃａｐｅブラウザにアクセスすることができる。顧客の要求により、ブラウザは、Ｙａｈｏｏ！などの一般的な検索エンジンによって、ウェブから、データベースとデータ分析アルゴリズムとそのサプライヤのリストを得る。従来通り、顧客は、ＨＴＭＬを使ってブラウザに表示された適切なイメージをクリックすることにより、データベース７０とデータ分析アルゴリズム５５を選択する。
【００４９】
顧客は、最初に、費すつもりのある最高金額を入力することができる。次に、顧客は、ＧＯボタン（従来のハイパーリンクを表す）をクリックしてトランザクションを開始する。要求は、ｈｔｔｐ要求の形でデータベース・サプライヤ６０に送られる。データベース・サプライヤは、従来通り、Ｊａｖａによって使用可能なｈｔｔｐデーモン（ｈｔｔｐｄ）を実行する（たとえば、Ｎａｕｇｈｔｏｎ、２４４〜２４９ページを参照）。
【００５０】
図５に、データベース・サプライヤにおいてデータ分析アルゴリズムを安全に実行するための、本発明による実行環境７５のより詳細な例を示す。図示したように、データベース・サプライヤのｈｔｔｐデーモンは、Ｊａｖａ言語でデータ分析サプライヤと通信し、アプレットをダウンロードするためのＪａｖａ内部プロトコルを使ってアプレットをダウンロードする（５２０’）。その結果は、ｈｔｔｐを用いて顧客に返され（５４０’）、ｈｔｍｌを用いて表示される。本発明の好ましい実施形態では、データベース・サプライヤがＪａｖａ実行環境２１０を有し、データベース・サプライヤ上のＪａｖａがＪＤＢＣによって使用可能になる（５３０’）と想定する。ＪＤＢＣは、周知であり、ＳＱＬデータベースに対する進化したＪａｖａアプリケーション・プログラミング・インタフェース（ＡＰＩ）である。これは、Ｓｕｎ  ＭｉｃｒｏｓｙｓｔｅｍｓのＪａｖａＳｏｆｔ部門によって開発中である。ＪＤＢＣの詳しい説明は、ＵＲＬｈｔｔｐ：／／ｓｐｌａｓｈ．ｊａｖａｓｏｆｔ．ｃｏｍ／ｊｄｂｃ／を参照されたい。ＪＤＢＣライブラリは、ＳＱＬを用いてデータベース１３０を呼び出す。例示的なデータベースとデータベース管理システムは、ＩＢＭから「ＤＢ２」の商標で販売されている。
【００５１】
アルゴリズム・サプライヤ５０は、Ｊａｖａアプレットとして書かれたデータ分析アルゴリズムを提供する。アプレットは、データ分析アルゴリズムのサーバ５０に常駐する。選択されたアプレットは、データベース・サプライヤにダウンロードされ、実行される。
【００５２】
アプレットは、実行中のサーバ以外と通信しないように制限されたスレッド内で実行することが好ましい。また、Ｊａｖａは、定期的に実行するシステム・スレッド１００のプールを提供する（ｈｔｔｐ：／／ｗｗｗ．ｊａｖａｓｏｆｔ．ｃｏｍ／ｊａｖａ．ｓｕｎ．ｃｏｍ／ｓｏｕｒｃｅ．ｈｔｍｌを参照）。本発明の一態様によれば、システム・スレッド１００を使って、顧客１０’との反復動作を調整することができる。データ分析アルゴリズムを含むＪａｖａアプレットをダウンロードするとき、Ｊａｖａアプレットは、システム・スレッド・プール内のスレッドの１つにそれ自体を登録する。ダウンロードしたアプレットはシステム・スレッド１００と通信し、システム・スレッド１００は顧客と通信する（５４０’）。これらのスレッドは、ＪＡＶＡウィンドウ・システム、Ａｃｔｉｖｅ  Ｗｉｎｄｏｗ  Ｔｏｏｌｋｉｔ（ＡＷＴ）の構成と似た代理（ｐｒｏｘｉｅｓ）として機能する。
【００５３】
システム・スレッド１００は、部分的結果を顧客に送り、部分的結果を顧客に提供した後でアルゴリズムを引き続き実行するかどうかを決定する。これにより、任意の時間にデータ分析アルゴリズムの実行を終了することができる。データ分析アルゴリズムは、従来通り、ローカル・ファイル記憶装置またはデータベースに書き込むことはできない。
【００５４】
部分的結果は、ブラウザ２０に表示される。実際の表示は、コンテンツと照会のタイプに依存する。たとえば、画像データベースに対するデータ分析照会は、１ページに１つ、リンクされたイメージのリストを作成する。
【００５５】
顧客の初期支払い額から適切な金額が引かれる。顧客が継続ボタンを押した場合、計算が続行される。顧客は、ＳＥＴプロトコルを用いて、Ｙドルの支払いと引き換えにデータ分析サービスを要求する。最初の部分的結果の後で、顧客は、結果を引き続き受信するかあるいはトランザクションを終了する。ＳＥＴ電子商取引プロトコルを使用することにより、販売者は、顧客に製品について課金し販売者に同額を貸方記入する支払いトランザクションを終了した後で、顧客に一部を払い戻しすることができる。トランザクションを終了した場合は、ＳＥＴプロトコルを用いて、使われなかった金額を顧客に貸方記入する。データベース・サプライヤとアルゴリズム・サプライヤには、適切な金額が貸方記入される。
【００５６】
電子商取引プロトコルに、顧客がトランザクションの支払いをした後で調整を行う貸方記入機構がない場合は、顧客の損失を少なくするために、金額Ｙを適当に低く抑えることができる。
【００５７】
本発明の一態様によれば、顧客１０は、部分的結果の支払いを対話式に行う。顧客は、始めに金額Ｘを支払い、その後、受け取った部分的結果に応じて続行する。顧客１０がトランザクションを任意の時間に終了したくなった場合、使ってない金額が顧客１０に戻される。ＳＥＴ商取引モデル４０を使うと、そのようなプロトコルを実施することが可能である。
【００５８】
部分的結果の代価を決定するために、ＤＢは、アルゴリズムのコストと、ＤＢからアクセスされたデータのコストと、使用された資源（メモリ、ディスク、ＣＰＵサイクル）のコストと、顧客１０に送られたデータのコストを加算することができる。
【００５９】
顧客１０へのコストは、次式で表される。
Ｃｕｓｔｏｍｅｒ＿Ｐｒｉｃｅ＝（ｐｒｉｃｅ＿ｏｆ＿ａｌｇｏｒｉｔｈｍ／ｕｎｉｔ−ｔｉｍｅ）＊ｔｉｍｅ＿ｕｓｅｄ
＋ｐｒｉｃｅ＿ｏｆ＿ｄａｔａ＿ａｃｃｅｓｓｅｄ＿ｆｒｏｍ＿ｄａｔａｂａｓｅ
＋ｐｒｉｃｅ＿ｏｆ＿ｒｅｓｏｕｒｃｅｓ＿ｕｓｅｄ
＋ｐｒｉｃｅ＿ｏｆ＿ｄａｔａ＿ｓｅｎｔ＿ｔｏ＿ｃｕｓｔｏｍｅｒ
【００６０】
データベース内の様々なデータおよび様々なデータベースが、異なる価格と関連付けられていることがある。顧客１０に送られるデータの価格は、１ビットあたりの適切な額の均一料金でもよい。顧客１０がデータ分析アルゴリズムを供給し、データベース全体を顧客１０自身に返送しようと試みる場合、１ビットあたりのコストという手法は、顧客１０が本当にデータベース全体を望んでいるのでなければ、そのようなアクティビティを抑制するものとなる。適切な価格で課金することにより、ＤＢサプライヤ６０は、顧客１０が、ＤＢサプライヤ６０のコンピュータ上でデータ分析を行い、データベース全体を複写するのではなく何らかの価値のある要約結果を収集しようとするのに十分な動機付けを与えることができる。
【００６１】
図６に、図２の支払い機構の論理流れ図を示す。支払いトランザクションには、ＳＥＴプロトコルまたは他の何らかの電子商取引プロトコルを使用することができる。データベース・サプライヤのところでデータ分析アルゴリズムが実行される前に、ステップ６００で、顧客の口座に初期金額Ｙが請求され、同じ金額がデータベース・サプライヤ（ＤＳ）に貸方記入される。データベース・サプライヤとアルゴリズム・サプライヤに貸方記入される合計金額がＹ以下になるようにデータ分析アルゴリズムが実行された（部分的完了）後で、部分的結果が顧客に返され、データベース・サプライヤは、ステップ６１０で、アルゴリズム・サプライヤ（ＡＳ）とデータベース・サプライヤにそれぞれ貸方記入される正確な金額Ｘ１およびＸ２を計算する。ステップ６２０で、データベース・サプライヤは、アルゴリズム・サプライヤに金額Ｘ１を支払う。ステップ６３０で、データベース・サプライヤは、Ｙ−（Ｘ１＋Ｘ２）の余りの金額を顧客に返す。ステップ６４０で、データベース・サプライヤは、顧客がさらにデータ分析アルゴリズムの実行をし続けるかどうかを確認する。続ける場合は、前のステップが繰り返される。そうでない場合は、支払いトランザクションが実行される。
【００６２】
ＡＳとＤＳの役割は、支払いトランザクションにおいて逆になる。役割が逆になった場合、ＤＳはステップ６１０でコストの関数をさらに計算しなければならないが、ＡＳは結果を顧客１０に戻す。最適化により、それぞれの反復の終わりではなく１つのアクションで顧客１０に払い戻し金を返すことができる。
【００６３】
アルゴリズム・サプライヤ５０は、通常、顧客１０を信用するのと同じようにＤＢサプライヤ６０を信用する。ＤＢサプライヤ６０は、一般にだれも信用しない。しかし、特別な手配のもとでは、ＤＢサプライヤ６０は、アルゴリズム・サプライヤ５０を信用することがある。信用するとは、次のようなことである。ＡＳは、ＤＳが正しい金額を計算してＡＳに貸方記入することを信用する。顧客１０は、ＤＳが公正にすなわち発表された料金表通りに課金することを信用する。
【００６４】
各アルゴリズムを、自己破壊するまでのある期間（たとえば、時間、日、月ごとなど）リースすることができる。ＤＢは、ＡＳとの別のトランザクションによってアルゴリズムを使用し続けることができる。この場合は、アルゴリズムの新しいインスタンスがロードされる。アルゴリズムは、部分的結果の生成後に検査し回復できることが好ましい。ＤＢサプライヤ６０は、アルゴリズム・サプライヤ５０に、アルゴリズムを使用した時間を報告する。
【００６５】
すべての図でＪａｖａＶＭは、ＡｃｔｉｖｅＸ（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐの登録商標）およびＷｉｎｄｏｗｓ９５（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐの登録商標）で代用することができる。
【００６６】
前述の米国特許出願第６６１６８７号の技術を使用することにより、ダウンロードしたアプレットが、システム・スレッド１００を使用せずに顧客と通信できるようになる。この技術では、アプレットが資源要件およびセキュリティ証明と一緒に来る。資源要件には、ファイル・アクセスと信用されたドメイン名サーバ（ＤＮＳ）が含まれる。セキュリティ証明には、デジタル署名が含まれる。ＤＮＳは、文字列名を、アプレットが由来するサーバ以外のエンティティと通信するために使用できるＩＰアドレスに変換するために使用される。アプレットはまた、アクセスしたいファイルのリストと一緒に来る。修正Ｊａｖａ検査機構が、信用されたＤＮＳの有効性と、アプレットをロードする際にアクセスされるファイルのリストを検査する。実施モジュールは、アプレットの挙動が資源要件に適合し、セキュリティ証明が実行時間に破られないことを保証する。図４にＩ１〜Ｉ５およびＩ７で示された対話は、安全ソケット層プロトコル（ｓｅｃｕｒｅ  ｓｏｃｋｅｔｓ  ｌａｙｅｒ  ｐｒｏｔｏｃｏｌ：ｓｓｌ）（ｈｔｔｐ：／／ｗｗｗ．ｎｅｔｓｃａｐｅ．ｃｏｍ）を用いて暗号化できることが好ましい。
【００６７】
本発明を、代替例を含む好ましい実施形態によって説明したが、当業者には様々な改良を思いつくであろう。したがって、好ましい実施形態は例として示したものであり制限として示したものではないことを理解されたい。本発明の範囲は、併記の特許請求の範囲によって正確に定義される。
【図面の簡単な説明】
【図１】顧客が商業データ分析提供者と対話することができる従来技術のシステムを示す図である。
【図２】本発明の機能を有するコンピュータ・システムを示す図である。
【図３】本発明によるコンピュータ化したプロセスの論理流れ図である。
【図４】本発明によるコンピュータ・システムと論理流れを組み合わせて示す図である。
【図５】本発明による、データベース・サプライヤにおいてデータ分析アルゴリズムを安全に実行するための図２の実行環境のより詳細な例を示す図である。
【図６】図２の支払い機構の論理流れ図である。
【符号の説明】
１０  顧客
２０  ブラウザ
３０  インターネット
４０  サーバ・プログラム
５０  データ分析アルゴリズム・サプライヤ
５５  データ分析アルゴリズム
６０  データベース・サプライヤ
７０  データベース
７５  アプレット実行環境
【図１】
0003607047.tif 000002
【図２】
0003607047.tif 000003
【図３】
0003607047.tif 000004
【図４】
0003607047.tif 000005
【図５】
0003607047.tif 000006
【図６】
0003607047.tif 000007