JP3927600B2 - 分散タスク実行のためのシステム - Google Patents

分散タスク実行のためのシステム Download PDF

Info

Publication number
JP3927600B2
JP3927600B2 JP53664796A JP53664796A JP3927600B2 JP 3927600 B2 JP3927600 B2 JP 3927600B2 JP 53664796 A JP53664796 A JP 53664796A JP 53664796 A JP53664796 A JP 53664796A JP 3927600 B2 JP3927600 B2 JP 3927600B2
Authority
JP
Japan
Prior art keywords
program
knowbot
network
movable
information
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.)
Expired - Lifetime
Application number
JP53664796A
Other languages
English (en)
Other versions
JPH11506233A (ja
Inventor
カーン,ロバート,イー.
セルフ,ヴィントン,ジー.
イーリー,デイヴィッド,ケー.
Original Assignee
コーポレーション フォー ナショナル リサーチ イニシアチブス
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コーポレーション フォー ナショナル リサーチ イニシアチブス filed Critical コーポレーション フォー ナショナル リサーチ イニシアチブス
Publication of JPH11506233A publication Critical patent/JPH11506233A/ja
Application granted granted Critical
Publication of JP3927600B2 publication Critical patent/JP3927600B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1485Tariff-related aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/141Indication of costs
    • H04L12/1414Indication of costs in real-time
    • H04L12/1417Advice of charge with threshold, e.g. user indicating maximum cost
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1432Metric aspects
    • H04L12/1439Metric aspects time-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1453Methods or systems for payment or settlement of the charges for data transmission involving significant interaction with the data transmission network
    • H04L12/1457Methods or systems for payment or settlement of the charges for data transmission involving significant interaction with the data transmission network using an account
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1453Methods or systems for payment or settlement of the charges for data transmission involving significant interaction with the data transmission network
    • H04L12/146Methods or systems for payment or settlement of the charges for data transmission involving significant interaction with the data transmission network using digital cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1485Tariff-related aspects
    • H04L12/1492Tariff-related aspects negotiation of tariff
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Description

本発明は、分散タスクの実行に関する。
用語の解説
利便のために、以下に、主たるテキストにて使用されるある用語の補足説明である簡単な用語の解説を記述する。
「ネットワーク」とは、コンピュータおよびこれらを相互接続する通信媒体の組である。
「パケット」とは、分散システム内でデータを伝達するための基本的な容器であり、これは、典型的には、発送にて用いられるアドレス情報を含んでいる。
「プロトコル」とは、ストラクチャ、フォーマット、処理および/または機能を定義した一般に合意されたルールの組であり、分散システムの要素が互いに通信するためにこれが守られなければならない。
「資源」とは、分散システム内のある位置でアクセス可能な情報或いはサービスである。
「ディジタルオブジェクト」とは、一般には、(事実上任意の種類の情報のディジタル表現を含む)ディジットのシーケンスを意味し、これには、その「ハンドル」と称される、関連する一意的な識別子が含まれる。
「収納庫(repository)」とは、ディジタルオブジェクトを記憶し、適応可能な期間および状況にしたがって、ネットワークを経てこれらをアクセス可能にする資源である。
「データベース」とは、質問(クエリー)を解析して回答を与えるように構成された情報の組織体である。ディジタルオブジェクト自体が、データベースまたはデータベースの要素を含み得る。
「権利保有者」とは、ディジタルオブジェクトの法的に行使可能な「権利」を有する人或いは存在をいう。
「分散システム」には、ノウボット(Knowbot)システム、並びに、磁気ディスク、光ディスクおよび紙の上でのデータのディジタル表現を含む他の大規模記憶媒体など、ノウボットシステムの外部にある構成部品が含まれる。
「ノウボットプログラム」とは、ある位置から他の位置に移動可能な、実行可能なコンピュータプログラムである。これには、タスクを実行するための一連のステップを定義する「インストラクションシーケンス」や他のデータが含まれる。
「クーリエ」は、分散システムを介して移動に従事するノウボットプログラムの事例を参照する場合に用いられる。
「ノウボットシステム」とは、コンピュータ間でノウボットプログラムを移動し、当該プログラムを実行し、必要に応じて、宛先のコンピュータ或いはネットワークにその結果を移動し、または、そこに記憶するシステム(プログラムを含む)をいう。
「ノウボットサービスステーション」とは、ネットワーク上の位置で作動し、かつ、ノウボットプログラムを生成し、記憶し、実行し、削除するなどの行為が可能なソフトウェアおよび/またはハードウェアをいう。
「ノウボットサービス環境」とは、ノウボットプログラムを取り扱うための媒体をいい、これは、ノウボットサービスステーションの集合物から構成される。ノウボットシステムは、サービス環境を提供する。
「ノウボットフレームワーク」とは、タスク実行のためのカレンシー(currency)(ノウボットプログラム)およびプログラムを取り扱うための媒体(ノウボットサービス環境)を定義する概念的なモデルをいう。
「通知機関」とは、ノウボットプログラムにより実行される処理に関する情報を記憶するノウボットサービス環境の一部をいう。
「将来のノウボットプログラム」とは、ノウボットサービス環境の外部の源(source)から、ノウボットサービスステーションにより受け入れられたノウボットプログラムをいう。
イントロダクション
最も基本的な意味において、本発明自体は、コンピュータ間でノウボットプログラムを作成し、記憶し、移動し、当該プログラムを実行し、必要に応じて、宛先のコンピュータにその結果を移動し、または、そこに記憶するシステム(これをノウボット(登録商標)システムと称する。)に関する。コンピュータのほとんどまたは全てが「オンライン」であり、一般的なコンピュータネットワーク環境の一部をなし得るが、そのコンセプトは、磁気ディスク、光ディスクおよび紙の上でのデータのディジタル表現(バーコードなど)を含む他の大規模記憶媒体など他の媒体を介したプログラムのオフラインの移動にも適用される。さらに、このシステム内のコンピュータは、全てのときに、存在するネットワークに接続されている必要はなく、この接続性は、ときおり、行ったり来たりするものである。「システム」というラベルは、全般的には、これらプログラムが生成され且つ管理され、これらが相互作用し、これらが記憶された情報と相互作用し、並びに、これらがシステムの一部をなすプログラムおよびコンピュータの定義の範囲外に存在すると考えられる人々やプログラムを含む、外部のシステムと相互作用するようなシステマチックな規則性を暗示している。
説明のために、システムの一部或いは全てを引用するために、「ノウボット(登録商標)システム」という用語を用いる(ノウボット(登録商標)は、ナショナルリサーチインセンティブ社の登録商標である)。このノウボット(登録商標)システムは、システムの部分をなすコンビュータを当該システムの外部にあるコンピュータから識別することを可能にし、かつ、システムにより定義された手法によってのみ相互作用する、良く定義された境界を有する。ノウボットシステムの内部に存在するもの、および、その外部に存在するものの双方を、分散システムと称することができる。システムの内部にあると考えられる部分は、所定の手法のみによって、他の部分と相互作用する。適当な行為を定義する規則は、実際には、どのように構成部分が生成され、かつ、これが、システムの適切に機能する構成部分であると常に考えられるかを決定する仕様である。
ノウボット(登録商標)システムは、主として、ソフトウェアシステムであり、その構成部分は、所定の手法にて作動するプログラムである。ソフトウェアは、コンピュータベースの(ハードウェア)環境にて作動し、時折、ハードウェアの資源を生成し、割当て、管理する基本プログラムであるオペレーティングシステムと関連して作動する。ノウボット(登録商標)システムの基本設計の基礎には、以下の仮定が存在する。すなわち、システムが稼動しているコンピュータは、オペレーティングシステムの「頂点にて」作動するノウボット(登録商標)システムにより必要とされる機能を提供するオペレーティングシステムを有している。任意のオペレーティングシステムがデータ通信(ネットワーク)環境を基礎とするコンピュータの組み込みをサポートし、かつ、オペレーティングシステムの全体の制御の下で、「時分割」で複数のプログラムが同時に作動することができる場合には、当該オペレーティングシステムは適切なものとなる。さらに、コンピュータ間で移動可能な(ノウボットプログラムと称される)プログラムは、十分な情報を収容し、これにより、所望のように実行を開始し或いは再開できなければならず、かつ、コンピュータが、インタープリタ、スケジューラ、記憶などの必要なサポート環境を提供しなければならない。ノウボット(登録商標)システムは、広汎なハードウェアおよびオペレーティングシステムの頂上に提供され得る。
また、ノウボット(登録商標)システムの一部をなすコンピュータが少なくとも間欠的に、共通の通信ネットワークに接続され、ノウボット(登録商標)システムの行為の規則にしたがって、時折、情報が一方のコンピュータから他のコンピュータに通過すると考える。
ノウボット(登録商標)システムは、種々で別個のシステムや資源、および、これらの間の相互接続システムとしてのサービスを、共通するオペレーティング環境にリンクする。ある一つのシステムおよびその資源に関する情報は、中間メカニズムを介して他のシステム、ノウボット(登録商標)システムに通信される。ノウボット(登録商標)システム自体により、関連するシステムおよび資源から識別されて、タスクを実行することができる。また、ノウボット(登録商標)システムは、これら関連するシステムおよび資源が与えられたタスクを実行することを容易にする。
以下に、我々は、ソフトウェア、ハードウェアおよび通信設備の集合体が、一緒になったときに、どのように組織されて、ノウボットとして機能されるかを記載した概念を説明する。実際に、これら概念の全ては、一連の所定の規則にしたがってふるまうソフトウェア加工品(artifact)に基づいている。これら加工品には、「ランニングプログラム」や、後のアクセスのための「収納庫」とは別に記憶された「ディジタルオブジェクト」が含まれる。本発明の概念は、全般的には、任意のあるハードウェア、通信ネットワーク或はオペレーティングシステムの仕様というよりも、むしろ、ソフトウェア加工物の定義および行為に基礎を置いている。しかしながら、所望であれば、所定の場合に、超LSIの技術が許すのであれば、ソフトウェアの一部或いは全部を、集積回路(たとえば半導体チップ)のシステムに置き換えても良い。
ノウボット(登録商標)プログラムは、与えられたマシンにて実行する基本的なソフトウェア要素である。ノウボット(登録商標)プログラムのある事例は、クーリエであり、あるコンピュータから他のコンピュータに移動するのにしたがって、或いは、外部世界と相互作用するときに、ノウボット(登録商標)プログラムによってその形態をなす。ノウボット(登録商標)プログラムは、種々の手法にて明確にされ得るキャリー情報(データ)を含むことができる。ノウボットプログラムの到着および出発を処理するため、ノウボット(登録商標)プログラムと他のノウボット(登録商標)プログラムとの間の情報交換のため、並びに、ノウボット(登録商標)プログラムを、「収納庫」と称される情報アクセスサブシステムを含むノウボット(登録商標)システムの他の部分と相互作用させ、かつ、人々や、可視的、可聴的または他の明白な表現によるものを含む外部のサブシステムと相互作用させるために、ノウボット(登録商標)システムにおいては準備がなされる。
ノウボット(登録商標)プログラムの重要な特徴は、権利所有者のためにデータを保護し、記述された用語や状況にしたがってその適用を制御し、かつ、データを解釈して、これを可視的、可聴的または他の手法で明白にし、かつ、人間の相互作用が、表現の選択に影響を与えられるようにすることにある。
ノウボット(登録商標)システムはソフトウェアベースのオープンアーキテクチャの相互接続構造を有しているため、他の高度に成功したインターネットとして知られているソフトウェアベースのオープンアーキテクチャの相互接続システムを論じるのに有用である。インターネットは、急速に発展した、数百万のコンピュータおよび数万のネットワークをともにリンクさせる「ネットワークの中のネットワーク」である。インターネットは、「パケット切換」環境によりコンピュータを互いにリンクするための最小限の一連の要求を介して、かつ、どのように、いつおよび何の形態の情報がインターネットの一部をなすコンピュータ間に交換されるかを統治するあるフォーマットおよび手続上の取極(プロトコル)に従うことにより実現される。
第1図に示すように、インターネット10は、基本的には世界中の任意の場所に位置するコンピュータユーザのための通信フレームワーク12を提供する。任意のコンピュータ14aは、共通に理解されるパケットプロトコル16および共通に受け入れられるアドレススキーム18にしたがうことにより、任意の他のユーザ14bにディジタル情報を送信する。パケットプロトコルは、受容体のアドレスを含むディジタル情報を伝達する構造およびパケットの取り扱いのための最小限の規則の組を設定する。アドレススキームは、二重アドレスの防止を含むアドレス割当てのための最小限の規則を設定する。パケットプロトコルおよびアドレススキームにしたがうコンピュータは、パケットがその宛先に到着し、かつ、受容体が伝達されたディジタル情報をアクセス可能である点で、比較的確実である。その一方、インターネットフレームワークは、本質的には、パケットをフォーマットし、送信し、受信し、解体し、或いは組み立てる物理的なハードウェア/ソフトウェアネットワーク部品20の定義を意図しておらず、その代わりに、ユーザ、ユーザのグループおよび販売者にこれら事項を委ねている。これにより、実行スキームおよび実行結果のためのオープンな分散マーケットが実現された。
パケットプロトコルのハードウェア/ソフトウェアの要求が最小限であり、かつ、これらの中で本質的には任意のディジタル情報が伝達されるため、経済的価値の交換のためにペーパーチェックが法的提供を与えるように、分散ネットワークを横断するディジタル情報の交換のためのカレンシー(currency)22を提供している。インターネットフレームワークの曖昧なアドレススキームおよび他の態様は、連邦予約手形交換所(Federal Reserve clearinghouse)の曖昧なトランジットコードが手形交換のための一般的な媒体を提供するように、一般的媒体24を提供する。しかしながら、(用紙のサイズや他の手形のプロトコルによる要求が満たされていれば)手形交換所がどのような手形が振り出され、配達され、受理され或いは使用されるかについて何ら制限を課していないのと同様に、インターネットフレームワークは、ユーザが生成し、送信し、受理し、および、使用するパケットにおける物理的なありさまに何ら制限を課していない。
(第1図の幾分脈絡を欠いた表示12、20により示唆された)物理的な手段からの広汎に分散されたネットワーク(すなわちフレームワーク)上のディジタル情報の交換のための媒体およびカレンシーを切断する考えは強力なものであり、かつ、インターネットの大いなる成功に向けられたものであった。これは、個人、非営利団体および営利団体が、手段の中央制御を要求されることなく、インターネットに関係し、インターネットにより利益を得ることができるからである。同時に、インターネットの共同社会は、共通に受け入れられるインターネットフレームワークにて具現化される原理を促進しかつこれを改善するために、絶え間なく努力している。これは、概念があらゆる源から作られ、これがテストされ、広汎な有用性が見出された場合には、この概念が最終的に受け入れられるフレームワークの一部となるような中央集権化を避けるようなプロセスを経て実現される。この概念において、提案された原理がフレームワークになり、かつ、広く適用されるか否かは、主としてこれらの品質による。
インターネットフレームワーク、および、これが実行される物理的なネットワークの他の強力な特徴は、他の通信フレームワークおよび他の物理的ネットワークと容易に共存できる能力にある。インターネットは、現在のところ、多くの異なるタイプのネットワークおよび通信媒体を受け入れる。原理的には、ほとんど全てのネットワークおよび通信媒体が、インターネットの一部をなし得る。
最後に、インターネットフレームワークは、高度に拡大可能であり、世界規模でユーザ数の拡張を比較的容易になすことができる。
詳細な説明
第2図に示すように、本発明は新規でより強力なフレームワーク(ノウボットフレームワーク28と称する)が、(インターネットフレームワークの場合のように)単にディジタル情報を通信するためではなく、分散システム32にて利用可能な資源(たとえば、インターネット或いは他のネットワーク)を利用して、ネットワーク関係者30a、30bのために実行されるタスクを有している。「ネットワーク関係者」という語句中に、我々は、実行すべきタスクを要求し得る全ての存在を含んでいる。これには、コンピュータおよびネットワーク中の他のハードウェアやソフトウェアをはじめ、スタンドアローンのパーソナルコンピュータおよび組織から独立したものが含まれる。「タスク」に関して、我々は、ネットワーク上の資源により実行され得る全てのものを意図している。タスクは、広範囲な複雑さを有することができ、典型的には、これらは、単に、ディジタル情報を含む単純なインターネットパケットの配達によりなされる種類のディジタル情報の通信以上のものを含む。特に、タスクは、しばしば、実行すべきタスクを要求した存在の位置から離れた位置にてなされる処理ステップを含む。「資源」に関して、我々は、タスクの実行のために寄与可能な、ネットワーク上の全ての有用なものを意図している。これは、コンピュータソフトウェア、記憶されたディジタルオブジェクトおよび広汎なサービスを含むことができる。
ノウボットフレームワークは、いかなる任意の複雑さが実行されるタスクを有する「カレンシー」と、タスクの実行の一部をなすカレンシーを取り扱うための「媒体」との双方を定義する。このカレンシーはノウボットプログラムと称される。ノウボットプログラムは、関係者のために実行すべきタスクを実行するのに役立つネットワーク関係者の移動可能な使節(emissary)である。このタスクは、ユーザのシステムにおいて局地的に実行され、或いは、局地的および/または遠隔的に他の位置にて、他のシステムおよび資源との相互作用を含むことができる。ノウボットプログラムを取り扱うための媒体は、分散ノウボットサービス環境或いは単にノウボットサービス環境と称される。ノウボットサービス環境は、ネットワークのある場所にて稼動する、潜在的には無限の数の種々のいわゆるノウボットサービスステーション(ソフトウェアおよび/またはハードウェア)として分散される。ステーションは、ノウボットプログラムを生成し、記憶し、実行しかつ削除することができ、他の場合には、ノウボットプログラム自体により、または、行為をなすことを認証され或いは行為を認められたユーザにより決定されたように、ノウボットプログラム上の許可された行為をなすことができる。ノウボットフレームワークは、ノウボットプログラムの構造のための最小限の規則38の組(たとえば、プログラムが実行すべきタスクに関するある情報を含んでいなければならないこと)と、ノウボットサービス環境にて実行される機能のための最小限の規則40の組(たとえば、ノウボットプログラムを生成し、送信し、受信し、モニターしかつ削除可能な典型的なノウボットサービスステーション)とを定義する。
我々は、以下に、ノウボットプログラムおよびそのサービス環境に対して、いくつかの付加的な特定の原理を述べるが、全般的には、ノウボットフレームワークの強化は、インターネットフレームワークの場合と同様になされ、これは、ハードウェアおよびソフトウェアの手段に関する自由市場の力や、フレームワーク原理に関する、ノウボットユーザの共同社会内でのオープンスタンダードの発展プロセスによる。インターネットフレームワークのように、ノウボットフレームワークは、ネットワーク中でタスクを実行するための他の手法と自由に共存でき、かつ、容易に拡大可能であることが意図される。
一般に、ある態様において、本発明は、通信リンクにより相互接続された多数のコンピュータのネットワーク上で実行すべきタスクを可能とすることを特徴とする。また、これらコンピュータの一部或いは全部を、ネットワークの内部におくことができる。あるサービスステーションから他のサービスステーションに送信され、或いは、その環境から(いちおう)輸出されるノウボットプログラムを参照するときに、我々は、クーリエという用語を用いる。各コンピュータにおいて、ノウボットプログラムは、通信リンク上で受信されかつ送信され、また、記憶されかつ生成され得る。また、ノウボットプログラムに関連するタスクの実行が進められ得る。各ノウボットプログラムは、全体において一意的な識別子と、(適用可能なときに)ネットワークを介した経路を定義するナビゲーション情報と、実行すべきタスクに関する情報を含む。互いにクローンであるノウボットプログラムは、同一の基本識別子を使用し、これらには、互いに識別するためのバージョンナンバまたは他の区切り文字(delimiter)が設けられる。
一般に、他の態様において、本発明は、通信リンクにより相互接続された多数のコンピュータのネットワーク上にあるコンピュータが、上に述べたステップにより、分散ノウボットサービス環境に関与できるようにすることを特徴とする。
本発明の手段は、1以上の以下の構成を備えることができる。
コンピュータの関係者(たとえば、人、プロセスまたはコンピュータ上で作動しているノウボットプログラム)は、実行すべきタスクを定義することができる。定義されたタスクに関連する情報は、ノウボットプログラムの一つに組み込まれる。ノウボットプログラムに収容されたタスク情報は解釈され得る。タスクの実行を進めるステップは以下のステップを含む。すなわち、付加的なノウボットプログラムを生成し、他のノウボットプログラムと相互作用し、ディジタルオブジェクトの収納庫に相互作用し、情報のデータベースに問い合わせ、プロトコルを変形し、当該タスクに関連するサービスを提供する他の位置を特定するディレクトリサービスを提供し、セキュリティを決定し、「新しいこと(what's new)」のサービスを提供し、新たに利用可能な情報を特定し、情報を抽出する「切り抜き(clipping)」サービスを提供し、ノウボットプログラムのバージョンを管理するためのバージョン制御サービスを提供し、実行が他の位置で生じたことを必然的にユーザに知らせることなく、他の位置でのタスクの実行を得ることによりユーザの行動に応答し、ノウボットプログラムの構成を決定するための方法(たとえば、ディジタルオブジェクトがノウボットプログラム内に収容され、要素をアクセスするかどうかを決定すること)を提供し、存在する仕事から派生する仕事を生成し、他のノウボットプログラム、ディジタルオブジェクト或いは他のデータを収容するノウボットプログラムを生成し、かつ、ソースノウボットプログラムからのメッセージを、異なる場所のターゲットノウボットプログラムに通す。
実行すべきタスクに関する情報は、解釈可能或いは実行可能なインストラクションを含んでも良い。ノウボットプログラムは、ディジタルオブジェクト或いはノウボットプログラムの形態のデータを含んでも良い(ノウボットプログラム自体がディジタルオブジェクトになり得る)。ディジタルオブジェクトは、プロトコル変換情報を含み得る。
一般に、他の態様において、本発明は、局地クエリーがクエリープロトコルに応じ、かつ、遠隔データベースがデータベースプロトコルにしたがったクエリーに応答するような、遠隔データベース(或いは遠隔の知識ベースのシステム)の局地クエリーをネットワークの通信チャンネルを介して実行することを特徴とする。ノウボットプログラムは、局地クエリーに基づき、かつ、ノウボットプログラムのプロトコルに応じて、局地的に生成される。ノウボットプログラムは、ネットワークの通信チャンネルを介して、遠隔データベースに送られる。遠隔データベースにおいては、データベースプロトコルにしたがってデータベースに質問することにより、ノウボットプログラムが役立てられる。クエリーの結果は、ノウボットプログラムプロトコルにしたがったリターンノウボットプログラム中で、遠隔データベースから戻される。
本発明の手段は、1以上の、以下に述べる特徴を備えることができる。リターンノウボットプログラムが局地的に受け入れられ、かつ、結果が、リターンノウボットプログラム中に収容された結果にしたがってユーザに与えられ得る。付加的なノウボットプログラムが生成されても良い。これは、局地クエリーに基づき、かつ、ノウボットプログラムプロトコルにしたがっている。付加的なノウボットプログラムの各々は、与えられたデータベース或いは収納庫上で並列的に働くことができ、或いは、他のデータベースに送られ得る。他のデータベースの各々にて、他のデータベースに質問することにより、対応するノウボットプログラムが役立てられる。他のデータベースの各々からのクエリーの結果は、ノウボットプログラムプロトコルにしたがったリターンノウボットプログラム中で戻される。リターンノウボットプログラム中に収容された結果は、局地的に処理され、矛盾のない表示がユーザに提供される。ユーザへの矛盾のない表示は、付加的なリターンノウボットプログラムが受理されるのにしたがって更新され得る。処理には、冗長情報の除去が含まれても良い。リターンノウボットプログラムは、オリジナルのノウボットプログラムの修正バージョンであっても良い。付加的なノウボットプログラムは、局地的に生成され、かつ、ネットワークの通信チャンネルを介して送信されても良い。ノウボットプログラムは、局地的に受理されるのと同様に生成され得る。
クエリープロトコルは、他のプログラムから得られ或いはユーザにより完成された、表示可能或いはマシンにより解釈可能な形態を有し得る。ノウボットプログラムプロトコルは、クエリープロトコルやデータベースプロトコルと異なっていても良い。ノウボットプログラムプロトコルは、実行可能なプログラム言語の同一性およびシンタックスを含んでいても良い。ノウボットプログラムは、実行可能なプログラム言語のエントリー(entry)およびナビゲーションのエントリーを含んでいても良い。ノウボットプログラムは、ネットワークを操縦することにより、遠隔データベースの場所に到達することができ、かつ、メッセージのナビゲーションの部分は操縦に関する情報を含み得る。遠隔データベースの場所は、機械により解釈可能な、および/または、自然言語(たとえば、英語)の形態のクエリーの実行状態を示すステータスノウボットプログラムを送信しても良い。遠隔データベースでは、ノウボットプログラムが、データベースに質問している期間中記憶されても良く、かつ、データベースに質問することおよびその結果を戻すことは、ノウボットプログラム内に収容された制御情報により制御されても良い。ノウボットサービスステーションは、ノウボットプログラムを生成し、送信し、受信しかつ削除するために用いることができる。遠隔データベースの場所では、ノウボットサービスステーションを、ノウボットプログラムを生成し、送信し、受信しかつ削除するために用いることができる。ノウボットプログラムが送信される遠隔データベースは、局地クエリーにより、局地的かつ自動的に決定される。ノウボットプログラムの送信は、ノウボットプログラムを、電子メールプロトコルまたはファイル転送プロトコル、或いは、ネットワーク上の他の通信方法に順応させることを含む。ノウボットプログラムプロトコルは、変換情報を含んでも良い。
ノウボットプログラムは、認証情報、スケジューリング情報、および、期間や状況の情報を含んでも良い。
本発明の他の効果や特徴は、以下の説明および請求の範囲から明らかになるであろう。
【図面の簡単な説明】
第1図は、インターネットフレームワークのブロックダイヤグラムである。
第2図は、ノウボットフレームワークのブロックダイヤグラムである。
第3図は、ノウボットサービス環境のブロックダイヤグラムである。
第4図Aおよび第4図Bは、ノウボットサービスステーションのブロックダイヤグラムである。
第5図は、トランザクションマネージャのブロックダイヤグラムである。
第6図は、ゲートウェイのブロックダイヤグラムである。
第7図は、ノウボットプログラムの内容のダイヤグラムである。
第8図および第9図は、シリアルサーチおよびパラレルサーチの手法のブロックダイヤグラムである。
第10図は、ノウボットプログラムのダイヤグラムである。
第11図は、ノウボットサービス環境のブロックダイヤグラムである。
第3図は、基本的には無限の数のノウボットプログラム54a、54b、…を取り扱う広汎な種々の機能52a、52b、…を提供し、かつ、各々が分散ネットワークのある場所にて作動するハードウェアおよびソフトウェアの形態をなす種々のノウボットサービスステーション56a、56b、…を提供するノウボットサービス環境50を示している。ノウボットサービスステーションの例は、個々のユーザのパーソナルコンピュータ(PC)やラップトップ(サービスステーション56a)、ディジタルオブジェクトの供給者である関係者の収納庫やデータベースサーバ(サービスステーション56a)、スマートカードや他のパーソナルディジタル機器や加工品、或いは、電話会社の中央局のスイッチ(サービスステーション56b)にて作動するソフトウェアを含んでいる。
第11図に示すように、ノウボットサービス環境により提供すべき最も基本的な機能には、情報がどのように収集され、組織化され、エンドユーザ関係者に提示されるか、および、実行すべきタスクの要求がそのようにエンドユーザ関係者172から引き出されるのかを含む、集合および提示サービス170と、クエリーがどのように収納庫関係者176や他の資源に提示されるか、および、結果が提示のためにこれら資源に統合されるかを含む、検索および統合サービス174と、ノウボットプログラムやノウボットサービスステーションおよびそのパフォーマンスの真正さを証明し、かつ、ディジタルオブジェクトの権利を、記述された期間および状況にしたがって、これらプログラムおよびサービスステーションにより効果的に保護する保証/保護サービス178とが含まれる。これらサービスにつき、より以下により詳細に説明する。
ノウボットサービスステーション
ノウボットサービスステーションは、特別なシステムステータスの非常な柔軟さを備えた選択されたユーザがサービスステーションを管理し、そのパフォーマンスを更新することを認めるが、このノウボットステーションは、オペレーションシステムに類似し、ただし、関係者が随意にプログラムやファイルを作成し、随意にプログラムを作動させることは認めていない。一般に、サービスステーションは、関係者の仕様および/またはそれ自体の内部要求に応答して、ノウボットプログラムを作成する。将来のノウボットプログラムは、サービスステーションではないユーザのPCなどの外部源から到達することができ、かつ、ノウボット環境での使用のために認証され得る。また、将来のノウボットプログラムは、CD−ROMなどの外部媒体上に到達するようにしてもよい。また、サービスステーションは、他のサービスステーションから受理したノウボットプログラムを処理し、かつ、それ自体の環境にて、ノウボットプログラムを記憶し、管理する。
第4図に示すように、各サービスステーションにて実行される機能は、4つの主たるカテゴリーの範疇にある。すなわち、i.ノウボットプログラムを生成し、送信し、受信し、認証し、実行し、記憶し、モニターし、かつ、削除することを含むノウボットプログラムの基本管理60、ii.実行すべきタスクを定義する場合に関係者を補助し、実行したタスクの結果を、有用な形態でかつ有用なときに提供する、関係者63との相互作用62、iii.資源により理解されるフォーマットおよび時間で情報或いは行為のための要求を伝達すること、および、行為の情報や結果を処理することを含む、実行されるタスクを得るときに資源65として働く関係者との相互作用64、並びに、iv.他のサービスステーション66と相互作用することや、適切かつ許されるときに、外部のおそらく信用できない行為の組を限定できるようにするためにノウボットフレームワークの一部ではないハードウェアやソフトウェアと相互作用することである。
ノウボットプログラム54eないし54pは、種々のメカニズム、たとえば、インターネットパケットにて輸送されることにより、ノウボットサービスステーションから、ノウボットサービス環境のノウボットサービスステーションまで通過することができる。また、ノウボットプログラム54qないし54tは、ある期間与えられたノウボットサービスステーションにとどまることができ、その意味でホストのノウボットサービスステーションは、ノウボットプログラムのための宿泊所および/または処理プラントとして考えられ得る。
第4図Bを参照すると、一般的なノウボットサービスステーションの全般的構造には、ノウボットプログラムのための保管庫60と、(限定されるものではないが)PERL或いはPYTHONなどの言語にて書かれたノウボットプログラムを解釈するためのノウボットプログラムインタープリタ62とが含まれる。コアノウボットオペレーティングシステム68は、(以下に説明する)基本的なキー機能、および、ノウボットオペレーテイングシステムアプリケーションプログラムインタフェース(API)64を提供する。このAPIは、所定のインタフェースを提供し、これにより、アプリケーションプログラムが、オペレーティングシステムと相互作用するために容易に書かれることが可能となる。ノウボットオペレーティングシステム拡張API66は、拡張部(extension)70にインタフェースを提供する。これら拡張部は、殆ど無限の種々の、たとえば自然言語処理などオペレーションシステムの基本機能を補足するサービスや機能を含み得る。
単純なノウボットサービスステーションは、基本機能の小さな組を実行できることのみが必要とされ、かつ、これらステーションは、ソフトウェアプログラムやVLSIチップの形態にて、簡単にかつ容易に実現され得る。他のより複雑なノウボットサービスステーションは、ネットワーク中のこれらの位置に適しており、かつ、これらが相互作用を期待される範囲に適するように種々の特殊な機能を有している。
最小限の基本的な機能性を備えた単純なノウボットサービスステーションにつき再度論ずる。第5図に示すように、ノウボットサービスステーションの中核は、ある種の交通警官およびステータスハンドラとして作動し、サービスステーション中の行為を監督するトランザクションマネージャ70である。このトランザクションマネージャは、ノウボットプログラムがサービスステーションに到着した場合に、ノウボットプログラム受信機72と相互作用し、かつ、出て行くノウボットプログラムが出発する場合に、ノウボットプログラム送信機74と相互作用する。入力スケジューラ76は、ノウボットプログラムの到着の軌跡を保持し、適切なときにサービスステーションにて取り扱われるためにスケジューリングされることを確実にする。出力スケジューラ78は、同様に、サービスステーションから送信すべきノウボットプログラムの軌跡を保持し、これらが順調に送信されることを確実にする。
他の源から到着したノウボットプログラムは、受信機に直接進む。受信機はアクセス制御を提供し、到着したノウボットプログラムが適切にサービスステーションに入っていくかを評価する。そうであれば、受信機はプログラムを記憶部82に記憶する。そうでない場合には、受信機は当該プログラムを処分し、或いは、関連する正しい作動をなす。局地的に生成された、たとえば、サービスステーションと同じ位置のシステム源からのノウボットプログラムは、トランスレータまたは特定部(スペシファイア:specifier)により生成され、さらに整理されるためにトランザクションマネージャに通される。トランザクションマネージャは、引き続いてなされる処理或いは送信のため、局地的に生成されたプログラムを記憶部に配置することもでき、或いは、即座に送るために送信機に直接手渡すこともできる。
入力スケジューラおよび出力スケジューラは、ノウボットプログラムが記憶部に入るときの各々に関してなすべき作動を決定する。作動には、即座にまたはある時間の後に、或いは、周期的に、さらには、他のイベントが生じた後のいずれかにプログラムにより呼び出されるステップを実行することが含まれる。このような処理を実行する時がくると、入力スケジューラは、トランザクションマネージャに通知する。プログラムを送信する時がくると、出力スケジューラは送信機に通知する。
トランザクションマネージャは、サーバステーション中の全てのトランザクションを管理し、ステータスを周期的にチェックする。トランザクションマネージャは、進行中のトランザクションの軌跡を保持し、他のサービスステーションに、ステータスおよびエラー状況を通知する。(通知を提供する一つの方法は、新たなノウボットプログラムを他のサービスステーションに送信することによる。)トランザクションマネージャは、インタープリタ84の助けを求め、ノウボットプログラムを実行する。これは、受理されたノウボットプログラムが、局地的ユーザや局地的な収納庫或いは他の場所に向けられることが意図されるか否かを決定するときに生じる場合がある。インタープリタは、プログラムを「解釈し」(たとえば、ノウボットプログラムを稼動して)、どのような作動をなすべきかを判断する。局地的ユーザに向けることを意図する場合には、解釈の結果はスペシファイアに通されて、次いで、ユーザとの通信がなされる。たとえば、スペシファイアは、どのような画像がスクリーン上に現れるか、或いは、与えられたタイプの多数の行為がユーザのためにどのようになされるかなど、提示事項を取り扱うことができる。この情報は、ノウボットプログラムから取り出され得る。
局地的な収納庫86に向けることが意図される場合(たとえば、プログラムにより表わされるタスクが収納庫内のある情報をアクセスするものである場合)には、解釈されたノウボットプログラムは、どの収納庫をアクセスするかを決定するとともに、その実行法(たとえば、シリアルかパラレルか、粗さ(granularity)のレベル、および、どのように情報を命令し且つ組み合わせるか)を計画する。次いで、ノウボットプログラムは、当該プログラムに沿って、解釈の結果を、1以上のトランスレータに通し、トランスレータが収納庫と通信する。トランスレータは、プログラムにより表わされる要求を、局地的な収納庫の言語に変換する。局地的な収納庫は、直接要求を実行できるようにしても良い。他の場所に向けることが適切である場合には、トランザクションマネージャは、解釈の結果を、ネットワークを経て所望の場所に急送するために送信機に通す。所望の場所は、インターネットの場合には他のサービスステーションであろうが、収納庫、ゲートウェイ、或いは、ノウボットサービス環境の外部にある資源であっても良い。
収納庫の検索結果は、トランスレータを介して戻される。トランスレータは、これをフォーマットして記憶部82に記憶し、かつ、トランザクションマネージャに通知する。トランザクションマネージャは、次いで、トランザクションの終了を記録し、出力スケジューラに進める。
出力スケジューラは、種々の返還の方針を提供する。通常は、結果はプログラムの形態で戻され、その場合に、送信機は、出力スケジューラにより指示されたときに、指示されたようにプログラムを送信する。さらに、結果は、他の媒体(たとえば、E−メイルやファイル転送)にて通信され、或いは、配達に適した「マークアップ(markup)言語」に利用できるようにされる。このマークアップ言語は、その構造を通知する情報からなる自己記述の形態をなし、このため、他の解釈が下流側にて可能である。結果はユーザに戻され、或いは、記憶または処理のための指定された中間の位置に戻される。
第6図に示すより複雑なシステムは、種々のユーザがアクセス可能なサービスを提供するために、収納庫92a、92b、…に記憶されたディジタル情報の大規模なプロバイダにより使用可能である。ユーザは収納庫に含めるために材料を提供することを希望でき、或いは、収納庫に保持された情報(ディジタルオブジェクト、以下参照)にアクセスすることを希望できる。サービスプロバイダは、ゲートウェイを保持する。このゲートウェイは、多数のサーバ94a、94b、…を有し、その中の少なくともいくつかは、収納庫およびゲートウェイの管理に関する他のソフトウェアとともに、ノウボットサービスステーション96a、96b、…を有している。各サーバは、1以上のローカルエリアネットワーク(LAN)と接続され、また、収納庫および一組のルータ99a、99b、…に役立つ。各ルータは、たとえば、ダイヤルアップ、ワイヤレス、X.25リンク或いはインターネットネットへの接続などを含む通信リンクを接続されている。
収納庫へのクエリーの作成を希望するユーザは、ノウボットプログラムを組み立て、これが、まず、適切なアドレスサーバ102に問い合わせて、収納庫のIPアドレスを決定し、クエリーに対して回答し、ルータ99bに進む。ルータ99bは、プログラムを、サーバの所定の一つに送信し、そこで、ノウボットサービスステーションは、所定の収納庫と相互作用して、クエリーを完了する。また、結果は、ノウボットプログラムによりパッケージにされ、インターネットを介して戻される。
第6図のノウボットサービスステーションは、検索の要求や他の作動を同調させるために互いに相互作用する。
ノウボットプログラムの論理構造および作動
ノウボットプログラムの論理構造が、ネットワークを介したプログラムを助けてガイドするため、および、その作動のための命令を提供するために情報のフィールドの形態にて第7図に示されている。フィールドの正確な順序は重要ではなく、フィールドは、ノウボットがノウボットサービス環境を介して移動するのにしたがって、サービスステーションにより追加され或いは変更され得る。保管庫においては、種々の実行手段があり得るし、また、多くのフィールドは不必要であり省略することもあり得る。
第1のフィールドは、ノウボットサービス環境にて現在のところ存在する他のノウボットプログラムからこのノウボットプログラムを識別する、全体において一意的な識別子110である。これは、長期間にわたりノウボットプログラムを識別するのにも有用であってもよい。識別子の一部は、ノウボットプログラムを作成したノウボットサービスステーションの識別から派生している。識別子は、保管庫からノウボットプログラムを検索するために用いることができ、或いは、ノウボットプログラムを参照するために用いることもできる。一意的な識別子がセマンティック(semantics)を備えたものである場合には、当該プログラムを作成したノウボットサービスステーションは、セマンティックが何であるかを明らかにするためのタイプおよびバージョンのインジケータを提供し、或いは、この情報は、以下に説明するシステム、時間および日付のフィールドに収容され得る。
全体において一意的な識別子により、ノウボットプログラムの存在、位置および活性が適切に制御され或いは決定されつつ、ノウボットサービス環境に存在することができる。
次の(オプションの)フィールドは、ノウボットプログラムの真正さ、特に、ノウボットプログラムを考案したと主張する環境により、当該ノウボットプログラムが実際に作成されたことを確実にするために用いられる認証情報112である。また、必要であれば、ノウボットプログラムの一部或いは全部が、暗号化されていても良い。
次のフィールドはスケジューリング情報114を収容している。これは、いつ或いはどのくらい頻繁にノウボットプログラムにより表わされるタスクを実行すべきかに関連している。これは、当該フィールドに記述されたコストや時間の制限に依拠していても良い。また、このフィールドが、(エラー情報通知を含む)必要なステータス情報を特定しても良い。このスケジューリング情報は、不足のない仕様の情報がプログラム中の他の位置にあると仮定している。スケジューリング情報は、たとえば、いつノウボットプログラムが機能を果たすか、どのくらいの期間だけノウボットプログラムが存在するか、および、いつどのようにしてノウボットプログラムがステータス情報を戻すべきかを示している。タスクをスタートさせるための命令のある例には、(a)「収納庫Xで明日の午後2時にこのノウボットプログラムを稼動させる」;ノウボットプログラムは収納庫内の稼働中のノウボットプログラムにリポートを戻す、(b)「収納庫Yで毎日正午にこのノウボットプログラムを稼動させる」;結果は、いわゆるその日の新しいことになるであろう、(c)「イベントZが生じるまで待機し(たとえば、我々が使用したいカレンシーを知るまで)、次いで、当該イベントの結果を用いてノウボットプログラムを稼動させる」、(d)「このノウボットプログラムを稼動し、イベントWが生じた場合(たとえば、株価が15未満になった場合)には、行為Qをなし(たとえば、売却する)、これが20を超えた場合には購入する。」ノウボットプログラム174は、また、他の起動の基準やトリガー状態を含んでいても良い。
次のフィールド、すなわち、ナビゲーション情報116には、ノウボットサービス環境におけるプログラムの将来のナビゲーション、および/または、プログラムによりなされたナビゲーションの経路のヒストリーが獲得されている。
次のフィールドである時間および状況118は、プログラムのために実行されたタスクに対する支払許可などの領域、或いは、使用期間および使用状況に関連している。この情報は、公開鍵の暗号や、支払許可のための等価なメカニズムの使用、並びに、他の期間および状況により保護される。支払情報は、許可されたクレジットの限度を示し、支払許可を確実にすることができ、かつ、この情報は、ノウボットプログラムに完全に収容しても良いし、ディジタルキャッシュ支払システムや他の電子支払メカニズムと協働しても良い。
次のフィールドである、システム、時間および作成の日付120は、プログラムがコピーされ、或いは、そのヒストリーの記録が必要な場合の追跡メカニズムを提供する。他のプログラムに組み込まれたプログラムはそれ自体のシステム、時間および作成日付を有する。このフィールドは、情報を取得可能なノウボットプログラムを特定しても良い。
次のフィールドである、オペレーション122は、典型的には、ノウボットプログラムの内容と協働する実行すべきインストラクションシーケンスを収容する。ノウボットサービスステーションにて解釈可能な任意の言語が認められる。インストラクションシーケンスは、自然言語(たとえば英語)を解釈するための自然言語理解プログラムと協働して用いられる自然言語のディジタル表示であり得る。インストラクションシーケンスの単純な形態は、フォーマットされた検索コマンド或いはアクセスコマンド、たとえば、「識別子Xを持つ物(オブジェクト)にアクセスせよ」或いは「特定の名称の人物によりかかれた物を検索せよ」というものである。また、インストラクションシーケンスは、たとえば、「自分を実行して、実行結果中の宛先の名前に結果を通せ」というような実行すべき処理を特定するものであっても良い。
次のフィールドである経路(path)124は、全般的には、最も最近にプログラムを取り扱ったサービスステーションを特定する。また、このフィールドは、プログラムが取り扱われた時間にしたがって、当該プログラムを先に取り扱った一連のサービスステーションに関する情報を含んでいても良い。以前および将来の軌道に関する不完全な情報を含み得るナビゲーションフィールドと異なり、パスフィールドは、実際に取られた経路(パス)の最終的な経路をもたらすことが意図される。
次のフィールドである、データ記述126は、全般的には、データごとの(ハンドルとして知られている)一意的な識別子、(以下に説明する)データの各部分のユーザに関連する権利、(必要であれば)リポート要求、および、インストラクションシーケンスを使用するための方向を含む。この方向は、実行可能なプログラムの形態をなしていても良い。
最後のフィールドであるデータ128は、以下に述べるもののうち1以上を含んでいる。
a. 我々がディジットのシーケンス(たとえば、二進数のディジットやビット)と定義したものであるディジタルオブジェクトおよび我々が「ハンドル」と称している関連する一意的な識別子である。ディジタルオブジェクトには、権利(たとえば著作権)、或いは、他の権利や利害関係を主張した情報や材料が組み込まれていても良い。また、ここには、ディジタルオブジェクト自体に関連する権利が有っても良い。したがって、ディジタルオブジェクトは、従来の著作(たとえば、文字や絵画)や、コンピュータユーザのための所望の表明を生成することができる、より広汎な任意のディジタル材料を含み得る。したがって、ディジタルオブジェクトは、プログラム、および、先に存在する一以上の著作に基づきまたはこれを組み込んだ他のデータを含み得る。ディジタルオブジェクトはネットワークを経て配布され、次いで、全体的或いは部分的にコンピュータスクリーン(或いは他の出力装置、たとえばプリンタ)上に表現され得る。ディジタルオブジェクトは、オーディオ、ビデオまたは3−Dの場面および加工物や、多くの異なる方法にて表現される可能性が有り且つその表現が始めて起こるようなビットシーケンスを含み得る。ディジタルオブジェクトにおいて主張される権利の通知に関して、権利とは、法令の下にて存在するもの(たとえば、著作権、特許権、トレードシークレット、商標権)或いは個人的な行為(たとえば、秘密、共同事業または交渉)の結果としてのものをいう。
b. ビットのシーケンス(おそらくは、データのタイプを備えている)
c. (ディジタルオブジェクトなど)他の存在への間接的な引用
d. 上述したものの組
e. (組を含む)上述したものの組み合わせ
記述フィールドの内容により、ディジタルオブジェクトは、権利を完全に認識しつつ、かつ、その内容に関する許可を得て、独立して特定されかつ処理され得る。ディジタルオブジェクト自体がノウボットプログラムであっても良い。
ノウボットプログラムは、タスクを実行するために、必要に応じて互いに通信することができる。このような通信手段は以下の通りである。
1.マルチキャスト(multicast)通信は、複数の他のノウボットプログラムに到達させる場合やターゲットのノウボットプログラムの位置が前もって知らされていない場合に用いることができる。2.源のノウボットプログラムは、ターゲットを作り出したノウボットサービスステーションを介してメッセージを発送することより、当該メッセージをターゲットのノウボットプログラムに送信することができる。3.あるノウボットプログラムから他のノウボットプログラムに直接通信するために、所定のメカニズムを使用することができる。
ノウボットプログラムをどのように送受信するかを定義するプロトコル或いはプロトコルの組に加えて、システムは、メッセージをどのように送受信するかを定義するプロトコル或いはプロトコルの組を備えていても良い。ある場合には、メッセージを送信する方が、ノウボットプログラム自体を送信するよりも、むしろ効果的である場合がある。たとえば、ノウボットプログラムがノウボットサービスステーションに到達し、処理の前に、他のノウボットプログラムからのメッセージを待つ場合がある。
ノウボットプログラムは、ノウボットサービスステーションにて互いに相互作用することができる。ノウボットプログラムは、ノウボットサービスステーションにて増殖しても良い。ノウボットプログラムのクローンの各々は、その親や兄弟と独立して作動可能である。ノウボットプログラムおよびこれらのクローンは、その活動を同調させ、かつ、タスクを実行するのに協力しても良い。より一般には、任意のノウボットプログラムは、クローンであろうとなかろうと、任意の他のノウボットプログラムと同調して作動することができる。
ノウボットプログラムは持続性を持ち、すなわち、ノウボットプログラムは、ノウボット作動環境において用心深い存在を維持するという期待をもって生成され得る。通常は、持続性のあるノウボットプログラムは、特定のノウボットサービスステーションに存在するが、ノウボット作動環境中を絶え間なく移動する持続性のあるプログラムが存在していても良い。
単純なユーザのクエリーやシステムクエリーを伝達するノウボットプログラムは、複雑な検索手順を作り出し或いは他の分散タスクを実行する。いくつかの収納庫やデータベースに質問を与えて、全ての必要な部品を得て、検索や他のタスクの実行を満足しても良い。(収納庫は、複数のデータベースや知識ベースを収容していても良い。)これら部品は、単一の応答或いは複数の応答としてユーザに配布される。ある場合には、ユーザは部品の一部或いは全部を別に配布すべきことを求め、或いは、システムがこれを許可するであろう。
ノウボットプログラムは、クエリーや検索に対応していない、(おそらく、他のノウボットプログラム、収納庫、データベースおよび/または知識ベースと協働した)複雑なタスクを実行する場合がある。たとえば、ネットワーク中で、コンピュータ中で、或いは、コンピュータやネットワークの組において、プログラムの起動、パラメータの設定或いはソフトウェアパッチの挿入など何かが生じる場合がある。
認証およびセキュリティ
ノウボットサービス環境中のノウボットプログラムおよびノウボットサービスステーションは「資格のある存在」として特定される。これにより、全てのサービスステーションというわけではないが、システムの行為についてある保証が与えられる。また、種々の保証のレベルを特定することができる。あるサービスステーションでは、その資格は、ノウボットサービス環境中のサービスステーションの存在を登録することに相当する。このような登録をなす団体は、認証された場合を除きサービスステーションを変更しない(つまり、みだりに手を付けない)ことに同意するであろう。サービスステーションは、(たとえば、サービスステーションが変更され、或いは、その作動が修正される場合に)それ自体の完全性を決定するためのメカニズムを含み得る。
資格のあるサービスステーションに到達したノウボットプログラムは、プログラムを生じたサービスステーションや実行のコストを提供したサービスステーションの資格が受け入れ可能であるかどうかにかかわらず、資格のあるサービスステーションにて取り扱い可能となる。費用のかかる実行について、認証のため電子支払が必要な場合もある。権利(たとえば著作権)のあるディジタルオブジェクトや権利(たとえば契約或いは証文)に関するディジタルオブジェクトをアクセスする要求がある場合、ある信頼レベルにて資格のあるサービスステーションのみに、ノウボットプログラムを戻すことができる。プログラムに関するサービスステーションが資格があるか否かを決定するために、アクセスを実行するのに先立ってテストがなされても良い。或いは、より制限されていない案では、ディジタルオブジェクトに関して何がなされるかという点でプログラムを単純に制限しても良い。
ノウボットプログラムに関して、資格とは、資格のあるサービスステーションがプログラムの作成者であり、全体において一意的な識別子を当該プログラムに割り当て、関連する情報にしたがってノウボットプログラムのコピーを保持していることを単に意味するものであっても良い。ノウボットプログラムが削除されたときに、当該プログラムを作成したサービスステーションに、ステータスメッセージが戻される。このメッセージの配布は、当該ステーションが利用可能でない場合には延期される。長期間存在するノウボットプログラムおよび比較的短期間存在するノウボットプログラムを含む場合の通知のための他のメカニズムは、他のステーションに通知することにより、その責任を転嫁する。
ノウボットプログラムを作り出したサービスステーションにより維持され、或いは、当該サービスステーションとアクセス可能な収納庫に記憶されたときに、当該ノウボットプログラム自体をディジタルオブジェクトとして見られるようにしても良い。ノウボットプログラムを、任意のサービスステーションにより削除できるようにしても良い。ノウボットプログラムがもはや保持する価値がないと考えられる場合には、ノウボットプログラムの記録を、これを作り出したサービスステーションにより削除できるようにしても良い。
ノウボットプログラムは、機密性或いは所有権の主張がなされたディジタルオブジェクトを、与えられたコンピュータにある間或いはネットワークを経て輸送されている間に要求し、および/または、受理することができる。公開鍵暗号などの従来からのネットワークセキュリティ技術を、輸送および記憶の際の保護のために用いることができる。ここに記載されたアプローチは、コンピュータ処理の間の、記載された処理を施されたディジタルオブジェクト或いは使用法の種別を保護するのに役立つ。ある情報の材料は、ネットワーク環境にある間、この形態の保護を有する要求をすることになるであろう。資格のあるサービスステーションのみが、この材料にアクセスするに足るだけの信頼がされるであろう。資格のあるサービスステーションに存在し、かつまた、資格のあるサービスステーション間を輸送されるノウボットプログラムは、信頼されるものと考えられる。全ての他の環境に存在し、かつまた、資格のあるサービスステーションの間を輸送されていないノウボットプログラムは、信頼されない存在であると仮定される。(戻りのパス(経路)において、)資格のある宛先のみが資格のあるノウボットプログラムを受理できるということを保証するために、ノウボットプログラムの源は認証されなければならない。暗号とともに認証のレベルは、システム内で特定されかつ維持されていても良い。
資格なしにサービスステーションおよびノウボットプログラムを使用することも可能であるが、知的所有権を保護する能力に関する保証がなされていないことになる。
有効なノウボットプログラム(たとえば、ノウボットプログラムたる必要な論理構造を有するもの)は、適切なノウボット構造を生成することができ、かつ、これを作り出すことができる他のソフトウェアへの適切なインタフェースの制限に適合することができる任意の関係するソフトウェアにより作り出され得る。プログラムを作る際に、インタフェースの関係者側には、制限をなすことができない。また、認証され或いは資格のあるノウボットプログラムが、認証され或いは資格のあるノウボットサービスステーションにより提供され或いは有効にされた場合には、ノウボット構造は、認証され或いは資格のあるノウボットプログラムの形態をなすことができる。ノウボットプログラム中のタスクの記述は、解釈可能な任意の言語、たとえば、PERLスクリプト、PYTHON、その他にて表現され得る。ノウボットサービスステーションは、複数の言語インタープリタをサポートしても良い。ある言語インタープリタが、他の言語にて表現されたノウボットプログラムの構造上の一部を解釈できても良い。いずれの場合にも、資格のあるノウボットプログラムは、資格のあるノウボットサービスステーションのみにより作成される。
資格のあるサービスステーションにて作動することにより、資格のあるノウボットプログラムは、ノウボットサービス環境において知的所有権を保護することができる。権利者が資格のないサービスステーションに、彼らの知的所有権を送信する意志がある場合に限り、資格のないプログラムからの情報の要求を満足させることができる。資格のないプログラムの間の通信やなされる行為の種別にあると考えられる技術的な制限は存在しない。したがって、資格のあるサービスステーションの外部に送信されたいかなる情報にも、資格のあるサービスステーションからのさらなる保証は与えられない。このような行為は、通常は、必要であれば権利者の許可の下でのみ、なされるであろう。このような許可は、期間および状況フィールドにて示されても良い。しかしながら、資格のあるサービスステーション内では、権利および権利の主張は、続けて保護されるであろう。
記録保持
各ノウボットプログラムは名前を含み、或いは、1以上のディジタルオブジェクトを示すことができる。これらは、一般には、権利および利害関係を持っている。プログラムには、どのオペレーションが各ディジタルオブジェクトで実行可能かを決定し、要求されたリポートを決定するための十分な情報が含まれている。
ノウボットプログラムは、収納庫の検索、これら自身のオペレーション、プログラム間の相互作用、および、収納庫への保管をなすことができる。また、これらを、資格のあるサービスステーションに送信することができる。権利者が許可したような場合には、これらを資格のないサービスステーションに送信することもできる。
各サービスステーションは、各ノウボットプログラムにて実行されたオペレーションの軌跡を保持する。また、各サービスステーションは、(ノウボットプログラムに収容された期間および状況にしたがった用法で)「通知機関」、ノウボットサービス環境のキーになる部分である論理的な分散システム、或いは、権利者の権利管理手法に適合するように、リポートを電子的に戻す。ある場合には、重要なイベントやオペレーションが発生する(たとえば、情報や権利のある材料に基づき、或いは、これらが組み込まれたノウボットプログラムのためのタスクが実行される)ごとに通知が要求されるであろう。他の場合には、周期的な(たとえば、月ごと或いはN個のイベントごとの)リポートのみが要求されるであろう。
通知機関のシステムがネットワークから逸脱した場合には、局地的な情報の収集の後のリポートが依然として要求されるが、リポートの要求は中断される場合がある。或いは、要求された通知のレベルがありえないものである場合には、そのような環境の下でノウボットプログラムのために実行することが、ユーザに制限される場合がある。たとえば、ある応用例が時間に依存し、かつ、ネットワークを経た、収集システム(より一般には、権利管理システム)からの「電子的な許可」の補充に依拠していることがある。
サービスステーションがネットワークから逸脱し、特定の期間内に再度接続されなかった場合には、サービスステーションが再度接続され、かつ、通知システムが更新されるまで、通知リポートを提供しなければならない全てのノウボットプログラムが、(たとえば、サービスステーション記憶部の制限により)作動不能にされる場合がある。或いは、この場合に関して、サービスステーションは権利者により認証され、当該権利者の任意の材料を含むノウボットプログラムの活性或いは当該ノウボットプログラムのリポートの制限を除去しても良い。また、ノウボットプログラムは、必要でないのなら、収集ステーションから切断された間に収集された全てのリポートを削除するようにしても良い。
応用例
ノウボットフレームワークによれば、ネットワーク中の1以上のコンピュータに記憶された情報および当該1以上のコンピュータにて利用可能なサービスを利用する、事実上無限の応用例が可能である。これら応用例は、単一のコンピュータでの典型的な単純な情報のアクセス要求(たとえば、Jim DanielsにどのネットワークアドレスでE−メールを送信すべきか、或いは、Jim Daniels用の公開鍵はどれか?)、若しくは、遠隔サーバへの単一のコマンド(1999年3月3日の任意のときのワシントンDC発サンディエゴ行の片道チケットの発行)に限定されない複雑なタスクを実行することができる。その代わりに、ノウボットプログラムにより、関係者が、情報を検索することができ、かつ、多数のコンピュータから蓄積し或いは多数のコンピュータにて実行される必要があり、かつ、計画中の後ろ側のステップが、当該計画中の前側のステップの結果に依存するようなタスクを実現することが可能となる。フレームワークにより、これら全てが、関係者にとってわかりやすく(或いは要求されれば通知付きで)実現することができる。
ある広汎なクラスでの応用例では、情報に関する単一の関係者の要求に応答することを含む。この情報は、ネットワーク上の異なる遠隔位置に配置された独立したデータベースをアクセスし、かつ、ユーザに整然とした提示をなすための情報を組み立てることによってのみ、得ることができる。
第8図の特定の例において、インターネットアドレスを得るための中央の登記機関がないと考える。局地コンピュータ130のユーザが他のユーザのインターネットアドレスを必要とする場合に、第1のユーザは、他のユーザを特定する単一の要求130を入力する。局地ノウボットサービスステーション138は、要求を解釈して、対応するノウボットプログラムを作り出し、当該ノウボットプログラムを、一連の他のコンピュータ132、134、136に送信する。これら他のコンピュータは、それぞれ、それ自体のノウボットサービスステーションを有し、かつ、ユーザアドレスディレクトリを維持するために知られている。(これは、局地コンピュータのサービスステーションが、このようなディレクトリを維持するコンピュータのアドレスのテーブルを持っているのであれば、前もって知ることができる。そうでなければ、サービスステーションは、まず、このようなテーブルを有していることが知られているコンピュータにノウボットプログラムを送信して、これ得る必要がある。)コンピュータ132、134、136上のディレクトリ138、140、142の各々は、それ自体のネーミングやアドレッシングの取極を有する傾向がある。コンピュータ130のサービスステーションは、ユーザのクエリーが共通のプロトコルにしたがって表現されるようにセットアップされていても良く、かつ、他のコンピュータのサービスステーションが、各ディレクトリにて共通のプロトコルから入ってくる要求を、ディレクトリに直接質問できるような形態に変換する変換ルーチンを備えていても良い。クエリーの結果は、次いで、ノウボットプログラムに挿入され、当該ノウボットプログラムは、次のディレクトリに進められる。サービスステーションの各々は、クエリーがそこで実行されている期間、ノウボットプログラムの「宿泊所」として一時的に機能する。
ノウボットプログラムが一巡して、かつ、多数のアクセス結果を伝達するコンピュータ130に戻すときに、局地サービスステーションの拡張部或いは増進部が、共通プロトコルからの戻りを、情報の局地的表示に有用なフォーマットに変換する。また、局地サービスステーションの増進部は、これらを表示する前に、ユーザのパフォーマンスにしたがって、結果を組織化する。たとえば、ユーザは、入力の直近の更新に基づき、年代の逆の順序での表示を求めることができる。また、この表示に、各入力が見出されたデータベース或いは収納庫を示す表示の付加を求めることができる。
ノウボットプログラムが、第8図に示すようなラウンドロビン方式にて検索を実行すること(すなわち、シリアルに、したがって、タスク管理を分権化すること)により、受け入れ可能性を長時間にすることができる。他の手法には、基本的に同時にコンピュータ132、134、136にいくつかのノウボットプログラムを送信し、(第8図の破線に示すように)元のコンピュータ130に、望むならば特定された時間制限内に、独立してこれらを戻すことが含まれる。このような情報を蓄積する並列的な手法(すなわち、集権的タスク管理)は、(しばしば起こるように)訪問すべきコンピュータの数が大きいときに、遅延を減少させるために、本質的に重要である。
他の例では、局地コンピュータのユーザは、特定の外国長期国債の米ドルでの現在の価格を決めることを求める場合がある。ユーザは、この単純なクエリーが、実際には、外国通貨の価格を取って、現在の交換レートに基づきこれを米ドルに変換する必要があることに気付かない場合がある。局地ノウボットサービスステーションの拡張部或いは増進部は、取り出すべき情報の一つ一つを名づけることなく、ユーザが単に答えを求めるべき問題を表現すれば良いようなユーザインタフェースを提供する。サービスステーションは、1以上のノウボットプログラムを適切な遠隔ノードに送信し、必要な情報を取り出す。ひとたび情報が戻ると、局地サービスステーションの増進部は、現在の価格および変換レートを使用して、回答を決定し、この回答をユーザに配布する。(しかしながら、情報の一つ一つは必ずしも必要ではない。)貨幣の変換は、多くの両替の交換にて生じ得るため、ユーザは、1つ(所望により1以上)の近接しているが著しく異なる交換レートに基づき、或いは、いくつかの交換レートからの平均に基づき答えを得るであろう。
この例において、ユーザは、サービスステーションがノウボットプログラムを使用して情報の行方不明の一片を得て、次いで計算を実行することを要求して、解決すべき問題を明確にする場合を考える。しかしながら、ユーザが、単に、非数学的な正確な言葉で、問題をはっきりと表現できるにすぎず、問題を数学的な形態に変換して、これを解決するのに助けが必要であるとすると、ユーザは、言葉にて、たとえば、「1999年に5,000万ドルに達する世界中のPCMCIAモデムのドルでの販売見込みはどのくらいか?」というような質問を言葉にて入力することができる。第9図に示すように、局地コンピュータのサービスステーションの拡張部および増進部は、まず、ノウボットプログラム151を、エキスパートシステム153がある位置の遠隔サービスステーション152に送信する。このエキスパートシステム153は、製品のドルでの販売をどのように評価するかに関する知識を収容している。プログラムは、「以下の質問に答えるために、どのような情報を知る必要が有りますか:…?」という方針に沿って、クエリーを実行する。エキスパートシステム153は、「過去5年間の米国内での製品の販売、全世界の人口に対する米国の人口のパーセンテージ、および、特定の新たな技術に直面した際の製品の生育力の評価」というような回答を提供することができる。また、このような回答が、当該回答を見出したコンピュータのアドレスを与えたと考える(そうでなければ、ノウボットプログラムは他のコンピュータを訪れて、上述した情報を取得する)。ノウボットプログラムは、次いで、サービスステーション152の助けをかりて、情報が位置している場所の3つの他のコンピュータ154、156、158に向けられる3つの新たなノウボットプログラム160、162、164を生み出すことができる。プログラムはパラレル(並列的)に送信され得るし、或いは、単一のプログラムはシリアル(直列的)に送信され得る。ノウボットプログラム166、168、170にはめ込まれたサービスステーション152に情報が戻ったときに、サービスステーション154にて待機している元のノウボットプログラムにより、生み出された3つのプログラムが削除され、当該ノウボットプログラムが、サービスステーション150に結果を戻す。次いで、回答が作られて表示される。
サービスステーションおよびノウボットプログラムは、当該ディジタルオブジェクトの作成者やこれに関する権利所有者によるネットワーク上での当該ディジタルオブジェクトの利用可能性を促進するように、コンピュータに配置されたディジタルオブジェクトへアクセス、当該ディジタルオブジェクトの使用、および、当該ディジタルオブジェクトの補償を制御するための贅沢なフレームワークを提供する。ディジタルオブジェクトに関する権利の通知に関して、権利とは、法令の下にて存在するもの(たとえば、著作権、特許権、トレードシークレット、商標権)或いは個人的な行為(たとえば、秘密、共同事業または交渉)の結果としてのものをいう。収納庫やディジタルオブジェクトの制御に関する付加的な情報は、本件と同一の譲受人に譲渡された1993年10月22日出願の米国特許出願第08/142,161号に記載され、当該出願は本願に組み込まれている。
ディジタルオブジェクトの作成者或いは所有者は、典型的には、その使用、再生およびアクセスまたは実行が制御可能であることを希望することができ、また、これら行為を許可することに対する補償を希望することができる。たとえば、受信機150により解釈されたときに、そのデータがジョージワシントンの肖像を明らかに表わすディジタルオブジェクト(「ジョージワシントンデータ」)の所有者は、広告代理店による多数の使用よりも高校教師による単一の使用に、よりその変更を少なくするように希望する場合がある。高校に送信されたジョージワシントンデータが認証されていない第三者に送出されるのを防止するために、暗号化された(encrypted)バージョンのデータをネットワークに送信するノウボットプログラムは、高校のサービスステーションと相互作用することにより、暗号化されたデータのアクセスを特定のコンピュータに制限し、かつ、高校の特定の登録されたソフトウェアのコピーにて使用するように制限した指令を伝達することができる。
また、ディジタルオブジェクトの作成者および所有者は、当該ディジタルオブジェクトのシステム用、再生および普及に関するレポート、たとえば、受理された支払の検索または支払のクロスチェックなどを受理しても良く、或いは、統計的な情報を保持するように求めても良い。ノウボットプログラムは、サービスステーションと相互作用して、このようなサービスを提供する。ジョージワシントンデータの例において、所有者は、当該データを運ぶノウボットプログラムにより運ばれるデータに価格スケジュールを添付しても良い。所有者のノウボットプログラムは、サービスステーションとの相互作用を介して、データの潜在的な使用に関して、購入したコンピュータと実際に交渉しても良い。或いは、価格を予め定めても良い。プログラムにより、ディジタルオブジェクトへのアクセスおよび所有者に対する新たな「購入」を報告しても良い。
ノウボットプログラムは、ネットワーク上ですでに有用となっている、ディジタルオブジェクトに添付され或いはネットワークのいずれかの場所にて有用な支払スケジュールにしたがってディジタルオブジェクトのシステム用に対する支払を収集する支払メカニズムを使用しても良い(ノウボットプログラムは、収納庫に、パッケージ化されたディジタルオブジェクトおよび支払スケジュールを記憶することができる)。ジョージワシントンデータ150の所有者は、ネットワーク上で、銀行預金や資金残高を保持することができる。所有者のノウボットプログラムは、ディジタルオブジェクトの購入者との完全な取引に向けられ、ネットワーク上で、購入者から所有者の預金に、資金を転送することにより終了する。資金は、直接的なお金の転送、ディジタルキャッシュ或いはクレジットカード(たとえば、Visaやマスターカード)の請求の形をとることができる。さらに、他の信頼された認証サービスを使用することができる。
また、ノウボットプログラムは、ユーザにより生成された派生的な仕事の一部として、ディジタルオブジェクトのシステム用を制御するように働くことができる。たとえば、ジョージワシントンデータの所有者は、解像度の減じられたバージョンの表示が、アメリカの歴史に関するオンラインの作品にて使用するために変更され、或いは、色付きのバージョンから白黒の表示が作られたりすることを認めるように選択することができる。ノウボットプログラムは、ネットワーク中の派生的な仕事へのアクセスを制御することができ、かつ、アクセス数を所有者に報告することができる。所有者は、上述したように、ノウボットプログラムが自動的に支払の取引の面倒をみるように、これを構成することができる。一般に、ノウボットプログラムは、派生的な仕事の派生の軌跡に関する情報を保持することができる。
ノウボットプログラム自体が、現存する仕事に基づく派生的な仕事の生成に巻き込まれる場合がある。これには、ノウボットプログラムが新たな材料を、現存する仕事を作り直した現存する仕事に付加することが含まれる。
ディジタルオブジェクトの所有者がその使用に対して支払を求めるのと同様に、ディジタルオブジェクトのユーザは、知らず知らずのうちに、ディジタルオブジェクトへのアクセスに対して、絶えられないほど高額な勘定を請求されることがないように、これを確実にすることを求める。話題に関する蓄積された情報を自動的に送出するノウボットプログラムは、自動的に、かつ、送り手の知識を要することなく、ネットワーク中の多数の遠隔位置にあるディジタルオブジェクトをアクセスするための手数料を請求することができる。たとえば、ユーザが、帆船に関する全ての利用可能な情報の一つを見つけ出し、これを購入するような効果を持つ、不注意なクエリーを作る場合がある。サービスモジュールは、要求者の側に位置するサービスステーションに含まれる。これは、サービスステーションにて始められたノウボットプログラムが、ユーザにて決定された総額よりも料金が高くなることを、スクリーンに表示するような形態にて防止することができる。或いは、これは、与えられた予算に対してアクセスのための最も好ましい一連の場所を選択する助けをすることができる。
ノウボットプログラムの他の使用には、特定の患者の臨床データおよび医学データベースの組み合わせをアクセスすることがある。ある例では、ノウボットプログラムは、ネットワークから患者の体温および関連する情報を検索して、医学データベースにあるような基準として適用可能な体温と比較する。ノウボットプログラムが、患者に熱があると判断した場合には、ノウボットプログラムは、医学データベースの処置情報にアクセスして、同一の使命の全ての適切な処置スケジュールを見出すことができる。
ノウボットプログラムは、ネットワークのサポートおよび援助するジョブのために使用することができる。たとえば、サービスステーションがデータベースと情報消費者との間の保護層として役立ち、データベースに過負荷を与えることや、データベースを損傷する可能性のあるインストラクションを防止することができる。また、ノウボットプログラムは、ネットワークの診断問題の手伝いをすることができる。ノウボットプログラムは、トラヒック、使用、および、システムのステータス情報を集めることができ、この情報に関するレポートを作成し、かつ、当該情報に基づき、ネットワークを修理することができる。
ノウボットプログラムの問い合わせに対するデータベースゲートキーパー(gatekeeper)は、バッファ記憶にてノウボットの問い合わせを受理し、次いで、規則的な間隔で、当該問い合わせをデータベースに与え、当該データベースを含むシステムの過負荷を防止する。さらに、ゲートキーパーは、問い合わせを取り扱っている間にデータベースを損傷するおそれのあるインストラクションに対する、データベースのための保護層を提供するように設計されている。
存在するデータベース装置および記憶装置は、新たなサービスステーションのソフトウェアおよびおそらくはハードウェアにしたがって更新され、存在する装置やデータの価値を損なうことなく、記憶装置との標準的なノウボットプログラムのインタフェースを提供する。
サービスステーションから送信されたノウボットプログラムは、ルール、フレームおよびスクリプト、並びに、おそらく自然言語を用いて入力された知識を持つ知識ベースのシステムまたはエキスパートシステムを含み、或いは、これらに間接的にアクセスすることができる。
ノウボットプログラムを、図書館資源の管理、資源の組織化、データストリームの特徴化、ディジタルオブジェクトの間の同調、ノウボットプログラム、ディジタルオブジェクトおよび他のデータの構造の決定、並びに、ディジタルオブジェクトの間のリンクの形成など、管理的なタスクのために使用しても良い。ノウボットプログラムが、入札の請求および管理の補助を含む、分散資源との相互作用の管理に巻き込まれる場合もある。たとえば、ノウボットプログラムは、多数の入札者に同じ質問を与え、ユーザのための回答を作り出すことができる。他の例では、ユーザは、ノウボットプログラムを認証して、コスト対品質の比率或いは同様な公式を用いて入札者を自動的に決定することができる。ユーザが、実質上、品質を気にしない場合には、ノウボットプログラムは、最も低い入札をユーザのために、自動的に選択する。或いは、ノウボットプログラムに、引き渡し時を考慮するように権能を与えても良い。
ノウボットプログラムを、機密的な或いは秘密の情報を保護するために使用することができる。この場合に、期間および状況は、ユーザの特定および当該ユーザの知る必要性に基づくものとなる。
ノウボットプログラムが、きちんとしたディレクトリサービスに巻き込まれる場合がある。ノウボットプログラムは、ユーザのプロファイルを取り出し、ユーザのためのディレクトリ情報を探し出し、ユーザのプロファイルが変化するのにしたがって情報を更新する。たとえば、ユーザのプロファイルが、ユーザの現在位置から車で5分の範囲にあるイタリア料理店へのユーザの興味を反映している場合には、ノウボットプログラムは、ユーザの位置が変化するのにしたがって、イタリア料理店に対するユーザディレクトリのエントリーを更新する。
ノウボットサービスステーションは、情報提供者から情報消費者への譲歩の転送を促す第三者の付加価値サービスプロバイダを含むことができる。これら第三者のプロバイダは、情報交換所、カタログ配送者、ルータ(router)などがなり得る。また、ネットワーク上で利用可能な新たなサービスや資源に関する情報である「新しいこと(what's new)」のプロバイダ、ディジタルオブジェクトに関する同一性確認(identification)情報およびネットワーク中の他の情報を提供する参照情報サーバ、所望の情報に関する広汎な基準のみに基づき情報を見出すためにユーザやノウボットプログラムを助けるブラウジングサーバ(browsing server)、ユーザの元々の検索の質問を表現するために、適切なクエリーを作成する際に、ノウボットプログラムを助けるクエリーアドバイザ、或いは、データベース格付けサービスなどが、第三者のプロバイダであり得る。
サービスプロバイダは、洗練されたコンピュータプログラム、たとえば、記載品質アナライザ、オイル探査アナライザ、特許出願アナライザなどのを保持し、ネットワーク上で付加価値のあるサービスを提供するためにこれらを使用することができる。
情報プロバイダにより作り出されたノウボットプログラムは、収納庫に情報を運び、かつ、配達の確認を情報プロバイダに戻す。
第10図を参照すると、ノウボットプログラムは入れ子状態となっており、第1のノウボットプログラム160が第2のノウボットプログラム162を収容し、これが、検索された情報164を保持している。第2のノウボットプログラムが検索された情報の制御アクセス(たとえば、認証された実行、保護の模写)の軌跡を保持することができるため、第2のノウボットプログラムは、制御アクセス(たとえば、実行、模写)に関して情報プロバイダの助けをする。また、第2のノウボットプログラムは、団体の検索アクセスの認証にしたがって検索された情報の軌跡を保持し、かつ、当該情報のアクセスを制限することができるため、第2のノウボットプログラムは、知的所有権の保護に役立つことができる。
ノウボットプログラムは、システム或いはネットワークからの不正或いはごみになったデータや情報を排除する使命を有していても良い。ノウボットプログラムは、プログラムが不正のフォーマットを有していたり、或いは、その期限が切れていることを調べることができるサービスステーションの各々にて、サービスステーションからサービスステーションへと移動することにより、これを実現している。
ノウボットプログラムは、異種のシステムやアプリケーションの間のプロトコル変換或いは他の解釈を提供することができる。変換処理において、介在するネットワークが役割を果たす必要がない。
ネットワーク上でアクセス可能な刊行物を作ることを希望する大学のような情報プロバイダは、サービスステーションの一部として、ノウボットの付加価値を持つサービスモジュールをセットアップすることができる。モジュールは、ネットワークを経て(自然言語や構造化された分類法にて)アクセスされ、受理された入力は、記事のディジタル表示のための収納庫の検索をガイドし、潜在的消費者のノウボットプログラムに関連するデータを特定し、かつ、販売の交渉をするために使用される。消費者のノウボットプレーヤは、期間および状況に合意するか、或いは、購入の是非に関する決定をなすデータをユーザに送信することの要求のいずれかの能力を備えている。
他の応用例において、ノウボットプレーヤは、プログラムを生成するストーリーボードを訪れ、次いで、要求されたストーリーボードを記憶する。次いで、ノウボットプログラムは、楽音生成プログラム、画像生成プログラム、テキスト生成プログラムおよびビデオ生成プログラムを訪れる。ユーザに戻されたノウボットプログラムには、(ときどきマルチメディア作品と称される)コンピュータプログラム、或いは、自動的に生成された成分のディジタル表示を組み込んだ作品の部分のディジタル表示が含まれる。他のディジタルオブジェクトを作り出すために、同様な手順を用いることができる。
他の例では、ノウボットプログラムは、寝室用のベッドおよび居間用のテーブルを購入したいユーザのために機能する。ユーザの局地的サービスステーションは、ユーザの要求への質問の種別に関する知識、および、全般的にどこで情報を見出せるかに関する知識にアクセスする。サービスステーションは、ユーザからの寸法情報を得る相互作用プログラムを駆動して、誰がベッドおよびテーブルを製作したかを見出す必要を知る。サービスステーションは、ノウボットプログラムを送信して製作者を知り、多数の回答を受理する。
他の例では、多数のノウボットプログラムが、他のプログラムの行為に対してどのように反応するかに関するインストラクションを含んでいる。これは、戦争ゲームのシミュレーションにて使用することができる。ノウボットプログラムは、別個の特性および能力を有するタンクに類似している。ここに、ノウボットプログラムは、シミュレーションの間ずっと存在する活性化された存在となる。
このような手法は、新しい航空機など複雑なシステムのモデリングを手伝う際に利用することができる。航空機の各部、たとえば翼をモデリングするための計算は、独立してなされ、各部の相互作用は、ノウボットプログラムを介して管理される。
データベースのクエリーの場合に、ノウボットプログラムは、ユーザにより記入されたフォームからの情報に対する要求をなし、次いで、検索すべき各データベースに関して、サービスステーション内の特定のシソーラスの助けをかりて、当該要求を、当該データベース用の適切なクエリーのフォーマットに変換するように作動する。
或いは、各データベースが、情報に対する標準的なノウボットプログラムの要求を受理しかつこれを理解することができる標準的なノウボットインタフェースを有するサービスステーションと協働してもよい。ノウボットプログラムは、データベースのクエリーを作成する前に、ユーザの要求を標準的なフォーマットに変換するだけで良い。標準的なフォーマットを使用することは、情報検索能力の品質および完全性を維持するのに役立つ。また、これにより、データキャリアの存在が、情報の検索者と情報源とを接続するような、情報転送の際に、フォーマット変換動作に巻き込まれることなく、その仕事をなすことができる。したがって、キャリアの存在は、データサービスの消費者を最もコスト効果の高いサービスのプロバイダに自動的に接続することのように、単なるデータの配布に価値を付加することができる。

Claims (47)

  1. 複数のコンピュータ及び通信媒体を備えるネットワーク上でタスクを実行可能にする方法であって、
    移動可能プログラムであって、各々が前記ネットワークにおけるいずれのコンピュータにおいても共通して解釈及び処理されるようアレンジされた部品構造を有し、前記構造は、(1)所定の時間において前記ネットワーク中で全体において一意的であり、かつ少なくとも前記移動可能プログラムが存在する限り前記ネットワークにおけるいずれのコンピュータにおいても前記移動可能プログラムの存在及び位置を管理及び判定することができる、識別子と、(2)前記ネットワークを介した経路を定義するナビゲーション情報と、(3)実行すべきタスクに関する情報であって前記ネットワークにおけるいずれのコンピュータにおいても解釈することができる態様で表現される情報と、を含む移動可能プログラムを、各コンピュータにおいて、前記ネットワークを介して受信し、
    前記ネットワークの各コンピュータにおいて、
    前記移動可能プログラムを記憶し、
    移動可能プログラムを作り出し、かつ、
    前記ネットワークを介して前記移動可能プログラムを送信し、
    前記移動可能プログラムに関連するタスクの実行を推進するためのサービスとして、
    収納庫と相互作用すること、
    セキュリティ上の決定をすること、
    他の移動可能プログラムを生成すること、
    前記移動可能プログラム中に収容されたタスク情報を解釈すること、
    前記移動可能プログラムとのトランザクションを管理すること、及び、
    処理の実行をスケジューリングすること、
    を含むサービスを実行することを特徴とする方法。
  2. 複数のコンピュータ及び通信媒体を備えるネットワーク上のコンピュータが分散した移動可能プログラムのサービス環境に関与できるようにするための方法であって、
    移動可能プログラムであって、各々が前記ネットワークにおけるいずれのコンピュータにおいても共通して解釈及び処理されるようアレンジされた部品構造を有し、前記構造は、(1)所定の時間において前記ネットワーク中で全体において一意的であり、かつ少なくとも前記移動可能プログラムが存在する限り前記ネットワークにおけるいずれのコンピュータにおいても前記移動可能プログラムの存在及び位置を管理及び判定することができる、識別子と、(2)前記ネットワークを介した経路を定義するナビゲーション情報と、(3)実行すべきタスクに関する情報であって前記ネットワークにおけるいずれのコンピュータにおいても解釈することができる態様で表現される情報と、を含む移動可能プログラムを、各コンピュータにおいて、前記ネットワークを介して受信し、
    前記ネットワークの各コンピュータにおいて、
    前記移動可能プログラムを記憶し、
    移動可能プログラムを作り出し、かつ、
    前記ネットワークを介して前記移動可能プログラムを送信し、
    前記移動可能プログラムに関連するタスクの実行を推進するためのサービスとして、
    収納庫と相互作用すること、
    セキュリティ上の決定をすること、
    他の移動可能プログラムを生成すること、
    前記移動可能プログラム中に収容されたタスク情報を解釈すること、
    前記移動可能プログラムとのトランザクションを管理すること、及び、
    処理の実行をスケジューリングすること、
    を含むサービスを実行することを特徴とする方法。
  3. 関係者が操作するコンピュータと相互作用することにより当該関係者に実行すべきタスクを定義可能とし、
    移動可能プログラムのうちの一つに、定義されたタスクに関連する情報を組み込むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  4. 関係者が人を含むことを特徴とする請求の範囲第3項に記載の方法。
  5. 関係者が、コンピュータ上で作動する手順を含むことを特徴とする請求の範囲第3項に記載の方法。
  6. 関係者が、コンピュータ上で作動する移動可能プログラムを含むことを特徴とする請求の範囲第3項に記載の方法。
  7. タスクの実行を進めるステップが、ディジタルオブジェクトの収納庫との相互作用を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  8. 実行すべきタスクに関する情報が、解釈可能或いは実行可能なインストラクションを含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  9. タスクの実行を進めるステップが、記憶されたエキスパート・ナレッジの利用を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  10. 移動可能プログラムが、ディジタルオブジェクトを含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  11. ディジタルオブジェクトが、プロトコル変換情報を含むことを特徴とする請求の範囲第10項に記載の方法。
  12. タスクの実行を進めるステップが、プロトコル変換を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  13. タスクの実行を進めるステップが、「ウァッツ・ニュー」の提供を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  14. タスクの実行を進めるステップが、「クリッピング」サービスの提供を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  15. タスクの実行を進めるステップが、移動可能プログラムのバージョンを管理するためのバージョン制御サービスの提供を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  16. タスクの実行を進めるステップが、移動可能プログラムの構造を決定し、その要素へアクセスすることを含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  17. タスクの実行を進めるステップが、存在する仕事から派生する仕事を作り出すことを含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  18. タスクの実行を進めるステップが、源の移動可能プログラムから、同一或いは異なる位置にあるターゲットの移動可能プログラムにメッセージを通すことを含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  19. 同一のメッセージが複数の移動可能プログラムを通ることを特徴とする請求の範囲第18項に記載の方法。
  20. ネットワークの通信媒体を介して遠隔収納庫への局地的なクエリーを実行するための方法であって、当該局地的なクエリーが、クエリー形態変換プロトコルに従っており、かつ、遠隔収納庫が、それぞれの送受信プロトコルに従ったクエリーに応答し、前記方法が、
    局地的なクエリーに基づき、かつ、実行可能で解釈可能なプログラミング言語のシンタックスを呼び出す共通の移動可能プログラムの送受信プロトコルに従った複数の移動可能プログラムを局地的に生成し、
    ネットワークの通信媒体を介してそれぞれの遠隔収納庫に移動可能プログラムを並列的に送信し、
    遠隔収納庫にて、前記それぞれの送受信プロトコルにしたがって収納庫に質問をすることにより、移動可能プログラムに応答し、
    移動可能プログラムの送受信プロトコルにしたがった戻りの移動可能プログラム中で、遠隔収納庫からクエリーの結果を戻し、
    前記戻りの移動可能プログラムを局地的に受信し、
    前記戻りの移動可能プログラムに収容された結果を処理し、付加的な戻りの移動可能プログラムとして更新された整合した表示を、ユーザに提供することを特徴とする方法
  21. 前記処理が、冗長な情報の除去を含むことを特徴とする請求の範囲第20項に記載の方法。
  22. 戻りの移動可能プログラムが、元の移動可能プログラムの修正されたバージョンであることを特徴とする請求の範囲第20項に記載の方法。
  23. 付加的な移動可能プログラムが局地的に生成され、ネットワークの通信媒体を介して送信されることを特徴とする請求の範囲第20項に記載の方法。
  24. クエリー形態変換プロトコルが、ユーザにより設定された表示形態を含むことを特徴とする請求の範囲第20項に記載の方法。
  25. 移動可能プログラムの送受信プロトコルが、クエリーの形態変換プロトコルおよび収納庫における送受信プロトコルと異なることを特徴とする請求の範囲第20項に記載の方法。
  26. 移動可能プログラムが、実行可能で解釈可能なプログラム言語のエントリーおよびナビゲーションの部分を含むことを特徴とする請求の範囲第20項に記載の方法。
  27. 移動可能プログラムが、ネットワークをナビゲーションすることにより遠隔収納庫の場所に到達し、かつ、移動可能プログラムのナビゲーションの部分が、当該ナビゲーションに関する情報を含むことを特徴とする請求の範囲第20項に記載の方法。
  28. さらに、遠隔収納庫の場所にて、クエリーの実行ステータスを示すステータス移動可能フログラムを送信することを特徴とする請求の範囲第20項に記載の方法。
  29. さらに、遠隔収納庫にて、移動可能プログラムを実行して、所定の収納庫のクエリーを決定し、収納庫への質問の間、移動可能プログラムを記憶し、収納庫への質問及び移動可能プログラムに収容された制御情報に基づく結果を戻すことを制御する特徴とする請求の範囲第20項に記載の方法。
  30. さらに、局地的にサービスステーションを用いて、移動可能プログラムを作成し、送信し、受信し、かつ、消去することを特徴とする請求の範囲第20項に記載の方法。
  31. さらに、遠隔収納庫の場所にて、移動可能サービスステーションを用いて、移動可能プログラムを作成し、送信し、受信し、制御し、処理し、かつ、消去することを特徴とする請求の範囲第20項に記載の方法。
  32. さらに、局地的なクエリーに基づき移動可能プログラムを送信すべき遠隔収納庫を局地的かつ自動的に選択することを特徴とする請求の範囲第20項に記載の方法。
  33. 移動可能プログラムを送信するステップが、移動可能プログラムを、電子メールプロトコル、ファイル転送プロトコル、或いは、ネットワーク上の他の通信方法に順応させることを含むことを特徴とする請求の範囲第20項に記載の方法。
  34. さらに、移動可能プログラムの送受信プロトコルに、変換情報を含めることを特徴とする請求の範囲第20項に記載の方法。
  35. 移動可能プログラムが、さらに、認証情報を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  36. 移動可能プログラムが、さらに、スケジューリング情報を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  37. 移動可能プログラムが、さらに、支払情報を含むことを特徴とする請求の範囲第1項または第2項に記載の方法。
  38. 移動可能プログラムが、不変であることを特徴とする請求の範囲第1項または第2項に記載の方法。
  39. 複数のコンピュータ及び通信媒体を備えるネットワーク上でタスクを実行可能にする装置であって、ネットワーク上のコンピュータの各々にて、コンピュータ上で稼動するソフトウェアの形態の移動可能プログラムサービスステーションを含む移動可能プログラムサービス環境を備え、当該サービスステーションが、
    移動可能プログラムであって、各々が前記ネットワークにおけるいずれのコンピュータにおいても共通して解釈及び処理されるようアレンジされた部品構造を有し、前記構造は、(1)所定の時間において前記ネットワーク中で全体において一意的であり、かつ少なくとも前記移動可能プログラムが存在する限り前記ネットワークにおけるいずれのコンピュータにおいても前記移動可能プログラムの存在及び位置を管理及び判定することができる、識別子と、(2)前記ネットワークを介した経路を定義するナビゲーション情報と、(3)実行すべきタスクに関する情報であって前記ネットワークにおけるいずれのコンピュータにおいても解釈することができる態様で表現される情報と、を含む移動可能プログラムを、各コンピュータにおいて、前記ネットワークを介して受信し、
    前記ネットワークの各コンピュータにおいて、
    前記移動可能プログラムを記憶し、
    移動可能プログラムを作り出し、かつ、
    前記ネットワークを介して前記移動可能プログラムを送信前記移動可能プログラムに関連するタスクの実行を推進するためのサービスとして、
    収納庫と相互作用すること、
    セキュリティ上の決定をすること、
    他の移動可能プログラムを生成すること、
    前記移動可能プログラム中に収容されたタスク情報を解釈すること、
    前記移動可能プログラムとのトランザクションを管理すること、及び、
    処理の実行をスケジューリングすること、
    を含むサービスを提供するように構成されたことを特徴とする装置。
  40. 前記遠隔収納庫のうち少なくとも1つが、当該局地的なクエリーが、クエリープロトコルに従っており、かつ、遠隔の知識ベースのシステムが、知識ベースのシステムプロトコルに従ったクエリーに応答する、知識ベースのシステムを備える、請求の範囲第20項に記載の方法
  41. 遠隔システムからディジタルオブジェクトを取り出す方法であって、
    遠隔システムが、移動可能プログラムにオブジェクトを組み込み、
    当該移動可能プログラムが、認証されないアクセスからオブジェクトを保護する資格のある移動可能プログラムサービス環境である局地的なシステムに送信され、
    前記移動可能プログラムが当該オブジェクトの少なくとも部分へのアクセスについての制限を定義する情報を含み、
    前記局地的なシステムは、
    局地的なユーザが、移動可能プログラムを介して、当該ディジタルオブジェクトにアクセスし、
    移動可能プログラムが、前記移動プログラム環境と関連して、当該オブジェクトへのアクセスに対する付加的な認証および/または支払を求めるディジタルオブジェクトの一部へのアクセスを制限し、
    当該オブジェクトに対し実行された行為について、当該オブジェクトの権利保有者に通知がなされることを特徴とする方法。
  42. 移動可能プログラム自体がディジタルオブジェクトである請求の範囲第41項に記載の方法。
  43. 移動可能プログラムの少なくとも何れかが一定期間移送されずに局所的なシステムに留まる請求の範囲第41項に記載の方法。
  44. 移動可能プログラムの少なくとも何れかが一定期間移送されずに局所的なシステムに留まる請求の範囲第42項に記載の方法。
  45. オブジェクトに対してアクションが実行されると通知がされる請求の範囲第41項、42項、43項又は44項に記載の方法。
  46. オブジェクトに対して実行されたアクションの情報が記録される請求の範囲第41項、42項、43項又は44項に記載の方法。
  47. オブジェクトに対して実行されたアクションの情報が記録される請求の範囲第45項に記載の方法。
JP53664796A 1995-05-30 1996-05-30 分散タスク実行のためのシステム Expired - Lifetime JP3927600B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US45348695A 1995-05-30 1995-05-30
US08/453,486 1995-05-30
PCT/US1996/008017 WO1996038795A1 (en) 1995-05-30 1996-05-30 System for distributed task execution

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004340478A Division JP2005141762A (ja) 1995-05-30 2004-11-25 分散タスク実行のためのシステム

Publications (2)

Publication Number Publication Date
JPH11506233A JPH11506233A (ja) 1999-06-02
JP3927600B2 true JP3927600B2 (ja) 2007-06-13

Family

ID=23800759

Family Applications (2)

Application Number Title Priority Date Filing Date
JP53664796A Expired - Lifetime JP3927600B2 (ja) 1995-05-30 1996-05-30 分散タスク実行のためのシステム
JP2004340478A Pending JP2005141762A (ja) 1995-05-30 2004-11-25 分散タスク実行のためのシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2004340478A Pending JP2005141762A (ja) 1995-05-30 2004-11-25 分散タスク実行のためのシステム

Country Status (5)

Country Link
US (3) US6574628B1 (ja)
EP (1) EP0846297A4 (ja)
JP (2) JP3927600B2 (ja)
AU (1) AU5953296A (ja)
WO (1) WO1996038795A1 (ja)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136923A1 (en) * 1995-05-30 2006-06-22 Kahn Robert E System for distributed task execution
JP3927600B2 (ja) * 1995-05-30 2007-06-13 コーポレーション フォー ナショナル リサーチ イニシアチブス 分散タスク実行のためのシステム
JP3269023B2 (ja) * 1997-04-09 2002-03-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報伝達方法及び装置
US6560634B1 (en) * 1997-08-15 2003-05-06 Verisign, Inc. Method of determining unavailability of an internet domain name
DE69837609T2 (de) * 1997-09-17 2007-12-27 British Telecommunications P.L.C. Kommunikationsnetz
US7835896B1 (en) * 1998-04-06 2010-11-16 Rode Consulting, Inc. Apparatus for evaluating and demonstrating electronic circuits and components
US6847969B1 (en) * 1999-05-03 2005-01-25 Streetspace, Inc. Method and system for providing personalized online services and advertisements in public spaces
US7065497B1 (en) * 1999-06-07 2006-06-20 Hewlett-Packard Development Company, L.P. Document delivery system for automatically printing a document on a printing device
US6886000B1 (en) * 1999-09-29 2005-04-26 International Business Machines Corporation On-line negotiations with dynamic profiling
TW503355B (en) * 1999-11-17 2002-09-21 Ibm System and method for communication with mobile data processing devices by way of ""mobile software agents""
GB2357229B (en) * 1999-12-08 2004-03-17 Hewlett Packard Co Security protocol
US8010703B2 (en) 2000-03-30 2011-08-30 Prashtama Wireless Llc Data conversion services and associated distributed processing system
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
US20040103139A1 (en) * 2000-03-30 2004-05-27 United Devices, Inc. Distributed processing system having sensor based data collection and associated method
US20010039497A1 (en) * 2000-03-30 2001-11-08 Hubbard Edward A. System and method for monitizing network connected user bases utilizing distributed processing systems
US20010027467A1 (en) * 2000-03-30 2001-10-04 Anderson David P. Massively distributed database system and associated method
US20090222508A1 (en) * 2000-03-30 2009-09-03 Hubbard Edward A Network Site Testing
US20090216641A1 (en) 2000-03-30 2009-08-27 Niration Network Group, L.L.C. Methods and Systems for Indexing Content
GB0009634D0 (en) * 2000-04-19 2000-06-07 Infoclear Nv The info2clear system for on-line copyright management
JP3939249B2 (ja) * 2000-09-19 2007-07-04 富士通株式会社 店舗システム
EP1356377A2 (en) * 2000-10-04 2003-10-29 Siemens Energy & Automation, Inc. Manufacturing system software version management
DE10060177A1 (de) * 2000-12-04 2002-06-20 Siemens Ag Verfahren und Datenverarbeitungssystem zum wissensbasierten Beraten, Managen und/oder Steuern eines Geschäftsprozesses
US20020072941A1 (en) * 2000-12-07 2002-06-13 Ibm Corporation Method and apparatus for processing electronic records for physical transactions
US6826591B2 (en) * 2000-12-15 2004-11-30 International Business Machines Corporation Flexible result data structure and multi-node logging for a multi-node application system
US20020124070A1 (en) * 2001-03-02 2002-09-05 Pulsipher Eric A. System for providing related information of a network error event in a hand-held device
US6694307B2 (en) * 2001-03-07 2004-02-17 Netvention System for collecting specific information from several sources of unstructured digitized data
US20020161626A1 (en) * 2001-04-27 2002-10-31 Pierre Plante Web-assistant based e-marketing method and system
US7426729B2 (en) * 2001-07-11 2008-09-16 Sun Microsystems, Inc. Distributed processing framework system
US20030120776A1 (en) * 2001-07-11 2003-06-26 Sun Microsystems, Inc. System controller for use in a distributed processing framework system and methods for implementing the same
US7114159B2 (en) 2001-07-11 2006-09-26 Sun Microsystems, Inc. Processing resource for use in a distributed processing framework system and methods for implementing the same
US6961937B2 (en) 2001-07-11 2005-11-01 Sun Microsystems, Inc. Registry service for use in a distributed processing framework system and methods for implementing the same
JP2005502106A (ja) * 2001-07-20 2005-01-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 情報コンテンツへのアクセス
US7165256B2 (en) 2001-09-11 2007-01-16 Sun Microsystems, Inc. Task grouping in a distributed processing framework system and methods for implementing the same
US7243137B2 (en) 2001-09-28 2007-07-10 Sun Microsystems, Inc. Remote system controller and data center and methods for implementing the same
US7299466B2 (en) * 2001-12-20 2007-11-20 Cadence Design Systems, Inc. Mechanism for managing execution environments for aggregated processes
US7159217B2 (en) * 2001-12-20 2007-01-02 Cadence Design Systems, Inc. Mechanism for managing parallel execution of processes in a distributed computing environment
US7117500B2 (en) * 2001-12-20 2006-10-03 Cadence Design Systems, Inc. Mechanism for managing execution of interdependent aggregated processes
US7287277B2 (en) * 2001-12-21 2007-10-23 Hewlett-Packard Development Company, L.P. Method and apparatus for controlling execution of a computer operation
US7370356B1 (en) * 2002-01-23 2008-05-06 Symantec Corporation Distributed network monitoring system and method
US7440940B2 (en) * 2002-12-02 2008-10-21 Sap Ag Web service agent
US7925246B2 (en) 2002-12-11 2011-04-12 Leader Technologies, Inc. Radio/telephony interoperability system
US8195714B2 (en) 2002-12-11 2012-06-05 Leaper Technologies, Inc. Context instantiated application protocol
US7197502B2 (en) * 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
JP4340570B2 (ja) * 2004-03-25 2009-10-07 パイオニア株式会社 アドレス情報配信・収集方法、アドレス情報配信・収集プログラム及び送受信端末
US20050257219A1 (en) * 2004-04-23 2005-11-17 Holt John M Multiple computer architecture with replicated memory fields
US7849452B2 (en) * 2004-04-23 2010-12-07 Waratek Pty Ltd. Modification of computer applications at load time for distributed execution
US7707179B2 (en) * 2004-04-23 2010-04-27 Waratek Pty Limited Multiple computer architecture with synchronization
US20060253844A1 (en) * 2005-04-21 2006-11-09 Holt John M Computer architecture and method of operation for multi-computer distributed processing with initialization of objects
US20060095483A1 (en) * 2004-04-23 2006-05-04 Waratek Pty Limited Modified computer architecture with finalization of objects
US7844665B2 (en) * 2004-04-23 2010-11-30 Waratek Pty Ltd. Modified computer architecture having coordinated deletion of corresponding replicated memory locations among plural computers
US8250131B1 (en) * 2004-12-08 2012-08-21 Cadence Design Systems, Inc. Method and apparatus for managing a distributed computing environment
US20070100828A1 (en) * 2005-10-25 2007-05-03 Holt John M Modified machine architecture with machine redundancy
US7761670B2 (en) * 2005-10-25 2010-07-20 Waratek Pty Limited Modified machine architecture with advanced synchronization
US8015236B2 (en) * 2005-10-25 2011-09-06 Waratek Pty. Ltd. Replication of objects having non-primitive fields, especially addresses
US7958322B2 (en) * 2005-10-25 2011-06-07 Waratek Pty Ltd Multiple machine architecture with overhead reduction
US7849369B2 (en) * 2005-10-25 2010-12-07 Waratek Pty Ltd. Failure resistant multiple computer system and method
US7581069B2 (en) * 2005-10-25 2009-08-25 Waratek Pty Ltd. Multiple computer system with enhanced memory clean up
US7660960B2 (en) * 2005-10-25 2010-02-09 Waratek Pty, Ltd. Modified machine architecture with partial memory updating
US20070172063A1 (en) * 2006-01-20 2007-07-26 Microsoft Corporation Out-Of-Band Authentication for Automated Applications ("BOTS")
US7962553B2 (en) 2006-07-31 2011-06-14 Hewlett-Packard Development Company, L.P. Method and system for distribution of maintenance tasks in a multiprocessor computer system
US20080126506A1 (en) * 2006-10-05 2008-05-29 Holt John M Multiple computer system with redundancy architecture
US20080114853A1 (en) * 2006-10-05 2008-05-15 Holt John M Network protocol for network communications
US20080126503A1 (en) * 2006-10-05 2008-05-29 Holt John M Contention resolution with echo cancellation
US20080126572A1 (en) * 2006-10-05 2008-05-29 Holt John M Multi-path switching networks
US20080140863A1 (en) * 2006-10-05 2008-06-12 Holt John M Multiple communication networks for multiple computers
US20080140858A1 (en) * 2006-10-05 2008-06-12 Holt John M Switch protocol for network communications
WO2008040083A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Adding one or more computers to a multiple computer system
WO2008040068A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Advanced synchronization and contention resolution
US20080140801A1 (en) * 2006-10-05 2008-06-12 Holt John M Multiple computer system with dual mode redundancy architecture
US20080114962A1 (en) * 2006-10-05 2008-05-15 Holt John M Silent memory reclamation
US20080134189A1 (en) * 2006-10-05 2008-06-05 Holt John M Job scheduling amongst multiple computers
WO2008040078A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Synchronization with partial memory replication
US20080120478A1 (en) * 2006-10-05 2008-05-22 Holt John M Advanced synchronization and contention resolution
US7962697B2 (en) * 2006-10-05 2011-06-14 Waratek Pty Limited Contention detection
WO2008040075A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Contention detection with modified message format
US20080127213A1 (en) * 2006-10-05 2008-05-29 Holt John M Contention resolution with counter rollover
US7949837B2 (en) * 2006-10-05 2011-05-24 Waratek Pty Ltd. Contention detection and resolution
US20080151902A1 (en) * 2006-10-05 2008-06-26 Holt John M Multiple network connections for multiple computers
US20100054254A1 (en) * 2006-10-05 2010-03-04 Holt John M Asynchronous data transmission
US20080140975A1 (en) * 2006-10-05 2008-06-12 Holt John M Contention detection with data consolidation
US20100121935A1 (en) * 2006-10-05 2010-05-13 Holt John M Hybrid replicated shared memory
WO2008040066A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Redundant multiple computer architecture
US20080126372A1 (en) * 2006-10-05 2008-05-29 Holt John M Cyclic redundant multiple computer architecture
AU2007304895A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Advanced contention detection
US8090926B2 (en) * 2006-10-05 2012-01-03 Waratek Pty Ltd. Hybrid replicated shared memory
US20080250221A1 (en) * 2006-10-09 2008-10-09 Holt John M Contention detection with data consolidation
US8316190B2 (en) * 2007-04-06 2012-11-20 Waratek Pty. Ltd. Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping
US7756888B2 (en) * 2007-07-03 2010-07-13 Oracle America, Inc. Method and apparatus for providing heterogeneous resources for client systems
US8977645B2 (en) 2009-01-16 2015-03-10 Google Inc. Accessing a search interface in a structured presentation
US20100185651A1 (en) * 2009-01-16 2010-07-22 Google Inc. Retrieving and displaying information from an unstructured electronic document collection
US8615707B2 (en) * 2009-01-16 2013-12-24 Google Inc. Adding new attributes to a structured presentation
US8452791B2 (en) 2009-01-16 2013-05-28 Google Inc. Adding new instances to a structured presentation
US8412749B2 (en) 2009-01-16 2013-04-02 Google Inc. Populating a structured presentation with new values
US20110106819A1 (en) * 2009-10-29 2011-05-05 Google Inc. Identifying a group of related instances
US20100306223A1 (en) * 2009-06-01 2010-12-02 Google Inc. Rankings in Search Results with User Corrections
US10165036B1 (en) * 2011-12-21 2018-12-25 Amazon Technologies, Inc. Network resource remote process execution
US8650280B2 (en) * 2011-12-28 2014-02-11 Sybase, Inc. Monitoring distributed task execution using a chained text messaging system
US9449346B1 (en) 2014-05-21 2016-09-20 Plaid Technologies, Inc. System and method for programmatically accessing financial data
US9595023B1 (en) 2014-05-21 2017-03-14 Plaid Technologies, Inc. System and method for facilitating programmatic verification of transactions
US9600327B2 (en) * 2014-07-10 2017-03-21 Oracle International Corporation Process scheduling and execution in distributed computing environments
US20170004182A1 (en) 2015-06-30 2017-01-05 Vmware, Inc. Allocating, configuring and maintaining cloud computing resources using social media
US10257143B2 (en) 2015-06-30 2019-04-09 Vmware, Inc. Methods and apparatus to generate knowledge base articles
US10250539B2 (en) 2015-08-04 2019-04-02 Vmware, Inc. Methods and apparatus to manage message delivery in enterprise network environments
US10841268B2 (en) 2015-08-04 2020-11-17 Vmware, Inc. Methods and apparatus to generate virtual war rooms via social media in enterprise network environments
AU2016321166B2 (en) 2015-09-08 2021-07-15 Plaid Inc. Secure permissioning of access to user accounts, including secure deauthorization of access to user accounts
CN105302777B (zh) * 2015-09-25 2018-05-04 福建四创软件有限公司 基于网格动态播放的水环境信息展示方法及系统
CN105373430A (zh) * 2015-10-13 2016-03-02 惠州Tcl移动通信有限公司 一种动态分配编译机的系统及其方法
US10726491B1 (en) 2015-12-28 2020-07-28 Plaid Inc. Parameter-based computer evaluation of user accounts based on user account data stored in one or more databases
US10984468B1 (en) 2016-01-06 2021-04-20 Plaid Inc. Systems and methods for estimating past and prospective attribute values associated with a user account
US10878421B2 (en) 2017-07-22 2020-12-29 Plaid Inc. Data verified deposits
US11468085B2 (en) 2017-07-22 2022-10-11 Plaid Inc. Browser-based aggregation
US10951656B2 (en) 2017-08-16 2021-03-16 Nicira, Inc. Methods, apparatus and systems to use artificial intelligence to define encryption and security policies in a software defined data center
US11316862B1 (en) 2018-09-14 2022-04-26 Plaid Inc. Secure authorization of access to user accounts by one or more authorization mechanisms
US11887069B2 (en) 2020-05-05 2024-01-30 Plaid Inc. Secure updating of allocations to user accounts
US11327960B1 (en) 2020-10-16 2022-05-10 Plaid Inc. Systems and methods for data parsing

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4977594A (en) 1986-10-14 1990-12-11 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4827508A (en) 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
US5050213A (en) 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4932026A (en) * 1986-12-19 1990-06-05 Wang Laboratories, Inc. Apparatus for distributing data processing across a plurality of loci of control
US5113393A (en) * 1986-12-19 1992-05-12 Wang Laboratories, Inc. Apparatus for distributing data processing
US5047948A (en) 1989-04-25 1991-09-10 Turner Joseph D Medication dispensing system
US5241671C1 (en) 1989-10-26 2002-07-02 Encyclopaedia Britannica Educa Multimedia search system using a plurality of entry path means which indicate interrelatedness of information
US5260999A (en) 1991-06-28 1993-11-09 Digital Equipment Corporation Filters in license management system
JPH05151178A (ja) * 1991-11-26 1993-06-18 Toshiba Corp 分散協調型問題解決装置
AU662805B2 (en) * 1992-04-06 1995-09-14 Addison M. Fischer A method for processing information among computers which may exchange messages
US5390281A (en) * 1992-05-27 1995-02-14 Apple Computer, Inc. Method and apparatus for deducing user intent and providing computer implemented services
JPH05324357A (ja) * 1992-05-27 1993-12-07 Toshiba Corp 階層的アドレス管理方式
JP2502914B2 (ja) * 1992-07-31 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ転送方法及び装置
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
US5499364A (en) * 1993-10-14 1996-03-12 Digital Equipment Corporation System and method for optimizing message flows between agents in distributed computations
US5423043A (en) * 1994-01-21 1995-06-06 International Business Machines Corporation Method and apparatus for creating and monitoring logical associations among desktop objects
US5655081A (en) * 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
JP3927600B2 (ja) * 1995-05-30 2007-06-13 コーポレーション フォー ナショナル リサーチ イニシアチブス 分散タスク実行のためのシステム
US5710918A (en) * 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US5745754A (en) 1995-06-07 1998-04-28 International Business Machines Corporation Sub-agent for fulfilling requests of a web browser using an intelligent agent and providing a report
US5754857A (en) 1995-12-08 1998-05-19 Sun Microsystems, Inc. Distributed asynchronous workflow on the net
US5692047A (en) 1995-12-08 1997-11-25 Sun Microsystems, Inc. System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
US6157941A (en) 1998-03-18 2000-12-05 Oracle Corporation Architecture for client-server communication over a communication link

Also Published As

Publication number Publication date
US6574628B1 (en) 2003-06-03
EP0846297A4 (en) 2002-07-31
JP2005141762A (ja) 2005-06-02
AU5953296A (en) 1996-12-18
EP0846297A1 (en) 1998-06-10
JPH11506233A (ja) 1999-06-02
US20070073732A1 (en) 2007-03-29
US20030208467A1 (en) 2003-11-06
WO1996038795A1 (en) 1996-12-05

Similar Documents

Publication Publication Date Title
JP3927600B2 (ja) 分散タスク実行のためのシステム
Goodyear Enterprise System Architectures: Building Client Server and Web Based Systems
Subrahmanian Heterogeneous agent systems
O'Sullivan Towards a precise understanding of service properties
CN100371914C (zh) 个人信息安全与交换的工具
US6092197A (en) System and method for the secure discovery, exploitation and publication of information
US7603300B2 (en) Collection and analysis of trading data in an electronic marketplace
Adam et al. Strategic directions in electronic commerce and digital libraries: Towards a digital agora
US20060136923A1 (en) System for distributed task execution
Parente Beyond The Hype: A Taxonomy Of E-Health Business Models: How to build a health data infrastructure that can deliver both a public and a private good.
US20050038707A1 (en) Methods and apparatus for enabling transactions in networks
US20060265508A1 (en) System for administering a multiplicity of namespaces containing state information and services
Tsvetovatyy et al. Toward a Virtual Marketplace: Architectures and Strategies.
WO1999001834A1 (en) System and method for the secure discovery, exploitation and publication of information
JP2001523026A (ja) 権利管理および/または他の情報にもとづくマッチング、ナローキャスト、および/または分類のシステムおよび方法
CN101124578A (zh) 包括增值和请求式数据传送的可共享多租户参考数据实用工具和储存库以及运行方法
Wang A conceptual model for virtual markets
Afsarmanesh et al. Management of distributed information in virtual enterprises-the PRODNET approach
Larsson et al. The transparent market
CA2222594C (en) System for distributed task execution
US20080162306A1 (en) Systems and methods for performing priority reservations and transactions
Laufmann The Information Marketplace: The Challenge of Information Commerce.
Krishnaswamy et al. Towards data mining services on the internet with a multiple service provider model: An xml based approach
Papazoglou The role of agent technology in business to business electronic commerce
JP2007109246A (ja) 分散型タスク実行システム

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040330

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041227

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050120

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070305

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100309

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110309

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110309

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120309

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130309

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130309

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140309

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term