JP5216853B2 - 分散型システムにおける宣言的モデルの段階的な実施 - Google Patents

分散型システムにおける宣言的モデルの段階的な実施 Download PDF

Info

Publication number
JP5216853B2
JP5216853B2 JP2010514983A JP2010514983A JP5216853B2 JP 5216853 B2 JP5216853 B2 JP 5216853B2 JP 2010514983 A JP2010514983 A JP 2010514983A JP 2010514983 A JP2010514983 A JP 2010514983A JP 5216853 B2 JP5216853 B2 JP 5216853B2
Authority
JP
Japan
Prior art keywords
distributed application
application program
declarative
platform
declarative models
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010514983A
Other languages
English (en)
Other versions
JP2010532532A (ja
Inventor
セデュヒン イゴール
エシュナー ダニエル
エス.クルカルニ アモール
エム.ベンカタラマナパ ギリシュ
エス.バンネッリ ザ サード レオ
モハンティ サミット
サヒ サンディープ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010532532A publication Critical patent/JP2010532532A/ja
Application granted granted Critical
Publication of JP5216853B2 publication Critical patent/JP5216853B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

コンピュータ化されたシステムの人気が増すにつれて、かかるシステム内で用いられるソフトウェアおよびハードウェアの複雑さも増大した。一般に、一見して、より複雑なソフトウェアに対する要求は引き続き高まっている。この要求が、さらに、ハードウェアのより多くの開発を促す影響力の1つになる傾向がある。例えば、アプリケーションプログラムがあまりに多くの所与のハードウェアシステムを必要とする場合、そのハードウェアシステムは、動作が非効率になる可能性がある。そうでなければ、ハードウェアシステムがアプリケーションプログラムをまったく処理できない可能性がある。しかし、アプリケーションプログラム開発における最近の傾向は、少なくとも部分的に、分散型アプリケーションプログラムを使用して、この種のハードウェアの制約の多くを取り除いた。通常、分散型アプリケーションプログラムは、多くの場合、階層的な環境(tiered environment)において異なるコンピュータシステム上のいくつかの異なるハードウェアコンポーネントを介して実行されるコンポーネントを備える。
異なるコンピュータシステムは、分散型アプリケーションプログラムを用いて、ネットワーク上で様々な処理結果を互いに通信することが可能である。これらの方針に沿って、企業は、多くの異なるコンピュータシステム上でいくつかの異なる分散型アプリケーションプログラムを管理するために、分散型アプリケーションサーバを用いることになる。例えば、ユーザは、異なるコンピュータシステムの1つのセット上で実行される電子商取引アプリケーションプログラムの動作を管理するために、1つの分散型アプリケーションサーバを用いることが可能である。ユーザは、コンピュータシステムの同じセット上で、またはコンピュータシステムの異なるセット上ですら、カスタマ管理アプリケーションプログラムの実行を管理するために、分散型アプリケーションサーバを使用することも可能である。
当然、分散型アプリケーションサーバを介して管理されるそれぞれの対応する分散型アプリケーションは、次に、依然としてその他の異なるコンピュータシステム上で実行されるいくつかの異なるモジュールおよびコンポーネントを有する場合がある。したがって、いくつかの異なるコンピュータシステムを介して処理能力を組み合わせるこの能力は有利であると同時に、アプリケーションプログラムモジュールのかかる広範囲な分散にはその他の欠点が存在することを理解されよう。例えば、企業は、通常、分散型アプリケーションサーバが、オプションで、利用可能なリソース上で分散型アプリケーションを最適に実行することを期待して、変化する需要パターンおよびリソースの利用可能性を考慮に入れる。
残念ながら、従来の分散型アプリケーションサーバは、通常、分散型アプリケーションプログラムのそれぞれの所与のモジュールに関して発生することができる、異なる問題のすべてを自動的に処理および管理する設備が不十分である(または、設備がまったく整っていない)。例えば、ユーザは、販売促進の期間中や毎年同じ休日の間は、いつも決まって注文が殺到するオンラインストアのアプリケーションプログラムを有する場合がある。場合によっては、ユーザは、分散型アプリケーションサーバが、所与の分散型アプリケーションプログラムの様々なコンポーネントまたはモジュールに対するこれらの変動する需要を解析および予想することを期待する場合がある。
特に、企業は、需要の高いプロセスが、あまり忙しくない可能性があるその他のシステム上のソフトウェアおよびハードウェアコンポーネントによって処理されるように、分散型アプリケーションサーバが、様々なリソースを交換して回る(swap around)ことを期待する場合がある。しかし、かかる対応は、従来の分散型アプリケーションサーバプラットフォームで行う場合、不可能でないとしても、困難な場合がある。具体的には、大部分の従来の分散型アプリケーションサーバプラットフォームは、設備が不十分であるか、または、そうでない場合、分散型アプリケーションプログラムのコンポーネント同士の間で、異なる需要パターンを識別して、適切に管理することが不可能である。これは、その多くが、長期間のワークフローである多くの分散型コンポーネントおよび分散型サブシステム、ならびに/または、そうでない場合、レガシーシステムもしくは外部システムを有することができるアプリケーションプログラムを管理する際の複雑さに少なくとも部分的に起因する場合がある。
加えて、従来の分散型アプリケーションプログラムサーバは、通常、効率的なスケーラビリティに対して構成されていない。例えば、大部分の分散型アプリケーションサーバは、正確な基準アドレス体系および/またはコンポーネントアドレス体系(reference and/or component addressing schemes)など、所与の分散型アプリケーションプログラムの正確な命令を管理するように構成される。すなわち、多くの場合、アプリケーションプログラムのコンポーネント同士の間に「疎結合」はわずかに存在するか、またはまったく存在しない。したがって、サーバの管理者が、別のサーバ上もしくは別のコンピュータシステムのセット上に、ある種のモジュールまたはコンポーネントを再配備することを望む場合、特に、多くの異なるコンピュータシステムおよび/またはモジュールが必要とされる場合、エラーのより一層の可能性が存在する。新しいモジュール基準もしくは新しいコンポーネント基準のいくつかが、必要とされるあらゆる場合にその先に渡されない場合、または当該基準が不正確にその先に渡された場合、このエラーの可能性は現実のものとなる。
このエラーの可能性をさらに高める可能性がある分散型アプリケーションプログラムの一態様は、分散型アプリケーションサーバは、そのそれぞれが異なるプラットフォーム上で実行するいくつかの異なる分散型アプリケーションプログラムを管理することができるという概念である。すなわち、分散型アプリケーションサーバは、対応する分散型アプリケーションプログラムがその変更を受け入れて、それを実施することが可能である前に、それぞれの異なるプラットフォームに対する異なる命令を変換する必要がある。これらのおよびその他の複雑な状態により、分散型アプリケーションプログラムは、需要スパイク(demand spikes)にかなり敏感な傾向がある。
需要スパイクに対するこの敏感さは、様々な分散型アプリケーションプログラムモジュールが、エラーが検出される前に、長い時間にわたって準最適レベルで引き続き動作することができることを意味する。場合によっては、修正措置を試みることは、結果として、さらにより多くのエラーをもたらす可能性があるため、分散型アプリケーションサーバの管理者は、修正措置を講じない場合がある。結果として、分散型アプリケーションプログラムモジュールは、分散型アプリケーションプログラムの寿命の間、決して訂正されずに、連続的に自らを再ブートするなど、非効率な動作のパターンに行き詰る可能性が潜在的にある。したがって、現在の分散型アプリケーションプログラムおよび分散型アプリケーションプログラムサーバの管理について、対処されるいくつかの困難が存在する。
本発明の実装形態は、分散型アプリケーションプログラムサーバを介して分散型アプリケーションプログラムのオペレーションを自動的に実施するように構成されたシステム、方法、およびコンピュータプログラム製品を提供する。少なくとも1つの実装形態において、例えば、分散型アプリケーションプログラムサーバは、実施手段のセットおよび解析手段のセットを備える。分散型アプリケーションプログラムのそれぞれの所与のモジュールに対するプラットフォーム固有ドライバを介して、当該実施手段は、それぞれのプラットフォーム上で所与の分散型アプリケーションプログラムモジュールを作成するために、高レベル命令、すなわち、宣言的モデル(declarative models)のセットを配備する。一方、当該解析手段は、必要に応じて、当該宣言的モデルを自動的に監視および調整する。宣言的モデルによる、分散型アプリケーションプログラムに対するサーバコンポーネントのこの疎結合、ならびに自動的な監視および調整は、サーバが、需要、リソース、もしくは利用急増(usage spikes)、および/またはその他の形態の分散型アプリケーションプログラムの行動変動をよりよく管理することを可能にできる。
したがって、宣言的モデルを使用して、分散型アプリケーションプログラムの実行の間に、当該分散型アプリケーションプログラム内の高レベル命令の1つまたは複数のセットを自動的に実施する方法は、リポジトリ内の対応する1つまたは複数の宣言的モデルに対する1つまたは複数の修正を識別することを含むことができる。この1つまたは複数の宣言的モデルは、分散型アプリケーションプログラムの1つまたは複数の動作に関する高レベル命令を含む。この方法は、また、分散型アプリケーションプログラムのオペレーションに関するコンテキスト上の情報を含めるために、1つまたは複数の宣言的モデルを改良すること(refining)を含むことができる。加えて、この方法は、1つまたは複数の改良(精製)された宣言的モデルを、分散型アプリケーションプログラムのコンテナによって実施されることになる1つまたは複数のコマンドに変換することを含むことができる。さらに、この方法は、変換されたコマンドを1つまたは複数のアプリケーションコンテナに送ることを含むことができる。次いで、変換されたコマンドは、当該コンテナによって受信されて、そのコンテナ内の分散型アプリケーションプログラムの行動を決定および構成するために使用される。
加えて、宣言的モデルを使用して、分散型アプリケーションプログラムの実行の間に、当該分散型アプリケーションプログラム内の高レベル命令の1つまたは複数のセットを自動的に実施する追加の方法または代替の方法は、リポジトリから新しい1つまたは複数の宣言的モデルのセットを受信することを含むことができる。この新しい1つまたは複数の宣言的モデルは、分散型アプリケーションプログラムのオペレーションに関する高レベル命令を含む。この方法は、実施手段および1つまたは複数のアプリケーションコンテナを介して、新しい1つまたは複数の新しい宣言的モデルを実施することも含むことができる。結果として、実行されることになる低レベル命令の第1のセットが作成されて、1つまたは複数のアプリケーションコンテナに送られる。
加えて、この方法は、1つまたは複数の解析手段を介して、新しい1つまたは複数の宣言的モデル内の変更を識別することを含むことができる。この変更は、1つまたは複数のアプリケーションコンテナから受信された分散型アプリケーションプログラムに関するパフォーマンス情報を反映する。さらに、この方法は、実施手段および1つまたは複数のアプリケーションコンテナを介して、1つまたは複数の宣言的モデルの更新されたバージョンを実施することを含むことができる。したがって、1つまたは複数の新しい宣言的モデルに対する変更に基づいて、実行されることになる低レベル命令の第2のセットが作成されて、1つまたは複数のアプリケーションコンテナに送られる。
この概要は、発明を実施するための形態において以下でさらに説明される概念の簡素化された形での概念の選択を導くために提供される。この概要は、特許請求される主題の主な特徴または必須の特徴を識別することが意図されず、または特許請求される主題の範囲を決定する際の手掛かりとして使用されることも意図されない。
本発明の追加の特徴および利点は、続く説明において記載され、かつ部分的に当該説明から明らかになるか、または本発明の実施により理解される。本発明の特徴および利点は、特に添付の特許請求の範囲において特定される手段および組合せによって実現され、および得られる。本発明のこれらの特徴およびその他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになり、または、以下に記載された本発明の実施によって理解される。
本発明の上述のおよびその他の利点ならびに特徴が取得される様式を説明するために、上で短く説明された、本発明のより詳細な説明は、添付の図面に例示されるその特定の実施形態の参照によって示される。これらの図面は本発明の典型的な実施形態だけを示し、したがって、その範囲の限定とみなされないことを理解して、本発明は、添付の図面の使用によって、追加の特定性および詳細を用いて記述および説明される。
本発明の実装形態による、1つまたは複数の宣言的モデルを使用して、分散型アプリケーションプログラム動作を自動的に実施するように構成されたシステムの概要概略図である。 図1Aに示す実行コンポーネントおよびプラットフォーム固有ドライバのより詳細な概略図である。 本発明の実装形態による、宣言的モデルを使用して、分散型アプリケーションプログラムの実行の間に、当該分散型アプリケーションプログラム内の高レベル命令の1つまたは複数のセットを実施する方法における一連の活動の流れ図である。 本発明の実装形態による、宣言的モデルを使用して、分散型アプリケーションプログラムの実行の間に、当該分散型アプリケーションプログラム内の高レベル命令の1つまたは複数のセットを実施するための追加の方法または代替の方法の追加の流れ図である。
本発明の実装形態は、分散型アプリケーションプログラムサーバを介して、分散型アプリケーションプログラムのオペレーションを自動的に実施するように構成されたシステム、方法、およびコンピュータプログラム製品に及ぶ。少なくとも一実装形態において、例えば、分散型アプリケーションプログラムサーバは、実施手段のセットおよび解析手段のセットを備える。分散型アプリケーションプログラムのそれぞれの所与のモジュールに関するプラットフォーム固有ドライバを介して、当該実施手段は、それぞれのプラットフォーム上で所与の分散型アプリケーションプログラムモジュールを作成するために、高レベル命令、すなわち、宣言的モデルのセットを配備する。一方、当該分析手段は、必要に応じて、宣言的モデルを自動的に監視および調整する。宣言的モデルによる、分散型アプリケーションプログラムに対するサーバコンポーネントのこの疎結合、ならびに自動的な監視および調整は、サーバが、需要、リソース、または利用スパイク、およびその他の形態の分散型アプリケーションプログラムの行動変動をよりよく管理することを可能にできる。
したがって、以下の明細書および特許請求の範囲から、本発明の実装形態は、分散型アプリケーションプログラムの管理にいくつかの異なる利点を提供できることが理解されよう。これは、プラットフォーム固有ベースで分散型アプリケーションモジュールを構成しおよび管理する分散型アプリケーションコンテナによって実行される低レベル命令(例えば、実行可能コマンド)として、プログラム開発者によって作成されるものなど、高レベル命令を実施することの容易さに少なくとも一部起因する。例えば、本発明の実装形態は、改良(精製)された宣言的モデル命令が変換されるように、宣言的モデルを書き込むための機構、宣言的モデルに対する変更を検出するための機構、および適切なモデル精製(refinement)プロセスをスケジュールするための機構を提供する。
さらなる実装形態は、改良(精製)されたモデルを最終的に実行される命令/コマンドに変換するための機構を提供する。したがって、これらの特徴およびその他の特徴は、潜在的にいくつかの異なるプラットフォーム上で1つまたは複数の異なる分散型アプリケーションプログラムを管理している分散型アプリケーションプログラムサーバの管理をかなり容易にし、かつ標準化できることが理解されよう。特に、サーバ管理者は、所与のランタイム環境の構成の特色、および/または所与の分散型アプリケーションプログラムの特定の実装プラットフォームのすべてを必ずしも理解する必要なしに、幅広い分散型アプリケーション動作を容易に構成することが可能である。
次に図面を参照すると、図1Aは、進行中の、自動ベースで、1つまたは複数の異なる分散型アプリケーションプログラム107内の高レベル命令を実施するために、分散型のコンピュータ化された環境/システム100において分散型アプリケーションサーバが使用される、本発明の少なくとも1つの実装形態の概略図を例示する。特に、図1Aは、実施手段105および解析手段110を備えたシステム分散型システム100を示す。通常、実施手段105および解析手段110は、1つまたは複数の分散型アプリケーションプログラムサーバ内で使用できる一般化されたコンピュータ実行可能コンポーネントの1つまたは複数のセットを備える。これらの一般化されたコンピュータ実行可能コンポーネントは、次に、1つまたは複数のアプリケーションコンテナ135内の1つまたは複数の異なる分散型アプリケーションプログラム107を管理するように構成される。
例えば、図1Aは、少なくとも1つの実装形態において、実施手段105は、ツールコンポーネント125を備えることを示す。通常、ツールコンポーネント125は、1つまたは複数の宣言的モデル153を作成するために、プログラム開発者またはサーバ管理者によって使用できるコンピュータ実行可能プログラムの1つまたは複数のセットを備える。例えば、ユーザ(例えば、分散型アプリケーションプログラム開発者)は、宣言的モデル153を作成するために、1つまたは複数の開発者のツール(例えば、125)を使用することができる。予備的事項として、本明細書における、任意のプラットフォーム(もしくは、そうでない場合、オペレーティングシステム)固有のコンポーネントまたはモジュール/プログラムの任意の参照は、単に説明の都合上のために行われることを理解されよう。詳細には、本明細書における、任意のコンポーネント、モジュールまたはアプリケーション固有の特徴の任意の参照は、幅広い動作環境、システム、および/またはプラットフォームにおいて適用されていることが可能であると理解されることになる。
いずれの場合も、先に述べたように、宣言的モデル153は、特定の分散型アプリケーションプログラム107の動作に関する高レベル命令の1つまたは複数のセットを含む。これらの高レベル命令は、通常、分散型アプリケーションプログラム内の1つまたは複数のモジュールの動作/行動に関する特定の意図を説明するが、その特定の動作/行動を実施するために要求されるステップを説明するとは限らない。例えば、宣言的モデル153は、何のコンピュータシステム上で特定のモジュールを実行すべきかについての情報、ならびに、特定のモジュールを実行するために可能にされるべきコンピュータシステムの特性(例えば、処理速度、記憶容量など)などを含めることができる。
宣言的モデル153は、特定のエンドポイントのURI(Uniform Resource Identifier)アドレスなどの固有情報を最終的に含めることができるが、任意の宣言的モデル(例えば、153)の初期の作成は、通常、結果として、一般化された情報を含む可能性が高いであろう文書をもたらすことになる。かかる一般化された情報は、モジュールが実行されるドメイン名、当該モジュールの実行に関連することができる異なる許可セット、あるコンポーネントが少しでも接続すべきか否かなどを含めることができる。例えば、宣言的モデル153は、別のウェブサービスにあるウェブサービスを接続させる意図を記述することが可能である。
最終的に解釈および/または変換されるとき、これらの一般化された意図命令は、結果として、プラットフォームまたは動作環境に応じて、非常に固有の命令/コマンドをもたらすることができる。例えば、宣言的モデル153は、解釈されたときに、1つの他のウェブサービスが近くにある場合、1つのデータセンター内に配備されたウェブサービスがTCPトランスポートを使用するように構成することができるように命令を含めることができる。当該命令は、その他のウェブサービスがファイヤウォールの外側にある(すなわち、近くにない)場合、代わりにインターネット中継接続を使用するように、その配備されたウェブサービスに伝える命令も含めることができる。
ある種の接続に対する選択を表示するが、 宣言的モデル(例えば、「宣言的アプリケーションモデル」)(153)は、通常、接続プロトコルの選択をモデルインタプリタ(interprefer)に任せることになる。特に、宣言的モデルクリエイタ(creator)(例えば、ツールコンポーネント125)は、概して、宣言的モデル153内の接続の選択を示す可能性があり、一方、宣言的モデルインタプリタ(例えば、実行コンポーネント115および/またはプラットフォーム固有ドライバ130)は、特定のモジュールがどこに配備されているかに応じて、異なる通信トランスポートを選択するように構成することができる。例えば、モデルインタプリタ(例えば、実行コンポーネント115および/またはプラットフォーム固有ドライバ130)は、同じマシン上にある場合、クラスタをなしている場合、またはインターネット上で接続された場合、モジュール同士の間の接続を区別するためにより固有の命令を作成することが可能である。
同様に、別の宣言的モデル(例えば、「宣言的ポリシーモデル」)(153)は、最終消費ポリシーにより基づいて、動作特徴を記述することが可能である。例えば、分散型金融アプリケーションプログラムと共に使用される宣言的ポリシーモデルは、一秒間に100個以上の取引要求が接続上で仲買企業に送られることはできないことを指図することが可能である。しかし、ポリシーモデルインタプリタ(例えば、実行コンポーネント115および/またはプラットフォーム固有ドライバ130)は、記述された意図を実施するための過度の要求を待ち行列に入れるなど、適切な戦略を選択するように構成することができる。
いずれの場合も、図1Aは、特定の宣言的モデル153の作成時に、ツールコンポーネント125は、次いで、宣言的モデル153をリポジトリ120内に渡す(例えば、書き込む)ことを示す。少なくとも1つの実装形態において、リポジトリ120が宣言的モデル153に対する任意の種類の修正(例えば、新しい書込み、または解析手段110からの修正)を受信するときはいつでも、実行コンポーネント115はこれを検出することになる。例えば、リポジトリ120は、1つもしくは複数の更新または警告を実行コンポーネント115に送ることが可能である。しかし、追加の実装形態または代替の実装形態では、実行コンポーネント115は、いくつかの特定のスケジュールベースで、または連続ベースですら、リポジトリ120と同期することによって、任意のかかる修正、作成、または変更を識別するように構成することができる。
いずれの場合も、実行コンポーネント115は、リポジトリ120内の宣言的モデル153(および/またはそれらに対する変更)がプラットフォーム固有ドライバ130によって変換されるように、当該宣言的モデル153(および/またはそれらに対する変更)を最終的に識別、受信および改良する。通常、宣言的モデル153を「改良すること」は、宣言的モデル命令がプラットフォーム固有ドライバ130による変換のために十分完全であるように、宣言的モデル内に含まれた情報のうちのいずれかを追加または修正することを含む。宣言的モデル153は、人間のユーザによって比較的大雑把に書き込まれることが可能である(すなわち、一般化された意図命令または意図要求を含む)ため、実行コンポーネントが宣言的モデルを修正または補完する必要があろう異なる程度もしくは範囲が存在することができる。
これらの方針に沿って、図1Bは、実施手段105を介して実行されるような改良および変換プロセスに関する追加の詳細を例示する。特に、図1Bは、最終的に低レベル命令として、様々な宣言的モデル153を実施することに従って発生することがあるいくつかの追加のプロセスを例示する。このために、図1Bは、実行コンポーネント115が、段階的な詳細化(progressive elaboration)技法を使用して、宣言的モデル153を改良するために使用できる1つまたは複数の異なるコンポーネントを備えることを示す。
例えば、図1Aは、実行コンポーネント115は、スケジュール処理コンポーネント117および精製コンポーネント119を備えることを示す。通常、スケジュール処理コンポーネント117は、実行コンポーネント115が、任意の宣言的モデルに対する、リポジトリ内の変更を識別することを可能にするものである。例えば、スケジュール処理コンポーネント117は、リポジトリ120に内蔵された対応するインターフェースから通信を受信するための1つまたは複数のインターフェースを備える。加えて、またはその代わりに、スケジュール処理コンポーネント117は、リポジトリ内の宣言的モデル153のデータを同期させるための実行可能命令の1つまたは複数のセットを備える。
(新しい宣言的モデルであろうと、それらに対する更新であろうと)任意の変更を検出すると、実行コンポーネント115は、次いで、任意のかかる識別された宣言的モデル(または修正)に関して段階的な詳細化のプロセスを開始する。通常、段階的な詳細化は、あいまいさがなくなるまで、かつ詳細が、プラットフォーム固有デバイス130が当該詳細を消費/変換するのに十分になるまで、特定の宣言的モデル153を改良すること(すなわち、データを追加することまたは修正すること)を必要とする。実行コンポーネント115は、少なくとも部分的に、宣言的モデル153のデータを「改良(精製)する」精製コンポーネント119を使用して、段階的な詳細化を実行する。
少なくとも1つの実装形態において、実行コンポーネント115は、特定のライブラリ(図示せず)からの活動のセットを使用するワークフローとしてこの段階的な詳細化プロセスまたは「改良」プロセスを実施する。一実装形態において、実行コンポーネント115は、事前に、かつ詳細には、宣言的モデルに取り組むために、当該ライブラリも提供する。この特定のワークフローにおいて使用できるいくつかの例示的な活動は、「モデルデータの読取り」、「モデルデータの書込み」、「ドライバの検出」、「ドライバの呼出」などを含めることができる。これらのタイプまたはその他のタイプの呼出に関連する活動は、実行コンポーネント115の精製コンポーネント119部分によって実施されるとして、以下でより完全に説明される。
詳細には、少なくとも1つの実装形態において、精製コンポーネント119は、宣言的モデル153(または、それらに関する更新)を改良(精製)する。精製コンポーネント119は、通常、宣言的モデル153(例えば、別のウェブサービスに接続されたあるウェブサービス)内の要素同士の間の依存(および、対応する意味)の知識に基づいて情報を追加することによって、宣言的モデル153を改良する。精製コンポーネント119は、分散型アプリケーションプログラム107を配備するためのアプリケーションコンテナ135の利用可能な在庫に関する情報を追加することによってなど、いくつかの形態のコンテキスト上の認識を加えることによって、宣言的モデル153を改良することも可能である。加えて、精製コンポーネント119は、コンピュータシステムの割当てに関する不足データを充填するように構成することができる。
例えば、精製コンポーネント119は、2つのモジュールが、特定のコンピュータシステムアドレスに関する要件または動作要件を有さない場合、宣言的モデル153を実施するために使用されることになるいくつかの異なるモジュールを識別することが可能である。したがって、精製コンポーネント119は、適切な分散型アプリケーションプログラムコンテナ135によって構成された利用可能なコンピュータシステムに分散型アプリケーションプログラム107モジュールを割り当て、それに対応して、そのマシン情報を改良(精製)された宣言的モデル153a(またはその区分)内に記録することが可能である。これらの方針に沿って、精製コンポーネント119は、改良(精製)された宣言的モデル153内のデータを充填するための最適な様式について推論することができる。例えば、前述のように、実行コンポーネント115内の精製コンポーネント119は、接続の接近性に基づいて、エンドポイントに関してどのトランスポートを使用すべきかを決定および判断することが可能であるか、または、予測される需要の急増(spikes)を処理するのに適した要因に基づいて、分散型アプリケーションプログラムモジュールをどのように割り当てるかを決定および判断することが可能である。
追加の実装形態または代替の実装形態において、精製コンポーネント119は、宣言的モデル153内の依存データを演算することが可能である。例えば、精製コンポーネント119は、マシンに対する分散型アプリケーションプログラムモジュールの割当てに基づいて、依存データを演算することが可能である。これらの方針に沿って、精製コンポーネント119は、エンドポイントに関するURIアドレスを計算して、対応するURIアドレスをプロバイダエンドポイントから消費者エンドポイントに伝搬することも可能である。加えて、精製コンポーネント119は、宣言的モデル153内の制約を評価することが可能である。例えば、精製コンポーネント119は、2つの分散型アプリケーションプログラムモジュールが実際に同じマシンに割り当てられることが可能であるかどうかを確かめるために確認するように構成されることが可能である。そうでない場合、精製コンポーネント119は、宣言的モデル153aを補正するために、宣言的モデル153aを改良することが可能である。
(モデル153aを作成するために)所与の宣言的モデル153にすべての適切なデータを追加した(または、そうでない場合、所与の宣言的モデル153を修正/改良した)後で、精製コンポーネント119は、改良(精製)された宣言的モデル153aがプラットフォーム固有デバイス130によって変換されるように、改良(精製)された宣言的モデル153aを仕上げることができる。改良(精製)された宣言的モデル153aを仕上げるためまたは完成するために、精製コンポーネント119は、例えば、宣言的モデル153を任意の1つまたは複数のプラットフォーム固有ドライバ130によって目標とされる区分に区分化することが可能である。このために、精製コンポーネント119は、その目標ドライバ(例えば、プラットフォーム固有デバイス130のアドレス)を用いて、それぞれの宣言的モデル153a(またはその区分)にタグをつけることができる。さらに、精製コンポーネント119は、宣言的モデル153aが実際にプラットフォーム固有ドライバ130によって変換されることを検証して、そうである場合、改良(精製)された宣言的モデル153a(またはその区分)を変換のために特定のプラットフォーム固有ドライバ130に渡すことが可能である。
いずれの場合も、図1Bは、プラットフォーム固有ドライバ130は、変換コンポーネント131を介して、これらの命令を変換することを示す。通常、変換コンポーネントは、改良(精製)された宣言的モデル153a(および/またはそれらの区分)を1つまたは複数のプラットフォーム固有命令/コマンドのセット133に変換する。例えば、図1Bは、プラットフォーム固有ドライバ130は、特定のオペレーティングシステムまたは動作環境において実行されることが可能であり、かつ/または特定のアプリケーションコンテナ135によって理解されることになる必須の命令/コマンドのセット133を作成することが可能であることを示す。一実装形態において、改良(精製)された宣言的モデル153aの変換は、結果として、ファイルの作成、仮想ディレクトリの追加、構成ファイル内への設定の書込みなどをもたらすることができる。
変換コンポーネント131によって実行される活動は何でも、特定のプラットフォームまたは特定の動作環境に合わせて調整されることになる。特に、プラットフォーム固有ドライバは(例えば、変換コンポーネント131を介して)、1つまたは複数のアプリケーションコンテナ135に対応する所与のプラットフォーム/動作環境の徹底的な、プラットフォーム固有構成知識(例えば、その下でそれらの改良(精製)された宣言的モデルが実行するオペレーティングシステムのバージョン)およびコンテナ実装技術に従って、改良(精製)された宣言的モデルを変換することが可能である。MICROSOFT WINDOWS(登録商標)の動作環境に関して、例えば、いくつかのコンテナ実装形態技術は、「IIS」−インターネット情報サービス、または「WCF」−WINDOWS(登録商標)コミュニケーションファンデーション−サービスモジュール)をホストするために使用されるWINDOWS(登録商標) ACTIVATION SERVICEを含めることができる。(しかし、先に述べたように、WINDOWS(登録商標)またはMICROSOFTの任意のコンポーネント、モジュール、プラットフォーム、またはプログラムの任意の特定の参照は、単に例としてである。)
結果として、ツールコンポーネント125および/または精製コンポーネント119によって宣言的モデル内に配置された一般化された命令または補完された命令は、最終的に、1つまたは複数のアプリケーションコンテナ135内の1つまたは複数の分散型アプリケーションプログラム107のオペレーショナルリアリティ(operational reality)に指令する。特に、1つまたは複数の分散型アプリケーションコンテナ135は、プラットフォーム固有ドライバ130から受信された命令/コマンド133を実行することによって、宣言的モデル153を実行する。このために、分散型アプリケーションコンテナ135は、交換もしくは改訂されている任意の先のモジュールを、新しい宣言的モデル153と交換することまたは更新することができる。加えて、分散型アプリケーションコンテナ135は、新しい命令/コマンド133内で説明されるものを含めて、かつ任意の数の異なるコンピュータシステム上で、通常実行されるような、モジュールおよび/またはコンポーネントの最近のバージョンを実行する。
前述の説明に加えて、分散型アプリケーションプログラム107は、実施手段105を介して、実行およびパフォーマンスに関する様々な動作情報を提供し戻すことが可能である。例えば、本発明の実装形態は、プラットフォーム固有ドライバ103を介して、様々な実行指示子またはパフォーマンス指示子に関する1つまたは複数のイベントストリーム137を送り返すために、分散型アプリケーションプログラム107を提供する。一実装形態において、分散型アプリケーションプログラム107は、連続する、進行中ベースで、イベントストリーム137を送り出すことが可能である。一方、その他の実装形態において、分散型アプリケーションプログラム107は、スケジュールベースで(例えば、ドライバ130からのスケジュールされた要求に基づいて)イベントストリームを送る。プラットフォーム固有ドライバ130は、次に、解析、調整、および/またはその他の適切な修正のために、1つまたは複数のイベントストリーム137を解析手段110に渡す。
特に、かつ本明細書でより完全に理解されるように、解析手段110は、様々な分散型アプリケーションプログラム107の関心のある傾向および行動を識別するために、関連するデータを集約し、相関し、その他の形でフィルタリングする。解析手段110は、識別された傾向に関して、必要に応じて、対応する宣言的モデル153を修正することも可能である。例えば、解析手段110は、イベントストリーム137において識別された問題を克服するためになど、意図における変更を反映する、新しい宣言的モデル153bまたは、そうでない場合、修正された宣言的モデル153bを作成するために、宣言的モデル153を修正することが可能である。特に、修正された宣言的モデル153bは、現在割り当てられているマシンがあまりにも頻繁に再ブートしている場合、分散型アプリケーションプログラムの所与のモジュールが別のマシン上に再配備されることが可能なように構成することができる。
次いで、修正された宣言的モデル153bは、再びリポジトリ120内に渡される。先に述べたように、実行コンポーネント115は、新しい宣言的モデル153b(または、先の宣言的モデル153に対する修正)を識別して、対応する改良プロセスを開始することになる。詳細には、実行コンポーネントは、先に説明されたような、改良(精製)され、修正された宣言的モデルを作成する目的で、修正された宣言的モデル153bに任意の必要なデータを追加するために、精製コンポーネント119を使用することになる。次いで、修正されてはいるが新たに改良(精製)された宣言的モデル153bは、プラットフォーム固有ドライバ130に渡され、そこで、当該宣言的モデル153bは、処理のために、変換されて、適切なアプリケーションコンテナ135に渡される。
したがって、図1A〜1B(および対応するテキスト)は、分散型アプリケーションプログラム内の高レベル命令を自動的に実施するためのいくつかの異なる図式、コンポーネント、および機構を提供する。先に説明されたように、これはすべて、サーバ管理者による分散型アプリケーションプログラムおよびそれらのコンテナの詳細な知識を必ずしも要求せずに行われる。
前述の説明に加えて、本発明の実装形態は、特定の結果を達成するための一連の活動および/またはステップを有する方法の1つまたは複数の流れ図を用いて説明することも可能である。例えば、図2および3は、サーバの観点から、分散型アプリケーションプログラム内の高レベル命令の1つまたは複数のセットを自動的に実施するための追加の方法または代替の方法を例示する。図2および3の動作および/またはステップは、図1Aおよび1Bのコンポーネント、図式、および対応するテキストに関して、以下でより完全に説明される。
例えば、図2は、サーバの観点から、実行の間、分散型アプリケーションプログラム内の高レベル命令の1つまたは複数のセットを自動的に実施する方法は、1つまたは複数の宣言的モデルを識別する動作200を備えることを示す。動作200は、リポジトリ内の対応する1つまたは複数の宣言的モデルに対する1つまたは複数の修正を識別することを含み、この1つまたは複数の宣言的モデルは、分散型アプリケーションプログラムの1つまたは複数の動作に関する高レベル命令を含む。例えば、図1Aおよび1Bに示すように、ツールコンポーネント125は、宣言的モデル153を作成しおよび/またはリポジトリ120に渡すために使用できる。実行コンポーネント115は(例えば、スケジュール処理コンポーネント117を介して)宣言的モデル153(または、それらに対する対応する更新)を受信して、処理を開始する。
図2は、サーバの観点から、方法は、コンテキスト上の情報を用いて宣言的モデルを改良する動作210を備えることも示す。動作210は、分散型アプリケーションプログラムのオペレーションに関するコンテキスト上の情報を含めるために、識別された1つまたは複数の宣言的モデルを改良することを含む。例えば、実行コンポーネント115は、宣言的モデル内の不足データを充填すること、モジュール同士の間の接続においてどのトランスポートを使用するかを判断すること、宣言的モデル内の依存データを演算すること、宣言的モデル内の制約を評価することなど、任意の数の動作を実行することができる。
加えて、図2は、サーバの観点から、この方法は、改良(精製)された宣言的モデルを変換する動作220を備えることを示す。動作220は、1つまたは複数の改良(精製)された宣言的モデルを分散型アプリケーションプログラムによって実施されることになる1つまたは複数のコマンドに変換することを含む。例えば、図1Aおよび1Bにおける実施手段105は、改良(精製)された宣言的モデル153aに対応する命令を受信して、1つまたは複数のアプリケーションコンテナ135に命令/コマンドのセット133を送るために、変換コンポーネント131を介して、その改良(精製)された宣言的モデル153aを変換するプラットフォーム固有ドライバコンポーネント130を含む。
さらに、図2は、サーバの観点から、この方法は、変換されたコマンドをアプリケーションコンテナに送る動作230を備えることを示す。動作230は、変換されたコマンドをこれらの変換されたコマンドが受信および実施される1つまたは複数のアプリケーションコンテナに送ることを含む。例えば、図1Aおよび1Bに示すように、プラットフォーム固有の命令/コマンド133を作成するために当該命令を変換すると、プラットフォーム固有ドライバ130は、(例えば、変換コンポーネント131を介して)これらのコマンドを作成して、1つまたは複数のアプリケーションコンテナ135に送り、そこで、これらのコマンドは、分散型アプリケーションプログラムを構成および管理するために実施される。
前述の説明に加えて、図3は、サーバの観点から、高レベル命令の1つまたは複数のセットを自動的に実施する追加の方法または代替の方法は、この新しい宣言的モデルのセットを受信する動作300を備えることを示す。動作300は、リポジトリから新しい1つまたは複数の宣言的モデルのセットを受信することを含み、この新しい1つまたは複数の宣言的モデルは、分散型アプリケーションプログラムのオペレーションに関する高レベル命令を含む。例えば、実行コンポーネント115は、リポジトリ120を介して宣言的モデル113を受信する。これらの宣言的モデル113が新しい場合、これらの宣言的モデル113は、ツールコンポーネント125から生じる可能性があり、または、これらの宣言的モデル113がイベントストリーム137内の情報に応答して修正される場合など、これらの宣言的モデル113は、解析手段110を介して生じる可能性がある。
図3は、この方法は、サーバの観点から、アプリケーションコンテナを介して新しい宣言的モデルを実施する動作310を備えることも示す。動作310は、1つまたは複数のアプリケーションコンテナ内の実施手段を介して、新しい1つまたは複数の宣言的モデルを実施することを含み、実施されることになる低レベルコマンドの第1のセットが作成されて、1つまたは複数のアプリケーションコンテナに送られる。例えば、図1Aおよび1Bは、実行コンポーネント115は、スケジュール処理コンポーネント117、および精製コンポーネント119を介してなど、改良(精製)された宣言的モデル153a情報のセットを作成することを示す。次いで、プラットフォーム固有ドライバ130は、この情報を命令/コマンドの特定のセット133に変換する。次いで、これらの命令/コマンドの特定のセット133は、それぞれのアプリケーションコンテナ135内の実行によって(1つまたは複数の)分散型アプリケーションプログラム107の動作を構成および制御する。
加えて、図3は、サーバの観点から、この方法は、宣言的モデル内の変更を識別する動作320を備えることを示す。動作320は、1つまたは複数の解析手段を介して、新しい1つまたは複数の宣言的モデル内の変更を識別することを含み、この変更は1つまたは複数のアプリケーションコンテナから受信された分散型アプリケーションプログラムに関するパフォーマンス情報を反映する。例えば、図1Bは、アプリケーションコンテナ135は、実施手段105のプラットフォーム固有ドライバ130を介して、パフォーマンス情報140を送り返すことを示す。次いで、この情報は、解析手段110に渡され、解析手段110は、適切な場合、任意のパフォーマンス課題に対処するために宣言的モデル113を変更または更新することが可能である。先に議論されたように、イベントストリームは、サーバ(または、サーバ上のモジュール)があまりにも頻繁に再ブートしていることを識別することが可能であり、したがって、解析手段は、別のサーバ上に当該モジュールを再配備する意図を識別する宣言的モデル(すなわち、153b)に対する修正を作成することができる。
さらに、図3は、サーバの観点から、方法は、アプリケーションコンテナを介して、宣言的モデルの更新されたバージョンを実施する動作330を備えることを示す。動作330は、実施手段および1つまたは複数のアプリケーションコンテナを介して、1つまたは複数の宣言的モデルの更新されたバージョンを実施することを含み、1つまたは複数の新しい宣言的モデルに対する変更に基づいて実行されることになる低レベルコマンドの第2のセットが作成されて、1つまたは複数のアプリケーションコンテナに送られる。例えば、図1Bは、実施手段105は、修正された宣言的モデル153bを受信することができることを示す。モデル153と同様、宣言的モデル153bは、次いで、変換のために、改良(精製)され、修正された宣言的モデル153b命令をプラットフォーム固有ドライバ130に渡す実行コンポーネント115を介して、検出および改良される。前述の通り、(1つまたは複数の)分散型アプリケーションコンテナ135は、次いで、それらのそれぞれのアプリケーションコンテナ内で分散型アプリケーションプログラムを再構成するために、改良(精製)され、修正された宣言的モデル153bに対して新しい対応する命令/コマンドを実行する。
したがって、図1Aから3は、アプリケーションコンテナを介して、低レベル命令として最終的に実施される、サーバレベルでの高レベル命令を自動的に実施するためのいくつかの図式、コンポーネント、および機構を提供する。本明細書で説明されたように、これらの利点およびその他の利点は、特定の分散型アプリケーションプログラムのプラットフォームの要件および規則の詳細な知識を必ずしも必要とせずに、サーバ管理者が分散型アプリケーションプログラム動作を連続的にかつ自動的に調整することを可能にすることができる。したがって、本発明の実装形態は、分散型システムを通して非常にスケーラブルであり、かつ管理が比較的簡単である。
本発明の実施形態は、以下でさらに詳細に議論されるように、様々なコンピュータハードウェアを含む専用コンピュータまたは汎用コンピュータを備えることができる。本発明の範囲内の実施形態は、コンピュータ実行可能命令もしくはデータ構造を伝送するコンピュータ可読媒体またはその上に格納されたコンピュータ実行可能命令もしくはデータ構造を有するコンピュータ可読媒体も含む。かかるコンピュータ可読媒体は、汎用コンピュータまたは専用コンピュータによってアクセスされる任意の利用可能な媒体であってよい。
限定ではなく、例として、かかるコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、またはその他の光ディスク記憶装置、磁気ディスク記憶装置もしくはその他の磁気記憶デバイス、あるいはコンピュータ実行可能命令またはデータ構造の形で所望されるプログラムコード手段を運ぶためまたは記憶するために使用されることが可能であり、かつ汎用コンピュータまたは専用コンピュータによってアクセスされる任意のその他の媒体を備える。情報がネットワーク上または(有線、無線、もしくは有線および無線の組合せの)別の通信接続上でコンピュータに転送あるいは提供される場合、当該コンピュータは、当該接続をコンピュータ可読媒体と適切にみなす。したがって、任意のかかる接続は、コンピュータ可読媒体と適切に呼ばれる。上述の説明の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスにある種の機能もしくは機能のグループを実行させる命令およびデータを備える。この主題は構造的な特徴および/または方法論的な動作に特定の専門用語で説明されているが、添付の特許請求の範囲において定義されるこの主題は、上で説明された特定の特徴または動作に限定されるとは限らない点を理解されたい。むしろ、上で説明された特定の特徴および動作は、特許請求の範囲の例示的な実施形態として開示される。
本発明は、その趣旨または必須の特徴から逸脱せずに、その他の特定の形態で実施されることが可能である。説明された実施形態は、すべての点で、限定ではなく、単に例示として考慮されるべきである。したがって、本発明の範囲は、前述の記述によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲の均等の意味内および均等の範囲内のすべての変更はその範囲内に包括されるべきである。

