JP3023225B2 - ソフトウエア間通信のためのデータ交換装置 - Google Patents

ソフトウエア間通信のためのデータ交換装置

Info

Publication number
JP3023225B2
JP3023225B2 JP3274338A JP27433891A JP3023225B2 JP 3023225 B2 JP3023225 B2 JP 3023225B2 JP 3274338 A JP3274338 A JP 3274338A JP 27433891 A JP27433891 A JP 27433891A JP 3023225 B2 JP3023225 B2 JP 3023225B2
Authority
JP
Japan
Prior art keywords
service
data
subject
communication
class
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 - Fee Related
Application number
JP3274338A
Other languages
English (en)
Other versions
JPH04299758A (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
Priority claimed from US07/601,117 external-priority patent/US5257369A/en
Application filed by テクネクロン ソフトウェア システムズ インコーポレイテッド filed Critical テクネクロン ソフトウェア システムズ インコーポレイテッド
Publication of JPH04299758A publication Critical patent/JPH04299758A/ja
Application granted granted Critical
Publication of JP3023225B2 publication Critical patent/JP3023225B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1804Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for stock exchange and similar applications
    • 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
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/68Payment of value-added services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0196Payment of value-added services, mainly when their charges are added on the telephone bill, e.g. payment of non-telecom services, e-commerce, on-line banking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、同一または異なるコ
ンピュータにおいて動作している複数のソフトウエア間
における自由度の高い(decoupled)情報交換に関するも
のである。ここでは、各ソフトウエアにおいて、異なる
データ表現のフォーマットや異なる編成(organization)
を使用できるようにし、また、データ表現や編成が同じ
であるが、再プログラムをすることなく変更されるよう
なフォーマットや編成を使用できるようにしている。こ
の発明において、ソフトウエアは、次のような方法で、
「意味」(semantic)情報やフィールド名情報を使用す
る。すなわち、各ソフトウエアは、意味やフィールド名
の違いがあっても、外部の(foreign)ソフトウエアから
受け取ったデータを、理解し使用することができる。意
味情報は、データ表現やデータ編成情報から切り離され
ている。
【0002】
【従来の技術および発明が解決しようとする課題】形式
の異なるコンピュータやソフトウエア・プログラムが氾
濫しているという事および、異なる形式のソフトウエア
が動作する異なる形式のコンピュータにおいては常にデ
ータ交換が必要であるという事から、上記のようなデー
タ交換を可能にするシステムが望まれてきた。一般的に
は、互いに外部にあるソフトウエアモジュール間におい
て交換されるデータは、テキスト、データ、グラフィッ
クスを含んでいる。また、デジタル化した音声やイメー
ジデータ、さらには、もっと特殊な形態の情報を交換し
なければならない場合もある。このようなデータの種々
の形式は、「プリミティブ(primitives)」と呼ばれてい
る。ソフトウエアプログラムは、理解し取扱うようにプ
ログラムされたプリミティブしか扱うことができないの
である。異なる形式のプリミティブがデータとしてプロ
グラムに与えられた場合には、エラーを生じてしまう。
【0003】ここで、「外部(foreign)」という用語
は、データ交換に関係するソフトウエアモジュールもし
くはホストコンピュータが「異なる言語を話す」という
ことを意味するものである。例えば、パーソナルコンピ
ュータやワークステーションに広く用いられているモト
ローラやインテルのマイクロプロセッサでは、次のよう
に異なるデータ表現を用いている。すなわち、あるマイ
クロプロセッサ・ファミリにおいては、複数ワードの最
上位バイトが最初に位置しているのに対し、他のファミ
リにおいては、最上位バイトが最後に位置している。さ
らに、IBM製のコンピュータにおいてはテキスト文字
がEBCDICコードに変換されるのに対し、これ以外
のほとんどのコンピュータにおいては、テキスト文字は
アスキー(ASCII)コードに変換される。また、整数、不
動小数点等を有する数を表現するために、多くの方法が
存在している。加えて、外部のソフトウエアモジュール
は、異なる方法を用いてデータを編成するとともに、異
なる意味情報、すなわちデータレコード中の各フィール
ドの名称とそれが意味するもの、を用いている。
【0004】データの表現、編成のため、上記のような
種々のフォーマットが用いられている。このため、有効
な通信を行うには、その前に、共通言語への翻訳をする
か、あるいは、あるコンピュータや処理で使用されてい
る言語を、他のコンピュータや処理に用いられている言
語に翻訳をする必要がある。さらに、ローカルエリア・
ネットワーク(LAN)、広域ネットワーク(WA
N)、ゲートウエイ、衛生通信等によって接続され、物
理的には離れているコンピュータ間において、相互に通
信を行うソフトウエアも多く存在する。これら種々のネ
ットワークは、それぞれ独自の通信プロトコルを有して
いる。また、少なくとも経済サービスの世界において
は、ダウ・ジョーンズ・ニュース(Dow Jones News)やテ
レレート(商標)(TelerateTM)等の生データソースが、
異なるデータフォーマット、通信プロトコルを使用して
いる。これらのソースのデータを受信するためには、そ
れぞれのデータフォーマット、通信プロトコルを理解し
て、それに従わなければならない。
【0005】株式、債券、金融市況等に関する経済デー
タ等の複雑なデータ構造においては、データをネスティ
ング(nesting)構造にすることが有効な場合が多い。す
なわち、特定の主題に関するデータを、当該主題を種々
の角度から表わした多数の「フィールド」に分けたデー
タレコードに編成する場合が多い。フィールドにサブ・
フィールドを持たせ、このサブ・フィールドにさらにサ
ブ・フィールドを持たせるというように、必要に応じて
レベル化することも有効である。ここでは、このような
データ編成の形を、「ネスティング(nesting)」と呼
ぶ。フィールド名および主題との関連においてフィール
ド名が意味しているものを、「意味情報」と呼ぶ。フィ
ールドにおける浮動小数点、整数、英数字(alphanumeri
c)等の実際のデータ編成、およびどれだけのフィールド
によってデータレコードが構成されているかという意味
での編成を、「フォーマット」情報もしくは「型(Typ
e)」情報と呼ぶ。データのみを持つ(ネスティングされ
たサブ・フィールドを持たない)フィールドを「プリミ
ティブ・フィールド」と呼び、他のフィールドを持つフ
ィールドを「構造化フィールド」と呼ぶ。
【0006】ソフトウエア間でのデータ交換において
は、基本的な2つのタイプがある。1つは、「フォーマ
ット・オペレーション」と呼ばれるものであり、データ
レコード(以後、データレコードのことを「フォーム」
と呼ぶ場合もある)のフォーマットを他のフォーマット
に変換するものである。このようなフォーマットオペレ
ーションとしては、例えば、浮動小数点やEBCDICフィー
ルドを有するデータレコードを、イーサネット(商標)
(ETHERNETTM)のLANを介して伝送するために、パック
形式に変換する場合である。受信側における処理、ソフ
トウエアにおいては、イーサネット(商標)のパケット
フォーマットから、整数、ASCIIフィールドへの変換を
行うフォーマット・オペレーションを行わねばならない
場合も生じる。
【0007】2つめのタイプのオペレーションを、「意
味依存オペレーション」と呼ぶ。なぜなら、あるフォー
ムを持つフィールド、例えば、今日のIBMの株価や昨
日のIBM株価の安値を、ソフトウエアに与えるような
場合には、作業を行うフォームに関する型情報もしくは
フォーマット情報だけでなく、意味情報にアクセスする
ことが必要だからである。
【0008】さらに今日では、データの型が異なる種々
のソース、あるいはデータの型が同じである種々のソー
スが存在しており、そのカバー範囲はオーバーラップし
ているにもかかわらず、異なるフォーマット、異なる通
信プロトコルを使用している(同じフォーマット、同じ
通信プロトコルにてオーバラップする場合もある)。情
報を供給するサービスのネットワーク・アドレスやその
情報ソースとの通信に必要な通信プロトコルの詳細をソ
フトウエアが知らなくとも、主題に関する情報を得るこ
とができれば、有用である(ソフトウエアのことを、以
後、「アプリケーション」と呼ぶことがある)。
【0009】そこで、種々のソフトウエア、コンピュー
タを「切り離し(decoupling)」してデータ交換を有効に
かつ確実に行うため、種々のソフトウエア、プロセス、
コンピュータ間のインターフェイスを提供することので
きる通信システムの登場が望まれている。「切離す」と
いうのは、ソフトウェアモジュールプログラムが、他の
ソフトウエアと他のコンピュータがネットワーク内のど
こにあるのか、フォームとデータが外部ソフトウェアに
おいてとるフォーマットと、外部のソフトウェアモジュ
ール又は外部のコンピュータと通信するためにどの通信
プロトコルを必要とするか、又は発信元プロセスと宛先
プロセスの間の任意のネットワークを通すためにどの通
信プロトコルが用いられるかを知ることなしに、および
多数の生データソースのうちのどれが要求されているデ
ータを供給できるかを知ることなしに、ソフトウェアモ
ジュールのプログラマが他のコンピュータ又は他のソフ
トウェアプロセスから情報をアクセスできることを意味
する。更に、「切離し」は、ここで用いる用語として
は、データが一度に要求され、他に供給されうることを
意味する。また、プロセスが、外部フォーマットで作成
されたフォームの例から、希望のデータを得ることがで
きることを意味し、また、適切な意味オペレーションの
通信インターフェイスによる学習(exercise)を通じて、
取り出し処理が明らかな状態で外部フォームから要求さ
れたデータを取り出し、外部の意味データを得ることが
できることを意味する。
【0010】種々の切離し度を持つ外部ソフトウェアモ
ジュールの間で情報の交換を行えるようにする各種のシ
ステムが従来技術に存在する。そのような種類のシステ
ムの1つが任意の電子メールソフトウェアである。この
ソフトウェアはCCITTのX.409規格を含めた電子文
書交換規格を実現するものである。電子メールソフトウ
ェアは、フォーマットデータまたは型データがデータレ
コードまたはフォームの各例に含まれていると言う意味
で、アプリケーションを切離すものである。しかし、意
味情報を記録または処理するための用意はされていな
い。したがって、外部データ構造中の希望のフィールド
の名称または意味を基にしてデータの取出しまたは翻訳
を行うというような意味オペレーションは不可能であ
る。意味に依存するオペレーションは、通信が成功した
とするならば、非常に重要である。更に、情報ソースの
アドレスを知ることなく、単に情報を要求するだけでよ
い、主題に基づくアドレッシングを実現できるようにす
る用意が電子メールソフトウェアには設けられていな
い。更に、電子メールソフトウェアは、通信プロトコル
が確立していないサービスまたはネットワークにアクセ
スすることができない。
【0011】リレーショナルデータベースおよびデータ
辞書は、従来技術において、外部プロセスのデータ共有
を可能としている、ソフトウェアシステムの別の例であ
る。この種のソフトウェアの欠点は、これらのプログラ
ムが「平板的な」表、レコードおよびレコード内のフィ
ールドだけしか取り扱うことができず、レコード内にネ
スティングされたレコードを取り扱うことができないこ
とである。更に、電子メールソフトウェアにおいて述べ
た欠点は、リレーショナルデータベースソフトウェアに
も存在する。
【0012】
【課題を解決するための手段】本発明の教示に従うこと
により、従来知られていなかった程度の切離しを行いつ
つ、外部プロセスとコンピュータをインターフェイスす
るための構造を提供する方法と装置を得ることができ
る。
【0013】本発明の教示に基づくデータ通信インター
フェイス・ソフトウエア・システムは、2つの主コンポ
ーネント、通信コンポーネント、データ交換コンポーネ
ントに編成されたいくつかのプログラムライブラリを備
えている。本発明のこの明細書で用いるインターフェイ
スという用語は、外部プロセスと外部コンピュータの少
なくとも一方と通信を行うのに有用な作業を行うため
に、アプリケーションにより呼出すことができる機能の
集りを意味する。インターフェイスの呼出し機能は、本
発明による通信インターフェイス内の、アプリケーショ
ンからまたは他のコンポーネントからのサブルーチンコ
ールによるものとしてもよい。
【0014】好ましい実施例においては、インターフェ
イスを有するサブルーチンライブラリ中の種々のサブル
ーチンによって、インターフェイスの機能が実行され
る。もちろん、サブルーチンの代りに別々のプログラム
またはモジュールを使用でき、この方が実際に好ましい
場合もあることは、当業者なら分かるであろう。
【0015】データフォーマットの切り離しは、次のよ
うにして行われる。すなわち、第1のフォーマットのデ
ータレコード、データフォームを使用する第1のプロセ
スが第2のプロセスのフォーマットを知る必要なく、ま
たは使用する必要なく、異なる第2のフォーマットのデ
ータレコードを持つ第2のプロセスと通信することがで
きる。このような切離しは、通信インターフェイスソフ
トウェアシステムのデータの交換コンポーネントにより
実現される。
【0016】本発明の通信インターフェイスのデータ交
換コンポーネントは、フォームマネージャーモジュール
とフォームクラスマネージャーモジュールを含む。フォ
ームマネージャーモジュールは、フォーム例の作成、記
憶、取消、破棄を取扱い、フォームクラスマネージャー
の各種機能を呼出すものである。フォームクラスマネー
ジャーは、フォームクラス記述子の作成、記憶、取消、
破棄および翻訳を取扱うものである。ここで、フォーム
クラス記述子とは、特定のフォームクラスに関係したフ
ォーマット情報、意味情報が記録されたデータレコード
をいう。フォームクラスマネージャーはアプリケーショ
ンからの要求、または通信インターフェイスの他ののコ
ンポーネントからの要求を受けて、フィールド名やフィ
ールドの意味によって認識された時にフォーム例の特定
フィールドを得ることもでき、適切なフォーム例を検索
することもでき、さらに特定フィールド中の要求された
データを取り出して、送ることもできる。また、フォー
ムクラスマネージャーは、フォームの未知のクラス定義
を探すことができる。これは、フォームマネージャー
が、すでに既知のクラス定義の情報を調べることによ
り、あるいは新たなフォームクラスを作成した外部プロ
セスとリンクしているフォームクラスマネージャーにク
ラス定義を要求することにより実現される。意味情報に
データ表現またはデータ編成に関する情報が含まれてい
ないという点で、フィールド名等の意味データは、デー
タ表現、データ編成から切り離される。本発明の通信イ
ンターフェイスは、意味的、データフォーマット的な観
点において、データの切り離しを行うものである。意味
的な観点における切り離しは、意味依存オペレーション
を実行する能力により実現される。この意味依存オペレ
ーションにより、この通信インターフェイスに接続され
たどのプロセスも、同じデータ編成を持つ他のプロセス
だけでなく異なったデータ編成を持つ他のプロセスとの
データ交換を行うことが可能となる。なお、上記の異な
ったデータ編成とは、同じ内容を示すデータに対し同じ
フィールド名を使用しているが、データの編成が異なる
ようなものをいう。他の実施例においては、意味依存オ
ペレーションにより、別名変換、同義語変換機能が実行
される。この機能により、受入れたデータフィールドが
異なった名称を持っているが一定の内容を示す場合に、
要求を出したプロセスが理解できるフィールド名に変え
られたり、あるいはフィールド名が変えられたものとし
て取扱われる。
【0017】この発明によるインターフェイスは、3つ
のレイヤーに構造化プロセス構造を有する。
【0018】構造的な切り離しは、情報レイヤーによっ
て達成される。要求を行うプロセスは、プロセスやサー
バのネットワークアドレスを知ることなしに、特定の主
題に関するデータの要求を行うことができる。この種の
切り離しは、インターフェイスの通信コンポーネントに
おける情報レイヤー内の主題に基づくアドレッシング(s
ubject-based-addressing)システムによって達成され
る。
【0019】主題に基づくアドレッシングは、本発明の
通信インターフェイスの通信コンポーネントにより、主
題のマッピング(subject mapping)を行うことによって
実現される。通信コンポーネントは、データ要求の対象
となっている主題を記述したアプリケーションから「申
し込み(subscribe)」要求を受ける。情報レイヤー内の
主題マッパモジュール(subject-mapper module)がアプ
リケーションから「申し込み」要求を受け、その後、デ
ータベース、テーブル等の主題を検索する。データベー
スは、種々の主題についてのデータを供給する各種のサ
ーバープロセスを示す「サービスレコード」を記憶して
いる。適切なサーバプロセスを示すサービスレコードが
特定されて、主題マッパモジュールに返送される。ここ
で、適切なサービスレコードとは、要求された型のデー
タおよび特定されたサーバプロセスと通信を行う際に使
用する通信プロトコルを供給することのできるサービス
レコードをいう。
【0020】主題マッパは、プロセス構造の第2レイヤ
ー(サービスレイヤーという)上の複数の通信ライブラ
リプログラムまたはサブルーチンにアクセスする。サー
ビスレイヤー上のルーチンは、「サービス統制(service
disciplines)」と呼ばれる。各サービス統制は、サー
バプロセスに特有の所定の通信プロトコルを有してい
る。主題マッパは、その後、サービスレコードにおいて
識別されている適切なサービス統制を呼出す。
【0021】サービス統制には主題マッパによって主題
が与えられ、サービス統制は適切なサーバープロセスに
対する通信の設定を続ける。その後、主題に関するデー
タを含むフォーム例が、通信を設定したサービス統制を
介して、サーバプロセスにより、要求するプロセスへ送
られる。
【0022】サービスプロトコルの切離しはサービスレ
イヤーにより行われる。
【0023】テレレート(商標)等のページ指向サーバ
プロセスのサービス統制により、一時的な切り離しが実
現される。これは、どのページに申し込み(subscriptio
ns)がなされたかの最新情報を記憶しているリアルタイ
ムデータベースにアクセスすることによって実現され
る。
【0024】通信コンポーネントの第3レイヤーは、通
信レイヤーと呼ばれ、組み立て(configuration)に関す
る切り離しを行う。このレイヤーは、プログラムのDC
Cライブラリを有している。このライブラリは、特定サ
ーバとのデータリンクを確立する要求を受け、リンクの
ためのプロトコルがまだ確立していなければ、最適の通
信プロトコルを決定する。通信レイヤーは、一対一の(p
ointーtoーpoint)通信プロトコル、同時通信(broadcast)
プロトコル、信頼性の高い同時通信(reliablebroadcas
t)のプロトコル、インテリジェント・マルチキャスト
(商標)のプロトコル等の種々の通信プロトコルを有す
る通信プロトコルエンジンを備えている。通信レイヤー
の機能のうちのいくつかのものは、オペレーティング・
システムの標準的な転送プロトコルの機能を増やすもの
であり、付加価値サービスを提供するものである。
【0025】これら付加価値サービスのうちの一つは、
信頼性の高い同時通信プロトコルである。このプロトコ
ルエンジンは、送信側のメッセージのパケットにシーケ
ンス番号を付加し、全てのパケットが受信側に受信され
たことを確認する。パケットは、再送信のために、送信
側において記憶される。受信側においては、全てのパケ
ットが受信されなかった場合や伝送エラーがあった場合
には、再送信の要求が出される。その後、エラーのあっ
たパケットや送られなかったパケットが再送信される。
全てのパケットが正しく受信された場合には、確認メッ
セージが送られる。これにより、送信側のプロトコルエ
ンジンは、再送信バッファから送信済のパケットを消去
し(flush)、次のメッセージのパケットを送るためのバ
ッファ容量を確保する。
【0026】もう一つの付加価値サービスは、インテリ
ジェント・マルチキャスト・プロトコルである。このプ
ロトコルは、送られるべきメッセージの主題を調べ、こ
の主題に対する申し込みが幾つあったかを決定するサー
ビス統制を有している。申し込みの数が、一対一の送信
と同時送信とのコストによってセットされたしきい値よ
り小さい場合には、メッセージは一対一の送信によって
送られる。そうでない場合には、メッセージは、信頼性
の高い同時通信によって送られる。
【0027】
【実施例】以下の記述は技術的にかなり高度であるか
ら、後に掲げる用語解説に定義したデジタルネットワー
ク通信技術において用いられている用語を理解すること
によって、より良い理解を得ることができる。この明細
書を読む者は、まず、用語解説を読むことをすすめる。
【0028】まず、本発明の通信インターフェイスを組
み込むことができる典型的なシステムのブロック図が示
されている第1図を参照する。もっとも、本発明により
効果を得ることができるシステムアーキテクチャは、広
範囲にわたるものである。本発明に係る通信インターフ
ェイスを、以下に示す他の実施例において、TIB(商
標)もしくはテクネクロン情報バスと呼ぶ場合がある。
ここで、本発明を説明するために用いた重要ないくつか
の用語についての基本的な理解を得るために、この明細
書に含まれている用語について説明することにする。本
発明の教示は、コンピュータプログラムのライブラリに
組込まれる。これらのプログラムは、一緒になって、通
信インターフェイスを提供する。この通信インターフェ
イスは、ネットワーク通信のプロトコルやサービス通信
のプロトコルにおけるクライエントアプリケーションの
開発や変更のモジュール化を容易にする多くの機能を有
する。これらの機能は、種々のクライエントアプリケー
ションを「切り離した」状態(この状態においては、発
明が、通信プロセス間の、仲介者、仲人であるかのよう
にふるまう)で結合することによって達成される。以
下、本発明の教示を通信インターフェイスと呼ぶことに
する。ここで用いる「切離す」という用語は、クライエ
ントアプリケーションのプログラマが、通信プロトコル
の詳細と、データ表現フォーマットの細部と、データ交
換を希望される他の全てのアプリケーションまたはサー
ビスのデータレコード編成の細部とを知る必要から解放
されることを意味する。更に、クライエントアプリケー
ションのプログラマは、特定の主題についてのデータを
得るために、それらの主題についてのデータを供給する
サービスまたはサーバの場所を知る必要はない。この通
信インターフェイスは、クライエントアプリケーショ
ン、データ消費者アプリケーション、データ供給者サー
ビスの間のデータ交換における全ての詳細事項について
自動的に注意を払う。第1図に示す装置は、ネットワー
クを介してまたは共有メモリによって、複数のホストコ
ンピュータが結合された典型的なネットワークである。
第1図には2つのクライエントアプリケーション16、
18が動作しているホストコンピュータ10、12が示
されている。他の実施例においては、これら2つのクラ
イエントアプリケーションは、同じコンピュータの上で
実行してもよい。これらのホストコンピュータは、ネッ
トワーク14によって結合されている。ネットワークと
しては、イーサネット(商標)通信プロトコル、トーク
ンリング(token ring)プロトコル等を使用することがで
きる。データ交換のためのネットワークの説明は、本発
明の実施のためには必要でない。本発明の実施のために
は、従来技術で知られているデータ交換方法で十分だか
らである。したがって、ホストコンピュータ10、12
が等しくアクセスする共用メモリファイルまたは共用分
散型記憶装置も、本発明の教示が適用できる環境として
十分である。
【0029】各ホストコンピュータ10、12は、ラン
ダムアクセスメモリおよび、ディスクドライブまたはテ
ープドライブ等の大容量記憶装置を有する。これらのメ
モリには、各種のオペレーティングシステムプログラ
ム、クライエントアプリケーションプログラム、一体と
なって通信インターフェイスを構成するライブラリのプ
ログラム等のプログラムが記憶される。これらのプログ
ラムは、ホストコンピュータに有用な仕事をさせるため
のものである。通信インターフェイス中のプログラムの
ライブラリは、特定の主題についてのデータを供給する
サービスの場所を見つけたり、適切な通信プロトコルを
用いてそのサービスと通信を行わせるというような動作
を行わせるために、クライエントアプリケーションによ
り呼出すことができる基本的なツールを提供する。
【0030】各ホストコンピュータは端末装置、プリン
タ(図示せず)等のユーザーインターフェイスに結合す
ることもできる。
【0031】第1図に示す例示的な装置において、ホス
トコンピュータ10は、そのメモリにクライエントアプ
リケーションプログラム16を格納している。このクラ
イエントアプリケーションプログラム16が、有用な作
業を行うために、ホストコンピュータ12を制御する他
のクライエントアプリケーションプログラムまたはサー
ビス18とのデータの交換を求めていると仮定する。ま
た、ホストコンピュータ10、12はデータ表現のため
に異なるフォーマットを使用し、アプリケーションプロ
グラム16、18は、作成したデータレコードのデータ
表現、データ編成のフォーマットに異なったものを使用
すると仮定する。これらのデータレコードは、フォーム
と呼ばれる。また、ホストコンピュータ10と12の間
のデータ通信路14は、イーサネット(商標)系列のL
ANで構成されているものと仮定する。
【0032】各ホストコンピュータ10、12は、それ
ぞれ、通信インターフェイス20、22を構成するプロ
グラムのライブラリによってもプログラムされている。
通信インターフェイスプログラムは、ランタイムコード
(run time code)を生成するために、リンカ(linker)に
よってクライエントアプリケーションのコンパイル後の
コードと結合されており、通信プログラムのソースコー
ドは、コンパイル前のクライエントアプリケーションプ
ログラムのソースコードに含まれている。いずれにして
も、通信ライブラリプログラムは、なんらかの形でクラ
イエントアプリケーションと結合される。したがって、
ホストコンピュータ10が2つのクライエントアプリケ
ーションによって動作しているとすると、各クライエン
トアプリケーションは、モジュール20等の通信インタ
ーフェイスモジュールに結合される。
【0033】通信インターフェイスモジュール20の目
的は、アプリケーション18において用いられているフ
ォームのデータ編成、データフォーマットの詳細から、
アプリケーション16を切り離すことである。また、ア
プリケーション18のネットワークアドレスからアプリ
ケーション16を切り離すことである。さらに、アプリ
ケーション18によって用いられている通信プロトコル
の詳細からアプリケーション16を切り離すことであ
る。同様に、ネットワーク14を介して、データを送る
ために必要な通信プロトコル、データ編成、データフォ
ーマットの詳細からアプリケーション16を切り離すこ
とである。通信インターフェイスモジュール22は、ア
プリケーション18に対して上記と同じ機能を発揮する
ものである。これにより、アプリケーション16とネッ
トワーク14についての詳細を知る必要から解放するも
のである。通信インターフェイスモジュールは、変更の
モジュール化を容易にするものである。これにより、ク
ライエントアプリケーション、データフォーマットまた
はデータ編成、ホストコンピュータあるいはネットワー
クの変更を行った場合に、この変更の影響をシステム全
体に波及させずに互換性を維持できるようにしている。
【0034】これらの機能のいくつかを実現するため
に、通信インターフェイス20と22は、ネットワーク
14を介して、主題テーブル26とサービステーブル2
8を含むネットワークファイルシステム24にアクセス
する。これらの表(テーブル)については、後で主題に
基づく(主題の主動的)アドレッシングの説明に関連し
て詳しく説明する。これらのテーブルには、各種の主題
についての情報を提供するサービスのネットワークアド
レスがリストアップされている。
【0035】この通信インターフェイスを用いる典型的
なシステムモデルは、ユーザと、ユーザー群と、ネット
ワークと、サービスと、サービス例(service instance
s)(またはサーバ)と、主題とで構成される。人間であ
る末端ユーザは、ユーザーIDにより識別される。この
通信インターフェイスにおいて用いられるユーザーID
は、通常、基礎を成しているオペレーティングシステム
(図示せず)により用いられるログオンID、ユーザI
Dと同じである。しかし、そのようでなくともよい。各
ユーザーは、1つのグループの一構成員である。
【0036】グループは、類似したサービスアクセスパ
ターンおよびアクセス権を有するユーザーで構成され
る。サービスまたはシステムに対するアクセス権は、ユ
ーザーのレベルおよびグループのレベルにより許可する
ことができる。システム管理者は、ユーザーをグループ
に割り振りする責任がある。
【0037】ここで用いる「ネットワーク」という用語
は下側の「トランスポート層」(この用語はISOネッ
トワーク層モデルに用いられるから)と、ISOネット
ワークモデルにおけるトランスポート層より下層にある
全ての層を意味する。アプリケーションは、ホストコン
ピュータが接続されている任意のネットワークを介し
て、データを送信または受信できる。
【0038】第1図においてブロック20と22として
一例を示した本発明の通信インターフェイスは、各クラ
イエントアプリケーションのために、通信コンポーネン
ト30とデータ交換コンポーネント32を含んでいる。
通信コンポーネント30は、共通の通信機能セットであ
って、たとえば、主題に基づくアドレッシングとサービ
ス統制の切離しの少なくとも一方を実現する。通信コン
ポーネントは、各クライエントアプリケーションに結合
される。また、各通信コンポーネントは、結合されるネ
ットワークの標準的なトランスポート層プロトコル、例
えばTCP/IPに結合される。各通信コンポーネント
は、多数のトランスポート層プロトコルに結合され、各
プロトコルを支持できる。ネットワークのトランスポー
ト層は次のことを実行する。それは、トランスポート層
アドレスをネットワークアドレスにマップし、トランス
ポート層接続をネットワーク接続へ多重化してスループ
ットを増大させ、誤り検出とサービス品質の監視を行
い、誤りを訂正し、セグメント化とブロック化を行い、
ネットワークへのトランスポート層とセッション層との
個々の接続の流れ制御と、迅速なデータ転送を行う。通
信コンポーネントは、クライエントアプリケーションの
ために確実な通信を行うとともに、クライエントアプリ
ケーションに対して場所の明瞭性とネットワークの独立
性を提供する。コンポーネント32を典型とする通信イ
ンターフェイスのデータ交換コンポーネントは、データ
表現、データ転送の強力な方法を実現する。これは、フ
ォームと呼ばれる自己記述データオブジェクト内にデー
タを包含させることにより実現される。これらのフォー
ムは、対象とするデータばかりでなく、フォームの編成
やデータのために用いられる表現を記述する型情報やフ
ォーマット情報を含むという点において自己記述的であ
る。フォームはこのような型情報やフォーマット情報を
含んでいるので、あるフォーマットを有する特定のフォ
ームを別のフォーマットへ変換するためのフォーマット
オペレーションは、フォーム自身のデータを用いて行う
ことが可能である。この時、意味情報を与えるクラス記
述やクラス定義と呼ばれる他のデータにアクセスする必
要はない。クラス記述子における意味情報は、基本的
に、フォームのフィールド名を意味する。
【0039】フォームそれ自体のデータだけでフォーマ
ットオペレーションを行う能力は、きわめて重要な能力
である。なぜなら、例えばクラス記述子のような他の場
所に設けられている他のデータオブジェクトにアクセス
しなければフォーマットオペレーションが行えないよう
な場合に生じる動作の遅延を防ぐことができるからであ
る。一般にクライエントアプリケーションのための処理
時間の25〜50%がフォーマットオペレーションに費
やされているので、自己記述オブジェクトを使用してこ
の処理時間を速くすることにより、処理が能率化され
る。
【0040】データ交換コンポーネントにより管理され
る自己記述フォームは、データ取扱いおよびデータ表示
のための全般的なツールの実現も許す。それらのツール
は、フォームをマシンとは独立のフォーマットで、プロ
セスの間を送るための通信ツールを含んでいる。更に、
自己記述フォームを用いるクライエントアプリケーショ
ンに悪影響を及ぼすことなしに、自己記述フォームを拡
張できる、すなわち、それらのフォームの編成を変化し
たり、拡張したりできるので、それらのフォームはモジ
ュール化アプリケーションの開発を非常に容易にする。
【0041】通信インターフェイスの最も下の層はIS
Oモデルのトランスポート層に結合され、かつ、通信コ
ンポーネント30は、多くのサービス統制を含み、多く
のネットワークを支持するために多くのトランスポート
層プロトコルを含んでいるので、ネットワーク不良の場
合には、あるネットワークから他のネットワークへ明示
的に切り換えるようなアプリケーション指向のプロトコ
ルを書くことができる。
【0042】「サービス」とは、クライエントアプリケ
ーションによって使用するために、アプリケーションに
より送り出される機能の有意セットを表わすものであ
る。サービスの例えはダウ・ジョーンズ・ニュース(Dow
JonesNews)、クォートロン(Quotron)データ源、トレー
ド・チケット・ルーター(Trade Ticket ruoter)のよう
な歴史的ニュース検索サービスである。一般的には、ア
プリケーションはただ1つのサービスを送り出すが、多
くの異なるサービスの送り出しも可能である。
【0043】「サービス例」は与えたれたサービスの供
給を可能とするアプリケーションまたはプロセスであ
る。ある与えられたサービスに対して、いくつかの
「例」は、サービスのスループットを改善するようにま
たは耐障害性を持たせるために、サービスを同時に行う
ことができる。
【0044】ネットワーク、サービスおよびサーバーは
従来技術で知られている伝統的な構成要素であるが、従
来技術によるシステムは、ネスティングされたデータオ
ブジェクトによるデータの独立性や主題スペースの概念
に対する認識をもつに至っていなかった。主題スペース
は、主題に基づくアドレッシングと呼ばれる切離しの1
つの型を支持している。多数のレベルにおいてネスティ
ングできる自己記述データは新しいものである。ネット
ワークの他の部分において行われているように、クライ
エントアプリケーションを種々の通信プロトコルおよび
データフォーマットから切離すことも非常に有用であ
る。
【0045】主題に基づくアドレッシングを実現するた
めに用いられる主題スペースは、主題カテゴリーの階層
的なセットで構成される。好適な実施例においては、4
レベル主題スペース階層を用いた。典型的な主題の例
は、「株、ibm、コンポジット、トレード」である。
通信インターフェイスに結合されたクライエントアプリ
ケーションは、種々の主題カテゴリーの使用と解釈に関
する規約を確立する自由と責任を有する。
【0046】各主題は、一般に、システムファイルに記
憶されたデータレコード中の主題についてのデータを供
給する1以上のサービスと関連付けられている。各サー
ビスには、通信インターフェイスの通信コンポーネント
において、サービス統制、すなわち、そのサービスと通
信するために必要な通信プロトコルや通信手順が組合わ
されているので、クライエントアプリケーションは、そ
の主題についてのデータを供給するサービス例がどこに
あるのかを知ることなく、特定の主題に関するデータを
要求することができる。また、その主題の情報を提供す
るサービスのネットワークアドレスを与えずに、主題の
みを与える申し込み要求を行うことによって、ネットワ
ーク上の主題の位置が分る。これらの申し込み要求は、
通信インターフェイスにより、その主題の情報を供給す
る1以上のサービス例との実際の通信接続に翻訳され
る。
【0047】主題カテゴリーのセットは、主題領域(sub
ject domain)と呼ばれる。多数の主題領域が許される。
各領域は、領域特有の主題と、メッセージヘッダにおい
て主題を効率的に表わすコーディング機能とを定めるこ
とができる。
【0048】
【データの独立性:データ交換コンポーネント】第1図
の通信インターフェイスのコンポーネント32のような
データ交換コンポーネントの全体的な目的は、アプリケ
ーション16のようなクライエントアプリケーションを
データ表現と、データ構成と、データの意味の細部から
切離すことである。
【0049】図2において、フォーマット情報と意味情
報の双方を定義する構造化クラスのクラス定義の一例が
示されている。これは、このクラスの全てのフォーム例
に共通のものである。選択した特定の例においては、フ
ォーラムクラスはプレイヤー名と名づけられ、クラスI
D1000を有する。このクラス1000のフォームの
例は、名前と、年齢と、テニス競技者に対するNTRP
評点とについてのデータを含んでいる。あらゆるクラス
定義には、クラスを独自に識別するクラスIDと呼ばれ
るクラス番号が組合される。
【0050】クラス定義は、フィールドのリストを、フ
ィールド内容のデータ表現と名前により与える。各フィ
ールドはフォームを含み、各フォームは原始(primitiv
e)または構造化されたものとすることができる。原始ク
ラスフォームは実際のデータを記憶しているが、構造化
クラスフォームは、原始または構造化された他のフォー
ムを含むフィールドを有する。図2のクラス定義におい
ては、評点、年齢、姓、名と名づけられる4つのフィー
ルドがある。各フィールドは原始クラスフォームを含む
から、このクラスのフォームにおける各フィールドは実
際のデータを含む。例えば、フィールド評点はクラス1
1の原始フォームを常に含む。クラス11は浮動小数点
と名づけられる原始クラスである。浮動小数点は、この
フィールドの内容が浮動小数点のデータ表現であること
を定めている。クラス浮動小数点、クラス11のための
原始クラス定義が図5に見られる。原始クラス11のク
ラス定義は、浮動小数点というクラス名を有している。
このクラス名は、クラス(この例では、クラス番号のク
ラス11もクラスを独自に識別する)と、1つのデータ
値のデータ表現の詳細を独自に識別する。1つのデータ
値の詳細は、周知の予め定められたシステムのデータ型
を用いる。このデータ型は、ホストコンピュータと、こ
のクラスのフォームを取扱うアプリケーションの双方に
理解される。
【0051】実際のデータ値のデータ表現に対する典型
的な詳細は整数、浮動小数点、ASCII文字列、またはEBC
DIC文字列等である。原始クラス11の場合には、デー
タ値の詳細は、浮動小数点1/1である。これは、この
原始クラスのフォーム例に記憶されているデータが、合
計2桁の浮動小数点であって、そのうちの1桁が小数点
の右側になることを示す表記法である。
【0052】次に、図2のプレイヤー名クラス定義につ
いての考察に戻ることにする。第2のフィールドは年齢
と名づけられる。このフィールドは、クラスナンバー1
2を持ち、図5において定義された整数と名づけられた
原始クラスのフォームを含む。それにはクラス番号が組
合され、第5図において定義されている。フォームの整
数クラス、クラス12は、図5のクラス定義ごとに、整
数3の詳細を示すデータを有する。整数3は、3個の数
字を有する整数データをフィールドが含むことを意味す
る。第2図におけるクラス1000の最後の2つのフィ
ールドは、姓と名である。これら両方のフィールドは、
ストリング 20 ASCII クラス10と名づけら
れているクラスの原始フォームを含む。クラス10のク
ラス定義が第5図に与えられており、このクラスのフォ
ームの例が20文字の長さであるASCII文字列を含むこ
とを指定している。
【0053】第3図に、プレイヤー住所、クラス100
1と名づけられた他の構造化クラス定義を示す。このク
ラスのフォームの各例は、ストリート、市および州と名
づけられた3つのフィールドを含む。これら3つの各フ
ィールドは、ストリング 20 ASCII、クラス1
0、と名づけられているクラスの原始フォームを含む。
また、クラス10に対するクラス定義が第5図に与えら
れ、20文字のASCIIストリングのデータ表現を指
定する。
【0054】構造化クラスフォームのネスティングの例
が、図4に示されている。図4は、トーナメントエント
リィ、クラス1002、と名づけられているクラスにお
けるフォーム例についてのクラス定義である。このクラ
スにおけるフォームの各例は、トーナメント名、プレイ
ヤー、アドレスと名づけられた3つのフィールドを含
む。トーナメント名フィールドは、第5図に定義されて
いるストリング 20ASCII、クラス10、と名づ
けられている原始クラスのフォームを含む。プレイヤー
と名づけられているフィールドは、第2図に示されてい
るフォーマットと意味特徴を有するプレイヤー名、クラ
ス1000、と名づけられているクラスの構造化フォー
ムの例を含む。アドレスと名づけられているフィールド
は、プレイヤーアドレス、クラス1001、と名づけら
れている構造化クラスの構造化フォームの例を含む。プ
レイヤーアドレスは、第3図のクラス定義において与え
られているフォーマットと意味特徴を有する。
【0055】図4のクラス定義は、フォームのネスティ
ングをどのようにして行うことができるかを示すもので
あって、フォームの各フィールドはフォーム自体であ
り、あらゆるフォームは、原始としてただ1つのフィー
ルドを有することも可能であり、構造化して複数のフィ
ールドを有することも可能である。言いかえると、フォ
ーム例は、必要な数のフィールドを有することができ、
各フィールドは必要な数のサブフィールドを有すること
ができる。更に、各サブフィールドは、必要な数のサブ
−サブフィールドを有することができる。このネスティ
ング構造は、任意の数のレベルにわたって進められる。
このようなデータの構造により、種々の複雑さを持つデ
ータを、容易に表現し、かつ取扱うことができるように
なる。
【0056】次に、トーナメントエントリィ、クラス1
002、として名づけられたフォームクラスのフォーム
例を、図6に示す。このフォーム例は、オブジェクトと
してメモリに記憶されている。データブロック38は、
これがトーナメントエントリィと名づけられている構造
化クラスのフォームの例であることを示す構造化クラス
番号1002を含む。データブロック40は、このクラ
スのフォームが3つのフィールドを有することを示す。
これら3つのフィールドは、それらのフィールド内のフ
ォームのクラス番号を含んでいる、42、44、46で
示されているデータブロックを有する。第1のフィール
ドが図5に示されているようなクラス10のフォームを
含むことを、データブロック42は示す。クラス10フ
ォームは、図5においてクラス10に対するクラス定義
で定義されているASCII文字の20文字列を含んだ原始
フォームである。このフォームの例におけるASCII文字
の実際の列が48で示され、これはU.S.オープンテ
ニストーナメントに対するトーナメントエントリィであ
ることを示している。データブロック44は、第2のフ
ィールドが、クラス1000の構造化フォームの例であ
るフォームを含んでいることを示している。このクラス
定義を参照することにより、このクラスがプレイヤー名
と名づけられていることが示される。データブロック5
0は、このクラスの構造化フォームが4つのサブフィー
ルドを含むことを示す。これらのフィールドは、データ
ブロック52、54、56、58に記録されているクラ
スのフォームを含む。これらのフィールドは、フィール
ド44のサブフィールドである。第1のサブフィールド
は、データブロック52を有しており、このサブフィー
ルドが原始クラス11のフォームを含むことを示す。こ
のクラスのフォームは、図5において、1つの小数点を
有する浮動小数点の2桁の数を含んでいるものとして示
されている。このフォーム例に対する実際のデータが6
0で示され、このプレイヤーのエントリィ評点が3.5
であることが示されている。第2のサブフィールドはデ
ータブロック54を有し、このサブフィールドは原始ク
ラス12のフォームであることを示す。このクラスのク
ラス定義は、このクラスが整数と名付けられ、整数デー
タを含むことを示している。図2に示されるクラス10
00のクラス定義は、ブロック62で示されるこの整数
データがプレイヤーの年齢であることを示している。フ
ィールド名についてのクラス定義意味データは、フォー
ム例には格納されていないことに注目されたい。フォー
マット情報または型情報だけが、各フィールドのクラス
IDのフォーム中のフォーム例に格納される。
【0057】第3のサブフィールドは、データブロック
56を有し、このサブフィールドがストリング 20
ASCIIと名付けられた原始クラス10のフォームを
含むことを示している。このサブフィールドは、図2に
示されている、クラスプレイヤー名、クラス1000、
のフォームの姓フィールドに対応している。原始クラス
10クラス定義は、この原始クラスの例が20文字のAS
CIIストリングを含むことを指定する。このストリング
は、この例の場合には、プレイヤーの姓を定めている。
図6に示す例においては、プレイヤーの姓は64に示す
ようにブラケット(Blacklet)である。
【0058】最後のサブフィールドは、データブロック
58を有し、20文字のASCIIストリングである原始ク
ラス10の原始フォームをこのフィールドが含んでいる
ことを示している。このサブフィールドは、プレイヤー
の名を含んでいるものとして、クラス1000にクラス
定義される。このASCIIストリングが66として示され
ている。
【0059】クラス1002のフォーム例における第3
のフィールドは、データブロック46を有する。このデ
ータブロックは、このフィールドが構造化クラス100
1の構造化フォームを含むことを示す。このクラスのク
ラス定義は第3図に与えられており、このクラスがプレ
イヤー アドレスと名付けられていることを示してい
る。データブロック68は、このフィールドが、70、
72、74で示されるクラス番号のフォームを含む3つ
のサブフィールドを有しすることを示している。これら
の各サブフィールドは、図5において定義されている原
始クラス10のフォームを含む。したがって、これらの
各サブフィールドは、20文字のASCIIストリングを含
む。これら3つのフィールドの内容は、クラス1001
についてのクラス定義において定義され、それぞれ、フ
ィールド44において名づけられたプレイヤーのアドレ
スに対するストリート、市および州である。これらの3
文字ストリングが、それぞれ76、76、80で示され
ている。
【0060】図7には、このクラスのフォーム例とクラ
ス定義との間における、意味情報、フォーマット情報、
実データの区分が示されている。フィールド名と、フォ
ーマット情報、型情報とは、ボックス82に示されてい
るようにクラス定義中に格納される。フォーマット情報
や型情報(クラスIDのフォームにおいて)と、実際の
データまたはフィールド値は、ボックス84に示すよう
に、フォーム例に格納される。たとえば、図6に示され
ているトーナメントエントリー、クラス1002のフォ
ーム例において、第1フィールドの実データは、ブロッ
ク48で示されるものであるにもかかわらず、第1フィ
ールドのフォーマットデータはブロック42に記憶され
たデータとなっている。本質的には、クラス番号やクラ
スIDは、通信インターフェイスにより、その原始クラ
スのフォーム例におけるデータの種類に対する仕様に等
しくされる。したがって、通信インターフェイスは、ク
ラス定義をアクセスする必要なしに、フォーム自体の例
に格納されているフォーマットデータだけを用いて特定
のフォーム例に対してフォーマットオペレーションを実
行できる。これにより、処理速度の低下をもたらすディ
スクアクセス、ネットワークアクセスを含むクラス定義
へのアクセスの必要性が無くなり、フォーマットオペレ
ーションの速度が向上する。フォーマット型オペレーシ
ョンは、外部プロセス内のデータ交換における全ての動
作の集りを有するから、データ構造と、ここで定義され
ているデータ構造を取扱うためのプログラムのライブラ
リィとは、外部プロセスと外部コンピュータの間のデー
タ交換の効率を大幅に向上させる。
【0061】たとえば、第6図に示されているフォーム
例がデジタル・イクイップメント・コーポレーション(D
igital Eguipment Corporration)(DEC)製のコンピュー
タで実行されるプロセスによって発生され、したがって
テキストがASCII文字で表わされるものと仮定する。ま
たこのフォームは、アイビーエム(IBM)コンピュータで
実行されているプロセスへ送るべきものであると仮定す
る。アイビーエムコンピュータでは、文字ストリングは
EBCDICコードで表わされる。更に、それら2台のコンピ
ュータがイーサネット通信プロトコルを用いてローカル
エリアネットワークにより結合されているものと仮定す
る。
【0062】この転送を行うために、いくつかのフォー
マットオペレーションを行わねばならない。これらフォ
ーマットオペレーションは、DECコンピュータが10
で示されているホスト1で、アイビーエムコンピュータ
が12で示されているホスト2であると仮定して、第1
図を参照することにより最もよく理解できる。
【0063】第6図に示すフォーム例をアプリケーショ
ン16からアプリケーション18へ転送するための第1
のフォーマットオペレーションは、第6図に示されてい
るフォーマットから、ネットワーク14を介する転送に
適当なパックされたフォーマットへの交換である。ネッ
トワークは、一般に、端と端を一緒にしてパックされた
複数のバイトと、それらのバイトに先行するヘッダ情報
の多数のバイトとを含むデータブロックで構成されたメ
ッセージに対して作動する。このヘッダ情報は、メッセ
ージの長さ、宛先アドレス、発信元アドレス等のような
ものと、メッセージの終りに附された誤り訂正コードと
を含む。実際のデータブロックの始りと終りをマークす
るためにデリミタが用いられる場合もある。
【0064】この仮定した転送において実行せねばなら
ないであろう第2のフォーマット動作は、ネットワーク
14を介して転送するために必要なパックされたフォー
マットから、アプリケーション18とホストコンピュー
タ12により用いられるフォーマットへの変換である。
【0065】フォーマットオペレーションは通信インタ
ーフェイスのフォームマネージャーモジュールによって
行われる。例えば、仮定的な転送における最初のフォー
マットオペレーションは、第1図のフォームマネジャー
モジュール86により行われ、一方、仮定的な転送にお
ける第2のフォーマットオペレーションはデータ交換コ
ンポーネント88におけるフォームマネジャーモジュー
ルにより実行される。次に、フォーマットオペレーショ
ンの実行においてフォームマネージャーモジュールによ
り行われるオペレーションの流れ図が示されている図8
を参照する。通信インターフェイスのフォームマネジャ
ーモジュールにおけるルーチンの各種の機能についての
詳細が、ここに含まれている通信インターフェイスの各
種のライブラリィルーチンについての機能の仕様中に見
出される。図8のプロセスは、本発明の通信インターフ
ェイスの中のデータ交換コンポーネントのフォームマネ
ジャーモジュール中のソフトウェアプログラムにより実
現される。第1のステップはアプリケーションから、ま
たは通信インターフェイス中の別のモジュールからフォ
ーマット変換呼出しを受けることである。このプロセス
は、ブロック90と図1の経路92、94とにより表現
されている。同じ種類の呼出しを、図1におけるホスト
コンピュータ12に対してアプリケーション18または
通信コンポーネント96により、データ交換コンポーネ
ント88中のフォームマネージャーモジュールに対して
行うことができる。その理由は、これは、本発明の通信
インターフェイスにより全てのクライエントアプリケー
ションへ提供される標準的な機能すなわち「ツール」だ
からである。あらゆるクライエントアプリケーション
は、図1のインターフェイス20のような通信インター
フェイスに結合される。典型的には、図1のモジュール
30、96のような通信コンポーネントからフォームマ
ネージャモジュールへ与えられるフォーマット変換コー
ルは、フォーマット1のフォームを送るタスクを与えら
れたサービス統制モジュールからフォーマット2を使用
する外部アプリケーションへのコールである。通信イン
ターフェイスの中の別のモジュールからのフォーマット
変換コールについての別の同様なシナリオは、サービス
統制が、外部フォーマットであって、クライエントアプ
リケーションのフォーマットへ変換する必要がある別の
アプリケーションまたはサービスからフォームを受けた
時である。
【0066】フォーマット変換コールには、パラメータ
が組合され、それらのパラメータはフォームマネジャー
へ与えられる。これらのパラメータは、「取出し」フォ
ーマットと「受入れ」すなわち「ターゲット」フォーマ
ットを指定する。
【0067】ブロック98は、指定された変換のための
適切なターゲトフォーマット特有のテーブルをアドレッ
シングするプロセスを表わす、すなわち、指定された
「取出し」フォーマットが、各原始「取出し」フォーマ
ットクラスに対する適切なターゲットフォーマットにつ
いての詳細を与えて、変換を完了させる専用のテーブル
を有する。好適な実施例においては、あらゆる変換オペ
レーション中に順次アドレスされる2つのテーブルがあ
る。別の実施例においては、それら2つのテーブルを組
合わせることができる。好適な実施例において用いられ
る2つのテーブルの例が、図9〜図11に示されてい
る。図9は、DECマシンからX.409フォーマット
へ変換するための特定のフォーマット変換テーブルを示
す。図10は、X.409フォーマットからアイビーエ
ム・マシンのフォーマットへの変換のためのフォーマッ
ト特有変換テーブルを示す。図11は、各「取出し」−
「受入れ」フォーマット対に対して特定の変換を行う通
信インターフェイスライブラリィ中の変換プログラムの
名称を識別する全体的な変換手順表を示す。
【0068】図9と図10のテーブルは、図1のアプリ
ケーション16からアプリケーション18へフォームを
送るために必要なテーブルの全てではないであろう。ア
プリケーション16のフォーマットから、DECマシン
フォーマットへ変換するため、あるいは、アイビーエム
・マシンフォーマットからアプリケーション18のフォ
ーマットへの変換のために必要な別のフォーマット特有
のテーブルもある。しかし、通信インターフェイスのフ
ォームマネジャーモジュールにより実現されるフォーマ
ット変換プロセスの全体的な概念を、図9〜図10を参
照にして説明できる。
【0069】アプリケーション16からアプリケーショ
ン18へフォームを送るプロセスにおいて必要な第1の
変換は、DECマシンフォーマットから、イーサネット
(商標)ネットワークを介して送るために適当なパック
されたフォーマットへの変換であると仮定するこの場合
には、ステップ90で受けられたフォーマット変換コー
ルは、ブロック98により表わされているプロセスを行
うフォームマネージャーモジュール内のソフトウェアに
よる呼び出し処理である。
【0070】この仮定した例においては、このルーチン
によりアクセスするための適切なフォーマットに特有の
テーブルが、ブロック90により受けられた元のフォー
マット変換コールにおける「取出し」フォーマットと
「受入れ」フォーマットの各パラメータにより決定され
る。これにより、図9に示されている表がアクセスされ
る。フォーマット変換コールは、変換すべきフォームの
アドレスの識別も行う。
【0071】次のステップがブロック100により示さ
れている。このステップは、元のフォーマット変換コー
ルにおいては識別されるフォームをアクセスすること
と、フォームの原始クラスを含んでいる第1のフィール
ドを見付けるためにフォームを探索することを含む。い
いかえると、サブフィールドを有する別の構造化フォー
ムとは異なって、フィールドが実際のデータを格納して
いることを見出されるまで、レコードが探索される。
【0072】図6に示されているフォームの場合には、
フォームの原始クラスを格納する第1のフィールドはフ
ィールド42である。図9の表の「取出し」列は、適切
なエントリィが見出されるまで、クラス番号10を用い
て探索される。この場合には、10の「取出し」クラス
に対するエントリィが、原始クラス25に対するクラス
定義中で指定されているフォーマットは「受入れ」フォ
ーマットであること示す。「取出し」フォーマットを用
いて「受入れ」フォーマットを探索するこのプロセスが
図8のブロックで示されている。図9に示すテーブル
を、ブロック102で示されているステップを行うルー
チンのコードに「接続(hardwired)」できる。
【0073】あるいは、図9のテーブルを、図1のネッ
トワークファイルシステム24のどこかに格納されるデ
ータベースまたはその他のファイルとすることができ
る。その場合には、図8のステップ102を実行するル
ーチンは、図9のテーブルをアクセスするためにネット
ワークのアドレスとファイル名を知る。
【0074】次に、図8のブロック104に示されてい
るプロセスは、図11に示されている一般的な変換手順
をアクセスすることによって行われる。これは、フォー
ムの1つの原始クラスをフォームの別の原始プログラム
へ変換する実際の作業を実行するフォームマネジャー中
の変換プログラムを識別するテーブルである。この表は
あらゆる「取出し」−「受入れ」フォーマット対のため
の1つのエントリィで編成される。「取出し」−「受入
れ」対に対するテーブル中のエントリィは、変換の実際
の作業を行う変換ルーチンの名称を含む。ブロック10
4に示されているプロセスは、ステップ102における
フォーマット特有の変換テーブルをアクセスすることか
ら決定される「取出し」−「受入れ」対をとり、「取出
し」−「受入れ」一致を有するエントリィが見出される
まで、一般的な変換手順テーブルのエントリィを検索す
る。この場合には、図11のテーブルの一番上から3番
目のエントリィが、図9へのアクセスにおいて見出され
た「取出し」−「受入れ」フォーマット対に一致する。
このエントリィは読み出され、この変換を行うためのル
ーチンの名称が「ASCII ETHER」であると決定される。
(多くの実施例においては、名称ではなくて、ルーチン
のメモリアドレスがテーブルに格納される。)図8のブ
ロック106は、ブロック104で識別された変換プロ
グラムを呼出し、この変換ルーチンを行って、ステップ
100で選択したフィールドの内容を、ステップ102
で識別された「受入れ」フォーマットすなわちターゲッ
トフォーマットへ変換することを行うプロセスを示す。
仮定した例においては、ルーチン「ASCII ETHER」が呼
出され、ステップ106により実行される。このルーチ
ンを呼出すと、ステップ100のプロセスにおいて選択
されたフィールド、すなわち、図6に示すフォーム例の
フィールド42に格納されている実際のデータを供給し
て、テキストストリング「U.S.オープン」がパック
されたイーサネットフォーマットへ変換される。
【0075】次に、ブロック108のテストが行われ、
フォーム原始クラスが処理されたかどうかを判定する。
もし処理されたとするとフォームのフォーマット変換は
終了され、ブロック110により示されているようにフ
ォーマット変換ルーチンを出る。
【0076】フォームの原始クラスを含んでいる処理す
べきフィールドが残っていれば、ブロック112で示さ
れているプロセスが実行される。このプロセスはフォー
ムの原始クラスを含んでいる次のフィールドを見つけ
る。
【0077】その後、フォームの原始クラスを含んでい
る全てのフィールドが適切な「受入れ」フォーマットへ
変換されるまで、ブロック102、104、106、1
08により示されている処理ステップが実行される。
【0078】上記のように、フォームの原始クラスを含
んでいるフィールドを探索するステップは、変換すべき
フォームを通って直列に進む。次に出合うフィールドが
構造化クラスのフォームを含んでいるとすると、フォー
ムの原始クラスを内部に有する最初のフィールドが検索
されるまで、フォームのそのクラス自体が探索される。
全てのフィールドが処理され、フォームに格納されてい
る全てのデータが適切なフォーマットに変換されるま
で、その全てのフィールドに対するあらゆるネスティン
グレベルにわたってそのプロセスは続く。これがどのよ
うにして行われるのかの例として、図6のフォームにお
いては、第1のフィールド42の処理の後で、図8のブ
ロック112により示されているプロセスがフィールド
44に次に遭遇する(フィールドは、そのフィールドに
格納されているフォームに対するクラスIDと実際のデ
ータであり、またはそのフィールドに格納されているオ
ームのフィールドとサブフィールドである)。図6によ
り表わされているフォームの特定のクラスにおいては、
いくつかのサブフィールドで構成されている構造化フォ
ームを第2のフィールド44が含むことに注目された
い。それから処理はクラス1000の構造化フォームを
アクセスする。そのフォームは、第2のフィールドによ
り格納され、原始クラスのフォームを含んでいるそれの
第1フィールドを探すまで、その構造化フォームの中を
直列に進む。図6の仮定例においては、第1のフィール
ドは52におけるクラス番号11により示されるサブフ
ィールドである。それから、ブロック102により示さ
れているプロセスは、図9のテーブル中の「取出し」列
内のクラス11を探索し、ターゲットフォーマットが原
始クラス15のクラス定義により指定されることを決定
する。それから、この「取出し」−「受入れ」対11〜
15が、図11のテーブルのエントリィと比較され、一
致するエントリィが見い出される。その後、図8のブロ
ック106のプロセスが、「Floatl ether」とよばれる
変換プログラムを実行し、図6の60におけるデータの
ブロックを適切なイーサネット・パックされたフォーマ
ットへ変換する。それから、このプロセスは全てのネス
ティングレベルにわたって続行される。次に、典型的な
意味依存オペレーションについての流れ図が示されてい
る図12を参照する。フィールド名が既知で、フォーム
例のアドレスが既知であるならば、外部アプリケーショ
ンにより発生されたフォームの例の特定のフィールド中
のデータを1つのアプリケーションが得ることができる
ようにすることにより、アプリケーションの切離しを許
す。本発明の通信インターフェイスは、好適な実施例に
おいては、フィールドを得る呼出し(getfield call)の
フォームでクライエントアプリケーションから意味依存
オペレーション要求を受ける。その好適な実施例におい
ては、全てのプロセスは、同じことを意味するデータフ
ィールドに対する同じフィールド名を用いる(フォーム
の編成、または外部プロセスにより発生されたフォーム
でのフィールドのデータ表現とは無関係に)。別の実施
例においては、俗称テーブル(aliasing table)または同
義語テーブル(synonym table)あるいはデータベースが
用いられる。そのような実施例においては、フィールド
を得る呼出しを用いてクラスマネジャー内の同義語テー
ブルをアクセスし、要求されたフィールド名の全ての同
義語を探す。求められているフィールド名と同義である
全てのフィールド名が戻される。それから、クラスマネ
ジャーは、求められているフィールド名または同義名の
いずれかとの一致のためのクラス定義を探し、一致フィ
ールドを有するフィールドを検索する。
【0079】次に好適な実施例の説明へ戻って、このよ
うなフィールドを得る呼出しは、クライエントアプリケ
ーションにより、図1のモジュール122のようなフォ
ームクラスマネジャーモジュールに対して直接行うこと
ができ、またはそれらのモジュールを通信コンポーネン
トまたはフォームマネジャーモジュールにし、それらの
モジュールによりフォームクラスマネジャーへ転送させ
ることができる。フォームクラスマネジャーはフォーム
クラス定義を作成し、破棄し、取扱い、格納し、読み出
す。
【0080】フィールドを得る呼出しは、含まれている
フォームのアドレスと、対とするフォーム中のフィール
ド名とをフォームクラスマネジャーへ供給する。その要
求を受けるプロセスが図12のブロック120により示
されている。ブロック120は、プログラムにより、す
なわち、要求しているアプリケーションにより、または
対象とするフォームに対するクラス定義を含めたクラス
定義を見出すことができるデータベースの場所を告げら
れることによって、クラスマネージャーにクラス定義が
与えられるようにするプロセスも示すものである。図1
のネットワークファイルシステム24にはいくつかのデ
ータベースすなわちファイルを設けることができ、それ
にクラス定義が格納される。対象とするフォームに対す
るクラス定義が格納される特定のファイルの場所をフォ
ームクラスマネジャーへ与えることが必要なだけであ
る。
【0081】次に、ブロック122に示すように、クラ
スマネジャーモジュールは、元の呼出しにおいて識別さ
れたフォームクラスに対するクラス定義をアクセスす
る。
【0082】それから、クラスマネジャーはクラス定義
フィールド名を検索して、元の呼出において与えられた
フィールドの名の一致を見出す。このプロセスがブロッ
ク124に示されている。
【0083】対象とするフィールドをクラス定義中で探
した後で、クラスマネジャーは相対的なアドレスポイン
タを、このクラスのフォーム例中の対象とするフィール
ドへ戻す。このプロセスが図12のブロック126に示
されている。クラスマネジャーにより戻されるこの相対
的なアドレスポインタは、図2、図4、図6を参照とす
ることによって最も良く理解される。フィールドを得る
呼び出しを行ったアプリケーションが、特定のプレイヤ
ーの年齢の決定に興味をもったと仮定する。フィールド
を得る要求は、図6に示すように、プレイヤーのブラケ
ット(Blacktt)に対するクラス1002のフォーム例の
ためのアドレスを識別する。又、フィールドを得る要求
には対象とするフィールドの名称、すなわち、「年令」
も含まれる。それからクラスマネジャーは対象とするフ
ォームの例をアクセスし、フォームのこのクラスへ加え
られる特定のクラス識別子又はクラス定義を示すクラス
番号を読み出す。それから、クラスマネジャーは、図4
に示すように、クラス1002のためのクラス記述子を
アクセスし、クラス定義を見つける。次に、クラスマネ
ジャーは、クラス定義1002の各フィールドに対する
クラス定義をアクセスし、元のフィールドを得る要求中
のフィールド名を、クラス1002に対するクラス定義
を構成する種々のクラス定義中のフィールド名と比較す
る。言換えると、クラスマネジャーは、クラス10、
000及び1001に対するクラス定義中のフィールド
名を対象とするフィールド名「年令」と比較する。図2
からわかるように、クラス1000についてのクラス定
義において一致が見出される。図6に示されている特定
のレコードフォーマットに対して、「年令」フィールド
は、データブロック62である。このデータブロック
は、レコードのスタートから10番目のデータブロック
である。それからクラスマネジャーは図12のブロック
126内の10の相対的なアドレスポインタを戻す。こ
の相対的なアドレスポインタは、元のフィールドを得る
呼出を行ったクライエントアプリケーションへ戻され
る。それからクライエントアプリケーションは、データ
を得る呼び出しをフォームマネジャーモジュールへ発
し、対象とするフォームの特定の例内の希望のフィール
ドの相対的なアドレスをフォームマネジャーモジュール
へ供給する。フォームマネジャーモジュールは、元のフ
ィールドを得る呼出がフォームマネジャーモジュールを
通ってきて、フォームクラスマネジャーへ戻されるなら
ば、それが既に有するであろう対象とするフォーム例の
アドレスも知らなければならない。フォームマネジャー
モジュールが対象とするフォームの特定の例のアドレス
を有しないとすると、フォームマネジャーはクライエン
トアプリケーションからそれを要求する。データを得る
呼出を受け、相対的なアドレスと、対象とするフォーム
の例のアドレスとを得た後で、フォームマネジャーはフ
ォームのこの例をアクセスし、それをクライエントへ戻
す。このデータを得る呼び出しを受けるプロセスと適切
なデータの返送を行うプロセスは、図12において、ブ
ロック128によって示されている。
【0084】通常、クラスマネージャーモジュールは、
ホストマシンのRAM中で行う意味依存オペレーション
に必要なクラス定義を、クラス記述子として記憶する。
クラス定義は、意味の詳細とクラスを定義するフォーメ
ーション情報である。クラス記述子は、クラス定義の具
体的なメモリオブジェクトである。クラス記述子は、少
なくとも2つの方法で記憶される。ランダム・アクセス
・メモリ(RAM)において、クラス記述子は、機械に特有
のフォーマットおよびクラス定義を作成したクライエン
トアプリケーションに特有のフォーマットでフォームと
して記憶される。ディスクもしくはテープに記憶された
クラス記述子は、テキストのASCIIストリングとして記
憶される。
【0085】クラスマネージャモジュールが意味依存オ
ペレーションを行うことを要求すると、RAMに記憶さ
れたクラス記述子を検索し、適当なクラス記述子が存在
するかどうかを決定する。もしあれば、そのクラス記述
子が、図12の上記オペレーションの実行に使用され
る。適当なクラス記述子がなければ、クラスマネージャ
が入手する。これは、図1のシステムファイル24に記
憶されたクラス記述子の既知のファイルを検索すること
により、あるいはクラス定義を作成した外部アプリケー
ションに対し、要求されたモジュールのクラス定義を送
るように要求することにより、行われる。クラス記述子
を記憶したファイルの位置は、クライエントアプリケー
ションに知られており、クラスマネージャモジュールも
このアドレスを記憶している。意味依存のオペレーショ
ンの要求には、適当なクラス記述子が見出されるであろ
うファイルのアドレスが含まれることがある。要求に上
記のようなアドレスが含まれていない場合には、クラス
マネージャクラス記述子の記憶内容を介して、さらにシ
ステム記述子ファイルの位置を確認するクラスマネージ
ャによって記憶されたレコードの中に確認されたファイ
ルを介して見つけ出す。
【0086】クラスマネージャがクラス記述を作成した
外部のアプリケーションからクラス記述子を要求すれ
ば、外部アプリケーションは、クラスマネージャに対し
て、ネットワークから要求しているクラスマネージャも
しくは要求モジュールに対する適当なクラス記述子を送
るような要求を送る。クラス記述子は、他の形式で送ら
れ、要求された意味依存オペレーションを行うための
ラスマネージャを要求する。
【0087】クラスマネージャはクラス記述子を得るた
めにファイルにアクセスしなければならない場合、クラ
ス記述が含まれておりパックされたASCII表現をRAM
に記憶する本来の型に変換しなければならない。これ
は、ASCIIテキストを種々のフィールド名、フィールド
内容の詳細、クラスマネージャに分けて細かに調べるこ
とによって行われる。
【0088】図13A、図13Bは、フォームとしてメ
モリに定義されたクラス記述子のクラス定義、構造、編
成を示している。図13Aに与えられたクラス定義は、
パーソンクラスと名付けられ、姓と名の2つのフィール
ドのみを有する。これら各フィールドには、20文字の
ASCIIストリングが記憶される。
【0089】図13Bは、クラス番号1021を有する
構造化フォームデータブロック140を有している。第
1のフィールドは、この例では、パーソンクラスという
クラス名を示すASCIIストリングを含むと指定された原
始クラスを含んでいる(データブロック146)。第2
のフィールドは、番号2、データブロック148が付さ
れ、データブロック150と指定された原始クラスであ
る。第2フィールドは、クラス1021のクラス定義に
より定義され、このフォームクラスが、原始(真)であ
るか構造化されているか(偽)が決定されている。この
例においては、データブロック150は偽であり、クラ
ス1021が構造化クラスであることを示している。第
3フィールドは、データブロック152で示され、クラ
ス番号112が付与された構造化クラスである。クラス
1021のクラス定義は、第3フィールドが、フィール
ド名と詳細をクラス定義に与えることにより構造化クラ
スであることを定義している。データブロック154
は、クラス112に表われる2つのフィールドを示して
いる。クラス112の第1のフィールドは、それ自身ク
ラス番号150、データブロック156を与えられた構
造化クラスであり、2つのサブフィールド、データブロ
ック158を有している。
【0090】第1サブフィールドは、原始クラス15、
データブロック160であり、クラス150として指定
され、クラス1021の第1フィールド名を含むように
されている。データブロック162は、クラス1021
のファーストフィールド名を与える。
【0091】第2サブフィールドは、原始クラス15、
データブロック164であり、クラス150とクラス定
義されており(図示せず)、クラス1021の第1フィ
ールド中に記憶された実データ(データブロック16
4)を指定するASCIIストリングが含まれている。クラ
ス112の第2フィールドは、クラス112で定義さ
れ、クラス150のフォーム、データブロック168と
データブロック170を有している。データブロック1
68は、2つのフィールドを持ち、データブロック17
0は、クラス1021の次のフィールドの名前を与える
とともに、第2フィールドに記憶された実データの表現
の型を指定する。
【0092】
【主題に基づくアドレッシングによるデータ分配および
サービスプロトコルの切り離しおよびサービス統制プロ
トコル層の使用】次に、切り離しの2つの重要なフォー
ムを実現するために協同する各種のソフトウェアモジュ
ールと、ファイルと、ネットワーク、コンピュータと
のブロック図が示されている図14を参照する。切り離
しのそれらのフォームはデータ分配切り離しおよびサー
ビスプロトコル切り離しである。データ分配切り離し手
段は、希望のサービスを行うサーバーに対するネットワ
ークアドレスを知る必要からクライエントアプリケーシ
ョンを自由にする。したがって、たとえば、ダウ・ジョ
ーンズ・ニュース・サービス(Dow Jones News Servise)
により供給される情報を特定のアプリケーションが知る
必要があるものとすると、クライエントアプリケーショ
ンは、そのサーバーおよびどの場所がダウ・ジョーン
・ニュース・サービスから生のデータを供給しているか
を知る必要がない。
【0093】データ交換が望まれるサーバー、サービ
ス、その他のアプリケーションにより用いられる通信プ
ロトコルを、クライエントアプリケーションが知る必要
がないことをサービスプロトコル切り離しは意味する。
【0094】データ分配の切り離しは、図14における
通信モジュール30により実現される。通信コンポーネ
ントは、主題マッパ180を実現するソフトウェアルー
チンのライブラリィと、主題に基づくアドレッシングを
実現するための複数のサービス統制とで構成される。サ
ービス統制182、184、186は、主題に基づくア
ドレッシングに含まれているサービス統制の例である。
【0095】主題に基づくアドレッシングは、サービス
を修正すること、又は別のサービスで置き換えて、情報
の受手に衝撃を与えることなしに等しい情報を提供す
る。情報供給元から情報の受手を切り離すことにより、
従来のサービス向けモデルよりも高度のモジュール化
と、融通性を持たせることができる。
【0096】主題に基づくアドレッシングは、ホストコ
ンピュータ10で実行しているクライエントアプリケー
ション16により、主題マッパ180に対する申込みコ
ール188で開始される。申込みコールは特定の主題に
関する情報に対する要求である。特定の主題が株、IB
M、ニュースであると仮定する。この申込みコールは、
2つのパラメータを主題マッパ180へ送る。それらの
パラメータの1つは主題、株、IBM、ニュースであ
る。他のパラメータは、主題についてのデータを送らね
ばならないクライエントアプリケーション16における
呼出しルーチンの名称である。主題マッパ18に対する
申込み呼出しは、標準的な手順呼出しである。
【0097】この主題マッパの目的は、サービスのため
のネットワークアドレスを決定すること、およびそれら
のサービスに対して通信を決定するために適切なサービ
ス統制ルーチンを呼出すことである。申込みコールにお
ける主題についての情報を提供するサービスの場所を見
つけるために、主題マッパ180は、線190により表
わされている要求をディレクトリサービスコンポーネン
ト192へ送る。ディレクトリサービスコンポーネント
は、ネットワークの結合されている別のコンピュータで
実行されている別のプロセスであって、実際に別のコン
ピュータ又はホストコンピュータ10で実行させること
ができる。ディレクトリサービスルーチンは、その主題
についての情報をどのサービスが供給するのか、それら
のサービスがどこにあるのか、および通信のためにそれ
らのサービスにより用いられるサービス統制を示すデー
タベース、又はサービスレコードとよばれるレコードの
テーブルを維持する。ディレクトリサービスコンポーネ
ント192は、主題マッパ180から送られた要求を受
け、そのテーブルを通じて一致を探すためにその要求の
主題パラメータを用いる。即ち、ディレクトリサービス
コンポーネント192は、希望の主題についての情報を
提供する特定のサービスを示すサービスレコードを探
す。次にそのサービスレコードは、線194により示さ
れているように主題マッパへ送り帰される。ディレクト
リサービスコンポーネントは、多数のサービスが希望の
主題についての情報を供給するものとすれば、いくつか
の一致を見出すことができる。
【0098】線194により示されている主題マッパへ
送り返されるサービスレコードは、多くのフィールドを
含む。サービスレコード内での求められる2つのレコー
ドは、希望の主題についての情報を提供するサービスの
名称と、そのサービスにより用いられるサービス統制の
名称である。供給できる他の選択できるフィールドは、
そのサービスを実施するサーバーの名称とそのサーバー
のネットワークにおける場所である。
【0099】一般に、ディレクトリサービスコンポーネ
ントは、主題サービスが存在する全てのサービスレコー
ドを供給する。その理由は、全てのサービスにより主題
へ提供される情報中には完全な重なり合いが存在しない
ことがあるからである。更に、各サービスは別のサーバ
ーにより実行される。そのサーバーは、同じネットワー
クによりクライエントアプリケーションへ結合してもよ
く、又は結合しなくともよい。そのような多数のネット
ワーク経路とサービスが存在するものとすると、主題が
一致している全てのサービスレコードを主題マッパへ送
り返すことにより、ネットワーク、サーバー又はサービ
スのいずれかが故障した時に、それらを切り換える能力
を通信インターフェイスに持たせられる。
【0100】上記のように、主題マッパ180は全ての
サービスと通信を行うように機能して、希望の主題につ
いての情報を提供する。多数のサービスレコードがディ
レクトリサービスモジュール192から返送されたとす
ると、主題マッパ180はそれらのサービスの全てと通
信を設定する。
【0101】サービスレコードを受けると、主題マッパ
は識別された各サービス統制を呼出して、主題と、その
サービス統制へ加えることができるサービスレコードを
それへ送る。図14には、ただ3つのサービス統制18
2、184、186が示されているが、実際のシステム
では3つよりも多くのものを設けることができる。ディ
レクトリサービスコンポーネント192が存在しない
か、一致を見出さないとすると、主題マッパ180へは
サービスレコードは戻されない。この場合には、主題マ
ッパは省略時サービス統制を呼出して、それと主題およ
び無効(null)レコードを送る。
【0102】各サービス統制は、ソフトウェアモジュー
ルであって、そのサービス統制に関連する特定のサービ
スと通信するために最適にされた特注のサービスを含
む。
【0103】主題マッパ180により呼出された各サー
ビス統制は、それへ送られたサービスレコードを調べ、
通信を行うべきサービスの場所を決定する。考察してい
る特定の仮定した例においては、ディレクトリサービス
モジュール192によりただ1つのサービスレコードが
戻されていること、そのサービスレコードがサーバー1
96で行われているダウジョーンズニュースサービスを
識別すること、および182においてサービス統制A
を、サーバー196におけるダウジョーンズニュースサ
ービスと通信するために適切なサービス統制として識別
する。それから、サービス統制Aは、要求メッセージを
線198で示されているようにサーバー196へ送る。
この要求メッセージは、主題をサービスへ送り、サービ
スレコード全部又は一部を送ることができる。
【0104】サーバー196は要求メッセージを処理
し、実際に、希望の主題についての情報を供給できるか
どうかを判定する。それからそれは、線200により示
されている応答メッセージを送り返す。
【0105】通信がそのようにして、ひとたび設定され
たとすると、要求されている主題に関連する情報の全て
の項目を、経路202で示されているように適切なサー
ビス統制へ連続して送る。ここで選択した例において
は、サーバー196で行われるサービスは、サービス統
制182へ送るためにアイビーエムに関連する新しい事
項だけを抽出する。他の実施例においては、サーバー
は、主題による選別を行うことなく全ての情報を通過さ
せるものであってもよい。通信コンポーネント30は、
要求された主題だけを選び出し、要求したアプリケーシ
ョン16に送る。これは、以下に説明するデーモン(dea
mon)によって行われる。また、以下に説明する情報層、
サービス層等のいずれかにて行ってもよい。
【0106】各サービス統制は、異なる挙動をとること
ができる。例えば、184におけるサービス統制Bは、
次の挙動をとることができる。サーバー196で行われ
るサービスは、ダウジョーンズニューサービスの全ての
ニュース事項をネットワーク14で同時通信(放送)で
きる。サービス統制Bの全ての例は、ネットワークを監
視でき、希望の主題に関連するメッセージだけを抽出す
る。多くの異なる通信プロトコルを用いることが可能で
ある。
【0107】182におけるサービス統制Aは、サービ
スにより送られたデータを受け、それをクライエントア
プリケーション16中の名付けられている戻しルーチン
204へ送る。(サービス統制182は、線182で示
されているように主題マッパ180からの最初のメッセ
ージ中の呼戻しルーチンの名称を送った。)名称をつけ
られた呼戻しルーチンは、希望の主題についての情報
で、行うようにプログラムされているものは何でも行
う。
【0108】クライエントアプリケーション16が取消
し指令を主題マッパ180へ明確に送るまでは、データ
は名称をつけられている呼戻しルーチン204へこのよ
うにして流れ続ける。主題マッパ180は、存在してい
る全ての申込みのレコードを保存して、有効である種々
の申込みと取消し指令を比較する。一致が見出されたと
すると、適切なサービス統制に取消し要求が知らされ、
それからこのサービス統制が取消しメッセージを適切な
サーバーへ送る。それからサービスは、その主題につい
てのそれ以上のデータを、取消し要求を送ったサービス
統制に送ることを止める。
【0109】サービス統制が自立しており、主題マッパ
へ結合されないことも可能である。この場合には、サー
ビス統制はアプリケーションへ直結され、申込みコール
はサービス統制に対して直接行われる。違いは、希望の
データを供給するサービスの名称と、サービスをアクセ
スするために用いられるサービス統制の名称をアプリケ
ーションが知らなければならないことである。次に、識
別されたサービスのネットワークアドレスを見つけるた
めにデータベースまたはディレクトリサービステーブル
がアクセスされ、上記のようにして通信が設定される。
このソフトウェアアーテキクチャは、データ分配の切り
離しを行わないが、サービスプロトコルの切り離しを行
い、それによって、データを交換すべきサービスとの通
信インターフェイスの詳細を知る必要からアプリケーシ
ョンを自由にする。
【0110】本発明の通信インターフェイスにより行わ
れる、主題に基づくアドレッシング申込みサービスにつ
いてのより多くの詳細は、下記の通信インターフェイス
仕様の4節に示されている。本発明の通信インターフェ
イスの好適な実施例がその仕様に従って構成される。
【0111】好適な実施例における実際の申込み機能
は、仕様の4節に述べられているTIB消費作成ライブ
ラリィルーチンを実行することにより行われる。TIB
消費作成に対する呼出しは、それへ送られたパラメータ
の特性リストを含む。それの1つが、仕様の4節におけ
る私のメッセージハンドラー(my message handler)と指
定されている呼戻しルーチンである。
【0112】仕様においては、主題に基づくアドレッシ
ング申込みサービス機能がTIBINFOとして示されてい
る。このTIBINFO インターフェイスは、2つのライブラ
リィより成る。最初のライブラリィは、データの需要者
に対するTIBINFO CONSUMEと呼ばれる。第2のライブラ
リィはデータ供給者に対するTIBINFO PUBLISHと呼ばれ
る。あるアプリケーションは、それが消費需要者か、供
給者か、あるいは両方であるかに応じて、一方のライブ
ラリィを含む。アプリケーションは需要者と供給者を同
時に兼ねることができる。
【0113】次に、本発明のインターフェイスとアプリ
ケーション、およびそれらのアプリケーションを結合す
るネットワークの関係のブロック図が示されている図1
5を参照する。第1図におけるブロックの参照番号と同
じものがつけられているブロックは、第1図における対
応するブロックに類似の機能を有する。図15のブロッ
ク図は、好適な実施例のプロセスアーテキクチャを示
す。図15に与えられているプロセスアーテキクチャに
対応するソフトウェアアーテキクチャが、図16にブロ
ックで示されている。
【0114】図15において、図1の通信コンポーネン
ト30は、図15では2つの別々の機能ブロック30
A、30Bとして示されている。すなわち、図1におけ
る通信コンポーネントの機能が、図15のプロセスアー
テキクチャでは2つの機能ブロックに分割される。通信
ライブラリィ30Aは、各クライエントアプリケーショ
ン16へ結合され、バックエンド通信デーモン30Bが
ネットワーク14と通信ライブラリィ30Aへ結合され
る。ホストプロセッサ当り1つの通信デーモンが存在す
ることが一般的である。このホストプロセッサは、図1
5には230で示されているが、図16には全て示され
ていない。図15においては、図1の状況とは異なっ
て、クライエントアプリケーション16と18は同じホ
ストコンピュータ230で実行されることに注目された
い。各クライエントアプリケーションは、通信ライブラ
リィ30Aと96中の各種のライブラリィプログラムの
それ自信のコピーと、データ交換コンポーネント32と
88のフォームライブラリィのそれ自身のコピーとへ結
合される。プログラムのそれらの結合されたライブラリ
ィは共通の通信デーモン30Bを共用する。
【0115】種々のホストプロセッサにおける通信デー
モンは、共同して、マシンの間で確実かつ効率的な通信
を行えるようにする。主題をアドレスされたデータに対
しては、デーモンは、主題によりメッセージを抽出する
ために低レベルのシステムサポートを行うことにより、
それの効率的な送信を助ける。通信デーモンは、エラー
対策、負荷の平均化、ネットワーク効率の改善のため、
種々の通信プロトコルを実行する。
【0116】通信ライブラリィ30Aは、各1組のアプ
リケーション向きの通信に関連する数多くの機能を行
う。例えば、通信ライブラリィは、ASCII主題値よりも
簡潔で、検査が容易である効率的なメッセージヘッダへ
主題を翻訳する。通信ライブラリィは、特定のサービス
例のための目標にされた要求にサービス要求をマップ
し、それらの状態を監視する。
【0117】本発明の通信インターフェイスのデータ交
換コンポーネントは、「フォームライブラリィ」とよば
れるライブラリィとして実現される。このライブラリィ
はクライエントアプリケーションへ結合され、データコ
ンポーネントの全ての中核機能を提供する。フォームラ
イブラリィは、通信ライブラリィとは独立に結合でき、
それの動作のために通信デーモン30Bを要求すること
はない。
【0118】通信デーモンは、2つの役割を果す。サー
ビス例が主題と、この主題に関するデータを送るネット
ワークアドレスを知らされる、上記した主題に基づくア
ドレッシングモードにおいては、通信デーモン30Bは
データを送るべきネットワークアドレスを所有する。こ
のデータは、デーモンによりクライエントアプリケーシ
ョンに結びつけられている通信ライブラリィへ送られ
る。そのクライエントアプリケーションは、データをク
ライエントアプリケーション中の適切な呼戻しルーチン
へ送る。他のモードにおいては、データを供給するサー
ビス例が同時通信モードにあって、多くの異なる主題に
ついてのデータをネットワークにおける全てのデーモン
へ呼出す時に、通信デーモンはネットワーク14から来
るデータを主題により選別する。
【0119】図15におけるブロック231、233、
235は、通信ライブラリィ30Aとフォームライブラ
リィ32中のプログラムにより実現されるインターフェ
イス機能を表わす。TIBINFOインターフェイス233
は、申込みコールとして知られている通信パラダイム(p
aradigm)により、主題に基づくアドレッシングサービス
を行う。このパラダイムにおいては、データ需要者はサ
ービスまたは主題を申込み、需要者が申込みを明確に終
らせる(または障害が起こる)まで、サービスまたは主
題についてのデータの連続した流れを受ける。申込みパ
ラダイムは、株価のような動的に変化する値を監視する
リアルタイムアプリケーションに適する。これとは対称
的に、従来の要求/応答通信(request/reply communica
tion)は、データの需要者が変化を学ぶデータ提供者を
「選ぶ」ことを要するから、そのようなリアルタイムア
プリケーションにはあまり適さない。
【0120】インターフェイス235は、1組のプロト
コルと、図16のマーケットデータ申込みサービス(MDS
S)サブコンポーネント234を含むサービスとに対する
プログラムインターフェイスを構成する。このサービス
統制については後で詳しく説明する。RMDPインターフェ
イス235は、サービスアドレスプロトコルであって、
データを交換するサービスの名称についてデータを知る
ことをクライエントアプリケーションに求める。
【0121】図16に、システムのソフトウェアアーキ
テクチャを示す。分散型通信コンポーネント232は種
々のプロトコルエンジン237、239と241を含ん
でいる。プロトコルエンジンは、サービス統制プロトコ
ルをある特定のネットワークプロトコルにインタフェー
スする通信プロトコルをカプセル化する。各プロトコル
エンジンは、信頼性も効率も高い通信網を確立するのに
要するあらゆるロジックをカプセル化する。各プロトコ
ルエンジンは、特定のネットワーク特性と特定の利用分
野の特性に合うように調整される。プロトコルエンジン
237、239、241は、アプリケーション16や1
8のようなユーザーアプリケーションのために汎用通信
インタフェースを提供する。このことにより、これらア
プリケーション(プログラマにより書かれる)が特定の
ネットワーク上で通信するために必要なそのネットワー
クの知識とトランスポート層プロトコルの知識が必要と
されなくなる。ネットワークプロトコルの内のいずれ
か、またはネットワーク構成が、例えば新規にローカル
エリアネットワークやゲートウェイが追加されたりして
変更されたり、またはトランスポート層プロトコルDE
CNETからTCP/IPへ変更されても、アプリケー
ションプログラムの変更は不要である。上記のような変
更はプロトコルエンジンを追加、削除、また修正するこ
とにより、プロトコルが上記変更を許容できるようにす
ることが可能である。これらプロトコルエンジンは共用
できるので、全アプリケーションソフトを替えるより全
プロトコルエンジンを替える方が容易である。
【0122】プロトコルエンジンによりアプリケーショ
ンにはプロトコル透明性と通信路透明性が与えられ、し
たがってアプリケーションにてこれら詳細を扱うコード
を不要とする。また、これらのプロトコルエンジンによ
りネットワークインタフェースの透明性が与えらる。
【0123】プロトコルエンジンにより信頼性のある通
信プロトコルが実現でき、実施例のいくつかでは付加価
値のあるサービスを提供できる。付加価値のあるサービ
スとは、例えば、高信頼性放送や高信頼性二点間通信
や、また効率を維持するために状況により必要となれば
通信を高信頼性放送より高信頼性二点間通信に切り替え
られるような多重放送通信がある。更に、二つ以上のア
プリケーションがある主題に関するデータを要求する場
合で、要求状態にある第一のアプリケーション向けら
れているデータを受信し、それをその他の要求状態にあ
るアプリケーションに向けるようなとき、プロトコルエ
ンジンは放送の操作性を高める。従来の放送用ソフトウ
ェアはこの能力に欠ける。
【0124】プロトコルエンジンによりネットワーク上
で受信されたメッセージを主題ごとにフィルタにかける
ことにより効率の良い主題に基づいたアドレス指定を実
現できる。この方法により要求された主題に関するデー
タのみが要求状態にあるアプリケーションのコールバッ
クルーチンに乗せられる。好ましい実施例としては、プ
ロデューサのアプリケーションかまたはサービス事例に
接続されたプロトコルエンジンにより、データを主題に
よりフィルタにかけた後にネットワークに転送される
と、通信リンクの受信側ではネットワークのバンド幅や
入出力プロセッサのバンド幅やオーバヘッド処理が節約
できる。
【0125】分散型通信コンポーネント232(以後D
CCと呼称)は図16にていくつかの重要な目的にかな
うように構成されている。第一に、DCCは単純で安定
性があり、均質な通信モデルを提供する。これにより、
いくつかのメリットが得られる。プログラマは分散型環
境を始めとして、目的処理の探索、この目的処理との通
信の達成、予想しなかった何かが発生した場合の原因の
追求といった煩雑さから逃れられる。これらの全てはプ
ログラマによってではなく有能な通信インフラストラク
チャにより最適に達成できる。第二に、DCCによりプ
ログラマの生産性を増すことはもとより、新規特性の統
合を単純化により開発に要する時間を短縮できる。最後
に、DCCによれば他のコンポーネントのネットワーク
上での物流を知るために果たされるアプリケーションに
対する負担を取り除くことにより、構成の自由度が大き
く高められる。このことは特定の物理構成にコードでの
プログラマによる依存性を無くし、したがって後に予想
される再構成を複雑化することも無くなる。
【0126】もう一つの重要な目的は、重要なシステム
構造のカプセル化により移植性を得ることである。顧客
アプリケーションが、変更されているかも知れないトラ
ンスポートとアクセスプロトコルから隔てられているた
め、新規ハードウェアやソフトウェア環境に移行する場
合はこの移植性が重要となる。システム(DCC)の小
部分に必要とされる変更を分離することにより、アプリ
ケーションは実質的に変更せずに移植でき、したがっ
て、このアプリケーションソフトウェアに対する投資は
守られる。
【0127】TCP/IPやOSIといった標準プロト
コルスーツでよりコストのかからない“非結合”トラン
スポートプロトコルによりコード化されているので、D
CCは効率化を促進する。DCCはプロトコルでの最も
コストを必要とする問題、即ち、データ“コピー”操作
の拡散を防ぐような構成となっている。
【0128】DCCは販売側により供給される基本サー
ビスの上にサービスの層を実現してこれらの目的を達成
する。DCCによれば、信頼性のあるデータ転送やフロ
ー制御メカニズムのような基本機能を作り直さなくて
も、どのオペレーティングシステムの特異性からもアプ
リケーションは逃れられる。その例として、MS−DO
S環境でのハードウェア指向のインタフェースやUNI
Xのファイル記述子のプロセス当たりの限度がある。多
数のハードウェアやソフトウェア環境に簡単に移植でき
る一つの統一した通話料を提供することにより、DCC
は上記目的を可能としている。
【0129】DCCは、サービス統制プロトコルが必要
とする種々の相互作用パラダイムや耐故障性についての
要求事項や性能上の要求事項をサポートするためいくつ
かの異なった送信プロトコルを実行している。より興味
があるプロトコルの二つは、高信頼性放送とインテリジ
ェント多重放送プロトコルである。
【0130】標準の放送プロトコルは信頼性が低く、メ
ッセージ喪失を検出することができない。DCC高信頼
性放送プロトコルによれば、全操作ホストが各放送メッ
セージを受信するか、またはメッセージの喪失を検出で
きることが保証される。多数のいわゆる高信頼性放送プ
ロトコルと異なり、喪失したメッセージは限られた一定
周期で再送信される。
【0131】インテリジェント多重放送プロトコルは多
数の目的地に対して信頼性のあるデータストリームを提
供する。このプロトコルの新規性はネットワークとプロ
セッサ負荷を最適化するために二点間通信より放送通信
にダイナミックに切替え可能ということにある。二点間
通信より放送(またはその反対)への切替えは高次レベ
ルのプロトコルまで透過的である。このトランスポート
プロトコルにより、二点間通信のみ、または放送のみを
使用する場合より、より多数のユーザーをサポートでき
る。このプロトコルはDCCにより他のプロトコルの上
に構築できる。現在のところ、全DCCプロトコルは、
例えばメッセージ(これは他の多くのプロトコルと対照
的であるが)のようなデータのみを、離散的な単位で交
換している。DCCは単一のプロセスに基づくメッセー
ジをその転送順で受信する。
【0132】DCCはまたメッセージ喪失が発生した場
合再転送をサポートするような耐故障性メッセージ転送
プロトコルを含む。DCCソフトウェアはメッセージ伝
達につき“多くて一度”のセマンティックスを保証し、
また“ちょうど一度”のセマンティックスを追求してい
る。
【0133】DCCはアプリケーションのプログラマに
より使用される目的でインタフェースを表示はしない。
【0134】離散型コンポーネント232はサービス統
制234、236、238に接続される。サービス統制
234はマーケットデータ加入サービスと呼ばれる機能
を有する。このプロトコルによりデータの消費者は、個
々のデータのソースの故障に関して耐故障性のあるデー
タの一連の流れを受信することができる。このプロトコ
ルスーツは負荷バランスと権利付与方針を管理する。M
DSSサービス統制は、このサービス統制をRMDPイ
ンタフェースで要求するアプリケーションが要求された
データを提供するのはそのサービスであるということを
知らなければならないという意味ではサービス指向であ
るといえる。MDSSサービス統制はしかしながら、あ
る主題に関してのデータストリームがMDSSサービス
統制により接続されたアプリケーションに伝達されると
いう意味では、主題アドレス加入サービス(SASS)
サービス統制によって実行される加入通信パラダイムを
サポートしている。
【0135】MDSSサービス統制によりデータ消費者
アプリケーションは各データのソースの故障に対して耐
故障性のある一連のデータストリームを受信できる。こ
のプロトコルスーツ234はまた、負荷バランスと権利
付与方針の管理の為のメカニズムを提供する。すなわ
ち、ユーザーあるいはアプリケーションのアクセス特権
がデータ消費者が特定のサービスからデータを得る権利
を有することを保証するようにチェックされる。
【0136】二つの特性により、MDSSサービス統制
は代表的な顧客サーバプロトコルと異なっている。第一
に、加入ははっきりとサポートされていて、したがって
要求の値に対する変更は自動的に要求状態にあるアプリ
ケーションに伝達される。第二に、顧客アプリケーショ
ンはある特定のサービスを要求するか加入する(これは
ある特定のサーバと反対であり、またある特定の主題と
も反対である)。そしてMDSSサービス統制は顧客ア
プリケーションの要求を利用可能なサーバに転送する。
MDSSサービス統制はまたサーバの連結状態を監視
し、もし連結が故障すれば必要なら他のサーバを利用し
て再連結を行う。
【0137】MDSSサービス統制は次に述べる重要な
目的を実行する。
【0138】耐故障性は、二重または三重のネットワー
クをサポートしかつ、プロトコルエンジンで実行された
高信頼性放送のような耐故障送信プロトコルを使用する
ことにより冗長サービスの間を自動切替するようなプロ
グラムコードにより実現できる。サーバの故障後の復帰
は自動で行われる。
【0139】負荷バランスはある特定のサービスのため
に稼働している全てのサーバを通じてデータ要求の負荷
がバランス良く配分されるようにして実行される。
【0140】負荷はあるサーバが故障したりまた故障よ
り復帰したりした場合は自動的に再度バランス調整され
る。更に、 MDSSは、外部通信ライン上でのバンド
幅やページキャシュにある“スロット”のような少ない
資源を有効に利用するサーバ配分方針をサポートしてい
る。
【0141】ネットワーク効率化は図15に示されてい
るように、分散型通信デーモン30Bによるインテリジ
ェント多重放送プロトコルにより実行される。インテリ
ジェント多重放送は、必要なときには二点間通信プロト
コルから放送通信プロトコルへ自動的かつダイナミック
な切替えをすることにより、ネットワークと入出力プロ
セッサのバンド幅の資源を有効に利用している。例え
ば、テレレートページ8データは初めの五つの加入者に
二点間分配による供給がなされ、そして第六の加入者が
出てきたとき全加入者を放送分配に切り替えられる。M
DSSサービス統制によれば、サーバの探索、通信の接
続、故障にたいする対応、故障よりの回復、負荷バラン
スを含む、分散システムをプログラムする上での煩雑さ
の大半を封じるような簡単で使用し易いアプリケーショ
ン開発インタフェースを提供する。MDSSサービス統
制のコアとなる機能は取得、停止、駆動である。顧客ア
プリケーションより“取得”呼出は指定されたサーバへ
の耐故障性のある連結を行い、指定ページか指定データ
要素の現在値を取得する。連結は、指定ページに対する
更新が自動的に顧客アプリケーションに転送されるよう
に加入に基づいたものである。“停止”は加入を停止す
る。“駆動”は加入を変更することができるかも知れな
いサービスに変更子を送信する。
【0142】MDSSサービス統制はページ指向のサー
ビスをサポートするように最適化されてはいるが、どの
ようなタイプのデータの分配をもサポート可能である。
【0143】MSA236で示されているサービス統制
は異なった機能を有する。SASS238で示されてい
るサービス統制は主題に基づいたアドレス加入サービス
をサポートする。
【0144】主題に基づいたアドレス指定とSASSサ
ービス統制(以後SASS)によりそれを実行する背後
にある基本思想は明快である。アプリケーションがデー
タを要求しているときはいつでも、特にダイナミックに
変動している値に関するデータの場合は、アプリケーシ
ョンは適切な主題を指定することによりそれに加入す
る。SASSはこの主題に関する情報を提供するような
一つ以上のサービス事例に対する要求をマップ化する。
SASSは、選択されたサービスを提供するサービサー
かまたはサーバとの通信に必要とされる適切な一つ以上
のプロトコルエンジンによって、全ての選択されたサー
ビスへの適切なる連結を可能とする。
【0145】主題に基づいたアドレス指定をすることに
より、情報の消費者は、情報を作成しているアプリケー
ションとは無関係にな方法で情報を要求できる。したが
って、情報を作成しているアプリケーションが改訂され
たりまたは新しいアプリケーションと取り替えられたり
しても、情報消費者に不都合を起こさないようにして同
じ情報を提供し得る。
【0146】主題に基づいたアドレス指定は分散型アプ
リケーションをプログラムする場合の煩雑さを次の三点
において大幅に軽減する。第一に、アプリケーションは
主題により情報を要求するが、これはサーバあるいはサ
ービスにより要求する方法と対照的である。この高次の
レベルで情報を指定すると、希望情報を提供するサービ
ス事例の現ネットワークアドレスを知る必要があるとい
うアプリケーションに果たされた負荷が取り除かれる。
更に、適切なサービスよりデータを抽出する為の通信プ
ロトコルの詳細を知る必要があるということと、ネット
ワークを横断して連絡するトランスポートプロトコルの
詳細を知る必要があるということによるアプリケーショ
ンにかかった負荷が軽減される。例えば、公平価格のた
め、IDNからTicker 3 へ変更するといっ
た、サービス提供者側における変更が生じたとき、顧客
アプリケーションがプログラム上の変更をする必要性が
なくなる。全データは顧客アプリケーションへ単一かつ
一様なインタフェースにより提供される。三つの異なっ
たサービスからの情報を必要とする顧客アプリケーショ
ンを作成するプログラマは従来の通信モデルにおけるよ
うに三様のサービス通信プロトコルを知る必要はない。
最後に、SASSは適切なサービス事例検索や正しい通
信連結といった困難かつ間違い易い手順の多くを自動化
する。
【0147】SASSサービス統制は、ユーザーインタ
フェースにより呼び出される三つの基本機能を提供す
る。
【0148】“加入”は一つ以上の主題につきリアルタ
イムで消費者が情報を要求したとき、呼び出される機能
である。SASSサービス統制は提示された主題に合致
する全データが消費者アプリケーションに確かに転送さ
れるように必要とあれば如何なる通信リンクをも組み立
てる。データが非同期式(割込み作動)か同期式かを消
費者は指定できる。
【0149】プロデューサ側のサービスへは、そのサー
ビスの登録手順が設定完了時点で、加入が連絡される。
登録手順はSASSによりなされ、ユーザーには見えな
い。“取消”は“加入”の反対である。この機能が呼び
出されると、SASSは専用通信チャンネルを閉鎖し、
もし登録状態が存在すればプロデューサ側のサービスへ
取消を連絡する。
【0150】“受信”機能と“コールバック”機能は、
それにより加入者要望の情報に合致するメッセージをア
プリケーションが受信できるような機能に関連する。コ
ールバックは非同期式であり、イベント作動のプログラ
ム方式をサポートしている。この方式はリアルタイムで
のデータ交換を必要とするアプリケーションに適してい
る。受信機能はメッセージ受信用の従来の同期式インタ
フェースをサポートしている。
【0151】データ作成者用に補足機能が備わってい
る。また、アプリケーションはデータの作成者であり同
時にデータの消費者でも有り得る。
【0152】図17では本発明の基づく考えが有益に取
り入れられている、代表的なコンピュータネットワーク
が示されている。このコンピュータネットワークはロー
カルエリアネットワーク(以後LAN)302によりフ
ァイルサーバ304に接続されているヒューストンの第
一ホストCPU300とゲートウェイネットワーク相互
接続回路306を含む。ゲートウェイ回路306はLA
N302を広域ネットワーク(以後WAN)308に接
続している。WAN308はホスト300を、ロンドン
からのQuotronサービスとパリからのMarke
tfeed 2000サービスをそれぞれ提供する二つ
のサーバ310と312に接続している。WANはまた
ホスト300をジュネーブにある第二のホストCPU3
14に接続し、ジュネーブのサーバ316は第二のLA
N318によりテレレートサービスを提供している。ダ
ムターミナル320もまたLAN318へ接続されてい
る。
【0153】一般にはホスト300と314はマルチタ
スクのマシンであるが、またDOSやPC−DOSのオ
ペレーティングシステムを走らせることのできるコンピ
ュータのような単一処理CPUでもある。TIB通信イ
ンタフェースソフトウェアはUNIXに準拠したマルチ
タスクマシン用にポートが構成されている。
【0154】本発明に基づく考えをDOSかまたは他の
シングルタスク環境に適応させるためには、処理アーキ
テクチャのTIB通信デーモン30Bは、オペレーティ
ングシステムからアプリケーションの一つが加入してい
る主題に関連するネットワーク上でメッセージが受信さ
れたという連絡を受信すると直ちに呼び出される、すな
わち、開始されるような割込み作動処理が可能なように
構成されていることを必要とする。
【0155】システムの残りの構成要素との間でデータ
を交換できるに十分な互換性を有する場合に限り、LA
N302、318、WAN308,ゲートウェイ306
のおのおのはどの従来の構造とプロトコルを有していて
も良いし、将来開発される新たな構造とプロトコルを有
していてもよい。ネットワークに使用される構造とプロ
トコルの代表的な例としてはTCP/IP、DECNE
T、ETHERNET、トークンリング、ARPANE
Tと他のディジタルパックまたはいずれか一方、または
ハードワイヤかマイク波か衛星送信メディアを使用した
高速プライベートラインのディジタルシステムかアナロ
グシステムがある。X.1、X.2、X.3、X.2
0、X.21、X.24、X.28、X.29、X.2
5、X.75などの種々のCCITTの勧告はスピー
ド、ユーザーのオプション、種々のインタフェーススタ
ンダード、スタート/ストップモードターミナルハンド
リング、同期ターミナル用のマルチプレックスインタフ
ェース、インタフェース回路の定義、パッケットネット
ワークの相互接続を提案していて、これら全ては参考の
ためここに添付されている。コンピュータネットワーク
アーキテクチャとプロトコルの詳細な説明は特別号IE
EE通信に関するトランザクション、1980年4月V
ol.COM−28にあり、参考のためにここに添付さ
れている。大半のディジタルデータ通信は一文字当たり
ビットの数とそのビットのシーケンスと表現される文字
によりなされ、0のシーケンスと1のシーケンスはコー
ドを定義している各文字に対応する。最も、一般的なコ
ードはU.S.ASCIIとして知られる国際アルファ
ベットNo.5である。他のコードもまた使用可能であ
る。コードのタイプは本発明にとっては重要ではない。
【0156】コードの転送にて、受信点と送信点間の同
期を維持するために一般に使用されている二つの方法が
ある。スタート/ストップ転送にては文字と文字との間
隔は常に1の信号であり、信号0のビットの送信は受信
ターミナルへ文字がスタートしたことを合図することに
なる。データビットはスタートビットに続き、さらにそ
の後にストップビットが続く。ストップパルスは文字と
文字の間の信号と同じであり、ターミナルの仕様に基づ
く最短のパルス長となる。同期式ではタイミングを保持
するために、文字が転送されない間隔でも同期アイドル
パターンで一様のレートでビットは送り出される。同期
式は高速度送信に利用される。
【0157】ディジタルコンピュータネットワーク通信
でプロトコルという用語は通信を作動するための標準的
な手順を意味する。目的は装置と通信チャンネルの端末
でのインタフェースの処理を統合することにある。プロ
トコルはいくつかのレベルで適用できると思われる。国
際標準化機構(ISO)は標準プロトコルの開発の指針
となる七つのレベルを有するオープンシステム相互接続
の参考モデルを開発した。この7レベルの標準は以後I
SOモデルと呼称され、その機能を次に示す。 (1)アプリケーション: アプリケーション間
の通信ができなければならない。プロトコルはエンドユ
ーザーのニーズを満たすこと。
【0158】(2)プレゼンテーション: アプリ
ケーションプログラムにより使用できるように適切な形
に構成されたデータを提示できること。アプリケーショ
ン層が交換のデータの意味が解釈可能なように、アプリ
ケーション層により選択できる複数のサービスが提供さ
れること。
【0159】(3)セション: プレゼ
ンテーション項目と制御データ交換、すなわちダイアロ
グ制御の間の関係を確立し設定する。
【0160】(4)トランスポート: ネット
ワークより独立した透過性のあるデータ転送を提供す
る。信頼性があり費用有効性のあるデータ転送が達成さ
れるような細分化された方法へセション層が係わる必要
をなくする。
【0161】(5)ネットワーク: ネット
ワークより独立したルーチンとスイッチングサービスを
提供する。
【0162】(6)データリンク: ネット
ワーク間でデータリンクを構成したり、維持したり、解
除したりするための機能的かつ手順的な手段を提供する
ことによりリンク上にて故障なしのデータ転送を可能と
すること。
【0163】(7)物理的項目: データ
リンク間のデータ回路のような物理的な接続を構成した
り、維持したり、解除したりするための機械的、電気
的、機能的、手順的特性を示す。
【0164】従来より最も一般的なあるデータリンクプ
ロトコルはデータに交換をするために文字か文字の組合
せを使用する。また、ANSIのAdvanced D
ata Communication Control
Procedureとその部分集合などの他のプロト
コルはリンク制御をするためにメッセージの予め決めら
れた位置にビットのシーケンスを用いている。
【0165】パケットネットワークは60年代半ばの回
路スイッチやメッセージスイッチデータネットワークで
一般的であったよりももっと効率的なネットワーク装置
の使用を促すために開発された。回路スイッチネットワ
ークでは一つのチャンネルはコールの間はずっと割り当
てられた。メッセージスイッチネットワークではメッセ
ージかあるいはシリアルメッセージの一部分は、もし通
信路(ループかトランク)が利用可能なら、次のスイッ
チに送信された。もしそうでなければ、メッセージは通
信路が空くまで記憶された。メッセージスイッチ間のト
ランクの使用は時として非常に効率を向上させた。多数
の回路スイッチのアプリケーションではしかし、回路が
使用されている時間のほんの一部のみの期間しかデータ
は送信されなかった。装置の有効利用を目的とし、また
そのほかの理由にもより、パケットネットワークが出現
した。
【0166】パケットネットワークではホストやターミ
ナルから他のホストやターミナルへのメッセージはある
特定の長さ、普通128バイト、のパケットに分割され
る。これらパケットは発信点より目的地点に個別に送信
される。各パケットは、そのパケットを処理するのに必
要な情報をネットワークへ提供するヘッダを含む。一般
的には、パケットは少なくともソースと目的地のネット
ワークのアドレスを含み、パケット長といったその他の
データフィールドを含むこともある。一つのソースのア
イドル時間が他のソースに利用できるように、一ターミ
ナルから他のターミナルへ発信されたパケットは、他の
ユーザーにより彼らの目的地へ発信されたパケット間に
装置上にて交互配置される。種々のネットワークコンテ
ンション解決プロトコルが、同じ時、同じチャンネル上
でパケットを送信しようとする二つ以上の目的地を持つ
ネットワークの制御を仲裁するためにある。あるプロト
コルは物理的に多重チャンネルを時分割か周波数マルチ
プレックスにより使用している。
【0167】論理チャンネルの使用により同じ物理的な
インタフェース回路が二つ以上のターミナルまたはコン
ピュータとともに動作させられる。あるどの瞬間をでみ
ても、各論理チャンネルはある受信アドレスとの通信に
使用されている;各パケットはそのヘッダ内に論理チャ
ンネルの識別項を含み、物理的なインターフェース回路
上で種々の論理チャンネルの種々のパケットが交互配置
されている。
【0168】目的地ではメッセージは受信アドレス処理
にかけられる前に再構成されフォーマット化される。一
般に、ネットワークはその内部にデータの動きを制御す
るための内部プロトコルを有する。
【0169】ネットワークの内部スピードは一般に、ネ
ットワークに接続されているどのターミナルやノードの
スピードよりも早い。
【0170】メッセージを扱う一般によく使用されてい
る方法が三つある。“データグラム”は発信元から目的
地へ発信される片方向メッセージである。データグラム
は独立して転送され、必ずしも発信順には着信しない。
転送か非転送かの通知もされ得る。“バーチャルコー
ル”ではパケットはネットワークの二人のユーザーで交
換される;目的地ではパケットは発信された順番に受信
アドレスプロセスにかけられる。“相手固定接続”は一
つのネットワーク上で二人のユーザー間のパケットの交
換をする。各ユーザーは、ネットワークの提供者の準備
により、論理チャンネルを割当て、相手ユーザーとパケ
ットの交換を行う。チャンネルの構成や清掃などは不要
である。
【0171】ある種のパケットネットワークは、ネット
ワークに含まれるパケットアセンブラとパケット逆アセ
ンブラによりパケット内のメッセージをフォーマット化
する内部機能を有さないターミナルをサポートする。
【0172】米国における初期のパケットネットワーク
はARPNETで、多数の大学や政府研究機関でターミ
ナルとホストコンピュータを接続するために組み上げら
れた。その目的は一つの場所でのコンピュータユーザー
がその他の場所にあり、またたいてい異なったメーカー
のコンピュータにあるデータやプログラムを使用するこ
とにあった。ネットワークへのアクセスは、各場所にあ
り、ホストコンピュータに接続されているインタフェー
スメッセージプロセッサ(IMP)と他の場所にあるI
MPを使用することによりできる。IMPは相手のIM
Pへは直接は接続されていない。発信IMPに直接接続
されていない目的IMPに配信されるパケットは目的処
理に到達するまで中間IMPで扱われる。ホストが存在
しない場所ではダムターミナルにアクセスをするためタ
ーミナルインタフェースプロセッサが使用される。
【0173】他のあるパケットネットワークは世界的に
構築されていて、たいていバーチャルコールモードで作
動している。
【0174】初期のパケットネットワークでは、メッセ
ージの各パケットのルーティングは独立である。各パケ
ットは目的地のネットワークアドレスと目的地にて適切
な順序でパケットを配置できるように順序番号をヘッダ
に含む。もっと新しく開発されたネットワークは“仮想
回線”構造と“仮想回線”プロトコルを使用している。
仮想回線はデータの発信初めに設定され、そのデータ発
信の全てのパケットにつきルーティング情報を含む。次
に続くパケットは仮想回線の表示をそのヘッダに含む。
あるネットワークでは、ルートの選択はネットワーク上
での全てのノードよりまた全てのノードへの遅延を測定
した結果に基づいている。
【0175】また、ほかのネットワークの構造におい
て、ネットワーク上のノードは他のあるノードまたは他
の全てのノードにたいして、二重または三重の冗長なル
ートで接続されている。Dialog、Tymshar
e、Telenetといったネットワークでは相互接続
には公衆電話システムが使用され、アナログの通信チャ
ンネルとディジタルデータをアナログデータに変換する
ためのモデムが使用されている。
【0176】WANのような他のネットワーク構造で
は、マイクロ波と長距離通信のための地上局に接続され
た衛星の両者またはいずれか一方、ローカルエリアネッ
トワークかローカル着信のための公衆電話システムが利
用されている。
【0177】種々のネットワークの構造とプロトコルが
使用されている。更に、ネットワークとトランスポート
プロトコル、ネットワークインタフェースカード、ネッ
トワーク構造、ホストコンピュータとターミナル、サー
バプロトコルとトランスポート/ネットワーク層ソフト
ウェアの新たなデザインが次々に出現している。これは
ネットワークの設計と操作において不変であるべきこと
が絶えず変わっているということを意味する。指定した
タイプのデータが得られるネットワークのアドレスやこ
のデータを得るためのアクセスプロトコルは絶えず変わ
っている。本発明の通信インタフェースソフトウェアの
目的はアプリケーションプログラムを作成するプログラ
マが全ネットワーク、トランスポートプロトコル、ネッ
トワークアドレス、アクセスプロトコルおよび特定の主
題に関するデータを提供しているサービスの知識を修得
する必要性をなくしている。本発明のインタフェースソ
フトウェアにより変わり行く煩雑さを全てカプセル化し
モジュール化することによって、アプリケーションプロ
グラムへの投資が、ネットワークトポロジーやプロトコ
ル依存性がアプリケーションにプログラムされないよう
にすることで、保護している。このようにして、ネット
ワークに何か変更があっても、再プログラムしたり、ま
た全プログラムを廃棄したりする必要がなくなる。
【0178】これら目的は本発明の教えるところに従っ
て、三層構造のアーキテクチャ(以後TIBソフトウェ
アと呼称)を有するネットワーク通信ソフトウェアによ
り実現できる。図17に示されるように、これら三層は
情報層、サービス層、分散型通信層である。各アプリケ
ーションプログラムはコンパイルリンク処理の間に情報
層とサービス層の自身のコピーにリンクされる。コンパ
イルリンク処理はアプリケーションプログラムのソース
コードを機械可読オブジェクトコードに変換する動作で
ある。例えば、アプリケーションプログラム1、340
は本発明のソフトウェアの層の自身のコピーへ直接リン
クされ、すなわち、情報層342とサービス層344へ
である。同様に、アプリケーション2、346はそれ自
身のコピーである情報層348とサービス層350へリ
ンクされる。この二つのアプリケーションは分散型通信
層352と呼ばれる本発明のソフトウェアの第三層を共
有する。一般的には、マルチタスクマシンで同時に複数
のアプリケーションを走らせるが、非マルチタスク環境
では割込みドライバとして作動するノードにつきただ一
つの分散型通信層しかない(ここでノードはネットワー
クに接続されているどんなコンピュータ、ターミナル、
サーバであっても良い)。
【0179】図17の仮想ネットワークにおけるジュネ
ーブの第二のホスト314はアプリケーションプログラ
ム3、354を走らせている。このアプリケーションは
そのコピーである情報層356とサービス層358へリ
ンクされる。ホスト2で同時に走っている分散型通信層
360はアプリケーション354により使用されてい
る。サーバ310、312、316の各々は三層TIB
ソフトウェアのデータ作成バージョンを有している。
“加入”機能を実行するTIBソフトウェアのデータ消
費者バージョンと“発行”機能を実行するデータ作成バ
ージョンがある。一つの処理(実行中のプログラムがU
NIX定義によるとき)がデータ消費とデータ発行の場
合は、それはプログラムのライブラリと、加入と発行機
能の両方を実行するTIBソフトウェアのためのインタ
フェース仕様を有している。ホストの300と314は
それぞれオペレーティングシステム370と372によ
り制御され、これらは異なっている。ホスト1とホスト
2は、サーバ310、312、316がそうであるよう
に、異なったメーカーのコンピュータでも良い。ホスト
1は共有メモリ374を有し、それによりアプリケーシ
ョン340と346は例えばUNIXパイプや他のプロ
セス間転送機構により通信できる。
【0180】本発明による考えを広義に解釈すれば、3
42のような情報層はTIBNFOインタフェース機能
や図15や図16にあるTIBソフトウェア通信ライブ
ラリ30Aの主題に基づくアドレス機能をカプセル化し
ている。TIBINFOインタフェースは下記ソフトウ
ェア仕様のセクション4にて定義される。TIBINF
Oはプログラムインタフェースを定義していて、そのイ
ンタフェースによりこの情報層にリンクされたアプリケ
ーションが主題アドレス加入サービス(SASS)コン
ポーネントのプロトコルとサービスを呼び出す。
【0181】図18は図15の処理アーキテクチャ、図
16のソフトウェアアーキテクチャ、図17におけるT
IBソフトウェアの三層構造の相互関係を示す。図15
で通信ライブラリ30Aはアプリケーションライブラリ
16にリンクされていて、アプリケーションライブラリ
16はRMDPとTIBINFOインタフェースにより
呼び出される多重機能を提供している。主題アドレス加
入サービスはコンポーネント内で30Aと30Bとして
示されている主題マッププログラムとサービス統制プロ
グラムにより提供される。このコンポーネント30A/
30Bはまたライブラリプログラムを含み、そのライブ
ラリプログラムはTIB通信デーモン30Bのプロトコ
ルエンジンプログラムをサポートすなわち、それと通信
し、それにデータを供給するような共通のインフラスト
ラクチャプログラムコードを提供する。
【0182】TIBINFOインタフェースはプログラ
ムインタフェースを提供するようになっていて、そのプ
ログラムインタフェースによりリンクされた顧客アプリ
ケーションはネットワーク上でデータ作成者により提供
されたデータを求めて、そのデータがあればどこでも、
主題アドレス加入を起動し、使用する。
【0183】RMDPインタフェースはプログラムイン
タフェースを提供し、そのプログラムインタフェースに
より加入が入力され、データがネットワーク上のサービ
スからリンクされた顧客アプリケーションにより受信さ
れる。このとき、顧客アプリケーションにとりこのデー
タを提供するサービスの名称は既知である。図15の通
信ライブラリ30Aはライブラリプログラムを支給する
が、そのライブラリプログラムはマーケットデータ加入
サービス(MDSS)を実行するためにリンクされた顧
客アプリケーションにより呼び出される。この機能は、
デーモンの適当なプロトコルエンジンの支援により、要
求データを供給する一つ以上のサーバへの高信頼性通信
チャンネルを設定し、サービス名称で要求された加入デ
ータを作成する。各サーバの故障は顧客には分からな
い。MDSSは、適当なプロトコルエンジンを用いて同
様なサービスを提供する新たなサーバに自動的に切り替
えられるからである。MDSSはまた自動的にサーバ間
のバランスを調整し、誰がサービスにたいするアクセス
を得るかを制御する許可機能を実行する。インテリジェ
ント多重放送や高信頼性放送やデーモン30Bのプロト
コルエンジンといったDCCライブラリ30A/30B
の高信頼性通信プロトコルはMDSSライブラリプログ
ラムにより呼び出される。更に詳しいことはTIB仕様
のセクション3に述べられている。
【0184】ある特定の主題に関する加入を実行し、そ
の主題にたいするデータを受信するために、加入処理側
での三層の各々で実行される処理のフローチャートは図
19と図20により示される。ステップ400はある特
定の主題に関するデータを求めるユーザーよりの要求を
受信する処理を示している。この要求は他の処理から、
または他のマシンより来ても良いし、あるいはいくつか
の実施例のオペレーティングシステムより来ても良い。
この例で目的に従い、要求はユーザーより図17におけ
るアプリケーション1に来ているとしている。
【0185】アプリケーション1(アプリケーション層
上でまたはISOモデルの層1上で)は図17で情報層
342へ“加入要求”を発信する。この処理は図19で
ステップ402で示される。この加入要求は、TIB−
INFOインタフェースを含むリンクされているライブ
ラリプログラム内の適当なライブラリプログラムを呼び
出すことによって、入力される。このサブルーチンの呼
出は、データが要求されている主題とポインタを、主題
に関するメッセージが受信されたとき情報層のTIB−
INFOライブラリプログラムが呼び出される要求処理
におけるコールバックルーチンに転送する。
【0186】情報層342は主題対サービス統制マップ
機能をカプセル化し、このマップ機能は要求処理とアー
キテクチャ上で切り離し機能を実行する。なお、この用
語は用語集で定義されている。図19のステップ404
と406と図17を参照すると、情報層にたいする入力
は主題であり、出力は図17でサービス層344上のサ
ービス統制に対する呼出である。情報層はTIB−IN
FOインタフェースと、主題対サービスマップに関連す
る図15におけるリンクされている通信ライブラリ30
Aの全ライブラリを含む。情報層はステップ404で示
されているように主題に関するデータを提供するサービ
スへの主題をマップ化し、これらサービスと通信する通
信プロトコルをカプセル化している一つ以上のサービス
統制に対するサービスをマップ化する。この情報層はサ
ービス統制と共同して、ステップ410で示されるよう
に“TIBチャンネル”を割り当てる。
【0187】“TIBチャンネル”は手紙の宛名での
“attention:Frank Jones”とい
ったようなものである。このTIBチャンネルデータ
は、そのTIBチャンネルにいかなる主題が割り当てら
れていようと、その主題に関するデータを要求した処理
へメッセージを転送する。各主題には加入が入力された
ときTIBチャンネルが割り当てられる。加入処理、そ
のネットワークアドレス、加入割当される主題、これら
主題に割り当てられるTIBチャンネルナンバーとの相
互関連を示す加入リストがある。このリストのデータは
デーモンにより使用されて、そのデーモンのポートアド
レスにて受信されたメッセージを適当な要求処理に転送
する。このリストはまたデータ発行者側でも使用されて
いて、要求処理が走っているマシンのポートアドレス
に、特定の主題が転送されるようになっている。サービ
スに関連するTIBソフトウェアの通信層は特定の主題
に関するメッセージのパケットのヘッダにチャンネルナ
ンバーデータを、これらパケットがネットワーク上に発
信されない内に、書き込む。受信側ではヘッダのTIB
チャンネルデータはそのパケットの要求処理に適切に転
送されるように利用される。TIBチャンネル抽出とそ
れが示すルート機能は図18のDCCライブラリ部30
A/30Bにより実行され、このDCCライブラリ部は
各要求処理にリンクされている。
【0188】そのようなサービスが二つあるとすると、
これらサービスはサービス層のサービス統制によりサー
バへマップ化され、それらサーバがステップ412で示
されるようにこれらサービスを提供する。
【0189】一実施例では情報層はステップ406で示
されるようにサービス層のサービス統制サブルーチンの
一つのみを選択し呼出す。サービス統制はステップ40
8で示されるように加入主題に対してTIBチャンネル
を走らせ割り当てる。主題に関するメッセージが到着し
たとき呼び出されるように、情報層からの呼出はまた情
報層のコールバックルーチンへポインタを転送する。
【0190】これに替わる実施例では、情報層は全サー
ビスとの通信リンクを設定するため、主題対サービス統
制マップ処理で明示された全てのサービス統制を呼び出
すこともできる。
【0191】いくつかの実施例では、代替サービスと代
替サーバの名称が選別されたサービス統制かまたは情報
層により直接分散型通信層に転送されて、代替通信リン
ク設定用に利用される。これにより、選択したサーバが
故障した場合やネットワークの処理能力を増すために同
時通信リンク設定をしたい場合、分散型通信層は他のサ
ーバへの代替通信リンクを設定できる。またこれらの実
施例では、要求処理はサービス層を直接呼び出せるし、
アプリケーションそれ自体にある主題対サービス統制マ
ップを実行することにより適当なサービス統制を呼び出
すことができる。代替サービスと代替サーバについての
データは図18のブロック30A/30BのDCCライ
ブラリのライブラリサブルーチンを呼び出して転送でき
る。DCCライブラリは代替についてのデータを走らせ
たり、記憶したりする。
【0192】上記に替わる実施例では、情報層はTIB
チャンネルを各主題に割り当てるか、またはサービス層
が、情報層との連携なしに単独で動作して、TIBチャ
ンネルを割り当ている。ステップ410は、サービス統
制が情報層と共同してTIBチャンネルナンバーを割り
当てているような実施例を示す。データ提供者処理によ
り発信されたメッセージは、メッセージヘッダ情報の部
分として含まれる割当られた主題チャンネルデータを有
する。
【0193】TIBチャンネルは目的をフィルタで選別
し、転送するため通信層(DCC)により使用される。
即ち、図15のデーモン30Bと図18のプロトコルエ
ンジン30Bは、主題のデータの加入があるようなヘッ
ダにて特定のTIBチャンネルデータを有するデーモン
のポートアドレスにメッセージがいつ到着するかを知っ
ている。デーモン処理は加入があるチャンネルを知って
いる。理由はこの情報がサービス層により通信層に発信
されるからである。デーモン30Bはオープンとなって
いる加入を有している全TIBチャンネルに関して、サ
ービス統制より受信したデータを記憶する。デーモンは
オープン加入を有する主題に関してのどんなメッセージ
をも、その主題に関してメッセージを加入させているポ
ートアドレスの処理に送る。デーモンは主題が何かは知
らないが、オープン加入を有するTIBチャンネルと入
力メッセージの主題間に整合があるということは知って
いる。
【0194】ホスト300のような図17のコンピュー
タネットワークに連結された各ノードは一つのネットワ
ークインタフェースカードと一つのポートアドレスを有
する。このポートアドレスには、同じホスト上で同時に
走る多重処理によりネットワークカードを多重化するた
め、あるネットワークでは“論理チャンネル”が割り当
てられている。これらポートアドレスも以後時にはネッ
トワークアドレスとして引用される。データがネットワ
ークアドレス間をどのように行き来するかは図17にお
ける層352のような通信層の責任となり、このような
通信層はオペレーティングシステム370と372に関
するトランスポート層、ネットワーク層、データリンク
層、物理層の機能を呼出し、またネットワークインタフ
ェースカード(図不指示)やゲートウェイ306やWA
N308にみられるようなネットワーク自身上にある他
の回路を呼出す。
【0195】サービス層、情報層、通信層はISOモデ
ル層の上部におかれていて、すなわち、これらはISO
モデルの層ではなしえないサービスを提供するか、また
はISOモデル層で実行されるサービスを補完するよう
な“付加価値”のあるサービスを提供する。
【0196】サービス層の目的は、この他にもあるが、
添付用語集で定義されているようにサービス切り離し機
能にある。サービス切り離し機能はサービスと通信を如
何にするかに関する詳細を提供してサーバのネットワー
クに関する所在をアプリケーションが知る必要性を無く
している。この機能を実行するには、サービス層は全サ
ーバに対する選択されたサービスをマップ化するプログ
ラムか機能を含み、これら全サーバはこのサービスを提
供し、それ選択する(図19でステップ412)もので
ある。サービス層はそしてネットワークを横断するため
に必要な通信手順とプロトコルをカプセル化するプロト
コルエンジンに対して選択されたサーバをマップ化す
る。ネットワークを横断するとはすなわち、ネットワー
ク上でこのサーバに達するためには通過する必要がある
経路ということを考慮せず一つのデータリンクを設定
し、どのタイプのマシンかを考慮せず、どのタイプのネ
ットワークか、どのタイプのネットワークカードに接続
されているか、そしてどのタイプのオペレーティングシ
ステムが走っているかに関係なく選択されたサーバと通
信する。この処理はステップ414で示される。
【0197】代替実施例では、アプリケーションか加入
処理はそれ自身の主題に基づくアドレス指定を行い、そ
れ自身の通信プロトコルをカプセル化することによって
プロトコルエンジンを直接呼び出せる。他の代替実施例
では、ネットワークの処理能力を増すためか、あるいは
選択したサーバの故障の折りには他にすぐ切替えできる
ようにする為に、サービスを提供している全サーバを選
択し、通信層に同時にこれら全てとデータリンクを設定
するように要求する。
【0198】通常は選択されたサービスを提供する全サ
ービスは同一の通信プロトコルを使用していると思われ
るので、単一のサービス統制はそれら全てと通信可能で
ある。しかし同じサービスに関する異なった事例や同じ
主題に関するデータを提供している異なったサービスが
異なった通信プロトコルを使用していれば、本発明の教
えるところにより、サービス統制のサブクラスを指向す
る。この意味するところは、汎用の機能を実行するこの
サービス統制の全サブクラスにより共有され得るコード
を含む汎用サービス統制を情報層は呼出す;汎用機能と
は例えばこのサービスを提供する全サーバで同様になさ
れる加入や取消である。汎用サービス統制はサービスを
提供する異なったサーバの一つ以上に対する加入要求を
マップ化する。選択されたサーバに特有な通信手順をカ
プセル化しているサービス統制は、選択されたサーバに
加入データストリームの設定処理を完了させるため、呼
出を受け、実行される。
【0199】サービス層の出力は“次の主題のチャンネ
ル上で次のサーバかサービスにとり最も適当であると考
えられるどんな手段によっても通信リンクを形成する”
という意味で、通信層に対する要求である。サービス層
はまた要求主題に関するメッセージやパケットを取り扱
うサービス層コールバックルーチンへポインタを発信す
る。この処理はステップ416で示される。いくつかの
実施例では、要求主題に関するデータを供給しているサ
ービス処理を実行する全サーバのネットワークのアドレ
スはDCCライブラリプログラムに転送され、そこで、
選択されたサーバが暴走した場合に故障からの復帰を可
能とする高信頼性通信リンクで使用できるように記憶さ
れる。
【0200】ステップ418はオペレーティングシステ
ムにカプセル化されたトランスポート層プロトコルの選
択された機能を呼び出すことにより選択されたプロトコ
ルエンジンが要求データを設定するような処理を示す。
これらプロトコルは、ステップ420で示されるように
要求データリンクを設定し、サービスに記録するため
に、ネットワーク上で、データリンク上で、また物理層
上で他の通信プロトコルを呼び出す。サービス層サービ
ス統制は通常、サービスにメッセージを送って、ステッ
プ422にあるようにサービスに対して、加入とこの主
題に割り当てられた主題チャンネルを連絡する。主題チ
ャンネルは情報サービスとサービスにリンクされている
TIBソフトウェアの通信層の両者かまたはいずれか一
方により認識される。このことにより、主題チャンネル
データは対象とする主題に関する発信パケットのパケッ
トヘッダに付加される。いくつかの実施例では、この加
入メッセージがデータフローを起動されるが、他の実施
例ではサーバに対するデータリンクが最初にできた時に
データフローは起動される。
【0201】いくつかの実施例においては、単一の加入
によって多重サービスを呼出すことが必要となる場合も
あり、それにより情報層がその主題を多重サービス統制
に対してマッピングできるようにする。続いて、多重サ
ービスはその要求を多重プロトコルエンジンにマッピン
グし、多重プロトコルエンジンは同時に多重化サービス
へのデータリンクをセットアップする。
【0202】それに代わる他のいくつかの実施例にで
は、サービス統制がトランスポート層に直接対話し、現
在のネットワーク構成上での通信に必要なプロトコルを
カプセル化する。これらの実施例では、サービス層は、
情報層にあるコールバックルーチンを呼び出す前に主題
によって到来メッセージをフィルタリングすることがで
きる。
【0203】小規模のネットワークにおいて、ある代替
実施例は、特定の主題へのネットワーク加入の要求に関
する放送を行うものである。ネットワークに連結したサ
ービスは、この放送を聞き、当該主題に関するメッセー
ジを放送網に同定されているポートアドレスに送る。こ
れらのメッセージは次いでポートアドレス上のDCC層
により、本明細書中に別途記載されている方法で要求プ
ロセスへ差し向けられる。
【0204】また別の実施例では、サービス層が次のよ
うな他の機能をも果たす。すなわち、一定のサービスに
対するアクセスの規制、ISOモデルのセション層(論
理的通信路設定層)の従来の意味におけるセション管
理、反復サービスおよびサーバの反復管理、サービスの
故障の際の故障/回復管理、分散管理、他方のサービス
/サーバのニーズを満たすことができるときに一方のサ
ービス/サーバのデータ要求に十分応えられないような
不公平を防ぐためのロード調整、安全なコード化通信を
サーバに提供する機密保護機能等である。上記の代替実
施例のうち特に重要なものは、サービス層においてサー
ビス回復機能をカプセル化する実施例である。これらの
実施例では、あるサーバが停止した場合、適切なサービ
ス統制の別の箇所にカプセル化されている同じデータを
得るための回復機能が働いてステップ424で記号化さ
れているような代替サーバへの新たなデータリンクを確
立し直すようになっている。
【0205】より好ましい実施例では、サービス統制が
TIBチャンネルを主題に割り当て、アクセスするサー
バおよびサービス、使用するネットワークおよびネット
ワークプロトコルの特性といった観点から、また必要と
される信頼性の度合いの観点から使用すべきプロトコル
エンジンを選択する。
【0206】図15および図18のデーモン30Bに
は、それぞれ異なる特性をもった多数の異なるプロトコ
ルエンジンを含ませることができる。例えば、ノベル(N
ovell)ネットワークのインタフェースカードを有して、
ノベルプロトコルを用いるノード間の二点間方式通信用
のプロトコルエンジンや、TCPプロトコルおよびUD
Pプロトコル、関連のネットワークインタフェースカー
ドを用いるノード間の二点間方式通信用のプロトコルエ
ンジンがある。また、信頼性の高い放送を用いた高速デ
ータ発行者との通信用プロトコルエンジンや、インテリ
ジェントマルチキャスト(商標;Intelligent Multicas
t)プロトコルを用いる二点間方式の通信用もしくは信
頼性の高い放送用プロトコルエンジンがある。通信用プ
ロトコルのオプションに応じ、またサーバおよびサービ
スの種類に応じ、あるいはまた望まれる信頼性のオプシ
ョンに応じ、多数のプロトコルエンジンが作成可能であ
り、さらに必要に応じていつでもさらに多くのエンジン
の追加が可能である。
【0207】さらに、サービス統制のあるものは、オペ
レーティングシステムや他のアプリケーションのような
同一のマシン上での他のプロセスとの通信用のプロシー
ジャであってもよいし、また端末を通じてのユーザーと
の直接通信用のプロシージャであってもよい。サービス
統制は新しい情報源との通信用にいつでも追加されう
る。
【0208】サービス統制は、加入要求を受けると、そ
の主題のための特別のTIBチャンネルを開放するか、
任意のTIBチャンネルを使用可能とする。
【0209】選択されたサービス統制あるいはサービス
統制群はDCCのライブラリプログラムを呼び出すこと
によって選択されたサービスとの通信が有効に行われる
ようにするための正しい特性をもつプロトコルエンジン
を選択する。DCCのライブラリプログラムは、新しい
加入やチャンネルデータで加入リストを更新し、メッセ
ージを共有メモリあるいはその他のプロセス間の転送機
構を経由して、選択されたプロトコルエンジンに送る。
ホストコンピュータに多重操作機能がない場合にはデー
モンが(その機能を肩代わりして)DCCのライブラリ
プログラムによって発生する干渉により作動するように
なる。選択されたプロトコルエンジンへのメッセージは
前述の通りに送られ、選択されたサーバの同定性も保持
される。プロトコルエンジンは、このサーバの同定性を
確認して、サーバのネットワークアドレスにマッピング
し、選択されたプロトコルエンジンにカプセル化されて
いる通信用プロトコルを実行し、データリンクを構成す
る。このプロトコルのあるものは、例えば、総括的なト
ランスポート層の放送プロトコルの信頼性を増したり、
あるいはインテリジェント多重放送機能を追加した付加
価値プロトコルである。この種の付加価値プロトコルに
ついて以下に説明する。このステップはステップ426
の番号で表されている。
【0210】分散型通信層352および360は、構成
切り離し機能を備えている。この機能により、要求プロ
セスはTCP、UDP、放送等の種々の通信プロトコル
を用いたり、またこれらのプロトコルを実行可能とする
コードを備えたりするためのノウハウを知っておく必要
がなくなる。プロトコルエンジンは種々の通信用プロト
コルを実行し、またDCCのライブラリはTIBチャン
ネルの概念を実行し、到来するパケットのパケットヘッ
ダにあり、TIBチャンネルに基づいた主題内容によっ
てルーチン化あるいはフィルタリングする機能を有す
る。UDPプロトコルを用いる通信用のプロトコルエン
ジンはまた、メッセージをサービス向け、または送信側
向けにパケット分割して送ったり、加入プロセスまたは
受信側向けにそのパケットを再組立して完全なメッセー
ジとして復元することもできる。UDPのトランスポー
トプロトコルにはこのような分割および再組立の機能が
含まれないので、この機能は付加価値サービスの1つで
ある。TCPのトランスポートプロトコルにはこのメッ
セージ分割および再組立の機能が含まれているので、こ
のトランスポート層機能を起こすプロトコルエンジンに
はこの種の付加価値サービスが必要とされない。
【0211】この発明のいくつかの実施例では、UDP
のプロトコルエンジンに通し番号が加えられ、パケット
ヘッダへの各々の完全なメッセージには何個のパケット
が含まれるかを指示するデータが加えられる。これによ
り受信プロセスTIB通信層のデーモンあるいはDCC
ライブラリが受信されたメッセージの完全性をチェック
し、パケットが全部受信されたか否かを確認することが
可能となる。
【0212】データパケットがネットワークから入って
くると、DCCライブラリ、サービス層および情報層を
経て要求プロセスに通される。ある実施例では、他の実
施例と同様にデーモンあるいはDCCライブラリによる
フィルタリングの代わりにサービス層に主題内容により
到来メッセージをフィルタリングする機能をもたせるこ
ともできる。さらに他の実施例では、主題内容によるフ
ィルタリングを情報層にもたせることもできる。
【0213】ある実施例ではサービス層は、図15のT
IBフォームズインタフェース231または図15のT
IBフォームライブラリ32中の呼出しプログラムによ
りデータボルマタイゼーション(vormatization)をも
実行する。
【0214】ある実施例では、要求プロセスが膨大なデ
ータベース中に必要とするであろうすべての情報を集め
ることにより主題に基づいたアドレス指定が実行され
る。サービス層はその際、データベースの適正な領域か
らデータを抽出するため、データベースアクセスプロト
コルに主題要求をマッピングするルーチンを含む。この
ような実施例での通信層は、データベース中において適
当な日付に更新するための更新プロトコルに入ってくる
最新のデータをマッピングする。
【0215】好ましい実施例では、データソースが分散
されるようにするもっと強力な概念を実行する。これに
より、新規のサーバやサービスが現在のすべてのアプリ
ケーションソフトウェアを大きく損なうことなく、シス
テムに連結することが可能となる。この発明の教示に従
って、TIBソフトウェアの情報層、サービス層、およ
び通信層を使用すると、アプリケーションソフトウェア
をそれ以下の絶えず変化しているネットワークからきわ
めて自由に切り離すことが可能となる。
【0216】好ましい実施例では、二点間方式プロトコ
ルへの主題内容によるフィルタリングは送信側のTIB
ソフトウェアで実行される。図17において、サーバ3
10、312、および316が、“TIB IF”と表
示されたブロックで示されるTIBインタフェースソフ
トウェアによってネットワークから切り離されているこ
とに注目されたい。ターミナル320もまた、同様な方
法で切り離され、ユーザーによるデータの手作業でのエ
ントリーのためのされるが可能となっている。とくにこ
のフィルタリングはデータを発行するサービス向けの情
報層によってなされる。放送用トランスポートプロトコ
ルを用いるサービスに対しては放送を受けるネットワー
クアドレスにあるTIB通信層がTIBチャンネルデー
タを情報層によって発生する要求データに基づく要求テ
ーブル中に記録されている開放要求用のチャンネルデー
タと、またサービス層によって発生するTIBチャンネ
ルデータと比較することにより、主題に対応する開放要
求をもつメッセージ以外の他のすべてのメッセージをフ
ィルタ除去する。サービスが単に、データを放送するだ
けの場合にはそのサービスにアクセスするためのサービ
ス統制は、“次のネットワークアドレスで到来するデー
タを注意して聞け、そして要求主題以外の他のメッセー
ジをフィルタ除去せよ”という簡単なものであることに
注目されたい。サービス統制は、そのとき、TIBフォ
ームライブラリに適正な機能を呼び起こすことによって
適正にデータをフォーマットし、それからそのデータを
情報層経由で要求プロセスに転送する。
【0217】通信層を使用すると、すべてのネットワー
ク構成パラメータをアプリケーションの枠外に外すこと
が可能となり、そしてシステム管理者によって、あるい
はまたネットワーク構成が変更されるときにそのパラメ
ータは改定に付される。こうしてアプリケーションソフ
トウェアは、ネットワークインタフェースから切り離さ
れ、ISOネットワーク層のすべての機能性に類似し
た、かつ少なくともそれを包含した機能性が提供され
る。
【0218】また、いくつかの実施例では、情報層、サ
ービス層、および通信層の機能性が好ましい実施例によ
るソフトウェアよりもハードウェアにおいて容易に実行
されることに注目されたい。サービス層および情報層
は、ISOモデルネットワーク、データリンク、および
物理層プラスアルファの機能性の大部分を実行する。
【0219】いくつかの実施例では、分散型通信層はデ
ータリンクを構成するために、サービス層からの一般要
求を受けるだけで使用するのにもっとも有効なプロトコ
ルか、どれかの決定を独自で行う。例えば、DCCは同
一の情報に対し、5個の別々の加入を受ける。DCCは
5個の別々のデータリンクを構成し、要求を束ねて1個
のデータリンクを構成し、到来するメッセージをプロセ
ス間転送により5個の要求プロセスの各々に分散するよ
う、選択を独自で行う。他の実施例では、DCCはどの
プロトコルを使うべきかの決定を独自で行う。しかしな
がら、“私はこれを速やかに必要とする”あるいは“私
はこれの信頼性を必要とする”といったサービス層から
の事項を受け付けることもできる。後者の場合、通信層
は同じ情報層に対する2つの要求を2つの異なったサー
ビスに選択して送ることができ、また別のネットワーク
通路によって同じサービスに2つの別々のリンクを構成
することもできる。
【0220】好ましい実施例において、通信ライブラリ
のDCCライブラリ部分は、1つのネットワークアドレ
スから他のネットワークアドレスへ如何にして最も効率
よくデータを取得するかを決定するソールド機能を提供
する。すべての反復管理や故障回復プロトコルがサービ
ス統制中にカプセル化されている。
【0221】図21および図22において、送信側での
TIBソフトウェアの3層に含まれる処理のためのフロ
ーチャートが示され、発行プロセスあるいはサービスに
加入データストリームを発生させたり、またそれをTI
Bソフトウェアを経由してネットワークを横断して加入
プロセスに送り下す状況が示されている。
【0222】ステップ430は、選択されたサービスが
加入プロセスからのメッセージを受け、データストリー
ムを開始するプロセスを示す。図17のサーバ310に
作動しているクオトロン(Quatron)サービス、サーバ
312および316にそれぞれ作動しているマーケット
フィード(Marketfeed)2000サービスやテレレート
(Telerate)サービスのような各サービスはこの発明の
教示に従った3層アーキテクチャTIBソフトウェアの
バージョンによってネットワークから切り離される。こ
れはTIBインタフェースソフトウェアを表示するサー
バボックス中のTIB IFと表示されたブロックによ
って示されている。
【0223】各サービスへのTIBインタフェースは、
フィルタリングやあるいは主題に基づいたアドレシング
をサポートしうる機能性をもつ如何なる要求からもその
サービスを切り離す。かくして、アドレスがすべての株
式価格をアメリカの株取引市場や店頭市場に放送するた
めに考案されたものであって、しかし加入が単にIBM
の株式価格に対してのみなされている場合には、サービ
スは通常通りに対応し、IBMの株式価格のみをフィル
タ除去する機能をもつ必要はない。この型サービスのた
めのサービス統制は、このような加入要求に対応してI
BMの株式価格以外のすべてのメッセージをフィルタ除
去するのに適合する。
【0224】主題内容によって編成される多くの異なっ
たページ、例えば政府財務省証券レートに関するペー
ジ、長期企業債のレートに関するページ等を発行するテ
レレートのような他のサービスは、特定のページのみを
受け付けたり、特定のページの特定欄にのみ発行するサ
ービスをさせる特別のコマンドを受け付けたりすること
ができる。このような場合、このようなサービスに向け
られたサービス層は主題により、加入要求を受け、オー
プン加入をもつ主題に関係しない放送からメッセージを
フィルタ除去するサービス統制を含む。
【0225】ステップ430はまた、TIB−INFO
ライブラリの情報層のTIB発行機能を呼び出し、加入
プロセスに向けてのデータストリームをスタートさせる
サービスのプロセスを示す。このサービスは、主題によ
ってそれ自身でフィルタリングできる能力を備える必要
はない。サービスが受ける加入要求は、このサービスが
フォーマット化され、加入プロセスのサービス統制によ
って自国語に順序づけられているので、そのサービスが
理解する“自国語”の形でなされる。
【0226】主題内容によるフィルタリングの大部分
は、サービス統制によってなされる。しかしながら、ど
こでこのフィルタリングが行われるかはサービスの型に
よって変わる。あるサービスは、そのような発行者が発
行するすべての事項が加入プロセスにとって重要となる
ようにただ1つの型のデータを発行する。例えば、図1
7では現在の時間のみを表示するリアルタイムクロック
371がアクセスサービスであり、加入の主題は“私に
いまの時間を知らせてほしい”という主題であるという
ことによってもそれは分かるであろう。このような場
合、サービス統制はきわめて簡単で、フィルタリングの
必要性はなんら起こらない。このようなサービス統制は
如何にしてデータを要求プロセスに連絡し、それにどの
TIBチャンネルを割り当てるかを単に決めるためのプ
ロトコルであればよい。
【0227】サービスは、そのサービスが正規にデータ
を如何なる方法で送っても、データ送りをスタートさせ
るということが、ステップ432に示されている。この
ようにして、サービスがテレレートである場合には、そ
れはページイメージを送ることができ、多数の異なった
ページの中のどの1つのページでも更新することがで
き、その多数のページのただ1つのページに対する加入
を理解するが、一方、クオトロンサービスはIBM株式
価格だけの加入を理解することはできない。サービス層
の種々のサービス統制は、中でも特にそのサービスがも
っていない必要な機能性を提供する。
【0228】ステップ432は、多くの異なった主題に
ついてのメッセージおよびそれらの主題の中の1つまた
は少数の主題に対する加入要求を放送するサービスを引
き受ける。他の仮定的な例では、サービスが特定のテレ
レートページのような要求された情報だけを発行する。
テレレートの場合には、加入要求は特定のページだけ
か、そのページの特定の欄だけが送られ、専用のTIB
チャンネルを用いて二点間方式通信プロトコルにより、
ページイメージを要求するように指定することもでき
る。
【0229】ステップ434は、サービス層の加入要求
への応答プロセスの実施や、その結果発生するデータの
流れを示す。ステップ434では、サービス統制は主題
内容によるどんな必要なフィルタリングでも行い、TI
Bチャンネル数を割り当てる。主題内容によるフィルタ
リングは、高速の放送プロデューサの場合におけるよう
な、加入によって要求される場合よりも広範囲で多数の
データをプロデューサが発生させるときにだけ一般に交
換データプロデューサ側でのサービス統制により実施さ
れる。このような場合には外部からのデータがネットワ
ークを圧倒的に占有することになる。TIBチャンネル
数は、ステップ434のサービス統制によって割り当て
られるが、このチャンネル数はメッセージが通信層に到
達するまでパケットへのヘッダには実際には付け加えら
れない。ある他の実施例ではTIBチャンネル数がサー
ビス統制によりパケットヘッダに書き込まれることので
きるものもある。
【0230】TIBチャンネル数の割当ては、使用され
るサービス、加入、および通信プロトコルの型に基礎を
置いているサービス統制によってなされる。放送プロト
コルが使用されつつあるところでは、ある実施例でのサ
ービス統制は、ステップ434で異なった主題に異なっ
たTIBチャンネル数を単純に割り当て、情報層上のサ
ービス層によって保持されている加入テーブル中にリス
トされている加入者にメッセージを送る。メッセージは
単に、例えばIBM株式価格の更新に対してTIBチャ
ンネル100をモニタせよ、というようなものである。
TIBチャンネルデータはもっぱら、メッセージを適正
な加入プロセスに送るために受信ホストのTIBソフト
ウェアによって使用されるということに注意すべきであ
る。TIBチャンネルは、論理チャンネルネットワー
ク、ルーチン化、あるいは他のネットワーク、データリ
ンク、または物理層発行とは何等の関係ももたない。
【0231】他の実施例では、放送プロトコルの場面
で、サービス統制は加入リスト診断し、オープン加入の
付いた主題以外の主題に関するすべてのメッセージをフ
ィルタ除去する。この主題に対し、TIBチャンネルが
割り当てられ、メッセージは顧客プロセスに送られるメ
ッセージに対し、どのTIBチャンネルを聞けばよいか
という加入プロセスに連結したTIBソフトウェアに送
られる。
【0232】二点間方式プロトコルの場合には、加入要
求は通常、加入プロセスに連結した情報層によって選択
されたサービス統制によって主題に割り当てられたTI
Bチャンネル数を含む。このような場合には、ステップ
434は、加入要求において受信されたTIBチャンネ
ル数をサービスから発生するメッセージに割り当てるプ
ロセスを表す。二点間方式プロトコルが選択された場合
には特定のTIBチャンネルが使用されるべきであるこ
とを指定するテレレートページへの加入の典型的な場合
には、サービス統制は二点間方式プロトコルエンジンを
選定することによりページイメージを送る。サービス統
制はまた、加入を確認し、かつ加入プロセスのTIBソ
フトウェアにそのページへの更新の放送のための特定の
TIBチャンネルを聞くように勧告するメッセージを送
る。受信側のTIBソフトウェアは、その後で更新のた
めのTIB放送チャンネルを開放する。
【0233】ステップ436は、サービス統制がそれを
呼び出す後にDCCライブラリによって実行されるプロ
セスを表す。好ましい実施例でのDCCライブラリの独
占的機能は、サービス統制あるいは加入要求が使用され
るべき通信プロトコルを指示しない場合に、如何なる特
定のネットワークアドレスに対してもメッセージを送る
最良の方法を決定することである。ある実施例では、情
報層のDCCライブラリはサービス層または加入要求か
らメッセージを送る方法についての暗示を受け取るが、
しかしそれがさらに有効であると考えられる場合には別
のプロトコルを選択することもできる。
【0234】さらに、DCCライブラリは、加入者の数
のような絶えず変化している条件に基づいて、使用され
つつある通信プロトコルを変更することができる。例え
ば、インテリジェントマルチタスクプロトコルを選択す
ることができる(詳細は後述)。このプロトコルでは、
加入者の数が一定の切り離し数(システム管理者により
プログラム化されうる)以下である場合には、二点間方
式プロトコルが使用され、また加入者数が切り離し数を
超える場合には、放送プロトコルへの切替えが自動的に
行われる。好ましい実施例では、“ハイ・ウォータ”お
よび“ロー・ウォータ”のマークが後述のように使われ
る。他の実施例では、単一の放送メッセージに対立する
ものとしての多重二点間方式メッセージを送るためのコ
ストおよび効率に基づく切替えポイントを設定するのに
コスト機能(どんなコスト機能でもよい)が使用でき
る。
【0235】ステップ436はまた、サービスのローカ
ルメモリからメッセージを検索し、それを図15のプロ
トコルエンジン/デーモン30Bに送るためのプロセス
間移動プロセスに入れるプロセスを示す。ステップ43
8は、メッセージを加入プロセスに転送するためのサー
ビスのプロトコルエンジンによって実行されるプロセス
を示す。もし使用中のトランスポートプロトコルがUD
Pである場合には、プロトコルエンジンはある実施例で
はパケット化機能を果たす。これはメッセージをパケッ
トに分割して送信側のヘッダデータに付加し、受信側で
正規の順序にパケットを再組立するプロセスである。T
CPトランスポートプロトコルは、それ自身でパケット
化を行うので、このトランスポート層を呼び起こすプロ
トコルエンジンはパケット化する機能をもつ必要はな
い。非パケット型プロトコルエンジンはまた、その他の
タイプのトランスポートプロトコルに対しても存在す
る。
【0236】プロトコルエンジンはさらに、加入プロセ
スをメッセージヘッダに走らせるマシンのポートアドレ
スを記入したり、あるいは他の付加価値サービスを実行
することもできる。付加価値サービスには、高信頼性放
送やインテリジェントマルチキャスティングなどがあ
る。高信頼性放送サービスは後で説明されるが、基本的
にはこのサービスは現在の放送通信プロトコルには存在
しない機能を提供して信頼性を増大させるものである。
【0237】プロトコルエンジンは、それによってオペ
レーティングシステム中のトランスポート層ルーチンと
通信する標準的なプログラマインタフェースを備える。
プロトコルエンジンによって実行されるステップは、メ
ッセージを加入プロセスに伝達するようにトランスポー
ト層の機能性を呼び起こして、ネットワーク、データリ
ンク、および物理層プロトコルを動かすようにさせるこ
とである。正確には、これらのステップがどんなもので
あるかを詳細に説明することはできない。というのは、
これらのステップがネットワークの構造、構成、および
プロトコル並びにトランスポート層へのインタフェース
等の要因に高度に依存してその詳細を異にするからであ
る。上記の要因のどれかが変化すれば、プロトコルエン
ジンはネットワークの変化に対応して変更されねばなら
ない。しかし、このプロセスではこの際、構成切り離し
を備えることにより、アプリケーションソフトウェアを
変更する必要はなくなる。
【0238】メッセージはネットワークを通過した後、
加入プロセスにより共有されるポートアドレスをもつネ
ットワークインタフェースカードによりピックアップさ
れる。このプロセスはステップ444で示されている。
ネットワークカードはメッセージをバッファリングし、
到来メッセージを取り扱うトランスポート層ルーチンに
割込みを発生させる。
【0239】ステップ446は、トランスポート層ソフ
トウェアが図17の層352または360などの通信層
においてデーモン30Bの該当するプロトコルエンジン
を呼び出すプロセスを示している。到来メッセージやパ
ケットは、共用メモリなどの何らかのプロセス間転送機
構により該当するプロトコルエンジンへ引き渡される。
好ましい実施例においては、デーモンは多重タスク処理
マシーン上においてバックグラウンドを走行する継続プ
ロセスとなっている。他の実施例では、デーモンは割込
み駆動され、メッセージを受け取ったとき、または転送
しようとするときに実行されるにすぎない場合もある。
ステップ446はまた、TCPその他のトランスポート
層プロトコルに対するパケット再組立プロセスを示し、
ここでパケット再組立はトランスポート層によって行わ
れる。
【0240】ステップ448は、到来メッセージを処理
し、ルーチン化するためにデーモンにおいてプロトコル
エンジンによって行われるプロセスを示す。
【0241】UDPトランスポート層プロトコルエンジ
ンにおいては、パケット再組立が行われる。このことは
もちろん、データ発生プロセスにおけるプロトコルエン
ジンがパケットヘッダに対し、データを正しい順序で再
組立できるように一連番号を付加したことを意味する。
これにより、すべての一連番号を、本来到着していなけ
ればならない一連番号を示すデータと照合し、すべての
パケットが受け取られたかどうかを判定するといった他
の付加価値サービスを実行することもできる。実施例に
よっては、予期される一連番号に関するデータが、パケ
ットヘッダにおいてこの目的に使用されるフィールドに
書き込まれる。他の実施例では、このデータは別のメッ
セージとして送られる。
【0242】もしパケットが脱落している場合、これら
の実施例においては、受信通信層からデータ発生プロセ
スの通信層にメッセージが自動的に送り返され、脱落も
しくは誤伝送されたパケットの再転送を要求する。この
ことは当然、データプロセスのための通信層が全パケッ
トをメモリに記憶し、全パケットが順調に受け取られた
ことを示す肯定応答メッセージを受け取るまで再転送の
可能性に備えてそれらを保持することを意味する。
【0243】ステップ448はまた、受信メッセージに
おいて通信層デーモン/プロトコルエンジンが行う主要
機能を示している。その機能はヘッダにおけるTIBチ
ャンネル情報に従って、該当する加入プロセスに対する
メッセージをルーチン化する。プロトコルエンジンは、
ヘッダにおけるTIBチャンネル番号をサービス統制に
よってエンジンに送られた現在の加入リストと照合す
る。加入リストには、いずれか特定のTIBチャンネル
に割り当てられたメッセージにおける関連サービス統制
コールバックルーチンおよび加入プロセスに対するポイ
ンタが含まれている。プロトコルエンジンはまた、メッ
セージが主題への加入者に関与しない加入プロセスTI
Bソフトウェアに到達する実施例においては、TIBチ
ャンネル番号によってメッセージをフィルタリングす
る。これはサービス層や情報層で行ってもよいが、通信
層で行うのがもっとも効率的である。
【0244】プロトコルエンジンは続いて、メッセージ
を該当するプロセス間転送機構、通常は共用メモリある
いは UnixTM パイプに送り、ステップ450に示すDC
Cライブラリに割込みをかける。この割込みによってそ
の後の処理は、該TIBチャンネルにおける加入および
主題が開放されたときにDCCによってプロトコルエン
ジンに対して識別された該当DCCライブラリコールバ
ックルーチンへと向けられる。このようにして呼び出さ
れたDCCライブラリルーチンは、加入を開始した加入
プロセスへ、またその一部へリンクされる。DCCライ
ブラリコールバックルーチンは次いでサービス層に割込
みをかけ、メッセージに係わるポインタに送る。
【0245】ステップ452は、到来メッセージについ
てサービス層が行うプロセスを表す。DCCライブラリ
からの割込みにより、DCCライブラリを通じてサービ
ス層によって送られた原加入メッセージにおいて識別さ
れたサービス統制コールバックルーチンが実行される。
コールバックルーチンは、ある実施例においては、必要
なデータフォーマット変換を行い、また他の実施例では
主題フィルタリングを行う。次いで、サービス統制が情
報層へ割込みをかけて情報層のコールバックルーチンを
実行させる。この割込みにはメッセージに対するポイン
タが含まれている。
【0246】ステップ454は、情報層による到来メッ
セージの処理を示す。実施例によっては、情報層に到達
したすべてのメッセージが、データが要求された主題と
正確に一致することをサービス層が保証しないものもあ
る。ステップ454に、これらの実施例においてTIB
チャンネルコードを加入の主題と比較し、それらが一致
することを確認するプロセスが示されている。
【0247】ステップ456は、主題における一致があ
った場合に、加入プロセスのコールバックルーチンに対
して割込みをかけるプロセスを示す。一致がない場合
は、割込みはかけられず、デーモンによって新たなメッ
セージの監視を続けながら、すべての割込み駆動プロセ
スが終了し、次の割込みがあるまでコンピュータ資源を
解除する。
【0248】ステップ458は、加入プロセスが元来そ
のデータを求めた目的に関わりなく行われるメッセージ
データの使用プロセスを示す。
【0249】高信頼性放送は、トランスポート層の通信
プロトコルを補完し、かつ向上させるために通信層が用
いることのできる付加価値サービスの1つである。従来
のトランスポート層によって提供されてきたこれまでの
放送プロトコルは信頼性が低い。例えば、パケットやメ
ッセージを損なったり破壊したりする回線ノイズが存在
する場合、あるいはネットワークインタフェースカード
がバッファにオーバーフローする場合、パケットあるい
はメッセージ全体が失われる可能性があり、この場合メ
ッセージを聞き取るプロセスはそのメッセージを全く得
られないか、不完全もしくは誤ったメッセージを得るこ
とになる。従来の放送には肯定応答機能はなく、したが
って上記プロセスの一部でメッセージが失われたり、不
完全もしくは誤メッセージが得られたりすると、転送プ
ロセスは発見することがない。これは100パケットご
とに1回、または10パケットごとに1回起こる可能性
がある。これまでの従来技術によるトランスポート層放
送プロトコルは、ホストのネットワークアドレスで受け
た放送メッセージを上記ホスト上を走る複数プロセスに
分散させる機能性、すなわちプログラムコードを備えて
いない。
【0250】この発明の教示に従う通信層は、その上に
構築された高信頼性放送プロトコルを実行し、かつ従来
のトランスポート層放送プロトコルを補完するために少
なくとも1つのプロトコルエンジンを備える。図23、
図24に、通信層によって実行される高信頼性放送プロ
トコルの1実施例におけるフローチャートが示されてい
る。ステップ500は、DCCライブラリがサービス統
制から、特定のTIBチャンネルが割り当てられたメッ
セージを送れという要求を受け取るプロセスを示してい
る。実施例によっては、この要求に、高信頼性放送プロ
トコルによってメッセージを送れという要求または命令
を含めてもよい。高信頼性放送プロトコルがサービス統
制により委任された実施例においては、サービス統制が
特定チャンネルに対する加入者数を判定し、かつ同一メ
ッセージを全加入者のポートアドレスへ何度も送るコス
トと、加入者の関心の対象となっている主題におけるデ
ータはTIBチャンネルXX(この主題に割り当てられ
ているTIBチャンネル番号)を聞くようにとの全加入
者へのメッセージと共に放送によって一度だけ該メッセ
ージを送るコストとを比較判定する。図23、図24に
示した実施例では、このコスト判定機能が通信層DCC
ライブラリ機能に含まれている。
【0251】ステップ502は、DCCライブラリによ
って行われる上記コスト判定プロセスを示している。こ
の機能を実行するDCCライブラリの特定プログラム
は、加入リストをチェックし、当該メッセージに割り当
てられたTIBチャンネルに対する加入者数をカウント
する。次いで、メッセージを二点間通信でこれらの全加
入者に送るコストが所望のコスト評価機能を用いて評価
される。実施例によっては、コスト機能を加入者数と所
定の打切り数との比較としてもよい。使用する特定のコ
スト機能は、この発明の本義にとって本質的に重要なも
のではない。
【0252】複数の加入者にメッセージを二点間通信で
送ることのコストは、データ生成ソフトウェアにより同
一メッセージをネットワーク上に何度も乗せなければな
らないことである。1つのメッセージを放送することの
コストは、すべてのネットワークカードがメッセージを
ピックアップし、プロセス間転送によってメッセージを
TIBデーモンに転送するホストのオペレーティングシ
ステムにおける転送プロトコルプログラムが中断され
て、該メッセージがホスト上を走るクライアントプロセ
スにとって関係のないものであるという結果が発生しう
ることである。コンピュータ資源は、この結果その種ホ
ストのいかなるものにおいても浪費されることとなる。
【0253】ステップ504は、上記コストを評価し、
二点間通信プロトコルか高信頼性放送かのいずれでメッ
セージを送るかを決定するためにDCCライブラリが行
うプロセスを示している。このTIBチャンネルに対す
る加入者数が十分少ないと判定された場合、二点間通信
プロトコルでメッセージを送る決定がなされる。ステッ
プ506に、二点間通信プロトコルエンジンで呼び出
し、そのプロトコルを使ってメッセージを送るプロセス
を示す。
【0254】加入者数が効率的な二点間通信による転送
を行うには大き過ぎる場合、DCCライブラリはステッ
プ508に示す高信頼性放送プロトコルエンジンを呼び
出す。
【0255】ステップ510は、高信頼性放送プロトコ
ル処理の第1ステップを示す。この発明の教示による高
信頼性放送プロトコルは、同一ホストの多重加入プロセ
スの実行をサポートしており、各々の加入プロセスがエ
ラーなくメッセージの全パケットを受け取り、かつメッ
セージの受取りに対して肯定応答することを要求する。
これらが順調に行われることを保証するために、各パケ
ットのヘッダに一連番号を付加する必要があり、一連番
号(メッセージ全体の受取りを完了するためにはその一
連番号のすべての受取りを完了していなければならな
い)を示すある種のデータを加入プロセスに送信しなけ
ればならない。実施例によっては、一連番号のみがパケ
ットヘッダに付加され、メッセージ全体から成る一連番
号に関するデータが別のメッセージによって該メッセー
ジに割り当てられたTIBチャンネルへの開放加入を有
する各プロセスに送られる。他の実施例では、メッセー
ジ全体から成る一連番号が第1パケットのヘッダまたは
全パケットのヘッダに付加される。TIB一連番号は1
つのメッセージの全パケットを受取り完了したかどうか
を判定するためにのみ使用されるため、パケットに付加
された一連番号は、TCPプロトコルにおけるオペレー
ティングシステムのトランスポートプロトコルのパケッ
ト化機能によって付加された一連番号とは異なる。実施
例によっては、全パケットが受取り完了したかどうか判
定するために、トランスポートプロトコルによって付加
されたパケット一連番号を加入プロセスのTIB通信層
が使用することもできる。UDPトランスポート層プロ
トコルを補完するための高信頼性放送プロトコルエンジ
ンの他の実施例においては、プロトコルエンジンのパケ
ット化機能は、あるメッセージの全パケットの受取りを
完了したことを確認する際、トランスポート/ネットワ
ーク/データリンク/物理層機能ばかりでなくTIB通
信層機能に対しても使用することのできる一連番号を付
加する。
【0256】一連番号が付加された後、パケットは、ス
テップ512に示すようにパケットの一部または全部を
後に再転送する必要が生じた場合に備える保存のための
一連番号と共に再転送バッファに書き込まれる。
【0257】メッセージを種々の加入プロセスに送るこ
とが可能となる前に、高信頼性放送プロトコルエンジン
はTIBチャンネルデータを各パケットのヘッダに付加
し、このチャンネルに対する開放加入を有するものとし
て加入テーブルにリストアップされている各加入プロセ
スに対して、加入要求主題に関するデータについてはT
IBチャンネルXX(ここに、XXはこの主題に割り当
てられたTIBチャンネル番号)を聞くようにとのメッ
セージを送る。
【0258】ステップ516は、該当するオペレーティ
ングシステムプログラムを呼び出してポインタを各パケ
ットに送ることによりトランスポート層の標準放送プロ
トコルを介してパケットを転送するプロセスを示してい
る。
【0259】図25、図26に、高信頼性放送プロトコ
ルにおける加入プロセスの通信層による処理のフローチ
ャートが示されている。ネットワーク上でのパケット放
送は、ネットワーク上のすべてのホストのすべてのネッ
トワークインタフェースカードによってピックアップさ
れ、これは続いて種々のホストのオペレーティングシス
テムのトランスポートプロトコルソフトウェアを呼び起
こす。トランスポートプロトコルは次いで、放送メッセ
ージが到着した通信層をデーモンに知らせ、パケットを
プロセス間転送機構、通常は共用メモリに送り込む。続
いてデーモンが、ステップ518に示す通り、パケット
をプロセス間転送機構から取り込む。
【0260】ステップ520は、到来パケットのTIB
チャンネル番号をチェックしていずれかの開放加入のT
IBチャンネルに対応するかどうかを判定するプロセス
を示す。対応すれば、信頼性一連番号が、高信頼性放送
プロトコルエンジンにより、完全なメッセージの受取り
を完了するためにはどのパケットおよび対応一連番号の
受取りを完了していなければならないかを示すデータと
照合される。実施例、とくにこの発明のTIBインタフ
ェースソフトウェア以下の層でエラーチェック(EC
C)が行われないトランスポート、ネットワーク、デー
タリンク、および物理層を使用した実施例においては、
エラー検出およびエラー補正がパケットに添えられたE
CCビットを用いてパケット上で行われる。ECCビッ
ト数が存在する場合に補正範囲を超えたエラーが発生す
ると、そのパケットが誤伝送されたとしてマークされ
る。
【0261】もし存在する場合、どのパケットが脱落も
しく誤伝送されたかを判定した後、受信プロトコルエン
ジンは引き続いてメッセージをサービスプロセスまたは
発行プロセスの通信層に送り返す。このメッセージは、
全パケットを順調に受け取ったことを肯定応答するか、
または特定のパケットを再転送するように要求する。こ
れはステップ522で示されている。
【0262】ステップ524は、データ生成プロセスま
たはサービスの通信層による脱落もしくは誤伝送パケッ
トの再転送プロセスを示す。実施例によっては、脱落も
しくは誤伝送パケットはそれが発生した加入者にのみ二
点間通信で送られる。他の実施例では、脱落もしくは誤
伝送パケットは、TIBチャンネルXX(XXはパケッ
トが放送されるTIBチャンネル)を聞く必要のある加
入プロセスに送られる通知メッセージと共にノードに放
送される。ここで実際に用いられる“チャンネルXXを
お聞き下さい”というフレーズはその転送の実際の転送
周波数、タイムスロット、その他の物理特性とは関係し
ない。それは単に、脱落もしくは誤伝送パケットがこれ
から少しの間ネットワーク上に現れること、およびそれ
らのパケットがヘッダデータにおいてTIBチャンネル
XXルーチン化情報を有していることを意味するに過ぎ
ない。
【0263】ステップ526は、ステップ520の処理
と同様、交換パケットが正しく受け取られたことを受信
通信層がチェックするプロセスを示す。正しく受け取ら
れた場合、受信通信層はこの事実をサービスの通信層に
肯定応答する。そうでない場合、脱落もしくは誤伝送パ
ケットの再転送要求が転送プロセスの通信層にもう一度
送られ、この後再転送が行われ、すべてのパケットが順
調に受取り完了されるまでプロセス全体が繰り返され
る。全パケットが順調に受け取られたという受信通信層
から転送通信層への最終の肯定応答メッセージにより、
転送通信層の高信頼性放送プロトコルエンジンがステッ
プ528に示す再転送メモリからすべてのパケットを放
出する。
【0264】ステップ530は、高信頼性放送プロトコ
ルエンジンがTIBチャンネルデータを加入リストと照
合してどのクライアントプロセスがこのTIBチャンネ
ルに割り当てられてたデータを要求しているかを判定す
るルーチン化プロセスを示している。いったんこの情報
が知れると、プロトコルエンジンは、このTIBチャン
ネルのデータへの加入が入力されたすべてのサービス統
制に該メッセージに対するポインタを送る。実施例によ
っては、プロトコルエンジンは、加入プロセスのための
分離プロセス間転送機構にメッセージのコピーを乗せ
る。他の実施例では、共用メモリがそのプロセス間転送
機構となり、該メッセージの同じコピーに対するポイン
タがすべての加入プロセスに送られる。加入プロセスは
次いで、情報層またはサービス層におけるメッセージへ
のアクセスのために調整を行う。
【0265】ステップ532は、加入が入力された際に
指定されたコールバックルーチンを実行させる連続割込
みによって、サービス層および情報層を介して加入プロ
セスへメッセージを送る前述のプロセスを示すものであ
る。加入する主題との一致を保証するため、実施例によ
っては、主題によるフィルタリングをサービス層および
/または情報層で行うこともできる。
【0266】図27は、インテリジェント・マルチカー
スト(Intelligent Multicast)通信プロトコルによっ
てデータを転送するための処理のフローチャートであ
る。このプロトコルは、主題およびこの主題に開放され
ている加入者数に応じて、各メッセージに対して二点間
通信プロトコルまたは高信頼性放送プロトコルのいずれ
かを使用する。プロトコルの選択は、メッセージが発行
されるときの当該メッセージに対する加入プロセス/ネ
ットワークアドレスの数に応じて各メッセージごとに自
動的に行われる。ある主題に対する加入者数が十分変化
した場合、転送プロトコルは自動的に変化する。
【0267】ステップ600は、データ発行プロセスの
サービス層において加入要求を受け取り、この加入を加
入プロセスに沿って通過させ、加入テーブルに新規の加
入をエントリーするプロセスを示す。
【0268】ステップ602で、サービスにより情報層
を介してサービス層へ1つのメッセージが発行される。
そのメッセージの主題は、直前に行われた新規の加入に
おける主題に関するものであってもよいし、なくてもよ
い。サービス層は、そのメッセージについて情報層が送
った主題データを調べ、TIBチャンネルがステップ6
04に示される通り加入プロセスのサービス層および情
報層によって割り当てられていたなら、その1つのTI
Bチャンネルを情報層と協同して該主題に割り当てる。
【0269】ステップ606において、サービス統制は
該メッセージの主題に対する加入者数を、二点間通信転
送コストと高信頼性放送による転送コストとの対比に基
づいたプログラマブルな打切り数と比較する。そのプロ
グラマブルな打切り数はシステムアドミニストレータに
より設定、変更ができ、所望のコスト機能に基づくもの
であるが、本質的にこれはこの発明が依拠する重要性を
もつものではない。好ましい実施例においては、そのコ
スト機能はハイ・ウォータマークとロー・ウォータマー
クから構成される。加入者数がハイ・ウォータマークを
超えると、メッセージは高信頼性放送によって送られ
る。この主題に対する加入者数がその後ロー・ウォータ
マーク以下になると、その後のメッセージは二点間通信
で送られる。実施例によっては、該コスト機能を自動学
習プログラムとすることができ、これはネットワークお
よび加入要求を聞き取って待ち時間または他のネットワ
ーク効率基準に基づいてその決定を行うものである。
【0270】ステップ608は、加入者数が打切り数よ
り大きい場合に、高信頼性放送プロトコルエンジンを呼
び出すプロセスを示す。メッセージは続いて、このプロ
トコルエンジンに向けられたプロセス間転送機構に送り
込まれる。
【0271】加入者数が打切り数を下回る場合、二点間
通信の方が効率的であるので、サービス統制は二点間通
信プロトコルエンジンを呼び出し、ステップ610に示
すこのプロトコルエンジンに向けられたプロセス間転送
機構にメッセージを送り込む。
【0272】ステップ612は、次のメッセージまたは
加入を待ち、加入を受け取った場合はステップ600
へ、また他のメッセージを受け取った場合はステップ6
02へ戻るプロセスを示している。
【0273】以上のように、この発明の思想は、ソフト
ウェア層を使用することにより、アプリケーションが従
来切り離されることがなかったような方法でアプリケー
ションをコンピュータネットワーク通信技術の複雑さか
ら切り離すことにある。例えば、情報層によって提供さ
れる主題に応じたアドレス指定の切り離しは、とくにサ
ービス層によって提供されるサービス切り離しと組み合
わせたとき、新規なものと思われる。新たなネットワー
クトポロジーなどの条件を変更しながら、さらに新た
な、または変更したサービスおよび/またはサーバをネ
ットワークに追加しながらサービスおよび構成の切り離
しを提供するために、新たにサービス統制およびプロト
コルエンジンを追加することによって容易に変更できる
ような拡張サービスや通信層を備えることは、新規なも
のであると思われる。多くの多様な通信プロトコルをカ
プセル化するように設計された多くの異なるサービス統
制を含むサービス層を備えることは新規である。例え
ば、これらのサービス統制は、端末に座るユーザーに対
してテレレートのようなサービスからオペレーティング
システムプログラムまで、他のマシーンにおける他のプ
ロセス(あるいは、同一マシーンや同一プロセスの別の
部分さえも)など、あらゆるものとの通信を取り扱うこ
とができる。さらに、このサービス層の故障監視・回
復、分配・反復管理、そして機密保護/アクセス制御サ
ービスを実行する能力は新規なものである。さらに、通
信層の構成切り離しおよび付加価値サービスを備えるこ
とは新規である。
【0274】この発明の教示は、これらの層の任意の1
層を使用することも、あるいはその種類が特定の機能や
本明細書で規定されているそれら機能の組合せを実行す
るものであるようなクラスもしくは類のソフトウェアプ
ログラムを規定している種々の実施例における3層の任
意の組み合わせを使用することも意図している。
【0275】以下に示すのは、種々のライブラリプログ
ラムと、この発明の教示に従う通信インタフェースの1
実施例における全体構成および機能化のより詳細な説明
である。
【0276】インフォメーション・ドリブン・アーキテ
クチャ(Information Driven Architecture)、テクネ
クロン・インフォメーション・バス(Teknekron Inform
ationBus)、TIB、TIBINFO、TIBFORM
S、サブジェクト・ベースト・アドレッシング(Subjec
t-Based Addressing)、およびRMDPはテクネクロン
・ソフトウェア・システムズ社(Teknekron Software S
ystems, Inc.)の商標である。
【0277】
【用語集】以下に示すのは、本発明を説明するために用
いた言葉やフレーズの定義をリストアップしたものであ
る。
【0278】アクセス手順: 特定のサーバ、サービス、アプリケーションからのデー
タにアクセスする通信プロトコルよりも多くの概念を含
むものであり、サービス申し込み、サービスプロトコル
よりも広い概念である。アクセスの対象となる特定の主
題に関する情報を要求する手続を含んでいる。例えば、
要求が「データの時間を私に下さい」というものであれ
ば、この要求がサーバーレイヤー上ににマッピングされ
たアクセス手順は、要求を起こしたユーザのコンピュー
タ上のオペレーティングシステムへの呼びとすることが
可能である。また、アクセス手順は、ユーティリティプ
ログラムの呼出しを含んでいる。
【0279】アプリケーション:オペレーティングシス
テムプログラム以外の、コンピュータで実行するソフト
ウェアプログラム。
【0280】構築的(Architectural)切り離し: 本発明の教示を用いたシステムの特徴。この特徴は、
ービス及びサービス統制に主題をマッピングする主題の
主動型(subject-based)アドレスサービスを実行する
のに必要な情報層の機能によって与えられる。サービス
及びサービス統制からこれらの主題の情報を得ることが
できる。主題主動型アドレスは、データ消費プロセス
(data consuming process)のために、ネットワーク構
造及び特定の主題がネットワークデータ上のどこで見つ
けることが出来るかを知る必要性を取り除く。
【0281】フォームクラスの属性:クラスが原始であ
るか、構成されたものであるかというような、フォーム
クラスの性質。サイズは別の属性である。
【0282】クラス:クラス中の全てのフォームが同じ
フォーマットと同じ意味を有するようなフォームの群の
定義。
【0283】クラス/クラス記述子/クラス定義:同じ
内部表現、同じ構成及び同じ情報を有する特定のデータ
レコード群すなわち「フォーム」の構造と編成の定義。
クラス記述子というのは、クラス定義のそれらの全ての
パラメータを定めるデータを格納するメモリ内のデータ
レコードすなわち「オブジェクト」のことである。クラ
スというのはフォームの名称であり、クラス定義は群の
共通な特徴についての情報である。クラスは原始クラス
と構成されたクラスの何れかとすることが出来る。原始
クラスは、クラスを独特に識別するクラス名(この名に
はクラス番号をすなわちクラスidが組合わされる)
と、1つのデータ値の表現の仕様とを含む。表現の仕様
は、ストリング20EBCDID等のような、ホストコンピュ
ータと依頼人アプリケーションが理解する周知の原始で
ある。構成されたクラスの定義は独特の名称を有し、こ
の種のフォームにおいて見出されるの多数のフィールド
を名称と内容により定義する。フィールド名と、それの
データのフォームクラスを与えることにより、各フィー
ルドは指定される。というのは、各フィールド自体がフ
ォームだからである。フィールドというのは1つのフォ
ームの代りに同じクラスのフォームのリストとすること
が出来る。構成されたクラスの定義は実際のデータを含
まないが、クラス記述子は、この種のフォームの編成と
意味を定めるデータのフォーム中に実際のデータを含
む。フォームの例を定める全ての実際のデータは原始ク
ラスのフォームで格納され、原始クラスで格納されてい
るデータの種類は原始クラスのクラス定義で指定され
る。たとえば、「年令」という名称の原始クラスは、整
数 3の種類の1つのフィールドを有する。それはフォ
ームの年令クラスに対するクラス定義において定義され
る。このクラスのフォームの例は3桁の整数値を含む。
【0284】クラスデータ構造:特定のクラスについて
の、クラスマネジャーに格納されている全てのデータ。
クラス記述子はこのデータ構造の最も重要な部分である
が、より多くの情報があることもある。
【0285】クラス定義:フォームクラスの仕様。
【0286】クラス記述子: フォームクラス定義を格納するメモリオブジェクト。ク
ラスマネジャーにおいては、それはフォームとして格納
される。ディスクでは、それはASCII ストリングとして
格納される。基本的には、それはクラス定義の為の特定
の表現すなわちフォーマットである。それはASCII ファ
イル型またはフォーム型の表現とすることが出来る。ク
ラスマネジャーが必要とするクラス記述子を持っていな
いとすると、クラス記述子の為にクラス定義を作成した
外部アプリケーションにクラスマネジャーは尋ねる。そ
れから、クラス、クラスマネジャーは、外部アプリケー
ションにより発生された時のフォームでクラス記述子を
受ける。あるいは、クラスマネジャーは、意味に依存す
るオペレーションを要求しているアプリケーションによ
りそれに対して識別された、またはクラスマネジャーに
より維持されているレコード中で識別されたファイルを
探索する。それらのファイルに格納されているクラス定
義はASCII テキストフォーマットである。それからクラ
スマネジャーは、そのようにして見つけたASCII テキス
トを、各種のフィールド名と、各フィールドにの内容に
ついての仕様に構文解析することにより、固有のフォー
マットのクラス記述子へ変換する。
【0287】クライエントアプリケーション:データ消費またはデータ提供処理、すなわち、本発明の
通信インターフェイスへ結合されたオペレーティング・
システム・プログラム以外のコンピュータ・プログラ
ム。
【0288】コンピュータネットワーク:ローカル及び
ワイドエリアネットワークのような接続ハードウェアに
接続する複数のコンピュータ間のまたは操作システムや
他のソフトウェアプログラムやプロセッサ間のユニック
スパイプを含む分担メモリによって与えられた機能を用
いて同じコンピュータ上で作動する複数のプロセッサ間
のデータパスウエイ。
【0289】切り離し構成: 本発明の教示を満たす分配通信層によって必然的に与え
られたコンピュータシステム/ネットワークの特徴であ
る。セットアップの仕方またコンピュータネットワーク
の為の特定の配列の通信網の破壊の仕方についての詳細
のプロトコルを要約することによって、この層は依頼
ロセスを、データの提供または消費であれこれらの詳細
を知ることから開放する。
【0290】ファイル構成: 使用中の種々のソフトウェアコンポネント、レコード、
フォームの特性及び属性及びパラメータを記述するデー
タを保存するファイル。
【0291】構成されたフィールド他のフォームまたはデータレコードを含むフィールド
【0292】消費者(Consumer):クライエント(依頼人) 及び消費者アプリケーションま
たはデータを要求する最終ユーザ。
【0293】切り離しデータ分配(Data distribution
decoupling): 本発明の教示に係る希望のサービスを提供するサーバー
の為のネットワークアドレスを理解し提供する必要性
らクライエント(依頼人)アプリケーションを開放する
通信インターフェイスソフトウェアの機能。
【0294】切り離し: それによりデータを交換する。通信プロトコル、データ
フォーマット、他の全てのプロセス、コンピュータ及び
ネットワークのロケーションを知る必要からプロセス、
ソフトウェアモジュールまたはアプリケーションを自由
にすること。
【0295】分配通信層(Distributed commnuication
layer): 本発明の教示に係る装置及び方法の一部分。これは、
ービス層によって特定されたアクセス手続を、特定のネ
ットワークまたは透明層プロトコルエンジンへマッピン
グし、選択されたネットワークプロトコルエンジンを使
用する特定されたサービスに必要な通信チャンネルをセ
ットアップする。
【0296】フィールド: 各々には異なる名称が付けられ、異なることを各々意味
する1つまたは複数の構成要素を有することができるフ
ォームの例の内の1つの構成要素。フィールドが実際の
データを含んでおれば、そのフィールドは「原始(プリ
ミティブ)」であり、他のフォーム、すなわち、他のフ
ィールドの群、を含んでいれば、そのフィールドは「構
成(構造化)された」である。別のフォームを含む少な
くとも1つのフィールドを有するデータレコードまたは
フォームは「入れ子にされている」といわれる。
【0297】第1のフォームの構成されたフィールドに
記録された第2のフォームはそれ自身のフィールドを有
する。それらのフィールドは原始フィールドと構成され
たフィールドの何れかとすることが出来る。したがっ
て、無限に複雑な入れ子式の層を生じることがある。
【0298】外部の(Foreign):別のコンピュータまた
はソフトプロセスのフォーマットデータレコードと異な
ったフォーマットデータレコードを使用するコンピュー
タまたはソフトウェアプロセス。
【0299】フォーム: クラス記述子、またはクラス定義に対応するクラス記述
子番号を含むフィールドを含むことにより、構造が自己
記述的であるデータレコードまたはデータオブジェク
ト。それらのクラス記述子はフォームのクラスであっ
て、それの例の全てが、同じ内容表現と、同じ編成と、
同じ意味情報を有するようなクラスを記述する。このこ
とは、このクラスのフォームの全ての例、すなわち、発
生、が同じ名称のフィールドを同数有し、対応するフィ
ールド内のデータが同じ表現を有し、対応するフィール
ド内のデータが同じ表現を有し、かつ対応する各フィー
ルドは同じことを意味する。1つのユニットのデータだ
けを格納するフォームが原始フォームである。フィール
ドと呼ばれる多数の内部構成要素を有するフォームが構
成されたフォームである。各フィールドは原始フォーム
または構成されたフォームとすることが出来るフォーム
そのものである。各フィールドは別のフォームのデータ
またはクラスid、すなわち、クラス番号、を格納す
る。
【0300】フォーマットオペレーション: 1つのフォーマットから別のフォーマットフォーム
換するオペレーション。
【0301】フォーマットまたは: 構造データレコードのデータ表現及びデータ編成、すな
わち、フォーム。
【0302】取扱い(ハンドル): オブジェクト、レコード、ファイル、クラス、記述子、
フォーム等に対するポインタ。このポインタはオブジェ
クトに対するアクセス経路を本質的に定める。絶対アド
レス、相対アドレス及びオフセットアドレスが取扱いの
例である。
【0303】ID:フォーム、レコード、クラス、メモ
リオブジェクト等の為の独特の識別子。この明細書にお
いてクラスに割当てられたクラス番号がIDの例であ
る。
【0304】情報層(情報レイヤー): 本発明の教示に係る装置及び方法の一部分。これは、こ
れらのサービスと通信する為に使用される要求主題及び
サービス統制の情報を供給するサービス名の特定の主題
に情報要求をマッピングすることによって、主題の主動
(主題に基づく)(subject-based)アドレスを行
う。
【0305】インターフェイス: あるタスクを実行するためにサポート機能を提供するア
プリケイションにより、またはインターフェイスの別の
モジュールにより呼出すことが出来るソフトウェアプロ
グラムまたはモジュールのライブラリ。本発明の場合に
は、通信インターフェイスは、外部プロセスおよびコン
ピュータとデータを交換する為にアプリケーションとの
簡単なプログラミングを行えるようにする為に、外部の
プロセス及びコンピュータの間で希望の切り離しを行う
プログラムのライブラリを提供する。
【0306】インターフェイスカード: ある接点でネットワークと物理的接続を形成する電気的
回路であって、ネットワーク上でデータのやり取りをす
る為にインターフェイスカードのオペレーティングシス
テムおよびネットワークおよびデータリンクプロトコル
プログラム内の透明な層のプロトコルプログラムによっ
て作動する。
【0307】固有のフォーマット/フォーム: アプリケーションまたはそのホストコンピュータに固有
のフォーマットまたはフォーム構造。
【0308】ネスティングされた(Nested): それ自身が多数のフィールドを含んでいる他のデータレ
コードを各々が含むことできる多数のフィールドを有す
るデータレコードより成るデータ構造。
【0309】ネットワークプロトコルエンジン: ソフトウェア及びハードウェアの結合体。これは、特定
のプロトコルを使用するネットワーク上で通信を行うこ
とが出来る機能を提供する。
【0310】接点(Node): 各種コンピュータ、サーバーまたは端末をコンピュータ
ネットワークと接続する端子。
【0311】原始フィールド: 実際のデータを格納するデータレコードすなわちフォー
のフィールド。
【0312】プロセス:コンピュータで実行中のソフト
ウェアプログラムまたはモジュールの段階。
【0313】意味に依存するオペレーション:特定のフ
ォームがそのフォームからデータをある要求しているプ
ロセスへ供給する為に、クラス定義の少なくとも意味情
報に対するアクセスを求めるオペレーション。
【0314】意味情報:フォーム中の種々のフィールド
フォーム、名称及び意味に関するもの。
【0315】サーバー:大容量記憶装置に格納されてい
るファイル、またはテレレート(Telerate)のような情
報ソースからの生データを、ネットワークまたは他のコ
ンピュータ/ワークステーションへ供給して、サーバー
へ結合されている他のプロセスへ分配する、というよう
なあることを行う為に特定のプロセスを実行しているコ
ンピュータ。
【0316】サーバープロセス:テレレート(Telerat
e)、ダウ・ジョーンズ・ニュース・サービス等のよう
な特定のサービスにより指定されるデータの機能を供給
するアプリケーションプロセス。
【0317】サービス: 依頼人(クライエント)アプリケーションを送り出すこ
とが出来る機能またはデータの有意なセット。言換える
と、サービスというのは、特定のこと、たとえばダウ・
ジョーンズ・ニュース情報を供給するアプリケーショ
ン、クオトロン(Quotron)データ供給源もしくはトレ
ード・チケット・ルータを行うアプリケーションの全体
的なクラスである。一般には、1つのアプリケーション
は、1つのサービスを供給するが、これは多くの異なる
サービスを提供するものである。
【0318】サービス統制またはサービスプロトコル:
特定のサーバープロセス、アプリケーション、ローカル
エリアネットワークで通信する為のプロトコルである。
サービスを提供するいくつかのサーバの1つを選ぶルー
チンが含まれている。サービスと通信するためのプロト
コル、どのサーバが選択されているかの通信層のアドバ
イスおよび通信リンクのセットアップの要求が含まれて
いる。
【0319】サービスアクセスプロトコル:サービス統
制のサブセットである。サービスとの通信のための通信
プロトコルを包含している。
【0320】サービス例: 特定のコンピュータで実行され、指定されたサービスを
提供できるプロセス(サーバープロセスと呼ばれること
もある)。与えられたサービスのために、各種のサービ
ス例が共同してサービスを提供する。これにより、故障
に対する耐性もしくは実行能力が向上される。TIB
(商標)通信ソフトウエアの分散型通信コンポーネント
は、故障したサービス例から同じサービスを提供してい
他のものに自動的に切換えることにより「故障に強
い」通信を実現する。
【0321】サービス層(サービスレイヤー): 本発明の教示による装置、方法の一部である。要求され
た情報のためのサービスや他のソースへのアクセスのた
めに使用するアクセス手順のために、情報レイヤーから
のデータをマッピングし、サービス切り離しを実現する
ものである。
【0322】サービス切り離し:この発明の通信インタ
ーフェイスソフトウエアにおけるサービスレイヤーの機
能である。これにより、クライエントアプリケーション
は、特定の主題データを供給するサービスのデータへの
アクセスにおいて、特定の通信プロトコルを知る必要や
実行する必要から解放される。
【0323】サービスレコード:指定されたサービスを
行うアプリケーションの重要な特徴を記述するフィール
ドを含むレコード。
【0324】主題ドメイン(主題領域): 主題カテゴリーのセット(主題スペースも参照の事)。
【0325】主題スペース:主題カテゴリーの階層的な
セット。
【0326】申込み要求(Subscribe Request):ソー
スサーバー、プロセス、または特定の主題についてのデ
ータをそれから得ることが出来るその場所を指定しない
その主題についてのデータに対する要求。トランスポー
ト層:本発明の通信インターフェイスが結合されるコン
ピュータの間のネットワークような標準的なISOモデル
の層。
【0327】トランスポートプロトコル: ゲートウエイまたは他のインターネットワーク・ルーチ
ンによって結合された特定のネットワークまたはグルー
プにおいて実現される特定の通信プロトコルまたは統
制。
【図面の簡単な説明】
【図1】本発明の一実施例の通信インターフェイスの各
種のソフトウェアモジュールとクライエントアプリケー
ションおよびネットワークの関係を示すブロック図であ
る。
【図2】構造化フォームクラス定義の例である。
【図3】別の構造化フォームクラスの定義の例である。
【図4】それ自身が構造化フォームであるフィールドを
含み、したがってネスティングの例であって、構造化フ
ォームクラスの定義の例である。
【図5】2つの原始フォームクラスの例である。
【図6】メモリに格納されている典型的なフォーム例で
ある。
【図7】意味データ、フォーマットデータ、および実際
のデータすなわち値データをフォームクラス定義とフォ
ーム例の間に区分した様子を示す。
【図8】フォーマットオペレーション中の処理の流れ図
である。
【図9】フォーマットオペレーションに使用するターゲ
ットフォーマット特有テーブルである。
【図10】フォーマットオペレーションに使用する別の
ターゲットフォーマット特有テーブルである。
【図11】フォーマットオペレーションに使用する一般
的な変換テーブルの例である。
【図12】典型的な意味依存オペレーションに対する流
れ図である。
【図13】それぞれクラス定義と、このクラス定義を格
納するクラス記述子フォームである。
【図14】通信プロトコルの主題マッパモジュールおよ
びサービス統制モジュールと要求アプリケーションおよ
び主題をベースとするアドレッシングのためのサービス
との間の関係を示すブロック図である。
【図15】本発明の別の実施例のインターフェイスの種
々のモジュールおよびライブラリィとクライエントアプ
リケーションの間の関係を示す。
【図16】別の実施例の通信インターフェイスの種々の
モジュールの内部の関係を示す。
【図17】典型的な分散形コンピュータネットワークの
ブロック図である。
【図18】デーモンにおけるDCCライブラリーのDC
Cプロトコールエンジンに対する関係を示すプロセス構
成である。
【図19】本発明に係るソフトウェアのとりわけ3つの
層において発生し、申し込み要求がサービスに送り出さ
れるプロセスのフローダイヤグラムである。
【図20】本発明に係るソフトウェアのとりわけ3つの
層において発生し、申し込み要求がサービスに送り出さ
れるプロセスのフローダイヤグラムである。
【図21】申し込み要求がデータ発生プロセスで受け取
られ、メッセージが申し込みプロセスに送り返された際
に、本発明の教示に従ってソフトウェアインターフェイ
スのとりわけ3つの層において発生するプロセスの流れ
図である。
【図22】申し込み要求がデータ発生プロセスで受け取
られ、メッセージが申し込みプロセスに送り返された際
に、本発明の教示に従ってソフトウェアインターフェイ
スのとりわけ3つの層において発生するプロセスの流れ
図である。
【図23】メッセージが信頼性のある同報通信プロトコ
ルによって送り返された際に、DCCライブラリーおよ
び信頼性のある同報通信プロトコルエンジンにおいて発
生するプロセスの流れ図である。
【図24】メッセージが信頼性のある同報通信プロトコ
ルによって送り返された際に、DCCライブラリーおよ
び信頼性のある同報通信プロトコルエンジンにおいて発
生するプロセスの流れ図である。
【図25】信頼性のある同報通信トランザクションのデ
ータ消費サイドにおける信頼性のある同報通信プロトコ
ルエンジンによる処理の流れ図である。
【図26】信頼性のある同報通信トランザクションのデ
ータ消費サイドにおける信頼性のある同報通信プロトコ
ルエンジンによる処理の流れ図である。
【図27】インテリジェントマルチキャスト(商標)プ
ロトコルを実現するためのサービス統制において発生す
る処理の流れ図である。
【符号の説明】
10・・・ホストコンピュータ 12・・・ホストコンピュータ 14・・・ネットワーク 16・・・アプリケーション 18・・・アプリケーション 20・・・通信インターフェイス 22・・・通信インターフェイス 30・・・通信コンポーネント 32・・・データ交換コンポーネント 86・・・フォームマネージャ 88・・・データ交換コンポーネント 96・・・通信コンポーネント 122・・・フォームクラスマネージャ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク ボーレス アメリカ合衆国,カリフォルニア州 94602,ウッドサイド,トリッピー コ ート 30 (56)参考文献 特開 昭63−174159(JP,A) 特開 平2−87274(JP,A) 特開 平1−200434(JP,A) 特開 平2−151975(JP,A) 特開 昭63−294035(JP,A) 特開 平1−177147(JP,A) 特開 昭62−212720(JP,A) 特開 平1−243154(JP,A) 特開 平1−270163(JP,A) 特開 平1−159751(JP,A) 情報処理学会第33回(昭和61年後期) 全国大会講演論文集 p1905−1906 (58)調査した分野(Int.Cl.7,DB名) G06F 15/16,13/00,9/46

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】ネットワークその他の通信路によって結合
    された、異なるコンピュータ上で動作するアプリケーシ
    ョン間でのデータ通信のための装置であって、 主題のデータを含むデータサービスアプリケーションと
    の通信を可能とするため、少なくとも1つのアプリケー
    ションから、特定の主題に関する情報の申込要求を受け
    て、前記情報を1以上のサービス統制手段にマッピング
    する手段、 前記サービスアプリケーション中の前記主題に関するサ
    ービスにアクセスするとともに、前記主題のデータを通
    信するため、前記データサービスアプリケーションによ
    り用いられるネットワークその他の通信路によって通信
    リンクを確立するため、前記マッピング手段によって決
    定された前記1以上のサービス統制手段を発動する手
    段、 前記申込要求がキャンセルされた時、前記通信リンクを
    終了させる手段を備え、その主題に関する情報が通信されることになっている前
    記1以上のアプリケーションにコールバック手段を備
    え、 前記コールバック手段は、前記申込要求に含められた名
    前によって、前記マッピング手段に確認され、 前記マッピング手段は、前記コールバック手段に転送す
    べきデータを受信する特定のサービス統制を決定するよ
    う構成された装置。
  2. 【請求項2】請求項1に係る装置において、 前記マッピング手段は、該当する主題の情報を与えるサ
    ービスのためのネットワークアドレスを決定するための
    手段を備えている。
  3. 【請求項3】請求項1に係る装置において、 前記要求された主題に関するデータだけが、前記確立し
    た通信リンクによって前記要求プログラムに供給される
    ように、前記データサービスアプリケーションにより出
    力されたデータを、主題によってフィルタリングするた
    めの、前記発動手段によって選択された手段を備えたも
    の。
  4. 【請求項4】請求項3に係る装置において、 前記サービス手段の1つが、前記フィルタ処理を行う。
  5. 【請求項5】請求項1に係る装置において、 前記サービス統制手段は、特定のサービス統制が関係す
    るサービスにアクセスするために適切な通信プロトコル
    を内包している。
  6. 【請求項6】請求項1に係る装置において、 どのサービスがどの主題に関する情報を供給するか、当
    該サービスがどこに位置するかを示すサービスレコード
    を見いだすディレクトリ・サービス手段と、通信のため
    にサービスによって使用される特定のサービス統制手段
    とを備え、 前記ディレクトリ・サービス手段は、希望する主題に関
    する特定のサービスを示すサービスレコードを見いだす
    まで、サービスレコードをサーチし、見いだしたレコー
    ドを前記マッピング手段に送り返すために、マッピング
    手段からの、主題パラメータを含んだサーチ要求に応答
    する。
  7. 【請求項7】請求項6に係る装置において、 前記サービスの各々に対応する前記サービスレコード
    は、希望する主題に関する情報を提供するサービスの名
    前および、そのサービスにより使用されるサービス統制
    手段の名前と、そのサービスが動作しているコンピュー
    タの名前を特定するデータを含む。
  8. 【請求項8】請求項6に係る装置において、 前記ディレクトリーサービス手段は、前記ネットワーク
    やその他の通信路に接続されたコンピュータ上で動作し
    ている単独のプロセスとして動作している。
  9. 【請求項9】請求項1に係る装置において、さらに、 前記ネットワークその他のデータ通信路において、通信
    リンクをセットアップするために、前記サービス統制手
    段の、前記ネットワークその他のデータ通信路の通信プ
    ロトコールに対するインターフェイスをとるため、前記
    サービス統制手段に結合されたデータ交換手段を備えた
    もの。
  10. 【請求項10】請求項9に係る装置において、前記デー
    タ交換手段は下記のa)b)を備えている: a)下記i)ii)双方のデータを含んだ自己記述的データレ
    コードまたはフォームを生成し、取り扱うための手段、 i)データ、および ii)名前およびフィールドの構成を当該フォーム中にお
    いて定義するとともに、データ表現のフォーマットを当
    該フィールド中において定義する1以上のクラス定義に
    対応するクラス識別子データ、 b)第2のアプリケーションに転送されるべき第1のアプ
    リケーションに固有のフォーマットにおけるフォームの
    フォーマットを、前記第2のアプリケーションのフォー
    マットに変換するための手段。
  11. 【請求項11】ネットワークその他の通信路によって結
    合された、異なるコンピュータ上で動作するアプリケー
    ション間でのデータ通信のための方法であって、 (a)アプリケーションのうちの1つにより、特定の主題
    に関する情報の要求を生成し、 (b) 前記主題のデータを含むデータサービスアプリケー
    ションと通信可能な1以上のサービス統制に、前記主題
    をマッピングし、 (c) 前記主題に関するデータを出力するために前記デー
    タサービスアプリケーションにより使用される前記ネッ
    トワークその他の通信路によって、通信リンクを確立す
    るために1以上のサービス統制を発動し、 (d) 前記申込要求がキャンセルされた時に前記通信リン
    クを終了させるステップを備え、さらにその主題に関す
    る情報が通信されることになっている前記1以上のアプ
    リケー ションに含まれるコールバックプログラムのステ
    ップを備え、 前記コールバックプログラムは、前記マッピング手段に
    前記申込要求に加えられたネームで確認されるととも
    に、 前記マッピングステップは、前記コールバック手段に転
    送すべきデータを受信する特定のサービス統制を決定す
    るデータ通信のための方法。
  12. 【請求項12】請求項11に係る方法において、 前記マッピングステップは、該当する主題の情報を与え
    るサービスのためのネットワークアドレスを決定するス
    テップを備えている。
  13. 【請求項13】請求項11に係る方法において、 前記要求された主題に関するデータだけが、前記確立し
    た通信リンクによって前記要求プログラムに供給される
    ように、前記データサービスアプリケーションにより出
    力されたデータを、主題によってフィルタリングするた
    めのステップを備えている。
  14. 【請求項14】請求項11に係る方法において、 前記サービス統制の1つが、前記フィルターステップを
    行う。
  15. 【請求項15】請求項11に係る方法において、 前記サービス統制は、特定のサービス統制が関係するサ
    ービスにアクセスするために適切な通信プロトコルを内
    包している。
  16. 【請求項16】請求項11に係る方法において、 どのサービスがどの主題に関する情報を供給するか、当
    該サービスがどこに位置するかを示すサービスレコード
    を見いだすステップと、通信のためにサービスによって
    使用される特定のサービス統制と、 前記マッピング・ステップによって生成され、主題パラ
    メータを含むサーチ要求に応じて、希望する主題に関す
    る特定のサービスを示すサービスレコードを見いだすま
    で、収集した前記サービスレコードをサーチするステッ
    プ、 見いだしたレコードを前記マッピング手段に送り返すス
    テップ、 を備えたもの。
  17. 【請求項17】請求項16に係る方法において、 前記サービスの各々に対応する前記サービスレコード
    は、希望する主題に関する情報を提供するサービスの名
    前およびそのサービスにより使用されたサービス統制の
    名前と、そのサービスが動作しているコンピュータの名
    前を特定するデータを含む。
  18. 【請求項18】請求項16に係る方法において、 前記サービスレコードを見いだす前記ステップは、前記
    ネットワークその他の通信路に接続されたコンピュータ
    上で動作している単独のプロセスとして構成されてい
    る。
  19. 【請求項19】請求項11に係る方法において、 前記ネットワークその他の通信路において、前記通信リ
    ンクをセットアップするために、前記発動された1以上
    のサービス統制の、前記ネットワークその他の通信路の
    通信プロトコールに対するインターフェイスをとるた
    め、前記発動された1以上のサービス統制に対応するデ
    ータ交換ステップをさらに備えている。
  20. 【請求項20】請求項19に係る方法において、前記デ
    ータ交換ステップは下記のステップa)b)を備えている: a)下記i)ii)双方のデータを含んだ自己記述的データレ
    コードまたはフォームを生成し、取り扱うステップ、 i)データ、および ii)名前およびフィールドの構成を当該フォーム中にお
    いて定義するとともに、データ表現のフォーマットを当
    該フィールド中において定義する1以上のクラス定義に
    対応するクラス識別子データ、 b)第2のアプリケーションに転送されるべき第1のアプ
    リケーションに固有のフォーマットにおけるフォームの
    フォーマットを、前記第2のアプリケーションのフォー
    マットに変換するステップ。
