JP2006504156A - リアルタイム・システム制御のためのコンポーネント・モデル - Google Patents

リアルタイム・システム制御のためのコンポーネント・モデル Download PDF

Info

Publication number
JP2006504156A
JP2006504156A JP2003570268A JP2003570268A JP2006504156A JP 2006504156 A JP2006504156 A JP 2006504156A JP 2003570268 A JP2003570268 A JP 2003570268A JP 2003570268 A JP2003570268 A JP 2003570268A JP 2006504156 A JP2006504156 A JP 2006504156A
Authority
JP
Japan
Prior art keywords
slot
component
property
dynamic
definition
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
JP2003570268A
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 JP2006504156A publication Critical patent/JP2006504156A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

コンポーネント・ベースのソフトウェア・プログラムであり、それぞれのコンポーネントは、コンポーネント・タイプに基づいている。コンポーネント・タイプは、スロット定義を含むベース・クラスから作成される。スロット定義は、識別され、コンポーネント・タイプ・オブジェクトに記憶される。そのコンポーネント・タイプの1又は複数のコンポーネントが作成され、それぞれは、コンポーネント・タイプ・オブジェクトへの参照と、プロパティ・スロット定義と関連付けされた値のための記憶位置をそのコンポーネント・タイプ・オブジェクトの中に有するスロットマップとを含む。プロパティ・スロットのための値は、記憶位置に配置されることによりコンポーネントの中に入力される。また、一意的な名称をコンポーネントに自動的に指定する方法も開示されている。1つのルート・コンポーネントが作成される。更なる非ルート・コンポーネントが、ルート・コンポーネント又はそれ以外のコンポーネントの中に配置され、それによって、すべてのコンポーネントがツリー構造を形成する。コンポーネントには、当該コンポーネントのすべての祖先と当該コンポーネントの名称とのシーケンシャルなリストを含む一意的な識別ストリングが割り当てられる。

Description

