JP2002540529A - 分散コンピュータ環境のための動的アプリケーションシステム - Google Patents

分散コンピュータ環境のための動的アプリケーションシステム

Info

Publication number
JP2002540529A
JP2002540529A JP2000608279A JP2000608279A JP2002540529A JP 2002540529 A JP2002540529 A JP 2002540529A JP 2000608279 A JP2000608279 A JP 2000608279A JP 2000608279 A JP2000608279 A JP 2000608279A JP 2002540529 A JP2002540529 A JP 2002540529A
Authority
JP
Japan
Prior art keywords
component
components
server
user
client application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000608279A
Other languages
English (en)
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 JP2002540529A publication Critical patent/JP2002540529A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 好適な実施の形態では、アプリケーションの動作環境に適応する挙動指向オブジェクトを利用する、動的アプリケーションシステムである。本発明の動的アプリケーションは、ユーザが要求する機能を実行するために必要なコンポーネントのみを使用する。本発明の好適な実施の形態の動的クライアントアプリケーションは、最小オペレーティングシステムで動作することができる。これらオペレーティングシステムは、ハンドヘルドコンピュータ、PDA、電気機器等を含むことができる。動的クライアントアプリケーションは、サーバとの接続をもたらし、サーバからシステムコンポーネントのセットをダウンロードし、ユーザインタフェースを生成するためにそれらコンポーネントをインストールする、最小実行可能コードを含む「シード」プログラムを利用する。その後、ユーザは、システムに対し所望の機能を要求することができる。そして、クライアントアプリケーションは、機能を実行するためかまたは分散コンピュータシステムの他の場所にあるこの機能にアクセスするためにクライアントアプリケーションに必要なコンポーネントをダウンロードする。

Description

