JPH11512852A - Computer system for information flow processing - Google Patents

Computer system for information flow processing

Info

Publication number
JPH11512852A
JPH11512852A JP9513475A JP51347597A JPH11512852A JP H11512852 A JPH11512852 A JP H11512852A JP 9513475 A JP9513475 A JP 9513475A JP 51347597 A JP51347597 A JP 51347597A JP H11512852 A JPH11512852 A JP H11512852A
Authority
JP
Japan
Prior art keywords
frame
routine
processing
information flow
computer system
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
Application number
JP9513475A
Other languages
Japanese (ja)
Inventor
レイング・マイケル・ピー
Original Assignee
プレジデント・アンド・フェローズ・オブ・ハーバード・カレッジ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by プレジデント・アンド・フェローズ・オブ・ハーバード・カレッジ filed Critical プレジデント・アンド・フェローズ・オブ・ハーバード・カレッジ
Publication of JPH11512852A publication Critical patent/JPH11512852A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Devices For Executing Special Programs (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 汎用手順が、フレームのシーケンスによりあらわされる情報フローを処理することが出来る。何れのフレームも任意の数の属性を有し、しかもその属性の各々はタイプと値を有する。属性は又フレームでもあり、これにより情報フローの再帰的な処理が可能である。フレームの共通の処理は、各種のシンタクティックおよびセマンティック特性を有する情報フローを取り扱うことの出来る単一の手順に包括されている。単一手順は、通信プロトコル、コンピュータ内通信およびセキュリティ暗号化方式プロトコルを同時に処理することが出来る。手順はハードウエア、又はフレームウエアにおいて具体化されうる。 (57) [Summary] A general procedure can process an information flow represented by a sequence of frames. Each frame has any number of attributes, each of which has a type and a value. Attributes are also frames, which allow recursive processing of the information flow. The common handling of frames is subsumed in a single procedure that can handle information flows with various syntactic and semantic properties. A single procedure can simultaneously handle communication protocols, intra-computer communications and security encryption protocols. The procedure may be embodied in hardware or in frameware.

Description

【発明の詳細な説明】 情報フロー処理のためのコンピュータシステム 関連する出願 本出願は、本願明細書の一部をなすものとしてここに引用する19995年9 月15日に出願された米国仮出願第60/003,786号による優先権を主張 するものである。 発明の背景 コンピュータ内、又はコンピュータ間の情報フローは、それが使用される為に 、意味が抽出されることを可能にする構造を持たねばならない。情報の符号化は 、一般にシンタックスと呼ばれ、又用語セマンティクスは、実施すべき動作を暗 示することの出来る情報の意味に対して用いられる。情報フローは、多岐に渡る 。通常、特定の非普遍的な方法は、コンピュータ内でのかかるフローの各タイプ とレベルの処理に関連している。 プロトコルを普遍化する為に、プロトコルのシンタックス(“回線上の構文” のように見えるもの)をプロトコルのセマンティクス(いかに処理されるかを意 味する構文)につなぐ為の一般的な方法がある。これは処理を行う為に互いに呼 び出す再帰ルーチンをつくることによって達成される。この先行技術は、プログ ラム化することが困難であり、コンピュータ資源が高価につき、又汎用化するこ とが困難である。 発明の概要 フレームは、情報およびその構造を人工知能システムにおいて表現する為の一 般的な方法である。本質的に、フレームは1組の属性であり、フレーム中の各属 性はタイプと値を有する。更に、あらゆる属性は、それ自身フレームとなりうる 。コンピュータ内、又はコンピュータ間の情報フローの多くは、フレームのシー ケンスとしてあらわすことが出来る 。 本発明による一般的な装置と方法は、フレームのシーケンスとしてあらわすこ との出来る情報フローを処理する。本発明の好ましい実施形態は、広範なシンタ クティックおよびセマンティック特性を処理する情報フローを効果的に取り扱う 単一の処理エンジンに於けるフレームの共通の処理を包含する。この構成は、情 報フローを抽象的に扱い、入力を提供する為に或るクラスの低レベルルーチン( “アダプタルーチン”と呼ばれる)、又は処理タスクを完了するのに必要な具体 的な動作を実施する他のクラスの低レベルルーチン(“アクションルーチン”と 呼ばれる)を利用する。一般的なエンジンでの困難な繰り返しと再帰を実行する ことにより、アダプタおよびアクションルーチンは簡単および小さくされ、従っ てプログラム化が容易となる。 好ましくは、処理エンジンは共通コアエンジンと多数のサポートルーチンを含 む。サポートルーチンは、属性のスタックとフレームのスタックのような少なく とも一つの階層的なメモリストアを操作する。サポートルーチンは、属性のスタ ック内へ格納する合成属性をも作り出すことが出来る。更に好ましくは、処理エ ンジンは、リエントラントでマルチスレッド化が可能である。 情報フローは、各種の情報をあらわすことが出来る。情報フローは、コンピュ ータ間通信の為のプロトコルに基づいたをコンピュータ間のデータのストリーム であることが可能である。情報フローは、又コンフィグレーションおよび環境情 報のようなコンピュータ内通信をもあらわすことが出来る。処理エンジンは、ま た、言語プロセッサとして見ることも出来る。 図面の簡単な説明 本発明の上記および他の目的、特徴ならびに利点は、部品の構造および組合せ の各種の新規な詳細を含み、以下のより詳細な図面および情報 フローを処理する為のコンピュータシステムの好ましい実施形態から明らかに知 ることが出来、異なる図をとおして同じ部品には同じ符号が附されている。発明 を具体化する特別の装置と方法は、図解の目的でのみ示されており、発明を限定 する意味を持つものではなく、主として発明の原理を図解することに意図が置か れていると理解されたい。本発明の原理と特徴は、本発明の範囲を逸脱すること なく各種の実施形態に用いることが出来る。 図1Aは、コンピュータネットワークを介して情報を交換する為の従来のシス テムを示すブロック線図である。 図1Bは、図1Aの従来のシステムにより処理することの出来る代表的な電子 メールメッセージを示すブロック線図である。 図2は、本発明の基本的な実施形態を示す簡単化されたブロック線図である。 図3は、本発明の好ましい実施形態の更に詳細なブロック線図である。 図4は、本発明の好ましい実施形態の初期化されたメモリストアの概略線図で ある。 図5は、図4の代表的なメモリストアにデータが格納されたメモリストアの概 略線図である。 図6は、図3の“endFrame”ルーチン125呼び出し後の図5のメモリストア の概略線図である。 図7は、図3の“setAttribute”ルーチン135呼び出し後の図6のメモリス トアの概略線図である。 図8は、図3の“upAttribute ”ルーチン145呼び出し後の図7のメモリス トアの概略線図である。 図9は、並列処理およびパイプライン技術を用いる本発明の好ましい実施形態 のブロック線図である。 図10は、図9のシステムのためのメモリ構成のブロック線図である 。 好ましい実施形態の詳細な説明 図1Aは、コンピュータネットワークを介した情報の交換の為の従来のシステ ムを示すブロック線図である。図1Aに示すように、2つのコンピュータ1,2 は、独自の定められた通信プロトコルを有するイーサネットのようなコンピュー タネットワーク3を介して情報を交換している。第1のコンピュータ1は、ネッ トワークプロトコルからのデータをユーザーに提供することの出来る情報に解析 する手順の層を含む。図1Aのように、コンピュータ1,2は、同一の内部手順 層を有する。然し、2つのコンピュータ1,2は、通常、異なるプロトコルの層 を通して解析することが出来る。図2は、図1Aの従来のシステムにより処理す ることの出来る代表的な電子メールメッセージである。 簡単に説明すれば、ネットワークインターフェースルーチン(NIF)は、ネ ットワークから情報フローを受信し、ネットワークプロトコル層を処理する。伝 送制御プロトコル(TCP)手順は、TCP層を処理する。単純メール転送プロ トコル(SMTP)手順は、SMTP層を処理する。RFC822手順は、メー ルプロトコル層を処理する。最後に、ユーザー手順は、情報をユーザーに示す。 ユーザーにより作られたメッセージは、該当のコンピュータ手順により、ネット ワーク3を経て宛て先コンピュータに伝送する為にネットワークプロトコルに変 換される。 本発明によるコンピュータシステムの好ましい実施形態は、適切な情報フロー を処理するメインタスクを3つの別個のサブタスクに分割することを容易にし、 サブタスクの一つはあらゆるこのような情報フローに全般的に適用される処理エ ンジンである。 情報フローは、Marvin Minsky,“知識を現すフレームワーク(A Framework f or Representing Knowledge ”,in the Psychology of Computer Vision211−227頁(P.H.Winston ed.,McGraw-Hill )(197 5)により定められるフレームと見なされることが出来る。ここで使用されてい るように、フレームは属性の集まりであり、属性は名前と値を有する。属性は、 又再帰を作り出すフレームでもあり得る。 図2は、本発明の基本的な実施形態の概略ブロック線図である。処理エンジン 10は、その責任として次のものを有する。1)情報フローがフレームのシーケ ンスであることの確認、および2)シーケンスを処理する為の繰り返しと再帰と を含むメイン制御ロジックである。少なくとも一つのアダプタルーチン20は、 入って来る情報フローIiの走査、フレームの境界および属性の確認,ならびに 処理エンジン10にフレームの境界および属性を見つけた時に信号することに対 して責任を負う。多数のアクションルーチン30は、処理エンジンにより動作状 態にされた時に、情報フローIiのコンポーネントの実際の処理を実行する責任 を負う。アクションルーチン30も又出力情報フローIoを作り出すことが可能 である。情報フローIoは、アダプタルーチン20により再帰的に処理されるこ とが可能である。 処理エンジン10は、各種のコンピュータに移植することの出来る汎用手順で あり、アダプタルーチン20およびアクションルーチン30は、目的のコンピュ ータに対してプログラマにより特別に書かれる。好ましくは、複数のアダプタル ーチン20が存在し、その各々が特定のプロトコルに対して特別に書かれている 。後述のように、処理エンジン10、アダプタルーチン20およびアクションル ーチン30は、プログラム化が極めて簡単である。何故ならば、入って来る情報 フローIiは、データのフレームのシーケンスとして扱われるからである。 図3は、発明の好ましい実施形態の概略ブロック線図である。図において、長 い矢印は、制御信号をあらわし、又点から延びる短い矢印は、データのフローを あらわす。処理エンジンの汎用ルーチンは、鎖線の枠内に示されているのに対し 、非汎用ルーチン(環境に対して特別にプロ グラム化された)は鎖線の枠外に示されている。 処理エンジン10は、2つの主要なコンポーネント、コアエンジンとして動作 するリエントラントフレームプロセッサ(FRAP)12と複数メモリコンテキ スト100とを備えた形で図示されている。処理エンジン10は、複数の入って 来る情報フローIi、少なくともアダプタ20当たり一つの情報フローを受信す る複数コンテキストにリンクされたアダプタルーチン20と通信する。処理エン ジン10は、複数ポテンシャル呼び出しルーチン50により起動される。通常、 各呼び出しルーチン50は、衝突を回避する為に、少なくとも一つのコンテキス トを取得する。処理エンジン10は、又汎用アクションルーチン30および特別 のコンテキストにリンクされたアクションルーチン60,70,80とも通信す る。 端的には、各メモリコンテキスト100は、多数のサポートルーチンにより維 持されている。サポートルーチンは、“putFrame”ルーチン105、“putAttri bute”ルーチン110、“startFrame”ルーチン115、“process Attribute ”ルーチン120、“endFrame”ルーチン125、“initContext ”ルーチン1 30、“setAttribute”ルーチン135、“getAttribute”ルーチン140、“ upAttribute ”ルーチン145および一般に150として示される可能な他のサ ポートルーチンを含む。各アダプタルーチン20は、それぞれメモリコンテキス トを伴う。図示されたように、第1アダプタ21が情報フローI21を受信し、該 当のメモリコンテキスト101を伴う。同様に、第2アダプタ22は、情報フロ ーI22を受信し、該当のメモリコンテキスト102を伴う。 同様に図示されているのは“checkFrame”ルーチン60、“initFrame ”ルー チン70および“finishFrame ”ルーチン80である。これらの特別なアクショ ンルーチンの各例は、該当のメモリコンテキストおよびアダプタの対を伴う。例 えば、第1アダプタルーチン21は、第1メモリコンテキスト101、第1の“ checkFrame”ルーチン61、第1の “initFrame ”ルーチン71および第1の“finishFrame ”ルーチン81を伴う 。ルーチンが呼び出される時には、呼び出された特定のルーチンは、コンテキス トにより左右される。メモリの場合には用いられる階層的なメモリストアーはコ ンテキストによって決まる。 汎用アクションルーチン30も又出て行く情報フローIoを作り出すことが出 来るが、これは次にまわされ、フレームプロセッサ12の別の呼び出しを通して 処理されることが出来る。これは、アクションルーチン30が、呼び出しルーチ ンとしてフレームプロセッサ12を再び呼び出すことにより通常果たされる。 処理は、呼び出しルーチン51から始まる。呼び出しルーチン51は、最初に 新しいコンテキストを作り出す為に“initContext ”ルーチン130を呼び出し 、各種のルーチン、情報フローおよびそのコンテキストを有するメモリを伴う。 コンテキストに対する唯一の識別子が呼び出しルーチン51に戻される。呼び出 しルーチン51は、次にフレームプロセッサ12を起動し、コンテキストを渡す 。フレームプロセッサ12は、入って来る情報フローI21を監視している該当の アダプタルーチン21に信号を送る。アダプタルーチン21は、 START OF FR AME 、又は END OF FRAME 、又はATTRIBUTE 信号をフレームプロセッサ12に 送る。 START OF FRAME 信号を受信すると、フレームプロセッサ12は、コンテキ ストを渡す該当の“startFRAME”ルーチン115に信号を送る。“startFRAME” ルーチン115は、現在および新しいフレーム名をメモリから検索する。“star tFRAME”ルーチン115は、次にコンテキスト、現在のフレーム名および新しい フレーム名を渡す該当の“checkFRAME”ルーチン61を呼び出す。“checkFRAME ”ルーチン61は又コンテキスト、現在のフレーム名および新しいフレーム名を 渡す他のアクションルーチン30をも呼び出す。 “startFRAME”ルーチン115は、次に新しいフレームを現在のフレ ームとし、コンテキスト、現在のフレーム名および包含するフレーム名を渡す該 当の“initFRAME ”ルーチン71を呼び出す。“initFRAME ”ルーチン71は、 又コンテキスト、現在のフレーム名および包含するフレーム名を渡す他のアクシ ョンルーチン30をも呼び出す。 フレームプロセッサ12は、次にアダプタルーチン21からATTRIBUTE 信号を 受け取ることが出来る。ATTRIBUTE 信号に反応して、フレームプロセッサ12は “processAttribute”ルーチン120を呼び出し、属性をメモリに格納する為に コンテキストを渡す。 フレームプロセッサ12は、次にアダプタルーチン21から END OF FRAME 信号を受信することが出来る。これに反応して、フレームプロセッサ12は、コ ンテキストをともなって“endFrame”ルーチン125を呼び出す。“endFrame” ルーチン125は、フレーム名をメモリコンテキストから検索して取り出し、“ finishFrame ”ルーチン81を呼び出す。“finishFrame ”ルーチン81には、 コンテキストとフレーム名が渡される。“finishFrame ”ルーチン81も又アク ションルーチン30を呼び出し、名前とコンテキストを渡す。 図から知ることの出来るように、フレームプロセッサ12は、信号の経路を守 る。実際に、フレームプロセッサ12は、如何なる値も受け取らず、信号のみを 受け取る。コンテキストメモリを用いることによりフレームプロセッサ12は、 リエントラントおよびマルチスレッド化にされることが出来る。これらおよび他 のルーチンは、次に詳述することとする。 メモリコンテキストは、唯一の識別子を有する階層的なメモリストアである。 各メモリコンテキストは、2つのスタック、即ちフレームスタックおよび属性ス タックと対になる。各属性は、フレームに対応している。スタックでは、最後に 格納され、従って最も必要とされると考えられる属性がスタックの一番上に在る 。スタックに格納された属性は、処理を容易に利用することが出来る。別の属性 が必要とされ、しかもそれ がトップフレームで供給されない時には、スタックは上から下迄走査されて属性 が下(即ち外側フレーム層)から継承される。コンテキストは、3つの付随の情 報ストリームを有する。即ち、入力ストリーム、出力ストリームおよびエラー出 力ストリームである。コンテキストメモリ100は、本発明には必要ではないが 、然しコンテキストメモリ100の使用は或る利点を提供することに留意すべき である。 基本文法 この処理システムの例は、公式の文法を備える。この文法は、ここでは英語で 表現されているが、YACC、又はBISONのような幾つかの文法解析により 直接実行可能なコンピュータ手順に解析されることが出来る。これが処理エンジ ン10を実装するコンピュータ手順を作り出す多くの同等の方法の中の一つであ る。示されているのは文法の要素と文法の一部ではない説明的なコメントである 。 文法の中では引用符の中の語は、特定の意味を持つ文法の本質的な要素をあら わし、1)すべてが大文字のワードは、アダプタルーチンから処理エンジンへの 入力信号をあらわし、2)大文字と小文字が混じり大文字で始まっている語は、 処理エンジン内で内部的に用いられ文法規則により入力から導かれ、3)大文字 と小文字が混じり小文字で始まる語は、フレームプロセッサ12により呼び出さ れるルーチンである。 1.“FrameList ”は、 a.“Frame ” 又は b.“Frame ”リストに続く“Frame ” である。 “FrameList ”は、唯一の“Frame ”から成ることのあるフレームのシーケン スである。これが最初の規則である故に、得られたコンピュータ手順は、その入 力された情報フローのすべてがフレームのシーケンス としてのカテゴリーに入れられることが出来ることを期待し、それが事実でなけ ればエラーを返送する。このルールは、処理エンジン10の制御構造における最 初のレベルの繰り返しを提供する。 2.“Frame ”は下記の通りである。 a.“ START OF FRAME ”(“startFrame”ルーチンを実行 する)に続く“SubFrameList”に続く “ END OF FRAME ”(“endFrame”ルーチンを実行する) 又は b.“ START OF FRAME ”に続く“ END OF FRAME ” (“startFrame”ルーチンを実行し、次に“endFrame” ルーチンを実行する)。 “Frame ”はスタート(“ START OF FRAME ”)およびエンド(“ END OF FRAME ”)を有し、又選択的に“SubFrameList”を含み、ルーチン(“startF rame”および“endFrame”)は文法により指示された適切な時点で実行される。 3.“SubFrameList”は下記の通りである。 a.“SubFrame” 又は b.“SubFrameList”に続く“SubFrame”。 “SubFrameList”は、唯一の“SubFrame”から成ることの出来るSubFrameのシ ーケンスである。この規則は、処理エンジン10の制御構造における第2レベル の繰り返しを提供する。 4.“SubFrame”は次の通りである。 a.“Frame” 又は b.“ATTRIBUTE ”(“process Attribute ”ルーチンを実行 する)。 “SubFrame”は、それ自身“Frame ”であるか、又は“Attribute ” であり、後者の場合にはアクションルーチン“processAttribute”が呼び出され る。この規則は、処理エンジン10の制御構造における再帰を提供する。 上記の文法は、以下の実行し得るプログラムで処理することの出来る言語で記 載される。垂直のバー(|)は言語の中で「又は」を示し、又呼び出されるルー チンは大カッコ({})の中に置かれる。 1. FrameList: Frame|FrameList frame 2. Frame: START OF FRAME {startFrame(); }SubFrameList END OF FRAME {endFrame(); } | START OF FRAME END OF FRAME {startFrame(); endFrame(); } 3. SubFrameList: SubFrame|SubFrameList SubFrame 4. SubFrame: ATTRIBUTE {processAttribute(); }|frame 属性は、実際にはタイプと値であるから、規則は属性を定めることにまで拡大 することが出来る。然し、タイプおよび値を含むように規則を拡大することは、 情報フローを処理するタスクを複雑化することがある。この理由で規則は、この 実施形態では拡大されることはない。 基本的な実施形態の第1の補足例 簡単に上述したとおり、図2に基づいて記載された基本的な実施形態には、フ レームおよびその属性の処理を容易にする汎用アクションルーチンを追加するこ とが出来る。図3によればこれらの追加ルーチンの大部分は、内部的なもの、即 ちそれらは処理エンジン自身によってしか呼び出されることは出来ない。一つの ルーチンは、外部的なもの、即ち非汎用アクションルーチンがそれを呼び出すこ とが出来る。 後述するいくつかの場合には、フレームに関連するアクションルーチンの呼び 出しが引用されている。この様な関連を果たすには、多くの方法がある。すべて のフレームを一つのかかるルーチンに関連させる方法 、フレーム名を呼び出すルーチンを決める為に用いる方法、ルーチンを決める為 のフレームの利用可能な属性を用いる方法等がある。オブジェクト指向プログラ ミング環境において、フレームとオブジェクトとの照応を行うことは、関連性を 提供するのとは別の方法である。これらのルーチンは、フレーム名、ならびに属 性名および値を用いて実行される。これらの項目の何れか、又はすべては複雑で あることがある、即ち、付随のデータ項目の集まりから成り、又その何れかが複 雑であることが考えられる。 外部的な“startFrame”サポートルーチン115は、最初に非汎用アクション ルーチン(例えば“checkFrame”61)を呼び出し、これに2つの値を渡す。2 つの値は、現在のフレームの名(もしあれば)およびスタートした新しいフレー ムの名(もしあれば)。現在のフレームの名は、後述のフレーム名の階層的なメ モリストアから導き出されている。新しいフレーム名は、アダプタルーチン21 から処理エンジン10に、次に“startFrame”ルーチン115に渡されているか 、或いは何等かの方法でルーチン115に利用可能にされていることもあり得る が、何れにしろ新しいフレーム名はこの時点ではメモリに暫定的に格納されてい る。“checkFrame”ルーチン61を呼び出す目的は、新しいフレームの完全な初 期化の前に、現在のフレームに関連するルーチンを実行させることに在る。かか るルーチンは、何等かの処理を実行することが可能であり、通常、現在のフレー ム内で新しいフレームを処理することの有効性をチェックすることも考えられる 。“checkFrame”ルーチン61がエラーを返す時には、“startFrame”ルーチン 115は、属性と入れ子構造のフレームとを有する新しいフレームをとばすこと が出来る。 先行のステップの成功度により当然視される時には、“startFrame”ルーチン 115は次に新しいフレームの名の恒久的な格納を引き起し、従ってこれは現在 のフレームとなる。フレーム名は、各階層レベルにおいて処理中フレーム名を含 むコンピュータメモリ空間を動的に構成する 為に用いられる。現在のフレームは、一番上のレベルに在り、一番下のレベルは 常に通常“ROOT”と名付けられた絶対的なフレームにより占有され、しかもこの フレームは論理的にあらゆる他のフレームを含み、システムおよびサポートルー チンの初期化と同時に存在する。 図4は、初期化されたメモリストアの好ましい実施形態の概略図である。コン ピュータメモリ空間は、汎用アクションルーチンにより専用的に保有され、この ルーチによってのみ直接アクセスの可能なフレーム名の階層的メモリストア(ス タックFRAME )を備える。フレーム名の階層的メモリストアは後述のような対応 する属性名のストア(スタックATTR)および値に関連付けられている。デフォル トにより“ROOT”フレームは、ヌル属性“NULL”に関連付けられているが、特定 の属性および値はATTRスタックに格納されることが可能であり、後述のように後 続のフレームにより継承されるべき“ROOT”フレームに関連付けられることがあ る。 図5は、データが格納されている図4の代表的なメモリストアの概略図である 。属性の名前および値のメモリストアは、後入れ先出しスタックとして、属性の 名と値が逆の順序でシーケンス的にアクセスされ(最後に入ったものから最初に 出て行く)、又現在フレームに対応するすべての属性の名前および値をスタック から取り出すことが出来る方法で論理的に構成される。フレーム名のメモリスト アと同様に、属性名のメモリストアおよび対応する値は、非汎用的なアクション ルーチンにより専用的に保有され、それによってのみ直接アクセスすることが出 来る。 再び図3によれば“startFrame”サポートルーチン115が次に非汎用ルーチ ン(例えば“initFrame ”71)を呼び出し、それに次の2つの値を渡す。今で は現在のフレームである新しいフレームの名(もしあれば)および現在のフレー ムの名(もしあれば)である。フレーム名は、上述のフレーム名の階層的メモリ ストアから導出される。“initFrame ”ルーチン71を呼び出す目的は、現在の (新しい)フレームに関連 するルーチンが属性および/又は含まれるフレームの処理の前に実行されること を可能にすることに在る。かかるルーチンは、あらゆる種類の処理を行うことが 可能であり、又通常、親フレーム内の現在の(新しい)フレームの処理の有効性 をチェックすることが出来る。“initFrame ”ルーチン71はエラーを戻すこと 、“startFrame”ルーチン115は、属性および入れ子構造の任意の深さまでフ レームを有する現在の(新しい)フレームをとばすことが出来る。 “initFrame ”ルーチン71の呼び出しと上述の“checkFrame”ルーチン61 の呼び出しの組合せは、フレームを伴う非汎用アクションルーチンに対して処理 の階層化を容易に実施する為の機会を提供し、しかもこの場合各フレームは何れ のフレームがそのフレームを含み、そのフレームが何れのフレームを含むことが 出来ることを定め、又包含するフレームが常に包含されるフレームに優先する。 内部的な“process Attribute ”サポートルーチン120は、フレーム名の階 層的なメモリストアに対応するメモリへの属性の名前と対応する値の格納を引き 起こす。属性の名前および値は、アダプタルーチンから処理エンジン10に、又 次に“process Attribute ”ルーチン120に渡されるか、又はルーチン120 に何等かの他の方法で利用可能にされていることが考えられる。 内部的な“endFrame”サポートルーチン125は、非汎用アクションルーチン (例えば“finishFrame ”81)を呼び出し、上記のフレーム名の階層的メモリ ストアから導き出された現在のフレーム名(もしあれば)を非汎用アクションル ーチンに渡す。“finishFrame ”ルーチン81を呼び出す目的は、すべての含ま れる属性およびフレームがこの時点で完全に処理される故に、フレームの処理を 完了するフレームを伴うルーチンを呼び出すことを可能にすることに在る。“fi nishFrame ”ルーチンの完了時に、現在のフレームに付随するすべての属性の名 前と値は、メモリストアから論理的に除去され、現在のフレーム名も又除去され 、包含するフレームが現在フレームにされる。 図6は、“endFrame”ルーチン125を呼び出した後の図5のメモリストアの 概略図である。フレームF3およびその対応の属性A4,A5がスタックから取 り出されており、現在のフレームは現在F2であることに留意が必要である。 再び図3に戻り、外部的な“getAttribute”サポートルーチン140は、通常 、フレームに関連する非汎用アクションルーチンから呼び出される。このルーチ ンは、属性ネームが渡されることを期待し、次に論理的に属性の名前および値の スタックを、一致する名前が見つけられるか、又はスタック内のすべての候補属 性の走査を終わる迄逆の順序で(最後に入ったものから最初に出て行くもの迄) 走査する。一致する名前が見つけられた時には、ルーチンは対応する値を呼び出 し元に返すか、さもなければ呼び出し元に属性が見つけられなかったことを通知 する。 上記のメカニズムにより、属性の値は、階層的な方法で論理的にあらわされ、 しかもこの場合、特定の名前で格納された最新の値が常に返却され、同じフレー ムレベル、又は高いレベルに設定されたその名前に伴う以前の値は無効とする。 この方式は、包含されたフレームによる属性の継承を提供し、しかもこの場合、 アダプタルーチンが情報フローからの属性を提供しなかったフレームは、その属 性を階層構造において高いレベルの包含しているフレームから継承することが出 来、又与えられた属性の値は常に処理中のフレームに対応する属性の値に最も近 い値である。再び図5および6によれば、フレームF1に付随する属性A2は、 より新しいフレームF2に対応する属性A2により無効にされる。これらの属性 は、異なった値を持つことが出来る。 基本的な実施形態の第2の補足例 追加サポートルーチンは、又上記の基本的な実施形態に対する有用な拡張を追 加することにより、フレームのシーケンスとコンピュータ言語 のファミリーを備えるには充分に複雑なフレームの処理との確定を可能にする。 図3に戻り、外部的な“setAttribute”サポートルーチン135は、通常、フ レームに関連する非汎用アクションルーチンから呼び出される。このルーチンは 、属性の名前および値を与えられることを期待し、その名前および値を他のサポ ートルーチンと共有する内部的な階層的メモリストアに置く。この様にして設定 された属性は、情報フロー自身から受け取らずにアクションルーチンにより作り 出された為に合成属性と呼ばれる。“setAttribute”ルーチン135は、あたか も情報フローから受け取られたかのように現在のフレームに付随する属性を格納 する。この装備(facility)の効果は、現在のフレームに関連するアクションル ーチンにとって情報をお互いに渡すため、および継承により包含されたフレーム に渡すための方法を提供することである。 図7は、“setAttribute”ルーチン135の呼び出し後の図6のメモリストア の概略図である。属性A6は、属性スタック(ATTR)に置かれ、現在のフレーム F2(図6から決定された)に対応する。 図3に戻ると、外部的な“upAttribute ”サポートルーチン145は、又通常 フレームに付随する非汎用アクションルーチンから呼び出される。このルーチン も属性の名前および値を与えられることを期待し、それらを他のサポートルーチ ンと共有する内部的な階層的メモリストアに置く。然し、この様に作り出された 合成属性は、現在のフレームではなくその直接の親フレームに付随する。階層的 メモリストアは、あたかも合成属性が親フレームの情報フローから受信した最後 の属性であり、調節の前に存在する現在のフレームの属性がそれに続くかのよう に見える様に調節される。論理的には現在のフレームに対応する属性のセットは 、階層的メモリストアから取り除かれ保存され、次に現在のフレームがメモリス トアから取り除かれ保存され、包含するフレームが現在のフレームにされ、新し い合成属性が格納され、保存されたフレームが格納さ れ(現在のフレームになり)、又最後に保管された属性のセットの中の各属性は その当初の順に格納される。 図8は、“upAttribute ”ルーチン145の呼び出しの後の図7のメモリスト アの概略図である。属性A7は、属性スタック(ATTR)に置かれ、親フレームF 1に対応する。現在のフレームF2は、その属性A2,A6との対応を持続する 。 この装備(facility)の一つの効果は、継承と反対である。即ち、アクション ルーチンに値を階層構造上で戻す方法を提供することにより、値が導出され、高 いレベルのフレームに関連するアクションルーチンの作用を受けることを可能に する。更に合成属性は、現在のフレームを頂点とする階層的サブツリーの外側の 下流フレーム(情報フローの中でその後に出現するフレーム)により継承される ことが出来る。上記の作用によりこのルーチンは、フレームを属性に帰着させる 為の一般的な装備(facility)を提供する。即ちフレーム、およびその属性と包 含されたフレームとがあれば、それらのすべては、このルーチンの作用により設 定される合成属性により情報フローの中で置き換えられるように見ることが出来 る。 複雑な情報オブジェクト(フレーム)を簡単なもの(属性)に変え処理階層上 で他のサポートルーチンおよび基本的な実施形態と共に結果を戻す為のこの一般 装備(facility)は、情報フローの処理をそれらがコンピュータ言語と考えるこ との出来る程に複合的に機能させる。然し言語は、フレームのシーケンスとして 表現出来なければならない。 図3に戻ることにより他の有用なパブリックサポートルーチン150、又は特 別な目的の属性が、追加的な装備(facility)をアクションルーチンに利用可能 なもの、階層的メモリストアに対してより詳細および/又は完全なアクセスを提 供することが可能であり、アクションルーチンを処理中のフレームおよび属性内 を検査させ、できる限り各エレメントに関するより詳細な情報を検索する。別の クラスのルーチン、又は合 成属性は、フレームの処理に影響を及ぼす、例えば、フレームおよびその属性お よび包含されたフレームの残りの処理をとばす方法を提供することが出来る。別 のクラスのルーチン又は属性は、フレーム又はフレームに付随するアクションル ーチンが、包含されたフレームに付随するアクションルーチンにより外部的なサ ポートルーチンへのアクセスの機能を停止又は加減することを可能にする。これ は、包含するフレームおよびそのアクションルーチンが、その中で包含されたフ レームのアクションルーチンの権限を制御する階層構造に基づく保障方式に機能 を付与することが出来るであろう。追加的なクラスの合成属性は、属性値の正規 の検索(retrieval )を変化させることが可能である.例えば,特別なタイプの 合成属性は、合成属性の対応フレームの範囲内で下流のアクションルーチンから の属性の存在をゼロにし、又は覆い隠すことが出来よう。 基本的な実施形態の第3の補足例 追加的なサポートルーチンおよび他のルーチンに対する僅かな修正が上記の基 本的な実施形態を更に拡大することにより、コンパクトに実装され、アクション ルーチンのプログラマの負担が軽減され、完全にリエントラントで、マルチスレ ッド化が可能となる。即ち、複数の情報フローが衝突することなく同時に可能と なる。 外部的な“initContext ”ルーチン130は、引き数として4つの非汎用ルー チンを呼び出す為に必要な情報を用いる。4つのルーチンは“adapter ”ルーチ ン21、“checkFrame”ルーチン61、“initFrame ”ルーチン71、および“ finishFrame ”ルーチン81であり、“input ”、“output”および“error ou tput”の3つの情報フローを呼び出すのに必要な情報である。外部的な“initCo ntext ”ルーチンは、他のものとは識別し得る新しい階層的なメモリストア(メ モリコンテキスト)を初期化して4つのルーチン、情報フローおよび新しいメモ リコンテ キストを共にリンクするコンテキストと呼ばれる唯一のアイテムを戻し、それら が他のルーチンにより使用されることの出来るようにする。 複数のコンテキストが、一度に動作可能になりうる。各汎用ルーチンおよび汎 用ルーチンにより呼び出される各非汎用ルーチンは、他の引き数に加え、引き数 としてコンテキストを受け取る。新しいコンテキストは、現在のコンテキストの メモリストアに包含されるか、又は新しいコンテキストの特別のメモリ体系とし て見えるように現在のコンテキストの上に継ぎ足される。多数のこれらのコンテ キストは、並列的に存在することが可能であり、木構造的なメモリ構造を定めて いる。各実行スレッドは、少なくとも一つのメモリコンテキストを確立する。コ アエンジンは、メモリコンテキストのツリーをメモリが実行スレッド中に安全に 共有される方法で管理する。 外部的な“putFrame”サポートルーチン105は、通常アダプタルーチンから 呼び出される。ルーチン105は、フレーム名を渡され、名前の格納の為にメモ リコンテキストを用意する。同様に、外部的な“putAttribute”サポートルーチ ン110は、属性の名前および値を渡され、それらの格納の為のメモリコンテキ ストを用意する。 アダプタルーチンから名前と値の直接的な変化を与えることにより、処理エン ジン10のコア実装は簡単となる。何故ならば、名前および値を受け取ってそれ らを内部で格納し、それらを他のルーチンに渡すことを必要としないからである 。これによりシステムの実行速度が短縮し、その内部メモリの必要性が大幅に減 少する。 他の有用なルーチンは、コンテキストを操作することが出来る。ルーチンは、 或るコンテキストの内容をコピーし、階層的なメモリストアの状態を新しいコン テキストの中で使用する為に分離増殖することが出来よう。他のルーチンが、メ モリコンテキストを合併するために案出されうる。 本発明によるシステムへの別の補足は、マルチスレッド化である。属 性の有効な値に基づきシステムは、各フレームを一つのシーケンスで処理する為 に並列実行スレッドを自動的に生成する。 これのみならずルーチンは、一つのスレッドの出力を(フレームシーケンスと して)別のスレッドの入力に接続する為のスレッドパイプを作り出すことを可能 にする。 本発明による好ましい処理エンジンは、マルチスレッド化に基づく少なくとも 2つのサービスを提供する。これらのサービスは、即ち、直列フレームシーケン ス自動“並列処理”とスレッド間のフレームシーケンスのパイプライン(“スレ ッドパイプ”)である。アダプタルーチンがフレームのシーケンスを受け取る時 に、並列処理は自動的に起きる。各完全なフレームが受け取られると、汎用エン ジンはフレームを処理する為の実行のスレッドを手早く処理し(dispatch)、次 に直ちにアダプタルーチンを呼び出して次のフレームを入手する。フレームの階 層的性質ならびに汎用エンジンのリエントラントおよび再帰的な属性の故に、こ の並列処理機能は並列実行スレッドを同時に実行することを可能にし、フレーム のシーケンスを受け取り処理することを順番に従って実行する。スレッドパイプ は、一方のスレッドの実行のアクションルーチンからの出力(フレームシーケン スとして)を他方のスレッドのアダプタルーチンの入力に動的に接続する。この 好ましい構成は、複雑な情報フローにおける継続的なレベルの動的な並列化を考 慮に入れている。加えて、各レベルの処理ルーチンは、比較的簡単かつ個別に保 たれることが出来る。 図9は、並列処理およびパイプライン技術を用いる本発明の好ましい実施形態 のブロック線図である。情報源105からの情報フローを処理する為の呼び出し アプリケーション100が図示されている。アプリケーション100は、フレー ムプロセッサ110を呼び出す。フレームプロセッサ110は、第1TCPアダ プタ120および多数のTCPアクションルーチン130a,130b,130 cを並列に実行することが 出来る。TCPアダプタ120は、情報源105からTCP要求ストリームを認 識する。実際のプロトコルは、アクションルーチン130により処理される。各 アクションルーチン130aは、情報源105からのフレームシーケンスを処理 する為に多数のフレームプロセッサ140a,150a,160aを並列に実行 することが出来る。最初のフレームプロセッサ140aは、第2TCPアダプタ 142aを呼び出し、このTCPアダプタ142aはTCPポートからのフレー ムを認識する。第2TCPアダプタ142aからの属性は、TCPフレームプロ セッサ140aを介して第2TCPアクションルーチン144aに送られる。第 2TCPアクションルーチン144aは、パイプ出力146aに解析したフレー ムのシーケンスを置く。包含TCPアクションルーチン130aは、例えば、呼 び出されるSMTPフレームプロセッサ150aを有し、TCPフレームプロセ ッサ150aはフレームのシーケンスをTCPパイプ出力146aからSMTP パイプ入力152aに移動する。フレームのシーケンスは、SMTPアクション ルーチン154aを用いてSMTPフレームプロセッサ150aにより処理され 、しかもアクションルーチン154aはフレームの解析されたシーケンスをSM TPパイプ出力156aに置く。これらのフレームのシーケンスは、MIMEア クションルーチン164aを用いてMIMEフレームプロセッサ160aにより 処理される。MIMEパイプ出力166aを用いることにより、追加的なフレー ムプロセッサが、フレームシーケンスを更に処理することが出来る。 図10は、図9のシステムに対するメモリ構成のブロック線図である。アプリ ケーションルート210に対するメモリストアおよび第1TCPアダプタ220 に対するメモリストアは、共通のメモリコンテキスト205により包含される。 図9のTCPアクションルーチン130a,130b,130cの各々は、夫々 メモリストア230a,230b,230cを有し、その各々は夫々メモリコン テキスト235a,235b ,235cを、図示するように、有する。更に、TCPフレームプロセッサ14 0a、SMTPフレームプロセッサ150a、およびMIMEフレームプロセッ サ160aは夫々メモリストア240a,250a,260aを有し、しかもこ れらは夫々メモリコンテキスト245a,255a,265aにより包含される 。 システムの利点 再帰および繰り返しの制御構造は、コンピュータプログラミングの最も困難で 誤りを犯し易い点の一つである。マルチスレッド化も又同様にプログラムに取り 入れることが困難である。これらの点を包括することにより、処理エンジンは、 情報フローを処理する為のコンピュータ手順の開発の残りのタスクを現在の方法 よりも遥かに簡単にすることが出来る。加えて、タスクの論理的な分離を容易に することより、処理エンジン10の使用を通じて極めて独立性の高い、再使用の 可能なコンポーネントを持つコンピュータプログラムが得られる。従って、処理 エンジン10は、情報フローを処理することを更に容易にすることが出来る。 処理エンジン10は、極めて規則正しくコンパクトである為に小型で速い演算 ルーチンにおいて実装することが出来る。好ましい実施形態では、処理エンジン は、従来技術よりも有意に速い場合がある。 処理エンジン10は又、広範である。通常、数層の情報フローがコンピュータ 内で処理されねばならず、しかもこの場合、上位層は論知的に、又は物理的に下 位層の中に包括されている。同様にコンピュータは、多くの情報フローを同時に 並列に処理することを要求されることがある。これらの各ケース、又は組合わさ れたケースにおいて、フレームプロセッサ12の単一の場合はコアプロセスとし て、適切なアダプタおよびアクションルーチンを与えられ、タスクおよびメモリ 管理に対して標準の技術を利用することにより使用されることが出来る。従って 、処理エンジンの使用は、使用される演算コンポーネントの数を減らし、共通の アーキテクチャおよび残りのコンポーネントの為の単一コアプロセスを提供し、 残りの各コンポーネントを簡単化することにより、演算に於ける情報フローの処 理の複雑さを大幅に軽減する。 処理エンジン10は、現在の方法の場合よりも情報フローの更に複雑な形を効 果的に利用することを可能にする。本方法は、再帰を包括する故に、情報フロー の中で用いられるべきフレームの全面的に再帰的なパワーに対して再帰を容易に する。この事は、情報フローを扱う処理ルーチンを作成することの困難さを高め ることなく、情報フローの設計に次々と別の規模を加える。従って、情報フロー の設計者は、彼等の設計を更に複雑にすることが可能となる。何故ならばシステ ムは、それらを処理する為に容易に使用することが出来るからである。例えば、 抽象構文記法(ASN.1)および基本的な符号化規則(Basic Encoding Rules )の国際標準化機構(ISO)の規定は、極めて強力で効果的なプロトコルであ るが、理解と処理の点で困難である為に、衰退している。処理エンジン10は、 このプロトコルを使用することを容易にする。 システムの使用例 コンピュータプログラムがコンピュータにおいて実行されると、情報が最初に 、コンピュータオペレーティングシステムおよび他の情報源から各種の形でその 実行プログラムに渡される。これら情報源には、下記に限定されることはないが コマンドライン引き数、環境変数、コンフィグレーションファイルおよびシステ ムコールの結果が含まれる。各情報源に特定のアダプタルーチンを用いることに より、多分入れ子構造のフレームとしてこれらの情報源を処理することにより、 コンピュータプログラムの主たる部分は、そのオペレーティング環境との直接的 な接触から守られることが可能であり、従って環境間でより容易に移植される。 特に、値は、値を“ROOT”フレームに対応させることにより、スタートアップ時 に属性スタック上に置くことが出来る。 複雑なコンピュータオペレーティングシステム環境では多くのコンピュータ処 理動作プログラムが存在し、これらはネットワークを介して他のコンピュータと 通信する作業に携わっている。各プログラムは通常単一のタイプの情報フローを 扱い、しばしば長く複雑でユニークな処理ルーチンを有する。処理エンジンを用 いて実装される場合、一つの処理エンジンと複数の(一般的に簡単で小型の)ア ダプタおよびアクションルーチンのセットを用いて、一つのプロセスで実行され る単独プログラムにこれらのプログラムを組み込むことが可能となる。得られる プロセスは、遥かに速く実行され、それが取代わったプログラムよりも小型で維 持が容易である。 ネットワーク化されたコンピュータ環境では、情報フローは異なる層のコンピ ュータプログラムおよび/又はルーチンにより累進的に処理される下位レベルの ビット符号としてネットワークの物理的なネットワークを離れて現れる。処理エ ンジンを用いることにより、層は別個の状態に保つことが可能である(異なるア ダプタおよびアクションルーチンにより)。しかし、処理のコアに本発明を用い ることにより、全処理は簡単化され、よりコンパクト化され、高速化されること が出来る。好ましい実施形態においては、コンピュータシステムは、従来技術で 用いられていた直接プログラム化された方法よりも2〜3倍高速に操作し、オペ レーティングシステムを用いて操作する実施形態に組み合わされた時には約20 〜30倍小型化されることが出来る。 幾つかの情報フローは、画面に表示されるべき、又はプリントされるべき情報 をあらわす。特別な目的のインタープリンタが、通常この解釈を実施する為に用 いられる。本発明は、情報フローがフレームのシーケンスとしてあらわすことの 出来る時には、共通コアエンジンを持つ、より汎用的なインタープリンタを開発 するのに用いることが出来る。 別の例は、セキュリティ暗号方式であり、この場合の技術は当然層で処理され る。これらの層は、処理エンジンにより容易に扱われるフレー ムとしてあらわされる。 処理エンジン10は、それがハードウエア、又はフアームウエアにおいて容易 に実装されることのできる程充分に小型である。したがって、処理エンジンは、 下記に限定されることはないが、電子機器、工作機械および医療機器を含む他の 装置と通信が必要な特別な装置に含めるのに極めて有用である。加えて、かかる 装置は、内部情報フローを処理する為に処理エンジンを使用することが出来る。 例えば、プリンタは、本発明のROMをベースとする実装に、上記の技術を用い ることが出来る。 プロトコルの詳細な例 付属書類の付録Aは、単純なサンプルプロトコルの為の完全なフレームプロセ ッサの実施である。字句のスキャナ(lexer)は、入力プロトコルをトーク ンに分割する。この例ではlexerは括弧をベースとするプロトコルを理解し 、その一例は次のようなものである。(F1(a1 v1) (a2 v2)) 。これは“F1”の名を持つ“フレーム”の例として読み取られ2つの“属性” 、“a1”および“a2”を持ち、その値は夫々“v1”および“v2”である 。フレームは“入れ子構造”が可能である為に、(F1(a1 v1)(F2( a2 vs)(a3vd))は、有効である(又属性およびフレームは任意の順 番とレベルで混在することが出来る)。然しlexerは、階層的に取り扱う必 要はなく、トークンを認識し、これを次の手順に渡しさえすれば良い。 この例のコアエンジンは、lexerにより渡される記号的なトークンを扱う のみでプロトコル自身を扱うことはない。従ってコアエンジンは、lexerが 適切である限り、その意味的モデルに適合するあらゆるプロトコルを取り扱うこ とが出来る。フレームプロセッサにとって許容されるトークンは、次に限られる 。FRAME TYPE,END OF FRAME、およびATTRIBUTE 。フレームプロセッサは、 lexerからの入力に 基づく階層的な構造を形成し、属性−値の対“スコープ”されたシンボルテーブ ルを含む内部データ構造(スタックおよびヒープ)を維持する。これにより、“ 入れ子構造”のフレームによる属性の“スコープ”された継承が可能となる。 “アクション”ルーチンは、“main”から成り、しかもこれは必要な初期 化、例えばSTDINおよびSTDOUTを実行した後に、フレームプロセッサ (FRED1)を呼び出し、又フレームプロセッサがプロトコルの処理に於ける 特定時点で呼び出す“コールバック”ルーチンを有する。特定時点とは、フレー ムが初期化された時、サブフレームが現れた時、およびフレームの終わりが現れ た時である。コードにはサンプルディスパッチテーブルがある。コールバックル ーチンは、正しく“スコープ”された値を戻し、次に何でも行う“get ”ルーチ ンにより属性値にアクセスすることが出来る。アクションルーチンは、フレーム プロセッサにより絶縁されている入力プロトコルの詳細とは完全に独立している 。 下記のファイルが付録Aにおいて提供されている。 i)makefile ii)fredi.y−bison 文法 iii)fredi.h iv)paren.1−括弧プロトコルlexer v)frame.c−サンプル main、ディスパッチテーブル、およびア クションルーチン (2つのフレームタイプが定められ、それらの各々は3つのアクションルーチン を有する。アクションルーチンは幾つかの属性の現在の値をプリントアウトする ) vi)test.in−サンプル入力ファイル(lexerは余分な空白を無視 する) 付属書類の付録Bは、フレームプロセッサ(FREDI)を現実界の プロコトールに対応させるのに必要とされるプログラミングの例である。ファイ ルfredi.hは、如何にフレームプロセッサを使用するかに就いて文書を提 供する。 付属書類の付録Cは、付録Bの例に対してコアフレーム処理エンジンを提供す るバイナリライブラリのソースバージョンである。ソースコードの添付のバージ ョンは、“upAttribute ”装備を含む合成属性を取り扱う。定めれられているよ うにエンジンは、ほぼリエントラントである、何故ならば、静的記憶域の要求が 約100バイトに減らされたからである。これらの100バイトは、ルーチンを リエントラントにする為に各コンテキストの一部にされることが出来る。 均等の技術 本発明は、特に好ましい実施形態に基づいて図示および記載されたが、当業者 は、請求の範囲により限定された発明の範囲を逸脱することなく形態と詳細に各 種の変更を加えることが可能であると理解される。 これらのおよびあらゆる他の変更は請求の範囲により包含されることが意図さ れる。 DETAILED DESCRIPTION OF THE INVENTION                Computer system for information flow processing Related applications   This application is hereby incorporated by reference. Claims U.S. Provisional Application No. 60 / 003,786, filed on March 15 Is what you do. Background of the Invention   The flow of information within or between computers depends on how it is used. Must have a structure that allows the meaning to be extracted. The encoding of the information Is commonly referred to as syntax, and the term semantics implies the action to be performed. Used for the meaning of information that can be shown. Information flows vary widely . Usually, certain non-universal methods are based on each type of such flow in a computer. And related to level handling.   To make the protocol universal, the syntax of the protocol (“syntax on the line” (Like what looks like) in protocol semantics (how it is handled). There is a general way to connect to (tasteful syntax). It calls each other for processing. This is achieved by creating a recursive routine that runs out. This prior art is Computer resources are expensive, and computer resources are expensive. And difficult. Summary of the Invention   Frames are a way to represent information and its structure in artificial intelligence systems. This is a general method. In essence, a frame is a set of attributes, each attribute in a frame. Sex has a type and a value. Furthermore, any attribute can itself be a frame . Much of the information flow within or between computers depends on the sequence of frames. Can be represented as Kens .   The general apparatus and method according to the invention can be represented as a sequence of frames. Process the information flow that can be done. The preferred embodiment of the present invention Effectively handle information flows that handle ctictic and semantic properties Includes common processing of frames in a single processing engine. This configuration is A class of low-level routines (such as (Referred to as “adapter routines”), or the specifics needed to complete the processing task. Other classes of low-level routines ("action routines") To be called). Perform difficult iterations and recursion on common engines This makes adapters and action routines simple and small, and And programming becomes easy.   Preferably, the processing engine includes a common core engine and a number of support routines. No. Support routines are as low as the attribute stack and the frame stack. Operate one hierarchical memory store. The support routines are responsible for attribute It is also possible to create composite attributes to be stored in the lock. More preferably, treatment Engines can be re-entrant and multi-threaded.   The information flow can represent various types of information. The information flow is Data stream between computers based on a protocol for data communication It is possible that The information flow also includes configuration and environmental information. It can also represent intra-computer communication such as information. The processing engine It can also be viewed as a language processor. BRIEF DESCRIPTION OF THE FIGURES   The above and other objects, features and advantages of the present invention reside in a structure and combination of parts. More detailed drawings and information below, including various new details of Obvious from the preferred embodiment of the computer system for processing flows The same parts are denoted by the same reference symbols throughout the different figures. invention Specific devices and methods embodying the invention are shown for illustrative purposes only, and limit the invention. It is intended primarily to illustrate the principles of the invention. Please understand that it is. The principle and features of the present invention depart from the scope of the present invention. Instead, it can be used in various embodiments.   FIG. 1A shows a conventional system for exchanging information via a computer network. It is a block diagram showing a system.   FIG. 1B shows a typical electronic device that can be processed by the conventional system of FIG. 1A. It is a block diagram showing a mail message.   FIG. 2 is a simplified block diagram illustrating a basic embodiment of the present invention.   FIG. 3 is a more detailed block diagram of the preferred embodiment of the present invention.   FIG. 4 is a schematic diagram of an initialized memory store of the preferred embodiment of the present invention. is there.   FIG. 5 is an outline of a memory store in which data is stored in the representative memory store of FIG. FIG.   FIG. 6 shows the memory store of FIG. 5 after calling the “endFrame” routine 125 of FIG. FIG.   FIG. 7 shows the memory of FIG. 6 after calling the "setAttribute" routine 135 of FIG. It is a schematic diagram of a tore.   FIG. 8 shows the memory of FIG. 7 after calling the "upAttribute" routine 145 of FIG. It is a schematic diagram of a tore.   FIG. 9 shows a preferred embodiment of the present invention using parallel processing and pipeline technology. FIG.   FIG. 10 is a block diagram of a memory configuration for the system of FIG. . Detailed Description of the Preferred Embodiment   FIG. 1A shows a conventional system for exchanging information via a computer network. FIG. 3 is a block diagram showing a system. As shown in FIG. 1A, two computers 1 and 2 Is an Ethernet-like computer with its own defined communication protocol. Information is exchanged via the network 3. The first computer 1 Analyzes data from the network protocol into information that can be provided to the user Steps to include. As shown in FIG. 1A, computers 1 and 2 share the same internal procedure. With layers. However, the two computers 1 and 2 usually have different protocol layers. Can be analyzed through FIG. 2 illustrates processing by the conventional system of FIG. 1A. This is a typical e-mail message that can be used.   Briefly, the network interface routine (NIF) It receives information flows from the network and processes the network protocol layers. Biography The Transmission Control Protocol (TCP) procedure handles the TCP layer. Simple mail forwarding pro The Tocol (SMTP) procedure handles the SMTP layer. The RFC822 procedure is Process protocol layers. Finally, the user procedure presents the information to the user. Messages created by the user will be sent to the Internet via the appropriate computer procedures. Change to network protocol for transmission to destination computer via work 3 Is replaced.   The preferred embodiment of the computer system according to the present invention provides a suitable information flow Facilitates splitting the main task of processing into three separate subtasks, One of the subtasks is a processing element that generally applies to any such information flow. It is engine.   The information flow is described by Marvin Minsky, “A Framework for Representing Knowledge (A Framework f or Representing Knowledge ”, in the Psychology of Computer Vision 211-227 (P.H. Winston ed., McGraw-Hill) (197) It can be regarded as a frame defined by 5). Used here As such, a frame is a collection of attributes, which have a name and a value. The attributes are It can also be a frame that creates recursion.   FIG. 2 is a schematic block diagram of a basic embodiment of the present invention. Processing engine 10 has the following responsibilities: 1) The information flow is the sequence of the frame And 2) repetition and recursion to process the sequence Is the main control logic. At least one adapter routine 20 Incoming Information Flow IiScanning, checking frame boundaries and attributes, and To signal the processing engine 10 when it finds frame boundaries and attributes And take responsibility. A number of action routines 30 are activated by the processing engine. When activated, information flow IiResponsible for performing the actual work of the component Bears. The action routine 30 also performs the output information flow I.oCan produce It is. Information Flow IoIs recursively processed by the adapter routine 20. And it is possible.   The processing engine 10 is a general-purpose procedure that can be ported to various computers. Yes, the adapter routine 20 and the action routine 30 Data is written specially by the programmer. Preferably multiple adapters Routines 20, each of which is specifically written for a particular protocol . As described later, the processing engine 10, the adapter routine 20, and the action The routine 30 is very easy to program. Because the incoming information Flow IiIs treated as a sequence of data frames.   FIG. 3 is a schematic block diagram of a preferred embodiment of the invention. In the figure, the length Arrows indicate control signals, and short arrows extending from points indicate the flow of data. It represents. The general routines of the processing engine are shown inside the dashed box, , Non-generic routines (specially (Grammed) are shown outside the dashed line.   Processing engine 10 operates as two major components, the core engine Reentrant frame processor (FRAP) 12 and multiple memory context And a strike 100. The processing engine 10 includes a plurality of Coming Information Flow IiReceive at least one information flow per adapter 20 Communication with the adapter routine 20 linked to the multiple contexts. Processing en The gin 10 is activated by a multiple potential calling routine 50. Normal, Each calling routine 50 has at least one context to avoid collisions. To get The processing engine 10 also includes a generic action routine 30 and a special Also communicates with action routines 60, 70, 80 linked to the context of You.   Briefly, each memory context 100 is maintained by a number of support routines. Is held. The support routines are “putFrame” routine 105, “putAttri bute "routine 110," startFrame "routine 115," process Attribute " "Routine 120", "endFrame" routine 125, "initContext" routine 1 30, the "setAttribute" routine 135, the "getAttribute" routine 140, upAttribute "routine 145 and other possible services generally indicated as 150 Including port routines. Each adapter routine 20 has its own memory context Accompanied by As shown, the first adapter 21 has the information flow Itwenty oneReceiving the With the relevant memory context 101. Similarly, the second adapter 22 transmits the information flow. ー Itwenty twoWith the corresponding memory context 102.   Also shown are the "checkFrame" routine 60 and the "initFrame" routine. Chin 70 and "finishFrame" routine 80. These special actions Each example of a routine includes an appropriate memory context and adapter pair. An example For example, the first adapter routine 21 executes the first memory context 101, the first “ checkFrame ”routine 61, first With an "initFrame" routine 71 and a first "finishFrame" routine 81 . When a routine is called, the specific routine called Depends on In the case of memory, the hierarchical memory store used is Determined by the textbook.   Information flow I that also exits the generic action routine 30oCan produce But this will be passed on through another call to the frame processor 12 Can be processed. This is because the action routine 30 calls the calling routine. This is usually accomplished by calling the frame processor 12 again as the   The processing starts from the calling routine 51. The calling routine 51 first Call the "initContext" routine 130 to create a new context , With various routines, information flow and memory with its context. The unique identifier for the context is returned to calling routine 51. Call Next, the routine 51 activates the frame processor 12 and passes the context. . The frame processor 12 determines whether the incoming information flow Itwenty oneMonitoring the applicable A signal is sent to the adapter routine 21. Adapter routine 21 is called START OF FR AME or END OF FRAME or ATTRIBUTE signal to frame processor 12 send.    START OF Upon receiving the FRAME signal, the frame processor 12 A signal is sent to the corresponding "startFRAME" routine 115 that passes the strike. “StartFRAME” Routine 115 retrieves the current and new frame names from memory. “Star The tFRAME "routine 115 then proceeds with the context, the current frame name and the new The corresponding "checkFRAME" routine 61 for passing the frame name is called. “CheckFRAME "Routine 61 also returns the context, current frame name and new frame name. The other action routine 30 to be passed is also called.   The “startFRAME” routine 115 transfers the next new frame to the current frame. That passes the context, the current frame name and the containing frame name. The corresponding "initFRAME" routine 71 is called. The “initFRAME” routine 71 Also, other actions that pass the context, the current frame name and the containing frame name Also calls the application routine 30.   The frame processor 12 then sends the ATTRIBUTE signal from the adapter routine 21. I can receive it. In response to the ATTRIBUTE signal, the frame processor 12 Call the “processAttribute” routine 120 to store the attribute in memory Pass context.   The frame processor 12 then returns from the adapter routine 21 to END OF FRAME The signal can be received. In response, the frame processor 12 The "endFrame" routine 125 is called with the text. “EndFrame” The routine 125 retrieves and retrieves the frame name from the memory context, call the "finishFrame" routine 81. In the "finishFrame" routine 81, The context and frame name are passed. The “finishFrame” routine 81 is also activated. Call the application routine 30, passing the name and context.   As can be seen from the figure, the frame processor 12 protects the signal path. You. In fact, the frame processor 12 does not receive any values, but only the signal receive. By using the context memory, the frame processor 12 It can be reentrant and multithreaded. These and others Will be described in detail below.   A memory context is a hierarchical memory store with a unique identifier. Each memory context has two stacks, a frame stack and an attribute stack. Pair with Tuck. Each attribute corresponds to a frame. In the stack, finally The attribute that is stored, and therefore considered most needed, is at the top of the stack . The attributes stored in the stack can be easily used for processing. Another attribute Is needed, and it is When is not supplied in the top frame, the stack is scanned from top to bottom and attributes Is inherited from below (ie, the outer frame layer). Context consists of three incidental information Information stream. Input stream, output stream and error Power stream. Although the context memory 100 is not required for the present invention, However, it should be noted that the use of context memory 100 offers certain advantages. It is. Basic grammar   An example of this processing system comprises a formal grammar. This grammar is used here in English Is expressed but by some grammatical analysis like YACC or BISON Can be analyzed into directly executable computer procedures. This is the processing engine Is one of many equivalent ways of creating computer procedures to implement You. Shown are grammar elements and descriptive comments that are not part of the grammar .   Within the grammar, words in quotation marks identify essential elements of the grammar that have a particular meaning. 1) All uppercase words must be passed from the adapter routine to the processing engine. Represents the input signal, 2) words that start with a capital letter 3) uppercase, derived from input by grammar rules used internally in the processing engine Words that start with a lowercase letter mixed with lowercase letters are called by the frame processor 12. It is a routine to be performed. 1. “FrameList” is       a. “Frame”         Or       b. "Frame" following the "Frame" list It is.   "FrameList" is a sequence of frames that may consist of only one "Frame" Is. Because this is the first rule, the resulting computer procedure is All of the input information flow is a sequence of frames Hope that it can be put in the category as If an error is returned. This rule is the highest in the control structure of the processing engine 10. Provides the first level of repetition. 2. “Frame” is as follows.       a. “START OF FRAME ”(Execute the“ startFrame ”routine           ) Followed by “SubFrameList”           “END OF FRAME ”(Execute the“ endFrame ”routine)         Or       b. “START OF "END" following "FRAME" OF FRAME "           (Execute “startFrame” routine, then “endFrame”           Execute the routine).   “Frame” starts (“START OF FRAME ") and end (" END OF FRAME "), and optionally includes a" SubFrameList "and a routine (" startF "rame" and "endFrame") are executed at the appropriate time as indicated by the grammar. 3. “SubFrameList” is as follows.       a. “SubFrame”         Or       b. "SubFrame" following "SubFrameList".   “SubFrameList” is a subframe list that can consist of only one “SubFrame”. It is a sequence. This rule is the second level in the control structure of the processing engine 10. Provide repetition. 4. “SubFrame” is as follows.       a. “Frame”         Or       b. "ATTRIBUTE" (Execute the "process Attribute" routine           Do).   "SubFrame" is itself "Frame" or "Attribute" In the latter case, the action routine “processAttribute” is called You. This rule provides for recursion in the control structure of the processing engine 10.   The above grammar is written in a language that can be processed by the following executable program. Will be posted. A vertical bar (|) indicates "or" in the language, and Chin is placed inside brackets ({}). 1. FrameList: Frame | FrameList frame 2. Frame: START OF FRAME {startFrame ();} SubFrameList                 END OF FRAME {endFrame ();}                | START OF FRAME END OF FRAME                {StartFrame (); endFrame ();} 3.   SubFrameList: SubFrame | SubFrameList SubFrame 4.   SubFrame: ATTRIBUTE {processAttribute ();} | frame   Attributes are actually types and values, so rules extend to defining attributes You can do it. However, expanding the rule to include types and values The task of processing the information flow can be complicated. For this reason the rules It is not enlarged in the embodiment. First supplementary example of basic embodiment   As mentioned briefly above, the basic embodiment described with reference to FIG. Add generic action routines to facilitate processing of frames and their attributes. Can be. According to FIG. 3, most of these additional routines are internal, immediate. They can only be called by the processing engine itself. One Routines are external, that is, non-generic action routines call it. Can be.   In some cases described below, calls to action routines related to frames The quote is quoted. There are many ways to achieve such an association. all To associate multiple frames with one such routine , The method used to determine the routine to call the frame name, to determine the routine Using the available attributes of the frame. Object-oriented program Aligning frames and objects in a multi-media environment It is another way to provide. These routines include the frame name, Performed using gender name and value. Any or all of these items are complex Sometimes, that is, it consists of a collection of accompanying data items, and any of them It may be miscellaneous.   The external “startFrame” support routine 115 first Calls a routine (eg, "checkFrame" 61) and passes it two values. 2 The two values are the name of the current frame (if any) and the new frame that started. Name of the system (if any). The name of the current frame is the hierarchical name It is derived from Morreza. The new frame name is Is passed to the processing engine 10 and then to the “startFrame” routine 115 Or may be made available to the routine 115 in any way. However, at any point the new frame name is provisionally stored in memory at this point. You. The purpose of calling the “checkFrame” routine 61 is to completely start a new frame. Prior to initialization, it consists in executing the routine associated with the current frame. Heel Routines can perform some processing, usually the current frame. Checking the validity of processing new frames in the system . When the "checkFrame" routine 61 returns an error, the "startFrame" routine 115: skip new frame with attributes and nested frames Can be done.   The “startFrame” routine, when taken for granted by the success of the preceding step 115 then causes a permanent storage of the name of the new frame, so this Frame. The frame name includes the name of the frame being processed at each hierarchical level. Dynamically configure computer memory space Used for The current frame is at the top level, and the bottom level is Always occupied by an absolute frame, usually named "ROOT" A frame logically includes any other frame and includes system and support Present at the time of chin initialization.   FIG. 4 is a schematic diagram of a preferred embodiment of an initialized memory store. Con The computer memory space is exclusively reserved by a general-purpose action routine. Hierarchical memory store of frame names that can only be directly accessed by Tuck FRAME). Hierarchical memory store of frame names is supported as described below The attribute name is associated with the store (stack ATTR) and value. Default The “ROOT” frame is associated with the null attribute “NULL” by the Attributes and values can be stored on the ATTR stack, as described below. It may be associated with a “ROOT” frame that is to be inherited by subsequent frames. You.   FIG. 5 is a schematic diagram of the representative memory store of FIG. 4 where data is stored. . The attribute name and value memory store is stored as a last-in, first-out stack. Names and values are accessed sequentially in reverse order (last entry first Out) and also stack the names and values of all attributes corresponding to the current frame It is logically constructed in such a way that it can be extracted from Memories of frame names As in the previous example, the attribute name memory store and the corresponding value It is reserved exclusively by routines and only direct access come.   Referring again to FIG. 3, the "startFrame" support routine 115 is the next non-generic routine. (For example, "initFrame" 71) and pass the following two values to it. now Is the name of the new frame (if any) that is the current frame and the current frame The name of the system (if any). The frame name is the hierarchical memory of the frame name described above. Derived from the store. The purpose of calling the “initFrame” routine 71 is to Related to (new) frame Is executed before processing of attributes and / or included frames Is to make it possible. Such routines can perform any kind of processing. Possible and usually the effectiveness of processing the current (new) frame in the parent frame Can be checked. The "initFrame" routine 71 returns an error , The "startFrame" routine 115 calls attributes and nested structures to any depth. The current (new) frame with the frame can be skipped.   Calling of "initFrame" routine 71 and "checkFrame" routine 61 described above Combinations of calls to non-generic action routines with frames Provides an opportunity to easily implement layering, and in this case, each frame Frame contains that frame, and that frame contains any frame It defines what can be done, and the frames that are included always take precedence over the frames that are included.   An internal "process Attribute" support routine 120 is used Subtract the storage of attribute names and corresponding values into memory corresponding to the hierarchical memory store. Wake up. The attribute names and values are passed from the adapter routine to the processing engine 10 and It is then passed to the "process Attribute" routine 120 or May have been made available in some other way.   The internal “endFrame” support routine 125 is a non-generic action routine (For example, “finishFrame” 81) and the hierarchical memory of the above frame name The current frame name (if any) derived from the store is the non-generic action rule Hand over to the routine. The purpose of calling the “finishFrame” routine 81 is to include all Since the attributes and frames that are being processed are fully processed at this point, It consists in making it possible to call a routine with a frame to complete. “Fi Upon completion of the "nishFrame" routine, the names of all attributes attached to the current frame The previous and value are logically removed from the memory store, and the current frame name is also removed. , The containing frame is made the current frame.   FIG. 6 illustrates the memory store of FIG. 5 after calling the “endFrame” routine 125. It is a schematic diagram. Frame F3 and its corresponding attributes A4, A5 are taken from the stack. Note that the current frame is now F2.   Referring back to FIG. 3, the external “getAttribute” support routine 140 , Called from the non-generic action routine associated with the frame. This luch Expects the attribute name to be passed, and then logically The stack is searched for a matching name or for all candidate attributes in the stack. In reverse order until sex scan ends (from last entry to first exit) Scan. When a match is found, the routine calls the corresponding value. Returns to the caller or otherwise informs the caller that the attribute was not found I do.   With the above mechanism, attribute values are logically represented in a hierarchical manner, Moreover, in this case, the latest value stored under a specific name is always returned, and the same frame The previous value with its name set at the higher level or higher level is invalid. This scheme provides for inheritance of attributes by the contained frame, and in this case, Frames for which the adapter routine did not provide an attribute from the information flow are Can be inherited from a higher-level containing frame in a hierarchical structure. And the value of the given attribute is always closest to the value of the attribute corresponding to the frame being processed. Value. Referring again to FIGS. 5 and 6, the attribute A2 associated with frame F1 is: Invalidated by the attribute A2 corresponding to the newer frame F2. These attributes Can have different values. Second supplementary example of basic embodiment   Additional support routines may also add useful extensions to the basic embodiment described above. In addition, the sequence of frames and computer language And processing of frames that are complex enough to have a family of   Referring back to FIG. 3, the external "setAttribute" support routine 135 typically Called from the non-generic action routine associated with the frame. This routine is Expects to be given the name and value of the attribute, and In an internal hierarchical memory store shared with the port routine. Set like this Attribute is created by the action routine without receiving it from the information flow itself. It is called a composite attribute because it was issued. The “setAttribute” routine 135 Also stores attributes associated with the current frame as if received from the information flow I do. The effect of this facility is based on the action rules associated with the current frame. Frame for passing information to each other for the routine and by inheritance Is to provide a way to pass.   FIG. 7 shows the memory store of FIG. 6 after calling the "setAttribute" routine 135. FIG. Attribute A6 is placed on the attribute stack (ATTR), and the current frame F2 (determined from FIG. 6).   Returning to FIG. 3, the external "upAttribute" support routine 145 also Called from the non-generic action routine attached to the frame. This routine Also expects to be given attribute names and values and converts them to other support In an internal hierarchical memory store shared with the application. But it was created like this The composite attribute pertains to its immediate parent frame rather than the current frame. Hierarchical The memory store is the last as if the composite attribute was received from the information flow of the parent frame. Attribute of the current frame as it follows before the adjustment. Adjusted to look like. Logically the set of attributes corresponding to the current frame is Is removed from the hierarchical memory store and saved, and then the current frame is The frame that was removed from the store and saved and included is made the current frame, and The composite attributes are stored and the saved frames are stored. (Which is the current frame), and each attribute in the last stored set of attributes is They are stored in their original order.   FIG. 8 shows the memory list of FIG. 7 after calling the "upAttribute" routine 145. FIG. The attribute A7 is placed in the attribute stack (ATTR), and the parent frame F Corresponds to 1. The current frame F2 maintains the correspondence with its attributes A2 and A6. .   One effect of this facility is the opposite of inheritance. That is, the action By providing a way for routines to return values hierarchically, values are derived and To be affected by action routines related to higher level frames I do. In addition, the composite attribute is located outside the hierarchical subtree with the current frame at the top. Inherited by downstream frames (frames that appear later in the information flow) I can do it. With the above operation, this routine reduces the frame to the attribute. Provide general facilities for That is, the frame, its attributes and All of the included frames, if any, are set by the action of this routine. Can be seen to be replaced in the information flow by the defined composite attribute. You.   Turn complex information objects (frames) into simple ones (attributes) and process them This general for returning results with other support routines and basic embodiments in A facility is a facility that considers the processing of information flows as a computer language. Function as complex as possible. But the language is a sequence of frames Must be able to express.   Returning to FIG. 3, other useful public support routines 150, or features Additional purpose attributes allow additional facilities to be used in action routines Provide more detailed and / or complete access to hierarchical memory stores In the frame and attributes that are processing the action routine. To search for more detailed information about each element as much as possible. another Class routine, or Composition attributes affect the processing of frames, for example, frames and their attributes and And a way to skip the rest of the included frame. Another The routines or attributes of the class The external routine is activated by the action routine associated with the included frame. Enables to suspend or adjust the function of accessing the port routine. this Indicates that the containing frame and its action routine Features a security scheme based on a hierarchical structure that controls the authority of the frame's action routine Could be given. An additional class of synthetic attributes is a regular attribute value It is possible to change the search (retrieval) of. For example, a special type Synthetic attributes are sent from downstream action routines within the frame corresponding to the synthetic attribute. Attribute can be zeroed out or obscured. Third supplementary example of basic embodiment   Additional support routines and minor modifications to other routines By further expanding the basic embodiment, it is compactly implemented, It reduces the burden on routine programmers, is completely reentrant, Can be implemented. That is, multiple information flows can be performed simultaneously without collision. Become.   The external "initContext" routine 130 takes four non-generic Use the information needed to call the chin. The four routines are "adapter" routines 21, a “checkFrame” routine 61, an “initFrame” routine 71, and “ finishFrame "routine 81," input "," output "and" error ou ". This is the information needed to call the three information flows of “tput”. The ntext "routine implements a new hierarchical memory store (me Memory routine) to initialize four routines, information flow and new notes Reconte Returns the only items called contexts that link the kisses together, Can be used by other routines.   Multiple contexts may be operational at one time. Each generic routine and general Each non-generic routine called by the As context. The new context is Included in the memory store or as a special memory scheme in the new context Is added on top of the current context to be visible. Many of these containers Kists can exist in parallel and define a tree-like memory structure. I have. Each execution thread establishes at least one memory context. Ko The engine creates a tree of memory contexts in memory safely during the execution thread. Manage in a shared way.   The external “putFrame” support routine 105 is usually Be called. Routine 105 is passed a frame name and takes notes to store the name. Prepare recontext. Similarly, an external “putAttribute” support route 110 is passed the names and values of the attributes and the memory context for storing them. Prepare a strike.   By providing direct name and value changes from the adapter routine, The core mounting of the gin 10 is simplified. Because it receives the name and value and it Because they do not need to be stored internally and passed to other routines. . This speeds up the execution of the system and greatly reduces its internal memory requirements. Less.   Other useful routines can manipulate the context. The routine is Copies the contents of a context and updates the state of the hierarchical memory store to a new It could be isolated and propagated for use in the text. Other routines Can be devised to merge the moly context.   Another supplement to the system according to the invention is multithreading. Genus Based on valid values of gender, the system processes each frame in one sequence. Automatically generates a parallel execution thread for   Not only this, but the routine also outputs the output of one thread (frame sequence and And then create a thread pipe to connect to the input of another thread To   A preferred processing engine according to the present invention is at least based on multithreading. Provides two services. These services are: Automatic “parallel processing” and pipeline of frame sequences between threads (“thread When the adapter routine receives a sequence of frames. In addition, parallel processing occurs automatically. As each complete frame is received, a generic Jin quickly dispatches the thread of execution to process the frame (dispatch). Immediately call the adapter routine to get the next frame. Frame floor Due to the layered nature and the reentrant and recursive attributes of the general purpose engine, The parallel processing function enables parallel execution threads to execute simultaneously, And processing is performed in order. Thread pipe Is the output from the action routine of the execution of one thread (frame sequence Dynamically) to the input of the other thread's adapter routine. this The preferred configuration allows for a continuous level of dynamic parallelization in complex information flows. Take into account. In addition, the processing routines at each level are relatively simple and separate You can drip.   FIG. 9 shows a preferred embodiment of the present invention using parallel processing and pipeline technology. FIG. Call to process information flow from information source 105 An application 100 is shown. The application 100 The processor 110 is called. The frame processor 110 includes a first TCP adapter. And a number of TCP action routines 130a, 130b, 130 c can be executed in parallel I can do it. The TCP adapter 120 recognizes the TCP request stream from the information source 105. Understand. The actual protocol is processed by the action routine 130. each The action routine 130a processes the frame sequence from the information source 105 To execute many frame processors 140a, 150a, 160a in parallel You can do it. The first frame processor 140a is a second TCP adapter 142a, and the TCP adapter 142a calls a frame from the TCP port. Recognize the system. The attribute from the second TCP adapter 142a is It is sent to the second TCP action routine 144a via the processor 140a. No. The 2TCP action routine 144a sends the analyzed frame to the pipe output 146a. Put a sequence of programs. The inclusive TCP action routine 130a, for example, And a TCP frame processor 150a. The server 150a transmits the sequence of frames from the TCP pipe output 146a to the SMTP Move to pipe input 152a. Sequence of frames is an SMTP action Processed by the SMTP frame processor 150a using the routine 154a. In addition, the action routine 154a converts the analyzed sequence of the frame into SM Put on TP pipe output 156a. The sequence of these frames is By the MIME frame processor 160a using the action routine 164a. It is processed. By using the MIME pipe output 166a, additional frame A processor can further process the frame sequence.   FIG. 10 is a block diagram of a memory configuration for the system of FIG. App Store to Application Route 210 and First TCP Adapter 220 Are contained by a common memory context 205. Each of the TCP action routines 130a, 130b, and 130c in FIG. It has memory stores 230a, 230b, 230c, each of which has its own memory Text 235a, 235b , 235c as shown. Further, the TCP frame processor 14 0a, the SMTP frame processor 150a, and the MIME frame processor. The memory 160a has memory stores 240a, 250a, and 260a, respectively. These are encompassed by memory contexts 245a, 255a, 265a, respectively. . System benefits   Recursive and iterative control structures are the most difficult of computer programming This is one of the points that makes it easy to make mistakes. Multithreading is also a program Difficult to enter. By including these points, the processing engine The current way of developing the remaining tasks of developing computer procedures for handling information flows It can be much easier than that. In addition, it facilitates logical separation of tasks By doing so, a highly independent, reusable A computer program with the possible components is obtained. Therefore, processing Engine 10 may further facilitate processing the information flow.   The processing engine 10 is small and fast because it is extremely regular and compact. Can be implemented in routines. In a preferred embodiment, a processing engine May be significantly faster than the prior art.   Processing engine 10 is also extensive. Usually, several layers of information flow In which the upper layers are either intelligently or physically It is included in the hierarchy. Similarly, computers can process many information flows simultaneously. It may be required to process in parallel. Each of these cases or union In this case, the single case of the frame processor 12 is a core process. Task and memory, given the appropriate adapters and action routines It can be used by utilizing standard techniques for management. Therefore , The use of processing engines reduces the number of computing components used and Provide a single core process for the architecture and the rest of the components, By simplifying the remaining components, the processing of the information flow in the computation Greatly reduce the complexity of processing.   The processing engine 10 effects more complex forms of information flow than the current method. It can be used effectively. Because the method encompasses recursion, the information flow Facilitates recursion for the totally recursive power of frames to be used in I do. This increases the difficulty of writing processing routines that handle information flows. One by one, adding another dimension to the design of the information flow. Therefore, the information flow Designers can further complicate their designs. Because the system Because they can easily be used to process them. For example, Abstract syntax notation (ASN. 1) and Basic Encoding Rules ) Is an extremely powerful and effective protocol. However, it is declining due to difficulties in understanding and processing. The processing engine 10 Makes it easy to use this protocol. Examples of using the system   When a computer program runs on a computer, the information is first , In various forms from computer operating systems and other sources Passed to the execution program. These sources include, but are not limited to: Command line arguments, environment variables, configuration files and system Mucor results are included. Using specific adapter routines for each source More likely, by treating these sources as nested frames, The main part of a computer program is directly connected to its operating environment. And can be more easily implanted between environments. In particular, the value is set at start-up by making the value correspond to the “ROOT” frame. Can be put on the attribute stack.   In a complex computer operating system environment, many computer Operating programs that communicate with other computers via a network. I am involved in communicating. Each program usually has a single type of information flow Handles and often has long, complex and unique handling routines. Use processing engine If implemented, one processing engine and multiple (generally simple and small) Executed in one process using a set of adapters and action routines These programs can be incorporated into a single program. can get The process runs much faster, and is smaller and smaller than the program it replaced. Easy to hold.   In a networked computing environment, the flow of information is different layers of compilation. Lower level progressively processed by a computer program and / or routine Appears off the physical network of the network as a bit code. Processing By using an engine, the layers can be kept separate (different By the adapter and the action routine). However, using the present invention in the core of processing All processes are simplified, more compact, and faster. Can be done. In a preferred embodiment, the computer system is Operates two to three times faster than the directly programmed method used, Approximately 20 when combined with an embodiment operating with a rating system The size can be reduced by up to 30 times.   Some information flows are information to be displayed on the screen or to be printed To represent. Special-purpose interprinters are usually used to implement this interpretation. Can be. The invention is based on the fact that the information flow can be represented as a sequence of frames. When possible, develop a more general-purpose interprinter with a common core engine Can be used to   Another example is security cryptography, where the technology is of course handled in layers. You. These layers are the frames that are easily handled by the processing engine. Is represented as   The processing engine 10 is easy to implement in hardware or firmware. Small enough to be mounted on Therefore, the processing engine Others, including but not limited to electronics, machine tools and medical equipment Very useful for inclusion in special devices that need to communicate with the device. In addition The device can use a processing engine to process the internal information flow. For example, a printer may use the techniques described above in a ROM-based implementation of the present invention. Rukoto can. Detailed protocol examples   Appendix A of the Annex contains a complete frame process for a simple sample protocol. It is the implementation of Sassa. Lexical scanner (lexer) talks input protocol Divided into In this example, Lexer understands a protocol based on parentheses. An example is as follows. (F1 (a1 v1) (a2 v2)) . This is read as an example of a “frame” with the name “F1” and two “attributes” , “A1” and “a2”, whose values are “v1” and “v2”, respectively. . Since the frame can have a “nested structure”, (F1 (a1 v1) (F2 ( a2 vs) (a3vd)) are valid (the attribute and frame can be in any order) It can be mixed with the number and the level). However, lexers must be handled hierarchically. All you need to do is recognize the token and pass it on to the next step.   The core engine in this example handles symbolic tokens passed by the lexer It does not deal with the protocol itself. Therefore, the core engine is As appropriate, handle any protocol that conforms to its semantic model. Can be. The tokens allowed for the frame processor are limited to the following . FRAME TYPE, END OF FRAME, and ATTRIBUTE. The frame processor input from the lexer Symbol-table with attribute-value pairs forming a hierarchical structure based on Maintain internal data structures (stacks and heaps) containing files. This allows " "Scoped" inheritance of attributes by "nested" frames is possible.   The "action" routine consists of "main", which is the initial , For example, after performing STDIN and STDOUT, the frame processor (FRED1), and the frame processor takes part in processing the protocol. It has a "callback" routine to call at a specific point in time. A specific point in time When the system is initialized, when a sub-frame appears, and when the end of the frame appears It is time. The code has a sample dispatch table. Call buckle The routine returns a correctly "scoped" value, then the "get" routine to do anything Access to attribute values. Action Routine Frame Completely independent of the details of the input protocol, which is isolated by the processor .   The following files are provided in Appendix A.   i) makefile   ii) fredi. y-bison grammar   iii) fredi. h   iv) paren. 1-Parenthesis protocol lexer   v) frame. c-sample main, dispatch table, and Action routine (Two frame types are defined, each of which has three action routines Having. Action routine prints out the current values of some attributes )   vi) test. in-sample input file (lexer ignores extra spaces Do)   Appendix B of the Annex states that the frame processor (FREDI) It is an example of programming required to correspond to a protocol. Phi Le Fredi. h provides a document on how to use the frame processor. Offer.   Appendix C of the Annex provides a core frame processing engine for the example in Appendix B. This is the source version of the binary library. Barge attached to source code The option handles composite attributes, including the "upAttribute" equipment. It is set The engine is almost reentrant, because the demand for static storage This is because it has been reduced to about 100 bytes. These 100 bytes store the routine Can be part of each context to make it reentrant. Equal technology   Although the invention has been illustrated and described with reference to particularly preferred embodiments, those skilled in the art will recognize that Will be described in detail in form and detail without departing from the scope of the invention defined by the claims. It is understood that certain changes can be made.   These and any other changes are intended to be covered by the appended claims. It is.

Claims (1)

【特許請求の範囲】 1. a)コンピュータシステムにより処理されるべきフレームのシーケンスと してあらわされ、この各フレームは属性のセットであり、この各属性はタイプと 値を有する情報フローと、 b)前記値を処理する多数アクションルーチンと、 c)前記フレームに反応する汎用処理エンジンとを備え、 前記処理エンジンはフレームに反応して選択アクションルーチンを呼び出すコ ンピュータシステム。 2. 請求項1において、前記情報フローが、プロトコルをベースとしたプロセ ッサ間の通信であるコンピュータシステム。 3. 請求項1において、前記処理エンジンは、共通コアエンジンおよび多くの サポートルーチンを含むコンピュータシステム。 4. 請求項3において、前記サポートルーチンは、少なくとも一つの階層的メ モリストアを操作するコンピュータシステム。 5. 請求項4において、少なくとも一つの前記階層的メモリストアは、属性の スタックを含むコンピュータシステム。 6. 請求項5において、少なくとも一つの前記サポートルーチンが、属性のス タック内へ格納するように合成属性を作り出すコンピュータシステム。 7. 請求項1において、さらに、前記処理エンジンとの通信に少なくとも一つ のアダプタルーチンを備え、この各アダプタルーチンは選択情報フローをフレー ムに分析するコンピュータシステム。 8. 請求項1において、前記情報フローがマルチスレッド化アーキテクチャに おいて処理されるコンピュータシステム。 9. 請求項8において、直列フレームシーケンスが並列に処理されるコンピュ ータシステム。 10. 請求項8において、フレームシーケンスは、スレッド間でパイプライン 化されるコンピュータシステム。 11. コンピュータシステムにおいて情報フローを処理する方法であって、 コンピュータシステムにより処理されるべきフレームのシーケンスとして情報 フローをあらわし、この各フレームは属性のセットであり、この各属性はタイプ と値を有する工程と、 多数のアクションルーチンにおいて前記値を処理する工程と、 フレームに反応する汎用処理エンジンにおいてフレームに反応して選択アクシ ョンルーチンを呼び出す工程とを備えた情報フローの処理方法。 12. 請求項11において、前記情報フローがプロトコルをベースとするプロ セッサ間の通信である情報フローの処理方法。 13. 請求項11において、前記処理エンジンは、共通コアエンジンおよび多 数のサポートルーチンを含む情報フローの処理方法。 14. 請求項13において、前記サポートルーチンは、少なくとも一つの階層 的メモリストアを操作する情報フローの処理方法。 15. 請求項14において、少なくとも一つの階層的メモリストアは、属性の スタックを含む情報フローの処理方法。 16. 請求項15において、少なくとも一つの前記サポートルーチンが、属性 のスタック内へ格納するように合成属性を作り出す情報フローの処理方法。 17. 請求項11において、さらに、処理エンジンとの通信に少なくとも一つ のアダプタルーチンを提供する工程と、 この各アダプタルーチンにおいて選択情報フローをフレームに解析する工程と を備えた情報フローの処理方法。 18. 請求項11において、前記情報フローがマルチスレッド化アーキテクチ ャにおいて処理される情報フローの処理方法。 19. 請求項18において、直列フレームシーケンスが並列に処理される情報 フローの処理方法。 20. 請求項18において、フレームシーケンスは、スレッド間でパイプライ ン化されている情報フローの処理方法。[Claims] 1. a) the sequence of frames to be processed by the computer system; Each frame is a set of attributes, where each attribute is a type and An information flow having a value; b) a multi-action routine for processing said value; c) a general-purpose processing engine responsive to the frame;   The processing engine invokes a selection action routine in response to the frame. Computer system. 2. 2. The method of claim 1, wherein the information flow comprises a protocol-based process. A computer system that is communication between servers. 3. 2. The processing engine of claim 1, wherein the processing engine comprises a common core engine and multiple processing engines. Computer system containing support routines. 4. 4. The method of claim 3, wherein the support routine comprises at least one hierarchical menu. A computer system that operates the mortality. 5. 5. The method of claim 4, wherein at least one of the hierarchical memory stores comprises: A computer system that includes a stack. 6. 6. The method of claim 5, wherein at least one of the support routines comprises: A computer system that creates synthetic attributes to be stored in the tack. 7. 2. The method of claim 1, further comprising at least one communication with the processing engine. Adapter routines, each of which adapts the flow of selection information. A computer system that analyzes data. 8. 2. The information flow of claim 1, wherein the information flow comprises a multi-threaded architecture. Computer system processed in 9. 9. The computer of claim 8, wherein the serial frame sequence is processed in parallel. Data system. 10. 9. The method of claim 8, wherein the frame sequence is pipelined between threads. Computer system. 11. A method of processing an information flow in a computer system, comprising:   Information as a sequence of frames to be processed by the computer system Represents a flow, where each frame is a set of attributes, and each attribute is a type A step having a value and   Processing the value in a number of action routines;   Selection actions in response to frames in a general-purpose processing engine that responds to frames A method for processing an information flow, comprising a step of calling an application routine. 12. 12. The method according to claim 11, wherein the information flow is based on a protocol. How to handle information flows, which are communications between the processors. 13. The processing engine of claim 11, wherein the processing engine is a common core engine and a multi-core engine. How to handle an information flow that includes a number of support routines. 14. 14. The method of claim 13, wherein the support routine comprises at least one hierarchy. Processing method of information flow that operates dynamic memory store. 15. 15. The method of claim 14, wherein the at least one hierarchical memory store comprises: A method of processing an information flow including a stack. 16. 16. The method of claim 15, wherein at least one of the support routines has an attribute Information flow processing method that creates a composite attribute to be stored in the stack of 17. 12. The method of claim 11, further comprising: communicating with the processing engine. Providing an adapter routine for:   Analyzing the selection information flow into a frame in each adapter routine; Information flow processing method provided with. 18. 12. The method of claim 11, wherein the information flow is a multi-threaded architecture. The processing method of the information flow that is processed in the keyer. 19. 19. The information of claim 18, wherein the serial frame sequence is processed in parallel. Flow processing method. 20. The frame sequence according to claim 18, wherein the frame sequence is pipelined between threads. The processing method of the information flow that has been optimized.
JP9513475A 1995-09-15 1996-09-13 Computer system for information flow processing Pending JPH11512852A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US378695P 1995-09-15 1995-09-15
US60/003,786 1995-09-15
PCT/US1996/014663 WO1997012339A2 (en) 1995-09-15 1996-09-13 Computing system for processing information flows

Publications (1)

Publication Number Publication Date
JPH11512852A true JPH11512852A (en) 1999-11-02

Family

ID=21707600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9513475A Pending JPH11512852A (en) 1995-09-15 1996-09-13 Computer system for information flow processing

Country Status (4)

Country Link
EP (1) EP0850529A2 (en)
JP (1) JPH11512852A (en)
CA (1) CA2228593A1 (en)
WO (1) WO1997012339A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000075907A (en) * 1998-09-01 2000-03-14 Yokogawa Electric Corp Production system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0650489B2 (en) * 1988-02-05 1994-06-29 日本電気株式会社 ASN. 1 Information data conversion method
US5826017A (en) * 1992-02-10 1998-10-20 Lucent Technologies Apparatus and method for communicating data between elements of a distributed system using a general protocol

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000075907A (en) * 1998-09-01 2000-03-14 Yokogawa Electric Corp Production system

Also Published As

Publication number Publication date
WO1997012339A3 (en) 1997-07-31
CA2228593A1 (en) 1997-04-03
WO1997012339A2 (en) 1997-04-03
EP0850529A2 (en) 1998-07-01

Similar Documents

Publication Publication Date Title
US7055154B2 (en) Method and apparatus for generating object-oriented world wide web pages
US7340718B2 (en) Unified rendering
US5953526A (en) Object oriented programming system with displayable natural language documentation through dual translation of program source code
US6226692B1 (en) Method and system for constructing software components and systems as assemblies of independent parts
US20020162093A1 (en) Internationalization compiler and process for localizing server applications
US20050166141A1 (en) Method and apparatus for providing a graphical user interface for creating and editing a mapping of a first structural description to a second structural description
US20020099738A1 (en) Automated web access for back-end enterprise systems
US8850414B2 (en) Direct access of language metadata
US20050154978A1 (en) Programmatic creation and access of XML documents
US20070006134A1 (en) Data processing method compatible with an object modeling formalism
JP2001526421A (en) Apparatus and method for allowing object oriented programs written in different framework versions to communicate
Furlani Modules: Providing a flexible user environment
JPH0650489B2 (en) ASN. 1 Information data conversion method
US20050038816A1 (en) Methods, systems and computer program prodcuts for validation of XML instance documents using JAVA classloaders
US7669178B2 (en) System and method for interacting with computer programming languages at semantic level
JP2006202308A (en) Graphical user interface method, graphical user interface device, and recording medium
JPH11512852A (en) Computer system for information flow processing
US6182093B1 (en) Management of multimedia information across a plurality of HTML containers
US7861214B2 (en) Computer method and apparatus for collapsing programming metamodels
McGuire et al. The Austin Protocol Compiler
CN113220277B (en) Development method and device for embedded service
CN113568692B (en) Multilingual display method, device, electronic equipment and storage medium
Gregory Programming with MotifTM
Strömbäck A Syntax Highlighting and Code Formatting Tool for Extensible Languages
Boyd Object-oriented design and PAMELA

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040420

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040720

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040913

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050420

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050707

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050825