Claims (19)

  1. 分散型のコンピュータ化されたシステム環境において、1つまたは複数のプラットフォーム固有ドライバを介して、1つまたは複数の分散型アプリケーションプログラムを管理するように構成された1つまたは複数の実施手段および1つまたは複数の解析手段を有するサーバにおいて、宣言的モデルを使用して、分散型アプリケーションプログラムの実行の間に、前記分散型アプリケーションプログラム内の高レベル命令の1つまたは複数のセットを自動的に実施する方法であって、
    リポジトリ内1つまたは複数の宣言的モデルを格納する動作であって、前記1つまたは複数の宣言的モデルは、分散型アプリケーションプログラムの1つまたは複数の動作に関する高レベル命令を含む、動作と、
    前記分散型アプリケーションプログラムのオペレーションに関するコンテキスト上の情報を含めるために、前記1つまたは複数の宣言的モデルを改良(精製)する動作と、
    前記1つまたは複数の改良(精製)された宣言的モデルを、1つまたは複数のアプリケーションコンテナによって実施されることになる1つまたは複数のプラットフォーム固有のコマンドのセットに変換する動作と、
    前記変換されたコマンドを前記1つまたは複数のアプリケーションコンテナに送信する動作であって、前記変換されたコマンドは、前記分散型アプリケーションプログラムを構成および制御するために、前記1つまたは複数のアプリケーションコンテナによって受信および実行される、動作と
    前記分散型アプリケーションプログラムが実行している間に、前記リポジトリ内の前記1つまたは複数の宣言的モデルに対する1つまたは複数の修正を受け取る動作と、を備え、
    前記1つまたは複数の修正に応じて、前記修正された1つまたは複数の宣言的モデルを改良(精製)して1つまたは複数のプラットフォーム固有のコマンドのセットに変換する動作、および前記1つまたは複数のプラットフォーム固有のコマンドのセットを前記1つまたは複数のアプリケーションコンテナに送信する動作が、前記一つまたは複数のアプリケーションコンテナによって実行されることで、前記分散型アプリケーションプログラムが実施され、これにより前記1つまたは複数の宣言的モデルに対する前記1つまたは複数の修正は前記分散型アプリケーションプログラムにおいて反映されることを特徴とする方法。
  2. 前記1つまたは複数の宣言的モデルは、1つまたは複数の分散型アプリケーションプログラムのオペレーション上の意図を既述し、前記分散型アプリケーションプログラムのオペレーション上の意図を実施するための特定情報を含まないことを特徴とする請求項1に記載の方法。
  3. 前記1つまたは複数の修正を識別すると、実行コンポーネントが、対応する修正された形態の前記1つまたは複数の宣言的モデルに情報を追加する改良(精製)プロセスをスケジュールする動作をさらに備えることを特徴とする請求項1に記載の方法。
  4. 前記1つまたは複数の宣言的モデルを改良(精製)する動作は、前記実行コンポーネントが、前記1つまたは複数の宣言的モデルおよび前記1つまたは複数のアプリケーションコンテナの在庫のうちのいずれかにおける要素同士の間の依存に関する情報を追加する動作をさらに備えることを特徴とする請求項1に記載の方法。
  5. 前記1つまたは複数の宣言的モデルを改良(精製)する動作は、プラットフォーム固有ドライバによる変換のために要求される、前記1つまたは複数の宣言的モデル内の任意の不足データを追加する動作をさらに備えることを特徴とする請求項1に記載の方法。
  6. 任意の不足データを追加する動作は、前記分散型アプリケーションプログラムの1つまたは複数のモジュールが実行すべき特定のコンピュータシステムを識別する動作を含むことを特徴とする請求項に記載の方法。
  7. 任意の不足データを追加する動作は、前記分散型アプリケーションプログラムによって使用される接続されたモジュール同士の間で使用するための1つまたは複数のトランスポートプロトコルを判断する動作を含むことを特徴とする請求項に記載の方法。
  8. 任意の不足データを追加する動作は、前記1つまたは複数の宣言的モデルのうちの少なくとも1つの中の任意の依存データを識別する動作を含むことを特徴とする請求項に記載の方法。
  9. 前記識別された依存データに関する1つまたは複数のURIアドレスを識別する動作と、
    前記識別された依存データ同士の間で任意の追加のURIアドレスを伝搬する動作と
    をさらに備えることを特徴とする請求項に記載の方法。
  10. 任意の不足データを追加する動作は、特定のコンピュータシステム上の1つまたは複数の分散型アプリケーションプログラムモジュールの位置に関する、前記1つまたは複数の宣言的モデル内の任意の制約を識別する動作をさらに備えることを特徴とする請求項に記載の方法。
  11. 任意の不足データを追加する動作は、前記1つまたは複数の宣言的モデルがプラットフォーム固有ドライバによって変換されるように、それらを完成する動作をさらに備えることを特徴とする請求項に記載の方法。
  12. 前記1つまたは複数の宣言的モデルが変換されるように完成する動作は、前記改良(精製)され、完成された1つまたは複数の宣言的モデルのそれぞれの中にプラットフォーム固有ドライバのアドレスを含める動作をさらに備えることを特徴とする請求項11に記載の方法。
  13. それぞれのプラットフォーム固有ドライバを用いて、前記1つまたは複数の宣言的モデルを検証して、前記1つまたは複数の宣言的モデルのそれぞれが変換されることを判断する実行コンポーネントをさらに備えることを特徴とする請求項12に記載の方法。
  14. 分散型のコンピュータ化されたシステム環境において、1つまたは複数のプラットフォーム固有ドライバを介して、1つまたは複数の分散型アプリケーションプログラムを管理するように構成された1つまたは複数の実施手段および1つまたは複数の解析手段を有するサーバにおいて、宣言的モデルを使用して、1つまたは複数の分散型アプリケーションコンテナ内の分散型アプリケーションプログラムの実行の間に、前記分散型アプリケーションプログラム内の高レベル命令の1つまたは複数のセットを自動的に実施する方法であって、
    リポジトリから新しい1つまたは複数の宣言的モデルのセットを受信する動作であって、前記新しい1つまたは複数の宣言的モデルが、分散型アプリケーションプログラムのオペレーションに関する高レベル命令を含む、動作と、
    記新しい1つまたは複数の宣言的モデルから低レベルのプラットフォーム固有のコマンドの第1のセットを生成して低レベルのプラットフォーム固有のコマンドの前記第1のセットを、実行されることになる前記1つまたは複数のアプリケーションコンテナに送ることによって、実施手段および1つまたは複数のアプリケーションコンテナを介して、前記分散型アプリケーションプログラムを実施する動作と、
    前記分散型アプリケーションプログラムが実行している間に前記1つまたは複数のアプリケーションコンテナから受信される前記分散型アプリケーションプログラムのパフォーマンス情報に対処するために、前記リポジトリ内の前記新しい1つまたは複数の宣言的モデルを修正する動作と、
    1つまたは複数の解析手段を介して、前記リポジトリ内の前記新しい1つまたは複数の宣言的モデルに対する前記修正を識別する動作と、
    前記修正された新しい1つまたは複数の宣言的モデルから低レベルのプラットフォーム固有のコマンドの第2のセットを生成して低レベルのプラットフォーム固有のコマンドの前記第2のセットを、実行されることになる前記1つまたは複数のアプリケーションコンテナに送ることによって、前記実施手段および前記1つまたは複数のアプリケーションコンテナを介して、前記分散型アプリケーションプログラムの更新されたバージョンを実施する動作と
    を備えることを特徴とする方法。
  15. 前記新しい1つまたは複数の宣言的モデルを実施する動作は、
    前記新しい1つまたは複数の宣言的モデルに対応する1つまたは複数の新しい命令の改良(精製)されたセットを作成する動作と、
    1つまたは複数の新しい命令の前記セットがプラットフォーム固有ドライバによって低レベルコマンドの前記第1のセットに変換されることを検証する動作と
    をさらに備えることを特徴とする請求項14に記載の方法。
  16. 前記分散型アプリケーションプログラムの前記更新されたバージョンを実施する動作は、
    前記修正された新しい1つまたは複数の宣言的モデルに対応する1つまたは複数の更新された命令の新しい改良(精製)されたセットを作成する動作と、
    1つまたは複数の更新された命令の前記新しい改良(精製)されたセットがプラットフォーム固有ドライバによって低レベルコマンドの前記第2のセットに変換されることを検証する動作と
    をさらに備えることを特徴とする請求項14に記載の方法。
  17. 分散型のコンピュータ化されたシステム環境において、1つまたは複数のプラットフォーム固有ドライバを介して、1つまたは複数の分散型アプリケーションプログラムを管理するように構成された1つまたは複数の実施手段および1つまたは複数の解析手段を有するサーバにおいて、実行された場合、前記サーバにおいて、1つまたは複数のプロセッサに、
    リポジトリ1つまたは複数の宣言的モデルに対応する1つまたは複数の修正を格納する動作であって、前記1つまたは複数の宣言的モデルが、分散型アプリケーションプログラムの1つまたは複数の動作に関する高レベル命令を含む、動作と、
    前記分散型アプリケーションプログラムのオペレーションに関するコンテキスト上の情報を含めるために、前記1つまたは複数の宣言的モデルを改良する動作と、
    前記1つまたは複数の改良(精製)された宣言的モデルを、1つまたは複数のアプリケーションコンテナによって実施されることになる1つまたは複数のプラットフォーム固有のコマンドのセットに変換する動作と、
    前記変換されたコマンドを前記1つまたは複数のアプリケーションコンテナに送る動作であって、前記変換されたコマンドが、前記分散型アプリケーションプログラムを構成および制御するために、前記1つまたは複数のアプリケーションコンテナによって受信および実行される、動作と
    前記分散型アプリケーションプログラムが実行している間に、前記リポジトリ内の前記1つまたは複数の宣言的モデルに対する1つまたは複数の修正を受け取る動作と、を備え、
    前記1つまたは複数の修正に応じて、前記修正された1つまたは複数の宣言的モデルを前記改良(精製)して1つまたは複数のプラットフォーム固有のコマンドのセットに変換する動作、および前記1つまたは複数のプラットフォーム固有のコマンドのセットを前記1つまたは複数のアプリケーションコンテナに送信する動作が、前記一つまたは複数のアプリケーションコンテナによって実行されることで、前記分散型アプリケーションプログラムが実施され、これにより前記1つまたは複数の宣言的モデルに対する前記1つまたは複数の修正は前記分散型アプリケーションプログラムにおいて反映されることを特徴とする方法を実行させる、その上に格納されたコンピュータ実行可能命令を備えることを特徴とするコンピュータプログラム記憶媒体
  18. 前記パフォーマンス情報は、1つまたは複数のイベントストリーム内の前記1つまたは複数のアプリケーションコンテナから受信されることを特徴とする請求項14に記載の方法。
  19. 前記1つまたは複数のイベントストリームは、前記1つまたは複数のアプリケーションコンテナとインタフェースで接続するプラットフォーム固有ドライバを介して、受信されることを特徴とする請求項18に記載の方法。