関連出願
この特許出願では、「Component Model for Real-Time System Control」と題する、2002年2月15日に出願された米国特許出願第60/357,329号に基づく35USC119(e)による優先権を主張する。この米国特許出願は、その全体をこの出願において援用する。
技術分野及び背景技術
多くの異なる業務において、固有の問題を解決するためにカスタム・ソフトウェアが必要とされている。典型的には、これらの問題は、例えば、建築自動化の専門家や、工場自動化の専門家、交通制御の専門家など、各分野の専門家には十分に理解されている。しかし、各分野の専門家にオブジェクト指向プログラミングなどの一般的なプログラミング技術を用いる技術を要求するのは、困難である。今日では、各分野の専門家は、希望するシステムを構築するプログラマへの要求を特定することを試みなければならない。このプロセスは、誤りを生じやすく、時間がかかり、誤解が生まれやすい。必要であるのは、問題空間を理解している各分野の専門家がソフトウェア・システムを自分自身で構築することができる能力である。しかし、各分野の専門家が職業的なプログラマになるための時間や意欲を有するようになることを期待するのは無理である。従って、素人によるカスタム・ソフトウェアの作成を可能にするようなツールを提供することが必要である。理想的には、このようなツールは、ソフトウェア・システムのコンフィギュレーション・パラメータ、実行ロジック及びデータがグラフィカルに視覚化されることを可能にするものであるのが望ましい。また、グラフィカルなツールは、各分野の専門家が、むつかしいプログラミング言語のシンタクスを理解することを必要とすることなく、ソフトウェア・システムを作成し、モニタし、変更することを可能にするであろう。
コンポーネント指向システムは、現実世界の必要性に対処するアプリケーションを構築するように接続することができるコンポーネントにソフトウェア関数をカプセル化することによって、これらの特徴のいくつかを提供する新たな概念の一部である。しかし、既知の従来のアプローチは、現実的なシステムを実装するために、プログラミング言語の知識を依然として必要とする。ソフトウェア・コンポーネントは、現時点においては、依然として、コンポーネントを相互に接続して機能的なシステムを作成するのに、プログラミングのスキルを必要としている。更に、既存のコンポーネント技術では、各分野の専門家が、システムの全体をグラフィカルに視覚化し、ランタイムにおいて変更を加えることが可能ではない。例えば、各分野の専門家は、実行フローを変更する、又は、新たな振る舞いをランタイムにおいて追加することを希望し、どのような影響がソフトウェア・システムに生じるのかを直ちに見ることを希望する場合があろう。このような探索的なプログラミングのアプローチは、ソフトウェアを停止させ、リコンパイルし、再スタートすることを要求する現状のソリューションとは整合的でない。パフォーマンスを改善し特徴を追加するなどのためには、ソフトウェアの更なる追加、修正又は更新が必要となる。現在のソリューションは、この場合にも、そのような更新、追加又は修正を行うためにも、ソフトウェアが停止し、リコンパイルし、再スタートされることが要求される。ソフトウェアの停止は、重要なプロセスが制御されているような環境においては、特に困難である。そのようなソリューションを提供する際の別の特別の難問として、各分野の専門家がソフトウェア・コンポーネントを強化又は拡張してそれらを特定の分野の応用例のユニークな必要性に適応させる必要がある。歴史的に、このような追加又は拡張は、一般的なプログラミング・スキル及び知識を必要としてきた。本発明は、以上のような問題及びそれ以外の必要性に対応しようとするものである。
本発明の1つの特徴は、そのコードが、マシン上で実行される同一のコンポーネント・タイプの1又は複数のコンポーネントを含むソフトウェア・プログラムである。そのソフトウェア・プログラムのコンポーネントは、特定の方法によって生成される。その方法では、ベース・クラスは、フレームワークに提供されるが、このベース・クラスは、その少なくとも1つがプロパティ・スロット定義である1又は複数のスロット定義を含む。ベース・クラスの中のすべてのプロパティ・スロット定義が、識別される。これらのプロパティ・スロット定義のそれぞれに対して、ゲッタ及びセッタ・メソッドが配置される。スロット定義を記憶するように構成されたコンポーネント・タイプ・オブジェクトが、生成される。識別されたプロパティ・スロット定義は、次に、そのコンポーネント・タイプ・オブジェクトに記憶される。1又は複数のコンポーネントが生成される。これらのコンポーネントは、それぞれが、スロットマップ・オブジェクトを有し、これは、スロットマップ・クラスからインスタンス化される。それぞれのスロットマップ・オブジェクトは、また、コンポーネント・タイプ・オブジェクトに記憶されているそれぞれのプロパティ・スロット定義に対する値を含む。それぞれの値には、単一のコンポーネントが関連付けられており、よって、それぞれのコンポーネントに一意的なデータを記憶する能力が提供される。
この特徴の更なる発展形では、コンポーネントは、そのプロパティ及びデータ・フィールドの動的スロットを介しての拡張が可能であるように設計される。
別の特徴では、コンポーネント・ベースのソフトウェア・システムの拡張に名称を自動的に指定する方法が提供される。その方法では、ルート・コンポーネントが作成される。ルート・コンポーネントは、親を有していない。1又は複数の非ルート・コンポーネントは、ルート・コンポーネントの中に配置され、1又は複数の他の非ルート・コンポーネントは、非ルート・コンポーネントの中に配置され、それによって、すべての非ルート・コンポーネントは親を有し、全体の構造がツリーを形成する。この時点で、1つのコンポーネントには、そのコンポーネントのすべての祖先とそのコンポーネントの名称とのシーケンシャルなリストを含む一意的な識別ストリングが割り当てられる。
この特徴の更なる発展形では、命名法は、コンポーネントの個別のスロットを識別するように拡張される。
本発明の以上の及びそれ以外の特徴及び効果は、添付の図面と好適実施例に関する以下の説明とからさらに理解されるはずである。
本発明のコンポーネント・モデルは、アプリケーション開発者が非プログラマに適したグラフィカルな環境でソフトウェア・コンポーネントを拡張し修正することを可能にするソフトウェア・コンポーネントのためのユニークなコンポーネント・デザインを提供する。このコンポーネント・モデル・デザインは、通常は必要となるソフトウェアのコーディング・ステップなしに、プロパティ、アクション又はトピックスなどの新たなスロットが標準的なコンポーネントに追加されることを可能にする。
ソフトウェア開発へのコンポーネント・モデル・アプローチは、オブジェクト指向のソフトウェア・デザインの利点を使用しながらエンド・ユース・アプリケーションへの直接的な関係を有するソフトウェア・コンポーネントが作成されることを可能にする。そのように、コンポーネントは、純粋なオブジェクト指向アプローチの場合に存在しているよりも、より高い抽象レベルを提供する。オブジェクトが(ストリングを処理する、バッファ管理を提供するなどの)ソフトウェア関数に適用可能な振る舞いをカプセル化する場合には、コンポーネントは、オブジェクトをアセンブルして、アプリケーションの最終目的(スケジュールを変更する、アラームを検討して確認応答コマンドをアラームを発しているデバイスに戻す、など)の必要性を満たすようにすることができる。
2つのレベルの抽象化が存在する。一方は、コンポーネントの実装を扱うオブジェクト指向レベルであり、他方は、オブジェクト指向レベルを隠して、コンポーネントの使用を通じて特定の現実世界のアプリケーションに関係するアプリケーションの作成を扱うコンポーネント・レベルである。本発明のソフトウェアを動作させ修正する可能性がある人間には少なくとも2種類存在する。開発者とユーザとである。開発者は、オブジェクト指向のコンセプトを用いて本発明によるコンポーネント・モデルを実装する。オプションでは、開発者は、また、コンポーネント・レベルで定義されている機能を作成する。ユーザは、一般に、オブジェクト指向の実装を見ることはない。むしろ、ユーザは、ほとんどコンポーネントだけを扱い、コンポーネント・レベルでシステムをモニタし作成し修正する。もちろん、ユーザと開発者とが同一の人間であることもありうる。
ソフトウェア・プログラムの中のコンポーネントは、コンポーネント・タイプに基づいて作成される。コンポーネント・タイプは、オブジェクト指向プログラミングにおけるクラスの概念に類似しており、すなわち、そのタイプに属するコンポーネント・インスタンスのすべての共通する特徴を記述する抽象化である。好適実施例では、コンポーネント・タイプやコンポーネントに関係するほとんどの他の関数の作成は、フレームワークによってなされるが、これを、われわれはナイアガラ・フレームワーク(NiagaraTM Framework)と称することがある。フレームワークは、コンポーネント・ベースのソフトウェアの中のソフトウェア・モジュールであり、コンポーネント・タイプやコンポーネントの作成などコンポーネント・モデルの実装に関係する複数のユーティリティ関数を満たし、コンポーネントと外部のソフトウェア・モジュールとの間のインターフェースを提供し、スロットを追加することによりコンポーネントを拡張する能力を提供する、などである。フレームワークは、また、初期(ブートストラップ)フェーズの間とコンポーネント・ランタイム実行の間とを含むソフトウェアの実行フローを提供する。
オブジェクト指向プログラムはクラスから構成されるが、クラスは、当該クラスに属するインスタンスを配分するのに用いられるテンプレートを定義する。それぞれのクラスは、メンバと称される下位部分から構成される。メンバは、データを記憶するのに用いられるフィールドであったり、実行可能な振る舞い(behavior)を記憶するのに用いられるメソッドであったりする。
本発明は、オブジェクト指向プリミティブを用いて構築されたコンポーネント・モデルを記述する。コンポーネント・モデルは、次に、非プログラマがコンポーネント指向プログラムを構築するのに用いられ得る。コンポーネント・モデルはコンポーネント・タイプによって構成されており、コンポーネント・タイプは、当該タイプに属するインスタンスを配分するのに用いられるテンプレートを定義する(オブジェクト指向クラスのように)。それぞれのコンポーネント・タイプは、スロットと称される下位部分から構成される(オブジェクト指向メンバのように)。スロットとメンバとの違いは、スロットはより高レベルの抽象化において存在するため、非プログラマやコンポーネント指向プログラムのエンド・ユーザによって直接に用いられ得るという点である。
コンポーネント・モデルには、3つのタイプのスロットが存在する。プロパティは、データ値を記憶するスロットである。プロパティは、コンフィギュレーション・データを記憶し、リアルタイムの状態情報を提供し、又は、それ以外の任意のデータを記憶するのに用いられ得る。アクションは、メソッドと類似しており、実行振る舞いを記憶するスロットである。例えば、エンド・ユーザが呼び出すアクションは、「ファンをオンせよ」(Turn On Fan)でありうる。アクションは、また、純粋にソフトウェア機能を実装することもできる。トピックスが、第3のスロット・タイプである。トピックスは、イベントを表現するのに用いられる。トピックスは、ファイアして、イベントが発生したことを示す。
リンクは、特定の種類のプロパティ・スロットである。リンクは、コンポーネント・ベースのソフトウェアにおいて、実行フローを指定するのに用いられる。より詳しくは、リンクは、2つの異なるスロットの間の因果的関係を作成するのに用いられる。そのような関係は、例えば、ある関数が他のある関数の呼び出しに応答して呼び出されることを意味する。オブジェクト・モデルでは、これらの関係は、静的コードによって定義されるのが通常であり(例えば、条件的プロシージャ・コールなど)、リコンパイルなしで変更されることはできない。コンポーネント・モデルでは、リンクは、多くの場合、動的スロットであるから、ランタイムの間に取り除くことができ、ソフトウェアがリコンパイルされることを必要とせずに、ソフトウェアの実行フローを変更する。
コンポーネント・モデルは、オブジェクト指向プログラムとして構築されるので、オブジェクト指向メンバを用いてコンポーネント・モデルを実装することが必要である。クラス、メンバ、フィールド及びメソッドの用語は、一般的なオブジェクト指向の概念を意味するものとする。コンポーネント・タイプ、スロット、プロパティ、アクション及びトピックの用語は、本発明に関係しているので、コンポーネント指向の概念を意味する。
オブジェクトとコンポーネントとの間の大きな違いの1つとして、コンポーネントはランタイムの間に変更しうる点がある。例えば、新たなメソッドをオブジェクトに追加するには、そのオブジェクトのクラスをリコンパイルすることが要求されるのが一般的である。コンポーネント・モデルによると、コンポーネントにおいてスロットを定義して新たなスロットをランタイムで追加することが可能である。コンパイルされたコードにおいて定義されたスロットは、冷凍されている。冷凍されたスロットは不変であるが、コンパイルされたコードの処理効率を取得する。ランタイムで定義されたスロットは、動的である。
オブジェクト指向プログラミングでは、クラス定義の実行中のプログラムにおける記憶は、コンパイラによって処理され、開発者にはほとんど可視的でない。その理由で、オブジェクト指向プログラミングでは、クラスは、アブストラクトとして参照され、実際のデータ構造としては参照されない。従って、ほとんどのオブジェクト指向環境での開発者は、クラス定義はコンピュータ・メモリのどこかに物理的に存在している必要があるという事実に混乱させられることなく、クラスを実際のオブジェクトの抽象的定義として安全に参照することができる。
本発明のコンポーネント・モデルでは、コンポーネント・タイプは、コンピュータ・メモリに記憶されそこで処理されなければならない。コンポーネント・タイプの記憶は、好ましくは、フレームワークによって、コンポーネント・タイプをオブジェクトに記憶することによって、すなわち、コンポーネント・タイプ・オブジェクトによってなされる。従って、コンポーネント・タイプ・オブジェクトは、コンポーネント・タイプの物理表現である。コンポーネントからコンポーネント・タイプ・オブジェクトへの参照は、与えられたコンポーネントがあるコンポーネント・タイプに属するという事実を表現するのに用いられる。
図1は、コンポーネント・タイプが、あるコンポーネント・タイプ・オブジェクトを作成することによってどのように作成されるか、そして、そのコンポーネント・タイプに基づく複数のコンポーネント・インスタンスがどのように生成されるか、を図解する流れ図である。
新たなコンポーネント・タイプを作成するためには、開発者は、フレームワークにクラス定義、すなわち、ベース・クラスを提供することが必要である(ステップ100)。好適実施例では、開発者は、それをコンポーネント・ベースのソフトウェアに追加することによって、ベース・クラスを提供する。ベース・クラスのメンバをそのコンポーネント・モデルにおける異なるタイプのスロットにマップする所定の組の規則が存在する。これらの規則は、例えば、ベース・クラスのメンバのタイプ又は名称に基づいている。開発者は、あるコンポーネント・タイプがどのような冷凍されたスロットを有しているべきかを、規則の組に従ってこれらの冷凍されたスロットに対応するベース・クラス定義にメンバを追加することによって、指示する。好適実施例では、開発者は、また、ベース・クラスをフレームワークに一致させるステートメントを追加する。コンポーネント・ベースのソフトウェアは、ベース・クラスの追加の後で、コンパイルされ、実行される。いったんソフトウェアが動作していると、初期化プロシージャの一部として、フレームワークはベース・クラスを検出し、1又は複数のコンポーネント・タイプとそれらに基づく1又は複数のコンポーネントとを作成するために、図1の残りのプロセスを行う。
フレームワークは、ステップ101で、ベース・クラスを検査し、関係するメンバをすべて発見する。このステップは、ベース・クラスの内部監視によって達成することができる。
すべてのタイプのスロット(プロパティ、アクション、トピック)は、定義を含む。プロパティ・スロットは、そのプロパティ・スロットが保持するデータのタイプとプロパティ・スロットの名称とを特定する。アクション・スロットの定義は、アクション・スロットの名称と、そのアクションを実行するメソッドを実装するコードとを含む。同様に、トピック・スロット定義は、トピックの名称と、そのトピックを実装するコードとを含む。プロパティ・スロットは同様に値を含み、アクション及びトピック・スロットは値を含まない(しかし、それらを実装するメソッドはコンポーネント・レベルで隠されている任意の数の変数を有する場合がある)。プロパティ・スロットは、値を取得し設定するゲッタ及びセッタ・メソッドを必要とする。これらのゲッタ(getter)及びセッタ(setter)メソッドは、プロパティ・スロット定義の一部であり、ベース・クラスにおいて最初に定義される。
ステップ102では、ある1つのプロパティ・スロットに対応するベース・クラスのそれぞれのメンバが、ゲッタ及びセッタ・メソッドのために検査される。慣例により、ゲッタ及びセッタ・メソッドは、これらの関数をそれぞれ実装する標準的なコードと共に、「ゲット(get)」及び「セット(set)」をプロパティ・スロットの名称の前に付することによって命名される。
そして、フレームワークは、コンポーネント・タイプ・オブジェクトを作成する(ステップ103)。コンポーネント・タイプ・オブジェクトの目的は、コンポーネント・タイプを指示することである。コンポーネント・タイプ・オブジェクトは、1又は複数のスロット定義を記憶し検索することができるデータ構造を含む。そのようなデータ構造は、例えば、アレイ又はハッシュテーブルでありうる。コンポーネント・タイプ・オブジェクトは、また、コンポーネント・タイプの名称である名称を含む。この名称は、ベース・クラスの名称からコピーされるか、又は、ベース・クラスにおいて特定のフィールドを用いるなどにより別の方法で開発者により識別されるか、のいずれかである。
ステップ104では、ベース・クラスのすべてのスロット定義が、コンポーネント・タイプ・オブジェクトに記憶される。これらは、冷凍されたスロット定義と称される。ステップ105では、フレームワークは、ステップ103で作成されたコンポーネント・タイプ・オブジェクトと関連付けされたスロットマップ・クラスを生成する。このスロットマップ・クラスは、コンポーネント・タイプ・オブジェクトのそれぞれのプロパティ・スロットに対応するメンバを定義する。スロットマップ・クラスは、また、追加的な動的スロットを作成するメソッドを含む。
ここまでのプロセスが、ステップ107において、すべての既存のベース・クラスについて反復される。
1又は複数の反復の後で、必要な数のコンポーネント・タイプ・オブジェクトが、ステップ106で作成される。それぞれのコンポーネント・タイプ・オブジェクトに対して、対応するスロットマップ・クラスがあり、そのインスタンスは、追加可能な任意の動的スロットだけでなく冷凍されたプロパティ・スロットに対する一意的な値を記憶することができる。
従って、1又は複数のコンポーネント・タイプが作成されるが、このソフトウェアには、依然として、コンポーネント・ベースの機能が欠けている。というのは、これらのコンポーネント・タイプのインスタンスがまったく存在していないからである。ステップ106では、1又は複数のコンポーネントが、既存のコンポーネント・タイプ・オブジェクトから生成される。フレームワークは、コンポーネント・レベルの機能を提供するために、コンポーネント・インスタンスを作成する。コンポーネント・インスタンスは、例えば、データ・ファイル又はユーザ入力に基づいて作成される。例えば、データ・ファイルは、開発者又はユーザによって既に指定されているコンポーネント・システムと、コンポーネント・インスタンスと、その組成と、そのコンフィギュレーション・プロパティと、リンクを介して指示されるシステムの中の実行フローとを有効に含むことができる。更に、ユーザは、コンポーネントのインスタンスを作成しフロントエンド・ブラウザなどを介するそれらの間のリンクを作成することによって、グラフィカル・インターフェースをもちいて、そのようなシステムを最初から作成することができる。
好適実施例では、フレームワークは、コンポーネントを作成する最終的な責任を有している。あるコンポーネント・タイプのコンポーネントが作成される必要があるときには、フレームワークは、既存のコンポーネント・ジェネリックなクラスからコンポーネント・インスタンスを作成する。ジェネリックなクラスは、他のコンポーネントとの通信に(そして、コンポーネントの管理に)用いられる1又は複数のユーティリティ・メンバと、スロットマップ又はスロットマップへの参照を挿入するのに適したフィールドとを含む。フレームワークは、作成されるコンポーネントのコンポーネント・タイプと関連付けされたコンポーネント・タイプ・オブジェクトと、そのコンポーネント・タイプと関連付けされたスロットマップ・クラスとを識別する。そして、次に、スロットマップ・クラスからスロットマップ・インスタンスを作成する。フレームワークは、スロットマップ・インスタンスをコンポーネント・インスタンスに付属させ、それによって、スロットマップは、コンポーネントに効果的に含まれる。次に、コンポーネント・インスタンスからコンポーネント・タイプ・オブジェクトへの参照を作成する。この参照(reference)は、通常はポインタであり、インスタンス・タイプの関係を指定する。すなわち、その特定のコンポーネント・インスタンスがコンポーネント・タイプ・オブジェクトによって記述されるコンポーネント・タイプに属するように指定する。
コンポーネント・タイプ・オブジェクトがプロパティ・スロットの定義を含む場合には、フレームワークは、オプションで、それらに対する値を割り当てる。これらの値は、例えば、データ・ファイルから、又は、ユーザ入力から取得できる。フレームワークは、あるプロパティ・スロットに割り当てられる値を有しているときには、その値をスロットマップ・オブジェクトの中の適切なフィールドに設定することによって、それを達成する。これは、プロパティ・スロットの定義におけるセッタ・メソッドにアクセスすることによって、又は、そのコンポーネント若しくはスロットマップに対するセッタ・メソッドにアクセスすることによって、又は、スロット値に直接にアクセスすることによって、達成することができる。スロット値が提供されない場合には、フレームワークは、デフォルトの値を割り当てるか、何もしないかのいずれかである。
別の実施例では、スロットマップ・クラスは、それぞれのコンポーネント・タイプ・オブジェクトに対して作成されず、その代わりに、それぞれのコンポーネントがジェネリックなスロットマップを含み、すなわち、コンポーネント・オブジェクトにおいて定義されたプロパティ・スロットのプロパティ・スロット値に対する記憶位置を提供するデータ構造を含み、更に、動的フィールド定義及び値を記憶することができる。この目的に役立つデータ構造は、この技術において公知であり、アレイやハッシュテーブルなどである。
フレームワークは、名称をそれぞれのコンポーネントに割り当てるが、その名称は、フレームワークによって生成されるか、又は、プロパティ・スロット値と同じ方法で取得される。
このようにして、フレームワークは、1又は複数のコンポーネント・タイプに属する複数のコンポーネントを作成する。図2は、コンポーネント・タイプ・オブジェクト200によって定義される単一のコンポーネント・タイプに共に属する2つのそのようなコンポーネント211及び212を図解している。コンポーネント・タイプ・オブジェクトは、名称202と冷凍されたスロット204の定義とを含む。この図解されている例では、1つの冷凍されたアクション・スロット・スタート206と、1つの冷凍されたトピック・スロット・アラーム206と、1つの冷凍されたプロパティ・スロットhrs_running210とが存在する。スロットhrs_running210は整数を含むが、他の例では、プロパティ・スロットは、より複雑なデータ、データ構造又は他のデータ・タイプを含むことがある。スロット206及び208は、メソッド及びトピックをそれぞれ実行するのに必要とされるコードを含む。コンポーネント211及び212は、第1のファン(FirstFan)及び第2のファン(SecondFan)という名称であるが、それぞれが、スロットマップ215及び216を含む。それぞれのコンポーネントのスロットマップは、冷凍されたプロパティ・スロット217及び218に対するコンポーネントの値を含む。
好適実施例の顕著な特徴によると、ソフトウェアが実行されている間、動的スロットをコンポーネントに追加することができる。動的スロットは、冷凍されたスロットと同じタイプである。ランタイムの間の動的スロットの追加は、ユーザによって又はソフトウェア自体によってなされる。実装に応じて、動的スロットは、リクエストをフレームワークに対して行うことにより、又は、コンポーネントのユーティリティ・プロシージャを呼び出すことによって、追加される。どちらの方法が用いられるかとは関係なく、動的スロットは、スロットマップに記憶されることによって追加される。動的スロットは、常に定義を有しており、また、プロパティ・スロットである場合には、値も有する。定義はスロットマップに記憶され、値は、適用可能である場合には、同様にそこに記憶される。図3は、2つの動的スロットがコンポーネント211に追加された後の図2のコンポーネント・システムを示している。「ストップ」と称される動的アクション・スロットは、その定義をスロットマップ215に追加することによって、追加されている。また、power_usageと称される動的プロパティ・スロット302は、その定義303と値304とをスロットマップに追加することによって、追加されている。
コンポーネント211は依然として同じコンポーネント・タイプ・オブジェクト200を基準にしていることに注意してほしい。コンポーネント・タイプ・オブジェクトは、動的スロットの追加を登録するためには変更されない。従って、コンポーネント第1のファン211は、2つの動的スロットが追加された後でも、依然として同じコンポーネント・タイプである。結果として、コンポーネント211及び212は、コンポーネント211が更に2つのスロットを有しているという事実とは関係なく依然として同じコンポーネント・タイプである。「純粋な」タイプ・インスタンス・モデルからのこのような離脱は、パフォーマンスの理由でなされる。すなわち、それぞれの変更されたコンポーネントに対する新たなコンポーネント・タイプの作成は、システムを低速化し、追加的なメモリをあまりに多く要求する。コンポーネントは、動的スロットに対するそれら自身のスロットマップを調べその定義を外部コンポーネントやフレームワークやソフトウェアの他のモジュールに提供することを可能にするユーティリティ・メソッドを有している。これらのユーティリティ・メソッドは、コンポーネント・タイプ・オブジェクトが動的スロットの定義を保持しないという理由から、必要である。動的スロットは、スロットマップ・オブジェクトの冷凍されたスロットとほぼ同じ態様で、他のコンポーネント、フレームワーク又はソフトウェアの別のモジュールによって、アクセスされうる。
いったん作成されると、動的スロットは、その定義(及び任意の値)をスロットマップから取り除くことによって、後で、削除することができる。これは、例えば、ソフトウェアをリコンパイルせずに、つまり、サービスのどのような中断もなく、導入される新たに提案される特徴やきのうの結果として生じうる。
リコンパイルなしに動的スロットを導入できることにより、ユーザは、プログラム・フローに影響する新たな関係や接続を追加することが可能になる。これは、「リンク」を通じて達成されるが、このリンクは、2つのコンポーネントの間の関係を保持するスロットである。より詳しくは、リンクは、2つの別個のコンポーネントの2つのスロット(そのどちらもリンクではない)の間の因果的関係を保持する。参照を容易にするために、これらの2つのスロットは、ソース及びターゲット・スロットとして参照される。これらのスロットを保持するコンポーネントは、それぞれが、ターゲット及びソース・コンポーネントとして参照される。リンクによって表わすことができる可能性がある因果的な関係は、多く存在する。好適実施例で用いられるリンクのタイプは、次に示す表1にリスト化されており、リンクしているスロットのタイプが示されている。コンポーネント・レベルでは実行フローの概念はプロパティ・フィールドの変化を含むので、表1においてリスト化されているすべてのリンクは、コンポーネント・システムの実行フローを制御する。
Figure 2006504156
ユーザは、様々なコンポーネントの様々なスロットをリンクすることによって、実行のフローを作成することができる。リンクは、冷凍されているか、又は、動的である。動的リンクは、コンポーネント・システムの実行フローがソフトウェアが実行されている間に変更されることを可能にする。実行フローを変更するためには、リンクを作成するか削除すれだけでいい。同一のリンクを作成する及び削除することを回避するために、好適実施例では、リンクが付勢及び消勢されることが可能になっている。これにより、削除することができない冷凍されたリンクは適切に定式化された動的リンクによって消勢することができるという追加的な効果が得られる。消勢されたリンクは、リンクとしては機能するのではなく、ターゲット・コンポーネントの中に依然として存在し、後で付勢することが可能である。
リンクは、スロットのタイプの1つとして実装される。好適実施例では、リンクは、ターゲット・コンポーネント、すなわち、ターゲット・スロットを保持するコンポーネントの中に含まれる。リンクは、好ましくは、以下のスロットを含む。すなわち、ソース・コンポーネントへの参照又はその名称を保持するソース・コンポーネント・フィールドと、ソース・スロットの名称を保持するソース・フィールドと、ターゲット・スロットの名称を保持するターゲット・フィールドと、付勢されているのか消勢されているのかを示す「付勢」フラグと、である。
リンクは、また、付勢及び消勢メソッド、すなわち、ソース・フィールド、ソース・コンポーネント及び/又はターゲット・フィールドを変更するメソッドなど、それらを処理するのに有用なメソッドを含む。ターゲット・コンポーネントへの参照の必要性はこの構成では回避されているが、その理由は、リンクが既にターゲット・コンポーネントに含まれているからである点に注意すべきである。ターゲット・コンポーネントは、リンクの配置によって間接的に参照される。
好適実施例では、リンクは、付勢されると、ソース・コンポーネントにおいてノブを作成する。ノブとは、リンクに類似のデータ構造であり、ソース・コンポーネントのスロットマップにセーブされる。ノブは、ソース・コンポーネントに対して、そのスロットからターゲット・コンポーネントのスロットにイベントを伝搬させなければならないことを示す。ノブは、リンクの場合と類似のデータ・フィールドを含むが、ソース・コンポーネントではなく、ターゲット・コンポーネントの参照又は名称を含む。ノブは、付勢されたフラグは含まない。むしろ、リンクが消勢されると、ノブは単純に取り除かれる。
図4は、動的リンク401が追加されている図3のコンポーネントを示している。リンクは、付勢されることにより、対応するノブ402が作成されるように作用する。ターゲット及びソース・スロットはプロパティであるから、このリンクの効果は、第1のファンのhrs_runningの値が変化する場合には、第2のファンのhrs_runningの値を第1のファンのhrs_runningの新たな値に変化させることである。換言すると、このリンクは、値217が変化すると、値218を値217に従わせる。リンクは、冷凍されたスロットであるか動的スロットであるかとは関係なく、同じ態様で振る舞う(ただし、動的スロットが呼び出されると、いくらかのパフォーマンス上の低減が存在する)。
図5Aは、図4のコンポーネント・システムの抽象化された図であるが、実装の詳細は示されていない。コンポーネント・レベルから見たリンクの機能が示されている。ここでは、リンク401は、コンポーネント211におけるスロットではなく、ソース・スロットからターゲット・スロットへの矢印で表されている。リンク・スロットは、しかし、コンポーネント211の中に存在する。
図5Aは、コンポーネント・モデルの効果の1つを示している。コンポーネント・モジュールによって、複雑な動的システムが抽象化され、比較的単純な態様で示されることが可能になっている。ユーザには視覚的なインターフェースが提供され、コンポーネント・システムのコンポーネントの1又は複数がウィジェッツとして又は図として視覚的に表現されている。実際、視覚的な表現を、図5Aに示されているものと類似させることが可能である。コンポーネントは、それ自体の表現をプロパティ・スロットに記憶することができる。あるいは、これらの表現は、グラフィカル・モジュールによって処理することができる。好適な視覚的インターフェースの更なる詳細については、この国際出願と同日に出願された「Real-Time Data Interface and Method for Browsers and the Like」という米国特許出願に記載されている。この米国特許出願は、この出願においてその全体を援用する。
いったんコンポーネントがグラフィカル・インターフェースを通じてユーザに向けて表現されると、これらのコンポーネントの様々な関係するスロット及び値が示される。ユーザは、様々なスロットをクリックにより選択する及びコンポーネントの間のリンクをドラッグしてリンクを追加することによって、そのようなインターフェースを通じて、値を変更する、又は、コンポーネントのメソッドを実行することができる。
更に、ユーザは、スクリーン上のリンク、スロット及びコンポーネントの視覚的表現を操作することによって、新たなコンポーネントを追加する、動的プロパティを追加する若しくは削除する、動的リンクを追加する及び削除する、又は、リンクを付勢及び消勢することができる。このようにして、ユーザは、コンポーネント・ベースのシステムを視覚的に再プログラムする。
図5Bは、図5Aに示されているコンポーネント・システムの抽象化された図であるが、リンク401が取り除かれた後のものである。リンクの削除は、破線401‘によって示されている。削除は、動的リンク・スロット411をコンポーネント211から取り除くことによって達成される。任意のこれ以外の動的スロットも、同様に取り除くことができる。
好適実施例の効果の1つは、冷凍されたスロットの効率性及び速度と動的スロットの柔軟性と組み合わせた点である。ある時点では、動的スロットは、あまりに非効率であることがわかっている。しかし、好適実施例は、動的スロットを用いて最適なコンフィギュレーションを見つけることによって、コンポーネント・システムを迅速に変更しテストするのに用いることができる。いったん最適なコンフィギュレーションが見つかると、リコンパイルがなされ、すべての動的スロットが冷凍されたスロットに変換される。リコンパイルの後で、システムは、その最適なコンフィギュレーションを保持しているが、パフォーマンスははるかに向上している。
図6は、図3に示されているシステムのコンポーネント211がいかにして最適化されるかを図解している。動的スロットを冷凍されたスロットにコンパイルすることの結果として、元のコンポーネント・タイプのコンポーネントすべてが同じ動的スロットでない場合でも、元のコンポーネント・タイプ又は新たなコンポーネント・タイプへの変化が生じる。動的スロット301及び302は、その定義をスロットマップ215から取り除き、コンポーネント・タイプのベース・クラス200の冷凍されたスロット定義を増加させることによって、冷凍されたスロットに変換される。プロパティ・スロット302の値304はスロットマップ215に留まるが、今度は、同じコンポーネント・タイプのすべてのコンポーネントに共通の冷凍されたスロット定義と関連付けられている。2つの値217及び304は、これらの定義にリスト化された又はそれらから導かれたオフセットによって、それぞれの定義210及び303と対にされる。
図7は、コンポーネントをコンポーネント・システムに階層的に編成する好適な方法を図解している。既に記述されているように、コンポーネントは、プロパティ・スロットとして、他のコンポーネントを含むことがある。これは、他のコンポーネントへの参照をプロパティ・スロットとして含むことによって、達成される。別の実施例では、所有者を指定するリンクが、参照の代わりに用いられる。
図7に示されているように、他のコンポーネントを含み、システムのコンポーネントをツリー構造に編成することができるというコンポーネントの能力を用いることが好ましい。これらのコンポーネント・タイプ・オブジェクト706、707、708及び709は、それぞれが、コンポーネント・タイプA、B、C及びDを記述している。コンポーネント701はコンポーネント・タイプAであり、コンポーネント702及び703はコンポーネント・タイプBであり、コンポーネント704はコンポーネント・タイプCであり、コンポーネント705はコンポーネント・タイプDである。コンポーネント702、703及び704は、すべて、コンポーネント701の中のスロットとして含まれており、この包含関係は、コンポーネント701のスロット710における参照によって定義されている。コンポーネント704は、コンポーネント705を更に含む。目的地としてコンポーネント703のソース及びスロット712であるコンポーネント705のスロット711を有する実行フロー・リンク713が存在し、太字の矢印で図解されている。他のコンポーネントを含むコンポーネントは、親として参照される。これよりも複雑なシステムを、同様の構造で編成することができる。好適実施例では、システムのすべてのコンポーネントは、単一のツリーとして編成されている。これは、親コンポーネントはただ1つだけあり、ルート・コンポーネントと称され、これは、他のどのコンポーネントにも含まれておらず、そして、その親子関係をルート・コンポーネントまで辿ることができる1又は複数の非ルート・コンポーネントが存在する、ということを意味する。図7では、ルート・コンポーネントは、コンポーネント701である。この編成によって、すべてのコンポーネントが、ルートから出発してコンポーネント名で終了するその祖先の名称のシーケンシャルなリストから構成されるストリングを通じて一意的に識別される、という追加的な効果が得られる。この特徴を用いると、異なるベンダ(売主)からの新たなコンポーネントがシステムに連続的に追加されるような複雑なコンポーネント・システムにおいて、コンポーネントの一意的な識別を保証する助けになる。この識別は、フィールド名を用いて拡張が可能であり、コンポーネントのフィールドに対して一意的な識別を同様に提供することができる。
視覚的なインターフェースはコンポーネント・モデルの重要な効果であるから、本発明は、また、視覚的なインターフェースを提供するシステムを含む。このシステムは、特に、コンポーネント・モデルのためのインターフェースを提供するのに有用であるが、その理由は、このシステムが、視覚的なオブジェクト、ウィジェッツ(widgets)に基づいており、それぞれのそのようなウィジェッツがコンポーネントを視覚化するからである。これ以外の有用な特徴として、このシステムは、非常に大きな柔軟性と比較的低いソースの利用とを組み合わせている点がある。
視覚化システムは、HTMLブラウザなど、標準化されたファイル・フォーマットでサードパーティのコンテンツを表示するのに用いられる普及しているソフトウェアと互換性を有するように設計されている。好適実施例では、本発明は、ジャバ・アプレットとして、HTMLファイルの中に実装されている。ジャバ・アプレットは、エンジンと称される。図8は、視覚化システムの動作を示す流れ図である。ユーザは、ステップ801で、このエンジンを用いて、HTMLブラウザの上にHTMLページをロードする。ステップ802では、HTMLブラウザは、エンジンを実行する。ステップ803では、エンジンは、コンフィギュレーション・ファイルをリクエストする。コンフィギュレーション・ファイルは、コンピュータ・ネットワークを介して、又は、ユーザのコンピュータから、リクエストされる。好適実施例では、コンフィギュレーション・ファイルは、XMLファイルである。コンフィギュレーション・ファイルは、視覚的提供のレイアウトを含み、更に、1又は複数のウィジェッツへの参照、そして、これらのウィジェッツへの配置及び/又はサイズ化情報を含む。
ウィジェッツは、視覚的なオブジェクトである。ウィジェッツの例は、コンポーネントの表現、物理的デバイス、グラフ、パイ型のチャート、表などである。ウィジェッツは、アニメ化することが可能であるし、多数の様々な方法で情報を提供することができる。ウィジェッツは、また、オプションであるが、ユーザと相互作用することも可能である。
それぞれのウィジェッツと関連付けられた実行な可能なコードがあり、コンフィギュレーション・ファイルで参照される。このコードは、拡張(エクステンション)と称される。拡張は、ユーザのコンピュータ、又は、コンピュータ・ネットワークによってユーザのコンピュータに接続された別のコンピュータ上に存在する。拡張は、コンフィギュレーション・ファイルに含まれる参照によって、配置することができる。エンジンは、コンフィギュレーション・ファイルのパージングを行い、拡張を配置することができる。次に、エンジンは、拡張をロードし、それらを、必要な場合にはコンピュータ・ネットワークを介してダウンロードする(ステップ804)。エンジンは、次に、すべての拡張を並行的に実行する。拡張は、いったん実行することになると、エンジンの助けを借りながら、ユーザ・インターフェースを表示する。それぞれの拡張は、それが関連付けられているウィジェッツを表示する。エンジンは、コンフィギュレーション・ファイルの中に記述された一般的なレイアウトを表示し、表示されたウィジェッツを操作して、コンフィギュレーション・ファイルに従ってそれらのサイズを決定し配置する。拡張は、オプションであるが、他のソフトウェア・モジュールと通信を行い、これらの通信に従って関連付けられているウィジェッツを変更及び更新する。例示的な実施例では、ウィジェッツはコンポーネントのグラフィカルな表現であり、そのウィジェッツと関連付けられている拡張は、コンピュータ・ネットワークを介してコンポーネントと通信する。拡張は、また、オプションであるが、ユーザによるコマンドを受け入れたりそれに応答したりすることによって、ユーザと相互作用する。拡張は、また、ユーザとの相互作用に基づいて、コンポーネントなどの他のソフトウェア・コンポーネントからの情報を送受信することができる。このように、ウィジェッツは、拡張のソフトウェア・コードに基づいて、他のソフトウェア・モジュールとの通信、及び/又は、ユーザとの相互作用を、連続的に更新する。拡張は、更に、ユーザから受信した制御信号を他のソフトウェア・モジュールに送信することができる。
例えば、ウィジェッツは、サーモスタットを表しており、このサーモスタットはサーモスタット・コンポーネントによって制御されているとする。サーモスタット・ウィジェッツに対応する拡張は、ネットワークを介して、更新された温度の読み取り値に対するリクエストを送信する。サーモスタット・コンポーネントが回答する。すると、拡張は、温度を更新する。ユーザは、ウィジェッツと相互作用する。例えば、ウィジェッツの上をクリックすることにより、ユーザは、温度を、華氏ではなく摂氏の度数で温度を見たいという希望を表現することができる。拡張は、そのリクエストを受け取り、ウィジェッツを更新する。ユーザは、また、ウィジェッツを通じて、コマンドを実際のサーモスタットに送ることもできる。例えば、ユーザがサーモスタットをオフにすることを望む場合、又は、それを電力節約モードに切り換えたい場合には、ウィジェッツは、そのようなコマンドをサーモスタット・コンポーネントに送る。
視覚的インターフェース・システムの別の実施例によると、ネットワーク通信が拡張によって利用されることが多い場合には、より高い効率性が保証される。複数の拡張によって複数のネットワーク通信が、並行的に動作すると、パフォーマンス上の問題が生じることが多いので、この代替的な実施例では、拡張は、ネットワーク通信を開始することはなく、その代わりに、リクエストをエンジンに送る。エンジンは、所定の時間にわたってネットワーク通信リクエストを集合させ、それらをよりサイズが大きなバンドルに合成することを試み、それらをネットワークを介して送ることにより、ネットワーク効率を改善している。同じコンピュータに向かって出ていく通信だけがバンドル化される。また、通信のバンドルを解除することができるソフトウェア・モジュールが受信側に存在していなければならない。エンジンは、また、あるソフトウェア・モジュールから、1又は複数の拡張に向けて送られた通信を含むバンドルを受け取り、それを単独の通信にするべくバンドルを解除し、それらの単独の通信を、その宛先の拡張に送る。この実施例は、多くの拡張が同一のソフトウェア・モジュールと通信する場合に、最も効率的である。
視覚的なインターフェース・システムは、具体性及び明晰性のために、HTML、ジャバ、XMLなどの言語、フォーマット及びプロトコルを用いて記述される。視覚的なインターフェース・システムは、これらの言語、フォーマット及びプロトコルに限定されることはない。視覚的なインターフェース・システムは、埋込型アプリケーションを許容する任意の言語と動作するように構成することができる。プロプラエタリ・データ・フォーマットを含む任意のデータ・ファイル・フォーマットを、XMLの代わりに用いることができる。
ここに記載されたコンポーネント・モデルと共に動作可能な好適な視覚的インターフェースに関する更なる詳細については、再度、上述した、米国特許出願「Real-Time Data Interface and Method for Browsers and the Like」の参照を促しておきたい。
コンポーネント・モデルでは、すべてのソフトウェア・プログラムを実装することは必要ない。コンポーネント・ベースの機能は、伝統的なオブジェクト指向コードよりも、より低速、より大型になる傾向がある。従って、好適実施例では、動的に修正される必要がある、又は、コンポーネント・モデルの他の特徴を用いる必要があるコードの部分だけが、このコンポーネント・モデルでは実装されている。しかし、コンポーネント・モデルにおいて技術的に実装されていないコードでも、コンポーネントにカプセル化して、それが他のコンポーネントに対しては1つのコンポーネントと見えるようにすることが可能である。
この明細書において記載されたコンピュータは、任意の計算装置でありうる。コンピュータ・ネットワークは、無線ネットワークを含む。
本発明は、以上で、特定の実施例との関係で説明されたが、特許請求の範囲によって、限定なく定義されるのであり、構成要素及び方法ステップについての実質的でない変更を含むものとする。
ある1つのコンポーネント・タイプの作成とそのコンポーネント・タイプの複数のコンポーネント・インスタンスとを示す流れ図である。 同一のコンポーネント・タイプから生成された2つのコンポーネントを示すブロック図である。 動的スロットを含むコンポーネント・システムを示すブロック図である。 リンクを含むコンポーネント・システムを示すブロック図である。 図5Aは、リンクを含むコンポーネント・システムのコンポーネント・レベルの抽象を示すブロック図であり、実装の詳細は隠されている。図5Bは、図5Aに示されているコンポーネント・システムを示すブロック図であり、リンクが取り除かれている。 効率を改善するようにリコンパイルされたコンポーネント・システムのブロック図である。 ツリー構造のコンポーネント・システムを示すブロック図である。 視覚的インターフェースの操作を示す流れ図である。

