JPH11502044A - 分散環境におけるアプリケーション・プログラム用のサポート - Google Patents

分散環境におけるアプリケーション・プログラム用のサポート

Info

Publication number
JPH11502044A
JPH11502044A JP9511729A JP51172997A JPH11502044A JP H11502044 A JPH11502044 A JP H11502044A JP 9511729 A JP9511729 A JP 9511729A JP 51172997 A JP51172997 A JP 51172997A JP H11502044 A JPH11502044 A JP H11502044A
Authority
JP
Japan
Prior art keywords
message
messages
application
identifier
node
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.)
Granted
Application number
JP9511729A
Other languages
English (en)
Other versions
JP3560345B2 (ja
JP3560345B6 (ja
Inventor
ケリー、ジョン、アンソニー
マッコーリオン、イアン、マイケル
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH11502044A publication Critical patent/JPH11502044A/ja
Publication of JP3560345B2 publication Critical patent/JP3560345B2/ja
Application granted granted Critical
Publication of JP3560345B6 publication Critical patent/JP3560345B6/ja
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 アプリケーション・プログラム間の通信及びこれらのプログラムによるメッセージの処理をサポートするためのシステム及び方法が提供される。受信メッセージを処理すべきモジュール状アプリケーション・プログラムの適当な構成要素を選択するために、テーブル・ドリブン型のアプローチが使用される。この選択を行うため、メッセージのタイプ(例えば、要求、情報、応答)とメッセージの他の特性(例えば、当該メッセージが(識別子の値によって識別されるような)予期された応答メッセージであるか否かということ)との間の関係が使用される。また、この選択を行うため、当該メッセージ又はシステムの動的特性(例えば、タイムアウトの満了の可能性、又はアプリケーションの状態)も使用される。複数の規則によってこれらの基準が結合されて、特定のアプリケーション・プログラム構成要素を呼び出すための条件を決定する。更に、順序外で受信したが依然として最新である応答メッセージと、無効な応答メッセージとを判別するための機構が設けられる。

Description

【発明の詳細な説明】 分散環境におけるアプリケーション・プログラム用の サポート [技術分野] 本発明は、分散データ処理及び通信に係り、更に詳細に説明すれば、アプリケ ーションの設計、開発及び/又は稼働時の実行(run-time execution)をサポー トするとともに、アプリケーション・プログラム間のメッセージ交換の通信をサ ポートするための方法及びシステムに係る。 [背景技術] 特定の組織又は互いに異なる組織に属するか否かに拘わらず、複数の作業者が コンピュータ・ネットワークを使用して情報を交換することは、現在ではごく普 通のことである。ネットワーク化の使用が普及し、ネットワーク化及び分散シス テムの信頼性や性能が向上するにつれて、共有データへの高速アクセスが可能と なり、このため作業者の効率が向上しただけでなく、(例えば、高価なI/O装 置をネットワーク内の複数のユーザに利用可能にすることを通して)諸データ処 理資源の費用効果が向上した。 ネットワーク化は、データ及びプロセスを複数のデータ処理ステーション間に 分散させ、そしてネットワーク内の何れ のサイトにおいても、かかるデータ及びプロセスを最も効率的に位置付けること を可能にした。例えば、所定のデータについては、これをアクセス及び更新すべ き諸プロセスの近傍に位置付け、また所定のプロセスについては、これをエンド ・ユーザのワークステーションに位置付けるようにすると、ネットワーク内のデ ータ・トラヒックを減少させることができる。他方、中央の設置場所に、多数の 遠隔ユーザがアクセスすべき大規模なデータベースを格納すると、整合性の維持 やセキュリティ機構の設置が簡単となる。現在、広範に要請されているのは、全 てのデータを複数の分散システム上に分散させることなく、LANやワークステ ーションの利点を活用できるようにする、ということである。なぜなら、セキュ リティの提供や企業内アクセスのバックアップなどのデータ管理タスクは、これ を集中データについて行うよりも、分散データについて行う方が遥かに高価につ くからである。 分散処理について有利なデータ処理方式は、「クライアント」プログラムが1 つ以上の「サーバ」プログラム(これは異なるシステム上にあっても良い)に要 求を送り、サーバから共有サービスを受け取るようにしたクライアント/サーバ 方式である。単一のビジネス・アプリケーションは、複数のネットワーク・サイ ト上に分散可能であり、クライアント及びサーバ・プログラムの両者を含むこと がある。 アプリケーションのロジックが地域的に分散されているか又は複数のプロセッ サ上に分散されている場合(即ち、分散 アプリケーション(DA)が複数のアプリケーション・プログラム(DAP)か ら成る場合)、このアプリケーションは、非分散アプリケーション(NDA)に ついては生じないような技術上の問題に対処しなければならない。これらの問題 は、このアプリケーションの互いに異なる部分の間の通信や、遠隔システム又は このアプリケーションの遠隔部分における障害又は不十分な性能についての対処 方法を含んでいる。 これらの問題に向けられた公知の1つのアプローチは、分散アプリケーション ・インフラストラクチャ(DAI)が提供するサービスを使用して、分散アプリ ケーション内で通信が行われているという事実をマスクすることにより、このD Aが、プログラマ及びエンド・ユーザに対し、恰もNDAであるかのように見え るようにする、というものである。このアプローチが使用されるのは、通信のた めに遠隔手順呼び出しが使用される場合である。かかるDAIを使用する意図は 、アプリケーションのプログラミングを簡単にすることにある。 しかしながら、NDAでは、システム障害のような問題がこのアプリケーショ ンの全体に影響を与えて(又は全く影響しないこともある)、このアプリケーシ ョンを全体として停止させることがある。これに対し、DAでは、1つのアプリ ケーション・プログラム(DAP)内の問題が、障害に陥っていない他のDAP 内のコードによって、このアプリケーションのエンド・ユーザからマスクされる ことがある。かかるマスキングの効果は、問題を有するこのDAPの役割に依存 する。この場合の重要な技術上の問題は、非分散の見せかけ(DAがNDAのよ うに見えるようにすること)が、問題のマスキングを行うことを妨げる、という 点にある。また、アプリケーション・プログラム内にマスキング・コードを含め ると、メインライン・アプリケーションのプログラム・コードが著しく複雑とな り、このため、アプリケーションのプログラミング作業が一層困難となる。 以下に、エラー条件のマスキングを行うことが望ましい状況を例示する。 * データベースの最終的な更新に終わるような一連の操作を包含するアプリケ ーションにおいて、通信障害のために更新要求がこのデータベースに到着するこ とが一時的に妨げられる場合には、エンド・ユーザに悪影響を与えることなく、 この最終的な更新を延期することができる。 * 小売業アプリケーションにおいて、クレジット・チェック・システムが一時 的にアクセス不能となる場合には、販売中の商品の価格が予定額以下であること を条件として、通常のクレジット・チェックを放棄することができる。 要請されているのは、分散アプリケーションにおけるエラー条件及びエラーの 「マスキング」を効率的に処理することができる方法及びシステムである。また 、非常に複雑なアプリケーション・プログラムを要することなく、諸問題のマス キングを容易に行うことができる方法及びシステムも要請されている。一般的に 説明すれば、プログラム間通信用のサポ ート機構を有するコンピュータ・プログラムは、当該技術分野では公知であるが 、かかるプログラムの機能は、情報を転送することに向けられていて、かかる情 報を処理するための追加のサポートを提供することには向けられていない。IB M社の製品「MQSeries」(後述)のような市販のメッセージ交換ソフトウェアは 、アプリケーション・プログラムがメッセージを送信及び受信することを可能に するための機構を提供するが、かかるメッセージの処理自体は、アプリケーショ ン・プログラムに任されている。このため、アプリケーション.プログラムは、 全ての着信メッセージを処理可能にするのに必要な命令として、エラー条件を生 じさせるメッセージを処理するための命令や、何らかの理由で特別な処理を必要 とするメッセージを処理するための命令を含んでいるのが普通である。例えば、 一のメッセージが遅れて到着する場合は、一のメッセージが時間通りに(on tim e)到着する場合に行われるプロセスとは異なるプロセス(例えば、送信側に対 し、遅れた要求がコンパイルされないことを通知すること)を実行しなければな らないことがある。 (注:IBM及び MQSeries は、インターナショナル・ビジネス・マシーンズ・ コーポレイションの商標)。 かかる遅れた受信のほかにも、所定のメッセージを他のメッセージとは異なっ た態様で処理しなければならないような多くの条件が存在する。例えば、指定し た数の関係するメッセージが到着するまで、一のメッセージの処理を遅延させる ことが望ましい場合があり、またアプリケーション・プログラム・インスタンス の異なる状態が、それぞれ異なるアクションを必要とすることもある。 エラー条件の特別なケース及び他の要因を扱うことは、異なるメッセージをそ れぞれ異なる態様で処理するのに望ましいとしても、これはアプリケーション・ プログラミングの困難な側面である。即ち、プログラミング作業に必要な時間を 増加させるだけでなく、最終的なプログラミング・コードを複雑にするからであ る。 このため、メッセージの異なるタイプについてそれぞれ異なる処理を必要とす るエラー条件及び他の基準を効率的に処理することができるだけでなく、アプリ ケーション・プログラミングの複雑さを軽減することができる方法及びシステム が要請されている。 [発明の要約] 本発明の第1の側面に従って、アプリケーション・プログラム間の通信をサポ ートするための機構を有するデータ処理システムであって、 当該システムによって受信される入力メッセージの処理をサポートするための アプリケーション・インフラストラクチャ(AI)を含み、当該AIが、 入力メッセージのタイプをリストするための手段と、 前記AIによってサポートされるモジュール状アプリケー ション・プログラム(AP)の別個に選択可能なアプリケーション・プログラム 構成要素(APC)をリストするための手段と、 入力メッセージのタイプを識別するとともに、前記リストした入力メッセージ のタイプとアプリケーション・プログラム構成要素との間の予め定義された関係 に従って、前記入力メッセージを処理すべき1つ以上の適当なアプリケーション ・プログラム構成要素を選択するための手段を含んでいる、前記データ処理シス テムが提供される。 「アプリケーション・インフラストラクチャ(AI)」がそのように命名され ている所以は、アプリケーション・プログラム間の通信をサポートするためのサ ービスを提供するというその機能を、ソフトウェア製品又はソフトウェア製品の 必須部分として実現することが好ましいからである。このAIは、入力メッセー ジ・タイプの前記リスト及びモジュール状アプリケーション・プログラム(AP )のアプリケーション・プログラム構成要素(APC)の前記リストへの少なく とも読み取りアクセスを有している。 このようなシステムは、アプリケーション・プログラムが着信メッセージを処 理するのに先だって、当該アプリケーション・プログラム内の特定のコード構成 要素又はモジュールを選択するための機構を有する。この選択又は当該アプリケ ーション・プログラムの「調整」は、この着信メッセージの「タイプ」に依存し て行われるようになっている。なお、こ の文脈におけるメッセージの「タイプ」とは、選択すべき特定のアプリケーショ ン・プログラム構成要素を決定するための基準として識別可能で且つ使用可能で ある、予め定義された任意の特性を意味する(例えば、メッセージの「タイプ」 とは、当該メッセージが要求、応答又は情報メッセージのどれであるのか、或い は当該メッセージが削除命令又は更新命令のどれであるのかを意味することがあ る)。以下では、「メッセージのタイプ」又はこれと同義の「メッセージ・タイ プ」という語句が、特定のメッセージについて静的な任意の特性を包括的に意味 するものとする。 メッセージのタイプと特定のアプリケーション・プログラム構成要素との間の 前記予め定義された関係は、当該システムにおいて諸テーブル・エントリとして 実現することができるので、適当なアプリケーション・プログラム構成要素を選 択するには、このテーブルを走査することが必要となる。各受信メッセージに関 係するテーブル・エントリが存在する場合、このシステムは、特定のアプリケー ション・プログラム構成要素を自動的に選択することができる。代替的に、他の 所定の基準が満足された場合にのみ、かかる自動的な選択を行わせるようにする こともできる(後述)。もし、受信メッセージのタイプが前記予め定義された関 係を有さなければ、デフォルトの選択をトリガすることができる。 本発明は、アプリケーション・プログラム内の諸構成要素のうち一の着信メッ セージを処理すべき適当な構成要素を効 率的に選択する(好ましくは、この選択ステップの一部としてこれらの構成要素 のメソッドを自動的に呼び出す)ためのアプリケーション・インフラストラクチ ャを提供することにより、アプリケーションのプログラミングを簡単にすること ができる。即ち、このアプリケーション・インフラストラクチャは、アプリケー ション・プログラム自体が比較的に簡単で且つ比較的に明瞭となり得るような態 様で、これらのアプリケーション・プログラムに代わってサービスを提供するも のである。アプリケーションの機能は、これを実現するために容易に再使用可能 な諸ユニット(例えば、メッセージの経路指定を行うためのナビゲーション・ロ ジック、プレゼンテーション・ロジック及びビジネス・ロジック)にカプセル化 することができる。 前述のように、着信メッセージのタイプに依存して(及びオプションとして、 他のメッセージ又はシステム特性に依存して)アプリケーション・プログラム内 の特定の手順又は構成要素を選択するためにテーブルを使用するようにすると、 主要な処理コードに悪影響を与えることなく、エラー又は障害をマスクするため のコードをアプリケーション・プログラムに追加することができる。このマスキ ング・コードは、エラー条件が検出される場合又は他の特定の状況においてのみ 選択されるような特別のコード・モジュール内に設けることができる。 本発明のシステムは、分散アプリケーション(DA)にお けるアプリケーション・プログラム(DAP)間のメッセージ通信をサポートす るために特に有用であるが、これに限られない。 これらのモジュール状アプリケーション・プログラムが定義する各手順を、所 定の規則が満足された場合にだけ呼び出すようにすることが好ましい。これを実 現するために、前記のアプリケーション・インフラストラクチャは、各着信メッ セージの所定の特性(及び/又はこのメッセージの到着時点における当該システ ムの特性)をメッセージ処理用の諸規則と比較するための手段を備えている。 かくて、このアプリケーション・インフラストラクチャは、メッセージのタイ プとは異なる基準を含んでいるような適当なアプリケーション・プログラム構成 要素を選択するための諸規則をサポートすることが好ましい。もし、メッセージ の「タイプ」が静的で且つこのメッセージの固有の部分であるような特性を意味 するのであれば、実行すべき操作を決定するために検査可能な他の特性を、動的 特性と称することができる。これらの特性には、一のメッセージが遅れているか 又は時間通りであるか、諸メッセージが順序外(out-of-sequence)で到着した か、当該アプリケーションがどの状態にあるか、などの特性を含めることができ る。例えば、予め設定したタイムアウト期間が満了する場合、又は待機中の1組 の応答メッセージのうち最後の応答メッセージを受信する場合にのみ、一の規則 が選択すべき構成要素をトリガすることが できる。一のメッセージ又はシステムの動的特性に基づいて、処理の制御をサポ ートすることは、本発明の重要な側面である。 かくて、分散アプリケーション内のエラー及び障害を処理するためにテーブル ・ドリブン型のアプローチを採用することができるように、前記識別及び選択す るための手段は、システム及び通信障害を考慮するような「タイムアウト」規則 の適用をサポートする。これらの「タイムアウト」規則は、指定したタイムアウ ト期間内にメッセージが受信されなかった場合に行うべき適当なアクションを定 義する。例えば、アプリケーションが、部分的な回答をエンド・ユーザに与えた り、又はビジネス・リスク上の基準を使用して、恰も障害が全く生じなかったか のように、ユーザが先に進むことを許容することができる。また、一のメッセー ジが遅れて到着したが依然として最新であるような場合に、何をなすべきか(即 ち、不十分な性能並びに障害に起因する時間外(out of time)のメッセージを 扱うこと)を定義するための諸規則を含ませることをサポートするのが好ましい 。これらの規則は、アプリケーション・プログラムの内部又はアプリケーション ・インフラストラクチャ自体の内部に設けることができる。 本発明の推奨実施例に従ったシステムは、当該システムからの一の発信メッセ ージに対し第1の識別子を割り当てるための手段と、当該システムからの諸発信 メッセージの識別子のリストを維持するための手段と、着信メッセージの識別子 を検査し且つこれを前記維持されたリストと比較することにより、前記リストし た発信メッセージに関連(対応)する着信メッセージを識別するための手段とを 有している。この比較を意味あるものとするためには、発信メッセージの送信先 である受信システムの側に、これらの発信メッセージに応答して当該受信システ ムが送信する応答メッセージに対し、前記第1の識別子に関連する第2の識別子 を付加するための手段を設けることが必要となる。 一般に、メッセージ通信に関与する各システムは、その各発信メッセージに対 し第1の識別子を割り当てるための手段と、前記リストを維持し且つ検査するた めの手段と、各応答メッセージに対し第1の識別子に関連する第2の識別子を割 り当てるための手段を含むことが好ましい。各識別子は、各メッセージの静的特 性の1つである。 前記第1の識別子及び第2の識別子(例えば、要求メッセージの識別子及びこ れに関連する応答メッセージの識別子)は、各メッセージのフィールド内にある 単一の共通値から成ることが好ましい。このようにすると、一の要求メッセージ に割り当てた値を応答メッセージを介して送信側に反射させ、これをテーブル内 に保持された諸要求メッセージ内の値と容易に比較することができるからである 。かくて、第1の識別子は、これを受信側で解釈することなく、応答メッセージ 内に含めて要求メッセージの送信側に単にラップ・バックすることができる。本 発明に従ったシステムは、受信した諸応答 メッセージの識別子のリストを維持することが好ましい。このリスト内の各エン トリは、そこにリストした応答メッセージが処理のために利用可能であることを 指示する。 第1の識別子及び第2の識別子(前者を反射したもの)を使用すると、互いに 関係するメッセージの認識及び関連付けを容易に行うことができる。本発明の推 奨実施例に従ったシステムは、アプリケーション・プログラムが複数の要求メッ セージを同時的に発信し、前述の識別子を使用して互いに異なるこれらの要求メ ッセージに関連する応答メッセージを判別することを可能にし、かくして順次的 な要求メッセージのみをサポートするシステムよりも優れた処理性能を提供する ことができる。 本発明の他の側面に従って、「ウェーブ・テーブル」内に記録した「ウェーブ 番号」を使用することにより、順序外で到着する諸応答メッセージに対する応答 性を改善することができる。ウェーブ番号は、システムから送信される諸メッセ ージ用の順序番号と類似するような参照番号であるが、本発明に従ったウェーブ 番号の使用の態様は、受信側が順序番号を使用してデータ伝送の信頼性をチェッ クするという従来技術のシステムと比較すると、著しく異なっている。即ち、か かる従来技術のシステムは、複数の順序番号が特定の受信側に対し順次であるこ とを必要とするから、この順序内の穴がこの受信側にとって意味あるものとなる 。他方、本発明のこの側面に従って使用するウェーブ番号は(単調に変化する数 ではあるが)、任意の宛先に対し必ずしも順次とはならないから、従来技術のよ うな順序番号を適用することはできないのである。これらのウェーブ番号は、メ ッセージの送信側によって当該メッセージに対しそれぞれ割り当てられ(例えば 、一のメッセージ・フィールド又はメッセージ・ヘッダ内に記入され)、応答メ ッセージを介してこの送信側にラップ・バックされるようになっており、この点 を除くと、受信側のアプリケーション・プログラムによって使用されることはな いのである。 本発明のこの側面に従って、アプリケーション・プログラム間の通信をサポー トするための機構及びアプリケーション・インフラストラクチャを有するデータ 処理システムであって、当該アプリケーション・インフラストラクチャが、 サポートされる第1のアプリケーション・プログラムから送信される一の要求 メッセージに対しその参照番号(ウェーブ番号)を割り当てるとともに、当該参 照番号を予期応答メッセージの参照番号として記録するための手段と、 受信した応答メッセージの参照番号のうち最高の参照番号を記録及び更新する ための手段と、 前記第1のアプリケーション・プログラム内でウォータシェッド(watershed )に到達するたびに、前記記録した予期応答メッセージの参照番号を新しく割り 当てた一の参照番号で更新するための手段と、 前記要求メッセージに応答して前記アプリケーション・イ ンフラストラクチャが受信し且つ関連する要求の参照番号を含んでいる応答メッ セージを検査するとともに、受信した一の応答メッセージの参照番号が前記予期 応答メッセージの参照番号又は前記最高の参照番号と一致するか否かを決定する ための手段とを含んでいる、前記データ処理システムが提供される。 本発明のこの側面は、要求を受信したアプリケーション・プログラムをサポー トすべく、アプリケーション・インフラストラクチャが、一の要求メッセージの 参照番号を検索するための手段と、当該参照番号を関連する応答メッセージに対 し割り当てるための手段とを有することを必要とする。 このアプリケーション内にウォータシェッドを生じさせるような諸条件は、こ のアプリケーション自体が決定する。これらの条件は、アプリケーションの或る 側面を限界付けるのが適当である、当該アプリケーション内の任意のカットオフ 点とすることができる。即ち、ウォータシェッドの前に受信したメッセージを当 該ウォータシェッドの後に受信したメッセージとは異なった態様で処理すること が望ましい場合は、このウォータシェッドは、設定したタイムアウト期間の満了 とすることができる。本発明の前記決定するための手段は、一の応答メッセージ を当該アプリケーション・プログラムのウォータシェッドの前又は後のどちらで 受信したかを判別する。各ウォータシェッドは、タイムアウトやアプリケーショ ンが開始した任意のアクションを含むような種々の条件によ って生ぜられることがある。例えば、第1のアプリケーション・プログラムが他 のアプリケーション・プログラムから一の要求メッセージを受信した後に、これ に応答する場合には、この応答メッセージの送信が第1のアプリケーション・プ ログラム内にウォータシェッドを生じさせることがある。代替的に、待機中の1 組のメッセージのうち最後のメッセージを受信すると、ウォータシェッド用の諸 条件を満足させることがある。 かくて、これらの参照番号又は「ウェーブ番号」及び「ウェーブ・テーブル」 (この内部には、予期応答メッセージのウェーブ番号及び受信した諸応答メッセ ージの参照番号のうち最高の参照番号が記録されている)を使用すると、前記ア プリケーション・インフラストラクチャは、特定のタスタ内で同時的な複数のメ ッセージを送信するようなアプリケーションをサポートするとともに、順序外で 到着することがある諸応答メッセージを扱うことができる(かかる順序外の到着 は、予期応答メッセージのウェーブ番号と受信した応答メッセージの参照番号が 一致しない場合に相当する)。また、これらを使用すると、重複メッセージを容 易に識別することができる(かかるメッセージの重複は、受信した一の応答メッ セージのウェーブ番号が受信した応答メッセージの記録済みの最高のウェーブ番 号と一致する場合に相当する)。この点については、以下で詳述する。 このように、重複メッセージを識別可能にすると、一の要 求メッセージに関連する応答メッセージを待機しているユーザは、当該メッセー ジの送信を自由に再試行することができ、その場合でも、システムは最初のメッ セージと再試行対象のメッセージを混同せずに確実に処理することができる。か くて、エンド・ユーザは、一の要求メッセージが失われたか又は遅延されたこと が疑わしい場合には、両要求メッセージに対する応答メッセージを最終的に受信 する場合の反復処理のリスクを負うことなく、要求メッセージの送信を再試行す ることができる。 本発明の第3の側面に従って、アプリケーション・プログラム間で送信される メッセージの処理をサポートするための方法であって、 着信メッセージを検査して各メッセージのタイプを決定するためのステツプと 、 前記メッセージを処理すべきモジュール状アプリケーション・プログラムの特 定のアプリケーション・プログラム構成要素を選択するためのステップとを含み 、 前記選択が、入力メッセージのタイプとアプリケーション・プログラム構成要 素との間の予め定義された関係に従って行われる、前記方法が提供される。 適当なアプリケーション・プログラム構成要素の選択は、着信メッセージの種 々のタイプ及び特性ごとに行われるべき諸操作を定義するための複数の規則を適 用することを含んでいるのが好ましい。サポートされるこれらの規則は、動的特 性(例えば、メッセージが到着する前に一のタイマが満了したか、受信時点にお ける当該アプリケーションの状態、待機中の1組の応答メッセージの全てを受信 したか、等)を考慮することが好ましい。 本発明の推奨実施例に従った方法は、分散アプリケーション内のアプリケーシ ョン・プログラム(DAP)間で送信されるメッセージの処理をサポートする。 本発明の第4の側面に従って、アプリケーション・プログラム間の通信をサポ ートするための記録媒体に格納したプログラム製品であって、 前記プログラム製品を搭載したデータ処理システムによって受信される入力メ ッセージの処理をサポートするためのアプリケーション・インフラストラクチャ (AI)を含み、当該AIが、 入力メッセージのタイプをリストするための手段と、 前記AIによってサポートされるモジュール状アプリケーション・プログラム の別個に選択可能なアプリケーション・プログラム構成要素をリストするための 手段と、 一の入力メッセージのタイプを識別するとともに、入力メッセージのタイプと アプリケーション・プログラム構成要素との間の予め定義された関係に従って、 前記入力メッセージを処理すべき1つ以上のアプリケーション・プログラム構成 要素を選択するための手段を含んでいる、前記プログラム製品が提供される。 [実施例の説明] 以下、添付図面を参照して、本発明の実施例を詳述する。 図1は、アプリケーション・プログラム間の両方向性メッセージ・キューイン グ通信を示す概略図である。 図2は、クライアント/サーバ・アプリケーションにおけるメッセージ・キュ ーイング通信を示す概略図である。 図3は、本発明をその内部で実現可能なコンピュータ・システムを示す概略図 である。 図4は、本発明の実施例に従ってサポートされるアプリケーションの3つの段 (tier)を示す図である。 図5は、サポートされるアプリケーションが稼働する場合に使用されるアプリ ケーション・インフラストラクチャの主要な構成要素と、クライアント/サーバ 環境におけるこれらの構成要素の位置を示す図である。 図6は、サポートされるアプリケーションの諸クラス、諸規則及び諸手順の間 の関係と、交換メッセージを示す図である。 図7A〜図7Eは、許容された種々の規則のタイプについて行われる、本発明 に従った方法の一連の操作を示す図である。 本発明の特定実施例の理解を助けるために、先ず、メッセージ・キューイング 通信を説明する。メッセージ・キューイングとは、分散環境に適した公知のプロ グラム間通信方法で あって、アプリケーション間に直接的な接続を確立することなく、アプリケーシ ョン特有のデータをこれらのアプリケーションが送信及び受信することを可能に するものである。以下でメッセージ・キューイングを説明するのは、本発明の特 定の実現形態を理解できるようにするためであって、これにより本発明の適用性 がメッセージ・キューイング・システムに制限されるわけではない。 プログラム間通信のメッセージ・キューイング方法は、非同期のコネクション レス通信をサポートする。コネクションレス通信を行うために、第1のアプリケ ーション・プログラム(X)が一のメッセージ・キューイング・サービスにメッ セージを与え、第2のアプリケーション・プログラム(Y)が当該メッセージ・ キューイング・サービスからこれらのメッセージを獲得するようになっている。 このメッセージ・キューイング・サービスは、中間手段として機能し、そしてか かるメッセージをXのメッセージ・キューイング・サービスからYのメッセージ ・キューイング・サービスへ伝送するための機構は、アプリケーション・プログ ラムX及びYから完全に隠すことができる。 キュー・マネージャとは、各アプリケーションが使用するメッセージ・キュー イング機構を提供するようなシステム・サービスであって、通信マネージャ・プ ログラム製品として実現することができる。メッセージ・キューイング・サービ スを得るため、各アプリケーションは、アプリケーション・ プログラミング・インタフェース(API)を使用して、ローカルのキュー・マ ネージャ(即ち、当該アプリケーションと同一のシステム上に導入されているキ ュー・マネージャ)と通信する。 メッセージ・キューとは、名前の付いたオブジェクトであって、その内部にメ ッセージを累積し、そこからのメッセージの除去を時間に独立した態様で(即ち 、送信側が決定する時間ではなく、受信側のアプリケーションの準備が完了した 場合に)行うようなものである。このキューは特定の1つのキュー・マネージャ に属し、当該キュー・マネージャがこれを維持するようになっている。メッセー ジ・キューの物理的表示は、環境に依存して、主記憶内の少なくとも1つのバッ ファ、ディスク若しくは他の永続記憶上の少なくとも1つのファイル、又はその 両方とすることができる。しかしながら、メッセージ・キューの物理的管理は、 キュー・マネージャの責任であり、このため、その詳細はアプリケーション・プ ログラムには明白にされない。 各アプリケーションは、名前の付いた特定のメッセージ・キューを使用するこ とを合意した上で、通信を行うようになっている。例えば、図1に概略的に示し ているように、プログラム10がプログラム20に情報を送信することを望んで いる場合、プログラム10はキュー30に一のメッセージを送信する。なぜなら 、このキュー30について、その読み取りを行うことをプログラム20が合意し ているからである。 図1内の矢印f1〜f4は、プログラム10とキュー30との間のメッセージ流 を示している。もし、プログラム20が応答することを望んでいれば、プログラ ム20はキュー40にメッセージを送信する。なぜなら、このキュー40につい て、その読み取りを行うことをプログラム10が合意しているからである。これ らのキューの位置は、メッセージを送信する各アプリケーションには明白でない 。即ち、各アプリケーション(10、20)は、そのローカルのキュー・マネー ジャ(60、50)と対話するに過ぎず、そしてこれらのアプリケーション・プ ログラムがネットワークの変動や複雑さから遮蔽されるような態様で、所定のキ ューにメッセージを移動させる責任は、相互接続されたキュー・マネージャのネ ットワークが負うからである。メッセージの転送や後続の処理によって回復可能 な諸資源に加えられる全ての変更は、後の障害発生時に使用するために、回復ロ グ70、80内に記録するようになっている。このようなアプリケーション・サ ポートは、前掲のIBM社の製品「MQSeries」を含む、市販のメッセージ交換ソ フトウェアによって提供されている。 IBM社の製品「MQSeries」は、IBM社から入手可能な次の刊行物に詳述さ れている。“MQSeries Message Queue Interface Technical Reference”(IBM d ocument number SC33-0850-01)、及び”IBM Messaging and Queuing Series - A n Introduction to Messaging and Queuing(IBM document number GC33-0850-00 )。本明細書では、これらの刊行物を援用 する。 図1に示しているような1対1の通信に加えて、1対多の通信(例えば、単一 のアプリケーションの3つのインスタンスが並行的に稼働していて、同一のキュ ーからメッセージを取り出すような場合)や、多対1の通信(例えば、単一のサ ーバにメッセージを送信するような複数のクライアントが存在する場合)や、こ れらの全ての関係の組み合わせを想定することも可能である。 メッセージ・キューイングは、多数のクライアント・プログラムが単一のサー バ・プログラムにメッセージを送信するようなクライアント/サーバ・アプリケ ーションに非常に適している。図2は、3つのクライアントA〜CがサーバSに メッセージを送信するというケースを示している。サーバSは、要求の送信元に 依存して、3種類のキューに応答する。図2の例では、クライアントA及びBが サーバSから遠隔に設置されており、他方、クライアントCはサーバSに対しロ ーカルに設置されている。図2は、単一のキュー(QS)上にメッセージを書き 込む幾つかのクライアント・プログラムを示しているが、既に指摘したように、 幾つかのクライアント.プログラムが単一のキューからメッセージを獲得するこ とも可能である。このことが有用となるのは、メッセージ・トラヒックの量が1 つのサーバ・アプリケーション・プログラム・インスタンスの処理能力を超える ような場合である。また、一のクライアントからの一の要求メッセージを複数の 要求メッセージに分割した後、これらの要求メッセージを異なるサーバによって 並列に処理できることに留意すべきである。 キュー・マネージャQM1、QM2は、相当なアプリケーション通信サポート (各メッセージ・キューを維持したり各メッセージと各キューとの間の関係を維 持すること、ネットワークの障害及び再始動を処理すること、ネットワークを通 してメッセージを移動させること、など)を提供するが、大規模で、拡張可能な 統合型のクライアント/サーバ・アプリケーションを開発するというプログラミ ング作業は、依然として困難な状況にある。この作業に関連する諸問題を解決す るために、本発明は、他のシステム構成要素(実際にはコンピュータ・ソフトウ ェア内で実現される1組の構成要素)、即ちクライアント/サーバ・アプリケー ションの設計、開発及び稼働時の実行をサポートするためのアプリケーション・ インフラストラクチャを提供する。 図3は、コンピュータ・システムの主要なシステム構成要素の階層構造を、簡 略的に示している。これらのシステム構成要素は、本発明をその内部で実現する アプリケーション・インフラストラクチャを含んでいる。典型的な分散データ処 理ネットワークは、複数の異種コンピュータ・システム100から成り、その各 々はラップトップ又はデスクトップからメインフレーム・システムまでの範囲に 及ぶことがあり、当該システム上で稼働中の特定のアプリケーション・プログラ ム110を有している。これらのアプリケーション110は、これが稼働してい るシステム100上の特定のオペレーティング・システム120に適合している 。また、本発明のこの実施例に従ったシステム内に設けられているのは、ネット ワーク・リンク140を介してアプリケーション・プログラム110間の情報交 換をサポートするための、アプリケーションのイネーブルを行う通信マネージャ 150である。この通信マネージャ150は、オペレーティング・システム12 0とインタフェースするとともに、これらのアプリケーション110のためのサ ービスを提供する。即ち、これらのアプリケーション110を当該ネットワーク の複雑さから遮蔽するとともに、安全なプログラム間通信を提供するという作業 を管理するのである。 この通信マネージャ150にリンクされ且つこの通信マネージャ150及びオ ペレーティング・システム120の機能を利用するように適応されているのは、 分散クライアント/サーバ・アプリケーションの設計、開発及び稼働時の実行を サポートするためのアプリケーション・インフラストラクチャ160である。以 下、このアプリケーション・インフラストラクチャ160の実施例及びこれがサ ポート可能なクライアント/サーバ・アプリケーションの構造の例を説明する。サポートされるアプリケーションの構造 アプリケーション・インフラストラクチャは、機能が再使 用可能な複数のユニットにカプセル化されているような構造化アプリケーション ・コードの使用を可能にする。アプリケーション・インフラストラクチャの諸機 構を活用するように適応されたアプリケーション(以下「サポートされるアプリ ケーション」と表記)は、例えば、IBM社の「OS/2」オペレーティング・ システムを搭載したワークステーションを使用してエンド・ユーザに対しサービ スを提供するが、このアプリケーション全体のそれぞれ異なる部分は、ユーザの ワークステーション、LANアプリケーション・サーバ及びホスト・システム( 例えば、IBM社の「ES/9000」メインフレーム)上で稼働する。後述の ように、このアプリケーションのロジックは、諸規則がこれを結合するようにな っている(即ち、本発明のこの例では、諸規則は、当該アプリケーションの主要 部分であって、諸規則を適用するための機能を提供するアプリケーション・イン フラストラクチャの部分として定義されるのではない)。 「サポートされるアプリケーション」という表記を使用したとしても、このこ とは、本発明を実現するシステムが他のアプリケーションをサポートしないこと を意味するものではない。この表記を使用した意図は、本発明に従ったアプリケ ーション・インフラストラクチャによって可能にされ且つこのアプリケーション ・インフラストラクチャを十分に活用するような柔軟な分散クライアント/サー バ・アプリケーションの構造を表現することにある。 (注:OS/2及びES/9000は、インターナショナル・ビジネス・マシー ンズ・コーポレイションの商標)。 サポートされるアプリケーションは、最上位のレベルにおいて、諸規則によっ て関連付けられた1組の「クラス」として構築される。以下に示すように、これ らのクラスは、3つのタイプに類別することができる。 1.グラフィカル・ユーザ・インタフェース(GUI)クラス: これらのクラ スは、ユーザのワークステーション上で稼働する。これらのクラスは、ユーザが アプリケーションと対話するためのウインドウを提供し、他方、これらのクラス は、メッセージの送信及び受信を通してアプリケーションの残りと対話する。 典型的なアプリケーションは、多数のGUIクラスを含んでいる。一般に、 1つ以上のGUIクラスは、実行可能な単一のGUIプログラムにパッケージさ れることが多い。 2.ビジネス・ロジック(BL)クラス: これらのクラスは、LANアプリケ ーション・サーバ上で稼働する。これらのクラスは、当該アプリケーションに関 係する進行中の作業データを収集及び格納し、当該データについて計算を行うと ともに、当該データを他の諸クラスに送信する。これらのBLクラスは、メッセ ージの送信及び受信を通してアプリケーションの残りと対話する。 典型的なアプリケーションは、多数のBLクラスを含ん でいる。一般に、これらのBLクラスは、互いに独立に単一の動的リンク・ライ ブラリとしてパッケージされることが多い。 3.ホスト・クラス: これらのクラスは、IBM社の「CICS」若しくは「 IMS」トランザクション処理システムのようなバックエンド・システム、又は IBM社の「MQSeries」キュー・マネージャ製品を搭載した任意のシステム上で 稼働する。これらのホスト・クラスは、トランザクション制御の下でホスト・デ ータベースの読み取り及び書き込みを行うための手段を提供し、一般に、これら のクラスが更新するデータの完全性と監査性(auditability)を維持するための 責任を有する。 これらのホスト・クラスは、アプリケーション・サポート・インタフェース の制御下では稼働しないが、関係する「MQSeries」キュー・マネージャ製品のメ ッセージ・キューイング・インタフェース(MQI)を使用して、諸要求を受信 し且つこれに応答する際に標準のMQIガイドラインに従う。なお、MQIとは 、前掲のIBM社の刊行物(IBM document number SC33-0850-01)に記述されて いるようなアプリケーション・プログラミング・インタフェース(API)であ る。 (注:CICS及びIMSは、インターナショナル・ビジネス・マシーンズ・コ ーポレイションの商標)。 これらの異なるタイプのクラスは、アプリケーション内の 互いに異なる一般的な役割を反映する。例えば、一のGUIクラスがユーザとの 対話をサポートし、一のホスト・クラスがホスト・データへのアクセスを提供す るのに対し、一のBLクラスはキャッシュ機能を提供して、一のGUIがホスト から一度検索したデータを後続アクセスの際にLANから一層速やかに検索でき るようにする。全てのGUI及びBLクラスは、他のクラスに対しクライアント 及びサーバとなることができる(即ち、諸クラス間の関係は、「ピア・ツー・ピ ア」である)。 図4は、この分散クライアント/サーバ方式の3つの段の間の関係を示してい る。各矢印は、分散アプリケーションを構成する複数のクラス210の間の可能 なメッセージ流200を示している。 サポートされるアプリケーション内に存在する諸規則は、どのクラスがどのメ ッセージを他のどのクラスに送信可能であるかを定義及び制限することにより、 コンパイル時及び稼働時のチェックを通して当該アプリケーションの開発、テス ト及びサポートを援助することを可能にする。諸規則は、クライアント/サーバ のメッセージ交換アプリケーションに関連する全ての非同期状態(例えば、タイ ムアウト、複数の応答メッセージを待機する必要性、無効メッセージのようなエ ラー)をどのように処理するかを定義する。諸規則の定義及びその使用法につい ては、以下で詳述する。 次の細分性レベルでは、一のアプリケーション・クラスが 1組の「手順」(その各々はモジュール状のアプリケーション・プログラム構成 要素として実現される)として構築される。各手順は、クライアントの役割を行 う他のクラスからの要求メッセージの到着、又はサーバの役割を行う他のクラス からの応答メッセージの到着のような単一の状態をそれぞれ扱う。一の手順は、 実行後に終了する(例えば、一の要求メッセージを行った後、当該手順がその応 答メッセージを待機しないような場合であり、この場合、当該クラスはその応答 メッセージを処理するように書かれた他の手順を含むことになろう)。 かくて、アプリケーション・インフラストラクチャは、諸規則を使用して、ど の状況でどの手順を呼び出すかを決定する。各規則は、一のクラス・ソース・フ ァイル内の一のRULEセクションにおいて定義するようになっている。このR ULEセクションは、当該規則を満足させる場合に呼び出される手順の名前を指 定する。この名前は、この手順をクラス・ソース・ファイル内のRULEセクシ ョンにおいて定義するに過ぎないから、この手順の定義は、当該規則を呼び出す ようなプログラムの実際の名前を指定する必要はない。 また、このRULEセクションは、当該規則を満足させるのに必要な諸条件を 指定する。これらの条件は、次の事項に基づくことがある。 * 1つ以上のメッセージの到着 * タイマの満了 * 当該インスタンスが置かれている状態 各規則内では、少なくとも1つのメッセージ・タイプ及び一のタイマを指定す る。他方、インスタンス状態(即ち、当該規則を満足させるために、当該インス タンスが置かれていなければならない状態、又は置かれていてはならない状態) は、追加のオプション条件である。 一の規則内で指定可能な諸条件は、一定ではなく、しかも複雑なものとなり得 る。なぜなら、3つの基本的なメッセージ・タイプ(情報、要求及び応答)と、 指定可能な4つの基準(必須、条件付き、遅れ及びプレースホルダ)が存在する 上に、一のタイマを当該規則に加えることができるからである。これらの規則の 任意のものに対し、インスタンス状態に関する諸条件を追加することができる。アプリケーション・インフラストラクチャの構成要 ここで、このアプリケーション・インフラストラクチャの主要な構成要素を特 定しておくのが有用である。図5は、サポートされるアプリケーションが稼働す る場合に使用されるアプリケーション・インフラストラクチャの諸部分を示して いる。その主要な構成要素は、次の通りである。 * プレゼンテーション・ロジック・マネージャ: この構成要素(250)は 、ユーザのワークステーション上で稼働し、諸GUI手順が使用する環境及びA PIを提供する。 * ビジネス・ロジック・マネージャ: この構成要素(2 60)は、LANアプリケーション・サーバ・システム上で稼働し、諸ビジネス ・ロジック手順が使用する環境及びAPIを提供する。 * 規則コンパイラ: この構成要素は、アプリケーション開発中に使用される 。これは、アプリケーション・インフラストラクチャ特有の言語(規則定義言語 として知られているもの)で書かれたASCIIソース・ファイルを読み取り、 バイナリ・ファイルを出力する。このバイナリ・ファイルは、特定のメッセージ の到着時にどの手順を呼び出すかを決定するべく、稼働時にビジネス・ロジック ・マネージャ及びプレゼンテーション・ロジック・マネージャがこれを使用する 。 * ジョブ・ビューア: この構成要素(270)は、ユーザのワークステーシ ョン上で稼働し、一のジョブに関連する諸ウインドウをリストし且つこれらの間 のナビゲーションを許容するようなコンテナ・ウインドウを提供する。ジョブと は、サポートされるアプリケーションの一の実行インスタンスであって、その境 界をユーザが決定できるようなものである。また、この文脈における「インスタ ンス」とは、サポートされるアプリケーションの特定クラスの実行インスタンス を意味する。このジョブ・ビューアは、ユーザが稼働させている複数のジョブを 援助して、一のジョブの諸ウインドウと他のジョブの諸ウインドウとの間の混同 を回避させる。 アプリケーション・インフラストラクチャの特定の実現形態は、アプリケーシ ョンのテスト及びデバッグに関係付けら れた追加の諸構成要素を含むことがあるが、本明細書においてこれらの構成要素 を詳述する必要はない。分散アプリケーション・インフラストラクチャの操作 この分散アプリケーション・インフラストラクチャは、着信メッセージを処理 すべき適当なアプリケーション・プログラム構成要素を選択するために、テーブ ル・ドリブン型のアプローチを使用する。このテーブルは、特定のメッセージ・ タイプ及びメッセージの他の静的特性を、これらのメッセージを処理すべき適当 なコード・モジュールと関連付ける。このテーブルは、アプリケーション・プロ グラムが起動時に取る最初のアクションとして、構築されるようになっている。 これとは別個の「ウェーブ・テーブル」は、アプリケーション・プログラムか ら送信される発信メッセージに関連するような特定の参照番号(ウェーブ番号) を記録する。ウェーブ番号は、所定のメッセージを識別するために使用する単調 に変化する数であって、代替処理や、時間通りの(正常に処理すべき)メッセー ジと、遅れている(が、依然として最新で且つ依然として処理すべき)メッセー ジと、順序外のメッセージとの間の判別を行うことを可能にする。この分散アプ リケーション・インフラストラクチャは、かかるウェーブ・テーブルを構築して 、全ての応答メッセージ用のスロットを提供する。このウェーブ・テーブルは、 受信メッセージの最高のウェーブ番号(0に初期設定)を記入するためのフィー ルドと、現グローバル・ウェーブ番号(1に初期設定)を記入するための他のフ ィールドとを含んでいる。 この分散アプリケーション・インフラストラクチャの制御下で稼働しているア プリケーション・プログラムが、1つ以上の要求メッセージを送信して、これに 関連する応答メッセージを予期する場合、この分散アプリケーション・インフラ ストラクチャは、現グローバル・ウェーブ番号を、発信メッセージのフィールド 及び当該発信メッセージ用のテーブル・スロットへコピーする。 この要求メッセージを受信するアプリケーション・プログラムも、サポートさ れるアプリケーションでなければならない(或いは、少なくともこのウェーブ番 号をその応答メッセージ内に保持させて、ラップ・バック可能でなければならな い)。その下部でサポートされるアプリケーションを稼働させる分散アプリケー ション・インフラストラクチャの各々は、受信メッセージのウェーブ番号を自動 的に検索するとともに、このウェーブ番号を応答メッセージに付加するための手 段(即ち、着信メッセージのフィールドからウェーブ番号を読み取り、これを発 信メッセージのフィールドへ書き込むための手段)を有している。 応答メッセージが到着する場合、これを受信するアプリケーション・インフラ ストラクチャは、当該応答メッセージ内のウェーブ番号を、記録した現グローバ ル・ウェーブ番号と比較する。現グローバル・ウェーブ番号は、当該応答メッセ ージの予期されるウェーブ番号である。なぜなら、最も普通の処理条件を想定す れば、現グローバル・ウェーブ番号が変更される前に、要求メッセージに関連す る当該応答メッセージが受信されることになるからである。現グローバル・ウェ ーブ番号が変更されるのは、当該アプリケーション・プログラム内のウォータシ ェッドに到達する場合である。ウォータシェッドとは、アプリケーション・プロ グラムの実行中における当該アプリケーションが定義した変更点であって、タイ ムアウトの発生又は明示的なアプリケーション・アクションの何れかとすること ができる。このような1つのアプリケーション・アクションは、現アプリケーシ ョンからローカル・アプリケーションを呼び出した他のアプリケーションへ応答 メッセージを送信することにより、当該ローカル・アプリケーション内の手順を 完了することである。他のアプリケーション・アクションは、一の規則を満足さ せる場合に、新しいアプリケーションを呼び出すことである。 もし、受信済みの応答メッセージ内のウェーブ番号が現グローバル・ウェーブ 番号(即ち、応答メッセージの予期されるウェーブ番号)と一致すれば、当該メ ッセージは、時間通りであると見なされる。他方、これらが一致しなければ、当 該メッセージは、時間通りでないと見なされる。後者の状況において、アプリケ ーション・インフラストラクチャは、応答メッセージ内のウェーブ番号を、テー ブル内にある受信済みの最高のウェーブ番号フィールドと比較する。もし、受信 した応答メッセージ内のウェーブ番号が「予期されるウェーブ番号」よりも大き ければ、当該応答メッセージは、「遅れている」メッセージと見なされる(後出 )。他方、受信した応答メッセージ内のウェーブ番号が「予期されるウェーブ番 号」よりも小さければ、当該メッセージは、「時間外」メッセージと見なされる (即ち、要求を送信したアプリケーション・プログラムの手順がウォータシェッ ドを通過した後に、当該応答メッセージが到着した、ということである)。更に 、受信した応答メッセージ内のウェーブ番号が「予期されるウェーブ番号」に等 しければ、当該応答メッセージは、重複メッセージであることが明白である。 前記の重複メッセージ及び「時間外」メッセージの両ケースは、エラー・メッ セージの生成をトリガして、当該応答メッセージを廃棄させる。 「遅れている」応答メッセージとは、諸要求メッセージ及びこれに関連する諸 応答メッセージが順序通りに生起しないという結果を引き起こすように、一の時 点に到着した応答メッセージである。殆どのケースにおいて、受信中のアプリケ ーションは、ウォータシェッドの前に受信した応答メッセージ(即ち、「時間外 」(out of time)応答メッセージではなく、単に順序通りではない応答メッセ ージ)を依然として処理することを望んでいる筈である。この操作時間シーケン スは、次のようになることがある。 1. 要求1の送信; 2. 要求2の送信; 3. 応答1の受信; 4. 応答2の受信。 前述の用語を使用すると、「応答1」は、「要求2」の送信後に受信されてい るから「遅れている」が、依然としてアプリケーションが処理することを望んで いるような現メッセージである。かくて、アプリケーション・インフラストラク チャは、「遅れている」(順序通りでない)が依然として有効であるような応答 メッセージと、重複しているか又は「時間外」であるために無効であるような応 答メッセージとを判別することを可能にする。これを簡単に且つ確実に行うには 、一のメッセージ・フィールド内にある一の数を使用して、これをウェーブ・テ ーブル内にある記録済みの数と比較すればよい。かくて、アプリケーション・イ ンフラストラクチャは、複数の同時的な要求メッセージを送信するとともに、こ れらの要求メッセージに関連する複数の応答メッセージを適正に処理することが できるだけでなく、かかる要求メッセージと応答メッセージとの間の混同を生じ させないようにすることができる。 着信メッセージを受信する場合のアプリケーション・インフラストラクチャの 操作は、次の通りである。分散アプリケーション内にあるアプリケーション・プ ログラム(DAP)への着信メッセージをその分散アプリケーション・インフラ ストラクチャ(DAI)が検査し、これらのメッセージ内の 諸フィールドをテーブル内の一定値と比較する。このメッセージ・タイプが一の テーブル・リスティング・メッセージ・タイプの内部で位置付けられるか、又は 関連するテーブル・エントリがなければ、エラーが生ずる。このメッセージは、 要求メッセージ、応答メッセージ又は情報メッセージ(これらは、アプリケーシ ョン・インフラストラクチャが定義する3つのメッセージ「タイプ」である)と することができ、また追加命令、更新命令又は削除命令(これらは、当該アプリ ケーションが定義するメッセージ「タイプ」の側面である)の何れかとすること ができる。第2に、このメッセージの識別子の値を、システムが既に関係してい る諸タスク用のリストした識別子(即ち、当該システムにおいて発信した諸要求 メッセージの識別子のリスト)と比較する。もし、この受信メッセージが新しい 要求メッセージであれば、このテーブル内には一致する識別子が存在しないこと になる。他方、このメッセージが現システムからの(時間外でない)一の要求メ ッセージに関連する応答メッセージであれば、一致するテーブル・エントリが存 在することになる。第3に、ウェーブ・テーブルを検査して、このメッセージが エラー条件(例えば、時間外、順序外又は重複)を生じさせるか否かをチェック する。第4に、このメッセージの前記及び他の諸特性(並びに当該システム又は 当該アプリケーションの他の可能な諸特性)を検査し、どのアプリケーション・ プログラム構成要素を呼び出すべきかを指示する諸規則と比較する。 もし、このメッセージが要求メッセージであれば、このメッセージは、関連す る規則内で指定されている適当なアプリケーション・プログラム構成要素に渡さ れる。他方、このメッセージが応答メッセージであれば、このメッセージは、特 定のリストに関連し且つ当該アプリケーション・プログラムによる処理のために 利用可能な、応答のリストに追加される。処理用の諸規則が走査して1つの規則 が今や満足されているか否かを決定し、もしそうであれば、適当なアプリケーシ ョン・プログラム構成要素が呼び出される。例えば、このような1つの規則は、 1組の応答メッセージを処理すべき手順が呼び出される前に、これらの全ての応 答メッセージが受信されていることを必要とすることがあり、そのため、受信し た応答メッセージの識別子のリストを走査して全ての応答メッセージが今や利用 可能であるか否かを決定するようにしている。もし、予定のタイムアウト期間内 に全ての応答メッセージが到着しなければ、一の「タイムアウト規則」内で命名 された手順が呼び出される。 以下では、タイマ制御及び他の動的制御を含む諸規則用のサポートを詳述する 。前述のように、アプリケーション・インフラストラクチャのAPI及びこれに 関係するサービスは、インスタンス間の通信を行うためにメッセージ交換を使用 する。また、アプリケーション・インフラストラクチャ並びに管理用のアプリケ ーション・インスタンスは、前出のメッセージ・キューイング・インタフェース (MQI)への呼び出 しを使用してかかる通信を実現しているから、サポートされるアプリケーション は、このMQIを直接的に使用しないでアプリケーション・インフラストラクチ ャのAPIを使用するようになっている。 アプリケーション・インフラストラクチャのプレゼンテーション・ロジック・ マネージャは、一の規則の範囲内で一のタイマを起動するために使用することが できる、API呼び出しMQTIMEをサポートする。この特定の時限付き規則 (クラス・ソース・ファイルのRULEセクション内で定義されている)の名前 は、このMQTIME呼び出しのパラメータであるが、タイムアウト期間はその ままであり当該タイムアウト期間の後は当該命名された規則についてのタイマが 満了する。 一の手順における時限付き規則の各々ごとに、関連するタイマが存在する。各 タイマは、PLM制御の下で呼び出し可能な4つのアクションを有する。即ち、 デフォルトのタイムアウト期間(例えば、1秒)を持つタイマを起動すること、 所定の値(即ち、該当するAPI呼び出し中に渡されるパラメータが設定したタ イムアウト期間)を持つタイマを起動すること、直ちに満了するようにタイマを 起動すること、そして無限に設定したタイムアウト期間(即ち、満了することが ないタイムアウト期間)を持つタイマを起動することである。後者のオプション は、主として、時限付き規則を含んでいるアプリケーションをテストする場合に 使用する。 一のタイマが満了し且つ一の規則が満足される場合、一の規則に関連する複数 のメッセージのうち幾つかの又は全てのメッセージが存在しないことがある。規則の充足 一のメッセージが一のクラス・ソース・ファイル内の一のメッセージ定義に一 致して一の規則を満足させるには、次の諸条件を充足させなければならない。 * 当該メッセージの宛先クラスは、プレゼンテーション・ロジック・マネージ ャ又はビジネス・ロジック・マネージャによってサポートされた一のクラスでな ければならない。 * 当該メッセージの次のプロパティは、当該規則内で指定されている当該メッ セージの定義に一致しなければならない。 メッセージ・タイプ 操作コード 操作バージョン 役割(応答メッセージの場合のみ) * 当該メッセージは、当該規則内で指定されているものと同一のフォーマット を有さなければならない。 * もし、当該メッセージが固定フォーマットを有するのであれば、そのメッセ ージ・データの長さは、当該規則内で指定されている当該メッセージのそれと同 一でなけれ ばならない。 図5は、一の規則が満足される場合の処理シーケンスの1例に加えて、諸クラ スと、諸規則と、諸手順との間の関係が示している。この例における処理シーケ ンスは、次の通りである。 1.1つのクラスの一のインスタンスが、一のメッセージを他のクラスの一のイ ンスタンスへ送信する。 2.予定の1組のメッセージが到着する場合に、一の規則が満足される。 3.この規則が、一の手順を呼び出す。 4.この手順が、当該クラスについて或る作業を行う。この作業は、追加のメッ セージを他のクラスに送信することを含むことがある。許容された規則のタイプ 一の規則内で指定可能な諸条件は、複雑になり得る。以下では、使用可能な規 則のタイプ及びこれらが指定可能なメッセージを説明する。プレースホルダ・メッセージ : 到着していないメッセージ用の場所を当該規則 内に予約するために、プレースホルダ基準を利用することができる。これを使用 する諸規則では、遅れている一の応答メッセージが、2以上の必須応答メッセー ジ用の規則と同一の手順を呼び出すことが好ましい。また、これらのプレースホ ルダが使用されるのは、現在のアプリケーションには関係ないが、このアプリケ ーションに対し将来 追加されるであろうメッセージ用の場所を予約することを、プログラマが望んで いるような場合である。 許容された規則のタイプの例は、以下にされている。1.単一の情報メッセージ用の規則 : この規則が満足されるのは、指定された 単一の情報メッセージが到着する場合である。 例A: 図7Aに示すように、インスタンス1が単一の情報メッセージをインス タンス2へ送信する。このメッセージの到着は規則1を満足させ、手順1が呼び 出される。 アプリケーション・インフラストラクチャが手順1を呼び出す場合、これは、 BL情報メッセージが到着したことを示すために、当該メッセージの識別子をこ の手順に渡す。2.単一の要求メッセージ用の規則 : このタイプの規則が満足されるのは、指 定された単一の要求メッセージが到着する場合である。 例B: 図7Bに示すように、インスタンス1が単一の要求メッセージをインス タンス2へ送信する。このメッセージの到着は、規則2を満足させる。 この手順1が呼び出される場合、BL要求メッセージが到着したことを示すた めに、当該メッセージの識別子が手順1に渡される。3.単一の遅れた応答メッセージ用の規則 : 一の要求メッセージを処理する手 順が他のクラスからの情報を獲得するためにそれ自体の要求メッセージを送信し なければならない場 合、その応答メッセージが必要な時点よりも遅れて到着することがある。もし、 これが元の要求メッセージに関連する応答メッセージとして使用するには遅れす ぎて到着するのであれば、この応答メッセージは「遅れている応答メッセージ」 と見なされる。以下の例Cでは、応答2と命名されたメッセージは、遅れている と見なされる。なぜなら、このメッセージは、応答と命名されたメッセージが送 信された後に到着するからである。 もし、アプリケーションが遅れている任意の応答メッセージを処理すべきであ れば、このタイプ3の規則を使用しなければならない。もし、一のインスタンス が遅れている応答メッセージを処理すべき規則を有していなければ、このメッセ ージは廃棄される。このタイプ3の規則が満足されるのは、命名された単一の遅 れている応答メッセージが到着する場合である。各規則内では、1つの遅れてい るメッセージだけが許容される。当該規則内の他の任意のメッセージは、プレー スホルダでなければならない。 例C: 図7Cに示すように、手順1が2つの要求メッセージを送信し、一のタ イマをセットする。規則6が満足されるのは、1つの応答メッセージだけが到着 するとしても、このタイマが満了する(手順2を呼び出す)場合である。この遅 れている応答を処理するためには、タイプ3の規則が必要である。手順3が呼び 出される場合、応答2のメッセージが到着したことを示すために、当該メッセー ジ用のメッセージ・ データ・フラグが当該手順に渡される。 例D: 図7Dに示すように、手順2は一の応答メッセージを使用して、これが 作業を開始したことを確認する。最初の手順1は、それ自体の要求メッセージを 発行した直後に、肯定応答を送信する。インスタンス3からインスタンス2への 応答メッセージは、遅れていると見なされる。インスタンス2は、その要求メッ セージに関連する応答メッセージを処理するために、タイプ3の規則を使用する 。次に、インスタンス2は、当該遅れている応答メッセージ内に保持されている データをインスタンス1へ送信するために、一の情報メッセージを使用する。も し、インスタンス2が遅れている一のメッセージを捕捉するための規則を有して いなければ、この応答メッセージは廃棄されることになる。手順2が呼び出され る場合、BL応答メッセージが到着したことを示すために、当該メッセージ用の メッセージ・データ・フラグがこの手順に渡される。4.タイマ専用の規則 : このタイプの規則が満足されるのは、そのタイマが満 了する場合である。 例E: 図7Eには、60秒ごとにメッセージを送信するタイマ・プログラムの 例が示している。インスタンス1は、一の情報メッセージを手順1に送信して、 この手順1を起動する。このメッセージを送信するとき、インスタンス1は、イ ンスタンス2内にインタレストを登録する。手順1は、API呼び出しMQTI MEを使用してタイムアウト・イベント を生成し、60秒の持続時間を有するタイマを起動する。この呼び出しの際、当 該タイマが満足させるべき当該規則の名前が指定される。 このタイマが満了するとき、これは規則4を満足させて、手順2を呼び出す。 手順2は、60秒ごとに、当該ジョブ内の関係する全てのインスタンスへメッセ ージ(図7EにおいてTickと命名されたもの)を送信する。 手順2を呼び出すとき、アプリケーション・インフラストラクチャは、当該規 則に関連するメッセージが存在しないために、この手順にメッセージ・データ・ フラグを渡さない。必須応答メッセージ用の規則 : このタイプの規則が満足されるのは、全ての応 答メッセージが到着した場合だけである。このような規則は、1つの応答メッセ ージを必要とする1つの要求メッセージのために使用するか、又は複数の要求メ ッセージ及びこれに関連する複数の応答メッセージのために使用することができ る。条件付き応答メッセージ及びタイマ用の規則 : このタイプの規則が満足される のは、如何なる応答メッセージも到着しなかったとしても、当該タイマが満了す る場合である。もし、一の応答メッセージが、タイマの満了に起因してその規則 が満足された後に受信されるのであれば、これは遅れている応答メッセージとし て扱われ、これを処理するために時間通りに到着したメッセージを処理するため のものとは異なる手順が呼び出されることがある。 前述の諸規則は単なる例示であるに過ぎず、多数の形式の規則を本発明を実現 したアプリケーション・インフラストラクチャによってサポートすることができ ることを理解すべきである。 また、当業者には明らかなように、着信メッセージをアプリケーション・プロ グラム構成要素と関係付けるために使用する諸テーブルを構築する作業が、アプ リケーション・プログラムを起動する際の最初のアクションである必要はない。 その構築は、一の稼働時テーブルを作成するためにテキスト形式の定義を使用す るようなコンパイラによって行うことができる。また、かかるテーブルを最初に 作成した後に、新しいテーブル・エントリ(例えば、新しいメッセージ識別子) を動的に追加することも可能である。
【手続補正書】特許法第184条の8第1項 【提出日】1997年6月18日 【補正内容】 前記プログラム製品を搭載した一のシステムによって受信される入力メッセー ジの処理をサポートするための手段を含み、 前記処理をサポートするための手段が、 入力メッセージのタイプをリストするための手段と、 モジュール状アプリケーション・プログラムの別個に選択可能なアプリケーシ ョン・プログラム構成要素をリストするための手段と、 一の入力メッセージのタイプを識別するとともに、入力メッセージ・タイプ及 び一のメッセージに関連する動的特性とアプリケーション・プログラム構成要素 との間の予め定義された関係に従って、前記入力メッセージを処理すべき1つ以 上のアプリケーション・プログラム構成要素を選択するための手段を含むことを 特徴とする、前記コンピュータ・プログラム製品。 10.前記処理をサポートするための手段が、 サポートされる第1のアプリケーション・プログラムから送信される一の要求 メッセージに対し一の参照番号を割り当てるとともに、当該参照番号を予期応答 メッセージの参照番号として記録するための手段と、 受信した応答メッセージの参照番号のうち最高の参照番号を記録及び更新する ための手段と、 前記第1のアプリケーション・プログラム内でウォータシェッドに到達するた びに、前記記録した予期応答メッセージ の参照番号を新しく割り当てた一の参照番号で更新するための手段と、 前記処理をサポートするための手段によって受信され且つ関連する要求メッセ ージの参照番号を含んでいる応答メッセージを検査するとともに、受信した一の 応答メッセージの参照番号が前記予期応答メッセージの参照番号又は前記最高の 参照番号と一致するか否かを決定するための手段とを含むことを特徴とする、請 求の範囲第1項乃至第6項の何れかに記載のデータ処理システム。 【手続補正書】特許法第184条の8第1項 【提出日】1997年8月6日 【補正内容】 前記第1のノードが、当該第1のノードからの一の発信メッセージに第1の識 別子を割り当てるための手段と、当該第1のノードからの発信メッセージの識別 子のリストを維持するための手段と、着信メッセージの前記識別子を検査し且つ 当該識別子を当該リストと比較することにより、前記リストした発信メッセージ に関連する着信メッセージを識別するための手段を有し、 前記第2のノードが、前記第1のノードからの一の受信メッセージに応答して 当該第2のノードから送信される一の応答メッセージに対し前記第1の識別子に 関連する第2の識別子を付加するための手段を有することを特徴とする、請求の 範囲第1項乃至第3項の何れかに記載のデータ処理システム。 5.前記第2の識別子を付加するための手段が、前記第1のノードから送信され た前記メッセージの一のフィールドから前記第1の識別子の値を抽出し且つ当該 第1の識別子の値を当該メッセージに応答して送信されるメッセージの一のフィ ールド内に挿入するための手段を含むことを特徴とする、請求の範囲第4項に記 載のデータ処理システム。 6.前記第1のノードに関連して設けられ、受信した着信メッセージのうち前記 発信メッセージ識別子のリスト内に関連する一の識別子が存在するような着信メ ッセージの識別子のリストを格納することにより、処理のために利用可能な応答 メッセージを識別するための手段を含むことを特徴とする、請求の範囲第4項又 は第5項に記載のデータ処理システム。 7.アプリケーション・プログラム間で送信されるメッセージの処理をサポート するための方法であって、 各着信メッセージを検査してそのメッセージ・タイプを決定するためのステッ プと、 前記メッセージを処理すべきモジュール状アプリケーション・プログラムの特 定のアプリケーション・プログラム構成要素を選択するためのステップとを含み 、 前記選択が、入力メッセージ・タイプ及び一のメッセージに関連する動的特性 とアプリケーション・プログラム構成要素との間の予め定義された関係に従って 行われることを特徴とする、前記方法。 8.分散システムにおけるメッセージの処理をサポートするために、 前記システムの第1のノードから送信される一の発信メッセージに第1の識別 子を割り当てるとともに、当該第1のノードにおいて当該第1のノードから送信 されたメッセージの識別子のリストを維持するステップと、 前記第1のノードからの一の受信メッセージに応答して前記システムの第2の ノードから送信される一の応答メッセージに対し前記第1の識別子に関連する第 2の識別子を付加するステップと、 前記第1のノードに到着するメッセージの前記識別子を検査し且つ当該識別子 を前記リストと比較することにより、前記リストした発信メッセージに関連する 着信メッセージを識 別するステップとを含むことを特徴とする、請求の範囲第7項に記載の方法。 9.アプリケーション・プログラム間の通信をサポートするための、コンピュー タが読み取り可能な記録媒体上に記録されたコンピュータが読み取り可能なプロ グラム・コードから成るコンピュータ・プログラム製品であって、 前記プログラム・コードが、

Claims (1)

  1. 【特許請求の範囲】 1.アプリケーション・プログラム間の通信をサポートするための機構を有し、 受信した入力メッセージの処理をサポートするための手段を含み、前記処理をサ ポートするための手段が、入力メッセージ・タイプのリスト及びモジュール状ア プリケーション・プログラム(AP)の別個に選択可能なアプリケーション・プ ログラム構成要素(APC)のリストへの少なくとも読み取りアクセスを有する ようにしたデータ処理システムであって、 前記処理をサポートするための手段が、 入力メッセージのタイプを識別するとともに、前記リストした入力メッセージ ・タイプとアプリケーション・プログラム構成要素との間の予め定義された関係 に従って、前記入力メッセージを処理すべき1つ以上のアプリケーション・プロ グラム構成要素を選択するための手段を含み、 当該識別及び選択するための手段が、メッセージ・タイプ及び一のメッセージ に関連する動的特性を特定のアプリケーション・プログラム構成要素と関係付け るメッセージ処理用の規則に依存して、アプリケーション・プログラム構成要素 の前記選択をサポートすることを特徴とする、前記データ処理システム。 2.前記処理をサポートするための手段が、前記規則を定義するのに使用される アプリケーション・プログラム・インタ フェース(API)呼び出しをサポートするためのAPTを含み、前記サポート されたAPI呼び出しが、一のタイマをセットし且つ一のタイムアウト期間を定 義するための一の呼び出しを含むことを特徴とする、請求の範囲第1項に記載の データ処理システム。 3.第1及び第2のアプリケーション・プログラム間で送信され且つ各々が一の メッセージ・タイプ・フィールド、一のメッセージ識別子フィールド及び一のウ ェーブ番号フィールドを有するメッセージの処理をサポートし、 前記処理をサポートするための手段が、認識可能なメッセージ・タイプのリス トへの少なくとも読み取りアクセスを有し、認識可能なメッセージ識別子のリス トへの読み取り及び書き込みアクセスを有し、ウェーブ番号のリストへの読み取 り及び書き込みアクセスを有し、 前記識別及び選択するための手段が、 一の着信メッセージの前記フィールドを検査するための手段と、 前記タイプ・フィールドを前記リストしたメッセージ・タイプと比較するとと もに、前記識別子フィールドを前記リストしたメッセージ識別子と比較すること により、当該メッセージが前記システムによって認識可能であるか否かを決定す るための手段と、 前記ウェーブ番号フィールドを前記リストしたウェーブ番号と比較することに より、当該メッセージが時間通りで且つ 順序通りであるか否かを決定するための手段と、 前記メッセージ・フィールド及び1つ以上のアプリケーション・プログラムの 状態を、メッセージ・フィールド及び/又は互いに通信中のアプリケーション・ プログラムの状態に依存して前記システムによって受信されるメッセージをどの ように処理すべきかを決定する1組の規則と比較するための手段とを含むことを 特徴とする、請求の範囲第1項又は第2項に記載のデータ処理システム。 4.一のデータ・リンクによって相互接続された第1のノード及び第2のノード を含み、 前記第1のノードが、当該第1のノードからの一の発信メッセージに第1の識 別子を割り当てるための手段と、当該第1のノードからの発信メッセージの識別 子のリストを維持するための手段と、着信メッセージの前記識別子を検査し且つ 当該識別子を当該リストと比較することにより、前記リストした発信メッセージ に関連する着信メッセージを識別するための手段を有し、 前記第2のノードが、前記第1のノードからの一の受信メッセージに応答して 当該第2のノードから送信される一の応答メッセージに対し前記第1の識別子に 関連する第2の識別子を付加するための手段を有することを特徴とする、請求の 範囲第1項乃至第3項の何れかに記載のデータ処理システム。 5.前記第2の識別子を付加するための手段が、前記第1のノードから送信され た前記メッセージの一のフィールドから 前記第1の識別子の値を抽出し且つ当該第1の識別子の値を当該メッセージに応 答して送信されるメッセージの一のフィールド内に挿入するための手段を含むこ とを特徴とする、請求の範囲第4項に記載のデータ処理システム。 6.前記第1のノードに関連して設けられ、受信した着信メッセージのうち前記 発信メッセージ識別子のリスト内に関連する一の識別子が存在するような着信メ ッセージの識別子のリストを格納することにより、処理のために利用可能な応答 メッセージを識別するための手段を含むことを特徴とする、請求の範囲第4項又 は第5項に記載のデータ処理システム。 7.アプリケーション・プログラム間で送信されるメッセージの処理をサポート するための方法であって、 各着信メッセージを検査してそのメッセージ・タイプを決定するためのステッ プと、 前記メッセージを処理すべきモジュール状アプリケーション・プログラムの特 定のアプリケーション・プログラム構成要素を選択するためのステップとを含み 、 前記選択が、入力メッセージ・タイプ及び一のメッセージに関連する動的特性 とアプリケーション・プログラム構成要素との間の予め定義された関係に従って 行われることを特徴とする、前記方法。 8.分散システムにおけるメッセージの処理をサポートするために、 前記システムの第1のノードから送信される一の発信メッ セージに第1の識別子を割り当てるとともに、当該第1のノードにおいて当該第 1のノードから送信されたメッセージの識別子のリストを維持するステップと、 前記第1のノードからの一の受信メッセージに応答して前記システムの第2の ノードから送信される一の応答メッセージに対し前記第1の識別子に関連する第 2の識別子を付加するステップと、 前記第1のノードに到着するメッセージの前記識別子を検査し且つ当該識別子 を前記リストと比較することにより、前記リストした発信メッセージに関連する 着信メッセージを識別するステップとを含むことを特徴とする、請求の範囲第7 項に記載の方法。 9.アプリケーション・プログラム間の通信をサポートするように、受信した入 力メッセージの処理をサポートするための手段を含むデータ処理システム上に搭 載され且つ記録媒体に格納されるプログラム製品であって、 前記処理をサポートするための手段が、 入力メッセージのタイプをリストするための手段と、 モジュール状アプリケーション・プログラムの別個に選択可能なアプリケーシ ョン・プログラム構成要素をリストするための手段と、 一の入力メッセージのタイプを識別するとともに、入力メッセージ・タイプ及 び一のメッセージに関連する動的特性とアプリケーション・プログラム構成要素 との間の予め定義さ れた関係に従って、前記入力メッセージを処理すべき1つ以上のアプリケーショ ン・プログラム構成要素を選択するための手段を含むことを特徴とする、前記プ ログラム製品。 10.アプリケーション・プログラム間の通信をサポートするための機構を有し 、受信した入力メッセージの処理をサポートするための手段を含むようにしたデ ータ処理システムであって、 前記処理をサポートするための手段が、 サポートされる第1のアプリケーション・プログラムから送信される一の要求 メッセージに対し一の参照番号を割り当てるとともに、当該参照番号を予期応答 メッセージの参照番号として記録するための手段と、 受信した応答メッセージの参照番号のうち最高の参照番号を記録及び更新する ための手段と、 前記第1のアプリケーション・プログラム内でウォータシェッドに到達するた びに、前記記録した予期応答メッセージの参照番号を新しく割り当てた一の参照 番号で更新するための手段と、 前記処理をサポートするための手段によって受信され且つ関連する要求メッセ ージの参照番号を含んでいる応答メッセージを検査するとともに、受信した一の 応答メッセージの参照番号が前記予期応答メッセージの参照番号又は前記最高の 参照番号と一致するか否かを決定するための手段とを含むことを特徴とする、前 記データ処理システム。
JP1997511729A 1995-09-12 1996-01-19 分散環境におけるアプリケーション・プログラム用のサポート Expired - Lifetime JP3560345B6 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9518564A GB2304944A (en) 1995-09-12 1995-09-12 Support for application programs in a distributed environment
GB9518564.1 1995-09-12
PCT/GB1996/000062 WO1997010544A1 (en) 1995-09-12 1996-01-15 Support for application programs in a distributed environment

Publications (3)

Publication Number Publication Date
JPH11502044A true JPH11502044A (ja) 1999-02-16
JP3560345B2 JP3560345B2 (ja) 2004-09-02
JP3560345B6 JP3560345B6 (ja) 2013-12-25

Family

ID=

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004520641A (ja) * 2000-07-19 2004-07-08 オープンデザイン インコーポレイテッド イベントバスのアーキテクチャ
JP2007149081A (ja) * 2005-11-25 2007-06-14 Internatl Business Mach Corp <Ibm> メッセージ順序を保存するためのシステム
WO2008093725A1 (ja) * 2007-01-30 2008-08-07 Sharp Kabushiki Kaisha ファイル受信端末
JP2008538431A (ja) * 2005-04-05 2008-10-23 オープンページズ,インク. アダプティブ・コンテンツ・プラットフォームと同プラットフォームとのアプリケーション統合
US8589957B2 (en) 2002-07-09 2013-11-19 International Business Machines Corporation Adaptive platform
US10942707B2 (en) 2002-07-09 2021-03-09 International Business Machines Corporation Adaptive platform

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0298745A (ja) * 1988-10-04 1990-04-11 Nec Corp プロセス間通信処理方式
JPH03102553A (ja) * 1989-09-18 1991-04-26 Nec Corp コンピュータ通信の応答確認方式
JPH05120178A (ja) * 1991-10-30 1993-05-18 Kyushu Nippon Denki Software Kk 電文保証方法
JPH06332833A (ja) * 1993-05-25 1994-12-02 Nec Corp サーバ運用方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0298745A (ja) * 1988-10-04 1990-04-11 Nec Corp プロセス間通信処理方式
JPH03102553A (ja) * 1989-09-18 1991-04-26 Nec Corp コンピュータ通信の応答確認方式
JPH05120178A (ja) * 1991-10-30 1993-05-18 Kyushu Nippon Denki Software Kk 電文保証方法
JPH06332833A (ja) * 1993-05-25 1994-12-02 Nec Corp サーバ運用方式

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004520641A (ja) * 2000-07-19 2004-07-08 オープンデザイン インコーポレイテッド イベントバスのアーキテクチャ
US8495658B2 (en) 2002-07-09 2013-07-23 International Business Machines Corporation Adaptive content platform and application integration with the platform
US8589957B2 (en) 2002-07-09 2013-11-19 International Business Machines Corporation Adaptive platform
US10331414B2 (en) 2002-07-09 2019-06-25 International Business Machines Corporation Adaptive platform
US10942707B2 (en) 2002-07-09 2021-03-09 International Business Machines Corporation Adaptive platform
JP2008538431A (ja) * 2005-04-05 2008-10-23 オープンページズ,インク. アダプティブ・コンテンツ・プラットフォームと同プラットフォームとのアプリケーション統合
JP2007149081A (ja) * 2005-11-25 2007-06-14 Internatl Business Mach Corp <Ibm> メッセージ順序を保存するためのシステム
US8364743B2 (en) 2005-11-25 2013-01-29 International Business Machines Corporation System for preserving message order
WO2008093725A1 (ja) * 2007-01-30 2008-08-07 Sharp Kabushiki Kaisha ファイル受信端末

Also Published As

Publication number Publication date
JP3560345B2 (ja) 2004-09-02
GB2304944A (en) 1997-03-26
DE69607360T2 (de) 2000-09-21
EP0850444A1 (en) 1998-07-01
WO1997010544A1 (en) 1997-03-20
US6138168A (en) 2000-10-24
GB9518564D0 (en) 1995-11-15
DE69607360D1 (de) 2000-04-27
EP0850444B1 (en) 2000-03-22

Similar Documents

Publication Publication Date Title
US6138168A (en) Support for application programs in a distributed environment
US6658490B1 (en) Method and system for multi-threaded processing
US5060150A (en) Process creation and termination monitors for use in a distributed message-based operating system
US7721286B2 (en) Preemptive multi-tasking with cooperative groups of tasks
CA2098417C (en) Method and system for project management across process boundaries in a data processing system
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
EP0471442B1 (en) Method for implementing server functions in a distributed heterogeneous environment
US9189303B2 (en) Shadow queues for recovery of messages
US7702766B2 (en) Testing framework for communication in a distributed environment
AU751820B2 (en) Communication system and method of sending messages in a communication system
JPS63201860A (ja) ネツトワーク管理システム
JPH06180654A (ja) 送信側プロセスと複数の受信側プロセスの間でプロセス間メッセージのスイッチングを行う方法および装置
US20090094582A1 (en) Checkpoint and restartable applications and system services
JPH06332870A (ja) オブジェクト指向コンピュータ環境における協調処理のためのオブジェクト・マネージャをリンクする方法及び装置
JPH04217059A (ja) 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構
US7640549B2 (en) System and method for efficiently exchanging data among processes
WO1997028623A2 (en) Application user interface redirector
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
US6269378B1 (en) Method and apparatus for providing a name service with an apparently synchronous interface
US5790868A (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
JPH11259301A (ja) C++における例外の遅延投入のための方法及び装置
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
JPH10333925A (ja) オートノマス・エージェント・アーキテクチャ
US7882508B1 (en) Tracing information flow using a signature
US20050086632A1 (en) Interface method for a device driver

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040324

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040525

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: 20080604

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080604

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090604

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100604

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110604

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110604

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120604

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120604

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 9

EXPY Cancellation because of completion of term