JP2010514983A 2007-06-29 2008-06-18 分散型システムにおける宣言的モデルの段階的な実施 Expired - Fee Related JP5216853B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/771,816 US8239505B2 (en) 2007-06-29 2007-06-29 Progressively implementing declarative models in distributed systems
US11/771,816 2007-06-29
PCT/US2008/067354 WO2009006026A2 (en) 2007-06-29 2008-06-18 Progressively implementing declarative models in distributed systems

Publications (2)

Publication Number Publication Date
JP2010532532A JP2010532532A (ja) 2010-10-07
JP5216853B2 true JP5216853B2 (ja) 2013-06-19

Family

ID=40161609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010514983A Expired - Fee Related JP5216853B2 (ja) 2007-06-29 2008-06-18 分散型システムにおける宣言的モデルの段階的な実施

Country Status (6)

Country Link
US (1) US8239505B2 (ja)
EP (1) EP2176778B1 (ja)
JP (1) JP5216853B2 (ja)
CN (1) CN101689167B (ja)
TW (1) TWI438684B (ja)
WO (1) WO2009006026A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123345A1 (en) * 2004-12-06 2006-06-08 International Business Machines Corporation Platform-independent markup language-based gui format
US7970892B2 (en) * 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US8949772B1 (en) * 2009-06-01 2015-02-03 Amazon Technologies, Inc. Dynamic model based software application development
WO2011149553A1 (en) 2010-05-27 2011-12-01 The Mathworks, Inc. Partitioning block diagrams into executable contextual models
US10719645B1 (en) 2010-05-27 2020-07-21 The Mathworks, Inc. Model structure analysis with integration of transformed slice
US10657208B2 (en) 2010-05-27 2020-05-19 The Mathworks, Inc. Analyzing model based on design interest
US8473783B2 (en) * 2010-11-09 2013-06-25 International Business Machines Corporation Fault tolerance in distributed systems
US8918448B2 (en) * 2012-05-11 2014-12-23 International Business Machines Corporation Application component decomposition and deployment
US9202047B2 (en) 2012-05-14 2015-12-01 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
US9319897B2 (en) 2012-08-15 2016-04-19 Qualcomm Incorporated Secure behavior analysis over trusted execution environment
US9747440B2 (en) 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US9344465B2 (en) 2012-12-04 2016-05-17 International Business Machines Corporation Correlating computing network events
US10089582B2 (en) 2013-01-02 2018-10-02 Qualcomm Incorporated Using normalized confidence values for classifying mobile device behaviors
US9742559B2 (en) 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
WO2014126779A1 (en) * 2013-02-15 2014-08-21 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US10574714B2 (en) 2014-06-25 2020-02-25 Microsoft Technology Licensing, Llc Stream-based reactive programming platform
US20160246582A1 (en) * 2015-02-25 2016-08-25 Red Hat, Inc. Generic Semantic Configuration Service
US10318653B1 (en) 2015-02-26 2019-06-11 The Mathworks, Inc. Systems and methods for creating harness models for model verification
CN106372074A (zh) * 2015-07-22 2017-02-01 中国科学院城市环境研究所 一种用于污染场地风险评估可视化系统的架构方法
US10540332B2 (en) 2016-08-03 2020-01-21 Microsoft Technology Licensing, Llc Efficient denormalization of data instances
US10521197B1 (en) 2016-12-02 2019-12-31 The Mathworks, Inc. Variant modeling elements in graphical programs
US11175894B2 (en) * 2019-01-31 2021-11-16 Salesforce.Com, Inc. Flow analysis in an integration platform
US11829689B1 (en) * 2020-06-09 2023-11-28 The Mathworks, Inc. Systems and methods for creating variant regions in acausal simulation models
CN113127209A (zh) * 2021-05-12 2021-07-16 曙光信息产业(北京)有限公司 一种云计算执行调度方法、装置、电子设备及存储介质