JP3274338A 1990-10-22 1991-10-22 ソフトウエア間通信のためのデータ交換装置 Expired - Fee Related JP3023225B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US07/601117 1990-10-22
US07/601,117 US5257369A (en) 1990-10-22 1990-10-22 Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US07/632551 1990-12-21
US07/632,551 US5557798A (en) 1989-07-27 1990-12-21 Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes

Publications (2)

Publication Number Publication Date
JPH04299758A JPH04299758A (ja) 1992-10-22
JP3023225B2 true JP3023225B2 (ja) 2000-03-21

Family

ID=27083793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3274338A Expired - Fee Related JP3023225B2 (ja) 1990-10-22 1991-10-22 ソフトウエア間通信のためのデータ交換装置

Country Status (10)

Country Link
US (2) US5557798A (ja)
EP (1) EP0485252B1 (ja)
JP (1) JP3023225B2 (ja)
KR (1) KR970004519B1 (ja)
AT (1) ATE163483T1 (ja)
AU (2) AU8953091A (ja)
CA (1) CA2052803C (ja)
DE (1) DE69128952T2 (ja)
MX (1) MX9101699A (ja)
WO (1) WO1992007324A1 (ja)

Families Citing this family (466)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991004540A1 (en) * 1989-09-08 1991-04-04 Auspex Systems, Inc. Multiple facility operating system architecture
US5826017A (en) * 1992-02-10 1998-10-20 Lucent Technologies Apparatus and method for communicating data between elements of a distributed system using a general protocol
FR2692058B1 (fr) * 1992-06-09 1994-07-29 Bull Sa Systeme de traitement transactionnel entre un serveur informatique et une pluralite de stations de travail.
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
WO1994019751A1 (en) * 1993-02-26 1994-09-01 Taligent, Inc. Collaborative work system
US6717938B1 (en) 1999-04-15 2004-04-06 J2 Global Communications, Inc. System controlling use of a communication channel
US5651059A (en) * 1993-06-29 1997-07-22 Lucent Technologies Inc. Service package field update for a-i-net SCN and SCP
IT1264644B1 (it) * 1993-07-02 1996-10-04 Alcatel Italia Metodo per permettere lo scambio di informazioni fra processi attraverso un dispositivo di comunicazione
JPH0795202A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd システム間での定義情報の共用方式
EP0734556B1 (en) 1993-12-16 2002-09-04 Open Market, Inc. Network based payment system and method for using such system
US5491800A (en) * 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system
DE4401465A1 (de) * 1994-01-19 1995-08-10 Siemens Ag Kommunikationsmodul
JP3777196B2 (ja) * 1994-05-10 2006-05-24 富士通株式会社 クライアント/サーバシステム用の通信制御装置
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5625818A (en) * 1994-09-30 1997-04-29 Apple Computer, Inc. System for managing local database updates published to different online information services in different formats from a central platform
US5715314A (en) 1994-10-24 1998-02-03 Open Market, Inc. Network sales system
US5852825A (en) * 1994-12-05 1998-12-22 Trimble Navigation Limited Form data message formatting method, program and system
JPH08286916A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法
CN101398871B (zh) 1995-02-13 2011-05-18 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5680586A (en) * 1995-04-18 1997-10-21 International Business Machines Corporation Method and system for storing and accessing user-defined attributes within a data processing system
US5694596A (en) 1995-05-25 1997-12-02 Kangaroo, Inc. On-line database updating network system and method
US6240451B1 (en) * 1995-05-25 2001-05-29 Punch Networks Corporation Method and apparatus for automatically disseminating information over a network
US7272639B1 (en) 1995-06-07 2007-09-18 Soverain Software Llc Internet server access control and monitoring systems
US5729682A (en) * 1995-06-07 1998-03-17 International Business Machines Corporation System for prompting parameters required by a network application and using data structure to establish connections between local computer, application and resources required by application
US6223168B1 (en) * 1995-07-25 2001-04-24 Bottomline Technologies, Inc. Automatic remittance delivery system
US5655080A (en) * 1995-08-14 1997-08-05 International Business Machines Corporation Distributed hash group-by cooperative processing
US20020046143A1 (en) * 1995-10-03 2002-04-18 Eder Jeffrey Scott Method of and system for evaluating cash flow and elements of a business enterprise
US5774670A (en) 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
JP2988394B2 (ja) * 1995-10-19 1999-12-13 日本電気株式会社 可変長オブジェクトのデータベース処理装置、データベース処理方法、およびデータベース処理プログラムを記憶する記憶媒体
US5764955A (en) * 1995-10-19 1998-06-09 Oasys Group, Inc. Gateway for using legacy telecommunications network element equipment with a common management information protocol
US5689698A (en) * 1995-10-20 1997-11-18 Ncr Corporation Method and apparatus for managing shared data using a data surrogate and obtaining cost parameters from a data dictionary by evaluating a parse tree object
US6085223A (en) * 1995-10-20 2000-07-04 Ncr Corporation Method and apparatus for providing database information to non-requesting clients
US5864843A (en) * 1995-10-20 1999-01-26 Ncr Corporation Method and apparatus for extending a database management system to operate with diverse object servers
US5930786A (en) 1995-10-20 1999-07-27 Ncr Corporation Method and apparatus for providing shared data to a requesting client
US5754841A (en) * 1995-10-20 1998-05-19 Ncr Corporation Method and apparatus for parallel execution of user-defined functions in an object-relational database management system
US5794250A (en) * 1995-10-20 1998-08-11 Ncr Corporation Method and apparatus for extending existing database management system for new data types
US6393496B1 (en) * 1995-11-09 2002-05-21 Curtis A. Schwaderer Operating system and network independent application program interface for use in an intelligent communication device
US5941959A (en) * 1995-12-20 1999-08-24 Tandem Computers Incorporated System for transferring a data stream to a requestor without copying data segments to each one of multiple data source/sinks during data stream building
US5790807A (en) * 1995-12-20 1998-08-04 Tandem Computers Incorporated Computer sysem data I/O by reference among CPUS and I/O devices
US5852719A (en) * 1995-12-20 1998-12-22 Tandem Computers Incorporated System for transferring data over a network in which a data source sends only a descriptor which a data sink uses to retrieve data
US5954794A (en) * 1995-12-20 1999-09-21 Tandem Computers Incorporated Computer system data I/O by reference among I/O devices and multiple memory units
US5931903A (en) * 1995-12-20 1999-08-03 Tandem Computers Incorporated Computer system data I/O by reference among multiple CPUS
US5802510A (en) * 1995-12-29 1998-09-01 At&T Corp Universal directory service
US6405254B1 (en) * 1996-01-03 2002-06-11 Sterling Commerce, Inc. System and method for protocol conversion using facilities and utilities
US5873084A (en) * 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US20040019610A1 (en) * 1996-02-27 2004-01-29 Burns Kevin S. Portal information delivery system for personal computers and SOHO computer systems
US6014137A (en) 1996-02-27 2000-01-11 Multimedia Adventures Electronic kiosk authoring system
WO1997035254A1 (en) * 1996-03-19 1997-09-25 Massachusetts Institute Of Technology Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions
US7908333B2 (en) * 1996-04-05 2011-03-15 Haury Harry R Self configuring peer to peer inter process messaging system
US5893911A (en) * 1996-04-17 1999-04-13 Neon Software, Inc. Method for defining and applying rules for message distribution for transaction processing in a distributed application
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6282652B1 (en) 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6134603A (en) * 1998-03-20 2000-10-17 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6272559B1 (en) 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6151300A (en) * 1996-05-10 2000-11-21 Fujitsu Network Communications, Inc. Method and apparatus for enabling flow control over multiple networks having disparate flow control capability
US6049782A (en) * 1996-05-31 2000-04-11 Citibank, N.A. Relationship management system and process for pricing financial instruments based on a customer's relationship with a financial institution
US5916307A (en) * 1996-06-05 1999-06-29 New Era Of Networks, Inc. Method and structure for balanced queue communication between nodes in a distributed computing application
US5974414A (en) * 1996-07-03 1999-10-26 Open Port Technology, Inc. System and method for automated received message handling and distribution
US5796633A (en) * 1996-07-12 1998-08-18 Electronic Data Systems Corporation Method and system for performance monitoring in computer networks
US6026425A (en) * 1996-07-30 2000-02-15 Nippon Telegraph And Telephone Corporation Non-uniform system load balance method and apparatus for updating threshold of tasks according to estimated load fluctuation
US6298386B1 (en) * 1996-08-14 2001-10-02 Emc Corporation Network file server having a message collector queue for connection and connectionless oriented protocols
US6073139A (en) * 1996-08-15 2000-06-06 Gioquest, A Division Of Schlumberger Technology Corp. Integrated data communication and data access system including the application data interface
JPH1097571A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd 相談先端末接続方法
US5748962A (en) * 1996-09-30 1998-05-05 Mci Communications Corporation Common channels for inter-application communications
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US5909550A (en) * 1996-10-16 1999-06-01 Cisco Technology, Inc. Correlation technique for use in managing application-specific and protocol-specific resources of heterogeneous integrated computer network
US6032175A (en) * 1996-10-17 2000-02-29 International Business Machines Corporation Enhanced directory services in compound wide/local area networks
US6219703B1 (en) * 1996-10-31 2001-04-17 Motorola, Inc. Method and apparatus for constructing a device management information base in a network management station
US5889990A (en) * 1996-11-05 1999-03-30 Sun Microsystems, Inc. Information appliance software architecture with replaceable service module providing abstraction function between system library and platform specific OS
US6601111B1 (en) 1997-01-29 2003-07-29 Palmsource, Inc. Method and apparatus for unified external and interprocess communication
US6845505B1 (en) * 1997-02-03 2005-01-18 Oracle International Corporation Web request broker controlling multiple processes
US6710786B1 (en) 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6115549A (en) * 1997-02-12 2000-09-05 Novell, Inc. Directory-services-based software distribution apparatus and method
US6990069B1 (en) * 1997-02-24 2006-01-24 At&T Corp. System and method for improving transport protocol performance in communication networks having lossy links
US6061713A (en) * 1997-03-12 2000-05-09 Fujitsu Limited Communications system for client-server data processing systems
US5949975A (en) 1997-03-12 1999-09-07 Microsoft Corp. Method and system for negotiating capabilities when sharing an application program with multiple computer systems
US6128653A (en) * 1997-03-17 2000-10-03 Microsoft Corporation Method and apparatus for communication media commands and media data using the HTTP protocol
US6704785B1 (en) * 1997-03-17 2004-03-09 Vitria Technology, Inc. Event driven communication system
US6075796A (en) 1997-03-17 2000-06-13 At&T Methods and apparatus for providing improved quality of packet transmission in applications such as internet telephony
US5870562A (en) * 1997-03-24 1999-02-09 Pfn, Inc. Universal domain routing and publication control system
US5867665A (en) * 1997-03-24 1999-02-02 Pfn, Inc Domain communications server
US5884035A (en) * 1997-03-24 1999-03-16 Pfn, Inc. Dynamic distributed group registry apparatus and method for collaboration and selective sharing of information
US6026430A (en) * 1997-03-24 2000-02-15 Butman; Ronald A. Dynamic client registry apparatus and method
US6240441B1 (en) 1997-03-31 2001-05-29 Sun Microsystems, Inc. Secure event-driven EDI transaction processing using the internet
US6240186B1 (en) 1997-03-31 2001-05-29 Sun Microsystems, Inc. Simultaneous bi-directional translation and sending of EDI service order data
US6724896B1 (en) * 1997-03-31 2004-04-20 Sun Microsystems, Inc. Event-driven servers for data extraction and merge for EDI transaction processing using the internet
EP1016066A4 (en) 1997-03-31 2001-06-13 G & R Associates Inc COMPUTER / TELEPHONE INTEGRATION WITH INTELLIGENT KEYBOARD, AND ASSOCIATED METHOD
US5893091A (en) * 1997-04-11 1999-04-06 Immediata Corporation Multicasting with key words
US5974234A (en) * 1997-04-15 1999-10-26 Xerox Corporation Centralized print server for interfacing one or more network clients with a plurality of printing devices
CA2228574A1 (en) * 1997-06-05 1999-08-02 Attention Control Systems, Inc. An automatic planning and cueing system and method
US6122276A (en) * 1997-06-30 2000-09-19 Cisco Technology, Inc. Communications gateway mapping internet address to logical-unit name
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
JP3860966B2 (ja) * 1997-08-18 2006-12-20 ティブコ ソフトウエア,インコーポレイテッド マルチポイントパブリッシュ/サブスクライブ通信における証明付メッセージの配送およびキュー操作
US7080385B1 (en) * 1997-08-18 2006-07-18 Tibco Software Inc. Certified message delivery and queuing in multipoint publish/subscribe communications
US6128662A (en) * 1997-08-29 2000-10-03 Cisco Technology, Inc. Display-model mapping for TN3270 client
US6049833A (en) * 1997-08-29 2000-04-11 Cisco Technology, Inc. Mapping SNA session flow control to TCP flow control
US6466780B1 (en) 1997-09-03 2002-10-15 Interlok Technologies, Llc Method and apparatus for securing digital communications
US6006206A (en) * 1997-09-08 1999-12-21 Reuters Limited Data health monitor for financial information communications networks
US6199068B1 (en) 1997-09-11 2001-03-06 Abb Power T&D Company Inc. Mapping interface for a distributed server to translate between dissimilar file formats
US7222087B1 (en) 1997-09-12 2007-05-22 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US5960411A (en) * 1997-09-12 1999-09-28 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US6708189B1 (en) 1997-09-30 2004-03-16 Desknet, Inc. Computer file transfer system
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6253256B1 (en) * 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6957427B1 (en) 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
GB2330923A (en) * 1997-10-28 1999-05-05 Ibm Transaction manager
US6112181A (en) 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6091724A (en) * 1997-11-20 2000-07-18 International Business Machines Corporation Routing messages within a network using the data content of the message
US6216132B1 (en) 1997-11-20 2001-04-10 International Business Machines Corporation Method and system for matching consumers to events
US6330610B1 (en) 1997-12-04 2001-12-11 Eric E. Docter Multi-stage data filtering system employing multiple filtering criteria
US6718387B1 (en) * 1997-12-10 2004-04-06 Sun Microsystems, Inc. Reallocating address spaces of a plurality of servers using a load balancing policy and a multicast channel
US6310888B1 (en) * 1997-12-30 2001-10-30 Iwork Software, Llc System and method for communicating data
US6041332A (en) * 1997-12-31 2000-03-21 Alcatel Usa Sourcing, L.P. Product-independent performance monitoring tool kit
US9900305B2 (en) 1998-01-12 2018-02-20 Soverain Ip, Llc Internet server access control and monitoring systems
US7051003B1 (en) 1998-02-26 2006-05-23 Atabok Japan, Inc. Method and apparatus for delivering electronic data through a proxy server
WO1999044133A2 (en) 1998-02-26 1999-09-02 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
WO1999044134A1 (en) * 1998-02-26 1999-09-02 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
US6141686A (en) * 1998-03-13 2000-10-31 Deterministic Networks, Inc. Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control
US6728771B2 (en) * 1998-03-20 2004-04-27 Siemens Information And Communication Networks, Inc. Generic transport option for transporting messages in relay or broadcast mode via combinations of ISDN B-channels or D-channels
US6154776A (en) * 1998-03-20 2000-11-28 Sun Microsystems, Inc. Quality of service allocation on a network
US6446253B1 (en) * 1998-03-20 2002-09-03 Novell, Inc. Mechanism for achieving transparent network computing
US6157722A (en) * 1998-03-23 2000-12-05 Interlok Technologies, Llc Encryption key management system and method
US6154748A (en) * 1998-04-07 2000-11-28 International Business Machines Corporation Method for visually mapping data between different record formats
JPH11312151A (ja) 1998-04-28 1999-11-09 Hitachi Ltd 高速な分散オブジェクトリクエストブローカ
US6212568B1 (en) 1998-05-06 2001-04-03 Creare Inc. Ring buffered network bus data management system
US6772350B1 (en) 1998-05-15 2004-08-03 E.Piphany, Inc. System and method for controlling access to resources in a distributed environment
US6769032B1 (en) 1998-05-15 2004-07-27 E.Piphany, Inc. Augmented processing of information objects in a distributed messaging framework in a computer network
US6636886B1 (en) 1998-05-15 2003-10-21 E.Piphany, Inc. Publish-subscribe architecture using information objects in a computer network
US6567846B1 (en) 1998-05-15 2003-05-20 E.Piphany, Inc. Extensible user interface for a distributed messaging framework in a computer network
US6826571B1 (en) 1998-05-22 2004-11-30 International Business Machines Corporation Method and apparatus for dynamically customizing and extending functions of a server program to enable and restrict functions of the server
US6917939B1 (en) 1998-05-22 2005-07-12 International Business Machines Corporation Method and apparatus for configurable mapping between data stores and data structures and a generalized client data model using heterogeneous, specialized storage
US6366916B1 (en) 1998-05-22 2002-04-02 International Business Machines Corporation Configurable and extensible system for deploying asset management functions to client applications
US6912561B1 (en) 1998-05-22 2005-06-28 International Business Machines Corporation Method and apparatus for using classes, encapsulating data with its behaviors, for transferring between databases and client applications and for enabling applications to adapt to specific constraints of the data
US6922831B1 (en) * 1998-06-04 2005-07-26 Gateway Inc. Method and system for providing software utilizing a restore medium and a network
US6349331B1 (en) * 1998-06-05 2002-02-19 Lsi Logic Corporation Multiple channel communication system with shared autonegotiation controller
US6442663B1 (en) * 1998-06-19 2002-08-27 Board Of Supervisors Of Louisiana University And Agricultural And Mechanical College Data collection and restoration for homogeneous or heterogeneous process migration
US6182228B1 (en) 1998-08-17 2001-01-30 International Business Machines Corporation System and method for very fast IP packet filtering
US6415332B1 (en) 1998-08-19 2002-07-02 International Business Machines Corporation Method for handling of asynchronous message packet in a multi-node threaded computing environment
US6385659B1 (en) 1998-08-19 2002-05-07 International Business Machines Corporation Handling of asynchronous message packet in a multi-node threaded computing environment
US6412018B1 (en) 1998-08-19 2002-06-25 International Business Machines Corporation System for handling asynchronous message packet in a multi-node threaded computing environment
US6292842B1 (en) * 1998-08-28 2001-09-18 Hewlett-Packard Company Method for transferring data to an application
US6405224B1 (en) 1998-09-01 2002-06-11 Aidministrator Nederland B.V. Method and apparatus for HTML control
US6289362B1 (en) 1998-09-01 2001-09-11 Aidministrator Nederland B.V. System and method for generating, transferring and using an annotated universal address
US6295639B1 (en) * 1998-09-01 2001-09-25 Aidministrator Nederland B.V. Securely accessing a file system of a remote server computer
US6311278B1 (en) * 1998-09-09 2001-10-30 Sanctum Ltd. Method and system for extracting application protocol characteristics
WO2000016206A1 (en) * 1998-09-10 2000-03-23 Sanctum Ltd. Method and system for protecting operations of trusted internal networks
US6377973B2 (en) * 1998-09-30 2002-04-23 Emrys Technologies, Ltd. Event management in a system with application and graphical user interface processing adapted to display predefined graphical elements resides separately on server and client machine
US6725227B1 (en) * 1998-10-02 2004-04-20 Nec Corporation Advanced web bookmark database system
US8006177B1 (en) 1998-10-16 2011-08-23 Open Invention Network, Llc Documents for commerce in trading partner networks and interface definitions based on the documents
US6125391A (en) 1998-10-16 2000-09-26 Commerce One, Inc. Market makers using documents for commerce in trading partner networks
US7047532B1 (en) * 1998-11-13 2006-05-16 The Chase Manhattan Bank Application independent messaging system
EP1003114A1 (en) * 1998-11-17 2000-05-24 International Business Machines Corporation Method of interconnecting computers and computer network
US6931392B1 (en) * 1998-12-07 2005-08-16 Vitria Technology, Inc. Real-time decision support system
US6763353B2 (en) 1998-12-07 2004-07-13 Vitria Technology, Inc. Real time business process analysis method and apparatus
US6351761B1 (en) 1998-12-18 2002-02-26 At&T Corporation Information stream management push-pull based server for gathering and distributing articles and messages specified by the user
US6779184B1 (en) * 1999-01-21 2004-08-17 Oracle International Corporation Method for loosely coupling object oriented and non-object oriented applications in a messaging-based communication infrastructure
US6138143A (en) * 1999-01-28 2000-10-24 Genrad, Inc. Method and apparatus for asynchronous transaction processing
US6477180B1 (en) * 1999-01-28 2002-11-05 International Business Machines Corporation Optimizing method for digital content delivery in a multicast network
US6907011B1 (en) 1999-03-30 2005-06-14 International Business Machines Corporation Quiescent reconfiguration of a routing network
US6760340B1 (en) 1999-03-30 2004-07-06 International Business Machines Corporation Message sequencing for ordered multicasting of a message across a routing network
US7050432B1 (en) 1999-03-30 2006-05-23 International Busines Machines Corporation Message logging for reliable multicasting across a routing network
US7283463B2 (en) 1999-03-30 2007-10-16 International Business Machines Corporation Non-disruptive reconfiguration of a publish/subscribe system
US6901518B1 (en) 1999-04-08 2005-05-31 Sun Microsystems, Inc. Method and system for establishing trust in downloaded proxy code
US20050038911A1 (en) * 1999-04-30 2005-02-17 Yoshikuni Watanabe Cooperative system and method therefor
US7966234B1 (en) 1999-05-17 2011-06-21 Jpmorgan Chase Bank. N.A. Structured finance performance analytics system
US7062765B1 (en) 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
US6996627B1 (en) * 1999-05-25 2006-02-07 Realnetworks, Inc. System and method for providing update information
US7216157B1 (en) * 1999-06-10 2007-05-08 Verizonbusinessgloballlc Method and system for discovering managed devices in a data network
US6889260B1 (en) * 1999-06-10 2005-05-03 Ec Enabler, Ltd Method and system for transferring information
US6877163B1 (en) 1999-06-14 2005-04-05 Sun Microsystems, Inc. Method and system for dynamic proxy classes
US6577644B1 (en) * 1999-06-22 2003-06-10 Lucent Technologies Inc. Quality of service (QoS) enhancement to multilink point-to-point protocol (PPP)
US6442565B1 (en) 1999-08-13 2002-08-27 Hiddenmind Technology, Inc. System and method for transmitting data content in a computer network
US7711646B2 (en) 1999-09-10 2010-05-04 Transurety, Llc Methods and apparatus for providing coverage for receiver of transmission data
CA2384436C (en) 1999-09-10 2010-06-29 Portogo, Inc. Systems and method for insuring correct data transmission over the internet
EP1912124B8 (en) 1999-10-14 2013-01-09 Bluearc UK Limited Apparatus and system for implementation of service functions
US7251629B1 (en) * 1999-10-14 2007-07-31 Edge Capture, Llc Automated trading system in an electronic trading exchange
EP1240597A2 (en) * 1999-12-13 2002-09-18 Protrader Technologies, L.P. Computerized method and system for trading of securities
US6564233B1 (en) 1999-12-17 2003-05-13 Openwave Systems Inc. Server chaining system for usenet
US7051118B2 (en) * 1999-12-22 2006-05-23 Tibo Software, Inc. Method and apparatus for anonymous subject-based addressing
EP1119135A3 (en) * 2000-01-13 2001-09-12 Agilent Technologies Inc. a Delaware Corporation Apparatus and method for a push service
US7039050B1 (en) 2000-02-16 2006-05-02 Tibco Software Inc. Intra-process message switch
EP1130845A3 (en) * 2000-02-18 2001-09-12 Agilent Technologies Inc. a Delaware Corporation Publish/subscribe system
US6377975B1 (en) * 2000-03-01 2002-04-23 Interactive Intelligence, Inc. Methods and systems to distribute client software tasks among a number of servers
AU2001237696A1 (en) * 2000-03-03 2001-09-12 Sanctum Ltd. System for determining web application vulnerabilities
US6728715B1 (en) 2000-03-30 2004-04-27 International Business Machines Corporation Method and system for matching consumers to events employing content-based multicast routing using approximate groups
US6687735B1 (en) 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US7392210B1 (en) 2000-04-07 2008-06-24 Jpmorgan Chase Bank, N.A. Workflow management system and method
US6742054B1 (en) 2000-04-07 2004-05-25 Vitria Technology, Inc. Method of executing a data transformation specification
WO2001084302A2 (en) * 2000-05-02 2001-11-08 Sun Microsystems, Inc. Event service method and system
US7188251B1 (en) 2000-05-09 2007-03-06 Sun Microsystems, Inc. System and method for secure message-based leasing of resources in a distributed computing environment
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US6917976B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Message-based leasing of resources in a distributed computing environment
US6973493B1 (en) 2000-05-09 2005-12-06 Sun Microsystems, Inc. Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
US7080078B1 (en) 2000-05-09 2006-07-18 Sun Microsystems, Inc. Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment
US7010573B1 (en) 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport in a distributed computing environment
US7395333B1 (en) 2000-05-09 2008-07-01 Sun Microsystems, Inc. Method and apparatus to obtain negotiated service advertisement
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates in a distributed computing environment
US6898618B1 (en) 2000-05-09 2005-05-24 Sun Microsystems, Inc. Client-specified display services in a distributed computing environment
US7200848B1 (en) 2000-05-09 2007-04-03 Sun Microsystems, Inc. Migrating processes using data representation language representations of the processes in a distributed computing environment
US7260543B1 (en) 2000-05-09 2007-08-21 Sun Microsystems, Inc. Automatic lease renewal with message gates in a distributed computing environment
US6850979B1 (en) 2000-05-09 2005-02-01 Sun Microsystems, Inc. Message gates in a distributed computing environment
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US7243356B1 (en) 2000-05-09 2007-07-10 Sun Microsystems, Inc. Remote method invocation with secure messaging in a distributed computing environment
US6950875B1 (en) 2000-05-09 2005-09-27 Sun Microsystems, Inc. Message conductors in a distributed computing environment
US6789077B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US6792466B1 (en) 2000-05-09 2004-09-14 Sun Microsystems, Inc. Trusted construction of message endpoints in a distributed computing environment
US6918084B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Spawning new repository spaces using information provided in advertisement schema messages
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US6868447B1 (en) 2000-05-09 2005-03-15 Sun Microsystems, Inc. Mechanism and apparatus for returning results of services in a distributed computing environment
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US6643650B1 (en) 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US7016966B1 (en) 2000-05-09 2006-03-21 Sun Microsystems, Inc. Generating results gates in a distributed computing environment
US7007088B1 (en) * 2000-05-31 2006-02-28 Sun Microsystems, Inc. Method and apparatus for providing an E-business audit trail in a distributed computing system
US6854115B1 (en) 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6760815B1 (en) 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6957237B1 (en) 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US6941410B1 (en) 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
US6865657B1 (en) 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US6763440B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. Garbage collection using nursery regions for new objects in a virtual heap
US7249095B2 (en) 2000-06-07 2007-07-24 The Chase Manhattan Bank, N.A. System and method for executing deposit transactions over the internet
US7587497B1 (en) * 2000-06-20 2009-09-08 Palmsource Inc. Information exchange between a handheld device and another computer system using an exchange manager and uniform resource locator (URL) strings
US7333952B1 (en) 2000-06-23 2008-02-19 Ebs Group Limited Compound order handling in an anonymous trading system
US7827085B1 (en) 2000-06-23 2010-11-02 Ebs Group Limited Conversational dealing in an anonymous trading system
US7024386B1 (en) 2000-06-23 2006-04-04 Ebs Group Limited Credit handling in an anonymous trading system
US7184982B1 (en) 2000-06-23 2007-02-27 Ebs Group Limited Architecture for anonymous trading system
US7366690B1 (en) * 2000-06-23 2008-04-29 Ebs Group Limited Architecture for anonymous trading system
GB2364586B (en) * 2000-06-23 2004-06-16 Ebs Nominees Ltd Deal matching in an anonymous trading system
US6983259B1 (en) 2000-06-23 2006-01-03 Ebs Group Limited Anonymous trading system
US20020065947A1 (en) * 2000-07-13 2002-05-30 Clayton Wishoff Software application agent interface
US6865579B1 (en) 2000-08-28 2005-03-08 Sun Microsystems, Inc. Simplified thread control block design
US6728722B1 (en) * 2000-08-28 2004-04-27 Sun Microsystems, Inc. General data structure for describing logical data spaces
US7392212B2 (en) 2000-09-28 2008-06-24 Jpmorgan Chase Bank, N.A. User-interactive financial vehicle performance prediction, trading and training system and methods
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
EP1195677A1 (en) * 2000-10-06 2002-04-10 Abb Research Ltd. Dynamic class loading
US6754717B1 (en) 2000-10-23 2004-06-22 International Business Machines Corporation Establishing compatibility of messages for communicating between processing entities with continuous availability
SE517816C2 (sv) * 2000-10-27 2002-07-16 Terraplay Systems Ab Metod och anordning för en applikation
US7383355B1 (en) 2000-11-01 2008-06-03 Sun Microsystems, Inc. Systems and methods for providing centralized management of heterogeneous distributed enterprise application integration objects
AU2002230799A1 (en) * 2000-11-01 2002-05-15 Metis Technologies, Inc. A method and system for application development and a data processing architecture utilizing destinationless messaging
ATE389206T1 (de) * 2000-11-01 2008-03-15 Seebeyond Technology Corp System und methode zum zentralisierten management von verteilten, heterogenen objekten zur enterprise application integration
US7313541B2 (en) 2000-11-03 2007-12-25 Jpmorgan Chase Bank, N.A. System and method for estimating conduit liquidity requirements in asset backed commercial paper
US6993506B2 (en) 2000-12-05 2006-01-31 Jgr Acquisition, Inc. Method and device utilizing polymorphic data in e-commerce
US20020108115A1 (en) * 2000-12-11 2002-08-08 The Associated Press News and other information delivery system and method
US6965916B1 (en) 2000-12-14 2005-11-15 Bellsouth Intellectual Property Corp. System and method for data distribution and recovery
US7917576B1 (en) 2000-12-14 2011-03-29 At&T Intellectual Property I, L.P. System and method for sending electronic mail in a client-server architecture
US6901448B2 (en) * 2000-12-29 2005-05-31 Webex Communications, Inc. Secure communications system for collaborative computing
US7130883B2 (en) 2000-12-29 2006-10-31 Webex Communications, Inc. Distributed network system architecture for collaborative computing
US20030167302A1 (en) * 2000-12-29 2003-09-04 Min Zhu Scalable distributed network system for collaborative computing
US6925645B2 (en) * 2000-12-29 2005-08-02 Webex Communications, Inc. Fault tolerant server architecture for collaborative computing
US20030167418A1 (en) * 2000-12-29 2003-09-04 Min Zhu Fault-tolerant server for collaborative computing
US7069298B2 (en) * 2000-12-29 2006-06-27 Webex Communications, Inc. Fault-tolerant distributed system for collaborative computing
US7203755B2 (en) * 2000-12-29 2007-04-10 Webex—Communications, Inc. System and method for application sharing in collaborative setting
US20030164853A1 (en) 2000-12-29 2003-09-04 Min Zhu Distributed document sharing
US7363269B2 (en) * 2001-01-03 2008-04-22 Ebs Group Limited Conversational dealing system
US7296275B2 (en) 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US20020161859A1 (en) * 2001-02-20 2002-10-31 Willcox William J. Workflow engine and system
WO2002069142A1 (en) * 2001-02-23 2002-09-06 Skyva International Business modeling framework system and methods
US7036072B1 (en) 2001-12-18 2006-04-25 Jgr Acquisition, Inc. Method and apparatus for declarative updating of self-describing, structured documents
US7415669B1 (en) 2001-02-27 2008-08-19 Open Invention Network Method and apparatus for viewing electronic commerce-related documents
WO2002071201A1 (en) * 2001-02-28 2002-09-12 Xbridge Software, Inc. Method and apparatus for electronic document exchange
US7120896B2 (en) * 2001-10-31 2006-10-10 Vitria Technology, Inc. Integrated business process modeling environment and models created thereby
US20020144256A1 (en) * 2001-03-30 2002-10-03 Navin Budhiraja Method of deployment for concurrent execution of multiple versions of an integration model on an integration server
US20030140126A1 (en) * 2001-03-30 2003-07-24 Vitria Technology, Inc. Method of deployment for concurrent execution of multiple versions of an integration model
US7596526B2 (en) 2001-04-16 2009-09-29 Jpmorgan Chase Bank, N.A. System and method for managing a series of overnight financing trades
US7801944B2 (en) * 2001-05-18 2010-09-21 Gary Stephen Shuster Distributed computing using agent embedded in content unrelated to agents processing function
US6694002B2 (en) 2001-06-18 2004-02-17 International Business Machines Corporation Generic service component for wireless services
US6690781B2 (en) 2001-06-18 2004-02-10 International Business Machines Corporation Generic service component for telephony container server
US20070004641A1 (en) * 2001-05-24 2007-01-04 Neuren Pharmaceuticals Limited Cognitive enhancement and cognitive therapy using glycyl-L-2-methylprolyl-L-glutamate
US20020188548A1 (en) * 2001-06-06 2002-12-12 John Bunda Methods and systems for monitoring securities quotes
US20020194111A1 (en) * 2001-06-19 2002-12-19 Shayne Young Methods and systems for reconciling a forward conversion securities strategy
US7110525B1 (en) 2001-06-25 2006-09-19 Toby Heller Agent training sensitive call routing system
US7191452B2 (en) * 2001-06-29 2007-03-13 Convergys Cmg Utah Method for creating application programming interfaces for internal applications
US20030037066A1 (en) * 2001-08-14 2003-02-20 Newframe Corporation Ltd. Delegating sort tasks between heterogeneous computer systems
US7020784B2 (en) * 2001-08-20 2006-03-28 Yitran Communications Ltd. Mechanism for detecting intrusion and jamming attempts in a shared media based communications network
US20030041006A1 (en) * 2001-08-21 2003-02-27 John Bunda Methods and systems for suppression of stale or invalid data in a securities quotation display
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US20030083974A1 (en) * 2001-10-26 2003-05-01 John Bunda Method and system for managing display of quotes for securities from multiple sources
US6665626B2 (en) * 2001-11-14 2003-12-16 Inventec Corporation Network-based computer testing system
US7171022B2 (en) * 2001-12-05 2007-01-30 Lockheed Martin Corporation Common method for communicating area information
DE10161064A1 (de) 2001-12-12 2003-07-03 Siemens Ag System und Verfahren zur Kommunikation zwischen Softwareapplikationen, insbesondere MES-Applikationen
DE10161111A1 (de) * 2001-12-12 2003-07-03 Siemens Ag System und Verfahren zur Projektierung von Transformationen von Objektbäumen
US20030140058A1 (en) * 2002-01-18 2003-07-24 Vitria Technology, Inc. Method and apparatus for sharing information between applications using common objects
US7290267B2 (en) * 2002-01-23 2007-10-30 International Business Machines Corporation Multi-protocol object distribution
US20030145017A1 (en) * 2002-01-31 2003-07-31 Patton Thadd Clark Method and application for removing material from documents for external sources
US20030182239A1 (en) * 2002-03-21 2003-09-25 Auzoux Yann O. System and method for providing internet services to sports enthusiasts such as tennis players
US7979528B2 (en) * 2002-03-27 2011-07-12 Radvision Ltd. System and method for traversing firewalls, NATs, and proxies with rich media communications and other application protocols
US8224723B2 (en) 2002-05-31 2012-07-17 Jpmorgan Chase Bank, N.A. Account opening system, method and computer program product
JP2004038575A (ja) * 2002-07-03 2004-02-05 Sony Corp データ送受信システム及びデータ送受信方法、情報提供装置及び情報提供方法、並びにデータ受信装置及びデータ受信方法
US7047488B2 (en) * 2002-07-19 2006-05-16 Open Invention Network Registry driven interoperability and exchange of documents
US7200674B2 (en) * 2002-07-19 2007-04-03 Open Invention Network, Llc Electronic commerce community networks and intra/inter community secure routing implementation
US7729922B2 (en) 2002-08-15 2010-06-01 Open Invention Network, Llc Dynamic interface between BPSS conversation management and local business management
US7721202B2 (en) * 2002-08-16 2010-05-18 Open Invention Network, Llc XML streaming transformer
US7424702B1 (en) * 2002-08-19 2008-09-09 Sprint Communications Company L.P. Data integration techniques for use in enterprise architecture modeling
US20050005116A1 (en) * 2002-09-18 2005-01-06 Commerce One Operations, Inc. Dynamic interoperability contract for web services
US7340508B1 (en) 2002-09-18 2008-03-04 Open Invention Network, Llc Exposing process flows and choreography controllers as web services
US7444522B1 (en) * 2002-09-18 2008-10-28 Open Invention Network, Llc Dynamic negotiation of security arrangements between web services
US20040260947A1 (en) * 2002-10-21 2004-12-23 Brady Gerard Anthony Methods and systems for analyzing security events
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US20040093390A1 (en) * 2002-11-12 2004-05-13 Matthias Oberdorfer Connected memory management
US7565419B1 (en) 2002-11-22 2009-07-21 Symantec Operating Corporation Conflict resolution in a peer to peer network
US8516470B1 (en) 2002-12-16 2013-08-20 Symantec Corporation Version upgrade via viral infection
US20040117793A1 (en) * 2002-12-17 2004-06-17 Sun Microsystems, Inc. Operating system architecture employing synchronous tasks
US7318163B2 (en) * 2003-01-07 2008-01-08 International Business Machines Corporation System and method for real-time detection of computer system files intrusion
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7644123B2 (en) * 2003-03-24 2010-01-05 British Telecommunications Public Limited Company Message announcements
US7337438B1 (en) 2003-03-31 2008-02-26 Applied Micro Circuits Corporation Macros to support structures for an assembler that does not support structures
US7634435B2 (en) 2003-05-13 2009-12-15 Jp Morgan Chase Bank Diversified fixed income product and method for creating and marketing same
US7770184B2 (en) 2003-06-06 2010-08-03 Jp Morgan Chase Bank Integrated trading platform architecture
US7970688B2 (en) 2003-07-29 2011-06-28 Jp Morgan Chase Bank Method for pricing a trade
CA2436633A1 (en) * 2003-08-05 2005-02-05 Ibm Canada Limited - Ibm Canada Limitee Encapsulating and executing computer algorithms
US20050055424A1 (en) * 2003-09-10 2005-03-10 Government Of The United States Of America As Represented By The Secretary Of The Navy. Read-only baseline web site to which changes are made via mirror copy thereof in cut-and-paste manner
US8453196B2 (en) 2003-10-14 2013-05-28 Salesforce.Com, Inc. Policy management in an interoperability network
US7593876B2 (en) 2003-10-15 2009-09-22 Jp Morgan Chase Bank System and method for processing partially unstructured data
US8655755B2 (en) 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US7933226B2 (en) * 2003-10-22 2011-04-26 Palo Alto Research Center Incorporated System and method for providing communication channels that each comprise at least one property dynamically changeable during social interactions
US7472195B2 (en) * 2003-11-19 2008-12-30 International Business Machines Corporation Unobtrusive port and protocol sharing among server processes
US8775654B2 (en) * 2003-12-19 2014-07-08 Salesforce.Com, Inc. Apparatus and methods for mediating messages
US8544096B2 (en) * 2003-12-30 2013-09-24 Emc Corporation On-access and on-demand distributed virus scanning
US7685188B2 (en) * 2004-01-23 2010-03-23 Microsoft Corporation Automated generation of computer-executable compensation procedures for previously executed methods
US7624141B2 (en) * 2004-01-23 2009-11-24 Microsoft Corporation Deterministic rule-based dispatch of objects to code
US7370317B2 (en) * 2004-01-23 2008-05-06 Microsoft Corporation Automated generation of message exchange pattern simulation code
US7451211B2 (en) * 2004-01-23 2008-11-11 Microsoft Corporation Message exchange pattern tracking to avoid invalid message exchange
US7216255B2 (en) * 2004-01-23 2007-05-08 Microsoft Corporation Adaptive recovery from system failure for application instances that govern message transactions
US7631071B2 (en) * 2004-01-23 2009-12-08 Microsoft Corporation Mechanism for ensuring processing of messages received while in recovery mode
US7565451B2 (en) * 2004-01-23 2009-07-21 Microsoft Corporation Adaptive dispatch of received messages to code using inter-positioned message modification
US7296183B2 (en) * 2004-01-23 2007-11-13 Microsoft Corporation Selectable data field consistency checking
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
EP1725932A4 (en) * 2004-03-10 2009-09-23 Handmark Inc DATA ACCESS ARCHITECTURE
US8249071B2 (en) * 2004-03-26 2012-08-21 Harman International Industries, Incorporated Audio related system communication protocol
US8423447B2 (en) 2004-03-31 2013-04-16 Jp Morgan Chase Bank System and method for allocating nominal and cash amounts to trades in a netted trade
US8694475B2 (en) * 2004-04-03 2014-04-08 Altusys Corp. Method and apparatus for situation-based management
US20050222810A1 (en) * 2004-04-03 2005-10-06 Altusys Corp Method and Apparatus for Coordination of a Situation Manager and Event Correlation in Situation-Based Management
JP4527434B2 (ja) * 2004-04-16 2010-08-18 大日本印刷株式会社 携帯型情報記憶媒体及びそのプログラム
US20050256797A1 (en) * 2004-05-13 2005-11-17 Scottrade, Inc. Method and apparatus for user-interactive financial instrument trading
US20050289311A1 (en) * 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US20060005015A1 (en) * 2004-06-30 2006-01-05 David Durham System and method for secure inter-platform and intra-platform communications
US7379934B1 (en) * 2004-07-09 2008-05-27 Ernest Forman Data mapping
US7725605B2 (en) 2004-08-06 2010-05-25 Salesforce.Com, Inc. Providing on-demand access to services in a wide area network
US7693770B2 (en) * 2004-08-06 2010-04-06 Jp Morgan Chase & Co. Method and system for creating and marketing employee stock option mirror image warrants
US9645712B2 (en) 2004-10-01 2017-05-09 Grand Central Communications, Inc. Multiple stakeholders for a single business process
WO2006055446A2 (en) 2004-11-14 2006-05-26 Bloomberg Lp Data coding, transmission, storage and decoding
US8321465B2 (en) * 2004-11-14 2012-11-27 Bloomberg Finance L.P. Systems and methods for data coding, transmission, storage and decoding
CA2594082A1 (en) 2005-01-06 2006-07-13 Tervela, Inc. A caching engine in a messaging system
CA2595254C (en) * 2005-01-06 2013-10-01 Tervela, Inc. Hardware-based messaging appliance
US8688569B1 (en) 2005-03-23 2014-04-01 Jpmorgan Chase Bank, N.A. System and method for post closing and custody services
US7676028B2 (en) * 2005-05-31 2010-03-09 Cisco Technology, Inc. System and method for storing a voicemail message in a communication environment
US7822682B2 (en) 2005-06-08 2010-10-26 Jpmorgan Chase Bank, N.A. System and method for enhancing supply chain transactions
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US7567928B1 (en) 2005-09-12 2009-07-28 Jpmorgan Chase Bank, N.A. Total fair value swap
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US7748037B2 (en) * 2005-09-22 2010-06-29 Intel Corporation Validating a memory type modification attempt
US7818238B1 (en) 2005-10-11 2010-10-19 Jpmorgan Chase Bank, N.A. Upside forward with early funding provision
US7689632B2 (en) * 2005-12-01 2010-03-30 Honeywell International Inc. Adaptive data dictionary language, extendable for a security system
US8134928B1 (en) 2005-12-15 2012-03-13 Nvidia Corporation Technique for identifying a failed network interface card within a team of network interface cards
US20070156807A1 (en) * 2005-12-29 2007-07-05 Jian Ma Data transmission method and arrangement for data transmission
US8280794B1 (en) 2006-02-03 2012-10-02 Jpmorgan Chase Bank, National Association Price earnings derivative financial product
US8566840B2 (en) * 2006-02-27 2013-10-22 Red Hat, Inc. Method and system for kernel level filtering
US7752596B2 (en) * 2006-03-17 2010-07-06 Microsoft Corporation Connecting alternative development environment to interpretive runtime engine
US8146100B2 (en) 2006-03-21 2012-03-27 Sap Ag System and method for event-based information flow in software development processes
US7620578B1 (en) 2006-05-01 2009-11-17 Jpmorgan Chase Bank, N.A. Volatility derivative financial product
US7647268B1 (en) 2006-05-04 2010-01-12 Jpmorgan Chase Bank, N.A. System and method for implementing a recurrent bidding process
US7944864B2 (en) * 2006-06-01 2011-05-17 International Business Machines Corporation Method and system for supporting dynamic stream attributes
US8667382B2 (en) * 2006-06-28 2014-03-04 International Business Machines Corporation Configurable field definition document
US9811868B1 (en) 2006-08-29 2017-11-07 Jpmorgan Chase Bank, N.A. Systems and methods for integrating a deal process
DE102006051188A1 (de) * 2006-10-30 2008-05-08 Siemens Ag Flexibles Verschaltungssystem
US7827096B1 (en) 2006-11-03 2010-11-02 Jp Morgan Chase Bank, N.A. Special maturity ASR recalculated timing
WO2008061557A1 (en) * 2006-11-20 2008-05-29 Freescale Semiconductor, Inc. System, apparatus and method for translating data
US7934207B2 (en) * 2006-12-19 2011-04-26 Microsoft Corporation Data schemata in programming language contracts
US8432788B2 (en) * 2007-05-18 2013-04-30 Nvidia Corporation Intelligent failback in a load-balanced networking environment
US7995465B2 (en) * 2007-05-18 2011-08-09 Nvidia Corporation Intelligent load balancing and failover of network traffic
US8300647B2 (en) * 2007-05-18 2012-10-30 Nvidia Corporation Intelligent load balancing and failover of network traffic
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
CA2620337C (en) 2008-02-04 2012-11-27 Omnivex Corporation Digital signage network
CA2822771C (en) 2008-02-04 2015-09-29 Omnivex Corporation Subscription based content delivery for a digital signage network
JP4577907B2 (ja) * 2008-03-18 2010-11-10 株式会社沖データ 画像処理装置、画像形成装置、及び印刷システム
US8174962B2 (en) * 2008-04-15 2012-05-08 Honeywell International Inc. Global broadcast communication system
US10362131B1 (en) 2008-06-18 2019-07-23 Amazon Technologies, Inc. Fault tolerant message delivery
US8261286B1 (en) 2008-06-18 2012-09-04 Amazon Technologies, Inc. Fast sequential message store
US7895280B2 (en) 2008-09-03 2011-02-22 Microsoft Corporation Composing message processing pipelines
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US8301687B2 (en) * 2009-03-31 2012-10-30 Software Ag Systems and/or methods for standards-based messaging
US8050196B2 (en) 2009-07-09 2011-11-01 Itt Manufacturing Enterprises, Inc. Method and apparatus for controlling packet transmissions within wireless networks to enhance network formation
US20110029988A1 (en) * 2009-08-03 2011-02-03 Qualcomm Incorporated Methods and apparatus for facilitating application inter-communications
US20110055113A1 (en) * 2009-08-28 2011-03-03 Conor Cunningham Method and system for managing spread orders
US8738514B2 (en) * 2010-02-18 2014-05-27 Jpmorgan Chase Bank, N.A. System and method for providing borrow coverage services to short sell securities
US8352354B2 (en) 2010-02-23 2013-01-08 Jpmorgan Chase Bank, N.A. System and method for optimizing order execution
US20110282980A1 (en) * 2010-05-11 2011-11-17 Udaya Kumar Dynamic protection of a resource during sudden surges in traffic
FR2962619B1 (fr) 2010-07-09 2013-01-18 Thales Sa Dispositif d'acces a des donnees a bord d'un aeronef
US8738704B2 (en) * 2010-09-07 2014-05-27 Xerox Corporation Publish/subscribe broker messaging system and method
US9076152B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Semantic analysis of information
US8818963B2 (en) 2010-10-29 2014-08-26 Microsoft Corporation Halloween protection in a multi-version database system
WO2012060886A1 (en) 2010-11-05 2012-05-10 Mark Cummings, Ph.D. Orchestrating wireless network operations
US10694402B2 (en) 2010-11-05 2020-06-23 Mark Cummings Security orchestration and network immune system deployment framework
US10531516B2 (en) 2010-11-05 2020-01-07 Mark Cummings Self organizing system to implement emerging topologies
US10687250B2 (en) 2010-11-05 2020-06-16 Mark Cummings Mobile base station network
US10285094B2 (en) 2010-11-05 2019-05-07 Mark Cummings Mobile base station network
US20120203944A1 (en) * 2011-02-07 2012-08-09 Itg Software Solutions, Inc. Systems and Methods for Providing Access to Financial Trading Services
CN102651690B (zh) 2011-02-28 2015-11-25 国际商业机器公司 对共享内存进行控制的方法和装置
JP5857568B2 (ja) * 2011-09-15 2016-02-10 富士通株式会社 情報処理システム、受信装置、及び情報処理方法
US8249230B1 (en) 2012-01-09 2012-08-21 EC Data Systems, Inc. Scalable and flexible internet fax architecture
US8254538B1 (en) 2012-02-27 2012-08-28 EC Data Systems, Inc. Scalable and flexible internet fax architecture for processing outbound fax messages
US9094304B2 (en) 2012-05-10 2015-07-28 Cognex Corporation Systems and methods for dynamically configuring communication data items
US20130346107A1 (en) * 2012-06-20 2013-12-26 Oracle International Corporation Mobile clinical research associate framework for offline capability
US10530894B2 (en) * 2012-09-17 2020-01-07 Exaptive, Inc. Combinatorial application framework for interoperability and repurposing of code components
US9092581B2 (en) * 2012-10-09 2015-07-28 Intel Corporation Virtualized communication sockets for multi-flow access to message channel infrastructure within CPU
US9009354B2 (en) * 2012-12-20 2015-04-14 Sap Se Services and management layer for diverse data connections
US9195712B2 (en) 2013-03-12 2015-11-24 Microsoft Technology Licensing, Llc Method of converting query plans to native code
US8898784B1 (en) * 2013-05-29 2014-11-25 The United States of America, as represented by the Director, National Security Agency Device for and method of computer intrusion anticipation, detection, and remediation
US10474645B2 (en) 2014-02-24 2019-11-12 Microsoft Technology Licensing, Llc Automatically retrying transactions with split procedure execution
US10277778B2 (en) 2014-06-24 2019-04-30 Ec Data Systems Inc. Audit logging for a secure, scalable and flexible internet fax architecture
US10231254B2 (en) * 2016-08-05 2019-03-12 Nokia Technologies Oy 5G cloud RAN method for symbol by symbol bit streaming
US10080215B2 (en) * 2016-08-05 2018-09-18 Nokia Technologies Oy Transportation of user plane data across a split fronthaul interface
CN106603636B (zh) * 2016-11-29 2020-05-26 中国银联股份有限公司 一种差错交易的标准化方法及装置
US10491698B2 (en) 2016-12-08 2019-11-26 International Business Machines Corporation Dynamic distribution of persistent data
US11003616B1 (en) * 2017-06-27 2021-05-11 Amazon Technologies, Inc Data transfer using point-to-point interconnect
US11477667B2 (en) 2018-06-14 2022-10-18 Mark Cummings Using orchestrators for false positive detection and root cause analysis
US10805236B2 (en) * 2018-08-31 2020-10-13 Twitter, Inc. Event content delivery
US11647095B1 (en) * 2018-10-02 2023-05-09 Intuit Inc. Method and system for orchestrating communications between application services through a unified connector platform
US10771570B2 (en) * 2018-10-15 2020-09-08 Citrix Systems, Inc. Scalable message passing architecture a cloud environment
US11714694B2 (en) 2019-11-08 2023-08-01 Salesforce, Inc. Error notification mechanism for streaming events
US11533538B2 (en) * 2019-11-08 2022-12-20 Salesforce.Com, Inc. Streaming event content based filtering
US11532040B2 (en) 2019-11-12 2022-12-20 Bottomline Technologies Sarl International cash management software using machine learning
US11526859B1 (en) 2019-11-12 2022-12-13 Bottomline Technologies, Sarl Cash flow forecasting using a bottoms-up machine learning approach
CN111147573A (zh) 2019-12-24 2020-05-12 网宿科技股份有限公司 一种数据传输的方法和装置
US11704671B2 (en) 2020-04-02 2023-07-18 Bottomline Technologies Limited Financial messaging transformation-as-a-service
CN111970363B (zh) * 2020-08-17 2022-08-16 北京金山云网络技术有限公司 基于物联网的数据处理方法及装置
CN112596922B (zh) * 2020-12-17 2024-04-05 百度在线网络技术(北京)有限公司 通信管理方法、装置、设备和介质
EP4064053A1 (en) 2021-03-26 2022-09-28 Aptiv Technologies Limited Managing inter-service communication
US20230177604A1 (en) * 2021-12-06 2023-06-08 Jonathon FLETCHER Dynamic allocation of locations of matching engines in a cloud-based exchange

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4363093A (en) * 1980-03-10 1982-12-07 International Business Machines Corporation Processor intercommunication system
JPS6050097B2 (ja) * 1980-12-01 1985-11-06 日本電信電話株式会社 フオ−マツト変換装置
US4463093A (en) * 1982-06-30 1984-07-31 Nabisco Brands, Inc. Process for isomerizing L-glucose to L-fructose
JPS5992654A (ja) * 1982-11-09 1984-05-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 電子文書配送システム
US4559614A (en) * 1983-07-05 1985-12-17 International Business Machines Corporation Interactive code format transform for communicating data between incompatible information processing systems
US4688170A (en) * 1983-09-22 1987-08-18 Tau Systems Corporation Communications network for communicating with computers provided with disparate protocols
JPS60218142A (ja) * 1984-04-13 1985-10-31 Hitachi Ltd デ−タの動的型変換方式
US4718005A (en) * 1984-05-03 1988-01-05 International Business Machines Corporation Distributed control of alias name usage in networks
US5058108A (en) * 1984-06-01 1991-10-15 Digital Equipment Corporation Local area network for digital data processing system
US4823122A (en) * 1984-06-01 1989-04-18 Digital Equipment Corporation Local area network for digital data processing system
US4975904A (en) * 1984-06-01 1990-12-04 Digital Equipment Corporation Local area network for digital data processing system including timer-regulated message transfer arrangement
US4975905A (en) * 1984-06-01 1990-12-04 Digital Equipment Corporation Message transmission control arrangement for node in local area network
AU591057B2 (en) * 1984-06-01 1989-11-30 Digital Equipment Corporation Local area network for digital data processing system
US4714995A (en) * 1985-09-13 1987-12-22 Trw Inc. Computer integration system
US4851988A (en) * 1986-03-31 1989-07-25 Wang Laboratories, Inc. Loosely-coupled computer system using global identifiers to identify mailboxes and volumes
US4751635A (en) * 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
US4750135A (en) * 1986-05-01 1988-06-07 Reuters Limited Method for dynamically creating a receiver definable local trading instrument displayable record from a remotely transmitted trading instrument common data stream
JP2585535B2 (ja) * 1986-06-02 1997-02-26 株式会社日立製作所 複合計算機システムにおけるプロセス結合方法
JPS6350140A (ja) * 1986-08-19 1988-03-03 Matsushita Electric Ind Co Ltd デ−タ交換装置
US4815030A (en) * 1986-09-03 1989-03-21 Wang Laboratories, Inc. Multitask subscription data retrieval system
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
JPS63174159A (ja) * 1987-01-13 1988-07-18 Nec Corp 制御指令処理装置
JPS63214045A (ja) * 1987-03-02 1988-09-06 Matsushita Electric Ind Co Ltd 電子交換機
GB2205018B (en) * 1987-05-21 1992-01-02 Reuters Ltd Method and system for dynamically controlling the content of a local receiver data base from a transmitted data base in an information retrieval communication
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US4999771A (en) * 1987-08-31 1991-03-12 Control Data Corporation Communications network
US4992972A (en) * 1987-11-18 1991-02-12 International Business Machines Corporation Flexible context searchable on-line information system with help files and modules for on-line computer system documentation
US4815988A (en) * 1987-12-14 1989-03-28 Minnesota Mining And Manufacturing Company Two-step wire connection and cut-off terminal
JP2522518B2 (ja) * 1988-04-08 1996-08-07 富士通株式会社 端末装置の制御方式
US4914583A (en) * 1988-04-13 1990-04-03 Motorola, Inc. Method of indicating processes resident within a cell of a data processing system
US5062039A (en) * 1988-09-07 1991-10-29 International Business Machines Corp. Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
US5062037A (en) * 1988-10-24 1991-10-29 Ibm Corp. Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network
US4975830A (en) * 1988-12-05 1990-12-04 Dayna Communications, Inc. Computer communication system having supplemental formats
US5073852A (en) * 1988-12-16 1991-12-17 Cayman Systems, Inc. Network protocol translator including method and apparatus for reducing interprocess communication and data exchange overhead
JPH02170251A (ja) * 1988-12-23 1990-07-02 Nippon Telegr & Teleph Corp <Ntt> 情報送信方法
US4975914A (en) * 1989-01-24 1990-12-04 International Business Machines Corporation Non-disruptive session recovery
DE68926446T2 (de) * 1989-03-14 1996-12-05 Ibm Elektronisches System zum Genehmigen von Dokumenten
US5057996A (en) * 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation system and method in an object based computer operating system
US5187787B1 (en) * 1989-07-27 1996-05-07 Teknekron Software Systems Inc Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5257369A (en) * 1990-10-22 1993-10-26 Skeen Marion D Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
CA1312656C (en) * 1989-08-24 1993-01-12 Steven Messenger Wireless communications systems
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
JPH06350140A (ja) * 1993-06-04 1994-12-22 Iwasaki Electric Co Ltd 発光ダイオード

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
情報処理学会第33回(昭和61年後期)全国大会講演論文集 p1905−1906

Also Published As

Publication number Publication date
CA2052803C (en) 1999-02-16
JPH04299758A (ja) 1992-10-22
AU648113B2 (en) 1994-04-14
US5966531A (en) 1999-10-12
DE69128952D1 (de) 1998-04-02
US5557798A (en) 1996-09-17
AU8602491A (en) 1992-06-11
EP0485252A2 (en) 1992-05-13
ATE163483T1 (de) 1998-03-15
KR930701792A (ko) 1993-06-12
EP0485252B1 (en) 1998-02-25
KR970004519B1 (ko) 1997-03-28
CA2052803A1 (en) 1992-04-23
WO1992007324A1 (en) 1992-04-30
DE69128952T2 (de) 1998-10-01
EP0485252A3 (en) 1993-06-09
AU8953091A (en) 1992-05-20
MX9101699A (es) 1992-06-05

Similar Documents

Publication Publication Date Title
JP3023225B2 (ja) ソフトウエア間通信のためのデータ交換装置
US5257369A (en) Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
AU636152B2 (en) Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
JP4503225B2 (ja) 適応ディスパッチャを有する仮想ネットワーク
US6275490B1 (en) Method and apparatus for establishing communications from browser application
US7899047B2 (en) Virtual network with adaptive dispatcher
US5546584A (en) System and method for establishing communication protocols between application programs
Boggs et al. Pup: An internetwork architecture
EP0381365A2 (en) A system and method for interconnecting applications across different networks of data processing systems
CN1122979A (zh) 过程间通信和网络间数据传送的方法和系统
JPH09218860A (ja) クライアント/サーバシステムにおける多様なプロトコルに従った遠隔手続き呼出しをハンドリングする方法
JPH10513633A (ja) 標準対話式呼び処理通信用の汎用アプリケーション・プログラム・インターフェースを備えた電気通信交換器
JPH07101413B2 (ja) データブロック選択方法および制御ブロック選択システム
US6724724B1 (en) System and method for resolving an electronic address
JP4811884B2 (ja) 異なるインターネット通信スタック・インスタンスの間でデータ・パケットを経路指定するための方法及び装置
US6920143B1 (en) Computer telephony system using multiple hardware platforms to provide telephony services
Landweber et al. Architecture of the CSNET name server
WO2002069568A1 (en) Group-independent message transfer method and system lending specified application module
Want Reliable management of voice in a distributed system
Aumage et al. Efficient inter-device data-forwarding in the Madeleine communication library
Ebbers et al. Introduction to the new mainframe: networking
Saha et al. Design and implementation of a Network Service Access Point (NSAP) for OSI-compatibility
Want Technical Report iZkk
Winsborrow Connection of a GEC4080 computer to the European Informatics Network
JP2000207367A (ja) Corbaアプリケ―ションと協働可能なエ―ジェントア―キテクチャ

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080114

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090114

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090114

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100114

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110114

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees