(57)【要約】【構成】コンピュータ処理およびプログラミング方法はデータを自律的に処理するようにダイナミックに構成された複数のソフトウエアエンティティ（“分子”）を形成することを要求する。分子は分子の状態、すなわち、処理タスクが充足されたか、処理タスクの結果、分子の動作が終了されたか、中断されたか、再構成されたか、１つまたはそれ以上の“次の”分子の形成によって継続されるか、を指示する信号を送受信できる。分子はソフトウエアのマイクロコンポーネント（４０、４２、４４、４６、４８）の共通の組み合わせから形成され、マイクロコンポーネントは任意のオペレーティングシステムで実行する任意のプログラミング言語でプログラムされる。分子は単一のコンピューティングリソースとともに存在してもよいが、理想的には、ネットワーク上または並列処理環境内の異なったタイプの分散型コンピューティングリソースで展開するのに適したものである。データ処理タスクの全体はタスクを果たすようにダイナミックに適応される“ロジックウエブ”内に分子を形成することによって実行される。ロジックウエブは、異なった古いシステム、異なった言語にプログラムされたアプリケーション、任意のファーマットで格納された任のタイプのデータと共に動作するように割り当てることができる。その結果、分散型、すなわち、並列処理環境内でのデータ処理タスクは非常に効率的であり、全く新しいタイプのネットワークまたは並列処理タスクが行われる。
2004537122.tif 000002
【特許請求の範囲】
【請求項１】
各々が信号ハンドラ（４０）、少なくとも１つの入力ハンドラ（４２）、少なくとも１つの出力ハンドラ（４８）、インターフェイスハンドラ（４４）および少なくとも１つの手法ハンドラ（４６）を含むソフトウエアのマイクロコンポーネントで構成される複数のソフトウエアエンティティ（“分子１０”）を形成し、ここで、前記入力ハンドラ、出力ハンドラおよび信号ハンドラはそれぞれの分子の外部から他の分子またはロジックウエブと通信信号を送受信するために動作でき、かつ他のマイクロコンポーネントと接続されており、前記少なくとも１つの入力ハンドラは入力データを持ち行列に入れるために動作でき、前記インターネットハンドラは前記入力ハンドラによって受け取られる所要の入力データの所定の入力条件がいつ充足されるかを決定し、次に前記手法ハンドラを呼び出し、前記手法ハンドラは入力データを処理するために前記関連する手法を呼び出すように動作でき、前記少なくとも１つの出力ハンドラは前記手法による入力の処理を出力するために動作でき、
その後の実時間の使用のために形成した分子をライブラリ内に格納し、
所定のコンピューティングリソース上に、ライブラリから取り出されて所定のコンピューティングリソース上で実行される第１の分子を呼び出すことによって所定の処理タスクを実行するように選択される複数の分子からなるロジックウエブを配置する、
ステップからなり、
前記第１の分子は、前記他の分子を呼び出す通信信号を送る前記第１の分子の前記信号信号ハンドラによって“進行中”に前記ロジックウエブを徐々に拡張するために１つまたはそれ以上の他の分子を呼び出す、
ことを特徴とするコンピュータ処理方法。
【請求項２】
請求項１記載のコンピュータ処理方法において、前記形成ステップは複数のロジックウエブを形成することを含み、ロジックウエブの各々はコンピューティングリソースでデータ処理タスクを自律的に実行するように構成されたソフトウエアエンティティのウエブを有し、前記配置ステップは複数のコンピューティングリソースのうちの１つで複数のロジックウエブを配置することを含むことを特徴とするコンピュータ処理方法。
【請求項３】
請求項２記載のコンピュータ処理方法において、前記複数のコンピューティングリソースが分散型コンピューティング環境内のネットワーク上に分散されていることを特徴とするコンピュータ処理方法。
【請求項４】
請求項２記載のコンピュータ処理方法において、前記複数のコンピューティングリソースが並列処理環境内で並列に配列した中央処理ユニット（ＣＰＵ）を含むことを特徴とするコンピュータ処理方法。
【請求項５】
請求項１記載のコンピュータ処理方法において、少なくとも１つのロジックウエブは複数の分子空なり、前記ロジックウエブは分子の内の初期ホストを形成する初期化ファイルとして存在し、初期ホストは増分処理ステップの連続層で他の分子を呼び出してかつ形成することを特徴とするコンピュータ処理方法。
【請求項６】
請求項１記載のコンピュータ処理方法において、前記形成ステップは増分処理ステップの連続層で次の分子を形成するハンドラ機能を有する分子を形成することを特徴とするコンピュータ処理方法。
【請求項７】
請求項１記載のコンピュータ処理方法において、前記形成ステップは分子が終了されるときその機能の消去を実行するための組み込まれたハンドラ機能を有する分子を形成することを特徴とするコンピュータ処理方法。
【請求項８】
請求項１記載のコンピュータ処理方法において、前記形成ステップはそのマイクロコンポーネントハンドラの状態に関する情報を記録しかつ前記信号ハンドラを通して前記状態情報を外部に送るタイプのハンドラの分子を形成することを特徴とするコンピュータ処理方法。
【請求項９】
請求項１記載のコンピュータ処理方法において、前記信号ハンドラは信号を受け取ることができ、かつ処理タスクを実行している間、分子のマイクロコンポーネントハンドラをダイナミックに再構成するタイプのハンドラを有することを特徴とするコンピュータ処理方法。
【請求項１０】
請求項１記載のコンピュータ処理方法において、前記インターフェイスハンドラは、前記手法ハンドラを関連する手法のために呼び出す前に所定の入力条件が存在することを前記入力ハンドラが示すまで待機することによって、自律的に待機し、検索し、入力データを処理するための前記関連する手法とともに進める特性を分子に与えるタイプのハンドラを含むことを特徴とするコンピュータ処理方法。
【請求項１１】
請求項１記載のコンピュータ処理方法において、前記インターフェイスハンドラは、いつそれぞれの所要のデータの存在に対するそれぞれの所定の入力条件が充足されるかを決定するための、かつ複数の手法ハンドラと関連する手法の内のそれぞれ１つを呼び出すためのタイプの複数のハンドラを含むことを特徴とするコンピュータ処理方法。
【請求項１２】
請求項１記載のコンピュータ処理方法において、前記入力ハンドラは複数の異なってデータソースの形式にそれぞれ対応するタイプの複数の入力ハンドラの内の１つから選ばれることを特徴とするコンピュータ処理方法。
【請求項１３】
各々がそれぞれの分子の外部の分子と通信信号を送受信するためのソフトウエアマイクロコンポーネントで構成された複数のソフトエンティティ（“分子１０”）を形成し、ここで、各分子の前記マイクロコンポーネントは前記分子が配置された所定のコンピューティング環境で入力を処理するために互いに接続されており、かつ入力データを処理する出力結果を与えるものであり、
複数のコンピューティング環境の内のそれぞれの１つに複数の分子の各々を配置し、
増分処理ステップの連続層でデータ処理機能の分子の“ロジックウエブ”を初期化するためにそれぞれのコンピューティング環境内に配置された各分子を初期化するステップを有し、
第１の分子が“進行中”に前記ロジックウエブを増分的に拡張するために１つまたはそれ以上の他の分子を呼び出す、
ことを特徴とする分散型コンピューティング方法。
【請求項１４】
請求項１３記載の分散型コンピューティング方法において、各コンピューティング環境内の各ロジックウエブはそれぞれのコンピューティング環境内でそのデータ処理機能を自律的に実行し、かつそのコンピューティング環境から得ることが望まれた出力を戻すことを特徴とする分散型コンピューティング方法。
【請求項１５】
請求項１４記載の分散型コンピューティング方法において、各ロジックウエブはそれぞれのコンピューティング環境に対する出力を外部の監視エンティティに戻し、前記外部監視エンティティは他のコンピューティング環境からの出力を組み合わせて分散コンピューティングの組み合わせた出力を得ることを特徴とする分散型コンピューティング方法。
【請求項１６】
請求項１５記載の分散型コンピューティング方法において、コンピューティング環境はネットワーク上に分散した複数のコンピューティングサイトであり、ロジックウエブはネットワーク上に信号を送ることによって出力を戻すことを特徴とする分散型コンピューティング方法。
【請求項１７】
請求項１５記載の分散型コンピューティング方法において、コンピューティング環境は並列処理環境内で並列に動作される処理ユニット（ＣＰＵ）の配列内の複数のコンピューティングリソースであることを特徴とする分散型コンピューティング方法。
【請求項１８】
各々がそれぞれの分子の外部の分子と通信信号を送受信するためのソフトウエアマイクロコンポーネントで構成された複数のソフトエンティティ（“分子１０”）を形成し、ここで、各分子の前記マイクロコンポーネントは前記分子が配置された所定のコンピューティング環境で入力を処理するために互いに接続されており、かつ入力データを処理する出力結果を与えるものであり、
ネットワーク上に分散したコンピューティングサイトである複数のコンピューティング環境の内のそれぞれの１つに複数の分子の各々を配置し、
増分処理ステップの連続層でデータ処理機能の分子の“ロジックウエブ”を初期化するためにそれぞれのコンピューティング環境内に配置された各分子を初期化し、ここで、第１の分子が“進行中”に前記ロジックウエブを増分的に拡張するために１つまたはそれ以上の他の分子を呼び出し、
それぞれのコンピューティング環境内でデータ処理機能を実行しかつネットワークコンピューティングサイトから得られることが望まれる出力を戻す各ロジックウエブを各ネットワークコンピューティングサイトに持つ、
ことを特徴とするネットワークコンピューティング方法。
【請求項１９】
請求項１８記載のネットワークコンピューティング方法において、各ロジックウエブはそれぞれのネットワークコンピューティングサイトの出力をネットワーク監視エンティティに戻し、前記ネットワークエンティティがネットワークコンピューティングサイトからの出力を組み合わせてネットワークのための組み合わせ出力を得ることを特徴とするネットワークコンピューティング方法。
【請求項２０】
請求項１９記載のネットワークコンピューティング方法において、ネットワークはネットワーク内のネットワーク（“インターネット”）であり、ロジックウエブがインターネット上のウエブサイトで展開され、ウエブサイトからデータを自律的にコンピュータ処理してネットワーク監視エンティティにその出力を戻すことを特徴とするネットワークコンピューティング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータ処理およびプログラミング方法に関し、特に、新規な形式の自律的データハンドラを用いる方法に関する。
【背景技術】
【０００２】
最も初期の理論的基礎から現在まで機械指向のパラダイムとしてコンピュータ処理が開発されてきており、このコンピュータ処理では、機械命令が列データを変換してシーケンシャルステップに入力して有効な出力を得るように中央処理装置（ＣＰＵ）によって実行される。ますます多量のデータを含むますます複雑なタスクを達成するために、コンピュータハードウエアの開発が速度、能力、容量を指数関数的に増加させながら継続されてきて、今や原子の寸法や光の速度および波長の物理的限界に近づいている。線形プログラミング手法によって複雑なタスクをプログラミングすることは集中的なコードの書き込みをますます必要とし、コードの書き込みは何百万のコード列を要し、莫大なデバッグの努力を必要とするエラーやクロスコードの衝突を受け易い。また、プログラミングは選択したオペレーティングシステムに対して１つの選ばれたプログラミング言語で行われることが本質的に必要であり、結局、陳腐化した古いシステムとなることになる。
【０００３】
オブジェクト指向プログラミング（ＯＯＰ）手法が多数のプログラミングタスクを内蔵式で自己実行型であるモジュールに分散させるために開発されてきた。特定の機能に対して最適化されたモジュールは分類でき、多様の多数のプログラミングタスク内でモジュラー形式で再使用できる。しかしながら、ＯＯＰ手法は全体としてプログラミング環境でクラス定義階層の実行を必要とし、他の環境を支援するように再コンパイルされねばならない閉鎖系やＯＯＰモジュールのライブラリを生じさせる結果となる。
【０００４】
処理タスクをタンデムに配列したＣＰＵによって実行される部分に分散することによって能力を増大させようとするために、並列処理手法が過去何十年にもわたって開発されてきた。しかしながら、並列処理に対する従来のアプローチはプログラムされたタスクの集中的管理と御制を必要とし、集中的管理と制御はタスクの調整と同期に厳しい必要条件を課すものである。集中的であり、特に並列動作中に誤動作を受けやすく、さらに選択したプログラミング言語とオペレーティングシステムに拘束される線形プログラミング手法をデータの並列処理手法はやはり用い続けているものである。
【０００５】
近年、大規模な分散型ネットワークの拡大で、極めて大規模なタスクまたは複雑なタスクを小さいピース（要素）に分けネットワーク上で協働するコンピュータに分散することによってタスクを実行することが提案されてきた。なお、これは「分散コンピューティング」または「ネットワークコンピューティング」と呼ばれている。分散コンピューティングの提案により、計算を高度に集中してタスクを処理することから、データがネットワーク上のリソース（資源）に広範囲に分散されて分散努力を通して計算を高度に集中させないＣＰＵで局所的に処理するものに、コンピューティングパラダイムが移行することを表している。しかしながら、同じ線形プログラミング手法と集中的管理および制御が用いられてきたので、データに対する分散コンピューティングパラダイムは有効な結果を達成するためにはやはり集中的プログラミングと作業の協働を必要としている。１つまたはそれ以上の個々の処理演算の失敗や通信または集中型処理管理との協働に伴う時間の遅れは、このアプローチの有効性を台無しにするボトルネックを生じさせるかもしれない。
【０００６】
多重非同期式コンピュータ処理を利用する１つの手法は、「フローに基づくプログラミング（Ｆｌｏｗ  Ｂａｓｅｄ    Ｐｒｏｇｒａｍｍｉｎｇ）（“ＦＢＰ”）」と呼ばれ、それは著作名「フローに基づくプログラミング：アプリケーション開発への新しいアプローチ」  著者  ポール  モリソン、出版社  ホン  ノストランド  レインホルド（ニューヨーク州）、１９９４年出版  に一層詳細に説明されている。この文献は、３つの原理「非同期処理、それ自体の寿命を持ったデータパケット、および接続の外部定義」に基づくものとしてフローに基づくプログラミングを記載している。ＦＢＰでは、アプリケーションは所定の条件を横切ってデータを交換する“ブラックボックス”処理のネットワークとして定義される。ＦＢＰは、“ブラックボックス”処理のネットワークをとおしてタグ付きのデータパケットをステップ処理するプロセスであり、したがって、データ中心処理である。ＦＢＰによるアプローチは極めて予測的な能力が十分働くことを必要とする。
【非特許文献１】
著作名「フローに基づくプログラミング：アプリケーション開発への新しいアプローチ」  著者  ポール  モリソン、出版社  ホン  ノストランド  レインホルド（ニューヨーク州）、１９９４年出版
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、本発明の第１の目的はコンピュータ処理タスクの管理を分散し、最も効率的な経路を利用するような順応性のある選択と共に自律的にデータの分散処理、すなわち並列処理を進めるコンピュータ処理と関連するプログラミング方法を提供することにある。
【０００８】
本発明の他の目的は、拘束されたプログラミング環境の要件を回避することによって並列データ処理すなわち分散データ処理を容易にするように最適に設計される新規なプログラミング方法を提供するものであり、それにより多重プログラミング言語の同時の使用が支援され、集中処理管理がなくされるものである。また、複雑な処理タスクに必要とされるプログラミングの量や固有の性質を減少させ、誤りに至るようなプログラミングの脆さを減少させることである。
【課題を解決するための手段】
【０００９】
本発明によると、コンピュータ処理および関連するプログラミング方法（手法）は、データを自律的に処理するようにダイナミックに構成された複数のソフトウエアエンティティ（本明細書では“分子”と呼ぶ）を形成することを要求する。分子は、分子の状態、処理タスクが実行されたか否か、処理タスクの結果、分子の作業が終了されたか、中断されたか、再構成されたか、１つまたはそれ以上の“次の”分子の形成によって継続されているか否かを指示する信号を送受信する。分子はソフトウエアのマイクロコンポーネントの共通の組み合わせから形成され、マイクロコンポーネントは任意のオペレーティングシステム環境に実行する任意のプログラミング言語でプログラミングされてもよい。
【００１０】
処理タスクの全体に対して形成された分子は単一のコンピューティングリソース（ＣＰＵおよびデータベース）だけと共存してもよいが、理想的には、ネットワーク上の異なった形式の分散コンピューティングリソースと共に、または並列処理環境内に配置されるのが適している。各分子はプログラミング言語、すなわち、操作しようとするコンピューティングリソースに適した言語でプログラムされてもよい。分子は、コンパイルされた、またはランタイム（実行時）コンパイルされたコードと共に機能でき、コンピューティングリソース上で実行するのに適した処理の一部だけと共にコンピューティングリソース上で実行可能である。分子は互いに伝達でき、共通のネットワークプロトコルを用いてデータを送受信できる。分子は、データ処理タスク全体が完了するまで、それぞれのデータ処理タスクを自律的に完了するように作業する。データ処理タスクの全体は、分子を形成し、かつタスクを達成するようにダイナミックに順応できる“ロジックウエブ”内で作業と相互作用を構成することによって実行される。
【００１１】
並列処理環境に順応することによって、分子は並列コンピューティングリソース上で自律的に実行するようにダイナミンクに構成できる。ロジックウエブは、各分子が処理しようとするデータオブジェクトおよび中間ＣＰＵリソースとしての並列プロセッサ配列内の任意の利用可能なプロセッサに効率的に接近できるように定義される。プロセッサ接近のスケジューリングは、メインのコントローラプログラムによって、または別個のスケジューラ分子またはミニロジックウエブによって取り扱うことができる。分子は、それらの状態、結果、および終了や次の分子の再構成すなわち形成を伝達するようにプログラムされる。分子の分散した自律的な作業によって、データ処理タスクを一層効率的に迅速に達成でき、従来の並列処理手法における融通の効かないスケジューリング構造と時間遅延の課題を回避できる。
【００１２】
ソフトウエア構成のエンティティとして、分子は以下のソフトウエアマイクロコンポーネントからなる。すなわち、信号ハンドラ、入力ハンドラ、インターフェイスハンドラ、手法ハンドラ、関連した手法（手法要素）、および出力ハンドラからなる。信号ハンドラは、他の分子を呼び出し、ネットワーク上の他の分子およびリソースに伝達するための信号を送受信できる。入力ハンドラはデータ入力を受信し、データをキュー（待ち行列）に入力する。インターフェイスハンドラは、いつ分子への入力が手法ハンドラへの経路を開くための所定の条件を満たすかを決定する。手法ハンドラは所定の手法（手法要素）に従って入力ハンドラのキューから送られたデータを処理し、出力を出力ハンドラに送る。
【００１３】
ソフトウエアプログラミング手法として採用された、分子のロジックウエブは任意の形式の任意の利用できるコンピューティングリソース上で実行でき、かつ任意の位置で任意のファーマットでデータを処理できるように形成される。初期化ファイルは意図したコンピューティングリソース上で分子の初期ホストを形成するためにプログラムされる。初期分子はプログラムステップのプログレション（工程）を表す連続的な層、すなわちウエーブ内で次の分子を発生するように作業する。各初期化ファイルは標準のマイクロコンポーネント形式のライブラリから分子のソフトウエアのマイクロコンポーネントを組立てるように構成される。これらの標準形式はそれらの機能の項目で目的に合うように選ばれ、ＯＯＰヒエラルキー（階層）内の融通の効かないクラス形式ではない。新しい形式のソフトウエアのマイクロコンポーネントは必要に応じて容易に形成でき、作業を意図している環境に適したプログラミング言語でプログラムされる。
【００１４】
本発明のコンピュータ処理およびプログラミング方法で、複雑な計算のタスクおよびデータ処理タスクがネットワークを含む任意の位置で任意の形式の任意の利用できるコンピューティングリソースを利用するコンポーネント分子から構成されるロジックウエブを設計することによって実行される。かくして、ロジックウエブは、異なった従来のシステムで、異なった言語でプログラムされたアプリケーションで、任意のファーマットに格納された任意の形式のデータとともに作業するように分子と共に設計できる。その結果、分散すなわち並列処理環境でのデータ処理タスクは一層効率的に実行され、完全に新しい形式のデータ処理タスクが行われる。
【発明の効果】
【００１５】
本発明では、はコンピュータ処理タスクの管理を分散し、最も効率的な経路を利用するような順応性のある選択と共に自律的にデータの分散処理、すなわち並列処理を進めるコンピュータ処理と関連するプログラミング方法が得られる。
【００１６】
また、本発明では、拘束されたプログラミング環境の要件を回避することによって並列データ処理すなわち分散データ処理を容易にするように最適に設計される新規なプログラミング方法を提供するものであり、それにより多重プログラミング言語の同時の使用が支援され、集中処理管理がなくされるものである。また、複雑な処理タスクに必要とされるプログラミングの量や固有の性質を減少させ、誤りに至るようなプログラミングの脆さを減少させることである。
【発明を実施するための最良の形態】
【００１７】
本発明は、各々が信号ハンドラ、少なくとも１つの入力ハンドラ、少なくとも１つの出力ハンドラ、インターフェイスハンドラおよび少なくとも１つの手法ハンドラを含むソフトウエアのマイクロコンポーネントで構成される複数のソフトウエアエンティティを形成し、ここで、前記入力ハンドラ、出力ハンドラおよび信号ハンドラはそれぞれの分子の外部から他の分子またはロジックウエブと通信信号を送受信するために動作でき、かつ他のマイクロコンポーネントと接続されており、前記少なくとも１つの入力ハンドラは入力データを持ち行列に入れるために動作でき、前記インターネットハンドラは前記入力ハンドラによって受け取られる所要の入力データの所定の入力条件がいつ充足されるかを決定し、次に前記手法ハンドラを呼び出し、前記手法ハンドラは入力データを処理するために前記関連する手法を呼び出すように動作でき、前記少なくとも１つの出力ハンドラは前記手法による入力の処理を出力するために動作でき、  その後の実時間の使用のために形成した分子をライブラリ内に格納し、所定のコンピューティングリソース上に、ライブラリから取り出されて所定のコンピューティングリソース上で実行される第１の分子を呼び出すことによって所定の処理タスクを実行するように選択される複数の分子からなるロジックウエブを配置する、ステップからなり、前記第１の分子は、前記他の分子を呼び出す通信信号を送る前記第１の分子の前記信号信号ハンドラによって“進行中”に前記ロジックウエブを徐々に拡張するために１つまたはそれ以上の他の分子を呼び出す、ことを特徴とするコンピュータ処理方法である。
【実施例】
【００１８】
本発明では、新規なコンピュータ処理およびプログラミング方法は、他の分子および利用できるコンピューティングリソース（資源）と通信中に自律的にデータを処理するようにプログラムされた複数のソフトウエアエンティティ（“モレキュール：分子”）を形成すること要求するものである。分子は任意のオペレーティングシステムで実行する任意のプログラミング言語でプログラムされた共通の組み合わせのソフトウエアのマイクロコンポーネントから形成される。分子はロジックウエブの分子で構成されてデータ処理タスクを実行し、データ処理タスクは全体の処理タスクの１つのコンポーネントであってもよい。１つのロジックウエブまたはロジックウエブ内の１つのロジックウエブは単一の処理環境に内にあってもよいが、並列処理および分散処理環境内で用いられるのに特に適している。
【００１９】
図１を参照すると、本発明のソフトウエアエンティティ（“分子”）１０の全体が示されている。各ソフトウエア分子１０はその構成（データ）ファイル、すなわち、信号ハンドラ４０、入力ハンドラ４２、インターフェイスハンドラ４４、手法４７、手法ハンドラ４６および出力ハンドラ４８から基本的に構成されている（一層詳細には以下の“ソフトウエア分子”で述べる）。分子コンポーネントはローカルまたは遠隔のリソースから集められて分子を形成するために組み合わされる（一層詳細には以下の“プログラミング手法”で述べる）。各分子は定義したデータオブジェクトを自律的に処理するようにプログラムされ、他の分子に信号を送信しまた他の分子から信号を受信し、分子は他の分子とロジックウエブ内で相互作用して処理タスクを達成する。ロジックウエブは任意の利用できるコンピューティングリソース上で実行するように割り当てられ、コンピューティング環境内で通信バスを介して、またはネットワーク環境内のネットワークによって（図では接続線で示す）他の分子と連絡する。通信リンクを通して、分子はその信号ハンドラ４０と信号を送受信でき、すなわち、アクセスデータは任意の入力リソースを通して入力ハンドラ４２に入力され、出力データは出力ハンドラ４８を通して出力される。
【００２０】
図２を参照すると、分子のロジックウエブ２０の配置が分散コンピューティング環境に対して示されている。ローカルコンピュータ、ＬＡＮ／ＷＡＮサーバ、ＣＰＵ、ネットワークサーバ、データベース、Ｉ／Ｏ装置等の形式の多数の分散コンピューティングリソースが任意の形式のネットワークで接続されている（接続線で示す）。ネットワークはローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）またはネットワークのグローバルネットワーク（インターネット）であってもよい。ロジックウエブ内のウエブ全体が単一のコンピューティングリソースに存在し、ネットワークを通して、分子によって処理されるべきデータを持つ他のコンピューティングリソースと通信してもよいが、もし特定のコンピューティングリソースにおいてデータを処理するためのロジックウエブが存在し、これらのコンピューティングリソースにおいて局所的にデータを処理し、それらの状態情報と結果を他の分子にネットワークを介して通信するならば、システムの効率は飛躍的に増大する。例えば、ＣＯＢＯＬフォーマット済みのデータを処理するための分子がＣＯＢＯＬフォーマット済みのデータが格納されるＣＯＢＯＬサーバに存在してもよく、またはＪＡＶＡ内でデータを処理するための分子が所望のデータと局所的に存在するＪＡＶＡ仮想記憶装置を持つコンピューティングリソースに存在してもよい。この分散モードでは、分子の局所的に存在するロジックウエブが、その環境で容易に操作できるように、プログラミング言語が存在するコンピューティングリソースにおいて用いられるプログラミング言語でプログラムされてもよい。
【００２１】
１つのロジックウエブまたはロジックウエブ内のロジックウエブはＣＰＵリソースの配列（ＣＰＵ＃１、・・・ＣＰＵ＃６で示す）および関連するデータベースとＩ／Ｏ装置を持つ並列処理環境内に同様に配置されてもよい。ロジックウエブは、処理を望むデータオブジェクトに各分子が効率的にアクセス（接近）できるように構成されている。ＣＰＵコンピューティングリソースへの分子のアクセスはリソース管理分子またはロジックウエブによって立案されてもよい。他の手法としては、分子は並列処理環境で従来どおり用いられているようなＣＰＵスケジューラーと連絡してもよい。分子がデータを自律的に処理するように設計されているので、分子は集中的処理管理によって監視されて制御されることなく作業を行う。分子は、状態情報、結果、終了、次の分子の再構成、すなわち、生成をシステム内に設定された他の分子またはロジックウエブに伝達する。しかしながら、ロジックウエブをハイブリッド配置内の従来のコントローラプログラムと連絡させることも可能である。
ソフトウエア分子
図３を参照すると、信号ハンドラ４０、入力ハンドラ４２、データインターフェイスハンドラ４４、手法ハンドラ４６および出力ハンドラ４８を持つ基本形式のソフトウエア分子用の好ましい構成が示されている。信号ハンドラ４０は、ＣＢ（市民バンド）または個人ラジオネットワーク上の信号の分散一斉通知と同様に、通信バスまたはネットワーク上で他の分子または他のリソースと信号を送受信できる。信号は、通信バスまたはネットワークで用いられている共通のプロトコル、例えば、インターネット通信で用いられているＴＣＰ／ＩＰプロトコルで一斉通知される。
【００２２】
信号ハンドラ４０はシステム内で以下の基本ルーチンを実行する。
１．データソースからのコンフィギュレーションファイル（構成ファイル）の読み取り  構成ファイルは分子のサブ構成の名前、属性および形式を含む。
２．構成ファイル内で定義されたようにサブ構成を組み立てることによる分子の形成  サブ構成のロードや呼出は、格納されたハンドラの形式に対するファイルのライブラリを持つローカルのリソースまたは遠隔のリソースから構成用の名前と形式を呼ぶことによって進める。構成ファイルは信号ハンドラに通されて分子に追加される。
３．信号環境の選択  信号ハンドラは構成ファイル内で特定された信号環境を聞き取る。
４．分子の消去、停止、再開
５．特定した信号環境との信号の送受信
６．信号を受けたとき信号を解釈して再構成できる能力を持つ分子の適切なサブ構成に信号を伝達すること  信号ハンドラは要請をサブ構成に送ることができる。信号ハンドラの要請の例としては、（ａ）入力ハンドラまたは出力ハンドラへキュー寸法を減少させる要請、（ｂ）５つのサブ構成内の任意のものへ状態を書き込み、その後停止させる要請、（ｃ）５つのサブ構成内の任意のもののリマッピングを指示する要請、（ｄ）バッファの寸法またはメモリの使用の変更
７．“次の”または他の分子をロードするための呼出し  信号ハンドラは、“次の”分子が既に存在するか否かを見るために特定の名前のレジストリ（登録事項）を監視している。もし存在するならば、信号ハンドラは分子をリマップさせる。または、もし特定されているならば、“次の”分子を呼び出さない。もし存在しないならば、“次の”分子をロードする新しい信号ハンドラの形成を要求する。新しい信号ハンドラは子供のスレッドでなく、むしろ完全に別個で特殊な新しいエンティティである。これは、スレッドの全てが初期の親のスレッドに至り、一緒になって１つのアプリケーションを形成する他のプログラミングパラダイムとは異なっている。
【００２３】
信号ハンドラの信号の送受信は、通信に適した、または分子が存在するコンピューティングリソースの“信号”環境に適した任意の手法で行われる。従来のコンピュータまたはネットワーク環境では、信号ハンドラはシステム内またはネットワーク上の特定した分子にアドレス指定したデータパケットとして“信号”を送信し、受信することができる。信号ハンドラからの信号は名前レジストリに維持されたアドレスに基づいてターゲット分子に送られる。名前レジストリは、他の分子またはロジックウエブ、または従来のリソースレジスタによって維持されてもよい。例えば、ＪＡＶＡ（商標）  Ｓｈａｒｅｄ  Ｄａｔａ環境のような従来のデータ共有環境は、サーバ、クライアントおよび所定のアプリケーションに対して設定されたデータチャンネルに対するレジスタを有する。信号ハンドラは、すべての分子に対するグローバルな（地球規模の）一斉通知用の信号環境に対しても“対応”でき、または構成ファイルに載った特定のチャンネルに合わせてもよく、または任意の特定の信号環境からの任意の信号を待ってもよく、またはロジックウエブ内の他の分子のグループと共に同一のチャンネルに合わせられてもよい。
【００２４】
分子のハンドラコンポーネント（構成要素）は分子を形成する、すなわち分子をダイナミックに構成するために呼び込まれることができる形式の共通の組み合わせとして構成される。分子は、格納したメモリからコードの対応するセクション（部分）を取り出すために、所望のハンドラの形式の名前を信号で送ることによって組み立てられる。このようにして、任意の数の形式の入力および出力ハンドラがデータソースまたはメモリモデルの正しい形式に従ってアクセスできる。同様に、分子は多数の異なった形式の手法ハンドラで構成できる。インターフェイスハンドラに新しい構成情報が供給されると、所定の条件を呼び込むための手法ハンドラの形式に関する新たな情報が格納され、その結果、分子は、これらの条件が存在するとき新しい手法を実行する。分子の５つのコンポ−ネントハンドラの任意のものに対するソースまたはオブジェクトコードの適切なセクションがローカルメモリ、ＬＡＮ、ＷＡＮ、またはインターネットを経由して、格納されたファイルからアクセスできる。
【００２５】
分子構成ファイル内で参照されるようなハンドラの形式と属性の範囲内の基本的な例がＡｐｐｅｎｄｉｘ（付録１）（表１〜表４）に設けられたリストに示されている。しかしながら、形成されるハンドラの数、形式および属性は無制限であり、異なった形式のメモリモデル、データ共有環境およびコンピューティングリソースに適合するようにプログラマの要求に比例して拡張できる。
【００２６】
入力ハンドラ４２は、プログラマによって決定されるが、特定の形式のメモリモデルからデータソースへの分子の接続を確立する。設計によって、入力ハンドラは任意のメモリモデルのデータソースに対するインターフェイスを可能にする。入力ハンドラは、選んだ入力ハンドラの形式によって決められるが、キューが可能とする程度まで到来データソースを待ち行列に入れ、次に、データを持ち行列に入れたインターフェイスハンドラ４４に登録する。入力ハンドラは、また、分子の他のサブコンポーネントがそのデータを待ち行列にいれるのを可能にする。図示の例では、メモリに対する到来ポインタ、すなわち、データ“Ａ”が入力ハンドラ４２ａおよび入力ハンドラ４２ｂのキュー“Ｂ”に受け入れられ、到来ポインタ／データ“Ｄ”が入力ハンドラ４２ｃのキュー“Ｅ”に受け入れられる。
【００２７】
任意の入力ハンドラに入ってくるデータソースの形式は分子内に組み立てられた入力ハンドラの形式によって決まる。入力ハンドラの各形式はデータをいかに受け入れるかに対して所定のメモリモデルのある特定のデータチャンネルを特定できる。例えば、カリフォルニア州マウンテンビュー所在のサンマイクロシステムズ社のＪａｖａ  Ｓｈａｒｅｄ  Ｄａｔａ  Ｔｏｏｌｋｉｔ（ＪＳＤＴ：商標）のような従来のデータ共有環境のメモリモデルおよびデータ取り扱い機能が用いられてもよい。入力ハンドラが形成されるとき、特定のデータチャンネルがシステムのメモリ環境に対して登録される。特定のデータチャンネル上でソース（他の分子またはシステム内の第３者のクライアント）から入ってくるデータはその入力ハンドラに送られる。特定のデータ形式に対して入力ハンドラを選択することによって、ランタイム（実行時）におけるデータ形式のチェックを行う必要性が回避される。種々の形式の入力ハンドラが取り扱う種々のファイル形式に適合するように書かれる。好ましい構成では、一旦入力ハンドラがデータソースを受け入れてデータを処理し始めると、出力ハンドラが所定の環境に対するインターフェイスに合うようにデータを書式設定する、すなわち形式化するまで、データは“無形式”である。多数の入力ハンドラを用いる利点は、同一の分子に集められて処理される多数のメモリモデルからのデータソースへ同時にアクセス可能であることである。
【００２８】
インターフェイスハンドラ４４は、いつ分子への入力が１つまたはそれ以上の条件を満たすかを決定することによって分子に対する中心機能を実行する。命令によって指示されて集中処理管理によって監視されるのではなく、分子が所定の条件を満たす入力を待つことができることによって、分子は待機し、監視し、継続する能力を持ち、その結果、分子は自律的に作動する特性を持つ。これは、特定のシーケンスで特定の時間に特定のタスクを実行するように書かれた従来の線形プログラミングのコード命令から区別される。所定の条件は入力ハンドラへの所要のデータ入力の全てが存在してもよい。その他、所定の条件は信号ハンドラによって受け取った信号が存在してもよい。インターフェイスハンドラは、手法を呼び出す所定の条件、条件の所定の組み合わせのための手法、または結果を取り扱うように呼び込まれた出力ハンドラを変更するために、信号ハンドラによって受け取った信号によってダイナミックに再構成されてもよい。
【００２９】
インターフェイスハンドラは、どの入力データソースが存在するかによって、複数の異なった手法ハンドラおよび関連する手法の各々に対する所定の入力条件を持つことができる。分子は、インターフェイスハンドラ内に、１つまたはそれ以上の入力ハンドラからの指示を待つ複数のルックアップテーブルを持つ。インターフェイスハンドラは、入力ハンドラと手法ハンドラとの間の通信を進行させる前に、ルックアップテーブル内で特定されたすべての入力が集まるまで、待機する。
【００３０】
インターフェイスハンドラはいつ所定の条件が満たされるかを決定するために多数の入力条件を監視する任意の適切な手段を用いてもよい。この機能はビットアレー、バーテーブル、スイッチアレーと同等なソフトウエアによって行われてもよい。すべての必要とされる入力条件が満たされたとき、インターフェイスハンドラ４４はそれぞれの手法ハンドラ４６を呼び出し、関連する手法４７を呼び出すための適切なレフェレンスを手法ハンドラに送る。図３に示す例では、入力ハンドラ４２ａと４２ｂは、正しいポインター／データソースが待ち行列に入れられたことをインターフェイスハンドラ４４に通知し、その結果、ビットアレー内の特定のフラッグが入力条件“Ｃ”を示すために“１”に設定され、入力ハンドラ４２ｃは入力条件に対するフラッグビットを“Ｆ”に設定する。ビットアレーの第３列内の４つのフラッグビットが他の入力条件の存在、例えば、信号ハンドラ４０に送られた信号によって“１”に設定される。すべての所要のフラッグビットがビットアレーの第３列で“１”に設定されると、インターフェイスハンドラ４４は経路“Ｇ”を開き、適切な手法ハンドラ４６を呼び出し、そして、手法ハンドラ４６は、出力ハンドラ４８への入力を処理するために関連する手法４７を呼び出す。
【００３１】
図４には、インターフェイスハンドラのロジック演算の一層詳細な例が描かれている。インターフェイスハンドラ４４は“ルックアップ＃１”と示された第１条件に必要な所定の入力を格納している。ルックアップ＃１は、どのような事象（“全てのデータ存在”、“時間切れ”、“信号”を含む）がインターフェイスハンドラ４４に対する所定の条件の下で発生するかを特定する。インターフェイスハンドラ４４は１つまたはそれ以上のルックアップを有してもよい。この例では、ルックアップ＃１は３つのデータソース、すなわち、共有したメモリデータＡ、ハードウエアメモリデータＢ、およびネットワークデータＣの存在に基づいたインターフェイスハンドラを描いている。ルックアップ＃１では、インデックス１は共有したメモリデータＡが存在するか否かに依存してオン／オフに設定され、同様に、インデックス２はハードウエアメモリデータＢに対して設定され、インデックス３はネットワークデータＣに対して設定される。すべてのデータが存在すると、インターフェイスハンドラは適切な手法ハンドラ４６ａのために“全てのデータ存在”を呼び出す。デフォルト条件として、“時間切れ”のためのインデックスは、すべてのデータ入力条件が満たされないで特定の時間間隔が経過したならば、手法ハンドラ４６ｂを呼び出すために“オン”に設定される。他のデフォルト条件として、“信号”に対するインデックスは、すべてのデータ入力条件が満たされる前に特定の信号が信号ハンドラ４０によって受信されたならば、手法ハンドラ４６ｃを呼び出すために“オン”に設定される。ルックアップ＃２は２つのデータソース、すなわちハードウエアメモリデータＢとネットワークメモリデータＣに依存するものとして示されている。インターフェイスハンドラは常時どの入力ハンドラ４２がデータを持っているかを知っている。なぜならば、入力ハンドラが新しいデータを受信したとき、またはデータがもはやないとき、そのことがインターフェイスハンドラに知らされるからである。
【００３２】
再び図３を参照すると、所定の入力条件が満たされたとき、それぞれの手法ハンドラが呼び出され（所定の条件の３つの組み合わせに対して形式“Ｈ”、“Ｋ”および“Ｎ”）、関連する手法４７または入力データ上で実行される処理ステップを呼び出し、入力ハンドラ４２から入力データを手法４７に与える。入力データは経路“Ｇ”を介してブロックとして、またはストリーミングデータとして取り扱われる。もし入力データがストリームされるべきならば、手法ハンドラは手法ハンドラからクエリー（照会）“Ｉ”によって取り扱われるストリ−ミング用の入力経路を設定し、入力ハンドラから回答“Ｊ”を入力する。データのブロックに対しては、手法４７は出力Ｍを手法ハンドラ４６に返し、手法ハンドラ４６はそれを出力ハンドラ４８に送り、次に、その後の一掃の面倒をみる。ストリーミングのデータに対しては、出力Ｍは、手法の終了までに、出力ハンドラ４８に直接送られる。手法の例は算術加算の計算、データの分類、ブール演算等であってもよく、第３者のアプリケ−ションの全体を含んでもよい。
【００３３】
図５および図６は２つの手法ハンドリング（取扱）形式、すなわち、ブロック手法ハンドリングおよびストリーミング手法ハンドリングの例をそれぞれ示す。ブロック手法ハンドリングでは、手法ハンドラ４６は、インターフェイスハンドラ４４から、手法４７を呼び出すために必要とされる到来データへの照会を受け取る。次に、手法ハンドラ４６は入力ハンドラ４２からの到来データを照会し、ブロック手法４７を呼び出し、回答を手法４７に送る。次に、手法ハンドラ４６は手法４７がその結果を返すのを待つ。そして、手法ハンドラ４６は出力ハンドラ照会を出力ハンドラ４８から得て、結果を出力ハンドラに送る。もし照会が存在しないならば、手法ハンドラは出力ハンドラを形成（呼び出す）ことができる。次に、データは出力ハンドラ４８に送られ、手法ハンドラ４６は停止する。
【００３４】
ストリーミング手法ハンドラでは、手法ハンドラ４６は、インターフェイスハンドラ４４から、手法４７を呼び出すのに必要とされる到来データへの照会を受け取る。データ送信用の出力ハンドラ４８の照会が同様に手法ハンドラ４６によって得られ、または形成される。所定の条件が満たされると、ストリーミング手法４７が呼び出され、入力および出力ハンドラ照会がストリーミング手法４７に送られる。ストリーミング手法４７は、次に、入力ハンドラ４２からデータを受け取り、それを処理し、それを出力ハンドラ４８に直接送る。このストリーミング形態で手法ハンドラを利用することにより、分子は、ロジックウエブが手法４７のダイナミックな鎖を一列にすることを可能にする“接続エンジン”として働く。
【００３５】
出力ハンドラ４８は、プログラマによって決められるが、出力が与えられる形式のメモリ環境内でデータチャンネルへの適切な接続を達成する。もし出力用のデータチャンネルが出力ハンドラに対して構成ファイル内で特定されていないならば、出力ハンドラは存在する条件に応答して実時間においてデータチャンネルを形成できる。かくして、設計によって、出力ハンドラは任意の形式のメモリモデルに対するインターフェイスとなる。出力ハンドラは、選んだ出力ハンドラの形式に従ってプログラマによって決められるが、キューが許容する程度まで送信データソースを待ち行列に入れる。
【００３６】
出力ハンドラを用いる利点は、同一の分子に集められて処理された入力データに対する多数のメモリモデルへの同時分散を可能にすることである。多数の形式の出力ハンドラがあってもよい。共有メモリコンピュータシステムに対して入力および出力ハンドラを用いることは非常な利点である。実際のデータを移動させる代わりに、データに対するポインタや処理を、１つの分子内で、または１つの分子から他の分子に、作動しようとしている他の分子、すなわち、次の分子のために、移動させることができる。このことにより、分子には従来のオブジェクト指向プログラミング（ＯＯＰ）手法に優る速度上の利点が与えられる。ＯＯＰ手法はポインタを送ることができるが、ポインタはポインタを探すためにＯＯＰプログラムを介して処理されねばならない。対照的に、分子は他の分子から未処理のポインタを受けることができ、直接次の作業に進むことができる。
【００３７】
プログラマによって決められるが、各分子にはマイクロコンポーネントが設けられており、マイクロコンポーネントにより分子は自律的に働いて定義した手法により所要のデータを意図した出力に処理する。データはロジックウエブが構成されたどのような共有環境においても特定のデータチャンネルを通して分子へまたは分子から移動される。もしデータが利用できないならば、分子は単に待機し、次に何を行うかを指示されない。各分子は固有の名前を与えられてもよく、それは名前レジストリに保持される。任意の分子はその分子を固有の名前で呼び出すことができ、同一の名前の他の分子は同一のレジストリには形成されない。
【００３８】
分子の処理は終了信号を信号ハンドラ４０に送ることによって何時でも終了される。分子は、存在する任意の個所で、停止され、信号ハンドラ４０に送られた再構成信号によって異なってモードまたは手法に再構成される。分子には、また、その現状の構成（状態情報）を書き改めるために信号が送られる。その結果、処理の状態が即時に任意の個所で分析できる。対照的に、従来のプログラムは状態情報をダイナミックに変化させること保持することができず、何がある時刻に実行されているかを明らかにすることができない。
【００３９】
分子の５つのサブコンポーネントの任意のものまたはすべてが“消去”信号を受け、かつ選択した形式のハンドラは処理の状態に関する保持情報を支持している場合には、ハンドラはリロードできる分子の構成ファイルに状態情報を書き込む。かくして、もしシステムが何らかの理由により機能しなくなると、状態情報を分子から得ることができ、各分子およびロジックウエブ全体の状態を再形成するのに用いられる。このことにより、システムの管理者はどこにまたどのような故障が生じたかを突き止めることができ、また、故障が直された後処理を再開するために、その構成を他の分子にロードできる。処理（ロジックエウブ）の“状態”を再構築する能力は他のプログラミングパラダイムとは異なっている。システムの故障の場合、一般には、処理全体が最初から再開されねばならなく、そして故障に到達するまで、一度に１つの実行を通してステップを進めなければならない。本発明のプログラミング方法では、ロジックウエブを用いて、処理は故障の直前で再形成され、判断速度が著しく速くなる。
【００４０】
分子の構成ファイルは、例えば、“１度の実行”、“データがなくなるまで実行”、“消去の信号が送られるまで実行”のような実行状態を分子が実行するかを特定する。分子は、再度の実行を完了したとき、入力および出力ハンドラにもはやデータが存在しないとき、または信号ハンドラが信号環境から分子を消去する信号を受け取ったとき、自分自体を消去してもよい。このことはソフトウエアファイルを消去することおによって、またはその実行可能なコードを不能にすることによって達成できる。ロジックウエブの一体性は分子毎に消去を行うことによって維持される。他のハンドラを破損させる恐れのある正しくないデータや状態情報は終了後は残されない。分子レベルでの消去により、効率的なメモリの使用を可能し、ルーチン全体を周期的に消去する必要性をなくすことが可能である。分子は所要の実時間の間にロードされ、それによって、分子の終了の際には機械リソースを切り離す。ストリーミング手法に対しては、機械リソースが切り離された個所において、データが与えられる限度に、利用できるリソースを用いてデータを流す分子が形成できる。もし分子の必要な寿命がダイナミックに決定されるならば、プログラマは、消去信号を受け取るために、信号ハンドラに対して適切な信号環境を傍受することを指示できる。消去信号は分子自体を消去するために分子のサブコンポーネントの各々に送られる。なお、消去信号は将来の参照のための状態を書き出すことを含んでいてもよい。各分子に関して消去する（各データ処理のサブステップ）このプログラミング方法の固有の能力により機械リソースの効率的な使用がなされる。他のプログラミングパラダイムでは、いくつかの消去が実時間中に生じるが、機械リソースはアプリケーションが存在する間は切り離せない。
ロジックウエブプログラミング方法
本発明のプログラミング方法は処理タスクの全体のインクレメント（増分）ステップを実行するために１つまたはそれ以上のロジックウエブの構成を要求するものである。１組の増分処理ステップを通して処理タスクを達成するプログラムの設計は、プログラミング分野における技術、工夫、芸術の問題であり、本明細書の記載の範囲を超えたものである。新しいプログラミング方法の基本的な特徴は、データ処理ステップを自律的に実行する複数の分子から成るコンピューティングリソースに接続されたロジックウエブの形成である。ロジックウエブの構成は実行が必要とされる処理タスクに依存する（一例が以下に題“データ同期例”として記載されている）。ロジックウエブの形成における基本の要素は前述した基本の５つのサブコンポーネントを持つ少なくとも１つの分子の形成である。
【００４１】
分子をプログラムするために、プログラマには分子を形成するためのハンドラ形成のライブラリが与えられる。プログラマは、最初データが得られるデータソース、例えば、格納されたファイル、インターネットデレクトリ、ＪＳＤＴ（商標）スペース（ヴぁ里ふぉル二ア州、マウンテンビュー所在のサンマイクロシステムの商標）、ＩＢＭ  Ｔｕｂｕｌｅ（商標）（ニュ−ヨーク州、アーモンク所在のＩＢＭコーポーレーションの商標）を決定し、データを処理するためにどの方法を用いるかを決定する。プログラマは、データが存在するまたは存在することになるデータ環境に適合する適切な入力および出力ハンドラを取り上げ、次に適切なインターフェイスハンドラを選ぶ。プログラマは、手法ハンドラを呼び出すために満足される入力条件を決定することによってインターフェイスハンドラを構成する。次に、プログラマは呼び出される手法の名前を選び、処理されたデータが送られる環境にどの出力ハンドラが適合するかを選ぶ。プログラマは、分子が一度だけ実行する、データがなくなるまで実行する、または消去の信号が送られるまで実行するか否かを決定する。また、プログラマは、時間切れ期間を用いるか否か、時間切れ手法はどのようなものか、ある形式の信号を受信したときの呼出手法を決定する。最後に、プログラマは、どのような追加、または次の分子がロードされるか、この分子または他の分子をリマップするためにどんな信号が用いられるかを定義する。
【００４２】
この結果、１つの分子ユニットが形成される。プログラマは、１つの初期化ファイルとしてそれをセーブ（待避）し、それに名前レジストリにログ（記録）される固有の名前を与える。プログラマは、各分子がロジックウエブに形成されるように同様な処理を継続する。プログラミング方法のこのパラダイムがさらに進展されるにつれて、最適化した分子およびロジックウエブ全体に対する標準の初期化ファイルがプログラミング利用のためのライブラリに格納できる。ハンドラのライブラリまたはリストの進展により、コードの列を書くことなしに、素人でも十分に機能する分子やアップリケ−ション全体を形成できることが期待できる。
【００４３】
本発明のプログラミング方法によってデータ処理タスクをプログラミングすることで得られるものは、集中処理管理の必要性なしで、割り当てられる任意のコンピューティングリソースにおけるデータを自律的に処理できる分子のロジックウエブを形成することによって実行するプログラムである。さらに重要な特徴は、実時間の変更、プログラムの開発や拡大、またはプログラムの故障の修理のようなデータ処理機能を変更するためにロジックウエブの１つまたはそれ以上の分子をダイナミックに再構成することができることである。
【００４４】
処理タスクにおけるステップの実行は信号ハンドラの生成動作を通して達成される。信号ハンドラが形成されると、その構成ファイルを読み込む際に、それは分岐し、構成ファイル内で指示される任意の他の分子を形成する。信号ハンドラはその分子を他の分子の名前にリマップしてもよく、または他の手法が呼び出されてもよい。かくして、分子の各層は“それ自身のほかに”ロジックウエブを構築する。その結果、分子の連続的な層が形成され、利用できるデータソースが条件を満たすのを待つことになる。
【００４５】
図７Ａ〜７Ｆは本発明のロジックウエブプログラミング方法と従来のオブジェクト指向プログラミングとの比較を示す。この例は所定の検索入力に従って自動車のデータを検索するデータ処理タスクの最も単純な比較を用いる。データ処理プログラムは、自動車のタイプ、型、スタイル、運転特性、操作特性、色、ブレーキ特性及び加速特性の１つまたはそれ以上のカテゴリー（分類）によるデータベースの検索を実行するように設定されている。ロジックウエブプログラミング方法の効果が図７Ａ〜７Ｃに示されており、オブジェクト指向プログラミング方法が図７Ｄ〜７Ｆに示されている。
【００４６】
図７Ａで、自動車の分子がロードされる。自動車の分子が検索入力Ａ、Ｃ、Ｄで充足されると、それは操作分子の形成を要求し、操作分子が運転分子の形成を要求する。入力が運転分子に伝達され、運転分子がそれらを処理し、その結果を戻す。図７Ｄで示すオブジェクト指向プログラミング方法では、自動車のオブジェクト全体がロードされ、入力Ａ、Ｃ、Ｄが自動車のオブジェクトに通される。自動車のオブジェクト、すなわち、自動車のタイプ、操作、運転の階層的要素、またはクラスが入力を処理し、結果を発生させる。
【００４７】
図７Ｂは、ロジックウエブプログラミングパラダイムでは、操作の機能特性を変化するためにはいかにして実行中の操作を停止する必要がないかを示す。ガソリンと電気（電力）の分子が追加され、操作にアクセス可能にされる。リマッピング信号は、加速が呼び出される場合に加えられる新しい分子に適合するように加速の分子に送られる。図７Ｅでは、操作の実行が終了されねばならない。自動車オブジェクトの全体、ガソリンおよび電気オブジェクトのために取得されるソースコードがヒエラルキー内の該当場所で編集され、加速オブジェクトがヒエラルキーの変化に適合するように編集される。次に、オブジェクトコードは再コンパイルされねばならない。その場合、操作で用いられる任意の他のソースコードまたはオブジェクトコードも編集され、再コンパイルされ、再リンクされねばならない。
【００４８】
図７Ｃの最後の例では、ロジックウエブプログラミング方法での加速の分子は現在実行状態にある。加速の分子に新たな入力Ｂと存在する入力Ｃが充足されると、ガソリン分子が呼び出され、データが伝達されて処理され、その結果が戻される。図７Ｆのオブジェクト指向の例では、操作が再開され、自動車オブジェクト全体が再ロードされる。入力ＢとＣが自動車オブジェクトに通され、自動車のタイプ、運転、加速、ガソリンの階層的要素、またはクラスが入力を処理し、結果を発生する。このことは、ロジックウエブプログラミング方法では、システムがシステムの実行中に加えられる新しいパラメータにダイナミックに適応できることを示している。このことにより、実行操作を継続するためにリコード（再符号化）し、コンパイルする必要性をなくしている。
コンパイリングおよび実時間操作
ロジックウエブプログラミング方法では、処理タスクの全ては、最終の結果に至るデータソースの所要の処理を自律的に達成できる分子を相互作用するロジック“ウエブ”を設計することによって達成される。分子のウエブは、プログラマによって書かれた、処理タスク全体の達成に参加するコンピューティングリソースの間に分散された初期化ファイルから実時間において形成される。
【００４９】
初期化ファイルは、処理タスクを開始するために分子の初期コーホートを発生する。ローカルＣＰＵの利用できるコンピューティングリソースと、関連するデータベースを用いて、分子は、終了、データなしでの実行、再構成まで、操作が維持される。操作中、分子はいつでも他の分子を呼び出すのに用いられる。このように、分子はダイナミック環境中で自律的要素のように働く。しかしながら、でたらめというより、その操作は目的をもったものであり、即座に並列処理となるものである。
【００５０】
コンピューティング処理のこの新しいパラダイムの結果、極めて効率的な分散処理ばかりでなく忠実な並列プログラミングと処理が得られる。どのような形式または操作システム環境であっても、ネットワーク上の任意の機械を利用できることに加えて、異なったソースからのデータを即座に処理する。
【００５１】
好ましい実行では、ハンドラは固有の形式の名前を割り当てられ、オブジェクトまたはソースコードで書かれる。同一の形式のハンドラが、出会うことが予想されるプログラミング環境の多数の形式に対して書かれてもよく、意図するローカルコンピューティングリソース上で実行するように正しいコードの形式を呼び出すことができる。例えば、それらはローカルコンピューティングリソースのオペレーティングシステムに用いられるプログラム言語で書かれてもよく、オペレーティングシステム環境で実行可能なコンポーネント（ＪＡＶＡ仮想機械）上で実行するためにＪＡＶＡ（商標）（カリフォルニア州、マウンテンビュー所在のサンマイクロシステムズの商標）のような移植性の高い全てを網羅する言語で書かれてもよい。
【００５２】
ロジックウエブの分子を発生するための初期化ファイルは、ディスク上にまたはメモリ内に格納された、またはローカルコンピューティングリソースにネットワークを介して送信された比較的小さいファイルとして物理的に存在する。初期化ファイルはローカルコンピューティングリソースのＲＡＭに読み込まれ、他のコンパイルされたプログラムと同様に実行される実行可能なファイルとして動作する。もし分子がインターネット環境で展開されるならば、コードファイルはＵＲＬアドレスから取り出され、またはローカルデレクトリ、例えば／ｕｓｒ／ｌｉｂ／ｊａｖａから得られる。
【００５３】
初期化ファイルは、コンポーネントハンドラの名前を呼び出すことによって分子の初期コホートの各々をアセンブルするように動作する。ハンドラ名が呼び出されると、ソースまたはオブジェクトコードを含むファイルは格納されたハンドラライブラリから（内部または外部から）取り出され、分子を形成するようにアセンブルされる。このことにより、オブジェクト全体が完全にアセンブルされたブロックでまたは他のプログラム言語（コンパイルされねばならないソースコードを書く）で書かれるような従来のＯＯＰ方法よりもはるかに融通のきく実時間動作が得られる。
【００５４】
図８Ａ−８Ｄは３つの形式の分子、すなわち、ブロック処理、ストリーミング処理およびブロック処理のストリーミングの実時間実行をステップ毎に示す。図８Ａでは、信号ハンドラ４０、入力ハンドラ４２、インターフェイスハンドラ４４、手法ハンドラ４６、手法（手法要素）４７、出力ハンドラ４８を含む分子の基本パーツが示されている。分子のための初期化ファイルは、最初、信号ハンドラ４０を構築する。信号ハンドラ４０が始動し、プログラム全体に対する名前レジストリに知らせる。もし名前が既に存在するならば、分子を形成する要求を無視するか、存在する分子をリマップする。集中形式の名前レジストリを維持する必要性をなくすためにダイナミックな名前コンベンション（協議体）が用いられてもよい。次に、信号ハンドラ４０は入力および出力ハンドラ４２と４８およびインターフェイスハンドラ４４を呼び出す。この時点で、入力を待っている実行中の分子がある。任意のステップにおいて、信号ハンドラは入力および出力ハンドラ、インターフェイスハンドラ、方法ハンドラの属性の全てのリマップを命令するまたは待ち号列に入れる、またはユニットを停止し、再開し、または終了することができることに留意すべきである。
【００５５】
図８Ｂで示すブロック処理に対して、分子は、ステップＡで、入力ハンドラ４２がインターフェイスハンドラ４４にデータを持っていることを登録するのを待っている。インターフェイスハンドラ４４が充足されると、手法ハンドラ４６を呼び出す。ステップＢで、手法ハンドラは入力ハンドラのレファレンス（参照）、出力ハンドラの名前、手法の名前をインターフェイスハンドラから受け取る。手法ハンドラはブロックとしての入力データを入力ハンドラに照会する。ステップＣでは、手法ハンドラは手法４７を呼び出し、入力データ回答を送り、手法が結果を戻すまで待つ。ステップＤで、結果が戻されると、出力ハンドラ参照が手法ハンドラによって取得される。もし出力ハンドラ参照が存在しないと、手法ハンドラは出力ハンドラ４８を形成する。ステップＥでは、出力ハンドラがデータをその出力環境に送り、分子は入力ハンドラがより多くのデータを待ち行列に入れるための待機に戻る。
【００５６】
図８Ｃに示すストリーミング処理に対しては、分子は、ステップＡで、入力ハンドラがインターフェイスハンドラ４４にデータを持っていることを登録するのを待っている。インターフェイスハンドラ４４が充足されると、手法ハンドラ４６を呼び出す。ステップＢで、手法ハンドラは入力ハンドラのレファレンス（参照）、出力ハンドラの名前、手法の名前をインターフェイスハンドラから受け取る。手法ハンドラ（ストリーミング処理のために選ばれている）は出力ハンドラ参照を取得し、または、もし出力ハンドラ参照が存在しないと、手法ハンドラは出力ハンドラ４８を形成する。ステップＣでは、手法ハンドラは手法４７を呼び出し、入力および出力ハンドラの参照を送る。手法は、入力データキューが空になる、または出力ハンドラがもはや存在しなくなるまで、入力および出力ハンドラ間を流れる。ステップＤでは、最後の手法の結果が出力ハンドラに送られる。手法が結果を戻すまで待つ。ステップＤで、最後の手法結果が出力ハンドラに送られる。ステップＥでは、出力ハンドラがデータをその出力環境に送り、分子は入力ハンドラがより多くのデータを待ち行列に入れるための待機に戻る。
【００５７】
図８Ｄに示すブロック処理のストリーミングに対しては、ステップＡで、分子は入力ハンドラがインターフェイスハンドラに登録するのを待っている。充足されると、手法ハンドラを呼び出す。ステップＢでは、手法ハンドラはインターフェイスハンドラから入力ハンドラ参照、出力ハンドラの名前、手法の名前を受け取り、出力ハンドラ参照を取得し、または出力ハンドラを形成する。ステップＣでは、選ばれた手法ハンドラが入力ハンドラを待ち行列に入れ、入力データを持つ手法を呼び出し、結果を待ち、結果を出力ハンドラに送る。もし入力ハンドラのキューが空でないならば、手法ハンドラは、キューが空になるまで、または出力ハンドラがもはや存在しなるまで、ステップを繰り返す。ステップＤでは、最後の手法の結果が出力ハンドラに送られる。ステップＥでは、出力ハンドラがデータをその出力環境に送り、分子は入力ハンドラがより多くのデータを待ち行列に入れるための待機に戻る。
【００５８】
ロジックウエブの動作では、１つのコンピューティング機械で始められた処理は別のところに移し、ネットワーク上の他の利用できる機械で、または利用できるリソースを持つ多数の機械上で動作を継続する。ロジックウエブの部分だけが動作に不可欠なものである。
データ同期の例
いかにコンピュータ処理およびプログラミング方法がロジックウエブを形成するのに適用されるかを示すために、ある例が図９を参照して記載されている。ロジックウエブはマルチメディアのプレゼンテーションを取り扱うために一般に用いられているような異なったデータソースからのデータのストリーム（流れ）を同期する所定の処理タスクを達成できる。初期化ファイルは、入力構成ファイルを読み取り、新しい分子、すなわち、リソースマネージャー７１と属性ユーザインターフェイス７２を形成するオープン分子７０を形成する。リソースマネージャー７１は利用できるリソースについて機械に照会し、オープン分子が構成ファイルから決定した基準が与えられて、どれほど多くのデータソースを機械が取り扱うか（この例では、３）を定める。リソースマネージャー７１は３つのデータローダー７４ａ、７４ｂ、７４ｃとユーザ定義データローダー７４ｄを形成する。
【００５９】
属性ユーザインターフェイス７２により、入力構成ファイルから属性を選択できるばかりでなく、新しい属性の形成、ファイルのタイプおよびファイル名の選択が可能である。属性ユーザインターフェイスは、ユーザの要求に応じてカスタムデータローダを形成し、実行分子７３を形成する。実行分子７３はファイル名、ファイルのタイプおよびファイル属性を分散し、同期分子８０を含む新しい分子を形成する。
【００６０】
データローダー７４ａ、７４ｂ、７４ｃはデータを位置決めし、もし十分なメモリがあれば、データをメモリにロードし、または必要に応じて、データをセクションに分けてロードさせ、データを送る用意をし、データユーザインターフェイス分子７５ａ、７５ｂ、７５ｃを形成する。これらにより、ユーザは、各ストリームをいつ開始するかを決定するために、他のストリームの長さと整合するように特定のデータのストリームを計量するために、およびデータストリームの持続時間を決定するために、特定のデータのストリームの時間枠を補正することができる。データローダーは、また、与えられたパラメータに適合するデータストリームを発生し、新しい分子を形成するデータストリーマ分子７６ａ、７６ｂ、７６ｃを形成する。
【００６１】
ユーザ定義データローダー７４ｄは、ユーザがデータの圧縮の量を制御することを可能にする圧縮ユーザインターフェイス７７と与えられたパラメータに関してデータを圧縮するデータ圧縮器７８を形成する。データ圧縮器７８はデータユーザインターフェイスとデータストリーム７６ｄを形成する。
【００６２】
同期分子８０はパルス繰返し数の調整を可能にし、ストリーミングが開始されてからどれほど時間が経過したかのカウント（計数）を与える。ユーザは停止させ、再開させ、データストリーム内で前後に移動させるように、この時間計数を用いてもよい。同期分子８０は同期パルスを発生し、同期ユーザインターフェイスによって維持されたパラメータに従ってパルスを送るように利用可能なデータストリーマのリストを維持し、新しい分子を形成する。
【００６３】
同期分子８０は、また、多数の入力データストリームを特定の出力ストリームの数に組み合わせる層分子８１を形成し、表示分子８２とセーブ分子８３を含む新しい分子を形成する。表示分子８２はデータをスクリーン上に出力し、セーブ分子８３は、データをディスク、ネットワーク、テープ、または他の媒体に出力する。
【００６４】
意図した結果を得るためのコンポーネントの相互作用を説明する。ユーザはオープン分子７０のための初期化ファイルを選ぶ。オープン分子は属性ユーザインターフェイス７２の形成を要求する。また、オープン分子７０はリソースマネージャー７１を呼び出す。もし機械またはネットワークに使用中のリソースマネージャーが既にあるならば、リソースマネージャーがリソースを再分散するのに用いられる。ないならば、新しいリソースマネージャーが形成される。リソースマネージャー７１はどの程度多くのデータストリームを快適に取り扱うことができるかを計算し、データローダー７４（各データストリームに対して１つ：この例では３つ）の形成を要求する。入力データのファイルのタイプを調べ，次にそのタイプのファイルの包括的な大きさを調べ、さらに利用できるメモリリソースを調べることによってリソースマネージャーはデータローダーの形成を行い、これらのパラメータからメモリを破損することなく行うことができるローダーの数を作るかを決定する。
【００６５】
ユーザは、属性ユーザインターフェイス７２内の各利用できるデータローダー７４に対する１つの名前と１つのファイルのタイプを選ぶ。もしユーザが利用できるデータローダー７４より多いファイルのタイプを取り上げると、属性ユーザインターフェイス７２はリソースマネージャー７１から追加のデータローダー７４を要求する。データローダーの形成は、属性ユーザインターフェイスのリストにないファイルのタイプをユーザが要求できる程度に特注作成できる。この場合、名前とユーザ定義データローダー７４ｄへの経路が与えられる。これにより、システムに融通性が得られ、予定していないデータの形式を受け入れることができる。ユーザは、また、属性ユーザインターフェイス７２中の実行に送られる属性やパラメータを決定する。
【００６６】
実行分子７３は同期分子８０を呼び出し、同期分子は層分子８１の形成を要求する。層分子８１は、表示分子８２とセーブ分子８３の形成を要求する。同期分子８０は、データストリーマ分子によって知らされた、同期パルスを送る名前のリストを維持する。
【００６７】
実行において、ファイル名、タイプおよび属性がデータローダーに送られる。データローダーがファイル名、タイプおよび属性を得るやいなやデータローダーは充足され、データを見出しデータをメモリにロードする。もし十分なメモリが利用できないならば、データはセクションに分けてロードされる。次に、データローダーはデータユーザインターフェイス分子７５とデータストリーマ分子７６の形成を要求する。この処理は、ファイル名、ファイルのタイプおよび属性が満たされたデータローダーとユーザ定義データローダーの各々に対して生じる。
【００６８】
リソースが僅かになったことをリソースマネージャー７１が検出した場合、リソースマネージャー７１はデータ圧縮を呼び出すためにデータローダーに要求を送る。次に、データローダーは適切なデータ圧縮をデータ圧縮分子７８に送る。属性ユーザインターフェイスの１つが圧縮されたデータを要求する場合、データローダーはデータローダーはデータをデータ圧縮器に送る。圧縮ユーザインターフェイス７７は圧縮パラメータを調節するためにアクセス可能である。
【００６９】
次に、ユーザはデータユーザインターフェイス７５内の各データストリームの持続時間開始ポイントを選ぶ。ユーザは他のストリームの長さに適合するように特定のデータストリームの時間枠を補償する、すなわち、拡大または縮小してもよい。データストリーマにデータユーザインターフェイス７５から送られたパラメータが充足されたとき、データストリーマはその参照名を同期分子８０に送り、データがストリームする用意ができたことを知らせる。同期分子８０は、参照名を名前のリストに加える。リストは現状でのシステム内の任意のデータストリーマの参照名からなる。もしもはやデータストリーム内にストリームのために用意されるデータがないならば、参照名は同期分子８０のリストから除去される。名前のリストの参照の数は層分子８１のコンポーネントに送られる。
【００７０】
同期分子８０はそのパルスをデータストリーマ７６に伝達し始め、データストリーマがデータを層分子８１のコンポーネントに伝達する。もし層分子８１のコンポーネントがリスト上のすべてのデータストリームを受け取らないならば、層分子は、すべてのデータが同時に層分子８１に到達するまで、同期分子８０がパルスを遅らせるように要求する。層分子８１のコンポーネントはデータ表示分子８２に送り、セーブ分子８３を呼び出す。もし任意の時点で、ユーザが一時停止、停止、時間計数の後退のためにデータストリームを中断したいならば、ユーザは同期ユーザインターフェイス７９で行ってもよい。
【００７１】
データ同期例でロジックウエブプログラミング方法を用いることに対していくつかの利点がある。ダイナミック構成の能力に起因して、多数のユーザが同時に機械やネットワーク上で同期システムを用いることができ、同期システムの各々はリソースマネージャーによってデータ同期リソースに分散できる。このことを達成する能力は、通常は付加のロードバランスの特殊なソフトウエアアプリケーションを必要とする自動的なロードのバランスを達成する。ユーザは必要に応じて任意のユーザ定義データローダーを形成できるので、システムはどのようなデータフォーマットにも適合する。システムはデータを予めファーマット化し、予め処理する。また、システムは、必要に応じて、ユーザの中断なしに、いつ圧縮が必要であるかを決定する。また、データ圧縮器は充足条件に応答して自動的に圧縮する。データローダーのリストに挙げられたネットワークファイルのタイプに合うようにデータを再フォーマットする。ハードウエアのリソースを考慮すると、システムは分散され、プラットファームは独立である。コンポーネントのどのいずれもがＬＡＮ、ＷＡＮ、またはインターネット上の任意の機械に載せることができる。並列処理環境では、多数のＣＰＵ上に分散した多数の同期ロジックウエブが並列のデータストリームを共通の層に伝達するように調和される。
【００７２】
分子はロジックウエブプログラミング方法の基本的な要素である。それは、大きなアプリケーションに通常関連する必須の機能（メモリ管理、機能の呼出、消去を含む）を保持するものである。それは占有範囲が小さく、極めて融通性があり、ダイナミックに再構成できる。それはローカルコンポーネントネットワーキンばかりでなく異なったハードウエア環境上の遠隔のネットワーキングに対する接続として機能する。ロジックウエブプログラミングパラダイムによって、集中処理管理の必要性なしに、またはスケジューリングや調和を厳密に予想することなく、機能ユニット間のつなぎ目のない互換性を伴った真に自律的な処理が可能である。
【産業上の利用可能性】
【００７３】
本発明のコンピュータ処理およびプログラミング方法では、複雑な計算及びデータ処理タスクが任意のタイプのおよび任意のネットワーク上の任意の位置にある利用できるコンピューティングリソースを利用するコンポーネント分子からなるロジックウエブを設計することによって達成できる。したがって、分散コンピューティングおよび並列処理環境でタスク処理を実行するのに理想的に適したものである。ロジックウエブは、任意のタイプの古いシステム、異なった言語でプログラムされたアプリケーション、および任意のファーマットに格納された任意のタイプのデータと共に動作する分子で設計され、かくして、データ集約タスクばかりでなく全く新しいタイプのデータ集約システムの形成の極めて効率的なプログラミングが可能である。
【００７４】
ロジックウエブプログラミング方法は工業用の特定のインターフェイスにそのコンポーネントを適用する事によって任意の分野に適用できる。例えば、データ集約、モデリング、シミュレイション、データの視角化、アニメーション、翻訳およびモジュラー生成アプリケーションに適用できる。現在のインターネットに基づくアプリケーションに対しては、それは、簡単さ、これらの考慮を集約すること、サーバに基づくコンピューティングモデル、固有の大きさの調整能力、ＪＡＶＡに基づくコア機能および拡張性、伝達のためのウエブブラウザー技術、テラバイトデータセットを処理する能力、集約機能を持つユビキタスデータモデル、特注で構築された機能、分散エンドユーザの指針および設計の確約、モジュラーシーケンスのデータフローおよび位相型理工アプローチを持って、現在の市場の要件に合わせることができる。
【００７５】
ロジックウエブプログラミング方法は、データセンターおよびシステム監視、可視化共同支配、決定支援システム、複雑なリレーショナル表示、および科学モデリング可視化のようなデータの可視化アプリケーションに特に適したものである。ロジックウエブソフトウエアは、並列、分散、同期、および追跡型オブジェクト指向シーケンスを伴った非線形シーングラフとして動作できる。ロジックウエブのモジュラーアプローチの利点は、可視インターフェイスと結合されたとき、特に明らかである。分子は手法が名前を付けるような単一の手法である。手法の接続または結合は分子に固有のものであるので、ロジックウエブは、インターネット操作とは殆ど無関係に、人間指向の機能名や可視キューによって迅速に組立てられる。ロジックウエブを単に実行することによって故障の時点で自己診断を呼び出す。最適の支援環境で可視的に監視されるので、プログラミング方法はコンピュータの素人にまでコンピュータを“プログラム”する能力を拡張する。適切な類推によって、必要な部品を認識し部品を寄せ集めることによるパイプと取付け具の組立てのレベルにまで複雑なデータ処理タスクのプログラミングを単純化できる。
【００７６】
【表１】
2004537122.tif 000003
【００７７】
【表２】
2004537122.tif 000004
【００７８】
【表３】
2004537122.tif 000005
【００７９】
【表４】
2004537122.tif 000006
【図面の簡単な説明】
【００８０】
【図１】本発明のソフトウエアのエンティティ（ソフトウエアの構成要素）（“分子”）の全体図である。
【図２】分散コンピューティングすなわち並列処理環境における分子のロジックウエブの配置を示す。
【図３】信号ハンドラ、入力ハンドラ、インターフェイスハンドラ、手法ハンドラ、および出力ハンドラのマイクロコンポーネント（小型構成）を持つ基本形式のソフトウエア分子用の構造体の好ましい例を示す。
【図４】ソフトウエア分子のインターフェイスハンドラの論理演算を詳細に示す。
【図５】２つの手法ハンドラ形式のうちのブロック手法ハンドラの例を示す。
【図６】２つの手法ハンドラ形式のうちのストリーミング手法ハンドラの例を示す。
【図７】本発明のプログラミング手法と従来のオブジェクト指向プログラミングとの比較を示す。
【図８】ブロック処理、ストリーミング処理およびブロック処理のストリーミングの３つの基本形式の分子のステップ毎のランタイム実行を示す。
【図９】いかに新規なコンピュータ処理およびプログラミング手法がデータ同期タスクを達成できるロジックウエブを発生させるために適用されるかを示す。
【符号の説明】
【００８１】
１０    ソフトウエアエンティティ（分子）
４０    信号ハンドラ
４２    入力ハンドラ
４４    インターフェイスハンドラ
４６    手法ハンドラ
４８    出力ハンドラ
【図１】
2004537122.tif 000007
【図２】
2004537122.tif 000008
【図３】
2004537122.tif 000009
【図４】
2004537122.tif 000010
【図５】
2004537122.tif 000011
【図６】
2004537122.tif 000012
【図７】
2004537122.tif 000013
【図８】
2004537122.tif 000014
【図９】
2004537122.tif 000015
【国際公開パンフレット】
2004537122.tif 000016
2004537122.tif 000017
2004537122.tif 000018
2004537122.tif 000019
2004537122.tif 000020
2004537122.tif 000021
2004537122.tif 000022
2004537122.tif 000023
2004537122.tif 000024
2004537122.tif 000025
2004537122.tif 000026
2004537122.tif 000027
2004537122.tif 000028
2004537122.tif 000029
2004537122.tif 000030
2004537122.tif 000031
2004537122.tif 000032
2004537122.tif 000033
2004537122.tif 000034
2004537122.tif 000035
2004537122.tif 000036
2004537122.tif 000037
2004537122.tif 000038
2004537122.tif 000039
2004537122.tif 000040
2004537122.tif 000041
2004537122.tif 000042
2004537122.tif 000043
2004537122.tif 000044
2004537122.tif 000045
2004537122.tif 000046
2004537122.tif 000047
2004537122.tif 000048
2004537122.tif 000049
2004537122.tif 000050
2004537122.tif 000051
2004537122.tif 000052
2004537122.tif 000053
2004537122.tif 000054
【国際調査報告】
2004537122.tif 000055