JP2001514422A - 分散型コンピュータシステム - Google Patents
分散型コンピュータシステムInfo
- Publication number
- JP2001514422A JP2001514422A JP2000508165A JP2000508165A JP2001514422A JP 2001514422 A JP2001514422 A JP 2001514422A JP 2000508165 A JP2000508165 A JP 2000508165A JP 2000508165 A JP2000508165 A JP 2000508165A JP 2001514422 A JP2001514422 A JP 2001514422A
- Authority
- JP
- Japan
- Prior art keywords
- computer system
- denizun
- ode
- user
- providing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 151
- 238000011156 evaluation Methods 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 238000013528 artificial neural network Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 230000002068 genetic effect Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 68
- 238000013519 translation Methods 0.000 abstract description 7
- 241000700605 Viruses Species 0.000 abstract description 3
- 239000012634 fragment Substances 0.000 description 32
- 230000006870 function Effects 0.000 description 24
- 238000007726 management method Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 13
- 238000013459 approach Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 239000004148 curcumin Substances 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 101100427344 Mus musculus Usp10 gene Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000037185 brain physiology Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 230000035876 healing Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009967 tasteless effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
- G06F9/4875—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
新規なコンピュータアーキテクチャによる資源を活用する方法とシステムが提供されており、それには、デニズンプロセス(100)のための動作環境およびロケーション間の移動のためのデニズン(100)用の道が含まれている。デニズンプロセス(100)は、命令(300)を受け取り、受け取った命令(302、304)の視点から動作環境の異なるロケーションを評価し、その評価(306)に基づいてロケーションを選択し、自ら選択したロケーションに移動し(314)、そして選択したロケーション(316)で受け取った一部を実行することができる。ウィルスの分散と帯域幅の必要を避けるため、デニズン(100)は、宛先ロケーションのライブラリに格納されているコードを使うことにより、デニズン(100)を構築するための特定の情報で移動できる。デニズン(100)は、自ら再構築およびアーカイブ(318)、自らのエラーを検出すること、さらに自らのアーカイブさらたコピーで自らを置き換える試みやライブラリコンポーネントから自らを再構築する試みも可能である。さらに、デニズン(100)は、動的なロードディングとアンロードディングコードで自ら、修正もできる。デニズン(100)は、柔軟に、プロセッサを割り当てることができる。なぜならば、各デニズン(100)は個々に、どこで実行すべきかを、決めることができるからである。新規なアーキテクチャを使う適用分野には、データベース管理や普通言語の翻訳が含まれる。
Description
【0001】
本発明は、コンピュータシステムアーキテクチャ、特に、自己再生、自己アー
カイブの作成、自己修復を行うモバイルデニズンプロセスのための動作環境を提
供する、分散型システムコンピュータアーキテクチャに関するものである。
カイブの作成、自己修復を行うモバイルデニズンプロセスのための動作環境を提
供する、分散型システムコンピュータアーキテクチャに関するものである。
【0002】 (発明の技術背景) 分散型コンピュータの一般的効果は、よく知られている。コンピュータの能力
は低価格でより広く利用できるようになったので、多くの問題に対する最も効果
的なアプローチとして、1つの大規模システム内で一体として数多く接続された
プロセッサを含めることができる。
は低価格でより広く利用できるようになったので、多くの問題に対する最も効果
的なアプローチとして、1つの大規模システム内で一体として数多く接続された
プロセッサを含めることができる。
【0003】 例えば小売高と在庫目録の追跡といった、いくつかのコンピュータ上の問題は
、本来分散されている。分散型システム内の1つのプロセッサの故障によって発
生した問題が、すべての仕事に影響を及ぼして停止させるといったことには至ら
ないので、分散型コンピュータの仕事量も信頼性の改善を図ることができる。
、本来分散されている。分散型システム内の1つのプロセッサの故障によって発
生した問題が、すべての仕事に影響を及ぼして停止させるといったことには至ら
ないので、分散型コンピュータの仕事量も信頼性の改善を図ることができる。
【0004】 多くのツールは、分散型コンピュータシステムを構築するために利用できる。
共用メモリ、リモートプロシージャコール、「ブラックボード」、イベント駆動
型モジュール、およびその他のメカニズムは、1つ又は複数のコンピュータの別
々のメモリ領域の内で、協調方式で動作するプロセッサ間の通信が可能である。
共用メモリ、リモートプロシージャコール、「ブラックボード」、イベント駆動
型モジュール、およびその他のメカニズムは、1つ又は複数のコンピュータの別
々のメモリ領域の内で、協調方式で動作するプロセッサ間の通信が可能である。
【0005】 これらのメカニズムは、ネットワークプロトコル、ドメインネームシステム、
分散オペレーティングシステム、および分散ファイルシステムなどと組み合わさ
れることによって、別々のコンピュータで動作するプロセス間の通信と、このよ
うなプロセスによる資源の効果的な利用とが可能になる。
分散オペレーティングシステム、および分散ファイルシステムなどと組み合わさ
れることによって、別々のコンピュータで動作するプロセス間の通信と、このよ
うなプロセスによる資源の効果的な利用とが可能になる。
【0006】 インターネット、ローカルエリアネットワーク、メトロポリタンエリアネット
ワーク、ワイドエリアネットワーク、ワイヤレスネットワーク、衛星通信ネット
ワーク、光通信ネットワーク、および他の接続されたおよび/または接続可能な
コンピュータの集合体は、処理能力、メモリ、ディスク空間、およびインタープ
ロセス通信の施設を含むような他の資源を提供する。
ワーク、ワイドエリアネットワーク、ワイヤレスネットワーク、衛星通信ネット
ワーク、光通信ネットワーク、および他の接続されたおよび/または接続可能な
コンピュータの集合体は、処理能力、メモリ、ディスク空間、およびインタープ
ロセス通信の施設を含むような他の資源を提供する。
【0007】 多くの秘密キー、公開キー、および他の暗号手法のホストは、インタープロセ
ス通信の安全性を向上させるために利用できる。Java、Ada、C++、ア
センブリ、および他のプログラミング言語または開発環境は、割込み処理ルーチ
ンの生成、検査、改善、そして並行プロセス、スレッド、多重処理システム、例
外ハンドラ、および他の並行および/または分散プログラミング構成体をサポー
トする。
ス通信の安全性を向上させるために利用できる。Java、Ada、C++、ア
センブリ、および他のプログラミング言語または開発環境は、割込み処理ルーチ
ンの生成、検査、改善、そして並行プロセス、スレッド、多重処理システム、例
外ハンドラ、および他の並行および/または分散プログラミング構成体をサポー
トする。
【0008】 結果として、分散型コンピュータへの多くの異なるアプローチが試みられ、さ
らには提案されたりしている。各分散型コンピュータシステムは、実装されてい
るか否かにかかわらず、無限の宇宙の可能性から選択された1つのアプローチと
するような多数の設計の選択肢を取り入れている。最も大切な設計の選択の中に
は、互いの間とユーザとの間を分散されたプロセスがどのように通信するか、機
密保護の制約条件をどのように規定し実施するか、どのように、いつプロセッサ
とプロセスが統合されたり、分離されたりすべきか、どのようにプロセス間の責
任を区切るか、新しいデータや命令を反映するための更新をどのようにプロセス
が行うか、およびどのようにプロセスがエラーを検知し、処理すべきかが含まれ
る。
らには提案されたりしている。各分散型コンピュータシステムは、実装されてい
るか否かにかかわらず、無限の宇宙の可能性から選択された1つのアプローチと
するような多数の設計の選択肢を取り入れている。最も大切な設計の選択の中に
は、互いの間とユーザとの間を分散されたプロセスがどのように通信するか、機
密保護の制約条件をどのように規定し実施するか、どのように、いつプロセッサ
とプロセスが統合されたり、分離されたりすべきか、どのようにプロセス間の責
任を区切るか、新しいデータや命令を反映するための更新をどのようにプロセス
が行うか、およびどのようにプロセスがエラーを検知し、処理すべきかが含まれ
る。
【0009】 これらの広範囲にわたる設計の各問題は、付加的なより特定の問題になる。例
えば、通常プロセスに合うプロセッサをどのように決めるかには、(他の考慮事
項の中で)プロセッサアロケーションアルゴリズムの選択が伴う。Andrew
S.Tanenbaum著「Distributed Operating
Systems」ISBN 0−13−219908−4(1995)の本文で
説明されているように、この選択には、順番に決定対試行錯誤アルゴリズム、集
中的対分散的アルゴリズム、最適対副最適アルゴリズム、ローカル対グローバル
アルゴリズム、および送り手起動対受け手起動アルゴリズムなどの間の重要な選
択を含んでいる。
えば、通常プロセスに合うプロセッサをどのように決めるかには、(他の考慮事
項の中で)プロセッサアロケーションアルゴリズムの選択が伴う。Andrew
S.Tanenbaum著「Distributed Operating
Systems」ISBN 0−13−219908−4(1995)の本文で
説明されているように、この選択には、順番に決定対試行錯誤アルゴリズム、集
中的対分散的アルゴリズム、最適対副最適アルゴリズム、ローカル対グローバル
アルゴリズム、および送り手起動対受け手起動アルゴリズムなどの間の重要な選
択を含んでいる。
【0010】 機密保護、エラー管理、通信、更新伝播、および他の広範囲の設計の問題を、
たいへん深く考慮する場合、多くの付加的でさらに特定の疑問のホストも浮上す
る。メモリは共用すべきか。そうならば、「同一」データの異なるコピーの整合
性はどのように維持されるべきか。どのような種類のエラーがプロセスによって
検知され得るか、どのように各タイプのエラーを処理すべきか。与えられたプロ
セスは、それ自体で何をすべきか、そして他のプロセスに何を行うように要請す
べきか。どのようなフォーマットで命令やデータを格納すべきか。
たいへん深く考慮する場合、多くの付加的でさらに特定の疑問のホストも浮上す
る。メモリは共用すべきか。そうならば、「同一」データの異なるコピーの整合
性はどのように維持されるべきか。どのような種類のエラーがプロセスによって
検知され得るか、どのように各タイプのエラーを処理すべきか。与えられたプロ
セスは、それ自体で何をすべきか、そして他のプロセスに何を行うように要請す
べきか。どのようなフォーマットで命令やデータを格納すべきか。
【0011】 与えられたプロセスは、そのプロセスもその上で動作しているコンピュータの
特定のハードウェアおよびオペーレーティングシステムとどれくらい緊密に結合
すべきか。プログラムを1つの完了した独立ブロックとして実行のためにメモリ
へロードすべきか、またはコンポーネントを必要な場合にのみロードすべきか、
バージョン管理をどのように行うか。
特定のハードウェアおよびオペーレーティングシステムとどれくらい緊密に結合
すべきか。プログラムを1つの完了した独立ブロックとして実行のためにメモリ
へロードすべきか、またはコンポーネントを必要な場合にのみロードすべきか、
バージョン管理をどのように行うか。
【0012】 設計タスクは、特定の方法で1つの設計の問題に答えると、他の問題の重要性
が変化したり、または新しい問題が浮上することによって、より困難になってい
る。例えば、1つのプロセスが、起動後にディスクアクセスを避けるために使わ
れているハードウェアから十分独立している場合、そのプロセスは、ディスク無
しのコンピュータとローカルディスクを有するコンピュータとの両方で動作する
ことができる。プロセスが動作する間、使用するディスク記憶フォーマットは明
らかに無関係になり、重大なエラーから回復するためのオプションは、ローカル
ディスクにチェックポイントが記録されている場合のものとは異なる。
が変化したり、または新しい問題が浮上することによって、より困難になってい
る。例えば、1つのプロセスが、起動後にディスクアクセスを避けるために使わ
れているハードウェアから十分独立している場合、そのプロセスは、ディスク無
しのコンピュータとローカルディスクを有するコンピュータとの両方で動作する
ことができる。プロセスが動作する間、使用するディスク記憶フォーマットは明
らかに無関係になり、重大なエラーから回復するためのオプションは、ローカル
ディスクにチェックポイントが記録されている場合のものとは異なる。
【0013】 分散システムアーキテクチャは、非常に異なる方法で設計の問題に答える場合
、設計の問題のなかには、大部分のシステムで同じまたは同様の方法で答える傾
向がある。例えば、大抵のシステムには、他のプロセスを利用できるプロセッサ
とマッチさせる役目を果たす専門化したプロセスを含んでいる。この「プロセス
マネージャ」は、「スケジューラ」、「ロードバランサ」、「トランスファマネ
ージャ」、「ユーセイジテーブルコーディネータ」、「プロセスキューマネージ
ャ」、および「プロセッサアロケータ」としても知られている。
、設計の問題のなかには、大部分のシステムで同じまたは同様の方法で答える傾
向がある。例えば、大抵のシステムには、他のプロセスを利用できるプロセッサ
とマッチさせる役目を果たす専門化したプロセスを含んでいる。この「プロセス
マネージャ」は、「スケジューラ」、「ロードバランサ」、「トランスファマネ
ージャ」、「ユーセイジテーブルコーディネータ」、「プロセスキューマネージ
ャ」、および「プロセッサアロケータ」としても知られている。
【0014】 最善のプロセッサの割り当てに関する決定は、プロセッサマネージャにより行
われ、時々、その割り当てたプロセッサで動作するプロセスからの入力は少しの
または全くないプロセッサマネージャで行われる。システムの中には、分散シス
テム全体に対して1つではなく、プロセッサ毎に、またはコンピュータ毎に1つ
のプロセスマネージャを含んでいるものもあるが、与えられたシステム内のすべ
てのプロセスマネージャは、通常プロセスをプロセッサにマッチさせるために1
つのアルゴリズムを使う。
われ、時々、その割り当てたプロセッサで動作するプロセスからの入力は少しの
または全くないプロセッサマネージャで行われる。システムの中には、分散シス
テム全体に対して1つではなく、プロセッサ毎に、またはコンピュータ毎に1つ
のプロセスマネージャを含んでいるものもあるが、与えられたシステム内のすべ
てのプロセスマネージャは、通常プロセスをプロセッサにマッチさせるために1
つのアルゴリズムを使う。
【0015】 同様に、最も知られている分散システムにおいても、検知できるエラーのタイ
プは(a)入力エラー(b)無くなったまたは利用できない資源に限られる。例
えば、ファイル、ソケット、またはユーザからのデータ入力は、所定の範囲外の
値に対して検査でき、またデータの別のコピーに対して検査することができる。
ネットワークパケットまたはJavaアプレットのコンテンツは、チェックサム
を計算し、以前に計算されたチェックサムと比較することによって確認されるこ
とになる。その比較からエラーが検知される場合、パケットの再送信やアプレッ
トの再ロードの要求が可能になり、またはユーザに異なるコンテンツの供給を要
請することもできるようになる。
プは(a)入力エラー(b)無くなったまたは利用できない資源に限られる。例
えば、ファイル、ソケット、またはユーザからのデータ入力は、所定の範囲外の
値に対して検査でき、またデータの別のコピーに対して検査することができる。
ネットワークパケットまたはJavaアプレットのコンテンツは、チェックサム
を計算し、以前に計算されたチェックサムと比較することによって確認されるこ
とになる。その比較からエラーが検知される場合、パケットの再送信やアプレッ
トの再ロードの要求が可能になり、またはユーザに異なるコンテンツの供給を要
請することもできるようになる。
【0016】 資源のエラーに関して、プロセスは、ダイナミックリンクライブラリファイル
または要求されているテキストファイルなどのファイルが予期されたロケーショ
ンで発見できず、他のロケーションを検索する。プロセスは、電話回線、ネット
ワークソケット、メモリ、ディスク空間、または他の要求された資源が利用でき
ず、ユーザに警告を発したり、または障害を起こしたりする前にその資源を入手
しようと数回試みるかどうかも判断する。
または要求されているテキストファイルなどのファイルが予期されたロケーショ
ンで発見できず、他のロケーションを検索する。プロセスは、電話回線、ネット
ワークソケット、メモリ、ディスク空間、または他の要求された資源が利用でき
ず、ユーザに警告を発したり、または障害を起こしたりする前にその資源を入手
しようと数回試みるかどうかも判断する。
【0017】 しかし、入力または無くなった資源のエラー以外のエラーは、重要な情報の破
損または紛失が起こるまでは、検知されないままとなる。特に、プロセスは、動
作中には、通常それ自体の内部構造の破損を検知せず、このようなエラーにスム
ーズに反応するのではなく、大抵のプロセスは突然、動作不能になる。プロセス
の中には、例外ハンドラを使い深刻なエラーが発生した後にその衝撃を規制する
ものもあるが、破損した構成を使うまでは、破損を検知することができない。
損または紛失が起こるまでは、検知されないままとなる。特に、プロセスは、動
作中には、通常それ自体の内部構造の破損を検知せず、このようなエラーにスム
ーズに反応するのではなく、大抵のプロセスは突然、動作不能になる。プロセス
の中には、例外ハンドラを使い深刻なエラーが発生した後にその衝撃を規制する
ものもあるが、破損した構成を使うまでは、破損を検知することができない。
【0018】 大抵のコンピュータプログラムは、分散処理が可能かどうかにかかわらず、時
々更新する必要がある。プログラムのアーキテクチャに依存して、更新作業は、
時間がかかり、エラーを起こし易く、および/または柔軟性がないものである。
多くのプログラムは、ユーザに大量のコードの独立言語の集合体として提供され
る。
々更新する必要がある。プログラムのアーキテクチャに依存して、更新作業は、
時間がかかり、エラーを起こし易く、および/または柔軟性がないものである。
多くのプログラムは、ユーザに大量のコードの独立言語の集合体として提供され
る。
【0019】 時の経過とともに、これらのコードのモノリシックな集合体は、ワープロや表
計算ソフトなどのポピュラーなアプリケーションに対して、非常に大量なものに
成長する。このようなモノリシックなプログラムを更新することには、新しいバ
ージョンと異なるかどうかにかかわらず、現存するすべてのコードを削除して、
プログラムの新しいバージョンをインストールすることがしばしば含まれる。あ
る場合、オブジェクトコード「パッチ」が、代わりに使われ、置き換えられるコ
ードの量がより少なくなるが、パッチは、普通プログラムの局部的変更にのみ使
われ、基本的または全体的な変更のためには、使われていない。
計算ソフトなどのポピュラーなアプリケーションに対して、非常に大量なものに
成長する。このようなモノリシックなプログラムを更新することには、新しいバ
ージョンと異なるかどうかにかかわらず、現存するすべてのコードを削除して、
プログラムの新しいバージョンをインストールすることがしばしば含まれる。あ
る場合、オブジェクトコード「パッチ」が、代わりに使われ、置き換えられるコ
ードの量がより少なくなるが、パッチは、普通プログラムの局部的変更にのみ使
われ、基本的または全体的な変更のためには、使われていない。
【0020】 プログラムの中には、モノリシックさを減少させ、イベントハンドラループお
よび動的にロードされたコンポーネントのコレクションなどのメインルーチンに
分割しているものもある。その場合、更新には、1つまたは複数の関係する小さ
なコンポーネントを単に置き換えることだけが含まれている。コンポーネント間
で機能性を分割することも、2つ以上の異なるプログラムが同じコンポーネント
を使えるようになる点で優れている。例えば、電子メールプログラムおよびワー
プロは、同じスペルチェックコードを使うことができるはずである。しかし、一
度ロードされてしまうと、そのようなコンポーネントは、それを利用するすべて
のプログラムの実行(およびその後でも存続していること)が終了するまで、一
般的にメモリに留まる。こうして、ダイナミックリンクライブラリが使われる場
合でさえ、プログラムの動作への更新は、しばしばプログラムが現在の作業を終
了し、動作を止めた後にのみ行うことができる。
よび動的にロードされたコンポーネントのコレクションなどのメインルーチンに
分割しているものもある。その場合、更新には、1つまたは複数の関係する小さ
なコンポーネントを単に置き換えることだけが含まれている。コンポーネント間
で機能性を分割することも、2つ以上の異なるプログラムが同じコンポーネント
を使えるようになる点で優れている。例えば、電子メールプログラムおよびワー
プロは、同じスペルチェックコードを使うことができるはずである。しかし、一
度ロードされてしまうと、そのようなコンポーネントは、それを利用するすべて
のプログラムの実行(およびその後でも存続していること)が終了するまで、一
般的にメモリに留まる。こうして、ダイナミックリンクライブラリが使われる場
合でさえ、プログラムの動作への更新は、しばしばプログラムが現在の作業を終
了し、動作を止めた後にのみ行うことができる。
【0021】 特殊なプログラムの中には、動作中に「学習」することによって、更新の必要
を少なくしているものもある。例えば、ニューラルネットワークプログラムは、
ニューラルネットの内のノード間の接続に割り当てた相対的ニューラルの重みを
変化することができ、それによって、特定の種類の入力に対するプログラムの反
応を変化させることができる。同様に、「遺伝的」アルゴリズムと呼ばれるアル
ゴリズムは、順列および最適化測定を使ってプログラムの継承世代を調整し、結
局、ある特定の状態に最適化した最初のプログラムよりも良いプログラムを作る
。
を少なくしているものもある。例えば、ニューラルネットワークプログラムは、
ニューラルネットの内のノード間の接続に割り当てた相対的ニューラルの重みを
変化することができ、それによって、特定の種類の入力に対するプログラムの反
応を変化させることができる。同様に、「遺伝的」アルゴリズムと呼ばれるアル
ゴリズムは、順列および最適化測定を使ってプログラムの継承世代を調整し、結
局、ある特定の状態に最適化した最初のプログラムよりも良いプログラムを作る
。
【0022】 しかし、遺伝的な最適化の測定またはニューロンの重み必要の調整のためのコ
ードは、変更が必要とされ、例えば「学習」するプログラムでさえ、動作中に従
来の技術を使い更新される。このように、難解なプログラミングは、ニューラル
ネットワークに受け入れられる入力タイプに、変更する必要があるかもしれない
。さらに、ニューラルネットワークもすぐに時刻の追跡または他のシステム資源
などのコンピュータシステム機能を発揮しない。
ードは、変更が必要とされ、例えば「学習」するプログラムでさえ、動作中に従
来の技術を使い更新される。このように、難解なプログラミングは、ニューラル
ネットワークに受け入れられる入力タイプに、変更する必要があるかもしれない
。さらに、ニューラルネットワークもすぐに時刻の追跡または他のシステム資源
などのコンピュータシステム機能を発揮しない。
【0023】 実行中に、破損した構成を使う前にそれ自体の内部構成の破損をプロセスが検
知することを可能にし、プロセスがそのようなエラーにスムーズに反応すること
を可能にする分散コンピュータのための改善されたシステムおよび方法を提供す
ることは、当技術分野で進歩的なことである。
知することを可能にし、プロセスがそのようなエラーにスムーズに反応すること
を可能にする分散コンピュータのための改善されたシステムおよび方法を提供す
ることは、当技術分野で進歩的なことである。
【0024】 現方式に比べ、柔軟性に富み、個々のプロセスの必要により適合させたプロセ
ッサ割当て方式を提供する、分散コンピュータのためのシステムおよび方法を提
供することも、当技術分野で進歩的なことである。
ッサ割当て方式を提供する、分散コンピュータのためのシステムおよび方法を提
供することも、当技術分野で進歩的なことである。
【0025】 パッチを使うより高性能で、すべてのモノリシックプログラムを置き換えるよ
りもより効率的で、さらにニューラルネットおよび遺伝的なプログラミングの「
学習」方法で利用できる、限定された動作の変更に比べ柔軟性に富む、分散コン
ピュータプロセスを更新するためのシステムおよび方法を提供することは、当技
術分野でさらに進歩的なことである。
りもより効率的で、さらにニューラルネットおよび遺伝的なプログラミングの「
学習」方法で利用できる、限定された動作の変更に比べ柔軟性に富む、分散コン
ピュータプロセスを更新するためのシステムおよび方法を提供することは、当技
術分野でさらに進歩的なことである。
【0026】 上記システムおよび方法は、現存のネットワークおよびそのプロトコルと互換
性があり、好ましい現存するプログラミング言語の特徴および機密保護の方法を
利用する方法で実装できるとすれば、さらなる進歩的なことである。
性があり、好ましい現存するプログラミング言語の特徴および機密保護の方法を
利用する方法で実装できるとすれば、さらなる進歩的なことである。
【0027】 以下に示すように、分散型コンピュータシステムおよび方法のためのアーキテ
クチャが開示され、特許の請求の範囲が記載されている。
クチャが開示され、特許の請求の範囲が記載されている。
【0028】 (発明の簡単な概要) 本発明に係るコンピュータアーキテクチャによるコンピュータシステム資源を
利用する1つの方法は、コンピュータシステム資源が少なくとも2つのロケーシ
ョンを有し、各ロケーションが、命令を実行するためのプロセッサへのアクセス
を提供すると共に、プロセッサにアクセス可能な命令を格納するメモリを提供す
るものとする。
利用する1つの方法は、コンピュータシステム資源が少なくとも2つのロケーシ
ョンを有し、各ロケーションが、命令を実行するためのプロセッサへのアクセス
を提供すると共に、プロセッサにアクセス可能な命令を格納するメモリを提供す
るものとする。
【0029】 本発明に係る上記方法は、デニズンプロセスのための動作環境の取得によって
開始される。動作環境には、少なくとも2つのロケーション、該ロケーションの
間を移動するデニズン用の経路も含まれる。
開始される。動作環境には、少なくとも2つのロケーション、該ロケーションの
間を移動するデニズン用の経路も含まれる。
【0030】 そして、上記方法は、命令を受け取り、受け取った命令に照らして、動作環境
内の異なるロケーションを評価し、その評価に基づいてロケーションを選択し、
選択したロケーションに自ら移動し、選択したロケーションにおいて該受け取っ
た命令の少なくとも一部を実行することを可能とするような、少なくとも1つの
ユーザデニズンを提供することにある。
内の異なるロケーションを評価し、その評価に基づいてロケーションを選択し、
選択したロケーションに自ら移動し、選択したロケーションにおいて該受け取っ
た命令の少なくとも一部を実行することを可能とするような、少なくとも1つの
ユーザデニズンを提供することにある。
【0031】 ユーザデニズンの1つの実施形態には、構成部分、起点部分、および実行可能
部分を有している。他のコンテンツの中で、構成部分はルーティング情報を含み
、起点部分は暗号化証明書を含み、実行可能部分はコードおよびデータを含んで
いる。ユーザデニズンは、これらの部分の少なくとも1つを再生成できる。ユー
ザデニズンも、自身で再生成およびアーカイブし、自身のエラーを検知し、さら
には、アーカイブされたバージョンに自ら置き換え、又は、例えばクラスおよび
クラスのために継承および拡張情報を定義するテンプレートのようなライブラリ
コンポーネントから再構築を行う試みが可能である。
部分を有している。他のコンテンツの中で、構成部分はルーティング情報を含み
、起点部分は暗号化証明書を含み、実行可能部分はコードおよびデータを含んで
いる。ユーザデニズンは、これらの部分の少なくとも1つを再生成できる。ユー
ザデニズンも、自身で再生成およびアーカイブし、自身のエラーを検知し、さら
には、アーカイブされたバージョンに自ら置き換え、又は、例えばクラスおよび
クラスのために継承および拡張情報を定義するテンプレートのようなライブラリ
コンポーネントから再構築を行う試みが可能である。
【0032】 ユーザデニズンは、1つまたは複数の命令実行の結果に応じて、動的にコード
をロードおよびアンロードしたり、またはカスタムコードを作成およびコンパイ
ルすることによって、自身で修正することが可能である。修正は、戻り伝播、動
的再コンパイル、および新しく進歩したアルゴリズムを使うことで成し遂げられ
る。デニズンは、実行エラーの衝撃を限定するために内部的に例外も処理するこ
とが可能である。
をロードおよびアンロードしたり、またはカスタムコードを作成およびコンパイ
ルすることによって、自身で修正することが可能である。修正は、戻り伝播、動
的再コンパイル、および新しく進歩したアルゴリズムを使うことで成し遂げられ
る。デニズンは、実行エラーの衝撃を限定するために内部的に例外も処理するこ
とが可能である。
【0033】 動作環境は、例えば、該動作環境の異なるロケーションに関する情報を収集し
、該情報をユーザデニズンに提供するようなもの、ユーザデニズンによって動作
環境内における特定のロケーションへのアクセスを制御できるようなもの、動作
環境内におけるロケーション間のデニズンの動きを追跡できるようなもの、動作
環境内で発生する多くの行動を保持するもの、動作環境内のデニズンの対話式管
理をサポートするもののような管理デニズンや、デニズンをアーカイブおよび再
格納し、ライブラリにアクセスするためのアーカイブポッドデニズンや、さらに
は、スレッド使用を追跡し、例えば異なるエンティティによって所有されるよう
な、異なる動作環境間を監視するためのコネクションポッドデニズンを含んでい
る。
、該情報をユーザデニズンに提供するようなもの、ユーザデニズンによって動作
環境内における特定のロケーションへのアクセスを制御できるようなもの、動作
環境内におけるロケーション間のデニズンの動きを追跡できるようなもの、動作
環境内で発生する多くの行動を保持するもの、動作環境内のデニズンの対話式管
理をサポートするもののような管理デニズンや、デニズンをアーカイブおよび再
格納し、ライブラリにアクセスするためのアーカイブポッドデニズンや、さらに
は、スレッド使用を追跡し、例えば異なるエンティティによって所有されるよう
な、異なる動作環境間を監視するためのコネクションポッドデニズンを含んでい
る。
【0034】 本発明の一実施の形態として、本発明に係るエコシステムコンピュータアーキ
テクチャを実行するコンピュータシステムは、各ロケーションがプロセッサおよ
びメモリへのアクセスを提供する少なくとも2つのロケーションと、該ロケーシ
ョン間をデニズンが移動するための移動手段と、命令を受け取り、受け取った命
令に照らして、動作環境内の異なるロケーションを評価し、その評価に基づいて
ロケーションを選択し、選択したロケーションに自身で移動し、選択したロケー
ションにおいて該受け取った命令の少なくとも一部を実行することが可能な少な
くとも1つのデニズンとを有するデニズン用の動作環境を含む。
テクチャを実行するコンピュータシステムは、各ロケーションがプロセッサおよ
びメモリへのアクセスを提供する少なくとも2つのロケーションと、該ロケーシ
ョン間をデニズンが移動するための移動手段と、命令を受け取り、受け取った命
令に照らして、動作環境内の異なるロケーションを評価し、その評価に基づいて
ロケーションを選択し、選択したロケーションに自身で移動し、選択したロケー
ションにおいて該受け取った命令の少なくとも一部を実行することが可能な少な
くとも1つのデニズンとを有するデニズン用の動作環境を含む。
【0035】 該ロケーションは、コンピュータネットワーク内の異なるコンピュータ上にあ
る。ロケーションの中にはJavaバーチャルマシン、または一部または全てが
Javaで書かれたデニズンを実行するためのネイティブJavaオペレーティ
ングシステム(多分特別なチップ上)へのアクセスを提供する。
る。ロケーションの中にはJavaバーチャルマシン、または一部または全てが
Javaで書かれたデニズンを実行するためのネイティブJavaオペレーティ
ングシステム(多分特別なチップ上)へのアクセスを提供する。
【0036】 移動手段は、分離した装置上でのロケーション間の転送のためのTCP/IP
、または他のネットワーク接続を含み、さらには、1つの装置内でのロケーショ
ン間の転送のためのルーチンをコピーする共用メモリ、またはメモリも含む。移
動手段は、ウィルスの分散を避け、デニズンの実行可能部分を特定のロケーショ
ンに適合させるため、さらに帯域幅の必要性を少なくするために、宛先ロケーシ
ョンのライブラリに格納されている識別コードによって、デニズンを構築する情
報を指定するための手段を含むことが好ましい。
、または他のネットワーク接続を含み、さらには、1つの装置内でのロケーショ
ン間の転送のためのルーチンをコピーする共用メモリ、またはメモリも含む。移
動手段は、ウィルスの分散を避け、デニズンの実行可能部分を特定のロケーショ
ンに適合させるため、さらに帯域幅の必要性を少なくするために、宛先ロケーシ
ョンのライブラリに格納されている識別コードによって、デニズンを構築する情
報を指定するための手段を含むことが好ましい。
【0037】 本発明は、デニズンプロセスが実行中に破損した構成を利用する前にチェック
サムエラーを検知し、または例外状態を把握することによって、デニズンプロセ
スが自身の内部構成の破損を検知できる分散コンピュータのための改善されたシ
ステムおよび方法を提供するものである。
サムエラーを検知し、または例外状態を把握することによって、デニズンプロセ
スが自身の内部構成の破損を検知できる分散コンピュータのための改善されたシ
ステムおよび方法を提供するものである。
【0038】 該デニズンプロセスは、エラーの衝撃を収容し、エラーにもかかわらず続行す
るために、自身で再構築を行うことによって、および/または再構築が不可能な
場合は、後の診断のために自身をアーカイブすることによって、このようなエラ
ーにスムーズに反応する。
るために、自身で再構築を行うことによって、および/または再構築が不可能な
場合は、後の診断のために自身をアーカイブすることによって、このようなエラ
ーにスムーズに反応する。
【0039】 さらに、デニズンは、プロセッサ割当て方式を用いて、現存の方式よりも柔軟
性に富み、個々のプロセスの必要により適合する。なぜならば、各デニズンは、
各々で実行すべき場所を決定することができる。デニズンを更新するために使わ
れる動的修正(多分、実行ブロックの実行中ロードおよびアンロードを含む)は
、パッチを使うより高性能で、モノリシックプログラム全てを置き換えるより効
率的で、および限られた動作の変更よりも柔軟性に富み、従来のニューラルネッ
トおよび遺伝的プログラミング方法を通して利用できる。
性に富み、個々のプロセスの必要により適合する。なぜならば、各デニズンは、
各々で実行すべき場所を決定することができる。デニズンを更新するために使わ
れる動的修正(多分、実行ブロックの実行中ロードおよびアンロードを含む)は
、パッチを使うより高性能で、モノリシックプログラム全てを置き換えるより効
率的で、および限られた動作の変更よりも柔軟性に富み、従来のニューラルネッ
トおよび遺伝的プログラミング方法を通して利用できる。
【0040】 デニズンは、現存のネットワークとそのプロトコルと互換性があり、Java
例外処理などの好ましい現存するプログラミング言語の特徴を利用し、さらに暗
号化のような機密保護手法も利用するやり方で実装することもできる。
例外処理などの好ましい現存するプログラミング言語の特徴を利用し、さらに暗
号化のような機密保護手法も利用するやり方で実装することもできる。
【0041】 本発明の他の特徴および利点は、以下の説明から、その内容が明らかにされる
。
。
【0042】 (好ましい実施例の詳細な説明) 本発明は、分散型コンピュータシステムアーキテクチャに関する。また、本発
明は、コンピュータシステム、コンピュータメソッド、および/または個々のコ
ンピュータデバイスにおいて使用される。さらに、本発明は、独立型のコンピュ
ータ、ネットワークで接続されたコンピュータ、又はその両方で使用される。
明は、コンピュータシステム、コンピュータメソッド、および/または個々のコ
ンピュータデバイスにおいて使用される。さらに、本発明は、独立型のコンピュ
ータ、ネットワークで接続されたコンピュータ、又はその両方で使用される。
【0043】 該コンピュータは、ワークステーション、デスクトップコンピュータ、ラップ
トップコンピュータ、モバイルコンピュータ、サーバ、クライアント、ピア、ユ
ニプロセッサすなわちマルチプロセッサマシン、組込みシステム、および/また
は他のコンピュータであり得る。好ましいネットワークには、ローカルエリアネ
ットワーク、メトロポリタンエリアネットワーク、広域エリアネットワーク、イ
ンターネットまたはそれらのあらゆる組み合わせが含まれる。
トップコンピュータ、モバイルコンピュータ、サーバ、クライアント、ピア、ユ
ニプロセッサすなわちマルチプロセッサマシン、組込みシステム、および/また
は他のコンピュータであり得る。好ましいネットワークには、ローカルエリアネ
ットワーク、メトロポリタンエリアネットワーク、広域エリアネットワーク、イ
ンターネットまたはそれらのあらゆる組み合わせが含まれる。
【0044】 本明細書で使う「インターネット」には、専用インターネット、セキュアイン
ターネット、付加価値通信網、仮想専用ネットワーク、World Wide
Web、またはイントラネットなどのインターネットの一部を含んでいる。
ターネット、付加価値通信網、仮想専用ネットワーク、World Wide
Web、またはイントラネットなどのインターネットの一部を含んでいる。
【0045】 コンピュータアーキテクチャのためのエコシステムモデル コンピュータサイエンスおよび生物学は、達成努力の面から概して非常に異な
る分野として見られてきたが、生物学上のシステムおよび方法の中にはコンピュ
ータメタファとして役立つことが証明されてきたものもある。良いメタファ(m
etaphor)は、異なる無味乾燥した論議を明らかにするための、単なる過
度な単純化または表面的な試みではなく、技術的なシステムまたはプロセスの重
要な側面を要約する。コンピュータサイエンスは、しばしば非常に詳細で中身の
濃い分野であるため、良く選んだメタファを使うことは、発明者や他の人々が詳
細を組み立てたり、新しい可能性を提案する上で役立つ。おそらく、良い生物学
上のコンピュータメタファの最も著名な例は、生物の遺伝を「進化した」コンピ
ュータプログラムのモデルとして使う遺伝的アルゴリズム、および頭脳生理学を
「訓練中」のコンピュータのモデルとして使うニューラルネットアルゴリズムで
ある。
る分野として見られてきたが、生物学上のシステムおよび方法の中にはコンピュ
ータメタファとして役立つことが証明されてきたものもある。良いメタファ(m
etaphor)は、異なる無味乾燥した論議を明らかにするための、単なる過
度な単純化または表面的な試みではなく、技術的なシステムまたはプロセスの重
要な側面を要約する。コンピュータサイエンスは、しばしば非常に詳細で中身の
濃い分野であるため、良く選んだメタファを使うことは、発明者や他の人々が詳
細を組み立てたり、新しい可能性を提案する上で役立つ。おそらく、良い生物学
上のコンピュータメタファの最も著名な例は、生物の遺伝を「進化した」コンピ
ュータプログラムのモデルとして使う遺伝的アルゴリズム、および頭脳生理学を
「訓練中」のコンピュータのモデルとして使うニューラルネットアルゴリズムで
ある。
【0046】 図1に示すように、本発明では、オーシャン生態学を分散コンピュータのため
のメタファをガイドするものとして使う。コンピュータプロセス100は、多様
なロケーション104にあるコンピュータ資源であり、それはオーシャン102
に居住する生物として見なされる。ネットワーク内の与えられたマシンには、1
つまたは複数のロケーション104を含んでいるかもしれない。オーシャン10
2は、1つまたは複数のマシン上に居住することができる。同様に、ロケーショ
ン104すべても1つの動作環境102に属するものと見なすこともできるし、
または別々の接続可能なオーシャン102にグループ化することもできる。
のメタファをガイドするものとして使う。コンピュータプロセス100は、多様
なロケーション104にあるコンピュータ資源であり、それはオーシャン102
に居住する生物として見なされる。ネットワーク内の与えられたマシンには、1
つまたは複数のロケーション104を含んでいるかもしれない。オーシャン10
2は、1つまたは複数のマシン上に居住することができる。同様に、ロケーショ
ン104すべても1つの動作環境102に属するものと見なすこともできるし、
または別々の接続可能なオーシャン102にグループ化することもできる。
【0047】 「デニズン」プロセス100は、「Organic Data Elemen
ts」または「ODE」としても知られているが、それには生きている生物に類
似した能力がある。例えば、デニズンは、経路106に沿って、動作環境102
に相当する計算上の「オーシャン」の内のロケーション104間を、移動するこ
とができる。デニズン100は、それ自体のコピーを作ることもできる。すなわ
ち、内部構成への損害を検知し、時々、損害を修復することでそれ自体で「いや
し」を行い、さらにニューラルネットアルゴリズムや他の技術を使い「学習」す
ることもできる。これらの各能力が、詳細に論じられる。
ts」または「ODE」としても知られているが、それには生きている生物に類
似した能力がある。例えば、デニズンは、経路106に沿って、動作環境102
に相当する計算上の「オーシャン」の内のロケーション104間を、移動するこ
とができる。デニズン100は、それ自体のコピーを作ることもできる。すなわ
ち、内部構成への損害を検知し、時々、損害を修復することでそれ自体で「いや
し」を行い、さらにニューラルネットアルゴリズムや他の技術を使い「学習」す
ることもできる。これらの各能力が、詳細に論じられる。
【0048】 もちろん、デニズンプロセス100が、本当に生きているわけではなく、コン
ピュータシステム102は、文字通り情報およびコンピュータ資源のオーシャン
ではない。オーシャン生態学メタファは本発明の技術を理解するのに役に立つも
のだが、メタファは単にメタファであり、それ固有の限界がある。
ピュータシステム102は、文字通り情報およびコンピュータ資源のオーシャン
ではない。オーシャン生態学メタファは本発明の技術を理解するのに役に立つも
のだが、メタファは単にメタファであり、それ固有の限界がある。
【0049】 デニズンの構成 デニズンプロセス100の1つの実施形態の内部構成を、図1に関連した続き
の図2に示す。
の図2に示す。
【0050】 各デニズン100は、少なくとも、構成部分202、起点部分204、および
実行可能部分206を含む。
実行可能部分206を含む。
【0051】 構成部分202の1つのセクションには、動作環境102内において、デニズ
ン100が現在のロケーション104へ移動する経路106、および/または、
、他のロケーション104へ移動する実行可能な経路106を反映する、ルーテ
ィング情報208を含んでいる。
ン100が現在のロケーション104へ移動する経路106、および/または、
、他のロケーション104へ移動する実行可能な経路106を反映する、ルーテ
ィング情報208を含んでいる。
【0052】 構成部分202には、1つまたは複数の「ポッド」がデニズン100に属して
いるかどうかを識別する、ポッド識別子210を含めることができる。ポッドに
関しては、以下の部分で詳細に論じられる。さらに、構成部分202は、現在の
周囲の動作環境102を他の動作環境から区別する、オーシャン識別子212を
含む。構成部分202は、例えばJavaバーチャルマシンフラグなどの実行状
態情報214も含めることができる。
いるかどうかを識別する、ポッド識別子210を含めることができる。ポッドに
関しては、以下の部分で詳細に論じられる。さらに、構成部分202は、現在の
周囲の動作環境102を他の動作環境から区別する、オーシャン識別子212を
含む。構成部分202は、例えばJavaバーチャルマシンフラグなどの実行状
態情報214も含めることができる。
【0053】 起点部分204は、動作環境102へのアクセスを制御し、さらに「ユーザ」
デニズン100上で機密保護規制を実施する管理デニズン810(図8)への実
行の前に、提供可能な暗号化証書216を含む。ユーザデニズンは、主に機密保
護、ロケーションの追跡、資源の追跡、および他の内部管理目標を果たす管理デ
ニズン800に対して、直接特定のユーザにより、または特定のユーザの代わり
に直接、起動されるデニズン100である。
デニズン100上で機密保護規制を実施する管理デニズン810(図8)への実
行の前に、提供可能な暗号化証書216を含む。ユーザデニズンは、主に機密保
護、ロケーションの追跡、資源の追跡、および他の内部管理目標を果たす管理デ
ニズン800に対して、直接特定のユーザにより、または特定のユーザの代わり
に直接、起動されるデニズン100である。
【0054】 証書216に含まれる好ましい情報としては、作成者の名前、ホームオーシャ
ンルーティング情報、グループ情報、デニズン全体のコンテンツおよび/または
部分202と204上のチェックサム(周期冗長コードなど)、実行可能クラス
情報、およびODEタイプ(管理/ユーザ、機密保護など)がある。作成者の名
前は標準的な郵便のアドレスと似た形式で、またはログインまたはユーザID、
あるいは名前を区別するX.500ディレクトリサービスを使いより複雑にする
こともできる。
ンルーティング情報、グループ情報、デニズン全体のコンテンツおよび/または
部分202と204上のチェックサム(周期冗長コードなど)、実行可能クラス
情報、およびODEタイプ(管理/ユーザ、機密保護など)がある。作成者の名
前は標準的な郵便のアドレスと似た形式で、またはログインまたはユーザID、
あるいは名前を区別するX.500ディレクトリサービスを使いより複雑にする
こともできる。
【0055】 同様にグループ情報も部門名のように、テキストにすることができる。または
、UNIXの許可へのオーナ/グループ/ワールドアプローチのように、オペレ
ーティングシステムやファイルシステムセンス内でグループ化することもできる
。クラス、それはJavaまたはC++のクラスやサブクラスのことであるが、
それについては以下の部分でさらに論じられる。
、UNIXの許可へのオーナ/グループ/ワールドアプローチのように、オペレ
ーティングシステムやファイルシステムセンス内でグループ化することもできる
。クラス、それはJavaまたはC++のクラスやサブクラスのことであるが、
それについては以下の部分でさらに論じられる。
【0056】 証書216を使う1つの方法は、以下の通りである。証書216は、機密保護
ODE810で登録される。最初のODEの証書216は、第2のODEが最初
のODEに対してトランザクションを行う前に、第2のODEによって、または
その代わりに検査される。第2のODEの証書216も最初のODEによって、
またはその代わりに検査される。承認された証書は、ODE間での各トランザク
ションに対して独特のトランザクション証書を生成するために使われる。承認済
みの証書を収納したり、さらにそれに基づき承認済みの証書を識別したりするこ
とに加えて、トランザクション証書は、トランザクションに伴う要求または動作
を識別する。基本となる承認済みの証書の1つは、トランザクション証書のため
の秘密解読キーとして使うことができる。
ODE810で登録される。最初のODEの証書216は、第2のODEが最初
のODEに対してトランザクションを行う前に、第2のODEによって、または
その代わりに検査される。第2のODEの証書216も最初のODEによって、
またはその代わりに検査される。承認された証書は、ODE間での各トランザク
ションに対して独特のトランザクション証書を生成するために使われる。承認済
みの証書を収納したり、さらにそれに基づき承認済みの証書を識別したりするこ
とに加えて、トランザクション証書は、トランザクションに伴う要求または動作
を識別する。基本となる承認済みの証書の1つは、トランザクション証書のため
の秘密解読キーとして使うことができる。
【0057】 トランザクション証書は、トランザクションに含まれるODE間の合意事項と
しての役割を果たす。そのトランザクション証書に記載の要求された情報または
命令のみをトランザクションの間に実行することができ、それによってトランザ
クション証書を機能的に、従来の機密保護実行命令と似たものすることができる
。その戻ってきた結果は、必ずしも、トランザクション証書に格納する必要はな
いが、要求のリターンステータスはそこに格納することが好ましい。
しての役割を果たす。そのトランザクション証書に記載の要求された情報または
命令のみをトランザクションの間に実行することができ、それによってトランザ
クション証書を機能的に、従来の機密保護実行命令と似たものすることができる
。その戻ってきた結果は、必ずしも、トランザクション証書に格納する必要はな
いが、要求のリターンステータスはそこに格納することが好ましい。
【0058】 一度トランザクションが完了し、ステータスが記録されることを承認した「署
名入りの」証書を各ODEを所有すると、各ODEは、そのトランザクションが
完了したものと見なす。各ODEは証書を、トランザクションおよびユーザ/シ
ステムのセッティングのタイプに基づいて、格納(アーカイブ)したり、または
それを削除したりする。このアーカイブは、トランザクション処理に対してロー
ルバック能力を提供する。
名入りの」証書を各ODEを所有すると、各ODEは、そのトランザクションが
完了したものと見なす。各ODEは証書を、トランザクションおよびユーザ/シ
ステムのセッティングのタイプに基づいて、格納(アーカイブ)したり、または
それを削除したりする。このアーカイブは、トランザクション処理に対してロー
ルバック能力を提供する。
【0059】 ODE100の起点部分204には、オーナまたは作成者情報、グループ識別
情報、読み/書き/修正、または他の許可、および証書216に包含可能な情報
と似たまたは同一の他の情報などの、オーナ情報218も含めることができる。
しかし、オーナ情報218は暗号化されていない、そのためこれは認証を必要と
しないコメントまたは情報を収容するためにも使うことができる。
情報、読み/書き/修正、または他の許可、および証書216に包含可能な情報
と似たまたは同一の他の情報などの、オーナ情報218も含めることができる。
しかし、オーナ情報218は暗号化されていない、そのためこれは認証を必要と
しないコメントまたは情報を収容するためにも使うことができる。
【0060】 実行可能部分206には、全く無いかまたはそれより多いブロック220を含
んでいる。それは、またデータイベント経路220としても知られている。命令
を受け取ること、コードをロードすること、例外処理のセットアップをすること
、ポセイドンデニズン820と通信をすること、アーカイブすること、移動する
こと、さらに他の基本的なデニズン100の機能のためのデフォルトのブロック
220は、1つのクラスまたは、大部分のまたはすべてのデニズン100内に存
在する他のコード228内で提供される。制御ブロックは、各ブロック220(
示しているフィールド222、224、226の形式の内の)に、または実行可
能部分206(図示せず)の内側でかつブロック220の外に、あるいはその両
方に配置することができる。
んでいる。それは、またデータイベント経路220としても知られている。命令
を受け取ること、コードをロードすること、例外処理のセットアップをすること
、ポセイドンデニズン820と通信をすること、アーカイブすること、移動する
こと、さらに他の基本的なデニズン100の機能のためのデフォルトのブロック
220は、1つのクラスまたは、大部分のまたはすべてのデニズン100内に存
在する他のコード228内で提供される。制御ブロックは、各ブロック220(
示しているフィールド222、224、226の形式の内の)に、または実行可
能部分206(図示せず)の内側でかつブロック220の外に、あるいはその両
方に配置することができる。
【0061】 各ブロック220の制御ブロックには、長さフィールド222、タイプフィー
ルド224、およびチェックサム226が含まれている。各ブロック220もコ
ード228の全く無いかまたはそれより多いバイトも収容する。長さフィールド
222は、バイトまたは他の便利なユニットでブロック220の長さを指定する
。一方、最初の3個のフィールド222、224、226の長さは、固定され、
暗黙的であることができる。このような場合、長さフィールド222はコード2
28の長さを指定する。
ルド224、およびチェックサム226が含まれている。各ブロック220もコ
ード228の全く無いかまたはそれより多いバイトも収容する。長さフィールド
222は、バイトまたは他の便利なユニットでブロック220の長さを指定する
。一方、最初の3個のフィールド222、224、226の長さは、固定され、
暗黙的であることができる。このような場合、長さフィールド222はコード2
28の長さを指定する。
【0062】 タイプフィールド224は、コードフィールド228内のコードのタイプを指
定する。コードのふさわしいタイプには、マシン指定実行可能命令およびデータ
、Javaバイトコードなどのマシン独立命令およびデータ、HTML命令およ
びピクセルファイルなどのマーク付け言語命令およびデータ、データベース命令
およびデータ、さらに他のタイプのコンピュータコードが含まれる。コード22
8には、特定のプラットフォーム上で実行するためのコードフラグメントを組み
立てまたは生成する、C++クラスまたは他のクラスなどのクラスを含めること
ができる。さらにまたはその代わりに、コード228は、実行可能または翻訳可
能な(本来のまたは仮想のマシン)コードのフラグメントを含むことができる。
コード228および/またはブロック220が入手できるODEライブラリで、
クラスおよびサブクラスの数が、コードフラグメントを組み立てて特定の機能を
成し遂げるようにするクラスに関連している。
定する。コードのふさわしいタイプには、マシン指定実行可能命令およびデータ
、Javaバイトコードなどのマシン独立命令およびデータ、HTML命令およ
びピクセルファイルなどのマーク付け言語命令およびデータ、データベース命令
およびデータ、さらに他のタイプのコンピュータコードが含まれる。コード22
8には、特定のプラットフォーム上で実行するためのコードフラグメントを組み
立てまたは生成する、C++クラスまたは他のクラスなどのクラスを含めること
ができる。さらにまたはその代わりに、コード228は、実行可能または翻訳可
能な(本来のまたは仮想のマシン)コードのフラグメントを含むことができる。
コード228および/またはブロック220が入手できるODEライブラリで、
クラスおよびサブクラスの数が、コードフラグメントを組み立てて特定の機能を
成し遂げるようにするクラスに関連している。
【0063】 サブクラス内では、多くのコードフラグメントの要求があるかもしれない。こ
れらのコードフラグメントは、すべてのクラスで共用することができるが、その
クラスやサブクラス独特のものであることもできる。ユーザがODE100を介
してウェブページを編集し、ActiveXコントロールをそのページに加える
場合、ActiveXコントロールを表示できるコードフラグメントは、ウェブ
ページが格納されているデータ経路220を収容するODE100によって、要
求が行われ、ロードする必要がある。ODE100がコードフラグメントを収容
するオーシャン102にあるかぎり、そのフラグメントの1つのコピーだけがオ
ーシャン102で必要とされる。しかし、ODE100がコードフラグメントを
収容していない新しいオーシャン102へ、またはオーシャン102を有しない
マシン上へ移動することを選ぶ場合そのフラグメントは、データ経路220に埋
め込まれるようにすることができる。フラグメントは、暗号化されたソースコー
ドとして埋め込まれ、そしてそのマシンへのODEの移動の一部として宛先マシ
ンでコンパイルされることが好ましい。コンパイルされたまたはソースコードも
、新しいマシン上の新しいODEライブラリに加えることができる。
れらのコードフラグメントは、すべてのクラスで共用することができるが、その
クラスやサブクラス独特のものであることもできる。ユーザがODE100を介
してウェブページを編集し、ActiveXコントロールをそのページに加える
場合、ActiveXコントロールを表示できるコードフラグメントは、ウェブ
ページが格納されているデータ経路220を収容するODE100によって、要
求が行われ、ロードする必要がある。ODE100がコードフラグメントを収容
するオーシャン102にあるかぎり、そのフラグメントの1つのコピーだけがオ
ーシャン102で必要とされる。しかし、ODE100がコードフラグメントを
収容していない新しいオーシャン102へ、またはオーシャン102を有しない
マシン上へ移動することを選ぶ場合そのフラグメントは、データ経路220に埋
め込まれるようにすることができる。フラグメントは、暗号化されたソースコー
ドとして埋め込まれ、そしてそのマシンへのODEの移動の一部として宛先マシ
ンでコンパイルされることが好ましい。コンパイルされたまたはソースコードも
、新しいマシン上の新しいODEライブラリに加えることができる。
【0064】 一実施の形態では、各データイベント経路220には、32ビットデータ経路
番号、32ビットデータ経路タイプ番号、および制御ブロックが含まれている。
以下の情報が各ブロック220用に、データ経路220に格納されている。すな
わち、長さ16文字までのオプショナルブロック名、長さ4ビットのデータタイ
プ番号、ODE100のロケーション104を識別する32ビットのマシンロケ
ーション識別子、コード228用の開始アドレスおよび終了アドレス(アドレス
の長さはプロセッサ次第だが、一般的には32または64ビット)、チェックサ
ム226、およびコード228(可変長)である。マシンロケーション識別子は
、各マシン(またはロケーション104)にオーシャン102の一部になる場合
、与えられている。
番号、32ビットデータ経路タイプ番号、および制御ブロックが含まれている。
以下の情報が各ブロック220用に、データ経路220に格納されている。すな
わち、長さ16文字までのオプショナルブロック名、長さ4ビットのデータタイ
プ番号、ODE100のロケーション104を識別する32ビットのマシンロケ
ーション識別子、コード228用の開始アドレスおよび終了アドレス(アドレス
の長さはプロセッサ次第だが、一般的には32または64ビット)、チェックサ
ム226、およびコード228(可変長)である。マシンロケーション識別子は
、各マシン(またはロケーション104)にオーシャン102の一部になる場合
、与えられている。
【0065】 一実施の形態では、すべてのODE100は、許可されている制約によるが、
ユーザがODE100と直接対話できるように、それ自体にインターフェイスを
有する。システムのクラッシュまたはエラーが発生し、そしてただ1つのODE
100だけが機能できる状態である場合、このODE100のオーナまたはユー
ザは、システム資源にアクセスして、オーシャン102および他のODEのデー
タを修復するために、ODE100とグラフィカルに(または、コマンドライン
インタープリタテキストオンリーシステムでは非グラフィカルに)対話すること
ができる。
ユーザがODE100と直接対話できるように、それ自体にインターフェイスを
有する。システムのクラッシュまたはエラーが発生し、そしてただ1つのODE
100だけが機能できる状態である場合、このODE100のオーナまたはユー
ザは、システム資源にアクセスして、オーシャン102および他のODEのデー
タを修復するために、ODE100とグラフィカルに(または、コマンドライン
インタープリタテキストオンリーシステムでは非グラフィカルに)対話すること
ができる。
【0066】 ODE構成はいくつかの利点を有する。最初に、ODE100は、データイベ
ント経路220用の制御ブロックをロードし、そして制御ブロック内の情報を使
い、望む実行可能なブロック220にのみ、その情報のためのメモリを検索する
必要なしに、それをロードすることができる。
ント経路220用の制御ブロックをロードし、そして制御ブロック内の情報を使
い、望む実行可能なブロック220にのみ、その情報のためのメモリを検索する
必要なしに、それをロードすることができる。
【0067】 ODE100が、ダイレクトメモリアクセスを可能にするCまたはC++など
の言語で書かれた場合、メモリまたはストレージのロケーション情報は、実(物
理または論理)アドレスであり得、さらにダイレクトメモリアクセスが不可能な
Javaなどの言語では、ロケーションの要求をすることができる。この組み合
わせで、ODE100はシステム102内のどのマシン上のストレージからでも
ブロック220をロードすることができる。この機能は、SMPシステムの共用
メモリに似ている。しかし、SMP、MPP、NUMAアーキテクチャメモリア
クセスで必要とされるような、追加のプログラミングは必要ではない。ODE1
00が単に要求を行うと、マシン上のオペレーティングシステムは、メモリのブ
ロックを検索し、ODE100にメモリのコンテンツを提供する。
の言語で書かれた場合、メモリまたはストレージのロケーション情報は、実(物
理または論理)アドレスであり得、さらにダイレクトメモリアクセスが不可能な
Javaなどの言語では、ロケーションの要求をすることができる。この組み合
わせで、ODE100はシステム102内のどのマシン上のストレージからでも
ブロック220をロードすることができる。この機能は、SMPシステムの共用
メモリに似ている。しかし、SMP、MPP、NUMAアーキテクチャメモリア
クセスで必要とされるような、追加のプログラミングは必要ではない。ODE1
00が単に要求を行うと、マシン上のオペレーティングシステムは、メモリのブ
ロックを検索し、ODE100にメモリのコンテンツを提供する。
【0068】 この取り決めの別の利点は、ODE100はマシンからマシンへ移動すること
ができるが、要求されたブロック220のコンテンツは移動する必要がないこと
である。同じODE100内、または異なる複数のODE内の3個のブロック2
20がコードフラグメント228または他の一片の情報を要求する場合、情報を
複製する代わりに、各ブロック220は同一のメモリロケーションへ要求するこ
とができる。このようなわけで、ODEおよびシステム102は余分な情報を格
納する必要がない。
ができるが、要求されたブロック220のコンテンツは移動する必要がないこと
である。同じODE100内、または異なる複数のODE内の3個のブロック2
20がコードフラグメント228または他の一片の情報を要求する場合、情報を
複製する代わりに、各ブロック220は同一のメモリロケーションへ要求するこ
とができる。このようなわけで、ODEおよびシステム102は余分な情報を格
納する必要がない。
【0069】 このアプローチの欠点は、2つのODEが同時に同一のマシン上の同一のメモ
リロケーションへ書き込まないようにするために、共用メモリの書込みがセマフ
ォ同士で調和していなければならないことである。セマフォの代わりに、所有権
とアクセス権を使うことでこの欠点を解決することができる。ただ1つのODE
100だけが、与えられた一片のメモリまたは与えられた一片のデータを所有す
ることができる。メモリ内のそのロケーションを所有するただ1つのODE10
0だけが、そこに収納されているデータ修復することができる。そのデータにア
クセスすることを望む他のODEは、データを所有するODE100からの許可
を要求する必要がある。ODE100が許可を与える場合、それは要求している
ODE100に情報の場所を通知し、さらにその情報にアクセスする許可を有す
るODEの記録も、格納することになる。所有しているODE100が移動する
場合、それと一緒にデータも移動する、あるいは所有しているODEが何らかの
理由(効率性、アーカイブすること、または予測されたシステムダウンタイムな
ど)でデータを移動することを選ぶ場合、その時所有しているODEは、データ
の新しいロケーションのそのデータにアクセスするすべてのODEに通知する。
リロケーションへ書き込まないようにするために、共用メモリの書込みがセマフ
ォ同士で調和していなければならないことである。セマフォの代わりに、所有権
とアクセス権を使うことでこの欠点を解決することができる。ただ1つのODE
100だけが、与えられた一片のメモリまたは与えられた一片のデータを所有す
ることができる。メモリ内のそのロケーションを所有するただ1つのODE10
0だけが、そこに収納されているデータ修復することができる。そのデータにア
クセスすることを望む他のODEは、データを所有するODE100からの許可
を要求する必要がある。ODE100が許可を与える場合、それは要求している
ODE100に情報の場所を通知し、さらにその情報にアクセスする許可を有す
るODEの記録も、格納することになる。所有しているODE100が移動する
場合、それと一緒にデータも移動する、あるいは所有しているODEが何らかの
理由(効率性、アーカイブすること、または予測されたシステムダウンタイムな
ど)でデータを移動することを選ぶ場合、その時所有しているODEは、データ
の新しいロケーションのそのデータにアクセスするすべてのODEに通知する。
【0070】 新しいODE構成および関連した方法の他の利点は、次の通りである。すなわ
ち、実際に必要とされるコード228だけを含むことによって、ツールおよびビ
ューアのサイズを小さくし、そして非連続のコードのロードを可能にする動的コ
ードフラグメントアクセス(従来のモノリシックな特徴がパックされたアプリケ
ーションにより取られていたアプローチに対するものとして)、より小型のデー
タベース(なぜならば、与えられたタスクに関係のないデータのロードをより少
なくする)、データベースの要求用の動的インデックスの生成、そしてODEを
移動させる時に(ライブラリに関連して論じられているように)必要とされるネ
ットワーク帯域幅をより少なくすることである。
ち、実際に必要とされるコード228だけを含むことによって、ツールおよびビ
ューアのサイズを小さくし、そして非連続のコードのロードを可能にする動的コ
ードフラグメントアクセス(従来のモノリシックな特徴がパックされたアプリケ
ーションにより取られていたアプローチに対するものとして)、より小型のデー
タベース(なぜならば、与えられたタスクに関係のないデータのロードをより少
なくする)、データベースの要求用の動的インデックスの生成、そしてODEを
移動させる時に(ライブラリに関連して論じられているように)必要とされるネ
ットワーク帯域幅をより少なくすることである。
【0071】 本発明の新しいアーキテクチャは、動的インデックスの生成をサポートする。
例えば、ユーザが名前、年齢、および体重に対する医療記録が収納されたデータ
ベースを検索する必要があるとする。制御ブロックを使うことで、名前、年齢、
および体重のみのブロック220、または通常のデータベース内のそれらの3個
の列のみがロードされることになる。これによって検索がとても速くなり、さら
に同一の情報にアクセスするために必要とされるRAMやCPUの速さも遅くて
すむ。
例えば、ユーザが名前、年齢、および体重に対する医療記録が収納されたデータ
ベースを検索する必要があるとする。制御ブロックを使うことで、名前、年齢、
および体重のみのブロック220、または通常のデータベース内のそれらの3個
の列のみがロードされることになる。これによって検索がとても速くなり、さら
に同一の情報にアクセスするために必要とされるRAMやCPUの速さも遅くて
すむ。
【0072】 ビューアおよびツール 表計算ソフトおよびワープロなどのアプリケーションおよびプロセスは、デー
タのツール(修正の許可)またはビューア(読込みの許可)として、分類するこ
とができる。与えられた一片のデータを複数の異なるユーザが、多くの望む異な
るビュー方法を使うことで、同時に閲覧することができる。1つのビューアは、
ODE100で使っている情報を表計算ソフトビューアクラスを使い閲覧するこ
とができ、別のビューアは同一の情報をグラフィカルビューアを使い画像に表現
されたものとして閲覧することができる。一方、3番目のビューアはデータを解
析し、そして科学的画像化ツールを用いてデータを表現する、3Dオブジェクト
を生成する。
タのツール(修正の許可)またはビューア(読込みの許可)として、分類するこ
とができる。与えられた一片のデータを複数の異なるユーザが、多くの望む異な
るビュー方法を使うことで、同時に閲覧することができる。1つのビューアは、
ODE100で使っている情報を表計算ソフトビューアクラスを使い閲覧するこ
とができ、別のビューアは同一の情報をグラフィカルビューアを使い画像に表現
されたものとして閲覧することができる。一方、3番目のビューアはデータを解
析し、そして科学的画像化ツールを用いてデータを表現する、3Dオブジェクト
を生成する。
【0073】 データを修正する機能すべては、ツールを使って行われる。ただデータを閲覧
するだけのすべての機能はビューアを使い行われる。ビューアおよびツールは、
閲覧、および/または修正されるデータの所有権を管理するODEライブラリを
使って、生成することができる。例えば、異なるユーザによって所有され、閲覧
だけが利用できる一塊のテキストをロードするように指示されたODE100は
、テキストを閲覧するために必要とされるコードフラグメント228を求めるた
めに、ODEライブラリにアクセスすることになる。しかし、選択や、スペルチ
ェックに必要とされるコードフラグメント、またはデータを修正する他のどんな
方法のコードフラグメントをロードしたり、アクセスしたりすることはない。テ
キストの所有者がそのテキストをロードする場合、自分のODE100は閲覧の
最初のユーザとして同一のコードフラグメントをロードすることになり、さらに
スペルチェックフラグメント228、フォント変更フラグメント228などの必
要とされるフラグメントもロードすることになる。
するだけのすべての機能はビューアを使い行われる。ビューアおよびツールは、
閲覧、および/または修正されるデータの所有権を管理するODEライブラリを
使って、生成することができる。例えば、異なるユーザによって所有され、閲覧
だけが利用できる一塊のテキストをロードするように指示されたODE100は
、テキストを閲覧するために必要とされるコードフラグメント228を求めるた
めに、ODEライブラリにアクセスすることになる。しかし、選択や、スペルチ
ェックに必要とされるコードフラグメント、またはデータを修正する他のどんな
方法のコードフラグメントをロードしたり、アクセスしたりすることはない。テ
キストの所有者がそのテキストをロードする場合、自分のODE100は閲覧の
最初のユーザとして同一のコードフラグメントをロードすることになり、さらに
スペルチェックフラグメント228、フォント変更フラグメント228などの必
要とされるフラグメントもロードすることになる。
【0074】 この例での各ODE100は、そのタスクリストに一片のデータに対してOD
E100が利用できる全機能を示している。ビューアODEのユーザは、2つの
機能のみを見ることになる。それは、End AccessおよびAccess
New Dataである。対照的にこのオーシャン102に対するODEライ
ブラリ内にスペルスペルチェッカがあり、そしてデータの所有者がスペルスペル
チェッカODEを使う許可を有する場合、その時はデータ所有者ODEタスクリ
ストには、スペルスペルチェッカコード228がツールODEにまだロードされ
ていなくても、Spell Check Textが含まれているはずである。
E100が利用できる全機能を示している。ビューアODEのユーザは、2つの
機能のみを見ることになる。それは、End AccessおよびAccess
New Dataである。対照的にこのオーシャン102に対するODEライ
ブラリ内にスペルスペルチェッカがあり、そしてデータの所有者がスペルスペル
チェッカODEを使う許可を有する場合、その時はデータ所有者ODEタスクリ
ストには、スペルスペルチェッカコード228がツールODEにまだロードされ
ていなくても、Spell Check Textが含まれているはずである。
【0075】 閲覧許可が制限されているユーザがウェブページを読む場合、そのユーザのビ
ューアODEはウェブページをを読んだり、表示したりする機能だけを有してい
る。対照的に、ツール(修正)許可を持つユーザは、ほとんど同一のインターフ
ェイス内からデータの修正をすることができる。ODEタスクリストは、選ばれ
た情報で実行できるタスクのみを収納している。修正の許可を有するユーザがテ
キストを選択する場合、タスクリストは、Spell Check、Resiz
e、Change Font、Translateなどのタスクを表示すること
ができる。何も選択しない場合は、3個のセクションがタスクリストに現れる。
すなわち、そのツールまたはビューアで利用できる機能、ツールやビューアの生
成や追加、一般的なODEの機能、およびログアウトのような一般的で広範囲な
システムの機能である。
ューアODEはウェブページをを読んだり、表示したりする機能だけを有してい
る。対照的に、ツール(修正)許可を持つユーザは、ほとんど同一のインターフ
ェイス内からデータの修正をすることができる。ODEタスクリストは、選ばれ
た情報で実行できるタスクのみを収納している。修正の許可を有するユーザがテ
キストを選択する場合、タスクリストは、Spell Check、Resiz
e、Change Font、Translateなどのタスクを表示すること
ができる。何も選択しない場合は、3個のセクションがタスクリストに現れる。
すなわち、そのツールまたはビューアで利用できる機能、ツールやビューアの生
成や追加、一般的なODEの機能、およびログアウトのような一般的で広範囲な
システムの機能である。
【0076】 デニズンモビリティ 上述したように、デニズン100は生きている生物と、少なくとも類似という
観点では、特定の能力を共有している。次にこれらの能力について、モビリティ
からより詳しく論じる。
観点では、特定の能力を共有している。次にこれらの能力について、モビリティ
からより詳しく論じる。
【0077】 図3に示すように、各デニズン100は、受取りステップ300の間に命令を
受け取る機能を有している。命令は、ユーザにより対話的に、さらに他のデニズ
ン100により供給されるコマンドまたはパラメータの形式である。命令は、そ
のようなコマンドまたはパラメータに応じて、または構成部分202の情報に応
じて、デニズンよりロードされる実行可能ブロック220の形式でもある。
受け取る機能を有している。命令は、ユーザにより対話的に、さらに他のデニズ
ン100により供給されるコマンドまたはパラメータの形式である。命令は、そ
のようなコマンドまたはパラメータに応じて、または構成部分202の情報に応
じて、デニズンよりロードされる実行可能ブロック220の形式でもある。
【0078】 解析ステップ302の間、デニズン100は、タイプフィールド224および
プライオリティ(ある場合)を検査することで、受け取った命令を解析する。照
会ステップ304の間に、デニズン100は、動作環境102で現在利用できる
資源についての情報を要求する。この情報は、ロケーション104からロケーシ
ョン104への移動の間、デニズン100により内部で保守することができる。
資源情報は、資源の能力と利用可能性を追跡してタスクを遂行する、管理デニズ
ン802(図8)によっても提供され得る。
プライオリティ(ある場合)を検査することで、受け取った命令を解析する。照
会ステップ304の間に、デニズン100は、動作環境102で現在利用できる
資源についての情報を要求する。この情報は、ロケーション104からロケーシ
ョン104への移動の間、デニズン100により内部で保守することができる。
資源情報は、資源の能力と利用可能性を追跡してタスクを遂行する、管理デニズ
ン802(図8)によっても提供され得る。
【0079】 好ましい資源情報には、CPUタイプおよび速さ、メモリの特性、ハードドラ
イブの利用可能性、システム履歴、スワップスペース、および他のコンピュータ
資源の特性が含まれている。与えられた一組の命令を実行するために必要とされ
る資源を、デニズンの生来のオーシャン102内で入手できない場合、そのとき
要求ステップ304には、デニズン100の必要とする資源を捜し出すために、
他のオーシャンの資源デニズンと連絡を取ることも含まれることになる。
イブの利用可能性、システム履歴、スワップスペース、および他のコンピュータ
資源の特性が含まれている。与えられた一組の命令を実行するために必要とされ
る資源を、デニズンの生来のオーシャン102内で入手できない場合、そのとき
要求ステップ304には、デニズン100の必要とする資源を捜し出すために、
他のオーシャンの資源デニズンと連絡を取ることも含まれることになる。
【0080】 選択ステップ306の間に、デニズン100はステップ302と304の結果
に基づき、ロケーション104を選択する。考慮された情報には、現在のロケー
ションの資源だけではなく、多様なロケーション104で行われた試みの履歴、
および受け取った命令を実行するための最善なのは、どのロケーション104か
を決めるのに、必要な他の情報も含まれているはずである。複数のロケーション
104を選択できる場合には、最善のロケーション104が利用できない場合の
、優先順位付けされることになる。これおよび新しいアーキテクチャの他の側面
の結果として、さらに異なるデニズン100(または異なる時の「同一」のデニ
ズン100)は、チップ指定アルゴリズムを含む、異なるロード分散アルゴリズ
ムを使うことができるので、デニズン100は従来のユニフォームフォアオール
プロセスおよび/または集中ロードバランスアプローチに限定されないことが理
解できよう。
に基づき、ロケーション104を選択する。考慮された情報には、現在のロケー
ションの資源だけではなく、多様なロケーション104で行われた試みの履歴、
および受け取った命令を実行するための最善なのは、どのロケーション104か
を決めるのに、必要な他の情報も含まれているはずである。複数のロケーション
104を選択できる場合には、最善のロケーション104が利用できない場合の
、優先順位付けされることになる。これおよび新しいアーキテクチャの他の側面
の結果として、さらに異なるデニズン100(または異なる時の「同一」のデニ
ズン100)は、チップ指定アルゴリズムを含む、異なるロード分散アルゴリズ
ムを使うことができるので、デニズン100は従来のユニフォームフォアオール
プロセスおよび/または集中ロードバランスアプローチに限定されないことが理
解できよう。
【0081】 入手ステップ308の間に、デニズンは証書216を機密保護デニズン810
に供給することによって、適切な機密保護デニズン810から選択ロケーション
104へ移動するための許可を求める。許可が出ない場合、要求中のデニズン1
00は待機し、再試行することができ、あるいは適切であれば、機密保護デニズ
ン810を無効にするためにユーザまたは関係する管理者に連絡を取る試みを行
うこともできる。しかし、要求中のデニズン100が、デニズン100に割り当
てられた計算問題の前進を、大きく損なうことがないならば、ユーザおよび管理
者を巻き込まずに異なるロケーション104を選択し、試みることが現時点では
好ましい。
に供給することによって、適切な機密保護デニズン810から選択ロケーション
104へ移動するための許可を求める。許可が出ない場合、要求中のデニズン1
00は待機し、再試行することができ、あるいは適切であれば、機密保護デニズ
ン810を無効にするためにユーザまたは関係する管理者に連絡を取る試みを行
うこともできる。しかし、要求中のデニズン100が、デニズン100に割り当
てられた計算問題の前進を、大きく損なうことがないならば、ユーザおよび管理
者を巻き込まずに異なるロケーション104を選択し、試みることが現時点では
好ましい。
【0082】 一度、許可を入手したならば、デニズン100は管理ポセイドンデニズン82
0(図8)にステップ310の間に直ちに移動することを通知する。ポセイドン
デニズン820は、一方で多様なロケーション104、そして他方でオーシャン
102およびデニズン100のオペレーティングシステム間のインターフェイス
として活動する。そして、デニズン100はステップ312の間にそれ自体の生
成コピーをアーカイブし、ステップ314の間に新しいロケーションに移動し、
そしてステップ316の間に新しいロケーションで、受け取った命令を実行する
。タスクが完了すると、デニズン100はステップ318の間に一時的なロケー
ションでそれ自体の一時的生成コピーをアーカイブし、それからステップ320
の間に元も場所に戻る。
0(図8)にステップ310の間に直ちに移動することを通知する。ポセイドン
デニズン820は、一方で多様なロケーション104、そして他方でオーシャン
102およびデニズン100のオペレーティングシステム間のインターフェイス
として活動する。そして、デニズン100はステップ312の間にそれ自体の生
成コピーをアーカイブし、ステップ314の間に新しいロケーションに移動し、
そしてステップ316の間に新しいロケーションで、受け取った命令を実行する
。タスクが完了すると、デニズン100はステップ318の間に一時的なロケー
ションでそれ自体の一時的生成コピーをアーカイブし、それからステップ320
の間に元も場所に戻る。
【0083】 ステップ322の間に、ステップ318で生成されたデニズン100のアーカ
イブされたコピーは、削除される。一方、デニズンは新しいロケーションを新し
いホームとすることもできる。そのような場合、ステップ318、またはステッ
プ318および320を飛び越してステップ312の間に生成した アーカイブ
されたコピーが、ステップ322の間に削除される。両方の場合、受け取った命
令を実行した後に、デニズンのロケーションがポセイドンデニズン820に通知
される。
イブされたコピーは、削除される。一方、デニズンは新しいロケーションを新し
いホームとすることもできる。そのような場合、ステップ318、またはステッ
プ318および320を飛び越してステップ312の間に生成した アーカイブ
されたコピーが、ステップ322の間に削除される。両方の場合、受け取った命
令を実行した後に、デニズンのロケーションがポセイドンデニズン820に通知
される。
【0084】 タプルがクラス、テンプレート、バージョンおよび/または特定の実行可能ブ
ロック220を識別する数や他の短い識別子を収容している多くの場合には、移
動している間(ロケーションおよび/またはライブラリおよび/またはアーカイ
ブの間)にODEが特定されることが、現時点では好ましい。ODEを構築する
のに必要な実際の実行可能コードおよび他のデータは、集中して格納されるか、
あるいは複数のロケーション104に格納されるかのどちらかであるODEライ
ブラリに位置している。1つの実施形態において、ODEは当初Javaで書き
込まれて、ODEライブラリには、Java、C++、または他のプログラミン
グ言語のコードを編成または生成するクラスが含まれている。
ロック220を識別する数や他の短い識別子を収容している多くの場合には、移
動している間(ロケーションおよび/またはライブラリおよび/またはアーカイ
ブの間)にODEが特定されることが、現時点では好ましい。ODEを構築する
のに必要な実際の実行可能コードおよび他のデータは、集中して格納されるか、
あるいは複数のロケーション104に格納されるかのどちらかであるODEライ
ブラリに位置している。1つの実施形態において、ODEは当初Javaで書き
込まれて、ODEライブラリには、Java、C++、または他のプログラミン
グ言語のコードを編成または生成するクラスが含まれている。
【0085】 ODE100がオーシャン102内の同一のマシン上で新しいODE100を
生成する場合、生成サブクラスは、ODEのJAR(Javaアーカイブ)ファ
イルまたは他のアーカイブファイルにアーカイブされているODE機能クラスか
ら、ロードまたは参照することが好ましい。そのクラスが損傷したり、またはO
DE100がオーシャン102内の異なるコンピュータ上に新しいODE100
を生成している場合、そのとき同一のサブクラスが同一のクラスファイルからロ
ードされるが、それは宛先マシンのODEライブラリからである。このことは新
しいODE100が宛先プラットホーム元来のコードで書き込まれていること、
そして生成されたODE100のバージョン番号が宛先システム上でロードされ
たコードフラグメントのバージョン番号と一致することを確実にするものである
。
生成する場合、生成サブクラスは、ODEのJAR(Javaアーカイブ)ファ
イルまたは他のアーカイブファイルにアーカイブされているODE機能クラスか
ら、ロードまたは参照することが好ましい。そのクラスが損傷したり、またはO
DE100がオーシャン102内の異なるコンピュータ上に新しいODE100
を生成している場合、そのとき同一のサブクラスが同一のクラスファイルからロ
ードされるが、それは宛先マシンのODEライブラリからである。このことは新
しいODE100が宛先プラットホーム元来のコードで書き込まれていること、
そして生成されたODE100のバージョン番号が宛先システム上でロードされ
たコードフラグメントのバージョン番号と一致することを確実にするものである
。
【0086】 ODE100がネットワーク通信回線を通じて移動したり、または1つのアー
カイブの中に移動する場合、ODEを再構築するために必要とされる最小量のデ
ータが、その結果として伝送またはアーカイブされる。これには、タプルおよび
タプルに反映されない、あらゆるメタデータまたは状態情報が含まれている。
カイブの中に移動する場合、ODEを再構築するために必要とされる最小量のデ
ータが、その結果として伝送またはアーカイブされる。これには、タプルおよび
タプルに反映されない、あらゆるメタデータまたは状態情報が含まれている。
【0087】 一実施の形態において、ODE110が移動する場合、ODEライブラリクラ
スおよびサブクラス情報、継承および拡張情報などのテンプレート情報、所有権
証書216、そして参照中のデータが実際伝送される。一部のまたはすべてのデ
ータの代わりに、ユーザが参照されたデータを所有していなかったり、またはデ
ータ(あるいはそのコピー)の移動を望んでいない状態において、ODE100
はブロック220内の参照をデータのロケーションに送信することもできる。宛
先マシンで、新しいODE100がライブラリ情報に基づいて生成され、そのデ
ータはODE100に移送される。
スおよびサブクラス情報、継承および拡張情報などのテンプレート情報、所有権
証書216、そして参照中のデータが実際伝送される。一部のまたはすべてのデ
ータの代わりに、ユーザが参照されたデータを所有していなかったり、またはデ
ータ(あるいはそのコピー)の移動を望んでいない状態において、ODE100
はブロック220内の参照をデータのロケーションに送信することもできる。宛
先マシンで、新しいODE100がライブラリ情報に基づいて生成され、そのデ
ータはODE100に移送される。
【0088】 この方法の別の利点は、新しいODE100が移動しているプラットホーム1
04のネイティブコードで生成されるということである。新しいロケーション1
04のこのプラットホームは以前のロケーション104のプラットホームと異な
っていてもかまわない。
04のネイティブコードで生成されるということである。新しいロケーション1
04のこのプラットホームは以前のロケーション104のプラットホームと異な
っていてもかまわない。
【0089】 好ましいプラットホームには、無制限に、Java Virtual Mac
hines、および他の仮想マシン、さらには、ネイティブコードシステムが含
まれる。仮想マシンのプラットホームからネイティブコードプラットホームへ移
送する場合、ポセイドンデニズン820はネイティブコードで新しいODEを構
築することになる。データイベント経路220内のコードフラグメント228も
ライブラリ番号のみで、伝送することが好ましく、宛先マシン上のネイティブコ
ードフラグメント228が代用される。その新しいODE100が必要に応じて
動的にコンパイルされ、そして新しいマシンの仕事に取り組むことになる。新し
いODEライブラリが認可され、アップグレードがダウンロードされる場合、そ
れらを暗号化ソース命令セット(暗号化ソースコード)として受け取ることが好
ましい。それから、ポセイドンデニズンがオーシャン102の各プラットホーム
のためにコンパイルする。
hines、および他の仮想マシン、さらには、ネイティブコードシステムが含
まれる。仮想マシンのプラットホームからネイティブコードプラットホームへ移
送する場合、ポセイドンデニズン820はネイティブコードで新しいODEを構
築することになる。データイベント経路220内のコードフラグメント228も
ライブラリ番号のみで、伝送することが好ましく、宛先マシン上のネイティブコ
ードフラグメント228が代用される。その新しいODE100が必要に応じて
動的にコンパイルされ、そして新しいマシンの仕事に取り組むことになる。新し
いODEライブラリが認可され、アップグレードがダウンロードされる場合、そ
れらを暗号化ソース命令セット(暗号化ソースコード)として受け取ることが好
ましい。それから、ポセイドンデニズンがオーシャン102の各プラットホーム
のためにコンパイルする。
【0090】 さらに、移動のこの方法の利点は、実行可能コードがネットワークを通して移
送される必要がないことである。帯域幅の必要を少なくできることに加えて、こ
れによって、実施形態が各ロケーション104のライブラリの別々のコピーを使
う場合、ODEがロケーション104間を移動する時にウィルスが移送されるこ
とを避けることができる。
送される必要がないことである。帯域幅の必要を少なくできることに加えて、こ
れによって、実施形態が各ロケーション104のライブラリの別々のコピーを使
う場合、ODEがロケーション104間を移動する時にウィルスが移送されるこ
とを避けることができる。
【0091】 デニズンの再作成 各デニズン100には、先の図に関する続きとして図4および5で示している
ように、再作成の機能がある。図4はデニズン400がそれ自体の全く同一のコ
ピー402を生成する場合を示していて、一方図5は、それ自体の部分的に同一
のコピー502を生成するデニズン500を示している。全く同一のコピー40
2は、メモリで元のデニズン400の完全なコピーを作成し、そしてポセイドン
デニズン820に通知することで生成される。このようにして、デニズン400
、402のそれぞれは、構成部分404、406、起点部分408、410、お
よび実行可能部分412、414であり、異なるロケーションのメモリにあるが
、内容は同一のものである。生成されたデニズン402はメモリに常駐し続ける
こともできるし、またはハードディスク416などの不揮発性のバッファに、ア
ーカイブすることもできる。
ように、再作成の機能がある。図4はデニズン400がそれ自体の全く同一のコ
ピー402を生成する場合を示していて、一方図5は、それ自体の部分的に同一
のコピー502を生成するデニズン500を示している。全く同一のコピー40
2は、メモリで元のデニズン400の完全なコピーを作成し、そしてポセイドン
デニズン820に通知することで生成される。このようにして、デニズン400
、402のそれぞれは、構成部分404、406、起点部分408、410、お
よび実行可能部分412、414であり、異なるロケーションのメモリにあるが
、内容は同一のものである。生成されたデニズン402はメモリに常駐し続ける
こともできるし、またはハードディスク416などの不揮発性のバッファに、ア
ーカイブすることもできる。
【0092】 部分的に同一のコピー502は、メモリで元のデニズン500の部分的なコピ
ーを作成し、元のデニズン500と異なるソースから入手される部分と一部のコ
ピーを任意に組み合わせて、そしてポセイドンデニズン820に通知することで
生成される。一部のコピー作成をする代わりに、デニズン500の完全なコピー
を作成して、そして切り捨てたり、上書きしたりすることもできるであろう。生
成されたデニズン502はメモリに常駐し続けることもできるし、または不揮発
性のバッファ416に、アーカイブすることもできる。
ーを作成し、元のデニズン500と異なるソースから入手される部分と一部のコ
ピーを任意に組み合わせて、そしてポセイドンデニズン820に通知することで
生成される。一部のコピー作成をする代わりに、デニズン500の完全なコピー
を作成して、そして切り捨てたり、上書きしたりすることもできるであろう。生
成されたデニズン502はメモリに常駐し続けることもできるし、または不揮発
性のバッファ416に、アーカイブすることもできる。
【0093】 示している例において、デニズン500、502のそれぞれの構成部分504
、506および起点部分508、510は、メモリの異なるロケーションにある
が、内容は同一である。デニズン500、502のそれぞれの実行可能部分51
2、514は異なる内容が収納されている。生成されたデニズン502の実行可
能部分514は、ライブラリまたは他のソース516から出ており、元のデニズ
ン500からの単なるコピーではない。別の生成状態では、構成部分506およ
び/または起点部分510も、元のデニズン500からものとは異なるものであ
ることもできる。実行可能部分514も実行可能部分512のサブセット、また
は実行可能部分512からの、1つまたは複数のブロックとソース516から1
つまたは複数のブロックの、組み合わせであることもできる。
、506および起点部分508、510は、メモリの異なるロケーションにある
が、内容は同一である。デニズン500、502のそれぞれの実行可能部分51
2、514は異なる内容が収納されている。生成されたデニズン502の実行可
能部分514は、ライブラリまたは他のソース516から出ており、元のデニズ
ン500からの単なるコピーではない。別の生成状態では、構成部分506およ
び/または起点部分510も、元のデニズン500からものとは異なるものであ
ることもできる。実行可能部分514も実行可能部分512のサブセット、また
は実行可能部分512からの、1つまたは複数のブロックとソース516から1
つまたは複数のブロックの、組み合わせであることもできる。
【0094】 デニズンの学習(概要) すべての図を参照することで、デニズン100にはニューラルネットワークで
使われる手法とやや似ている、バックプロパゲーションスキーマを使うことがで
きる。その学習方法については他のところで、特に図9から11に関連して詳細
に論じられる。デニズン100は、ステップ316を実行している間に、試みら
れた実行の成功または失敗に基づき実行コードやデータ228の修正ができるこ
とに、ここでは言及するだけにとどめておく。それ自体の実行可能部分206の
代わりに、またはそのような修正に加えて、デニズン100は、遺伝的なアルゴ
リズムや他の発展性のあるアルゴリズムより部分的に同一な子孫502も生成す
ることができる。
使われる手法とやや似ている、バックプロパゲーションスキーマを使うことがで
きる。その学習方法については他のところで、特に図9から11に関連して詳細
に論じられる。デニズン100は、ステップ316を実行している間に、試みら
れた実行の成功または失敗に基づき実行コードやデータ228の修正ができるこ
とに、ここでは言及するだけにとどめておく。それ自体の実行可能部分206の
代わりに、またはそのような修正に加えて、デニズン100は、遺伝的なアルゴ
リズムや他の発展性のあるアルゴリズムより部分的に同一な子孫502も生成す
ることができる。
【0095】 デニズンの回復 デニズン100が破損し、しかしまだ少なくとも実行できる限られた能力を有
している場合、そのときデニズン100が、図6で示されている方法を使ってそ
れ自体で、修復するように試みることが好ましい。デニズン100は、ステップ
602の間にチェックサムのエラーを確認するか、またはステップ604の間に
例外状態に入ることのどちらかによって、ステップ600の間に内部構造の破損
を検知する。
している場合、そのときデニズン100が、図6で示されている方法を使ってそ
れ自体で、修復するように試みることが好ましい。デニズン100は、ステップ
602の間にチェックサムのエラーを確認するか、またはステップ604の間に
例外状態に入ることのどちらかによって、ステップ600の間に内部構造の破損
を検知する。
【0096】 チェックサムのエラーは、デニズン100が実行を開始した時、および/また
はステップ314の間にデニズン100がロケーション104を変更した後に、
検知することができる。証書216のチェックサムの値が、移動または実行を開
始した後に計算された対応する部分202、204(または、デニズン100全
体で適切に)のチェックサムの値とマッチしない場合、デニズン100は破損し
ている。チェックサムのエラーは、デニズン502がブロック220またはブロ
ックコンテナ908(図9)をロードしている場合の生成または自己修復してい
る間にも、ブロックチェックサムフィールド226またはブロックコンテナ内の
チェックサムの値とコード228で計算されたチェックサムの値を、ブロック2
20またはコンテナ908がメモリにロードされた後に比較することで、検知す
ることができる。
はステップ314の間にデニズン100がロケーション104を変更した後に、
検知することができる。証書216のチェックサムの値が、移動または実行を開
始した後に計算された対応する部分202、204(または、デニズン100全
体で適切に)のチェックサムの値とマッチしない場合、デニズン100は破損し
ている。チェックサムのエラーは、デニズン502がブロック220またはブロ
ックコンテナ908(図9)をロードしている場合の生成または自己修復してい
る間にも、ブロックチェックサムフィールド226またはブロックコンテナ内の
チェックサムの値とコード228で計算されたチェックサムの値を、ブロック2
20またはコンテナ908がメモリにロードされた後に比較することで、検知す
ることができる。
【0097】 使われているチェックサムの種類および破損の性質しだいであるが、チェック
サムは、それだけで必ずしもその破損を検知できるとはかぎらない。このような
訳で、デニズン100も例外状態を検知することが好ましい。例外状態は、デニ
ズン100では修復または回避することが困難または不可能なプログラミングエ
ラーによって引き起こされることがある。しかし、ハードウェアまたは伝送のエ
ラーは、ブロック220内の破損したデータまたはコードが、例外の原因となる
こともある。ゼロで割ること、デニズンのメモリスペース外のメモリにアクセス
すること、定義されていない命令を実行すること、配列要素の枠外にアクセスす
ること、または他の不正な動作を行うことなどのあらゆる試みを含む例外状態を
、検知することが好ましい。
サムは、それだけで必ずしもその破損を検知できるとはかぎらない。このような
訳で、デニズン100も例外状態を検知することが好ましい。例外状態は、デニ
ズン100では修復または回避することが困難または不可能なプログラミングエ
ラーによって引き起こされることがある。しかし、ハードウェアまたは伝送のエ
ラーは、ブロック220内の破損したデータまたはコードが、例外の原因となる
こともある。ゼロで割ること、デニズンのメモリスペース外のメモリにアクセス
すること、定義されていない命令を実行すること、配列要素の枠外にアクセスす
ること、または他の不正な動作を行うことなどのあらゆる試みを含む例外状態を
、検知することが好ましい。
【0098】 Java言語は、固有の例外処理を特徴とする。本発明によるソフトウェアは
、与えられた一片のコード228に対する例外処理のこの特徴を使うことができ
る。さらに、別法としてソフトウェアは、ODE100全体に対する特別な例外
処理を使うこともできる。後者の場合、ODE100は保護メモリスペースで実
行する。ホストオペレーティングシステムがフォールトトレラント(特定のMi
crosoft Windows95/NT、MacOS、およびOS/2など
のオペレーティングシステム)ではない場合、これらの例外処理能力は、ODE
実行エラーがシステム故障の発生を防ぐのに役立つ。例外が除去された場合、O
DE100はポッド700に例外番号を送るように試み、そして「亡く」なる。
そして、本明細書において論じている自己修復および診断方法が進行する。
、与えられた一片のコード228に対する例外処理のこの特徴を使うことができ
る。さらに、別法としてソフトウェアは、ODE100全体に対する特別な例外
処理を使うこともできる。後者の場合、ODE100は保護メモリスペースで実
行する。ホストオペレーティングシステムがフォールトトレラント(特定のMi
crosoft Windows95/NT、MacOS、およびOS/2など
のオペレーティングシステム)ではない場合、これらの例外処理能力は、ODE
実行エラーがシステム故障の発生を防ぐのに役立つ。例外が除去された場合、O
DE100はポッド700に例外番号を送るように試み、そして「亡く」なる。
そして、本明細書において論じている自己修復および診断方法が進行する。
【0099】 ステップ600の間に内部構成の問題を検知した後、デニズン100は自己修
復を行おうとする。ステップ606の間に、デニズン100は、最初、最新のア
ーカイブされた自己のバージョンを、リロードしようとする。これが不可能な場
合、ポセイドンデニズン820にその状態を通知して、そしてステップ608の
間にクラス、サブクラス、およびチェックサム情報に基づいて自ら再構築しよう
とする。デニズン100の(非破損または修復された)制御ブロックで定義され
たブロック220のコピーを入手し、それをメモリにリロードすることで、再構
築することができる。ブロック220は、アーカイブデニズン808で管理され
ているローカルODEライブラリから、もし必要なら他のロケーション104か
ら移送してもらう必要があるかもしれないが、そこから入手することが好ましい
。ブロック220は、望ましいクラス継承および拡張ステータスを反映する、デ
ニズンテンプレートで指示されるように修正される。
復を行おうとする。ステップ606の間に、デニズン100は、最初、最新のア
ーカイブされた自己のバージョンを、リロードしようとする。これが不可能な場
合、ポセイドンデニズン820にその状態を通知して、そしてステップ608の
間にクラス、サブクラス、およびチェックサム情報に基づいて自ら再構築しよう
とする。デニズン100の(非破損または修復された)制御ブロックで定義され
たブロック220のコピーを入手し、それをメモリにリロードすることで、再構
築することができる。ブロック220は、アーカイブデニズン808で管理され
ているローカルODEライブラリから、もし必要なら他のロケーション104か
ら移送してもらう必要があるかもしれないが、そこから入手することが好ましい
。ブロック220は、望ましいクラス継承および拡張ステータスを反映する、デ
ニズンテンプレートで指示されるように修正される。
【0100】 ステップ606、608のどちらかが、デニズン100の非破損バージョンを
作成する場合、実行はステップ612の間続くことになる。あるいは、デニズン
100は、ポセイドンデニズン820にステップ612の間に現在の状態で自己
回復とアーカイブに失敗したことを通知する。ユーザまたは管理者が後でデニズ
ン100を再構築することができるかもしれない。あるいは少なくとも、他のデ
ニズンで同一の問題を回避するやり方を、識別することができるかもしれない。
ステップ614の間に、デニズンの残存物は、解析することができ、そして残っ
ているあらゆるデータを検索することができる。
作成する場合、実行はステップ612の間続くことになる。あるいは、デニズン
100は、ポセイドンデニズン820にステップ612の間に現在の状態で自己
回復とアーカイブに失敗したことを通知する。ユーザまたは管理者が後でデニズ
ン100を再構築することができるかもしれない。あるいは少なくとも、他のデ
ニズンで同一の問題を回避するやり方を、識別することができるかもしれない。
ステップ614の間に、デニズンの残存物は、解析することができ、そして残っ
ているあらゆるデータを検索することができる。
【0101】 ポッド 図7で示しているように、与えられたポッド700は実行可能デニズン100
および子デニズン100の組織的な構成という二重の働きを行うことになる。各
ポッド700は、子デニズン704のためにロケーション参照および他のメタデ
ータ702を保守する。デニズン704がポッド700でグループ化されるよう
に、ポッド700と他のポッドは、ファミリデニズン706でグループ化するこ
とができる。メタデータ702には、生成が効率化のためにデータベースの分散
を行うため、またはメモリの限界を満たすために発生している場合、どの生成さ
れた子704がデータベースのでの部分を受け取るかなどの、情報が含まれてい
る。メタデータ702も、移動済みのデータにアクセスする試みを回避するため
、もしくはデータの新しいロケーションを判断するために、データの所有者に連
絡をとることでこのような試みを回避するために、データ参照の履歴を追跡する
こともできる。
および子デニズン100の組織的な構成という二重の働きを行うことになる。各
ポッド700は、子デニズン704のためにロケーション参照および他のメタデ
ータ702を保守する。デニズン704がポッド700でグループ化されるよう
に、ポッド700と他のポッドは、ファミリデニズン706でグループ化するこ
とができる。メタデータ702には、生成が効率化のためにデータベースの分散
を行うため、またはメモリの限界を満たすために発生している場合、どの生成さ
れた子704がデータベースのでの部分を受け取るかなどの、情報が含まれてい
る。メタデータ702も、移動済みのデータにアクセスする試みを回避するため
、もしくはデータの新しいロケーションを判断するために、データの所有者に連
絡をとることでこのような試みを回避するために、データ参照の履歴を追跡する
こともできる。
【0102】 一実施の形態において、デニズン704は移動する場合、親ポッド700に通
知する。デニズン704がホームオーシャン102の外に移動する場合、親ポッ
ド700はファミリ706に通知し、そのファミリ706はポセイドンデニズン
820に通知する。これは、デニズンモビリティおよびステップ310に関連し
て上記で論じた通りである。他の実施形態においては、異なる階層またはリンク
デニズン組織構成が使われている。例えば、階層構造では、ファミリレイヤが省
かれていたり、ツリー階層構造の代わりにリングが使われていたりなどである。
該実施の形態においては、デニズンがその移動を直接ポセイドン820に報告す
るなどの、異なる通信経路が使われている。
知する。デニズン704がホームオーシャン102の外に移動する場合、親ポッ
ド700はファミリ706に通知し、そのファミリ706はポセイドンデニズン
820に通知する。これは、デニズンモビリティおよびステップ310に関連し
て上記で論じた通りである。他の実施形態においては、異なる階層またはリンク
デニズン組織構成が使われている。例えば、階層構造では、ファミリレイヤが省
かれていたり、ツリー階層構造の代わりにリングが使われていたりなどである。
該実施の形態においては、デニズンがその移動を直接ポセイドン820に報告す
るなどの、異なる通信経路が使われている。
【0103】 ポッド700に属するデニズン704すべては、機能、所有者、さらにデータ
内容で関連を持つことが好ましい。デニズン100が子デニズンを生成する場合
、親デニズンは、すでにそうでないならポッド700になる。新しいポッドの構
成は類似している。しかしポッドデニズン700は、子デニズン704上に情報
を格納するために必要な、データベースブロック220および/またはメタデー
タを組み込んでいる。親デニズン700は、各子704へ問題の実行ブロック2
20を移送することで、1つまたは複数の子デニズン704に、実行機能を任せ
ることができる。
内容で関連を持つことが好ましい。デニズン100が子デニズンを生成する場合
、親デニズンは、すでにそうでないならポッド700になる。新しいポッドの構
成は類似している。しかしポッドデニズン700は、子デニズン704上に情報
を格納するために必要な、データベースブロック220および/またはメタデー
タを組み込んでいる。親デニズン700は、各子704へ問題の実行ブロック2
20を移送することで、1つまたは複数の子デニズン704に、実行機能を任せ
ることができる。
【0104】 管理デニズン 上記で言及され図8で示しているように、動作環境102には、多様な管理デ
ニズン800が含まれている。代替実施形態では、システムから機能性を省くこ
とで、少数のデニズン800では機能の一部またはすべてを組み合わせることで
、管理機能の責任を別の仕方でユーザデニズン100に持たせることで、あるい
はこれらの手段の組み合わせによってデニズン800の一部またはすべてを省い
ている。
ニズン800が含まれている。代替実施形態では、システムから機能性を省くこ
とで、少数のデニズン800では機能の一部またはすべてを組み合わせることで
、管理機能の責任を別の仕方でユーザデニズン100に持たせることで、あるい
はこれらの手段の組み合わせによってデニズン800の一部またはすべてを省い
ている。
【0105】 一部の実施形態では、一部またはすべての管理デニズン800の複数例を含ん
でいる。例えば、データベース、ロギング、およびアーカイブする機能には、複
数の身近な接続しているデニズン800で分散および管理されている、1つのデ
ータベースを使うことができる。あるいは、疎結合のデニズン800で管理され
ている別々のデータベースを使うこともできる。同様に、機密保護規制は、1つ
の中央デニズン810で、複数の移動することのあるデニズン810で、または
各ロケーション104で1つのデニズン810により、強化できる。
でいる。例えば、データベース、ロギング、およびアーカイブする機能には、複
数の身近な接続しているデニズン800で分散および管理されている、1つのデ
ータベースを使うことができる。あるいは、疎結合のデニズン800で管理され
ている別々のデータベースを使うこともできる。同様に、機密保護規制は、1つ
の中央デニズン810で、複数の移動することのあるデニズン810で、または
各ロケーション104で1つのデニズン810により、強化できる。
【0106】 例示している実施形態には、パフォーマンスに関する情報、および1つまたは
複数のロケーション104の特定のセットで利用できる資源を収集する、システ
ム資源デニズン802が含まれている。ふさわしい資源およびパフォーマンス情
報には、以下の一部またはすべてが含まれている。
複数のロケーション104の特定のセットで利用できる資源を収集する、システ
ム資源デニズン802が含まれている。ふさわしい資源およびパフォーマンス情
報には、以下の一部またはすべてが含まれている。
【0107】 CPU 速さ %利用可能度 ハードドライブ 総スペース 利用可能スペース ファイルシステムタイプ アクセスタイム RAM 総量 利用可能度 システムキャシュ 総L1 総L2 NIC 速さ プロトコル アドレス モデム ダイヤルの速さ 認証方法 バックアップデバイス デバイスタイプ スケジューリング情報
【0108】 ユーザデータベースデニズン804は、オーシャン102用のユーザ/グルー
プデータベースの収納と管理を行っている。このデータベースには、各アカウン
トまたはグループ用のログインタイム規制、ユーザログイン経路、ファイルおよ
びディレクトリの許可、使用単位、または時間単位での課金の支払のための請求
情報、類似の課金データを含めることができる。ポセイドンデニズン820は、
必要に応じてこのデータベースを構成することができる。このデータベースOD
E804には、それ自体の照会処理コードが収納されている。すべてのODEと
同様に、このODEも単純なODE100のままでも構わない。しかし機能を効
率的に果たすには、大きくなり過ぎた場合、これもポッド700になり、そして
他のODEを生成することもできる。
プデータベースの収納と管理を行っている。このデータベースには、各アカウン
トまたはグループ用のログインタイム規制、ユーザログイン経路、ファイルおよ
びディレクトリの許可、使用単位、または時間単位での課金の支払のための請求
情報、類似の課金データを含めることができる。ポセイドンデニズン820は、
必要に応じてこのデータベースを構成することができる。このデータベースOD
E804には、それ自体の照会処理コードが収納されている。すべてのODEと
同様に、このODEも単純なODE100のままでも構わない。しかし機能を効
率的に果たすには、大きくなり過ぎた場合、これもポッド700になり、そして
他のODEを生成することもできる。
【0109】 システムログODE806には、このオーシャン102のためのトランザクシ
ョンログなどのプロセスログが収納されている。1つの実施形態では、ログはデ
ータベースに保持され、そしてデニズン806は照会処理コード220に含まれ
る。オーシャン管理者820は、わかりやすいグラフィックユーザインターフェ
イス(GUI)を使い特定のプロセスを追跡できるように、デニズン806を構
成できることが好ましい。管理者820はログファイルのサイズを構成すること
もできる。システムログODE806がデフォルトの構成で機能している場合、
ODE806は、ログファイルが最大ファイルの長さに達した場合はいつでもロ
グファイルを終了し、アーカイブする、そして新しいログファイルを作成する。
ODE806は、ログファイルを閲覧しおよび/またはレポートを生成するため
に、ブロック220も収納することができる。
ョンログなどのプロセスログが収納されている。1つの実施形態では、ログはデ
ータベースに保持され、そしてデニズン806は照会処理コード220に含まれ
る。オーシャン管理者820は、わかりやすいグラフィックユーザインターフェ
イス(GUI)を使い特定のプロセスを追跡できるように、デニズン806を構
成できることが好ましい。管理者820はログファイルのサイズを構成すること
もできる。システムログODE806がデフォルトの構成で機能している場合、
ODE806は、ログファイルが最大ファイルの長さに達した場合はいつでもロ
グファイルを終了し、アーカイブする、そして新しいログファイルを作成する。
ODE806は、ログファイルを閲覧しおよび/またはレポートを生成するため
に、ブロック220も収納することができる。
【0110】 1つの実施形態では、ユーザは他のシステムから取り込むことができるが、フ
ァイルを使わない。その代わりに、「ログファイル」は実際には、その構成次第
であるが、データイベント経路206や多数のデータイベント経路である。OD
E806が大きくなりすぎる場合、新しいODEを生成し、そのどちらかが新し
いODEのデータイベント経路206へのログをコピーし、そしてアーカイブさ
れる。または追加のログ情報の受取りの用意ができているデータイベント経路2
06の付いた新しいODEが作成され、そして自らアーカイブする。
ァイルを使わない。その代わりに、「ログファイル」は実際には、その構成次第
であるが、データイベント経路206や多数のデータイベント経路である。OD
E806が大きくなりすぎる場合、新しいODEを生成し、そのどちらかが新し
いODEのデータイベント経路206へのログをコピーし、そしてアーカイブさ
れる。または追加のログ情報の受取りの用意ができているデータイベント経路2
06の付いた新しいODEが作成され、そして自らアーカイブする。
【0111】 アーカイブポッド808は、ポセイドン820がオーシャン102内のODE
100用のアーカイブデータを、定義するようにする。例えば、Interne
tサービスプロバイダのシステム管理者は、ユーザアカウントODE100上で
アーカイブデータを設定できる。アーカイブデータが1週間で、そしてアクティ
ブなアカウントを持つある人が8日間ログオンしなかった場合、そのとき、その
人のODE100は「スリープ」し、USER_ACCOUNT.arkまたは
似たファイルの中に、アーカイブデニズン808によりアーカイブされる。この
アーカイブファイルが、アーカイブODEをそのまま格納する、圧縮データベー
スODE100であることが好ましい。次回、アカウントの所有者がログオンし
ようとすると、システムはその人のアカウントを見つけることができない。
100用のアーカイブデータを、定義するようにする。例えば、Interne
tサービスプロバイダのシステム管理者は、ユーザアカウントODE100上で
アーカイブデータを設定できる。アーカイブデータが1週間で、そしてアクティ
ブなアカウントを持つある人が8日間ログオンしなかった場合、そのとき、その
人のODE100は「スリープ」し、USER_ACCOUNT.arkまたは
似たファイルの中に、アーカイブデニズン808によりアーカイブされる。この
アーカイブファイルが、アーカイブODEをそのまま格納する、圧縮データベー
スODE100であることが好ましい。次回、アカウントの所有者がログオンし
ようとすると、システムはその人のアカウントを見つけることができない。
【0112】 そして、システムはアーカイブポッド808に照会し、それは照会をUSER
_ACCOUNTS ODEを渡すと、そのアカウント用のODEはアーカイブ
されていることが返答される。そして、そのアカウントがまだ有効の場合、OD
Eはアーカイブから回復し、アクティブステータスに復帰する。アカウントの所
有者はログオンタイムが少し長いことに気付くかもしれないが、しかし、そのセ
ッション用の自分のアカウントの動作には何も変化がないことに気付くことがあ
る。
_ACCOUNTS ODEを渡すと、そのアカウント用のODEはアーカイブ
されていることが返答される。そして、そのアカウントがまだ有効の場合、OD
Eはアーカイブから回復し、アクティブステータスに復帰する。アカウントの所
有者はログオンタイムが少し長いことに気付くかもしれないが、しかし、そのセ
ッション用の自分のアカウントの動作には何も変化がないことに気付くことがあ
る。
【0113】 ポセイドンデニズン820は、漸進的なダイデートを設定することもできる。
ODE100は、ダイデートが過ぎ、そのODE100も他の基準を満たした場
合に、オーシャン102から削除される。例として、オンラインのスイープステ
ークのためにウェブページ上でエントリフォームに記入を終えた人のことを考え
てみる。そのエントリフォームの内容は、データベースODE100に格納され
る。競争が終了した後、競争相手のデータはマーケティングファミリ706へ転
送され、スイープステークにエントリしたODE100は削除されることになる
。
ODE100は、ダイデートが過ぎ、そのODE100も他の基準を満たした場
合に、オーシャン102から削除される。例として、オンラインのスイープステ
ークのためにウェブページ上でエントリフォームに記入を終えた人のことを考え
てみる。そのエントリフォームの内容は、データベースODE100に格納され
る。競争が終了した後、競争相手のデータはマーケティングファミリ706へ転
送され、スイープステークにエントリしたODE100は削除されることになる
。
【0114】 アーカイブポッド808がアクティブアーカイブアプローチを行わないことが
好ましい。このことは、与えられたロケーション104のホスト上にあるすべて
のODEが、最初のホストの平均の活動が与えられた限度より下に低下したり、
あるいは最後のアーカイブから与えられた時間が経過してしまった後に、オーシ
ャン102内の異なるホスト上、または特定のバックアップデバイス上にアーカ
イブされることを意味している。アーカイブは生成技術を使うことによりアクテ
ィブなODE100で、またはダイレクトアーカイブ技術を使うことによりアク
ティブではないODE100で行うことができる。これらのアプローチは、ポセ
イドンデニズン820を通して管理することが好ましい。オーシャン102が1
つのマシン上だけにある場合、Zip、Jazz Drive、またはテープバ
ックアップシステムを、オーシャン102をいつもバックアップするために、ア
ーカイブODE808が、使うことが好ましい。そして、類似した手段がマルチ
マシンのオーシャン102上で行われるべきである。
好ましい。このことは、与えられたロケーション104のホスト上にあるすべて
のODEが、最初のホストの平均の活動が与えられた限度より下に低下したり、
あるいは最後のアーカイブから与えられた時間が経過してしまった後に、オーシ
ャン102内の異なるホスト上、または特定のバックアップデバイス上にアーカ
イブされることを意味している。アーカイブは生成技術を使うことによりアクテ
ィブなODE100で、またはダイレクトアーカイブ技術を使うことによりアク
ティブではないODE100で行うことができる。これらのアプローチは、ポセ
イドンデニズン820を通して管理することが好ましい。オーシャン102が1
つのマシン上だけにある場合、Zip、Jazz Drive、またはテープバ
ックアップシステムを、オーシャン102をいつもバックアップするために、ア
ーカイブODE808が、使うことが好ましい。そして、類似した手段がマルチ
マシンのオーシャン102上で行われるべきである。
【0115】 既に言及したように、機密保護ODE810は、与えられたホスト上、または
与えられたロケーション104での実行を許す前に、ユーザまたはゲストODE
100の証書216を検査し、そうでなければ機密保護規制を実施する。
与えられたロケーション104での実行を許す前に、ユーザまたはゲストODE
100の証書216を検査し、そうでなければ機密保護規制を実施する。
【0116】 ビジュアルマネージャODE812は、オーシャン102内のデニズン100
の対話型管理をサポートする。ビジュアルマネージャODE812は、ユーザに
より最大化または最小化できるコンピュータ画面上にパネルを作成する。このパ
ネルは、システム(ロケーション104に限定されるか、オーシャン102全体
かのどちらか)の中で、現在アクティブなODE100を表すアイコンを表示す
る。ポセイドンデニズンのパネルには、管理ODE800および非管理ユーザO
DE100が含まれている。各ODEタイプは、囲まれたアイコンで表示され、
そしてクリックすると、起点部分204に基づくカテゴリのある照会ボックスお
よびスクロールボックスが含まれるように大きくなる。カテゴリ内のODEは、
名前でリストされている。照会ボックスにより、管理者またはユーザは平易なテ
キスト検索を使うことで、アクティブなODEを捜すことができる。
の対話型管理をサポートする。ビジュアルマネージャODE812は、ユーザに
より最大化または最小化できるコンピュータ画面上にパネルを作成する。このパ
ネルは、システム(ロケーション104に限定されるか、オーシャン102全体
かのどちらか)の中で、現在アクティブなODE100を表すアイコンを表示す
る。ポセイドンデニズンのパネルには、管理ODE800および非管理ユーザO
DE100が含まれている。各ODEタイプは、囲まれたアイコンで表示され、
そしてクリックすると、起点部分204に基づくカテゴリのある照会ボックスお
よびスクロールボックスが含まれるように大きくなる。カテゴリ内のODEは、
名前でリストされている。照会ボックスにより、管理者またはユーザは平易なテ
キスト検索を使うことで、アクティブなODEを捜すことができる。
【0117】 ユーザパネルは、許可レベルに基づいた、そのユーザが有するアクセス権に応
じたODEのみを表示する。ODEカテゴリの中には、ユーザすべてが利用でき
るものもある。それは、見るためにそのユーザ許可を与えられ、そのシステムに
ログオンしているすべてのユーザのために、所有者の名前が表示されるもの(管
理者のパネルには、すべてのユーザの個人情報が表示される)、ユーザにそのシ
ステムのODEのログファイルを検索できるようにしているもの、そしてユーザ
に、そのシステムのアクティブではないODEを、検索できるようにしているも
のである。
じたODEのみを表示する。ODEカテゴリの中には、ユーザすべてが利用でき
るものもある。それは、見るためにそのユーザ許可を与えられ、そのシステムに
ログオンしているすべてのユーザのために、所有者の名前が表示されるもの(管
理者のパネルには、すべてのユーザの個人情報が表示される)、ユーザにそのシ
ステムのODEのログファイルを検索できるようにしているもの、そしてユーザ
に、そのシステムのアクティブではないODEを、検索できるようにしているも
のである。
【0118】 リバーポッドデニズン814は、オーシャンの境界を越えて資源を捜す接続な
どの、他のオーシャン102との接続を管理する。このような特別なオーシャン
接続は、与えられたオーシャン102内のODE100によって、または接続を
開始するために、ODE100を使うオーシャン102内のマシンにログオンす
るユーザによって行うことができる。リバーODE814は、オーシャン102
内のマシン上で動作しているネイティブではないODEアプリケーションとの接
続も管理する。これには、データベース管理システム、レガシシステム、ハード
ウェアドライバ、Javaバーチャルマシン、非ODE環境で動作するネットワ
ークコンピュータ、UNIX/VMSシェルスクリプト、外部の実行可能なもの
、およびいずれかの知られていないデータストリームを含むことができる。
どの、他のオーシャン102との接続を管理する。このような特別なオーシャン
接続は、与えられたオーシャン102内のODE100によって、または接続を
開始するために、ODE100を使うオーシャン102内のマシンにログオンす
るユーザによって行うことができる。リバーODE814は、オーシャン102
内のマシン上で動作しているネイティブではないODEアプリケーションとの接
続も管理する。これには、データベース管理システム、レガシシステム、ハード
ウェアドライバ、Javaバーチャルマシン、非ODE環境で動作するネットワ
ークコンピュータ、UNIX/VMSシェルスクリプト、外部の実行可能なもの
、およびいずれかの知られていないデータストリームを含むことができる。
【0119】 データがネットワーク接続を通して2つのODE間で伝送される場合、その通
信パケット(TCP/IPパケットなど)は、2つのODEの証書216を使い
暗号化される。リバーODE814の証書216、それは、トランザクション、
ソースネットワーク(IP)アドレス、宛先ネットワーク(IP)アドレス、お
よびトランザクション用のトランザクション証書を管理する。このことは、通信
が遮断される場合でも、コンテンツへの不正アクセスを回避することができる。
というのは、証書を所有するODEのみが、伝送パケットの暗号解読をすること
ができ、それも特定の宛先アドレスのみで、さらに含まれる特定のトランザクシ
ョンのためにのみ、そうすることができる。もちろん、ネットワークは、TCP
/IPを頼りにしたり、またはそれを使うことさえする必要がない。本発明によ
るソフトウェアは、複数のネットワークプロトコルをサポートすることができ、
将来のネットワークプロトコルを含むことができるように、拡張することができ
る。
信パケット(TCP/IPパケットなど)は、2つのODEの証書216を使い
暗号化される。リバーODE814の証書216、それは、トランザクション、
ソースネットワーク(IP)アドレス、宛先ネットワーク(IP)アドレス、お
よびトランザクション用のトランザクション証書を管理する。このことは、通信
が遮断される場合でも、コンテンツへの不正アクセスを回避することができる。
というのは、証書を所有するODEのみが、伝送パケットの暗号解読をすること
ができ、それも特定の宛先アドレスのみで、さらに含まれる特定のトランザクシ
ョンのためにのみ、そうすることができる。もちろん、ネットワークは、TCP
/IPを頼りにしたり、またはそれを使うことさえする必要がない。本発明によ
るソフトウェアは、複数のネットワークプロトコルをサポートすることができ、
将来のネットワークプロトコルを含むことができるように、拡張することができ
る。
【0120】 実施形態では、リバーポッドデニズン814はスレッドマネージャODE81
6の親である。ODEすべては、スレッドを生成、管理することができる。しか
し、ODE100がそうした場合、それはそのスレッドをスレッドマネージャO
DE816を使い登録する。スレッドマネージャODE816はシステム資源を
解析し、そして優先順位および許可に基づき、スレッドを生成するようにする。
6の親である。ODEすべては、スレッドを生成、管理することができる。しか
し、ODE100がそうした場合、それはそのスレッドをスレッドマネージャO
DE816を使い登録する。スレッドマネージャODE816はシステム資源を
解析し、そして優先順位および許可に基づき、スレッドを生成するようにする。
【0121】 例えば、ODE100がネットワークを通して他のアプリケーションとのソケ
ット接続を創設する場合、そのソケットはスレッドとして管理される。各スレッ
ドはメモリおよび(この場合)ネットワークの帯域幅を占める。とても高い優先
順位を持つ誰かがビデオマルチキャストをスケジュールしている場合、それは、
システム102で利用できるネットワーク帯域幅の大部分を必要とする。他のO
DEは、このスケジュールされたイベントに気付いていないかもしれない。OD
E100がソケット接続で利用できるネットワーク帯域幅があることを認識する
場合、ODE100は、スレッドマネージャODE816にスレッドの生成の許
可を打診する。スレッドマネージャODE816は、ビデオマルチキャストがそ
のネットワーク資源の割当てに対する最高の優先順位であることを知っているの
で、それはソケットスレッドがそのネットワーク接続を通して生成されることを
許可する。しかし、スレッドマネージャODE816は、可能な場合には他のネ
ットワーク接続を使うように、ODE100へ要求する。
ット接続を創設する場合、そのソケットはスレッドとして管理される。各スレッ
ドはメモリおよび(この場合)ネットワークの帯域幅を占める。とても高い優先
順位を持つ誰かがビデオマルチキャストをスケジュールしている場合、それは、
システム102で利用できるネットワーク帯域幅の大部分を必要とする。他のO
DEは、このスケジュールされたイベントに気付いていないかもしれない。OD
E100がソケット接続で利用できるネットワーク帯域幅があることを認識する
場合、ODE100は、スレッドマネージャODE816にスレッドの生成の許
可を打診する。スレッドマネージャODE816は、ビデオマルチキャストがそ
のネットワーク資源の割当てに対する最高の優先順位であることを知っているの
で、それはソケットスレッドがそのネットワーク接続を通して生成されることを
許可する。しかし、スレッドマネージャODE816は、可能な場合には他のネ
ットワーク接続を使うように、ODE100へ要求する。
【0122】 1つの実施形態においては、リバーポッドデニズン814はゲートキーパOD
E818の親でもある。ゲートキーパ818には2つの主な機能がある。第1は
機密保護である。すなわち、ゲートキーパ818はIPマスキング、IPフィル
タリング、ユーザの認証などの標準的なファイアウォールシステム機能を提供す
る。第2のゲートキーパ818の主な役目は、ネットワーク構成を管理すること
である。通常、このことはオーシャン102のネットワーク資源が、どのように
構成されるかを追跡することを意味する。しかし、ゲートキーパ818は、本明
細書の別の箇所の実行可能な例の移動にあるように、通常のダイヤルインおよび
ログオンに必要な構成情報を、広範囲で多様なダイヤルインユーザへの提供も行
うことができる。
E818の親でもある。ゲートキーパ818には2つの主な機能がある。第1は
機密保護である。すなわち、ゲートキーパ818はIPマスキング、IPフィル
タリング、ユーザの認証などの標準的なファイアウォールシステム機能を提供す
る。第2のゲートキーパ818の主な役目は、ネットワーク構成を管理すること
である。通常、このことはオーシャン102のネットワーク資源が、どのように
構成されるかを追跡することを意味する。しかし、ゲートキーパ818は、本明
細書の別の箇所の実行可能な例の移動にあるように、通常のダイヤルインおよび
ログオンに必要な構成情報を、広範囲で多様なダイヤルインユーザへの提供も行
うことができる。
【0123】 デニズンの学習(詳細) 従来の遺伝的アルゴリズムおよび順応性のあるニューラルネットは、指定済み
のルールの組に基づいてのみ、自ら順応することができる。それらは、入力が修
正されたり、動作中に入力データが変更される場合には、うまく反応しない。そ
れらは、1つの指定済みのタスクを成し遂げるために書かれている。結局、それ
らは、予期しない入力またはシステムイベントに応じて、動的に生成されたり、
修正されたりはできない。
のルールの組に基づいてのみ、自ら順応することができる。それらは、入力が修
正されたり、動作中に入力データが変更される場合には、うまく反応しない。そ
れらは、1つの指定済みのタスクを成し遂げるために書かれている。結局、それ
らは、予期しない入力またはシステムイベントに応じて、動的に生成されたり、
修正されたりはできない。
【0124】 ODE100が「学習」するプロセスは、いくらか従来の進歩的なコンピュー
タシステムに似てはいるものの、基本的には異なっている。図9で示しているよ
うに、ODE100は、ユーザ照会900で要求された入力を解析し、ふさわし
い処理構成906を生成(またはステップ904で修正)するために、ステップ
902を行う。処理構成906には、1つまたは複数のブロックコンテナ908
が含まれている。1つの実施形態においては、処理構成全体が1つのODE10
0内にある。つまり、代替実施形態では、各ブロックコンテナ908は1つの別
の(疎結合)ODE100である。
タシステムに似てはいるものの、基本的には異なっている。図9で示しているよ
うに、ODE100は、ユーザ照会900で要求された入力を解析し、ふさわし
い処理構成906を生成(またはステップ904で修正)するために、ステップ
902を行う。処理構成906には、1つまたは複数のブロックコンテナ908
が含まれている。1つの実施形態においては、処理構成全体が1つのODE10
0内にある。つまり、代替実施形態では、各ブロックコンテナ908は1つの別
の(疎結合)ODE100である。
【0125】 いずれかのブロックコンテナ908は、実行可能ブロック220であったり、
それを収納しており、それらは次にコードフラグメント228を保持する。各フ
ラグメント228は、与えられた入力タイプ、処理方法、他の処理フラグメント
228への接続を有している。フラグメントは、処理のためにユーザおよび/ま
たはODE100へ伝送される、結果912を作るために協力する。構成906
は、1つのデータイベント経路220内の一連の関連したコードフラグメント2
28、またはコード228を収納する各ODEを持つODE100の組織構成で
あり得るので、照会100を処理する仕事は、オーシャン102の一部または全
体を通じて、分割することができる。
それを収納しており、それらは次にコードフラグメント228を保持する。各フ
ラグメント228は、与えられた入力タイプ、処理方法、他の処理フラグメント
228への接続を有している。フラグメントは、処理のためにユーザおよび/ま
たはODE100へ伝送される、結果912を作るために協力する。構成906
は、1つのデータイベント経路220内の一連の関連したコードフラグメント2
28、またはコード228を収納する各ODEを持つODE100の組織構成で
あり得るので、照会100を処理する仕事は、オーシャン102の一部または全
体を通じて、分割することができる。
【0126】 処理構成906は、ODEライブラリまたは他の基準に見出される一組のルー
ルまたはテンプレートに基づき、実行中に生成および構成される。このようにし
て、ODEが使う学習方法は、進歩的アルゴリズムの新規な形式として、見なす
ことができるはずである。中間結果、エラーメッセージ、資源要求、およびユー
ザの応答などの解析情報914に基づき、ODE100は、ユーザ照会900へ
うまく応答するために、構成906の容量を解析する。ステップ904の間に、
ODE100は、処理構成906のブロック220のロード、アンロード、およ
び/または再コンパイルをすることができる。
ルまたはテンプレートに基づき、実行中に生成および構成される。このようにし
て、ODEが使う学習方法は、進歩的アルゴリズムの新規な形式として、見なす
ことができるはずである。中間結果、エラーメッセージ、資源要求、およびユー
ザの応答などの解析情報914に基づき、ODE100は、ユーザ照会900へ
うまく応答するために、構成906の容量を解析する。ステップ904の間に、
ODE100は、処理構成906のブロック220のロード、アンロード、およ
び/または再コンパイルをすることができる。
【0127】 このことによって、ODE100は、構成906およびODE100が、その
問題と可能な解決策についてすでに習得したことを失うことなく、実行中に作動
の基本的な変更を行うことができる。例えば、ユーザが実行中に照会900を変
更する場合、構成906の最初のバージョンに基づく現存の組を保存し、そして
適合性を評価するために、構成906の新しいバージョンの結果との照合を行う
ことができる。
問題と可能な解決策についてすでに習得したことを失うことなく、実行中に作動
の基本的な変更を行うことができる。例えば、ユーザが実行中に照会900を変
更する場合、構成906の最初のバージョンに基づく現存の組を保存し、そして
適合性を評価するために、構成906の新しいバージョンの結果との照合を行う
ことができる。
【0128】 ニューラルネット、遺伝的アルゴリズム、および他の従来の進歩的アルゴリズ
ムとは異なり、本発明の方法は、ODE100がユーザの操作なしで、実行中に
処理フラグメント228の「ネットワーク」を、コンパイルできるようにするも
のである。使用中のコード228は、構成906の現在および過去のバージョン
を引き継ぐ程度に応じて、実行中に構成906をより効果的なものに、修正する
ことができる。データイベント経路220内のODEコードフラグメント228
は、データ入力評価のプロセスのステップとして、データベースまたは他のデー
タリポジトリに、アクセスすることができる。ODE間またはコードフラグメン
ト228間の「接続」の「重さ」は、単に数のはずであるが、それは異なるデー
タベースまたはデータ資源に接続することもできるはずである。発明者の知識に
応じて、従来のニューラルネットのノードまたは接続は、そのプロセスの一部と
してデータベースにアクセスすることができず、従来の遺伝的アルゴリズムも、
与えられたデータベースにアクセスするために、「ハードワイヤ」状態でなけれ
ばならない。
ムとは異なり、本発明の方法は、ODE100がユーザの操作なしで、実行中に
処理フラグメント228の「ネットワーク」を、コンパイルできるようにするも
のである。使用中のコード228は、構成906の現在および過去のバージョン
を引き継ぐ程度に応じて、実行中に構成906をより効果的なものに、修正する
ことができる。データイベント経路220内のODEコードフラグメント228
は、データ入力評価のプロセスのステップとして、データベースまたは他のデー
タリポジトリに、アクセスすることができる。ODE間またはコードフラグメン
ト228間の「接続」の「重さ」は、単に数のはずであるが、それは異なるデー
タベースまたはデータ資源に接続することもできるはずである。発明者の知識に
応じて、従来のニューラルネットのノードまたは接続は、そのプロセスの一部と
してデータベースにアクセスすることができず、従来の遺伝的アルゴリズムも、
与えられたデータベースにアクセスするために、「ハードワイヤ」状態でなけれ
ばならない。
【0129】 ODE100が使う学習方法は、ODE100がデータベース、ファイル、お
よび他のプロセスから情報を検索する方法と、固く結び付いていることが好まし
い。検索中も含めて、データ入力やデータベースが移動する場合、処理構成90
6が移動がない場合のように、アクセスを続けられることが好ましい。データベ
ースの構成が要求900の処理の途中で変更になる場合、ODE100は、適切
なブロック220および/またはコンテナ908をロードし、新しいデータベー
ス構成から情報を収集することで、要求の処理を続けることができる。入力がブ
ロック220の追加を必要とする場合、または相互接続910に追加や変更が求
められる場合、そのとき処理構成906を、要求900の処理を止めることなく
、実行中に再コンパイルや再構築することができる。このような順応性は追加の
ユーザ要求900の結果として、またはデータベース構成内で、発生した例外ま
たは生じたエラーなどの予期しないイベントの結果としても必要とされる。
よび他のプロセスから情報を検索する方法と、固く結び付いていることが好まし
い。検索中も含めて、データ入力やデータベースが移動する場合、処理構成90
6が移動がない場合のように、アクセスを続けられることが好ましい。データベ
ースの構成が要求900の処理の途中で変更になる場合、ODE100は、適切
なブロック220および/またはコンテナ908をロードし、新しいデータベー
ス構成から情報を収集することで、要求の処理を続けることができる。入力がブ
ロック220の追加を必要とする場合、または相互接続910に追加や変更が求
められる場合、そのとき処理構成906を、要求900の処理を止めることなく
、実行中に再コンパイルや再構築することができる。このような順応性は追加の
ユーザ要求900の結果として、またはデータベース構成内で、発生した例外ま
たは生じたエラーなどの予期しないイベントの結果としても必要とされる。
【0130】 デニズンの学習例 デニズンの学習方法およびアーキテクチャは、新規な検索エンジンの一部とし
て使うことができる。4つの検索用の言葉、「犬」、「コリー」、「ブラウン」
および「黒」をユーザが入力したとすると、最初構成906は、ブラウンおよび
黒のコリーについての情報を収容した、データ経路またはウェブページに情報を
戻す。ユーザが「ブラウン」と「黒」の間に結合語「または」を加える場合、そ
のとき最初の結果が保持され、そして新しい要求が、ブラウンのコリーまたは黒
のコリーに対して生成される。構成906内のコードフラグメントリンケージ9
10に、実行中の変更が加えられるはずである。ブラウンおよび黒のコリーを検
索したページは保持される、というのは、ブラウンおよび黒のコリーは、2度見
つけられることになるからである。つまり、1度は「ブラウン」との照合により
、もう一度は「黒」との照合によってである。検索が再び「黒」ではなくて「ブ
ラウン」と修正された場合、そのとき前に検索したデータベースを再び検索する
必要はない。構成906は、黒のコリーとブラウンおよび黒のコリーについての
情報を破棄する。要するに、要求900の構成は変えることができ、しかし類似
した要求構成の以前の検索結果、および検索から入手したことは何でも、引き続
き使うことができる。
て使うことができる。4つの検索用の言葉、「犬」、「コリー」、「ブラウン」
および「黒」をユーザが入力したとすると、最初構成906は、ブラウンおよび
黒のコリーについての情報を収容した、データ経路またはウェブページに情報を
戻す。ユーザが「ブラウン」と「黒」の間に結合語「または」を加える場合、そ
のとき最初の結果が保持され、そして新しい要求が、ブラウンのコリーまたは黒
のコリーに対して生成される。構成906内のコードフラグメントリンケージ9
10に、実行中の変更が加えられるはずである。ブラウンおよび黒のコリーを検
索したページは保持される、というのは、ブラウンおよび黒のコリーは、2度見
つけられることになるからである。つまり、1度は「ブラウン」との照合により
、もう一度は「黒」との照合によってである。検索が再び「黒」ではなくて「ブ
ラウン」と修正された場合、そのとき前に検索したデータベースを再び検索する
必要はない。構成906は、黒のコリーとブラウンおよび黒のコリーについての
情報を破棄する。要するに、要求900の構成は変えることができ、しかし類似
した要求構成の以前の検索結果、および検索から入手したことは何でも、引き続
き使うことができる。
【0131】 デニズンの学習方法およびアーキテクチャも、新規な翻訳エンジンの一部とし
て使うことできる。ODE100が翻訳すべきものとして、以下のバイナリフォ
ーマットのテキストを受け取ったとする。
て使うことできる。ODE100が翻訳すべきものとして、以下のバイナリフォ
ーマットのテキストを受け取ったとする。
【0132】 01001000011000010111001000100000011
010000110000101101110001000000110100
001100001011001100111010000100000011
001100110010101110010011010010110010
100111111 ODE100は、テキスト塊をASCIIフォーマットと見なし、ユーザに次
のような新しいメッセージとして表示する。「Har han haft fe
rie?」英語しか話さないユーザは、そのフレーズやフレーズの中の言語が理
解できない。ユーザはメッセージを選択し、「翻訳」ボタンを押す。
010000110000101101110001000000110100
001100001011001100111010000100000011
001100110010101110010011010010110010
100111111 ODE100は、テキスト塊をASCIIフォーマットと見なし、ユーザに次
のような新しいメッセージとして表示する。「Har han haft fe
rie?」英語しか話さないユーザは、そのフレーズやフレーズの中の言語が理
解できない。ユーザはメッセージを選択し、「翻訳」ボタンを押す。
【0133】 このメッセージを翻訳するようにとの命令を受け取ったことに応じて、ODE
100はその表現を翻訳する子ODE100を生成する。この子ODE100は
、データベースクラスおよびフレーズ識別サブクラスを使い生成される。フレー
ズ識別サブクラスに基づいてデータイベント経路220を生成するために、OD
E100はフレーズの単語数を識別する必要がある。
100はその表現を翻訳する子ODE100を生成する。この子ODE100は
、データベースクラスおよびフレーズ識別サブクラスを使い生成される。フレー
ズ識別サブクラスに基づいてデータイベント経路220を生成するために、OD
E100はフレーズの単語数を識別する必要がある。
【0134】 フレーズの単語数を識別するために、ODE100は、順番にフレーズをコン
ポーネント部分に分割するために、トークンナイザメソッドを使う。このことを
行うために、ODE100は、以下にリストしているように、非文字値の繰り返
しに対してフレーズのASCII文字のバイナリ表示を捜す。以下に、ASCI
I文字マップから各文字の10進法表示に対する2進法が、8ビットの塊と10
進法の同等物で示されている。 01001000 72 01100001 97 01110010 114 00100000 32 01101000 104 01100001 97 01101110 110 00100000 32 01101000 104 01100001 97 01100110 102 01110100 116 00100000 32 01100110 102 01100101 101 01110010 114 01101001 105 01100101 101 00111111 63 ODE100は2つの非文字ASCII値、すなわち、スペースである001
00000(32)とクエスチョンマークである00111111(63)を見
つける。スペースは3度繰り返されており、おそらく単語の間を区切るものであ
る。この情報に基いて、ODE100はいくらかの仮定をする。それは、テキス
トはフレーズまたはセンテンスのフラグメントであり、フレーズには4つの単語
すなわち「Har」、「han」、「haft」、および「ferie」があり
、そしてフレーズは疑問形であるというものである。
ポーネント部分に分割するために、トークンナイザメソッドを使う。このことを
行うために、ODE100は、以下にリストしているように、非文字値の繰り返
しに対してフレーズのASCII文字のバイナリ表示を捜す。以下に、ASCI
I文字マップから各文字の10進法表示に対する2進法が、8ビットの塊と10
進法の同等物で示されている。 01001000 72 01100001 97 01110010 114 00100000 32 01101000 104 01100001 97 01101110 110 00100000 32 01101000 104 01100001 97 01100110 102 01110100 116 00100000 32 01100110 102 01100101 101 01110010 114 01101001 105 01100101 101 00111111 63 ODE100は2つの非文字ASCII値、すなわち、スペースである001
00000(32)とクエスチョンマークである00111111(63)を見
つける。スペースは3度繰り返されており、おそらく単語の間を区切るものであ
る。この情報に基いて、ODE100はいくらかの仮定をする。それは、テキス
トはフレーズまたはセンテンスのフラグメントであり、フレーズには4つの単語
すなわち「Har」、「han」、「haft」、および「ferie」があり
、そしてフレーズは疑問形であるというものである。
【0135】 その場合、ODE100は、入力値として識別される4つの新しいデータイベ
ント経路220を生成する。これらはニューラルネットの入力レイヤのノードに
類似している。これらの4つの単語の2進法値は、以下に示しているように4つ
の入力ブロックにコピーされる。分かりやすくするために、この例では、パイプ
文字|は、ブロックを分割するために使われていて、ASCII文字がここから
、各文字に対する2進法値の代わりに使われる。この図には、データイベント経
路制御ブロックは含まれていない。 |Har|han|haft|ferie|
ント経路220を生成する。これらはニューラルネットの入力レイヤのノードに
類似している。これらの4つの単語の2進法値は、以下に示しているように4つ
の入力ブロックにコピーされる。分かりやすくするために、この例では、パイプ
文字|は、ブロックを分割するために使われていて、ASCII文字がここから
、各文字に対する2進法値の代わりに使われる。この図には、データイベント経
路制御ブロックは含まれていない。 |Har|han|haft|ferie|
【0136】 図10やその前の図を参照すると、ODE100はフレーズおよび翻訳命令1
000を辞書ポッド1002に送る。その辞書ポッド1002はアーカイブポッ
ド808の一部であり得る。辞書ポッド1002は、ASCII文字「H」また
は「h」で始まる単語の辞書を収納する、ODE1016、1018、1020
を所有する。これらの辞書ODEは文字により、ポッド1004、1006、1
008、1010、1012、および1014に編成される。示している例では
、ODE100は、「Har」、「han」、および「haft」に対する英語
(オリジナルのメッセージを受け取るODE100の生来言語)以外のすべての
言語で「H」ODEを確認する、複数のスレッドを生成する。照会も行われ、メ
ッセージは「F」および「f」ODEを収納するポッド1006に移動し、続い
てちょうど「f」ポッド1014およびそのODEに移動する。このフィルタリ
ングのプロセスは、要求の処理をする必要のあるODEの数を少なくするために
、実際の照合要求の前に、実行することが好ましい。そうすることで、システム
資源の使用を節約し、要求を処理するのに必要な時間を短くすることができる。
000を辞書ポッド1002に送る。その辞書ポッド1002はアーカイブポッ
ド808の一部であり得る。辞書ポッド1002は、ASCII文字「H」また
は「h」で始まる単語の辞書を収納する、ODE1016、1018、1020
を所有する。これらの辞書ODEは文字により、ポッド1004、1006、1
008、1010、1012、および1014に編成される。示している例では
、ODE100は、「Har」、「han」、および「haft」に対する英語
(オリジナルのメッセージを受け取るODE100の生来言語)以外のすべての
言語で「H」ODEを確認する、複数のスレッドを生成する。照会も行われ、メ
ッセージは「F」および「f」ODEを収納するポッド1006に移動し、続い
てちょうど「f」ポッド1014およびそのODEに移動する。このフィルタリ
ングのプロセスは、要求の処理をする必要のあるODEの数を少なくするために
、実際の照合要求の前に、実行することが好ましい。そうすることで、システム
資源の使用を節約し、要求を処理するのに必要な時間を短くすることができる。
【0137】 複数の言語ではローマ字が使われている。オリジナルのメッセージには、ロー
マ字ではない文字は収納されておらず、ODE100にはこのタイプの要求の経
験がないので、ODE100はローマ字を含む言語や、ローマ字を含まない言語
にさえ最高の優先順位を置く。これらの言語には、スカンジナビア語およびゲル
マン系の言語が含まれる。他の言語はローマ字では書かれない。しかし、コンピ
ュータを使い、これらの言語を話す人々は、しばしばその言語の単語の受け入れ
られるローマ字表現を使う。例えば、日本語は複数の文字組を使うが、その1つ
としてローマ字も使う。オリジナルメッセージが、あらゆる日本語の文字の組の
文字を表すユニコード文字値として受け取られると、日本語のODEに最高のウ
ェイトを置くように要求が行われる。ところが実際は、日本語のODEには、低
いウェイトや優先順位しか与えられないが、これらの言葉が日本語のローマ字表
現である場合、検索が続行される。ウェイトと優先順位値は、各言語の各単語に
対する要求値によって、要求することで表示される。
マ字ではない文字は収納されておらず、ODE100にはこのタイプの要求の経
験がないので、ODE100はローマ字を含む言語や、ローマ字を含まない言語
にさえ最高の優先順位を置く。これらの言語には、スカンジナビア語およびゲル
マン系の言語が含まれる。他の言語はローマ字では書かれない。しかし、コンピ
ュータを使い、これらの言語を話す人々は、しばしばその言語の単語の受け入れ
られるローマ字表現を使う。例えば、日本語は複数の文字組を使うが、その1つ
としてローマ字も使う。オリジナルメッセージが、あらゆる日本語の文字の組の
文字を表すユニコード文字値として受け取られると、日本語のODEに最高のウ
ェイトを置くように要求が行われる。ところが実際は、日本語のODEには、低
いウェイトや優先順位しか与えられないが、これらの言葉が日本語のローマ字表
現である場合、検索が続行される。ウェイトと優先順位値は、各言語の各単語に
対する要求値によって、要求することで表示される。
【0138】 選んだ言語に対する識別確率チャートが以下に示している。初期確率値は辞書
ポッド1002内のデータイベント経路220に格納されている言語に対する値
、さらに英語に与えられた文字の組の類似した値に基づいている。英語ではない
文字の組に対する、この表で最高の値は、0.9である。最小値は、0.1であ
る。この確率は、各文字のセットに英語のアルファベットの文字と同じその言語
のアルファベットでの文字数によって、英語のアルファベットの文字と異なる、
与えられた言語のアルファベットの文字数で分割することによってカーブ評価で
割り当てられる。この値は、その言語のODEに対して検索したすべての単語の
以前の要求値の平均を掛けている。最初の要求の際は、乗数は常に1である。
ポッド1002内のデータイベント経路220に格納されている言語に対する値
、さらに英語に与えられた文字の組の類似した値に基づいている。英語ではない
文字の組に対する、この表で最高の値は、0.9である。最小値は、0.1であ
る。この確率は、各文字のセットに英語のアルファベットの文字と同じその言語
のアルファベットでの文字数によって、英語のアルファベットの文字と異なる、
与えられた言語のアルファベットの文字数で分割することによってカーブ評価で
割り当てられる。この値は、その言語のODEに対して検索したすべての単語の
以前の要求値の平均を掛けている。最初の要求の際は、乗数は常に1である。
【0139】 言語 以前の要求値の平均 ID確率 デンマーク語 1 0.85 ノルウェー語 1 0.85 日本語 1 0.1 初期要求、目標の宛先、および初期値を表す、関係したチャートを以下に示す
。
。
【0140】 マッチした要求 宛先目標ODE 初期値 Har デンマーク語 H ODE 0.85 ノルウェー語 H ODE 0.85 日本語 H ODE 0.1 han デンマーク語 h ODE 0.85 ノルウェー語 h ODE 0.85 日本語 h ODE 0.1 haft デンマーク語 h ODE 0.85 ノルウェー語 h ODE 0.85 日本語 h ODE 0.1 ferie デンマーク語 f ODE 0.85 ノルウェー語 f ODE 0.85 日本語 f ODE 0.1
【0141】 処理構成906で作業しながら、スレッドは「Har」を適切なODEに移動
させ、多様で確実なマッチを要求する。「H」ポッド1008内のデンマーク語
とノルウェー語に対してはODE1016および1018で、その両者は確実な
マッチを返す。「h」のデンマーク語およびノルウェー語のODEも「han」
を見つけ、そして「f」のデンマーク語およびノルウェー語のODEは「fer
ie」に対する確実なマッチを返す。デンマーク語の「h」ODEも「haft
」を見つける。
させ、多様で確実なマッチを要求する。「H」ポッド1008内のデンマーク語
とノルウェー語に対してはODE1016および1018で、その両者は確実な
マッチを返す。「h」のデンマーク語およびノルウェー語のODEも「han」
を見つけ、そして「f」のデンマーク語およびノルウェー語のODEは「fer
ie」に対する確実なマッチを返す。デンマーク語の「h」ODEも「haft
」を見つける。
【0142】 各スレッドには、照合の要求およびデータの要求が含まれている。要求が無事
に戻ってくる場合、戻りステータスは1である。要求が満たされない場合、戻り
ステータスは0である。照合要求に対する戻りステータスが1の場合、そのとき
宛先ODEはデータの要求を実行する。この例では、要求によって、各単語の英
語の意味、各言語に対する各単語のタイプ(動詞、名詞など)、そしてマッチし
た単語の時制を調べる。これらの値が要求したODEに戻ってきた後、それらは
戻りステータスとともに、その単語に対するデータイベント経路220に格納さ
れる。
に戻ってくる場合、戻りステータスは1である。要求が満たされない場合、戻り
ステータスは0である。照合要求に対する戻りステータスが1の場合、そのとき
宛先ODEはデータの要求を実行する。この例では、要求によって、各単語の英
語の意味、各言語に対する各単語のタイプ(動詞、名詞など)、そしてマッチし
た単語の時制を調べる。これらの値が要求したODEに戻ってきた後、それらは
戻りステータスとともに、その単語に対するデータイベント経路220に格納さ
れる。
【0143】 以下のチャートは、初期要求、目標宛先、初期値、戻りステータス、および2
回目の要求値を示している。2回目の要求値は、初期値と戻りステータスの平均
を求めて計算したもので、それは続く要求のタイプと値を決めるのに使われる。
2回目の要求値も、要求しているODEの信頼値であり、それは要求スレッドが
、単語を正しく識別した信頼の程度を表すものである。
回目の要求値を示している。2回目の要求値は、初期値と戻りステータスの平均
を求めて計算したもので、それは続く要求のタイプと値を決めるのに使われる。
2回目の要求値も、要求しているODEの信頼値であり、それは要求スレッドが
、単語を正しく識別した信頼の程度を表すものである。
【0144】 マッチした要求 宛先目標ODE 初期値 戻り 2度目 Har デンマーク語 H 0.85 1 0.925 ノルウェー語 H 0.85 1 0.925 日本語 H 0.1 0 0.05 han デンマーク語 h 0.85 1 0.925 ノルウェー語 h 0.85 1 0.925 日本語 h 0.1 0 0.05 haft デンマーク語 h 0.85 1 0.925 ノルウェー語 h 0.85 0 0.425 日本語 h 0.1 0 0.05 ferie デンマーク語 f 0.85 1 0.925 ノルウェー語 f 0.85 1 0.925 日本語 f 0.1 1 0.05
【0145】 戻りステータス1を有する単語のリストとそれらの単語に対して戻ったデータ
を以下に示す。「ヒント」は単語のタイプと、適切な場合時制も含む。
を以下に示す。「ヒント」は単語のタイプと、適切な場合時制も含む。
【0146】 要求 言語 ヒント 英語 英語のヒント Har デンマーク語 現在 Has 現在 ノルウェー語 現在 Has 現在 han デンマーク語 代名詞 he 代名詞 ノルウェー語 代名詞 he 代名詞 haft デンマーク語 法動詞 had 過去 ferie デンマーク語 名詞 vacation 名詞 デンマーク語 名詞 vacation 名詞
【0147】 言語識別信頼値は、要求により、各言語に対して要求した単語の要求値の平均
が処理される前に、測ることができる。信頼値が0.05以下になった場合、も
うその言語のODEに対しては、要求を送らない。このようにして、図10に示
されている処理構成906は、以下に示す事前の結果に基づき、図11で示して
いる構成へ、動的に修正することができる。
が処理される前に、測ることができる。信頼値が0.05以下になった場合、も
うその言語のODEに対しては、要求を送らない。このようにして、図10に示
されている処理構成906は、以下に示す事前の結果に基づき、図11で示して
いる構成へ、動的に修正することができる。
【0148】 言語 言語ID信頼度 デンマーク語 0.925 ノルウェー語 0.8 日本語 0.05
【0149】 これらの要求スレッドを通して送られた次の要求1100が、「had」に相
当するノルウェー語、それはデンマーク語では「haft」という単語の意味で
すが、それを尋ねてきているとする。この要求により、その単語の綴りに間違え
がなく、データベースから失われてはいないことを確かめる必要があるかもしれ
ない。このサイクルで送られる結果の要求は、ノルウェー語hODE1018に
送られる。ノルウェー語のデータベースからのこの要求に対して戻ってきた単語
が、検索対象語「haft」とは異なる場合、そのときそのメッセージはデンマ
ーク語であるという確信は、とても高くなる。そして、ODE100はそのセン
テンスは本当にデンマーク語であると、見なすことになる。例えば、ノルウェー
語ODEから戻る可変値が「hat」の場合、ODE100はオリジナルメッセ
ージの言語はデンマーク語と見なし、要求により、辞書ODE1002から検索
した英語の単語を英語用の文法構造に置き換える。それは、Has he ha
d vaction?(かれは休暇を取ったか)となる。
当するノルウェー語、それはデンマーク語では「haft」という単語の意味で
すが、それを尋ねてきているとする。この要求により、その単語の綴りに間違え
がなく、データベースから失われてはいないことを確かめる必要があるかもしれ
ない。このサイクルで送られる結果の要求は、ノルウェー語hODE1018に
送られる。ノルウェー語のデータベースからのこの要求に対して戻ってきた単語
が、検索対象語「haft」とは異なる場合、そのときそのメッセージはデンマ
ーク語であるという確信は、とても高くなる。そして、ODE100はそのセン
テンスは本当にデンマーク語であると、見なすことになる。例えば、ノルウェー
語ODEから戻る可変値が「hat」の場合、ODE100はオリジナルメッセ
ージの言語はデンマーク語と見なし、要求により、辞書ODE1002から検索
した英語の単語を英語用の文法構造に置き換える。それは、Has he ha
d vaction?(かれは休暇を取ったか)となる。
【0150】 要求が使えるセンテンスとして戻ってこなかったり、ユーザに提示されたセン
テンスがユーザにより拒絶された場合、そのときODE100はその要求処理構
成906(ノード、入力、および/または接続)を変更する。その変更は以下の
順番で行うことが好ましい。すなわち、最初に、入力語に綴りの誤りがあると仮
定して、データベースODEを確認する。そして、すべての単語の省略を識別す
るために、組み合わせて入力を確認する。最後に、AしかしBではない、AとB
しかしCではないなどと、ノードを変えて単語を確認するという順番である。
テンスがユーザにより拒絶された場合、そのときODE100はその要求処理構
成906(ノード、入力、および/または接続)を変更する。その変更は以下の
順番で行うことが好ましい。すなわち、最初に、入力語に綴りの誤りがあると仮
定して、データベースODEを確認する。そして、すべての単語の省略を識別す
るために、組み合わせて入力を確認する。最後に、AしかしBではない、AとB
しかしCではないなどと、ノードを変えて単語を確認するという順番である。
【0151】 付加的例 デニズンアーキテクチャは、新規な認証およびアクセスメソッドの一部として
使うことができる。旅行中のセールス担当役員のパットが、会社のイントラネッ
トにアクセスする必要が生じたとする。本発明がなければ、パットの選択肢は、
ダイヤルインルータを介してイントラネットアクセスするために長距離電話番号
をダイヤルするか、または機密保護の不十分なインターネット接続でイントラネ
ットにアクセスするかに限定される。
使うことができる。旅行中のセールス担当役員のパットが、会社のイントラネッ
トにアクセスする必要が生じたとする。本発明がなければ、パットの選択肢は、
ダイヤルインルータを介してイントラネットアクセスするために長距離電話番号
をダイヤルするか、または機密保護の不十分なインターネット接続でイントラネ
ットにアクセスするかに限定される。
【0152】 本発明を使うと、パットは動作環境102へのアクセスを提供する近くのイン
ターネットサービスプロバイダを見つける。パットはノート型のコンピュータを
使いリストされた市内局番をダイヤルする。システムがログインアカウント名を
要求すると、パットのコンピュータは、代わりにパットの個人機密保護識別OD
Eおよびパットのホームオーシャン102ルーティング情報を提供する。パスワ
ードについては、パットのODEがデジタル証書216を提示する。近くのイン
ターネットサービスプロバイダのゲートキーパ818は情報を照合し、パットの
ODEに、その近くのインターネットサービスプロバイダを使いログインするの
に必要な、ネットワーク構成情報を提供する。パットのODEがログイン情報を
無事に受け取ったことを確かめたると、ゲートキーパ818は接続を終了させる
。
ターネットサービスプロバイダを見つける。パットはノート型のコンピュータを
使いリストされた市内局番をダイヤルする。システムがログインアカウント名を
要求すると、パットのコンピュータは、代わりにパットの個人機密保護識別OD
Eおよびパットのホームオーシャン102ルーティング情報を提供する。パスワ
ードについては、パットのODEがデジタル証書216を提示する。近くのイン
ターネットサービスプロバイダのゲートキーパ818は情報を照合し、パットの
ODEに、その近くのインターネットサービスプロバイダを使いログインするの
に必要な、ネットワーク構成情報を提供する。パットのODEがログイン情報を
無事に受け取ったことを確かめたると、ゲートキーパ818は接続を終了させる
。
【0153】 そしてパットのノートパソコンODEは新しいダイアルアップエントリを作成
し、ネットワーク接続パラメータを構成し、近くのインターネットサービスプロ
バイダに再びダイヤルし、そしてログオンする。パットは、今や信頼性の高いイ
ンターネットサービスプロバイダを通してインターネット(こうしてイントラネ
ットに)アクセスする。そして、長距離料金を払う必要がない。
し、ネットワーク接続パラメータを構成し、近くのインターネットサービスプロ
バイダに再びダイヤルし、そしてログオンする。パットは、今や信頼性の高いイ
ンターネットサービスプロバイダを通してインターネット(こうしてイントラネ
ットに)アクセスする。そして、長距離料金を払う必要がない。
【0154】 デニズンアーキテクチャは、新規なデータベースシステムおよび方法の一部と
して使うことができる。2つのインターフェイスを介してデータベースに要求す
ることのできるユーザがいるとする。そのユーザは、簡単なテキスト要求または
、サロンやヘアケア商品などの多様なカテゴリにフォーマットされた(プルダウ
ンメニュを介して)要求ページを利用できる、集中要求インターフェイスにアク
セスできる。これらのインターフェイスは、インターフェイスODEにより実装
することができる。インターフェイスODEは、要求900をユーザオーシャン
102内のポッドまたはファミリデニズンなどの中央ノード100へ渡す。
して使うことができる。2つのインターフェイスを介してデータベースに要求す
ることのできるユーザがいるとする。そのユーザは、簡単なテキスト要求または
、サロンやヘアケア商品などの多様なカテゴリにフォーマットされた(プルダウ
ンメニュを介して)要求ページを利用できる、集中要求インターフェイスにアク
セスできる。これらのインターフェイスは、インターフェイスODEにより実装
することができる。インターフェイスODEは、要求900をユーザオーシャン
102内のポッドまたはファミリデニズンなどの中央ノード100へ渡す。
【0155】 要求に答えるために必要な情報がユーザのオーシャン102内で見つからない
場合、そのとき、要求900は中央オーシャン102への接続を開始する、リバ
ーODE814へ渡される。要求102は、オーシャン102のファミリ構造、
ポッド、そしてODEを通してプロパゲーションメソッドで処理される。プロパ
ゲーションメソッドは、処理構成906による普通言語の翻訳関して上記で論じ
られたものと、類似した学習および通信方法を含むことができる。
場合、そのとき、要求900は中央オーシャン102への接続を開始する、リバ
ーODE814へ渡される。要求102は、オーシャン102のファミリ構造、
ポッド、そしてODEを通してプロパゲーションメソッドで処理される。プロパ
ゲーションメソッドは、処理構成906による普通言語の翻訳関して上記で論じ
られたものと、類似した学習および通信方法を含むことができる。
【0156】 データベースODEはすべて自らの内部要求コードを収納していて、これによ
りユーザは内部データスキーマに関わりなく、簡単に要求することができる。こ
れは従来のデータベースシステムに利点をもたらす。従来のシステムの欠点は、
データベースのスキーマや関連の変化に、対応することができないことである。
内部要求構成を使うことで、学習および動的再コンパイルを通してODE100
内部で起こるデータ構成の変化が、ユーザやシステム102全体に対してトラン
スパレントになる。
りユーザは内部データスキーマに関わりなく、簡単に要求することができる。こ
れは従来のデータベースシステムに利点をもたらす。従来のシステムの欠点は、
データベースのスキーマや関連の変化に、対応することができないことである。
内部要求構成を使うことで、学習および動的再コンパイルを通してODE100
内部で起こるデータ構成の変化が、ユーザやシステム102全体に対してトラン
スパレントになる。
【0157】 上級のユーザならば、データベースODEと直接対話をすることができる。O
DEは、GUIを使いユーザと対話できる機能を有する独立型アプリケーション
である。このGUIインターフェイスを通してODE100に要求された情報が
ODE内部にない場合、そのときはODE100は、ユーザおよびオーシャン1
02内のODEの許可の視点からの適切にしたがって、システム102じゅうに
その要求を伝える。
DEは、GUIを使いユーザと対話できる機能を有する独立型アプリケーション
である。このGUIインターフェイスを通してODE100に要求された情報が
ODE内部にない場合、そのときはODE100は、ユーザおよびオーシャン1
02内のODEの許可の視点からの適切にしたがって、システム102じゅうに
その要求を伝える。
【0158】 ODEはこの分散プロセスを介して普通言語の翻訳、通貨変換、およびデータ
変換を処理する。ODE100が常駐しているオーシャン102が必要な常駐変
換ODEを有している場合、または要求されているODEがそのような変換能力
を有している場合、ユーザは、ドイツ語で要求し、そして英語で応答を得ること
もできるはずである。そして、情報はフランス語でさえ格納されている。要求に
価格情報が含まれている場合、ODEは要求の、さらに回答すべてを同じ通貨に
するために通貨の価値を変換することができる。
変換を処理する。ODE100が常駐しているオーシャン102が必要な常駐変
換ODEを有している場合、または要求されているODEがそのような変換能力
を有している場合、ユーザは、ドイツ語で要求し、そして英語で応答を得ること
もできるはずである。そして、情報はフランス語でさえ格納されている。要求に
価格情報が含まれている場合、ODEは要求の、さらに回答すべてを同じ通貨に
するために通貨の価値を変換することができる。
【0159】 本発明を使い2つの通常の種類のデータベースにアクセスすることができる。
データベースODEは、要求言語(SQLなど)をそのまま使いODE100内
でデータベースをカプセル化した、データベースフォーマットを使う。コード2
28には、実行可能命令、データベース記録、グラフィックファイル、そして他
のデータおよび命令を収納することがある。あるいは、ODE100は、データ
ベースネイティブドライバ(ODBC、JDBC、ActiveXなど)を使い
サードパーティデータベースとの対話を処理できるように生成することができる
。そのようにすると、直接またはサードパーティデータベース管理システムを通
しての、いずれかの方法でデータベースへのアクセスが可能になる。ODE10
0は、実行中にユーザの要求をネイティブ要求コードに翻訳し、ユーザに要求の
修正を常に強要することなしにデータベース構造の変更を可能にする。このこと
で、データベース管理システムが処理するように設計されていないなどの、特別
な要求もできる。
データベースODEは、要求言語(SQLなど)をそのまま使いODE100内
でデータベースをカプセル化した、データベースフォーマットを使う。コード2
28には、実行可能命令、データベース記録、グラフィックファイル、そして他
のデータおよび命令を収納することがある。あるいは、ODE100は、データ
ベースネイティブドライバ(ODBC、JDBC、ActiveXなど)を使い
サードパーティデータベースとの対話を処理できるように生成することができる
。そのようにすると、直接またはサードパーティデータベース管理システムを通
しての、いずれかの方法でデータベースへのアクセスが可能になる。ODE10
0は、実行中にユーザの要求をネイティブ要求コードに翻訳し、ユーザに要求の
修正を常に強要することなしにデータベース構造の変更を可能にする。このこと
で、データベース管理システムが処理するように設計されていないなどの、特別
な要求もできる。
【0160】 多くの従来のデータベースシステムでは、要求の最適化はインデックスの使用
で処理される。これは他のテーブルを参照する行キー付きの、キーボードのテー
ブルである。インデックスを読み、そして要求とマッチする行を検索するほうが
、メモリの全データベースを検索するよりもかなり速い。インデックスを生成す
る1つの方法は、テーブルから与えられたコラムの行番号および内容を、インデ
ックステーブルへ単にコピーして、実行中に生成することである。システムは与
えられた語の数や繰返しに関して、データベースの行やドキュメントを走査する
こともできる。インデックスはその行についての情報を記述するために、複数の
キーボードを使い、手動で生成することもできる。
で処理される。これは他のテーブルを参照する行キー付きの、キーボードのテー
ブルである。インデックスを読み、そして要求とマッチする行を検索するほうが
、メモリの全データベースを検索するよりもかなり速い。インデックスを生成す
る1つの方法は、テーブルから与えられたコラムの行番号および内容を、インデ
ックステーブルへ単にコピーして、実行中に生成することである。システムは与
えられた語の数や繰返しに関して、データベースの行やドキュメントを走査する
こともできる。インデックスはその行についての情報を記述するために、複数の
キーボードを使い、手動で生成することもできる。
【0161】 データベース管理システム(DBMS)を使い自動的にインデックスを生成す
る方が、手動でインデックスを生成するよりもしばしば速い。例えば、自動イン
デック生成は、インターネット検索エンジンによって使われるインデックスを生
成する「ウェブクロワーズ」で、通常使われている。残念ながら、自動的に生成
されたインデックスは、提供する意味情報がより少ないという意味で、品質が低
下する傾向がある。サイトに「バイセクル(自転車)」というカテゴリと「マウ
ンテン(山)」とうサブカテゴリがある場合、「マウンテンバイク」というフレ
ーズの検索では、極めて重要であるが、そのサイトを識別できない。なぜならば
、使われたキーワードが異なっていて、インデックス検索では、キーワードに類
似または完全にマッチすることを手がかりにしているからである。手動で生成さ
れるインデックスはより正確な検索結果をもたらすが、データベースまたは統合
データベースシステムの情報が変化する場合、保守がとても困難である。
る方が、手動でインデックスを生成するよりもしばしば速い。例えば、自動イン
デック生成は、インターネット検索エンジンによって使われるインデックスを生
成する「ウェブクロワーズ」で、通常使われている。残念ながら、自動的に生成
されたインデックスは、提供する意味情報がより少ないという意味で、品質が低
下する傾向がある。サイトに「バイセクル(自転車)」というカテゴリと「マウ
ンテン(山)」とうサブカテゴリがある場合、「マウンテンバイク」というフレ
ーズの検索では、極めて重要であるが、そのサイトを識別できない。なぜならば
、使われたキーワードが異なっていて、インデックス検索では、キーワードに類
似または完全にマッチすることを手がかりにしているからである。手動で生成さ
れるインデックスはより正確な検索結果をもたらすが、データベースまたは統合
データベースシステムの情報が変化する場合、保守がとても困難である。
【0162】 ODEは、様々な仕方で要求を最適化するために使うことができる。1つの最
適化の方法は、伝播情報管理に基くものである。例えば、大きな長距離電話会社
の技術者が、エリアコード801からエリアコード409への長距離電話の通話
件数を知りたいとする。それは、将来の人口増加に基づく予測される通話数の増
加を処理するために、インフラが十分かどうかを見出すためにである。普通のD
BMSでは、技術者は、エリアコード801の顧客で、与えられた時間内にエリ
アコード409へ電話をする顧客を表すとても膨大なデータベースのすべての行
を、データベースシステムが見つけるようにしなければならない。可能なあるゆ
る組み合わせの中で、これらの基準の4つすべてを収納するインデックスを手に
入れることは、それがこれらの基準の2つでさえ、それは非常に非効率的になる
。
適化の方法は、伝播情報管理に基くものである。例えば、大きな長距離電話会社
の技術者が、エリアコード801からエリアコード409への長距離電話の通話
件数を知りたいとする。それは、将来の人口増加に基づく予測される通話数の増
加を処理するために、インフラが十分かどうかを見出すためにである。普通のD
BMSでは、技術者は、エリアコード801の顧客で、与えられた時間内にエリ
アコード409へ電話をする顧客を表すとても膨大なデータベースのすべての行
を、データベースシステムが見つけるようにしなければならない。可能なあるゆ
る組み合わせの中で、これらの基準の4つすべてを収納するインデックスを手に
入れることは、それがこれらの基準の2つでさえ、それは非常に非効率的になる
。
【0163】 さて、ODEアーキテクチャを使ったアプローチを考慮しよう。各顧客のアカ
ウントがそれ自体のデータベースODE100で表され、そしてデータファミリ
706が各エリアコードを表すとしよう。各ファミリ706内に、都市ごと電話
回線を表すポッド700があることになる。技術者は1996年11月20日か
ら12月31日までの、エリアコード801の顧客からエリアコード409への
すべての通話について、システムに要求する。システムはこの要求をコンポーネ
ント部分に分割する。
ウントがそれ自体のデータベースODE100で表され、そしてデータファミリ
706が各エリアコードを表すとしよう。各ファミリ706内に、都市ごと電話
回線を表すポッド700があることになる。技術者は1996年11月20日か
ら12月31日までの、エリアコード801の顧客からエリアコード409への
すべての通話について、システムに要求する。システムはこの要求をコンポーネ
ント部分に分割する。
【0164】 コラム名 値 顧客エリアコード 801 宛先エリアコード 409 開始日付 19961120 終了日付 19961231 そして、システムはデータベースODEフィルタリング機能を利用する。以下
の要求がすべてのデータファミリに送られる。それは、「Binary(Tru
e or False)Customer_Area_Code=801」であ
る。データファミリが「True」と応答する場合、そのときシステムは次の(
そして最後の)要求を送る。それは、「BinaryDest_Area_Co
de=409およびStart_Date=19961120およびFinis
h_Date=19961231」である。
の要求がすべてのデータファミリに送られる。それは、「Binary(Tru
e or False)Customer_Area_Code=801」であ
る。データファミリが「True」と応答する場合、そのときシステムは次の(
そして最後の)要求を送る。それは、「BinaryDest_Area_Co
de=409およびStart_Date=19961120およびFinis
h_Date=19961231」である。
【0165】 要求は処理構成906じゅうに広まるにつれ、要求の最適化の2番目の方法が
行われる。データオーシャン管理者820がデータベースODE構成を生成する
場合、ストレージ機能の限度を定義する。この場合、限度にODE生成日付と最
新のイベント日付が含まれる場合、そのとき1996年11月20日より前の修
正日付を有するすべてのODEが取り出される、なぜならば、1996年11月
19日より後にそのアカウントに何も修正が行われていなければ、どの番号に対
しても電話がをかけてはいないはずであるからである。同様に、そのアカウント
が1996年12月31日より後に生成されたのであれば、そのときも、要求の
候補ではない。このことで、システムが処理しなければならない要求の数を、か
なり少なくすることができる。
行われる。データオーシャン管理者820がデータベースODE構成を生成する
場合、ストレージ機能の限度を定義する。この場合、限度にODE生成日付と最
新のイベント日付が含まれる場合、そのとき1996年11月20日より前の修
正日付を有するすべてのODEが取り出される、なぜならば、1996年11月
19日より後にそのアカウントに何も修正が行われていなければ、どの番号に対
しても電話がをかけてはいないはずであるからである。同様に、そのアカウント
が1996年12月31日より後に生成されたのであれば、そのときも、要求の
候補ではない。このことで、システムが処理しなければならない要求の数を、か
なり少なくすることができる。
【0166】 デニズンアーキテクチャは、Binary Large OBjectS(B
LOBS)を含むマルチメディアデータオブジェクト要求最適化のための、新規
なシステムおよび方法の一部としても使うことができる。BLOBSへの関心は
、マルチメディア産業とオンラインビデオ編集システムの急増とともに、増大し
ている。効率的なBLOBSストレージを統合し、より従来のデータベースシス
テムにアクセスすることが有利になる。しかし、含まれるBLOBSファイルの
サイズが問題を引き起こす。
LOBS)を含むマルチメディアデータオブジェクト要求最適化のための、新規
なシステムおよび方法の一部としても使うことができる。BLOBSへの関心は
、マルチメディア産業とオンラインビデオ編集システムの急増とともに、増大し
ている。効率的なBLOBSストレージを統合し、より従来のデータベースシス
テムにアクセスすることが有利になる。しかし、含まれるBLOBSファイルの
サイズが問題を引き起こす。
【0167】 MPEG2フォーマットで2時間の映画はデータベースストレージスペースの
4.8ギガバイトを必要とするはずである。それのため、映画の格納は、高性能
サーバ上でのみ動作が可能な巨大なデータベースを必要とする。これは、しばし
ば価格が法外に高く、維持が非常に難しい。10人のユーザがほぼ同じ時間に、
特定のビデオファイルを見たいとする。しかし、異なるオフセットをビデオに入
れ、異なるサイトでそうしたいとする。1人がビデオの複数のコピーをメモリに
ロードするよう試みるとする。あるいは、回転ベースで各ユーザにファイルの塊
を送るために、共用CPUを使うことを試みるとしよう。これらのアプローチに
は、大きなハードウェアを使用が必要とされる。
4.8ギガバイトを必要とするはずである。それのため、映画の格納は、高性能
サーバ上でのみ動作が可能な巨大なデータベースを必要とする。これは、しばし
ば価格が法外に高く、維持が非常に難しい。10人のユーザがほぼ同じ時間に、
特定のビデオファイルを見たいとする。しかし、異なるオフセットをビデオに入
れ、異なるサイトでそうしたいとする。1人がビデオの複数のコピーをメモリに
ロードするよう試みるとする。あるいは、回転ベースで各ユーザにファイルの塊
を送るために、共用CPUを使うことを試みるとしよう。これらのアプローチに
は、大きなハードウェアを使用が必要とされる。
【0168】 しかし、本発明のアーキテクチャを使うことによって、ODE内部のプレイバ
ックコードとともに、ODE内にBLOBSをカプセル化することができる。ま
たは、オーシャン102の内側か外側ファイルに対する内部ポインタを有するが
できる。これはオーシャン102内で複数のCPUを共用することに基づいて、
各ODEがファイルのプレイバックを制御することを可能にする。
ックコードとともに、ODE内にBLOBSをカプセル化することができる。ま
たは、オーシャン102の内側か外側ファイルに対する内部ポインタを有するが
できる。これはオーシャン102内で複数のCPUを共用することに基づいて、
各ODEがファイルのプレイバックを制御することを可能にする。
【0169】 1つの実施形態において、ビデオがデータオーシャン102内ではないコンピ
ュータにある場合、そのときODEは実のところ述べたように、プレイバックを
制御できる。しかし、ビデオファイルがODEでカプセル化され、ODEの最大
サイズより大きい場合、そのときそのODEはポッドになり、新しいODEを生
成し、そしてそのビデオファイルを分割して、異なるODEに各々格納されてい
る同じサイズの塊にする。ポッドはセクションを追跡して、各ODEにどんなフ
レームがあるか、または何時に要求があったを監視する。ユーザはポッドを通し
てプレイバックを要求することができる。
ュータにある場合、そのときODEは実のところ述べたように、プレイバックを
制御できる。しかし、ビデオファイルがODEでカプセル化され、ODEの最大
サイズより大きい場合、そのときそのODEはポッドになり、新しいODEを生
成し、そしてそのビデオファイルを分割して、異なるODEに各々格納されてい
る同じサイズの塊にする。ポッドはセクションを追跡して、各ODEにどんなフ
レームがあるか、または何時に要求があったを監視する。ユーザはポッドを通し
てプレイバックを要求することができる。
【0170】 そして、プレイしているフレームを含むビデオの塊を収納しているODEをロ
ードするだけでよい。このことは、ビデオをRAMからストリームすることを可
能にする。これは、ビデオをプレイしているODEが、プレイバックを最も効率
的処理することを可能にするデータオーシャン102内のマシン上で、実行する
ことができるようにする。各プレイバックODEは異なるマシンで実行できる。
このアプローチもビデオのどのセクションのプレイバックも可能にする。そして
、必要になるまでアーカイブされたままで、そのときは必要ではないセクション
を持つ必要がない。各プレイバックODEは複数のスレッドを生成できる。それ
によって、複数のユーザがどこからでも、そのODEに格納されているビデオを
見ることができる。
ードするだけでよい。このことは、ビデオをRAMからストリームすることを可
能にする。これは、ビデオをプレイしているODEが、プレイバックを最も効率
的処理することを可能にするデータオーシャン102内のマシン上で、実行する
ことができるようにする。各プレイバックODEは異なるマシンで実行できる。
このアプローチもビデオのどのセクションのプレイバックも可能にする。そして
、必要になるまでアーカイブされたままで、そのときは必要ではないセクション
を持つ必要がない。各プレイバックODEは複数のスレッドを生成できる。それ
によって、複数のユーザがどこからでも、そのODEに格納されているビデオを
見ることができる。
【0171】 また、ユーザが毎秒15フレームのストリームしか許さない接続を通してビデ
オを見ている場合、ODEは1つおきにのみフレームを送る。ビデオがフレーム
デファレンス圧縮方法で格納されている場合、フレームすべてをロードする必要
があり、ホスト上で圧縮解除が起こる。ユーザがダウンロードできるフレームの
数は、ユーザが受け取れるものと同じくらい速く、ストリームされる。ビデオが
フレームデファレンス圧縮ではない方法で格納されている場合、ユーザの帯域幅
が許すフレームの数だけが、メモリにロードされ、伝送される。
オを見ている場合、ODEは1つおきにのみフレームを送る。ビデオがフレーム
デファレンス圧縮方法で格納されている場合、フレームすべてをロードする必要
があり、ホスト上で圧縮解除が起こる。ユーザがダウンロードできるフレームの
数は、ユーザが受け取れるものと同じくらい速く、ストリームされる。ビデオが
フレームデファレンス圧縮ではない方法で格納されている場合、ユーザの帯域幅
が許すフレームの数だけが、メモリにロードされ、伝送される。
【0172】 要約すると、本発明は性能を最適化するために異なるロケーションの多様なプ
ラットフォーム間を移動するプロセスと、自らの構成内の内部の不具合を正すた
めの検知および試みのプロセスと、要求や他の入力の結果に応じて自らを修正す
るプロセスとを含む分散コンピュータアーキテクチャである。そのアーキテクチ
ャは、データベース管理、普通言語の翻訳、そしてネットワーク認証およびアク
セスを含む多様なアプリケーション分野で有利に使うことができる。本発明の実
施形態は、当分野の技術者には既知のツールを利用し、それらを新しく、役立つ
方法で互いに組み合わせたり、新規な構造と組み合わせたものである。
ラットフォーム間を移動するプロセスと、自らの構成内の内部の不具合を正すた
めの検知および試みのプロセスと、要求や他の入力の結果に応じて自らを修正す
るプロセスとを含む分散コンピュータアーキテクチャである。そのアーキテクチ
ャは、データベース管理、普通言語の翻訳、そしてネットワーク認証およびアク
セスを含む多様なアプリケーション分野で有利に使うことができる。本発明の実
施形態は、当分野の技術者には既知のツールを利用し、それらを新しく、役立つ
方法で互いに組み合わせたり、新規な構造と組み合わせたものである。
【0173】 本発明の範囲における製造商品には、コンピュータリーダブルストレージ媒体
の基板の特定の物理的な構成と結合しているコンピュータリーダブルストレージ
媒体を含む。基板構成は本明細書で記述されているように、特定のおよび定義済
みの仕方でコンピュータを動作させるデータおよび命令を表す。ふさわしいスト
レージデバイスは、フロッピーディスク、ハードディスク、テープ、CD−RO
M、RAM、および1つまたは複数のコンピュータによって読込みが可能な他の
メディアを含む。各このような媒体は、確実に、本発明による動作環境でデニズ
ンプロセスを、サポートするまたは行うマシンによって実行可能なプログラム、
機能、および/または命令を実施する。
の基板の特定の物理的な構成と結合しているコンピュータリーダブルストレージ
媒体を含む。基板構成は本明細書で記述されているように、特定のおよび定義済
みの仕方でコンピュータを動作させるデータおよび命令を表す。ふさわしいスト
レージデバイスは、フロッピーディスク、ハードディスク、テープ、CD−RO
M、RAM、および1つまたは複数のコンピュータによって読込みが可能な他の
メディアを含む。各このような媒体は、確実に、本発明による動作環境でデニズ
ンプロセスを、サポートするまたは行うマシンによって実行可能なプログラム、
機能、および/または命令を実施する。
【0174】 請求するステップは文字通りの侵害分析の目的で省略することができず、かつ
他のステップの結果に依存するステップは必要な結果が得られた後でのみ実行し
なければならないという要件を仮定して、本発明の方法のステップを省略し、異
なる順序で行い、または同時に行うことが可能であるということを当業者なら理
解できるる。
他のステップの結果に依存するステップは必要な結果が得られた後でのみ実行し
なければならないという要件を仮定して、本発明の方法のステップを省略し、異
なる順序で行い、または同時に行うことが可能であるということを当業者なら理
解できるる。
【0175】 本明細書には、図2および図10で示すコンポーネントなど配置やコンポーネ
ントの内容に関して明らかに不一致な点が含まれている。さらに、図で示した実
施形態と文で論じたものにも明らかに矛盾がある。しかし、これらの明らかに不
一致の点に関する記述は、本発明の別の実施形態の変形例を論じたものと正当に
評価することによって解決できるものである。
ントの内容に関して明らかに不一致な点が含まれている。さらに、図で示した実
施形態と文で論じたものにも明らかに矛盾がある。しかし、これらの明らかに不
一致の点に関する記述は、本発明の別の実施形態の変形例を論じたものと正当に
評価することによって解決できるものである。
【0176】 当分野の技術者は、このような状態において、どの実施形態を使うべきを容易
に決定できる。また、当業者であれば、本発明の実施形態には、上述したアーキ
テクチャのすべての部分を含める必要がないことも認識できる。
に決定できる。また、当業者であれば、本発明の実施形態には、上述したアーキ
テクチャのすべての部分を含める必要がないことも認識できる。
【0177】 本発明は、その精神や本質的な態様から逸脱することなく、他の特定の形で実
施してもよい。上述した実施の形態は、すべての点で例示的なもので制限的なも
のではない。セクション表題は、便宜上のものである。本発明で使用する科学的
な原理に関する本明細書での説明は、すべて例示的なものである。したがって、
本発明の範囲は、上記の内容によらず、請求の範囲によって示されるものである
。特許請求の範囲と同等の意味および該範囲に含まれる全ての変更は、本発明の
範囲内に包含されるものである。
施してもよい。上述した実施の形態は、すべての点で例示的なもので制限的なも
のではない。セクション表題は、便宜上のものである。本発明で使用する科学的
な原理に関する本明細書での説明は、すべて例示的なものである。したがって、
本発明の範囲は、上記の内容によらず、請求の範囲によって示されるものである
。特許請求の範囲と同等の意味および該範囲に含まれる全ての変更は、本発明の
範囲内に包含されるものである。
本発明に係る利点および特徴を表す方法は、添付の図面を参照して詳細に説明
される。該添付図面は、本発明の選択した態様を示すだけであり、本発明の範囲
を何ら限定するものではない。
される。該添付図面は、本発明の選択した態様を示すだけであり、本発明の範囲
を何ら限定するものではない。
【図1】 本発明に係る動作環境、デニズンプロセス、および他の形態を示す図である。
【図2】 本発明の一実施の形態である、デニズンプロセスの内部構成を示す図である。
【図3】 受け取った命令を実行する、本発明に係る選択ロケーションのデニズンプロセ
スによる方法を示す流れ図である。
スによる方法を示す流れ図である。
【図4】 本発明に係るデニズンプロセスにおける全く同一なバージョンの生成を示す図
である。
である。
【図5】 本発明に係るデニズンプロセスにおける部分的に同一なバージョンの生成を示
す図である。
す図である。
【図6】 それ自体の内部構成における不具合を検知して修復する、本発明に係るデニズ
ンプロセスによる方法を示す流れ図である。
ンプロセスによる方法を示す流れ図である。
【図7】 本発明に係るファミリデニズン、つまりファミリデニズンに属するポッドデニ
ズン、およびポッドデニズンに属する2つの簡単なデニズンを示す図である。
ズン、およびポッドデニズンに属する2つの簡単なデニズンを示す図である。
【図8】 本発明に係る管理デニズンを示す図である。
【図9】 本発明に係るデニズン処理構成の生成および動的修正を示す図である。
【図10】 自然言語変換を行うように最初に構成されている図9に示す種類のデニズン処
理構成を示す図である。
理構成を示す図である。
【図11】 動的に再設定した後の図10で示したデニズン処理構成を示す図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年2月28日(2000.2.28)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GE,GH,GM,HR ,HU,ID,IL,IS,JP,KE,KG,KP, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U Z,VN,YU,ZW 【要約の続き】 ロードディングとアンロードディングコードで自ら、修 正もできる。デニズン(100)は、柔軟に、プロセッ サを割り当てることができる。なぜならば、各デニズン (100)は個々に、どこで実行すべきかを、決めるこ とができるからである。新規なアーキテクチャを使う適 用分野には、データベース管理や普通言語の翻訳が含ま れる。
Claims (60)
- 【請求項1】 コンピュータアーキテクチャによるコンピュータシステム資
源を活用する方法であって、該コンピュータシステム資源は、少なくとも2つの
ロケーションを含み、 デニズンのための動作環境を取得する工程であって、少なくとも2つのロケー
ションを含み、該ロケーション間をデニズンが移動する手段を含む工程と、 少なくとも1つのユーザデニズンを提供する工程であって、命令を受け取り、
該受け取った命令の視点から動作環境における異なるロケーションを評価し、該
評価に基づいてロケーションを選択し、該選択したロケーションに自ら移動し、
該選択したロケーションで前記受け取った命令の少なくとも一部を実行する工程
と を具えたことを特徴とする方法。 - 【請求項2】 各ロケーションは、命令を実行するためのプロセッサへのア
クセスを提供し、 各ロケーションは、前記プロセッサへのアクセス可能な命令を格納するための
メモリを提供することを特徴とする請求項1記載の方法。 - 【請求項3】 前記ユーザデニズンは、構成部分、起点部分、および実行可
能部分を含み、 前記提供する工程は、前記部分の少なくとも1つを再構築可能なユーザデニズ
ンを提供することを特徴とする請求項2記載の方法。 - 【請求項4】 前記実行可能部分は、プライマリデータであることを特徴と
する請求項3記載の方法。 - 【請求項5】 実行可能部分は、プライマリ命令であることを特徴とする請
求項3記載の方法。 - 【請求項6】 前記提供する工程は、自ら再構築およびアーカイブ可能なユ
ーザデニズンの提供を含むことを特徴とする請求項2記載の方法。 - 【請求項7】 前記提供する工程は、自らエラーを検知して、自らを自らの
アーカイブしたバージョンで置き換えを行うことが可能なユーザデニズンを提供
することを特徴とする請求項6記載の方法。 - 【請求項8】 前記提供する工程は、自ら再構築可能なユーザデニズンを提
供することを含むことを特徴とする請求項2記載の方法。 - 【請求項9】 前記提供する工程は、自らエラーを検知して、自ら置き換え
を行うことが可能なユーザデニズンの提供を含むことを特徴とする請求項8記載
の方法。 - 【請求項10】 前記提供する工程は、自らアーカイブすることが可能なユ
ーザデニズンを提供することを含むことを特徴とする請求項2記載の方法。 - 【請求項11】 前記提供する工程は、受け取った命令の少なくとも一部を
実行する結果に応じて、自らを修正可能なユーザデニズンを提供することを含む
ことを特徴とする請求項2記載の方法。 - 【請求項12】 前記修正工程は、ニューラルネット学習方法を使うことを
特徴とする請求項11記載の方法。 - 【請求項13】 前記修正工程は、バックプロパゲーションを使うことを特
徴とする請求項12記載の方法。 - 【請求項14】 前記修正工程は、進歩的アルゴリズムを使うことを特徴と
する請求項11記載の方法。 - 【請求項15】 前記修正工程は、遺伝的アルゴリズムを使うことを特徴と
する請求項14記載の方法。 - 【請求項16】 前記修正工程は、動的再コンパイルを使うことを特徴とす
る請求項11記載の方法。 - 【請求項17】 前記提供する工程は、自ら動作環境の変化の結果に応じて
自ら修正可能なユーザデニズンを提供することを含むことを特徴とする請求項2
記載の方法。 - 【請求項18】 前記修正工程は、利用可能な帯域幅の変化に応じて発生す
ることを特徴とする請求項17記載の方法。 - 【請求項19】 前記修正工程は、動作環境をサポートするコンピュータの
利用可能性の変化に応じて発生することを特徴とする請求項17記載の方法。 - 【請求項20】 前記提供する工程は、追加のデニズン間の要求の処理を分
割し、自ら修正可能なユーザデニズンを提供することを含むことを特徴とする請
求項2記載の方法。 - 【請求項21】 前記提供する工程は、実行エラーの衝撃を限定するために
、内部の例外を処理可能なユーザデニズンを提供することを含むことを特徴とす
る請求項2記載の方法。 - 【請求項22】 少なくとも1つの管理デニズンを供給する工程をさらに具
えたことを特徴とする請求項2記載の方法。 - 【請求項23】 前記供給する工程は、動作環境で異なるロケーションにつ
いての情報の収集が可能で、ユーザデニズンに該情報を提供可能な管理デニズン
の供給を含むことを特徴とする請求項22記載の方法。 - 【請求項24】 前記供給する工程は、動作環境における特定ロケーション
へユーザデニズンによるアクセスが制御可能な管理デニズンの供給を含むことを
特徴とする請求項22記載の方法。 - 【請求項25】 動作環境におけるロケーション間のユーザデニズンの移動
を追跡することが可能な、少なくとも1つのポッドデニズンを配置する工程をさ
らに具えたことを特徴とする請求項2記載の方法。 - 【請求項26】 前記提供する工程は、多数の関連したユーザデニズンを含
み、 前記ポッドデニズンは、多数のユーザデニズンによって使用されるロケーショ
ンを追跡することを含むことを特徴とする請求項25記載の方法。 - 【請求項27】 エコシステムコンピュータアーキテクチャを実行するコン
ピュータシステムであって、該コンピュータシステムは、 少なくとも2つのロケーションを含むデニズンのための動作環境、命令の実行
のためにプロセッサへのアクセスの提供、プロセッサにアクセス可能な命令を格
納するためのメモリの提供と、 前記デニズンがロケーション間で移動する移動手段と、 命令を受け取り、該受け取った命令の視点から動作環境における異なるロケー
ションを評価し、該評価に基づいてロケーションを選択し、該選択したロケーシ
ョンに自ら移動し、該選択したロケーションで前記受け取った命令の少なくとも
一部を実行することが可能な、少なくとも1つのユーザデニズンと を具えたことを特徴とするコンピュータシステム。 - 【請求項28】 少なくとも2つのロケーションは、コンピュータネットワ
ーク内における異なるコンピュータ上にあることを特徴とする請求項27記載の
コンピュータシステム。 - 【請求項29】 少なくとも2つのロケーションが同一のコンピュータ上に
あることを特徴とする請求項27記載のコンピュータシステム。 - 【請求項30】 少なくとも1つのロケーションは、Javaバージョンマ
シンへのアクセスを提供することを特徴とする請求項27記載のコンピュータシ
ステム。 - 【請求項31】 少なくとも1つのデニズンは、ネイティブ実行可能コード
を含むことを特徴とする請求項27記載のコンピュータシステム。 - 【請求項32】 少なくとも1つのデニズンは、インタープレタブルコード
を含むことを特徴とする請求項27記載のコンピュータシステム。 - 【請求項33】 少なくとも1つのデニズンは、プラットホームインデペン
ダントポータブルコードを含むことを特徴とする請求項27記載のコンピュータ
システム。 - 【請求項34】 少なくとも1つのデニズンは、ソースコードを含むことを
特徴とする請求項27記載のコンピュータシステム。 - 【請求項35】 前記移動手段は、TCP/IP接続を含むことを特徴とす
る請求項27記載のコンピュータシステム。 - 【請求項36】 前記移動手段は、宛先ロケーションでライブラリに格納さ
れているコードを用いて、デニズンを構築するための情報を特定する手段を含む
ことを特徴とする請求項27記載のコンピュータシステム。 - 【請求項37】 前記デニズンを構築するための情報は、クラス識別子を含
むことを特徴とする請求項36記載のコンピュータシステム。 - 【請求項38】 前記デニズンを構築するための情報は、クラスへの拡張を
含むことを特徴とする請求項36記載のコンピュータシステム。 - 【請求項39】 前記デニズンを構築するための情報は、クラス継承情報を
含むことを特徴とする請求項36記載のコンピュータシステム。 - 【請求項40】 各ユーザデニズンは、構成部分、起点部分、および実行可
能部分を具えたことを特徴とする請求項27記載のコンピュータシステム。 - 【請求項41】 前記構成部分は、ルーティング情報を含むことを特徴とす
る請求項40記載のコンピュータシステム。 - 【請求項42】 前記起点部分は、少なくとも1つの暗号化証書を含むこと
を特徴とする請求項40記載のコンピュータシステム。 - 【請求項43】 アーカイブポッドデニズンをさらに具えたことを特徴とす
る請求項27記載のコンピュータシステム。 - 【請求項44】 接続ポッドデニズンをさらに具えたことを特徴とする請求
項27記載のコンピュータシステム。 - 【請求項45】 管理デニズンをさらに具えたことを特徴とする請求項27
記載のコンピュータシステム。 - 【請求項46】 前記管理デニズンは、動作環境で生じる活動のログを保守
することを特徴とする請求項45記載のコンピュータシステム。 - 【請求項47】 前記管理デニズンは、動作環境内のデニズンの対話管理を
サポートすることを特徴とする請求項45記載のコンピュータシステム。 - 【請求項48】 デニズン継承情報を定義し、デニズンを構築するのに使う
ことができるテンプレートをさらに具えたことを特徴とする請求項27記載のコ
ンピュータシステム。 - 【請求項49】 デニズンを構築するのに使うことができる拡張情報をさら
に具えたことを特徴とする請求項27記載のコンピュータシステム。 - 【請求項50】 少なくとも1つデニズンは、少なくとも1つの実行可能部
分をさらに具えたことを特徴とする請求項27記載のコンピュータシステム。 - 【請求項51】 前記実行可能部分は、リレーショナルデータベースの行に
対応するデータを含むことを特徴とする請求項50記載のコンピュータシステム
。 - 【請求項52】 該システムは、複数のデニズンを収納し、各デニズンはデ
ータベースデータを収納する実行可能部分を含み、該データはデータベースキー
の値に従ってデニズンの間で分割されることを特徴とする請求項50記載のコン
ピュータシステム。 - 【請求項53】 前記データベースキーは、リレーショナルデータベースの
キーフィールドに対応することを特徴とする請求項52記載のコンピュータシス
テム。 - 【請求項54】 2つのデニズンの2つの実行可能部分は、各々メモリの同
一のロケーションを参照することを特徴とする請求項50記載のコンピュータシ
ステム。 - 【請求項55】 前記実行可能部分は、各々同一のデータを参照することを
特徴とする請求項54記載のコンピュータシステム。 - 【請求項56】 前記実行可能部分は、各々同一の命令を参照することを特
徴とする請求項54記載のコンピュータシステム。 - 【請求項57】 要求に応答して少なくとも1つのデニズンで生成の手段を
さらに具えたことを特徴とする請求項27記載のコンピュータシステム。 - 【請求項58】 少なくとも1つの生成されたデニズンから結果を収集する
手段をさらに具えたことを特徴とする請求項57記載のコンピュータシステム。 - 【請求項59】 要求に応答して少なくとも1つのスレッドで生成の手段を
さらに具えたことを特徴とする請求項27記載のコンピュータシステム。 - 【請求項60】 少なくとも1つの生成されたスレッドから結果を収集する
手段をさらに具えたことを特徴とする請求項59記載のコンピュータシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/919,081 US6112304A (en) | 1997-08-27 | 1997-08-27 | Distributed computing architecture |
US08/919,081 | 1997-08-27 | ||
PCT/US1998/015633 WO1999011018A1 (en) | 1997-08-27 | 1998-07-27 | Distributed computing architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001514422A true JP2001514422A (ja) | 2001-09-11 |
Family
ID=25441472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000508165A Pending JP2001514422A (ja) | 1997-08-27 | 1998-07-27 | 分散型コンピュータシステム |
Country Status (8)
Country | Link |
---|---|
US (1) | US6112304A (ja) |
EP (1) | EP1040615A4 (ja) |
JP (1) | JP2001514422A (ja) |
AU (1) | AU8597498A (ja) |
BR (1) | BR9812280A (ja) |
CA (1) | CA2298582C (ja) |
IL (1) | IL134447A0 (ja) |
WO (1) | WO1999011018A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004326719A (ja) * | 2003-04-24 | 2004-11-18 | Hachiro Taen | テナント検針に関するビジネスモデル。 |
JP2010501948A (ja) * | 2006-08-25 | 2010-01-21 | サーセン コーポレイション | 文書ベースシステムおよびその実現方法 |
Families Citing this family (164)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1313036A3 (en) | 1994-09-01 | 2005-04-13 | Computer Associates Think, Inc. | X.500 System and methods relating to services |
US7315860B1 (en) | 1994-09-01 | 2008-01-01 | Computer Associates Think, Inc. | Directory service system and method with tolerance for data entry storage and output |
US7188003B2 (en) * | 1994-12-30 | 2007-03-06 | Power Measurement Ltd. | System and method for securing energy management systems |
US8065338B2 (en) | 1995-08-30 | 2011-11-22 | Computer Associates Think, Inc. | Directory searching methods and systems |
US6047284A (en) | 1997-05-14 | 2000-04-04 | Portal Software, Inc. | Method and apparatus for object oriented storage and retrieval of data from a relational database |
US7631012B2 (en) | 1997-05-22 | 2009-12-08 | Computer Associates Think, Inc. | System and method of operating a database |
US6442753B1 (en) * | 1997-08-28 | 2002-08-27 | International Business Machines Corporation | Apparatus and method for checking dependencies among classes in an object-oriented program |
US6349344B1 (en) * | 1997-12-16 | 2002-02-19 | Microsoft Corporation | Combining multiple java class files into a run-time image |
US7051004B2 (en) * | 1998-04-03 | 2006-05-23 | Macrovision Corporation | System and methods providing secure delivery of licenses and content |
US6493342B1 (en) * | 1998-09-11 | 2002-12-10 | Teledesic Llc | Method of data transmission in a data communication network |
US6499137B1 (en) | 1998-10-02 | 2002-12-24 | Microsoft Corporation | Reversible load-time dynamic linking |
US6988271B2 (en) | 1998-10-02 | 2006-01-17 | Microsoft Corporation | Heavyweight and lightweight instrumentation |
US6263491B1 (en) * | 1998-10-02 | 2001-07-17 | Microsoft Corporation | Heavyweight and lightweight instrumentation |
US6546553B1 (en) | 1998-10-02 | 2003-04-08 | Microsoft Corporation | Service installation on a base function and provision of a pass function with a service-free base function semantic |
US6629123B1 (en) | 1998-10-02 | 2003-09-30 | Microsoft Corporation | Interception of unit creation requests by an automatic distributed partitioning system |
US6381628B1 (en) | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Summarized application profiling and quick network profiling |
US7039919B1 (en) * | 1998-10-02 | 2006-05-02 | Microsoft Corporation | Tools and techniques for instrumenting interfaces of units of a software program |
US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
US6983463B1 (en) | 1998-10-02 | 2006-01-03 | Microsoft Corporation | Network independent profiling of applications for automatic partitioning and distribution in a distributed computing environment |
BR9914551A (pt) * | 1998-10-16 | 2002-03-05 | Computer Ass Think Inc | Processo e sistema para macro-linguagem extensìvel |
GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
US6330588B1 (en) * | 1998-12-21 | 2001-12-11 | Philips Electronics North America Corporation | Verification of software agents and agent activities |
US6438600B1 (en) * | 1999-01-29 | 2002-08-20 | International Business Machines Corporation | Securely sharing log-in credentials among trusted browser-based applications |
US6317718B1 (en) * | 1999-02-26 | 2001-11-13 | Accenture Properties (2) B.V. | System, method and article of manufacture for location-based filtering for shopping agent in the physical world |
FI990461A0 (fi) * | 1999-03-03 | 1999-03-03 | Nokia Mobile Phones Ltd | Menetelmä ohjelmiston lataamiseksi palvelimelta päätelaitteeseen |
CA2267477C (en) * | 1999-03-30 | 2003-10-14 | Object Technology International Inc. | Packaging memory image files |
US7089208B1 (en) * | 1999-04-30 | 2006-08-08 | Paypal, Inc. | System and method for electronically exchanging value among distributed users |
AU5968000A (en) | 1999-07-21 | 2001-02-13 | E-Payments | A method for performing a transaction over a network |
US7376583B1 (en) | 1999-08-10 | 2008-05-20 | Gofigure, L.L.C. | Device for making a transaction via a communications link |
US7720762B1 (en) | 2002-10-03 | 2010-05-18 | Gofigure Payments, Llc | System and method for electronically processing commercial transactions based upon threshold amount |
US6879995B1 (en) * | 1999-08-13 | 2005-04-12 | Sun Microsystems, Inc. | Application server message logging |
US6845503B1 (en) * | 1999-08-13 | 2005-01-18 | Sun Microsystems, Inc. | System and method for enabling atomic class loading in an application server environment |
US7882501B1 (en) * | 1999-08-13 | 2011-02-01 | Oracle America, Inc. | System and method for enabling dynamic modifed class reloading in an application server environment |
US6334123B1 (en) * | 1999-09-03 | 2001-12-25 | Whamtech, Inc. | Index relational processor |
AU7742000A (en) | 1999-10-01 | 2001-05-10 | Accenture Llp | Information service architectures for netcentric computing systems |
US7020697B1 (en) * | 1999-10-01 | 2006-03-28 | Accenture Llp | Architectures for netcentric computing systems |
US7068680B1 (en) | 1999-10-01 | 2006-06-27 | Accenture Llp | Communication service architectures for netcentric computing systems |
US6988249B1 (en) | 1999-10-01 | 2006-01-17 | Accenture Llp | Presentation service architectures for netcentric computing systems |
US6874010B1 (en) | 1999-10-01 | 2005-03-29 | Accenture Llp | Base service architectures for netcentric computing systems |
US7734457B2 (en) * | 1999-10-16 | 2010-06-08 | Computer Associates Think, Inc. | Method and system for generating dynamic comparison models |
US20020046157A1 (en) * | 1999-11-01 | 2002-04-18 | Neal Solomon | System, method and apparatus for demand-initiated intelligent negotiation agents in a distributed network |
US20020055903A1 (en) * | 1999-11-01 | 2002-05-09 | Neal Solomon | System, method, and apparatus for a cooperative communications network |
US20030074301A1 (en) * | 1999-11-01 | 2003-04-17 | Neal Solomon | System, method, and apparatus for an intelligent search agent to access data in a distributed network |
US20020069134A1 (en) * | 1999-11-01 | 2002-06-06 | Neal Solomon | System, method and apparatus for aggregation of cooperative intelligent agents for procurement in a distributed network |
US7003560B1 (en) | 1999-11-03 | 2006-02-21 | Accenture Llp | Data warehouse computing system |
AU1462901A (en) * | 1999-11-03 | 2001-05-14 | Accenture Llp | Data warehouse computing system |
AUPQ428499A0 (en) | 1999-11-26 | 1999-12-23 | Computer Associates Pty. Ltd. | A method and apparatus for operating a data base |
US6615231B1 (en) * | 1999-12-15 | 2003-09-02 | Microsoft Corporation | System and method for directing requests to specific processing |
CN100417130C (zh) * | 2000-03-07 | 2008-09-03 | 日本电信电话株式会社 | 语义信息网络(sion) |
US20010039497A1 (en) * | 2000-03-30 | 2001-11-08 | Hubbard Edward A. | System and method for monitizing network connected user bases utilizing distributed processing systems |
US20040148336A1 (en) * | 2000-03-30 | 2004-07-29 | Hubbard Edward A | Massively distributed processing system architecture, scheduling, unique device identification and associated methods |
US6891802B1 (en) | 2000-03-30 | 2005-05-10 | United Devices, Inc. | Network site testing method and associated system |
US20090216641A1 (en) * | 2000-03-30 | 2009-08-27 | Niration Network Group, L.L.C. | Methods and Systems for Indexing Content |
US7020678B1 (en) | 2000-03-30 | 2006-03-28 | United Devices, Inc. | Machine generated sweepstakes entry model and associated distributed processing system |
US6847995B1 (en) | 2000-03-30 | 2005-01-25 | United Devices, Inc. | Security architecture for distributed processing systems and associated method |
US7039670B2 (en) * | 2000-03-30 | 2006-05-02 | United Devices, Inc. | Massively distributed processing system with modular client agent and associated method |
US20010027467A1 (en) * | 2000-03-30 | 2001-10-04 | Anderson David P. | Massively distributed database system and associated method |
US8010703B2 (en) * | 2000-03-30 | 2011-08-30 | Prashtama Wireless Llc | Data conversion services and associated distributed processing system |
US7254607B2 (en) * | 2000-03-30 | 2007-08-07 | United Devices, Inc. | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US6654783B1 (en) | 2000-03-30 | 2003-11-25 | Ethergent Corporation | Network site content indexing method and associated system |
US7003547B1 (en) | 2000-03-30 | 2006-02-21 | United Devices, Inc. | Distributed parallel processing system having capability-based incentives and associated method |
USRE42153E1 (en) * | 2000-03-30 | 2011-02-15 | Hubbard Edward A | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US6963897B1 (en) | 2000-03-30 | 2005-11-08 | United Devices, Inc. | Customer services and advertising based upon device attributes and associated distributed processing system |
US7092985B2 (en) * | 2000-03-30 | 2006-08-15 | United Devices, Inc. | Method of managing workloads and associated distributed processing system |
US7082474B1 (en) | 2000-03-30 | 2006-07-25 | United Devices, Inc. | Data sharing and file distribution method and associated distributed processing system |
US7257611B1 (en) * | 2000-04-12 | 2007-08-14 | Oracle International Corporation | Distributed nonstop architecture for an event processing system |
US6907396B1 (en) * | 2000-06-01 | 2005-06-14 | Networks Associates Technology, Inc. | Detecting computer viruses or malicious software by patching instructions into an emulator |
US20010049726A1 (en) * | 2000-06-02 | 2001-12-06 | Guillaume Comeau | Data path engine |
US6871195B2 (en) * | 2000-09-13 | 2005-03-22 | E-Promentor | Method and system for remote electronic monitoring and mentoring of computer assisted performance support |
EP1189403A1 (en) * | 2000-09-15 | 2002-03-20 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Method for exchanging capability information in a telecommunication system |
US20020178375A1 (en) * | 2001-01-31 | 2002-11-28 | Harris Corporation | Method and system for protecting against malicious mobile code |
US7392515B2 (en) * | 2001-02-09 | 2008-06-24 | International Business Machines Corporation | Program components having multiple selectable implementations |
WO2002088977A1 (en) * | 2001-04-30 | 2002-11-07 | Blue Martini Software, Inc. | Methods for creating a multilingual web applications |
US20020199156A1 (en) * | 2001-05-23 | 2002-12-26 | Fuel Tech, Inc. | Hardware-adaptable data visualization tool for use in complex data analysis and engineering design |
WO2002097619A2 (en) * | 2001-05-30 | 2002-12-05 | Research In Motion Limited | A mobile communications device application processing system |
US20030014478A1 (en) * | 2001-06-29 | 2003-01-16 | Noble Alan C. | Dynamically distributed client-server web browser |
EP1276033B1 (de) * | 2001-07-10 | 2012-03-14 | Trident Microsystems (Far East) Ltd. | Speichereinrichtung mit Datenschutz in einem Prozessor |
US7571215B2 (en) * | 2001-07-16 | 2009-08-04 | Bea Systems, Inc. | Data replication protocol |
AU2002355575A1 (en) * | 2001-08-08 | 2003-02-24 | Trivium Systems Inc. | Scalable messaging platform for the integration of business software components |
WO2003015342A1 (en) * | 2001-08-08 | 2003-02-20 | Trivium Systems Inc. | Dynamic rules-based secure data access system for business computer platforms |
CN1285047C (zh) * | 2001-08-30 | 2006-11-15 | Bea系统公司 | 具有并行检查的群集高速缓存 |
US7028030B2 (en) | 2001-08-30 | 2006-04-11 | Bea Systems, Inc. | Cluster caching with concurrency checking |
US20030046230A1 (en) * | 2001-08-30 | 2003-03-06 | Jacobs Dean Bernard | Method for maintaining account consistency |
US7113980B2 (en) | 2001-09-06 | 2006-09-26 | Bea Systems, Inc. | Exactly once JMS communication |
US6745211B2 (en) * | 2001-11-21 | 2004-06-01 | Ge Financial Assurance Holdings, Inc. | Method and system for verifying and correcting data records in a database |
US7171493B2 (en) * | 2001-12-19 | 2007-01-30 | The Charles Stark Draper Laboratory | Camouflage of network traffic to resist attack |
WO2003073206A2 (en) * | 2002-02-22 | 2003-09-04 | Bea Systems, Inc. | System and method for using a data replication service to manage a configuration repository |
US7162715B1 (en) | 2002-03-16 | 2007-01-09 | I-Squared, Inc. | Method and apparatus for preemptive monitoring of software binaries by instruction interception and dynamic recompilation |
US8099393B2 (en) | 2002-03-22 | 2012-01-17 | Oracle International Corporation | Transaction in memory object store |
GB0214943D0 (en) * | 2002-06-28 | 2002-08-07 | Bitarts Ltd | Computer program protection |
DE60218831T2 (de) * | 2002-06-28 | 2007-12-06 | Hewlett-Packard Development Co., L.P., Houston | Proxylastabgleicher |
US20040015601A1 (en) * | 2002-07-17 | 2004-01-22 | Whitson John C. | Method for tracking encapsulated software over a network of computers |
US7000151B2 (en) * | 2002-07-18 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | System and method for providing run-time type checking |
US6944715B2 (en) * | 2002-08-13 | 2005-09-13 | International Business Machines Corporation | Value based caching |
US7707141B1 (en) * | 2002-11-27 | 2010-04-27 | Microsoft Corporation | Use of a set based approach to constructing complex queries for managing resources built from a set of simple underlying operations |
US7406481B2 (en) | 2002-12-17 | 2008-07-29 | Oracle International Corporation | Using direct memory access for performing database operations between two or more machines |
US20060130016A1 (en) * | 2003-03-17 | 2006-06-15 | Wagner John R | Method of kernal-mode instruction interception and apparatus therefor |
US7900038B2 (en) * | 2003-04-29 | 2011-03-01 | Wells Fargo Bank, N.A. | Method and apparatus for a broker entity |
JP2007526539A (ja) | 2003-06-18 | 2007-09-13 | アンブリック, インコーポレイテッド | 集積回路開発システム |
US20070186076A1 (en) * | 2003-06-18 | 2007-08-09 | Jones Anthony M | Data pipeline transport system |
WO2005015389A1 (en) * | 2003-07-11 | 2005-02-17 | Computer Associates Think, Inc. | Adding user-defined objects to a modeling tool |
US20060195845A1 (en) * | 2005-02-28 | 2006-08-31 | Rhine Scott A | System and method for scheduling executables |
US8223935B2 (en) | 2005-04-30 | 2012-07-17 | Oracle International Corporation | Revenue management systems and methods |
AU2006263656A1 (en) | 2005-06-28 | 2007-01-04 | Oracle International Corporation | Revenue management system and method |
JP2009504030A (ja) | 2005-07-28 | 2009-01-29 | オラクル・インターナショナル・コーポレイション | 収益管理システムおよび方法 |
US20070094270A1 (en) * | 2005-10-21 | 2007-04-26 | Callminer, Inc. | Method and apparatus for the processing of heterogeneous units of work |
US8223777B2 (en) * | 2005-11-15 | 2012-07-17 | Oracle International Corporation | Gateway for achieving low latency and high availability in a real time event processing system |
US20070180275A1 (en) * | 2006-01-27 | 2007-08-02 | Brian Metzger | Transparent encryption using secure JDBC/ODBC wrappers |
US8286238B2 (en) * | 2006-09-29 | 2012-10-09 | Intel Corporation | Method and apparatus for run-time in-memory patching of code from a service processor |
US7983996B2 (en) * | 2007-03-01 | 2011-07-19 | The Boeing Company | Method and apparatus for human behavior modeling in adaptive training |
US8069127B2 (en) * | 2007-04-26 | 2011-11-29 | 21 Ct, Inc. | Method and system for solving an optimization problem with dynamic constraints |
US8386630B1 (en) | 2007-09-09 | 2013-02-26 | Arris Solutions, Inc. | Video-aware P2P streaming and download with support for real-time content alteration |
US8302154B2 (en) * | 2007-11-10 | 2012-10-30 | International Business Machines Corporation | Automatic and adjustable system and method for synchronizing security mechanisms in database drivers with database servers |
US8284944B2 (en) * | 2008-03-13 | 2012-10-09 | International Business Machines Corporation | Unified and persistent system and method for automatic configuration of encryption |
US8578393B1 (en) * | 2008-06-18 | 2013-11-05 | Alert Logic, Inc. | Log message collection employing on-demand loading of message translation libraries |
US8769048B2 (en) | 2008-06-18 | 2014-07-01 | Commvault Systems, Inc. | Data protection scheduling, such as providing a flexible backup window in a data protection system |
US9128883B2 (en) | 2008-06-19 | 2015-09-08 | Commvault Systems, Inc | Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail |
US8352954B2 (en) | 2008-06-19 | 2013-01-08 | Commvault Systems, Inc. | Data storage resource allocation by employing dynamic methods and blacklisting resource request pools |
US8725688B2 (en) | 2008-09-05 | 2014-05-13 | Commvault Systems, Inc. | Image level copy or restore, such as image level restore without knowledge of data object metadata |
US9235831B2 (en) | 2009-04-22 | 2016-01-12 | Gofigure Payments, Llc | Mobile payment systems and methods |
US8949597B1 (en) * | 2009-12-22 | 2015-02-03 | Sprint Communications Company L.P. | Managing certificates on a mobile device |
US9448850B2 (en) * | 2010-03-11 | 2016-09-20 | International Business Machines Corporation | Discovering a resource in a distributed computing system |
US9348661B2 (en) * | 2010-03-11 | 2016-05-24 | International Business Machines Corporation | Assigning a unique identifier to a communicator |
US20110225297A1 (en) | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue |
US8621446B2 (en) * | 2010-04-29 | 2013-12-31 | International Business Machines Corporation | Compiling software for a hierarchical distributed processing system |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US20120311016A1 (en) * | 2011-06-02 | 2012-12-06 | Recursion Software, Inc. | System and method for providing self-healing capabilites in a distributed knowlegde network/intelligent sensor network |
US8904557B2 (en) * | 2012-02-15 | 2014-12-02 | Sap Ag | Solution for continuous control and protection of enterprise data based on authorization projection |
US9003507B2 (en) * | 2012-03-23 | 2015-04-07 | Cloudpath Networks, Inc. | System and method for providing a certificate to a third party request |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US8880446B2 (en) | 2012-11-15 | 2014-11-04 | Purepredictive, Inc. | Predictive analytics factory |
US9633216B2 (en) | 2012-12-27 | 2017-04-25 | Commvault Systems, Inc. | Application of information management policies based on operation with a geographic entity |
US10423889B2 (en) | 2013-01-08 | 2019-09-24 | Purepredictive, Inc. | Native machine learning integration for a data management product |
US9459968B2 (en) | 2013-03-11 | 2016-10-04 | Commvault Systems, Inc. | Single index to query multiple backup formats |
US9218574B2 (en) | 2013-05-29 | 2015-12-22 | Purepredictive, Inc. | User interface for machine learning |
US9646262B2 (en) | 2013-06-17 | 2017-05-09 | Purepredictive, Inc. | Data intelligence using machine learning |
US9413891B2 (en) | 2014-01-08 | 2016-08-09 | Callminer, Inc. | Real-time conversational analytics facility |
US10169121B2 (en) | 2014-02-27 | 2019-01-01 | Commvault Systems, Inc. | Work flow management for an information management system |
US9648100B2 (en) | 2014-03-05 | 2017-05-09 | Commvault Systems, Inc. | Cross-system storage management for transferring data across autonomous information management systems |
US9740574B2 (en) | 2014-05-09 | 2017-08-22 | Commvault Systems, Inc. | Load balancing across multiple data paths |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US9852172B2 (en) * | 2014-09-17 | 2017-12-26 | Oracle International Corporation | Facilitating handling of crashes in concurrent execution environments of server systems while processing user queries for data retrieval |
CN105488366B (zh) | 2014-10-13 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 一种数据权限的控制方法和系统 |
US20160110266A1 (en) * | 2014-10-21 | 2016-04-21 | Commvault Systems, Inc. | Restoring backed up data across autonomous storage management systems |
US9444811B2 (en) | 2014-10-21 | 2016-09-13 | Commvault Systems, Inc. | Using an enhanced data agent to restore backed up data across autonomous storage management systems |
US10303558B2 (en) * | 2015-04-17 | 2019-05-28 | Microsoft Technology Licensing, Llc | Checkpointing higher order query operators |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10838821B2 (en) | 2017-02-08 | 2020-11-17 | Commvault Systems, Inc. | Migrating content and metadata from a backup system |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10891069B2 (en) | 2017-03-27 | 2021-01-12 | Commvault Systems, Inc. | Creating local copies of data stored in online data repositories |
US10776329B2 (en) | 2017-03-28 | 2020-09-15 | Commvault Systems, Inc. | Migration of a database management system to cloud storage |
US11074140B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Live browsing of granular mailbox data |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10795927B2 (en) | 2018-02-05 | 2020-10-06 | Commvault Systems, Inc. | On-demand metadata extraction of clinical image data |
US10761942B2 (en) | 2018-03-12 | 2020-09-01 | Commvault Systems, Inc. | Recovery point objective (RPO) driven backup scheduling in a data storage management system using an enhanced data agent |
US10789387B2 (en) | 2018-03-13 | 2020-09-29 | Commvault Systems, Inc. | Graphical representation of an information management system |
US10860443B2 (en) | 2018-12-10 | 2020-12-08 | Commvault Systems, Inc. | Evaluation and reporting of recovery readiness in a data storage management system |
US11308034B2 (en) | 2019-06-27 | 2022-04-19 | Commvault Systems, Inc. | Continuously run log backup with minimal configuration and resource usage from the source machine |
US11756290B2 (en) | 2020-06-10 | 2023-09-12 | Bank Of America Corporation | System for intelligent drift matching for unstructured data in a machine learning environment |
US11429601B2 (en) | 2020-11-10 | 2022-08-30 | Bank Of America Corporation | System for generating customized data input options using machine learning techniques |
US11966360B2 (en) | 2021-01-04 | 2024-04-23 | Bank Of America Corporation | System for optimized archival using data detection and classification model |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57201958A (en) * | 1981-06-05 | 1982-12-10 | Hitachi Ltd | Device and method for interpretation between natural languages |
US4604686A (en) * | 1984-01-27 | 1986-08-05 | Martin Marietta Corporation | Associative data access method (ADAM) and its means of implementation |
US4774655A (en) * | 1984-10-24 | 1988-09-27 | Telebase Systems, Inc. | System for retrieving information from a plurality of remote databases having at least two different languages |
US4839853A (en) * | 1988-09-15 | 1989-06-13 | Bell Communications Research, Inc. | Computer information retrieval using latent semantic structure |
US5197005A (en) * | 1989-05-01 | 1993-03-23 | Intelligent Business Systems | Database retrieval system having a natural language interface |
AU662805B2 (en) * | 1992-04-06 | 1995-09-14 | Addison M. Fischer | A method for processing information among computers which may exchange messages |
US5412717A (en) * | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
US5365587A (en) * | 1993-03-11 | 1994-11-15 | International Business Machines Corporation | Self modifying access code for altering capabilities |
US5596744A (en) * | 1993-05-20 | 1997-01-21 | Hughes Aircraft Company | Apparatus and method for providing users with transparent integrated access to heterogeneous database management systems |
US5603031A (en) * | 1993-07-08 | 1997-02-11 | General Magic, Inc. | System and method for distributed computation based upon the movement, execution, and interaction of processes in a network |
AU683038B2 (en) * | 1993-08-10 | 1997-10-30 | Addison M. Fischer | A method for operating computers and for processing information among computers |
US6381595B1 (en) * | 1994-09-29 | 2002-04-30 | International Business Machines Corporation | System and method for compensation of functional differences between heterogeneous database management systems |
-
1997
- 1997-08-27 US US08/919,081 patent/US6112304A/en not_active Expired - Fee Related
-
1998
- 1998-07-27 IL IL13444798A patent/IL134447A0/xx unknown
- 1998-07-27 EP EP98937207A patent/EP1040615A4/en not_active Withdrawn
- 1998-07-27 WO PCT/US1998/015633 patent/WO1999011018A1/en not_active Application Discontinuation
- 1998-07-27 CA CA002298582A patent/CA2298582C/en not_active Expired - Fee Related
- 1998-07-27 AU AU85974/98A patent/AU8597498A/en not_active Abandoned
- 1998-07-27 BR BR9812280-0A patent/BR9812280A/pt not_active IP Right Cessation
- 1998-07-27 JP JP2000508165A patent/JP2001514422A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004326719A (ja) * | 2003-04-24 | 2004-11-18 | Hachiro Taen | テナント検針に関するビジネスモデル。 |
JP2010501948A (ja) * | 2006-08-25 | 2010-01-21 | サーセン コーポレイション | 文書ベースシステムおよびその実現方法 |
Also Published As
Publication number | Publication date |
---|---|
US6112304A (en) | 2000-08-29 |
BR9812280A (pt) | 2000-07-18 |
EP1040615A4 (en) | 2004-09-29 |
AU8597498A (en) | 1999-03-16 |
CA2298582C (en) | 2003-11-11 |
IL134447A0 (en) | 2001-04-30 |
EP1040615A1 (en) | 2000-10-04 |
WO1999011018A1 (en) | 1999-03-04 |
CA2298582A1 (en) | 1999-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2298582C (en) | Distributed computing architecture | |
US11316727B2 (en) | Method and system for clustering event messages and manage event-message clusters | |
Banker et al. | MongoDB in action: covers MongoDB version 3.0 | |
Kleppmann | Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems | |
Pentreath | Machine learning with spark | |
Greenwald et al. | Oracle essentials: Oracle database 12c | |
US10713589B1 (en) | Consistent sort-based record-level shuffling of machine learning data | |
Tiwari | Professional nosql | |
Capriolo et al. | Programming hive | |
KR101114023B1 (ko) | 확장형 문서 검색을 위한 콘텐츠 전파 | |
US11232071B2 (en) | Regressable differential data structures | |
MXPA05005535A (es) | Anti-virus para un almacenamiento de articulo. | |
Cordova et al. | Accumulo: Application development, table design, and best practices | |
US20230401214A1 (en) | Graph database and methods with improved functionality | |
Challawala et al. | MySQL 8 for Big Data: Effective Data Processing with MySQL 8, Hadoop, NoSQL APIs, and Other Big Data Tools | |
Paro | ElasticSearch cookbook | |
Kumar et al. | Modern Big Data processing with Hadoop: Expert techniques for architecting end-to-end Big Data solutions to get valuable insights | |
US11745093B2 (en) | Developing implicit metadata for data stores | |
Yadav | Spark Cookbook | |
Zarei et al. | Past, present and future of Hadoop: A survey | |
Holzmann et al. | ABCDEF: The 6 key features behind scalable, multi-tenant web archive processing with ARCH: Archive, Big Data, Concurrent, Distributed, Efficient, Flexible | |
Abbasi | Learning apache spark 2 | |
White | Hadoop | |
Antony et al. | Professional Hadoop | |
Paro | Elasticsearch 8. x Cookbook: Over 180 recipes to perform fast, scalable, and reliable searches for your enterprise |