JPH04167040A - ネットワーク通信システム - Google Patents
ネットワーク通信システムInfo
- Publication number
- JPH04167040A JPH04167040A JP2295194A JP29519490A JPH04167040A JP H04167040 A JPH04167040 A JP H04167040A JP 2295194 A JP2295194 A JP 2295194A JP 29519490 A JP29519490 A JP 29519490A JP H04167040 A JPH04167040 A JP H04167040A
- Authority
- JP
- Japan
- Prior art keywords
- routine
- message
- routines
- queue
- notification
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 80
- 238000012545 processing Methods 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims description 61
- 230000008569 process Effects 0.000 claims description 39
- 238000012546 transfer Methods 0.000 claims description 28
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000005452 bending Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 11
- 101100323865 Xenopus laevis arg1 gene Proteins 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000007626 photothermal therapy Methods 0.000 description 7
- 229920002215 polytrimethylene terephthalate Polymers 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 239000010454 slate Substances 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 101150026173 ARG2 gene Proteins 0.000 description 4
- 101100005166 Hypocrea virens cpa1 gene Proteins 0.000 description 4
- 101100379634 Xenopus laevis arg2-b gene Proteins 0.000 description 4
- 102100033495 Glycine dehydrogenase (decarboxylating), mitochondrial Human genes 0.000 description 3
- 101000998096 Homo sapiens Glycine dehydrogenase (decarboxylating), mitochondrial Proteins 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 101150087426 Gnal gene Proteins 0.000 description 2
- 208000000250 Greig cephalopolysyndactyly syndrome Diseases 0.000 description 2
- 101001074042 Homo sapiens Transcriptional activator GLI3 Proteins 0.000 description 2
- 102100035559 Transcriptional activator GLI3 Human genes 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 101710201354 Metallothionein A Proteins 0.000 description 1
- 101710094503 Metallothionein-1 Proteins 0.000 description 1
- 241000282376 Panthera tigris Species 0.000 description 1
- XDXHAEQXIBQUEZ-UHFFFAOYSA-N Ropinirole hydrochloride Chemical compound Cl.CCCN(CCC)CCC1=CC=CC2=C1CC(=O)N2 XDXHAEQXIBQUEZ-UHFFFAOYSA-N 0.000 description 1
- 101100379633 Xenopus laevis arg2-a gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 101150088826 arg1 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 208000027697 autoimmune lymphoproliferative syndrome due to CTLA4 haploinsuffiency Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000027455 binding Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000004848 polyfunctional curative Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 235000002020 sage Nutrition 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 230000009870 specific binding Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
- H04L51/066—Format adaptation, e.g. format conversion or compression
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(イ)産業上の利用分野
本発明は、オフィス・オートメーション(OA)・シス
テム、テレックス、テレテックス、ファクシミリ等から
なるアクセス装置間の通信を取り扱うためのネットワー
ク通信システムに関するものである。
テム、テレックス、テレテックス、ファクシミリ等から
なるアクセス装置間の通信を取り扱うためのネットワー
ク通信システムに関するものである。
この明細書中で使う略語及び頭文字語は、発明の詳細な
説明の最後に説明されている。データ・ゼネラルという
参照語は、本願発明の譲り受け人である「データ・ゼネ
ラル・コーポレーション」のことである。
説明の最後に説明されている。データ・ゼネラルという
参照語は、本願発明の譲り受け人である「データ・ゼネ
ラル・コーポレーション」のことである。
(ロ)従来の技術
現在、多くの専用の通信システムや、メッセージ・ハン
ドリング及びデータ通信に関する種々の国際標準が有る
。それにも拘わらず、総ての種類のアクセス装置に相互
に自由な通信を許すシステムは存在しない。
ドリング及びデータ通信に関する種々の国際標準が有る
。それにも拘わらず、総ての種類のアクセス装置に相互
に自由な通信を許すシステムは存在しない。
同一でないノステム間でメツセージの交換を許すことを
意図するソフト・スイッチ及びメイル・バスとして商用
的に知られるゲートウェイ・システムが有ることは事実
である。しかしながら、これらの公知のシステムは、本
質的に私的な企業及び他の大きなユーザに適合するもの
である。というのは、これらは種々のゲートウェイによ
って用いられるメツセージ・プロトコル間の変換をする
中央処理システムによって取り扱われる専用のメツセー
ジ転送プロトコルを用いるからである。更にこれらは、
各ゲートウェイが、システム上に他にどのようなゲート
ウェイが有るか及び種々のゲートウェイがどのような特
徴を持っているかを知っているべき、完全なシステムと
して組み立てられ公知のシステムは公共的なサービスを
意図するものでもなく、それに適してもいない。
意図するソフト・スイッチ及びメイル・バスとして商用
的に知られるゲートウェイ・システムが有ることは事実
である。しかしながら、これらの公知のシステムは、本
質的に私的な企業及び他の大きなユーザに適合するもの
である。というのは、これらは種々のゲートウェイによ
って用いられるメツセージ・プロトコル間の変換をする
中央処理システムによって取り扱われる専用のメツセー
ジ転送プロトコルを用いるからである。更にこれらは、
各ゲートウェイが、システム上に他にどのようなゲート
ウェイが有るか及び種々のゲートウェイがどのような特
徴を持っているかを知っているべき、完全なシステムと
して組み立てられ公知のシステムは公共的なサービスを
意図するものでもなく、それに適してもいない。
本発明が関係するもう1つの問題は、−時に1つの処理
スレッドしか取り扱えない単一スレッド型の計算機オペ
レーティング・システム(例えばMS−DO8及びUN
I X)に関連して生ずる。
スレッドしか取り扱えない単一スレッド型の計算機オペ
レーティング・システム(例えばMS−DO8及びUN
I X)に関連して生ずる。
これは、外部イベントを待機するとき処理経路が停止さ
れた場合、頻繁にルーチンが待たされる結果になる。ル
ーチンは未決(ペンド)であると言われる。他のオペレ
ーティング・システム(例えばAO9/VS)は多重ス
レッドを処理できるが、本発明のシステムは特定のオペ
レーティング・システムに拘束されず、単一スレッド型
のオペレーティング・システムで動作できることが望ま
しい。
れた場合、頻繁にルーチンが待たされる結果になる。ル
ーチンは未決(ペンド)であると言われる。他のオペレ
ーティング・システム(例えばAO9/VS)は多重ス
レッドを処理できるが、本発明のシステムは特定のオペ
レーティング・システムに拘束されず、単一スレッド型
のオペレーティング・システムで動作できることが望ま
しい。
あるシステム、例えばUNIXは、メモリー内にプログ
ラムの複数のコピーを保持し異なるプロセスに対するC
PUの割り当てを計画(スケジュール)することによっ
てマルチ・タスクを模擬する。
ラムの複数のコピーを保持し異なるプロセスに対するC
PUの割り当てを計画(スケジュール)することによっ
てマルチ・タスクを模擬する。
しかしながら、これは、メモリー資源の無駄である。M
S−DO5はこのレベルのマルチ・タスク処理を達成す
る機構をなにも内蔵していない。
S−DO5はこのレベルのマルチ・タスク処理を達成す
る機構をなにも内蔵していない。
常にイベント、例えば転送がインターフェースを介して
達成されるとき、が生ずるのを待機しているネットワー
ク通信システム及び単一スレッド型システムは、上述の
理由から計算機資源の利用が効率的でない。
達成されるとき、が生ずるのを待機しているネットワー
ク通信システム及び単一スレッド型システムは、上述の
理由から計算機資源の利用が効率的でない。
(ハ)発明が解決しようとする課題
本発明の目的は、システム内の他のゲートウェイやノー
ドの性質またはシステムの性質の知識を必要とせずに、
拘束されない方法でゲートウェイやノードを使用するた
めに装置へのアクセスを許す、改良されたシステムを提
供することである。
ドの性質またはシステムの性質の知識を必要とせずに、
拘束されない方法でゲートウェイやノードを使用するた
めに装置へのアクセスを許す、改良されたシステムを提
供することである。
「ノード」及び「ゲートウェイ」という語は、あるノー
ドは厳密な定義ではゲートウェイではないかもしれない
が、ここでは、交換可能に用いる。
ドは厳密な定義ではゲートウェイではないかもしれない
が、ここでは、交換可能に用いる。
より特定すれば、この改良されたシステムはPTT(電
気通信生官庁)によって利用可能であることを意図して
おり、同一のシステムまたは異なるPTTによって実現
された他のシステムに接続されたアクセス装置と透過的
な通信をするために、それぞれのアクセス装置がアクセ
スできるゲートウェイを提供する。
気通信生官庁)によって利用可能であることを意図して
おり、同一のシステムまたは異なるPTTによって実現
された他のシステムに接続されたアクセス装置と透過的
な通信をするために、それぞれのアクセス装置がアクセ
スできるゲートウェイを提供する。
この改良されたシステムは、例えば公共及び私的な会社
のような他の大きなユーザによって用いるのにも同様に
適している。
のような他の大きなユーザによって用いるのにも同様に
適している。
本発明の他の目的は、単一スレッド型のオペレーティン
グ・システムであっても、ルーチンが外部的結果を待機
して未決な状態になる必要を防止することである。その
ようなルーチンはアンペンデド・ルーチンと呼ばれる。
グ・システムであっても、ルーチンが外部的結果を待機
して未決な状態になる必要を防止することである。その
ようなルーチンはアンペンデド・ルーチンと呼ばれる。
(ニ)課題を解決するための手段
本発明によるネットワーク通信システムは、それぞれの
アクセス装置のために働く複数のゲートウェイまたはノ
ードからなる。例えば、1つのノードはファクシミリ・
ネットワークのために働き、もう1つのノードはテレッ
クス・ネットワークのために、他のゲートウェイは、C
EO(データゼネラル・コーポレション)、DISO5
S及びPROFS (両方共IBM)等の複数の専用の
OAシステムのために働く。
アクセス装置のために働く複数のゲートウェイまたはノ
ードからなる。例えば、1つのノードはファクシミリ・
ネットワークのために働き、もう1つのノードはテレッ
クス・ネットワークのために、他のゲートウェイは、C
EO(データゼネラル・コーポレション)、DISO5
S及びPROFS (両方共IBM)等の複数の専用の
OAシステムのために働く。
ゲートウェイまたはノードは、標準的なメッセージ・ハ
ンドリング・システム、好適にはCCITT、X400
標準を介して相互に通信するように接続されている。X
400には多くのユーザによって実現されている198
4年版(ここては、1984、X400と称する)があ
る。X400には1988年版(ここでは1988.X
400と称する)もあり、これが本発明のネットワーク
通信システムの「バックボーン」として好適に用いられ
るシステムである。本発明が、他の専用のメッセージ・
ハンドリング・システムでな(、このように受け入れら
れた国際標準を利用できたことは、特に有利な点である
。しかしながら、1988、X400はまだ広(実現さ
れていないので、1つのゲートウェイとして、ある程度
低級な特性の1984.X400と「バックボーン」と
をインターフェースし得るX400ゲートウエイを提供
することが特に効果的である。
ンドリング・システム、好適にはCCITT、X400
標準を介して相互に通信するように接続されている。X
400には多くのユーザによって実現されている198
4年版(ここては、1984、X400と称する)があ
る。X400には1988年版(ここでは1988.X
400と称する)もあり、これが本発明のネットワーク
通信システムの「バックボーン」として好適に用いられ
るシステムである。本発明が、他の専用のメッセージ・
ハンドリング・システムでな(、このように受け入れら
れた国際標準を利用できたことは、特に有利な点である
。しかしながら、1988、X400はまだ広(実現さ
れていないので、1つのゲートウェイとして、ある程度
低級な特性の1984.X400と「バックボーン」と
をインターフェースし得るX400ゲートウエイを提供
することが特に効果的である。
本発明によるシステムの各ゲートウェイまたはノードは
、アクセス装置またはそのゲートウェイがそのために働
く装置にアクセスするためのネットワーク・インターフ
ェースを含む。これは、ゲートウェイの外部のユーザ定
義インターフェースである。各ゲートウェイは更に、標
準的なメッセージ・ハンドリング・システム即ちバック
ボーンとメツセージをやり取りする、外部メツセージ転
送インターフェース(MT I )を含む。
、アクセス装置またはそのゲートウェイがそのために働
く装置にアクセスするためのネットワーク・インターフ
ェースを含む。これは、ゲートウェイの外部のユーザ定
義インターフェースである。各ゲートウェイは更に、標
準的なメッセージ・ハンドリング・システム即ちバック
ボーンとメツセージをやり取りする、外部メツセージ転
送インターフェース(MT I )を含む。
内部的に各ゲートウェイは、ソフトウエア・インターフ
ェースを含み、それらは総てのゲートウェイに対して同
一で、更にメツセージ転送インターフェースに適合して
いる。コア・ルーチンのライブラリがメツセージ転送イ
ンターフェースとソフトウエア・インターフェースとの
通信をさせる。
ェースを含み、それらは総てのゲートウェイに対して同
一で、更にメツセージ転送インターフェースに適合して
いる。コア・ルーチンのライブラリがメツセージ転送イ
ンターフェースとソフトウエア・インターフェースとの
通信をさせる。
このライブラリは大量のゲートウェイ・ソフトウェアを
含み、総てのゲートウェイに対して同一なので、本発明
は各ゲートウェイに多(の特別のソフトウェアを開発す
る重い負担をなくす。
含み、総てのゲートウェイに対して同一なので、本発明
は各ゲートウェイに多(の特別のソフトウェアを開発す
る重い負担をなくす。
各ゲートウェイは更に、そのゲートウェイに独特で、ネ
ットワーク・インターフェースとソフトウエア・インタ
ーフェースとの間で通信をさせる特別のルーチンのライ
ブラリを含む。これらのルーチンは、一方ではネットワ
ーク・インターフェースのフォーマットとプロトコル(
これらは各ゲートウェイに特有である)を変換し、もう
一方ではソフトウエア・インターフェースのフォーマッ
トとプロトコルを標準化する。これらのノード特有のル
ーチンは、各ゲートウェイのソフトウェアのより小さな
部分を占める。
ットワーク・インターフェースとソフトウエア・インタ
ーフェースとの間で通信をさせる特別のルーチンのライ
ブラリを含む。これらのルーチンは、一方ではネットワ
ーク・インターフェースのフォーマットとプロトコル(
これらは各ゲートウェイに特有である)を変換し、もう
一方ではソフトウエア・インターフェースのフォーマッ
トとプロトコルを標準化する。これらのノード特有のル
ーチンは、各ゲートウェイのソフトウェアのより小さな
部分を占める。
コア・ルーチンによって実行される関数の例は、次の通
りである。
りである。
データのパケットを組み立ててバックボーンへ転送する
。
。
バックボーンからのパケットを受け取って分解する。
ディレクトリ内の宛て先アドレスを探索する。
文書を文書フォーマット変換器に与える。
記録、追跡記録、譚金、誤り処理等の総てのハウスキー
ピング機能。
ピング機能。
特別のルーチンによって実行される関数の例は、次の通
りである。
りである。
ゲートウェイが働くネットワークで特定されたフォーマ
ットとの相互変換。
ットとの相互変換。
ゲートウェイが働くネットワーク内のアドレスとホスト
のバックボーン内のアドレスとの間の変換。
のバックボーン内のアドレスとの間の変換。
標準的メッセージ・ハンドリング・システム上のゲート
ウェイまたはノード間の通信は、プロトコル・データ単
位(PDU)によって実行される。
ウェイまたはノード間の通信は、プロトコル・データ単
位(PDU)によって実行される。
各PDUはエンベロープ部とメツセージ部からなる(X
400を参照)。エンベロープ部は、メツセージの発信
者と受信者とを識別するデータを含むが、メツセージ受
信者のために働くゲートウェイを特定するデータは含ま
ない。1988.X400によれば、Plで表されるエ
ンベロープ部は、主として発信者、宛て先、メツセージ
優先順位及び配信報告が必要か否b)の表示からなる。
400を参照)。エンベロープ部は、メツセージの発信
者と受信者とを識別するデータを含むが、メツセージ受
信者のために働くゲートウェイを特定するデータは含ま
ない。1988.X400によれば、Plで表されるエ
ンベロープ部は、主として発信者、宛て先、メツセージ
優先順位及び配信報告が必要か否b)の表示からなる。
P2で表されるメツセージ部は、P1データの大部分を
繰り返し主題の名称を含むヘッダ、文書タイプ識別子と
、メツセージの主体部からなる。
繰り返し主題の名称を含むヘッダ、文書タイプ識別子と
、メツセージの主体部からなる。
これは、総てのアクセス装置が、それ自身受け取り側の
ゲートウェイの性質を考えることなく、他の総てのアク
セス装置にメツセージを送ることを可能にするので、本
発明の非常に著しい特徴である。実際に発信者は任意の
ゲートウェイが含まれることを知る必要はない。本発明
によるシステムは、そのユーザに対して完全に透過的で
あり、利用者側の処置の必要なくPTTによってそのメ
ッセージ・ハンドリングの能力を大幅に強化するために
実現され得る。そのうえに、このシステムはゲートウェ
イが付加されたり、除去されても再構 “成す
る必要がない。もちろん、ユーザは彼らが通信しようと
するアドレスを知る必要はあるが、それらが種々のゲー
トウェイ上にある事実は知る必要がない。これが各PD
Uのエンベロープ部がメツセージ受信者に対して働くゲ
ートウェイを特定するデータを含まない理由である。総
てのメツセージは単に共通メツセージ・バックボーン上
及びメツセージを受け取る受信者アドレスを認知するゲ
ートウェイに送出される。
ゲートウェイの性質を考えることなく、他の総てのアク
セス装置にメツセージを送ることを可能にするので、本
発明の非常に著しい特徴である。実際に発信者は任意の
ゲートウェイが含まれることを知る必要はない。本発明
によるシステムは、そのユーザに対して完全に透過的で
あり、利用者側の処置の必要なくPTTによってそのメ
ッセージ・ハンドリングの能力を大幅に強化するために
実現され得る。そのうえに、このシステムはゲートウェ
イが付加されたり、除去されても再構 “成す
る必要がない。もちろん、ユーザは彼らが通信しようと
するアドレスを知る必要はあるが、それらが種々のゲー
トウェイ上にある事実は知る必要がない。これが各PD
Uのエンベロープ部がメツセージ受信者に対して働くゲ
ートウェイを特定するデータを含まない理由である。総
てのメツセージは単に共通メツセージ・バックボーン上
及びメツセージを受け取る受信者アドレスを認知するゲ
ートウェイに送出される。
従属的な問題が異なる文書フォーマットの存在にある。
共通に使われる種々のワードプロセッサ・フォーマット
や、種々のファイル・フォーマット及びテレックスやテ
レテックスを特定するフォーマットがある。本発明の他
の特徴は、アクセスの起動をメツセージ受信者のフォー
マットの詳細を心配する必要から楽にすることである(
しかし常識は普通に用いなければならない、即ち高度に
フォーマットされたワードプロセッサ・ファイルがテレ
ックスの受信者によって満足に取り扱われることを当て
にすることは無用である)。フォーマット変換用の文書
変換器はそれ自身知られており、本発明によるネットワ
ーク通信システムに組み込むことができる。
や、種々のファイル・フォーマット及びテレックスやテ
レテックスを特定するフォーマットがある。本発明の他
の特徴は、アクセスの起動をメツセージ受信者のフォー
マットの詳細を心配する必要から楽にすることである(
しかし常識は普通に用いなければならない、即ち高度に
フォーマットされたワードプロセッサ・ファイルがテレ
ックスの受信者によって満足に取り扱われることを当て
にすることは無用である)。フォーマット変換用の文書
変換器はそれ自身知られており、本発明によるネットワ
ーク通信システムに組み込むことができる。
メツセージ部が文書(または文書の一部)からなる任意
のプロトコル・データ単位のエンベロープ部は、文書フ
ォーマットを識別するフォーマット情報を含む。各ゲー
トウェイの特定のルーチンのライブラリは、受け取った
フォーマット情報に応答して、フォーマット情報が互換
性のないフォーマットを表示するとき、メツセージ部を
自動的に文書変換器に渡すルーチンを含む。従ってゲー
トウェイは、受信者が受け取り可能な文書フォーマット
を考えることなく、もし変換が必要でもそれが自動的に
行われることの保証によって、どのような文書フォーマ
ットの転送も自由である。
のプロトコル・データ単位のエンベロープ部は、文書フ
ォーマットを識別するフォーマット情報を含む。各ゲー
トウェイの特定のルーチンのライブラリは、受け取った
フォーマット情報に応答して、フォーマット情報が互換
性のないフォーマットを表示するとき、メツセージ部を
自動的に文書変換器に渡すルーチンを含む。従ってゲー
トウェイは、受信者が受け取り可能な文書フォーマット
を考えることなく、もし変換が必要でもそれが自動的に
行われることの保証によって、どのような文書フォーマ
ットの転送も自由である。
1988、X400のようなメッセージ・ハンドリング
・システムにおいては、メツセージ発信者及び受信者を
識別する多くの部分を含む標準的アドレス構造がある。
・システムにおいては、メツセージ発信者及び受信者を
識別する多くの部分を含む標準的アドレス構造がある。
殆どのネットワーク・インターフェースは、より限定さ
れた範囲の異なるアドレス・フォーマットを用いる。従
って、各ゲートウェイがメッセージ・ハンドリング・シ
ステムを介してアクセスできる少なくとも1つのディレ
クトリを与えるのが良い。ライブラリ・ルーチンは、発
信者ゲートウェイにおいてメツセージの発信者と受信者
を識別するデータを1つまたは複数のディレクトリに渡
すルーチンを含む。これが、PDUのエンベロープ部に
含ませるために(メッセージ・ハンドリング・システム
によって)標準的形式の識別データを決定するために用
いられる。
れた範囲の異なるアドレス・フォーマットを用いる。従
って、各ゲートウェイがメッセージ・ハンドリング・シ
ステムを介してアクセスできる少なくとも1つのディレ
クトリを与えるのが良い。ライブラリ・ルーチンは、発
信者ゲートウェイにおいてメツセージの発信者と受信者
を識別するデータを1つまたは複数のディレクトリに渡
すルーチンを含む。これが、PDUのエンベロープ部に
含ませるために(メッセージ・ハンドリング・システム
によって)標準的形式の識別データを決定するために用
いられる。
他のルーチンは、少なくとも受信側のゲートウェイのネ
ットワーク・インターフェースによって要求された形式
でメツセージを受信する者を決定するために、受け取っ
たPDUのエンベロープ部の識別データを1つまたは複
数のディレクトリに渡す。
ットワーク・インターフェースによって要求された形式
でメツセージを受信する者を決定するために、受け取っ
たPDUのエンベロープ部の識別データを1つまたは複
数のディレクトリに渡す。
好適には、システムはメッセージ・ハンドリング・シス
テム上の総てのゲートウェイによって直接にアクセス可
能なディレクトリを保持する主ディレクトリ装置を含む
。このディレクトリは、CCITT、X500標準に従
ったものでよい。しかしながら、1つ以上の補助的なデ
ィレクトリが個々のゲートウェイ内のディレクトリ装置
に保持されてもよい。そのようなディレクトリは、他の
ゲートウェイによってメッセージ・ハンドリング・シス
テム及び保持ゲートウェイを介して間接的にアクセス可
能である。
テム上の総てのゲートウェイによって直接にアクセス可
能なディレクトリを保持する主ディレクトリ装置を含む
。このディレクトリは、CCITT、X500標準に従
ったものでよい。しかしながら、1つ以上の補助的なデ
ィレクトリが個々のゲートウェイ内のディレクトリ装置
に保持されてもよい。そのようなディレクトリは、他の
ゲートウェイによってメッセージ・ハンドリング・シス
テム及び保持ゲートウェイを介して間接的にアクセス可
能である。
本発明は更に、コア・ルーチンの一部として、異なるオ
ペレーティング・システム(MV計算機上のAO8/V
S、PC上のMS−DO3及びMV計算機や他のハード
ウェア上のUNIX)と共に動作可能なインターフェー
スを含む。このインターフェースは汎用アンペンデド・
インターフェース(GUI)として参照される。CUT
の下において、ルーチンがサービス供給者(プロバイダ
)、特にGUIコンフォーマット・サービス・プロバイ
ダ(GC8P)、を要求しようとするとき、ユーザは適
切なルーチンを呼ぶがその完了を待つことは望まない。
ペレーティング・システム(MV計算機上のAO8/V
S、PC上のMS−DO3及びMV計算機や他のハード
ウェア上のUNIX)と共に動作可能なインターフェー
スを含む。このインターフェースは汎用アンペンデド・
インターフェース(GUI)として参照される。CUT
の下において、ルーチンがサービス供給者(プロバイダ
)、特にGUIコンフォーマット・サービス・プロバイ
ダ(GC8P)、を要求しようとするとき、ユーザは適
切なルーチンを呼ぶがその完了を待つことは望まない。
そのかわり、ユーザは通知ルーチンによってそのルーチ
ンの完了を知らされる。その間にユーザは他の処理を実
行できる。
ンの完了を知らされる。その間にユーザは他の処理を実
行できる。
(ホ)実施例
この説明は4つの主要な節を含む。
■、システムの一般的な説明
■、ネットワーク通信
■、一般的なアンペンデド(unpended)−イン
タフェース ■、省略及び頭字語 ここで強調しておくが、説明全体は例として提示され、
添付の特許請求の範囲によって定義されている場合を除
いて、開示されたいかなる特徴によっても限定されるこ
とはない。例えば、GUIは通信サーバー(5erve
r)システムと関連して主に説明されているが、この特
定の応用に限定されない。GUIルーチンは開示された
構成を必ずしも備えてはいない。通信サーバー・システ
ム・ルーチンの組織化は変更等に無限の可能性を与える
。
タフェース ■、省略及び頭字語 ここで強調しておくが、説明全体は例として提示され、
添付の特許請求の範囲によって定義されている場合を除
いて、開示されたいかなる特徴によっても限定されるこ
とはない。例えば、GUIは通信サーバー(5erve
r)システムと関連して主に説明されているが、この特
定の応用に限定されない。GUIルーチンは開示された
構成を必ずしも備えてはいない。通信サーバー・システ
ム・ルーチンの組織化は変更等に無限の可能性を与える
。
更に、ルーチンの詳細なコード化とルーチンをコード化
する言語は、特定のハードウェアの内容の中で、特定の
応用に対して発明を実行するプログラマの選択事項であ
る。
する言語は、特定のハードウェアの内容の中で、特定の
応用に対して発明を実行するプログラマの選択事項であ
る。
■、システムの一般的な説明
第1図は、1988 X400プロトコルと少なくと
も部分的にはX25パケット切り替え型メツセージ転送
プロトコルとを用いる汎用メッセージング拳バックボー
ン(messagingbackbone) 15を介
して違いに通信する複数のノード又はゲートウェー12
を示している(ただし、それぞれのゲートウェーはその
通信経路の一部として他の媒体、例えばランド・ライン
[1and 1ine]を使用することもある)。第1
図は例として8個のゲートウェーを示している。原理的
には、ゲートウェーの数に制限はない。ゲートウェーの
例は、データ・ジェネラル・CEO・オフィス・オート
メー7ョン・ネットワーク13AのためのCEOゲート
ウェー12A IBM DISO8Sオフィス・オ
ートメーション・ネットワーク13Bのための5NAD
Sゲートウェー12IBM PROFSオフィス・オ
ートメーション・ネットワーク13Cのための5NAD
Sゲートウエー12C X400通信ネットワーク13Dと通信する1984
X400のためのX400ゲートウニ−12D ファックス及びテレックス・ネットワーク13E、Fと
通信するファックス/テレックス・ゲートウェー12E
0 各ゲートウェーは標準のインターフェース又はアクセス
・ユニット14A−14Fを介してそのネットワークと
接続される。明瞭にするために、各ケートウェーは単一
のネットワーク専用のものとして示されているが、こう
した構成は、少なくともいくつかのゲートウェーに関す
る限り、実際に採用され得る。他方、単一のゲートウェ
ーは複数の異なるアクセス・ユニットに奉仕する。後述
する第2図は、ファックス/テレックス(テレファック
ス)とゲートウェーとの結合されたものであり、他の例
として、ゲートウェーはCEOゲートウェーでもファッ
クス/テレファックス・ケートウェーでもある。これに
より、ゲートウェーには、必要なインターフェースと各
タイプのアクセス・ユニットに対する必要な特定のルー
チンとを持つことが要求される。
も部分的にはX25パケット切り替え型メツセージ転送
プロトコルとを用いる汎用メッセージング拳バックボー
ン(messagingbackbone) 15を介
して違いに通信する複数のノード又はゲートウェー12
を示している(ただし、それぞれのゲートウェーはその
通信経路の一部として他の媒体、例えばランド・ライン
[1and 1ine]を使用することもある)。第1
図は例として8個のゲートウェーを示している。原理的
には、ゲートウェーの数に制限はない。ゲートウェーの
例は、データ・ジェネラル・CEO・オフィス・オート
メー7ョン・ネットワーク13AのためのCEOゲート
ウェー12A IBM DISO8Sオフィス・オ
ートメーション・ネットワーク13Bのための5NAD
Sゲートウェー12IBM PROFSオフィス・オ
ートメーション・ネットワーク13Cのための5NAD
Sゲートウエー12C X400通信ネットワーク13Dと通信する1984
X400のためのX400ゲートウニ−12D ファックス及びテレックス・ネットワーク13E、Fと
通信するファックス/テレックス・ゲートウェー12E
0 各ゲートウェーは標準のインターフェース又はアクセス
・ユニット14A−14Fを介してそのネットワークと
接続される。明瞭にするために、各ケートウェーは単一
のネットワーク専用のものとして示されているが、こう
した構成は、少なくともいくつかのゲートウェーに関す
る限り、実際に採用され得る。他方、単一のゲートウェ
ーは複数の異なるアクセス・ユニットに奉仕する。後述
する第2図は、ファックス/テレックス(テレファック
ス)とゲートウェーとの結合されたものであり、他の例
として、ゲートウェーはCEOゲートウェーでもファッ
クス/テレファックス・ケートウェーでもある。これに
より、ゲートウェーには、必要なインターフェースと各
タイプのアクセス・ユニットに対する必要な特定のルー
チンとを持つことが要求される。
第1図における全体のシステムは通信サーバー(cS)
システム10と表示される。各ゲートウェー12はメツ
セージ転送インターフェースに対する(MI Tで表示
される)インターフェース15Aを備え、これらインタ
ーフェースは、「バス」15B−任意の形の通信リンク
により物理的に構成され得る−によって指示されるよう
に、1988 X400プロトコルを介して通信する
。インターフェース15A及び「バス」15Bはメツセ
ージ・バックボーン15を構成する。また、「バス」1
5bはディレクトリ・サービス48及びマスク・ドキュ
メント・コンバータ46との通信を提供する。メツセー
ジ・バックボーン15そのものと結合されて、これらの
サービスは通信サーバー・システム10のホストIOA
とみなされる。
システム10と表示される。各ゲートウェー12はメツ
セージ転送インターフェースに対する(MI Tで表示
される)インターフェース15Aを備え、これらインタ
ーフェースは、「バス」15B−任意の形の通信リンク
により物理的に構成され得る−によって指示されるよう
に、1988 X400プロトコルを介して通信する
。インターフェース15A及び「バス」15Bはメツセ
ージ・バックボーン15を構成する。また、「バス」1
5bはディレクトリ・サービス48及びマスク・ドキュ
メント・コンバータ46との通信を提供する。メツセー
ジ・バックボーン15そのものと結合されて、これらの
サービスは通信サーバー・システム10のホストIOA
とみなされる。
マスク・ドキュメント・コンバータ46とディレクトリ
・サービス48との物理的位置は重要ではない。構成的
には、それぞれはデータベースと処理ファシリティとを
備え、ゲートウェー12の1つに又は専用ゲートウェー
に物理的に位置している。マスク・ドキュメント・コン
バータ46はPCプログラムでそれ自体良く知られてい
るような変換ルーチンばかりでなく、−層複雑な応用ソ
フトウェアを実行する。ディレクトリ・サービス48デ
ータベースは、既に述べたように、ここに援用するCC
ITT X500基準に従っており、質問・探索ディ
レクトリ項目と加算・補正・削除項目に対する標準デー
タベース・ファシリティを与える。
・サービス48との物理的位置は重要ではない。構成的
には、それぞれはデータベースと処理ファシリティとを
備え、ゲートウェー12の1つに又は専用ゲートウェー
に物理的に位置している。マスク・ドキュメント・コン
バータ46はPCプログラムでそれ自体良く知られてい
るような変換ルーチンばかりでなく、−層複雑な応用ソ
フトウェアを実行する。ディレクトリ・サービス48デ
ータベースは、既に述べたように、ここに援用するCC
ITT X500基準に従っており、質問・探索ディ
レクトリ項目と加算・補正・削除項目に対する標準デー
タベース・ファシリティを与える。
第2図は、複数のネットワークと装置へインターフェー
スする典型的なゲートウェーの全体的なハードウェア構
成を示す。結合されたテレックス/ファックス(テレマ
チック)ゲートウェー13E、Fが例示されている。複
数のコンピュータが処理容量を取り扱うことを要求され
ているとし、図の実施例はそれぞれのコンピュータ・プ
ログラムを記憶する関連のディスク・ドライブD1.
D2、D3をそれぞれ備える3台のデータ・ジェネラル
MVシリーズ・マルチコンピュータMVI。
スする典型的なゲートウェーの全体的なハードウェア構
成を示す。結合されたテレックス/ファックス(テレマ
チック)ゲートウェー13E、Fが例示されている。複
数のコンピュータが処理容量を取り扱うことを要求され
ているとし、図の実施例はそれぞれのコンピュータ・プ
ログラムを記憶する関連のディスク・ドライブD1.
D2、D3をそれぞれ備える3台のデータ・ジェネラル
MVシリーズ・マルチコンピュータMVI。
MV2.MV3を含む。これらのコンピュータは、40
0 M b / sを運ぶ標準の(密な)イーサネッ1
−LAN又はMRCバスのような高速LAN16によっ
て接続される。更に、コンピュータはディスク・コント
ローラ18を介して、ユーザ・データを保持するための
ディスク・フレーム22を(例えば)構成するディスク
・ドライブD4−D8のバンクへ接続される。
0 M b / sを運ぶ標準の(密な)イーサネッ1
−LAN又はMRCバスのような高速LAN16によっ
て接続される。更に、コンピュータはディスク・コント
ローラ18を介して、ユーザ・データを保持するための
ディスク・フレーム22を(例えば)構成するディスク
・ドライブD4−D8のバンクへ接続される。
コンピュータは端末スイッチ20を介して、テレックス
・インターフェース14F1フアツクス・インターフェ
ース14E、プリンタ・インターフェース14Pとして
ここでは示されている複数のインターフェースへ接続さ
れる。端末スイッチ20は種々のアクセス・ユニットが
コンピュータ・リソースを共用することができるように
すると共に、2台の良好なコンピュータを一方がダウン
したときに使用することができるようにし、リソースを
フレキシブルに使用することを一般的に可能とする。原
理的には、本発明は複数のコンピュータを必要とするも
のではなく、複数のコンピュータが使用される方法は本
発明の一部を形成しない。簡単に言えば、実行される入
力/出力動作に対して、正しいコンピュータが正しいイ
ンターフェースと通信することができるように、1つの
コンピュータがマスクとして動作し、他のコンピュータ
の活動を割り当て、端末スイッチ20とX25スイッチ
32とを制御すると共に、誤り状態では別のコンピュー
タがマスクとして引き継ぐように準備する公知のマルチ
プロセッサ・システムの原理にしたがって、コンピュー
タは取り扱われる。簡単なシステムでは、1台のコンピ
ュータがあり、端末スイッチ20は不要である。
・インターフェース14F1フアツクス・インターフェ
ース14E、プリンタ・インターフェース14Pとして
ここでは示されている複数のインターフェースへ接続さ
れる。端末スイッチ20は種々のアクセス・ユニットが
コンピュータ・リソースを共用することができるように
すると共に、2台の良好なコンピュータを一方がダウン
したときに使用することができるようにし、リソースを
フレキシブルに使用することを一般的に可能とする。原
理的には、本発明は複数のコンピュータを必要とするも
のではなく、複数のコンピュータが使用される方法は本
発明の一部を形成しない。簡単に言えば、実行される入
力/出力動作に対して、正しいコンピュータが正しいイ
ンターフェースと通信することができるように、1つの
コンピュータがマスクとして動作し、他のコンピュータ
の活動を割り当て、端末スイッチ20とX25スイッチ
32とを制御すると共に、誤り状態では別のコンピュー
タがマスクとして引き継ぐように準備する公知のマルチ
プロセッサ・システムの原理にしたがって、コンピュー
タは取り扱われる。簡単なシステムでは、1台のコンピ
ュータがあり、端末スイッチ20は不要である。
更に、それぞれのコンピュータは、PDN (パブリッ
ク・データ・ネットワーク)インターフェース34と(
また恐らくは)リースされた( teased)ライン
36即ち別のゲートウェーとの直接接続である1つの利
用とに接続されるX25スイツチ32との接続を備える
。インターフェース34は第1図のメツセージ転送イン
ターフェース15Aを与え、汎用メッセージング・バッ
クボーン15の一部を形成する。
ク・データ・ネットワーク)インターフェース34と(
また恐らくは)リースされた( teased)ライン
36即ち別のゲートウェーとの直接接続である1つの利
用とに接続されるX25スイツチ32との接続を備える
。インターフェース34は第1図のメツセージ転送イン
ターフェース15Aを与え、汎用メッセージング・バッ
クボーン15の一部を形成する。
第3図は、別のブロック図として描かれているが、ハー
ドウェアの面よりは機能の面でゲートウェーの構成を示
している。ゲートウェーが一例としてテレックスとファ
ックスとに奉仕するテレマチック・ゲートウェーである
と再び仮定すると、実際のテレックス及びファックスの
通信は、本発明が関係しない標準アイテム、例えばHa
slerテレックス・ユニットやファックス・カード(
例えばガンマファックスCP/Tカード)付きのPC等
によって取り扱われる。これらの標準アイテムはゲート
ウェーの1つのポートとして動作するネットワーク・イ
ンターフェース14と通信し、第2図に示すように、複
数のインターフェースを備える。同様に、ネットワーク
・インターフェース14はCEOネットワーク、PRO
FSネットワーク等と整合を取られる。メツセージ転送
インターフェース15Aはメッセーンング・バックボー
ン・バス15Bと通信する第2のポートを形成する。
ドウェアの面よりは機能の面でゲートウェーの構成を示
している。ゲートウェーが一例としてテレックスとファ
ックスとに奉仕するテレマチック・ゲートウェーである
と再び仮定すると、実際のテレックス及びファックスの
通信は、本発明が関係しない標準アイテム、例えばHa
slerテレックス・ユニットやファックス・カード(
例えばガンマファックスCP/Tカード)付きのPC等
によって取り扱われる。これらの標準アイテムはゲート
ウェーの1つのポートとして動作するネットワーク・イ
ンターフェース14と通信し、第2図に示すように、複
数のインターフェースを備える。同様に、ネットワーク
・インターフェース14はCEOネットワーク、PRO
FSネットワーク等と整合を取られる。メツセージ転送
インターフェース15Aはメッセーンング・バックボー
ン・バス15Bと通信する第2のポートを形成する。
インターフェース14.15Aは全部のゲートウェーと
同じであるソフトウエア・インターフェース44によっ
て連結される。このインターフェース44はメツセージ
転送インターフェース15Aとソフトウエア・インター
フェース44との間の通信を与えるコア・ルーチン(c
ore routines)のライブラリを含む。この
コア・ライブラリは単一のライブラリと機能的に常に等
価であるけれども、簡便のために、複数の個別に維持さ
れたライブラリとして扱われる。この実施例では、これ
らのライブラリはTOOLS、GUI、ARTで表され
るライブラリを含む。GUIはゼネラル・アンペンデド
・インターフェースを表し、以下に詳述する。ARTは
ASN、1 (ISO基準)ラン・タイムス(Run
Times)ライブラリ・ルーチン、即ち、ここに援用
するISOASN、1基準にしたがったフォーマットで
データを符号化するルーチンを表す。これらのルーチン
はTOOLSにて使用され、PDU特に1988 X
400 PDUを作る。
同じであるソフトウエア・インターフェース44によっ
て連結される。このインターフェース44はメツセージ
転送インターフェース15Aとソフトウエア・インター
フェース44との間の通信を与えるコア・ルーチン(c
ore routines)のライブラリを含む。この
コア・ライブラリは単一のライブラリと機能的に常に等
価であるけれども、簡便のために、複数の個別に維持さ
れたライブラリとして扱われる。この実施例では、これ
らのライブラリはTOOLS、GUI、ARTで表され
るライブラリを含む。GUIはゼネラル・アンペンデド
・インターフェースを表し、以下に詳述する。ARTは
ASN、1 (ISO基準)ラン・タイムス(Run
Times)ライブラリ・ルーチン、即ち、ここに援用
するISOASN、1基準にしたがったフォーマットで
データを符号化するルーチンを表す。これらのルーチン
はTOOLSにて使用され、PDU特に1988 X
400 PDUを作る。
不特定ソフトウエア・インターフェース44は特定のル
ーチン45のライブラリによりネットワーク・インター
フェースと整合される。特定のルーチンは、それによっ
てサービスされるゲートウェーの本質にしたがって、メ
ツセージの流れを制御するのに一層高いレベルで必要な
ルーチンを含む。他方、TOOLSは全部のゲートウェ
ーに共通の「ツール」又はサービスを提供する。詳細に
は、TOOLSルーチンはX400 1988フオーマ
ツトをARTにより構成されるPDUに課し、メツセー
ジを送出し、メッセーン確認を受信し、ディレクトリ・
サービス及びドキュメント・コンバータにしたがってデ
ィスク・セイブ(disk 5aves)を取り扱い、
ゲートウェーに共通に要求される他の機能を実行する。
ーチン45のライブラリによりネットワーク・インター
フェースと整合される。特定のルーチンは、それによっ
てサービスされるゲートウェーの本質にしたがって、メ
ツセージの流れを制御するのに一層高いレベルで必要な
ルーチンを含む。他方、TOOLSは全部のゲートウェ
ーに共通の「ツール」又はサービスを提供する。詳細に
は、TOOLSルーチンはX400 1988フオーマ
ツトをARTにより構成されるPDUに課し、メツセー
ジを送出し、メッセーン確認を受信し、ディレクトリ・
サービス及びドキュメント・コンバータにしたがってデ
ィスク・セイブ(disk 5aves)を取り扱い、
ゲートウェーに共通に要求される他の機能を実行する。
ゲートウェーはメッセージング・バックボーン15を介
してドキュメント・コンバータ46及び主ディレクトリ
・サービス48と通信する。オプションとして、独自の
サブディレクトリ・ライブラリ49を含んでもよい。
してドキュメント・コンバータ46及び主ディレクトリ
・サービス48と通信する。オプションとして、独自の
サブディレクトリ・ライブラリ49を含んでもよい。
■、ネットワーク通信
1つのネットワーク上のユーザが、対応するゲートウェ
ーを介する別のネットワーク上のユーザにゲートウェー
を介してメツセージrAJを送出するとき、ネットワー
ク通信システム10はこのメツセージをソース・ネット
ワーク(ここではCEOであると仮定する)の特定のフ
ォーマットから宛て先ネットワーク(ここではPROF
Sであると仮定する)の別の特定のフォーマットへ変換
する。第4図は、CEOフォーマットのメツセージrA
Jをシステム10へ送るCEOネットワーク13Aを示
す。次いで(第5図)、システム10はメツセージをP
ROFS (SNADS)−フォーマットへ変換し、そ
れをPROFSネットワーク52へ送る。
ーを介する別のネットワーク上のユーザにゲートウェー
を介してメツセージrAJを送出するとき、ネットワー
ク通信システム10はこのメツセージをソース・ネット
ワーク(ここではCEOであると仮定する)の特定のフ
ォーマットから宛て先ネットワーク(ここではPROF
Sであると仮定する)の別の特定のフォーマットへ変換
する。第4図は、CEOフォーマットのメツセージrA
Jをシステム10へ送るCEOネットワーク13Aを示
す。次いで(第5図)、システム10はメツセージをP
ROFS (SNADS)−フォーマットへ変換し、そ
れをPROFSネットワーク52へ送る。
典型的には、このプロセスは、ディレクトリ・サービス
48にり取り扱われるアドレス変換と、特定のルーチン
45により取り扱われるプロトコル変換と、ドキュメン
ト・コンバータ46により取り扱われるドキュメント・
フォーマット変換とを含む。別の例をここで詳述する。
48にり取り扱われるアドレス変換と、特定のルーチン
45により取り扱われるプロトコル変換と、ドキュメン
ト・コンバータ46により取り扱われるドキュメント・
フォーマット変換とを含む。別の例をここで詳述する。
この例では、シナリオは、外部1984 X400ネ
ツトワーク(例えばPTTにより提供されるもの)から
到着し、ファックス・カードを介して電話回線へ出て行
くメツセージのそれである。
ツトワーク(例えばPTTにより提供されるもの)から
到着し、ファックス・カードを介して電話回線へ出て行
くメツセージのそれである。
第6図で、X400ネツトワーク13Dは1984
X400ゲートウエー12Dへの接続を開き、PTTネ
ットワークからのメツセージをX400ゲートウエー1
2Dへ転送する。このメツセージは58に示されるよう
に、ディスク即ちディスク・フレーム22にセーブされ
る(そのため、システムが暴走しても、メツセージが失
われることはない)。
X400ゲートウエー12Dへの接続を開き、PTTネ
ットワークからのメツセージをX400ゲートウエー1
2Dへ転送する。このメツセージは58に示されるよう
に、ディスク即ちディスク・フレーム22にセーブされ
る(そのため、システムが暴走しても、メツセージが失
われることはない)。
メツセージは有効性をチエツクされ、受信者がネットワ
ーク通信システム「内」にあることを保証するために、
受信者のアドレスがチエツクされる。これらの処理は、
通信ネットワークではそれ自体公知である。次いで、メ
ツセージはメツセージの待ち行列60に置かれ、さらに
処理される。
ーク通信システム「内」にあることを保証するために、
受信者のアドレスがチエツクされる。これらの処理は、
通信ネットワークではそれ自体公知である。次いで、メ
ツセージはメツセージの待ち行列60に置かれ、さらに
処理される。
メツセージは遠隔(PTT)システム13Dに対してア
クノリジされる。
クノリジされる。
第7図において、メツセージは1984 X400フ
オーマツトで既□・に受信されており、システムで使用
される内部フォーマットである1988X400へ変換
される必要がある。従来の通信技術にしたがって、トレ
ース(trace)情報が追加される。この情報は、メ
ツセージが通過する全/ステムを通してメツセージを追
跡するのに使用され、ループ動作中の(looping
)メソセージを検出するのに使用される(メツセージは
同一システムを2回通過する)。次いでメツセージはソ
フトウエア・インターフェース44のTOOLSへ伝え
られる。
オーマツトで既□・に受信されており、システムで使用
される内部フォーマットである1988X400へ変換
される必要がある。従来の通信技術にしたがって、トレ
ース(trace)情報が追加される。この情報は、メ
ツセージが通過する全/ステムを通してメツセージを追
跡するのに使用され、ループ動作中の(looping
)メソセージを検出するのに使用される(メツセージは
同一システムを2回通過する)。次いでメツセージはソ
フトウエア・インターフェース44のTOOLSへ伝え
られる。
第8図において、メツセージがどのゲートウェーへ送ら
れるべきかを知るために、ディレクトリ・サービス48
において受信者が調べられる。発信者がネットワーク通
信システムを使用することができるかどうかを知るため
に、発信者がチエツクされる。このディレクトリ・サー
ビスの使用はそれ自体普通のことである。
れるべきかを知るために、ディレクトリ・サービス48
において受信者が調べられる。発信者がネットワーク通
信システムを使用することができるかどうかを知るため
に、発信者がチエツクされる。このディレクトリ・サー
ビスの使用はそれ自体普通のことである。
メツセージの新規なコピーが記憶され(62)、他のゲ
ートウェーのために待ち行列(64)に配置される。
ートウェーのために待ち行列(64)に配置される。
第9図において、いまメツセージは他のゲートウェー1
0(この場合ではファックス)における対等なTOOL
Sへ転送される。これは、指令(SUBMIT−MES
SAGE)といくつかのデータ(この場合にはメツセー
ジ自体)が転送されることを意味する遠隔操作と呼ばれ
るものを用いて行われる。
0(この場合ではファックス)における対等なTOOL
Sへ転送される。これは、指令(SUBMIT−MES
SAGE)といくつかのデータ(この場合にはメツセー
ジ自体)が転送されることを意味する遠隔操作と呼ばれ
るものを用いて行われる。
メソセージの重複を避けるために、ンーケンス番号も送
られる。
られる。
こうして、メツセージはファックス・ゲートウェー12
EのTOOLS44’ にある。第9〜12図において
、このゲートウェーの要素はプライムの付加によって区
別される。
EのTOOLS44’ にある。第9〜12図において
、このゲートウェーの要素はプライムの付加によって区
別される。
第10図において、メツセージは再び記憶される(72
)。発信者の名称はC8IDとして用いられる、人間に
読み取り可能な形(ファックス・ページの上部に現れる
ストリング)へ変換される(cONV、0RIG)。当
該溌呼者からアドレスされた受信者へディレクトリによ
り許容される呼びを禁止するために、更に呼び禁止チエ
ツクが行われる。
)。発信者の名称はC8IDとして用いられる、人間に
読み取り可能な形(ファックス・ページの上部に現れる
ストリング)へ変換される(cONV、0RIG)。当
該溌呼者からアドレスされた受信者へディレクトリによ
り許容される呼びを禁止するために、更に呼び禁止チエ
ツクが行われる。
メツセージはファックス・ゲートウェー12Hの特定の
ソフトウェア・ルーチン45′へ渡される。ファックス
・ゲートウェー12Eでは全部の動作が行われる。
ソフトウェア・ルーチン45′へ渡される。ファックス
・ゲートウェー12Eでは全部の動作が行われる。
第11図において、メツセージのコピーが受信者毎に発
生されて記憶され(76)、ダイアル番号が形成される
。回送されるファックス・アドレスのファックフォーマ
ットは9くカントリー・コード〉く国番号〉である。こ
れはダイアルするための数字列へ変換される。
生されて記憶され(76)、ダイアル番号が形成される
。回送されるファックス・アドレスのファックフォーマ
ットは9くカントリー・コード〉く国番号〉である。こ
れはダイアルするための数字列へ変換される。
いま、それぞれのコピーは待ち行列(78)に配置され
、出線(ファックス・カード)が空きになると送出され
る。
、出線(ファックス・カード)が空きになると送出され
る。
注目されることであるが、メツセージは反復してディス
クにセーブされる。これは、メツセージの大部分がディ
スクに残り、メツセージが適切に記憶されるようにポイ
ンタを構成することにより別の「セーブ」が行われるの
で、重大なオーバーヘッドではない。コピーが削除され
るとき、最後のユーザが記憶されたメツセージを発する
まで、記憶されたメツセージ自体は削除されない。
クにセーブされる。これは、メツセージの大部分がディ
スクに残り、メツセージが適切に記憶されるようにポイ
ンタを構成することにより別の「セーブ」が行われるの
で、重大なオーバーヘッドではない。コピーが削除され
るとき、最後のユーザが記憶されたメツセージを発する
まで、記憶されたメツセージ自体は削除されない。
第12図において、ファックス・カード82が利用可能
になる(事象として知らされる)まで、特定のルーチン
はメツセージの各コピーを待ち、次いでこのメツセージ
をファックス・ネットワーク・インターフェース・ユニ
ット80を介してファックス・アクセス・ユニット即ち
ファックス・カードを持つPC82へ転送する。これは
、GUES(ジェネリック・アンベンデド事象)ハンド
ラ(handier)サービス(これについては後述す
る)が利用されるときの例である。
になる(事象として知らされる)まで、特定のルーチン
はメツセージの各コピーを待ち、次いでこのメツセージ
をファックス・ネットワーク・インターフェース・ユニ
ット80を介してファックス・アクセス・ユニット即ち
ファックス・カードを持つPC82へ転送する。これは
、GUES(ジェネリック・アンベンデド事象)ハンド
ラ(handier)サービス(これについては後述す
る)が利用されるときの例である。
そこで、PC82内で標準動作が行われる。(まだ内部
符号化形態である)メツセージはテキストへ変換される
。ヘッダーはその地方の言語で日時等と共にフォーマッ
ト化される。次いで、メツセージはファックス・カード
へ伝えられる。供給された番号をファックス・カードは
ダイアルし、テキストからその順番に白黒の画像へ変換
しながら、メツセージを送信する。呼びの終了時、ファ
ックス・カードはPCへC3lD(被呼加入者識別)を
返送する。ファックス・ゲートウェー12Eは継続時間
及びC8IDを含む送信結果を告げられる。
符号化形態である)メツセージはテキストへ変換される
。ヘッダーはその地方の言語で日時等と共にフォーマッ
ト化される。次いで、メツセージはファックス・カード
へ伝えられる。供給された番号をファックス・カードは
ダイアルし、テキストからその順番に白黒の画像へ変換
しながら、メツセージを送信する。呼びの終了時、ファ
ックス・カードはPCへC3lD(被呼加入者識別)を
返送する。ファックス・ゲートウェー12Eは継続時間
及びC8IDを含む送信結果を告げられる。
その後、他の動作がファックス・ゲートウェー12Eで
行われる。(まだ記憶されたままである)メツセージが
引き出され、発信者がメツセージの完了時に何等かの通
知(良好又は不良)を要求したかどうかをチエツクする
。この報告が発生され、発信者へ返送するためにTOO
LSへ渡される。
行われる。(まだ記憶されたままである)メツセージが
引き出され、発信者がメツセージの完了時に何等かの通
知(良好又は不良)を要求したかどうかをチエツクする
。この報告が発生され、発信者へ返送するためにTOO
LSへ渡される。
ここで、課金のために料金の記録がディスクになされる
。
。
第6〜12図は、標準の1984 X400ネツトワ
ークからファックス・アクセス・ユニットへのメツセー
ジの送信に関係する。反対方向へ伝えられるメツセージ
は相補的な即ち逆の方法(これはこれまでの説明から明
らかである)で取り扱われる。
ークからファックス・アクセス・ユニットへのメツセー
ジの送信に関係する。反対方向へ伝えられるメツセージ
は相補的な即ち逆の方法(これはこれまでの説明から明
らかである)で取り扱われる。
■、一般的なアンペンデド・インターフェースこの項は
以下の章からなる: 第1章:序 第2章:環境 第3章:ユーザのモデル 第4章:機能性 第5章:GUIタスク・インターフェースの例 第6章:GUIタイマ 第7章:GUI事象ハンドラー 第8章:GUIの明細 第9章:GUTSの明細 第10章:GUESの明細 第11章:GUIのプログラミングの例第12章:内部
構造 第13章:データ構成の明細 第14章:GUI及び通信サービス・インターフェース 第1章 序 1、IGUIの概要 GUIは、インターフェース、外部事象及びタイマにわ
たる要求/応答相互作用を取り扱うための包括的な機構
である。また、GUrは、アプリケーションが単一の経
路での複数の筋道の処理を支持するためにアンペンデド
・サービスを利用することができる環境を提供する。こ
うした機構により、エンティティ(entity)は(
タイマの場合にはGUIにより、他の場合には別のエン
ティティにより提供される)サービスを要求することが
でき、サービス提供者側のルーチンが要求を満たしなが
ら保留することなしに、サービスの完了をその後動るこ
とができる。こうして、アンペンデド要求のサービス提
供者側の処理と平行して、アプリケーションは他の有用
な処理を実行することができる。
以下の章からなる: 第1章:序 第2章:環境 第3章:ユーザのモデル 第4章:機能性 第5章:GUIタスク・インターフェースの例 第6章:GUIタイマ 第7章:GUI事象ハンドラー 第8章:GUIの明細 第9章:GUTSの明細 第10章:GUESの明細 第11章:GUIのプログラミングの例第12章:内部
構造 第13章:データ構成の明細 第14章:GUI及び通信サービス・インターフェース 第1章 序 1、IGUIの概要 GUIは、インターフェース、外部事象及びタイマにわ
たる要求/応答相互作用を取り扱うための包括的な機構
である。また、GUrは、アプリケーションが単一の経
路での複数の筋道の処理を支持するためにアンペンデド
・サービスを利用することができる環境を提供する。こ
うした機構により、エンティティ(entity)は(
タイマの場合にはGUIにより、他の場合には別のエン
ティティにより提供される)サービスを要求することが
でき、サービス提供者側のルーチンが要求を満たしなが
ら保留することなしに、サービスの完了をその後動るこ
とができる。こうして、アンペンデド要求のサービス提
供者側の処理と平行して、アプリケーションは他の有用
な処理を実行することができる。
通信サーバー・システムのような複合製品(compl
ex product)では、ユーザにサービス・イン
ターフェースを提供し、ぶつかり合うことなく共存しな
ければならない多くの個別に設計されたモジュールが不
可避的に存在する。従来の課題は、ユーザが従わなけれ
ばならない独自の組の規則と制約を各モジュールが持っ
ているということであり、要件の間に両立性がない。こ
れは、全モジュールを一緒にするとき多くの努力を要し
、システムにバグ(bugs)が残る危険性が大きい。
ex product)では、ユーザにサービス・イン
ターフェースを提供し、ぶつかり合うことなく共存しな
ければならない多くの個別に設計されたモジュールが不
可避的に存在する。従来の課題は、ユーザが従わなけれ
ばならない独自の組の規則と制約を各モジュールが持っ
ているということであり、要件の間に両立性がない。こ
れは、全モジュールを一緒にするとき多くの努力を要し
、システムにバグ(bugs)が残る危険性が大きい。
例えば、外部のイベントを待つ必要があるライブラリは
該アプリケーションが時々何かが起こるかを判別するよ
うにポールされなければならないルーチンを有する。こ
れは、多分1つのライブラリには良いが、例えば1ダー
スのライブラリでは多くの時間が彼らの全部をポーリン
グする為に費やされる。伝統的なライブラリは、全部の
モジュールが処理において一緒の動作できる様に、注意
深く座標化されなければならない共用資源の排他的使用
を意図する。これは、モジュールが合体されていない時
には、孤立した状態で働く結果となる。
該アプリケーションが時々何かが起こるかを判別するよ
うにポールされなければならないルーチンを有する。こ
れは、多分1つのライブラリには良いが、例えば1ダー
スのライブラリでは多くの時間が彼らの全部をポーリン
グする為に費やされる。伝統的なライブラリは、全部の
モジュールが処理において一緒の動作できる様に、注意
深く座標化されなければならない共用資源の排他的使用
を意図する。これは、モジュールが合体されていない時
には、孤立した状態で働く結果となる。
GUIはこの問題を、全資源(タイマ、信号および他の
外部イベント)のチャージを持つこと及び多種のライン
の全部が資源を調和状態でアクセスするために使用でき
るサービスを提供することにより解決した。GUIは根
本的な資源の唯一の直接的なユーザであるので、他のモ
ジュールを合体することに問題がないのである。付加的
な利益は、全部の外部のイベントはGUIを通して到着
するので(及びその後に多種のモジュールに発送される
)、該ライブラリの全部をポールする必要がない。事実
、GUIの原理に前面的に基づくアプリケーションにお
いては、GUIは実行するジョブがないときはいつでも
可能な外部イベントの全部を自動的に待つので、全(ポ
ーリングが存在しない。これは、彼らが処理するメツセ
ージをでない時には、実質的にCPUタイムを使用しな
いアプリケーションを結果的にもたらす。一般的に言っ
て、GUIが作業する方法は次ぎの遥りである。
外部イベント)のチャージを持つこと及び多種のライン
の全部が資源を調和状態でアクセスするために使用でき
るサービスを提供することにより解決した。GUIは根
本的な資源の唯一の直接的なユーザであるので、他のモ
ジュールを合体することに問題がないのである。付加的
な利益は、全部の外部のイベントはGUIを通して到着
するので(及びその後に多種のモジュールに発送される
)、該ライブラリの全部をポールする必要がない。事実
、GUIの原理に前面的に基づくアプリケーションにお
いては、GUIは実行するジョブがないときはいつでも
可能な外部イベントの全部を自動的に待つので、全(ポ
ーリングが存在しない。これは、彼らが処理するメツセ
ージをでない時には、実質的にCPUタイムを使用しな
いアプリケーションを結果的にもたらす。一般的に言っ
て、GUIが作業する方法は次ぎの遥りである。
種々の呼び出し及び跳び越しを伴う連続コードとして記
載されるプログラムに代えて、アプリケーションの主構
成はサービス提供者の要求(スケジュールジョブまたは
待ち行列上の通知)を作る。ジョブ又は通知は以下の如
く分類される。
載されるプログラムに代えて、アプリケーションの主構
成はサービス提供者の要求(スケジュールジョブまたは
待ち行列上の通知)を作る。ジョブ又は通知は以下の如
く分類される。
サービスルーチンによりリターンデータ、外部イベント
が生じさせた通知、 タイムインターバルが経過した通知、 処理間隔通信(IPC)、即ち2つのコンピュータ処理
間にパスされたメッセイジ。
が生じさせた通知、 タイムインターバルが経過した通知、 処理間隔通信(IPC)、即ち2つのコンピュータ処理
間にパスされたメッセイジ。
原理において、1つのジョブ待ち行列だけが必要である
が、アプリケーションは異なるプライオリティを伴う多
重待ち行列にセットアツプでき及び実行するジョブのプ
ライオリティを制御する方法の如(、待ち行列またはサ
ービス提供者がジョブを配列する待ち行列を選択せきる
。アプリケーション(ユーザ)は実行すべきジョブが無
いとき実行ルーチンgui runOを読出す。Gu
i run()は(a)待ち行列の優先度の為及び(
b)各待ち行列が関連している限り第1の続出順序にお
いて待ち行列と異なるスケジュールされたジョブを実行
する。アプリケーションはそれ自身ペンドする必要はな
い。アプリケーションがアイドルである時、アプリケー
ションはペンドオプションと共にgui runOを
読出さねばならず、これによりgui runOはジ
ョブが処理間隔通信(IPC)、以下にGUESと示さ
れるイベント処理サイ−ビスまたは以下にG UTS
と示されるタイマサービスによりスケジュールされるま
でペンドする。これは、−旦アイドルになると、IPC
または外部イベントが起こるかタイマが終了するまでは
処理はさらに何も行わないとを仮定する。これが、“メ
ツセーシカミングイン”、“ファクスカードレデイ”等
またはインターバルの如きイベントに応答して作業が初
期化される通信サーバーシステムを得る状態である。
が、アプリケーションは異なるプライオリティを伴う多
重待ち行列にセットアツプでき及び実行するジョブのプ
ライオリティを制御する方法の如(、待ち行列またはサ
ービス提供者がジョブを配列する待ち行列を選択せきる
。アプリケーション(ユーザ)は実行すべきジョブが無
いとき実行ルーチンgui runOを読出す。Gu
i run()は(a)待ち行列の優先度の為及び(
b)各待ち行列が関連している限り第1の続出順序にお
いて待ち行列と異なるスケジュールされたジョブを実行
する。アプリケーションはそれ自身ペンドする必要はな
い。アプリケーションがアイドルである時、アプリケー
ションはペンドオプションと共にgui runOを
読出さねばならず、これによりgui runOはジ
ョブが処理間隔通信(IPC)、以下にGUESと示さ
れるイベント処理サイ−ビスまたは以下にG UTS
と示されるタイマサービスによりスケジュールされるま
でペンドする。これは、−旦アイドルになると、IPC
または外部イベントが起こるかタイマが終了するまでは
処理はさらに何も行わないとを仮定する。これが、“メ
ツセーシカミングイン”、“ファクスカードレデイ”等
またはインターバルの如きイベントに応答して作業が初
期化される通信サーバーシステムを得る状態である。
そのようなイベントは、例えばハンドシェーキングライ
ン上の論理状態の変化によって合図されるハードウェア
イベントと呼んでよいであろう。IPCはソフトウェア
イベントの如く見なされる。
ン上の論理状態の変化によって合図されるハードウェア
イベントと呼んでよいであろう。IPCはソフトウェア
イベントの如く見なされる。
入力イベントは発生したイベントを表示できる記入され
たパラメータを伴うユーザールーチンに対する呼び出し
により表されるこれらのイベントはgui 5che
dule Oの呼び出しにより待ち行列上に配置され、
それがgui runOを呼び出し時にメインタスク
によりピックアップされる。外部イベントはGUIによ
りスケジュールさ 例えば、外部のイベントを待つ必要
があるライブラリは該アプリケーションが時々何かが起
こるかを判別するようにポールされなければならないル
ーチンを有する。これは、多分1つのライブラリには良
いが、例えば1ダースのライブラリでは多くの時間が彼
らの全部をポーリングする為に費やされる。伝統的なラ
イブラリは、全部のモジュールが処理において一緒の動
作できる様に、注意深(座標化されなければならない共
用資源の排他的使用を意図する。これは、モジュールが
合体されていない時には、孤立した状態で働く結果とな
る。
たパラメータを伴うユーザールーチンに対する呼び出し
により表されるこれらのイベントはgui 5che
dule Oの呼び出しにより待ち行列上に配置され、
それがgui runOを呼び出し時にメインタスク
によりピックアップされる。外部イベントはGUIによ
りスケジュールさ 例えば、外部のイベントを待つ必要
があるライブラリは該アプリケーションが時々何かが起
こるかを判別するようにポールされなければならないル
ーチンを有する。これは、多分1つのライブラリには良
いが、例えば1ダースのライブラリでは多くの時間が彼
らの全部をポーリングする為に費やされる。伝統的なラ
イブラリは、全部のモジュールが処理において一緒の動
作できる様に、注意深(座標化されなければならない共
用資源の排他的使用を意図する。これは、モジュールが
合体されていない時には、孤立した状態で働く結果とな
る。
GUIはこの問題を、全資源(タイマ、信号および他の
外部イベント)のチャージを持つこと及び多種のライン
の全部が資源を調和状態でアクセスするために使用でき
るサービスを提供することにより解決した。GUNは根
本的な資源の唯一の直接的なユーザであるので、他のモ
ジュールを合体することに問題がないのである。付加的
な利益は、全部の外部のイベントはGUIを通して到着
するので(及びその後に多種のモジュールに発送される
)、該ライブラリの全部をポールする必要がない。事実
、GUIの原理に前面的に基づくアプリケーションにお
いては、GUIは実行するジョブがないときはいつでも
可能な外部イベントの全部を自動的に待つので、全くポ
ーリングが存在しない。これは、彼らが処理するメツセ
ージをでない時には、実質的にCPUタイムを使用しな
いアプリケーションを結果的にもたらす。一般的に言っ
て、GUIが作業する方法は次ぎの通りである。
外部イベント)のチャージを持つこと及び多種のライン
の全部が資源を調和状態でアクセスするために使用でき
るサービスを提供することにより解決した。GUNは根
本的な資源の唯一の直接的なユーザであるので、他のモ
ジュールを合体することに問題がないのである。付加的
な利益は、全部の外部のイベントはGUIを通して到着
するので(及びその後に多種のモジュールに発送される
)、該ライブラリの全部をポールする必要がない。事実
、GUIの原理に前面的に基づくアプリケーションにお
いては、GUIは実行するジョブがないときはいつでも
可能な外部イベントの全部を自動的に待つので、全くポ
ーリングが存在しない。これは、彼らが処理するメツセ
ージをでない時には、実質的にCPUタイムを使用しな
いアプリケーションを結果的にもたらす。一般的に言っ
て、GUIが作業する方法は次ぎの通りである。
種々の呼び出し及び跳び越しを伴う連続コードとして記
載されるプログラムに代えて、アプリケーションの主構
成はサービス提供者の要求(スケジュールジョブまたは
待ち行列上の通知)を作る。ジョブ又は通知は以下の如
く分類される。
載されるプログラムに代えて、アプリケーションの主構
成はサービス提供者の要求(スケジュールジョブまたは
待ち行列上の通知)を作る。ジョブ又は通知は以下の如
く分類される。
サービスルーチンによりリターンデータ、外部イベント
が生じさせた通知、 タイムインターバルが経過した通知、 処理間隔通信(IPC)、即ち2つのコンピュータ処理
間にパスされたメツセイジ。
が生じさせた通知、 タイムインターバルが経過した通知、 処理間隔通信(IPC)、即ち2つのコンピュータ処理
間にパスされたメツセイジ。
原理において、1つのジョブ待ち行列だけが必要である
が、アプリケーションは異なるプライオリティを伴う多
重待ち行列にセットアツプでき及び実行するジョブのプ
ライオリティを制御する方法の如く、待ち行列またはサ
ービス提供者がジョブを配列する待ち行列を選択せきる
。アプリケーション(ユーザ)は実行すべきジョブが無
いとき実行ルーチンguj runOを読出す。Gu
i runOは(a)待ち行列の優先度の為及び(b)
各待ち行列が関連している限り第1の続出順序において
待ち行列と異なるスケジュールされたジョブを実行する
。アプリケーションはそれ自身ペンドする必要はない。
が、アプリケーションは異なるプライオリティを伴う多
重待ち行列にセットアツプでき及び実行するジョブのプ
ライオリティを制御する方法の如く、待ち行列またはサ
ービス提供者がジョブを配列する待ち行列を選択せきる
。アプリケーション(ユーザ)は実行すべきジョブが無
いとき実行ルーチンguj runOを読出す。Gu
i runOは(a)待ち行列の優先度の為及び(b)
各待ち行列が関連している限り第1の続出順序において
待ち行列と異なるスケジュールされたジョブを実行する
。アプリケーションはそれ自身ペンドする必要はない。
アプリケーションがアイドルである時、アプリケーショ
ンはベンドオプションと共にgui runOを読出
さねばならず、これによりgui runOはジョブ
が処理間隔通信(IPC)、以下にGUESと示される
イベント処理サイ−ビスまたは以下にGUTSと示され
るタイマサービスによりスケジュールされるまでペンド
する。これは、−旦アイドルになると、IPCまたは外
部イベントが起こるかタイマが終了するまでは処理はさ
らに何も行わないとを仮定する。これが、“メッセージ
カミンゲイン”、“ファクスカードレデイ”等またはイ
ンターバルの如きイベントに応答して作業が初期化され
る通信サーバーシステムを得る状態である。
ンはベンドオプションと共にgui runOを読出
さねばならず、これによりgui runOはジョブ
が処理間隔通信(IPC)、以下にGUESと示される
イベント処理サイ−ビスまたは以下にGUTSと示され
るタイマサービスによりスケジュールされるまでペンド
する。これは、−旦アイドルになると、IPCまたは外
部イベントが起こるかタイマが終了するまでは処理はさ
らに何も行わないとを仮定する。これが、“メッセージ
カミンゲイン”、“ファクスカードレデイ”等またはイ
ンターバルの如きイベントに応答して作業が初期化され
る通信サーバーシステムを得る状態である。
そのようなイベントは、例えばハンドシューキングライ
ン上の論理状態の変化によって合図されるハードウェア
イベントと呼んでよいであろう。■PCはソフトウェア
イベントの如く見なされる。
ン上の論理状態の変化によって合図されるハードウェア
イベントと呼んでよいであろう。■PCはソフトウェア
イベントの如く見なされる。
入力イベントは発生したイベントを表示できる記入され
たパラメータを伴うユーザールーチンに対する呼び出し
により表されるこれらのイベントはgui 5che
dule Oの呼び出しにより待ち行列上に配置され、
それがgui runOを呼び出し時にメインタスク
によりピックアップされる。外部イベントはGUIによ
りスケジュールされえる事にだけではない。れえる事に
だけではない。ペンドされないた要求の完了はスケジュ
ールされえる他の明瞭なりラスのユーザールーチンであ
り、メインタスク内のライブラリまたはユーザーのいず
れかが実行しているルーチンはそれが実行されることが
必要であり多少時間後に実行されるであろう一般的な処
理をスケジュールできる。アプリケーションがそれ自身
の処理を行っている時、それは、例えばタイマ誤りを生
じることにより又はネットワーク使用法または応答時間
に影響することによる、ンステムの分裂を十分に連続的
に回避する為にgui runOに復帰しなければな
らない。該アプリケーションは次にGUlをポールして
もよいがアプリケーションが一般的なアプローチの如き
多くのハンドラーでなく1つの“イベントハンドラー”
をポールしなければならないことを認めることは重要で
ある。アプリケーションメインタスクは待ち行列を配置
する。
たパラメータを伴うユーザールーチンに対する呼び出し
により表されるこれらのイベントはgui 5che
dule Oの呼び出しにより待ち行列上に配置され、
それがgui runOを呼び出し時にメインタスク
によりピックアップされる。外部イベントはGUIによ
りスケジュールされえる事にだけではない。れえる事に
だけではない。ペンドされないた要求の完了はスケジュ
ールされえる他の明瞭なりラスのユーザールーチンであ
り、メインタスク内のライブラリまたはユーザーのいず
れかが実行しているルーチンはそれが実行されることが
必要であり多少時間後に実行されるであろう一般的な処
理をスケジュールできる。アプリケーションがそれ自身
の処理を行っている時、それは、例えばタイマ誤りを生
じることにより又はネットワーク使用法または応答時間
に影響することによる、ンステムの分裂を十分に連続的
に回避する為にgui runOに復帰しなければな
らない。該アプリケーションは次にGUlをポールして
もよいがアプリケーションが一般的なアプローチの如き
多くのハンドラーでなく1つの“イベントハンドラー”
をポールしなければならないことを認めることは重要で
ある。アプリケーションメインタスクは待ち行列を配置
する。
該待ち行列はそれが要求する各優先度のレベルのための
待ち行列標識またはキイドにより示される。
待ち行列標識またはキイドにより示される。
ライブラリルーチンが呼び出されるとそれはそのジョブ
をスケジュールしなければならないキイドを告げなけれ
ばならない。一般に、外部イベントは、高い優先度キイ
ドを与えられ、他方一般な内部処理が低い優先度キイド
を与えられる。
をスケジュールしなければならないキイドを告げなけれ
ばならない。一般に、外部イベントは、高い優先度キイ
ドを与えられ、他方一般な内部処理が低い優先度キイド
を与えられる。
アイデアルアプリケーションの構成はメインルーチンの
以下のアウトラインにより示される。
以下のアウトラインにより示される。
main()
1nitialise 5elf;
1nitialise GUI;
allocate guids、 for requi
red priorities;1nitialse
all 1ibraries;maybe 5ched
ule 1nitial jobs and 5tar
t anyregular timer; do forever gui run(PEND) gui run用のペンドオプションの表示はセクシ
ョン4.1.4で説明される。
red priorities;1nitialse
all 1ibraries;maybe 5ched
ule 1nitial jobs and 5tar
t anyregular timer; do forever gui run(PEND) gui run用のペンドオプションの表示はセクシ
ョン4.1.4で説明される。
外部イベント処理および内部ライブラリ処理の全てはg
ui run□に対する読出からのスケジュールされ
たジョブの如(行われる。内部ライブラリ処理は内部の
ペンドされないリクエストルーチンかジョブランからス
ケジュールされ、これは以下にGC3P’ sと示さ
れた内部サービスを与える外部イベント故である。この
理想的な例において、アプリケーションのそれ自身の処
理はスケジュールされたジョブの如くに実行される。
ui run□に対する読出からのスケジュールされ
たジョブの如(行われる。内部ライブラリ処理は内部の
ペンドされないリクエストルーチンかジョブランからス
ケジュールされ、これは以下にGC3P’ sと示さ
れた内部サービスを与える外部イベント故である。この
理想的な例において、アプリケーションのそれ自身の処
理はスケジュールされたジョブの如くに実行される。
これはアプリケーションに第1のジョブまたはそれがg
ut runOを読出す前に行われることが必要であ
るジョブをスケジュールすることを要求し、アプリケー
ションはあとでさらなるジョブを常にスケジュールでき
る。この構成は、行うことが無い時にプロセスが自動的
にgui run O内をスリープし且つアプリケー
ションコードがGUIメカニズム内に統合されるという
利益を有する。しかしながら、本発明は、ユーザルーチ
ンにペンドされたgui runOを気付かせること
ができ且つGUIにアイドルユーザループを気付かせる
ことがでる“wakeup”ルーチンを任意的に与える
。
ut runOを読出す前に行われることが必要であ
るジョブをスケジュールすることを要求し、アプリケー
ションはあとでさらなるジョブを常にスケジュールでき
る。この構成は、行うことが無い時にプロセスが自動的
にgui run O内をスリープし且つアプリケー
ションコードがGUIメカニズム内に統合されるという
利益を有する。しかしながら、本発明は、ユーザルーチ
ンにペンドされたgui runOを気付かせること
ができ且つGUIにアイドルユーザループを気付かせる
ことがでる“wakeup”ルーチンを任意的に与える
。
1.2GUI及びオペレーティング・システムGUIは
、アプリケーションがVSとNUIXの如き見掛は的に
非両立的なオペレーションシステムの間で携帯可能であ
る様にアプリケーションを記載可能である。UNIXは
、MS−DO3はリアル、ハイドウェア割り込みを使用
し、ところがUNIXはソフトウェア割り込みを使用す
る違いを有するMS−DO3に適用される。MSとUN
IXとの基本的な違いはVS処理はマルチスレートであ
りUNIX処理はそうでないことである。
、アプリケーションがVSとNUIXの如き見掛は的に
非両立的なオペレーションシステムの間で携帯可能であ
る様にアプリケーションを記載可能である。UNIXは
、MS−DO3はリアル、ハイドウェア割り込みを使用
し、ところがUNIXはソフトウェア割り込みを使用す
る違いを有するMS−DO3に適用される。MSとUN
IXとの基本的な違いはVS処理はマルチスレートであ
りUNIX処理はそうでないことである。
VSの下で、マルチスレート(VSタスク)が可能であ
り、。全は同一処理アドレス空間内に見掛は的に同時的
に実行される。他方、UNIX下で、ソフトウェア割り
込みの使用により他の割り込みレベルパスをホストでき
るが、処理において唯一のスレートランニングが存在す
る。しかしながら、VSは、NUIXルーチン0との比
較で、ユーザ処理のメインタスクを割り込むソフトウェ
ア用のドキメントされた機構を有しない。MS下では、
アプリケーションは外部イベントを待機するために奉納
されたVSタスクを使用する。
り、。全は同一処理アドレス空間内に見掛は的に同時的
に実行される。他方、UNIX下で、ソフトウェア割り
込みの使用により他の割り込みレベルパスをホストでき
るが、処理において唯一のスレートランニングが存在す
る。しかしながら、VSは、NUIXルーチン0との比
較で、ユーザ処理のメインタスクを割り込むソフトウェ
ア用のドキメントされた機構を有しない。MS下では、
アプリケーションは外部イベントを待機するために奉納
されたVSタスクを使用する。
これらの非両立性にもかかわらず、GUI内に記載され
たアプリケーションはvSまたはUNIX下で実行でき
、アプリケーションは2つのオペレーションシステムに
対する特徴事項は使用されない。したがって、非使用は
GUIユーザによってVSマルチスレートを作成しなけ
ればならず、非使用はUNIX割り込みを作成しなけれ
ばならない。比較において、アプリケーションは単一メ
インタスクにより記載されねばならず、割り込み又はイ
ベントはBUIフレームワーク内のイベント処理者によ
り処理されなければならない。ネットワーク通信の如き
“サービス”書込みアプリケーションにおいては、資源
の使用実時間が他のメツセージの処理により作成され間
イベント待機のために多(の時間がペンドされるので、
単一処理内で多くのアイテムが並列に処理されることが
尤も好ましい。GUIはこの要求を処理でき且つ基礎を
なすオペレーションシステムにかかわらず同じである環
境を与える。マルチメツセージを効率的に処理するため
に資源を用いる公知のアプリケーションパッケージはあ
るオペレーションシステムに特有のものである。上述の
通信サーバーシステム内にGUIがどのように使用され
るかの例はこの記載の14章に記載される。
たアプリケーションはvSまたはUNIX下で実行でき
、アプリケーションは2つのオペレーションシステムに
対する特徴事項は使用されない。したがって、非使用は
GUIユーザによってVSマルチスレートを作成しなけ
ればならず、非使用はUNIX割り込みを作成しなけれ
ばならない。比較において、アプリケーションは単一メ
インタスクにより記載されねばならず、割り込み又はイ
ベントはBUIフレームワーク内のイベント処理者によ
り処理されなければならない。ネットワーク通信の如き
“サービス”書込みアプリケーションにおいては、資源
の使用実時間が他のメツセージの処理により作成され間
イベント待機のために多(の時間がペンドされるので、
単一処理内で多くのアイテムが並列に処理されることが
尤も好ましい。GUIはこの要求を処理でき且つ基礎を
なすオペレーションシステムにかかわらず同じである環
境を与える。マルチメツセージを効率的に処理するため
に資源を用いる公知のアプリケーションパッケージはあ
るオペレーションシステムに特有のものである。上述の
通信サーバーシステム内にGUIがどのように使用され
るかの例はこの記載の14章に記載される。
1.3 用語法
GUIはサービスを与える為の1組のプログラムにより
記載されたライブラリとサービスの使用を作る為に異な
るプログラムで記載されたユーザコードとの間のインタ
ーフェースを与える。GUIを用いるライブラリコード
はGUI−Conformant 5ervice
Provider (GCSP)と呼ばれる。該ユー
ザコードは単にUserと呼ばれる。この記載を通して
、GUIにより与えられたルーチンは開始“gut”(
例えば、gui 5chedule)により示される
。GCSPにより与えられたルーチンは開始“GCSP
−”で示され、Userにより記載されたルーチンは“
user−”で始まる。
記載されたライブラリとサービスの使用を作る為に異な
るプログラムで記載されたユーザコードとの間のインタ
ーフェースを与える。GUIを用いるライブラリコード
はGUI−Conformant 5ervice
Provider (GCSP)と呼ばれる。該ユー
ザコードは単にUserと呼ばれる。この記載を通して
、GUIにより与えられたルーチンは開始“gut”(
例えば、gui 5chedule)により示される
。GCSPにより与えられたルーチンは開始“GCSP
−”で示され、Userにより記載されたルーチンは“
user−”で始まる。
以下は本記載で使用されたタームのリストである。
Pend その処理パスが外部イベントを待つ間に停
止になるならルーチンをペンドす る。例えば、多くの■Sシステム呼出 は該呼出がVSバス上で実行される間 呼出タスクをペンドする。
止になるならルーチンをペンドす る。例えば、多くの■Sシステム呼出 は該呼出がVSバス上で実行される間 呼出タスクをペンドする。
Unpended 待機外部イベントがペンドさ
れない間ペンドしないルーチン。
れない間ペンドしないルーチン。
Ta5k 他の処理実行スレートから論理的に分離さ
れた処理のスレート/ Main Ta5k プロセス中のメイン処理ス
レート Path 他の処理の実行スレートから物理的に分離
された処理のスレート。Path はマルチVS−Taskの場合の如き Parallelまたは割り込みレベ ルバス且つベースレベルパスの場合の 如きNe5tedである。
れた処理のスレート/ Main Ta5k プロセス中のメイン処理ス
レート Path 他の処理の実行スレートから物理的に分離
された処理のスレート。Path はマルチVS−Taskの場合の如き Parallelまたは割り込みレベ ルバス且つベースレベルパスの場合の 如きNe5tedである。
VS−Task 物理的にスケジュールされた構成要
素であるパスはAO8/VSオペ レテイング・システム下で?TASK システム続出により作られる。
素であるパスはAO8/VSオペ レテイング・システム下で?TASK システム続出により作られる。
GCSP GUI Comformant 5e
rvice Prpvider GU■規則および
フォーマットを一致させ るサービスを与えるライブラリ。
rvice Prpvider GU■規則および
フォーマットを一致させ るサービスを与えるライブラリ。
User GC8Pのサービスを要求するためにGU
I使用を成させるコード 第2章 環境 2.1 ハードウェア及びO8環境 GUIの目的はO8とハードウェア環境の適に依存させ
るインターフェースを与えることである。
I使用を成させるコード 第2章 環境 2.1 ハードウェア及びO8環境 GUIの目的はO8とハードウェア環境の適に依存させ
るインターフェースを与えることである。
これは、例えばMV上でAO8/VS、PC上(7)M
S−DOSおよびMVまたはたのハードウェア上のNU
IX下で作業することを意味する。MS−DOSおよび
UNIXは単一スレーデッドである。この記載は1つ以
上のメインタスクを有するマルチタスクおよびイベント
待機タスクについて述べいる。MS−DOSおよびUN
IX環境において、この用語法はベースレベル“メイン
タスク”と1対の割り込みレベルサービスルーチン“タ
スク“とを同一視する。GUIはユーザが幾つかの“メ
インタスク”を持つことを許すが、この特徴はMS−D
OSまたはUNIX下において有用でないことに注意を
要する。他のO8への将来のポートのための要求の可能
性のためにAO3/VS下でさえ唯一のメインタスクを
持つことが提案される。マルチタスクを持つ可能性はマ
ルチタスクされたプログラムの実行をGUIの使用の変
換するプログラムを補助することを意図する。物理的な
環境がどのようであろうと、GUIは単一アドレススペ
ースにおいて実行されるように強制されている。分離し
たアドレススペースにおける実行の存在、例えば2つ異
なるvSまたはUrlX処理、の間のインターフェース
を供給しない。
S−DOSおよびMVまたはたのハードウェア上のNU
IX下で作業することを意味する。MS−DOSおよび
UNIXは単一スレーデッドである。この記載は1つ以
上のメインタスクを有するマルチタスクおよびイベント
待機タスクについて述べいる。MS−DOSおよびUN
IX環境において、この用語法はベースレベル“メイン
タスク”と1対の割り込みレベルサービスルーチン“タ
スク“とを同一視する。GUIはユーザが幾つかの“メ
インタスク”を持つことを許すが、この特徴はMS−D
OSまたはUNIX下において有用でないことに注意を
要する。他のO8への将来のポートのための要求の可能
性のためにAO3/VS下でさえ唯一のメインタスクを
持つことが提案される。マルチタスクを持つ可能性はマ
ルチタスクされたプログラムの実行をGUIの使用の変
換するプログラムを補助することを意図する。物理的な
環境がどのようであろうと、GUIは単一アドレススペ
ースにおいて実行されるように強制されている。分離し
たアドレススペースにおける実行の存在、例えば2つ異
なるvSまたはUrlX処理、の間のインターフェース
を供給しない。
2.2 言語の条件
能率上の理由故に、一般的なGUIライブラリはC読出
規則(即ち、バリューウによる続出)で読出される様に
設計されている。GUIはこの同一の規則でユーザに適
用されたルーチンを読出す。
規則(即ち、バリューウによる続出)で読出される様に
設計されている。GUIはこの同一の規則でユーザに適
用されたルーチンを読出す。
AOS/VS下で、PL/lの如き言語は、GUIを使
用したCl1c出規則と両立性でない外部続出シーケン
ス(VS/EC8)とよばれる番地読出規則を使用する
。これはGUIはPL/Iから直接的に読出しができず
、PL/Iルーチンはguj 5chedule()
を用いてスケジュールできないことを意味する。必要が
生じれば、GUl(7)PL/IバージョンはCコード
の薄い層を各GUl側に加えることにより実施できる。
用したCl1c出規則と両立性でない外部続出シーケン
ス(VS/EC8)とよばれる番地読出規則を使用する
。これはGUIはPL/Iから直接的に読出しができず
、PL/Iルーチンはguj 5chedule()
を用いてスケジュールできないことを意味する。必要が
生じれば、GUl(7)PL/IバージョンはCコード
の薄い層を各GUl側に加えることにより実施できる。
1つの層は、パラメータを変換し、その後一般的なGU
Iルーチンを読出すEC8読出可能ルーチンを供給しえ
る。コードの他の層はgui 5cheduledO
であることを必要とするPL/Iルーチンを要求し、実
際的にスケジュールされその後にPL/Iルーチンを修
飾されたパラメータフォーメットで読出すCルーチンか
らなる。
Iルーチンを読出すEC8読出可能ルーチンを供給しえ
る。コードの他の層はgui 5cheduledO
であることを必要とするPL/Iルーチンを要求し、実
際的にスケジュールされその後にPL/Iルーチンを修
飾されたパラメータフォーメットで読出すCルーチンか
らなる。
第3章 ユーザのモデル
GUIユーザのモデルはペンドされない方法でサービス
提供者の要求を作らせことを要求する構成要素である。
提供者の要求を作らせことを要求する構成要素である。
要求の作成の為に、ユーザはそれが要求するサービスを
明瞭にするルーチンを読出す。要求を実施するのに要求
されたアクションは長いので、ユーザは即時に完了する
まで待機することを望まず、むしろ終了した時を知るこ
とを望む。これは、ペンドしない要求の基本的な内容で
ある。要求の完了をユーザに告げる方法はユーザのより
提供される通常GUIにより読出される通知ルーチンで
ある。
明瞭にするルーチンを読出す。要求を実施するのに要求
されたアクションは長いので、ユーザは即時に完了する
まで待機することを望まず、むしろ終了した時を知るこ
とを望む。これは、ペンドしない要求の基本的な内容で
ある。要求の完了をユーザに告げる方法はユーザのより
提供される通常GUIにより読出される通知ルーチンで
ある。
3.1 アンベンデド要求の例
第13図の描かれた以下の例を考察する。ユーザ130
はキーボードからの入力ラインの読取りを望むが、入力
がまだ利用できなければペンドすることを望まず、入力
の利用のための繰り返して赤なポールのも望まない。こ
の機能はGC3Pにより与えられるペンドしない要求に
より満足されえる。GC8Pライターは要求ルーチン1
31を与える。このルーチンは“GC8P get
1ineO” と呼ばれ、これは入力が利用出来る時
を読出すユーザ通知ルーチン137の引き数の如きアド
レスを取る。要求ルーチンはサービスを初期化しペンド
なしにリターンする。
はキーボードからの入力ラインの読取りを望むが、入力
がまだ利用できなければペンドすることを望まず、入力
の利用のための繰り返して赤なポールのも望まない。こ
の機能はGC3Pにより与えられるペンドしない要求に
より満足されえる。GC8Pライターは要求ルーチン1
31を与える。このルーチンは“GC8P get
1ineO” と呼ばれ、これは入力が利用出来る時
を読出すユーザ通知ルーチン137の引き数の如きアド
レスを取る。要求ルーチンはサービスを初期化しペンド
なしにリターンする。
要求がGC8P要求ルーチンにより初期化される多くの
方法がある: (1)ラインが利用可能になるまで、キーポ−ド割り込
みがある毎に入力文字をセーブする割り込みハンドラー
をセットアツプする。
方法がある: (1)ラインが利用可能になるまで、キーポ−ド割り込
みがある毎に入力文字をセーブする割り込みハンドラー
をセットアツプする。
(2)ペンドされた続出を行い、入力ラインが受信され
た時にメインプロセスを信号するプロセスを大量に生じ
る。
た時にメインプロセスを信号するプロセスを大量に生じ
る。
(3)ペンドされた続出を行い、入力が完了したときに
通知ルーチンを読出すタスクを大量に生じる。
通知ルーチンを読出すタスクを大量に生じる。
これらは可能性があり(1)は典型的なMS−DoS用
であり、(2) はUNIX用であり、(3)はMS用
である。
であり、(2) はUNIX用であり、(3)はMS用
である。
一度要求ルーチンがリターンすると、ユーザはそれが行
うでき他の処理132を実施できが、該処理はgui
runOに対する続出を含まなければならない。この
ユーザの為に確立された処理の2つの分離したスレート
があり、これは(1)メインタスクと(2)他のプロセ
スまたは分離したVS形式タスクにおける割り込みでレ
ベルでの処理により処理される要求処理タスク134で
ある。要求タスクが要求の完了を検出したとき(即ち、
135と示される様な入力ラインを受信した時)キッド
上のユーザの通知ルーチン137を要求結果(入力のラ
イン)で置き換える為にguischdule()を読
出す。138で示される様にgui runOが次に
読出されるとき通知ルーチンはキッドを切断しユーザ処
理タスクはそれが要求された入力のラインを得る。通知
ルーチンまたはジョブがキッドに置かれ、外されること
はべんりである。キッド上におかれたものは通知ルーチ
ンのアドレスとこのルーチンのための引き数であり、第
24図に説明される。第13図の場合には、引き数は入
力ラインの文字である。
うでき他の処理132を実施できが、該処理はgui
runOに対する続出を含まなければならない。この
ユーザの為に確立された処理の2つの分離したスレート
があり、これは(1)メインタスクと(2)他のプロセ
スまたは分離したVS形式タスクにおける割り込みでレ
ベルでの処理により処理される要求処理タスク134で
ある。要求タスクが要求の完了を検出したとき(即ち、
135と示される様な入力ラインを受信した時)キッド
上のユーザの通知ルーチン137を要求結果(入力のラ
イン)で置き換える為にguischdule()を読
出す。138で示される様にgui runOが次に
読出されるとき通知ルーチンはキッドを切断しユーザ処
理タスクはそれが要求された入力のラインを得る。通知
ルーチンまたはジョブがキッドに置かれ、外されること
はべんりである。キッド上におかれたものは通知ルーチ
ンのアドレスとこのルーチンのための引き数であり、第
24図に説明される。第13図の場合には、引き数は入
力ラインの文字である。
本例の全部はGUIなしに成就されえ、他のケースの場
合にはそう簡単でない。どのようなケースでも、GUI
は、使用されているオペレーテングシステムを独立させ
る方法の如き機構におけるGC8P−ライターとユーザ
ライターの両方を目的とするフレームワークを、供給す
る。
合にはそう簡単でない。どのようなケースでも、GUI
は、使用されているオペレーテングシステムを独立させ
る方法の如き機構におけるGC8P−ライターとユーザ
ライターの両方を目的とするフレームワークを、供給す
る。
第4章 機能性
この章は、ペンドされない環境をサポートするためにG
UIにより供給されたルーチンを記載することにより開
始する。その後で、ペンドされないインターフェースを
サポートするためにGC3Pの要求されたルーチンとG
USPユーザとを記載する。
UIにより供給されたルーチンを記載することにより開
始する。その後で、ペンドされないインターフェースを
サポートするためにGC3Pの要求されたルーチンとG
USPユーザとを記載する。
4、IGUI提供ルーチン
GUIのライブラリ部分(その用法を支配するルーチン
に対立する)は後時での実行用、任意ユーザルーチンの
スケジュール用の機構を与える。
に対立する)は後時での実行用、任意ユーザルーチンの
スケジュール用の機構を与える。
スケジュールされたルーチンの1つを使用した一般的な
タームはジョブである。GUIは、ジョブ(gui
5chedule)を待つためのルーチンと、ユーザが
これらのジョブを実行する準備するときに読出されるべ
きルーチン(gui run)を与える。付加的な柔
軟性の為に、GUIは、割り当て時間で彼らに関連する
異なる優先度を持つことができるマルチ待ち行列ジョブ
をサポートする。
タームはジョブである。GUIは、ジョブ(gui
5chedule)を待つためのルーチンと、ユーザが
これらのジョブを実行する準備するときに読出されるべ
きルーチン(gui run)を与える。付加的な柔
軟性の為に、GUIは、割り当て時間で彼らに関連する
異なる優先度を持つことができるマルチ待ち行列ジョブ
をサポートする。
4、 1. I GUI初期化 gui−init
ialise □このルーチンはパラメータを取らない
。他のGUlルーチンが読出される前に、それは各成分
(各GC3Pとユーザ)により続出去れねばならない。
ialise □このルーチンはパラメータを取らない
。他のGUlルーチンが読出される前に、それは各成分
(各GC3Pとユーザ)により続出去れねばならない。
412キュー割り当て
上述の如<、GUIはスケジュールされたジョブのマル
チ待ち行列を与える。これは、ユーザにジョブの相対優
先度を明瞭化させえ、他の論理的クラスから分離してい
る待ち行列上の論理的クラスを形成するジョブを訂正さ
せえる。各GUI待ち行列1jQUeue指標(QU
I D)を有し、このQUIDは、待ち行列が割り当て
られたときに、即ちgui割り当てgui(優先度、ユ
ーザーウェイクアップ キッド−ptr)の如く、GU
Iにより割り当てられる。
チ待ち行列を与える。これは、ユーザにジョブの相対優
先度を明瞭化させえ、他の論理的クラスから分離してい
る待ち行列上の論理的クラスを形成するジョブを訂正さ
せえる。各GUI待ち行列1jQUeue指標(QU
I D)を有し、このQUIDは、待ち行列が割り当て
られたときに、即ちgui割り当てgui(優先度、ユ
ーザーウェイクアップ キッド−ptr)の如く、GU
Iにより割り当てられる。
この続出の為のパラメータは以下の通りである。
*priority −他の待ち行列に関連し、この
待ち行列と外れたジョブ実行用の優先度を明示する。
待ち行列と外れたジョブ実行用の優先度を明示する。
*user wakeup −この待ち行列上で実
行される得るジョブがあるときはいつでもGUIが読出
すユーザの与えられたルーチンを任意的に明示する。
行される得るジョブがあるときはいつでもGUIが読出
すユーザの与えられたルーチンを任意的に明示する。
*quid ptr −GUIはこの待ち行列に関
連した待ち行列指標によってこのパラメータ内を満たす
。
連した待ち行列指標によってこのパラメータ内を満たす
。
割り当てられた各待ち行列はそれに割り当てられたパス
である親を有する。
である親を有する。
VS下で、上に説明された適応性の理由故にこれは提案
されないが、GUI待ち行列の割り当てが可能であるマ
ルチパス(VS−Ta s k s)が存在できる。単
一スレードオベレーテングシステム下で、メインスレー
トだけが待ち行列の割り当てるを許される(例えば、彼
らは割り込みレベルから割り当てされれない)。パスは
待ち行列上のジョブをスケジュールするが、親だけが待
ち行列からずれたジョブを実行できる。これは以降の“
gui runO”の項で述べられる。
されないが、GUI待ち行列の割り当てが可能であるマ
ルチパス(VS−Ta s k s)が存在できる。単
一スレードオベレーテングシステム下で、メインスレー
トだけが待ち行列の割り当てるを許される(例えば、彼
らは割り込みレベルから割り当てされれない)。パスは
待ち行列上のジョブをスケジュールするが、親だけが待
ち行列からずれたジョブを実行できる。これは以降の“
gui runO”の項で述べられる。
4.1.3 ジョブ・スケジューリングGUIは、特
定のタスクに対して(VSのために)、一定の引き数を
有する特定のルーチンがコールされるようにするため、
ユーザ及びGC3Pがコールできる次のようなルーチン
を与える:quj 5chedule (quid、
routine、argl、arg2.arg3.ar
gここで、引き数は次の通り・ *quid−rルーチン」がスケジュールされるべきキ
ュー *rout 1ne−GUIがコールすべきルーチンに
対するポインタ *argl・・・arg4−「ルーチン」をコールする
引き数 このGUIルーチンはベンドせず、このコールの結果、
GUIは、特定のキューのオウナーがqui run
をコールするとき、「ルーチン」をコールする。従って
、そのルーチンは次のようにコールされる: (*rout ine)(argl、arg2.arg
3.arg4、quid) rargNJパラメータはポインタ(MVに対して32
ビツト、PCに対して16または32ビツト)を含むほ
ど大きくすることができるが、GUIはそれらを通して
インダイレクトしない。従って、それらのパラメータは
、要求されるように整数またはポインタを通過させるの
に使用することができる。後者の場合、qui 5c
heduleのコーラは、スケジュールされたルーチン
が実際に実行されてしまうまで、そのポインタが妥当性
を維持することを確実にしなけれはならない。
定のタスクに対して(VSのために)、一定の引き数を
有する特定のルーチンがコールされるようにするため、
ユーザ及びGC3Pがコールできる次のようなルーチン
を与える:quj 5chedule (quid、
routine、argl、arg2.arg3.ar
gここで、引き数は次の通り・ *quid−rルーチン」がスケジュールされるべきキ
ュー *rout 1ne−GUIがコールすべきルーチンに
対するポインタ *argl・・・arg4−「ルーチン」をコールする
引き数 このGUIルーチンはベンドせず、このコールの結果、
GUIは、特定のキューのオウナーがqui run
をコールするとき、「ルーチン」をコールする。従って
、そのルーチンは次のようにコールされる: (*rout ine)(argl、arg2.arg
3.arg4、quid) rargNJパラメータはポインタ(MVに対して32
ビツト、PCに対して16または32ビツト)を含むほ
ど大きくすることができるが、GUIはそれらを通して
インダイレクトしない。従って、それらのパラメータは
、要求されるように整数またはポインタを通過させるの
に使用することができる。後者の場合、qui 5c
heduleのコーラは、スケジュールされたルーチン
が実際に実行されてしまうまで、そのポインタが妥当性
を維持することを確実にしなけれはならない。
GUIは、スタック間の引き数それ自体の値のみをコピ
ーし、それらがポイントする可能性のあるものについて
はコピーしない。rquidJは、ジョブがスケジュー
ルされるべき特定のGUIキューを識別する。これによ
って、スケジュールされるジョブの相対的優先度が制御
され、オウナーがqui runをコールするとき、
ジョブが実行されるシーケンスを決定される。複数のメ
イン・タスクを有するvS環境において、quidは、
また、ジョブが実行されるvSタスクの制御を行う。し
かし、これは推奨される構成ではない。
ーし、それらがポイントする可能性のあるものについて
はコピーしない。rquidJは、ジョブがスケジュー
ルされるべき特定のGUIキューを識別する。これによ
って、スケジュールされるジョブの相対的優先度が制御
され、オウナーがqui runをコールするとき、
ジョブが実行されるシーケンスを決定される。複数のメ
イン・タスクを有するvS環境において、quidは、
また、ジョブが実行されるvSタスクの制御を行う。し
かし、これは推奨される構成ではない。
4、 1.4 実行ジョブ
qui 5cheduleされたジョブをGUIが実
行できるようにするために、そのジョブが置かれたキュ
ーを所有するスレッドの制御を得なければならない。こ
の目的のため、GUIは、ユーザがメイン・スレッドか
らコール出来る次のようなルーチンを与え、そのスレッ
ドによって所有されたキューにスケジュールされたあら
ゆるジョブを実行する: qujrun(flag) ここで、引き数は次の通り: 本flag−このフラッグは実行すべきスケジュールさ
れたルーチンかない場合、GUIがスレッドをペンドす
べきか否かを示す。ジョブはコーリング・パス(rqu
i allocate quidOJに関する記載
参照)によって所有されるキューから優先度に基づいて
選択される。1つのキューにおいて、ジョブはFIFO
順に実行される。r’flagJがN0PENDにセッ
トされると、GUIは実行するルーチンのチエツクを行
い、もし動作可能状態にあるものなければ、直ちに戻る
。もし、実行するルーチンがあれば、GUIそれらのう
ちの1つを実行して、もどる。qui runOから
戻る値はジョブが実行されたか否かを示す。rflag
JがPENDにセットされる場合は、GUIは、実行す
る動作可能状態のルーチンがあるまで、コーリング・ス
レッドをペンドする。動作可能状態になったいずれかの
ルーチンを実行した後、GtJIはコーラをもう1度ペ
ンドする。
行できるようにするために、そのジョブが置かれたキュ
ーを所有するスレッドの制御を得なければならない。こ
の目的のため、GUIは、ユーザがメイン・スレッドか
らコール出来る次のようなルーチンを与え、そのスレッ
ドによって所有されたキューにスケジュールされたあら
ゆるジョブを実行する: qujrun(flag) ここで、引き数は次の通り: 本flag−このフラッグは実行すべきスケジュールさ
れたルーチンかない場合、GUIがスレッドをペンドす
べきか否かを示す。ジョブはコーリング・パス(rqu
i allocate quidOJに関する記載
参照)によって所有されるキューから優先度に基づいて
選択される。1つのキューにおいて、ジョブはFIFO
順に実行される。r’flagJがN0PENDにセッ
トされると、GUIは実行するルーチンのチエツクを行
い、もし動作可能状態にあるものなければ、直ちに戻る
。もし、実行するルーチンがあれば、GUIそれらのう
ちの1つを実行して、もどる。qui runOから
戻る値はジョブが実行されたか否かを示す。rflag
JがPENDにセットされる場合は、GUIは、実行す
る動作可能状態のルーチンがあるまで、コーリング・ス
レッドをペンドする。動作可能状態になったいずれかの
ルーチンを実行した後、GtJIはコーラをもう1度ペ
ンドする。
4、 1. 5 スレッド・コントロールペンドされ
る場合、QUIはqui runからはけっして戻ら
ないであろうから、ユーザは、必要であれば、スレッド
をリターンさせるためにコールできる次のような別のル
ーチンが設けられる: qujwakeup(quid) このw a k e u pルーチンはペンドしない。
る場合、QUIはqui runからはけっして戻ら
ないであろうから、ユーザは、必要であれば、スレッド
をリターンさせるためにコールできる次のような別のル
ーチンが設けられる: qujwakeup(quid) このw a k e u pルーチンはペンドしない。
従って、特定のquidで既に実行しているジョブを含
みあらゆるバスからコールすることができる。
みあらゆるバスからコールすることができる。
このコールはquidを所有しているパスを最初の機会
に(即ち、ペンドされた待機ジョブの場合は直ちに、そ
して実行中の場合はそのジョブが終了したとき)qui
runからリターンさせる。
に(即ち、ペンドされた待機ジョブの場合は直ちに、そ
して実行中の場合はそのジョブが終了したとき)qui
runからリターンさせる。
qui runのペンド/非ベント オプンヨンを使
用して、ユーザは、アイドルであればいつでもGUI内
でペンドするか、あるいはそれ自身のアイドル・ループ
から出るため通知をポーリングするかの選択をすること
ができる。付加的オブンヨンとして、ユーザがqui
run内でペンドすることを望まない場合、GUIの
ための次のようなwakeupルーチンを与え、そのス
レ・ソドによって所有されるquidにおけるジョブを
実行するため、GUIがスレッドの制御を必要とすると
きはいつでもコールすることができる:user−wa
keup(quid) このルーチンのアドレスは、割り当てられる各quid
のqui aiiOcate quidのパラメー
タとして明示される。このメカニズムは、ユーザに、実
行する通知をポーリングすのではなく、利用することが
できるときが告げられるオプションを与える。この場合
、GUIがI”user wakeupJをコールす
るときはいつでも、ユーザは、近い将来、即ちそうする
位置になったらすぐに特定のタスクを有するrqui
run」をコールしなければならない。
用して、ユーザは、アイドルであればいつでもGUI内
でペンドするか、あるいはそれ自身のアイドル・ループ
から出るため通知をポーリングするかの選択をすること
ができる。付加的オブンヨンとして、ユーザがqui
run内でペンドすることを望まない場合、GUIの
ための次のようなwakeupルーチンを与え、そのス
レ・ソドによって所有されるquidにおけるジョブを
実行するため、GUIがスレッドの制御を必要とすると
きはいつでもコールすることができる:user−wa
keup(quid) このルーチンのアドレスは、割り当てられる各quid
のqui aiiOcate quidのパラメー
タとして明示される。このメカニズムは、ユーザに、実
行する通知をポーリングすのではなく、利用することが
できるときが告げられるオプションを与える。この場合
、GUIがI”user wakeupJをコールす
るときはいつでも、ユーザは、近い将来、即ちそうする
位置になったらすぐに特定のタスクを有するrqui
run」をコールしなければならない。
理想的には、GUIは、qui 5chedu1eO
及びqui runOルーチンのみを使用してプログ
ラムされる。しかし、このオプションのwakeupル
ーチンは、ユーザが異なるタスク構造でそれらの要求に
最も都合の良い方法においてGUIを使用することを可
能にするので、有効である。例えば、qui wak
eupOは、ユーザ・インターフェース・プログラムを
作成するとき、例えばコミュニケーション・サーバー・
システムのディレクトリにエントリを追加するとき有効
である。特に、qui wakeupOは、(この例
では)ディレクトリ要求が終了するとき、GUI環境よ
り普通の環境(ユーザ・インターフェースを処理する)
に戻る場合、コールすることができる。
及びqui runOルーチンのみを使用してプログ
ラムされる。しかし、このオプションのwakeupル
ーチンは、ユーザが異なるタスク構造でそれらの要求に
最も都合の良い方法においてGUIを使用することを可
能にするので、有効である。例えば、qui wak
eupOは、ユーザ・インターフェース・プログラムを
作成するとき、例えばコミュニケーション・サーバー・
システムのディレクトリにエントリを追加するとき有効
である。特に、qui wakeupOは、(この例
では)ディレクトリ要求が終了するとき、GUI環境よ
り普通の環境(ユーザ・インターフェースを処理する)
に戻る場合、コールすることができる。
4.20C5P供給ルーチン
ここでは、GUIに対してペンドされないサービスを与
えるため、GCSPが供給しなければならないルーチン
について記載する。GCSPは、GCSPが与えるサー
ビスを開始するため、ユーザによってコールされるリク
エスト・ルーチンを与える。それらのリクエスト・ルー
チンは次のルールに従わなければならない: *ペンドしてはならない。
えるため、GCSPが供給しなければならないルーチン
について記載する。GCSPは、GCSPが与えるサー
ビスを開始するため、ユーザによってコールされるリク
エスト・ルーチンを与える。それらのリクエスト・ルー
チンは次のルールに従わなければならない: *ペンドしてはならない。
*リクエストが終了したとき、コールされるべきユーザ
供給通知ルーチンの準備をしなければならない。
供給通知ルーチンの準備をしなければならない。
スタック・ランナウェイの問題を防止し、リクエスト・
ルーチンがリターンする前にユーザの通知ルーチンがコ
ールされるのを回避するため、GCSPはリクエスト・
ルーチンから直接通知ルーチンをコールしてはならない
。しかし、GCSPがまえもってスケジュールされてい
たそれ自身のルーチンの1つから通知をコールすること
はさしつかえない。
ルーチンがリターンする前にユーザの通知ルーチンがコ
ールされるのを回避するため、GCSPはリクエスト・
ルーチンから直接通知ルーチンをコールしてはならない
。しかし、GCSPがまえもってスケジュールされてい
たそれ自身のルーチンの1つから通知をコールすること
はさしつかえない。
*要求された場合、それによってユーザが特定できるメ
カニズムを与えなければならず、通知ルーチンはそのq
uidにスケジュールされなければならない。GCSP
によって与えられたサービスがリクエスト/レスポンス
タイプから成るものでなければならない場合、典型的
リクエスト・ルーチンは次のような形式で良い: GCSjRequest(Nfunc、 quid、
argl、 −−−argN)ここで、引き数は次のと
おり: *Nfunc−コーラの通知ルーチンに対するポインタ *quid−rNfuncJがスケジュールサレるGU
Iquid *argl・・・argN−リクエストに特有の付加的
引き数 GCSPがそのように決定すれば、rNfuncj及び
rqu i dJを特定するのに好ましい他の任意のメ
カニズムを使用することができる(例えば、初期化時に
ハード・コード化あるいは決定される)。特に、GCS
Pはいつでも任意のユーザ・ルーチンがコールされるよ
うにスケジュールすることができるので、インターフェ
ースに対するインタラクンヨンは厳密にリクエスト/レ
スポンス形式から成る必要はない。
カニズムを与えなければならず、通知ルーチンはそのq
uidにスケジュールされなければならない。GCSP
によって与えられたサービスがリクエスト/レスポンス
タイプから成るものでなければならない場合、典型的
リクエスト・ルーチンは次のような形式で良い: GCSjRequest(Nfunc、 quid、
argl、 −−−argN)ここで、引き数は次のと
おり: *Nfunc−コーラの通知ルーチンに対するポインタ *quid−rNfuncJがスケジュールサレるGU
Iquid *argl・・・argN−リクエストに特有の付加的
引き数 GCSPがそのように決定すれば、rNfuncj及び
rqu i dJを特定するのに好ましい他の任意のメ
カニズムを使用することができる(例えば、初期化時に
ハード・コード化あるいは決定される)。特に、GCS
Pはいつでも任意のユーザ・ルーチンがコールされるよ
うにスケジュールすることができるので、インターフェ
ースに対するインタラクンヨンは厳密にリクエスト/レ
スポンス形式から成る必要はない。
4.3 ユーザ供給ルーチン
前述の如く、ユーザはすべてのリクエストに対して通知
ルーチンを与えることができる。それらは、ユーザにリ
クエストの完了を知らせるため、コールされるルーチン
である。ユーザがGC3Pリクエスト・ルーチンをコー
ルしてからある時間後、そのルーチンあるいは他のある
GCSPまたはGUIルーチンがユーザ通知ルーチン(
前述の例では、Nfunc)をコールする。この通知ル
ーチンは次の規則に従わなければない:*ペンドしては
ならない。
ルーチンを与えることができる。それらは、ユーザにリ
クエストの完了を知らせるため、コールされるルーチン
である。ユーザがGC3Pリクエスト・ルーチンをコー
ルしてからある時間後、そのルーチンあるいは他のある
GCSPまたはGUIルーチンがユーザ通知ルーチン(
前述の例では、Nfunc)をコールする。この通知ル
ーチンは次の規則に従わなければない:*ペンドしては
ならない。
*あらゆるバスにおいて、ccspで別に(例文ば、通
知がスケジュールされるquidを特定することによっ
て)アレンジされなければコールされる準備をしなけれ
ばならない。qui runOをコールしてはならな
い。スタック・ランナウェイの問題を防止するため、q
ui runに対するコールはネストされない。前述
のリクエスト・ルーチンの例を考えると、GCSPはG
UIを使用してユーザ通知ルーチンを直接的にスケジュ
ールし、そのルーチンは次のようにコールされるであろ
う: (本Nfunc)argl、arg2.arg3.ar
g4.quid)ここで、引き数は次の通り: *arg1. ・・・arg4−通知に特有の引き数 *qu i d−rNf un clがコールされてい
るGUIquid GCSPから直接的に、あるいはGCSPにリターンす
るスタックでコールされないので、Nfuncからのリ
ターン値を使用することはできない。
知がスケジュールされるquidを特定することによっ
て)アレンジされなければコールされる準備をしなけれ
ばならない。qui runOをコールしてはならな
い。スタック・ランナウェイの問題を防止するため、q
ui runに対するコールはネストされない。前述
のリクエスト・ルーチンの例を考えると、GCSPはG
UIを使用してユーザ通知ルーチンを直接的にスケジュ
ールし、そのルーチンは次のようにコールされるであろ
う: (本Nfunc)argl、arg2.arg3.ar
g4.quid)ここで、引き数は次の通り: *arg1. ・・・arg4−通知に特有の引き数 *qu i d−rNf un clがコールされてい
るGUIquid GCSPから直接的に、あるいはGCSPにリターンす
るスタックでコールされないので、Nfuncからのリ
ターン値を使用することはできない。
特定のquidにおいてコールされるNfuncに対し
てユーザがGCSPで準備していなければ、任意のバス
でコールすることができる。
てユーザがGCSPで準備していなければ、任意のバス
でコールすることができる。
4.4 スケジュールされた通知のキューイングqu
id毎に、GUIは、スケジュールされた順番でキュー
されたあらゆるジョブを実行することを保証する。別個
のquid間で強制されたシーケンスはない。特定の高
い優先度のquidで実行するようにスケジュールされ
たジョブがあり、ユーザがそのquidを所有するバス
てqui−runをコールする場合、GUrはそのジョ
ブを実行する。このことは、通知が他の低い優先度のq
uidで、あるいはより長い別のバスによって所有され
た高い優先度のquidにおいてさえ、キューされたか
もしれないこととは無関係に生じる。
id毎に、GUIは、スケジュールされた順番でキュー
されたあらゆるジョブを実行することを保証する。別個
のquid間で強制されたシーケンスはない。特定の高
い優先度のquidで実行するようにスケジュールされ
たジョブがあり、ユーザがそのquidを所有するバス
てqui−runをコールする場合、GUrはそのジョ
ブを実行する。このことは、通知が他の低い優先度のq
uidで、あるいはより長い別のバスによって所有され
た高い優先度のquidにおいてさえ、キューされたか
もしれないこととは無関係に生じる。
第5章 使用可能なGUIタスク・インタラクションの
例 ユーザは1以上の「メイン・タスク」を有しくここで、
メイン・タスクはユーザ処理を行うバスを意味するよう
に定義づけされる)、GUIquid(即ち、イベント
−ウェイト−タスク及びインタラブド−ハンドラを排除
)を所有することができる。メイン・タスクは、非常に
長い命令を実行し、ディスクI10の如き命令に対する
ペンドさえ可能であるが、可能な限りの無限待ち(例え
ば、ペンドされたタイムアウトされない端末l10)で
ペンドするのは好ましくない。そうしないと、通知をラ
ンするためGUIがメイン・タスクを「Wake u
pJすることが不可能になる可能性があるので、全体的
GUI@境の重大な分裂を引き起こすかもしれない。
例 ユーザは1以上の「メイン・タスク」を有しくここで、
メイン・タスクはユーザ処理を行うバスを意味するよう
に定義づけされる)、GUIquid(即ち、イベント
−ウェイト−タスク及びインタラブド−ハンドラを排除
)を所有することができる。メイン・タスクは、非常に
長い命令を実行し、ディスクI10の如き命令に対する
ペンドさえ可能であるが、可能な限りの無限待ち(例え
ば、ペンドされたタイムアウトされない端末l10)で
ペンドするのは好ましくない。そうしないと、通知をラ
ンするためGUIがメイン・タスクを「Wake u
pJすることが不可能になる可能性があるので、全体的
GUI@境の重大な分裂を引き起こすかもしれない。
セクション4.1.5で説明したように、GUIによっ
て与えられ、qui runに対するコールの「フラ
グ」によって支持されるスレッド制御の基本的2つの方
法がある。このセクションは、これらのメカニズムの可
能な使用例を説明し、各々についてのインタータスク関
係を図示説明する。
て与えられ、qui runに対するコールの「フラ
グ」によって支持されるスレッド制御の基本的2つの方
法がある。このセクションは、これらのメカニズムの可
能な使用例を説明し、各々についてのインタータスク関
係を図示説明する。
この2つのメカニズムはアイドルの「ウェイト−ポイン
ト」の位置、GUI内か、ユーザ内かによって区別され
る。
ト」の位置、GUI内か、ユーザ内かによって区別され
る。
5、IGUIGUI内ト・ポイント
このメカニズムはGUIルーチンに対する次の2つのコ
ールによって支持される: *qui run (pend) *qui wakeup(quid)ユーザは、そ
れがアイドル中に、メイン・タスク・スレッドにおいて
選択されたペンド・オプションを有するqui ru
nをコールする。ジョブが使用可能になると、コーリン
グ・パスによって所有されるquidで、GUIはqu
i runからスケジュールされたルーチンをコール
する。ユーザがそのメイン・タスク・スレッドの制御を
回復することが必要な場合(それ自身の別のタスクある
いはGUI通知コールがそれのためのある作業をキュー
したことにより)、ユーザはqui−wakeupOを
コールすることができ、それがqui〜runをメイン
・タスクにできるだけ速くリターンさせる。もしユーザ
が、このようにして1つより多いメイン・タスクのスレ
ッドを制御することが必要な場合は、rquidJ引き
数を使用して所有パスを一義的に識別することができる
。
ールによって支持される: *qui run (pend) *qui wakeup(quid)ユーザは、そ
れがアイドル中に、メイン・タスク・スレッドにおいて
選択されたペンド・オプションを有するqui ru
nをコールする。ジョブが使用可能になると、コーリン
グ・パスによって所有されるquidで、GUIはqu
i runからスケジュールされたルーチンをコール
する。ユーザがそのメイン・タスク・スレッドの制御を
回復することが必要な場合(それ自身の別のタスクある
いはGUI通知コールがそれのためのある作業をキュー
したことにより)、ユーザはqui−wakeupOを
コールすることができ、それがqui〜runをメイン
・タスクにできるだけ速くリターンさせる。もしユーザ
が、このようにして1つより多いメイン・タスクのスレ
ッドを制御することが必要な場合は、rquidJ引き
数を使用して所有パスを一義的に識別することができる
。
第15図及び第16図は、第14図に示す約束事を使用
して、制御の流れ及びこのメカニズムのタスク・インタ
ラクションを図示する。第14図は、GC8Pルーチン
、USERルーチン及びGUlルーチンを表すために使
用される3つの異なる種類のボックスと、左、右及び下
方の軸の意味、即ち夫々CALL、RETURN及びT
IMEを表している。これらの図及び以下の説明は、た
った1つのメイン・タスクを仮定していることが注目す
べきである。しかし、この仮定は説明を簡単にするため
であり、それによって根本的メカニズムは影響されない
。
して、制御の流れ及びこのメカニズムのタスク・インタ
ラクションを図示する。第14図は、GC8Pルーチン
、USERルーチン及びGUlルーチンを表すために使
用される3つの異なる種類のボックスと、左、右及び下
方の軸の意味、即ち夫々CALL、RETURN及びT
IMEを表している。これらの図及び以下の説明は、た
った1つのメイン・タスクを仮定していることが注目す
べきである。しかし、この仮定は説明を簡単にするため
であり、それによって根本的メカニズムは影響されない
。
結果としてユーザ通知となるペンドされたqui u
n 第15図はペンドされたqui runOルーチンの
使用を示し、そのルーチンはこのタスクを実行するよう
にスケジュールされたGC5Pi知ルーチンをコールす
るGUIとなる。図面の上部から下方に進むのであるが
、ユーザはメイン・タスク・スレッド150に対するそ
れ自身の処理の一部を行うことによってスタートする。
n 第15図はペンドされたqui runOルーチンの
使用を示し、そのルーチンはこのタスクを実行するよう
にスケジュールされたGC5Pi知ルーチンをコールす
るGUIとなる。図面の上部から下方に進むのであるが
、ユーザはメイン・タスク・スレッド150に対するそ
れ自身の処理の一部を行うことによってスタートする。
ユーザ処理151の間、ユーザはGCSPリクエスト・
ルーチン(ここではGCSP Request153
として示される)に対するコール152を行う。このル
ーチンは、ある処理、たぶんあるアクティビティを開始
し、そしてリターンする。ユーザがアイドル中でなけれ
ば、GUIにメイン・タスク・スレッドの制御を与える
ため、ペンド・オプションを有するqui run
0155、即ちqui run (pend)をコー
ルする。qui run()の内部で、GUIはラン
する通知をチエツクし、それがないと仮定すると、qu
i 5cheduleまたはqui wakeup
によってボークされるのを待つ。ある時間後、GCSP
によって開始されたパス156は入来イベントを受ける
。イベントの簡単な例は、「キー押下コ、「プリンタ使
用可能」、「ディスク・ドライブ使用可能」等である。
ルーチン(ここではGCSP Request153
として示される)に対するコール152を行う。このル
ーチンは、ある処理、たぶんあるアクティビティを開始
し、そしてリターンする。ユーザがアイドル中でなけれ
ば、GUIにメイン・タスク・スレッドの制御を与える
ため、ペンド・オプションを有するqui run
0155、即ちqui run (pend)をコー
ルする。qui run()の内部で、GUIはラン
する通知をチエツクし、それがないと仮定すると、qu
i 5cheduleまたはqui wakeup
によってボークされるのを待つ。ある時間後、GCSP
によって開始されたパス156は入来イベントを受ける
。イベントの簡単な例は、「キー押下コ、「プリンタ使
用可能」、「ディスク・ドライブ使用可能」等である。
コミュニケーション・サーバ・システムの場合の他の例
は、「メツセージ入来」、「ネットワーク使用可能」、
「ネットワークが送信要求」等である。それのほかには
、イベントはIPCである可能性がある。パス156は
、イベント(157)を取り扱い、GC3Pリクエスト
であることから現在メイン・タスクで実行する通知を有
することを知っている。従って、実行すべきルーチンを
キューアップするqui−schedule158をコ
ールし、インタータスク・メツセージをメイン・タスク
に送り、このタスクは依然としてインサイドqui
runOを待っている。そのイベントに対する責任をメ
イン・タスクに渡してしまうと、qui 5chec
luleはGC8Pイベント・ハンドラに戻り、そのハ
ンドラは別のイベントを待つことになる。
は、「メツセージ入来」、「ネットワーク使用可能」、
「ネットワークが送信要求」等である。それのほかには
、イベントはIPCである可能性がある。パス156は
、イベント(157)を取り扱い、GC3Pリクエスト
であることから現在メイン・タスクで実行する通知を有
することを知っている。従って、実行すべきルーチンを
キューアップするqui−schedule158をコ
ールし、インタータスク・メツセージをメイン・タスク
に送り、このタスクは依然としてインサイドqui
runOを待っている。そのイベントに対する責任をメ
イン・タスクに渡してしまうと、qui 5chec
luleはGC8Pイベント・ハンドラに戻り、そのハ
ンドラは別のイベントを待つことになる。
メイン・タスクはここでqui run内でウェーク
・アップし、所有のquidのなかに実行する通知がな
いかを見て、スケジュールされたコールのためGC3P
通知ルーチン159をコールする。通知が一旦リターン
すると、qui runOは再びボークされるのを待
つことに戻る(155′) qui wakeupによって割り込まれるベンドさ
れたqui run 第16図は、メイン・タスク・スレッドの制御を回復す
るため別のパスのユーザがqui runをコールし
ながら、メイン・パス内のqui−run (pend
)160の使用を示す。メイン・タスクがアイドル期間
にある間qui run□をコールすると、別のパス
はあるイベントを受け、その処理161はユーザにその
メイン・タスクがペンドされたqui runOを中
止させることを要求する。
・アップし、所有のquidのなかに実行する通知がな
いかを見て、スケジュールされたコールのためGC3P
通知ルーチン159をコールする。通知が一旦リターン
すると、qui runOは再びボークされるのを待
つことに戻る(155′) qui wakeupによって割り込まれるベンドさ
れたqui run 第16図は、メイン・タスク・スレッドの制御を回復す
るため別のパスのユーザがqui runをコールし
ながら、メイン・パス内のqui−run (pend
)160の使用を示す。メイン・タスクがアイドル期間
にある間qui run□をコールすると、別のパス
はあるイベントを受け、その処理161はユーザにその
メイン・タスクがペンドされたqui runOを中
止させることを要求する。
この別のパス(これは、ユーザ通知ルーチンを実行する
GUI待ちタスクあるいは別のユーザ・パスであるかも
しれない)は、qui wakeupOをコールし、
GUIをしてメイン・スレッドを解放させ、qui
runOからリターンする。ここで、ユーザは、メイン
・スレッドで望む任意の処理163を自由に行うことが
できる。
GUI待ちタスクあるいは別のユーザ・パスであるかも
しれない)は、qui wakeupOをコールし、
GUIをしてメイン・スレッドを解放させ、qui
runOからリターンする。ここで、ユーザは、メイン
・スレッドで望む任意の処理163を自由に行うことが
できる。
その処理が完了すると、ユーザはアイドルになり、qu
i run()をもう1度コールする。
i run()をもう1度コールする。
5.2 ユーザ内の待ちポイント
このメカニズムは、ユーザ供給ルーチン及び非ベンド・
オプションqui runOルーチンによって作成さ
れる。
オプションqui runOルーチンによって作成さ
れる。
*user wakeup (quid)*qui
run (nopend)ユーザはそのメイン・タス
ク・アイドル・ループにおいて望むあらゆることを行う
ことができる。
run (nopend)ユーザはそのメイン・タス
ク・アイドル・ループにおいて望むあらゆることを行う
ことができる。
ユーザは周期的にqui runをポールしてスケジ
ュールされたコールがない場合ペンドすべきでないこと
を明示するか、あるいはGUIがスレッドの制御を望む
ことを示すのを待つことができる。
ュールされたコールがない場合ペンドすべきでないこと
を明示するか、あるいはGUIがスレッドの制御を望む
ことを示すのを待つことができる。
前者の場合については、第13図の例に例示されている
。後者の場合は、quidのオウナーがqui ru
nをコールすることを望むとき、GUIはuser
wakeup □ルーチンをコールする。メイン・スレ
ッドの制御をGUIに与えるため、ユーザは近い将来q
ui runOをコールしなければならない。典型的
には、GUIは1つのジョブを実行し、次にqui
runOからリターンする。
。後者の場合は、quidのオウナーがqui ru
nをコールすることを望むとき、GUIはuser
wakeup □ルーチンをコールする。メイン・スレ
ッドの制御をGUIに与えるため、ユーザは近い将来q
ui runOをコールしなければならない。典型的
には、GUIは1つのジョブを実行し、次にqui
runOからリターンする。
rquidJ引き数は1以上のメイン・スレッドの制御
を許容する。GUIが一定のquidにおいてスケジュ
ールされたジョブを実行するを欲するとき、user
wakeup Oをコールし、それはquidが割り
当てられたとき供給される。GUIは、ジョブがスケジ
ュールされたquidを所有するメイン・タスクのスレ
ッドにおいてそのジョブを実行するのみである。
を許容する。GUIが一定のquidにおいてスケジュ
ールされたジョブを実行するを欲するとき、user
wakeup Oをコールし、それはquidが割り
当てられたとき供給される。GUIは、ジョブがスケジ
ュールされたquidを所有するメイン・タスクのスレ
ッドにおいてそのジョブを実行するのみである。
user wakeupルーチンは、ここでは1つの
名前付ルーチンとして考慮されているが、コールする実
際のルーチンはqui allocate qui
d()コールに対するパラメータとして特定されること
を注意すべきである。これによって、ユーザが、異なる
GUIキューのため異なるwakeupルーチンを示す
ことができ、これは1つのプロセスにおいて複数の分離
されたユーザ・エンティティがある場合有効となる。
名前付ルーチンとして考慮されているが、コールする実
際のルーチンはqui allocate qui
d()コールに対するパラメータとして特定されること
を注意すべきである。これによって、ユーザが、異なる
GUIキューのため異なるwakeupルーチンを示す
ことができ、これは1つのプロセスにおいて複数の分離
されたユーザ・エンティティがある場合有効となる。
第17図は、qui runの非ペンド・バージョン
とuser wakeup □ルーチンを有するその
インタラクンヨシを示す。それは、ユーザがメイン・タ
スク・スレッドにおいてGC3P request
()170を行い、次に架空のアイドル・ループ171
に入る(周期的にUSer wakeupをチエツク
する手段を有し明示のアイドル・ループを有する実際の
必要性がない限り)ことを示している。
とuser wakeup □ルーチンを有するその
インタラクンヨシを示す。それは、ユーザがメイン・タ
スク・スレッドにおいてGC3P request
()170を行い、次に架空のアイドル・ループ171
に入る(周期的にUSer wakeupをチエツク
する手段を有し明示のアイドル・ループを有する実際の
必要性がない限り)ことを示している。
ある時間後、1つのイベントが到来し、GC3Pイベン
ト・ハンドラ172タスクを呼ぶ。このタスクはそのイ
ベントをサービスすることを開始し、そしてこの場合メ
イン・タスクにおいて実行する完了通知があることを発
見する。それによって、その通知を内部的にキューする
qui 5chedule173をコールし、そして
問題となっているquidのためのuser wak
eupルーチン174をコールする。
ト・ハンドラ172タスクを呼ぶ。このタスクはそのイ
ベントをサービスすることを開始し、そしてこの場合メ
イン・タスクにおいて実行する完了通知があることを発
見する。それによって、その通知を内部的にキューする
qui 5chedule173をコールし、そして
問題となっているquidのためのuser wak
eupルーチン174をコールする。
このユーザ供給ルーチンは、そのメイン・タスクのqu
i runをコールさせるある動作をする。このイン
ター・タスクの正確な形式は、ユーザのイッシューであ
る。user wakeupルーチンは次にサービス
・ルーチンに戻り、そのルーチンは次に別のイベントの
待機に戻る。近い将来のあるとき、ユーザのメイン・タ
スクはUSer wakeupによって送られるイン
ター・タスク・メツセージをピックアップし、その結果
メイン・タスク・スレッドの制御GUIに与えるためq
ui ’run 0175をコールする。
i runをコールさせるある動作をする。このイン
ター・タスクの正確な形式は、ユーザのイッシューであ
る。user wakeupルーチンは次にサービス
・ルーチンに戻り、そのルーチンは次に別のイベントの
待機に戻る。近い将来のあるとき、ユーザのメイン・タ
スクはUSer wakeupによって送られるイン
ター・タスク・メツセージをピックアップし、その結果
メイン・タスク・スレッドの制御GUIに与えるためq
ui ’run 0175をコールする。
qui run(’)において、GUIは、コールし
ているバスが所有しているquidにおいて実行すべき
ジョブを発見するまで、実行を待っているジョブのキュ
ーをスキャンする。発見すると、適切なユーザ通知ルー
チン176をコールする。
ているバスが所有しているquidにおいて実行すべき
ジョブを発見するまで、実行を待っているジョブのキュ
ーをスキャンする。発見すると、適切なユーザ通知ルー
チン176をコールする。
その通知ルーチンがリターンすると、GUIはその内部
的処理を終了し、次にqui runからリターンし
て、ユーザ177に制御を戻す。
的処理を終了し、次にqui runからリターンし
て、ユーザ177に制御を戻す。
明細書の浄書(内容に変更なし)
6 GUIタイマ
本章は、アンベンド・タイムド・イベント(unpen
ded timed events)をスヶジ、x −
1しするための機構を与えるジェネリック アンベンゾ
イド・タイマ・サービス(Generic Unpen
ded Ti1Ier 5ervice) (GLI
TS)を述べている。これはGUI周辺の集積部分では
ない、むしろ、それはGUIライブラリの一部としてし
ばしば供給されるGC8Pである。この特定サービスの
理解はGUI自体を理解するために必要でない。タイマ
・サービスは一連のGUTS供与のリクエスト・ルーチ
ン、及びユーザ供与の通知ルーチン用の制限を構成して
いる。
ded timed events)をスヶジ、x −
1しするための機構を与えるジェネリック アンベンゾ
イド・タイマ・サービス(Generic Unpen
ded Ti1Ier 5ervice) (GLI
TS)を述べている。これはGUI周辺の集積部分では
ない、むしろ、それはGUIライブラリの一部としてし
ばしば供給されるGC8Pである。この特定サービスの
理解はGUI自体を理解するために必要でない。タイマ
・サービスは一連のGUTS供与のリクエスト・ルーチ
ン、及びユーザ供与の通知ルーチン用の制限を構成して
いる。
6.1G[JTS供与にQルーチン
このセクションはタイマをスタート及びキャンセルする
ために、GUTSにより与えられるルーチンを述べてい
る。フォーマル・インターフェイスの明細は9章に述べ
られている。
ために、GUTSにより与えられるルーチンを述べてい
る。フォーマル・インターフェイスの明細は9章に述べ
られている。
6、 1. 1 gutsスタートタイマこのルーチ
ンは記入された遅延が経過した後にタイマをオフにする
ようスゲジュールするために呼び出される。それは、セ
クション4.1で述べているように汎用化されたGC3
Pリクエスト・ルーチン・フォーマットに従い、そして
次の引き数を行う。
ンは記入された遅延が経過した後にタイマをオフにする
ようスゲジュールするために呼び出される。それは、セ
クション4.1で述べているように汎用化されたGC3
Pリクエスト・ルーチン・フォーマットに従い、そして
次の引き数を行う。
* Nfunc−タイマが終了したときに呼び出される
なめ、ユーザの通知ルーチンへのポインタ。
なめ、ユーザの通知ルーチンへのポインタ。
* quicl−NfuncがスゲジュールされるG[
Jrキュー。
Jrキュー。
もし値NULL QUIDが特定されると、そのとき
通知が、満期を検出するパスがら直接呼び出されるであ
ろう(これはVsのもとての個々の仕事でありそしてU
NIX又はMS−DO3のもとての割込ハンドラである
ン。
通知が、満期を検出するパスがら直接呼び出されるであ
ろう(これはVsのもとての個々の仕事でありそしてU
NIX又はMS−DO3のもとての割込ハンドラである
ン。
* deIay−秒単位で、現在にrWi係する正の遅
延。
延。
* user ref−ユーザ参照(典型的にはいくつ
かのユーザ制御ブロックへのポインタ)。
かのユーザ制御ブロックへのポインタ)。
* tiger−name−ユーザ及びdUTsに対
し、このタイマを区別する番号。
し、このタイマを区別する番号。
* user argl−ユーザの利益のために、通知
ル−チンへ呼出しを戻す引き数。
ル−チンへ呼出しを戻す引き数。
* user−arg2−上述のような、別ノユーザ引
キ数。
キ数。
タイマの1例はuser−reference/lig
er−name対により唯一識別される。例えば、もし
ユーザがいくつかのネットワーク・プロトコルを与える
ならば、“use、r−ref ’は特定結合用の制御
ブロックへのポインタであり、そしてtiger〜na
iIe’は調時されるインベントを指示しても良い(例
えば、コネクション−タイムアウト、フレアータイムア
ウトなど)。
er−name対により唯一識別される。例えば、もし
ユーザがいくつかのネットワーク・プロトコルを与える
ならば、“use、r−ref ’は特定結合用の制御
ブロックへのポインタであり、そしてtiger〜na
iIe’は調時されるインベントを指示しても良い(例
えば、コネクション−タイムアウト、フレアータイムア
ウトなど)。
’ user−ref ’及び’time name’
は’user argl’と’ user−arg2’
に沿って、ユーザ通知ルーチン“Nfune”へのパラ
メータとして仕分けられるだろう。
は’user argl’と’ user−arg2’
に沿って、ユーザ通知ルーチン“Nfune”へのパラ
メータとして仕分けられるだろう。
GUTSタイマは1回オフ・イベントである。
タイマが経過し、そしてユーザの通知ルーチンがスゲジ
ュールされると、該タイマはもはや存在しない。もしユ
ーザがタイマに規則的間隔でオフすることを要求するな
らば、新しいタイマが通知ルーチンから新しいタイマが
開始されるべきである。
ュールされると、該タイマはもはや存在しない。もしユ
ーザがタイマに規則的間隔でオフすることを要求するな
らば、新しいタイマが通知ルーチンから新しいタイマが
開始されるべきである。
6、 1. 2 guts−cancel−タイマ〈
)このルーチンは前に開始したタイマをキャンセルする
ために呼出される。それは次の引き数を取る。
)このルーチンは前に開始したタイマをキャンセルする
ために呼出される。それは次の引き数を取る。
* user−ref−ユーザ参照、guts 5ta
rt−Linerへの呼出しを指定される。 、 * tiIIer−name−タイマ・ネイム、gu
ts−start−timerへの呼出しを指定される
。
rt−Linerへの呼出しを指定される。 、 * tiIIer−name−タイマ・ネイム、gu
ts−start−timerへの呼出しを指定される
。
* re+*ain−ptr −G U T Sはタ
イマがオフする前に残っている秒数でこのパラメータ中
に満ちる。
イマがオフする前に残っている秒数でこのパラメータ中
に満ちる。
6 、 1 、 3 guts eheek
jimer ()このルーチンはタイマがオフする前
にどのくらいの時間が残っているかをチエツクするため
に呼出される。それはgut3cancel−tige
r □と同じ引き数を取るがタイマはキャンセルされな
い。
jimer ()このルーチンはタイマがオフする前
にどのくらいの時間が残っているかをチエツクするため
に呼出される。それはgut3cancel−tige
r □と同じ引き数を取るがタイマはキャンセルされな
い。
6.2 ユーザ供与通知ルーチン
上述のように、guts−start−timerの呼
出者は。
出者は。
タイマが経過するときに呼出される通知ルーチン’Nf
unc’を与える。もし我々がこのルーチン’user
tiger−expired’ を呼出すならば、こ
のときそれは次のように呼ばれるだろう。user−t
imer−expired (user−ref、
Liner name、 user−argl
。
unc’を与える。もし我々がこのルーチン’user
tiger−expired’ を呼出すならば、こ
のときそれは次のように呼ばれるだろう。user−t
imer−expired (user−ref、
Liner name、 user−argl
。
user−arg2、quid) 、その引き数はgu
ts start−timerへの最初の呼出しで指定
されるものである。
ts start−timerへの最初の呼出しで指定
されるものである。
6.3 タイマ正確度
タイマ・サービスの正確度は、メモリ・コンテンション
を有しない通常の負荷されたMV上を動作しているとき
に、タイマの終期が意図された時間の+1秒内にスケジ
ュールされることであろう。
を有しない通常の負荷されたMV上を動作しているとき
に、タイマの終期が意図された時間の+1秒内にスケジ
ュールされることであろう。
しかし、GUTSが通知スケジュール動作用のGUIを
使用するから、通知が実行される正確な時間は現在スケ
ジュールされるGUI通知の数及びいかに早急にユーザ
がgujrunを呼出すかに依存する。
使用するから、通知が実行される正確な時間は現在スケ
ジュールされるGUI通知の数及びいかに早急にユーザ
がgujrunを呼出すかに依存する。
7 GUエイベント・ハンドラ
本章はGUIライブラリに含まれても良い別のGCSP
、即ちジェネリック・アンベンゾイド・イベント−ハン
ドラ・サービス(GUES)を述べている。タイマ・サ
ービスと似て、このサービスはGUI自体の集積部分で
ない、GCSPがイベント・ハンドラをセットすること
は、これらが開始する行動の完成を待つために、頻繁な
要請である。このようなハンドラは環境−特定(env
ir。
、即ちジェネリック・アンベンゾイド・イベント−ハン
ドラ・サービス(GUES)を述べている。タイマ・サ
ービスと似て、このサービスはGUI自体の集積部分で
ない、GCSPがイベント・ハンドラをセットすること
は、これらが開始する行動の完成を待つために、頻繁な
要請である。このようなハンドラは環境−特定(env
ir。
nment−specif ic )である。AO3/
VSのもとで、それらはVS型タスクでもよく、これに
対してUNIXのもとではそれらは明らかではない。
VSのもとで、それらはVS型タスクでもよく、これに
対してUNIXのもとではそれらは明らかではない。
この理由のため、そして多くのユーザが同じサービスを
要求するから、GUIは、ユーザから待ちタスクの詳細
を隠くそうとするイベント登録サービスを与える。明ら
かに、ユーザは待つべきイベントはどの種類であるかを
GUIに告げなければならない範囲まで、環境に気付く
であろうが、この気付きはインターフェイス呼出し上の
1つの型のイベントの選択に制限される。発生されたV
S様式のタスクの詳細、又は割込みベクトルの詳細、又
は基礎的な機構のすべてをユーザが知ることは必要ない
。
要求するから、GUIは、ユーザから待ちタスクの詳細
を隠くそうとするイベント登録サービスを与える。明ら
かに、ユーザは待つべきイベントはどの種類であるかを
GUIに告げなければならない範囲まで、環境に気付く
であろうが、この気付きはインターフェイス呼出し上の
1つの型のイベントの選択に制限される。発生されたV
S様式のタスクの詳細、又は割込みベクトルの詳細、又
は基礎的な機構のすべてをユーザが知ることは必要ない
。
このサービスの情況において、”ユーザはGUIユーザ
又は他のGC3Pでも良い、彼らはGUESが関係する
限り、両者が正に“ユーザである。
又は他のGC3Pでも良い、彼らはGUESが関係する
限り、両者が正に“ユーザである。
GUESはAO3/VS及びUNIXオペレーティング
・システムのもとでのみ役に立つ。MS−DOSハード
ウェア割込の受信に要求されるアクションはGLIES
のような一般のサービスによって取扱われるにはあまり
にも仕分けされている。
・システムのもとでのみ役に立つ。MS−DOSハード
ウェア割込の受信に要求されるアクションはGLIES
のような一般のサービスによって取扱われるにはあまり
にも仕分けされている。
この種類の機能性を要求するMS−DOSプログラムは
自らのアプリケーション−特有の割込みサービス・ルー
チンを書くであろう。これらのISRから、それらはア
クションが割込みを退けるために必要とすることを取る
ことができ、そしてアプリケーションの主要部分にイベ
ントを通すためにgujschedule □を呼出す
ことができる。
自らのアプリケーション−特有の割込みサービス・ルー
チンを書くであろう。これらのISRから、それらはア
クションが割込みを退けるために必要とすることを取る
ことができ、そしてアプリケーションの主要部分にイベ
ントを通すためにgujschedule □を呼出す
ことができる。
7.1GUES供与ルーチン
1クラスのイベントにおけるインターレストを登録する
ために、GLIIユーザはGUESルーチンを呼出す。
ために、GLIIユーザはGUESルーチンを呼出す。
gues 5ubscribe ()
このルーチンは次の引き数を取る。
* gu:d−その上のNfuncがスケジュールされ
るべきguid。
るべきguid。
* 1n−pars−この構造は加入されるイベント
の型の指示、及び特定の予約(例えば信号番号)に要求
される付加的パラメータを含む。
の型の指示、及び特定の予約(例えば信号番号)に要求
される付加的パラメータを含む。
* out pars −G U Tは予約id及びこ
の構造、型等のいくつかのイベント特定情報を戻す。
の構造、型等のいくつかのイベント特定情報を戻す。
GUESが到来イベントを受信するとき、それは該イベ
ント用の予約のキューを走査し、そして各々の通知ルー
チンをスケジュールする。所与のイベント用に、特に信
号の場合に、登録された1以上の通知ルーチンがあるこ
とに注意されたい。
ント用の予約のキューを走査し、そして各々の通知ルー
チンをスケジュールする。所与のイベント用に、特に信
号の場合に、登録された1以上の通知ルーチンがあるこ
とに注意されたい。
GUESは、通知がイベントを受け取るか又は拒絶する
ことを認めるよりも、すべての冗長通知ルーチンを呼出
すアプローチを取るだろう、これはユーザ誤りによるイ
ベントの損失を少なくする。
ことを認めるよりも、すべての冗長通知ルーチンを呼出
すアプローチを取るだろう、これはユーザ誤りによるイ
ベントの損失を少なくする。
次のイベントはこれらの間で登録に役立つであろう。
* ?ST[;NL’5(AO3/VSにおいて)。
* ソフトウェア割込(UNIXにおいて信号(2>)
。
。
* チャイルド プロセス終了。
* AO3/VS接続区切り(GUESにより終了と
してシュミレートされる)。
してシュミレートされる)。
* Unix I10用意、セクション(2)により
指示されたように。
指示されたように。
これらのイベントの各々に要求される確実なパラメータ
はGUESインターフェイス仕様(第10章)において
仕分けされている。
はGUESインターフェイス仕様(第10章)において
仕分けされている。
7.2 ユーザ供与ルーチン
このサービスのユーザは通知ルーチンNf uncを与
えなければならない、もし我々がこのルーチンを’ u
ser−event−occurred’と呼ぶならば
、このときこの呼出しは次の形をもつ。
えなければならない、もし我々がこのルーチンを’ u
ser−event−occurred’と呼ぶならば
、このときこの呼出しは次の形をもつ。
user evenjoecurred (sub i
d、 event−type。
d、 event−type。
udata、 event−param quid)の
引き数は次のようである。
引き数は次のようである。
* 5ujid−4ues−subscribe呼出
しのGUESにより戻される予約id。
しのGUESにより戻される予約id。
* eventjype−gues−subscrib
e (>へ仕分けされるような、イベントの型。
e (>へ仕分けされるような、イベントの型。
* udata−gues−subscribeに)
へin parsにおいて仕分けされるようなユーザデ
ータ。
へin parsにおいて仕分けされるようなユーザデ
ータ。
* evenjparam−この引き数は通知されるイ
ベントへ特定の情報を伝送する。(例えば、喪失のため
にそれは終了したプロセスのP■D及び出口を含む)。
ベントへ特定の情報を伝送する。(例えば、喪失のため
にそれは終了したプロセスのP■D及び出口を含む)。
* quid−通知が実行されているG U I qu
id。
id。
再び、各イベント発生の確定パラメータは第10章に仕
分けされる。
分けされる。
7.3 イベント概念及び警報
このセクションはGUF、Sイベント添え字の夫々と関
係する概念を述べ、そしてこれらの使用により暗示され
るいくっがの制限について警告する。
係する概念を述べ、そしてこれらの使用により暗示され
るいくっがの制限について警告する。
7.3.I AO3/VS?5IGNLイヘントコノ
添え字はGUEsユーザにAO8/VSFast I
PCs (?5IGNL)の受信と同時に通知されるこ
とを許す。
添え字はGUEsユーザにAO8/VSFast I
PCs (?5IGNL)の受信と同時に通知されるこ
とを許す。
GUESは、?WTSIG呼出しを行い続けることに従
事するすべての?5IGNL加入者により分担される信
号AO5/VSタスクを確立する。
事するすべての?5IGNL加入者により分担される信
号AO5/VSタスクを確立する。
このタスクのUnique Ta5K rDはgues
5ubscribe呼出しからの出力として各加入者
に戻され、そして?5IGNLシステム呼出しへのパラ
メータとしてアプリケーションにより使用され得る。
5ubscribe呼出しからの出力として各加入者
に戻され、そして?5IGNLシステム呼出しへのパラ
メータとしてアプリケーションにより使用され得る。
?WTSIGタスクUIDを別のプロセスへ通過するこ
とにより、このGUESサービスは非直接データ伝送で
FastrPC機構を支持するために使用され得る。こ
れはデータ伝送用の分担されたメモリ機構との結合にお
いて又は?QNETのようなアンベンドなKerne
lサービスに対するインターフェースにおいて役立つ。
とにより、このGUESサービスは非直接データ伝送で
FastrPC機構を支持するために使用され得る。こ
れはデータ伝送用の分担されたメモリ機構との結合にお
いて又は?QNETのようなアンベンドなKerne
lサービスに対するインターフェースにおいて役立つ。
?5IGNLイベントに関係する2つの問題がある。
* 何らの確認がされることなく、あなたの70セスに
?5IGNLを送ることができる。
?5IGNLを送ることができる。
* ?5IGNLsは入れ子にしない、そこでもし十
分に速く処理されないならば失われても良い。
分に速く処理されないならば失われても良い。
次の警戒はこれらの問題を克服する。
ネ ?5IGNL通知はあなたのなめに意図されている
と決して仮定してはならない。それは別のGUES加入
者のためでも良く、又はPMGRにより送られても良く
、又は不注意に別のプロセスにより送られても良い。?
5IGNL通知は、いくつかのイベントが生じた指示と
して、そしてそれが実際に有するかを見い出すために使
用されるいくつかの他の手段として使用されるべきであ
る。例えば、キューは走査又はフラグチエツク動作を必
要としても良い。
と決して仮定してはならない。それは別のGUES加入
者のためでも良く、又はPMGRにより送られても良く
、又は不注意に別のプロセスにより送られても良い。?
5IGNL通知は、いくつかのイベントが生じた指示と
して、そしてそれが実際に有するかを見い出すために使
用されるいくつかの他の手段として使用されるべきであ
る。例えば、キューは走査又はフラグチエツク動作を必
要としても良い。
* あなたはすべての送られた?5IGNLのための通
知を得るであろうと仮定してはならない。
知を得るであろうと仮定してはならない。
通知が受信されるときはいつも、すべての未解決のワー
クがチエツクされるべきで(例えば、完全なキューのス
キャンがされる)、なされるべきワークの各ピースのた
めの1つの通知をあなたが入手すると仮定するよりむし
ろ良い。
クがチエツクされるべきで(例えば、完全なキューのス
キャンがされる)、なされるべきワークの各ピースのた
めの1つの通知をあなたが入手すると仮定するよりむし
ろ良い。
GUE’Sは、しかしながら、通知が実行を開始した後
に受信されるいくつから?S IGNLのための別の通
知をあなたに与えることを保証するであろう、そこで通
知の間に到着する?5IGNLに依ってワークが失われ
る情況はない。
に受信されるいくつから?S IGNLのための別の通
知をあなたに与えることを保証するであろう、そこで通
知の間に到着する?5IGNLに依ってワークが失われ
る情況はない。
7、3.2 Unix信号(2)イベントこの予約は
多重GUESユーザにUnix信号(2)イベントの受
信と同時に通知されることを許容する。
多重GUESユーザにUnix信号(2)イベントの受
信と同時に通知されることを許容する。
各加入者はGUESへ関心のある信号番号を通過し、そ
してGLIESは該信号のために、信号ハンドラ(信号
(2)を使用する)を確立する。各種信号はアプリケー
ションに役立つ、5IGUSR1とS IGUSR2信
号はAO5/ VS (Fast、IPC機構のように
)のもとで?S IGNLに対して同様な方法で使用さ
れ得る。これに対して5IGPOLLのような他の信号
はにerne lサービスにインターフェイスすること
に役立つ。
してGLIESは該信号のために、信号ハンドラ(信号
(2)を使用する)を確立する。各種信号はアプリケー
ションに役立つ、5IGUSR1とS IGUSR2信
号はAO5/ VS (Fast、IPC機構のように
)のもとで?S IGNLに対して同様な方法で使用さ
れ得る。これに対して5IGPOLLのような他の信号
はにerne lサービスにインターフェイスすること
に役立つ。
同じ警報及び警告は上述のAOS/VS?5IGNLに
関して適用する。付加的に、ユーザ自身の信号ハンドラ
は予想できない結果で、ALL加入者用のGUESハン
ドラとインターフェイスするから、ユーザは自らの信号
ハンドラを制限してはならない。
関して適用する。付加的に、ユーザ自身の信号ハンドラ
は予想できない結果で、ALL加入者用のGUESハン
ドラとインターフェイスするから、ユーザは自らの信号
ハンドラを制限してはならない。
GUTSはそのタイマサービスを支持するために内部に
この予約を使用するから、ユーザはSfGALRM信号
への加入をまた止めるべきである。
この予約を使用するから、ユーザはSfGALRM信号
への加入をまた止めるべきである。
アプリケーションはGUTSタイマを替わりに使用すべ
きである。
きである。
この予約はGLIESユーザにチャイルド・プロセス終
了、及びAO3/VSのために、カスタマ/サーバー接
続区切りを通知されることを許容する。各加入者は、終
了したプロセスのピット及び出口状態を特定す・る、各
死亡の通知を受ける。
了、及びAO3/VSのために、カスタマ/サーバー接
続区切りを通知されることを許容する。各加入者は、終
了したプロセスのピット及び出口状態を特定す・る、各
死亡の通知を受ける。
AO3/VSのもとで、GUESは終了メツセージ(?
SPTM)用のシステムボート上に繰り返しの?IRE
C’sをするために個々のタスクを確立する。ユーザは
GUESサービスを中断するだろうから、このボート上
に自らの?IREC’sをしてはならない、UNIXの
もとで、GUESはチャイルド終了につき通知されるた
めに、5IGCLDの信号番号で自らの信号(2)サー
ビスに加入する0通知が受けたときに、GUESは、す
べての終了したチャイルドのための終了情報を集めるた
めに、WNOHANGオプションで繰り返してウェイト
3(2)呼出しを行う、ユーザは、これはすべての加入
者用のGUESサービスを中断させるであろうので、自
らウェイト(2)又はウェイト3(2)を呼出してはな
らない。
SPTM)用のシステムボート上に繰り返しの?IRE
C’sをするために個々のタスクを確立する。ユーザは
GUESサービスを中断するだろうから、このボート上
に自らの?IREC’sをしてはならない、UNIXの
もとで、GUESはチャイルド終了につき通知されるた
めに、5IGCLDの信号番号で自らの信号(2)サー
ビスに加入する0通知が受けたときに、GUESは、す
べての終了したチャイルドのための終了情報を集めるた
めに、WNOHANGオプションで繰り返してウェイト
3(2)呼出しを行う、ユーザは、これはすべての加入
者用のGUESサービスを中断させるであろうので、自
らウェイト(2)又はウェイト3(2)を呼出してはな
らない。
7、3.4 Unixセレクト(2)イベントI10
条件が1つの特定された組のファイル記述子上に存在す
る時に通知されることを、この予約はUNIXユーザに
許容する。
条件が1つの特定された組のファイル記述子上に存在す
る時に通知されることを、この予約はUNIXユーザに
許容する。
unixセレクト(2)システム呼出しは3バイトアレ
イ引き数、readfds C) 、writefds
()及びexeeptfds ()を取る。これらの
アレイの夫々の内部で、各ビットは制限されたファイル
記述子を表わす、 readfds ()マスクは呼出
し人がリード(2)呼出しをすることに関心があるファ
イル記述子を記入し、writefds ()マスクは
呼出し人がライト(2)呼出しをすることに関心がある
ファイル記述子を記入し、そしてexeeptfds
(〕マスクは呼出し人が例外条件に関心があるファイル
記述子を記入する。
イ引き数、readfds C) 、writefds
()及びexeeptfds ()を取る。これらの
アレイの夫々の内部で、各ビットは制限されたファイル
記述子を表わす、 readfds ()マスクは呼出
し人がリード(2)呼出しをすることに関心があるファ
イル記述子を記入し、writefds ()マスクは
呼出し人がライト(2)呼出しをすることに関心がある
ファイル記述子を記入し、そしてexeeptfds
(〕マスクは呼出し人が例外条件に関心があるファイル
記述子を記入する。
セレクト(2)呼出しは、入力において仕分けされた条
件のいずれが実際に存在するかを指示する情報を戻す(
即ち、仕分けられた記述子のいずれが読出し、書込み用
に準備され又はそれらに例外を有するか)、仕分けられ
た条件の1つが存在し又はそれがボールされ得るまで、
呼出しは未処理にされることができる。
件のいずれが実際に存在するかを指示する情報を戻す(
即ち、仕分けられた記述子のいずれが読出し、書込み用
に準備され又はそれらに例外を有するか)、仕分けられ
た条件の1つが存在し又はそれがボールされ得るまで、
呼出しは未処理にされることができる。
GUESは、未決のgui−run Oからの実行する
ジョブがないときはいつも、未決の方法でセレクト(2
)を呼出すためにgujrun □のために整備する。
ジョブがないときはいつも、未決の方法でセレクト(2
)を呼出すためにgujrun □のために整備する。
また、アンベンドのgujrun □は、GUI内にす
でに列をなすジョブがないときはいつもボールされたセ
レクト(2)呼出しをするだろう。
でに列をなすジョブがないときはいつもボールされたセ
レクト(2)呼出しをするだろう。
GUESセレクトサービスへの各加入者は、セレクト(
2)マスクによく似ている1組のファイル記述子マスク
を有する。加入者は彼/彼女GUES 5ELECT
MASK構造をHues−subscribeの中
へ通過し、そしてGUESはそれを記憶している。GU
ESはセレク−)(2)に仕分けするreadfds
() 、writefds ()及びexceptfd
s ()マスクはそれから全加入者のマスクを共にOR
することにより構成される。ここで彼/彼女GUES
5ELECT MARK中のビットを処理すること
により、加入者は彼/彼女が通知されることに関心のあ
るファイルの組から所要のファイル記述子をダイナミッ
クに加え又は除去することができる。
2)マスクによく似ている1組のファイル記述子マスク
を有する。加入者は彼/彼女GUES 5ELECT
MASK構造をHues−subscribeの中
へ通過し、そしてGUESはそれを記憶している。GU
ESはセレク−)(2)に仕分けするreadfds
() 、writefds ()及びexceptfd
s ()マスクはそれから全加入者のマスクを共にOR
することにより構成される。ここで彼/彼女GUES
5ELECT MARK中のビットを処理すること
により、加入者は彼/彼女が通知されることに関心のあ
るファイルの組から所要のファイル記述子をダイナミッ
クに加え又は除去することができる。
セレクト(2)呼出しがI10条件を指示するときはい
つも、GUESは、各加入者のセレクトマスクがその条
件で1以上の記述子を仕分けしている該各記述子用の単
一の通知をスケジュールするだろう、マスク上に条件を
もったファイルに現在関心のあることをその加入者のマ
スクが示している加入者のみが与えられた通知を受ける
だろう。
つも、GUESは、各加入者のセレクトマスクがその条
件で1以上の記述子を仕分けしている該各記述子用の単
一の通知をスケジュールするだろう、マスク上に条件を
もったファイルに現在関心のあることをその加入者のマ
スクが示している加入者のみが与えられた通知を受ける
だろう。
次の警報はこのサービスの使用者に適用する。
* 与えられたファイル記述子に関心のあるのは1Å以
上の加入者であっても良く、そこでいくつかの注意が通
知を取り扱うことに支払わなければならない1例えば、
もし2人の加入者が5TDINの上に可能である読取り
の関心を登録するために彼らのセレクトマスクをセット
するならば、そのとき有効に入力されるとき、彼らは夫
々呼出されるべき通知ルーチンを手に入れるだろう、も
し、最初の加入者が通知ルーチンからすべての有効な入
力を読出すならば、そしてそれから第2の加入者が読出
しを試みるならば、その読出しはおそらく永久に未処理
であろう。
上の加入者であっても良く、そこでいくつかの注意が通
知を取り扱うことに支払わなければならない1例えば、
もし2人の加入者が5TDINの上に可能である読取り
の関心を登録するために彼らのセレクトマスクをセット
するならば、そのとき有効に入力されるとき、彼らは夫
々呼出されるべき通知ルーチンを手に入れるだろう、も
し、最初の加入者が通知ルーチンからすべての有効な入
力を読出すならば、そしてそれから第2の加入者が読出
しを試みるならば、その読出しはおそらく永久に未処理
であろう。
周知のファイル記述子(STDINのような)を使用す
るときに、条件がなお存在することをチエツクするため
に、イベント通知から別のボールされたセレクト(2)
呼出しをすることが助言される。
るときに、条件がなお存在することをチエツクするため
に、イベント通知から別のボールされたセレクト(2)
呼出しをすることが助言される。
* 通知の1つがI10条件をクリアすること、又は別
にすべての加入者が彼らのセレクトマスク中のオフエン
デイングビットをクリアにすることは等しく重要である
。上記例において、いずれの通知も有効な入力を読み取
らずそして彼等両方が変更されてないセレクトマスクを
残しているならば、このときプロセスは、すべてのタイ
ムGUESがセレクト(2)を呼出すので、ハートルー
ズに移行し、I10可能を示し、そして加入者通知は再
びスケジュールされるであろう。
にすべての加入者が彼らのセレクトマスク中のオフエン
デイングビットをクリアにすることは等しく重要である
。上記例において、いずれの通知も有効な入力を読み取
らずそして彼等両方が変更されてないセレクトマスクを
残しているならば、このときプロセスは、すべてのタイ
ムGUESがセレクト(2)を呼出すので、ハートルー
ズに移行し、I10可能を示し、そして加入者通知は再
びスケジュールされるであろう。
本 もし加入者マスクのいずれかが現在開放されてない
ファイルを仕分けするならば、このときGUIはセレク
ト(2)から誤りを得てそしてプロセスを終了するであ
ろう、加入者はそこで彼等がファイルを閉じるときはい
つも彼等のセレクトマスクを注意深く修正しなければな
らない、また、もしファイルが多数のGUES加入者に
対して見えるならば、該ファイルを閉じる唯かは、他の
加入者がまた彼等のセレクトマスクを補正できるように
、該他の加入者に知らせるための機構を明らかにしなけ
ればならない。
ファイルを仕分けするならば、このときGUIはセレク
ト(2)から誤りを得てそしてプロセスを終了するであ
ろう、加入者はそこで彼等がファイルを閉じるときはい
つも彼等のセレクトマスクを注意深く修正しなければな
らない、また、もしファイルが多数のGUES加入者に
対して見えるならば、該ファイルを閉じる唯かは、他の
加入者がまた彼等のセレクトマスクを補正できるように
、該他の加入者に知らせるための機構を明らかにしなけ
ればならない。
GUESのみが上述された適切に制限されたポイントか
らセレクト(2)呼出しを行うことに注意されたい、特
に、GUESは、ユーザ通知が実行している開法してセ
レクト(2)呼出しをすることができないことに注意さ
れたいく単一ベースレベルパスのみであるから)。そし
てHui−runに)が呼出されている(又は戻されて
いる)ときはいつもユーザのセレクトマスクが有効であ
る限り、問題は生じないであろう。明らかに、この予約
は注意して使用されなければならず、しかしもし注意し
て使用すればそれは強力なサービスを与える。
らセレクト(2)呼出しを行うことに注意されたい、特
に、GUESは、ユーザ通知が実行している開法してセ
レクト(2)呼出しをすることができないことに注意さ
れたいく単一ベースレベルパスのみであるから)。そし
てHui−runに)が呼出されている(又は戻されて
いる)ときはいつもユーザのセレクトマスクが有効であ
る限り、問題は生じないであろう。明らかに、この予約
は注意して使用されなければならず、しかしもし注意し
て使用すればそれは強力なサービスを与える。
第8章 GUIインターフェース仕様
この章では、具体例としてのG、UIインターフェース
の好適なフオームを機能的に記述する。
の好適なフオームを機能的に記述する。
gui 1nitialise G U I環境
の初期化。
の初期化。
フォーマットgui−initialiseOこのルー
チンは、他のGUIルーチンが呼び出される前に各ライ
ブラリおよびメインアプリケーションによって呼び出さ
れねばならない。
チンは、他のGUIルーチンが呼び出される前に各ライ
ブラリおよびメインアプリケーションによって呼び出さ
れねばならない。
gui−allocate−quid
ジョブスケジューリングのためのキューの割り当て、お
よびその識別子への復帰。
よびその識別子への復帰。
フォーマット: gujallocate−quid
(priority、user−wakeup、 qu
id) パラメータ: prtorit7 この列にスケジュールされるジ
ップの相対的な優先関係を定義す る。
(priority、user−wakeup、 qu
id) パラメータ: prtorit7 この列にスケジュールされるジ
ップの相対的な優先関係を定義す る。
user wakeup もし指定される(no
n−NULL)ならば、ジョブがこ のqujdにスケジュールされる時は いつでも、このルーチンはGUIによって呼び出される
。
n−NULL)ならば、ジョブがこ のqujdにスケジュールされる時は いつでも、このルーチンはGUIによって呼び出される
。
quid GUIは、新しく割り当てられたキューの
ためにキュー識別子と共にこのパ ラメーターの中で対応する。
ためにキュー識別子と共にこのパ ラメーターの中で対応する。
このルーチンは、内部GUIキューを割り当て、このキ
ューの上でジョブはgui 5chedu1eOによ
りスケシールされる。このキューがらジョブを引き出す
ために、ユーザーは、同じスレッド(thread)(
VS−Task)において、gui runOを呼び
出さねばならず、これはそれ(キュー)を割り当ててい
る。もし“user wakeup”ルーチンが指定
されると、そのときこのルーチンは、ジョブがスケジュ
ールされるときはいつでも、それをスケジュールしたス
レッドにおいて呼び出されねばならない。
ューの上でジョブはgui 5chedu1eOによ
りスケシールされる。このキューがらジョブを引き出す
ために、ユーザーは、同じスレッド(thread)(
VS−Task)において、gui runOを呼び
出さねばならず、これはそれ(キュー)を割り当ててい
る。もし“user wakeup”ルーチンが指定
されると、そのときこのルーチンは、ジョブがスケジュ
ールされるときはいつでも、それをスケジュールしたス
レッドにおいて呼び出されねばならない。
ユーザーは、その後前記quidを割り当てたスレッド
の上でgui runを呼び出さねばならない。
の上でgui runを呼び出さねばならない。
gui schedule
指定のスレッドで実行するためのジョブのスケジュール
。
。
フォーマット: gujschedule(quid
、 routine、 argl、 arg2. ar
g3. arg4)パラメータ: quid その上でジョブがスケジュールされるべき
quido これは以前のコールからgui all
ocate quidヘリターンされるquidでな
け ればならない。
、 routine、 argl、 arg2. ar
g3. arg4)パラメータ: quid その上でジョブがスケジュールされるべき
quido これは以前のコールからgui all
ocate quidヘリターンされるquidでな
け ればならない。
routine コールがスケジュールされる機能
のアドレス。
のアドレス。
argl−arg4 スケジュールされたルーチン
が呼び出される引き数(argu ments)。
が呼び出される引き数(argu ments)。
特定のquid上で呼び出されるルーチンをスケジュー
ルする。このルーチンは、ユーザーがquidを割り当
てたスレッドからgui runを呼び出したとき、
(指定された引き数と共に)呼び出される。GUIは、
4つのINT32s (arg−arg4)をそのまま
通過してスケジュールされたルーチンへ行く。スケジュ
ーリングとスケジュールされたルーチンとの間の引き数
により、これらのパラメータは、それらにより占められ
る全体のスペースが4つのINT32Sにより使用され
るそれよりも大きくない限り、何らかのサイズの何らか
の数のパラメータが使用され得る。事実上、GUIは、
スケジューラ−からスケジュールされたルーチンまでの
間にスタックの4つのダブルワードを複写し、このブロ
ックの解釈はユーザーに委ねられる。
ルする。このルーチンは、ユーザーがquidを割り当
てたスレッドからgui runを呼び出したとき、
(指定された引き数と共に)呼び出される。GUIは、
4つのINT32s (arg−arg4)をそのまま
通過してスケジュールされたルーチンへ行く。スケジュ
ーリングとスケジュールされたルーチンとの間の引き数
により、これらのパラメータは、それらにより占められ
る全体のスペースが4つのINT32Sにより使用され
るそれよりも大きくない限り、何らかのサイズの何らか
の数のパラメータが使用され得る。事実上、GUIは、
スケジューラ−からスケジュールされたルーチンまでの
間にスタックの4つのダブルワードを複写し、このブロ
ックの解釈はユーザーに委ねられる。
gujrun
以前にスケジュールされたルーチンの実行。
フォーマット: gujrun(flag)パラメー
タ: flag すべてのジョブが実行の用意ができてい
ないときにコーラ−(calle r)が待つことを欲するかどうかの指 示。PENDまたはN0PENDへの セット。
タ: flag すべてのジョブが実行の用意ができてい
ないときにコーラ−(calle r)が待つことを欲するかどうかの指 示。PENDまたはN0PENDへの セット。
このルーチンは以前にスケジュールされたジョブを実行
させる。ジョブは呼び出しタスクにより割り当てられた
quidから優先順序にしたがって選択される。
させる。ジョブは呼び出しタスクにより割り当てられた
quidから優先順序にしたがって選択される。
もしGUI 0PTION N0PENDが選択さ
れると、GUIは、1つのジョブが実行された後か何ら
のジョブも利用されないときコーラ−に復帰する。
れると、GUIは、1つのジョブが実行された後か何ら
のジョブも利用されないときコーラ−に復帰する。
もLGUI 0PTION PEND!l(選択さ
れると、GUIは、ユーザーがgut wakeup
を呼び出すまで、復帰しない。GUIは、何らのジョブ
も準備されてないときはそのまま静止し、ジョブが利用
されるときはそれらを実行する。
れると、GUIは、ユーザーがgut wakeup
を呼び出すまで、復帰しない。GUIは、何らのジョブ
も準備されてないときはそのまま静止し、ジョブが利用
されるときはそれらを実行する。
gui−vakeup
ベンドされたgui runを復帰させる。
フォーマット: gujwakeup(quid)パ
ラメータ: quid quid”を有するスレッドが起動され
るべきものであることを指定す る、 ユーザーは、ペンドオブシタンと共にgutrunを呼
び出すスレッドを発生し、それが次のジョブの実行を終
了するとき復帰するために、この機能を呼び出す。指定
された“quid”は起動されるスレッドが有していな
ければならない。
ラメータ: quid quid”を有するスレッドが起動され
るべきものであることを指定す る、 ユーザーは、ペンドオブシタンと共にgutrunを呼
び出すスレッドを発生し、それが次のジョブの実行を終
了するとき復帰するために、この機能を呼び出す。指定
された“quid”は起動されるスレッドが有していな
ければならない。
もしスレッドが現在ジョブの実行を待ちでいるときは、
それは直ちに復帰する。もしそれが現在gui ru
nO内に全くないときは、guirunOへの次の呼び
出しは直ちに復帰される。
それは直ちに復帰する。もしそれが現在gui ru
nO内に全くないときは、guirunOへの次の呼び
出しは直ちに復帰される。
ルーチンはまた、ジョブをその上にスケジュールするこ
となしに、quidが変化することをチエツクするため
に提供される。これはG C’S P sのために有益
であり、GCPSsは、ユーザーによりサービス要求ル
ーチン内ヘバスされたquidが変化することをチエツ
クするために使用し得る。
となしに、quidが変化することをチエツクするため
に提供される。これはG C’S P sのために有益
であり、GCPSsは、ユーザーによりサービス要求ル
ーチン内ヘバスされたquidが変化することをチエツ
クするために使用し得る。
これは、その処理の後に、GCPSが、そのquidが
無効でありユーザーにしらせることができないことを発
見するのを妨げる。
無効でありユーザーにしらせることができないことを発
見するのを妨げる。
ユーザーはまた、gui 5cheduleのユーザ
ーであるジョブの連続呼び出しのために、ジョブがgu
i 5cheduleへの呼び出しと共にスケジュー
ルされるとき指定される引き数と共に、またジョブがス
ケジュールされるquidと共に、user job
スケジュールド・ルーチンを提供する。
ーであるジョブの連続呼び出しのために、ジョブがgu
i 5cheduleへの呼び出しと共にスケジュー
ルされるとき指定される引き数と共に、またジョブがス
ケジュールされるquidと共に、user job
スケジュールド・ルーチンを提供する。
ユーザーは、ジョブをリスケジュールするために、同じ
quidで、あるいはもしそれがguirunOからの
復帰を実行するスレッドを欲するなら、gui wa
keupへの呼び出しで、quidを使用する。
quidで、あるいはもしそれがguirunOからの
復帰を実行するスレッドを欲するなら、gui wa
keupへの呼び出しで、quidを使用する。
第9章 GUT S インターフェース仕様この章で
は、GUTSインターフェースの1例の機能的な記述を
提供する。
は、GUTSインターフェースの1例の機能的な記述を
提供する。
guts−initialise G U T Sラ
イブラリの初期化このルーチンは、他のGUTSルーチ
ンが呼び出される前に各コンポーネントにより呼び出さ
れる。最初の初期化のほかはみな、 GUTSによって
無視される。
イブラリの初期化このルーチンは、他のGUTSルーチ
ンが呼び出される前に各コンポーネントにより呼び出さ
れる。最初の初期化のほかはみな、 GUTSによって
無視される。
guts 5tart tiIIer G CS
PはGUTSタイマの開始を要求する。
PはGUTSタイマの開始を要求する。
フォーマット guts start−timer
(nfunc、 quid。
(nfunc、 quid。
delay、 uargl、 uarg2)パラメータ
。
。
nfunc これはユーザー通知ルーチンであり、
これはタイマが終了したときGL″TSによってスケジ
ュールされる。
これはタイマが終了したときGL″TSによってスケジ
ュールされる。
quid これはタイマが終了したとき“nfun
C”がスケジュールされるqui dである。
C”がスケジュールされるqui dである。
delay タイマが終了し“nfunc”がGU
TSによってスケジュールされる 前に経過せねばならない秒の数。
TSによってスケジュールされる 前に経過せねばならない秒の数。
uargl このパラメータは、 通知ルーチンで
ユーザーへ返される。
ユーザーへ返される。
uarg2 uarglと同様。
このルーチンは、ワンスオフタイマイベント(once
−off timer event)を開始させる
ために呼び出される。“delay”秒においてタイマ
が終了したとき、CUTSはユーザー通知をスケジュー
ルし、それがgui−runOl例えば(*nfunc
) (uargl、uarg2.quid)から呼
び出すレル。
−off timer event)を開始させる
ために呼び出される。“delay”秒においてタイマ
が終了したとき、CUTSはユーザー通知をスケジュー
ルし、それがgui−runOl例えば(*nfunc
) (uargl、uarg2.quid)から呼
び出すレル。
他のパラメータは単一のタイマをユニークに識別するた
めに使用される。
めに使用される。
GUTSを使用する幾つかの存在の間における特徴を確
保する良い道は、“user ref”パラメータの
ための制御ブロックのポインタを使用することである。
保する良い道は、“user ref”パラメータの
ための制御ブロックのポインタを使用することである。
前記制御ブロックが割り当てられたままでいる限り、他
の存在が同じアドレスでメモリに割り当てられることは
なく、したがって、“user ref″は特有のも
のである。
の存在が同じアドレスでメモリに割り当てられることは
なく、したがって、“user ref″は特有のも
のである。
このアプローチはまた、調節される操作の配置は単純な
ことであることを意味している。
ことであることを意味している。
もし規則的に繰り返すタイマが要求されるときは、同じ
(または異なる)名前のタイマは、通知ルーチンからス
ケジュールされ、その都度タイマは終了する。
(または異なる)名前のタイマは、通知ルーチンからス
ケジュールされ、その都度タイマは終了する。
guts−cancel−timer
未決定の(outstanding)タイマのキャンセ
ル フォーマット: guts cancel−time
r(identifiers。
ル フォーマット: guts cancel−time
r(identifiers。
timeleft)
パラメータ:
1dentifiers タイマをユニークに識別
する。
する。
timeleft タイマが見付けられうまくキャ
ンセルされたとき、GUTSはタ イマが終了する前のままの時間量に復 帰する。
ンセルされたとき、GUTSはタ イマが終了する前のままの時間量に復 帰する。
このルーチンは、guts 5tart time
rにより以前にスタートした未決定のタイマをキャンセ
ルするために呼び出す事ができる。これは、もし、例え
ば計られたイベントが正常に終了するか中断されるとき
は、有益である。
rにより以前にスタートした未決定のタイマをキャンセ
ルするために呼び出す事ができる。これは、もし、例え
ば計られたイベントが正常に終了するか中断されるとき
は、有益である。
guts−check−tiger
タイマが終了する前にどのくらい長くそのままでいたか
を見るためのチエツク。
を見るためのチエツク。
フォーマット: guts−check−timer
(identifiers。
(identifiers。
timeleft)
パラメータ:
1dentifiers 上記のとおりtimel
eft GUTSはこのパラメータが終了する前の
時間に復帰する。
eft GUTSはこのパラメータが終了する前の
時間に復帰する。
このパラメータは、指定されたタイマが終了する前にど
のくらい残されたかをチエツクするために呼び出される
。これは、マネージメントアプリケーションへの情報を
報告するために使用される。
のくらい残されたかをチエツクするために呼び出される
。これは、マネージメントアプリケーションへの情報を
報告するために使用される。
第10章 GUES インターフェース仕様この章
では、GUESインターフェースの1例の機能的な記述
が提供される。
では、GUESインターフェースの1例の機能的な記述
が提供される。
gues 5ubscribeOG U E Sライブ
ラリの初期化。
ラリの初期化。
このルーチンは、他のGUESルーチンが呼び出される
前に各コンポーネントにより呼び出される。最初の初期
化の外は皆GUESにより無視される。
前に各コンポーネントにより呼び出される。最初の初期
化の外は皆GUESにより無視される。
gues 5ubscrfbeOG CS Pリクエス
ト。
ト。
イベントの分類について述べることを求める。
フォーマット: gues−subscribe(g
ui−quid、 in pars、 out−par
s) パラメータ: gui qu’id コーラ−がイベント受け取
りの通知を欲するGUI quidを指定する。
”In fJarS″で指定された通知ルーチンは、
イベントが受 け取られる毎にこのquidにスケジュールされる。
ui−quid、 in pars、 out−par
s) パラメータ: gui qu’id コーラ−がイベント受け取
りの通知を欲するGUI quidを指定する。
”In fJarS″で指定された通知ルーチンは、
イベントが受 け取られる毎にこのquidにスケジュールされる。
in pars 登録のためのパラメータを入力
する。下記の例参照。
する。下記の例参照。
out pars 登録のためのパラメータを出
力する。下記の例参照。
力する。下記の例参照。
ユーザーは、AO3/VS Fast IPC’5(
7STGNL) 、UNIX ソフトウェア割り込み
(信号)、またはチルド処理ターミネーンヨン(オビチ
ュアリイ)のような、外部イベントのインタレストを記
録するために呼び出される。
7STGNL) 、UNIX ソフトウェア割り込み
(信号)、またはチルド処理ターミネーンヨン(オビチ
ュアリイ)のような、外部イベントのインタレストを記
録するために呼び出される。
“in pars”パケットは、イベントの型、指定
されたイベントが受け取られて呼び出される通知ルーチ
ンのアドレス、さらにそのイベントを指定するパラメー
タを含む。
されたイベントが受け取られて呼び出される通知ルーチ
ンのアドレス、さらにそのイベントを指定するパラメー
タを含む。
“out pars”パケットは、記録されたイベン
トに関するGUESにより戻される情報を含む。
トに関するGUESにより戻される情報を含む。
これらのパケットが従うフオームの例:5ubscri
be to VS ?5IGNAL events g
ues−subscribeOcall : 入力パラメータ: typedef 5truct gu=es i
nars event type *GUES EVEN
T VS 5TGNL へのセット。
be to VS ?5IGNAL events g
ues−subscribeOcall : 入力パラメータ: typedef 5truct gu=es i
nars event type *GUES EVEN
T VS 5TGNL へのセット。
nfunc これはイベントの受け取りでGUES
により呼び出されるユーザー通知 ルーチンのアドレスである。
により呼び出されるユーザー通知 ルーチンのアドレスである。
udata “nfunc′ヘバスされるユーザー
データ。
データ。
出力パラメータ・
typed 5truct gues outa
rs sub id GUESはこのサブスクリブショ
ンのための識別子を戻す。
rs sub id GUESはこのサブスクリブショ
ンのための識別子を戻す。
wait task uid このメンバーは
タスクを待つのに使用される内部GU ESタスクのVS Unique Ta5k I
Dを指定する。これは?5IGNALタスクのために必
要である。
タスクを待つのに使用される内部GU ESタスクのVS Unique Ta5k I
Dを指定する。これは?5IGNALタスクのために必
要である。
このイベントはAOS/VSの下でのみ利用でキル。F
ast IPCを受け取ると、コーラ−の通知ルーチ
ンはスケジュールされるが、それは次のように呼び出さ
れる。すなわち: (本nfunc) (sub−id、 event
−type、 udata、 0. gui−q
uid); “gui quid”は前記通知が実行されるqui
dである。
ast IPCを受け取ると、コーラ−の通知ルーチ
ンはスケジュールされるが、それは次のように呼び出さ
れる。すなわち: (本nfunc) (sub−id、 event
−type、 udata、 0. gui−q
uid); “gui quid”は前記通知が実行されるqui
dである。
5ubscribe to Interrupt ev
ents gues 5ubscribe() cal
l: ソフトウェア割り込みイベントの共用(subscri
ption)のためのパラメータの使用。
ents gues 5ubscribe() cal
l: ソフトウェア割り込みイベントの共用(subscri
ption)のためのパラメータの使用。
入力パラメータ:
typedef 5truct gues i
npars event type 値GUES EVENT
INTのセット。
npars event type 値GUES EVENT
INTのセット。
int num これは、コーラ−が共用を欲す
る“割り込みナンバー”である。U NIXの下では、これは信号数(si gnal、h、で定義される)である。
る“割り込みナンバー”である。U NIXの下では、これは信号数(si gnal、h、で定義される)である。
nfunc これはイベントが受け取られたときG
UESにより呼び出されるユーザ ー通知ルーチンのアドレスである。
UESにより呼び出されるユーザ ー通知ルーチンのアドレスである。
udata ″nfunC″ヘパスされるユーザー
データ。
データ。
出力パラメータ:
typedef 5truct gues si
gnal out pars sub id GUESはこの共用のための識
別子を戻す。この共用は、例えばU NIXの下で、信号の受け取り時に通 知される処理内のマルチ・エンティティを許容する。
gnal out pars sub id GUESはこの共用のための識
別子を戻す。この共用は、例えばU NIXの下で、信号の受け取り時に通 知される処理内のマルチ・エンティティを許容する。
指定された割り込みの受け取り時に、 コーラ−の通知
ルーチンはスケジュールされるが、これは次のように呼
び出される。
ルーチンはスケジュールされるが、これは次のように呼
び出される。
(本nfunc) (sub id、 even
t type、 udata、 int nu
n。
t type、 udata、 int nu
n。
gut quid);
“gut quid″は前記通知が実行されるqui
dである。
dである。
5ubscribe to child obitua
ries gues−subscribeOcall: チルド・オビチュアリイの共用のためのパラメータの使
用 入力パラメータ: typedef 5truct gues in
ars event type 値GUES EVENT
0BITのセット。
ries gues−subscribeOcall: チルド・オビチュアリイの共用のためのパラメータの使
用 入力パラメータ: typedef 5truct gues in
ars event type 値GUES EVENT
0BITのセット。
nfunc これはイベントの受け取り時にGUE
Sにより呼び出されるユーザー通 知ルーチンのアドレスである。
Sにより呼び出されるユーザー通 知ルーチンのアドレスである。
udata ″nfunc″ヘパスされるユーザー
データ。
データ。
出力パラメータ:
typedef 5truCt gues si
gnal out pars この共用は、AO8/VSとUNIXの下でサポートさ
れる。それは、チルド処理の終結時に通知される処理内
の1または1以上のエンティティを許容する。チルド処
理の(またはAO8/VSCustomer−8erv
er 関係におけるハードナーの)終結時に、コーラ
−の通知ルーチンはスケジュールされるが、これは次の
ように呼び出される。
gnal out pars この共用は、AO8/VSとUNIXの下でサポートさ
れる。それは、チルド処理の終結時に通知される処理内
の1または1以上のエンティティを許容する。チルド処
理の(またはAO8/VSCustomer−8erv
er 関係におけるハードナーの)終結時に、コーラ
−の通知ルーチンはスケジュールされるが、これは次の
ように呼び出される。
(零nfunc) (sub id、 GUES
EVENT 0BIT、 udata、 o
bit−ptr、 gui−quid);前記’gui
quid”は、通知が実行されるquidであり、
“obit ptr”は次のような構造のポイン
タである。
EVENT 0BIT、 udata、 o
bit−ptr、 gui−quid);前記’gui
quid”は、通知が実行されるquidであり、
“obit ptr”は次のような構造のポイン
タである。
USINT32 pid;
USINT325tatus;
IGUEs 0BIT:
pid この領域はターミネイト(終結)処理のPI
Dを含む。
Dを含む。
5tatus この領域はどのように処理が終結さ
れるかを含む。
れるかを含む。
AOS/VSの下で、それは正常な終結のためのゼロま
たはこれに代わるエラーコードを含む。
たはこれに代わるエラーコードを含む。
このエラーコードは終結された処理(via ?RE
TURN)から戻され、または異常な終結を示すために
GUESにより供給される。
TURN)から戻され、または異常な終結を示すために
GUESにより供給される。
UNIXの下で、“5tatus”は、UNIXにおい
て記述されたwait3(2)システム呼び出しから得
られるような終結されたチャイルドの出口状態を含む。
て記述されたwait3(2)システム呼び出しから得
られるような終結されたチャイルドの出口状態を含む。
5ubscribe to 5elect(2) ev
ents gues−subscribe() cal
l select(2)イベントの共用のためのパラメータ
の使用。
ents gues−subscribe() cal
l select(2)イベントの共用のためのパラメータ
の使用。
入力パラメータ:
typedef 5truct gues se
Iect mask typedef 5truct gues in
ars event type 値GUES EVENT
5ELECTのセット。
Iect mask typedef 5truct gues in
ars event type 値GUES EVENT
5ELECTのセット。
event mask この領域はGUESSE
LECT MASKの構造へのポインタを含まねばな
らない。もしこの 構造が動的に割り当てられるなら、そ れは、GUESが処理の持続時間のた めのそれにアクセスすることを含むの で、フリーであってはすらない。
LECT MASKの構造へのポインタを含まねばな
らない。もしこの 構造が動的に割り当てられるなら、そ れは、GUESが処理の持続時間のた めのそれにアクセスすることを含むの で、フリーであってはすらない。
nfunc これはイベントの受け取り時にGUE
Sにより呼び出されるユーザー通 知ルーチンのアドレスである。
Sにより呼び出されるユーザー通 知ルーチンのアドレスである。
udata nfunc”内ヘパスされるユーザ
ーデータ。出力パラメータ= typedef 5truct gues ou
t pars sub id GUESはこの共用のための識別
子を戻す。
ーデータ。出力パラメータ= typedef 5truct gues ou
t pars sub id GUESはこの共用のための識別
子を戻す。
この共用は、5elect(2)システム呼び出しによ
り実行されるような、I10状態を通知されるマルチプ
ルユーザーを許容する。このGUESサービスの各共用
者は、ファイルデスクリブターマスクのセットを有して
おり、これは共用者がリード、ライトおよびイクスペク
ンヨンの状態に関係があるかのファイルを示している。
り実行されるような、I10状態を通知されるマルチプ
ルユーザーを許容する。このGUESサービスの各共用
者は、ファイルデスクリブターマスクのセットを有して
おり、これは共用者がリード、ライトおよびイクスペク
ンヨンの状態に関係があるかのファイルを示している。
セレクト(2)呼び出しカ月10状態を示す時はいつで
も、GUESは各共用者のための単独の通知をスケジュ
ールし、各共用者のセレクトマスクは1または1以上の
デスクリブターをその状態と共に指示する。通知は次の
ように呼び出されるようにスケジュールされる。
も、GUESは各共用者のための単独の通知をスケジュ
ールし、各共用者のセレクトマスクは1または1以上の
デスクリブターをその状態と共に指示する。通知は次の
ように呼び出されるようにスケジュールされる。
(本nfunc) (sub id、 GUES
EVENT 5ELECT、 udata。
EVENT 5ELECT、 udata。
mask−ptr、 gut quid);“gut
quid”は通知が実行されるquidであり、“m
ask ptr”はセレクト(2)呼び出しく例えば
、それはファイルの共用者にその状態が存在することを
示す)からの出力を含むGUES 5ELECT
MASKへのポインタである。
quid”は通知が実行されるquidであり、“m
ask ptr”はセレクト(2)呼び出しく例えば
、それはファイルの共用者にその状態が存在することを
示す)からの出力を含むGUES 5ELECT
MASKへのポインタである。
user event receivedOユーザー通
知イベントの連続の呼び出し フォーマット: void user event
received(sub−id、 event−ty
pe、 udata、 event param、 q
ui quid)パラメータ: sub id これは共用IDで、これはニーザ
ーが通知されたイベントを共用した ときGUESにより戻される。
知イベントの連続の呼び出し フォーマット: void user event
received(sub−id、 event−ty
pe、 udata、 event param、 q
ui quid)パラメータ: sub id これは共用IDで、これはニーザ
ーが通知されたイベントを共用した ときGUESにより戻される。
event type これは、(GUES−E
VENT VS 5IGNL、GUES EVE
NT INT、GUES EVENT 0BIT
、又1tGUEs EVENT 5ELECT)に
到達するイベントの型を示す。
VENT VS 5IGNL、GUES EVE
NT INT、GUES EVENT 0BIT
、又1tGUEs EVENT 5ELECT)に
到達するイベントの型を示す。
udata これはユーザーデータパラメータであ
り、これはGUESによりパスさ れる。それは共用時にユーザーにより 指示される値を有している。
り、これはGUESによりパスさ れる。それは共用時にユーザーにより 指示される値を有している。
event param このパラメータの使用
は特定のイベントの型に依存してい る。
は特定のイベントの型に依存してい る。
qui quid 通知が実行されるGUIqu
idを指示する。このルーチンは、 以前に共用されたイベントが受け取ら れたとき呼び出される。このルーチン の名前はユーザーにより実際に割り当 てられ、そのアドレスは共用呼び出し にパスされる。例えば“user event r
eceived()”の名前が使用される。
idを指示する。このルーチンは、 以前に共用されたイベントが受け取ら れたとき呼び出される。このルーチン の名前はユーザーにより実際に割り当 てられ、そのアドレスは共用呼び出し にパスされる。例えば“user event r
eceived()”の名前が使用される。
GUTSタイマと違って、イベント共用は処理の実施の
間有効である。通知ルーチンからの共用を更新する必要
はない。
間有効である。通知ルーチンからの共用を更新する必要
はない。
第11章 GUI プログラミング例この章では、
アンペンドされた(unpended)リードサービス
を提供する単一のGCSPを実行するためのGUIの使
用を示す。またそれは、アンペンドされたリードを達成
するために、GCSPのサービスを実施する単一のユー
ザーを示す。この例は“C”言語で書かれているが、完
全なプログラムとして意図されてはいない。むしろ、そ
れはGUIの使い方を示すことを意図している。この例
はAO3/VSを示すが、それはベンドされたIloへ
のスレーブAO3/VSタスクを使用するからである。
アンペンドされた(unpended)リードサービス
を提供する単一のGCSPを実行するためのGUIの使
用を示す。またそれは、アンペンドされたリードを達成
するために、GCSPのサービスを実施する単一のユー
ザーを示す。この例は“C”言語で書かれているが、完
全なプログラムとして意図されてはいない。むしろ、そ
れはGUIの使い方を示すことを意図している。この例
はAO3/VSを示すが、それはベンドされたIloへ
のスレーブAO3/VSタスクを使用するからである。
これは、もしUNIXポータビリティが問題ならばGU
Iが使用される方法ではないが、より実際的な例は不必
要に複雑となり説明には適さないものとなろう。
Iが使用される方法ではないが、より実際的な例は不必
要に複雑となり説明には適さないものとなろう。
この例はまたエラーチエツクでは比較的弱い。
GUIの実際のユーザーは徹底的にリターンコードをチ
エツクするが、それはGUIリクエストを間違えると後
でトレースすることが深刻かつ困難となるからである。
エツクするが、それはGUIリクエストを間違えると後
でトレースすることが深刻かつ困難となるからである。
Globals
GIJI−QUID 5lave quid; 7
本 Quid allocated to GCS
P 5lave task */GUjQUID
user−quid; /ネ Quid of
user’ s +aain task 本/
End Globals GCSP Code /* GCSP 1nitO本 * Routine to be called by
user、 to 1nitialise the
GCSP。
本 Quid allocated to GCS
P 5lave task */GUjQUID
user−quid; /ネ Quid of
user’ s +aain task 本/
End Globals GCSP Code /* GCSP 1nitO本 * Routine to be called by
user、 to 1nitialise the
GCSP。
本Spawns a 5lave VS−Task、
to do pended requests。
to do pended requests。
本/
GCSP 1nit O(extern GCSP 5
lave O:mtask (GCSP−slave
、 $5TACK−3IZE); 7本 5tar
t 5lave task 本/gui 1n
itialise O+7本 GCSP 5lav
e □ 宰 本Run5 as a 5lave VS−task、
Just calls gu辷rvn、 from
where any零5cheduled calls
will be run。
lave O:mtask (GCSP−slave
、 $5TACK−3IZE); 7本 5tar
t 5lave task 本/gui 1n
itialise O+7本 GCSP 5lav
e □ 宰 本Run5 as a 5lave VS−task、
Just calls gu辷rvn、 from
where any零5cheduled calls
will be run。
本/
GCSP−slave O
/* Run any routines th
e GCSP tells us to、 本
/四辷run (GUjOFTION−PEND) ;
7本 GCSP as)mc−read□ネ 本The unpended read Reques
t routine、 Builds an 1nte
rnal本representation of th
e request (understood wit
hin the零GC3P)、 and 5chedu
les it to nm on the 5lave
task。
e GCSP tells us to、 本
/四辷run (GUjOFTION−PEND) ;
7本 GCSP as)mc−read□ネ 本The unpended read Reques
t routine、 Builds an 1nte
rnal本representation of th
e request (understood wit
hin the零GC3P)、 and 5chedu
les it to nm on the 5lave
task。
零
零The 5lave will call the
users notification routin
e、 when the本 read is do
ne、本/GC3P−async−read (Nfu
nc、 quid、 buff、 fp、 nbyte
g)void (本Nfunc) O; 7本
Users notification rout
ine 本/GUjQ[IID quid; /*
User quid to run noti
fication on 零)char *buf
f; /* Buffer、 to read
1nto 本/FILE *fp; 7本 Fi
le descriptor to read
from 本/I?JT32 nbytes:
7本 Number of bytes to
read 本/READ−PKT *readJet
;extern 5lave−read□ ;7本 ^
11ocate an 1nternal re
quest packet、 and fill
an本 paraseters fros o
ut arguments、 本/readJet
= (READ−PKT本)alloc (si
zeof (READ−PIT));raad、Jt
−>fp −fp; readJet−>buff −buff;readJ
<t−>nbytes =nbytes;/* 5ch
edule the pended raad
to happen on our 5lave
task 、、 本/gui−schedul
e (slave quid、5lave reat
readJtt);/* 、、、 and ret
urn 寧/return (ON); /零 5lave−read 0 本 本Th1s’ GCSP routine actua
lly does the pended read。
users notification routin
e、 when the本 read is do
ne、本/GC3P−async−read (Nfu
nc、 quid、 buff、 fp、 nbyte
g)void (本Nfunc) O; 7本
Users notification rout
ine 本/GUjQ[IID quid; /*
User quid to run noti
fication on 零)char *buf
f; /* Buffer、 to read
1nto 本/FILE *fp; 7本 Fi
le descriptor to read
from 本/I?JT32 nbytes:
7本 Number of bytes to
read 本/READ−PKT *readJet
;extern 5lave−read□ ;7本 ^
11ocate an 1nternal re
quest packet、 and fill
an本 paraseters fros o
ut arguments、 本/readJet
= (READ−PKT本)alloc (si
zeof (READ−PIT));raad、Jt
−>fp −fp; readJet−>buff −buff;readJ
<t−>nbytes =nbytes;/* 5ch
edule the pended raad
to happen on our 5lave
task 、、 本/gui−schedul
e (slave quid、5lave reat
readJtt);/* 、、、 and ret
urn 寧/return (ON); /零 5lave−read 0 本 本Th1s’ GCSP routine actua
lly does the pended read。
本It is run from gui run、
on the 5lave task、 when 5
cheduled by零 GCSP−async−r
eady、本/5lave rand (readJt
)READ PKT tread Jkt;/木 Do
the pended read、 零/f
read (readJkt−>buff、 read
Jet−>nbytes、 1. readJkt−>
fp);7本 Request done −5c
hedule the notification
hack onto the本User’ s
Uin task: passing the fu
ll data buffer back isネ ’
argl’ 本/ /* Free up the 1ntern
al request packet 本/fre
e (readJet); return (OK); End GC3P Code User Code 7車 The User’s 1ain rou
tine、 Th1s simple exam
ple just 1ssues* Unpend
ed reads and waits for th
em to ccmplete、 until the
本 End−of−File is raache
d、本/USERmain 0 FILE *fp; char buff [$BUFF−SIZE] ;e
xtern USERread−done O:/木
In1tialise the world
宰/四辷1nitialise O+ GC3P 1nit O; 四辷allocate quid (1,NULL、
&user−quid);fp = fopen (”
testfile”、”r”);while (lfe
of (fp))7本 11ake unpende
d request、 本/GC3P async
read (USER−read−done、 us
er quid、 buff、 fp);7本 In
practice、 the user wou
ld do some other proce
ssing本 here、 Al5o、 ther
e would prohably be mu
ltiple requests本outstand
ing。
on the 5lave task、 when 5
cheduled by零 GCSP−async−r
eady、本/5lave rand (readJt
)READ PKT tread Jkt;/木 Do
the pended read、 零/f
read (readJkt−>buff、 read
Jet−>nbytes、 1. readJkt−>
fp);7本 Request done −5c
hedule the notification
hack onto the本User’ s
Uin task: passing the fu
ll data buffer back isネ ’
argl’ 本/ /* Free up the 1ntern
al request packet 本/fre
e (readJet); return (OK); End GC3P Code User Code 7車 The User’s 1ain rou
tine、 Th1s simple exam
ple just 1ssues* Unpend
ed reads and waits for th
em to ccmplete、 until the
本 End−of−File is raache
d、本/USERmain 0 FILE *fp; char buff [$BUFF−SIZE] ;e
xtern USERread−done O:/木
In1tialise the world
宰/四辷1nitialise O+ GC3P 1nit O; 四辷allocate quid (1,NULL、
&user−quid);fp = fopen (”
testfile”、”r”);while (lfe
of (fp))7本 11ake unpende
d request、 本/GC3P async
read (USER−read−done、 us
er quid、 buff、 fp);7本 In
practice、 the user wou
ld do some other proce
ssing本 here、 Al5o、 ther
e would prohably be mu
ltiple requests本outstand
ing。
本 For sia+plicity in t
his example、 we just
wait for the本 read to
complete、 零/gui run (GUI
−OFrION PEND)+7本 USER,、−r
ead−completeネ 本The user’ s notification
routine、 called by GUl、
fro+n gui run。
his example、 we just
wait for the本 read to
complete、 零/gui run (GUI
−OFrION PEND)+7本 USER,、−r
ead−completeネ 本The user’ s notification
routine、 called by GUl、
fro+n gui run。
本when the request coa+ple
tes。
tes。
本It does 5otae processing
of the received data、 an
d then calls本gui wakeup□、
so that when we return、
ttre task will return本fro
+* gu辷run、 enabIing anoth
er request to be made、本/p
rocess−data (buff); /*
Don’ t care what it
does 本/四辷wakeup (user−qu
id) ;return (ON);I End User Code 第12章 内部構造 この章は、GUIのAO8/VS版の設計を表す。UN
IX版とMS−DO8版とは、出来る限り類似しつるか
、相違っは存在する。特定のかつ明白な相違あるいはイ
シュウ(issue)がある本明細書の各個所で、[U
NIX:UNIXイシュウのチクスト]のように鍵括弧
のコメントにより記される。
of the received data、 an
d then calls本gui wakeup□、
so that when we return、
ttre task will return本fro
+* gu辷run、 enabIing anoth
er request to be made、本/p
rocess−data (buff); /*
Don’ t care what it
does 本/四辷wakeup (user−qu
id) ;return (ON);I End User Code 第12章 内部構造 この章は、GUIのAO8/VS版の設計を表す。UN
IX版とMS−DO8版とは、出来る限り類似しつるか
、相違っは存在する。特定のかつ明白な相違あるいはイ
シュウ(issue)がある本明細書の各個所で、[U
NIX:UNIXイシュウのチクスト]のように鍵括弧
のコメントにより記される。
GUIは、第18図に示されるように非常に単純な構造
を有する。GUIは、単に1組のキュウから成る太線ブ
ロック180により表される。この1組のキュウの4つ
が、ここではランされるべき通知待機を含むQl、Q2
.Q3およびQ4により示される。キュウはrgui
allocate quidOJを呼び出すことに
より割り当てられる。通知は、図に示されるように、[
gui 5chedule()ゴを呼び出すことによ
りキュウ上に配置され、rgui runOJにより
キュウから取り出される。第18図は他のGUIルーチ
ンを図示していない。
を有する。GUIは、単に1組のキュウから成る太線ブ
ロック180により表される。この1組のキュウの4つ
が、ここではランされるべき通知待機を含むQl、Q2
.Q3およびQ4により示される。キュウはrgui
allocate quidOJを呼び出すことに
より割り当てられる。通知は、図に示されるように、[
gui 5chedule()ゴを呼び出すことによ
りキュウ上に配置され、rgui runOJにより
キュウから取り出される。第18図は他のGUIルーチ
ンを図示していない。
GUIは、ネットワーク通信システムに対して制御環境
のタスクとフローの基礎を形成する。
のタスクとフローの基礎を形成する。
ユーザ・アブリケーンヨン181は、1つ以上のGCS
P、図においては2つのccsP182および183に
アンペンデッド要求をする。これらのGCSPは、次に
他のGCSPに要求をし、GC8P18および183は
、第18図の例のおいては、経路184により互いに通
信することが示される。
P、図においては2つのccsP182および183に
アンペンデッド要求をする。これらのGCSPは、次に
他のGCSPに要求をし、GC8P18および183は
、第18図の例のおいては、経路184により互いに通
信することが示される。
そのプロセスの過程において、GCSPは、それ自身に
おいて、他のGCSPにおいて、あるいはユーザにおい
て、呼ばれるルーチンをスケ−ジュールしうる。このス
ケジューリングは、GCSPからrgui 5che
duleJへの矢印185により示され、そして内部G
UIキュウ上に置かれ、かつrgui runJによ
り取り出される通知をもたらす。典型的には、このスケ
ジューリングは、外部イベントを待機する個別のVSタ
スクからなされる[UNIX/MS−DOS :インタ
ラブト・レベルから]。
おいて、他のGCSPにおいて、あるいはユーザにおい
て、呼ばれるルーチンをスケ−ジュールしうる。このス
ケジューリングは、GCSPからrgui 5che
duleJへの矢印185により示され、そして内部G
UIキュウ上に置かれ、かつrgui runJによ
り取り出される通知をもたらす。典型的には、このスケ
ジューリングは、外部イベントを待機する個別のVSタ
スクからなされる[UNIX/MS−DOS :インタ
ラブト・レベルから]。
ユーザが、rgu i runJを呼ぶとき、スケ−
ジュールされたルーチン呼び出しが、ランを得る。これ
は、キュウQ1ないしQ4から「gui runJへ
の矢印187と、ユーザ181からgui runO
への矢印188とにより示される。スケ−ジュールされ
た呼び出しは、再び矢印186により示されるように、
ユーザ181に、あるいは、呼び出されているGCSP
182.183内にルーチンを生じうる。
ジュールされたルーチン呼び出しが、ランを得る。これ
は、キュウQ1ないしQ4から「gui runJへ
の矢印187と、ユーザ181からgui runO
への矢印188とにより示される。スケ−ジュールされ
た呼び出しは、再び矢印186により示されるように、
ユーザ181に、あるいは、呼び出されているGCSP
182.183内にルーチンを生じうる。
先に留意したように、ユーザは、quidsへのルーチ
ンをスケ−ジュールする必要がありうる。
ンをスケ−ジュールする必要がありうる。
これは、接続189により示される。
第13章 データ構造の仕様
GUIの通知の一時的なかつランタイムの特定の性質の
ため、プロセスの呼び出しにかかるいずれの情報を保存
する必要がない。従って、GUI構造の全てはメモリ常
駐である。オン・ディスク構造はない。以下のデータ構
造においては、MV上にあるように示される種々のメン
バー(特にポインタ)のサイズが描かれる。これらは、
かなずしもPC上である同じではない。
ため、プロセスの呼び出しにかかるいずれの情報を保存
する必要がない。従って、GUI構造の全てはメモリ常
駐である。オン・ディスク構造はない。以下のデータ構
造においては、MV上にあるように示される種々のメン
バー(特にポインタ)のサイズが描かれる。これらは、
かなずしもPC上である同じではない。
13.1GUIキユウ
GUI内のメインデータ構造はジョブ・キュウである。
これらは、rgui 5chedulejとrguj
runJとの間の唯一のカップリングを形成する。
runJとの間の唯一のカップリングを形成する。
ジョブ・キュウは、パー・タスク・ヘッダからアンカー
オフされる。このパー・タスク・ヘッダは、それ自身で
、リンクされたリスト上にあり、単一のキュウ記述子で
アンカーされる。
オフされる。このパー・タスク・ヘッダは、それ自身で
、リンクされたリスト上にあり、単一のキュウ記述子で
アンカーされる。
従って、唯一のグローバル・アンカーがあり、それを全
てのGUI構造は直接的にあるいは間接的に解き放つ。
てのGUI構造は直接的にあるいは間接的に解き放つ。
ジョブ・キュウ上のエントリーは、GUIが、指示され
たパラメータとともに要求された通知をランするのに必
要な情報を含む通知制御ブロック(NCB)である。
たパラメータとともに要求された通知をランするのに必
要な情報を含む通知制御ブロック(NCB)である。
典型的な構成は、第19図に示される。この例は、N個
のオーナ(VSタスク)に対するジョブ・キュウ・リス
トを示す。[UNI X/MS−D。
のオーナ(VSタスク)に対するジョブ・キュウ・リス
トを示す。[UNI X/MS−D。
S、唯一のオーナが存在する。]
オーナ1は、割り当てられた2つのrquidS」ジョ
ブQ1、Q2を有し、2つのジョブは、これらの第1の
上ヘスケージュールされ、第2にはなにもない。オーナ
2とオーナNとは、各々割り当てられた1つのquid
を有し、スケ−ジュールされたジョブは伴わない。
ブQ1、Q2を有し、2つのジョブは、これらの第1の
上ヘスケージュールされ、第2にはなにもない。オーナ
2とオーナNとは、各々割り当てられた1つのquid
を有し、スケ−ジュールされたジョブは伴わない。
全てのリストは、二重リンクされたMVキュウであ−リ
、そのためMVハードウェア・キュウ命令を用いること
ができる。これらの命令は、アトミックであり、ロック
の必要を排除する。[UNIX/MS−DOS:これら
の環境におけるハードウェアが類似した命令を与えない
場合には、エンキュウとデキュウの持続時間に対する割
込みを使用不能にする必要がありうる。コ 13.1.I GUI ROO前記述子これは、全
てのGUIキュウ用のルート・アンカーである。それは
、第20図に示される構造を有する。この2つのメンバ
ーは、ポインタであり、これらのポインタはそれぞれ、
最初のオーナ・キュウと最後のオーナ・キュウを指示す
る。全てのMVキュウに関して、Qが空である場合には
、これらのメンバーはともに−1である。
、そのためMVハードウェア・キュウ命令を用いること
ができる。これらの命令は、アトミックであり、ロック
の必要を排除する。[UNIX/MS−DOS:これら
の環境におけるハードウェアが類似した命令を与えない
場合には、エンキュウとデキュウの持続時間に対する割
込みを使用不能にする必要がありうる。コ 13.1.I GUI ROO前記述子これは、全
てのGUIキュウ用のルート・アンカーである。それは
、第20図に示される構造を有する。この2つのメンバ
ーは、ポインタであり、これらのポインタはそれぞれ、
最初のオーナ・キュウと最後のオーナ・キュウを指示す
る。全てのMVキュウに関して、Qが空である場合には
、これらのメンバーはともに−1である。
13、 1. 2 パー・オーナ・リスト・アンカー
この構造は、リスト上でGUI ROOTでアンカー
され、第21図に示されるものである。それは、rne
xtJポインタ、rprevJポインタ、オーナ id
lおよびそのユーザにより所有されるrquidsJの
リスト用のQ記述子を含む。このアンカーを解き放つジ
ョブ・キュウは、優先して分類される。オーナによるそ
のQへのアクセスを制御するために用いられる数フィー
ルドもある。
この構造は、リスト上でGUI ROOTでアンカー
され、第21図に示されるものである。それは、rne
xtJポインタ、rprevJポインタ、オーナ id
lおよびそのユーザにより所有されるrquidsJの
リスト用のQ記述子を含む。このアンカーを解き放つジ
ョブ・キュウは、優先して分類される。オーナによるそ
のQへのアクセスを制御するために用いられる数フィー
ルドもある。
「オーナ」フィールドは、このリスト上のジョ、 ブ・
キュウのオーナ・タスクを識別する。VSタスク−ID
を発見するためのシステム呼び出しのオーバヘッドを避
けるため、オーナ・タスクのスタック・ベースが、この
識別のため用いられる。
キュウのオーナ・タスクを識別する。VSタスク−ID
を発見するためのシステム呼び出しのオーバヘッドを避
けるため、オーナ・タスクのスタック・ベースが、この
識別のため用いられる。
この方法は、DG言語ランタイム・ライブラリに共通で
あり、従って、特別の制約を課すことはない。
あり、従って、特別の制約を課すことはない。
rmboxJは、タスク間メイルボックスであり、所有
されたジョブ・キュウのいずれか上でスケジュールされ
た通知がないとき、オーナが、ペンデッドrgui
runJを行う場合は、そのオーナは、そのメイルボッ
クス上に待機する。タスクが、それに所有されたrqu
idJ上で「gui 5cheduleJまたはrg
ui wakeupJを行うとき、別のタスクが起動
される。
されたジョブ・キュウのいずれか上でスケジュールされ
た通知がないとき、オーナが、ペンデッドrgui
runJを行う場合は、そのオーナは、そのメイルボッ
クス上に待機する。タスクが、それに所有されたrqu
idJ上で「gui 5cheduleJまたはrg
ui wakeupJを行うとき、別のタスクが起動
される。
VSタスク間シスンテム呼び出しく?RECと?XMT
)は、この目的のために用いられるであろう。
)は、この目的のために用いられるであろう。
[UIX/MS7DOS :起動は、割込みレベルから
なされるでろう。スピン・ロックはMS−DOSのため
と、UNIX用のrselectOJシスンテム呼び出
しのためとに用いられるであろう。] rstatusJフィールドは、種々の制御ビットを含
み、第22図に定義されている。「runningJビ
ットは、GUIがこのオーナに向けて通知をランしてい
るときセットされ、rgu 1runJのネステッド呼
び出しを阻止するために用いられる。rwaiting
Jビットは、タスクがrmboxJ上で待機していると
き用いられる。rwa k e u pJビットは、
現在ランしているジョブの後にランしているタスクを起
動させるためにセットされる。rjob 5ched
uledJビツトは、ジョブがスケジュールされるとき
は常にgui 5cheduleによりセットされる
。このことは、そうでないときに存在するであろうウィ
ンドウを、別の■Sタスクがランすべきジョブを検索し
ている間にジョブがスケジュールを得るとき、閉じる。
なされるでろう。スピン・ロックはMS−DOSのため
と、UNIX用のrselectOJシスンテム呼び出
しのためとに用いられるであろう。] rstatusJフィールドは、種々の制御ビットを含
み、第22図に定義されている。「runningJビ
ットは、GUIがこのオーナに向けて通知をランしてい
るときセットされ、rgu 1runJのネステッド呼
び出しを阻止するために用いられる。rwaiting
Jビットは、タスクがrmboxJ上で待機していると
き用いられる。rwa k e u pJビットは、
現在ランしているジョブの後にランしているタスクを起
動させるためにセットされる。rjob 5ched
uledJビツトは、ジョブがスケジュールされるとき
は常にgui 5cheduleによりセットされる
。このことは、そうでないときに存在するであろうウィ
ンドウを、別の■Sタスクがランすべきジョブを検索し
ている間にジョブがスケジュールを得るとき、閉じる。
13、 1. 3 ジョブ・キュウ・アンカーこの構
造は、所与のrquidJに対する実際のNCRがアン
カーされるものである。それは第23図に示され、ジョ
ブQ id rquidJと、NCBに対して通常
のQ記述子を加えたその優先順位とを含む。
造は、所与のrquidJに対する実際のNCRがアン
カーされるものである。それは第23図に示され、ジョ
ブQ id rquidJと、NCBに対して通常
のQ記述子を加えたその優先順位とを含む。
13、 1. 4 通知制御ブロックこれらは、ジョ
ブQ上ヘキュウされる制御ブロックである。各々は、ス
ケジュールされた通知を表し、それをランするのに必要
な全ての情報を含む。
ブQ上ヘキュウされる制御ブロックである。各々は、ス
ケジュールされた通知を表し、それをランするのに必要
な全ての情報を含む。
これらの制御ブロックは、第24図に示されるフォーマ
ットを有する。rnextJフィールドとrprevJ
フィールドとは、このジョブQ上でそれぞれ次のNCB
と先のNCBとを指示する。
ットを有する。rnextJフィールドとrprevJ
フィールドとは、このジョブQ上でそれぞれ次のNCB
と先のNCBとを指示する。
他のメンバーは、 「guj run OJに渡さ
れるパラメータであって、通知ルーチンがランを得ると
き、それへ渡されるであろうパラメータである。
れるパラメータであって、通知ルーチンがランを得ると
き、それへ渡されるであろうパラメータである。
この構造から、各未定のスケジュールされた通知に対す
るメモリ要件は、7ダブルワード(28バイト)である
ことが理解できる。メモリがこれらはブロックを使用可
能であることを保証することが、GUIユーザに残され
るであろう。GUIがNCBを必要とするとき、GUI
はNCBを割り当てることが出来ない場合、GUIはr
gu 1scheduleOJからエラーを戻すであろ
う。
るメモリ要件は、7ダブルワード(28バイト)である
ことが理解できる。メモリがこれらはブロックを使用可
能であることを保証することが、GUIユーザに残され
るであろう。GUIがNCBを必要とするとき、GUI
はNCBを割り当てることが出来ない場合、GUIはr
gu 1scheduleOJからエラーを戻すであろ
う。
13.2 quidテーブル
GUIジョブ・キュウへのアクセスをスピードアップす
るため、rquidJによりインデックスされたテーブ
ルが存在し、このテーブルは、rquidJにより識別
されるジョブQのロケー7ョンを与える。このテーブル
の各エントリは、第25図に示されるフォーマットを有
する。
るため、rquidJによりインデックスされたテーブ
ルが存在し、このテーブルは、rquidJにより識別
されるジョブQのロケー7ョンを与える。このテーブル
の各エントリは、第25図に示されるフォーマットを有
する。
quidテーブルをロックする必要を避けるため、エン
トリは自動的に書込みされる。割り当てられていないq
uidは、そのテーブル・エントリのrjob q
ptrjフィールドにおいてNULLの値を有するで
あろう。割り当て中に、このフィールドは、自動的に充
填され、割り当ての最終段階点で、そのquidは有効
になる。
トリは自動的に書込みされる。割り当てられていないq
uidは、そのテーブル・エントリのrjob q
ptrjフィールドにおいてNULLの値を有するで
あろう。割り当て中に、このフィールドは、自動的に充
填され、割り当ての最終段階点で、そのquidは有効
になる。
再び、ロックの必要を避けるため、テーブルは、256
エントリの固定サイズでありうる。これは、使用可能な
quid数を256に制限することを課する。共用アク
セス・スキームは交互に実行されえて、quidテーブ
ルの共用読出し専用アクセスを許容するが、排他的書込
みアクセスを許容しないで、そのため、テーブルが一杯
になるときそのテーブルは成長されうる。
エントリの固定サイズでありうる。これは、使用可能な
quid数を256に制限することを課する。共用アク
セス・スキームは交互に実行されえて、quidテーブ
ルの共用読出し専用アクセスを許容するが、排他的書込
みアクセスを許容しないで、そのため、テーブルが一杯
になるときそのテーブルは成長されうる。
quidsは、1の値で開始して割り当てられ、値Oを
特別の値(NULL QTJID)としてフリーのま
まにしておく。更に、全ての負の値は無効であり、特別
の意味が確保される。
特別の値(NULL QTJID)としてフリーのま
まにしておく。更に、全ての負の値は無効であり、特別
の意味が確保される。
13.3 例により上記したデータ構造のコンテツク
スト内で、この章は、GUIモジュールの1つが取り得
る動作の単一の例、即ちプロシジャ−gui all
ocate quid (priority、use
r wakeup)で終わる。
スト内で、この章は、GUIモジュールの1つが取り得
る動作の単一の例、即ちプロシジャ−gui all
ocate quid (priority、use
r wakeup)で終わる。
egin
get the callers 5tack bas
e;5earch the owner Q chai
n for an anchor owned by
this task;if (owner ancho
r not found)egin allocate a new per−owner
1ist anchor;fill it in; add it to tail of the own
er Q chain;nd allocate and 1nit Job Q a
nchor;put allocated quid
1nto Job Q anchor;put use
r wakeup 1nto Job Q ancho
r;add Job Q to the o
wners Job Q chain、 at
a point determinedby
priority: obtain the next available
quid、 and claim that 5lo
t in thequid table; Put pointers to the owner
anchor、 and Job Q、 1nto
theclaimed 5lot; return the quid just allo
cated;nd gui 5chedule、gui run等のモ
ジュール仕様は、類似して導くことができる。
e;5earch the owner Q chai
n for an anchor owned by
this task;if (owner ancho
r not found)egin allocate a new per−owner
1ist anchor;fill it in; add it to tail of the own
er Q chain;nd allocate and 1nit Job Q a
nchor;put allocated quid
1nto Job Q anchor;put use
r wakeup 1nto Job Q ancho
r;add Job Q to the o
wners Job Q chain、 at
a point determinedby
priority: obtain the next available
quid、 and claim that 5lo
t in thequid table; Put pointers to the owner
anchor、 and Job Q、 1nto
theclaimed 5lot; return the quid just allo
cated;nd gui 5chedule、gui run等のモ
ジュール仕様は、類似して導くことができる。
13.4GUIメモリ管理
GUIは、メモリ・ブロックのプールされたものから成
り、かつNCR,ジョブQおよびオーナ・アンカーにと
って適当なサイズからなるGUI自身のメモリ管理スキ
ームを有することが出来る。
り、かつNCR,ジョブQおよびオーナ・アンカーにと
って適当なサイズからなるGUI自身のメモリ管理スキ
ームを有することが出来る。
このスキームの目的は、要求された大部分のメモリが同
じサイズのブロックにあるという知識に基づいて、標準
Cランタイムより効率的な割り当て機構を提供すること
にある。しかし、標準C機能rallocJおよびrf
reeJを用いてもよい。
じサイズのブロックにあるという知識に基づいて、標準
Cランタイムより効率的な割り当て機構を提供すること
にある。しかし、標準C機能rallocJおよびrf
reeJを用いてもよい。
第14章 GUrおよび通信サーバー・システム第26
A図および第26B図は、メツセージがネットワーク・
インターフェースから受信され、その宛て先に送られる
ことを必要とするとき住しる動作の基本的概要を示す。
A図および第26B図は、メツセージがネットワーク・
インターフェースから受信され、その宛て先に送られる
ことを必要とするとき住しる動作の基本的概要を示す。
これは、過剰の詳述から不明が生じることを避けるため
、単純化・された例として純粋に与えられる。送るべき
メツセージがあるという通知が、別のサーバー・プロセ
スからIPCの形式で、特別のルーチン45(第3図)
から到来するであろう。ソフトウエア・インターフェー
ス44は、262で示されるように、qui run
(pend)内で待機していると想定する。264で
、IPCは到来し、ルーチンをGUI quid上に
置く。ゲートウェイがCEOゲートウェイ12Aである
場合、例えば、これは、266でルーチンCeOmSg
rCVd Oである。ソフトウエア・インターフェ
ースがquj run (pend)にあるため、c
eo msg rcvdOはランされ、別のルーチ
ン、即ち同様にランされる268でのbuild P
DUOをスケジュールする。このルーチンは、それ自体
よく理解された機能を実行するT00LSルーチンであ
る。それは、UMB上で用いられるX400 1988
フオーマツトでPDUを組立て、CEOメツセージから
の各フィールドを得ることにより、ART X400
を利用し、そのメツセージをUMBフォーマットに変換
し、それを、組立てられているPDUに加える。これは
、通常実行されつる単純なアト・アイテム・ルーチン
additemOにより、かつquischedule
dされ、qui runされるプロシジャ−を介さず
になし得る。それは、ARTルーチンが多数の処理を行
わないからである。
、単純化・された例として純粋に与えられる。送るべき
メツセージがあるという通知が、別のサーバー・プロセ
スからIPCの形式で、特別のルーチン45(第3図)
から到来するであろう。ソフトウエア・インターフェー
ス44は、262で示されるように、qui run
(pend)内で待機していると想定する。264で
、IPCは到来し、ルーチンをGUI quid上に
置く。ゲートウェイがCEOゲートウェイ12Aである
場合、例えば、これは、266でルーチンCeOmSg
rCVd Oである。ソフトウエア・インターフェ
ースがquj run (pend)にあるため、c
eo msg rcvdOはランされ、別のルーチ
ン、即ち同様にランされる268でのbuild P
DUOをスケジュールする。このルーチンは、それ自体
よく理解された機能を実行するT00LSルーチンであ
る。それは、UMB上で用いられるX400 1988
フオーマツトでPDUを組立て、CEOメツセージから
の各フィールドを得ることにより、ART X400
を利用し、そのメツセージをUMBフォーマットに変換
し、それを、組立てられているPDUに加える。これは
、通常実行されつる単純なアト・アイテム・ルーチン
additemOにより、かつquischedule
dされ、qui runされるプロシジャ−を介さず
になし得る。それは、ARTルーチンが多数の処理を行
わないからである。
ceo msg rcvd Oはまた、メツセージ
を汎用メツセージ・バックボーン15上へ送り出すGC
8P request TOOLS−sendOを
270においてスケジュールスル。
を汎用メツセージ・バックボーン15上へ送り出すGC
8P request TOOLS−sendOを
270においてスケジュールスル。
TOOLS 5end Oは、最初に内部処理272
を実施し、それは、あらゆる受信者に対する受信者リス
トを介して進み(一般に2以上で有り得る。)、274
で示されるようにあらゆる受信者に対してディレクトリ
探索をする。ディレクトリ探索は、個別ディレクトリ・
サーバ・プロセスにより処理され、また276でのqu
i run内でランし、各探索は、IPC278によ
り開始され、その結果は、IPC280により戻される
。
を実施し、それは、あらゆる受信者に対する受信者リス
トを介して進み(一般に2以上で有り得る。)、274
で示されるようにあらゆる受信者に対してディレクトリ
探索をする。ディレクトリ探索は、個別ディレクトリ・
サーバ・プロセスにより処理され、また276でのqu
i run内でランし、各探索は、IPC278によ
り開始され、その結果は、IPC280により戻される
。
ディレクトリ完了は、282で順に各探索に対して決定
され、次にメツセージは、284(第26B図)におけ
るGCSP要求ルーチンmti 5endOに提出さ
れる。このルーチンはUMB15への実際の送信を実行
する。ネットワークの接続が確立され、イベント「接続
完了」288が、ルーチンmti connecte
d 290を介して送られる。次に、292で、TO
OLS−data access Oは、メツセージ
・データをディスクから得て、データを294において
送ることを実行する。このプロシジャ−は、全ての受信
者に対して順に続けられる。
され、次にメツセージは、284(第26B図)におけ
るGCSP要求ルーチンmti 5endOに提出さ
れる。このルーチンはUMB15への実際の送信を実行
する。ネットワークの接続が確立され、イベント「接続
完了」288が、ルーチンmti connecte
d 290を介して送られる。次に、292で、TO
OLS−data access Oは、メツセージ
・データをディスクから得て、データを294において
送ることを実行する。このプロシジャ−は、全ての受信
者に対して順に続けられる。
平易にするため、メツセージ送信において続くプロトコ
ルの最もありのままの概要が、単にここに与えられてい
る。図面は、データ確認プロシジャ−も、例えばアスタ
スクにより示される、種々の段階で住じるディスクへの
セーブも図示していない。更に、図面は、GUIの真の
本質を明らかに出来ない。それは、図面が、リニヤ・プ
ログラミング言語の正規の方法で実行されうるルーチン
の通常のシーケンスを図示するようにみえるからである
。ルーチンは、オペレーションのシーケンスを真に実行
しなければならず、このオペレーションのシーケンスは
、データ通信の十分確立された原理に従わなければなら
ない。しかし、GUlでの実行についての重要な点は、
ルーチンは、正しいシーケンスにおいて互いを単に呼ば
ないで、完了までペンドされる。むしろ、これらの通知
ルーチン又はジョブは、第13図ないし第17図を参照
して先に説明したように、quj 5chedule
Oを呼び出すことによりGUI quids上に置か
れ、qui runOを呼び出すことによりランされ
る。
ルの最もありのままの概要が、単にここに与えられてい
る。図面は、データ確認プロシジャ−も、例えばアスタ
スクにより示される、種々の段階で住じるディスクへの
セーブも図示していない。更に、図面は、GUIの真の
本質を明らかに出来ない。それは、図面が、リニヤ・プ
ログラミング言語の正規の方法で実行されうるルーチン
の通常のシーケンスを図示するようにみえるからである
。ルーチンは、オペレーションのシーケンスを真に実行
しなければならず、このオペレーションのシーケンスは
、データ通信の十分確立された原理に従わなければなら
ない。しかし、GUlでの実行についての重要な点は、
ルーチンは、正しいシーケンスにおいて互いを単に呼ば
ないで、完了までペンドされる。むしろ、これらの通知
ルーチン又はジョブは、第13図ないし第17図を参照
して先に説明したように、quj 5chedule
Oを呼び出すことによりGUI quids上に置か
れ、qui runOを呼び出すことによりランされ
る。
更に、現実の状況においては、多くのメツセージが同時
に処理され、メツセージからメツセージへ処理する種々
の段階にありうる。これは、多かれ少なかれ図面で意味
をもって図示することは不可能であるが、上述したよう
に、GUIが、この状況を処理するため理想的に適合さ
れることは容易に理解されつる。それは、全ての異なる
通知ルーチン又はジョブが、GUI quids上に
置かれ、これら全ては、qui run□を呼び出す
結果として順にランを得るからである。また、通信サー
バ・システムにおいては、ジョブは、変化する優先順位
を有し、異なる優先順位を有するquidsの使用によ
り異なる優先順位を実行するのは容易である。
に処理され、メツセージからメツセージへ処理する種々
の段階にありうる。これは、多かれ少なかれ図面で意味
をもって図示することは不可能であるが、上述したよう
に、GUIが、この状況を処理するため理想的に適合さ
れることは容易に理解されつる。それは、全ての異なる
通知ルーチン又はジョブが、GUI quids上に
置かれ、これら全ては、qui run□を呼び出す
結果として順にランを得るからである。また、通信サー
バ・システムにおいては、ジョブは、変化する優先順位
を有し、異なる優先順位を有するquidsの使用によ
り異なる優先順位を実行するのは容易である。
■、略語と頭字語
AO5/VS データ・ゼネラルのMVコンビュ−夕
用データ・ゼネラル・オペレ ーティング・システム ART ASN、1 ランタイム−ライブラ
リ・ルーチン、転送構文と内部 構文間のデコード/エンコード ASN、 1 アブストラクト構文表記法1、デ
ータのタイプの表記のアブストラ クトの定義用国際標準(ISO) AU アクセス単位 Cプログラミング言語 CCITT 国際電信電話諮問委員会CEOデータ
・ゼネラル・オフィス・オートメーション・システム C8通信サーバ C8ID 呼び出された加入者識別子DG
データ・ゼネラル・コーポレーション DTSO8S IBMオフィス・オートメジョン・シ
ステム EC8外部呼び出しンーケンス GC5P GUI−コンフォーマント・サービス
・プロバイダー GUE S 汎用アンペンデッド・イベント・ハ
ンドラー・サービス GUI 汎用アンペンデッド・インターフェー
ス GUTS 汎用アンペンデッド・タイマ・サービ
ス ID 識別子 IPCプロセス間通信−2つのプロセス間を渡されるメ
ツセージ Ilo 人力/出力 IBM インタナショナル・ビジネス・マシン
・コーポレーション ISO国際標準機構 LAN ローカル・エリア・ネットワークMR
Cメツセージ・ベースの信頼しうるチャネル、標準の4
00Mb/s ノくス MTI メツセージ転送インターフェースMS
−DO8PC用1jl準オペレーティング・システム MV AO3/VSがランしているデータ・
ゼネラル・コンピュータ NCB 通知制御ブロック O8コンピュータ用オペレーティング・システム PAD パラケラト組立て/分解装置PCパー
ソナル・コンピュータ(IB Mまたはクローン) PDN 公衆データ・ネットワークPDU
プロトコル・データ・ユニ・ソトー単一構造のチ
ャンク(chunk) の中を通る情報 PID プロセス識別子 PROFS IBMオフィス・オートメーション・
システム PSTN 公衆交換電話ネットワークPTT
郵便電信電話管理局 Q キュウの略記号 QUID キュウ識別子 RUA 遠隔使用エージェントSNA
システム・ネットワーク・アーキテクチャIBMネッ
トワーク 5NADS IBMメツセージ・プロトコルVS
=AO8/VS X25 パラケラト交換プロトコルX400
メツセージ処理用CCITT標準X500 デ
ィレクトリ・サービス用CCITT標準 AO8/VS用語の説明のために刊行されたマニュアル
を参照することに留意されたい。
用データ・ゼネラル・オペレ ーティング・システム ART ASN、1 ランタイム−ライブラ
リ・ルーチン、転送構文と内部 構文間のデコード/エンコード ASN、 1 アブストラクト構文表記法1、デ
ータのタイプの表記のアブストラ クトの定義用国際標準(ISO) AU アクセス単位 Cプログラミング言語 CCITT 国際電信電話諮問委員会CEOデータ
・ゼネラル・オフィス・オートメーション・システム C8通信サーバ C8ID 呼び出された加入者識別子DG
データ・ゼネラル・コーポレーション DTSO8S IBMオフィス・オートメジョン・シ
ステム EC8外部呼び出しンーケンス GC5P GUI−コンフォーマント・サービス
・プロバイダー GUE S 汎用アンペンデッド・イベント・ハ
ンドラー・サービス GUI 汎用アンペンデッド・インターフェー
ス GUTS 汎用アンペンデッド・タイマ・サービ
ス ID 識別子 IPCプロセス間通信−2つのプロセス間を渡されるメ
ツセージ Ilo 人力/出力 IBM インタナショナル・ビジネス・マシン
・コーポレーション ISO国際標準機構 LAN ローカル・エリア・ネットワークMR
Cメツセージ・ベースの信頼しうるチャネル、標準の4
00Mb/s ノくス MTI メツセージ転送インターフェースMS
−DO8PC用1jl準オペレーティング・システム MV AO3/VSがランしているデータ・
ゼネラル・コンピュータ NCB 通知制御ブロック O8コンピュータ用オペレーティング・システム PAD パラケラト組立て/分解装置PCパー
ソナル・コンピュータ(IB Mまたはクローン) PDN 公衆データ・ネットワークPDU
プロトコル・データ・ユニ・ソトー単一構造のチ
ャンク(chunk) の中を通る情報 PID プロセス識別子 PROFS IBMオフィス・オートメーション・
システム PSTN 公衆交換電話ネットワークPTT
郵便電信電話管理局 Q キュウの略記号 QUID キュウ識別子 RUA 遠隔使用エージェントSNA
システム・ネットワーク・アーキテクチャIBMネッ
トワーク 5NADS IBMメツセージ・プロトコルVS
=AO8/VS X25 パラケラト交換プロトコルX400
メツセージ処理用CCITT標準X500 デ
ィレクトリ・サービス用CCITT標準 AO8/VS用語の説明のために刊行されたマニュアル
を参照することに留意されたい。
第1図は全システムを示す図、
第2図はシステムの1つのゲートウェイのハードウェア
のブロック図、 第3図はシステムの1つのゲートウェイの機能的ブロッ
ク図、 第4図及び第5図は2つの異なるネットワーク間のメツ
セージ転送を示す図、 第6図乃至第12図はメツセージ取り扱いの手順をより
詳細に示す図、 第13図はGUI(汎用アンペンブト・インターフェー
ス)の下での2つの同時実行タスクのふるまいを示す図
、 第14図は第15図乃至第17図に対するキーを示す図
、 第15図乃至第17図はGUIの下でのルーチンの流れ
を示す図、 第18図はGUIの構造を示す図、 第19図はGUIに対するジョブ・キュー構造を示す図
、 第20図乃至第25図は種々のGUIデータ構造を示す
図、 第26A図及び第26B図は通信サーバ・ネットワーク
におけるGUIの使用例を示す図である。 図面の浄書(内容に変更なし) ta2 F/a、4 FIO,5 X400 ’rlつ’x−(−12D−Fta、7 2D− Flcy、8 ベエーウ゛リ −12E−婁ネ定7 Fta、 76 Ftcy、18 Ftcy、 19 砕 王QJ! マ FIG 26Bへ FIG、26Aつ゛う 1、事件の表示 平成2年特許願第295194号 2、発明の名称 ネットワーク通信システム 3、補正をする者 事件との関係 特許出願人 住所 名 称 データー・ゼネラル・コーポレーション4、
代理人 住 所 東京都千代田区大手町二丁目2番1号6、補
正の対象
のブロック図、 第3図はシステムの1つのゲートウェイの機能的ブロッ
ク図、 第4図及び第5図は2つの異なるネットワーク間のメツ
セージ転送を示す図、 第6図乃至第12図はメツセージ取り扱いの手順をより
詳細に示す図、 第13図はGUI(汎用アンペンブト・インターフェー
ス)の下での2つの同時実行タスクのふるまいを示す図
、 第14図は第15図乃至第17図に対するキーを示す図
、 第15図乃至第17図はGUIの下でのルーチンの流れ
を示す図、 第18図はGUIの構造を示す図、 第19図はGUIに対するジョブ・キュー構造を示す図
、 第20図乃至第25図は種々のGUIデータ構造を示す
図、 第26A図及び第26B図は通信サーバ・ネットワーク
におけるGUIの使用例を示す図である。 図面の浄書(内容に変更なし) ta2 F/a、4 FIO,5 X400 ’rlつ’x−(−12D−Fta、7 2D− Flcy、8 ベエーウ゛リ −12E−婁ネ定7 Fta、 76 Ftcy、18 Ftcy、 19 砕 王QJ! マ FIG 26Bへ FIG、26Aつ゛う 1、事件の表示 平成2年特許願第295194号 2、発明の名称 ネットワーク通信システム 3、補正をする者 事件との関係 特許出願人 住所 名 称 データー・ゼネラル・コーポレーション4、
代理人 住 所 東京都千代田区大手町二丁目2番1号6、補
正の対象
Claims (1)
- 【特許請求の範囲】 1、デジタル計算機システムにおいて、 (a)複数のルーチンを含む主処理タスクを実行し、 (b)前記主処理タスクの呼び出しルーチンの実行中に
サービス・ルーチンを呼び出し、(c)前記呼び出しル
ーチンを未処理にせずに前記主処理タスクにおける処理
を更に継続し、 (d)前記サービス・ルーチンを終わらせて通知ルーチ
ンを識別するジヨブ・データを記憶し、 (e)実行されるべき記憶されたジョブ・データによっ
て識別された通知ルーチンを生じるために、前記主タス
ク内のラン・ルーチンを実行する、ステップからなる前
記計算機システムを操作する方法。 2、請求項1に記載の方法において、前記ラン・ルーチ
ンが、実行されるべき通知ルーチンがないときは未処理
にならず、そのようなイベントのときには前記主タスク
内に直ちに戻る、非ベンド・モードのインターバルにお
いてランされることを特徴とする計算機システムの操作
方法。 3、請求項1に記載の方法において、前記ラン・ルーチ
ンが、実行されるべき通知ルーチンがあるときは未処理
になる、ベンド・モードにおいてランされることを特徴
とする計算機システムの操作方法。 4、請求項1に記載の方法において、前記複数の通知ル
ーチンを識別するジョブ・データが、前記通知ルーチン
が前記ラン・ルーチンに応答して逐次に実行されるため
に、少なくとも1つのキューに記憶されることを特徴と
する計算機システムの操作方法。 5、請求項4に記載の方法において、複数の前記キュー
があり、該キューは異なる優先順位を持ち、前記通知ル
ーチンが前記キューの優先順位に従って実行されること
を特徴とする計算機システムの操作方法。 6、請求項5に記載の方法において、前記通知ルーチン
及び前記キューの同一のものに記憶された識別データが
、前記キュー内のそれらが置かれた順でランされること
を特徴とする計算機システムの操作方法。 7、(i)オペレーティング・システムと、 (ii)前記オペレーティング・システムの下で実行可
能な複数のルーチンと、 (iii)ランされるべきルーチンを識別するジョブ・
データに対する少なくとも1つのキューと、を記憶する
手段を含むデジタル計算機システムにおいて、前記ルー
チンは第1、第2及び第3のモジュール内のルーチンを
含み、前記第1のモジュールはユーザ・ルーチンを含み
、前記第2のモジュールはサービスを提供するサービス
・ルーチンを含み、前記第3のモジュールはインターフ
ェース・ルーチンを含み、 前記ユーザ・ルーチンは、前記サービス・ルーチンから
のサービスを要求するルーチンを含み、前記インターフ
ェース・ルーチンは、ジョブ・データを前記キューに置
くために各サービス・ルーチンから呼び出し得るスケジ
ュール・ルーチンと、前記キュー上のジョブ・データに
よって識別された通知ルーチンをランさせるためにユー
ザ・ルーチンから呼び出し得るラン・ルーチンと、前記
ルーチンの第1のモジュールに戻り結果を提供する前記
サービス・ルーチンの少なくとも幾つかとを含み、 サービス・ルーチンの要求に続いて、サービス・ルーチ
ンからの戻り結果を待つことなしに前記第1のモジュー
ル内での処理を継続できることを特徴とするデジタル計
算機システム。 8、請求項7に記載のシステムにおいて、前記ラン・ル
ーチンが、前記キュー上にジョブ・データが無いとき前
記ラン・ルーチンを未決にするかしないかを指示するフ
ラグと共に呼び出し得ることを特徴とするデジタル計算
機システム。 9、請求項8に記載のシステムにおいて、前記スケジュ
ール・ルーチンが、ジョブ・データが前記キューにあり
、それによって該ジョブ・データによって識別された前
記通知ルーチンをランさせるとき、前記ラン・ルーチン
に信号するように動作可能であることを特徴とするデジ
タル計算機システム。 10、請求項8に記載のシステムにおいて、前記第3の
モジュールが更に、前記ラン・ルーチンが未決にされた
とき、戻るべきことをそれに信号するようにユーザ・ル
ーチンによって呼び出し得る起動ルーチンを含むことを
特徴とするデジタル計算機システム。 11、請求項8に記載のシステムにおいて、前記第1の
モジュールが、前記ラン・ルーチンが呼び出されるよう
に前記スケジュール・ルーチンによって呼び出され得る
起動ルーチンを含むことを特徴とするデジタル計算機シ
ステム。 12、請求項11に記載のシステムにおいて、各々前記
通知ルーチンの1つを指示する引き数を取る前記サービ
ス・ルーチンの少なくとも幾つかが、前記サービス・ル
ーチンの完了時に前記キュー上にスケジュールされるべ
き前記通知ルーチンの1つを選択するポインタを渡すた
めに各ユーザ・ルーチンを可能化することを特徴とする
デジタル計算機システム。 13、請求項7に記載のシステムにおいて、前記スケジ
ュール・ルーチンが、ユーザ・ルーチンから追加的に呼
び出し可能であることを特徴とするデジタル計算機シス
テム。 14、請求項7に記載のシステムにおいて、複数の前記
キューがあり、前記スケジュール・ルーチンが、通知ル
ーチンを識別するキュー・ジョブ・データのどれが置か
れるべきかを識別する引き数を取ることを特徴とするデ
ジタル計算機システム。 15、請求項14に記載のシステムにおいて、前記キュ
ーが異なる優先順位を持ち、前記ラン・ルーチンが、そ
れらの優先順位に従って通知ルーチンをランさせること
を特徴とするデジタル計算機システム。 16、請求項15に記載のシステムにおいて、前記ラン
・ルーチンが、前記スケジュール・ルーチンによって前
記キュー上に置かれた順番で、該キュー内の通知ルーチ
ンをランさせることを特徴とするデジタル計算機システ
ム。 17、請求項14に記載のシステムにおいて、前記第3
のモジュールが、キューをセットアップするための、か
つセットアップされたキューに割り当てられるべき優先
順位を引き数として取る、割り当てルーチンを含むこと
を特徴とするデジタル計算機システム。 18、請求項17に記載のシステムにおいて、前記割り
当てルーチンが、前記ラン・ルーチンが呼び出されるべ
きことを表すために、前記スケジュール・ルーチンによ
って呼び出され得るユーザ起動ルーチンを特定する引き
数を付加的に取ることを特徴とするデジタル計算機シス
テム。 19、請求項14に記載のシステムにおいて、前記スケ
ジュール・ルーチンが、どのキューに通知ルーチンが置
かれるべきかの前記表示と、前記キューに置かれるべき
前記通知ルーチンへのポインタと、前記サービス・ルー
チンに渡される複数の引き数とを、引き数として取るこ
とを特徴とするデジタル計算機システム。 20、請求項7に記載のシステムにおいて、前記サービ
ス・ルーチンが、各々のイベントに対応するイベント・
サービス・ルーチンを含み、呼び出された前記イベント
・サービス・ルーチンの夫々は、前記対応するイベント
が生じたときはいつでもジョブ・データを前記キュー上
に置き、このジョブ・データは、生じたイベントを識別
する通知ルーチンを識別することを特徴とするデジタル
計算機システム。 21、請求項7に記載のシステムにおいて、前記サービ
ス・ルーチンが、選択された時間間隔の経過に対応する
少なくとも1つのタイマ・サービス・ルーチンを含み、
該タイマ・サービス・ルーチンは、呼び出されたとき、
前記時間間隔が経過したときはいつでもジョブ・データ
を前記キュー上に置き、このジョブ・データは、経過し
た時間間隔を識別する通知ルーチンを識別することを特
徴とするデジタル計算機システム。 22、請求項14に記載のシステムにおいて、前記キュ
ーは、 (a)次と前のキューへのポインタと、 (b)前記キューの優先順位レベルと、 (c)前記キューに対する識別子と、 (d)前記キュー上の最初と最後の通知ルーチンに対す
る制御ブロックへのポインタとを含むデータ構造によっ
て確立され、 各制御ブロックは、 (e)次と前の制御ブロックへのポインタと、 (f)前記サービス・ルーチンの完了時に呼び出される
べき前記通知ルーチンへのポインタと、 (g)前記通知ルーチンへ渡されるべき引き数とを含む
データ構造を有することを特徴とするデジタル計算機シ
ステム。 23、請求項14に記載のシステムにおいて、前記キュ
ーは、複数の異なるオウナーに割り当てられる組の中に
あり、各オウナーは、その所有するキューに関する前記
ラン・ルーチンを呼び出し得るのみであることを特徴と
するデジタル計算機システム。 24、請求項22に記載のシステムにおいて、前記キュ
ーは、複数の異なるオウナーに割り当てられる組の中に
あり、各オウナーは、その所有するキューに関する前記
ラン・ルーチンを呼び出し得るのみであり、前記データ
構造が更に各オウナーに1つづつの、 (h)次と前のオウナー・アンカー構造へのポインタと
、 (i)前記オウナーに対するスタック・ベースへのポイ
ンタと、 (j)複数のステータス・ビットと、 (k)少なくともそのオウナーによって所有された前記
最初のキューに対する、識別子へのポインタとを含む、
複数のアンカー構造を含むことを特徴とするデジタル計
算機システム。 25、請求項24に記載のシステムにおいて、前記ステ
ータス・ビットが、少なくとも前記ラン・ルーチンが前
記オウナーに対するジョブ・ルーチンをランさせている
かどうかを表示するビットと、ジョブ・ルーチンが前記
オウナーに対してキュー上にスケジュールされているこ
とを表示するビットと、前記ラン・ルーチンがいつ起動
ルーチンによって戻りを必要とされたかを表示する起動
ビットとを含むことを特徴とするデジタル計算機システ
ム。 26、少なくとも1つの転送するメッセージ及び受け取
ったメッセージを処理するために動作可能な計算機手段
を有する、ネットワーク通信システム用のゲートウエイ
において、前記計算機手段は即座に戻る必要の無いサー
ビス・ルーチンを含む複数のルーチンを実現し、前記計
算機システムを操作する方法が、 (a)複数のルーチンを含む主処理タスクを実行し、 (b)前記主処理タスクの呼び出しルーチンの実行中に
少なくとも1つのサービス・ルーチンを呼び出し、 (c)前記呼び出しルーチンを未処理にせずに前記主処
理タスクにおける処理を更に継続し、 (d)前記サービス・ルーチンを終わらせて通知ルーチ
ンを識別するジョブ・データを記憶し、 (e)実行されるべき記憶されたジョブ・データによっ
て識別された通知ルーチンを生じるために、前記主タス
ク内のラン・ルーチンを実行する、ステップからなる方
法。 27、それぞれのアクセス装置に対して働く複数のゲー
トウエイを含むネットワーク通信システムにおいて、前
記ゲートウエイはメッセージ・ハンドリング・システム
を介して相互に通信するように接続されており、 そのゲートウエイが働く前記アクセス装置に対するアク
セスを提供するネットワーク・インターフェースと、 前記メッセージ・ハンドリング・システムとメッセージ
をやり取りするメッセージ転送インターフェースと、 前記メッセージ転送インターフェースと前記ネットワー
ク・インターフェース間での通信を提供し、少なくとも
フォーマット変換をするために前記ゲートウエイを介し
て処理データを渡す、ルーチンのライブラリを含むソウ
トウエア・インターフェースとを含み、 前記ソウトウエア・インターフェース内の前記ルーチン
が第1、第2及び第3のモジュール内のルーチンを含み
、前記第1のモジュールはユーザ・ルーチンを含み、前
記第2のモジュールはサービスを提供するサービス・ル
ーチンを含み、前記第3のモジュールはインターフェー
ス・ルーチンを含み、 前記ユーザ・ルーチンは、前記サービス・ルーチンから
のサービスを要求するルーチンを含み、前記インターフ
ェース・ルーチンは、ジョブ・データをジョブ・データ
・キューに置くために各サービス・ルーチンから呼び出
し得るスケジュール・ルーチンと、前記キュー上のジョ
ブ・データによって識別された通知ルーチンをランさせ
るためにユーザ・ルーチンから呼び出し得るラン・ルー
チンと、前記ルーチンの第1のモジュールに戻り結果を
提供する前記サービス・ルーチンの少なくとも幾つかと
を含み、 サービス・ルーチンの要求に続いて、サービス・ルーチ
ンからの戻り結果を待つことなしに前記第1のモジュー
ル内での処理を継続できることを特徴とするネットワー
ク通信システム。 28、請求項27に記載のシステムにおいて、前記ラン
・ルーチンが、前記キュー上にジョブ・データが無いと
き前記ラン・ルーチンを未決にするかしないかを指示す
るフラグと共に呼び出し得ることを特徴とするネットワ
ーク通信システム。 29、請求項28に記載のシステムにおいて、前記第3
のモジュールが更に、前記ラン・ルーチンが未決にされ
たとき、戻るべきことをそれに信号するようにユーザ・
ルーチンによって呼び出し得る起動ルーチンを含むこと
を特徴とするネットワーク通信システム。 30、請求項27に記載のシステムにおいて、各々前記
通知ルーチンの1つを指示する引き数を取る前記サービ
ス・ルーチンの少なくとも幾つかが、前記サービス・ル
ーチンの完了時に前記キュー上にスケジュールされるべ
き前記通知ルーチンの1つを選択するポインタを渡すた
めに各ユーザ・ルーチンを可能化することを特徴とする
ネットワーク通信システム。 31、請求項27に記載のシステムにおいて、複数の前
記キューがあり、前記スケジュール・ルーチンが、通知
ルーチンを識別するキュー・ジョブ・データのどれが置
かれるべきかを識別する引き数を取ることを特徴とする
ネットワーク通信システム。 32、請求項31に記載のシステムにおいて、前記キュ
ーが異なる優先順位を持ち、前記ラン・ルーチンが、そ
れらの優先順位に従って通知ルーチンをランさせること
を特徴とするネットワーク通信システム。 33、請求項32に記載のシステムにおいて、前記ラン
・ルーチンが、前記スケジュール・ルーチンによって前
記キュー上に置かれた順番で、該キュー内の通知ルーチ
ンをランさせることを特徴とするネットワーク通信シス
テム。 34、請求項31に記載のシステムにおいて、前記スケ
ジュール・ルーチンが、どのキューに通知ルーチンが置
かれるべきかの前記表示と、前記キューに置かれるべき
前記通知ルーチンへのポインタと、前記サービス・ルー
チンに渡される複数の引き数とを、引き数として取るこ
とを特徴とするネットワーク通信システム。 35、それぞれのアクセス装置に対して働く複数のゲー
トウエイを含むネットワーク通信システムにおいて、前
記ゲートウエイはメッセージ・ハンドリング・システム
を介して相互に通信するように接続されており、 前記複数のゲートウエイの内の少なくとも1つが、 そのゲートウエイが働く前記アクセス装置に対するアク
セスを提供するネットワーク・インターフェースと、 前記メッセージ・ハンドリング・システムとメッセージ
をやり取りするメッセージ転送インターフェースと、 前記メッセージ転送インターフェースに適合するソフト
ウエア・インターフェースと、 少なくとも1つの転送すべきメッセージと受け取ったメ
ッセージを処理するためのルーチンを実行する計算機手
段と、 前記メッセージ転送インターフェースと前記ソフトウエ
ア・インターフェースの間の通信を提供する前記複数の
ルーチンと、前記ゲートウエイに固有であって前記ネッ
トワーク・インターフェースと前記ソフトウエア・イン
ターフェースの間の通信を提供する前記複数のルーチン
の内の特定のものとを記憶する手段とを含み、 前記特定のルーチンはネットワーク・インターフェース
のフォーマット及びプロトコルと前記ソフトウエア・イ
ンターフェースのフォーマット及びプロトコルの間の変
換をし、前記メッセージ・ハンドリング・システム上の
前記ゲートウエイ間の通信はエンベロープ部とメッセー
ジ部とを含むプロトコル・データ単位で実行され、前記
エンベロープ部はメッセージ発信者を識別するデータと
メッセージ受信者を識別するゲートウエイを特定しない
データとを含み、 前記ルーチンはメッセージ・ハンドリングの間に必要な
サービスを実現するサービス・ルーチンを含み、 前記計算機手段は、複数の前記ルーチンを含む主処理タ
スクを実行するように動作可能であり、前記サービス・
ルーチンの少なくとも1つを呼び出すための前記主処理
タスクの呼び出しルーチンの実行中に、前記呼び出しル
ーチンを未処理にせずに前記主処理タスクの実行を更に
継続し、前記サービス・ルーチンを終わらせて通知ルー
チンを識別するジョブ・データを記憶し、記憶されたジ
ョブ・データによって識別された通知ルーチンを実行す
るように前記主処理タスク内のラン・ルーチンを実行す
ることを特徴とするネットワーク通信システム。 36、メッセージ処理用であって複数のメッセージの処
理を並列に実行可能な計算機手段を含み、各メッセージ
の処理が少なくとも1つのサービス・ルーチンの呼び出
しを含み、前記サービス・ルーチンが該サービス・ルー
チンの実行完了後に続いて呼び出されるべき通知ルーチ
ンを識別する引き数を伴って呼び出さ、前記サービス・
ルーチンは該サービス・ルーチンの実行完了時にジョブ
・データをキュー上にスケジュールし、複数のメッセー
ジに対する通知ルーチンに適するジョブ・データが前記
キュー上に置かれ、前記計算機手段が、それらのジョブ
・データが前記キュー上に置かれた順番で前記通知ルー
チンが実行されるようにラン・ルーチンを実行する手段
を含むことを特徴とするデジタル通信システム。 37、請求項36に記載のシステムにおいて、外部イベ
ントが前記キュー上に置かれるべきデータに、生じたイ
ベントを識別させ、前記ラン・ルーチンが更に前記キュ
ー上に置かれた前記データに応答してイベント通知ルー
チンを実行させることを特徴とするデジタル通信システ
ム。 38、請求項36に記載のシステムにおいて、前記イベ
ントが、外部イベントとタイマ・イベントを含むことを
特徴とするデジタル通信システム。 39、それぞれのアクセス装置に対して働く複数のゲー
トウエイを含むネットワーク通信システムにおいて、前
記ゲートウエイはメッセージ・ハンドリング・システム
を介して相互に通信するように接続されており、 前記複数のゲートウエイのそれぞれが、 そのゲートウエイが働く前記アクセス装置に対するアク
セスを提供するネットワーク・インターフェースと、 前記メッセージ・ハンドリング・システムとメッセージ
をやり取りするメッセージ転送インターフェースと、 前記メッセージ転送インターフェースに適合するソフト
ウエア・インターフェースと、 少なくとも1つの転送すべきメッセージと受け取ったメ
ッセージを処理するためのルーチンを実行する計算機手
段と、 前記メッセージ転送インターフェースと前記ソフトウエ
ア・インターフェースの間の通信を提供する前記複数の
ルーチンの汎用のものと、前記ゲートウエイに固有であ
って前記ネットワーク・インターフェースと前記ソフト
ウエア・インターフェースの間の通信を提供する前記複
数のルーチンの内の特定のものとを記憶する手段とを含
み、前記特定のルーチンはネットワーク・インターフェ
ースのフォーマット及びプロトコルと前記ソフトウエア
・インターフェースのフォーマット及びプロトコルの間
の変換をし、前記メッセージ・ハンドリング・システム
上の前記ゲートウエイ間の通信はエンベロープ部とメッ
セージ部とを含むプロトコル・データ単位で実行され、
前記エンベロープ部はメッセージ発信者を識別するデー
タとメッセージ受信者を識別するゲートウエイを特定し
ないデータとを含むことを特徴とするネットワーク通信
システム。 40、請求項39に記載のシステムにおいて、前記メッ
セージ・ハンドリング・システムがCCITT,X40
0標準に従うことを特徴とするネットワーク通信システ
ム。 41、請求項39に記載のシステムにおいて、前記メッ
セージ・ハンドリング・システムがCCITT,X40
0標準の1988年版に従うことを特徴とするネットワ
ーク通信システム。 42、請求項41に記載のシステムにおいて、前記ゲー
トウェイの1つがCCITT,X400標準の1984
年版ユーザ・エージェントに対するネットワーク・イン
ターフェースを含むことを特徴とするネットワーク通信
システム。 43、請求項39に記載のシステムにおいて、前記各ゲ
ートウエイによってアクセス可能な文書変換装置を含み
、そのメッセージ部が少なくとも文書の部分からなる任
意のプロトコル・データ単位の前記エンベロープ部が、
文書フォーマットを識別する情報を含み、各ゲートウエ
イの特定のルーチンの前記ライブラリが、受け取ったメ
ッセージの前記文書フォーマットを識別する受け取った
情報に応答して、前記文書フォーマットを識別する受け
取った情報が、前記受け取ったゲートウエイによって提
供される前記アクセス単位と非互換のフォーマットを識
別するとき、前記メッセージ部分を自動的に前記文書変
換装置に与えるルーチンを含み、それによってゲートウ
エイが受信者が受け取り得る文書フォーマットについて
考える事なく、任意の文書フォーマットを自由に転送す
ることを特徴とするネットワーク通信システム。 44、請求項39に記載のシステムにおいて、各ゲート
ウエイによってアクセス可能な少なくとも1つのディレ
クトリを含み、前記ライブラリ・ルーチンが、メッセー
ジの発信者及び受信者を識別するデータを発信者ゲート
ウエイにおいて前記少なくとも1つのディレクトリに与
えて前記メッセージ・ハンドリング・システムに従う標
準形式でそのようなデータの前記エンベロープ部に含ま
れることを決定するルーチンと、受け取ったプロトコル
・データ単位の前記エンベロープ部内の前記メッセージ
の発信者及び受信者を識別するデータを受信者ゲートウ
エイにおいて前記少なくとも1つのディレクトリに与え
て前記受信者ゲートウエイの前記ネットワーク・インタ
ーフェースによって要求される形式で少なくとも前記メ
ッセージ受信者を決定するルーチンとを含むことを特徴
とするネットワーク通信システム。 45、請求項44に記載のシステムにおいて、前記メッ
セージ・ハンドリング・システム上の総ての前記ゲート
ウエイによって直接アクセス可能なディレクトリを保持
する主ディレクトリ装置を含むことを特徴とするネット
ワーク通信システム。 46、請求項45に記載のシステムにおいて、前記主デ
ィレクトリ装置が、CCITT,X500標準に従うデ
ィレクトリであることを特徴とするネットワーク通信シ
ステム。 47、請求項44に記載のシステムにおいて、少なくと
も1つのゲートウエイが、前記他のゲートウエイによっ
て前記メッセージ・ハンドリング・システム及び前記1
つのゲートウエイを介して間接的にアクセス可能なディ
レクトリを保持するディレクトリ装置を含むことを特徴
とするネットワーク通信システム。 48、それぞれのアクセス装置に対して働く複数のゲー
トウエイを含み、前記ゲートウエイがメッセージ・ハン
ドリング・システムを介して相互に通信するように接続
されているネットワーク通信システムにおいて、メッセ
ージを取り扱う方法が、 (a)各ゲートウエイが働く前記アクセス装置に対する
アクセスを提供するネットワーク・インターフェースを
そのゲートウエイに提供し、 (b)前記標準メッセージ・ハンドリング・システムと
メッセージをやり取りするためのメッセージ転送インタ
ーフェースを各ゲートウエイに提供し、 (c)前記アクセス装置に適合する特定のルーチンのラ
イブラリによって、前記ネットワーク・インターフェー
スに入力されたメッセージを処理して、システム標準フ
ォーマットで中間メッセージを提供し、 (d)エンベロープ部とメッセージ部とを含む少なくと
も1つのプロトコル・データ単位に形成される、総ての
ゲートウエイにおいて実質的に同一のコア・ルーチンの
ライブラリによって前記中間メッセージを処理し、前記
エンベロープ部はメッセージの発信者と受信者とを識別
するデータを含むが前記メッセージ受信者のために働く
前記ゲートウエイを特定するデータは含まず、前記特定
のルーチンのライブラリは前記ネットワーク・インター
フェースのフォーマット及びプロトコルと前記中間メッ
セージのフォーマット及びプロトコルとの間で変換し、
前記コア・ルーチンのライブラリは前記中間メッセージ
のフォーマット及びプロトコルと前記メッセージ転送イ
ンターフェースのフォーマット及びプロトコルとの間で
変換し、 (e)前記メッセージ・ハンドリング・システム上の前
記少なくとも1つのプロトコル・データを前記メッセー
ジ転送インターフェースを介して転送する、 ステップからなるメッセージを取り扱う方法。 49、請求項48に記載の方法において、更に、 (f)前記メッセージ転送インターフェースを入力する
プロトコル・データ単位を、中間メッセージを形成する
ために、前記コア・ルーチンのライブラリによって処理
し、 (g)前記中間メッセージを、局所メッセージを形成す
るために、前記特定のルーチンのライブラリによって処
理し、 (h)前記局所メッセージを前記ネットワーク・インタ
ーフェースを介してアクセス装置に転送する、 ステップを含むメッセージを取り扱う方法。 50、請求項48に記載の方法において、前記メッセー
ジ・ハンドリング・システムが、CCITT,X400
標準の1988年版に従うことを特徴とするメッセージ
を取り扱う方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/604,696 US5377191A (en) | 1990-10-26 | 1990-10-26 | Network communication system |
EP90311828A EP0483421B1 (en) | 1990-10-26 | 1990-10-29 | Method of operating a digital computer system |
CA002028918A CA2028918A1 (en) | 1990-10-26 | 1990-10-30 | Network communication system |
AU65664/90A AU6566490A (en) | 1990-10-26 | 1990-10-30 | Network communication system |
JP2295194A JPH04167040A (ja) | 1990-10-26 | 1990-10-31 | ネットワーク通信システム |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/604,696 US5377191A (en) | 1990-10-26 | 1990-10-26 | Network communication system |
EP90311828A EP0483421B1 (en) | 1990-10-26 | 1990-10-29 | Method of operating a digital computer system |
CA002028918A CA2028918A1 (en) | 1990-10-26 | 1990-10-30 | Network communication system |
AU65664/90A AU6566490A (en) | 1990-10-26 | 1990-10-30 | Network communication system |
JP2295194A JPH04167040A (ja) | 1990-10-26 | 1990-10-31 | ネットワーク通信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04167040A true JPH04167040A (ja) | 1992-06-15 |
Family
ID=27507165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2295194A Pending JPH04167040A (ja) | 1990-10-26 | 1990-10-31 | ネットワーク通信システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US5377191A (ja) |
EP (1) | EP0483421B1 (ja) |
JP (1) | JPH04167040A (ja) |
AU (1) | AU6566490A (ja) |
CA (1) | CA2028918A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008502233A (ja) * | 2004-06-07 | 2008-01-24 | ナインティー9.コム ピーティーワイ リミテッド | 通信をルーティングする方法および装置 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2783617B2 (ja) * | 1989-10-31 | 1998-08-06 | キヤノン株式会社 | カラー画像処理装置及び方法 |
JPH04176235A (ja) * | 1990-11-08 | 1992-06-23 | Nintendo Co Ltd | ゲーム機用通信アダプタ |
US5517636A (en) * | 1992-01-07 | 1996-05-14 | Unisys Corporation | Platform independent data communication system and method |
US20020131574A1 (en) * | 1992-04-24 | 2002-09-19 | Alleman James H. | Interactive system for optimizing service economy |
CA2097564C (en) * | 1992-06-16 | 2004-05-25 | David L. Phillips | Method of coupling open systems to a proprietary network |
US5577202A (en) * | 1992-08-24 | 1996-11-19 | Trw Inc. | Message handling system for automated gateway between first and second handling systems wherein first envelope is added to a second envelope respectively without changing text |
JPH06318945A (ja) * | 1993-05-07 | 1994-11-15 | Sharp Corp | ネットワーク間相互接続装置 |
US5828836A (en) * | 1993-10-08 | 1998-10-27 | International Business Machines Corporation | Networked information communication system |
JP3448947B2 (ja) * | 1994-04-11 | 2003-09-22 | 株式会社日立製作所 | リモート印刷システムおよびそのリモート印刷方法 |
US5845072A (en) * | 1994-11-10 | 1998-12-01 | International Business Machines Corporation | Method and apparatus for parallel and pipelining transference of data between integrated circuits using a common macro interface |
SE9404294D0 (sv) * | 1994-12-09 | 1994-12-09 | Ellemtel Utvecklings Ab | sätt och anordning vid telekommunikation |
US5706286A (en) * | 1995-04-19 | 1998-01-06 | Mci Communications Corporation | SS7 gateway |
US5742845A (en) | 1995-06-22 | 1998-04-21 | Datascape, Inc. | System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network |
US5706434A (en) * | 1995-07-06 | 1998-01-06 | Electric Classifieds, Inc. | Integrated request-response system and method generating responses to request objects formatted according to various communication protocols |
US5832506A (en) * | 1996-03-29 | 1998-11-03 | Intel Corporation | Directory for network servers |
US5940598A (en) * | 1997-01-28 | 1999-08-17 | Bell Atlantic Network Services, Inc. | Telecommunications network to internetwork universal server |
US6219692B1 (en) | 1997-03-21 | 2001-04-17 | Stiles Invention, L.L.C. | Method and system for efficiently disbursing requests among a tiered hierarchy of service providers |
US6330608B1 (en) | 1997-03-31 | 2001-12-11 | Stiles Inventions L.L.C. | Method and system of a computer system for establishing communications between a service provider and a central service factory and registry in a computer system |
US6072806A (en) * | 1997-05-02 | 2000-06-06 | Aspect Telecommunications Corporation | Message-based communication system |
US5974449A (en) * | 1997-05-09 | 1999-10-26 | Carmel Connection, Inc. | Apparatus and method for providing multimedia messaging between disparate messaging platforms |
US6381633B2 (en) | 1997-05-09 | 2002-04-30 | Carmel Connection, Inc. | System and method for managing multimedia messaging platforms |
US5987516A (en) * | 1997-10-07 | 1999-11-16 | Nortel Networks Corporation | Method of gathering information pertaining to calls between nodes in a connection-oriented network |
US7265853B1 (en) * | 1997-10-17 | 2007-09-04 | Stamps.Com, Inc. | Postage server system and method |
US6118864A (en) * | 1997-12-31 | 2000-09-12 | Carmel Connection, Inc. | System and method for providing communication on a wide area network |
US6122666A (en) * | 1998-02-23 | 2000-09-19 | International Business Machines Corporation | Method for collaborative transformation and caching of web objects in a proxy network |
US6072865A (en) * | 1998-03-23 | 2000-06-06 | Mci Communications Corporation | Enhanced call forwarding with termination notification |
US6205414B1 (en) * | 1998-10-02 | 2001-03-20 | International Business Machines Corporation | Methodology for emulation of multi-threaded processes in a single-threaded operating system |
US6400810B1 (en) * | 1999-07-20 | 2002-06-04 | Ameritech Corporation | Method and system for selective notification of E-mail messages |
ES2237022T3 (es) * | 1999-12-02 | 2005-07-16 | Sony International (Europe) Gmbh | Mensajeria instantanea. |
US6487278B1 (en) | 2000-02-29 | 2002-11-26 | Ameritech Corporation | Method and system for interfacing systems unified messaging with legacy systems located behind corporate firewalls |
US6498835B1 (en) * | 2000-02-29 | 2002-12-24 | Ameritech Corporation | Method and system for providing visual notification in a unified messaging system |
US6438215B1 (en) | 2000-02-29 | 2002-08-20 | Ameritech Corporation | Method and system for filter based message processing in a unified messaging system |
US8099501B1 (en) * | 2000-06-15 | 2012-01-17 | Unisys Corporation | Adapter architecture |
US7369648B1 (en) | 2000-07-06 | 2008-05-06 | Purplecomm, Inc. | Apparatus and method for PBX-integrated unified messaging services on a switched backbone |
FR2825217B1 (fr) * | 2001-05-25 | 2005-09-23 | Bruno Marie Robin | Procede et dispositif d'acheminement de courrier avec conversion entre une forme physique et une forme electronique |
US20030014516A1 (en) * | 2001-07-13 | 2003-01-16 | International Business Machines Corporation | Recovery support for reliable messaging |
US20030023775A1 (en) * | 2001-07-13 | 2003-01-30 | International Business Machines Corporation | Efficient notification of multiple message completions in message passing multi-node data processing systems |
US7426486B2 (en) * | 2001-10-31 | 2008-09-16 | Call-Tell Llc | Multi-party reporting system and method |
US7212301B2 (en) * | 2001-10-31 | 2007-05-01 | Call-Tell Llc | System and method for centralized, automatic extraction of data from remotely transmitted forms |
US8151003B2 (en) * | 2002-02-05 | 2012-04-03 | International Business Machines Corporation | System and method for routing data by a server |
GB2429371B (en) * | 2004-04-26 | 2008-03-26 | J P Morgan Chase Bank | System and method for routing messages |
US7698351B1 (en) * | 2006-04-28 | 2010-04-13 | Netapp, Inc. | GUI architecture for namespace and storage management |
US8755372B2 (en) * | 2009-04-27 | 2014-06-17 | Five9, Inc. | Secure customer service proxy portal |
US20110314256A1 (en) * | 2010-06-18 | 2011-12-22 | Microsoft Corporation | Data Parallel Programming Model |
US8589867B2 (en) | 2010-06-18 | 2013-11-19 | Microsoft Corporation | Compiler-generated invocation stubs for data parallel programming model |
US9280541B2 (en) | 2012-01-09 | 2016-03-08 | Five9, Inc. | QR data proxy and protocol gateway |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3676846A (en) * | 1968-10-08 | 1972-07-11 | Call A Computer Inc | Message buffering communication system |
US4475190A (en) * | 1982-05-27 | 1984-10-02 | At&T Bell Laboratories | Method and apparatus for controlling ports in a digital conference arrangement |
US4475189A (en) * | 1982-05-27 | 1984-10-02 | At&T Bell Laboratories | Automatic interactive conference arrangement |
US4685125A (en) * | 1982-06-28 | 1987-08-04 | American Telephone And Telegraph Company | Computer system with tasking |
US4562550A (en) * | 1983-11-01 | 1985-12-31 | General Electric Company | Remote load control relay processor |
US4620283A (en) * | 1983-11-29 | 1986-10-28 | Lehigh University | Programmable load controller |
US4658351A (en) * | 1984-10-09 | 1987-04-14 | Wang Laboratories, Inc. | Task control means for a multi-tasking data processing system |
US4734931A (en) * | 1986-03-21 | 1988-03-29 | American Telephone And Telegraph Company And At&T Information Systems Inc. | Integrated calling directory |
-
1990
- 1990-10-26 US US07/604,696 patent/US5377191A/en not_active Expired - Lifetime
- 1990-10-29 EP EP90311828A patent/EP0483421B1/en not_active Expired - Lifetime
- 1990-10-30 CA CA002028918A patent/CA2028918A1/en not_active Abandoned
- 1990-10-30 AU AU65664/90A patent/AU6566490A/en not_active Abandoned
- 1990-10-31 JP JP2295194A patent/JPH04167040A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008502233A (ja) * | 2004-06-07 | 2008-01-24 | ナインティー9.コム ピーティーワイ リミテッド | 通信をルーティングする方法および装置 |
JP4724717B2 (ja) * | 2004-06-07 | 2011-07-13 | ナインティー9.コム ピーティーワイ リミテッド | 通信をルーティングする方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0483421B1 (en) | 1997-04-02 |
CA2028918A1 (en) | 1992-05-01 |
AU6566490A (en) | 1992-06-25 |
EP0483421A1 (en) | 1992-05-06 |
US5377191A (en) | 1994-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04167040A (ja) | ネットワーク通信システム | |
US5566337A (en) | Method and apparatus for distributing events in an operating system | |
EP0543512A2 (en) | Multiprocessor system | |
US5513328A (en) | Apparatus for inter-process/device communication for multiple systems of asynchronous devices | |
US20100153957A1 (en) | System and method for managing thread use in a thread pool | |
EP0649545B1 (en) | Virtual radio interface | |
US10303529B2 (en) | Protocol for communication of data structures | |
US6532498B1 (en) | Method and system for event notification between software application program objects | |
US5381346A (en) | Virtual data source for a radio transceiver | |
US7076551B2 (en) | Using remote procedure calls to manage co-processor resources | |
US5363315A (en) | Method of communications between and within virtual radio interface standard layers | |
CN109558235A (zh) | 一种处理器的调度方法、装置及计算机设备 | |
EP1265148B1 (en) | Using software interrupts to manage communication between data processors | |
US7496924B2 (en) | Dispatching messages among registered software modules in telecommunications system including telephony internet server coupled between packet network and PBX | |
US20030147383A1 (en) | Object communication services software development system and methods | |
DE69030382T2 (de) | Verfahren zum Betreiben eines Digitalrechnersystems | |
CA1307854C (en) | Local area print server | |
JP2861195B2 (ja) | ダウンローディングシステム | |
JPH04270535A (ja) | 通信制御方法 | |
Thielmans et al. | Implementation issues of TRANS-RTXc on the Transputer | |
JPH0546571A (ja) | 分散処理システム | |
Goel et al. | Asynchronous messaging using message-oriented-middleware | |
Baek et al. | Interaction Contortion a Distributed Multiagent System | |
Choi et al. | Message-based agent communications in a tightly coupled multiagent system | |
JP2000267960A (ja) | プロセス間のパケット通信方法及びパケット通信装置 |