Family Cites Families (207)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751635A (en) 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
US5574934A (en) 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5423003A (en) * 1994-03-03 1995-06-06 Geonet Limited L.P. System for managing network computer applications
US5809266A (en) * 1994-07-29 1998-09-15 Oracle Corporation Method and apparatus for generating reports using declarative tools
US5655081A (en) 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
EP0733972B1 (en) * 1995-03-22 2003-07-09 Sun Microsystems, Inc. Method and apparatus for managing relationships among objects in a distributed object environment
EP0733967B1 (en) 1995-03-24 2005-02-09 Hewlett-Packard Company, A Delaware Corporation Methods and apparatus for monitoring events and implementing corrective action in a multi-entity computer system
US5764241A (en) 1995-11-30 1998-06-09 Microsoft Corporation Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
US6185601B1 (en) * 1996-08-02 2001-02-06 Hewlett-Packard Company Dynamic load balancing of a network of client and server computers
US6662205B1 (en) 1996-10-01 2003-12-09 International Business Machines Corporation Scaleable and extensible system management architecture with dataless endpoints
US5937388A (en) 1996-12-05 1999-08-10 Hewlett-Packard Company System and method for performing scalable distribution of process flow activities in a distributed workflow management system
US6710786B1 (en) * 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6247056B1 (en) * 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
US6225995B1 (en) * 1997-10-31 2001-05-01 Oracle Corporaton Method and apparatus for incorporating state information into a URL
US6026404A (en) * 1997-02-03 2000-02-15 Oracle Corporation Method and system for executing and operation in a distributed environment
US5958010A (en) * 1997-03-20 1999-09-28 Firstsense Software, Inc. Systems and methods for monitoring distributed applications including an interface running in an operating system kernel
US6230309B1 (en) * 1997-04-25 2001-05-08 Sterling Software, Inc Method and system for assembling and utilizing components in component object systems
US6055363A (en) 1997-07-22 2000-04-25 International Business Machines Corporation Managing multiple versions of multiple subsystems in a distributed computing environment
US6005849A (en) 1997-09-24 1999-12-21 Emulex Corporation Full-duplex communication processor which can be used for fibre channel frames
US7024450B1 (en) * 1997-10-06 2006-04-04 Mci, Inc. Method and apparatus for deploying service modules among service nodes distributed in an intelligent network
US6334114B1 (en) 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
US6167538A (en) 1998-03-06 2000-12-26 Compaq Computer Corporation Method and apparatus for monitoring components of a computer system
US6330717B1 (en) 1998-03-27 2001-12-11 Sony Corporation Of Japan Process and system for developing an application program for a distributed adaptive run-time platform
US6070190A (en) 1998-05-11 2000-05-30 International Business Machines Corporation Client-based application availability and response monitoring and reporting for distributed computing environments
US6263339B1 (en) * 1998-08-25 2001-07-17 Informix Software, Inc. Dynamic object visualization and code generation
US6327622B1 (en) 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6342907B1 (en) * 1998-10-19 2002-01-29 International Business Machines Corporation Specification language for defining user interface panels that are platform-independent
US6415297B1 (en) * 1998-11-17 2002-07-02 International Business Machines Corporation Parallel database support for workflow management systems
US6728748B1 (en) 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
US6279009B1 (en) 1998-12-04 2001-08-21 Impresse Corporation Dynamic creation of workflows from deterministic models of real world processes
US6546364B1 (en) * 1998-12-18 2003-04-08 Impresse Corporation Method and apparatus for creating adaptive workflows
US6336217B1 (en) 1998-12-30 2002-01-01 International Business Machines Corporation Systems, methods and computer program products for end-to-end software development process automation
US20020135611A1 (en) 1999-03-04 2002-09-26 Trevor Deosaran Remote performance management to accelerate distributed processes
US6430576B1 (en) 1999-05-10 2002-08-06 Patrick Gates Distributing and synchronizing objects
US6618719B1 (en) * 1999-05-19 2003-09-09 Sybase, Inc. Database system with methodology for reusing cost-based optimization decisions
US6493594B1 (en) * 1999-06-04 2002-12-10 Lucent Technologies Inc. System and method for improved software configuration and control management in multi-module systems
US6662356B1 (en) 1999-06-30 2003-12-09 Microsoft Corporation Application program interface for transforming heterogeneous programs
US6640241B1 (en) * 1999-07-19 2003-10-28 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a communications manager
US6718535B1 (en) 1999-07-30 2004-04-06 Accenture Llp System, method and article of manufacture for an activity framework design in an e-commerce based environment
US6715145B1 (en) * 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6477665B1 (en) 1999-08-31 2002-11-05 Accenture Llp System, method, and article of manufacture for environment services patterns in a netcentic environment
WO2001025914A2 (en) 1999-10-01 2001-04-12 Accenture Llp. Operations architectures for netcentric computing systems
JP3738624B2 (ja) 1999-10-26 2006-01-25 日本電気株式会社 分散アプリケーション制御システム及び制御方法並びにプログラムを記録した記録媒体
AU2001227857A1 (en) 2000-01-14 2001-07-24 Saba Software, Inc. Method and apparatus for a business applications management system platform
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US7328233B2 (en) * 2000-01-19 2008-02-05 Corybant, Inc. Method and apparatus for implementing an active information model
US6654783B1 (en) 2000-03-30 2003-11-25 Ethergent Corporation Network site content indexing method and associated system
US6687735B1 (en) 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US7392210B1 (en) 2000-04-07 2008-06-24 Jpmorgan Chase Bank, N.A. Workflow management system and method
US20020038217A1 (en) * 2000-04-07 2002-03-28 Alan Young System and method for integrated data analysis and management
US7310801B2 (en) * 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
US6854069B2 (en) * 2000-05-02 2005-02-08 Sun Microsystems Inc. Method and system for achieving high availability in a networked computer system
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7051098B2 (en) * 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
US7685239B2 (en) * 2000-06-28 2010-03-23 Canon Kabushiki Kaisha Image communication apparatus, image communication method, and memory medium
AU2001288644A1 (en) 2000-09-01 2002-04-08 International Interactive Commerce, Ltd. System, method, uses, products, program products, and business methods for distributed internet and distributed network services
US20030172135A1 (en) 2000-09-01 2003-09-11 Mark Bobick System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks
US6920458B1 (en) * 2000-09-22 2005-07-19 Sas Institute Inc. Model repository
US6944759B1 (en) * 2000-09-29 2005-09-13 Hewlett-Packard Development Company, L.P. Automatic system configuration management
US6915338B1 (en) 2000-10-24 2005-07-05 Microsoft Corporation System and method providing automatic policy enforcement in a multi-computer service application
US6907395B1 (en) 2000-10-24 2005-06-14 Microsoft Corporation System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model
WO2002035395A2 (en) 2000-10-27 2002-05-02 Entigen Corporation Integrating heterogeneous data and tools
US7174359B1 (en) 2000-11-09 2007-02-06 International Business Machines Corporation Apparatus and methods for sequentially scheduling a plurality of commands in a processing environment which executes commands concurrently
US7600014B2 (en) * 2000-11-16 2009-10-06 Symantec Corporation Method and system for monitoring the performance of a distributed application
US7020869B2 (en) 2000-12-01 2006-03-28 Corticon Technologies, Inc. Business rules user interface for development of adaptable enterprise applications
US7296268B2 (en) 2000-12-18 2007-11-13 Microsoft Corporation Dynamic monitor and controller of availability of a load-balancing cluster
US6931644B2 (en) * 2000-12-21 2005-08-16 International Business Machines Corporation Hierarchical connected graph model for implementation of event management design
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
JP2002334194A (ja) 2001-02-09 2002-11-22 Internatl Business Mach Corp <Ibm> ワークフロー管理システムにおいて選択的コマンド制御を提供する方法、システム、プログラム
US20020147962A1 (en) * 2001-02-12 2002-10-10 International Business Machines Corporation Method and system for incorporating legacy applications into a distributed data processing environment
US6801818B2 (en) 2001-03-14 2004-10-05 The Procter & Gamble Company Distributed product development
ATE443285T1 (de) * 2001-04-05 2009-10-15 Inpeco Ip Ltd Verfahren zur verwaltung von arbeitszellensystemen mit einem automatisierungsverwaltungssystem
US6934702B2 (en) * 2001-05-04 2005-08-23 Sun Microsystems, Inc. Method and system of routing messages in a distributed search network
US6948151B2 (en) * 2001-06-29 2005-09-20 International Business Machines Corporation System and method for dynamic packaging of component objects
US20050155042A1 (en) 2001-07-02 2005-07-14 Michael Kolb Component-based system for distributed applications
US7055143B2 (en) 2001-07-10 2006-05-30 Microsoft Corporation System and methods for providing a declarative syntax for specifying SOAP-based web services
US7174379B2 (en) * 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
US7444618B2 (en) 2001-08-06 2008-10-28 Tata Consultancy Services Limited Automatic generation of batch programs with identification, insertion of invariables, declarative statements and variables with the use of place-marks
US6986135B2 (en) 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
US20030135384A1 (en) 2001-09-27 2003-07-17 Huy Nguyen Workflow process method and system for iterative and dynamic command generation and dynamic task execution sequencing including external command generator and dynamic task execution sequencer
US7660886B2 (en) 2001-09-27 2010-02-09 International Business Machines Corporation Apparatus and method of representing real-time distributed command execution status across distributed systems
US7035930B2 (en) * 2001-10-26 2006-04-25 Hewlett-Packard Development Company, L.P. Method and framework for generating an optimized deployment of software applications in a distributed computing environment using layered model descriptions of services and servers
US7085837B2 (en) 2001-12-04 2006-08-01 International Business Machines Corporation Dynamic resource allocation using known future benefits
AU2002362090A1 (en) * 2001-12-07 2003-06-23 Dbase, Inc. Drag-and-drop dynamic distributed object model
WO2003060707A1 (en) * 2002-01-11 2003-07-24 Akamai Technologies, Inc. Java application framework for use in a content delivery network (cdn)
US7152229B2 (en) 2002-01-18 2006-12-19 Symbol Technologies, Inc Workflow code generator
AU2003202356A1 (en) 2002-02-07 2003-09-02 Thinkdynamics Inc. Method and system for managing resources in a data center
EP1497721B1 (en) * 2002-04-11 2015-04-01 International Business Machines Corporation A software distribution method and system
US20030195763A1 (en) 2002-04-11 2003-10-16 International Business Machines Corporation Method and system for managing a distributed workflow
US7130881B2 (en) 2002-05-01 2006-10-31 Sun Microsystems, Inc. Remote execution model for distributed application launch and control
US7219351B2 (en) 2002-05-30 2007-05-15 Oracle International Corporation Multi-view conversion system and method for exchanging communications between heterogeneous applications
US7415483B2 (en) * 2002-06-05 2008-08-19 Sap Ag Individual data objects in enterprise computing systems
US7210143B2 (en) * 2002-07-17 2007-04-24 International Business Machines Corporation Deployment of applications in a multitier compute infrastructure
US20040040015A1 (en) * 2002-08-23 2004-02-26 Netdelivery Corporation Systems and methods for implementing extensible generic applications
US7240325B2 (en) 2002-09-11 2007-07-03 International Business Machines Corporation Methods and apparatus for topology discovery and representation of distributed applications and services
US6847970B2 (en) 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US7096311B2 (en) 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US7167915B2 (en) * 2002-10-18 2007-01-23 International Business Machines Corporation Monitoring storage resources used by computer applications distributed across a network
US20040088350A1 (en) * 2002-10-31 2004-05-06 General Electric Company Method, system and program product for facilitating access to instrumentation data in a heterogeneous distributed system
CA2412747A1 (en) * 2002-11-26 2004-05-26 Cognos Incorporated System and method for monitoring business performance
US20050251546A1 (en) 2002-12-11 2005-11-10 International Business Machines Corporation Method and system for configuring processing entities according to their roles in a data processing system with a distributed architecture
US7395526B2 (en) * 2002-12-23 2008-07-01 Sun Microsystems, Inc. Method and system for managing application server lifecycle
US20040148370A1 (en) 2003-01-23 2004-07-29 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
US7168077B2 (en) 2003-01-31 2007-01-23 Handysoft Corporation System and method of executing and controlling workflow processes
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US8122106B2 (en) * 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7302609B2 (en) * 2003-03-12 2007-11-27 Vladimir Matena Method and apparatus for executing applications on a distributed computer system
US20040186905A1 (en) * 2003-03-20 2004-09-23 Young Donald E. System and method for provisioning resources
US20040187140A1 (en) 2003-03-21 2004-09-23 Werner Aigner Application framework
US8161094B2 (en) 2003-06-04 2012-04-17 Sony Computer Entertainment Inc. System and method for notification within decentralized network
US6915656B2 (en) * 2003-07-14 2005-07-12 Eco Technology Solutions, Llc Heat pump system
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7403956B2 (en) * 2003-08-29 2008-07-22 Microsoft Corporation Relational schema format
US7503043B2 (en) 2003-09-05 2009-03-10 International Business Machines Corporation Method of building dynamic installation packages using a declarative authoring tool
CA2443657A1 (en) * 2003-09-30 2005-03-30 Cognos Incorporated Business performance presentation user interface and method for presenting business performance
US8452881B2 (en) * 2004-09-28 2013-05-28 Toufic Boubez System and method for bridging identities in a service oriented architecture
US20050074003A1 (en) * 2003-10-02 2005-04-07 Ball David Alexander Distributed software architecture for implementing BGP
US7379999B1 (en) 2003-10-15 2008-05-27 Microsoft Corporation On-line service/application monitoring and reporting system
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
WO2005043323A2 (en) 2003-10-27 2005-05-12 Archivas, Inc. Policy-based management of a redundant array of independent nodes
US20050108703A1 (en) * 2003-11-18 2005-05-19 Hellier Charles R. Proactive policy-driven service provisioning framework
US20050120106A1 (en) * 2003-12-02 2005-06-02 Nokia, Inc. System and method for distributing software updates to a network appliance
US7454496B2 (en) * 2003-12-10 2008-11-18 International Business Machines Corporation Method for monitoring data resources of a data processing network
US20050137839A1 (en) 2003-12-19 2005-06-23 Nikolai Mansurov Methods, apparatus and programs for system development
US20050149940A1 (en) * 2003-12-31 2005-07-07 Sychron Inc. System Providing Methodology for Policy-Based Resource Allocation
US20050188075A1 (en) 2004-01-22 2005-08-25 International Business Machines Corporation System and method for supporting transaction and parallel services in a clustered system based on a service level agreement
US8197325B2 (en) * 2004-01-27 2012-06-12 Integrated Group Assets Inc. Method and apparatus for providing an instant lottery game and a supplemental game
WO2005081110A2 (en) * 2004-02-13 2005-09-01 Memento Inc. System and method for instrumenting a software application
US20050198628A1 (en) * 2004-03-04 2005-09-08 Graham Christoph J. Creating a platform specific software image
JP2005266917A (ja) * 2004-03-16 2005-09-29 Nec Corp 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム
US7822662B2 (en) * 2004-03-29 2010-10-26 Microsoft Corporation Key performance indicator system and method
US8271541B2 (en) 2004-03-31 2012-09-18 Fusionops Corporation Method and apparatus for developing composite applications
US7079010B2 (en) * 2004-04-07 2006-07-18 Jerry Champlin System and method for monitoring processes of an information technology system
US7526734B2 (en) * 2004-04-30 2009-04-28 Sap Ag User interfaces for developing enterprise applications
US7376534B2 (en) 2004-05-21 2008-05-20 Bea Systems, Inc. Watches and notifications
US7370296B2 (en) 2004-05-25 2008-05-06 International Business Machines Corporation Modeling language and method for address translation design mechanisms in test generation
US7487080B1 (en) * 2004-07-08 2009-02-03 The Mathworks, Inc. Partitioning a model in modeling environments
US7716253B2 (en) * 2004-07-09 2010-05-11 Microsoft Corporation Centralized KPI framework systems and methods
US7747641B2 (en) * 2004-07-09 2010-06-29 Microsoft Corporation Modeling sequence and time series data in predictive analytics
US7467078B2 (en) * 2004-07-16 2008-12-16 Agilent Technologies Inc. Portable distributed application framework
US20060070066A1 (en) * 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
US7561673B2 (en) 2004-09-30 2009-07-14 Microsoft Corporation Integration of speech services with telecommunications
US7796520B2 (en) * 2004-09-30 2010-09-14 Avaya Canada Corp. System and methods for announcing and locating services in a distributed peer-to-peer network
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US7631291B2 (en) 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
JP4167643B2 (ja) * 2004-10-27 2008-10-15 株式会社日立製作所 業務システムの運用方法、運用管理システムおよび運用プログラム
US20060095443A1 (en) * 2004-10-29 2006-05-04 Kerika, Inc. Idea page system and method
US8032863B2 (en) 2004-11-18 2011-10-04 Parasoft Corporation System and method for global group reporting
US20060130047A1 (en) 2004-11-30 2006-06-15 Microsoft Corporation System and apparatus for software versioning
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US20060155738A1 (en) 2004-12-16 2006-07-13 Adrian Baldwin Monitoring method and system
US9535679B2 (en) * 2004-12-28 2017-01-03 International Business Machines Corporation Dynamically optimizing applications within a deployment server
KR20060082353A (ko) * 2005-01-12 2006-07-18 와이더댄 주식회사 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
US20060161862A1 (en) 2005-01-20 2006-07-20 Microsoft Corporation Enabling users to create and use a directory of document links from within a file menu of an application
US20070050446A1 (en) 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
JP2006228115A (ja) * 2005-02-21 2006-08-31 Ntt Comware Corp 負荷分散予測装置及び負荷分散制御方法並びにそのプログラム、負荷分散制御システムおよび当該システムにおける負荷分散制御方法
US7895566B2 (en) * 2005-03-10 2011-02-22 Research In Motion Limited System and method for building a deployable component based application
US7747985B2 (en) * 2005-03-18 2010-06-29 Microsoft Corporation Conformance testing of multi-threaded and distributed software systems
US7770151B2 (en) 2005-04-07 2010-08-03 International Business Machines Corporation Automatic generation of solution deployment descriptors
US7979520B2 (en) 2005-04-15 2011-07-12 Microsoft Corporation Prescriptive architecture recommendations
US20060236254A1 (en) * 2005-04-18 2006-10-19 Daniel Mateescu System and method for automated building of component based applications for visualizing complex data structures
EP1715419A1 (en) * 2005-04-22 2006-10-25 Ubs Ag A technique for platform-independent service modeling
JP4372043B2 (ja) 2005-05-12 2009-11-25 株式会社ソニー・コンピュータエンタテインメント コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US7757213B2 (en) 2005-05-18 2010-07-13 Microsoft Corporation Aggregation-based management of a distributed business process application
EP1729213A1 (en) 2005-05-30 2006-12-06 Honda Research Institute Europe GmbH Development of parallel/distributed applications
US7529990B2 (en) 2005-05-31 2009-05-05 Bsquare Corporation Systems and methods for managing multi-device test sessions
US7761851B2 (en) 2005-05-31 2010-07-20 International Business Machines Corporation Computer method and system for integrating software development and deployment
US7703075B2 (en) * 2005-06-22 2010-04-20 Microsoft Corporation Programmable annotation inference
US7359824B2 (en) 2005-06-29 2008-04-15 International Business Machines Corporation Systems and methods for a distributed execution environment with per-command environment management
ES2383307T3 (es) * 2005-07-29 2012-06-20 Telecom Italia S.P.A. Procedimiento y sistema para generar señales de instrucción para realizar intervenciones en una red de comunicación, y producto de programa informático correspondiente
JP5019817B2 (ja) * 2005-08-15 2012-09-05 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US7454492B2 (en) 2005-08-26 2008-11-18 International Business Machines Corporation Method and apparatus for configuring and modeling server information in an enterprise tooling environment
US20070050237A1 (en) * 2005-08-30 2007-03-01 Microsoft Corporation Visual designer for multi-dimensional business logic
US7818714B2 (en) 2005-09-15 2010-10-19 Microsoft Corporation Integration of process and workflows into a business application framework
US7430559B2 (en) 2005-09-21 2008-09-30 Microsoft Corporation Generalized idempotent requests
FR2891077B1 (fr) 2005-09-22 2008-12-12 Xcalia Sa Systeme de mise en oeuvre d'une application metier.
US8407610B2 (en) 2005-09-30 2013-03-26 Sap Portals Israel Ltd. Executable and declarative specification for graphical user interfaces
WO2007044656A2 (en) * 2005-10-07 2007-04-19 Neoedge Networks, Inc. Advertisement identification, selection, and distribution involving a peer-to-peer network
US7941309B2 (en) * 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US7512707B1 (en) * 2005-11-03 2009-03-31 Adobe Systems Incorporated Load balancing of server clusters
US8397209B2 (en) * 2005-11-17 2013-03-12 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Software modeling system and method
WO2007072501A2 (en) 2005-12-19 2007-06-28 Mphasis Bfl Limited A system and a methodology for providing integrated business performance management platform
US8122427B2 (en) 2006-01-04 2012-02-21 Microsoft Corporation Decentralized system services
US20070174228A1 (en) * 2006-01-17 2007-07-26 Microsoft Corporation Graphical representation of key performance indicators
US20070179823A1 (en) * 2006-01-30 2007-08-02 Kumar Bhaskaran Observation modeling
US7869585B2 (en) * 2006-03-17 2011-01-11 Microsoft Corporation Declarations for transformations within service sequences
US20070226681A1 (en) * 2006-03-23 2007-09-27 Bestbrains Aps System for annotation based model driven software development
US8214474B2 (en) 2006-04-18 2012-07-03 International Business Machines Corporation Autonomic computing system with model transfer
US20070244904A1 (en) 2006-04-18 2007-10-18 Kristopher Durski Method and Architecture for Goal Oriented Applications, Configurations and Workflow Solutions on-the-Fly
US7774744B2 (en) * 2006-04-26 2010-08-10 Sap Ag Using relatedness information for programming
US20070288885A1 (en) 2006-05-17 2007-12-13 The Mathworks, Inc. Action languages for unified modeling language model
US8793584B2 (en) 2006-05-24 2014-07-29 International Business Machines Corporation Customizable user interface wrappers for web applications
US7996830B2 (en) 2006-06-05 2011-08-09 International Business Machines Corporation Programming model generic application deployment
US7844942B2 (en) 2006-06-12 2010-11-30 International Business Machines Corporation System and method for model driven transformation filtering
US20070294364A1 (en) 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US8095923B2 (en) * 2006-06-29 2012-01-10 Augusta Systems, Inc. System and method for deploying and managing intelligent nodes in a distributed network
US7735060B2 (en) * 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying sensor-enabled software applications
US8381180B2 (en) * 2006-09-08 2013-02-19 Sap Ag Visually exposing data services to analysts
US8316364B2 (en) * 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
US20080244423A1 (en) 2007-03-28 2008-10-02 Sap Ag Melting groups
US8667318B2 (en) 2007-05-14 2014-03-04 Picongen Wireless, Inc. Method and apparatus for wireless clock regeneration
US7970892B2 (en) * 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US7797289B2 (en) * 2007-09-05 2010-09-14 Oracle International Corporation Method and apparatus for automatically executing rules in enterprise systems
US8099720B2 (en) * 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8015281B2 (en) 2008-04-21 2011-09-06 Microsoft Corporation Dynamic server flow control in a hybrid peer-to-peer network

