JP4026928B2 - サーバ・グループ間で操作を調整する方法 - Google Patents

サーバ・グループ間で操作を調整する方法 Download PDF

Info

Publication number
JP4026928B2
JP4026928B2 JP12239598A JP12239598A JP4026928B2 JP 4026928 B2 JP4026928 B2 JP 4026928B2 JP 12239598 A JP12239598 A JP 12239598A JP 12239598 A JP12239598 A JP 12239598A JP 4026928 B2 JP4026928 B2 JP 4026928B2
Authority
JP
Japan
Prior art keywords
client
server
servers
group
controller
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.)
Expired - Lifetime
Application number
JP12239598A
Other languages
English (en)
Other versions
JPH1131126A (ja
Inventor
ダニエル・マニュエル・ディアス
アラン・ワンギル・イヤンガー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1131126A publication Critical patent/JPH1131126A/ja
Application granted granted Critical
Publication of JP4026928B2 publication Critical patent/JP4026928B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般的にはサーバ・グループ間で操作を調整する方法に関し、特にサーバ・グループ間でクライアントの認証、情報の収集、グループ・トランザクション、及び複数フェーズ・コミットを調整する方法に関する。本発明の好適な実施例はWWW(World Wide Web)上のトランザクションに関する。
【0002】
【従来の技術】
電子取引は急激に増加しており、この傾向は特にWWWで顕著である。Webサイトに出店する企業も増えている。消費者はWebサイトで製品のオンライン・ショッピングができる。こうした独立した仮想ストアを延長する形で、仮想モールまでWebに登場し始めている。
【0003】
現実のモールと同様、仮想モールも企業及び消費者の両方に資する機会を提供する。企業は、モール上に存在することから利益を得る可能性がある。例えば仮想モール上の仮想ストアは、初めは他のストアから商品を購入するためにアクセスした消費者の注意を引くこともできる。消費者は、モール上で消費及びサービスが統合され調整される機会から利益を得ることがある。仮想モールは、例えば多くの仮想ストアの商品及びサービスの総合ディレクトリを提供できる。また仮想モールは、モール上の全ての仮想ストアのための単独認証点(single point of authentication)となることもできる。更に仮想モールは、複数のストアが関係するグループ・トランザクションを調整することもできよう。
【0004】
これまで、Webに現れた仮想モールのアプローチは2種類ある。第1に、独立した仮想ストアとのハイパーリンクを持つWebページを提供するモールがある。第2に、同じWebサイト内で複数の仮想ストアを提供しているモールがある。これら後者のモールは、IBMのワールド・アベニュー・システム(http://mer.shop.ibm.com)、及びNetscapeのマーチャント・システム(http://home.netscape.com/comprod/products/iapps/capps/mersys.html)などのシステムを利用している。
【0005】
こうしたアプローチそれぞれに欠点がある。最初のアプローチは、URLの収集を除いて独立したストア間で調整を行わない。もう1つのアプローチは、独立したストア間の調整を行うが、仮想ストアは1つのWebサイト内で実現し管理しなければならないという制限がある。従って、第2のアプローチで仮想モールに加わるためには、Webに仮想ストアを確立した企業は、その実現形態を大きく変更する必要があるかもしれない。
【0006】
よって、複数のWebサイトに分散できる独立した複数の仮想ストアを調整する方法が必要である。
【0007】
【発明が解決しようとする課題】
本発明はサーバのグループ間で操作を調整する方法を対象とする。本発明の好適な実施例は、Web上の複数の仮想ストアの調整に関係するが、本発明は他の形態のネットワーク通信にも適用される。
【0008】
本発明の目的は、クライアントが認証情報を求められた場合、認証を更に求められることなく、任意のストアまたはストアの任意のサブセットにてトランザクションを実行できるように、ストアのセット間でクライアントの1回の認証を調整する方法を提供する。
【0009】
本発明の他の目的は、複数のストアからの情報の統合を調整することである。例えばクライアントがアクセスした各ストアのショッピング・バスケットに含まれるアイテムを統合し、この情報の1つの表示をクライアントに与えることが望ましい。他の例として、クライアントが検索のためのキーワードを指定し、ストアの任意のサブセットにサーチ・リクエストを送り、組み合わせられたサーチ結果をクライアントに送ることができるようにすることが望ましい。
【0010】
本発明の他の目的は、複数のストアが関係するグループ・トランザクションのリクエストを調整することである。例えばクライアントはグループ購入を要求でき、これにはストア全体でアイテムのセットについて"オール・オア・ナッシング(all-or-nothing)"の購入が関係する。このような購入では、例えば別々のストアから組み合わせのいいジャケット及びスラックスを選ぶといったことが関係することもある。この種のリクエストは、ストア全体で1回のコミットまたは複数フェーズ・コミットと共に行うことができる。
【0011】
【課題を解決するための手段】
本発明のアーキテクチャはクライアント/サーバ環境であり、1つ以上の参加サーバ及び1つ以上のコントローラ・サーバを含むサーバ・グループがあり、参加サーバはそれぞれ少なくとも1つのコントローラ・サーバと通信できる。この環境で、本発明はサーバ・グループ内のサーバ間の操作を調整する方法を対象とする。方法のステップは、1)クライアント及びサーバの間で状態情報を受け渡す手順が制限された、または未定義のプロトコルを使用してクライアント及びサーバ・グループの少なくとも1つのサーバの間で通信するステップ、2)操作のリクエストをクライアントからサーバの1つへ転送するステップ、及び3)リクエストに応答して複数のサーバ間で少なくとも1つのコントローラ・サーバと通信し、少なくともいくつかのサーバの操作を調整するステップを含む。
【0012】
本発明の好適な実施例は、会話中のクライアント認証の調整及びクライアントによって要求されたグループ・トランザクションの調整を含む。会話中のクライアント認証を調整するために、本発明に従った好適な方法は、1)クライアント及びサーバの間で状態情報を受け渡すために手順が制限されたまたは未定義のプロトコルを使用してクライアント及びサーバ・グループの少なくとも1つのサーバの間で通信するステップ、2)認証を必要とする第1操作のリクエストをクライアントからサーバへ転送するステップ、3)クライアントによりクライアント識別情報を与えるステップ、4)コントローラ・サーバによりクライアント識別情報を確認するステップ、5)コントローラ・サーバによりクライアント認証情報を生成するステップ、6)サーバによりクライアント認証情報を維持するステップ、7)クライアント認証情報を会話で保存するためサーバにより手段を利用するステップ、8)認証を必要とするクライアントによる第2操作のリクエストをサーバの1つに転送するステップ、及び9)会話で保存されたクライアント認証情報及びサーバによって維持されるクライアント認証情報を使用してクライアントを認証するステップを含む。
【0013】
クライアントが要求したグループ・トランザクションを調整するために、本発明に従った好適な方法は、1)クライアント及びサーバの間で状態情報を受け渡すため、手順が制限されたまたは未定義のプロトコルを使用して、クライアント及びサーバ・グループの少なくとも1つのサーバの間で通信するステップ、2)複数のサーバによる参加を要求する操作のリクエストをクライアントからサーバの1つに転送するステップ、及び3)リクエストに応答してサーバ間で少なくとも1つのコントローラ・サーバと通信し、複数のサーバの操作を調整するステップを含む。
【0014】
【発明の実施の形態】
本明細書及び特許請求の範囲で用いているとおり、"クライアント"という用語は、コマンドをコマンドに関連したタスクを実行する他のプログラムまたはアプリケーション(サーバと呼ぶ)に発行するプログラムまたはアプリケーションである。
【0015】
本明細書及び特許請求の範囲で用いているとおり、"CGI(共通ゲートウェイ・インタフェース)"という用語は、WWWクライアントがWebサイトでのプログラムの実行を要求できるメカニズムである。WebサイトはCGIプログラムを実行し、プログラムの出力をクライアントに送る。
【0016】
本明細書及び特許請求の範囲で用いているとおり、"接続法(continuation)"という用語は、クライアントがサーバに送ることのできる新しいリクエストであり、クライアントによる前のリクエストに応答してサーバにより与えられたものである。クライアント/サーバ通信での接続法の例としてハイパーテキスト・リンク(またはハイパーリンク)がある。クライアントがサーバにリクエストを出すときは、サーバはその応答に接続法を加えることができる。サーバにより与えられる接続法は任意の有効なリクエストでよいが、有益な接続法は、一般的にはクライアントによる最初のリクエストと論理的に関係する。
【0017】
本明細書及び特許請求の範囲で用いているとおり、"会話"という用語は、クライアント及びサーバの間の通信のシーケンスであり、サーバは会話の中でクライアントからの各リクエストに対して1組の接続法で応答し、クライアントは常にサーバから与えられた1組の接続法から次のリクエストを拾う。WWWではハイパーテキスト・リンクは接続法の例であり、クライアントは、サーバにより与えられたハイパーテキスト・リンクを辿るときにはサーバとの会話が関係する。具体的には、HTMLの一連のWebページh1、h2、...hnが会話をなすのは、1)ページh1、h2、...hnが全てクライアントによって表示された場合、及び2)1<i<=nのときの全てのiについて、ページhiがページhi−1上のハイパーテキスト・リンクを辿ることによって取得された場合である。割り込みのない会話では、クライアントはただn−1のハイパーテキスト・リンクを辿り、ページh1からhnを得るだけであり、同じ経路で戻る(バックトラックする)ことはない。割り込みのある会話では、クライアントは少なくとも1回はバックトラックする。バックトラックはクライアントが、1)1<=i<nのとき最初にページhiにアクセスする、2)ハイパーテキスト・リンクを辿り、URLを明示的に要求することによってか、またはWebブラウザのキャッシュを使用することによって他のページを表示する、及び3)メモリから(ブラウザのキャッシュ等から)hiを再ロードすることによってページhiに戻るプロセスをいう。
【0018】
本明細書及び特許請求の範囲で用いているとおり、"ホームページ"という用語は、Webサイトに格納された情報までWWWユーザを案内する目次である。ホームページはしばしばマルチメディア・コンテンツを含む。
【0019】
本明細書及び特許請求の範囲で用いているとおり、"ハイパーリンク"または"ハイパーテキスト・リンク"は、語句、アイコン、ピクチャ等に組み込まれ、選択すると起動されるURL(Universal Resource Locator)等のネットワーク・アドレスである。クライアントがハイパーリンクを起動すると、ハイパーリンクに対応した情報がクライアントに返され、Webブラウザを使用して表示される。
【0020】
本明細書及び特許請求の範囲で用いているとおり、"HTML(ハイパーテキスト・マークアップ言語)"は、Webクライアントによって表示されるハイパーテキスト文書を作成し接続するためにWebサーバによって用いられる言語である。ハイパーテキスト文書の他の用法については、Bernsteinらによる1993年4月20日付、米国特許番号第5204947号、Bernsteinらによる1994年3月22日付、米国特許番号第5297249号、及びLewisによる1994年10月11日付、米国特許番号第5355472号を参照されたい。
【0021】
本明細書及び特許請求の範囲で用いているとおり、"HTTP(ハイパーテキスト転送プロトコル)"は、コンピュータ間でデータを転送するためにWWWによって用いられるプロトコルである。HTTPによりクライアントはファイルを要求するか、またはCGIプログラムを起動することによって、サーバからデータを取得することができる。HTTPは無状態プロトコル、つまりクライアントからサーバへのリクエストは全て個別に扱われるプロトコルである。サーバはクライアントとの前の接続について記録を持たない。URLの先頭の"http:"は、使用されるプロトコルがHTTPであることを示す。
【0022】
本明細書及び特許請求の範囲で用いているとおり、"インターネット"という用語は、TCP/IPプロトコルを使用して互いに接続されたコンピュータのネットワーク及びゲートウェイの集まりである。
【0023】
本明細書及び特許請求の範囲で用いているとおり、"サーバ"という用語は、他のプログラムまたはアプリケーション(クライアントという)のコマンドでタスクを実行するプログラムまたはアプリケーションである。本明細書及び特許請求の範囲で用いているとおり、Webサイトはサーバにもなる。"サーバ"という用語はWebサイトをサポートするWebサーバと同義語ではない。
【0024】
本明細書及び特許請求の範囲で用いているとおり、"トランザクション"という用語は、サーバに対してクライアントによって出されるリクエストを指し示す。
【0025】
本明細書及び特許請求の範囲で用いているとおり、"TCP/IP(転送制御プロトコル/インターネット・プロトコル)"は、データをパケットに分け、パケットをネットワークでルーティングし、宛先でパケットを再構成するプロトコルの集まりである。データは電子メール・テキストからビデオまで任意の形でよい。
【0026】
本明細書及び特許請求の範囲で用いているとおり、"URL(Universal Resource Locator)"は、Web上の情報を一意に識別するまたはアドレスする仕方である。URLは、Webでは電子メール・アドレスと同等とみなすことができる。URLはしかし、他の文書内の深いところに埋められている文書に属する場合は厄介にもなるが、しばしばハイパーリンクでアクセスすることができる。URLの一例として"http://www.arun.com:80/table.html"がある。
【0027】
URLには4つのコンポーネントがある。左端のコンポーネントは使用されるプロトコルを指定する。これはURLの残りの部分とはコロンで分けられる。次のコンポーネントはターゲット・ホストのホスト名またはIP(インターネット・プロトコル)アドレスである。このコンポーネントは左側が"//"で区切られ、右側は"/"またはコロンで区切られる。3つ目のコンポーネントはオプションのポート番号である。このコンポーネントが用いられるときは、左側はコロンで、右側は"/"で区切られる。4つ目のコンポーネントは実際のファイル名またはプログラム名である。
【0028】
上の例で、プロトコルは"http"、ホスト名は"www.arun.com"、ポート番号は"80"、ファイル名は"table.html"である。この例の"http"はハイパーテキスト転送プロトコルを指し示し、ファイル名の拡張子"html"はハイパーテキスト・マークアップ言語を指し示す。
【0029】
本明細書及び特許請求の範囲で用いているとおり、"Webブラウザ"は、WWWでハイパーテキスト文書を表示することのできるクライアント・プログラムである。Webブラウザはインターネットのツアー・ガイドとして働く。つまりビジュアルなデスクトップ、ディレクトリ、及びサーチ・ツールを備え、これらを使用してインターネットをナビゲートまたは"サーフ"することができる。
【0030】
本明細書及び特許請求の範囲で用いているとおり、"Web"または"WWW(World Wide Web)"は、インターネット上のハイパーテキスト文書の集まりである。ハイパーテキスト文書は、他の文書へのハイパーリンクを含み、これを使用して文書から文書へナビゲートすることができる。実際には、インターネットで情報を探す際にWebを使用してサーバからサーバへ、またデータベースからデータベースへの切り替えを行うためにハイパーリンクを選択するが、ハイパーリンクは普通は文書内の強調表示された語句として表示される。Web上のリソースはURL(Universal Resource Locator)を通してアクセスできる。WebはHTML(ハイパーテキスト・マークアップ言語)を利用して、URLに対応した情報を表示し、他のURLへのポイント/クリック・インタフェースを与える。
【0031】
図1に示すように、本発明の好適な実施例に従って用いられるアーキテクチャ全体は、クライアント103及びサーバ・グループ104で構成され、サーバ・グループ104は参加サーバ101及びコントローラ・サーバ102を含む。(コントローラ・サーバ102は本明細書では簡単にコントローラと呼ぶ。)参加サーバ及びコントローラの物理的位置は重要ではない。各参加サーバ101及びコントローラ・サーバ102は、ネットワークで接続された個別コンピュータ上にあってよく、また複数のサーバが1つのコンピュータにあってもよい。更にコントローラや1つ以上の参加サーバはいくつかのコンピュータ上に同時に存在することも可能である。例えばこれは、コントローラや1つ以上の参加サーバがスケーラブルなWebサーバとして実現された場合である。(スケーラブルWebサーバについては、D.Diasらによる"A Scalable and Highly Available Web Server"、Proceedings of COMPCON '96を参照されたい。)
【0032】
コントローラ・サーバ102はクライアント・アカウント情報(例えばユーザID、ユーザ名、パスワード、アドレス、電話番号)を維持する。図1に示すように、各参加サーバ101はコントローラ・サーバ102と通信することができ、クライアント103は各参加サーバ101及びコントローラ・サーバ102と通信することができる。コントローラ及び参加サーバはHTTP等の標準プロトコルを使用して互いに通信できる。また独自プロトコルを使用して通信することもできる。
【0033】
クライアント103は、参加サーバ101及びコントローラ・サーバ102と、クライアント状態情報を維持するための手順が制限されたまたは未定義のHTTP等の通信プロトコルを介して通信する。クライアント状態情報を維持する限定されたまたは未定義の手順とは、このプロトコルを使用したクライアント及びサーバの間の通信タイプの空でないサブセットについて、プロトコルによって定義された手順を使用した会話の中で、会話の残りの部分で状態変数をサーバにより後で取得できるように、クライアントのID、クライアント・パスワード等の状態変数を保存することが難しいまたは不可能なことである。
【0034】
参加サーバが実行できるトランザクションは2種類ある。第1に参加サーバは単純トランザクションを実行できる。参加サーバは他の参加サーバ及びコントローラから独立してクライアントを代表して単純トランザクションを実行できる。よってクライアントは単純トランザクションを参加サーバから直接的に要求できる。第2に参加サーバはグループ・トランザクションを実行できる。グループ・トランザクションは、コントローラによる調整の下で1つ以上の参加サーバによって実行される。好適にはクライアントはコントローラからのみグループ・トランザクションを要求できる。
【0035】
図2は、コントローラ・サーバ102が参加サーバ間でクライアント103の認証を調整する本発明の好適な実施例を示す。認証は、クライアント103がサーバ・グループ104のサーバに対して自体を識別するプロセスである。この好適な実施例でクライアント103は、会話中に会話の残りの部分でサーバ・グループの任意のサーバでトランザクションを実行するために、参加サーバまたはコントローラにより認証情報を一度要求されるだけである。
【0036】
ステップ201でコントローラは、好適には参加サーバとオープン接続を確立する。またコントローラは参加サーバと通信する必要のあるとき、その都度新しい接続を確立することもできる。しかしステップ201に示すようにオープン接続を維持すると、その都度新しい接続を確立する場合よりも性能が向上する可能性が大きい。
【0037】
ステップ202でクライアント103は自体を認証せずにサーバ・グループと対話する。例えばクライアントはこの場合カタログをブラウズする。
【0038】
ステップ204でクライアント103は、認証を必要とする会話の最初のトランザクションを実行しようとする。
【0039】
ステップ205でクライアントはユーザID401及びパスワードをHTML形式を介して入力する。機密を守るためにクライアント及びサーバ・グループの間で受け渡される情報は、好適にはSSL(Secure Sockets Layer)等のシステムを使用して暗号化される。(SSLについては、A.O.Freier、P.Karlton、P.C.Kocherによる"The SSL Protocol Version 3.0"、Internet Draft、March 1996、http://home.netscape.com/eng/ssl3/ssl-toc.htmlを参照されたい)。
【0040】
ステップ207でクライアントからコンタクトされたサーバは、クライアントが有効なユーザID401及びパスワードを入力したか確認する。クライアントからコンタクトされたサーバが参加サーバなら、参加サーバはコントローラにコンタクトしてユーザID401及びパスワードとを確認しなければならない。クライアントが有効なユーザID401及びパスワードを入力していない場合は、ステップ206でエラー処理が行われる。
【0041】
ステップ206はいくつかの形で実現できる。一例としてクライアントにユーザID401及びパスワードを入力する新しい機会を与えることができる。他の例としては、クライアントに新しいユーザとして登録する機会を与えることもできる。その場合にクライアントは、名前、住所、電話番号等の他の情報も入力するよう促される。他の例として、会話をエラー・メッセージで中断することもできる。この最後の例は、エラー処理を扱うには好適な方法である。もちろん他の実現形態も可能である。
【0042】
有効なユーザID401及びパスワードがステップ207で入力された場合、コントローラはステップ208でセッションID402を生成する。セッションIDは、会話中にクライアントを認証するために用いられる。セッションIDは、悪意あるユーザがセッションIDを類推しにくいように、充分に大きいキー・スペースからランダムに選択される。コントローラはユーザID及びセッションIDをデータベースに格納する。(ファイル・システム等他の記憶方法も使用できる)。現在のセッションIDは、特定のユーザIDに対して前に格納されたセッションIDを無効にする。
【0043】
ステップ208で、クライアントからコンタクトされたサーバは、会話でユーザID401及びセッションID402を状態変数として保存する。本明細書及び特許請求の範囲で用いているとおり、会話で状態情報を保存するとは、サーバ・グループの任意のサーバが後で会話中にクライアントと通信するときに情報にアクセスできるように情報を保存することをいう。
【0044】
ステップ208でサーバはまたそのIDをアクセス・ノード状態変数403にエンコードし、会話でアクセス・ノード状態変数を保存する。アクセス・ノード状態変数403は、認証の間にクライアントによりアクセスされた参加サーバを表す1つ以上の状態変数で構成される。1つの変数を使用して、アクセスした全てのサーバを表すことが可能である。しかし複数の変数を使用してより詳細な情報を表すことが望ましい場合もある。例えば認証の前にアクセスした参加サーバ、認証の後にアクセスした参加サーバ、単純トランザクションが実行された参加サーバ等である。
【0045】
クライアントを認証するためにコントローラがそのデータベースに格納する状態情報と、会話で保存される状態情報は必ずしも同一ではない。他より若干多いかまたは少ない状態変数が格納されることもある。しかしそれでも、それぞれに格納される少なくともいくつかの変数は同じである。例えば好適な実施例で、ユーザID及びセッションIDの変数は両方ともコントローラのデータベースに格納され、会話で保存される。本明細書及び特許請求の範囲で用いているとおり、"クライアント認証情報"という用語は、サーバによって格納され、会話でも保存される1組の変数をいう。
【0046】
会話で状態変数を保存する好適な方法は、動的引数組み込みである。動的引数組み込みでは、サーバがクライアントに送る接続法に状態情報を再帰的に組み込む。この方法によると、クライアントが接続法を選択するときには、クライアントは状態情報を接続法の一部としてサーバに送り返す。そこでサーバは必要に応じて状態情報を調べ、リクエストを処理し、クライアントに送られる接続法の次のセットに状態情報をもう一度組み込む。
【0047】
動的引数組み込みは、WWWのコンテキストでは、ハイパーリンクに変更を加えて状態情報を保存する。一般的にハイパーリンクは変更されて、引数エンベッダと呼ばれる特別なプログラムが起動される。引数エンベッダは、ハイパーリンクの保存された状態情報をWebサイトの他のCGIスクリプトに受け渡す。更に引数エンベッダは、得られたCGIスクリプトの出力の全てのハイパーリンクを変更して自体を起動する。従って、動的引数組み込みにより状態が保存された会話を辿るクライアントには、全てが引数エンベッダへのコールであるハイパーリンクが渡される。
【0048】
図6は、状態情報をWebのハイパーリンクに保存するために動的引数組み込みを使用する方法を示す。ステップ601でクライアントはWebサイトのCGIスクリプトp1を起動する。
【0049】
ステップ603でCGIスクリプトp1は、状態変数x1、x2、...xnをこれらの変数が、会話中に起動されるかもしれない全てのCGIスクリプトからアクセスできるように会話に組み込むことを決定する。CGIスクリプトp1は、クライアントが会話を続けるためにハイパーテキスト・リンクを持つHTMLページhを生成する。しかしページhをクライアントに直接返す代わりに、p1は、embed1と呼ばれる引数エンベッダのモジュールを起動する。CGIスクリプトp1はページh及び状態変数x1、x2、...xnをembed1に受け渡す。
【0050】
ステップ605でembed1モジュールは、ページhの全てのハイパーテキスト・リンクを変更し、embed2と呼ばれる引数エンベッダの他のモジュールを起動する。embed2に渡される引数は、ページhのリンクがHTMLファイルに対するものかCGIスクリプトに対するものかにより異なる。ページhのリンクがHTMLファイルに対するものなら、embed2には、ファイルへの絶対参照と全ての状態変数が渡される。ページhのリンクがCGIスクリプトに対するなら、embed2には、CGIスクリプトへの絶対参照、CGIスクリプトへのオリジナル引数、オリジナル引数の終わりを区切るパラメータ、及び状態変数が渡される。
【0051】
例えばCGIスクリプトp1が、次の2つのハイパーリンクを含むHTMLページと共に、状態変数x1=32とx2=45をembed1に受け渡すとする。
1)"http://www.watson.ibm.com/mail.html";及び
2)"http://www.watson.ibm.com/cgi-bin/prog?argl=55"
【0052】
モジュールembed1はこれら2つのハイパーリンクをそれぞれ次のように変換する。
1)"http://www.watson.ibm.com/cgi-bin/embed2?url=//www.watson.ibm.com/mail.html&x1=32&x2=45";及び
2)"http://www.watson.ibm.com/cgi-bin/embed2?url=//www.watson.ibm.com/chi-bin/prog&argl=55&comma=1&x1=32&x2=45"
【0053】
embed2は、2つ目のハイパーリンクの文字列"comma=1"により、オリジナル引数、arg1を状態変数、x1、x2から区別する。一意の任意の変数名をデリミッタとして使用できる。"comma"が同じ名前の他の変数と衝突するような危険がある場合は、より洗練された方法により、一意のデリミッタ変数名を拾うこともできよう。
【0054】
ステップ607でembed1モジュールは、変更されたハイパーリンクで構成されたHTMLページh'をクライアントに送る。ページh'の全てのハイパーテキスト・リンクはembed2へのコールである。
【0055】
ステップ609でクライアントはページh'からハイパーテキスト・リンクを選択して会話を続ける。ハイパーテキスト・リンクはモジュールembed2を起動する。
【0056】
ステップ611でembed2はリクエストを処理する。embed2への引数がファイルを含む場合はファイルがフェッチされる。embed2への引数がCGIスクリプトへのコールを含む場合は、CGIスクリプトがオリジナル引数及び状態変数で起動される。上の例では、最初のハイパーリンクがクライアントによって選択された場合、embed2はファイル"mail.html"をフェッチする。第2ハイパーリンクがクライアントによって選択された場合、embed2はオリジナル変数arg1=55と状態変数x1=32、x2=45でCGIスクリプト"prog"をコールする。
【0057】
ステップ613で、対応するHTMLファイルがフェッチされるかCGIスクリプトが起動されると、得られる出力と状態変数はembed1に受け渡される。プロセスは次にステップ605に戻り、そこでembed1は出力のハイパーリンクに変更を加える。(動的引数組み込みの詳細はA.Iyengarによる1996年6月7日付、米国特許出願番号第08/660633号、"Preserving State in Stateless Network Protocols"を参照されたい。)
【0058】
動的引数組み込みは、会話で状態を保存する好適な方法ではあるが、ネットスケープ・クッキー(NETSCAPE cookies)もまた使用できる。ネットスケープ・クッキーは非標準HTTP機能であり、HTTPオブジェクトをクライアントに返すサーバはこれにより、クライアントが格納する状態情報1つを送ることもできる。この状態情報に含まれるのは、状態情報が有効な範囲のURLの記述である。クライアントがネットスケープ・クッキーをサポートするなら、クライアントは、それが送るHTTPリクエストをチェックし、リクエストのURLがクライアントが格納している期限切れになっていないクッキーの範囲内かどうか確認する。HTTPリクエストがクッキーによって定義された範囲内なら、クライアントはそのクッキーに対応した状態情報をそのHTTPリクエストに加える。(ネットスケープ・クッキーの詳細については"Persistent Client State HTTP Cookies"、Netscape Communications Corporation、1996、http://home.netscape.com/newsref/std/cookie_spec.htmlを参照されたい。)
【0059】
ネットスケープ・クッキー上で動的引数組み込みを使用することにはいくつか利点がある。動的引数組み込みにより、全ての状態情報の存続期間が会話の存続期間に結び付けられる。クライアントとサーバ・グループの間で新しい会話が開始される毎に新しい状態情報が生成される。クッキーを使用すると、状態情報の存続期間を会話の存続期間に結び付けることは不可能である。クッキーの他の欠点は、標準HTTPプロトコルの一部ではないこと、よって全てのクライアント及びWebサーバと連係するとは限らないことである。対照的に、動的引数組み込みはHTTPをサポートする任意のクライアントまたはWebサーバと連係する。動的引数組み込みの他の利点は、クライアント側の異なるアカウントに対応したWebページをキャッシュすることによって複数のアカウントへのアクセスが同時に可能なことである。
【0060】
HTML形式はまた状態を保存するのにも使用できる。HTML形式は、サーバが隠し変数を形式に組み込むために使用できる。隠し変数は、形式がクライアントによって提出されたときサーバに返される。しかしHTML形式の使用は制限され、厄介である。これはサーバが会話全体で状態情報を保存するために、動的に生成されたHTML形式でクライアントに常に応答しなければならないからである。
【0061】
ステップ300でトランザクションが処理される。トランザクションが単純トランザクションなら、参加サーバまたはコントローラは自体でトランザクションを処理する。要求されたトランザクションがコントローラからのグループ・トランザクションなら、処理は図3のステップによって行われる。
【0062】
ステップ209で単純トランザクションを処理するサーバは、会話を続けるためのハイパーテキスト・リンクと共にHTMLページをクライアントに返す。ページがクライアントに送られる前にページに状態情報を追加することもできる。例えばサーバ・グループが動的引数組み込みを使用している場合、ページ上のハイパーテキスト・リンクを先に述べたように変更しなければならない。サーバ・グループが動的引数組み込みを使用していない場合も、システムがクライアントの認証以降にアクセスしている参加サーバを管理できるように、ページのハイパーテキスト・リンクを変更しなければならないことがある。例えば、ページを送っていない参加サーバに対応したページのハイパーテキスト・リンクを変更して、アクセス・ノード状態変数403を必要に応じて更新するCGIスクリプトが起動される。
【0063】
ステップ210でトランザクションが処理され、応答ページがクライアントに返されると、クライアントは、応答ページから新しいハイパーテキスト・リンクを選択することによって(場合によっては他の情報の入力と共に)会話を続ける。
【0064】
ステップ211では、ステップ210で選択されたハイパーテキスト・リンクが参加サーバをポイントする場合、認証以降にサーバがアクセスしたかどうかがCGIスクリプトによって確認される。これはアクセス・ノード状態変数403を調べることによって行われる。認証以降にサーバがアクセスしていない場合、サーバはステップ212でアクセス・ノード状態変数403に追加される。
【0065】
ステップ213でクライアントからコンタクトされたサーバは、クライアントが認証を必要とするトランザクションを実行しようとしたか確認する。クライアントが実行しようとしなかった場合はトランザクションはステップ300で処理される。
【0066】
認証を要するトランザクションが選択されていることをサーバが確認した場合は、処理はステップ214に続く。このステップでサーバは、ユーザID401及びセッションID402が有効か確認する。サーバが参加サーバならコントローラとのコンタクトが、好適な実施例では、ユーザID及びセッションIDの有効性を確認するために必要である。ユーザID及びセッションIDが有効でない場合は、エラー処理がステップ215で行われる。先にステップ206に関して述べたとおり、エラー処理はいくつかの形で処理できるが、好適にはサーバがエラー・メッセージを含むページで応答することによって会話を終了させる。ユーザID及びセッションIDが有効ならトランザクションは先に述べたようにステップ300で処理される。
【0067】
クライアントによって要求されたトランザクションがグループ・トランザクションなら、図3の本発明の好適な実施例に従って参加サーバ間の調整が行われる。
【0068】
ステップ303でコントローラは、認証以降にアクセスした全ての参加サーバで構成される参加サーバのデフォルト・グループを構成する。この情報は、アクセス・ノード状態変数403に含まれる。クライアントは、デフォルト・グループを受け入れるか、または自体が選択する参加サーバのセットでデフォルト・グループを無効にするオプションを持つ。
【0069】
グループ・トランザクションは、ある有限なn>0のときn個のフェーズで起こり得る。最初のn−1フェーズは準備フェーズと呼ばれる。最後のフェーズはコミット・フェーズと呼ばれる。ステップ304は準備フェーズをまだ実行すべきか確認する。準備フェーズを実行する必要のある場合、ステップ306でコントローラが対応する準備メッセージをステップ303で定義されたグループの全ての参加サーバに送る。
【0070】
ステップ307でコントローラは、定義済みグループの全ての参加サーバから応答を集め、先のフェーズからのものにこれらの応答を加える。参加サーバは肯定応答または否定応答で応答する。参加サーバがある時間内に応答しなかった場合、応答は否定とみなされる。参加サーバは、それらの応答の一部としてHTMLテキストを送ることもできる。HTMLテキストの形式はフレキシブルなので、各参加サーバはグループ操作に対して、参加サーバが選択するハイパーテキスト・リンク、イメージ及びマルチメディア・コンテンツの組み合わせを含めて、カスタマイズされた応答を送ることができる。
【0071】
ステップ309でコントローラは、全ての応答が肯定かどうか確認する。参加サーバの応答が否定なら、処理はステップ311に移る。ステップ311でコントローラは、ステップ309で肯定応答した全ての参加サーバに、準備フェーズが失敗したことを通知する。
【0072】
ステップ312でコントローラは、肯定応答した参加サーバからの応答を、失敗した準備フェーズ及び準備フェーズに失敗した参加サーバをクライアントに通知するメッセージと共に1つのページにマージする。クライアントに返るページはまた、クライアントが会話を続けるためのハイパーテキスト・リンクを含む。
【0073】
コントローラがステップ309で、準備フェーズが定義済みグループの全ての参加サーバで成功したことを確認した場合は、処理はステップ304に戻る。準備フェーズが全て成功して完了した場合、処理はステップ305に進む。ステップ305でコントローラは、定義済みグループの全ての参加サーバにコミット・メッセージを送る。
【0074】
ステップ308でコントローラは、定義済みグループの全ての参加サーバから応答を集める。先に述べたように、参加サーバはそれらの応答にHTMLテキストを追加できる。ステップ310でコントローラは1つのページの応答を作成する。これはいくつかのアイテムをマージすることによってクライアントに送られる。第1にコントローラは、先にステップ307で準備フェーズから集められた応答とステップ308で受信された応答を全てマージする。コントローラは次に、全ての準備フェーズが成功したことを伝えるメッセージを追加する。参加サーバがステップ308で時間内に応答することができなかった場合、コントローラはまたこの情報を応答ページに追加することができる。最後にクライアントが会話を続けるられるようにするハイパーテキスト・リンクが追加される。ここでもページがクライアントに送られる前に状態情報を保存するために、またはシステムが先にアドレスされたノードを管理できるように、ページの変更が必要になることがある。
【0075】
上に述べた実施例ではいくつか拡張及び変形が可能である。1つの変形例はセッションIDの存続期間を制限することである。コントローラは各セッションIDの存続期間及び作成時刻(エフェメラル・セッションIDと呼ばれる)を、ステップ208でセッションIDが作成されたとき記録できる。現在時刻及び作成時刻の違いが、エフェメラル・セッションIDの存続期間を超えるときは、エフェメラル・セッションIDは期限を過ぎていることになる。エフェメラル・セッションIDの期限切れはステップ214でチェックできる。クライアントが期限の切れたエフェメラル・セッションIDでトランザクションを試行する場合は、ステップ215でエラー処理が行われる。期限切れエフェメラル・セッションIDを処理する好適な方法は、有効なユーザID及びパスワードを提出することで自体を再認証することをクライアントに要求することである。
【0076】
他の変形例として、各トランザクション・リクエストに新しいセッションIDを作成することが考えられる。この場合、各セッションIDは1つのトランザクションにのみ有効である。このアプローチでは、悪意ある侵入者がセッションIDを盗んでアカウントに侵入することは難しくなる。この変形例を実現するためには、ステップ214を変更して前のセッションIDを無効にし、新しいセッションIDを作成して新しいセッションIDを記録し、新しいセッションIDを会話で保存することができる。
【0077】
他の変形例は、セッションIDをクライアントに送られる前に暗号化し、コントローラによって認証される前にデコードすることである。動的引数組み込み、クッキー等の手法が用いられる場合は、この暗号化機能によりセッションIDの受け渡し先であるURLにもとづく異なるエンコーディングを作ることができる。従って異なるURLへのアクセスには異なる暗号化されたセッションIDが必要になる。暗号化されたセッションIDを何とか盗もうとした侵入者は、それを特定のURL(また場合によっては特定の引数セットしかないURL)でしか使用できないことになる。これによりこのような侵入者による損害が制限される。
【0078】
他の変形例は、コントローラが特定のセッションIDからの全てのトランザクションの出所をセッションIDを作成した認証プロセスに参加したクライアントと同じIPアドレスに限定することである。この機能を実現するためには、セッションIDがステップ208で作成されるときに自体を認証するクライアントのIPアドレスが記録される。ステップ214で、リクエストを出すクライアントのアドレスが、自体を認証したクライアントのアドレスと同じ場合にのみトランザクションを行うことができる。このアプローチでは、悪意あるユーザがクライアントからセッションIDを盗み、セッションIDを使用してクライアントのアカウントに他のマシンから侵入することを防ぐことはできる。しかし絶対確実ではない。異なるマシンが同じIPアドレスを持つように見えることがあるからである(例えばマシンが同じファイアウォール下にあるとき)。暗号化等他のセキュリティ機能を、このアプローチと併用してアカウント侵入の危険を更に小さくすることは可能である。
【0079】
他の変形例は、コントローラによって維持されるクライアントの認証及びアカウント情報を1つ以上の参加サーバに複製することである。その場合、コントローラは認証毎にコンタクトする必要はない。このアプローチでは、コントローラの負荷が減り、システム性能が向上する。しかし認証及びアカウントの情報の複数のコピーの間で一貫性を保つためには何らかの方法が必要になる。
【0080】
他の変形例は、作業負荷が大きいときにシステム性能を改良するもので、複数のサーバで実行するためにコントローラをスケーリングすることである。しかし複数のサーバで実行するためにコントローラをスケーリングする際の複雑さは、1つは、複数のノードで認証情報をどのように共有するかという課題である。認証情報は複数のノードに複製できるが、複数の一貫した認証情報のコピーを維持するオーバヘッドと複雑さのために、ステップ208で記録された認証情報のコピーは1つだけ維持することが望ましい場合もある。
【0081】
コントローラが複数のノードでスケーリングされるときに認証情報を維持する1つの方法は、(サーバ・グループと現在通信している全てのクライアントに属する)全てのセッションIDのセットをコントローラ・ノードに分散させることである。従って、あるセッションIDのコピー1つだけが維持されるが、セッションIDのセットはコントローラ・ノードに分散される。このアプローチを実現するために、コントローラは、あるクライアントのセッションID情報をステップ208でコントローラ・ノードnに格納できる。コントローラ・ノードnのIDは次に、そのクライアントとの会話で状態変数にエンコードできる。例えばセッションID変数402をエンコードして、実際のセッションID及びクライアントのセッションIDを格納したコントローラのノードの両方を格納できよう。クライアントが、そのセッションIDの認証を要するトランザクションを実行しようとしたときは、ステップ214で、クライアントとの会話で保存された対応する状態変数が調べられ、クライアントのセッションIDがどのコントローラ・ノードにあるか確認される。クライアントのセッションIDは次に対応するコントローラ・ノードで確認される。
【0082】
クライアント認証情報と同じく、クライアント・アカウント情報も複数のコントローラ・ノードに複製するか、または複数のコントローラ・ノードに分散させることができる。どのアプローチを取るかの決定は、クライアント認証情報についてどちらのアプローチを使用するかとは別に行える。クライアント・アカウント情報を複数のノードに分散させ場合、上に述べたアプローチが使用できる。あるクライアントについてアカウント情報を含むコントローラ・ノードのIDは、ユーザID変数401等の状態変数にエンコードできる。
【0083】
他の変形例は、通常はサーバ・グループによって実行される機能のいくつかをクライアントが実行できるようにすることである。Java等の言語を使用して、サーバ・グループによって実行される機能のいくつかをダウンロードしてクライアントによって実行できる。
【0084】
他の変形例は、会話でユーザIDとセッションID両方の状態変数を保存する代わりに、セッションID状態変数だけを保存することである。この例でサーバは、ユーザIDとセッションIDの対応を維持することになる。次にサーバはセッションIDからユーザIDを計算することができる。
【0085】
他の変形例は、セッションID状態変数を作成する代わりにクライアントのパスワードを状態変数として維持することである。しかしセッションIDは会話が続く間しか続かないので、パスワードの代わりにセッションIDを使用する利点は、盗まれたセッションIDは盗まれたパスワードよりも潜在的に害が少ない場合があるということである。
【0086】
他の変形例は、多数フェーズ・コミットを扱うためにXAプロトコルを実現することである。(XAプロトコルの詳細についてはJ.Gray & A.ReuterによるTransaction Processing:Concepts & Techniques、Morgan Kaufmann、1993を参照されたい)。
【0087】
好適な実施例では、グループ・トランザクションの参加サーバのデフォルト・グループが、認証時刻とグループ・トランザクションが要求された時刻の間にアクセスした参加サーバで構成される。デフォルト・グループの選択についてはいくつかの変形例を簡単に実現できる。参加サーバのデフォルト・グループは次のサーバで構成することができる。1)会話の初め以降にアクセスした全てのサーバ、2)会話の初め以降に単純トランザクションに関係した全てのサーバ、3)最後のグループ・トランザクション以降にアクセスした全てのサーバ、4)最後のグループ・トランザクション以降に単純トランザクションに関係した全てのサーバ、及び5)最後のグループ・トランザクションに参加した全てのサーバ。またこれらを組み合わせたデフォルト・グループも可能である。
【0088】
一般的にデフォルト・グループは、トランザクションのタイプ、認証のタイプ及び重要イベントに関して決定することができる。トランザクションは、1)全てのトランザクション、2)単純トランザクション、及び3)グループ・トランザクションを含めたグループに分類することができる。トランザクションは更に、1)全てのトランザクション、2)認証が必要なトランザクション、及び3)認証が必要でないトランザクション等の認証タイプに従って分類できる。重要イベントは、トランザクションによって定義された会話中の1時点である。例えば次は重要イベントになる場合がある。1)会話の初め、2)クライアントが最初に有効な識別情報を与える時点、3)最後のグループ・トランザクション。デフォルト・グループは、サーバの重要なサブセット、CS(i、j、k)に関して定義することもできる。これはトランザクション・タイプjと認証タイプkのトランザクションを与えた重要イベントi以降にクライアントが通信したサーバのサブセットである。例えば上に定義した分類によると、サーバの重要サブセットCS(3、1、2)は、認証を要するトランザクションが実行された最後のグループ・トランザクション以降にクライアントが通信したサーバのセットである。
【0089】
他の変形例は、アクセスした参加サーバに依存しないデフォルト・グループを指定することである。この例ではアクセス・ノード状態変数403を保存する必要はなく、ステップ211、212も必要ない。
【0090】
参加サーバが複数のコントローラと通信することも可能である。図4に示すように、1つのコントローラが、階層の下のレベルのコントローラと参加サーバからの操作を調整する、コントローラの階層を持たせることも可能である。
【0091】
図3のステップ310、312の好適な実施例では、コントローラが全ての情報を1つのHTMLページとしてクライアントに送る。情報の量が多い場合は、これに代わる方法として、情報をいくつかのページに分けることが考えられる。コントローラは一度に1ページを送る。各ページにハイパーテキスト・リンクがあり、クライアントはこれにより他のページを見ることができる。ハイパーテキスト・リンクを(可能ならいくつかを)辿ることにより、クライアントは全ての情報を見ることができる。この技術はもちろん新しいものではない。例えばURL、http://www.lycos.comのLycosサーチ・エンジンはこの方法を実現している。
【0092】
他の変形例は、手動により識別情報を入力することをクライアントに促す代わりに、クライアントを識別するためにデジタル認証を用いることである。デジタル認証は、クライアントのディスクまたはスマート・カードに格納できる識別情報の文字列である。デジタル認証は、クライアントに手動での入力を期待できるものより長く複雑になる情報の文字列で構成できるので、デジタル認証を使用することはクライアントに識別情報を手動で入力させる場合よりも、クライアントを識別する方法としてより安全な方法を提供できる場合がある。またデジタル認証及び手動入力を組み合わせて使用することもできる。例えばクライアントには、そのスマート・カードを有効にするためにPIN(個人識別番号)の入力を要求することができる。
【0093】
上に述べた好適な実施例で、クライアント・アカウント情報はコントローラ・サーバによって維持される。他の変形例は、コントローラが、クライアントによって与えられたクライアント識別情報を確認するために認証機関と通信することである。
【0094】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0095】
(1)1つ以上の参加サーバ及び1つ以上のコントローラ・サーバを含み、各参加サーバが少なくとも1つのコントローラ・サーバと通信できるサーバ・グループを持つクライアント/サーバ環境にて、前記サーバ・グループのサーバ間で操作を調整する方法であって、
クライアント及び前記サーバ・グループの少なくとも1つのサーバの間で情報を受け渡す手順が制限されたまたは未定義のプロトコルを使用して前記クライアント及び前記サーバの間で通信するステップと、
前記クライアントから前記サーバの1つに操作のリクエストを転送するステップと、
前記リクエストに応答して複数のサーバ及び少なくとも1つのコントローラ・サーバの間で通信して少なくともいくつかのサーバの操作を調整するステップと、
を含む、方法。
(2)参加サーバとコントローラ・サーバを含み、各参加サーバが少なくとも1つのコントローラ・サーバと通信できるサーバ・グループを持つクライアント/サーバ環境にて、前記サーバ・グループのサーバ間で操作を調整する方法であって、
クライアント及び前記サーバ・グループの少なくとも1つのサーバの間で情報を受け渡す手順が制限されたまたは未定義のプロトコルを使用して前記クライアントと前記サーバとの間で通信するステップと、
認証を要するクライアントによる第1操作のリクエストを転送するステップと、
前記クライアントによりクライアント識別情報を与えるステップと、
前記クライアント識別情報をコントローラ・サーバにより確認するステップと、
コントローラ・サーバによりクライアント認証情報を作成するステップと、
サーバにより前記クライアント認証情報を維持するステップと、
前記クライアント認証情報を会話で保存するためにサーバにより手段を利用するステップと、
認証を要する前記サーバによる第2操作のリクエストを前記サーバの1つに転送するステップと、
前記会話で保存された前記クライアント認証情報とサーバによって維持されたクライアント認証情報を使用して前記クライアントを認証するステップと、
を含む、方法。
(3)1つ以上の参加サーバ及び1つ以上のコントローラ・サーバを含み、各参加サーバが少なくとも1つのコントローラ・サーバと通信できるサーバ・グループを持つクライアント/サーバ環境にて、前記サーバ・グループのサーバ間で操作を調整する方法であって、
クライアント及び前記サーバ・グループの少なくとも1つのサーバの間で情報を受け渡す手順が制限されたまたは未定義のプロトコルを使用して前記クライアント及び前記サーバの間で通信するステップと、
参加を要する操作のリクエストを複数のサーバにより前記クライアントから前記サーバの1つに転送するステップと、
前記リクエストに応答して前記サーバと少なくとも1つのコントローラ・サーバの間で通信して前記複数のサーバの操作を調整するステップと、
を含む、方法。
(4)クライアントによりクライアント識別情報を与える前記ステップは前記クライアントによる情報の手動入力により行われる、前記(2)記載のサーバ間で操作を調整する方法。
(5)クライアントによりクライアント識別情報を与える前記ステップは永続メモリに格納された情報を取得することにより行われる、前記(2)記載のサーバ間で操作を調整する方法。
(6)永続メモリに格納された情報はディスクまたはスマート・カード上の1つ以上のデジタル認証を含む、サーバ間で操作を調整する、前記(5)記載の方法。
(7)クライアント識別情報を確認する前記ステップは、1つ以上のコントローラ・サーバによって維持されたクライアント・アカウント情報を取得し、前記クライアント識別情報を前記クライアント・アカウント情報と比較するステップを含む、サーバ間で操作を調整する、前記(2)記載の方法。
(8)クライアント識別情報を確認する前記ステップは、前記サーバ・グループの外部の認証機関サーバと通信するステップを含む、サーバ間で操作を調整する、前記(2)記載の方法。
(9)1つ以上のサーバにより前記クライアント認証情報を維持するステップは、前記クライアント認証情報を前記サーバ・グループの2つ以上のサーバに複製するステップを含む、サーバ間で操作を調整する、前記(2)記載の方法。
(10)前記クライアント認証情報を会話で保存する手段は動的引数組み込みである、サーバ間で操作を調整する、前記(2)記載の方法。
(11)前記クライアントはWorld Wide Webクライアントであり、前記サーバはWorld Wide Webサイトであり、前記クライアント認証情報を会話で保存する手段はネットスケープ・クッキー(NETSCAPE cookie)である、サーバ間で操作を調整する、前記(2)記載の方法。
(12)前記クライアントはWorld Wide Webクライアントであり、前記サーバはWorld Wide Webサイトであり、前記クライアント認証情報を会話で保存する手段はHTML形式である、サーバ間で操作を調整する、前記(2)記載の方法。
(13)クライアント認証情報を維持する前記サーバは少なくとも1つのコントローラ・サーバを含む、サーバ間で操作を調整する、前記(2)記載の方法。
(14)前記クライアント認証情報はセッションIDを含む、サーバ間で操作を調整する、前記(2)記載の方法。
(15)前記セッションIDは、経過すると有効ではなくなる存続期間を持つ、サーバ間で操作を調整する、前記(14)記載の方法。
(16)前記クライアントにより、認証を要する指定数のリクエストを1つ以上のサーバに転送するステップと、
前記指定数のリクエストの間に1つ以上のコントローラ・サーバにより新しいセッションIDを含む新しいクライアント認証情報を作成するステップと、
1つ以上のサーバにより前記新しいクライアント認証情報を会話で保存する手段を利用するステップと、
を含む、サーバ間で操作を調整する、前記(14)記載の方法。
(17)クライアント認証情報を保存する手段は、前記セッションIDを暗号化する手段を含み、前記会話で保存されたクライアント認証情報を使用することは暗号化されたセッションIDのデコードを伴う、サーバ間で操作を調整する、前記(14)記載の方法。
(18)前記セッションIDを暗号化する手段は、サーバとリクエストの特定の組み合わせについてのみ有効な暗号化されたセッションIDを作成する、サーバ間で操作を調整する、前記(17)記載の方法。
(19)前記サーバ・グループのサーバはWorld Wide Webサイトであり、前記暗号化されたセッションIDは特定のURLについてのみ有効である、サーバ間で操作を調整する、前記(18)記載の方法。
(20)少なくとも1つのサーバにより前記クライアント識別情報を与えた前記クライアントのアドレスを維持するステップと、
前記会話中に認証を要し前記クライアントにより要求された少なくともいくつかの操作に応答して、前記アドレスを使用して前記クライアントを認証するステップと、
を含む、サーバ間で操作を調整する、前記(2)記載の方法。
(21)少なくとも1つのコントローラ・サーバは複数のノードに分散される、サーバ間で操作を調整する、前記(2)記載の方法。
(22)前記クライアント認証情報はセッションIDを含み、1つ以上サーバにより前記クライアント認証情報を維持するステップは、前記セッションIDを前記分散されたコントローラ・サーバの1つの全てのノードよりも少ないノードに格納し、前記セッションIDが格納された前記ノードの少なくとも1つのIDを前記会話で状態変数に保存するステップを含む、サーバ間で操作を調整する、前記(21)記載の方法。
(23)前記クライアント認証情報は前記分散されたコントローラ・サーバの1つの複数のノードに複製される、サーバ間で操作を調整する前記(21)記載の方法。
(24)少なくとも1つのコントローラ・サーバが複数のノードに分散され、前記クライアント・アカウント情報は前記分散されたコントローラ・サーバの1つの複数のノードに複製される、サーバ間で操作を調整する、前記(7)記載の方法。
(25)前記複数のサーバの操作を調整するステップは、前記クライアントによるリクエストに応答して少なくとも1つのコントローラ・サーバによりサーバのデフォルト・グループを定義するステップを含む、サーバ間で操作を調整する、前記(3)記載の方法。
(26)前記サーバのデフォルト・グループは、前記クライアントが会話中に通信した前記サーバ・グループのサーバを含む、サーバ間で操作を調整する、前記(25)記載の方法。
(27)前記サーバのデフォルト・グループは、サーバの重要サブセットに関して決定され、サーバの各重要サブセットは、トランザクション・タイプ、認証タイプ及び重要イベントに関して決定される、サーバ間で操作を調整する、前記(26)記載の方法。
(28)前記トランザクション・タイプは全てのトランザクション、単純トランザクション、及びグループ・トランザクションを含む、サーバ間で操作を調整する、前記(27)記載の方法。
(29)前記認証タイプは、全てのトランザクション、認証を要するトランザクション及び認証を要しないトランザクションを含む、サーバ間で操作を調整する、前記(27)記載の方法。
(30)前記重要イベントは、会話の初め、クライアントが最初に有効な識別情報を与える時点、及び最後のグループ・トランザクションを含む、サーバ間で操作を調整する、前記(27)記載の方法。
(31)前記サーバのデフォルト・グループは、前記最後のグループ・トランザクションに関係したサーバに関して決定される、サーバ間で操作を調整する前記(25)記載の方法。
(32)前記操作のリクエストは複数のサーバから情報を集める操作を伴う、サーバ間で操作を調整する、前記(3)記載の方法。
(33)複数のサーバの参加を要する前記操作のリクエストは、有限なn>0のとき複数のサーバからのnフェーズ・コミットを伴う、サーバ間で操作を調整する、前記(3)記載の方法。
(34)前記サーバ間で少なくとも1つのコントローラ・サーバと通信して前記複数のサーバの操作を調整するステップは、
少なくとも1つのコントローラ・サーバ及び前記複数のサーバのうち少なくともいくつかのサーバとの間で通信するステップと、
前記複数のサーバのうち少なくともいくつかのサーバからの応答を少なくとも1つのコントローラ・サーバによりマージするステップと、
を含む、サーバ間で操作を調整する、前記(3)記載の方法。
(35)前記サーバはWorld Wide Webサイトである、サーバ間で操作を調整する、前記(1)乃至前記(3)のいずれかに記載の方法。
(36)前記クライアント及びサーバの間の通信に用いられる前記プロトコルはハイパーテキスト転送プロトコルである、サーバ間で操作を調整する、前記(1)乃至前記(3)のいずれかに記載の方法。
(37)前記クライアント及びサーバの間の通信に用いられる前記プロトコルは安全である、サーバ間で操作を調整する、前記(1)乃至前記(3)のいずれかに記載の方法。
(38)少なくとも1つの参加サーバは複数のコントローラと通信する、サーバ間で操作を調整する、前記(1)乃至前記(3)のいずれかに記載の方法。
(39)コントローラ・サーバの階層が存在し、各コントローラ・サーバが下の階層レベルの参加サーバ及びコントローラ・サーバの間で操作を調整する、サーバ間で操作を調整する、前記(1)乃至前記(3)のいずれかに記載の方法。
(40)前記クライアントにより少なくとも1つのサーバからプログラムを受信し実行することによって、前記クライアントが前記サーバ・グループの機能の少なくともいくつかを実行するステップを含む、サーバ間で操作を調整する前記(1)乃至前記(3)のいずれかに記載の方法。
(41)前記参加サーバは互いに通信できない、サーバ間で操作を調整する前記(1)乃至前記(3)のいずれかに記載の方法。
【図面の簡単な説明】
【図1】本発明の好適な実施例に従って用いられるアーキテクチャ全体を示す図である。
【図2】本発明の好適な実施例に従ってクライアントの認証を調整する方法を示す図である。
【図3】本発明の好適な実施例に従って参加サーバ間でグループ・トランザクションを調整する方法を示す図である。
【図4】本発明の好適な実施例に従って用いられる他のアーキテクチャ全体を示す図である。
【図5】会話で保存される好適な変数のリストを示す図である。
【図6】状態情報をWWWハイパーリンクに動的に組み込む方法を示す図である。
【符号の説明】
101 参加サーバ
102 コントロール・サーバ
103 クライアント
104 サーバ・グループ
401 ユーザID
402 セッションID
403 アクセス・ノード状態変数