Claims (26)

  1. マシン上で実行されるソフトウェア・プログラムであって、同一のコンポーネント・タイプの1又は複数のコンポーネントを含み、前記コンポーネント・タイプは、少なくとも1つはプロパティ・スロット定義である1又は複数のスロット定義を含むベース・クラスから定義され、前記コンポーネントは、
    前記ベース・クラスの中のすべてのプロパティ・スロット定義を識別するステップと、
    前記ベース・クラスの中のそれぞれの識別されたプロパティ・スロット定義に対して、ゲッタ及びセッタ方法を配置するステップと、
    スロット定義を記憶するように構成されたコンポーネント・タイプ・オブジェクトを生成するステップと、
    前記識別するステップで識別されたプロパティ・スロット定義を前記コンポーネント・タイプ・オブジェクトに記憶するステップと、
    それぞれがスロットマップと前記コンポーネント・タイプ・オブジェクトへの参照とを有する1又は複数のコンポーネントを生成するステップであって、それぞれのスロットマップは、前記コンポーネント・タイプ・オブジェクトに記憶されているそれぞれのプロパティ・スロット定義の値に対する記憶位置を含む、ステップと、
    前記1又は複数のコンポーネントの中の特定の1つのスロットマップにおける記憶位置にプロパティ・スロット値を挿入することにより、プロパティ・スロット値を設定するステップであって、前記プロパティ・スロット値は、前記コンポーネント・タイプ・オブジェクトにおける前記プロパティ・スロット定義の中の1つと関連付けられている、ステップと、
    を含むステップによって、ラン・タイムの間に生成されることを特徴とするソフトウェア・プログラム。
  2. 請求項1記載の方法において、
    前記識別するステップにおいて定義が識別されたそれぞれのプロパティ・スロットの値に対する1又は複数の記憶位置を定義するスロットマップ・クラスを生成するステップを更に含み、
    1又は複数のコンポーネントを生成する前記ステップにおいて、それぞれのスロットマップは前記スロットマップ・クラスのインスタンスであることを特徴とする方法。
  3. 請求項1記載の方法において、前記ベース・クラスの定義の中の少なくとも1つはアクション・スロット定義であり、この方法は、
    前記ベース・クラスにおいて1又は複数のアクション・スロット定義を識別するステップと、
    前記1又は複数のアクション・スロット定義を前記コンポーネント・タイプ・オブジェクトに記憶するステップと、
    を更に含むことを特徴とする方法。
  4. 請求項1記載の方法において、前記ベース・クラスの定義の中の少なくとも1つはトピック・スロット定義であり、この方法は、
    前記ベース・クラスにおいて1又は複数のトピック・スロット定義を識別するステップと、
    前記1又は複数のトピック・スロット定義を前記コンポーネント・タイプ・オブジェクトに記憶するステップと、
    を更に含むことを特徴とする方法。
  5. 請求項1記載の方法において、前記ソフトウェア・プログラムの実行の間、前記コンポーネント・タイプ・オブジェクトを変更しないままで、前記1又は複数のコンポーネントの中の第1のコンポーネントのスロットマップに動的スロットを追加するステップを更に含んでおり、この追加するステップは、どのようなコンパイリング・ステップも含んでいないことを特徴とする方法。
  6. 請求項5記載の方法において、前記動的スロットはプロパティ・スロットであり、前記追加するステップは、
    動的プロパティ・スロット定義を前記第1のコンポーネントのスロットマップに追加するステップと、
    動的プロパティ・スロット値を前記第1のコンポーネントのスロットマップに追加するステップと、
    を含むことを特徴とする方法。
  7. 請求項5記載の方法において、前記動的スロットはアクション・スロットであり、前記追加するステップは、
    動的アクション・スロット定義を前記第1のコンポーネントのスロットマップに追加するステップを含むことを特徴とする方法。
  8. 請求項5記載の方法において、前記動的スロットはトピック・スロットであり、前記追加するステップは、
    動的トピック・スロット定義を前記第1のコンポーネントのスロットマップに追加するステップを含むことを特徴とする方法。
  9. 請求項5記載の方法において、前記ソフトウェア・プログラムの実行の間、前記動的スロットを前記第1のコンポーネントから取り除くステップを更に含んでおり、前記取り除くステップは、どのようなコンパイリング・ステップも含んでいないことを特徴とする方法。
  10. 請求項6記載の方法において、
    前記ソフトウェア・プログラムをある時間の間実行するステップと、
    前記動的プロパティ・スロットを前記第1のコンポーネントから取り除くステップと、
    前記動的プロパティ・スロット定義と同一であり冷凍されたプロパティ・スロット定義を前記コンポーネント・タイプ・オブジェクトに追加するステップと、
    前記動的プロパティ・スロット値と同一であり冷凍されたプロパティ・スロット値を前記第1のオブジェクトのスロットマップに追加するステップと、
    を更に含んでおり、冷凍されたプロパティ・スロット定義を追加する前記ステップと、冷凍されたプロパティ・スロット値を追加する前記ステップとは、前記ソフトウェア・プログラムを少なくとも部分的にコンパイルすることによって実行されることを特徴とする方法。
  11. 請求項7記載の方法において、
    前記ソフトウェア・プログラムをある時間の間実行するステップと、
    前記動的アクション・スロットを前記第1のコンポーネントから取り除くステップと、
    前記動的アクション・スロット定義と同一であり冷凍されたアクション・スロット定義を前記コンポーネント・タイプ・オブジェクトに追加するステップと、
    を更に含んでおり、冷凍されたアクション・スロット定義を追加する前記ステップは、前記ソフトウェア・プログラムを少なくとも部分的にコンパイルすることによって実行されることを特徴とする方法。
  12. 請求項8記載の方法において、
    前記ソフトウェア・プログラムをある時間の間実行するステップと、
    前記動的トピック・スロットを前記第1のコンポーネントから取り除くステップと、
    前記動的トピック・スロット定義と同一であり冷凍されたトピック・スロット定義を前記コンポーネント・タイプ・オブジェクトに追加するステップと、
    を更に含んでおり、冷凍されたトピック・スロット定義を追加する前記ステップは、前記ソフトウェア・プログラムを少なくとも部分的にコンパイルすることによって実行されることを特徴とする方法。
  13. 請求項5記載の方法において、
    前記ソフトウェア・プログラムのグラフィカルな表現を表示するステップと、
    ユーザが前記グラフィカルな表現を操作することを許容するステップと、
    を更に含んでおり、前記追加するステップは、前記グラフィカルな表現の前記ユーザの操作に応答して実行されることを特徴とする方法。
  14. 請求項13記載の方法において、前記グラフィカルな表現の前記ユーザの操作に応答して前記動的スロットを取り除くステップを更に含むことを特徴とする方法。
  15. 請求項5記載の方法において、スロットマップと前記同一のコンポーネント・タイプ・オブジェクトへの参照とをそれぞれが有する複数のコンポーネントが生成されてコードを定義し、前記動的スロットは、前記2以上のコンポーネントの間の第2のコンポーネントにおけるソース・スロットから前記第1のコンポーネントにおけるターゲット・スロットへの前記コードの実行のフローを定義するリンクであることを特徴とする方法。
  16. 請求項15記載の方法において、
    前記リンクのグラフィカルな表現を含む前記ソフトウェア・プログラムのグラフィカルな表現を表示するステップと、
    ユーザが前記リンクの前記グラフィカルな表現を操作することを許容するステップと、
    を更に含んでおり、前記追加するステップは、前記リンクの前記グラフィカルな表現の前記ユーザの操作に応答して実行されることを特徴とする方法。
  17. 請求項15記載の方法において、前記ソース・スロットはプロパティ・スロットであり、前記ターゲット・スロットはプロパティ・スロットであり、この方法は、前記ターゲット・スロットの値が前記ソース・スロットの値のどのような変化と共にでも変化するように前記コードを実行する追加的ステップを含むことを特徴とする方法。
  18. 請求項15記載の方法において、前記ソース・スロットはプロパティ・スロットであり、前記ターゲット・スロットはアクション・スロットであり、この方法は、前記ソース・スロットの値の変化に応答して前記ターゲット・スロットが呼び出されるようにコードを実行する追加的ステップを含むことを特徴とする方法。
  19. 請求項15記載の方法において、前記ソース・スロットはトピック・スロットであり、前記ターゲット・スロットはアクション・スロットであり、この方法は、前記ソース・スロットのファイアに応答して前記ターゲット・スロットが呼び出されるようにコードを実行する追加的ステップを含むことを特徴とする方法。
  20. 請求項15記載の方法において、前記ソース・スロットはトピック・スロットであり、前記ターゲット・スロットはトピック・スロットであり、この方法は、前記ソース・スロットのファイアに応答して前記ターゲット・スロットがファイアするようにコードを実行する追加的ステップを含むことを特徴とする方法。
  21. 請求項15記載の方法において、前記ソース・スロットはアクション・スロットであり、前記ターゲット・スロットはアクション・スロットであり、この方法は、前記ソース・スロットが呼び出されるのに応答して前記ターゲット・スロットが呼び出されるようにコードを実行する追加的ステップを含むことを特徴とする方法。
  22. 請求項15記載の方法において、前記ソース・スロットはアクション・スロットであり、前記ターゲット・スロットはトピック・スロットであり、この方法は、前記ソース・スロットの呼び出し応答して前記ターゲット・スロットがファイアするようにコードを実行する追加的ステップを含むことを特徴とする方法。
  23. 請求項15記載の方法において、前記リンクは、
    前記第2のコンポーネントへの参照と、
    前記ソース・スロットのスロット名と、
    前記ターゲット・スロットのスロット名と、
    を含むことを特徴とする方法。
  24. コンポーネント・ベースのソフトウェア・システムにおいて一意的な名称をコンポーネントに自動的に指定する方法であって、
    親を有さないルート・コンポーネントを作成するステップと、
    1又は複数の非ルート・コンポーネントを前記ルート・コンポーネントの中に配置するステップと、
    1又は複数の非ルート・コンポーネントを他の非ルート・コンポーネントの中に配置することにより、前記コンポーネントがツリー構造を形成しそれぞれの非ルート・コンポーネントが1つの親を有するようにするステップと、
    前記非ルート・コンポーネントの中の第1のコンポーネントに、当該コンポーネントの祖先の名称と当該コンポーネントの名称とのシーケンシャルなリストを含む一意的な識別ストリングを割り当てるステップと、
    を含むことを特徴とする方法。
  25. 請求項24記載の方法において、前記第1のコンポーネントはスロットを含み、この方法は、前記スロットに識別を提供するステップを更に含むことを特徴とする方法。
  26. 請求項25記載の方法において、前記スロットは動的スロットであることを特徴とする方法。