Also Published As

Publication number Publication date
EP2176778A4 (en) 2011-10-12
TWI438684B (zh) 2014-05-21
CN101689167A (zh) 2010-03-31
TW200903332A (en) 2009-01-16
EP2176778B1 (en) 2018-05-16
WO2009006026A3 (en) 2009-03-19
WO2009006026A2 (en) 2009-01-08
EP2176778A2 (en) 2010-04-21
JP2010532532A (ja) 2010-10-07
CN101689167B (zh) 2012-02-29
US20090006062A1 (en) 2009-01-01
US8239505B2 (en) 2012-08-07

Similar Documents

Publication Publication Date Title
JP5216853B2 (ja) 分散型システムにおける宣言的モデルの段階的な実施
RU2498394C2 (ru) Синхронизация жизненных циклов виртуальной машины и приложения
US8230386B2 (en) Monitoring distributed applications
US7974939B2 (en) Processing model-based commands for distributed applications
US8099494B2 (en) Tuning and optimizing distributed systems with declarative models
US8225308B2 (en) Managing software lifecycle
US8099720B2 (en) Translating declarative models
JP4914717B2 (ja) 維持可能なグリッドマネージャ
US20090113379A1 (en) Modeling and managing heterogeneous applications
US7926070B2 (en) Performing requested commands for model-based applications
US20080209275A1 (en) Test framework for testing an application
JP2007500387A (ja) インストール/実行/削除機構
JP2007500383A (ja) アプリケーションスタートプロトコル
JP2007500386A (ja) グリッド組織
US8458693B2 (en) Transitioning from static to dynamic cluster management
Ejarque et al. Exploiting semantics and virtualization for SLA‐driven resource allocation in service providers
Nagraj et al. Automated Infectious Disease Forecasting: Use-Cases and Practical Considerations for Pipeline Implementation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130304

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees