JP4667748B2 - マルチノード・プロセスを制御する方法および装置 - Google Patents

マルチノード・プロセスを制御する方法および装置 Download PDF

Info

Publication number
JP4667748B2
JP4667748B2 JP2003557173A JP2003557173A JP4667748B2 JP 4667748 B2 JP4667748 B2 JP 4667748B2 JP 2003557173 A JP2003557173 A JP 2003557173A JP 2003557173 A JP2003557173 A JP 2003557173A JP 4667748 B2 JP4667748 B2 JP 4667748B2
Authority
JP
Japan
Prior art keywords
client
message
server
service
payment
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
JP2003557173A
Other languages
English (en)
Other versions
JP2005513683A (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 JP2005513683A publication Critical patent/JP2005513683A/ja
Application granted granted Critical
Publication of JP4667748B2 publication Critical patent/JP4667748B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Marketing (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本発明は、マルチノード・プロセスを制御する方法および装置に関する。具体的には、本発明は、複数のクライアント・システムの間でのプロセスを制御するブローカ・システムに関する。
Webサービスは、アプリケーションがインターネットを介して互いに通信できるようにするプロトコルおよび技術の組を指す。Webサービスは、e-businessフレームワークのうちで、従来のサービスに期待されるものと同一のサービス品質で、商業サービスをインターネットの世界に持ち込むことに関連する部分である。
単純なWebサービスには、2つの当事者すなわち、インターネットを介して接続されたクライアントおよびサーバが含まれる。クライアントは、インターネットを介してサーバに要求を送信し、サーバは、要求を処理し、インターネットを介してクライアントに応答を送信し、クライアントが、その情報を受信する。この情報は、天気予報とすることができる。
より複雑なWebサービスには、図1の従来技術に示されているように、複数のノードが含まれる。クライアント12(売り手)は、クライアント14(買い手)からの支払を受け取るために、クライアント14との間でメッセージを送受信する。支払いサービス18は、クライアント14の代わりに支払を行い、支払いサービス16は、クライアント12の代わりに支払を受け取る。この例では、クライアント12が、クライアント14に支払を要求し、クライアント14が、その要求を支払いサービス18に渡し、支払いサービス18が、支払注文を準備し、これが、クライアント14およびクライアント12を介して支払いサービス16に転送され、支払注文が除外される場合には、支払いサービス16が、クライアント12にメッセージを送信する。
上のサービスでは、固定されたステップのプロセスが、各ノードで定義され、各ノードは、プロセスの次のステップを調整する。プロセス・ステップの知識が、各ノードで保持される。各ノードは、それ自体でまたは別のノードと共に、プロセスのあるステップを実行する方法だけを知っている。プロセスの各ステップは、プロセスの次のステップにつながり、これによって、プロセスが、集中して定義されるのではなく、ノードのグループにまたがって定義される。ノードは、プロセスにおけるそれ自体のステップを終了したならば、次のステップを開始するために次のノードをトリガする。この例では、ノードは、なんらかの制御を有するが、プロセスの個々の制御は有しない。
そのような分散プロセスは、当該プロセスおよびそれらのノードに固定される。必要なものは、クライアントがプロセスを選択でき、そのプロセスに含まれるノードを選択できる解決策である。
本発明の第1の態様によれば、請求項1で定義される、複数のノードの間のプロセスを制御するシステムが提供される。
そのようなシステムを、好ましい実施形態ではプロセス・ブローカと呼ぶ。ノード(好ましい実施形態ではクライアントと呼ぶ)が、プロセス・ブローカと排他的に対話し、他のノードと対話しないように構成され、その結果、ブローカの対話なしでその排他的ノードに対するプロセスを実行できるノードがなくなることが好ましい。そのようなブローカが、信頼される当事者になることが好ましい。そのようなブローカ・システムを使用して、全体的なプロセスの一部を形成する複数のサブプロセスに、単一の焦点が与えられることが最も好ましい。
そのようなシステムによって、実際に事前定義サービスと対話する方法の知識なしで、クライアントがサービスと対話できるようにする、アプリケーション開発者用の単純なコマンド試行インターフェースが提供されることが好ましい。そのような知識は、システム内に保管される。
ノードは、複数のコンピュータ・システム・タイプの1つとすることができるのが好ましい。第1ノードは、製品またはサービスを買うプロセスを呼び出すクライアントとすることができる。第2ノードは、処理される商品またはサービスを有するクライアントとすることができる。もう1つのノードは、第1ノードおよび第2ノードの支払いサービスとすることができる。もう1つのノードは、たとえば支払いサービスなどのノードの接続詳細を突き止めるためのサービス・レジストリとすることができる。
本発明の好ましい実施形態を、例としてのみ添付図面を参照してこれから説明する。
ノードのシステム全体の構成要素を、図2を参照して説明する。1つまたは複数のネットワークを介してプロセス・ブローカ10に接続されたクライアント40およびクライアント42が示されている。やはりブローカ10に接続されているのが、支払いサービス44、支払いサービス46、およびサービス・レジストリ48である。
クライアント40は、関連データをセキュア・ストアに保管するが、この場合に、関連データは、支払いサービス44の名前および支払いサービス44によって保持されるアカウント詳細である。クライアント40および42は、プロセス・ブローカ10との間でデータを送受信することができる。この実施形態では、クライアント40は、WAPトランスポート・プロトコルを使用してプロセス・ブローカ10と通信するWAP対応モバイル電話機である。クライアント42は、HTTPである共通ネットワーク・プロトコルを介してプロセス・ブローカ10と通信する。
サービス・レジストリ48は、支払いサービス44および46の接続詳細を含む。そのような接続詳細は、プロセス・ブローカ10によって、クライアントによって供給されるノード名を使用して獲得される。
ネットワークは、サービスを使用する、クライアント、ブローカ、およびサービス・レジストリを含むすべてのノードが接続する。プロセス・ブローカ10は、複数ネットワーク・トランスポート機能を有し、ネットワーク上で、共通HTTPプロトコルを使用して、Webサービスを調整する
プロセス・ブローカ10は、サービスを実行することができ、図3に詳細に示されている。この実施形態では、プロセス・ブローカは、IBM(登録商標)WebSphere(登録商標)Business ProcessBeansを使用して構築され、IBM Websphere Webアプリケーション・サーバ上で動作する。しかし、サービスの走行、実行、処理、および呼び出しが可能であるならば、どのような言語またはプラットフォームでも使用することができる。プロセス・ブローカ10の機能は、プロセス・テンプレートを保管し、それらのプロセス・テンプレートを実行し、実行の状態を維持し、実行ステップの間でデータを処理することである。プロセス・テンプレートの例を説明する。
プロセス・ブローカ10は、プロセス・エンジン30およびプロセス・テンプレート・リポジトリ32を含む。プロセス・エンジン30は、構成要素の本体、メッセージ・リスナ34、メッセージ・センダ35、プロセス・インタープリタ36、プロセス実行37、セキュリティ38、およびプロトコル・コンバータ39を含む。プロセス・テンプレート・リポジトリ32は、プロセス・テンプレート1(支払いプロセス・テンプレート)、プロセス・テンプレート2(暗号込みの支払いプロセス・テンプレート)、および支払いプロセス・テンプレート3(支払いのためのディジタル商品の交換)を含む。
メッセージ・リスナ34は、ノードからのメッセージが受信する。この構成要素は、どのようなトランスポート・プロトコルが使用されても、そのプロトコルを介してメッセージ(当事者からの要求または応答)を受信することができる。そのプロトコルが、共通プロトコルではなく、異なるプロトコルである場合には、プロトコル・コンバータ39が、異なるプロトコル・メッセージを変換するために呼び出される。異なるプロトコルが保管され、その結果、後続メッセージを、変換された異なるプロトコルにすることができる。メッセージ・リスナ34は、セッションidを識別するかメッセージにそれが含まれないことを識別することによって、現在のプロセスの一部であるメッセージと、新しいプロセスの実行を要求するメッセージを区別する。セッションidがない場合には、そのメッセージは、プロセス・インタープリタ36に渡される。セッションidがある場合には、そのメッセージは、プロセス実行37に渡される。
メッセージ・センダ35は、メッセージをノードに送信する。この構成要素は、HTTPトランスポート機構を介してメッセージ(当事者からの要求または応答)を送信することができる。通常、各メッセージに、セッションidが含まれ、このセッションidを応答に含めて、メッセージが進行中のプロセスの一部であることを示すことができる。受信ノードが、異なるプロトコルをサポートするが、共通プロトコルをサポートしないことが既知である場合には、メッセージを送信する前に、プロトコル・コンバータ39を呼び出して、その異なるプロトコルに変換する。
プロセス・インタープリタ36は、セッションidがないメッセージを解析して、そのメッセージによってプロセス実行37とのセッションが開始されるかどうかを識別する。次に、メッセージ(ノードを含む)から、プロセス実行37による後続の実行のためのプロセス・テンプレートおよびパラメータを識別し、プロセス・テンプレートの処理のためのセッションidを割り当てる。
プロセス実行37は、選択されたプロセス・テンプレートのステップを解析し、さまざまなメソッドを呼び出す。ノードからの応答にセッションidが含まれる場合に、プロセス実行37は、その応答も解析する。プロセス実行37は、テンプレート内のステップをカウントし、各ステップを順次に実行する。4つの主要なメソッドすなわち、内部メソッド、ノード呼び出しメソッド、ノード・アドレス・メソッド、および役割管理メソッドを、本明細書で説明する。内部メソッドは、たとえば数値演算、論理演算、文字列操作、ローカル・メソッド呼び出しなどの多数の内部メソッドのいずれかとすることができる。ノード呼び出しメソッドは、メッセージ・センダ35を使用して、ノードと通信し、実行されるサービスを要求する。このメソッドは、ノード・アドレスを必要とする。ノード呼び出しメソッドから戻る際に、応答が保管され、さらなるステップの処理に使用される。ノード・アドレス・メソッドは、ノード名をサービス・ディレクトリに送信することによって、ノード・アドレスを獲得する。このメソッドは、開始クライアントまたは後続クライアントによってノード名だけが与えられる時に呼び出される。役割管理メソッドは、ノード名を役割に割り振るためのものであり、ノード名がプロセス・テンプレートで直接に参照されない時に使用される。プロセス・テンプレートは、ソース・ノード、ターゲット・ノード、ターゲット・ノードの支払いサービスなどの役割によってプロセスを定義する。役割管理メソッドは、ノードからの最初のメッセージおよび後続メッセージで供給されるパラメータから、役割を特定のノードに割り振る。
セキュリティ構成要素38は、セキュア・プロセスに関する要求を識別する。プロセス・ブローカ10自体は、関連ノードに暗号化されたデータを渡す時を除いて、暗号化されたデータを使用せず、使用することを必要としない。
セキュリティ構成要素は、セキュア・プロセス・テンプレートに関する要求の識別およびそのようなセキュア・プロセス・テンプレートの選択、ならびにプロセス・テンプレート内のセキュア・プロセスの識別のためのメソッドを含む。
プロセス・テンプレートは、本明細書で、1つまたは複数のノードの間での汎用の対話を記述するのに使用される用語である。そのような記述は、システムによって、ノードの間のウェブ・プロセスを調整するのに使用される。プロセス・テンプレートは、システムによる実行に適切な言語で記述され、支払いプロセスまたは商品の交換プロセスなどの複数のノードの間での特定の目標を達成する特定のプロセスを定義する。プロセス・テンプレートは、収集され交換される必要がある情報、プロセス内で当事者の所与の組によって演じられなければならない役割、および全体的な目標を達成するために行われる必要があるステップを定義する。「支払い」を記述するためにテンプレート内で定義することができる役割の例は、「買い手」、「売り手」、および「銀行家」である。Webサービス用語では、プロセス・テンプレートは、それぞれがWebサービス対話を記述する、1つまたは複数のサブプロセスを含む。
プロセス・テンプレートが、プロセス・ブローカによって解釈され、実行される時に、そのプロセス・テンプレートは、それによって記述されるプロセスの実行中インスタンスになり、その中で定義された役割は、実際に参加する当事者(プロセス・ブローカのクライアントであれ、プロセス・ブローカが使用するサービスであれ、クライアントによって使用するように指定されたサービスであれ)にバインドされなければならない。
本発明の好ましい実施形態のプロセス・テンプレートは、システム内の他のプロセス・テンプレートと共にデータベースに保管され、実行中に変更されないという意味で、静的である。
プロセスによっては、機密詳細が必要であり、関係する一部の当事者の機密詳細へのアクセスの制限が望まれる。
プロトコル・コンバータ39は、クライアントからメッセージを受信する時に、それが共通プロトコルと異なる場合にメッセージ・トランスポート・プロトコルを共通プロトコルに変換するメソッドと、クライアントにメッセージを送信する時に、クライアントが異なるトランスポート・メッセージを使用する場合にメッセージ・トランスポート・プロトコルをクライアントのトランスポート・プロトコルに変換するメソッドを含む。
暗号化技法は、複数ノード・システムで遭遇する機密詳細の問題を扱うことができる。信頼のドメインが、同様なノードおよび関連するノードの間に存在し、たとえば、この実施形態では、信頼のドメインは、クライアント間、クライアントとその支払いサービスの間、および支払いサービス間に存在する。1つの状況は、各クライアントが、同一レベルの信頼を有し、各ノードのすべてのデータを見る時である。もう1つの状況は、クライアントとそのそれぞれの支払いサービスの間の通信が、クライアントとそのノードだけが知り、他のノードが知らない鍵を用いて暗号化される時である。もう1つの状況は、2つの支払いシステムが、お互いを知り、独立にまたはブローカを介して公開暗号鍵を交換する時であり、その場合、ブローカを介して送られる暗号化されたデータは、ブローカに知られることはない。この第3の場合では、ブローカは、機密データを渡すことを許可されるが、それが何であるかを知らないので、部分的に信頼される第三者のプロセス・コーディネータにすぎない。
この最後の場合に、機密データだけが暗号化され、メッセージは暗号化されないので、メッセージは部分的に暗号化される。そのような解決策は、IBM MQe製品によって対処され、この場合に、文書の部分的暗号化およびメッセージ・レベル暗号化が可能であり、その結果、メッセージを、中間ノードに見られる危険性なしで、ノードを介してルーティングすることができるようになる。しかし、この製品は、純粋にメッセージング・プラットフォームであり、この実施形態などのプロセスを構築する基礎である。IBM MQeは、各ノード(この場合にはクライアント、支払いサービス、および呼び出されるすべてのサービス)にMQeが存在する同種環境で動作する。
異種システムは、共通ネットワーク・トランスポート・プロトコルを有する。プロセス・ブローカは、実質的に共通のネットワーク・トランスポート・プロトコルを有して、プロセスを調整するが、あるノードが共通プロトコルをサポートしない場合に、プロトコルと共通プロトコルの間の変換を実行する手段も含む。プロセス・ブローカは、プロセスの中心にあるので、そのような機能を実行するのに理想的な位置であり、ノードをシンに保ち、ネイティブ・トランスポート・プロトコルを使用した通信を可能にする。
2つのプロセス・テンプレートの例を、この実施形態で説明する。これらのプロセス・テンプレートは、プロセス・テンプレート・リポジトリ32に保管される。プロセス・テンプレートは、標準インターフェース定義を使用してサービスを定義する。このプロセス・テンプレートのデータベースは、タイプによって参照でき、プロセス・エンジン30による解釈および実行のために検索することができる。
図4の支払いプロセス・テンプレートは、クライアント42の支払いサービスからクライアント40の支払いサービスに電子支払い注文を直接転送する。たとえば、一対のクライアントが商売を行っており、1ドルの支払いを、それらの間で行う必要がある。クライアント40(売り手)は、クライアント42(買い手)に支払いを求める。
ステップ401で、クライアント40は、要求およびデータをプロセス・ブローカ10に送信する。要求データ(C40データ)は、クライアント40の支払いサービス詳細(それへの支払いを行うことができる支払いサービス44)の名前、支払われる額(1ドル)、プロセス・ブローカ10が理解するクライアント40への参照(たとえば、クライアント40のノード名またはアドレス)を含む。セッションidは、このメッセージに含まれない。
ステップ402で、プロセス・ブローカ10は、メッセージ・リスナ34を介してこのメッセージを受信する。メッセージ・リスナ34は、セッションidがないことを識別し、このメッセージをプロセス・インタープリタ36に渡す。プロセス・インタープリタ36は、要求による指示に従って、支払いプロセス・テンプレートを解析し、選択する。プロセス・インタープリタ36は、プロセス・テンプレート・リポジトリ32から支払いプロセスのプロセス・テンプレートを検索し、そのプロセス・テンプレートをプロセス実行37に渡す。プロセス実行37は、プロセスへの入力として送信された要求データを使用して、そのプロセス・テンプレートを実行する。プロセス実行37は、このプロセス・テンプレートにおける開始役割を売り手として識別し、役割管理メソッドを使用して、クライアント40をその役割にバインドする。プロセス実行37は、プロセスの3つの他の役割もバインドする、すなわち、買い手をクライアント42に、買い手銀行サービスを支払いサービス46に、売り手銀行サービスを支払いサービス44にそれぞれバインドする。売り手銀行サービスは、要求データ(C40)で指定され、このステップ402でプロセス・インタープリタ36によって支払いサービス44にバインドされるが、買い手銀行サービスは、ステップ404の後でバインドされる。
ステップ403は、プロセス実行37によって実行されるプロセス・テンプレートの最初のステップであり、このステップは、クライアント42からの関連データを要求する。最初のプロセス・ステップは、買い手役割からの銀行サービス詳細に関する要求文書により定義される。入力データがクライアント42を指定しているので、買い手役割は、前に、クライアント42として解決されている。
クライアント42は、要求文書を受信し、売り手データ(額=1ドル)に基づいて、支払いサービス46が買い手銀行サービスであることを指定することによって応答する。クライアント42は、クライアント40のデータに基づいて、要求文書にそれ自体のデータ(C42データ)を追加し、それをプロセス・ブローカ10に送り返す。
ステップ404で、プロセス実行は、クライアント42からの要求文書を受信する。このステップでは、プロセス実行は、役割管理メソッドを呼び出し、プロセス・インタープリタ36によるクライアント42データの受信の後に、支払いサービス46を、買い手銀行サービス役割にバインドする。
ステップ405で、プロセス実行は、支払いサービス44および46のノード・アドレスを獲得する必要がある場合に、サービス・レジストリ48を呼び出す。このプロセス・ステップは、サービス・レジストリ48からの支払いサービス44および46の接続詳細を要求する。というのは、これらが、それぞれ売り手銀行サービスおよび買い手銀行サービスの役割にバインドされるからである。
ステップ406で、プロセス実行37は、振り出される、クライアント40に支払い可能な支払い注文について、要求文書(買い手詳細、売り手詳細、額)をクライアント42の支払いサービス46に送信する。
ステップ407で、プロセス実行37は、すべての詳細が適切である場合に、サービス・レジストリ48から支払い注文を受け取る。
ステップ408で、プロセス・テンプレートにおける次のフロー・ステップが、支払い注文をクライアント40の支払いサービス44に供託する。
ステップ409で、支払いサービス44は、成功または失敗を示し、プロセス・テンプレートにおける最後のフロー・ステップであるステップ410で、状況がクライアント40に返される。
プロセス・テンプレートの第2の例は、支払いに関するディジタル商品の交換を伴う、より複雑な処理フローである。これは、図2にディジタル権利管理(DRM)ノードを追加したものと同一なので、このプロセスに関して図は示さない。
一対のクライアントが、商売をしている。クライアント40(売り手)が、クライアント42(買い手)に5ドルの支払いを求める。これと交換に、クライアント40は、ディジタル資産、たとえば、MP3フォーマットでエンコードされ、音楽ファイルを作成した音楽出版会社(DRMサービスA)のディジタル権利管理(DRM)システムを用いて保護された音楽ファイルの所有権を移転する。
ステップ1 クライアント40が、その支払いサービスの詳細(支払いサービス44)、そのDRMサービス名(DRMサービスA)、DRMサービスに既知の音楽ファイル名への参照(MP3−A)、およびクライアント42のセッションidを指定して、ブローカに「支払いのための商品の交換」要求を送信する。
ステップ2 プロセス・ブローカ10が、「支払いのための商品の交換」プロセス・テンプレートを検索し、供給されたデータを適当な役割すなわち買い手、売り手、売り手支払いサービス、およびDRMサービスにバインドする。
ステップ3 最初のプロセス・ステップが、買い手役割から銀行サービス詳細を要求する。プロセス・ブローカ10は、この情報の要求をクライアント42に送信する。
ステップ4 クライアント42が要求を受信し、支払いサービス46がその銀行サービスであることを指定することによって応答する。支払いサービス46は、買い手銀行サービス(プロセス・テンプレートにおける最後の役割)にバインドされる。
ステップ5 次のプロセス・ステップで、プロセス・ブローカ10が、それぞれ売り手銀行サービスおよび買い手銀行サービスの役割にバインドされる、支払いサービス44および46の接続詳細と、DRMサービス役割にバインドされるDRMサービスAの接続詳細を、サービス・レジストリ48に要求する。
ステップ6 次のプロセス・ステップで、プロセス・ブローカ10が、振り出される、売り手に支払い可能な支払い注文の合成要求(買い手詳細、売り手詳細、額)を、支払いサービス46に送信する。
ステップ7 すべての詳細が適切である場合に、支払いサービス46が、プロセス・ブローカ10に有効な支払い注文を返す。
ステップ8 次のステップで、支払い注文が有効であり、受入可能であることを検証するために、プロセス・ブローカ10が、支払い注文を支払いサービス44に送信する。
ステップ9 次のステップで、支払いサービス44が、支払い注文が有効であることの表示をブローカ10に返す。
ステップ10 仮想資産(MP3−A)の所有権を、クライアント40からクライアント42に変更するための要求を、プロセス・ブローカ10が、DRMサービスAに送信する。
ステップ11 DRMサービスAが、所有権の変更が訴えられたが、完了には委託が必要であることを確認することによって、プロセス・ブローカ10に応答する。
ステップ12 次のプロセス・テンプレート・ステップが、満たされるべき委託として、支払いサービス44に支払い注文を送信する。
ステップ13 支払いサービス44が、成功または失敗を示す。
ステップ14 結果が失敗である場合には、プロセス・ブローカ10が、所有権変更を取り消す要求をDRMサービスAに送信し、失敗応答をクライアント40に送り返す。しかし、結果が成功である場合には、プロセス・ブローカ10は、成功状況をクライアント40に返す(支払いが成功裡に行われ、資産所有権が移転された)。
プロセス・ブローカ10を、Business Beansに関して説明したが、プロセス・ブローカ10は、有限状態機械、有向グラフ・インタープリタなど、プロセス・モデルを実行するのに適切な多数の形で実施することができる。たとえば、BusinessProcess Beansは、適応ビジネス・サービス・モデルを使用することができ、IBM MQSeriesWork Flow(MQWF)などの有向グラフ・フロー・エンジンは、Flow Definition ModellingLanguage(FDML)を使用することができる。
従来技術のマルチノード支払いプロセスの概略を示す図である。 本発明のマルチノード支払いプロセスの概略を示す図である。 本発明の実施形態のプロセス・ブローカの主構成要素を示す概略図である。 支払いプロセス・テンプレートのマルチノード・プロセス・フローを示す図である。

Claims (7)

  1. 複数のクライアントおよび少なくとも1つのサーバの間でのプロセスを制御するシステムであって、
    それぞれが複数のクライアントおよび少なくとも1つのサーバの間でのプロセスであって、複数のクライアントの間で特定の目標を達成するプロセスを定義する複数のプロセス・テンプレートを保管するプロセス・テンプレート・リポジトリ手段と、
    クライアントおよび少なくとも1つのサーバの間でメッセージを送受信する手段であって、進行中のプロセスであることを示すセッションidが含まれないメッセージを受信した場合には前記メッセージをプロセス・インタープリタ手段に渡し、セッションidが含まれるメッセージを受信した場合には前記メッセージをプロセス実行手段に渡す手段と、
    セッションidがないメッセージを解析し、当該メッセージによりセッションが開始されるかどうかを識別し、第1クライアントから受信される前記メッセージに応答してプロセス・テンプレート、サーバ、および第2クライアントを選択し、前記メッセージにセッションidを割り当てるプロセス・インタープリタ手段と、
    前記セッションidを含むメッセージを受領し、前記プロセス・テンプレート内のステップをカウントして順次に実行することにより、選択された第2クライアントにメッセージを送信し、それに応答する第2クライアントからのメッセージを受信することと、選択されたサーバにメッセージを送信し、選択されたサーバから応答を受信することと、第2クライアントおよびサーバからの応答の結果として、第1クライアントに応答を送信することとを含む、選択されたプロセス・テンプレートを実行するプロセス実行手段とを含み、
    前記プロセス実行手段は、サーバと通信し、実行されるサービスを要求するサーバ呼び出し手段を含み、
    前記サーバ呼び出し手段は、サーバ名をサービス・ディレクトリに送信することによってサーバ・アドレスを獲得し、
    前記プロセス・テンプレートは、支払いプロセスまたは商品交換プロセスを定義し
    前記支払いプロセスは、前記クライアントそれぞれの支払いサービスノードに電子支払いを実行させ、
    前記商品交換プロセスは、前記クライアントそれぞれの支払いサービスノードに電子支払いを実行させ、前記クライアントであるDRMノードにデジタル商品の所有権を移転させる、システム。
  2. 前記プロセス・テンプレートが、収集され交換される必要がある情報、当事者の所与の組によってプロセス内で演じられなければならない役割、および指定された目標を達成するために行われる必要があるステップを定義する、請求項に記載のシステム。
  3. 前記第1クライアントが、製品またはサービスを買うプロセスを呼び出すことを可能にされる、請求項1または2に記載のシステム。
  4. 前記第2クライアントが、処理される商品またはサービスを有する、請求項1ないしのいずれかに記載のシステム。
  5. 各前記プロセス・テンプレートが、1つまたは複数のステップを含み、少なくとも1つのステップが、クライアントまたはサーバとの対話である、請求項1ないしのいずれかに記載のシステム。
  6. 前記プロセス・テンプレートを実行する前記プロセス実行手段が、解釈済み言語でコード化される、請求項1ないしのいずれかに記載のシステム。
  7. クライアントまたはサーバからメッセージを受信する時に、メッセージ・トランスポート・プロトコルが共通プロトコルと異なる場合に、メッセージ・トランスポート・プロトコルを共通プロトコルに変換し、クライアントまたはサーバにメッセージを送信する時に、前記クライアントまたはサーバが異なるメッセージ・トランスポート・プロトコルを使用する場合に、メッセージ・トランスポート・プロトコルをクライアントまたはサーバのトランスポート・プロトコルに変換するためのプロトコル・コンバータをブローカが含む、請求項1ないしのいずれかに記載のシステム。
JP2003557173A 2001-12-22 2002-12-13 マルチノード・プロセスを制御する方法および装置 Expired - Lifetime JP4667748B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0130864.2A GB0130864D0 (en) 2001-12-22 2001-12-22 Method and apparatus for controlling a multi-node process
PCT/GB2002/005664 WO2003056783A1 (en) 2001-12-22 2002-12-13 Method and apparatus for controlling a multi-node process

Publications (2)

Publication Number Publication Date
JP2005513683A JP2005513683A (ja) 2005-05-12
JP4667748B2 true JP4667748B2 (ja) 2011-04-13

Family

ID=9928341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003557173A Expired - Lifetime JP4667748B2 (ja) 2001-12-22 2002-12-13 マルチノード・プロセスを制御する方法および装置

Country Status (9)

Country Link
US (1) US8712786B2 (ja)
EP (1) EP1468544B1 (ja)
JP (1) JP4667748B2 (ja)
KR (1) KR100574158B1 (ja)
CN (1) CN100525313C (ja)
AU (1) AU2002350960A1 (ja)
CA (1) CA2465331A1 (ja)
GB (1) GB0130864D0 (ja)
WO (1) WO2003056783A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039171A1 (en) * 2003-08-12 2005-02-17 Avakian Arra E. Using interceptors and out-of-band data to monitor the performance of Java 2 enterprise edition (J2EE) applications
US7281274B2 (en) 2003-10-16 2007-10-09 Lmp Media Llc Electronic media distribution system
US20050172013A1 (en) * 2004-02-04 2005-08-04 Tan Yih-Shin Methods, systems, and computer program products for configuring rules for service nodes in grid service architecture systems
US7370118B2 (en) * 2004-02-04 2008-05-06 International Business Machines Corporation Methods, systems, and computer program products for dynamic inter-operability of nodes in service grids
US8572236B2 (en) * 2006-08-10 2013-10-29 Ab Initio Technology Llc Distributing services in graph-based computations
GB2501265A (en) * 2012-04-17 2013-10-23 Ibm Constructing instructions for a mainframe by embedding programming in job control language, and executing those instructions at the mainframe
US8914308B2 (en) * 2013-01-24 2014-12-16 Bank Of America Corporation Method and apparatus for initiating a transaction on a mobile device
CN105183447A (zh) * 2015-07-13 2015-12-23 国云科技股份有限公司 一种轻量级的流程引擎实现方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9314460D0 (en) 1993-07-13 1993-08-25 Int Computers Ltd Computer systems integration
US6553410B2 (en) 1996-02-27 2003-04-22 Inpro Licensing Sarl Tailoring data and transmission protocol for efficient interactive data transactions over wide-area networks
JPH117467A (ja) * 1997-06-16 1999-01-12 Hitachi Ltd 個人間商品売買仲介方法および装置
JPH1196099A (ja) * 1997-09-19 1999-04-09 Hitachi Ltd サービス提供システム
US8375127B1 (en) * 1999-03-31 2013-02-12 International Business Machines Corporation Method and system for using virtual URLs for load balancing
US20010051902A1 (en) * 1999-06-28 2001-12-13 Messner Marc A. Method for performing secure internet transactions
JP2001229137A (ja) * 2000-02-17 2001-08-24 Toyo Eng Corp ホスティングシステム
JP2001338171A (ja) * 2000-05-29 2001-12-07 Nec Corp サービス取引仲介システムおよびサービス取引仲介方法並びに記録媒体
US7035828B2 (en) * 2000-10-25 2006-04-25 Topmoxie, Inc. Method and system for modifying and transmitting data between a portable computer and a network
US7212976B2 (en) * 2001-01-22 2007-05-01 W.W. Grainger, Inc. Method for selecting a fulfillment plan for moving an item within an integrated supply chain
US20030115111A1 (en) * 2001-08-25 2003-06-19 Fisher Douglas C. Mediated order management agent

Also Published As

Publication number Publication date
CN100525313C (zh) 2009-08-05
KR20040068101A (ko) 2004-07-30
CN1611052A (zh) 2005-04-27
GB0130864D0 (en) 2002-02-06
WO2003056783A1 (en) 2003-07-10
EP1468544B1 (en) 2013-01-16
JP2005513683A (ja) 2005-05-12
EP1468544A1 (en) 2004-10-20
US20030120596A1 (en) 2003-06-26
CA2465331A1 (en) 2003-07-10
KR100574158B1 (ko) 2006-04-26
AU2002350960A1 (en) 2003-07-15
US8712786B2 (en) 2014-04-29

Similar Documents

Publication Publication Date Title
AU2009243428B2 (en) Exposing Process Flows and Choreography Controllers as Web Services
JP4594621B2 (ja) 分散コンピューティング環境における集約サービスの供給
CN101098315B (zh) 在高速低延迟数据通信环境中计算机数据通信方法和系统
US8321498B2 (en) Policy interface description framework
JP2004078967A (ja) サーバ・グループ間で操作を調整する方法
KR20050046790A (ko) 웹 서비스를 위한 동적 정보 처리 상호 운용 약정
JP4303541B2 (ja) 検索方法及び検索ブローカ
US20050278417A1 (en) Client access to web services
JP4667748B2 (ja) マルチノード・プロセスを制御する方法および装置
JP4617309B2 (ja) ウェブ・サービス契約選択システム
TW582147B (en) Inbound connector
US20050172013A1 (en) Methods, systems, and computer program products for configuring rules for service nodes in grid service architecture systems
US9479599B2 (en) Reroute of a web service in a web based application
AU2012216248B2 (en) Exposing Process Flows and Choreography Controllers as Web Services
Loke et al. An enterprise viewpoint of wireless virtual communities and the associated uses of software agents
JP2005056079A (ja) サービス提供方法及びサービス提供システム
Quah et al. Linking Businesses for Competitive Advantage: A Mobile Agent-Based
KR20050037990A (ko) 웹 서비스 브로커
Van Hoecke et al. Web services-based middleware for QoS brokering of media content delivery services

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060808

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061030

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080404

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080513

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101130

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110112

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

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4667748

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

EXPY Cancellation because of completion of term