Claims (8)

  1. 1つ以上の参加サーバ及び1つ以上のコントローラ・サーバを含み、各参加サーバが少なくとも1つのコントローラ・サーバと通信できるサーバ・グループを持つクライアント/サーバ環境にて、前記サーバ・グループのサーバ間でクライアントとのトランザクション処理の調整を実行る方法であって、
    クライアント及び前記サーバ・グループの少なくとも1つのサーバの間でユーザID及びセッションIDならびにアクセス・ノード状態変数を受け渡すことについて制限されたまたは未定義の手順をもつプロトコルを使用して前記クライアント前記少なくとも1つのサーバ通信するステップと、
    前記少なくとも1つのサーバが、前記クライアントからグループ・トランザクション要求の受信に応答して、前記クライアントに対し前記ユーザIDを含むユーザ識別情報を要求し、前記クライアントからの前記ユーザ識別情報の入力を受けて、前記クライアントのユーザ識別情報を保持する前記コントローラ・サーバに確認し、前記クライアントを認証するステップと、
    前記クライアントを認証した場合に、前記コントローラ・サーバが、会話中に前記クライアントを認証するために用いる前記セッションIDを生成して前記ユーザIDとともに格納し、前記クライアントによりアクセスされた前記参加サーバが会話で前記アクセス・ノード状態変数として保存した前記ユーザIDと前記セッションIDとに基づいて前記クライアントと会話で通信する1つ以上のサーバからなりトランザクション・タイプ、認証タイプ及び重要イベントに関して定義されたサーバの重要なサブセットに関して定義されるデフォルト・グループを決定し、前記デフォルト・グループ内のサーバと前記クライアントとの間でトランザクションを実行させるステップと、
    を含む、方法。
  2. 前記トランザクション・タイプは、全てのトランザクション、単純トランザクション及びグループ・トランザクションで構成されるグループから選択される、請求項1記載の方法。
  3. 前記認証タイプは、全てのトランザクション、認証が必要なトランザクション及び認証が必要でないトランザクションで構成されるグループから選択される、請求項1記載の方法。
  4. 前記重要イベントは、会話の初め、クライアントが最初に有効な識別情報を与える時点及び最後のグループ・トランザクションで構成されるグループから選択される、請求項1記載の方法。
  5. サーバ・グループのサーバ間でクライアントとのトランザクション処理の調整を実行するシステムであって、
    1つ以上の参加サーバ及び1つ以上のコントローラ・サーバを含み、各参加サーバが少なくとも1つのコントローラ・サーバと通信できるサーバ・グループと、
    前記サーバ・グループの少なくとも1つのサーバとの間でユーザID及びセッションIDならびにアクセス・ノード状態変数を受け渡すことについて制限されたまたは未定義の手順をもつプロトコルを使用して前記少なくとも1つのサーバとの間で通信するクライアントとを含み
    前記少なくとも1つのサーバが、前記クライアントからグループ・トランザクション要求の受信に応答して、前記クライアントに対し前記ユーザIDを含むユーザ識別情報を要求し、前記クライアントからの前記ユーザ識別情報の入力を受け、前記クライアントのユーザ識別情報を保持する前記コントローラ・サーバに確認して前記クライアントを認証し
    前記クライアントを認証した場合に、前記コントローラ・サーバが、会話中に前記クライアントを認証するために用いる前記セッションIDを生成して前記ユーザIDとともに格納し、前記クライアントによりアクセスされた前記参加サーバが会話で前記アクセス・ノード状態変数として保存した前記ユーザIDと前記セッションIDとに基づいて、前記クライアント会話中に通信する1つ以上のサーバからなりトランザクション・タイプ、認証タイプ及び重要イベントに関して定義されたサーバの重要なサブセットに関して定義されるデフォルト・グループを決定し、前記デフォルト・グループ内のサーバと前記クライアントとの間でトランザクションを実行させる、システム。
  6. 前記トランザクション・タイプは、全てのトランザクション、単純トランザクション及びグループ・トランザクションで構成されるグループから選択される、請求項5記載のシステム。
  7. 前記認証タイプは、全てのトランザクション、認証が必要なトランザクション及び認証が必要でないトランザクションで構成されるグループから選択される、請求項5記載のシステム。
  8. 前記重要イベントは、会話の初め、クライアントが最初に有効な識別情報を与える時点及び最後のグループ・トランザクションで構成されるグループから選択される、請求項5記載のシステム。
JP12239598A 1997-05-08 1998-05-01 サーバ・グループ間で操作を調整する方法 Expired - Lifetime JP4026928B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/854,010 US6170017B1 (en) 1997-05-08 1997-05-08 Method and system coordinating actions among a group of servers
US08/854010 1997-05-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003297417A Division JP2004078967A (ja) 1997-05-08 2003-08-21 サーバ・グループ間で操作を調整する方法

Publications (2)

Publication Number Publication Date
JPH1131126A JPH1131126A (ja) 1999-02-02
JP4026928B2 true JP4026928B2 (ja) 2007-12-26

Family

ID=25317497

Family Applications (2)

Application Number Title Priority Date Filing Date
JP12239598A Expired - Lifetime JP4026928B2 (ja) 1997-05-08 1998-05-01 サーバ・グループ間で操作を調整する方法
JP2003297417A Pending JP2004078967A (ja) 1997-05-08 2003-08-21 サーバ・グループ間で操作を調整する方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2003297417A Pending JP2004078967A (ja) 1997-05-08 2003-08-21 サーバ・グループ間で操作を調整する方法

Country Status (6)

Country Link
US (3) US6170017B1 (ja)
JP (2) JP4026928B2 (ja)
KR (1) KR100308321B1 (ja)
CN (1) CN1312879C (ja)
GB (1) GB2326802B (ja)
TW (1) TW451150B (ja)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219045B1 (en) 1995-11-13 2001-04-17 Worlds, Inc. Scalable virtual world chat client-server system
US6170017B1 (en) * 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
JPH1115666A (ja) * 1997-06-10 1999-01-22 Internatl Business Mach Corp <Ibm> コンピュータ・システム、メッセージ・モニター方法、及び関連メッセージ送信方法
US5999939A (en) * 1997-12-21 1999-12-07 Interactive Search, Inc. System and method for displaying and entering interactively modified stream data into a structured form
JP3569122B2 (ja) * 1998-01-22 2004-09-22 富士通株式会社 セッション管理システム、サービス提供サーバ、セッション管理サーバ、セッション管理方法及び記録媒体
JPH11224288A (ja) * 1998-02-06 1999-08-17 Hitachi Ltd 利用条件販売型デジタルコンテンツ販売電子モールシステム
NL1009083C2 (nl) * 1998-05-06 1999-11-09 Telematica Holdings Ltd Stelsel voor het koppelen van het openbare telefoonnet met het Internet.
US6567849B2 (en) * 1998-08-17 2003-05-20 International Business Machines Corporation System and method for configuring and administering multiple instances of web servers
JP2000106552A (ja) * 1998-09-29 2000-04-11 Hitachi Ltd 認証方法
US6292904B1 (en) * 1998-12-16 2001-09-18 International Business Machines Corporation Client account generation and authentication system for a network server
CA2292385A1 (en) * 1999-01-29 2000-07-29 International Business Machines Corporation A method to deliver services to mobile users
ES2189743T3 (es) * 1999-02-26 2003-07-16 America Online Inc Servidor intermediario que complementa una peticion de usuario con informacion del perfil de usuario.
US7801775B1 (en) 1999-03-29 2010-09-21 Amazon.Com, Inc. Method and system for authenticating users when conducting commercial transactions using a computer
US6889254B1 (en) * 1999-03-30 2005-05-03 International Business Machines Corporation Scalable merge technique for information retrieval across a distributed network
US8375127B1 (en) * 1999-03-31 2013-02-12 International Business Machines Corporation Method and system for using virtual URLs for load balancing
US7155605B1 (en) * 1999-03-31 2006-12-26 Lenovo (Singapore) Pte. Ltd. Data processing system and method for maintaining secure data blocks
JP2000287110A (ja) * 1999-03-31 2000-10-13 Ricoh Co Ltd デジタルカメラ装置の制御システム
JP2000293426A (ja) * 1999-04-01 2000-10-20 Nec Soft Ltd レコードロック方式
US7146505B1 (en) 1999-06-01 2006-12-05 America Online, Inc. Secure data exchange between date processing systems
US7287084B1 (en) * 1999-07-15 2007-10-23 F5 Networks, Inc. Enabling encryption of application level persistence between a server and a client
US6970933B1 (en) 1999-07-15 2005-11-29 F5 Networks, Inc. Enabling application level persistence between a server and another resource over a network
US7346695B1 (en) 2002-10-28 2008-03-18 F5 Networks, Inc. System and method for performing application level persistence
AU5482700A (en) * 1999-07-19 2001-02-05 Savedaily.Com, Inc. On-line savings model
US6499052B1 (en) * 1999-08-11 2002-12-24 Yahoo! Inc. Electronic commerce system for referencing remote commerce sites at a local commerce site
US6339423B1 (en) * 1999-08-23 2002-01-15 Entrust, Inc. Multi-domain access control
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6868394B1 (en) * 1999-09-21 2005-03-15 Daniel Mele Method and apparatus for simplified artist-buyer transactions
AU7991800A (en) * 1999-10-04 2001-05-10 Os Crypto, Inc. System and methods for providing verified network sessions with visual confirmation
US7877492B2 (en) * 1999-10-12 2011-01-25 Webmd Corporation System and method for delegating a user authentication process for a networked application to an authentication agent
US6903756B1 (en) * 1999-10-14 2005-06-07 Jarbridge, Inc. Merged images viewed via a virtual storage closet
US7917397B1 (en) 1999-10-14 2011-03-29 Jarbridge, Inc. Merging private images for gifting
US7401115B1 (en) 2000-10-23 2008-07-15 Aol Llc Processing selected browser requests
US7127500B1 (en) * 1999-11-10 2006-10-24 Oclc Online Computer Library Center, Inc. Retrieval of digital objects by redirection of controlled vocabulary searches
US7107308B2 (en) * 1999-12-01 2006-09-12 Sun Microsystems, Inc. Low cost, stateless, full-featured information appliance
US6862612B1 (en) * 1999-12-10 2005-03-01 Dell Products L.P. Multiple ‘express buy’ profiles for multiple stores (dell.com and gigabuys.com)
JP2001175574A (ja) * 1999-12-14 2001-06-29 Fujitsu Ltd コンソール入出力制御システムおよびコンソール管理装置
US7266511B2 (en) * 2000-01-11 2007-09-04 Fujifilm Corporation Method and system for operating a virtual shopping mall or seller-engaged type
JP2001195482A (ja) * 2000-01-14 2001-07-19 Degital Laboratory Co Ltd コンテンツ配信の課金方法及びその課金システム
US7233926B2 (en) * 2000-03-07 2007-06-19 Thomson Licensing Electronic wallet system with secure inter-purses operations
US7168138B2 (en) * 2000-03-27 2007-01-30 Newfrey Llc Resilient clip fastener
US6785679B1 (en) * 2000-03-29 2004-08-31 Brassring, Llc Method and apparatus for sending and tracking resume data sent via URL
US7526560B1 (en) * 2000-03-30 2009-04-28 Oracle International Corporation Method and apparatus for sharing a secure connection between a client and multiple server nodes
US6886037B1 (en) * 2000-03-31 2005-04-26 Ncr Corporation Channel director for cross-channel customer interactions
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6785713B1 (en) * 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
AU2001253406A1 (en) * 2000-05-15 2001-11-26 Efunds Corporation System for and method of effecting an electronic transaction
EP1302880B1 (en) * 2000-05-15 2008-07-30 Nifty Corporation Electronic commerce information processing system and method
EP1302881B1 (en) * 2000-05-15 2008-07-16 Nifty Corporation Order processing system and method
US7962603B1 (en) 2000-06-06 2011-06-14 Nobuyoshi Morimoto System and method for identifying individual users accessing a web site
US7380007B1 (en) * 2000-06-30 2008-05-27 Aol Llc, A Delaware Limited Liability Company Automatic user session
US9038170B2 (en) * 2000-07-10 2015-05-19 Oracle International Corporation Logging access system events
US20020146129A1 (en) * 2000-11-09 2002-10-10 Kaplan Ari D. Method and system for secure wireless database management
US6848000B1 (en) * 2000-11-12 2005-01-25 International Business Machines Corporation System and method for improved handling of client state objects
US7093019B1 (en) * 2000-11-21 2006-08-15 Hewlett-Packard Development Company, L.P. Method and apparatus for providing an automated login process
US7127608B2 (en) * 2001-01-12 2006-10-24 Siemens Medical Solutions Health Services Corporation System and user interface supporting URL processing and concurrent application operation
US7334031B2 (en) * 2001-01-12 2008-02-19 Siemens Medical Solutions Health Services Corporation System and user interface supporting processing and activity management for concurrently operating applications
US7127609B2 (en) * 2001-01-12 2006-10-24 Siemens Medical Solutions Health Services Corporation System and user interface for adaptively processing and communicating URL data between applications
US7043752B2 (en) * 2001-01-12 2006-05-09 Siemens Medical Solutions Health Services Corporation System and user interface supporting concurrent application initiation and interoperability
US7143437B2 (en) 2001-01-12 2006-11-28 Siemens Medical Solutions Health Services Corporation System and user interface for managing user access to network compatible applications
US7092987B2 (en) * 2001-02-13 2006-08-15 Educational Testing Service Remote computer capabilities querying and certification
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US20020169665A1 (en) * 2001-05-10 2002-11-14 The Procter & Gamble Company In-channel marketing and product testing system
US6687733B2 (en) * 2001-06-01 2004-02-03 Intergenix Method and system for automatically configuring a client-server network
US8392527B2 (en) * 2001-06-04 2013-03-05 Hewlett-Packard Development Company L.P. System and method for requesting computer resources
JP4158365B2 (ja) * 2001-08-27 2008-10-01 ブラザー工業株式会社 ネットワーク端末装置
CA2357270A1 (en) * 2001-09-07 2003-03-07 Efunds Corporation Electronic point-of-sale check processing method and system
US20030069967A1 (en) * 2001-10-10 2003-04-10 International Business Machines Corporation Shared authorization data authentication method for transaction delegation in service-based computing environments
US7117366B2 (en) * 2002-01-08 2006-10-03 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US20030145204A1 (en) * 2002-01-29 2003-07-31 Mehrdad Nadooshan Method and apparatus for simultaneously establishing user identity and group membership
JP3927834B2 (ja) * 2002-02-12 2007-06-13 キヤノン株式会社 サービス提供システム、方法、プログラム及び記憶媒体
KR20030078316A (ko) * 2002-03-29 2003-10-08 정보통신연구진흥원 웹 세션 관리기술을 포함한 네트워크 시스템 및 그 동작방법
US7356711B1 (en) 2002-05-30 2008-04-08 Microsoft Corporation Secure registration
JP4103460B2 (ja) * 2002-06-17 2008-06-18 ソニー株式会社 サービス提供システムおよび方法、並びにプログラム
US6747107B2 (en) 2002-08-16 2004-06-08 Nova Chemical Inc. Method of dispersion of a non-Newtonian fluid
JP2004086313A (ja) * 2002-08-23 2004-03-18 Fujitsu Ltd 認証方法及びその装置
US7133534B2 (en) * 2002-09-03 2006-11-07 Koninklijke Philips Electronics N.V. Copy protection via redundant watermark encoding
US7430755B1 (en) 2002-09-03 2008-09-30 Fs Networks, Inc. Method and system for providing persistence in a secure network access
US7571252B2 (en) * 2003-03-10 2009-08-04 Sun Microsystems, Inc. Computer system with multiple classes of transaction IDs
CA2432616A1 (en) * 2003-06-17 2004-12-17 Ibm Canada Limited - Ibm Canada Limitee Method for managing commerce contexts
US7523200B2 (en) * 2003-07-02 2009-04-21 International Business Machines Corporation Dynamic access decision information module
US7978716B2 (en) * 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7490242B2 (en) * 2004-02-09 2009-02-10 International Business Machines Corporation Secure management of authentication information
US7996631B1 (en) 2004-02-17 2011-08-09 Oracle America, Inc. System and method for accessing storage devices attached to a stateless client
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8495305B2 (en) * 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
KR20070037650A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 종단에서 게이트웨이로 패킷을 라우팅하기 위한 방법 및시스템
EP1771998B1 (en) * 2004-07-23 2015-04-15 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
US7730122B2 (en) * 2004-12-09 2010-06-01 International Business Machines Corporation Authenticating a node requesting another node to perform work on behalf of yet another node
US8706877B2 (en) * 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8700695B2 (en) * 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8954595B2 (en) * 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
WO2006072994A1 (ja) * 2005-01-07 2006-07-13 Systemk Corporation ネットワークカメラへのログイン認証システム
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US8301839B2 (en) * 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7921184B2 (en) * 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8566452B1 (en) 2006-08-03 2013-10-22 F5 Networks, Inc. Intelligent HTTP based load-balancing, persistence, and application traffic management of SSL VPN tunnels
US8212805B1 (en) 2007-01-05 2012-07-03 Kenneth Banschick System and method for parametric display of modular aesthetic designs
JP2009087163A (ja) * 2007-10-01 2009-04-23 Brother Ind Ltd ジョブ実行装置及びジョブ実行方法
US20090097470A1 (en) * 2007-10-12 2009-04-16 Collier David S Methods and systems for communicating data
US7925694B2 (en) 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
EP2241081B1 (en) 2008-01-26 2018-05-02 Citrix Systems, Inc. Systems and methods for fine grain policy driven cookie proxying
EP2438537A4 (en) * 2009-06-05 2013-05-01 Hewlett Packard Development Co SYSTEM AND METHOD FOR REPRESENTING USER INTERACTION WITH A WEB SERVICE
JP2010016912A (ja) * 2009-10-22 2010-01-21 Daikin Ind Ltd 設備機器管理システム及び設備機器管理方法
JP5511463B2 (ja) * 2010-03-25 2014-06-04 キヤノン株式会社 画像形成装置、画像処理システム、画像処理システムを制御する方法、およびプログラム
US20140019309A1 (en) * 2012-07-16 2014-01-16 Dana Michelle Hawkins Online Virtual Mall
US9361646B2 (en) 2012-09-25 2016-06-07 Mx Technologies, Inc. Aggregation source routing
US10432703B2 (en) * 2012-11-26 2019-10-01 Facebook, Inc. On-demand session upgrade in a coordination service
CN103973725B (zh) * 2013-01-28 2018-08-24 阿里巴巴集团控股有限公司 一种分布式协同方法和协同器
CN104184765B (zh) * 2013-05-23 2018-04-17 阿里巴巴集团控股有限公司 一种请求控制方法及客户端装置和服务器端装置
US9219722B2 (en) * 2013-12-11 2015-12-22 Globalfoundries Inc. Unclonable ID based chip-to-chip communication
US9794070B2 (en) * 2015-01-07 2017-10-17 Cyph, Inc. Method of ephemeral encrypted communications
US9948625B2 (en) 2015-01-07 2018-04-17 Cyph, Inc. Encrypted group communication method
US9826064B2 (en) * 2015-02-23 2017-11-21 Lenovo (Singapore) Pte. Ltd. Securing sensitive data between a client and server using claim numbers
US9692815B2 (en) 2015-11-12 2017-06-27 Mx Technologies, Inc. Distributed, decentralized data aggregation
US10313342B1 (en) 2015-11-30 2019-06-04 Mx Technologies, Inc. Automatic event migration
WO2018066000A1 (en) * 2016-10-05 2018-04-12 Kaalbi Technologies Private Limited System and method to detect and block bot traffic
CN107517252A (zh) * 2017-08-22 2017-12-26 福建中金在线信息科技有限公司 一种文件下载控制方法、装置及系统

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2945757B2 (ja) * 1989-09-08 1999-09-06 オースペックス システムズ インコーポレイテッド 多重装置オペレーティングシステムのアーキテクチャ
US5265250A (en) * 1990-03-29 1993-11-23 At&T Bell Laboratories Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
JPH0415840A (ja) 1990-05-10 1992-01-21 Toshiba Corp 分散型データベース管理装置
JPH0797782B2 (ja) * 1991-09-18 1995-10-18 インターナショナル・ビジネス・マシーンズ・コーポレイション 異種トランザクションの調整方法
US5592675A (en) * 1992-01-08 1997-01-07 Hitachi, Ltd. Computer controlled method and system capable of preserving information representing plural work states and recovering the work states
US5241594A (en) 1992-06-02 1993-08-31 Hughes Aircraft Company One-time logon means and methods for distributed computing systems
US5392400A (en) * 1992-07-02 1995-02-21 International Business Machines Corporation Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence
US5497463A (en) 1992-09-25 1996-03-05 Bull Hn Information Systems Inc. Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system
US5568612A (en) 1992-11-18 1996-10-22 Canon Kabushiki Kaisha Method and apparatus for advertising services of two network servers from a single network node
EP0615362B1 (en) 1993-03-08 2002-10-09 Hewlett-Packard Company, A Delaware Corporation Network analysis method
JP2557192B2 (ja) 1993-03-15 1996-11-27 インターナショナル・ビジネス・マシーンズ・コーポレイション トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法
JPH07210436A (ja) 1994-01-10 1995-08-11 Hitachi Ltd 分散トランザクション処理システム
US5781743A (en) * 1994-02-18 1998-07-14 Hitachi, Ltd. System and method for distributed data processing using different server system specifications
JP3777196B2 (ja) * 1994-05-10 2006-05-24 富士通株式会社 クライアント/サーバシステム用の通信制御装置
US5434994A (en) 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5416842A (en) 1994-06-10 1995-05-16 Sun Microsystems, Inc. Method and apparatus for key-management scheme for use with internet protocols at site firewalls
US6205464B1 (en) 1994-09-16 2001-03-20 International Businesss Machines Corporation System for building optimal commit trees in a distributed transaction processing system
US5541589A (en) * 1994-12-15 1996-07-30 Delaney; Patrick J. Power meter data acquisition and control system
US5682478A (en) * 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
JPH08249387A (ja) 1995-03-09 1996-09-27 Fujitsu Ltd 電子市場システムおよび端末
JP3463399B2 (ja) 1995-03-13 2003-11-05 富士通株式会社 通信システムおよびアクセス応答装置およびアクセス要求装置
FR2733068B1 (fr) 1995-04-14 1997-07-04 G C Tech Procede de paiement electronique permettant d'effectuer des transactions liees a l'achat de biens sur un reseau informatique
US5793964A (en) * 1995-06-07 1998-08-11 International Business Machines Corporation Web browser system
JPH11507752A (ja) * 1995-06-07 1999-07-06 オープン・マーケット・インコーポレーテッド インターネットサーバーのアクセス管理およびモニタシステム
US5708780A (en) 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5644720A (en) * 1995-07-31 1997-07-01 West Publishing Company Interprocess communications interface for managing transaction requests
US5826025A (en) 1995-09-08 1998-10-20 Sun Microsystems, Inc. System for annotation overlay proxy configured to retrieve associated overlays associated with a document request from annotation directory created from list of overlay groups
US5572643A (en) 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
WO1997015885A1 (en) 1995-10-25 1997-05-01 Open Market, Inc. Managing transfers of information in a communications network
KR100286008B1 (ko) * 1995-12-30 2001-04-16 윤종용 소프트웨어 프로그램 자동 갱신방법
US5764155A (en) * 1996-04-03 1998-06-09 General Electric Company Dynamic data exchange server
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US5854889A (en) 1996-06-26 1998-12-29 Mci Worldcom, Inc. Method and system for heterogeneous telecommunications network testing
US5818448A (en) 1996-07-02 1998-10-06 Sun Microsystems, Inc. Apparatus and method for identifying server computer aggregation topologies
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US6632248B1 (en) * 1996-12-06 2003-10-14 Microsoft Corporation Customization of network documents by accessing customization information on a server computer using uniquie user identifiers
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
US6253228B1 (en) * 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
CA2202572C (en) * 1997-04-14 2004-02-10 Ka Lun Eddie Law A scaleable web server and method of efficiently managing multiple servers
US6000830A (en) * 1997-04-18 1999-12-14 Tokyo Electron Limited System for applying recipe of semiconductor manufacturing apparatus
US6170017B1 (en) * 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
US5890161A (en) * 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications

Also Published As

Publication number Publication date
KR19980086649A (ko) 1998-12-05
KR100308321B1 (ko) 2001-10-19
GB2326802B (en) 2002-05-01
US20050198117A1 (en) 2005-09-08
JP2004078967A (ja) 2004-03-11
US7349974B2 (en) 2008-03-25
TW451150B (en) 2001-08-21
JPH1131126A (ja) 1999-02-02
CN1312879C (zh) 2007-04-25
GB2326802A (en) 1998-12-30
GB9809607D0 (en) 1998-07-01
CN1200608A (zh) 1998-12-02
US6820125B1 (en) 2004-11-16
US6170017B1 (en) 2001-01-02

Similar Documents

Publication Publication Date Title
JP4026928B2 (ja) サーバ・グループ間で操作を調整する方法
EP0940960A1 (en) Authentication between servers
KR100261386B1 (ko) 컴퓨터화된 자원 명칭 도출 메카니즘
EP1216533B1 (en) Multi-domain access control
US6976164B1 (en) Technique for handling subsequent user identification and password requests with identity change within a certificate-based host session
US7302402B2 (en) Method, system and program products for sharing state information across domains
US6934848B1 (en) Technique for handling subsequent user identification and password requests within a certificate-based host session
US6675216B1 (en) Copy server for collaboration and electronic commerce
US5586260A (en) Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
EP0812088A2 (en) Preserving state in stateless network protocols
KR20050055743A (ko) 클라이언트-서버 네트워크를 통해 통신하기 위한 방법 및시스템
JP2005538434A (ja) 連携型(フェデレーテッド)環境におけるユーザ判定による認証のための方法およびシステム
EP1654852A2 (en) System and method for authenticating clients in a client-server environment
GB2379039A (en) Transaction processing in a distributed data processing system
US7093019B1 (en) Method and apparatus for providing an automated login process
CA2310535A1 (en) Vault controller context manager and methods of operation for securely maintaining state information between successive browser connections in an electronic business system
Iyengar Dynamic argument embedding: Preserving state on the world wide web
US7685300B2 (en) Method for access by server-side components using unsupported communication protocols through passthrough mechanism
JP4667748B2 (ja) マルチノード・プロセスを制御する方法および装置
WO2001001280A2 (en) Method and system for sharing cookie information during internet transactions
Iyengar et al. Distributed virtual malls on the World Wide Web
Landau et al. A brief introduction to liberty
Iyengar Preserving State on the World Wide Web Using Dynamic Argument Embedding
CGI DYNAMIC ARGUMENT EMBEDDING: PRESERVING
Hill et al. Public Key Authentication on Mobile Devices

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040210

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20040212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040507

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040607

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040716

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070205

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070831

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20071002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071009

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131019

Year of fee payment: 6

EXPY Cancellation because of completion of term