JP2003570268A 2002-02-15 2003-02-18 リアルタイム・システム制御のためのコンポーネント・モデル Pending JP2006504156A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35732902P 2002-02-15 2002-02-15
PCT/US2003/004803 WO2003071444A1 (en) 2002-02-15 2003-02-18 Component model for real time system control

Publications (1)

Publication Number Publication Date
JP2006504156A true JP2006504156A (ja) 2006-02-02

Family

ID=27757598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003570268A Pending JP2006504156A (ja) 2002-02-15 2003-02-18 リアルタイム・システム制御のためのコンポーネント・モデル

Country Status (8)

Country Link
US (3) US7225426B2 (ja)
EP (1) EP1474753B1 (ja)
JP (1) JP2006504156A (ja)
KR (1) KR20040096577A (ja)
CN (2) CN101719056B (ja)
AU (2) AU2003211125A1 (ja)
CA (1) CA2475050A1 (ja)
WO (2) WO2003071442A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079400A (ja) * 2008-09-24 2010-04-08 Hitachi Information Systems Ltd プロパティファイル読み込みシステムと方法およびプログラム

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8001523B1 (en) * 2001-07-05 2011-08-16 Microsoft Corporation System and methods for implementing an explicit interface member in a computer programming language
US6981250B1 (en) * 2001-07-05 2005-12-27 Microsoft Corporation System and methods for providing versioning of software components in a computer programming language
US7987421B1 (en) 2002-01-30 2011-07-26 Boyd H Timothy Method and apparatus to dynamically provide web content resources in a portal
US7890639B1 (en) * 2002-01-30 2011-02-15 Novell, Inc. Method and apparatus for controlling access to portal content from outside the portal
EP1474753B1 (en) 2002-02-15 2018-08-22 Tridium, Inc. Component model for real time system control
US20030182626A1 (en) * 2002-03-22 2003-09-25 Eran Davidov On-demand creation of MIDlets
US7305671B2 (en) * 2002-03-22 2007-12-04 Sun Microsystems, Inc. Conversion of an object model to a source file generation model
US20030181196A1 (en) * 2002-03-22 2003-09-25 Eran Davidov Extensible framework for code generation from XML tags
US7565647B2 (en) * 2002-03-22 2009-07-21 Sun Microsystems, Inc. Markup compiler that outputs MIDlets
US7512932B2 (en) 2002-03-22 2009-03-31 Sun Microsystems, Inc. Language and object model for describing MIDlets
US7246324B2 (en) * 2002-05-23 2007-07-17 Jpmorgan Chase Bank Method and system for data capture with hidden applets
US7958455B2 (en) * 2002-08-01 2011-06-07 Apple Inc. Mode activated scrolling
US20040044755A1 (en) * 2002-08-27 2004-03-04 Chipman Timothy W. Method and system for a dynamic distributed object-oriented environment wherein object types and structures can change while running
WO2004066604A1 (en) * 2003-01-22 2004-08-05 Nimcat Networks Inc. Call transfer system, method and network devices
US7685515B2 (en) * 2003-04-04 2010-03-23 Netsuite, Inc. Facilitating data manipulation in a browser-based user interface of an enterprise business application
US7685010B2 (en) 2003-04-04 2010-03-23 Netsuite, Inc. Concise communication of real-time business information in an enterprise network
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US7392512B2 (en) * 2003-09-08 2008-06-24 Microsoft Corporation System and method for automatic conversion from WAP client provisioning XML represented objects to OMA DM tree structure represented objects
WO2005029382A2 (en) * 2003-09-19 2005-03-31 Lattix, Inc. Apparatus and method for managing design of a software system using dependency structure
US7480709B2 (en) * 2003-11-14 2009-01-20 Rockwell Automation Technologies, Inc. Dynamic browser-based industrial automation interface system and method
US7412367B1 (en) * 2003-11-17 2008-08-12 The Mathworks, Inc. Transparent subsystem links
US7324931B1 (en) * 2003-11-17 2008-01-29 The Mathworks, Inc. Conversion of model components into references
US20050125787A1 (en) * 2003-12-05 2005-06-09 Leonid Tertitski Convertible runtime graphical user interface
US7392295B2 (en) * 2004-02-19 2008-06-24 Microsoft Corporation Method and system for collecting information from computer systems based on a trusted relationship
GB2411331A (en) 2004-02-19 2005-08-24 Trigenix Ltd Rendering user interface using actor attributes
US9552141B2 (en) * 2004-06-21 2017-01-24 Apple Inc. Methods and apparatuses for operating a data processing system
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US7546543B2 (en) * 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US8566732B2 (en) * 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US7761800B2 (en) * 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US7558843B2 (en) 2004-07-12 2009-07-07 Netsuite, Inc. Phased rollout of version upgrades in web-based business information systems
US9009313B2 (en) 2004-07-12 2015-04-14 NetSuite Inc. Simultaneous maintenance of multiple versions of a web-based business information system
US7500181B2 (en) * 2004-08-31 2009-03-03 International Business Machines Corporation Method for updating a portal page
US9471332B2 (en) * 2004-10-19 2016-10-18 International Business Machines Corporation Selecting graphical component types at runtime
US8875040B2 (en) * 2005-06-07 2014-10-28 Rockwell Automation Technologies, Inc. Universal web-based reprogramming method and system
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US20060168526A1 (en) * 2005-01-12 2006-07-27 Nokia Corporation Platform-specific application user interface remoting
US7926029B1 (en) * 2005-01-13 2011-04-12 21St Century Systems, Inc. System and method of progressive domain specialization product solutions
US8280947B2 (en) * 2005-03-16 2012-10-02 Airscape Technology Pty. Limited Method for distributing computing between server and client
US7546582B2 (en) 2005-03-30 2009-06-09 International Business Machines Corporation Managing dynamic configuration data for producer components in a computer infrastructure
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US8924869B2 (en) * 2005-08-12 2014-12-30 Barry Fellman Service for generation of customizable display widgets
WO2007022513A2 (en) * 2005-08-19 2007-02-22 Google Inc. Software architecture for displaying information content from plug-in modules in a user interface
US8024054B2 (en) * 2005-08-22 2011-09-20 Trane International, Inc. Building automation system facilitating user customization
US7870090B2 (en) * 2005-08-22 2011-01-11 Trane International Inc. Building automation system date management
US8099178B2 (en) * 2005-08-22 2012-01-17 Trane International Inc. Building automation system facilitating user customization
US8050801B2 (en) 2005-08-22 2011-11-01 Trane International Inc. Dynamically extensible and automatically configurable building automation system and architecture
US7904186B2 (en) * 2005-08-22 2011-03-08 Trane International, Inc. Building automation system facilitating user customization
US8055387B2 (en) * 2005-08-22 2011-11-08 Trane International Inc. Building automation system data management
US7917232B2 (en) 2005-08-22 2011-03-29 Trane International Inc. Building automation system data management
US8055386B2 (en) 2005-08-22 2011-11-08 Trane International Inc. Building automation system data management
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US20070143673A1 (en) * 2005-12-20 2007-06-21 Microsoft Corporation Extensible architecture for chart styles and layouts
US20070185065A1 (en) * 2006-02-03 2007-08-09 Vikramjit Chhokar Combination therapy for coronary artery disease
US20070182841A1 (en) * 2006-02-07 2007-08-09 Donnie Drake Image sensing microelectronic device with glass tilt control features, and various methods of making same
US7865583B2 (en) * 2006-03-31 2011-01-04 The Invention Science Fund I, Llc Aggregating network activity using software provenance data
US9726392B2 (en) * 2006-06-29 2017-08-08 Honeywell International Inc. Generic user interface system
US8112162B2 (en) * 2006-06-29 2012-02-07 Honeywell International Inc. System level function block engine
US7738972B2 (en) * 2006-06-29 2010-06-15 Honeywell International Inc. Modular shared-memory resource stage driver system for flexible resource linking in an energy conversion system
US8418128B2 (en) * 2006-06-29 2013-04-09 Honeywell International Inc. Graphical language compiler system
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
WO2008070320A2 (en) * 2006-10-23 2008-06-12 Chipin Inc. Method and system for providing a widget for displaying multimedia content
US8839100B1 (en) * 2007-01-26 2014-09-16 The Mathworks, Inc. Updating information related to data set changes
US8196097B1 (en) * 2007-03-02 2012-06-05 Google Inc. Method and apparatus for extending a software gadget
WO2008121410A1 (en) * 2007-03-29 2008-10-09 Ludi Labs, Inc. Interface definition for implementing contextual applications
WO2008131417A1 (en) * 2007-04-23 2008-10-30 Snac, Inc. Mobile widget dashboard
US20080271127A1 (en) * 2007-04-24 2008-10-30 Business Objects, S.A. Apparatus and method for creating stand-alone business intelligence widgets within an authentication framework
KR101415023B1 (ko) * 2007-04-26 2014-07-04 삼성전자주식회사 네트워크를 통한 정보 제공 방법 및 장치
US8578330B2 (en) 2007-06-11 2013-11-05 Sap Ag Enhanced widget composition platform
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8156467B2 (en) 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US10176272B2 (en) * 2007-09-28 2019-01-08 Excalibur Ip, Llc System and method of automatically sizing and adapting a widget to available space
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US7418710B1 (en) 2007-10-05 2008-08-26 Kaspersky Lab, Zao Processing data objects based on object-oriented component infrastructure
US8650306B2 (en) * 2007-10-24 2014-02-11 Honeywell International Inc. Interoperable network programmable controller generation system
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US20090199205A1 (en) * 2008-02-06 2009-08-06 Honeywell International Inc. Configurable graphics virtual machine based display system
US7908391B1 (en) * 2008-03-25 2011-03-15 Symantec Corporation Application streaming and network file system optimization via feature popularity
US8307300B1 (en) 2008-05-13 2012-11-06 Google Inc. Content resizing and caching in multi-process browser architecture
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US20100070881A1 (en) * 2008-09-12 2010-03-18 At&T Intellectual Property I, L.P. Project facilitation and collaboration application
US20100083219A1 (en) * 2008-10-01 2010-04-01 Microsoft Corporation Runtime Object Composition
US8762708B2 (en) 2008-10-11 2014-06-24 David L. Blankenbeckler Secure content distribution system
US9488992B2 (en) * 2008-10-16 2016-11-08 Honeywell International Inc. Wall module configuration tool
US8954488B2 (en) * 2009-01-21 2015-02-10 Microsoft Corporation Extensibility for web based diagram visualization
US8180824B2 (en) 2009-02-23 2012-05-15 Trane International, Inc. Log collection data harvester for use in a building automation system
US8495566B2 (en) * 2009-07-28 2013-07-23 International Business Machines Corporation Widget combos: a widget programming model
CN101655795B (zh) * 2009-09-25 2012-10-10 金蝶软件(中国)有限公司 服务实例的创建方法和系统
US20130275890A1 (en) * 2009-10-23 2013-10-17 Mark Caron Mobile widget dashboard
US8661408B2 (en) * 2009-11-23 2014-02-25 Michael James Psenka Integrated development environment and methods of using the same
US9258201B2 (en) * 2010-02-23 2016-02-09 Trane International Inc. Active device management for use in a building automation system
US8219660B2 (en) * 2010-02-26 2012-07-10 Trane International Inc. Simultaneous connectivity and management across multiple building automation system networks
US8793022B2 (en) 2010-02-26 2014-07-29 Trane International, Inc. Automated air source and VAV box association
US20110246913A1 (en) * 2010-03-30 2011-10-06 Microsoft Corporation Automated User Interface Generator
US8538588B2 (en) 2011-02-28 2013-09-17 Honeywell International Inc. Method and apparatus for configuring scheduling on a wall module
US20130019195A1 (en) * 2011-07-12 2013-01-17 Oracle International Corporation Aggregating multiple information sources (dashboard4life)
US9058401B2 (en) * 2011-08-16 2015-06-16 Fabebook, Inc. Aggregating plug-in requests for improved client performance
US10083247B2 (en) 2011-10-01 2018-09-25 Oracle International Corporation Generating state-driven role-based landing pages
US20130139073A1 (en) * 2011-11-09 2013-05-30 Revionics Inc. System and method for changing functionalities of websites using widgets
US8826158B1 (en) * 2011-12-14 2014-09-02 The United States Of America As Represented By The Director, National Security Agency Device for and method of determining changes to GUI
US8930886B2 (en) * 2011-12-15 2015-01-06 Microsoft Corporation Identifying application resources through implicit application models
US9218118B2 (en) 2012-09-11 2015-12-22 Apple Inc. Media player playlist management
US9558278B2 (en) 2012-09-11 2017-01-31 Apple Inc. Integrated content recommendation
CN103853534B (zh) * 2012-11-30 2017-12-01 腾讯科技(深圳)有限公司 一种照片即时显示方法及装置
US11373191B2 (en) 2013-03-15 2022-06-28 Usgbc Systems, devices, components and methods for dynamically displaying performance scores associated with the performance of a building or structure
CN104346149A (zh) * 2013-07-30 2015-02-11 商业对象软件有限公司 用于数据可视化的描述性框架
US9697299B2 (en) * 2013-08-01 2017-07-04 Raytheon Company Embedded system web server
WO2015024262A1 (zh) * 2013-08-23 2015-02-26 华为终端有限公司 一种网页页面处理方法及设备
US10228837B2 (en) * 2014-01-24 2019-03-12 Honeywell International Inc. Dashboard framework for gadgets
US9274790B2 (en) * 2014-04-30 2016-03-01 Oracle International Corporation Customization manager
US10545639B1 (en) * 2014-09-29 2020-01-28 Rockwell Collins, Inc. Run-time widget creating system, device, and method
CN104298750B (zh) * 2014-10-14 2018-02-23 北京国双科技有限公司 用于实时系统通信的更新处理方法及装置
US9920944B2 (en) 2015-03-19 2018-03-20 Honeywell International Inc. Wall module display modification and sharing
US10684756B2 (en) * 2016-04-27 2020-06-16 Rockwell Collins, Inc. Avionics picture-in-picture display
US10269235B2 (en) 2016-08-26 2019-04-23 Trane International Inc. System and method to assist building automation system end user based on alarm parameters
US11108539B2 (en) * 2017-11-21 2021-08-31 Disney Enterprises, Inc. Techniques for analyzing and verifying time in machine-based networks
CA3054216C (en) 2018-09-05 2023-08-01 Honeywell International Inc. Methods and systems for improving infection control in a facility
CN109814778B (zh) * 2018-12-24 2020-12-22 天津字节跳动科技有限公司 小程序选项卡的实现方法、装置、电子设备及介质
US10978199B2 (en) 2019-01-11 2021-04-13 Honeywell International Inc. Methods and systems for improving infection control in a building
US11620594B2 (en) 2020-06-12 2023-04-04 Honeywell International Inc. Space utilization patterns for building optimization
US11783652B2 (en) 2020-06-15 2023-10-10 Honeywell International Inc. Occupant health monitoring for buildings
US11783658B2 (en) 2020-06-15 2023-10-10 Honeywell International Inc. Methods and systems for maintaining a healthy building
US11914336B2 (en) 2020-06-15 2024-02-27 Honeywell International Inc. Platform agnostic systems and methods for building management systems
US11184739B1 (en) 2020-06-19 2021-11-23 Honeywel International Inc. Using smart occupancy detection and control in buildings to reduce disease transmission
US11823295B2 (en) 2020-06-19 2023-11-21 Honeywell International, Inc. Systems and methods for reducing risk of pathogen exposure within a space
US11619414B2 (en) 2020-07-07 2023-04-04 Honeywell International Inc. System to profile, measure, enable and monitor building air quality
US11402113B2 (en) 2020-08-04 2022-08-02 Honeywell International Inc. Methods and systems for evaluating energy conservation and guest satisfaction in hotels
CN112130856B (zh) * 2020-09-29 2023-11-03 重庆紫光华山智安科技有限公司 强扩展性的前端可视化界面生成方法、系统、介质及终端
US11894145B2 (en) 2020-09-30 2024-02-06 Honeywell International Inc. Dashboard for tracking healthy building performance
US11372383B1 (en) 2021-02-26 2022-06-28 Honeywell International Inc. Healthy building dashboard facilitated by hierarchical model of building control assets
US11662115B2 (en) 2021-02-26 2023-05-30 Honeywell International Inc. Hierarchy model builder for building a hierarchical model of control assets
US11474489B1 (en) 2021-03-29 2022-10-18 Honeywell International Inc. Methods and systems for improving building performance

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435764A (en) 1981-08-06 1984-03-06 Data General Corp. Computer network having a single electrically continuous bi-directional bus
US4747041A (en) * 1983-06-27 1988-05-24 Unisys Corporation Automatic power control system which automatically activates and deactivates power to selected peripheral devices based upon system requirement
JPS6170654A (ja) 1984-09-14 1986-04-11 Hitachi Ltd 分散処理システムにおける資源管理方式
US4635195A (en) * 1984-09-25 1987-01-06 Burroughs Corporation Power control network using reliable communications protocol
US4677566A (en) 1984-10-18 1987-06-30 Burroughs Corporation Power control network for multiple digital modules
FR2610120B1 (fr) 1987-01-26 1989-07-13 Merlin Gerin Ensemble de commande et de protection connectant un reseau de communication local a un processus industriel
US5175852A (en) 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
ATE121208T1 (de) * 1990-01-30 1995-04-15 Johnson Service Co Vernetztes betriebsmittelverwaltungssystem.
US5608870A (en) * 1992-11-06 1997-03-04 The President And Fellows Of Harvard College System for combining a plurality of requests referencing a common target address into a single combined request having a single reference to the target address
WO1997027553A1 (en) * 1996-01-29 1997-07-31 Futuretense, Inc. Distributed electronic publishing system
US5862052A (en) 1996-04-12 1999-01-19 Fisher-Rosemount Systems, Inc. Process control system using a control strategy implemented in a layered hierarchy of control modules
US5982362A (en) 1996-05-30 1999-11-09 Control Technology Corporation Video interface architecture for programmable industrial control systems
US5918233A (en) * 1996-05-30 1999-06-29 The Foxboro Company Methods and systems for providing electronic documentation to users of industrial process control systems
US5786993A (en) 1996-06-14 1998-07-28 Landis & Gyr Technology Innovation Corp. Apparatus for and method of controlling and/or regulating process parameters of an installation
US6047222A (en) * 1996-10-04 2000-04-04 Fisher Controls International, Inc. Process control network with redundant field devices and buses
JP2865136B2 (ja) 1996-11-11 1999-03-08 日本電気株式会社 テスト考慮論理合成システム
US5916306A (en) 1996-11-14 1999-06-29 Johnson Controls Technology Communication protocol for a router-based building automation and control network
US6262729B1 (en) * 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6055562A (en) 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6266721B1 (en) * 1997-05-13 2001-07-24 Micron Electronics, Inc. System architecture for remote access and control of environmental management
EP1023650B1 (en) * 1997-10-13 2003-09-24 Rosemount Inc. Communication technique for field devices in industrial processes
US6067477A (en) * 1998-01-15 2000-05-23 Eutech Cybernetics Pte Ltd. Method and apparatus for the creation of personalized supervisory and control data acquisition systems for the management and integration of real-time enterprise-wide applications and systems
US6356920B1 (en) * 1998-03-09 2002-03-12 X-Aware, Inc Dynamic, hierarchical data exchange system
US6028998A (en) 1998-04-03 2000-02-22 Johnson Service Company Application framework for constructing building automation systems
US6119125A (en) 1998-04-03 2000-09-12 Johnson Controls Technology Company Software components for a building automation system based on a standard object superclass
US6185566B1 (en) 1998-05-05 2001-02-06 Robert A. Adams Network management system having an embedded network database
US6591305B2 (en) * 1998-06-30 2003-07-08 Sun Microsystems, Inc. Method and system for delivering data from a server object to a client object using a non-proprietary data transfer protocol
US6353853B1 (en) * 1998-10-26 2002-03-05 Triatek, Inc. System for management of building automation systems through an HTML client program
US6411700B1 (en) * 1998-10-30 2002-06-25 Nec America, Inc. Telemanagement system with single point of entry
US6157943A (en) * 1998-11-12 2000-12-05 Johnson Controls Technology Company Internet access to a facility management system
US6728960B1 (en) * 1998-11-18 2004-04-27 Siebel Systems, Inc. Techniques for managing multiple threads in a browser environment
DE19853205A1 (de) * 1998-11-18 2000-06-15 Siemens Ag Verfahren zur Steuerung technischer Prozesse
US6636885B1 (en) * 1999-03-26 2003-10-21 Sun Microsystems, Inc. System using interface class in client computer to resolve references and retrieve delayed class applet from server
JP2000347866A (ja) 1999-06-04 2000-12-15 Nec Corp 分散システムとアクセス制御装置及び方法、並びにアクセス制御用プログラムを記録した記録媒体
DE19933584A1 (de) * 1999-07-17 2001-01-18 Ibm Verfahren zur kompakten Darstellung von Informationspaketen und deren Speicherung oder Übertragung
US6681243B1 (en) 1999-07-27 2004-01-20 Intel Corporation Network environment supporting mobile agents with permissioned access to resources
US6842906B1 (en) 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US7010503B1 (en) * 2000-03-10 2006-03-07 Ams Services, Inc. Traffic reduction in networked data collection
US20030221162A1 (en) 2000-03-20 2003-11-27 Sridhar Mandayam Andampillai Meta-templates in website development and methods therefor
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6721777B1 (en) 2000-05-24 2004-04-13 Sun Microsystems, Inc. Modular and portable deployment of a resource adapter in an application server
JP2001337823A (ja) * 2000-05-25 2001-12-07 Sony Corp コンポーネントウェア作成方法および記録媒体
US7388831B2 (en) * 2000-07-26 2008-06-17 Pluris, Inc. Method and apparatus for bond management according to hierarchy
KR100352549B1 (ko) * 2000-07-29 2002-09-12 주식회사 알티캐스트 어플리케이션 정의 화일을 이용한 디지털 방송용 컨텐츠데이터의 관리방법 및 그 시스템
US7080159B2 (en) 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
EP1474753B1 (en) 2002-02-15 2018-08-22 Tridium, Inc. Component model for real time system control

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079400A (ja) * 2008-09-24 2010-04-08 Hitachi Information Systems Ltd プロパティファイル読み込みシステムと方法およびプログラム

