JPH07281974A - ネットワーク内のコンピュータ間でデータを交換するための通信システム - Google Patents

ネットワーク内のコンピュータ間でデータを交換するための通信システム

Info

Publication number
JPH07281974A
JPH07281974A JP7033436A JP3343695A JPH07281974A JP H07281974 A JPH07281974 A JP H07281974A JP 7033436 A JP7033436 A JP 7033436A JP 3343695 A JP3343695 A JP 3343695A JP H07281974 A JPH07281974 A JP H07281974A
Authority
JP
Japan
Prior art keywords
computer
communication
data
application
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7033436A
Other languages
English (en)
Other versions
JP3251800B2 (ja
Inventor
Thomas Holmes Keith
キース・トマス・ホームズ
Hewitt Philip
フィリップ・ヒューウィット
O'connor Jonathan
ジョナサン・オコナー
Tomson Richard
リチャード・トムソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07281974A publication Critical patent/JPH07281974A/ja
Application granted granted Critical
Publication of JP3251800B2 publication Critical patent/JP3251800B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Abstract

(57)【要約】 【目的】 クライアント/サーバ装置において動作する
ようにネットワーク内で接続された、第1のコンピュー
タと第2のコンピュータとの間のデータの交換を容易に
する。 【構成】 このシステムは、第1のコンピュータ上で走
行する第1のアプリケーションからの、第2のコンピュ
ータとの接続を求める要求を処理して、複数の通信サー
ビスのうちの1つを実施するための第1の論理手段と、
第2のコンピュータ上の第2のアプリケーションに通信
サービスを実施するよう指示し、第2のアプリケーショ
ンによって提供されたデータを第1のコンピュータに戻
すための第2の論理手段と、各コンピュータ上にあって
各論理手段によってアクセス可能であり、複数の通信サ
ービスのそれぞれに関する定義を提供する単一のオブジ
ェクト・クラスを記憶する記憶装置とを含む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ネットワーク内で接続
された2台以上のコンピュータ間でのデータ交換を容易
にするための、通信システムおよびそのようなシステム
の動作方法に関する。詳細には、この通信システムはク
ライアント/サーバ型に基づくものであり、典型的なク
ライアント/サーバ型では、ネットワークの両端に接続
されたクライアント・コンピュータとサーバ・コンピュ
ータにおけるアプリケーション・プログラムの間で定期
的な通信をおこなう。クライアント・コンピュータは通
常、システムの使用者の近くにあり、サーバ・コンピュ
ータは様々な中央サービスを提供する。
【0002】
【従来の技術】クライアント・コンピュータとサーバ・
コンピュータのアーキテクチャはしばしば、データを表
現しタスクを管理する方式が異なる。またその性質上、
サーバ・コンピュータのオペレーティング・システム
は、非常に複雑なことがあり(たとえば、IBM社のM
VSオペレーティング・システム)、十分な性能で動作
し、かつクライアント・システムによるユーザが十分に
サービスを受けるためは不可欠な十分な信頼性、可用
性、保守容易性(一般にRASとして知られる)を備え
るためには、システムの構造と機能に関する深い知識を
必要とする。
【0003】通信システムは、クライアント・コンピュ
ータとサーバ・コンピュータの間の「インターフェー
ス」を提供し、クライアント・アプリケーション・プロ
グラムを書き込むプログラマは、このインターフェース
を利用して、クライアントとサーバの間で広範囲の基本
的要求および応答を通信する。これらの基本的要求に加
えてさらに、クライアント・アプリケーションに特に関
係する高レベルの要求を実施する必要があることもあ
る。
【0004】クライアント・コンピュータとサーバ・コ
ンピュータの間の協働的処理をある程度容易にするイン
ターフェースを確立するために、様々な既知の技法があ
る。これらの技法は、多かれ少なかれ、APPC(拡張
プログラム間通信機能:LU6.2ともいう)やTCP
/IPプロトコルなどの基礎的通信プロトコルに依存す
る。
【0005】既知のプログラミング・インターフェース
の1つは、たとえばAPPCなどの基本通信インターフ
ェースである。当業者には周知のように、APPCは、
分散データ・モデルのようなものについてのアーキテク
チャ「towers」を含む1組の膨大な数のLU6.2機能
への「アプリケーション・プログラム・インターフェー
ス」(API)アクセスを可能にする。他の通信プロト
コル(たとえば、TCP/IP)は、その代替機能を提
供する。
【0006】各クライアント・アプリケーション・プロ
グラムは、APPCの上にそれ自体の実施態様(インプ
リメンテーション)を開発することができるが、インタ
ーフェースの使用境界が予め定義されないので、特に複
雑な分野において労力や訓練の重複が生じ、全コードの
再使用がより困難になる。
【0007】大部分のクライアント/サーバのための効
率的な実施態様は、クライアント・アプリケーション・
プログラマがLU6.2などの通信プロトコルを深く理
解する必要のないものでなければならない。
【0008】もう1つの既知のプログラミング・インタ
ーフェースは、リモート手順呼出し(RPC)によって
提供される。この機能では、クライアント・アプリケー
ション・プログラムは単にサブルーチンを呼び出すだけ
でデータベースなどのリモート機能にアクセスし、通信
システムが、サブルーチンがローカルかリモートかを認
識する。リモートの場合には、呼出しはパッケージ化さ
れて、リンク(たとえば、LU6.2リンク)上をリモ
ート・システムに送られる。クライアント・アプリケー
ションはこの「機能伝送」について知らないので、呼出
しが戻るまで待機する。
【0009】このRPC技法は、現在の強力なクライア
ント/サーバ・システムの必要性に対して十分な柔軟性
がない。この技法は、応答を受け取る前に他の処理を実
行可能にする柔軟性をもたず、リンクの透過性を維持す
る必要があるため実施が複雑になることがある。
【0010】この型のインターフェースは、プログラマ
が、リモート・コンピュータへの通信が行われているこ
とをまったく知らないという点でまったく「透過」であ
るが、これは、クライアント/サーバ・システムがその
性能と可用性を最適化することが望まれる場合には理想
的ではない。そのような場合は、クライアント・アプリ
ケーション・プログラマが、要求のタイプ(リモート手
順呼出し、ファイル転送など)を非透過な方法で選択で
き、したがって、サーバ・アクセスが必要なとき、要求
のタイプに応じて、プログラマが最終ユーザに過度に影
響を与えない最良の決定を行えることが重要である。
【0011】メッセージ駆動式処理技法において、(I
BMの「MQ Series(キュー管理を行う)」の
製品によって提供されるような)アプリケーション・イ
ンターフェースは、分散されたアプリケーション間で完
全に非同期の待機通信を実現する。分散アプリケーショ
ンは、2台以上のコンピュータに部分的に存在するアプ
リケーションであり、それらの部分は互いに通信する必
要がある。このアプリケーション・インターフェース
は、ワークフロー管理に適した広範囲のメッセージ配布
と複雑な回復および保全性を提供する。
【0012】分散アプリケーション間のメッセージを使
用する他のより簡単な通信方法も、特にワークステーシ
ョンのみの環境では存在する。
【0013】より複雑なメッセージ駆動式処理技法(完
全なMQ Series の解法)は、密結合の協働的アプリケ
ーションには妥当ではなく「高価」すぎる。そのような
アプリケーションは、異なるコンピュータ上で走行する
別々の部分が、互いにいつ対話し聴取すべきかを知って
いるものである。1つの例は、専用クライアント/サー
バ通信システムである。この場合、クライアントは、サ
ーバに質問してサーバが答え、サーバは、質問されるま
でクライアントに決して話しかけない。そのようなアプ
リケーションでは、クライアントが要求を出しサーバが
すぐにそれを処理するので、非同期に待機する必要がな
い。
【0014】一方、より簡単なメッセージ方法は、今日
の強力なクライアント/サーバ機能(ホストのデータベ
ースへの無制限のアクセスおよび性能を含む)に必要と
される、MVSなどのホスト・システム上ですぐには使
用できない。
【0015】もう1つの既知の技法は、一般に「ローカ
ルAPIエミュレーション」と呼ばれる。様々な協働的
プログラミング・インターフェースは、「ローカル」の
APIの一部または全部をエミュレートすることに依拠
しており、この技法はある種の改良RPCと見なすこと
ができる。たとえば、IBM社の製品 "AConnS"
は、OS/2プレゼンテーション・マネージャ・インタ
ーフェースのサブセットの分散バージョンによって、協
働的機能を提供した。標準的なRPC技法に勝る利点
は、クライアント・アプリケーションのプログラマが、
通信が進行中であり、したがって自分のアクティビティ
を最適化できることをはっきりと知っていることであ
る。一方、欠点は、複雑なローカルAPIの分散が、扱
いにくく、高価で、不自然なことがあり得ることであ
る。さらに、分散APIの概念は、広すぎたり、あるい
は、クライアント/サーバ・システムの特定の必要から
遠くかけ離れていたりすることがある。
【0016】今日、多くのデータ処理システムは、シス
テム上で走行するアプリケーションによって「オブジェ
クト・インスタンス」が作成され使用される、メッセー
ジ・ベースの環境を有する。
【0017】メッセージ・ベースの環境は、オブジェク
ト指向プログラミング(OOP)技法によって使用さ
れ、このOOPは、「オブジェクト」に送られる「メッ
セージ」によって必要な機能を実施するソフトウェア開
発の具体的手法である。「オブジェクト」は、関連する
手順(以下、「メソッド」と呼ぶ)とデータの集合体を
含むソフトウェア構成要素である。さらに、オブジェク
トは、「オブジェクト・クラス」に分類することがで
き、オブジェクト・クラスは、特定タイプのオブジェク
トに関するメソッドおよびデータを定義するためのテン
プレートである。所与のクラスのすべてのオブジェクト
は、形式と挙動が同一であるが、それに関連するデータ
が異なる。
【0018】「メッセージ」は、オブジェクトにそのメ
ソッドのうちの1つを実行するように要求するために、
オブジェクトに送られる信号である。したがって、オブ
ジェクトに送られるメッセージは、必要な機能を実施す
るためにメソッドを呼び出す。
【0019】今日、プログラミング・インターフェース
分野にOOP技法を適用することは一般的になってきて
いる。オブジェクト指向の設計において、最初のタスク
は、アプリケーション(実世界)、ユーザ・インターフ
ェース、システム・サービス、通信などの「定義域(do
main)」を識別することである。これらの境界を明確に
定めるのことは難しい。
【0020】第2のタスクは、それぞれの定義域内で、
クラス(属性と関連サービスを有するオブジェクト)を
識別することである。結果として生じるソフトウェアの
複雑さは、この分析に極めて大きく依存する。
【0021】オブジェクトを使って通信機能を表現する
従来のシステムは、一般に、既存のAPI(たとえば、
APPC)を反映する必要に駆られて、関連のない1組
のオブジェクトで終了する。その結果として、通常は通
信定義域の境界は明確に識別できない。たとえば、典型
的なOOPシステムは、その開発の対象であったアプリ
ケーション・プログラムに強く拘束された「セッション
開始」、「バッファ獲得」、「送信/受信」、「エラー
応答」、「データ除去」などの通信機能を、関連のない
オブジェクトとして実施するかもしれない。したがっ
て、それらのオブジェクトを再使用するのは難しい。
【0022】
【発明が解決しようとする課題】クライアント/サーバ
環境において、クライアントとサーバの間のプログラミ
ング・インターフェースが、クライアント・アプリケー
ションを通信アーキテクチャまたは通信APIに露出
(exposure)させずに、たとえば、ローカルのクライア
ント・アプリケーションが機能の呼出し、ファイルの操
作、データの転送、およびリモート・サーバ・プラット
フォームとの対話通信ができるようにする、主要なクラ
イアント/サーバ機能を提供する必要がある。
【0023】これは、クライアントとサーバの間で、ク
ライアント/サーバに関して最適化でき、複雑で強力な
ホスト・システムを利用でき、異なるデータ表現を支援
できるような形で動作できると好都合である。
【0024】さらに、好ましい実施例においては、イン
ターフェースを実施した通信システムは、他の様々な種
類のクライアント/サーバに再使用でき、たとえば他の
サーバ・プラットフォームに拡張可能でなければならな
い。
【0025】
【課題を解決するための手段】したがって、本発明は、
基本的な通信アプリケーション・プログラム・インター
フェース(API)を有し、クライアント/サーバ装置
において動作するようにネットワーク内で接続された、
第1のコンピュータと、第1のコンピュータとは異なる
オペレーティング・システムを使用する第2のコンピュ
ータとの間のデータの交換を容易にする通信システムを
提供する。このシステムは、第1のコンピュータ上で走
行する第1のアプリケーションからの、第2のコンピュ
ータとの接続を求める要求を処理して、複数の通信サー
ビスのうちの1つを実施するための第1の論理手段と、
第2のコンピュータ上の第2のアプリケーションに通信
サービスを実施するよう指示し、第2のアプリケーショ
ンによって提供されたデータを第1のコンピュータに戻
すための第2の論理手段と、各コンピュータ上にあって
各論理手段によってアクセス可能であり、それぞれが複
数の各通信サービスに関する定義を提供するための単一
のオブジェクト・クラスを記憶する記憶装置を有するこ
とを特徴とする。
【0026】好ましい実施例においては、各記憶装置
は、単一のオブジェクト・クラスから派生した(導出さ
れた)オブジェクト・クラスのコヒーシブな(cohesiv
e:単一クラスから導出された密な)フレームワーク(f
ramework)を記憶する。さらに、オブジェクト・クラス
のフレームワークによって定義された通信サービスが、
機能呼出し、ファイル操作およびデータ転送を容易にす
る。すなわち引用可能な複数の通信サービスのそれぞれ
についての定義を与える単一のオブジェクト・クラスが
記憶されており、この単一のオブジェクト・クラスから
派生し強固に関連付けられたオブジェクト・クラスのフ
レームワークがこの単一のクラスをインプリメントす
る。
【0027】この通信システムの好ましい実施例におい
ては、第1のコンピュータによって使用されるオペレー
ティング・システムは、IBM社のOS/2オペレーテ
ィング・システムである。さらに、第2のコンピュータ
によって使用されるオペレーティング・システムは、I
BM社のMVSオペレーティング・システムである。そ
のような装置では、基本的通信APIはAPPCでもよ
い。
【0028】第2の態様について見ると、本発明は、基
本的な通信アプリケーション・プログラム・インターフ
ェース(API)を有し、クライアント/サーバ装置に
おいて動作するようにネットワーク内で接続された、第
1のコンピュータと、第1のコンピュータとは異なるオ
ペレーティング・システムを使用する第2のコンピュー
タとの間のデータの交換を容易にする通信システムを操
作する方法を提供する。この方法は、第1の論理手段を
使用して、第1のコンピュータ上で実行する第1のアプ
リケーションからの、第2のコンピュータとの接続を求
める要求を処理して、複数の通信サービスのうちの1つ
を実施する段階と、第2の論理手段を使用して、第2の
コンピュータ上の第2のアプリケーションに通信サービ
スを実施するよう指示する段階と、第2のアプリケーシ
ョンによって提供されたデータを、第2の論理手段を経
由して第1のコンピュータに戻す段階と、それぞれのコ
ンピュータにおいて、各論理手段によってアクセス可能
な記憶領域に、複数の通信サービスのそれぞれに関する
定義を提供する単一のオブジェクト・クラスを記憶する
段階とを有することを特徴とする。
【0029】本発明は、異なる通信サービスを単一の
「オブジェクト・クラス」によって表すことができると
いう認識にたっており、このアプローチは、クライアン
ト/サーバ通信において多くの著しい改良をもたらす。
「通信」(クライアント←→サーバ)を「それ自体」ク
ラスとして表すことができるので、通信定義域(そのク
ラスおよびその派生クラスのサービス)が明確に定義で
きる。
【0030】本発明の技法は、上記の従来技術のどの技
法とも異なり、API自体の内部に、明確で再使用可能
な1組のクライアント/サーバ機能を提供する。
【0031】通常、「一般的(generic)」サービスを
提供する際の問題点は、特定の環境のために最適化し、
あるいは特定のアプリケーションの必要に合わせて機能
の容易な変更または強化を可能にすることがすぐにはで
きないことである。
【0032】通信定義域内で動作するコードが(どのよ
うなコードも理論的にはオブジェクト指向方式で作成さ
れるので)必ずオブジェクト指向方式で作成できること
は明らかであるが、1組の基本的クライアント/サーバ
通信機能を単一のC++オブジェクト・クラス自体とし
て表すことによって、柔軟性のある簡単なインターフェ
ースを構築できることが本発明の最も重要な点である。
言い換えると、本発明は、クライアント/サーバ・アプ
リケーション用の、極めて有用な協働的インターフェー
スを確立するための新しい技法をカプセル化するもので
ある。
【0033】この技法は、オブジェクト指向の概念の利
用とあいまって、クライアント/サーバの協働的必要性
をクラスの属性とみなす着想から生まれた(たとえば、
クラスの導出により、基本機能の容易な変更と拡張が可
能になり、それにより、インターフェースがシステムの
特定要件に合わせて調整される)。
【0034】RPC、ファイル転送、データ変換、送受
信などのサービスをクラス・サービスとして表すことに
よって、通信は、通常の機能呼出しと同様に複雑でない
が、その基本的性質に影響を及ぼすことなく拡張可能か
つ最適化可能であり、いかなる既存の使用にも影響を及
ぼすことなしにクラスを拡張またはサブクラス化でき
る。さらに、新しいクライアント/サーバ・アプリケー
ション用の新しいクラスを導出できるので、再使用可能
性が極めて高い。
【0035】
【実施例】本発明の好ましい実施例において、典型的な
クライアント/サーバ・モデルに基づく通信システムを
検討する。クライアント・コンピュータは、通常はIB
MのOS/2オペレーティング・システムなどのオペレ
ーティング・システムを使用し、サーバ・コンピュータ
は、IBMのMVSオペレーティング・システムなどの
ホスト・ベースのオペレーティング・システムを使用す
る。
【0036】通信システムを構築する際の問題点は、一
般に、いくつかの具体的分野に分けることができる。こ
れを行うためには、まず、問題の通信システムの特定の
機能要件を検討しなければならない。たとえば、通信シ
ステムに関するいくつかの特定の機能要件は、以下のよ
うなものである。
【0037】RPC(リモート手順呼出し):本質的
に、クライアントの要求に応じて、通信システムがホス
ト・サーバ上の手順を呼び出す。利用可能な手順の初期
の数は比較的少ないかもしれないが、この機能は、将来
新しい手順を加えるために容易に拡張可能でなければな
らない。
【0038】データ変換:通信システムは、混合された
データ・タイプからなり、クライアントとホスト・サー
バの間で交換される、多数の複雑な制御ブロックを有す
ることがある。これらの制御ブロックは、適切なプラッ
トフォーム・フォーマットに変換しなければならず、漢
字などのDBCS(2バイト文字セット)データに対応
しなければならないこともある。
【0039】バッファ管理:任意の量のデータがサーバ
から戻されるが、戻されるデータの量は前もってはわか
らない。送信バッファの限度を越える大きさのこともあ
る(送信バッファは、リンク上に送られるデータの記憶
域である)。
【0040】ファイル管理:順次メンバおよびPDS
(区分データ・セット)メンバを含むファイルの、ダウ
ンロードとアップロードを必要とすることがある。削
除、印字、コピーなど、他の潜在的要件がある。
【0041】透過動作:通信システムの使い易さという
目標のためには、通信の諸態様は「不可視」でなければ
ならない。ユーザが開始する起動と終了の必要をなくす
べきである。
【0042】柔軟性:通信システムは、広範囲の異なる
システム構成上で使用可能なので、重要な性能要因がか
なり変化することがある。これに対処するために、キー
性能パラメータの修正が容易でなければならない。しか
しまた、使い易さのために、省略時構成を提供しなけれ
ばならない。
【0043】環境:本発明の好ましい実施例において
は、通信システムは、APPC通信を使用するOS/2
クライアントとMVSサーバとの間に上記の機能を必要
とする。
【0044】これらの要件は、いくつかの別個の問題を
もたらす。たとえば、1つの問題は性能と資源使用にあ
り、OS/2のユーザ駆動型多重スレッド式の性質は特
に、クライアント/サーバに関して、たとえば以下のよ
うないくつかの問題をMVSに提示する。
【0045】1.並行性:応答時間が許容できるもので
ある場合、並行サーバ・アクティビティ(処理動作)
は、並行フロント・エンド・アクティビティを処理する
ことが必要とされる。これは、MVSサーバでは特に困
難である。
【0046】2.セッション制御:予測できないユーザ
・アクティビティ・シーケンスは、通信セッションをど
れだけ長く活動状態に保つべきかを決定できない。セッ
ションの頻繁な停止と開始は、大きな性能のオーバヘッ
ドを伴う。
【0047】3.資源使用:OS/2処理、MVSアド
レス空間、APPC対話などの資源の有効使用を最大に
するための試みを行わない限り、ワークステーション上
の並行アクティビティは、様々なネットワーク資源とプ
ラットフォーム資源の激しい使用をもたらすことがあ
る。これは、コストを高め、全体的処理能力を低下させ
る。
【0048】4.資源共用:資源の使用を管理する試み
が行われない限り、あるユーザによる著しいアクティビ
ティが、他のユーザが使用可能な資源に影響し、他のユ
ーザのアプリケーションの性能に悪影響を与えることが
ある。理想的には、あるユーザによる著しいアクティビ
ティが、そのユーザ自体の性能だけに影響を与えるべき
である。
【0049】第2の問題は、ソフトウェア再使用および
拡張性の分野において生じる。通信システムのために開
発された機能は、使用、再使用および拡張が容易でなけ
ればならない。これは、以下のような潜在的な用途に対
応するためである。 1.追加の機能や新しいプラットフォーム(たとえば、
VM)など、通信システムの将来の拡張。 2.他のプロダクト用の「ビルディング・ブロック」と
しての通信システムの再使用。
【0050】これらの問題は、本発明の好ましい実施例
においては、機能性と性能に関する必要な通信要件を提
供し、かつ容易に拡張可能で調整可能である単一でコヒ
ーシブな統合された「プロダクト」によって克服され
る。このプロダクトを、今後、クライアント/サーバ・
アプリケーション・イネーブラ(CSAE)と呼ぶ。そ
の特性は以下の通りである。
【0051】1.通信アーキテクチャまたは通信API
にクライアント・アプリケーションを露出させずに、ク
ライアント・アプリケーションが機能を呼び出し、ファ
イルを操作し、データを転送し、リモート・プラットフ
ォームとの対話通信を実施できるようにするための、サ
ービスをクライアント・アプリケーションに提供する。
【0052】2.特定の必要のために機能が導出できる
ように、これらのサービスを、API機能ではなく、単
一のC++クラスから導出可能なC++クラスのコヒー
シブなフレームワークとして提示する。
【0053】3.通信プロトコルやリモート・プラット
フォーム環境に関係なく、標準的な1組の機能と標準イ
ンターフェースを提供する。
【0054】4.性能が最大になり、資源使用量が最小
になるように、プラットフォーム/プロトコル特有の諸
特徴を内部的に実施する。
【0055】5.ユーザまたは使用アプリケーションに
対して自動的かつ透過に動作する。通信「セッション」
を確立し、あるいはCSAE構成要素を活動化するため
に、ユーザはなにも動作を実行する必要がない。
【0056】これらの特徴の主な意義は、異なる通信プ
ロトコルおよび動作環境にわたって標準のサービスとイ
ンターフェースが提供され、同時に、各環境に対して最
適化され、特定の必要のために提供されたサービスが容
易に拡張できることである。通常、「一般的」サービス
を提供する際の問題点は、特定の環境のために最適化
し、あるいは特定のアプリケーションの必要に合わせて
機能を変更/強化する能力を失うことにある。
【0057】CSAEの主な使用法は、その名前が示す
ように、クライアント/サーバ・アプリケーションの実
施を容易にすることである。好ましい実施例において
は、CSAEは、APPC通信を使用して、クライアン
トとしてのOS/2と、サーバとしてのMVSに送られ
る。これはおそらく、最適化すべき最も複雑な環境であ
る。その結果、可能な最適化および機能調整の例とし
て、以下に、いくつかの特徴を強調して示す。CSAE
が任意のプラットフォームで実施できることに留意され
たい。
【0058】<機能性> リモート手順呼出し(RPC):CSAEは、標準のR
PC機構を提供する。クライアント・アプリケーション
は、CSAEに、リモート機能の名前と、入力パラメー
タおよび出力パラメータのリストとを提供する。CSA
Eは、必要な通信を確立し、リモート手順を呼び出し、
その入力パラメータを提供し出力パラメータを戻す世話
をする。リモート手順は、その環境用の標準機能を介し
て呼び出されることに留意されたい。リモート手順は、
それが「リモート」で呼び出されていることを知らな
い。これは、既存の機能が使用できることを意味し、そ
の機能をわざわざ書く必要はない。
【0059】MVSサーバは、バッチ・ジョブとしてま
たはサーバCSAE構成要素のサブタスクとして、リモ
ート手順を呼び出すことができる。サブ・タスクとして
は、手順は、静的連係モジュールまたは独立負荷モジュ
ールのいずれでもよい。バッチ・ジョブとして開始され
た場合でも、リモート手順はクライアントと通信できる
ことに留意されたい。
【0060】データ変換:CSAEは、パラメータのデ
ータ・タイプを、リモート・パラメータ・クラス(後で
詳しく説明する)として知られるC++クラスとして提
供し、このC++クラスは、すべてのデータ変換を処理
し、複雑なデータ構造、すなわち任意の深さにネストさ
れたアレイおよび構造体を任意に構築できるようにす
る。これらのクラスは、DBCS OS/2の下で動作
する場合はDBCSデータに対応し、以下の基本的なデ
ータ・タイプに対応できる(新しいデータ・タイプが容
易に追加できる)。 固定長文字列 可変長文字列(任意サイズ) 無符号の短い整数(2バイト) 無符号の長い整数(4バイト) 8ビット2進変数(ビット列、フラグなど) 16ビット2進変数
【0061】次の複合データ・タイプが支援される。 構造体 アレイ(サイズ制限の事前設定なし)
【0062】バッファ管理:CSAEは、送信データと
戻りデータの両方について、データ・バッファ用のメモ
リの割振りを処理する。使用アプリケーションは、この
情報が要求されない限りバッファ・サイズの知識をもた
ない。データは、リモート・パラメータによってバッフ
ァに入れられそこから引き出される。CSAEとアプリ
ケーションの間のインターフェースは、リモート・パラ
メータだけを処理する。リモート・パラメータ・オブジ
ェクトのサイズに対する制限はなく、伝送バッファ・サ
イズを超えた場合は、複数回の送信で伝送される。クラ
イアントがサーバから受け取るアレイのサイズは、サイ
ズ制限の事前設定がないことに留意されたい。必要に応
じて要素がアレイに加えられる。
【0063】ファイル管理:ファイルのダウンロードと
アップロードが提供される。リモート・ファイルをロー
カル・ファイルにダウンロードでき、または走査/更新
のためにメモリ内にただ保持することもできる。リモー
ト・ファイルに書き込まれるデータは、ローカル・ファ
イルまたはメモリから取り出すことができる。ローカル
・ファイルとリモート・ファイルの両方を、作成し、拡
張し、上書きし、あるいは削除することができる。文字
と2進データの混合、反復グループ、DBCSなどの複
雑なレコード構造のファイルが転送でき、必要に応じて
ローカル・フォーマットとリモート・フォーマットの間
で変換される。
【0064】MVSについては、PS(物理順次)デー
タセットおよびPDSメンバが送受信できる。
【0065】透明動作:CSAE通信機能は、最初のア
プリケーションがサービスを要求したときに「開始」
し、最後のアプリケーションが終了したときに「停止」
するダイナミック・リンク・ライブラリ(DLL)に含
まれる。このDDLは、これらのサービスを透明な形で
提供するだけでなく、次の要求のための開始オーバヘッ
ドを繰り返さなくてもよいようにする。必要でなくなっ
たらすぐに停止することによって、資源はできるだけ速
く解放される。
【0066】柔軟性:CSAEは、実行時に使用アプリ
ケーションごとに、さらには1つのアプリケーション内
の異なる機能ごとに変化し得るタイミングおよび性能パ
ラメータを提供する。省略値が提供される。
【0067】「性能と資源使用」の問題に関して(一般
にOS/2からMVS)、以下の特徴が提供される。
【0068】並行性:並行要求は、SNAセッションの
構成最大許容数まで対処できる。並行性は、複数のアプ
リケーションまたは1つのアプリケーション内の複数の
プロセスおよびスレッドに特定のMVSサーバへの通信
を要求させることによって、PWSクライアント上で発
生する。これらの要求はすべて、実際の通信を管理する
単一のクライアント処理に送られる。MVSサーバ上で
は、以下の2つの技法が使用される。
【0069】サブタスクをMVSサーバのCSAEアド
レス空間に付加することにより、複数の要求を1つのM
VS APPCアドレス空間によって処理することがで
きる。
【0070】たとえば、リモート手順がMVSサーバの
CSAE構成要素(たとえば、STEPLIB、SYS
UDUMPなど)の環境とは異なる「環境」を必要とす
る場合に、バッチ・ジョブを開始することによって、よ
り「高価」なAPPC領域ではなくバッチ領域に処理が
オフロードされる。また、これは、1ユーザの影響を1
つのAPPCアドレス空間(スケジューラ)に制限する
ことに留意されたい。
【0071】セッション制御:PWS (プログラマブ
ル・ワークステーション・マシン)CSAEは、いつ対
話を最良に割振りまた割振り解除するかを決定する制御
機能を含む。この機能が適用される場合、資源の共用と
再使用を可能にする。これにより、まだ必要な場合、こ
れらの資源を活動状態に保つことができ、対話、セッシ
ョンの停止と開始、およびその結果行われるパートナー
・オブジェクト(これは後で説明する)のスケジューリ
ングが削減される。
【0072】資源使用:前述のセッションおよび対話の
管理と、サブタスクおよびバッチ領域の使用により、資
源が最大限に使用されるようになる。
【0073】資源共用:1人のユーザしかAPPCアド
レス空間上でスケジュールをたてることができないた
め、1人のユーザが資源を独占することが妨げられる。
【0074】「ソフトウェア再使用と拡張性」に関して
は、以下の特徴が提供される。簡単さ:CSAEは、R
PC、送信、受信などの非常に簡単な機能を提供する。
このため、プログラミングの視点から、通信は、通常の
機能呼出しの発行と同様に複雑でないものとなる。基礎
となる通信インターフェース(すなわち、CPI−C/
APPC)は露出されない。
【0075】機能的拡張可能性: CSAEがクラスで
あるという事実は、その基本機能の変更および拡張が可
能になるようにそれを導出できることを意味する。通信
システム自体は、この概念を使用してクラスを導出する
ことにより、一定の強化されたファイル管理機能を提供
する。
【0076】環境的拡張可能性:CSAEの好ましい実
施例はOS/2クライアントとMVSサーバのみに対応
するが、PWS CSAE内のすべてのパートナ特有の
コードは、別々のモジュールに含まれる。CSAEは、
他のプラットフォーム特有のモジュールを提供すること
によって、他のサーバ・プラットフォームにアクセスす
るように簡単に拡張でき、一般的CSAEコードは将来
のモジュールを受け入れることができる。
【0077】次に、上記の好ましい実施例の通信システ
ムを、さらに図1に関連して説明する。クライアント・
コンピュータ10には、IBM社のOS/2オペレーテ
ィング・システムが導入されており、アプリケーション
・プログラム40がそのオペレーティング・システム上
で走行する。アプリケーション・プログラムは、通信サ
ービスをサーバ・コンピュータ20上で実行すること、
またはアプリケーション・プログラム40による次の使
用のためにデータをサーバ20から戻すことを定期的に
必要とする。本発明にとっては、通信サービスをサーバ
が実行することを求める要求が、第1のアプリケーショ
ン・プログラム40とのユーザ対話によって生成された
か、それともアプリケーション・プログラム40がユー
ザ対話とは関係なく動作し、プログラムの実行中に自動
的に要求を行うかどうかは重要でない。
【0078】通信サービスがサーバ・コンピュータ20
から要求されたとき、第1のアプリケーション・プログ
ラムは、第1の論理手段50に要求サービスを伝える。
たとえば、第1の論理手段に、入力パラメータおよび出
力パラメータのリストと一緒にリモート手順の名前を送
ることによって、これを行うことができる。次に、第1
の論理手段50は、記憶装置60に記憶された使用可能
な通信サービスの定義に関して、第2のコンピュータ2
0との必要な通信を確立するタスクを処理する。すべて
の可能なサービスは、オブジェクト・クラス70のコヒ
ーシブなフレームワークとして定義され、これらのクラ
スは、単一のオブジェクト・クラスから導出される。す
でに前に詳しく説明したように、このようにサービスを
定義することで、性能と再使用可能性の点で多くの利点
が得られる。
【0079】サーバ20との必要な通信を確立するため
に、第1の論理手段50は、フレームワークのうちのど
のオブジェクト・クラスを使用する必要があるかを決定
し、次にそのオブジェクトのインスタンスを作成し、そ
のオブジェクトにメッセージを送って、そのメソッドの
うちの1つを呼び出せる。これによっては、接続手段8
0を介したサーバ・コンピュータとの接続が確立され、
その後に第2の論理手段90へ次の要求が送られる。
【0080】次に、第2の倫理手段90は、サーバ・コ
ンピュータ20上で走行する第2のアプリケーション・
プログラム100(以後、サービス・アプリケーション
と呼ぶ)に要求を渡して、サービス・アプリケーション
100が、データ検索手順の実行など、その要求が必要
とする特定のタスクを実行できるようにする。このタス
クが完了した後、サービス・アプリケーションは、結果
を第1のコンピュータ10に返送する必要がありうる。
サーバ・アプリケーション100は、要求されたタスク
の実行中、および結果を第1のコンピュータ10に返送
すべきとき、第2の論理手段90と対話する。第2の論
理手段90は、オブジェクトのインスタンスを確立し、
サーバ・アプリケーション100が必要とするとき、そ
のオブジェクトの適切なメソッドを呼び出す。オブジェ
クト・インスタンスは記憶装置110に記憶されたオブ
ジェクト・クラスのコヒーシブなフレームワークから作
成される。オブジェクト・クラス120のフレームワー
クによって提供されるメソッドの例は、後で考察する。
【0081】また、先に記載した利点を活用するため
に、使用可能な通信技法は、単一のオブジェクト・クラ
スから派生したオブジェクト・クラス120のコヒーシ
ブなフレームワークとして定義される。
【0082】上記技法を使うと、クライアント・アプリ
ケーション・プログラム40が、通信アーキテクチャま
たは通信APIに露出されない。さらに、サービス・ア
プリケーション100は、その環境用の標準機構を通じ
て呼び出され、リモートで呼び出されていることを知ら
ない。
【0083】次に、オブジェクト・クラスのコヒーシブ
なフレームワークとしての通信サービスの確立について
説明する。通信サービスをこのように定義する概念が導
出され、その結果前に論じた多くの利点が実現されるこ
とが理解されれば、当業者は一般に、適切なオブジェク
ト・クラスを構成できるようになる。しかし、以下の説
明で、フレームワークを確立できる1つの方法を例示す
る。
【0084】クライアント・アプリケーション40が必
要とする機能を実施するために、第1の論理手段50に
よって使用されるクラスを記憶装置60内で定義する必
要がある。好ましい実施例においては、このクラスは、
クライアント側とより関連するものであるのでクライア
ントパイプ・クラスと呼ばれる。
【0085】クライアントパイプ・クラスは、基礎とな
る通信機能をカプセル化し、OS/2クライアントとM
VSサーバの間のAPPCを介してリモート手順を呼び
出すための簡単なモデルを提示する。
【0086】クライアント・クラスは、同期RPC環境
に呼出し機能を提供する。パイプは単一スレッド式であ
り、組込みの並行性保護を提供しない。
【0087】クライアントパイプのオブジェクトをイン
スタンス化して、基本的な汎用RPC機能を提供するこ
とができる。ただし、アプリケーション特有のパイプ・
クラスは、クライアントパイプ・クラスから導出して、
改善されたアプリケーション特有の機能性を提供するこ
とができる。
【0088】クライアントパイプ・クラスは、以下のよ
うな定義されたメソッドを有する。 A.クライアント・アプリケーション40によって呼出
し可能な5つの公用のメソッド。 (1)クラス・コンストラクタ・メソッド (2)クラス・デストラクタ・メソッド (3)後で検討する「パートナ」オブジェクトにおいて
リモート手順を呼び出すためのメソッド。 (4)パラメータを、クライアントPWSフォーマット
からサーバ・ホスト・フォーマットに変換するためのメ
ソッド (5)パラメータを、サーバ・ホスト・フォーマットか
らクライアントPWSフォーマットに変換するためのメ
ソッド。
【0089】B.派生パイプ・クラスによってのみ呼出
し可能な3つの保護されたメソッド。 (1)データを「パートナ」オブジェクトに送るための
メソッド。これはRPCアーキテクチャの呼出し部分を
表し、データをパートナの名前付き機能に送る。 (2)データを「パートナ」オブジェクトから受け取る
ためのメソッド。これはデータ・バッファをパートナか
ら受け取り、これをパラメータとして呼出し機能に戻す
(各パラメータは、後で説明するようなリモートパラメ
ータ・オブジェクトとしてカプセル化される)。 (3)たとえば、エラーがパートナから戻されると
き、" ConXn"オブジェクトを削除するためのメソ
ッド(ConXnオブジェクトは後でも説明する)。
【0090】C.クライアントパイプ・オブジェクト内
部の4つのメソッド。 (1)データをパートナに送るときに呼び出され、パー
トナへの伝送の準備として、すべての入力パラメータを
変換し適切な制御ブロックを構築するためのメソッド。 (2)パートナから送られるトランザクション・ヘッダ
を受け取り解釈するためのメソッド。 (3)DLLにおいて実施され、ConXnパートナ・
オブジェクトの作成を管理し、パイプ(図1の接続手段
80で表される)をConXnパートナ(ConXnパ
ートナ・オブジェクトは後で説明する)に「登録」する
ための”C”メソッド。 (4)DLLにおいて実施され、ConXnパートナに
おけるパイプを「登録解除」し、必要ならばConXn
パートナを削除するための”C”メソッド。
【0091】また、サーバ・アプリケーション100が
必要とする機能を実施するため、第2の論理手段90に
よって使用される対応するクラスを記憶装置110内で
定義する必要がある。好ましい実施例においては、これ
はサーバ側とより関連するものであるので、サーバパイ
プ・クラスと呼ばれる。
【0092】サーバパイプ・クラスは、以下のような定
義されたメソッドを有する。 A.サーバ・アプリケーションによって呼出し可能な6
つの公用メソッド。 (1)制御対話を処理するためのメソッド。これは制御
対話割振りの結果としてサーバ・アプリケーションがス
ケジューリングされるときに必ず呼び出される。 (2)データをクライアント・コンピュータ10に送っ
て、標準サブルーチン機構を提供するためのメソッド。
これはクライアントパイプ・クラスにおける等価な機能
と同じように機能し、この方法によって送られるデータ
は、クライアントパイプ・クラスの受信メソッドを使用
して、クライアントによって受け取られる。 (3)動的データセット割振りサービスを提供するため
のメソッド。 (4)外部ロード・モジュールの動的ロードおよび呼出
しを実施するためのメソッド。 (5)現在実行中の機能用のプログラム変数を保持する
ために使用される記憶域を割り振りまたは増加させるた
めのメソッド。 (6)前記記憶域を解放または減少させるためのメソッ
ド。
【0093】B.サーバパイプ・クラス内部の3つの私
用メソッド。 (1)非同期のサブタスクとして動作し、クライアント
ConXnパートナとのデータ対話を割り振るためのメ
ソッド。これはクライアント・コンピュータによって送
られたデータを受け取り、該当する場合には、これをサ
ーバ・アプリケーション100に渡す。 (2)送られたデータのための記憶域をクライアント・
コンピュータから供給された情報に従って割り振り、ク
ライアントから送られたデータを呼び出し受け取るため
のメソッド。 (3)クライアント・コンピュータ10に代わって、サ
ーバのデータセットを配置するためのメソッド。
【0094】C.サービス・アプリケーション100の
機能性を完全なものとするために、ユーザによって供給
されることが必要ないくつかのユーザ作成メソッド。 (1)ユーザ作成のディスパッチャ機能であり、クライ
アント・アプリケーション40によって要求される適切
なユーザ機能を呼び出すメソッド。このメソッドは、サ
ーバパイプ・クラスからアプリケーション機能への標準
インターフェースを提供するために使用され、リンク時
に決定される外部参照である。 (2)呼び出す必要があるかもしれない1つまたは複数
のユーザ機能を表すメソッド。
【0095】次に、前に参照したConXnおよびCo
nXnパートナ・クラスについて説明する。ConXn
クラスは、パートナへの基本的通信をカプセル化する。
好ましい実施例では、これはすべての通信アクティビテ
ィに対するインターフェースを提供する。ConXnク
ラスは、MVSサーバ・コンピュータ20に対するAP
PC通信を提供するが、異なる通信プロトコル(たとえ
ば、TCP/IP)を使用し、あるいは他のプラットフ
ォームと通信するために、導出することができる。
【0096】ConXnクラスは、クライアント・アプ
リケーション・プログラム40によって呼出し可能な以
下のメソッドを有する。 (1)ConXnパートナに「登録」して、パートナと
のデータ対話を得るメソッド。 (2)ConXnパートナに「登録解除」して、パート
ナとのデータ対話を解除するメソッド。 (3)データのバッファをパートナに送るためのメソッ
ド。 (4)データのバッファをパートナから受け取るための
メソッド。 (5)データが首尾よく受け取られたことをパートナに
確認するメソッド。これは、パートナからの確認要求に
応じてのみ行われる。 (6)パートナにエラーを通知するメソッド。これは非
同期にまたは確認要求に応じて行える。
【0097】ConXnパートナ・クラスは、パートナ
従属情報および機能をカプセル化する。これは1つの制
御対話および複数のデータ対話の通信アーキテクチャを
実施し制御する。ConXnパートナ・クラスは、特定
ユーザIDに関して特定のクライアント・アプリケーシ
ョンにアクセスしているすべてのConXnを一緒に結
合する。ConXnパートナ・クラスは、DLL内で実
行時ダイナミック・リンキングを使って実施され、以下
のメソッドを有する。 A.クライアント・アプリケーション40によって呼出
し可能な5つの公用メソッド。 (1)ConXnパートナ・オブジェクトが作成される
ときに呼び出されるメソッド。これはデータ項目を初期
設定し、開始アプリケーション呼出しを発行する。 (2)ConXnパートナ・オブジェクトが作成される
ときに呼び出されるメソッド。これは制御対話がAPP
Cアプリケーションを終了するために、終了アプリケー
ション呼出しを発行する。 (3)ConXnオブジェクトが作成されるたびに呼び
出されるメソッド。これはConXnのためのデータ対
話を適切に割り振りまたは再使用し、必要ならば制御対
話を割り振る。 (4)ConXnオブジェクトが破壊されるたびに呼び
出されるメソッド。これはデータ対話を割振り解除しま
たは使用可能なものとフラグを立て、必要ならば制御対
話を割振り解除する。 (5)パートナにコード・ページを戻すためのメソッ
ド。
【0098】B.パートナとの制御対話を割り振るCo
nXnパートナ・クラス内部の私用メソッド。安全保護
検査は、割振り処理の一部として実行できる。
【0099】前に述べたリモートパラメータは、リモー
ト機能との間で伝送するためにクライアントパイプ・オ
ブジェクトに渡されるすべてのパラメータに関する抽象
的基本クラスを構成するクラスとして定義される。これ
は、複雑な任意のデータ構造を渡す手段を提供する。派
生リモートパラメータ・クラスは、特定のデータ・タイ
プごとに作成され、データ構造をカプセル化し、したが
ってそのデータをクライアントPWSフォーマットから
リモート(パートナ)フォーマットにどのように変換す
るかを知っている。
【0100】リモートパラメータ・オブジェクトは、ロ
ーカル・フォーマットおよびリモート・フォーマットの
両方のデータを含む。ローカル・データは、たとえば不
連続なデータ項目として保持されるアプリケーション・
データである。これはアプリケーションにとって意味の
ある整数、文字列、抽象データ・タイプなどのデータ・
タイプである。これらのデータ項目を「獲得」し「配
置」するために、メンバ機能が提供される。リモート・
データは、連続するバッファに保持され、変換済みのロ
ーカル・データと、リモート機能によって伝送し使用す
るために必要な「足場(scaffolding)」情報とからな
る。これには、目印(eyecatcher:識別子)や様々な長
さフィールドなどのデータが含まれる。
【0101】リモート・データ・バッファおよびそれを
操作する機能は、汎用性があるので、基本リモートパラ
メータ・クラス内で実施される。ローカル・データ項目
とその機能は、派生リモートパラメータ・クラス内で実
施される。
【0102】ローカル・データ項目は、オリジナル・デ
ータのコピーとして保持される。ローカル・データが派
生リモートパラメータ・オブジェクトに渡されるたび
に、メモリが割り振られデータがコピーされる。これ
は、ローカル・データ項目がアプリケーションに「属す
る」からである。データを削除するかまたはデータを含
むメモリを再使用するためのアプリケーションとリモー
トパラメータ・オブジェクトとの間に相互依存性があっ
てはならない。リモート・データ・バッファは、リモー
トパラメータ・オブジェクトに属する。これは公用メン
バ機能によって割り振られ削除される。
【0103】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0104】(1)通信アプリケーション・プログラム
・インターフェース(API)を有し、ネットワークで
接続された第1のコンピュータ(10)及び該第1のコ
ンピュータ(10)とは異なるオペレーティング・シス
テムを使用する第2のコンピュータ(20)の間でのデ
ータの交換を行うための通信システムであって、第1の
コンピュータ(10)上で走行する第1のアプリケーシ
ョン(40)からの、第2のコンピュータ(20)との
接続を求める要求を処理して、複数の通信サービスのう
ちの1つを実施するための第1の論理手段(50)と、
第2のコンピュータ(20)上の第2のアプリケーショ
ン(100)に通信サービスを実施するよう指示し、第
2のアプリケーション(100)によって提供されたデ
ータを第1のコンピュータ(10)に戻すための第2の
論理手段(90)と、各コンピュータ上にあって各論理
手段(50、90)によってアクセス可能であり、複数
の通信サービスそれぞれに関する定義を提供するための
単一のオブジェクト・クラスをそれぞれ記憶する記憶装
置(60、110)とを含む通信システム。 (2)各記憶装置(60、110)が、単一のオブジェ
クト・クラスから派生したオブジェクト・クラス(7
0、120)のコヒーシブなフレームワークを記憶す
る、上記(1)に記載の通信システム。 (3)オブジェクト・クラスのフレームワークによって
定義された通信サービスが、機能呼出し、ファイル操
作、およびデータ転送を行う、上記(2)に記載の通信
システム。 (4)通信アプリケーション・プログラム・インターフ
ェース(API)を有し、クライアント/サーバ装置に
おいて動作するようにネットワーク内で接続された、第
1のコンピュータ(10)と第1のコンピュータ(1
0)とは異なるオペレーティング・システムを使用する
第2のコンピュータ(20)との間のデータの交換を容
易にする通信システムを操作する方法であって、第1の
論理手段(50)を使用して、第1のコンピュータ(1
0)上で走行する第1のアプリケーション(40)から
の、第2のコンピュータ(20)との接続を求める要求
を処理して、複数の通信サービスのうちの1つを実施す
る段階と、第2の論理手段(90)を使用して、第2の
コンピュータ(20)上の第2のアプリケーション(1
00)に通信サービスを実施するよう指示する段階と、
第2のアプリケーション(100)によって提供された
データを、第2の論理手段(90)経由で第1のコンピ
ュータに戻す段階と、それぞれのコンピュータにおい
て、各論理手段(50、90)によってアクセス可能な
記憶領域(60、110)に、複数の通信サービスのそ
れぞれに関する定義を提供する単一のオブジェクト・ク
ラスを記憶する段階とを含むことを特徴とする方法。 (5)単一のオブジェクト・クラスから派生するオブジ
ェクト・クラス(70、120)のコヒーシブな枠組
が、各記憶領域(60、110)に記憶されることを特
徴とする、上記(4)に記載の方法。 (6)オブジェクト・クラスの枠組によって定義される
通信サービスが、機能呼出し、ファイル操作およびデー
タ転送を容易にすることを特徴とする、上記(5)に記
載の方法。
【0105】
【発明の効果】本発明の上記の好ましい実施例は、以下
の理由で既知の従来の通信システムよりも改善されてい
る。 1.リモート・ファイル操作や対話能力など、RPCを
越える追加のサービスを提供する。 2.C++オブジェクト・クラスのコヒーシブな(単一
のクラスから導出可能な)フレームワークとして実施さ
れ、提供されたAPIに制限されるのではなく、CSA
Eの機能性を高めることが容易である。 3.CSAEは、それぞれの動作環境に最適化される。 4.CSAEはパラメータを受け入れて戻し、戻される
データのためにバッファを動的に割り振る。 5.CSAEは、2つのフォーマット間でのすべてのデ
ータ変換を処理する。
【0106】通信システム用のプログラミング・インタ
ーフェースを構築する際に上記の手法を使用することに
より、クライアント・アプリケーションのプログラマ
は、この手法から得られる上記の利点を容易に活用する
ことができる。
【0107】さらに、通信オブジェクト・クラスは、R
PC、ファイル転送、送信/受信、データ変換、または
通信オブジェクト・クラスによって表される他の通信サ
ービスなど、通信システムの異なる部分から見ることが
できるという点で、「多形」である。
【0108】これらの通信サービスをAPI機能ではな
くオブジェクト・クラスとして提供することにより、特
定の必要性のための機能性の派生(導出)が可能であ
る。
【図面の簡単な説明】
【図1】本発明の好ましい実施例の通信システムを示す
ブロック図である。
【符号の説明】
10 クライアント・コンピュータ 20 サーバ・コンピュータ 30 インターフェース 40 クライアント・アプリケーション・プログラム 50 第1の論理手段 60 記憶装置 70 オブジェクト・クラスのコヒーシブな枠組 80 接続手段 90 第2の論理手段 100 サーバ・アプリケーション・プログラム 110 記憶装置 120 オブジェクト・クラスのコヒーシブな枠組
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フィリップ・ヒューウィット イギリス シー・ダブリュー8 4アー ル・イー チェシャー ノースウィッチ リトル・リー ウィロウ・グリーン・レー ン ウィロウ・グリーン・コッテージ (72)発明者 ジョナサン・オコナー アイルランド カウンティー・ダブリン ルカン ウィルスブルック・グリーン 13 (72)発明者 リチャード・トムソン アイルランド ダブリン2 アッパー・ラ ッド・レーン 21

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】通信アプリケーション・プログラム・イン
    ターフェース(API)を有し、ネットワークで接続さ
    れた第1のコンピュータ(10)及び該第1のコンピュ
    ータ(10)とは異なるオペレーティング・システムを
    使用する第2のコンピュータ(20)の間でのデータ交
    換を行うための通信システムであって、 第1のコンピュータ(10)上で走行する第1のアプリ
    ケーション(40)からの、第2のコンピュータ(2
    0)との接続を求める要求を処理して、複数の通信サー
    ビスのうちの1つを実施するための第1の論理手段(5
    0)と、 第2のコンピュータ(20)上の第2のアプリケーショ
    ン(100)に通信サービスを実施するよう指示し、第
    2のアプリケーション(100)によって提供されたデ
    ータを第1のコンピュータ(10)に戻すための第2の
    論理手段(90)と、 各コンピュータ上にあって各論理手段(50、90)に
    よってアクセス可能であり、複数の通信サービスそれぞ
    れに関する定義を提供するための単一のオブジェクト・
    クラスをそれぞれ記憶する記憶装置(60、110)と
    を含む通信システム。
  2. 【請求項2】各記憶装置(60、110)が、単一のオ
    ブジェクト・クラスから派生したオブジェクト・クラス
    (70、120)のコヒーシブなフレームワークを記憶
    する、請求項1に記載の通信システム。
  3. 【請求項3】オブジェクト・クラスのフレームワークに
    よって定義された通信サービスが、機能呼出し、ファイ
    ル操作、およびデータ転送を行う、請求項2に記載の通
    信システム。
  4. 【請求項4】通信アプリケーション・プログラム・イン
    ターフェース(API)を有し、ネットワークで接続さ
    れた、第1のコンピュータ(10)及び該第1のコンピ
    ュータ(10)とは異なるオペレーティング・システム
    を使用する第2のコンピュータ(20)の間でのデータ
    交換を行うための通信システムを操作する方法であっ
    て、 第1の論理手段(50)を使用して、第1のコンピュー
    タ(10)上で走行する第1のアプリケーション(4
    0)からの、第2のコンピュータ(20)との接続を求
    める要求を処理して、複数の通信サービスのうちの1つ
    を実施する段階と、 第2の論理手段(90)を使用して、第2のコンピュー
    タ(20)上の第2のアプリケーション(100)に通
    信サービスを実施するよう指示する段階と、 第2のアプリケーション(100)によって提供された
    データを、第2の論理手段(90)経由で第1のコンピ
    ュータに戻す段階と、 それぞれのコンピュータにおいて、各論理手段(50、
    90)によってアクセス可能な記憶領域(60、11
    0)に、複数の通信サービスのそれぞれに関する定義を
    提供する単一のオブジェクト・クラスを記憶する段階と
    を含む通信方法。
  5. 【請求項5】単一のオブジェクト・クラスから派生する
    オブジェクト・クラス(70、120)のコヒーシブな
    フレームワークが、各記憶領域(60、110)に記憶
    される、請求項4に記載の方法。
  6. 【請求項6】オブジェクト・クラスのフレームワークに
    よって定義される通信サービスが、機能呼出し、ファイ
    ル操作およびデータ転送を行う、請求項5に記載の方
    法。
JP03343695A 1994-04-05 1995-02-22 ネットワーク内のコンピュータ間でデータを交換するための通信システム Expired - Lifetime JP3251800B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9406714.7 1994-04-05
GB9406714A GB2288477A (en) 1994-04-05 1994-04-05 Communications system for exchanging data between computers in a network.

Publications (2)

Publication Number Publication Date
JPH07281974A true JPH07281974A (ja) 1995-10-27
JP3251800B2 JP3251800B2 (ja) 2002-01-28

Family

ID=10753035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03343695A Expired - Lifetime JP3251800B2 (ja) 1994-04-05 1995-02-22 ネットワーク内のコンピュータ間でデータを交換するための通信システム

Country Status (4)

Country Link
US (1) US5687373A (ja)
EP (1) EP0677943A3 (ja)
JP (1) JP3251800B2 (ja)
GB (1) GB2288477A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001522114A (ja) * 1997-10-31 2001-11-13 オラクル・コーポレーション 分散を意識させない態様で分散ソフトウェア開発を容易にするための方法およびシステム
JP2002032235A (ja) * 2000-05-31 2002-01-31 Internatl Business Mach Corp <Ibm> 区分処理環境のための異種クライアント・サーバ方法、システム、およびプログラム製品
US7587505B2 (en) 2001-07-06 2009-09-08 International Business Machines Corporation Data communication method, data communication system, and program
JP2016095602A (ja) * 2014-11-13 2016-05-26 京セラドキュメントソリューションズ株式会社 電子機器およびプログラム

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5944781A (en) * 1996-05-30 1999-08-31 Sun Microsystems, Inc. Persistent executable object system and method
US5884324A (en) * 1996-07-23 1999-03-16 International Business Machines Corporation Agent for replicating data based on a client defined replication period
US6182139B1 (en) * 1996-08-05 2001-01-30 Resonate Inc. Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm
US6687762B1 (en) * 1996-10-10 2004-02-03 Hewlett-Packard Development Company, L.P. Network operating system adapted for simultaneous use by different operating systems
US6728933B1 (en) 1996-11-03 2004-04-27 International Business Machines Corporation System and method for importing data
US5815149A (en) * 1997-02-19 1998-09-29 Unisys Corp. Method for generating code for modifying existing event routines for controls on a form
US6064983A (en) * 1997-03-21 2000-05-16 Koehler Consulting, Inc. System for performing tax computations
US6032203A (en) * 1997-04-07 2000-02-29 General Electric Company System for interfacing between a plurality of processors having different protocols in switchgear and motor control center applications by creating description statements specifying rules
US5991836A (en) * 1997-05-02 1999-11-23 Network Computing Devices, Inc. System for communicating real time data between client device and server utilizing the client device estimating data consumption amount by the server
US5925095A (en) * 1997-05-12 1999-07-20 International Business Machines Corporation Method and a computer program product for client/server computing with support for both recoverable and non-recoverable clients
JP3883647B2 (ja) * 1997-06-10 2007-02-21 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ処理方法、メッセージ処理装置及びメッセージ処理を制御するプログラムを格納する記憶媒体
US6240440B1 (en) * 1997-06-30 2001-05-29 Sun Microsystems Incorporated Method and apparatus for implementing virtual threads
US5893106A (en) * 1997-07-11 1999-04-06 International Business Machines Corporation Object oriented server process framework with interdependent-object creation
US6006278A (en) * 1997-07-18 1999-12-21 Electronic Data Systems Corporation Method and system for importing remote functions to a network computer
IES970617A2 (en) * 1997-08-20 1998-04-08 Openwrite Limited A communication system for facilitating communication between a PC and a host computer
US6957427B1 (en) * 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
EP1038220A2 (en) * 1997-11-17 2000-09-27 MCMZ Technology Innovations LLc A high performance interoperable network communications architecture (inca)
US6016496A (en) * 1997-11-20 2000-01-18 International Business Machines Corporation Method and apparatus for an object-oriented object for retrieving information from local and remote databases
GB2333868B (en) * 1997-12-09 2000-06-28 Scp Powersoft Limited An inter-computer communications apparatus and method
US6260069B1 (en) 1998-02-10 2001-07-10 International Business Machines Corporation Direct data retrieval in a distributed computing system
US6003083A (en) * 1998-02-19 1999-12-14 International Business Machines Corporation Workload management amongst server objects in a client/server network with distributed objects
US6026414A (en) * 1998-03-05 2000-02-15 International Business Machines Corporation System including a proxy client to backup files in a distributed computing environment
GB2335517A (en) 1998-03-19 1999-09-22 Ibm Client/server computing system with programmable action by transaction coordinator during prepared state
GB2336006A (en) * 1998-03-31 1999-10-06 Ibm Client/server computing with client selectable location of transaction objects
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
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
US6366916B1 (en) 1998-05-22 2002-04-02 International Business Machines Corporation Configurable and extensible system for deploying asset management functions to client applications
US6728947B1 (en) 1998-06-05 2004-04-27 R. R. Donnelley & Sons Company Workflow distributing apparatus and method
GB2341951A (en) 1998-09-22 2000-03-29 Ibm Thin-client remote object execution
DE19954268B4 (de) * 1998-12-01 2005-07-21 Ibm Corp. Verfahren und System zur Verbesserung des Workflow in Workflow-Management-Systemen
US6604150B1 (en) * 1999-02-06 2003-08-05 International Business Machines Corporation Integration of GUI application with external application extensions
GB2346985B (en) * 1999-02-19 2003-07-09 Ibm Client/server transaction data processing system with optimum selection of last agent
US6816270B1 (en) 1999-03-25 2004-11-09 International Business Machines Corporation Method and apparatus for supporting application and device independent print support
US8375127B1 (en) 1999-03-31 2013-02-12 International Business Machines Corporation Method and system for using virtual URLs for load balancing
GB2348985A (en) * 1999-04-15 2000-10-18 Ibm Centralized affinity maintenance in a workload managed client/server system
FR2793365B1 (fr) * 1999-05-06 2001-07-13 Cit Alcatel Systeme de traitement de l'information permettant la securisation des communications entre composants logiciels
US6711574B1 (en) * 2000-02-01 2004-03-23 Emc Corporation Retrieval of management information
US7191240B1 (en) 2000-02-14 2007-03-13 International Business Machines Corporation Generic network protocol layer with supporting data structure
US6804773B1 (en) * 2000-10-03 2004-10-12 Dell Products L.P. System and method for transferring information over a network
US7028313B2 (en) * 2001-03-28 2006-04-11 International Business Machines Corporation Method for transmitting function parameters to a remote node for execution of the function thereon
US6986147B2 (en) 2001-03-28 2006-01-10 International Business Machines Corporation Method for transparent, location-independent, remote procedure calls in a heterogeneous network environment
US6865607B1 (en) * 2001-06-28 2005-03-08 Microsoft Corp. Pluggable channels
US7120636B2 (en) * 2001-07-25 2006-10-10 Pendleton William W Method of communicating data between computers having different record formats
US20030101291A1 (en) * 2001-11-23 2003-05-29 Mussack Christopher Joseph Application programming interface for provision of DICOM services
US7565647B2 (en) 2002-03-22 2009-07-21 Sun Microsystems, Inc. Markup compiler that outputs MIDlets
US8775649B2 (en) * 2002-11-26 2014-07-08 Oracle America, Inc. Optimizing client code through automated server specialization
US10983930B1 (en) * 2020-01-14 2021-04-20 EMC IP Holding Company LLC Efficient non-transparent bridge (NTB) based data transport
US20210329100A1 (en) * 2020-04-10 2021-10-21 Oracle International Corporation System and method for use of remote procedure call with a microservices environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4893307A (en) * 1988-02-29 1990-01-09 International Business Machines Corporation Method and apparatus for linking SNA terminals to an SNA host over a packet switched communications network
GB2249460B (en) * 1990-09-19 1994-06-29 Intel Corp Network providing common access to dissimilar hardware interfaces
US5307490A (en) * 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5544320A (en) * 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
US5553242A (en) * 1993-11-03 1996-09-03 Wang Laboratories, Inc. Client/server connection sharing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001522114A (ja) * 1997-10-31 2001-11-13 オラクル・コーポレーション 分散を意識させない態様で分散ソフトウェア開発を容易にするための方法およびシステム
JP2002032235A (ja) * 2000-05-31 2002-01-31 Internatl Business Mach Corp <Ibm> 区分処理環境のための異種クライアント・サーバ方法、システム、およびプログラム製品
US7587505B2 (en) 2001-07-06 2009-09-08 International Business Machines Corporation Data communication method, data communication system, and program
JP2016095602A (ja) * 2014-11-13 2016-05-26 京セラドキュメントソリューションズ株式会社 電子機器およびプログラム

Also Published As

Publication number Publication date
JP3251800B2 (ja) 2002-01-28
EP0677943A2 (en) 1995-10-18
GB9406714D0 (en) 1994-05-25
GB2288477A (en) 1995-10-18
EP0677943A3 (en) 1999-10-13
US5687373A (en) 1997-11-11

Similar Documents

Publication Publication Date Title
JP3251800B2 (ja) ネットワーク内のコンピュータ間でデータを交換するための通信システム
US5915113A (en) Visual application partitioning for creating distributed object oriented applications
Schmidt Applying patterns and frameworks to develop object-oriented communication software
US7921430B2 (en) System and method for intercepting, instrumenting and characterizing usage of an application programming interface
US5327559A (en) Remote and batch processing in an object oriented programming system
US5734905A (en) User interface in object oriented computer system for performing intuitive object transformations
JP3546394B2 (ja) ネットワークを介してリモート・プロシージャ・コール及びレスポンスを転送するための方法及びシステム
US6567861B1 (en) Method and apparatus for remotely running objects using data streams and/or complex parameters
US5925098A (en) Apparatus and method for dispatching client method calls within a server computer system
EP0834805A2 (en) Object-oriented system, method and article of manufacture for a client-server session manager in an architecture computing framework system
EP0834804A2 (en) Object-oriented system, method and article of manifacture for a client-server state machine in an interprise computing framework system
US6978447B1 (en) Method and system for efficiently interpreting a computer program
JPH0283627A (ja) インタプリタ
JP2000514944A (ja) オブジェクト指向プログラミング言語のためのハードウェア加速器
US6470346B2 (en) Remote computation framework
JPH08339355A (ja) 分散形システムでの処理タスク実行呼び出し方法及び装置
US20030055862A1 (en) Methods, systems, and articles of manufacture for managing systems using operation objects
KR20010034542A (ko) 네트워크를 통한 동적 분산 컴퓨팅 방법 및 장치
US6516354B2 (en) Method and apparatus for efficient representation of variable length identifiers in a distributed object system
Valetto et al. Enveloping sophisticated tools into computer-aided software engineering environments
US7802257B1 (en) Mechanism for bridging a thread-oriented computing paradigm and a job-oriented computing paradigm
US6813629B1 (en) Method and apparatus for facilitating object communication across a network
US9361266B2 (en) System and method for distributed computing
JP2000003288A (ja) マルチスレッド・システムにおいてロックしている不変量を 強制するための方法及び装置
US6938052B2 (en) Access to server resources from heterogeneous platforms

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071116

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20131116

Year of fee payment: 12

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

EXPY Cancellation because of completion of term