【発明の詳細な説明】
【0001】 関連出願 本出願は、特許法第119条(35 U.S.C.§119)によって199
9年3月29日に出願された仮特許出願第60/126,928号の優先権を主
張するものであり、そのすべての内容は引用をもって本明細書内に包含されたも
のとする。 技術分野 本発明は、動的アプリケーションシステムに関し、特に、挙動指向(beha
viorally oriented)オブジェクトプログラミングを実現する
動的アプリケーションシステムに関する。 背景技術 目下、ソフトウェアアプリケーションは本質的に、指定された機能(feat
ure)および振舞いを引起すようにコード化された何行もの命令である。これ
らアプリケーションは、テクノロジの急速な変化に適応することが困難であり、
システムリソースを使用する場合に比較的厄介である傾向にある。一般に、従来
のアプリケーションは、組込まれた機能のすべてを必要とするユーザはほとんど
いないという事実にも関わらず、すべての機能をすべてのユーザに提供しようと
する。
【0002】 これらアプリケーションの主な例は、情報テクノロジ管理の分野にある。情報
テクノロジ、すなわちデジタル情報を取得し、管理し、利用する分野は、ビジネ
スおよび他の専門的な領域においてますます極めて重要かつ本質的なリソースと
なってきている。情報は、現在、他のリソースと同様に処理されなければならな
い重要かつ豊富なリソースとして見なされている。生データは、取得されなけれ
ばならず、格納されなければならず、使用可能な形態に処理されなければならな
い。
【0003】 グローバルネットワーク、すなわちインタネットの出現前、情報リソースを管
理することは比較的単純だった。一般に、かかる情報のためのデータソースは、
静的レポート、ファクトシートまたは周期的に更新されるデータベースからなっ
ていた。このデータは、通常、ローカルエリアネットワーク上で保存されていた
。現在、数億もの家庭およびビジネスの相互接続があり、何十万もの即時に利用
可能データソースがあり、これらデータソースが日々潜在的に変化しているため
、古い情報管理ツールは十分ではない。これら多数のデータソースに生データが
存在しても、潜在的なユーザがそれらデータにアクセス不可能である場合、それ
は無駄である。
【0004】 かかる情報を使用可能にし、データを効率的な方法で収集し、このデータをユ
ーザにとってアクセス可能でありかつ有益である形態に処理する、製品およびサ
ービスが、非常に強く必要とされている。しばしば、生データがアクセス可能で
あり収集される場合であっても、それら生データが大量であるために重要なデー
タがユーザから隠れたままになる可能性がある。
【0005】 更により重大なことは、情報リソースに関連するコンテンツ、フォーマットお
よびアクセスプロトコルが日々変化する環境で動作することができる製品および
サービスが必要である、ということである。情報収集および大抵の他の目的のた
めの従来のアプリケーションは、多数の命令の行からなり、それらは共に結び付
られることにより、アプリケーションを定義する指定された機能、振舞いおよび
ユーザインタフェースのセットを引起す。これらプログラムは、通常、アプリケ
ーションのわずかな変化さえも実現するために、プログラミングリソースを非常
に多く消費する必要がある。これらアプリケーションは、データソースまたは他
のアプリケーション環境のフォーマットおよびプロトコルに発生している頻繁か
つ進行中の変化に、迅速におよび効率的に適応することができない。アプリケー
ションが適応可能であっても、必要な変更を行うためにその特定のアプリケーシ
ョンに熟達したプログラマの技能が必要である。
【0006】 従来のアプリケーションは、通常、個々のユーザが各々必要とする可能性があ
るか否かに関わらずすべての機能と振舞いとを含むように設計されている。この
ため、従来のアプリケーションは、一般に非常にサイズが大きい。更に、従来の
アプリケーションは、通常、特定のハードウェアプラットフォーム、オペレーテ
ィングシステムまたはアプリケーションドメインに制限されている。このため、
アプリケーションは、通常、他のプラットフォーム、オペレーティングシステム
またはアプリケーションドメインで使用されるためには実質的に修正されなけれ
ばならない。
【0007】 目下、利用可能である多量のデータソースから、今だけでなく将来更に量が増
大した場合にも、データの収集、格納および処理が効率的で信頼性の高いシステ
ムが必要とされている。
【0008】 目下、あらゆる環境で利用することができ、特定のユーザの必要に応じて容易
に実現することができる、動的システムが必要とされている。 目下、プログラマ以外の人に使用可能であるように平易に実現されアップグレ
ードされることが可能であり、フォーマットおよびプロトコルの変化を自身で確
認可能であるシステムが必要とされている。
【0009】 従来のソフトウェアプログラムの他の重大な問題は、それらの環境に適応する
またはそこから「学習する」ことができない、ということである。オブジェクト
指向言語で開発されるものを含む大抵のプログラムは、目的指向である。オブジ
ェクトは、指定された方法で振舞うように特定のタスクが割当てられる。インス
タンス化されたオブジェクトは、通常特定のメッセージが発生するよう期待して
おり、かかるメッセージを受取り損ねると、アプリケーションが中断する結果と
なる可能性がある。
【0010】 このため、オブジェクトが、アプリケーションの目的を達成するように適応す
るために環境によって影響され得るようにするシステムおよびプロセッサが必要
とされる。
【0011】 目下、情報収集の分野だけでなく他のアプリケーション環境においてもかかる
システムが必要とされる。 本発明は、好適な実施の形態において、アプリケーションの動作環境に適応す
るために挙動指向(behaviorally−oriented)オブジェク
トを利用する、動的アプリケーションシステムを提供することにより、これら要
求を達成する。動的アプリケーションは、ユーザが必要とする機能を実行するた
めに必要なコンポーネントのみをインスタンス化する。
【0012】 本発明の好適な実施の形態の動的クライアントアプリケーションは、最小のオ
ペレーティングシステムで動作することができる。これらオペレーティングシス
テムは、ハンドヘルドコンピュータ、PDA、電気機器等を含んでよい。動的ク
ライアントアプリケーションは、サーバとの接続をもたらし、サーバからシステ
ムコンポーネントのセットをダウンロードし、ユーザインタフェースを生成する
ためにそれらコンポーネントをインストールするための、最小の実行可能コード
を含む、「シード(seed)」プログラムを利用する。シードアプリケーショ
ンは、この時点で休止(dormant)段階に入ることができる。
【0013】 そして、ユーザは、システムに所望の機能を要求することができる。その後、
クライアントアプリケーションは、機能を実行するためかまたは分散コンピュー
タシステムの別の場所でこの機能にアクセスするために、クライアントアプリケ
ーションが必要とする、コンポーネントをダウンロードする。
【0014】 シードプログラムは、好適な実施の形態では、最初、クライアントコンピュー
タのユーザにアイデンティフィケーションを要求する。このアイデンティフィケ
ーションはサーバに渡され、サーバは、そのアイデンティフィケーションに割当
てられるユーザのプロファイル、すなわちユーザに許可された特権およびアクセ
スを決定し、ユーザにとって使用が許可されるシステムコンポーネントのコンポ
ーネントをダウンロードする。また、プロファイルは、ユーザが属するあらゆる
ユーザグループの名前または識別を示すグループメンバシップ等の情報も含んで
よい。ユーザは、アイデンティフィケーションを所有していない場合は「ゲスト
」としてログされ、基礎レベルのコンポーネントがダウンロードされインスタン
ス化される。
【0015】 好適な実施の形態では、これらシステムコンポーネントは、コンポーネントロ
ーダと、初期アプリケーション構造と初期アプリケーション構造のコンポーネン
トの各インスタンスに割当てられる属性とを決定し、他のコンポーネントを検査
する、XML(拡張可能マークアップ言語(eXtensible Marku
p Language))パーサ等のアプリケーションと、を含む。ユーザが追
加の機能を要求すると、クライアントアプリケーションは、サーバに対するアク
セス要求を作成し、ユーザが提供する情報に基づいて選択されたコンポーネント
をダウンロードする。
【0016】 コンポーネントは、実行時にユーザからのデータと結合されることにより、ア
プリケーションに特化した機能を提供する。これにより、多くのタスクのための
アプリケーションに対し未だ汎用的(generic)でありながら、各コンポ
ーネントに対して振舞いの複雑なセットを生成することができる。
【0017】 好適な実施の形態では、コンポーネントは、挙動的(behaviorall
y)オブジェクト指向コンポーネントを含む。特に、コンポーネントは、コンポ
ーネントまたはオブジェクト間に豊富なメッセージングを提供することができる
。従来のオブジェクト指向システムでは、以前のオブジェクトは、オブジェクト
間のメッセージングが理解することができる前にオブジェクトインタフェースの
特定のパラメータを事前に理解することが必要である、静的インタフェースを使
用する。更に、以前のオブジェクトは、それらが相互作用するオブジェクトから
いくつかの応答を期待するように生成される。期待される応答を受取らないかま
たは戻さないことにより、アプリケーションは中断するかまたは障害を起こす。
【0018】 本発明は、好適な実施の形態において、挙動指向(behavior−ori
ented)オブジェクトを提供する。コンポーネントまたはインスタンス化さ
れたオブジェクトは、いずれかまたは両方のオブジェクトのインタフェースが実
質的に変化する場合であってもオブジェクト間の有効な通信を可能にするよう、
互いに疎結合されている。好適な実施の形態の特定の実現は、2段階インタフェ
ースを提供するコンポーネントインタフェースを使用する。第1段階により、オ
ブジェクトは第2のオブジェクトの単純な通信または「タップ(tap)」を実
行することができる。このタップは、第1のオブジェクトのアイデンティフィケ
ーションと、第1のオブジェクトに応答する方法に関する情報と、を含む。第2
のオブジェクトは、第2のオブジェクトのエントリポイントに関する情報を提供
することによって応答する。そして、第1のオブジェクトは、それらエントリポ
イントを通して第2のオブジェクトに豊富なメッセージを送る。また、これら挙
動指向オブジェクトは、「タップ」される場合、メッセージを期待しないが受取
るようにも設計される。その結果、各オブジェクトは、いかなる他のオブジェク
トに対してもメッセージを生成するように、またはいずれのオブジェクトに対し
てもまったくメッセージを生成しないように、動的に変更されるようになる。
【0019】 挙動指向オブジェクトの他の特徴は、そのプログラムされた振舞いで有用な機
能を実現するその能力を「グレード付けする(grade)」ことができる、と
いうことである。コンポーネントの機能が使用されるか、またはユーザがコンポ
ーネントのパフォーマンスで「満足している」場合、コンポーネントのグレード
は上昇する。ユーザがコンポーネントに不満足であるか、または機能がある程度
の時間利用されていない場合、グレードは低下する。他のコンポーネントは、そ
のコンポーネントにメッセージを送るか判断するためにコンポーネントのグレー
ドを使用してもよい。コンポーネントは、この能力によってより有用な振舞いに
突然変異するよう「促進され(encouraged)」てもよい。有用な機能
は、コンポーネントに対しそれらの振舞いを使用するよう促進する一方で、使用
されない振舞いはドロップ(drop)される。コンポーネントは、そのスコア
が所定のレベルに落ちると消滅(kill off)されてもよい。
【0020】 本発明の特定の実現の好適な実施の形態では、クライアントアプリケーション
は情報管理ツールとなる。シードアプリケーションは、サーバからコンポーネン
トをダウンロードすることにより、それらコンポーネントを他のサーバおよび/
またはデータマイナと通信するユーザインタフェースにインスタンス化すること
ができるようにする。また、ユーザは、ユーザのプロファイルが許可する場合は
、サーバのプレミアムコンテントデータベースにアクセスして前処理された情報
を取得することができる。ユーザは、探索プロセスを高速化するために、特別な
データマイナを有する好適なポータルにアクセスすることができる。データマイ
ナは、データサイトに含まれるデータが基準に適合するか判断するために各々が
ルールおよび/または戦略のセットを適用する、ソフトウェアオブジェクトの集
まりである。これらマイナは、ファジィ論理を採用することにより、データが基
準に適合するか判断し、同様にユーザの確認を要求してよい。また、ユーザは、
飛行機、電車および他の旅行サイトと、売買サイトと、トランザクションを必要
とする他のサイトと、等、好適なサービスから情報を探索してもよい。また、ユ
ーザは、非特殊化データマイナを使用して汎用的なまたは特に好ましくはないデ
ータポータルにアクセスすることもできる。
【0021】 本発明の好適な実施の形態の重要な特徴は、フォーマット、プロトコルおよび
異なるサイトへのアクセスにおける変化を常に追跡し確認することができる、と
いうことである。本発明は、これら変化を追跡および確認し、ユーザの介入無し
にこれらサイトへのアクセスを維持するように、システムおよびクライアントア
プリケーションコンポーネントをアップグレードする。
【0022】 本発明の追加の特徴は、個人情報マネージャ(Personal Infor
mation Manager)を組込むことを含む。これにより、ユーザに関
する個人情報が、ユーザがこの情報を頻繁に再入力する必要なくクライアントア
プリケーションに組込まれることが可能である。
【0023】 他の特徴は、サーバ上のデータストアハウスである。ユーザは、どこでもアク
セスするために収集した情報を格納することができる。ユーザは、毎回同じクラ
イアントコンピュータにアクセスする必要はない。ユーザは、単にユーザ・アイ
デンティフィケーションを入力するだけで、サーバと通信しているいずれかのコ
ンピュータから、収集した情報にアクセスすることができる。
【0024】 サーバへのアクセスは、大抵の現行システムコンポーネントを維持することに
対して重要であるが、クライアントアプリケーションは、クライアントコンピュ
ータにコンポーネントをキャッシュすることにより、クライアントコンピュータ
とサーバとの間の接続が切断された場合にユーザがクライアントアプリケーショ
ンを利用することができるようにする。これにより、ラップトップコンピュータ
、ハンドヘルド・デバイス、電気機器、携帯電話が、クライアントコンピュータ
として機能することが可能になる。
【0025】 これらおよび他の特徴は、以下の好適な実施の形態の詳細な説明と図面とから
明らかとなろう。 好適な実施態様の説明 本発明は、共にネットワークに接続されている無数のノードに亙って分散され
る情報のビット等、個々のエンティティ間の動的な関係を生成するシステムおよ
びプロセスを提供する。好適な説明的な実施の形態では、このシステムおよびプ
ロセスの有用性の例として、情報収集アプリケーションについて説明する。
【0026】 本明細書で示す説明的な実施の形態は、説明のためであることが意図されてお
り、請求される発明の範囲を不当に限定することが意図されていない、というこ
とは明白に理解されなければならない。本明細書で述べていない他の実施の形態
および適用は、請求されている発明の範囲内にあるとみなされる。
【0027】 本発明の好適な実施の形態のシステムおよびプロセスは、クライアント/サー
バ関係で動作する挙動指向(behaviorally oriented)プ
ログラムを生成するために動的アプリケーション(Dynamic Appli
cation)アーキテクチャを利用する。動的アプリケーションは、ソフトウ
ェアソルーションを形成するために合せて動作するコンポーネントの無制限のセ
ットとして存在する。すべての動的アプリケーションは、「シード(Seed)
」等の起点で開始する。このシードは、動的アプリケーションのための初期環境
を生成する。
【0028】 非常に単純な動的アプリケーションの1つの例は、ワールドワイドウェブ(W
orld Wide Web)である。ワールドワイドウェブ用のシードは、ユ
ーザにワールドワイドウェブへのアクセスを提供するブラウザである。しかしな
がら、ブラウザは、一般に、古い静的アーキテクチャ(ハードコード化された機
能を使用)と新しい動的アーキテクチャとの混合である。このため、ブラウザは
、一般に、比較的固定された機能のセットを含み、非常に大きく、動作するため
に拡張リソースを必要とする。
【0029】 本発明のシステムおよびプロセスは、上述したブラウザとは非常に異なって動
作する。本システムおよびプロセスは、完全に動的なシードを提供する。本発明
の好適な実施の形態のシードは、それ自体の特定の機能を有していない「クライ
アント」として作用する。実際に、それは、それが要求された機能を実行するた
めに必要であるような機能を1つのサーバ(または複数のサーバ)から要求する
。好適な実施の形態では、本システムおよびプロセスは、以下のコンポーネント
から作成される。
【0030】 シード(Seed) ネットワーク接続(インタネット、他のグローバルネットワークサービス、L
AN、WAN、MANまたは他のネットワーク) メンバシップ・アイデンティフィケーション サーバ(リポジトリ、データベースおよびストアハウスを含む) クライアント 好適なポータル 好適なサービス 外部リポジトリ ローカル個人情報マネージャシード シードは、上述したように、完全に動的なカーネルである。好適な実施の形態
では、シードはおよそ75Kバイトである。これにより、最小のハンドヘルド・
デバイスまたは電気機器上でさえも機能することができる。シードは、最初にコ
ンピュータで実行される時、ユーザに対しディスクスペースとユーザのメンバシ
ップ・アイデンティフィケーション(後述する)とを要求する。ユーザがまだメ
ンバシップ・アイデンティフィケーションを有していない場合、シードは、ユー
ザに制限付きゲストメンバシップを認める。シードの特定の実現については、後
により詳細に説明する。メンバシップ・アイデンティフィケーション ユーザには、メンバシップ・アイデンティフィケーションが割当てられる。メ
ンバシップ・アイデンティフィケーションは、ユーザに特定の機能のセットを提
供する。例えば、それらのメンバシップ・アイデンティフィケーションにより、
ユーザは異なるレベルのサービスにアクセスが可能であってよい。これら異なる
レベルのサービスは、料金を支払うことによって利用可能となってよく、または
、アクセスの必要性を基準にユーザに割当てられてもよい。サーバ サーバは、本発明の好適な実施の形態のシステムおよびプロセスのための機能
を提供する。サーバは、接続、ハードウェアを提供し、システムに電力を供給し
、機能およびメンバシップ特権のすべてに対するアクセスを提供する。本システ
ムおよびプロセスにより、クライアント(後述する)は、ハンドヘルド・デバイ
スまたは電気機器、ラップトップコンピュータ等の場合等、一定でない時間サー
バから切断されることが可能である。その後は、デバイスは、切断の前にキャッ
シュされた情報と、ネットワークへの接続中に事前に取得された機能およびコン
ポーネントと、に依存しなければならない。好適な説明的な実施の形態では、サ
ーバは、3つの主なコンポーネント(ハードウェアおよびネットワーク接続に加
えて)、すなわち、機能(Feature)リポジトリ、プレミアムコンテント
データベース(Premium Content Database)およびユ
ーザストアハウス(User Storehouse)を有する。
【0031】 機能リポジトリは、特定の能力または機能を可能にするために必要なコンポー
ネントのすべてを含む(例えば、動的リンク・ライブラリ(dynamic l
ink library(DLL))ファイル、データファイル等)。すべての
機能がある時間展開し、そのため機能リポジトリがそれに従って展開することに
なる、ということは予期される。このため、クライアントを最新および活力ある
ように維持するためには、サーバに対する信頼性の高い接続が必要である。機能
リポジトリは、あらゆる利用可能なデータ記憶テクノロジを使用して実現されて
よく、ディレクトリサービスまたはファイルシステム機構によりアクセスされて
よい。
【0032】 プレミアムコンテント・データベースは、前処理されたデータを含む。このデ
ータベースはオプションであるが、本明細書では、例示的な実施の形態として使
用される情報管理アプリケーションにおいて特定の有用性を有するものとして説
明する。本発明がこの例示的な実施の形態に限定されない、ということは明白に
理解されなければならない。場合によっては、各クライアントにこのデータ自体
を取得し処理することを要求するのではなく、サーバが、かかる前処理データへ
のアクセスを提供することがより効率的である場合がある。プレミアムコンテン
トデータベースに含まれるかかる前処理データの例は、顧客マーケティングリス
トである。また、前処理は、異種のデータを調整し、配列し、収集することによ
り、データに値を追加するために使用されてもよい。
【0033】 ユーザストアハウスは、かかる機能を要求した特定のユーザに属する情報を格
納するために使用される。ストアハウスにより、ユーザは、特定のコンピュータ
から独立して情報を格納することができる。このため、ユーザは、格納されたデ
ータのロケーションに関係無くコンピュータからコンピュータに移動することが
できる。ユーザは、コンピュータと、サーバへのネットワーク接続と、メンバシ
ップ・アイデンティフィケーションと、のみが必要である。クライアント クライアントは、本発明の好適な実施の形態では、「有機的な(organi
c)」ユーザ対話アプリケーションである。クライアントは、シードによって開
始する。シードは、ユーザからメンバシップ・アイデンティフィケーション等の
初期情報を取得すると、サーバに接続してユーザインタフェースの形成を開始す
るために十分なコンポーネントをサーバからダウンロードする。そして、ユーザ
がこのユーザインタフェースによってシステムと対話を開始すると、必要に応じ
て追加のコンポーネントおよびフォームがダウンロードされキャッシュされる。
例えば、シードは、有効なメンバシップ・アイデンティフィケーションを取得す
ると、サーバに対し、ブラウザ等のユーザインタフェースのためのコンポーネン
トを要求する。また、シード/サーバは、特定のメンバシップ・アイデンティフ
ィケーションが許容され、特定のユーザインタフェースをまたは優先する、とい
うことを認識してもよい。また、シード/サーバは、そのメンバシップ・アイデ
ンティフィケーションに関連するユーザが、特定の言語、すなわち、米語、英語
、日本語、フランス語等を要求することを認識してもよい。
【0034】 クライアントは、その要求される機能によって必要に応じて常時変化するとい
う点で有機的である。例えば、クライアントは、特定の主題についてデータを取
得するデータ探索アプリケーションとして使用されてよい。そして、クライアン
トは、そのデータを解析し、またはそのデータをワードプロセッシング、レイア
ウトエディタまたは他のアプリケーションと関連付けるために使用されてよい。
ユーザがクライアントの機能の変更を要求すると、追加のコンポーネントおよび
/またはフォームがサーバのリポジトリからダウンロードされてよく、以前にダ
ウンロードされたコンポーネントが破棄されてよい。
【0035】 クライアントの特定の実現については、後により詳細に説明する。好適なデータ・ポータル 説明的な実施の形態では、本発明のシステムおよびプロセスは、種々のソース
からデータを取得することに対する特定のアプリケーションを有する。特に、本
発明は、データ・マイニング機能を効率的に実行することができる。データ・マ
イニングとは、生ソースからの特定の関心のあるデータを抽出することである。
生データは、データに対し単純な規則および戦略を適用するように編成されるソ
フトウェアオブジェクトの集まり(「データ・マイナ(Data Miners
)」)によって処理される。データ・マイナは、それらのタスクを行うためにフ
ァジィ論理を使用する。これは、それらが認識する「probably(十中八
九)、likely(恐らく)またはpossibly(ひょっとすると)」と
いった情報を見付けることを含む。好適な実施の形態では、データマイナは、所
定の基準に非常に一致する情報を識別する「ヒント(hint)」も使用する。
可能性のある情報が識別されると、マイナは質問を行う(「ask」)ことによ
り、情報を確認する。他の情報に適用されるかかる情報には、確率が割当てられ
る。そして、最高確率を有する情報が格納され、低確率情報は破棄される。
【0036】 本発明のシステムおよびプロセスは、すべてではないが大抵のデータリポジト
リまたは「データポータル」をマイニングすることができる。しかしながら、説
明的な実施の形態では、所定の数のこれらリポジトリが「好適なデータポータル
」としてみなされる。これら好適なデータポータルは、特定のフォーマットとこ
れらリポジトリの他の詳細とを知る特別なデータマイナを含む。これら特別なデ
ータマイナは、それらの特定のポータルからのデータの高速かつ信頼性の高い抽
出を実行する。また、ポータルがそこに含まれるデータのフォーマットを変更す
ると、サーバは周期的にポータルのフォーマットを確認する。この確認は、一般
に、バックグラウンドで発生するため、ユーザはこの動作に気付かない。好適なサービス しばしばユーザは、クライアントに対し、旅行の計画を調べかつ予約すること
、商品を購入すること、および金融関係かまたはタイムセンシティブなトランザ
クションを必要とする他の動作等のタスクを、ユーザに代って実行するよう要求
する。本発明のシステムおよびプロセスは、かかるサービスを提供するサイトと
対話することができる特定のデータマイナを提供する。かかるトランザクション
のフォームは頻繁に変化しまたは更新されるため、これらサービスに関連するデ
ータマイナは、頻繁にテストされる。データマイナの確認および更新は、ユーザ
によりいかなる動作も要求されることなく実行される。外部データリポジトリ 外部データリポジトリは、好適なデータポータルまたは好適なサービスとして
分類されないあらゆるノードとして定義される。これらリポジトリは、それらに
関連した、いかなる特別なデータマイナを有しないため、データ抽出のためによ
り汎用的な戦略が使用される。好適な実施の形態では、データマイナは、特定の
サイトをマイニングするよう割当てられると、迅速に「展開する(evolve
)」か、または有効に消滅されるようにかかる低優先度(後により詳細に述べる
)が与えられる。好適なデータポータルおよび好適なサービスは望ましいが任意
である、ということは理解されなければならない。効率的ではないが、汎用的な
コンポーネントは、通常、好適なデータポータルおよび好適なサービスにアクセ
スすることができる。好適なデータポータルおよび好適なサービスが何らかの理
由で実行不可能であるか失敗した場合、汎用的なコンポーネントが自動的にとっ
て代る。ローカル個人情報マネージャ(PIM) MicrosoftのOutlook等、個人情報マネージャ(PIM)製品
は、ユーザに関する個人情報を維持し他のアプリケーションにインポートするた
めに有用である。PIMは、好適なデータポータルおよび好適なサービスが必要
とするよりもより特定のソルーションを必要とする。一般に、かかる製品は、そ
の特定の製品に対して開発される特定のコンポーネントを必要とする。かかるサ
ービスとの統合は、アウトレットコンポーネント等の専用のプラグ可能インタフ
ェースを含むことによって処理されてよい。しばしばこれらコンポーネントは、
挙動指向コンポーネントではなく手続きコードを含む。この手続きコードは、特
定のPIMとPIMによって提供されるAPIとのインタフェースとに特有であ
る。本発明は、従来のオブジェクト指向方法におけるかかる専用の手続きコード
を奨励はしないがそれに適応することはできる。これらコンポーネントのインス
トールは、挙動指向プログラムコンポーネントのインストールに類似しており、
ユーザに透過的な方法で自動的に発生する。クライアントコンポーネントの実現 概略的に上述したクライアントは、複数の弱く連結されたコンポーネントを備
えた動的ソフトウェアアプリケーションである。コンポーネントは、インスタン
ス化されたオブジェクトを備え、好ましくは階層的「コンテナ」オブジェクト(
例えば、他のオブジェクトを含むオブジェクト)として実現される。好適な実現
では、クライアントアプリケーションは完全に動的であるため、クライアントの
各インスタンスは、異なるコンポーネントのセットを含み、コンポーネントが変
更され更新されるに従い変化する。クライアントアプリケーションはどの時点に
おいても存在するため、本発明によるシステムとのすべてのユーザ対話のための
エントリポイントである。
【0037】 特定の実現では、シードは、クライアントアプリケーションの全体が引起され
るもとになる実行可能コードの最小セットを備える。シードは、最初にインスト
ールされる時、クライアントの唯一のコンポーネントであってよい。シードの役
割は、オペレーティングシステムのカーネルに類似しており、シードは、ブート
アップするコードを表し、他のデバイスおよびソフトウェアへの基本的なリンク
を作成し、より完全に機能的な動作を可能にするためのルーチンを実行する。シ
ードは、手続きコードとして実現されるため、好ましくは、頻繁に変更される必
要がなくオペレーティングシステムの変更等を鑑みて頑強となるように、可能な
限り少ない機能を含む。
【0038】 例えば、シードは、名前、アカウント番号、パスワード等の基本ユーザ情報を
得るためのコマンドラインまたはダイアログボックスタイプのインタフェースを
実現することができ、ユーザインタフェースの形成のために十分なコンポーネン
トをダウンロードするためにサーバへのリンクを作成する。ユーザインタフェー
スにより、クライアントは新たなメンバとの対話を開始することができる。初期
化時にロードされる他のコンポーネントは、データストア等の大容量記憶装置に
アクセスするためかまたはキャッシュ構造を確立し動作させるためのコンポーネ
ントを含んでよい。クライアントがサーバとの対話を開始すると、必要に応じて
新たなコンポーネントおよびデータがダウンロードされキャッシュされる。初期
化されると、シードは休止状態になり、クライアントはアプリケーションコンポ
ーネントによって制御される。
【0039】 特定の初期化手続きにおいて、シードは、リポジトリサーバにユーザIDおよ
びパスワード情報を渡し、リポジトリサーバは、ユーザ・アイデンティフィケー
ション、「プロファイル」、初期コードライブラリおよびスタートアップXML
ファイルを返す。ユーザ・アイデンティフィケーションは、サーバによりその特
定のユーザIDに割当てられる一意のコードまたは番号であり、システムを通し
てユーザを一意に識別するために使用される。
【0040】 プロファイルは、ユーザが利用可能なコードまたはモジュールのリスト(ユー
ザIDから決定される許可または特権に基づく)、ロードされるべきコンポーネ
ントのリスト、グループメンバシップ情報等、ユーザ特有情報を含む。初期コー
ドライブラリは、オペレーティングシステムと対話するためのシステムオブジェ
クト等の基本的なシステムタイプの機能を実行し、タスクスケジューリング等の
システムタイプの振舞いを実行するコードを含む。他のコンポーネントは、新た
なコンポーネントをロードし、実行時ソフトウェアアプリケーションにそれらを
インストールするコンポーネントローダと、XMLドキュメントを解析するコン
ポーネントと、を含む。
【0041】 XML解析コンポーネントがインストールされると、セットアップXMLドキ
ュメントを読出すことにより初期アプリケーション構造を決定することができる
。好適な実現は、アプリケーションコンポーネントが実行時に動的に宣言される
宣言的アプリケーション構成方法を使用する。XMLドキュメントは、この宣言
を行うために都合よく使用される。XMLは、厳密にフォーマットされインタネ
ット等の既存の公共通信リンクにより移植可能性が高いため、好適である。スタ
ートアップXMLドキュメントは、コンポーネントの各インスタンスに割り当て
られる特性に加えて、クライアント・アプリケーションに含まれるコンポーネン
トのリストを基本的に含む。
【0042】 上述したコンポーネントは、ユーザインタフェース実現、XML解析、クラス
ローディング等のシステムタイプの機能を提供するが、アプリケーションに特化
した機能を実現するためには、追加のコンポーネントがダウンロードされる。広
義で、いかなるタイプの機能も、テキスト処理、スプレッドシート、インタネッ
トブラウジング等を含む機能リポジトリからのコンポーネントの選択によって実
現することができる。特定の実現では、クライアントは、情報ツールとしての役
割を果たすため、クライアントが所望の情報を指定し、ユーザが指定した情報を
検索し、ユーザが指定した情報をユーザが指定した方法で提供することを可能に
するコンポーネントを、選択的にダウンロードする。
【0043】 クライアントは、何の情報が要求されるか、または情報がどこにあるかについ
て、いかなる事前の知識も有していないため、コンポーネントは、概して、基本
的な振舞いを定義する「汎用的な」コンポーネントであるが、ダウンロード時に
いかなる特定の機能をも実現するために十分な構造を有していない。言換えれば
、1つのコンポーネントは、あるユニフォームリソースロケータ(URL)のウ
ェブサイトにアクセスし、HTMLドキュメントを返すための振舞いを含むが、
ダウンロード時に、いずれのURLであるかを指定せず、またはHTMLドキュ
メントの内容に関して何も知らない。このコンポーネントの振舞いは、実行時に
、例えばコンポーネントにURLを指定するデータを与えることにより、アプリ
ケーションに特化した機能を提供するようにカスタマイズされる。汎用的な振舞
いと特定の機能との間のこの区別は、本発明を完全に理解するために重要である
【0044】 コンポーネントは、好ましくは他のコンポーネントの複雑な組合せであり、そ
のため、例えば単にウェブサイトにアクセスしHTML応答ページを返すだけよ
りも複雑な機能を提供する。このため、コンポーネントはデータストア特有では
ないため汎用的であるが、いずれかの他のコンポーネント内に含まれるコンポー
ネントの特定の組合せにより、各コンポーネントが個性的になる。例えば、アド
レス検索に個性化されるコンポーネントは、会社のウェブページにアクセスする
コンポーネントと、返されるHTMLページにおいてZIPコードを識別する他
のオブジェクトと、ZIPコードを囲む返されるページからテキストを選択する
他のオブジェクトと、選択されたテキストをタブ区切りアドレス情報にフォーマ
ットする更に他のオブジェクトと、を含んでよい。これら振舞いの複雑なセット
は、各コンポーネントを非常に機能的にするが、あらゆる会社のウェブページに
適用することができるためまだ汎用的である。
【0045】 コンポーネントは汎用的な要素と挙動指向オブジェクトとを備えるが、コンポ
ーネントがインスタンス化されそれに特定のタスクが与えられると、その機能は
アプリケーションに特化するようになる、ということを留意することが重要であ
る。コンポーネントの特定のインスタンスは、保存され、そのコンポーネントオ
ブジェクトの特定の機能を実現するために再使用されることが可能である。しか
しながら、特定のインスタンスは、他の機能を提供するためにサブクラス化され
るか拡張されることはない。インスタンス化されると、コンポーネントは、例え
ばアクセスする特定のURLを「知り(know)」、戻りHTMLページから
選択する特定の情報を知る。後述するように、コンポーネントには、好ましくは
そのパフォーマンスを向上させるように展開する手段が与えられるか、または有
効に消滅されるようにかかる低優先度が与えられる。
【0046】 本発明の重要な特徴は、コンポーネントがインスタンス化された挙動指向オブ
ジェクトのセットを備える、ということである。言換えれば、コンポーネントは
、サーバに格納されるオブジェクトまたはクラスの拡張、サブクラスまたはオー
バライドされたバージョンではない。そうではなく、サーバ上のクラス、オブジ
ェクトまたはオブジェクト記述から直接インスタンス化される。コンポーネント
は、豊富なメッセージングをサポートする動的インタフェースを実現する高レベ
ルオブジェクトである。インスタンス化されたオブジェクトは、メッセージを受
取った後にのみ、アプリケーションに特化した機能を実行するように応答するこ
とができる。コンポーネントは、殆ど完全に振舞いである。振舞いが与えられた
コンテキストは、アプリケーションに特化した機能となる。
【0047】 図3は、URLからデータを選択するように構成される簡略化されたコンポー
ネント209を示す。コンポーネントは、スレッドコンポーネント301、UR
Lコンポーネント302、データポートコンポーネント303、ページグラバコ
ンポーネント304およびテキスト選択コンポーネント305を含む、他のコン
ポーネントのセットを備える。各コンポーネント301〜305は、コンテナコ
ンポーネントよりもよりプリミティブな振舞いを実現する。スレッドコンポーネ
ント301は、コンポーネント内のメッセージの引渡しを管理する役割を果たす
。概して、コンポーネントに渡されるいかなるメッセージもそのサブコンポーネ
ント301〜305のすべてにブロードキャストされ、いかなるサブコンポーネ
ント301〜305によって生成されるいかなるメッセージも他のすべてのサブ
コンポーネントにブロードキャストされるが、スレッドコンポーネント301は
、その一般的なメッセージの引渡しを変更してよい。挙動オブジェクト指向コンポーネント 上述した実施の形態は、目下利用可能なオブジェクト指向プログラミングパラ
ダイムにおいて実現することができる。以前のオブジェクト指向システムにおけ
る1つの欠点は、オブジェクトが、振舞いを実現している間に従来の手続きコー
ドをカプセル化する、ということである。これにより、オブジェクトが、機能す
ることができる前に、特定のパラメータがインタフェースによって渡されるよう
要求する、静的インタフェースがもたらされる結果となる。2つのオブジェクト
間の対話を確立するために、両オブジェクトは、他方のインタフェースを事前に
理解していなければならない。この要件により、プログラマは、インタフェース
を厳密に定義しなければならなくなる。しかしながら、かかる厳密な定義により
、従来の(非オブジェクト指向の)手続きコードと同じ多くの問題がもたらされ
る。特に、インタフェースが変化すると、アプリケーションが中断する。また、
オブジェクトは、対話する相手のオブジェクトからいくつかの応答を期待するよ
うに生成される。オブジェクトが期待した応答を返さないと、アプリケーション
は中断する。
【0048】 オブジェクトは、2つの方法でコンテキストを受取る。インスタンス化される
時、オブジェクトに属性を割当てることができる。更に、実行時にオブジェクト
に渡されるメッセージは、コンテキストを提供する。共にこれらコンテキスト機
構が、コンポーネントおよびそこに含まれるすべてのコンポーネントに、それら
の機能を定義するために必要な情報を与える。それらが異なる親の範囲内でイン
スタンス化されている場合か、またはそれらに異なるメッセージが渡される場合
、それらの機能は異なる。
【0049】 本発明は、コンポーネントの、それらを「挙動指向(behavior−or
iented)」とするための重要な特徴である、動的オブジェクトインタフェ
ースを提供する、独特な環境を提供する。このため、コンポーネント内のインス
タンス化されたオブジェクトは、互いに「疎結合される(loosely co
upled)」。これは、オブジェクトインタフェースが実質的にまたは完全に
変化することができ、それでもなお有効に他のオブジェクトと通信することがで
きる、ということを意味する。特定の実現は、2段階インタフェースを提供する
コンポーネントインタフェースアーキテクチャを使用する。第1段階では、コン
ポーネントは、通信したい他のコンポーネントを「タップ(tap)」する。タ
ップされたコンポーネントは、そのエントリポイントを示すメッセージまたはメ
ッセージオブジェクトで応答する。そして、第1のコンポーネントは、第2のコ
ンポーネントのエントリポイントに関する新たに取得された知識を使用して、豊
富なメッセージを送る。このように、両方のコンポーネントにハードコードされ
る必要のある手続きインタフェースのみが単純なタップインタフェースである。
図3の破線の相互接続は、この疎結合機構を示唆するために使用されている。
【0050】 タップメッセージは、好ましくは、要求しているオブジェクトの名前またはア
ドレスを含む(そのため、戻りメッセージは正しいオブジェクトに到達すること
になる)。また、要求しているオブジェクトは、応答メッセージをパラメータと
して受取るために十分なインタフェースと、応答メッセージを使用して豊富なイ
ンタフェースを実現するために十分な手続きロジックと、をも実現する。タップ
インタフェースは非常に単純であるため、あらゆる数および種類のコンポーネン
トの基本的な振舞いに関係無く、それらの間で変更なしに使用することができる
。より複雑で豊富なインタフェースは、実行時に動的に決定される。豊富なイン
タフェースを非常にコンテキストに特化した方法で実現することができるため、
コンポーネント間のメッセージングを、従来のオブジェクト指向設計で実際的で
ある以上に豊富にすることができる。
【0051】 オブジェクト指向設計は、しばしば、特定のオブジェクトがアプリケーション
に、進行するためのメッセージを受取ることが必要である。メッセージが来ない
場合、アプリケーションは中断する可能性がある。挙動指向設計は、適当なオブ
ジェクトに対するメッセージを生成する各オブジェクトによって決まるが、それ
ら適当なオブジェクトが何であるかは指定しない。その決定は、メッセージを生
成するオブジェクトに残される。例えば、メッセージを送り、その後戻りメッセ
ージを待って停止するかまたは他のオブジェクトにメッセージを期待しなければ
ならないと通知する、オブジェクトを実現することが一般的である。いずれの場
合も、メッセージが発生しない場合、アプリケーションは中断する。
【0052】 本発明による挙動指向システムでは、オブジェクトはメッセージを期待しない
が、上述したようにタップされる時にそれらを受取る。結果として、各オブジェ
クトは、他のいかなるオブジェクトにも向けられるメッセージを生成するように
(あるいは、GUIにおいて情報を表示する等の終端の(terminal)振
舞いの場合は他のいずれのオブジェクトにもメッセージを生成しないように)動
的に変更することができる。オブジェクトの振舞いが終端である場合、それはア
プリケーションの振舞いに影響するが、アプリケーションを中断させない。
【0053】 計画されていない終端の振舞いは、ソフトウェアシステムにおいて必ず起こる
ことである。重要なことは、かかるイベントを処理するための優れた機構を実現
するということである。上述した挙動指向モデルは、有用なメッセージを生成し
ない機能不全のオブジェクトの増殖をもたらす可能性がある。本発明の特定の実
現では、アプリケーションコンポーネントは、ユーザかまたは他のオブジェクト
により可能な限り頻繁に使用され、削除されるかまたは隠されることを防止する
という、2つの単純な固有の目的を有する。これら目的を達成しようとして、情
報オブジェクトは、有用な情報でユーザを「満足させる(please)」こと
を学習し、ユーザはそれを使用することによってオブジェクトを「教育(tea
ch)」する。
【0054】 本発明のこの特徴は、オブジェクトのプログラムされた振舞いにより有用な機
能を実現するというオブジェクトの能力をグレード付けする、各オブジェクト内
に含まれる機構として実現される。例えば、各コンポーネントは、オブジェクト
のシステムに対する可能性または価値を示す値を保持する1つまたは複数の「第
1の値(primary value)」レジスタを維持する。コンポーネント
が使用される時、オブジェクトはその第1の値を増大させるプリミティブなメソ
ッドを含む。任意に、コンポーネントが、送り側オブジェクトに第1の値のクレ
ジットを与えるために受取り側をトリガする有用な情報(例えば、指定された値
の基準を満たす情報)を受取る場合、更なる強化を与えることができる。第1の
値クレジットは、時間の関数として、または明示的に不十分なメッセージを発行
する結果(すなわち、罰)として、暗示的に低下する可能性がある。
【0055】 このように、価値のある結果をもたらし損ねたおよび/またはそれらの結果を
適当なオブジェクトに向け損ねたオブジェクトは、それらの第1の値が正味減少
することになる。適当な受取り側オブジェクトに向けられる価値のある結果をも
たらすことに成功したオブジェクトは、それらの第1の値が正味増大することに
なる。1つの実現では、オブジェクトの第1の値が指定された最小値より下がる
と、オブジェクト自体が破壊する。他の実施の形態では、オブジェクトは、メッ
セージを送りたがっているオブジェクトが、タップシーケンス中に戻される第1
の値データに基づいて複数の潜在的なターゲットオブジェクトから選択すること
ができるように、それらのタップシーケンスにおいて第1の値テストを実現する
【0056】 再び図3を参照すると、コンポーネント202は、例えばユーザインタフェー
スコンポーネント306かまたは自動化されたスケジューリングコンポーネント
307からのメッセージによってアクセスされる。コンポーネントに与えられる
メッセージオブジェクトは、コンポーネント301〜305によって特定の情報
にアクセスするために使用される「ポスト(post)」または「ゲット(ge
t)」メッセージが必要とする特定の情報を含んでよい。コンポーネント202
がメッセージを受取ると、URLオブジェクト302は、入力メッセージからデ
ータポートコンポーネント303に導出されるポストまたはゲット情報を含む、
ターゲットURLを備えたHTTPメッセージを構成することによって応答する
。データポートコンポーネント303は、ハードウェアおよび/またはオペレー
ティングシステムリソースとインタフェースすることにより、HTTPメッセー
ジを送り、例えば組込まれたHTLMページを含むHTTP応答を受取る。デー
タポートコンポーネント303は、メッセージまたはメッセージの内容をどこに
送っているか、またはメッセージが戻ってくるかについて知識を有していない。
それは、実行時に、それが受取るメッセージで与えられる実行時の指定されたデ
ータに対し汎用的な振舞いを実行することによって特定の機能を実行する。
【0057】 応答メッセージは、例えば、概して受取るメッセージからHTMLタグを剥取
るように構成されているページグラバ304に送られる。この場合も、ページグ
ラバ304は、受取るべきメッセージを事前にまったく予期していない。それは
、HTTPまたはHTMLメッセージを受入れるインタフェースを有する。メッ
セージがまったく受取られない場合、ページグラバ304は、単に休止状態であ
り続ける。ページグラバ304は、HTTPまたはHTMLメッセージを受取る
と、タグを剥取りプレーンテキストメッセージを1つまたは複数のテキスト選択
コンポーネント305に送る。テキスト選択コンポーネントは、例えば、「$」
を含む第1のストリングを見つけそのストリングを値に変換するように構成する
ことができる。
【0058】 他のテキスト選択コンポーネント305は、例えば、指定されたストリング(
例えば、「会社名(Company Name)」)につづく第1のストリング
値を見つけるように構成することができる。テキスト選択コンポーネント305
は、受取るメッセージの知識はまったく有しておらず、選択されるテキストを見
つけなくてもよく、その場合、それは単純に休止状態になる。
【0059】 テキスト選択コンポーネント305がテキストを見つけると、コンポーネント
に対してメッセージが生成される。コンポーネントは、あらゆるコンポーネント
によって生成されるメッセージを、後に例えば会社データストアオブジェクトに
送るメッセージに編集することができる。会社データストアオブジェクト308
は、例えばインデクスとして会社名テキストを使用してページから検索された会
社特有の情報を格納することができる、汎用的なオブジェクトである。データマイニングアプリケーション 本発明の広い概念は、通常、特定のアプリケーションによって述べられる。本
明細書で述べる本発明の特定の実現は、デジタル情報およびサービスを取得し、
管理し、使用する必要があるビジネスまたは他の専門のための環境である。デー
タは、マイニングされ、格納され、処理されることが可能な豊富なリソースであ
る。この処理されたデータは、それがもたらされる元の生データよりずっと有利
に使用することができる。例示の目的で、金融情報を監視する特定の実現を以下
に述べる。
【0060】 本発明は、デジタル情報およびサービスをより容易に見つけ使用することがで
きるようにする一意のアプリケーションを可能にする。この目的に達するために
、本発明は、メンバシップベースの挙動指向システムおよびプロセスがインテリ
ジェントなデジタルアシスタントとして作用するように構成される特定のアプリ
ケーションを含む。デジタルアシスタントは、ユーザの命令から学習して、デジ
タル情報を処理し、編成し、管理する。本発明のこの実施の形態は、以下のよう
にしてユーザを支援する。
【0061】 あらゆる異種のソースからデジタル情報を取得すること 見付かった情報を管理すること まったく異なる情報およびサービスを1つのエントリポイントに統合すること デジタル情報は、しばしば、ユーザが、例えばインタネットサーチエンジン(
時に、データポータル(Data Portal)と呼ばれる)を使用してアク
セスすることができる生データの堆積された中に隠される。サーチエンジンがデ
ータに対してポータルを提供しても、データの意味または趣旨は、ユーザが、自
力でまたはサーチエンジンを含む従来からのデータアクセステクノロジを使用し
て発見することが困難である場合がある。時に、サーチエンジンによって返され
るデータが単に多いことにより、重大な情報が不明瞭になる。
【0062】 本発明の特定の実現は、上述した「データマイニング」と呼ばれるプロセスを
使用する。データマイニングにおいて、生データは、「データマイナ」409(
図5に示す)に編成されるインスタンス化されたソフトウェアオブジェクトの集
まりによって処理される。データマイナ409は、データに単純な規則および戦
略を適用することにより生データを処理する。各マイナは、行われる作業に対し
、異なる規則または規則の変形を適用する。ユーザが、マイナが生成した情報と
対話すると、その対話により、情報を生成したマイナと情報オブジェクト自体と
が共に促進されるかまたは制限される。
【0063】 特定の実現では、シードプログラム411がユーザに引渡される。初期状態に
おいて、シードプログラムは、他のコンポーネントがダウンロードされていない
ため、本質的にクライアントアプリケーション409と等価である。シードプロ
グラムは、ユーザシステムにおける実行可能コードを含む。シードコードは、U
NIX(登録商標)またはWindows(登録商標)オペレーティングシステ
ム等、特定のプラットフォームに書込まれてよく、あるいはJava(登録商標
)プログラミング環境等のプラットフォーム独立環境に書込まれてよい。Jav
a(登録商標)は、Sun Microsystems,Inc.の商標である
【0064】 実行時、シードプログラムは、コマンドラインまたはダイアログボックス等の
グラフィカルユーザインタフェースを実現する。ユーザは、アイデンティフィケ
ーション情報(例えば、ユーザ名およびパスワード)を供給する。そして、シー
ドプログラムは、サーバ401へのリンクを生成する。サーバ401は、サーバ
401が割当てた一意のユーザID、ロードするモジュールのリストおよびスタ
ートアップコンポーネントのセットを含むスタートアップメッセージをダウンロ
ードする。システムおよびプロセス400の残りは、ニュースサービス416、
政治情報データストア412および金融サービス413等の動的データおよびサ
ービスリソースを含む。政治情報ストア412は、好適なポータル212(図2
に示す)の一例であり、金融サービス413は、図2に示す好適なサービス21
3の一例である。サーバ401は、あらゆる一般的なコンポーネントを含む機能
リポジトリに連結される。
【0065】 ここで図5を参照すると、ソフトウェアアプリケーション402は、システム
オブジェクト501、クラスローダ502およびユーザインタフェース503等
のシステムコンポーネントをダウンロードしインストールする。特定の実現は、
ユーザが個々のコンポーネントおよびそれらの構成コンポーネントとオブジェク
トと対話することを可能にするオブジェクトインスペクタと呼ばれるコンポーネ
ント504を含む。この対話によりユーザは、コンポーネントを検査してその特
性を決定し、場合によってはそれらの特性を直接操作することが可能になる。好
ましくは、GUIコンポーネント503は、コンポーネントが視覚的に表現され
、マウス/画面相互作用を使用して選択され、他のコンポーネントに移動される
ことを可能にする、「ドラグ・アンド・ドロップ」スタイルのインタフェースを
サポートする。
【0066】 また、クライアントアプリケーション402は、ユーザID、ロードするコン
ポーネントのリスト、およびユーザが属するあらゆるユーザグループの名前また
はアイデンティフィケーションを示すグループメンバシップリストを保持する、
プロファイル506を含む。例えば、あるユーザが、「無料加入者」と呼ばれる
他のグループがアクセスすることができないある機能へのアクセスを提供する、
「有料加入者」と呼ばれるグループに属する場合がある。また、スタートアップ
XMLドキュメント507も含まれ、クライアントアプリケーション402の階
層的テキストベース記述を提供する。一例としてのスタートアップXMLファイ
ルを図7に示す。XMLパーサオブジェクトは、アプリケーション記述ドキュメ
ント507を読出しシステムオブジェクト501と対話することができ、クラス
ローダコンポーネント502は、動作に必要なコンポーネントをアクセスしダウ
ンロードすることができる。この時点で、システムオブジェクト501(または
等価なコンポーネント)は、データストア414およびキャッシュ404へのア
クセスを可能にするファイルシステムへのリンクを実現する。
【0067】 シードコード411は、クライアント402が引続き行われる動作をサポート
するために十分なシステムコンポーネントをダウンロードすると、休止状態にな
ることができる。後のリスタート中、シード411は、サーバ401にダウンロ
ードを要求する前に、すでにインストールされたコンポーネントを捜すことにな
る、ということは留意されなければならない。コンポーネントは実行時動的に置
換されることが可能であるため、シード411は、実際に古いコンポーネントを
使用してブートアップすることができ、その後クライアントアプリケーション4
02は、それら古い方のコンポーネントを実行時にバックグラウンドで新しい方
のバージョンに置換することができる。
【0068】 クライアント402は、XMLアプリケーション記述ドキュメント414を読
出し、プロファイルドキュメント506をチェックすることによりそれがすでに
要求されたコンポーネントを有しているか判断する。コンポーネントがまだ存在
しない場合、アプリケーション402は、サーバ401に対してアクセス要求を
行い、ユーザが供給したアイデンティフィケーション情報に基づいて選択された
コンポーネント409をダウンロードする。新たなユーザ(すなわち、認証され
ていないユーザ)または匿名のユーザに対しては、基礎レベルのコンポーネント
409がダウンロードされてよい。そして、シード411は、コンポーネント4
09をインスタンス化する。
【0069】 本発明の好適な実現は、全部ではないが一部のアプリケーション機能に対し宣
言的アプリケーション構成技術を使用する。宣言的アプリケーション構成は、ソ
フトウェアアプリケーションを、属性を有するオブジェクト(またはコンポーネ
ント)のセットとして定義することにより、アプリケーションの手続きコードの
使用を制御する。このように、アプリケーションは、アプリケーション自体を定
義するために使用される手続きコード無しに、オブジェクトの階層的リストおよ
びそれらオブジェクトの属性のリストとして定義することができる。
【0070】 例として、アプリケーションを記述するために、拡張可能マークアップ言語(
XML)を使用して書かれXMLファイル507として格納されるドキュメント
が使用される。XMLドキュメントは、よく理解される標準文法を提供するため
有用なフォーマットである。更に、XML言語は、拡張可能であり、アクティブ
に展開され、通常利用可能なHTTP転送機構を使用してあらゆる通信媒体で容
易に転送可能である。ルータ、スイッチ、ネットワークポートおよび他のネット
ワークデバイスは、XMLフォーマットされたドキュメントを処理し、それらを
適当にかつ高信頼に処理するように構成されている。HTMLフォーム、COR
BAオブジェクト等、他のフォーマットおよび転送機構が使用されてよい、とい
うことが予期される。
【0071】 アプリケーション記述および/またはコンポーネント409は、それぞれ図7
および図8により詳細に示す「アプリケーション記述ドキュメント」701およ
び801と呼ばれるXMLドキュメントにリスト化される。アプリケーション記
述ドキュメント507は、「整形式(well formed)」XMLドキュ
メントかデータタイプ記述(DTD)に関連する「妥当な(valid)」XM
Lドキュメントによって定義されてよい。アプリケーション記述ドキュメント7
01および801は、複数のネスト化された階層的に配置された要素を備え、要
素の少なくとも1つは、クライアントアプリケーション402のコンポーネント
オブジェクト409に対応する。
【0072】 図7は、スタートアップまたはブート動作中にインスタンス化されるコンポー
ネントをリスト化するスタートアップアプリケーション記述ドキュメント701
を示す。図7に示す特定の実現では、ローカルデータ、オブジェクト記憶および
ウインドウイングのためのコンテナが指定される。コンテナは、指定された振舞
いとリスト化されたノードによって定義されるインタフェースとを有するように
定義される。サーバに接続し、新たなクラスをロードし、更新サービスを管理す
るためのプリミティブな振舞いが含まれる。また、XMLドキュメント701は
、スタートアップコンポーネントが配置されるコードファイル(例えば、「BI
N/GUI」)を識別する。各要素宣言は、指名されたオブジェクトのそのイン
スタンスに割当てられる属性を含むことができる。属性は、キー−値のペアを含
み、この場合、キーは関連するコンポーネントによって使用されるパラメータで
あり、値は、コンポーネント409の特定のインスタンスにおけるそのパラメー
タに与えられる値である。例えば、図7のNODE NAME宣言は、属性であ
る。
【0073】 図8は、本発明により例示的なコンポーネント409の構成コンポーネントを
宣言するXMLファイル801を示す。図8に示すように、XMLファイル80
1は、ネスト化されたコンポーネントの階層化リストを含む。本発明によれば、
各振舞いオブジェクトは、グローバルに一意の識別を含む。例えば、図8におい
て、オブジェクトアイデンティフィケーションは、「BEHAVIOR ID」
および「EVAL_ID」として示される。任意に、要素宣言は、バージョン識
別子(図示せず)を含むが、新たなバージョンは新たなバージョンに新たなオブ
ジェクトID値を割当てることによっても示すことができる。オブジェクトID
情報は、本発明によるシステムを使用して生成されたそのタイプのすべてのコン
ポーネントオブジェクトインスタンス間の各コンポーネントオブジェクトインス
タンスを一意に識別する。このグローバル識別子により、すべてのオブジェクト
が、いずれのオブジェクトがメッセージを送ったかを正確に知ることができる。
この情報は、生物系のように、振舞いが実行されるように誰が依頼したかに基づ
いてコンポーネントの振舞いを、変更することができるため、挙動指向システム
において重要であり得る。コンポーネント内のオブジェクトは、高レベルで幾分
か汎用的オブジェクトであるため、このグローバル識別機能を除いて互いに見分
けがつかないように見える。
【0074】 クライアント402等のアプリケーションが展開するに従い、その中のコンポ
ーネント409は、パフォーマンスを向上させるかまたは追加の機能を提供する
ために実現される新たなバージョンで展開する、ということが予期される。また
、コンポーネント409は、動的に追加され除去される。従って、アプリケーシ
ョン記述ドキュメントは、インスタンス化されるオブジェクトまたはコンポーネ
ント409の特定のバージョンを指定することができる。デフォルトとして、例
えば、サーバ401からの最新バージョンか、またはキャッシュ構造404にお
いて入手可能な最新バージョンを使用することができる。しかしながら、アプリ
ケーション作者は、図7に示すオブジェクトIDおよびバージョンID属性を使
用して古いバージョンを指定することができる。
【0075】 アプリケーションドキュメント記述インスタンス(例えば、701および/ま
たは801のようなドキュメント)を変更しクライアントアプリケーション40
2に新たなインスタンスをダウンロードすることにより、アプリケーションの変
更が容易に実現される。新たにダウンロードされたアプリケーション記述ドキュ
メントにリスト化されるコンポーネント409は、アプリケーション記述におい
て宣言される属性によりインスタンス化される。コンポーネント409は堅く接
続されていないため、新たなコンポーネントを他のコンポーネントに影響するこ
となく動的にインスタンス化することができる。
【0076】 新たなアプリケーション記述が、キャッシュ404においてローカルに入手可
能でないコンポーネントまたはバージョンを宣言する場合、指定されたコンポー
ネント409は、サーバ401からダウンロードされる。一般に、更新プロセス
はすべてバックグラウンドで発生する。好ましくは、サーバ401は、更新プロ
セスがクライアント402のいかなる作用でもなくサーバ401によって開始さ
れるように、アプリケーション記述ドキュメントをクライアント402にプッシ
ュアウト(push out)する能力を有する。システム実現 本発明は、説明的な好適な実施の形態において、分散システムによって説明さ
れ、インタネット等の公共通信チャネルを使用するエンタプライズコンピューテ
ィングシステムまたはフレームワークなどを処理する。しかしながら、本発明の
重要な特徴は、特定のアプリケーションの必要を満たすために上方向におよび下
方向に容易にスケールが変えられる、ということである。従って、反対に指定さ
れない限り、本発明は、従来のLANシステム等の小さいネットワーク環境と同
様により大きくより複雑なネットワーク環境に適用可能である。
【0077】 上述したように、静的な特徴のセットを定義する代りに、本発明は、完全に動
的であり、実行時に必要に応じてサーバに特徴を要求する。本発明は、拡張可能
である必要があり、かつ種々のおよび動的に変化するアプリケーションの振舞い
のセットをサポートする環境において、特に有用となる、ということが予期され
る。本発明は、アプリケーションコンポーネントを定義する方法および機構を提
供するため、ソフトウェアアプリケーションが最初に実現される時に利用不可能
であるか未知であった新たなコンポーネント(およびそれらコンポーネントによ
って実現される振舞い)に適用されることが可能である。
【0078】 図1に、例示的なシステムおよびプロセス100を示して、実現の1つの構成
を示す。本質的に、多数のコンピューティングデバイスおよび機器群がネットワ
ーク101により相互接続されている。例えば、LAN102およびLAN10
3は、各々、それぞれゲートウェイマシン104および105を介してネットワ
ーク101に連結されている。LAN102およびLAN103は、ハブおよび
スポーク等のあらゆる利用可能なトポロジ、LAN102のトポロジおよびLA
N103のループトポロジを使用して実現されてよい。LAN102および10
3は、例えばUNIX(登録商標)、NovellまたはWindows(登録
商標)NTを含む1つまたは複数のサーバテクノロジかまたはピア・ツー・ピア
タイプのネットワークを実現してよい。各ネットワークは、各デバイスで実現さ
れる分散された記憶域を含み、一般に、サーバコンピュータに連結されまたはそ
れによって管理されるある大容量記憶装置を含む。ネットワーク101は、例え
ば、インターネットまたは他のネットワーク等の公共ネットワーク、ファイバチ
ャネルファブリック等の機構、または従来のWANテクノロジを備える。
【0079】 LAN102は、パーソナルコンピュータ(PC)106等の1つまたは複数
のワークステーションを含む。また、LAN102は、サーバマシン107とプ
リンタ108等の1つまたは複数の共有デバイスとを含む。ハブまたはルータ1
09は、LAN102の種々のデバイス間の物理接続を提供する。
【0080】 ルータ104は、ゲートウェイ109によって連結されることにより、ネット
ワーク101への共有アクセスを提供する。ゲートウェイ109は、あらゆる所
望のアクセスおよびセキュリティプロトコルを実現することにより、ネットワー
ク101とネットワーク102に連結されたデバイスとの間のアクセスを管理す
る。同様に、ネットワーク103は、ゲートウェイ105によるネットワーク1
01への共通接続を共有するワークステーション111、112および113の
集まりを備える。
【0081】 分散コンピューティング環境100は、更に、ネットワーク101への物理接
続によってサポートされるネットワークへの論理接続を有する種々のデバイスを
含む。例えば、スタンドアロンワークステーション114は、モデムまたは他の
適当な物理接続によりネットワーク101に連結してよい。同様に、ノートブッ
クコンピュータ11およびパームトップコンピュータ116が、周知の接続テク
ノロジを使用してネットワーク101に接続してよい。携帯電話、リモートテレ
メトリ装置、情報電気機器等を含む種々のデバイスが、分散ネットワーク100
に接続してよい、ということが予期される。本発明の重要な特徴は、それが、あ
らゆる物理的ロケーションからネットワーク101に連結された異種のハードウ
ェアデバイスで占められる環境に耐性がありかつ適用する、ということである。
【0082】 図1に示すデバイスの各々は、メモリと、大容量記憶装置と、ネットワーク1
01への接続を管理するために十分な程度のデータ処理能力と、を含んでよい。
本発明によるコンピュータプログラムデバイスは、図1に示すあらゆるデバイス
のメモリにおいて実現され、図1に示すデバイスのデータ処理能力によって可能
とされる。各デバイスに関連するローカルメモリおよび記憶機構に加えて、しば
しば、個々のデバイスが効率的に使用し管理することができるものを超える大容
量記憶容量を提供する、ディスクファーム116等の共有記憶機構の1つまたは
複数のロケーションを提供することが望ましい。
【0083】 本発明の選択されたコンポーネントは、ディスクファーム116等の共有大容
量記憶装置に記憶されまたはそれにおいて実現されてよい。図2は、本発明によ
るシステムおよびプロセス200のコンポーネントを示す。サーバ201は、コ
ンピューティング環境200に電力を供給し、メンバシップ特権を管理すると共
にすべての機能に対するアクセスを提供する。動作中のあらゆる場合に、クライ
アントはネットワーク203によりサーバ201に接続する。
【0084】 ネットワーク203は、あらゆるタイプのパケット交換、回線交換またはセル
交換ネットワークアーキテクチャを備え、銅、光ファイバ、無線周波数または他
の利用可能なデータ通信テクノロジを使用して実現されてよい。ネットワーク2
03は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)
またはインタネット等の公共ネットワークであってよい。
【0085】 クライアント202が、コンポーネント209の最新バージョンにアクセスで
きるように、クライアントがサーバ203にアクセスすることが重要であるが、
クライアント202は、指定されない期間ネットワーク203への接続から離れ
て使用されることが可能なハンドヘルドまたはラップトップコンピュータの場合
等、不確定な時間、サーバ201から切断されたままであることが可能である。
ネットワーク203から切断されている間、クライアント202は、クライアン
トキャッシュ204に保持される情報およびコンポーネントと、ネットワーク2
03に接続されている間に予め取得された機能およびコンポーネントと、によっ
て動作する。
【0086】 本発明を、ある程度の特殊性をもって説明し例示したが、本開示が例としての
み行われ、部品の組合せおよび配置の多くの変更が、以降請求されるような本発
明の精神および範囲から逸脱することなく当業者によって行われ得る、というこ
とが理解される。
【図面の簡単な説明】
【図1】 本発明が実現される例示的なネットワークシステムおよびプロセスを示す
【図2】 本発明による例示的なアプリケーション環境の要素を示す。
【図3】 図2のアプリケーション環境のコンポーネントをより詳細に示す。
【図4】 図2のシステムおよびプロセスの特定の実現を実現の種々の段階で示す。
【図5】 図2のシステムおよびプロセスの特定の実現を実現の種々の段階で示す。
【図6】 図2のシステムおよびプロセスの特定の実現を実現の種々の段階で示す。
【図7】 本発明の特定の実現によるアプリケーション記述ドキュメントを示す。
【図8】 本発明の特定の実現による例示的なコンポーネントの構成要素を宣言するXM
Lファイルを示す。
【手続補正書】
【提出日】平成13年10月16日(2001.10.16)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正の内容】
【図1】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正の内容】
【図2】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正の内容】
【図3】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正の内容】
【図4】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正の内容】
【図5】
【手続補正6】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正の内容】
【図6】
───────────────────────────────────────────────────── フロントページの続き (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,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,UZ,VN,YU,ZA,ZW 【要約の続き】 ダウンロードする。

Claims (46)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのサーバと通信する少なくとも1つのクライ
    アントコンピュータを備えた分散コンピューティングシステムにおいて、クライ
    アントアプリケーションを操作する方法であって、 前記サーバとの接続を確立するために前記クライアントコンピュータ上でシー
    ドプログラムを実行するステップと、 前記サーバから前記クライアントコンピュータにシステムコンポーネントのセ
    ットをダウンロードするステップと、 前記シードプログラムを使用して前記システムコンポーネントのセットを初期
    化するステップと、 前記クライアントアプリケーションの所望の機能を決定するために、前記シス
    テムコンポーネントのセットを使用して前記クライアントコンピュータにおける
    ユーザとインタフェースするステップと、 該所望の機能を実行するために、必要な追加のコンポーネントを前記サーバに
    要求するステップと、 該追加のコンポーネントを前記ソフトウェアアプリケーションに動的にインス
    トールするステップと、 を含むことを特徴とする方法。
  2. 【請求項2】 前記クライアントコンピュータ上でシードプログラムを実行
    する前記ステップは、 該クライアントコンピュータのユーザにアイデンティフィケーションを要求す
    るステップと、 前記サーバとの接続を形成するステップと、 前記ユーザから該サーバに前記アイデンティフィケーションを渡すステップと
    、 該アイデンティフィケーションによって識別される該ユーザが前記クライアン
    トアプリケーションとインタフェースすることを可能にするために、前記サーバ
    からコンポーネントを受取るステップと、 を含むことを特徴とする請求項1記載の方法。
  3. 【請求項3】 前記サーバからコンポーネントを受取る前記ステップは、 前記アイデンティフィケーションに割当てられ、該アイデンティフィケーショ
    ンにリンクされた前記ユーザが利用可能なユーザ特有の情報を含むプロファイル
    を受取るステップ を含むことを特徴とする請求項2記載の方法。
  4. 【請求項4】 前記アイデンティフィケーションによって識別される前記ユ
    ーザが、前記クライアントアプリケーションとインタフェースすることを可能に
    するために、前記サーバからコンポーネントを受取る前記ステップは、 該コンポーネントが、該クライアントアプリケーションが基本システム機能を
    実行することを可能にするために、初期コードライブラリを含ませるステップ を含むことを特徴とする請求項2記載の方法。
  5. 【請求項5】 前記サーバから前記クライアントコンピュータにシステムコ
    ンポーネントのセットをダウンロードする前記ステップは、 新たなコンポーネントを前記クライアントアプリケーションにロードするため
    のコンポーネントローダをダウンロードするステップ を含むことを特徴とする請求項1記載の方法。
  6. 【請求項6】 前記サーバから前記クライアントコンピュータにシステムコ
    ンポーネントのセットをダウンロードする前記ステップは、 初期アプリケーション構造と、該初期アプリケーション構造の該コンポーネン
    トの各インスタンスに割当てられる属性を決定するために、アプリケーション用
    のコンポーネントをダウンロードするステップ、 を含むことを特徴とする請求項1記載の方法。
  7. 【請求項7】 前記クライアントアプリケーションの所望の機能を決定する
    ために、前記システムコンポーネントのセットを使用して前記クライアントコン
    ピュータにおいてユーザとインタフェースするステップは、 該ユーザが必要とする該機能を決定するステップと、 前記ユーザが選択した機能を実行するために必要な前記コンポーネントを選択
    するステップと、 を含むことを特徴とする、請求項1記載の方法。
  8. 【請求項8】 前記追加のコンポーネントを前記ソフトウェアアプリケーシ
    ョンに動的にインストールするステップは、 前記クライアントアプリケーションの所望の機能を決定するために、前記シス
    テムコンポーネントのセットを使用して前記クライアントコンピュータのユーザ
    とインタフェースする前記ステップ中に、アプリケーションに特化した機能を提
    供するために、該ユーザから受取られるデータを、実行中に前記ダウンロードさ
    れたコンポーネントに組込むステップ を含むことを特徴とする、請求項1記載の方法。
  9. 【請求項9】 前記シードプログラムが、前記システムコンポーネントが初
    期化された後に休止状態に入るようにするステップ を更に含む請求項1記載の方法。
  10. 【請求項10】 前記コンポーネントは、 インスタンス化されたオブジェクトのインタフェースが、実質的に変化するこ
    とができ、効率的に他のオブジェクトと通信することができるための、前記コン
    ポーネント内における該インスタンス化されたオブジェクトの疎結合を含む請求
    項1記載の方法。
  11. 【請求項11】 前記インスタンス化されたオブジェクトの前記インタフェ
    ースは、 第2のオブジェクトが該第2のオブジェクトの特定のエントリポイントを該第
    1オブジェクトに示すことができるように、第1のオブジェクトが、単純なイン
    タフェースにより該第2のオブジェクトと通信する、第1ステージと、 該第1のオブジェクトが、該第2のオブジェクトの前記エントリポイントを介
    して該第2のオブジェクトに豊富なメッセージを送る第2ステージと、 を含む請求項10記載の方法。
  12. 【請求項12】 前記コンポーネントは、 その意図された機能を実現する該コンポーネントの能力をグレード付けする値
    レジスタ を含む請求項1記載の方法。
  13. 【請求項13】 前記値レジスタは、 前記コンポーネントが利用される度に該値レジスタの値を増大させること を含む請求項12記載の方法。
  14. 【請求項14】 前記値レジスタは、 前記コンポーネントが有用な機能を提供する度に該値レジスタの値を増大させ
    ること を含む請求項12記載の方法。
  15. 【請求項15】 前記値レジスタは、 時間の関数として該値レジスタの値を減少させること を含む請求項12記載の方法。
  16. 【請求項16】 前記コンポーネントは、 前記コンポーネント値レジスタの値に基づき、メッセージを送るコンポーネン
    トを選択すること を含む請求項12記載の方法。
  17. 【請求項17】 前記サーバは、 前記クライアントアプリケーションのコンポーネントを維持する機能リポジト
    リ を含む請求項1記載の方法。
  18. 【請求項18】 前記サーバは、 前記クライアントアプリケーションの前記ユーザの情報を格納するためのデー
    タストアハウス を含む請求項1記載の方法。
  19. 【請求項19】 前記サーバは、前処理されたデータを保持するコンテント
    サーバを含む請求項1記載の方法。
  20. 【請求項20】 前記クライアントアプリケーションは、 該クライアントアプリケーションをアップグレードするために追加のコンポー
    ネントを捜すコンポーネントと、 該クライアントアプリケーションに該追加のコンポーネントをロードするコン
    ポーネントローダと、 該クライアントアプリケーションをアップグレードするために該追加のコンポ
    ーネントをインストールすることと、 を含む請求項1記載の方法。
  21. 【請求項21】 クライアントアプリケーションに機能を動的に提供するコ
    ンピューティングシステムであって、 コンポーネント記憶機能を有する少なくとも1つのサーバと通信するクライア
    ントコンピュータと、 前記クライアントコンピュータにインストールされたクライアントアプリケー
    ションであって、前記クライアントアプリケーションは最初に該クライアントコ
    ンピュータ上にシードプログラムを含み、前記シードプログラムは前記コンポー
    ネント記憶機構から該クライアントコンピュータにシステムコンポーネントのセ
    ットをダウンロードしインストールするために、前記サーバとの通信を確立する
    最小の実行可能コードを有することを特徴とする、クライアントアプリケーショ
    ンと、 を具備し、 前記インストールされるシステムコンポーネントのセットは、前記ユーザによ
    り所望された機能を決定し、該所望の機能を実行するために前記コンポーネント
    記憶機構から追加のシステムコンポーネントをダウンロードしてインストールす
    るために、前記クライアントコンポーネントにおけるユーザと前記クライアント
    アプリケーションとの間のユーザインタフェースを含む コンピューティングシステム。
  22. 【請求項22】 前記インストールされるシステムコンポーネントのセット
    は、 アプリケーション構造と、該アプリケーション構造の前記コンポーネントの各
    インスタンスに割当てられる属性と、を決定するアプリケーションのコンポーネ
    ント を含む請求項21記載のシステム。
  23. 【請求項23】 インストールされるシステムコンポーネントのセットは、 前記ユーザにより要求された前記機能を決定するアプリケーションのコンポー
    ネントと、 前記ユーザの選択する機能を実行するために必要なコンポーネントを選択しイ
    ンストールすることと、 を含む請求項21記載のシステム。
  24. 【請求項24】 前記シードプログラムは、 前記クライアントコンピュータのユーザからのアイデンティフィケーションを
    要求する手段と、 前記サーバに該アイデンティフィケーションを渡す手段と、 該アイデンティフィケーションに割当てられる前記ユーザのプロファイルを決
    定し、そのユーザに対して許可される前記コンポーネントをダウンロードするた
    めの、該サーバ上の手段と、 を含む請求項21記載のシステム。
  25. 【請求項25】 前記シードプログラムは、 前記システムコンポーネントが初期化された後に該シードプログラムが休止状
    態に入るようにする手段 を含む請求項21記載のシステム。
  26. 【請求項26】 前記コンポーネントは、 該コンポーネントのインタフェースが実質的に変化することができ、効率的に
    他のコンポーネントと通信することができるための、コンポーネントの疎結合 を含む請求項21記載のシステム。
  27. 【請求項27】 前記コンポーネントは、 前記コンポーネント間の通信を可能にするための、前記コンポーネントの各々
    におけるインタフェースと、 単純な通信を可能にする、前記インタフェースの各々における第1ステージと
    、 前記コンポーネントのエントリポイントを含む該インタフェースの各々におけ
    る第2段階であって、前記第1のコンポーネントが第2のコンポーネントにおけ
    る前記第1段階によって通信することにより該第2のコンポーネントの第2段階
    を決定し、該第1のコンポーネントが該第2のコンポーネントに豊富なメッセー
    ジを送ることができるようにする第2段階と、 を含む請求項21記載のシステム。
  28. 【請求項28】 前記コンポーネントは、 その意図された機能を実現する該コンポーネントの能力のグレード付けするた
    めの値レジスタ を含む請求項21記載のシステム。
  29. 【請求項29】 前記値レジスタは、 前記コンポーネントが利用される度に該値レジスタの値を増大させる手段 を含む請求項21記載のシステム。
  30. 【請求項30】 前記値レジスタは、 前記コンポーネントが有用な機能を提供する度に該値レジスタの値を増大させ
    る手段 を含む請求項28記載のシステム。
  31. 【請求項31】 前記値レジスタは、 時間の関数として該値レジスタの値を減少させる手段 を含む請求項28記載のシステム。
  32. 【請求項32】 前記コンポーネントは、 前記コンポーネント値レジスタの値に基づき、メッセージを送るコンポーネン
    トを選択する手段 を含む請求項28記載のシステム。
  33. 【請求項33】 前記サーバは、 前記クライアントアプリケーションのコンポーネントを維持する機能リポジトリ
    を含む請求項21記載のシステム。
  34. 【請求項34】 前記サーバは、 前記クライアントアプリケーションの前記ユーザの情報を格納するデータストア
    ハウス を含む請求項21記載のシステム。
  35. 【請求項35】 前記サーバは、前処理されたデータを保持するコンテント
    サーバを含む請求項21記載のシステム。
  36. 【請求項36】 前記クライアントアプリケーションは、 該クライアントアプリケーションをアップグレードするために追加のコンポー
    ネントを捜すコンポーネントと、 該クライアントアプリケーションに該追加のコンポーネントをロードするコン
    ポーネントローダと、 該クライアントアプリケーションをアップグレードするために該追加のコンポ
    ーネントをインストールすることと、 を含む請求項21記載のシステム。
  37. 【請求項37】 少なくとも1つのサーバと通信するクライアントコンピュ
    ータで使用される情報収集システムであって、 ユーザインタフェースを有する該クライアントコンピュータ上のクライアント
    アプリケーションと、 規則のセットを有し、データが該規則のセット内に適合するか判断する、ソフ
    トウェアオブジェクトの1つ以上の集まりと、 該ソフトウェアオブジェクト間の通信を可能にする、該ソフトウェアオブジェ
    クトの各々におけるインタフェースと、 単純な通信を可能にする該インタフェースの各々における第1段階と、 前記コンポーネントの前記エントリポイントを含む該インタフェースの各々に
    おける第2段階であって、第1のソフトウェアオブジェクトが第2のソフトウェ
    アオブジェクトにおける前記第1段階によって通信することにより該第2のソフ
    トウェアオブジェクトの該第2段階を決定し、該第1のソフトウェアオブジェク
    トが該第2のソフトウェアオブジェクトに豊富なメッセージを送信することがで
    きるようにする第2段階と、 を含むシステム。
  38. 【請求項38】 前記ソフトウェアオブジェクトは、 その意図された機能を実現する該ソフトウェアオブジェクトの各々の能力のグレ
    ード付けする値レジスタ を含む請求項36記載のシステム。
  39. 【請求項39】 前記値レジスタは、 前記ソフトウェアオブジェクトが利用される度に該値レジスタの値を増大させ
    る手段 を含む請求項37記載のシステム。
  40. 【請求項40】 前記値レジスタは、 前記ソフトウェアオブジェクトが有用な機能を提供する度に該値レジスタの値
    を増大させる手段 を含む請求項37記載のシステム。
  41. 【請求項41】 前記値レジスタは、 時間の関数として該値レジスタの値を減少させる手段 を含む請求項37記載のシステム。
  42. 【請求項42】 前記ソフトウェアオブジェクトは、 該ソフトウェアオブジェクトの前記値レジスタの値に基づき、メッセージを送
    るソフトウェアオブジェクトを選択する手段 を含む請求項37記載のシステム。
  43. 【請求項43】 前記サーバは、 前記クライアントアプリケーションのコンポーネントを維持する機能リポジトリ
    を含む請求項36記載のシステム。
  44. 【請求項44】 前記サーバは、 前記クライアントアプリケーションの前記ユーザの情報を格納するデータストア
    ハウス を含む請求項36記載のシステム。
  45. 【請求項45】 前記サーバは、前処理されたデータを保持するコンテント
    サーバを含む請求項36記載のシステム。
  46. 【請求項46】 前記クライアントアプリケーションは、 該クライアントアプリケーションをアップグレードするために追加のコンポーネ
    ントを捜すコンポーネントと、 該クライアントアプリケーションに該追加のコンポーネントをロードするコンポ
    ーネントローダと、 該クライアントアプリケーションをアップグレードするために該追加のコンポー
    ネントをインストールすることと、 を含む請求項36記載のシステム。
JP2000608279A 1999-03-29 2000-03-29 分散コンピュータ環境のための動的アプリケーションシステム Pending JP2002540529A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12692899P 1999-03-29 1999-03-29
US60/126,928 1999-03-29
PCT/US2000/008373 WO2000058855A1 (en) 1999-03-29 2000-03-29 Dynamic application systems and processes for distributed computer environment

Publications (1)

Publication Number Publication Date
JP2002540529A true JP2002540529A (ja) 2002-11-26

Family

ID=22427423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000608279A Pending JP2002540529A (ja) 1999-03-29 2000-03-29 分散コンピュータ環境のための動的アプリケーションシステム

Country Status (5)

Country Link
EP (1) EP1171830A4 (ja)
JP (1) JP2002540529A (ja)
AU (1) AU4181400A (ja)
CA (1) CA2367889A1 (ja)
WO (1) WO2000058855A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331307A (ja) * 2005-05-30 2006-12-07 Hitachi Kokusai Electric Inc 分散システム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124046A1 (en) * 2001-02-20 2002-09-05 Fischer William A. Peripheral devices which manage application upload to computing devices
US20050160414A1 (en) * 2004-01-21 2005-07-21 Nokia Corporation System and method for dynamically adding features to software applications
WO2007090235A1 (en) * 2006-02-06 2007-08-16 Uiactive Ip Pty Ltd A system for conducting multi-media communication sessions
EP2360581A1 (en) * 2010-01-18 2011-08-24 Thomson Licensing Method, system and device for execution of a software application
US8856651B2 (en) 2010-06-04 2014-10-07 Samsung Electronics Co., Ltd. Remote user interface cooperative application
US10558487B2 (en) 2015-12-11 2020-02-11 Microsoft Technology Licensing, Llc Dynamic customization of client behavior
CN110012086B (zh) * 2019-03-27 2023-10-20 努比亚技术有限公司 提高应用下载及安装速度的方法、终端及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115501A (en) * 1988-11-04 1992-05-19 International Business Machines Corporation Procedure for automatically customizing the user interface of application programs
US5446896A (en) * 1990-12-17 1995-08-29 Next, Inc. Method and apparatus for inter-program communication
US5717923A (en) * 1994-11-03 1998-02-10 Intel Corporation Method and apparatus for dynamically customizing electronic information to individual end users
US5689708A (en) * 1995-03-31 1997-11-18 Showcase Corporation Client/server computer systems having control of client-based application programs, and application-program control means therefor
US5826000A (en) * 1996-02-29 1998-10-20 Sun Microsystems, Inc. System and method for automatic configuration of home network computers
US5828887A (en) * 1996-05-23 1998-10-27 Electronic Data Systems Corporation Network based program loader system and method of operation
US5940074A (en) * 1996-06-03 1999-08-17 Webtv Networks, Inc. Remote upgrade of software over a network
US5835727A (en) * 1996-12-09 1998-11-10 Sun Microsystems, Inc. Method and apparatus for controlling access to services within a computer network
US6044465A (en) * 1997-07-07 2000-03-28 International Business Machines Corporation User profile storage on and retrieval from a non-native server domain for use in a client running a native operating system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331307A (ja) * 2005-05-30 2006-12-07 Hitachi Kokusai Electric Inc 分散システム

Also Published As

Publication number Publication date
AU4181400A (en) 2000-10-16
CA2367889A1 (en) 2000-10-05
EP1171830A4 (en) 2004-10-20
EP1171830A1 (en) 2002-01-16
WO2000058855A1 (en) 2000-10-05

Similar Documents

Publication Publication Date Title
US8448160B2 (en) Application programming interface for identifying, downloading and installing applicable software updates
US6895586B1 (en) Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
US7278133B2 (en) Index-based parameter access and software for using the same
US7007026B2 (en) System for controlling access to and generation of localized application values
US7464386B2 (en) Data controls architecture
US20060020883A1 (en) Web page personalization
US9332063B2 (en) Versatile application configuration for deployable computing environments
US7797698B2 (en) Method and apparatus for dynamic middleware assembly
US6353926B1 (en) Software update notification
US7117504B2 (en) Application program interface that enables communication for a network software platform
US7269664B2 (en) Network portal system and methods
US9165047B2 (en) Data synchronization system and method
US7596611B1 (en) Method and apparatus for maintaining information for use in the configuration of a client
US7886035B2 (en) Profile service based deployment configuration
US8151256B2 (en) Platform independent registry framework
US20060179440A1 (en) Native objects accessible by platform neutral API
US20020101448A1 (en) Generating a declarative user interface
US20080301629A1 (en) Integrating aspect oriented programming into the application server
US20080301627A1 (en) Providing extensive ability for describing a management interface
US6754671B2 (en) Apparatus for Meta Object Facility repository bootstrap
JP2002540529A (ja) 分散コンピュータ環境のための動的アプリケーションシステム
US8930960B2 (en) Methods and systems for object interpretation within a shared object space
US20020165866A1 (en) Method for meta object facility repository bootstrap
JP2000311129A (ja) 周辺装置管理システム
Kromann et al. Introducing PDO