Also Published As

Publication number Publication date
US7822806B2 (en) 2010-10-26
AU2003211125A1 (en) 2003-09-09
US7225426B2 (en) 2007-05-29
CA2475050A1 (en) 2003-08-28
US20030158975A1 (en) 2003-08-21
AU2003211126A1 (en) 2003-09-09
CN101719056A (zh) 2010-06-02
WO2003071444A9 (en) 2003-10-16
CN1669020A (zh) 2005-09-14
EP1474753A4 (en) 2009-12-09
WO2003071444A1 (en) 2003-08-28
WO2003071442A1 (en) 2003-08-28
US20040215740A1 (en) 2004-10-28
KR20040096577A (ko) 2004-11-16
CN101719056B (zh) 2016-01-27
US20030159129A1 (en) 2003-08-21
EP1474753B1 (en) 2018-08-22
WO2003071442A9 (en) 2003-10-16
EP1474753A1 (en) 2004-11-10

Similar Documents

Publication Publication Date Title
JP2006504156A (ja) リアルタイム・システム制御のためのコンポーネント・モデル
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
US7089256B2 (en) Universal data editor
US7269792B2 (en) System and method for generating high-function browser widgets with full addressability
US5832264A (en) Object-oriented communications framework system with support for multiple remote machine types
US7562347B2 (en) Reusable software components
JP5102828B2 (ja) アプリケーション・データ・エディタを生成するための方法及びシステム
RU2601198C2 (ru) Система среды выполнения
US5896532A (en) Objects with run-time classes and methods of making them
US20020049963A1 (en) Software instrumentation method and apparatus
JPH0334018A (ja) コンピュータプログラムのカプセル化方法及びその装置
JP2004505333A (ja) 通信サービスのプロビジョニング方法及び装置、及びプロビジョニング・モデルを開発するためのオブジェクト・プログラミング言語
JP2006107478A (ja) ワークフローを設計するための拡張可能フレームワーク
JP2004133892A (ja) プログラムに対してメッセージを発行するためのシステムおよび方法
EP1586993A2 (en) System and method for priority based binding
JP2007316905A (ja) アプリケーションプログラムを監視する計算機システム及びその方法
JP2005327251A (ja) 条件付きui制御及び画面ナビゲーションを有する対話型無線アプリケーションのためのシステム及び方法
EP1192532B1 (en) Extending the attributes of an application generated using a fourth generation programming tool
US8700374B1 (en) System and method of using an active link in a state programming environment to locate an element in a graphical programming environment
JP4084956B2 (ja) オブジェクト集合方法およびシステム
Baaij et al. Soosim: Operating system and programming language exploration
JP2005353092A (ja) プロセス制御システム
WO2004088513A1 (ja) シミュレーションツールを用いるユーザーを支援する方法および コンピュータシステム
JP5007041B2 (ja) ジョブ管理装置およびジョブ管理方法
Bukovics Dynamic Workflow Updates

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090511

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090528

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090629

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090727