(57)【特許請求の範囲】
【請求項１】
クライアントステーションからサーバステーションの機能をリモート実行するための方法であって、
前記機能を実行するためのコストを計算する式を含むインターフェースを前記クライアントステーションが前記サーバステーションから受信する受信ステップと、
前記機能を実行するためのコストを、受信した式により前記クライアントステーションが計算するコスト計算ステップと、
前記サーバステーションに前記機能を実行するのに必要な総額を前記クライアントステーションが送信する送信ステップとを有することを特徴とする方法。
【請求項２】
機能の実行をサーバステーションに要求するクライアントステーションであって、
前記機能を実行するためのコストを計算する式を含むインターフェースを前記サーバステーションから受信する受信手段と、
前記機能を実行するためのコストを、受信した式により計算するコスト計算手段と、
前記サーバステーションに前記機能を実行するのに必要な総額を送信する送信手段とを有することを特徴とするクライアントステーション。
【請求項３】
サーバステーションの機能を実行するためのコストを計算する式を含むインターフェースをサーバステーションから受信する受信ステップと、
前記機能を実行するためのコストを、受信した式により計算するコスト計算ステップと、
前記サーバステーションに前記機能を実行するのに必要な総額を送信する送信ステップとをコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアントステーションからサーバステーションの機能をリモート実行するための方法、クライアントステーション、及びコンピュータプログラムに関する。
【０００３】
【従来の技術】
現在、益々多くのコンピュータがネットワークで動作するようになっており、サーバステーションと呼ばれる他のコンピュータによって提供されるサービスを使用している。
【０００４】
通信ネットワークにおいて、サーバステーションによって供給されるサービスに対して報酬を支払うことは珍しいことではない。
【０００５】
従来、サーバステーションは、報酬を受け取るために、ネットワークにおけるクライアントステーションに関連付けられたクライアントアカウントを開設することができる。サーバステーション上でクライアントステーションによって行われる全てのオペレーションは記憶され、定期的に、例えば月毎に請求される。
【０００６】
このようなシステムでは、ネットワークの各サーバステーション上にクライアントのアカウントを開設し、これを管理しなければならない。
【０００７】
更に、このタイプの支払いは、クライアントステーションから、ネットワークにおける異なるサーバを各ユーザが使用できることが望ましい、インターネットタイプの大規模な通信ネットワークには制約となる。
【０００８】
また、通信ネットワーク上では、ネットワークによって１つ又は複数のサーバステーションに接続されるクライアントステーションが、サーバステーションの１つの機能のリモート実行を制御することが一般的である。
【０００９】
各機能は、サーバステーション上で記憶されているコンピュータプログラムにおける一連の命令に対応する。
【００１０】
【発明が解決しようとする課題】
本発明の目的は、このオペレーションの報酬に大きな柔軟性をもたらす、通信ネットワーク上で機能のリモート実行方法を提案することである。
【００１１】
【課題を解決するための手段】
本発明によれば、クライアントステーションからサーバステーションの機能をリモート実行するための方法は、
前記機能を実行するためのコストを計算する式を含むインターフェースを前記クライアントステーションが前記サーバステーションから受信する受信ステップと、
前記機能を実行するためのコストを、受信した式により前記クライアントステーションが計算するコスト計算ステップと、
前記サーバステーションに前記機能を実行するのに必要な総額を前記クライアントステーションが送信する送信ステップとを有することを特徴とする。
【００１２】
従って、サーバステーションに送信される機能のリモート実行に対する要求に対して、サーバステーション上でこの機能を実行するための充分な総額が送信される。
【００１３】
従って、この機能は、それらがサーバステーション上で実行されるべきものであるときに支払われ、サーバステーションがクライアントのアカウントを開設する必要はない。
【００１４】
クライアントステーションは、もはやネットワーク内のサーバの各々についてアカウントを管理する必要はなく、従って、もはやそれに適さないサーバの使用を自由に中止することができ、反対にネットワーク内で別のサーバを自由に試すことができる状態に置かれる。
【００１５】
コストは、インターフェースに含まれる受信した式により計算される。
【００１６】
これは、機能の実行コストがクライアントステーションに事前に知られておらず、この機能の実行前にサーバステーションに要求する必要があるからである。
【００１７】
従って、サーバステーションは自由に価格を決定することができ、この価格は、商業方針、実行されるべきオペレーションの性質、このオペレーションが適用されるデータのタイプに応じて異なる。
【００１８】
従って、処理されるべきデータのタイプに特に従って、通信ネットワーク上の動的な請求を実現することができる。
【００２５】
このようなシステムは、サーバステーションが、通信ネットワークの様々なクライアントステーションに供給したすべてのサービスに対して正確に報酬を受け取ることをも保証されている。これはインターネットタイプの広域ネットワークにおいては最も重要なことである。
【００２６】
また、本発明は、機能の実行をサーバステーションに要求するクライアントステーションであって、
前記機能を実行するためのコストを計算する式を含むインターフェースを前記サーバステーションから受信する受信手段と、
前記機能を実行するためのコストを、受信した式により計算するコスト計算手段と、
前記サーバステーションに前記機能を実行するのに必要な総額を送信する送信手段とを有することを特徴とする。
【００２７】
このクライアントステーションは、機能のリモート実行の方法に関しては上述したものに類似の特徴及び利点を有する。
【００２８】
また、本発明は、コンピュータプログラムであって、
サーバステーションの機能を実行するためのコストを計算する式を含むインターフェースをサーバステーションから受信する受信ステップと、
前記機能を実行するためのコストを、受信した式により計算するコスト計算ステップと、
前記サーバステーションに前記機能を実行するのに必要な総額を送信する送信ステップとをコンピュータに実行させる。
【００２９】
このコンピュータプログラムは、上述のものと類似の特徴及び利点を有する。
【００３０】
更に本発明の他の特徴及び利点が、以下の説明から明らかになろう。
【００３１】
【発明の実施の形態】
まず、図１を参照しながら、本発明による機能のリモート実行方法を実施するように適合された通信ネットワークについて説明する。
【００３２】
以下では、サーバステーションＨに接続されたクライアントステーションＵを想定する。当然、通信ネットワークでは、ネットワークの様々なコンピュータがクライアントステーションＵやサーバステーションＨになる可能性がある。
【００３３】
この例では、クライアントステーションＵはサーバステーションＨのサービスを使用することができる。具体的には、クライアントステーションＵは、サーバステーションＨ上の機能の実行を直接的に要求することができる。
【００３４】
各機能は、コンピュータプログラムの一連の命令に対応する。
【００３５】
当然、クライアントステーションＵは、サーバステーションＨの他のサービス、例えば文書の供給などを要求することもできる。
【００３６】
例えば、決して限定するものではないが、サーバステーションはデジタル画像を記憶することができ、ユーザは、クライアントステーションＵを通してサーバステーションＨ上の１つの画像に対してオペレーションを実行することができる。
【００３７】
このオペレーションは、白黒への画像変換、画像の回転、或いは画像の水平軸又は垂直軸に関して対称であってよい。
【００３８】
このようなオペレーションが離れて実行されるとき、画像はサーバステーションＨ上で連続的に記憶され、通信ネットワークを通過することはない。クライアントステーションは、そのオペレーションのリモート実行のための要求をサーバステーションに送信するだけである。
【００３９】
以下の説明では、分散型オブジェクト指向システムを想定する。コンピュータオブジェクトは、属性とも呼ばれるデータ、及び可能ならば入力引数を使用する機能又は方法を含む要素である。このようなシステムでは、機能はオブジェクトのデータを処理するために呼び出される。
【００４０】
オブジェクト及び属性に適用可能な一組の機能がそのインターフェースを構成している。
【００４１】
実際には、クライアントステーションＵは、プログラム１０を実行する手段を有する。
【００４２】
このプログラムは一連の命令を含み、その１つ又は複数がサーバステーションＨ上に記憶されているオブジェクトｏに対する機能ｆのリモート実行を要求する。
【００４３】
このオペレーションのリモート実行を実施するために、クライアントステーションＵは機能ｆを実行する要求を送信する手段１５を有する。
【００４４】
この機能のリモート実行を実施するために、クライアントステーションＵは機能ｆに関連付けられた実行コストを取得する手段１１を有する。
【００４５】
ここで、コストを取得するこれらの手段１１により、オブジェクトｏのインターフェースを取得し、かつこのインターフェースから機能ｆのコストを抽出することが可能となる。
【００４６】
また、クライアントステーションは１つ又は複数の機能の実行のコストを記憶できるキャッシュメモリ１２も有する。
【００４７】
また、クライアントステーションは総額Ｓを取得する手段１３も有する。
【００４８】
これらの取得する手段１３は、少なくとも実行されるべき機能に関連付けられた実行コストに等しい充分なコインの数を受領するようにコインを記憶する手段１４と協働している。
【００４９】
総額Ｓを取得すること及びコインの生成を、特に図４を参照しながら後に説明する。
【００５０】
最後に、クライアントステーションは、オブジェクトｏに対して機能ｆのリモート実行のための要求を送信する手段１５と、この機能に関連付けられた支払を送信する手段１６とを含む。
【００５１】
相関的に、サーバステーションＨはオブジェクトｏに対して機能ｆのリモート実行のための支払及び要求を受信する受信手段２１を含む。
【００５２】
機能ｆに関連付けられたコストを読み取る手段２２により、インターフェースメモリ２３に記憶されているインターフェースから実行コストを取得することが可能になる。
【００５３】
このインターフェースメモリ２３には、各実行可能な機能に対して関連付けられたコストを含む、サーバステーションＨのコンピュータオブジェクトの様々なインターフェースが記憶されている。
【００５４】
比較及び受領する手段２４は、受信した支払を確認し、実行されるべき機能のコストとそれを比較し、少なくとも機能ｆに関連付けられた実行コストに等しい総額を受領することを可能にする。
【００５５】
受信された電子マネーの確認は、テーブル２５に記憶されている認証証明書（又は為替手形）によって達成することができる。
【００５６】
オブジェクトｏに対して機能ｆを実行する手段２６もサーバステーションＨに組み込まれている。
【００５７】
サーバステーションＨは、サーバステーションＨ上でクライアントステーションの活動を示す値を計算する手段２７も含む。
【００５８】
比較手段２８は、活動を示すこの値を所定の閾値と比較することも可能にする。
【００５９】
サーバステーションＨがクライアントステーションＵにサービスを無料で供給する初期段階を管理することを可能にする、これらの計算手段２７及び比較手段２８の機能について、図７Ａ及び７Ｂを参照しながら後に説明する。
【００６０】
全てのこれらの手段１０〜１６及び２１〜２８は、図２に示すようなコンピュータ内にクライアントステーションＵのレベルとサーバステーションＨのレベルの両方で組み込むこができる。
【００６１】
このコンピュータは、従来の方法で、マイクロプロセッサ３０、読み取り専用メモリ３１（ＲＯＭ）、及び本発明による方法を実施するための様々なレジスタを含むランダムアクセスメモリ３２（ＲＡＭ）を備える。
【００６２】
コンピュータは、情報の要求を受信又は送信するため、通信ネットワーク３に接続することができる通信インターフェース３９を特に有する。
【００６３】
更に、このコンピュータは、ハードディスク３６などの文書記憶手段を有するか、或いはディスクドライブ３７によってディスケット、コンパクトディスク、又はコンピュータカード（ＰＣ  Ｃａｒｄ）などの取り外し可能な記憶媒体３８と協働するように適合されている。
【００６４】
これらの固定又は取り外し可能な記憶媒体は、一旦マイクロプロセッサ３０によって読み取られ、ハードディスク３６に記憶される、本発明によるリモートオペレーション実行方法のためのコードを含むことができる。
【００６５】
変形例として、デバイスに本発明を実施することを可能にさせるプログラムを読み取り専用メモリ３１に記憶することができる。
【００６６】
第２の変形例として、通信ネットワーク３によってプログラムを受信し、前述したように記憶することができる。
【００６７】
従来の方法では、コンピュータは、例えばキーボード３４又はマウス３５又は他の任意の手段によってオペレータとのインターフェースのような役割を果たす画面３３も有する。
【００６８】
中央ユニット３０又はマイクロプロセッサ（ＣＰＵ）は、本発明の実施に関係する命令を実行する。
【００６９】
電源投入で、例えば読み取り専用メモリ３１などの不揮発性メモリに記憶されている本発明に関係するプログラム及び方法は、ランダムアクセスメモリ３２に転送され、次いでそこに本発明の実行可能コード並びに本発明を実施するために必要な変数が含まれることになる。
【００７０】
従って、通信ネットワークのクライアントステーションに組み込まれたランダムアクセスメモリ３２は、特にキャッシュメモリ１２とコインのテーブル１４とを記憶するためのレジスタを備える。
【００７１】
同様に、通信ネットワークのサーバステーションに組み込まれたランダムアクセスメモリ３２は、クライアントステーションの活動を示す値を記憶するためのレジスタ、様々なインターフェース、受領した支払を格納するための電子財布、及び受け取った総額を確認するための為替手形を記憶するための為替手形テーブルを備える。
【００７２】
通信バス４０は、コンピュータの様々なサブ要素間の又はそれにリンクされた間の通信を可能にする。
【００７３】
バスの表示は限定的なものではなく、特にマイクロプロセッサは、任意のサブ要素に命令を直接的に又は別のサブ要素によって伝達することができる。
【００７４】
ここで、通信ネットワークにおけるクライアントステーションから実施されるようなオペレーションのリモート実行方法について、図３及び４を参照しながら説明する。
【００７５】
例示として、サーバステーションＨのオブジェクトｏに関連するリモート機能を実行することが望まれる。
【００７６】
各コンピュータオブジェクトは、オブジェクトを記憶するコンピュータに特有のコンピュータアプリケーションのために使用されるプログラミング言語で作成されているので、コンピュータオブジェクトを共有するために通信ネットワークに共通した通信言語を使用しなければならない。
【００７７】
インターネット上では、ＸＭＬ（「eXtended Markup Language」）などの通信言語を使用することができる。
【００７８】
ネットワーク上でコンピュータオブジェクトを表し、それらの機能にアクセスするための、この通信言語の使用はCanon Research Centre France S. A.による欧州特許出願0 401 754.7で詳細に説明されている。
【００７９】
オブジェクトｏに対して機能を離れて呼び出すためにネットワークの通信言語に翻訳することが必要な様々なデータフィールドの説明を以下に示す。
【００８０】
フィールド：interfaces
このフィールドによって複数のインターフェースを離れたアプリケーションに送信することが可能になる。
【００８１】
0003703419.tif 000002
このフィールドは、ＪＡＶＡ又はＣ＋＋言語で定義されるようなオブジェクトクラスの上位概念に対応する。
【００８２】
インターフェースは、コンピュータオブジェクトｏによってサポートされるオペレーション又は機能を記述する。
【００８３】
これらの機能は一般に入力引数を使用し、可能ならば結果を供給する。
【００８４】
インターフェースは、このインターフェースをサポートする全てのオブジェクトが通信言語に翻訳されるときに含む属性又はデータフィールドも記述する。
【００８５】
インターフェースは、他のインターフェースまで拡張するにせよ、他のインターフェースを使用するための略記だけを供給するにせよ、それらの他のインターフェースへの参照を含むこともできる。オブジェクトは、この場合、それら他の参照された全てのインターフェースをサポートする。
【００８６】
フィールド：attribute
このフィールドは、インターフェースをサポートするオブジェクトが通信言語に翻訳されるときに含む属性のリストを含む。
【００８７】
フィールド：functions
このフィールドは、このインターフェースをサポートするコンピュータオブジェクトに関連付けられた機能又はオペレーションのリストを含む。
【００８８】
0003703419.tif 000003
このフィールドは機能の上位概念に対応する。機能は、例えば名前、使用される入力引数のタイプ、この機能が実行されるときに得られるオブジェクトのタイプなどのその署名によって識別される。
【００８９】
フィールド：arguments
このフィールドは、機能がその実施を要求する入力引数のリストを含む。
【００９０】
0003703419.tif 000004
このフィールドは機能の入力引数に対応し、例えばリテラルオブジェクト又はコンプレックスオブジェクトである場合がある。
【００９１】
従って、機能フィールドによって離れたオブジェクトに対して機能を呼び出すことが可能になる。上述したように、ターゲットオブジェクトｏと機能の入力引数とを指定しなければならない。
【００９２】
従って、離れた機能ｆを実行するために、クライアントステーションＵ上でこの機能を制御する方法は、まずオブジェクトｏに関連付けられたインターフェースがクライアントステーションＵ上で利用可能かどうかチェックするテストＥ１を含む。
【００９３】
実際には、対応するインターフェースが既にクライアントステーションＵのキャッシュメモリ１２に記憶されているかどうかがチェックされる。
【００９４】
記憶されていない場合、このインターフェースをサーバステーションＨから取得するようにステップＥ２が実施される。
【００９５】
インターフェースを取得するための要求は、そのインターフェースのコンピュータアドレスを含む。
【００９６】
サーバステーションＨがインターフェースを取得するための要求を受信したとき、サーバステーションは要求されたインターフェースを参照するコンピュータアドレスをその要求から抽出する。
【００９７】
サーバステーションは、可能ならばこのインターフェースをその通信ネットワークの通信言語に翻訳した後、要求されたインターフェースをテーブルから発見し、それをクライアントステーションＵに送信することができる。
【００９８】
前述したように、このインターフェースは、それらの機能を実行するためのコードに関連付けられた１つ又は複数の機能を含む。
【００９９】
本発明によれば、各機能は、この機能の実行のコストにも関連付けられている。
【０１００】
画像を離れて処理するためのインターフェースの一例を以下に示す。
【０１０１】
このインターフェースには次の３つの機能がある。
【０１０２】
価格が一定である「ConvertToB&W」。この機能は画像を白黒に変換することを可能にする。
【０１０３】
価格が画像のサイズと回転角度に依存する「Rotate」。この価格は、クライアントステーションが評価することができる式の形式で表される。即ち、この機能は画像の向きを変更することを可能にする。
【０１０４】
価格がサーバステーションによって判定されるパラメータに依存する「Flip」。クライアントは、自分で価格計算することは不可能である。価格は、例えば次のコンピュータアドレスで入手できる。
【０１０５】
http://oceania/web-obj/class/Image.xml#flip#price
この機能は、画像に対称を適用することを可能にする。
【０１０６】
0003703419.tif 000005
0003703419.tif 000006
インターフェースを受け取った後、記憶ステップＥ３は、クライアントステーションのキャッシュメモリ１２に後で使用するためにインターフェースを記憶する。
【０１０７】
読み取るステップＥ４は、実行することを希望する機能ｆに関連付けられたコストｃを、受信したインターフェース中において読み取る。
【０１０８】
テストステップＥ５で、コストは計算されるべき式かどうかがチェックされる。
【０１０９】
そうである場合、評価ステップＥ６は、受信された式から実行されるべき機能のコストを評価することを可能にする。
【０１１０】
これは、例えば回転機能「rotate」でも同様である。
【０１１１】
そうでない場合、これはテストステップＥ７で、その機能のコストは固定されているかどうかがチェックされる。これは、例えば画像の白黒への変換に関しても同様である。
【０１１２】
そうでない場合、取得するステップＥ８がサーバステーションに機能のコストを要求するために実施される。これは対称機能「flip」に関しても同様である。
【０１１３】
離れて実行することが希望されている機能ｆに関連付けられたコストｃが既知である場合、少なくとも実行されるべき機能のコストより大きな総額Ｓを取得するために手順Ｅ９が実施される。
【０１１４】
総額Ｓを取得するためのこの手順を、図４を参照しながら詳細に説明する。
【０１１５】
総額Ｓを取得するために、通信ネットワーク上で消費することができる一連のコインを作成するためにクライアントステーションＵ上で電子マネーを生成することが必要である。
【０１１６】
例示として、この電子マネーを生成するために、Rivest及びShamirによって提案されたＰａｙＷｏｒｄとして知られるシステムが使用される。
【０１１７】
このシステムの説明は、インターネットアドレスhttp://theory.Ics.mit.edu/-rivest/RivestShamir-mpay.psで参照することができる。
【０１１８】
このシステムは、一般的に言って、乱数Ｗnを使用してハッシュ機能によって一連の番号を生成することである。
【０１１９】
このＰａｙＷｏｒｄシステムは、信頼性があり、各個別の支払を確認するためにサードパーティの機関（銀行、公証人など）の承認を必要としないという利点を有する。
【０１２０】
実際には、テストステップＥ１０では、サーバステーションＨがクライアントステーションＵに知られているかどうかがチェックされる。知られていない場合、クライアントステーションはランダムドローイングステップＥ１３で無作為に番号を引く。そのランダムな番号をＷnとする。
【０１２１】
次に、コイン作成ステップＥ１４では、次のように周知のハッシュ機能が繰り返し適用される。
【０１２２】
Ｗn-1＝ｈ（Ｗn）
このハッシュ機能ｈは、番号Ｗn-1から以前の番号Ｗnを発見できないようにするために、可逆でない特殊性を有する。
【０１２３】
従って、一連のコインＷn、Ｗn-1、…Ｗ2、Ｗ1、Ｗ0が得られる。
【０１２４】
このようにして得られた番号のチェーンのＷ0の末端はルートコインと呼ばれ、様々なコインの認証を確認することを可能にする。
【０１２５】
このＰａｙＷｏｒｄシステムは、ハッシュ機能を適用するだけでコインの認証を確認することを有利に可能にする。
【０１２６】
このような電子マネーが生成されるとき、クライアントステーションＵは、その識別を後続のベンダーに証明するために銀行から証明書を得なければならない。
【０１２７】
２つの証明書が使用される。
・クライアントステーションからの要求に応答して銀行が発行する銀行の証明書Ｃ（ＰＫe）
・クライアントステーションによって直接的に生成された為替手形Ｃ（Ｗ0）
銀行の証明書Ｃ（ＰＫe）は、その銀行が真正のコインの償還へのいかなる要求も引き受けるという、各ベンダーに対する保証である。為替手形Ｃ（Ｗ0）は、クライアントステーションによって作成されたコインが実際に真正のコインであり、銀行が引き受けるものであるという各ベンダーに対する保証である。
【０１２８】
実際には、クライアントステーションは、そのクレジットカード番号、並びにその公開鍵ＰＫeを金融機関に送信する。
【０１２９】
金融機関は、その金融機関の識別、クライアントステーションの識別、及びそのクライアントステーションの公開鍵ＰＫeを含む銀行の証明書Ｃ（ＰＫe）を返す。この証明書は、また、それが含む情報を認証する電子署名を含み、この署名は秘密鍵ＳＫbを用いて銀行によって作成される。
【０１３０】
様々なコインＷ0、Ｗ1、…Ｗnが生成された後、これらのコインは、図１に示すように、サーバＨの識別子と、コインのテーブル１４で使用された最後のコインのインデックスに対応する、値０に初期化されたインデックスｉに関連付けて、記憶ステップＥ１５でコインのテーブル１４に記憶される。
【０１３１】
更に、為替手形作成ステップＥ１６で、クライアントステーションＵは、銀行から取得した銀行の証明書Ｃ（ＰＫe）からサーバステーションＨに宛てた証明書又は為替手形を生成する。
【０１３２】
各為替手形は、事前に受信した銀行の証明書Ｃ（ＰＫe）、その証明書の宛先であるサーバＨの識別、及びルートコインＷ0を含む。この為替手形は、それが含んでいる情報を認証する電子署名も含み、この署名はクライアントステーションがその秘密鍵ＳＫeを用いて作成される。
【０１３３】
為替手形作成のこのステップＥ１６の後で、送信ステップＥ１７でサーバステーションＨに電子署名が送信される。
【０１３４】
為替手形及びコインは所与のサーバに特有のものである。
【０１３５】
最後に、サーバステーションＨは、証明書Ｃ（ＰＫe）によって情報、即ち金融機関の識別、クライアントステーションの識別、クライアントステーションの公開鍵ＰＫe、ルートコインＷ0を受信する。
【０１３６】
クライアントステーションの公開鍵ＰＫeは銀行の証明書Ｃ（ＰＫe）に含まれることに留意されたい。従って、この鍵の認証は、この証明書の署名を銀行の公開鍵ＰＫbを用いて復号することによって得られた値を、この証明書に含まれる（署名を除く）初期情報と比較することによって確立することができる。
【０１３７】
更に、コインＷ0がクライアントステーションＣ（Ｗ0）の為替手形に含まれるということも述べなければならない。従って、このコインの認証は、この証明書の署名を銀行の公開鍵ＰＫbを用いて復号することによって得られた値と、この証明書に含まれる（証明書を除く）初期情報とを比較することによって確立することができる。
【０１３８】
従って、二重署名により、各サーバは本当にそれがクライアントによって発行され、銀行に知らされ、銀行によって電子マネーコインを発行することを承認されたルートコインＷ0を所有していることを確認することができる。
【０１３９】
テストステップＥ１０の一方で、サーバＨは既に知られており、テストステップＥ１１でコインのテーブル１４がこのサーバステーションＨで離れて機能を実行するために使用可能な充分なコインを含むかどうかがチェックされる。
【０１４０】
含まない場合、除去ステップＥ１２は、コインのテーブル１４の残りのコインを消去し、サーバステーションＨ上で使用することができる新しいコインを生成するために、以前に説明したステップＥ１３からＥ１７が実施される。
【０１４１】
従って、コインのテーブル１４は充分な電子マネーを含まなくなると、直ちに自動的に充填される。
【０１４２】
クライアントステーションＵによって生成されるコイン数ｎは、可能であればサーバステーションＨの使用頻度に依存させることができる。
【０１４３】
このコイン数は一定にしておき、決定は一度限りとすることもできる。
【０１４４】
コイン作成ステップＥ１４の間中多数のコインを生成し、後続の使用、即ち、クライアントステーションＵから、同じコンピュータオブジェクトｏに対していくつかの機能を離れて実施することを希望するときのために、コインのテーブル１４にそれらを記憶しておくことが好ましいことに留意されたい。
【０１４５】
図３に戻り、クライアントステーションＵは、次にステップＥ１８でコンピュータオブジェクトｏに対して機能ｆを離れて実行するための要求を生成する。
【０１４６】
ここで、決して限定するものではないが、機能を実行するために必要な総額が所定のオペレーションのリモート実行に対する要求に直接的に入力される。
【０１４７】
この目的では、読み取りステップＥ１９でコインのテーブル１４に、使用された最後のコインのインデックスを読み取る。
【０１４８】
機能ｆのコストｃに対して、及び各コインＷiがコストｃのユニットフラクション（a unit fraction）に対応すると想定すると、ｃコインはコインのテーブル１４から受領される。
【０１４９】
実際には、値（Ｗi+c、ｉ＋ｃ）がリモート実行要求に入力される。
【０１５０】
この入力ステップＥ２０の後、記憶ステップＥ２１は、使用される最後のコインに対応する新しいインデックスｉ＋ｃを、サーバＨに対するコインのテーブル１４に記憶する。
【０１５１】
従って、送信ステップＥ２２の間中、クライアントステーションＵによって送信されるリモート実行要求は、サーバステーションＨ上で要求された機能を実行するために必要な総額を含む。
【０１５２】
必要ならば、受信ステップＥ２３がオブジェクトｏの機能ｆの実行結果を受信することを可能にする。
【０１５３】
従って、この機能は実行され、要求に応じて支払われる。
【０１５４】
ここで与えられるデジタル画像の操作の例で、クライアントステーションＵのユーザは、画像処理ソフトウェアを事前に購入するよう強制されることはない。反対に、ユーザは画像を処理するために実際に使用した機能に関してだけ支払うことになる。
【０１５５】
上述した小額決済システムによって、コインは、機能のリモート実行に対する要求内に少量のマネー空間しか占めない。
【０１５６】
各生成されたコインは、例えば３２バイトの長さを有する。生成された一連のコインのコインインデックスは、２１６個のコインを生成することができる１６ビットで符号化することができる。
【０１５７】
更に、実行コストはクライアントステーションには前もって知られておらず、サーバステーションによって、特にその機能が適用されるオブジェクト又はデータに従って自由に固定することができる。
【０１５８】
従って、実行し易い、ある比較的高速の機能（例えば一辺当たり１６ピクセルの画像の白黒への変換）は、かなり長くて複雑なオペレーション（例えば、一辺当たり２０４８ピクセルの画像の３５°の回転）に比較して費用は掛からない。例えば白黒への変換は、サーバステーションＨによって１サンチームが請求されるが、回転の方は１フラン請求される。
【０１５９】
次に、図５及び６を参照しながらサーバステーション上で機能を実行する方法について説明する。この機能は、クライアントステーションＵにより離れて始動される。
【０１６０】
サーバステーションＨ上で支払の対象となる機能を実行する前に、サーバステーションＨは送信ステップＥ１７の一方でサーバＨで受信された為替手形を事前に記憶する必要がある。
【０１６１】
為替手形を処理するためのこの手順を図５に例示する。
【０１６２】
取得するステップＥ３１で、サーバステーションＨは、証明書の本文から銀行によって使用される署名手順に対応する銀行の公開鍵ＰＫbを取得することができる。
【０１６３】
前述のように、銀行の証明書Ｃ（ＰＫe）をチェックするステップＥ３２を、署名を確認するために銀行の公開鍵ＰＫbを用いて実施することができる。
【０１６４】
テストステップＥ３３の一方でこの署名が有効でない場合、手順は中断される。
【０１６５】
有効な場合は、クライアントステーションの公開鍵ＰＫeを読み取るために、読み取りステップＥ３４が実施される。この公開鍵ＰＫeは、ステップＥ３５で、ルータが受信した為替手形の署名Ｃ（Ｗ0）をチェックする。
【０１６６】
テストステップＥ３６の一方で、この署名が有効でない場合、この手順は中断される。
【０１６７】
有効な場合は、クライアントステーションＵの識別を読み取るために読み取りステップＥ３７が実施される。
【０１６８】
記憶ステップＥ３８は、次いで為替手形をサーバステーションＨの為替手形テーブル２５に記憶する。
【０１６９】
実際には、クライアントステーションＵの各識別子は、認証の証明書又は為替手形Ｃ（Ｗ0）に関連付けて、より具体的には、ルートコインＷ0の値に関連付けて記憶される。
【０１７０】
ここで、図６を参照しながらサーバステーションＨ上で機能を実行するための手順について説明する。この機能は、クライアントステーションＵによって制御されている。
【０１７１】
受信ステップＥ４１は、クライアントステーションＵによって送信されたリモート実行要求を受信する。
【０１７２】
テストステップＥ４２は、クライアントステーションＵに対応するサーバステーションＨの為替手形テーブル２５の中に為替手形があるかどうかをチェックする。ない場合、機能のリモート実行のための要求は拒否され、ネットワークによる送信は中断される。
【０１７３】
ある場合は、テストステップＥ４３で、その要求が実際に特定フィールドで実行されるべき機能に対する支払に対応する総額Ｓを含むことをチェックする。
【０１７４】
含まない場合、リモート実行要求を処理するための手順も中断される。
【０１７５】
含む場合、クライアントステーションＵで生成されたコインのチェーンにおけるそのインデックスｉとコインＷiに対応する記憶された総額を読み取るために、抽出ステップＥ４４が実施される。
【０１７６】
テーブル２５の中の為替手形を読み取ることにより、読み取りステップＥ４５で、ルートコインＷ0の値を取得することが可能になる。
【０１７７】
確認ステップＥ４６は、次いでコインＷiの認証をチェックする。
【０１７８】
実際には、ハッシュ機能ｈが、この現在のコインＷiに繰り返し、ここではｉ回適用される。
【０１７９】
ｈ（ｈ（…ｈ（Ｗi）））
得られたこの値はルートコインＷ0の値と比較される。
【０１８０】
この確認ステップＥ４６を加速するために、ハッシュ機能ｈを繰り返しｉ〜ｊ回、即ち、コインＷjを発見するために充分な、現在のインデックスｉよりも少ないインデックスｊだけ、また、機能の実行に対して支払うためにサーバが既に受領した回数だけ適用することも可能である。
【０１８１】
得られた値が異なる場合、機能実行要求を処理するための手順が中断される。
【０１８２】
従って、サーバステーションＨは、支払のない同じシステムに近い高いスループットを維持する。
【０１８３】
これは、サーバステーションＨによる支払の確認が、ハッシュ機能の適用からなる単純なオペレーションであるからである。具体的には、確認を金融機関に依存する必要がなく、また費用の掛かる暗号化方法を実施する必要もない。これは、一定の場合において、離れて秒当たり数千ものオペレーションを実行する必要があるシステムにおいて重要である。
【０１８４】
受信したコインの確認の後、処理されるべきオブジェクトのインターフェースを取得するために、読み取りステップＥ４７が実施される。
【０１８５】
サーバステーションＨに記憶されているこのインターフェースを読み取ることにより、オブジェクトｏに適用された機能ｆの実行に関連するコストｃが得られる。
【０１８６】
この取得するステップＥ４８が、図３を参照しながら上述したように実施される。実際には、実行コストｃが固定されており、インターフェースに直接的に読み取られるか、それとも実行コストが計算されるべき式の解であるかのどちらかである。
【０１８７】
次に、読み取りステップＥ４９が受信した最後のコインのインデックスｊを読み取り、テストステップＥ５０が受信したコイン数が実行されるべき機能のコストｃを支払うために充分かどうかをチェックする。
【０１８８】
実際には、テストステップＥ５０で次の等式がチェックされる。
【０１８９】
ｃ＝ｉ−ｊ
ここで、ｃは機能ｆに関連付けられたコストであり、
ｉは現在のコインのインデックスであり、
ｊはサーバステーションＨで受信された最後のコインのインデックスである。
【０１９０】
当然、コストｃがｉ−ｊより少ないか又は等価であることを確認するだけということが可能である。
【０１９１】
機能のリモート実行要求に含まれる支払が充分でない場合、この要求を処理するための手順は中断される。
【０１９２】
充分な場合、記憶ステップＥ５１は、新しいインデックスｉを受信した最後のコインのインデックスｊとして記憶する。
【０１９３】
加算ステップＥ５２は、次いで、サーバステーションＨの電子財布の中のインデックスｉに関連付けられた、受領したコインＷiを記憶する。
【０１９４】
次いで、従来の方法で、実行ステップＥ５３は、オブジェクトｏに対して要求された機能を実行する。
【０１９５】
テストステップＥ５４は、この機能の実行の最後に結果があるかどうかをチェックする。
【０１９６】
結果がある場合、送信ステップＥ５５は、その結果をクライアントステーションＵに返すように適用される。
【０１９７】
本発明によって、機能は実行されるたびに支払われるので、サーバステーションがクライアントステーションＵごとにアカウントを開設する必要はない。
【０１９８】
定期的に、各サーバステーションＨは、実際の金額を回収するために、各インデックスｉに関連付けられ、電子財布に格納されている値Ｗiを金融機関に再送信することができる。
【０１９９】
従って、それらの実行を遅らせずに、通信ネットワークの様々なオブジェクトに対して報酬の支払われる機能を離れて実行することができる。
【０２００】
次に図７Ａ及び７Ｂを参照しながら、通信ネットワークのサーバステーションＨ上で実施される際の、オペレーション実行方法の２つの別の実施形態を説明する。
【０２０１】
これらの実施形態では、サーバステーション上でオペレーションを実行する方法は、各クライアントステーションに適用される使用の初期段階を取得する。
【０２０２】
オペレーションを実行する方法は、まずクライアントステーションＵによって送信されたオペレーションを実行するための要求を受信するステップＥ６１を含む。
【０２０３】
一般的に、実行要求に組み込まれているクライアントステーションＵの識別を取得するために、取得するステップＥ６２が実施される。
【０２０４】
ここで、サーバステーションＨ上のこのクライアントステーションＵの活動を示す値Ｖが更新される。
【０２０５】
図７Ａで示される実施形態では、活動を示すこの値Ｖは、クライアントステーションＵによって送信された要求に応答してサーバステーション上で実行される各オペレーションにそれぞれ関連付けられた実行コストｃの総額に対応する。
【０２０６】
このように、サーバステーションＨ上でクライアントステーションＵの要求で実行されるオペレーションに関連付けられた実行コストの全てが合計される。
【０２０７】
この目的のため、活動を示す値Ｖを更新するステップで、実行されるべき現在のオペレーションに関連付けられた実行コストｃがこの値に加算される。
【０２０８】
実際には、読み取りステップＥ６３で、クライアントステーションＵに関連付けられたアカウント上に記憶された活動を示す値Ｖを知ることができる。
【０２０９】
ここで説明するオブジェクト指向システムでは、要求された機能ｆが実行されるコンピュータオブジェクトｏに関連するインターフェースを取得するために、取得するステップＥ６４が実施される。
【０２１０】
取得するステップＥ６５は、このインターフェースを読み取ることで、機能ｆに関連付けられた実行コストｃを取得することを可能にする。
【０２１１】
クライアントステーションの活動を示す値Ｖの適切な更新は、
Ｖ＝Ｖ＋ｃ
として加算ステップＥ６６で実行される。
【０２１２】
比較ステップＥ６７は、活動を示す値Ｖを所定の閾値Ｔと比較する。
【０２１３】
ここで、この所定の閾値は、サーバステーションによって所定の総額Ｔに対応する。この総額Ｔは、クライアントステーションによって事前に支払われる一時金に対応させることができる。このタイプの機能では、この一時金が消費されたときだけ、サーバステーションによって実行されたオペレーションを請求しなければならない。
【０２１４】
総額Ｔは、サーバステーションによって提供されるサービスの無料試用に関する提案に対応することもできる。
【０２１５】
活動を示す値Ｖがこの所定の閾値Ｔに達しない場合、即ち、活動を示す値Ｖが厳密には所定の閾値Ｔよりも少ない場合、機能ｆを実行するために、サーバステーション上で実行ステップ６８が実施される。
【０２１６】
記憶ステップＥ６９は、クライアントステーションＵに関連付けられたアカウント内における後続の使用のために、更新された活動を示す値Ｖを記憶する。
【０２１７】
従来の方法で、機能ｆの実行後に、テストステップＥ７０は、その結果がこの機能の実行の最後に供給されたかどうかをチェックする。
【０２１８】
供給された場合、送信するステップＥ７１は、この結果をクライアントステーションＵに送信する。
【０２１９】
比較ステップＥ６７の一方で、活動を示す値Ｖが所定の閾値Ｔに達する場合、即ち、活動を示すこの値Ｖが、所定の閾値Ｔよりも大きいか又は等価である場合、送信するステップＥ７２はクライアントステーションＵに機能ｆを無料で実施することはできず、クライアントステーションに請求する必要があることを示す要求を送信する。
【０２２０】
実際には、ここで説明した例示的実施形態では、この送信するステップＥ７２の間中、要求は実行されるべき機能の実行コストｃを含む。
【０２２１】
図７Ｂに、オペレーション実行方法の別の実施形態を示す。
【０２２２】
この実施形態では、サーバステーションＨ上でのクライアントステーションＵの活動を示す値は、クライアントステーションＵによって送信された様々な実行要求に応答してサーバステーションＨ上で実行されるべきオペレーションの数に等しい。
【０２２３】
上述したように、オペレーション実行方法は、機能ｆを実行するための要求を受信するステップＥ６１を含む。
【０２２４】
取得するステップＥ６２によって、受信した実行要求に組み込まれている情報からクライアントの身分証明書を取得することもできる。
【０２２５】
読み取りステップＥ６３で、クライアントステーションＵに関連付けられたアカウントに記憶された活動を示す値Ｖを知ることができる。
【０２２６】
更新するステップＥ６６は、次いで、次のように、活動を示すこの値Ｖを１単位だけ増加させることから構成される。
【０２２７】
Ｖ＝Ｖ＋１
比較ステップＥ６７は、次いで、活動を示す値Ｖを所定の閾値Ｔと比較するために、上述のように実施される。
【０２２８】
ここで、この所定の閾値ＴはクライアントステーションＵによるサーバステーション上の機能の呼出し数に対応しており、Ｔを超える数は後続の機能が支払われる数である。
【０２２９】
非限定的な例示のために、この所定の閾値Ｔを１０に等しくすることができる。
【０２３０】
そして、このオペレーション実行方法のステップＥ６８からＥ７２は、図７Ａを参照しながら上述したものと同一である。
【０２３１】
このオペレーションを実行する方法により、サービスが支払対象となるサーバステーションＨ上で、初期段階を無料で容易に実施することが可能になる。
【０２３２】
サーバステーションＨは、勿論、クライアントステーションがいつでもそのアカウントの状態と値Ｖを参照できるようにすることができる。
【０２３３】
従って、クライアントステーションによって送信された実行要求が受信され次第、このクライアントステーションに、所定のオペレーションを実行するための要求を単に送信する以外に追加のオペレーションを要求せず、報酬を払わずにサーバステーションによってオペレーションを実行することができる。
【０２３４】
更に、サーバステーション上でオペレーションが無料で実行されている期間は、サーバステーション上での各クライアントステーションの活動を示す値から定義される。この値は、サーバステーション上でオペレーションを実行するための新しい要求が受信されるたびに更新される。
【０２３５】
所定の閾値を、例えば広告を介してサーバステーションによって供給されるサービスの無料試用の初期段階に、又はクライアントステーションによって既に支払い済みの一時金に対応させることができる。
【０２３６】
このような初期の無料段階は、ユーザのサーバステーションの使用頻度に関わらず、各ユーザに完全に適合される。
【０２３７】
クライアントステーションの活動を示す値が、クライアントステーションによって送信された、そのオペレーションを実行するための要求の受信に応答してサーバステーション上で実行されるオペレーションにそれぞれ関連付けられた実行コストの総額である場合、クライアントステーションの活動を示す値は、サーバステーション上で実際に展開された総額に対応する。
【０２３８】
所定の総額に対応するある値を超えると、サーバステーションは実行したオペレーションのそれぞれの実行コストに等しい額で報酬を受け取る。
【０２３９】
サーバステーションによって実行することができる様々なオペレーションの実行コストに基づいて活動を示すこの値は、サーバステーションによって供給されたオペレーションが、相互に非常に異なるコストを有するときには特に好く適合する。
【０２４０】
クライアントステーションの活動を示す値が、クライアントステーションによって送信される、オペレーションを実行するための要求の受信に応答してサーバステーション上で実行されるオペレーション数に等しいときは、活動を示す値はクライアントステーションによるサーバステーションの呼出し数に従って決定される。
【０２４１】
図７ＡとＢを参照しながら説明したようなそれらのオペレーション実行方法の実施と平行して、クライアントステーションＵ上で機能をリモート実行するための方法は、図８に示すように僅かに変更される。
【０２４２】
離れて機能を実行するこの方法は、まずリモート機能実行要求を生成するステップＥ８０を含む。
【０２４３】
前述のように、コンピュータオブジェクトｏは、ｏを記憶するコンピュータに特有のコンピュータアプリケーションによって使用されるプログラミング言語で書き込まれており、従って、コンピュータオブジェクトを共有するために、また、特にそれらのオブジェクトｏに対して機能を離れて呼び出すのに、通信ネットワークに共通の通信言語を使用しなければならない。
【０２４４】
前述した様々なデータフィールドを有するＸＭＬ（「eXtended Markup Language」）などの通信言語を使用することが可能である。
【０２４５】
そして、オブジェクトｏに対して機能を離れて実行する要求が、送信ステップＥ８１でクライアントステーションＵによってサーバステーションＨに送信される。
【０２４６】
次に、結果受信ステップＥ８２は、図７Ａ及び７Ｂを参照しながら前述したように、オペレーションを実行する方法の最後でサーバステーションＨによって送信された結果を受信することを可能にする。
【０２４７】
テストＥ８３は、サーバステーションＨ上での機能ｆの実行が支払われるべきものであることを示す要求が受信されるかどうかをチェックする。
【０２４８】
受信されない場合、リモート機能ｆの実行の手順は終了する。
【０２４９】
受信される場合、サーバステーションＨ上での機能ｆの実行を取得するために、クライアントステーションＵは、少なくともこの機能ｆの実行コストに等しい総額を送信しなければならない。
【０２５０】
ステップＥ８４は、機能ｆに関連付けられた実行コストｃを取得することを可能にする。
【０２５１】
この実行コストｃは、図７Ａ及び７Ｂで前述したように、送信ステップＥ７２でサーバステーションによって送信される要求に直接含めることができる。
【０２５２】
含めることができない場合、この実行コストを取得するために、特別な手順が実施される。
【０２５３】
機能ｆの実行コストｃを取得するこの手順は、図３を参照しながら前述したステップＥ１からＥ８に対応する。
【０２５４】
ここで、所定の閾値Ｔに達しているとき、オブジェクトｏに関連付けられたインターフェースは、送信ステップＥ７２でサーバステーションＨによって送信された要求の中で既に送信されている可能性がある。
【０２５５】
離れて実行することが希望される機能ｆに関連付けられたコストｃが知られているときは、少なくとも実行されるべき機能のコストよりも多い総額Ｓを取得するための手順Ｅ８５が実施される。
【０２５６】
総額Ｓを取得するこの手順は、図４を参照しながら詳細に前述した。
【０２５７】
クライアントステーションＵは、使用されるインデックスの最後の１個をコインのテーブル１４に読み取るための、読み取りステップＥ８６を実施する。
【０２５８】
機能ｆのコストｃに対して、及び各コインＷiがコストｃのユニットフラクション（a unit fraction）に対応すると想定すると、ｃコインはコインのテーブル１４から受領される。
【０２５９】
ここで、決して限定するものではないが、機能の実行に必要な総額が、所定のオペレーションをリモート実行するための要求に直接的に入力される。
【０２６０】
実際には、リモート実行要求に値（Ｗi+c、ｉ＋ｃ）が入力される。
【０２６１】
この入力ステップＥ８７の後、記憶ステップＥ８８は、サーバＨに対するコインのテーブル１４に使用される最後のコインに対応する新しいインデックスｉ＋ｃを記憶する。
【０２６２】
従って、送信ステップＥ８９の間中、クライアントステーションＵによって送信されるリモート実行要求は、サーバステーションＨ上で要求された機能を実行するために必要な総額を含む。
【０２６３】
従って、機能は実行され、要求に応じて支払われる。サーバステーションＨ上での機能の実行を、図５及び６を参照しながら説明した。
【０２６４】
勿論、前述した例示的実施形態に対して、本発明の範囲を逸脱することなく、多くの変形形態を作成することができる。
【０２６５】
具体的には、ＰａｙＷｏｒｄシステムは、通信ネットワークにおけるクライアントステーションＵ上で生成することができ、次いでサーバステーションＨ上で消費することができる電子マネーの中で唯一の例である。
【０２６６】
更に、ここで使用される改良されたＸＭＬ言語は、周知の他のシステム、即ちＣＯＲＢＡ、ＤＣＯＭ、ＪＡＶＡ／ＲＭＩと置き換えることができる。
【０２６７】
また、サーバステーションＨ上でのオペレーションを実行する方法の無料の初期段階の後、クライアントステーションによって実行されるオペレーションは、従来の高額決済プロトコルによって請求することができる。
【０２６８】
後者の場合、サーバステーションはクライアントのアカウントを開設し、クライアントによって実行されたオペレーションに対して、所定期間の最後、例えば月末に請求する。
【０２６９】
更に、例示的実施形態は、サーバステーションＨ上でクライアントステーションによって機能が呼び出される度に機能の実行コストｃの値又は１単位だけ増分される活動を示す値Ｖを説明しているが、所定の初期値から各機能の実行コスト又は機能の各呼出しに対する１単位を減算することによってオペレーション実行方法を実施することもできる。
【０２７０】
この場合、アカウントの残高を値０と比較することができる。値０より少ない場合、サーバステーション上でのオペレーションの実行が支払われる。
【０２７１】
最後に、本明細書で説明した機能のリモート実行方法は、分散型オブジェクト指向システムではなくコンピュータシステムに適用することもできる。
【図面の簡単な説明】
【図１】本発明による機能をリモート実行するための方法を実施するために適合された通信ネットワークのクライアントステーションとサーバステーションを示すブロック図である。
【図２】本発明を実施するために適合されたコンピュータを示すブロック図である。
【図３】本発明の第１の実施形態による機能をリモート実行するための方法を示すアルゴリズムである。
【図４】図３で使用される総額を取得する方法を詳細に示すアルゴリズムである。
【図５】第１の実施形態によるサーバステーション上で機能を実行する方法を示すアルゴリズムである。
【図６】第１の実施形態によるサーバステーション上で機能を実行する方法を示すアルゴリズムである。
【図７Ａ】第２の実施形態によるオペレーション実行方法を示すアルゴリズムである。
【図７Ｂ】第３の実施形態によるオペレーション実行方法を示すアルゴリズムである。
【図８】本発明の第２の実施形態によるクライアントステーション上で実施されるオペレーションをリモート実行するための方法を示すアルゴリズムである。
【図１】
0003703419.tif 000007
【図２】
0003703419.tif 000008
【図３】
0003703419.tif 000009
【図４】
0003703419.tif 000010
【図５】
0003703419.tif 000011
【図６】
0003703419.tif 000012
【図７Ａ】
0003703419.tif 000013
【図７Ｂ】
0003703419.tif 000014
【図８】
0003703419.tif 000015