JP5346032B2 - 宣言的モデルの変換 - Google Patents

宣言的モデルの変換 Download PDF

Info

Publication number
JP5346032B2
JP5346032B2 JP2010531304A JP2010531304A JP5346032B2 JP 5346032 B2 JP5346032 B2 JP 5346032B2 JP 2010531304 A JP2010531304 A JP 2010531304A JP 2010531304 A JP2010531304 A JP 2010531304A JP 5346032 B2 JP5346032 B2 JP 5346032B2
Authority
JP
Japan
Prior art keywords
model
command
declarative
execution plan
received
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.)
Active
Application number
JP2010531304A
Other languages
English (en)
Other versions
JP2011502309A (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 JP2011502309A publication Critical patent/JP2011502309A/ja
Application granted granted Critical
Publication of JP5346032B2 publication Critical patent/JP5346032B2/ja
Active 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/30Creation or generation of source code
    • 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/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

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

Description

本発明は、宣言的モデル(declarative model)の変換に関する。
コンピュータ・システムおよび関連する技術は、社会の多くの側面に影響を及ぼしている。実際、情報を処理するコンピュータ・システムの能力は我々の生活および仕事の様式を変化させた。コンピュータ・システムは今や普通に、コンピュータ・システムが出現する前は手作業で行われていた大量のタスク(例えば、文書処理、スケジューリング、会計処理など)を実施している。最近では、コンピュータ・システムは、互いにおよび他の電子装置に結合されて、そのコンピュータ・システムおよび他の電子装置が電子データを転送できる有線コンピュータ・ネットワークおよび無線コンピュータ・ネットワークの両方を形成している。従って、多数のコンピューティング・タスクの動作は、複数の異なるコンピュータ・システムおよび/または複数の異なるコンピューティング・コンポーネントに渡って分散されている。
コンピュータ化されたシステムの大衆性が高まると、そのようなシステムにおいて使用されるソフトウェアおよびハードウェアの複雑性も増す。一般に、より複雑に見えるソフトウェアの必要性は増大し続けており、この必要性がさらに、ハードウェアのさらなる開発を後押しする力の1つとなる傾向がある。例えば、アプリケーション・プログラムが所与のハードウェア・システムにあまりに多くのことを要求すると、ハードウェア・システムの動作が非効率的なるか、あるいはハードウェア・システムがアプリケーション・プログラムを全く処理できなくなる可能性がある。しかし、アプリケーション・プログラムの開発における近年の傾向では、分散アプリケーション・プログラムを少なくとも部分的に用いることで、これらのタイプのハードウェア制約の多くが取り除かれてきている。一般に、分散アプリケーション・プログラムは、幾つかの異なるハードウェア・コンポーネント上で実行されるコンポーネントを備え、これらのコンポーネントはしばしば階層型環境内の異なるコンピュータ・システム上にある。
分散アプリケーション・プログラムを用いると、異なるコンピュータ・システムは、様々な処理結果を互いにネットワークを介して通信することができる。これらの通信に沿って、組織は分散アプリケーション・サーバを使用して、幾つかの異なる分散アプリケーション・プログラムを多数の異なるコンピュータ・システムを介して管理することとなる。例えば、ユーザが或る分散アプリケーション・サーバを使用して、1組の異なるコンピュータ・システム上で実行される電子商取引アプリケーション・プログラムの動作を管理することがある。ユーザが、上記分散アプリケーション・サーバを使用して、同じ1組のコンピュータ・システムまたは異なる1組のコンピュータ・システム上の顧客管理アプリケーション・プログラムの実行を管理することもある。
当然、分散アプリケーション・サーバを介して管理される各々の対応する分散アプリケーションは同様に、異なる(場合によっては異なって構成される)ネットワーク接続上の他のさらに異なる(場合によっては異なって構成される)コンピュータ・システム上で実行される、幾つかの異なるモジュールおよびコンポーネントを有することができる。したがって、幾つかの異なるコンピュータ・システムを介して処理能力を組み合わせるこの能力は利点である一方で、アプリケーション・プログラム・モジュールを分散させることに関連する様々な複雑性がある。
例えば、従来の分散アプリケーション・プログラム・サーバは、一般に、効率的なスケーラビリティをもつように構成されていない。すなわち、ほとんどの分散アプリケーション・サーバは、正確な参照および/またはコンポーネント・アドレス指定スキーマなどの、所与の分散アプリケーション・プログラムの正確な命令を管理するように構成されている。従って、典型的に、アプリケーション・プログラムのコンポーネント間には比較的密な結合が存在する。従って、管理者が、ある特定のモジュールまたはコンポーネントを別のサーバまたは別の1組のコンピュータ・システムに再デプロイ(redeploy)したいとき、(例えば、ネットワーク・プロトコル、システム構成などの相違に起因して)再デプロイによりエラーが引き起こされる可能性が、常に幾らか(場合によっては多く)存在する。これらのエラーは、メッセージが、該メッセージが必要とされる全ての場所には渡されないとき、または該メッセージが不正確に渡される場合に生ずる可能性がある。
本発明は、宣言的モデルを変換するための方法、システム、コンピュータ・プログラム生成物に及ぶ。コンピュータ・システムは1つまたは複数のドライバを含む。各ドライバは、異なる技術の特定の組合せに対するモデルを処理するように構成される。コンピュータ・システムは1つまたは複数のトランスレータも備える。各トランスレータは、複数の異なる技術のうち特定の技術においてオブジェクトを表すモデル要素を処理するように構成される。
一部の実施形態では、コンピュータ・システムは、宣言的モデルをコマンドとともに受信する。宣言的モデルおよびコマンドは一体的に、受信した宣言的モデルに基づいてアプリケーションに対するコマンドを実装するという目的(intent)を表す。コンピュータ・システムは、受信した宣言的モデルにおいて示される技術の組合せに対応する宣言的モデルを処理するように構成された、ドライバを識別する。コンピュータ・システムは、受信した宣言的モデルおよびコマンドを、識別されたドライバに転送する。識別されたドライバは、受信した宣言的モデルを解析して、モデル要素、およびモデル要素の相互間の関係を識別する。
識別されたモデル要素ごとに、コンピュータ・システムは、識別されたモデル要素に対応する特定の技術に対するモデル要素を変換するように構成されたトランスレータを識別する。コンピュータ・システムは、識別されたモデル要素ごとに、該モデル要素を上記識別されたトランスレータに送信する。識別されたモデル要素ごとに、コンピュータ・システムは、アプリケーションに対するコマンドを部分的に実装するのに特定の技術において実行されるべきアクションのシーケンスを受信する。受信したアクションのシーケンスは、コマンドを完全に実装するのに実行されるべき全アクションのサブセットである。
コンピュータ・システムは、宣言的モデル内で識別されたモデル要素について上記受信したアクションのシーケンスを、実行プラン(execution plan)に編成する(assemble)。上記受信したアクションのシーケンスは、他のモデル要素について受信したアクションのシーケンスに関する指定の順序で、実行プランに編成される。この指定の順序は、受信した宣言的モデルにおける、そのモデル要素の他のモデル要素に対する関係に基づく。コンピュータ・システムは上記実行プランを実行して、アプリケーションに対するコマンドを実装する。実行プランの実行は、受信したアクションのシーケンスを、モデル要素ごとに指定の順序で実行することを含む。
他の実施形態では、アプリケーションに関する現在の実行プランと以前の実行プランを比較する。比較の結果を使用して新たな実行プランを導出する。新たな実行プランの導出には、現在の実行プランに含まれるアクションまたは含まれないアクションに基づいて、以前の実行プランからのアクションを追加、削除、更新、および反転することを含まれうる。
この課題を解決するための手段の記載は、下記の発明を実施するための形態においてさらに説明される概念の選択を簡潔な形で導入するために提供される。この課題を解決するための手段の記載は、特許請求される主題の主要な特徴または本質的な特徴を特定するように目的されたものではなく、特許請求される主題の範囲を決定する際の助けとして使用されることも目的されていない。
本発明の追加の特徴および利点を以下の記述において説明するが、その一部は、以下の記述から明らかになるか、または本発明を実施することにより習得されうる。本発明の特徴および利点は、添付の特許請求の範囲で特に指摘した手段および組合せにより実現して得ることができる。本発明のこれらおよび他の特徴は、下記の記述および添付の特許請求の範囲からより完全に明らかになるか、または以降に説明されるように本発明を実施することにより習得される。
本発明の上記ならびに他の利点および特徴が得えられる手法を説明するために、上で簡単に説明した本発明に関するより具体的な説明を、添付の図面に図示される具体的な実施形態を参照して行う。本発明は、添付の図面を使用してさらに具体的および詳細に記述し説明されるが、これらの図面は本発明の典型的な実施形態を示すものにすぎず、従って本発明の範囲を限定するものとみなされるべきではないことを理解されたい。
宣言的モデルの変換を容易にする例示的なコンピュータ・アーキテクチャを示す図である。 宣言的アプリケーションモデルを変換するためのより詳細なコンピュータ・アーキテクチャを示す異なる図である。 宣言的アプリケーションモデルを変換するためのより詳細なコンピュータ・アーキテクチャを示す異なる図である。 宣言的アプリケーションモデルを変換するためのコンピュータ・アーキテクチャをさらに拡大した図である。 モデルを変換して受信したコマンドを実装するための例示的な方法のフローチャートである。 宣言的アプリケーションモデルを変換してアプリケーションを更新するためのコンピュータ・アーキテクチャの例を示す図である。 アプリケーションを更新するための更新アクションの例を示す図である。 モデルを変換して更新コマンドを実装するための例示的な方法のフローチャートである。
本発明は、宣言的モデルを変換するための方法、システム、コンピュータ・プログラム生成物に関する。コンピュータ・システムは1つまたは複数のドライバを備える。各ドライバは、異なる技術の特定の組合せに対するモデルを処理するように構成される。コンピュータ・システムは1つまたは複数のトランスレータも備える。各トランスレータは、複数の異なる技術のうち特定の技術においてオブジェクトを表すモデル要素を処理するように構成される。
一部の実施形態では、コンピュータ・システムは宣言的モデルをコマンドとともに受信する。宣言的モデルおよびコマンドは一体的に、上記受信した宣言的モデルに基づいてアプリケーションに対するコマンドを実装するという目的を表す。コンピュータ・システムは、上記受信した宣言的モデルで示された技術の組合せに対応する宣言的モデルを処理するように構成されたドライバを識別する。コンピュータ・システムは、上記受信した宣言的モデルおよびコマンドを、上記識別されたドライバに転送する。上記識別されたドライバは、上記受信した宣言的モデルを解析して、モデル要素およびモデル要素間の関係を識別する。
上記識別されたモデル要素ごとに、コンピュータ・システムは、上記識別されたモデル要素に対応する特定の技術に対するモデル要素を変換するように構成されたトランスレータを識別する。上記識別されたモデル要素ごとに、コンピュータ・システムは該モデル要素を、上記識別されたトランスレータに送信する。上記識別されたモデル要素ごとに、コンピュータ・システムは、アプリケーションに対するコマンドを部分的に実装するのに特定の技術において実行されるべきアクションのシーケンスを受信する。該受信したアクションのシーケンスは、コマンドを完全に実装するのに実行されるべきアクション全体のサブセットである。
コンピュータ・システムは、宣言的モデル内で識別されたモデル要素に対する上記受信したアクションのシーケンスから、実行プランを編成する。上記受信したアクションのシーケンスは、他のモデル要素に対して受信したアクションのシーケンスに関する指定の順序で、実行プランに編成される。この指定の順序は、上記受信した宣言的モデルにおけるそのモデル要素の他のモデル要素に対する関係に基づく。コンピュータ・システムは実行プランを実行して、アプリケーションに対するコマンドを実装する。実行プランの実行には、モデル要素ごとに受信したアクションのシーケンスを指定の順序で実行することが含まれる。
他の実施形態では、アプリケーションに対する現在の実行プランと以前の実行プランを比較する。比較の結果を使用して新たな実行プランを導出する。新たな実行プランの導出には、現在の実行プランに含まれるアクションまたは含まれないアクションに基づいて以前の実行プランからアクションを追加、削除、更新、および反転することが含まれうる。
本発明の実施形態は、後にさらに詳細に論ずるように、コンピュータ・ハードウェアを含む専用または汎用のコンピュータを備え、または利用することができる。本発明の範囲にある実施形態は、コンピュータ実行可能命令および/またはデータ構造を伝達または格納するための物理的な媒体および他のコンピュータ読取可能媒体を含む。係るコンピュータ読取可能媒体は、汎用または専用のコンピュータ・システムによってアクセス可能な任意の利用可能な媒体とすることができる。コンピュータ実行可能命令を格納するコンピュータ読取可能媒体は物理的な記憶媒体である。コンピュータ実行可能命令を伝達するコンピュータ読取可能媒体は伝送媒体である。従って、限定ではなく例として、本発明の実施形態には、少なくとも2つの明らかに異なるタイプのコンピュータ読取可能媒体、すなわち、物理的な記憶媒体および伝送媒体が含まれうる。
物理的な記憶媒体には、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶装置、または所望のプログラム・コード手段をコンピュータ実行可能命令もしくはデータ構造の形で格納するのに使用可能であって、汎用もしくは専用のコンピュータによってアクセス可能な他の任意の媒体が含まれる。
「ネットワーク」は、コンピュータ・システムおよび/またはモジュールおよび/または他の電子装置の間における電子データの伝送を可能にする、1つまたは複数のデータ・リンクとして定義される。情報がネットワークまたは別の通信接続(有線、無線、または有線もしくは無線の組合せの何れか)を介してコンピュータに転送または提供されるとき、該コンピュータはその接続を正しく伝送媒体とみなす。伝送媒体は、所望のプログラム・コード手段をコンピュータ実行可能命令もしくはデータ構造の形で伝達するのに使用可能であって、汎用もしくは専用のコンピュータによってアクセス可能なネットワークおよび/またはデータ・リンクを含むことができる。上記の組合せもコンピュータ読取可能媒体の範囲内に含まれるべきである。
さらに、コンピュータ実行可能命令またはデータ構造の形のプログラム・コード手段が様々なコンピュータ・システム・コンポーネントに到達すると、そのプログラム・コード手段を伝送媒体から物理的な記憶媒体に自動的に転送することができることを理解されたい。例えば、ネットワークまたはデータ・リンクを介して受信されたコンピュータ実行可能命令またはデータ構造を、ネットワーク・インタフェース・モジュール(例えば、「NIC」)内のRAMにバッファリングすることができ、次いで、最終的にコンピュータ・システムのRAMおよび/またはコンピュータ・システムにある揮発性の低い物理的な記憶媒体に転送することができる。従って、物理的な記憶媒体を、伝送媒体も(または主に)利用するコンピュータ・システム・コンポーネントに含めることができることを理解されたい。
コンピュータ実行可能命令は、例えば、汎用のコンピュータ、専用のコンピュータ、または専用の処理装置に特定の機能または機能群を実行させる命令およびデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間形式の命令であってよく、あるいはソース・コードであってもよい。本主題を構造的な特徴および/または方法論的動作に固有な言葉で説明しているが、添付の特許請求の範囲で定義される主題は必ずしも上述の特徴または動作には限定されないことを理解されたい。むしろ、説明される特徴および動作は、特許請求の範囲を実装する例示的形態として開示されている。
当業者には、本発明をパーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージ・プロセッサ、ハンドヘルド装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースまたはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ、携帯電話、PDA、ページャ、ルータ、スイッチなどを含め、多タイプのコンピュータ・システム構成を有するネットワーク・コンピューティング環境において実施することができることが理解されよう。本発明を、ネットワークを介してリンクされる(有線データ・リンク、無線データ・リンク、または有線データ・リンクと無線データ・リンクの組合せのいずれかによって)、ローカル・コンピュータ・システムおよびリモート・コンピュータ・システムの両方がタスクを実行する、分散システム環境において実施することもできる。分散システム環境では、プログラム・モジュールをローカルのメモリ記憶装置およびリモートのメモリ記憶装置の両方に配置してもよい。
図1は、宣言的モデルの変換を容易にする例示的なコンピュータ・アーキテクチャ100を図示している。図1に示されるように、コンピュータ・アーキテクチャ100は変換システム101および環境105を備える。環境105はさらに、変換システム101に対してアクセス可能な、例えばリソース105A、105B、および105Cなどの複数のリソースを備える。さらに示すように、変換システム101は、宣言的モデル102とコマンド103を受信する。変換システム101は、コマンド103を考慮して宣言的モデル102を変換し、その結果、環境105におけるアクション104A、104B、および104Cが実施される。
一般に、モデルは、アプリケーション・モジュール(例えば、分散アプリケーションの分散可能コンポーネント)などのオブジェクトを記述するデータである。従って、宣言的モデル102は、互いに接続される、または互いに関連する1つまたは複数のアプリケーション・モジュールを記述することができる。さらに各モジュールを、同様に互いに関連する1つまたは複数のリソースで構成することができる。従って、宣言的モデル102の要素を使用して、分散アプリケーションの少なくとも一部を表す、関連するアプリケーション・モジュールおよびリソースを記述することができる。例えば、宣言的モデル102は、リソース(例えば、ファイル)と、アーチファクト(例えば、ウェブ・サービスをホストするために作成しなければならないIISの仮想ディレクトリ)と、構成情報とで構成されるウェブ・サービスのモジュールを記述することができる。
一般に、コマンドは、モデルにおいて実行されるべきアクションを表す。コマンドは実質的には、例えば、デプロイ(deploy)、アンデプロイ(undeploy)、開始、停止、更新、モニタリングなどの、モデルにおいて実行可能な任意の動作を表すことができる。従って、コマンド103は、宣言的モデル102において実行されるべきアクションを表すことができる。
モデルをコマンドとともに利用して目的を表すことができる。表される目的は、ユーザの目的または自動的な目的とすることができる。例えば、宣言的モデル102はコマンド103とともに、「マイ・ウェブ・サービスをデプロイする」、「マイ・ウェブ・サービスの実行を開始する」などというユーザの目的を表すことができる。
従って、宣言的モデル102およびコマンド103の受信に応答して、変換システム101はモデル102およびコマンド103を処理して、表された目的を実現することができる。表された目的を実現することは、例えばアクション104A、104B、104Cなどの1つまたは複数のアクションを、環境105のリソースに対して実行することを含むことができる。例えば、ユーザのウェブ・サービスをデプロイするために、変換システム101はファイルをリソース105Bにコピーし、例えばウェブ・サーバ上にディレクトリを作成すること、およびウェブ・サービスが必要とするリソース105C(例えば、構成ファイル)を作成または変更することといったように、リソース105A上でアーチファクトを作成することができる。
図2Aは、宣言的アプリケーションモデルの変換を容易にする例示的なコンピュータ・アーキテクチャ200を図示している。コンピュータ・アーキテクチャ200内には、ツール225、リポジトリ220、実行モジュール215、ドライバマネージャ230、および分析モジュール210が図示されている。図示されたコンポーネントの各々を、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、およびインターネットなどのネットワークを介して相互に接続することができる。従って、図示されるコンポーネントの各々ならびに他の任意の接続されたコンポーネントは、メッセージに関連するデータを作成して、メッセージに関連するデータ(例えば、「IP」(Internet Protocol)データグラム、ならびに「TCP」(Transmission Control Protocol)、「HTTP」(Hypertext Transfer Protocol)、「SMTP」(Simple Mail Transfer Protocol))などのIPデータグラムを利用する他の上位層プロトコル)を、ネットワークを介して交換することができる。
図示されるように、ツール225を使用してアプリケーションに対する宣言的モデルを書き、該宣言的モデルをリポジトリ220に格納することができる。例えば、宣言的アプリケーションモデル253をリポジトリ220に格納することができる。宣言的モデルを使用して、現実世界で稼動している(デプロイされた)アプリケーションの構造および振舞いを決定する。宣言的モデルを使用して、宣言的モデルに基づいてデプロイされたアプリケーションからどのようなイベントが報告(発信)されたかを決定することもできる。従って、ユーザ(例えば、分散アプリケーション・プログラムの開発者)は、1つまたは複数のツール225を使用して宣言的モデル253を作成することができる。宣言的モデルは、アプリケーションがどのように構成および実行されるべきかを宣言する、複数の相互に関連するモデル要素を含むことができる。
一般に、宣言的モデルは、分散アプリケーションに関するアプリケーションの目的を表す、高レベルの宣言の1つまたは複数のセットを含む。従って、高レベルの宣言は一般に、分散アプリケーション・プログラムにおける1つまたは複数のモジュールの動作および/または振舞いを記述する。しかし、高レベルの宣言は、特定の動作/振舞いを有する分散アプリケーションをデプロイするために必要な実装ステップを、(必要に応じて記述することはできるが)必ずしも記述するわけではない。例えば、宣言的アプリケーションモデル253は、例えば第1のウェブ・サービスおよび第2のウェブ・サービスを互いに接続することを含む、一般化されたワークフローの目的を表現することができる。しかし、宣言的アプリケーションモデル153は必ずしも、第1のウェブ・サービスおよび第2のウェブ・サービスを互いに接続する方法(例えば、プロトコル)、および場所(例えば、URIエンドポイント)を記述するとは限らない。2つのウェブ・サービスを接続する方法および場所の具体的な詳細を、該ウェブ・サービスがデプロイされる場所(例えば、特定のマシンおよび特定のウェブ・サーバ構成)に基づいて決定することができる。
宣言的アプリケーションモデルに基づく、アプリケーションに対するアプリケーション制御を、宣言的アプリケーションモデルにおけるアクションを実行するためのコマンドの受信に応答して実現することができる。例えば、入力(例えば、ユーザが開始した入力または自動の入力)を実行モジュール215が受信することができる。入力は、ツール225またはコンピュータ・プログラムから(例えば、ユーザ・インタフェースまたはプログラマチック・インタフェースで)受信される。入力には、モデルへの参照(例えば、ファイル名、URIなど)およびコマンドが含まれうる。コマンドは、参照されたモデルにおいて実行されるべき動作(例えば、デプロイ、アンデプロイ、開始、停止、更新など)を表す。
要求された動作を宣言的モデルによって記述されたアプリケーションにおいて実行するために、宣言的アプリケーションモデルを実行モジュール215に送信する。実行モジュール215は、宣言的アプリケーションモデルに曖昧さがなくなり、およびその細部が、ドライバが消費するのに十分な程度になるまで、該宣言的アプリケーションモデルを改良することができる。従って、実行モジュール215は宣言的アプリケーションモデル253を受信して改良することができ、その結果、宣言的アプリケーションモデル253が、ドライバマネージャ230内部に存在するドライバによって変換されて、デプロイされた現実世界のアプリケーションとなることができる。
一般に、宣言的モデルの「改良(refine)」は、例えば段階的精微化(progressive elaboration)などの、何らかのタイプの作業分解構造(work breakdown structure)を含むことができるので、宣言的モデルの命令は、ドライバまたはドライバマネージャ230による変換にとって十分に完全である。宣言的モデルは、人間であるユーザによって比較的大まかに(すなわち、一般化された目的の命令または要求を含むように)書かれる可能性があるため、実行モジュール215がアプリケーションをデプロイするために宣言的モデルを修正または補完する程度または範囲は様々存在しうる。作業分解モジュール216は、例えば段階的精微化アルゴリズムなどの作業分解構造アルゴリズムを実装して、ドライバマネージャ230内に存在するドライバに対して適切な粒度に到達し命令が十分となるときを判断することができる。
実行モジュール215はまた、宣言的モデルに含まれる依存性および制約を考慮することもできる。例えば、実行モジュール215は、宣言的アプリケーションモデル253における(例えば、別のウェブ・サービスに接続されているウェブ・サービス)要素間の依存性の意味に基づいて宣言的アプリケーションモデル253を改良するように構成されることができる。従って、実行モジュール215と作業分解モジュール216を相互運用して、分散アプリケーション207をデプロイするために十分な情報をドライバマネージャ230内に存在するドライバに提供する、詳細なアプリケーションモデル253Dを出力することができる。
さらに、実行モジュール215を、コンピュータ・システムの割当てに関して、欠損したデータを埋めるように構成することができる。例えば、実行モジュール215は、宣言的モデル253内において、特定のコンピュータ・システムのアドレスに関する要件または動作要件を有しない、複数の異なるモジュールを識別する可能性がある。従って、実行モジュール215は、利用可能なコンピュータ・システムに分散アプリケーション・プログラム・モジュールを割り当てることができる。実行モジュール215は、改良された宣言的アプリケーションモデル253内のデータを埋めるための最良の方法を判断することができる。例えば、前述のように、実行コンポーネント215は、ウェブ・サービスに対してどの伝送路を使用すべきかを、接続の近接性に基づいて判断し決定することができ、あるいは分散アプリケーション・プログラム・モジュールを、どのように割り当てるかを、予想される需要の増加に対処するのに適した要因に基づいて判断し決定することができる。実行モジュール215は次いで、欠損したデータを詳細なアプリケーションモデル253D(または、そのセグメント)に記録することができる。詳細なアプリケーションモデルをリポジトリ220に保存してもよい。
追加または代替的な実施形態では、実行モジュール215を、宣言的アプリケーションモデル253内の依存データを計算するように構成することができる。例えば、実行モジュール215は、マシンに対する分散アプリケーション・プログラム・モジュールの割当てに基づいて依存データを計算することができる。従って、実行モジュール215は、エンドポイントにおけるURIアドレスを計算し、対応するURIアドレスをプロバイダのエンドポイントからコンシューマのエンドポイントへ伝達することができる。さらに、実行モジュール215は、宣言的アプリケーションモデル253における制約を評価することができる。例えば、実行コンポーネント215を、2つの分散アプリケーション・プログラム・モジュールを実際に同じマシンに割り当てることができるかどうかを確かめるように構成することができ、割り当てることができない場合には、実行モジュール215は、この要件に合うように詳細なアプリケーションモデル253Dを改良することができる。
(詳細なアプリケーションモデル253Dを作成するために)全ての適切なデータを宣言的アプリケーションモデル253に追加(あるいは修正/改良)した後、実行コンポーネント215は、ドライバマネージャ230内に存在するプラットフォーム固有のドライバによって変換できるように、改良された詳細なアプリケーションモデル253Dを完成させることができる。詳細なアプリケーションモデル253Dを完成または完了させるために、実行モジュール215は、例えば、宣言的アプリケーションモデルを、任意の1つまたは複数のプラットフォーム固有のドライバを対象とすること可能なセグメントに分割することができる。従って、実行モジュール215は、各宣言的アプリケーションモデル(または、そのセグメント)を、その対象のドライバでタグ付けすることができる(例えば、ドライバマネージャ230内に存在するプラットフォーム固有のドライバのアドレス/ID)。さらに、実行モジュール215は、詳細なアプリケーションモデル(例えば、253D)が実際に、ドライバマネージャ230内に存在するドライバによって変換可能であることを検証することができ、そして変換可能である場合には、詳細なアプリケーションモデル(または、そのセグメント)を変換用に適切なドライバに送るためにドライバマネージャ230に渡すことができる。
いずれにしても、ドライバマネージャ230は、1つまたは複数のドライバおよびトランスレータと相互運用して、詳細なアプリケーション・モジュール253Dを1つまたは複数の(例えば、プラットフォーム固有の)アクション233に変換する。図2Aに示されるように、アクション233を使用して、分散アプリケーション207に対するモデルコマンド226で表されるアクションの目的を実現することができる。
デプロイの間に、分散アプリケーション・プログラムは、実行に関する動作情報を提供することができる。例えば、実行中に、分散アプリケーション207は、分散アプリケーション207で発生したイベント(例えば、実行または性能の問題)を示すイベントストリーム237を発信することができる。一実装形態では分散アプリケーション207は、イベントストリーム237を連続的、継続的に送出し、他の実装形態では分散アプリケーション207は、イベントストリーム237をスケジュールに基づいて(例えば、ドライバマネージャ230内に存在するプラットフォーム固有のドライバによって設定されたスケジュールに基づいて)送信する。ドライバマネージャ230は、分析、調整、および/または他の適切な修正のために、イベントストリーム237を順に分析モジュール210に渡す。イベントストリーム237で発信されたイベントは、宣言的アプリケーションモデル253で定義される。
一般に、分析モジュール210は、分散アプリケーション207の興味深い傾向および振舞いを識別するために、宣言的アプリケーションモデル253とともにリポジトリ220に格納された宣言的観察モデル(例えば、観察モデル276)に基づいて、イベントストリーム237からのデータを集約し、相互に関連付け、またはフィルタリングする。分析モジュール210は必要に応じて、宣言的アプリケーションモデル253の目的を、識別された傾向に基づいて自動的に調整することができる。例えば、分析モジュール210は、モデル修正238をリポジトリ220に送信して宣言的モデル253の目的を調整することができる。調整された目的により、例えば、コンピュータ・システムのシステム・メモリが少なくなってきている場合には、コンピュータ・システムで毎秒処理されるメッセージの数を低減し、現在割り当てられているマシンが頻繁にリブートしすぎるような場合には分散アプリケーション207を別のマシンに再デプロイすることができる。
図2Bは、ドライバマネージャ230に含まれるコンポーネントのより詳細な図を図示している。図2Bに示されように、ドライバマネージャ230は、タイプロケータ241、ドライバ342、およびトランスレータ261を含む。
タイプロケータ241は、モデルおよびモデル要素を、そのモデルおよびモデル要素を処理できる対応するドライバおよびトランスレータにマップするルックアップ機構である。
ドライバ242は、モデルおよびコマンドを受信して処理するように構成される。ドライバ242は、それが理解するコマンドのリスト、およびサポートする1組の技術モデルを用いて使用するように構成される。例えば、ドライバ242は、本出願人であるMicrosoft(登録商標)社のWCF(Windows Communication Foundation)を使用して実装されMicrosoft(登録商標)社のIIS(Internet Information Server)上でホストされるべきウェブ・サービスを記述する、ウェブ・サービス・モジュール・モデルを変換することが可能なWCF−IISドライバとすることができる。
図示されるように、ドライバ242は、実行プラン244を生成するモデルインタプリタ243を含む。モデルインタプリタ243は、受信したモデルを解析して、対応する実行プラン(例えば、実行プラン244)を生成するように構成される。受信したモデルから実行プランを生成するために、モデルインタプリタ243は、モデルを構成するモデル要素、および該モデル要素間の関係を識別することができる。モデルインタプリタ243は次いで、対応するモデル要素インタプリタを呼び出して、モデル要素ごとにアクションのシーケンスを取り出すことができる。モデルインタプリタ243は、実行プランに含めるために、モデル要素ごとのアクションのシーケンスを結合して単一のアクションのシーケンスにする。
従って、例えば、実行プラン244は、モデルにおいて動作を実施するのに実行することができるシーケンス化されたアクションのセットである。実行プラン244は、アクションの実行中に該アクションによって使用可能なモデル情報を含む、実行コンテキスト(execution context)を提供する。このコンテキストはまた、実行中に他のアクションが必要とする情報を渡すために、上記アクションによって使用される。
トランスレータ261は、関連するアクションのセットとモデル要素インタプリタとのパッケージである。トランスレータ261は、特定の技術に対する親和性(affinity)を有する手続き(procedure)を束ねる。例えば、OSConfigトランスレータは、ファイルやフォルダなどのオペレーティングシステムのアーチファクトを処理できるアクションのセットを有するであろう。これらのアクションは、作成、コピー、移動、削除などとすることができる。
図示されるように、トランスレータ261は、モデル要素インタプリタ262、ならびにアクション263A、263B、および263Cを含む。モデル要素インタプリタ262は、モデル要素を解析するように構成され、モデル要素によって表される全てのものにおいて動作するのに実行できるアクションのシーケンスを編成する。
アクション263A、263B、および263Cは、単一のモデル要素に基づいて動作する実行可能な手続きを表す。例えば、CopyFileアクションは、所与のファイルを、所与の宛先にコピーすることができ、上記ファイルが、ウェブ・サービスなどのアプリケーションモデルを記述するモデル内のリソース・モデル要素によって記述される。
アクションは様々な異なるプロパティを含むことができる。例えば、アクションを冪等(Idempotent)とすることができる。すなわち、同じモデル要素において成功裏に再度実行された同一のアクションは、同一の結果をもたらすこととなる。アクションは、固有の識別子を有することができる。2つのアクションが同じことを行う場合は、その2つのアクションは同じ識別子を有することができる。例えば、ファイルをインストールするという2つのアクションは、ファイルが同じ絶対パスを有するときは同じ識別子を有することができる。
アクションに、対応する逆アクション(reverse action)を関連付けることができる。逆アクションは、アクションの効果を元に戻す(undo)ことができる。例えば、CopyFileの逆は、ファイルを削除するか、上書きされた元のファイルを復元する手続きであるはずである。アクションに、新しいバージョンのリソースを既存のリソースの上に適用する、対応する更新アクションを関連付けることができる。
従って、図2Bに示されるコンポーネントとデータを相互運用して、受信したモデルおよびコマンドで表された目的を実現することができる。
図3は、宣言的アプリケーションモデルを変換するための例示的なコンピュータ・アーキテクチャ300をさらに拡大した図を示す。図示されるように、コンピュータ・アーキテクチャ300はドライバマネージャ330を含む。ドライバマネージャ330は、コンピュータ・アーキテクチャ200内に示されるドライバマネージャ230と同様に(または同一に)構成することができる。ドライバマネージャ330は、ドライバおよびトランスレータをホストし、入力を受信する。例えば、ドライバマネージャ300は、例えばwcf−IISドライバ342およびAspx−IISドライバ352などの複数のドライバをホストする。
各ドライバは、モデルを解析し実行プランを生成するように構成された、モデルインタプリタ(例えば、それぞれモデルインタプリタ343および353)を含むことができる。従って、モデルを受信すると、各ドライバは、構成リソースおよび構成リソース間の関係を識別し、適切なリソースインタプリタを呼び出してアクションのシーケンスを取り出し、アクションのシーケンスを実行プランに編成することができる。
ドライバマネージャ300は、例えばオペレーティングシステム技術トランスレータ361、IIS技術トランスレータ371、およびWCF技術トランスレータ381などの複数のトランスレータもホストする。各トランスレータは、リソースを記述するモデル要素を解析し、およびリソースが表すものに対して実行できるアクションのシーケンスを編成するための、リソースインタプリタ(例えば、それぞれリソースインタプリタ362、372、および382)を含むことができる。各トランスレータは環境の一部に対応することができる。例えば、オペレーティングシステム技術トランスレータ361はオペレーティングシステム391に対応し、IIS技術トランスレータ371はIIS392に対応し、WCF技術トランスレータ381はWCF393に対応する。
従って、トランスレータがリソースを記述するモデル要素を受信すると、そのリソースは、環境の対応する部分内の何らかのオブジェクトを表している。例えば、オペレーティングシステム技術トランスレータ361がリソースを受信すると、そのリソースはオペレーティングシステム391内のオブジェクト(例えば、service.svcファイル)に対応する。同様に、IIS技術トランスレータ371がリソースを受信すると、そのリソースはIIS392内のオブジェクト(例えば、ユーザのウェブ・サービスの位置、「/myservice」)に対応する。同様に、WCF技術トランスレータ381の場合、リソースはWCF393内のオブジェクト(例えば、Web.config)に対応する。
一般に、ディスパッチャ371は、モデルとコマンドを受信し、そのモデルおよびコマンドを適切なドライバに送るように構成される。従って、モデルとコマンドを受信すると、ディスパッチャ371は、該モデルをタイプロケータ341に転送することができる。タイプロケータ341は、該モデルを受信し、該モデルに基づいて、該モデルを処理するのに適切なタイプのドライバを見つけることができる。タイプロケータ341は、該適切なタイプのドライバを識別するドライバIDを、ディスパッチャ371に返すことができる。ディスパッチャ371は次いで、上記ドライバIDを使用して、モデルおよびコマンドを上記識別された適切なドライバに送ることができる。
ドライバはまた、タイプロケータ341を利用して、モデル内に含まれるリソースを記述するモデル要素に対して適切なトランスレータを見つけることもできる。モデル内のリソースを記述するモデル要素ごとに、ドライバは、リソースを記述するモデル要素をタイプロケータ341に提示することができる。タイプロケータ341は、リソースを記述するモデル要素を受信し、該リソースを記述するモデル要素に基づいて、該リソースを記述するモデル要素を変換するのに適切なタイプのトランスレータを見つけることができる。タイプロケータ341は、該適切なタイプのトランスレータを識別するトランスレータIDをドライバに返すことができる。ドライバは次いで、そのトランスレータIDを使用して、リソースを記述するモデル要素を上記識別された適切なトランスレータに送ることができる。
適切なトランスレータは、リソースを記述する受信したモデル要素を解析して、受信したコマンドに対するアクションのシーケンスを編成し、該アクションのシーケンスをドライバに返す。ドライバは次いで、アクションの異なるシーケンスから、単一の実行プランを編成する。次いで、ドライバはその実行プランを実行する。実行プラン内のアクションは、順番に実行され、モデル353とびコマンド329で一体的に表された目的を実現するように環境(例えば、オペレーティングシステム391、IIS391、およびWCF392のうち1つまたは複数)において直接動作する。
図4は、モデルを変換して受信したコマンドを実装するための例示的な方法400のフローチャートを図示している。方法400を、コンピュータ・アーキテクチャ300内のコンポーネントおよびデータと関連して説明する。
方法400は、宣言的モデルをコマンドとともに受信する動作を含み、該宣言的モデルとコマンドは一体的に、受信した宣言的モデルに基づいてアプリケーションに対するコマンドを実装するという目的を示す(動作401)。例えば、ディスパッチャ371は、モデル353およびコマンド329を受信することができる。モデル353は、アプリケーションをどのように構成し実行するかを宣言する、複数の相互に関連するモデル要素を含むことができる。コマンド329は、アプリケーションのデプロイ、アンデプロイ、開始、停止などを行うためのコマンドとすることができる。
方法400は、受信した宣言的モデルで示された技術の組合せに対応する宣言的モデルを処理するように構成されたドライバを識別する動作(動作402)を含む。例えば、ディスパッチャ371は、モデル353をタイプロケータ341に送信することができる。タイプロケータ341は、モデル353を受信することができる。タイプロケータ341は、モデル353を処理して、モデル353の処理に適したドライバのタイプを判断することができる。
ドライバのタイプの判断は、モデル353のモデル要素において示される、および/またはモデル353のモデル要素に関連する、技術の組合せ(例えば、オペレーティングシステム、ネットワーク・プロトコル、データ型などの組合せ)に基づいて行うことができる。例えば、タイプロケータ341は、IIS392およびWCF393に関連するモデル353に含まれるモデル要素に基づいて、Wcf−IISドライバ342がモデル353を処理するのに適したドライバであると判断することができる。その判断に応答して、タイプロケータ341は、ドライバID384(ドライバ342の識別子)をディスパッチャ371に送信することができる。
方法400は、受信した宣言的モデルおよびコマンドを識別されたドライバに転送する動作(動作403)を含む。例えば、ディスパッチャ371は、ドライバID384を利用して、モデル353およびコマンド329をWcf−IISドライバ342に転送することができる。
方法400は、識別されたドライバが受信した宣言的モデルを解析して、モデル要素およびモデル要素間の関係を識別する動作(動作404)を含む。モデルインタプリタ343はモデル353を解析して、モデル353内のモデル要素、およびモデル要素の相互関係を識別することができる。例えば、モデルインタプリタ343は、モデル要素354A、354B、354Cなどを識別することができる。
方法400は、識別されたモデル要素ごとに、識別されたモデル要素に対応する特定の技術のためにモデル要素を変換するように構成されたトランスレータを識別する動作(動作405)を含む。例えば、Wcf−IISドライバ342は、例えばモデル要素354Aなどの識別されたモデル要素を、タイプロケータ341に送信することができる。タイプロケータ341はモデル要素354Aを受信することができる。タイプロケータはモデル要素354Aを処理して、モデル要素354Aの変換に適したトランスレータのタイプを判断することができる。
トランスレータのタイプの判断は、モデル要素354において示される、および/またはモデル要素354に関連する、特定の技術(例えば、オペレーティングシステム、ネットワーク・プロトコル、データ型、等のうち1つ)に基づいて行うことができる。例えば、タイプロケータ341は、オペレーティングシステム391を示すかオペレーティングシステム391に関連するモデル要素354Aに基づいて、オペレーティングシステム技術トランスレータ361がモデル要素354Aを変換するのに適したドライバであると判断することができる。その判断に応答して、タイプロケータ341は、トランスレータID(トランスレータ361の識別子)をWcf−IISドライバ342に送信することができる。モデル353に含まれるモデル要素354B、354Cなどについても同様な判断を行うことができる。
方法400は、識別されたモデル要素ごとに、モデル要素をトランスレータに送信する動作(動作406)を含む。例えば、Wcf−IISドライバ342は、トランスレータID355を利用して、モデル要素354Aをオペレーティングシステム技術トランスレータ361に転送することができる。リソースインタプリタ362は、モデル要素354Aをアクションシーケンス363に変換することができる。アクションシーケンス363は、例えばアクション363A、363Bなど、コマンド329の目的の一部を実装するためにオペレーティングシステム391内で実行されるべき複数のアクションを含む。
同様に、Wcf−IISドライバ342は、適切なトランスレータIDを利用して、モデル要素354BをIIS技術トランスレータ371に転送することができる。リソースインタプリタ372は、モデル要素354Bをアクションシーケンス373に変換することができる。アクションシーケンス373は、例えばアクション373A、373Bなど、コマンド329の目的の別の一部を実装するためにIIS392内で実行されるべき複数のアクションを含む。
同じように、Wcf−IISドライバ342は、適切なトランスレータIDを利用して、モデル要素354CをWCF技術トランスレータ381に転送することができる。リソースインタプリタ382は、モデル要素354Cをアクションシーケンス383に変換することができる。アクションシーケンス383は、例えばアクション383A、383Bなど、コマンド329の目的のさらに別の一部を実装するためにWCF393内で実行されるべき複数のアクションを含む。
さらなるモデル要素を、特定の技術を示すモデル要素および/または特定の技術に関連しているモデル要素に基づいて、オペレーティングシステム技術トランスレータ361、IIS技術トランスレータ371、WCF技術トランスレータ381、ならびに他の適切な技術トランスレータ(図示せず)のいずれかに送信することもできる。
方法400は、識別されたモデル要素ごとに、アプリケーションに対するコマンドを部分的に実装するために特定の技術において実行されるべきアクションのシーケンスを受信する動作(動作407)を含み、該アクションのシーケンスは、コマンドを完全に実装するために実行されるべきアクション全体のサブセットである。例えば、モデルインタプリタ343は、アクションシーケンス363をオペレーティングシステム技術トランスレータ361から受信し、アクションシーケンス373をIIS技術トランスレータ371から受信し、アクションシーケンス383をWCF技術トランスレータ381から受信することができる。各アクションシーケンスは、モデル353に基づいてアプリケーションに対するコマンド329を完全に実装するために実行されるべきアクション全体のサブセットである。
方法400は、識別されたモデル要素ごとに、モデル要素について受信したアクションのシーケンスを、実行プランに編成する動作(動作408)を含み、該受信したアクションのシーケンスは、他のモデル要素について受信したアクションのシーケンスに対する指定の順序で、実行プランに編成される。この指定の順序は、受信した宣言的モデルにおけるそのモデル要素の他のモデル要素に対する関係に基づく。例えば、モデルインタプリタ343は、アクションシーケンス363、373、383などを実行プラン344に編成することができる。アクションシーケンス363、373、383などは、モデル353内の対応するモデル要素間の関係に基づいた指定の順序で編成される。
方法400は、実行プランを実行して、アプリケーションに対するコマンドを実装する動作(動作409)を含み、実行プランの実行は、各モデル要素について受信したアクションのシーケンスを指定の順序で実行することを含む。例えば、Wcf−IISドライバ342は、実行プラン344を実行して、(モデル353に基づいて)オペレーティングシステム391、IIS392、およびWCF393などの一部分を使用すべきアプリケーションに対するコマンド329を実装することができる。
図5は、宣言的アプリケーションモデルを変換してアプリケーションを更新するためのコンピュータ・アーキテクチャ500の例を図示している。図示されるように、コンピュータ・アーキテクチャ500は、ドライバ501、トランスレータ502、および比較更新モジュール507を含む。コンピュータ・アーキテクチャ500内では前述したように、ドライバ501は、モデル(例えば、現在のバージョンのモデル502C、および以前のバージョンのモデル502P)、およびコマンド(例えば、更新コマンド503)を受信し、モデル要素(例えば、モデル要素504)を解析により取り出し、そのモデル要素をトランスレータ502内の適切なトランスレータに送信し、そしてアクションシーケンス(例えば、アクションシーケンス506)を適切なトランスレータから受信することができる。ドライバ501はアクションシーケンスから、例えば現在の実行プラン511および以前の実行プラン512などの実行プランを作成することができる。
比較更新モジュール507は、アプリケーションに対する現在の実行プランと以前の実行プランを受け取り、その2つの実行プランを比較してその2つの実行プラン内のアクションシーケンスの相違を識別するように構成される。識別された相違から、比較更新モジュール507は、現在の実行プラン内のアクションを以前の実行プラン内のアクションに適用して、新たな実行プランを導出することができる。新たな実行プランは、既存のアプリケーションを更新するための更新アクションを含むことができる。
図6は、アプリケーションを更新するための更新アクション600の例を示す。行601は、アクションが現在のバージョンの実行プランと以前のバージョンの実行プランの両方に含まれるときに、以前のバージョンのアクションの実行結果を更新して現在のバージョンのアクションの結果にする更新アクションが、新たな実行プランに含まれることを示している。行602は、アクションが現在のバージョンの実行プランにのみ含まれるとき、現在のバージョンのアクションが新たな実行プランに追加されることを示している。行603は、アクションが以前のバージョンの実行プランにのみ含まれるとき、以前のバージョンのアクションの実行結果を除去する逆アクションが、新たな実行プランに含まれることを示している。
図7は、モデルを変換して更新コマンドを実装するための例示的な方法700のフローチャートを図示している。方法700を、コンピュータ・アーキテクチャ500内のコンポーネントおよびデータならびに更新アクション600に関連して説明する。
方法700は、宣言的モデルを更新コマンドとともに受信する動作を含み、該宣言的モデルおよび更新コマンドは一体的に、受信した以前のバージョンの宣言的モデルに基づいてアプリケーションを更新するという目的を示す(動作701)。例えば、ドライバ501は、現在のバージョンのモデル502Cと更新コマンド503を受信することができる。現在のバージョンのモデル502Cと更新コマンド503は一体的に、アプリケーション522の更新という目的を表す。
方法700は、受信した宣言的モデルに対する現在の実行プランを編成する動作を含み、該現在の実行プランは、受信した宣言的モデルにおけるモデル要素間の関係に基づいた指定の順序で編成されるアクションのシーケンスを含む(動作702)。例えば、ドライバ501は、現在のバージョンのモデル502Cからのモデル要素を解析し、(例えば、モデル要素504に含まれる)モデル要素をトランスレータ502内の適切なトランスレータに送信することができる。その適切なトランスレータは、(例えば、アクションシーケンス506に含まれる)アクションシーケンスを返すことができる。そのアクションシーケンスから、ドライバ501は現在の実行プラン511を編成することができる。
方法700は、受信した以前のバージョンの宣言的モデルにアクセスする動作(動作703)を含む。例えば、ドライバ501は以前のバージョンのモデル502Pにアクセスすることができる。アプリケーション522は以前のバージョンのモデル502Pに基づいている。
方法700は、受信した以前のバージョンの宣言的モデルに対する以前の実行プランを編成する動作を含み、該以前の実行プランは、受信した以前のバージョンの宣言的モデルにおけるモデル要素間の関係に基づいた指定の順序で編成された以前のアクションのシーケンスを含む(動作704)。例えば、ドライバ501は、以前のバージョンのモデル502Pからのモデル要素を解析し、(例えば、モデル要素504に含まれる)モデル要素を適切なトランスレータ502に送信することができる。その適切なトランスレータは、(例えば、アクションシーケンス506に含まれる)アクションシーケンスを返すことができる。そのアクションシーケンスから、ドライバ501は以前の実行プラン512を編成することができる。
方法700は、現在の実行プランを以前の実行プランと比較する動作(動作705)を含む。例えば、比較更新モジュール507は、現在の実行プラン511を以前の実行プラン512と比較することができる。その比較から比較更新モジュール507は、アクションが、現在の実行プラン511と以前の実行プラン512のいずれか1つまたはその両方に含まれるかどうかを判断することができる。
方法700は、比較結果に基づいて、アプリケーションを更新するための新たな実行プランを導出する動作(動作706)を含む。例えば、比較更新モジュール507は、現在の実行プラン511を以前の実行プラン512と比較した結果に基づいて、更新されたアプリケーション522に対する新たな実行プラン513を導出することができる。
新たな実行プランの導出は、更新アクション、現在のアクション、または逆のアクションを新たな実行プランに挿入することを含むことができる。例えば、現在の実行プランと以前の実行プランの両方に含まれる各アクションについて、更新アクションが新たな実行プランに含まれる(動作707)。現在の実行プランのみに含まれる各アクションについて、現在の実行プランからのアクションが新たな実行プランに含まれる(動作708)。以前の実行プランのみに含まれる各アクションについて、以前の実行プラン内のアクションを取り消すための逆アクションが新たな実行プランに含まれる(動作709)。逆アクションは、コンピューティング環境521における以前の実行プランからのアクションの影響を排除することである。
方法700は、新たな実行プランを実行して、コンピューティング環境内のアプリケーションを更新する動作(動作710)を含む。例えば、ドライバ501は新たな実行プラン513を実行することができる。新たな実行プラン513の実行により、コンピューティング環境521内へ発されるアクション531を引き起こすことができる。アクション531をコンピューティング環境において実装して、アプリケーション522をアプリケーション522Uに更新することができる。
本発明の実施形態は拡張可能でもある。ドライバは、機能をディスパッチャに公開するようにタイプロケータ(例えば、341)に登録することができる。同様に、トランスレータは、機能をドライバに公開するようにタイプロケータに登録することができる。ドライバは既存のトランスレータを再利用することができる。例えば、図3を参照すると、Aspx−IISドライバ352は、オペレーティングシステム技術トランスレータ361およびIIS技術トランスレータ371を(Aspxトランスレータ(図示せず)とともに)使用して、モデル要素を処理することができる。
諸実施形態では、ドライバ、モデルインタプリタ、モデル要素インタプリタ、およびアクションに対するベースクラスおよび汎用の実装を提供することができる。従って、実行プランを生成および実行し、タイプを見つけ、更新プランを生成するためのインフラストラクチャは全て、共通フレームワークによって提供される。したがって、開発者は新しいモデルを作成することに集中することができ、トランスレータはモデル要素をアクションへと処理することに集中することができる。任意選択的に、関係がモデル内で表現されていない場合に対処するために、ベースクラスを拡張してモデルおよびモデル要素インタプリタを作成することができ、従って潜在的に、基本実装がアクションシーケンスを推論することを防ぐことができる。
従って、本発明の実施形態は、例えばアプリケーションの開発、アプリケーションの更新、開始や停止などのアプリケーションの制御、アプリケーションにイベントを発するように指示することによるアプリケーションのモニタリングなど、アプリケーションに対する様々なアクションを実行するための宣言的モデルの処理を容易にする。アプリケーションの宣言的モデルは、該アプリケーションの宣言的モデルが実行され、制御され、モニタリングされた後に、対象の環境に向けて処理され実現される。
本発明は、その精神または本質的特徴から逸脱することなく他の特定の形式で具現化してもよい。説明された実施形態は、全ての点で例示にすぎず限定ではないと解されるべきである。本発明の範囲は従って、上記説明ではなく添付の特許請求の範囲によって示される。特許請求の範囲の等価の意味および範囲にある全ての変更が、特許請求の範囲に含まれるべきである。

Claims (20)

  1. 複数の異なる技術を含むコンピューティング環境内のコンピュータ・システムにおいて、前記コンピューティング環境内でモデルを変換して、受信したコマンドを実装するための方法であって、前記コンピュータ・システムは、異なる技術の特定の組合せに対するモデルを処理するように各々構成された、1つまたは複数のドライバを含み、前記コンピュータ・システムは、前記複数の異なる技術のうち特定の技術におけるオブジェクトを表すモデル要素を処理するように各々構成された、1つまたは複数のトランスレータを含み、前記方法は、
    宣言的モデルをコマンドとともに受信する動作であって、前記宣言的モデルおよび前記コマンドは一体的に、該受信した宣言的モデルに基づいてアプリケーションに対する前記コマンドを実装するように指示する、動作と、
    前記受信した宣言的モデルで示された技術の組合せに対応する宣言的モデルを処理するように構成されたドライバを識別する動作と、
    前記受信した宣言的モデルおよび前記コマンドを前記識別されたドライバに転送する動作と、
    前記識別されたドライバが前記受信した宣言的モデルを解析して、モデル要素および前記モデル要素間の関係を識別する動作と、
    前記識別されたモデル要素ごとに、
    前記識別されたモデル要素に対応する特定の技術用にモデル要素を変換するように構成されたたトランスレータを識別する動作と、
    前記モデル要素を前記識別されたトランスレータに送信する動作と、
    前記アプリケーションに対する前記コマンドを部分的に実装するのに前記特定の技術において実行されるべきアクションのシーケンスを受信する動作であって、該アクションのシーケンスは、前記コマンドを完全に実装するのに実行されるべきアクション全体のサブセットである、動作と、
    前記モデル要素のために前記受信したアクションのシーケンスを実行プランに編成する動作であって、前記受信したアクションのシーケンスは、前記受信した宣言的モデルにおける前記モデル要素の他のモデル要素に対する関係に基づい、他のモデル要素について受信したアクションのシーケンスに関して指定された順序で、前記実行プランに編成される動作と、
    前記実行プランを実行して前記アプリケーション対する前記コマンドを実装する動作であって、前記実行プランの実行は、モデル要素ごとに受信した前記アクションのシーケンスを前記指定された順序で実行することを含む動作と
    を含むことを特徴とする方法。
  2. 宣言的モデルをコマンドとともに受信する動作は、前記宣言的モデルに基づいてアプリケーションをデプロイするためのコマンドを受信する動作を含むことを特徴とする請求項1に記載の方法。
  3. 宣言的モデルをコマンドとともに受信する動作は、前記宣言的モデルに基づいてアプリケーションをアンデプロイするためのコマンドを受信する動作を含むことを特徴とする請求項1に記載の方法。
  4. 宣言的モデルをコマンドとともに受信する動作は、前記宣言的モデルに基づいてアプリケーションを開始するためのコマンドを受信する動作を含むことを特徴とする請求項1に記載の方法。
  5. 宣言的モデルをコマンドとともに受信する動作は、前記宣言的モデルに基づいてアプリケーションを停止するためのコマンドを受信する動作を含むことを特徴とする請求項1に記載の方法。
  6. 宣言的モデルをコマンドとともに受信する動作は、前記宣言的モデルに基づいてアプリケーションのモニタリングを開始または終了するためのコマンドを受信する動作を含むことを特徴とする請求項1に記載の方法。
  7. 宣言的モデルをコマンドとともに受信する動作は、前記宣言的モデルに基づいてアプリケーションを更新するためのコマンドを受信する動作を含むことを特徴とする請求項1に記載の方法。
  8. 前記特定の技術において実行されるべきアクションのシーケンスを受信する動作は、冪等なアクションのシーケンスを受信する動作を含むことを特徴とする請求項1に記載の方法。
  9. 複数の異なる技術を含むコンピューティング環境内のコンピュータ・システムに、前記コンピューティング環境内でモデルを変換して受信したコマンドを実装するための方法を実行させるためのコンピュータ・プログラムであって、前記コンピュータ・システムは、異なる技術の特定の組合せに対するモデルを処理するように各々構成された1つまたは複数のドライバを含み、前記コンピュータ・システムは、前記複数の異なる技術のうち特定の技術におけるオブジェクトを表すモデル要素を処理するように各々構成された1つまたは複数のトランスレータを含み、前記方法は、
    宣言的モデルをコマンドとともに受信する動作であって、前記宣言的モデルおよび前記コマンドは一体的に、該受信した宣言的モデルに基づいてアプリケーションに対する前記コマンドを実装するように指示する、動作と、
    前記受信した宣言的モデルで示された技術の組合せに対応する宣言的モデルを処理するように構成されたドライバを識別する動作と、
    前記受信した宣言的モデルおよび前記コマンドを前記識別されたドライバに転送する動作と、
    前記受信した宣言的モデルを解析して、モデル要素と前記モデル要素間の関係とを識別する動作と、
    前記識別されたモデル要素ごとに、
    前記識別されたモデル要素に対応する特定の技術用にモデル要素を変換するように構成されたトランスレータを識別する動作と、
    前記モデル要素を前記トランスレータに送信する動作と、
    前記アプリケーションに対する前記コマンドを部分的に実装するのに前記特定の技術において実行されるべきアクションのシーケンスを受信する動作であって、前記アクションのシーケンスは、前記コマンドを完全に実装するのに実行されるべきアクション全体のサブセットである動作と、
    前記モデル要素のために前記受信したアクションのシーケンスを実行プランに編成する動作であって、前記受信したアクションのシーケンスは、前記受信した宣言的モデルにおける前記モデル要素の他のモデル要素に対する関係に基づい、前記他のモデル要素について受信したアクションのシーケンスに関して指定された順序で、前記実行プランに編成される動作と、
    前記実行プランを実行して前記アプリケーションに対する前記コマンドを実装する動作であって、前記実行プランの実行は、前記モデル要素ごとに受信した前記アクションのシーケンスを前記指定された順序で実行することを含む動作と
    を含むことを特徴とするコンピュータ・プログラム。
  10. 言的モデルをコマンドとともに受信する動作は記宣言的モデルに基づいてアプリケーションをデプロイするためのコマンドを受信する動作を含むことを特徴とする請求項9に記載のコンピュータ・プログラム。
  11. 言的モデルをコマンドとともに受信する動作は記宣言的モデルに基づいてアプリケーションをアンデプロイするためのコマンドを受信する動作含むことを特徴とする請求項9に記載のコンピュータ・プログラム。
  12. 宣言的モデルをコマンドとともに受信する動作は記宣言的モデルに基づいてアプリケーションを開始するためのコマンドを受信する動作を含むことを特徴とする請求項9に記載のコンピュータ・プログラム。
  13. 言的モデルをコマンドとともに受信する動作は記宣言的モデルに基づいてアプリケーションを停止するためのコマンドを受信する動作を含むことを特徴とする請求項9に記載のコンピュータ・プログラム。
  14. 言的モデルをコマンドとともに受信する動作は記宣言的モデルに基づいてアプリケーションのモニタリングを開始または終了するためのコマンドを受信する動作を含むことを特徴とする請求項9に記載のコンピュータ・プログラム。
  15. 言的モデルをコマンドとともに受信する動作は記宣言的モデルに基づいてアプリケーションを更新するためのコマンドを受信する動作を含むことを特徴とする請求項9に記載のコンピュータ・プログラム。
  16. 言的モデルをコマンドとともに受信する動作は等なアクションのシーケンスを受信する動作を含むことを特徴とする請求項9に記載のコンピュータ・プログラム。
  17. 複数の異なる技術を含むコンピューティング環境内のコンピュータ・システムにおいて、前記コンピューティング環境内のモデル・ベースのアプリケーションを更新するための方法であって、前記コンピュータ・システムは、異なる技術の特定の組合せのためにモデルを処理するように各々が構成された1つまたは複数のドライバを含み、前記コンピュータ・システムは、前記複数の異なる技術のうち特定の技術におけるオブジェクトを表すモデル要素を処理するように各々が構成された1つまたは複数のトランスレータを含み、前記方法は、
    宣言的モデルを更新コマンドとともに受信する動作であって、前記宣言的モデルおよび前記更新コマンドは一体的に、前記受信した宣言的モデルの以前のバージョンとの比較に基づいてアプリケーションを更新するように指示する、動作と、
    前記受信した宣言的モデルに対する現在の実行プランを編成する動作であって、前記現在の実行プランは、前記受信した宣言的モデルにおけるモデル要素間の関係に基づい指定の順序で編成されたアクションのシーケンスを含む動作と、
    前記受信した宣言的モデルの以前のバージョンにアクセスする動作と、
    前記受信した宣言的モデルの以前のバージョンに対する以前の実行プランを編成する動作であって、前記以前の実行プランは、前記受信した宣言的モデルの以前のバージョンにおけるモデル要素間の関係に基づい指定の順序で編成された以前のアクションのシーケンスを含む動作と、
    前記現在の実行プランを前記以前の実行プランと比較する動作と、
    前記比較結果に基づいて、前記アプリケーションを更新するための新たな実行プランを導出する動作と、
    前記新たな実行プランを実行して、前記コンピューティング環境内の前記アプリケーションを更新する動作と
    を含むことを特徴とする方法。
  18. 前記比較結果に基づいて前記アプリケーションを更新するための新たな実行プランを導出する動作は、前記現在の実行プランと前記以前の実行プランの両方に含まれる少なくとも1つのアクションに対する更新アクションを前記新たな実行プランに含める動作を含み、前記更新アクションは、前記現在の実行プランからのアクションに従って前記以前の実行プランからのアクションを更新することであることを特徴とする請求項17に記載の方法。
  19. 前記比較結果に基づいて前記アプリケーションを更新するための新たな実行プランを導出する動作は、前記現在の実行プランのみに含まれる少なくとも1つのアクションを前記新たな実行プランに含めることを含むことを特徴とする請求項17に記載の方法。
  20. 前記比較結果に基づいて前記アプリケーションを更新するための新たな実行プランを導出する動作は、前記以前の実行プランのみに含まれる少なくとも1つのアクションに対する逆アクションを前記現在の実行プランに含めることを含み、前記逆アクションは、前記コンピューティング環境内における前記少なくとも1つのアクションの影響を排除することを特徴とする請求項17に記載の方法。
JP2010531304A 2007-10-26 2008-10-26 宣言的モデルの変換 Active JP5346032B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/925,201 2007-10-26
US11/925,201 US8099720B2 (en) 2007-10-26 2007-10-26 Translating declarative models
PCT/US2008/081231 WO2009055751A1 (en) 2007-10-26 2008-10-26 Translating declarative models

Publications (2)

Publication Number Publication Date
JP2011502309A JP2011502309A (ja) 2011-01-20
JP5346032B2 true JP5346032B2 (ja) 2013-11-20

Family

ID=40580077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010531304A Active JP5346032B2 (ja) 2007-10-26 2008-10-26 宣言的モデルの変換

Country Status (5)

Country Link
US (2) US8099720B2 (ja)
EP (1) EP2218021A4 (ja)
JP (1) JP5346032B2 (ja)
CN (1) CN101836201B (ja)
WO (1) WO2009055751A1 (ja)

Families Citing this family (24)

* 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
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US20090112932A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8434056B2 (en) * 2009-06-17 2013-04-30 Phillip J. Windley Rule engine system controlling devices of disparate types and protocols
US8458676B2 (en) * 2009-06-30 2013-06-04 International Business Machines Corporation Executing platform-independent code on multi-core heterogeneous processors
US8321865B2 (en) * 2009-08-14 2012-11-27 International Business Machines Corporation Processing of streaming data with a keyed delay
US8868518B2 (en) * 2009-08-14 2014-10-21 International Business Machines Corporation Processing of streaming data with keyed aggregation
US10244017B2 (en) * 2009-08-14 2019-03-26 International Business Machines Corporation Processing of streaming data with a keyed join
US8473783B2 (en) * 2010-11-09 2013-06-25 International Business Machines Corporation Fault tolerance in distributed systems
US9098344B2 (en) 2011-12-27 2015-08-04 Microsoft Technology Licensing, Llc Cloud-edge topologies
GB2507338A (en) 2012-10-26 2014-04-30 Ibm Determining system topology graph changes in a distributed computing system
US9588740B1 (en) * 2013-03-09 2017-03-07 Ca, Inc. Systems, methods and computer program products for construction of cloud applications
US10075508B2 (en) * 2013-03-15 2018-09-11 Microsoft Technology Licensing, Llc Application-centric socialization
US9645809B2 (en) 2013-05-29 2017-05-09 Microsoft Technology Licensing, Llc Updating software components through online stores
US10417116B2 (en) * 2016-07-28 2019-09-17 International Business Machines Corporation System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay
US10917706B2 (en) 2016-12-15 2021-02-09 Microsoft Technology Licensing, Llc Configurable IoT device data collection
US11039225B2 (en) * 2016-12-15 2021-06-15 Microsoft Technology Licensing, Llc Declarative IoT data control
US10394699B1 (en) * 2017-09-11 2019-08-27 Cadence Design Systems, Inc. Method and system for reusing a refinement file in coverage grading
US10848379B2 (en) 2019-01-30 2020-11-24 Hewlett Packard Enterprise Development Lp Configuration options for cloud environments
US20230344714A1 (en) * 2022-04-22 2023-10-26 Microsoft Technology Licensing, Llc Global intent-based configuration to local intent targets

Family Cites Families (213)

* 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
US5327529A (en) 1990-09-24 1994-07-05 Geoworks Process of designing user's interfaces for application programs
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
US6225995B1 (en) * 1997-10-31 2001-05-01 Oracle Corporaton Method and apparatus for incorporating state information into a URL
US6710786B1 (en) * 1997-02-03 2004-03-23 Oracle International Corporation 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
US6247056B1 (en) * 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
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
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
US6477665B1 (en) 1999-08-31 2002-11-05 Accenture Llp System, method, and article of manufacture for environment services patterns in a netcentic environment
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US7415509B1 (en) 1999-10-01 2008-08-19 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
US6505342B1 (en) 2000-05-31 2003-01-07 Siemens Corporate Research, Inc. System and method for functional testing of distributed, component-based software
US7685239B2 (en) * 2000-06-28 2010-03-23 Canon Kabushiki Kaisha Image communication apparatus, image communication method, and memory medium
US8443035B2 (en) 2000-09-01 2013-05-14 OP40 Holding, Inc. System and method for collaboration using web browsers
WO2002019131A1 (en) 2000-09-01 2002-03-07 Op40, Inc. System and method for collaboration using web browsers
US6920458B1 (en) 2000-09-22 2005-07-19 Sas Institute Inc. Model repository
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
US20020133504A1 (en) 2000-10-27 2002-09-19 Harry Vlahos Integrating heterogeneous data and tools
US7814198B2 (en) 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
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
AU2002234258A1 (en) 2001-01-22 2002-07-30 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
EP1248170B1 (en) 2001-04-05 2009-09-16 INPECO IP Ltd. Method for the management of workcell systems based on an automation management system
US6934702B2 (en) 2001-05-04 2005-08-23 Sun Microsystems, Inc. Method and system of routing messages in a distributed search network
WO2002099635A1 (en) 2001-06-01 2002-12-12 The Johns Hopkins University System and method for an open autonomy kernel (oak)
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
CA2357087C (en) * 2001-09-06 2009-07-21 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
US7756723B2 (en) 2001-09-07 2010-07-13 Eclipsys Corporation System and method for managing patient bed assignments and bed occupancy in a health care facility
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
WO2003050674A1 (en) 2001-12-07 2003-06-19 Dbase, Inc. Drag-and-drop dynamic distributed object model
JP2006502465A (ja) 2002-01-11 2006-01-19 アカマイ テクノロジーズ インコーポレイテッド コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク
US7152229B2 (en) * 2002-01-18 2006-12-19 Symbol Technologies, Inc Workflow code generator
EP1476834A1 (en) 2002-02-07 2004-11-17 Thinkdynamics Inc. Method and system for managing resources in a data center
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
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
US7702739B1 (en) 2002-10-01 2010-04-20 Bao Tran Efficient transactional messaging between loosely coupled client and server over multiple intermittent networks with policy based routing
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
US7412658B2 (en) * 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
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
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7890543B2 (en) * 2003-03-06 2011-02-15 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
DE10331873B4 (de) 2003-07-14 2022-09-01 Robert Bosch Gmbh Verfahren zur Überwachung verteilter Software
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
US7503043B2 (en) * 2003-09-05 2009-03-10 International Business Machines Corporation Method of building dynamic installation packages using a declarative authoring tool
US8452881B2 (en) 2004-09-28 2013-05-28 Toufic Boubez System and method for bridging identities in a service oriented architecture
CA2443657A1 (en) 2003-09-30 2005-03-30 Cognos Incorporated Business performance presentation user interface and method for presenting business performance
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
CA2543746C (en) 2003-10-27 2018-01-16 Archivas, Inc. Policy-based management of a redundant array of independent nodes
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
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
US7747641B2 (en) 2004-07-09 2010-06-29 Microsoft Corporation Modeling sequence and time series data in predictive analytics
US7716253B2 (en) 2004-07-09 2010-05-11 Microsoft Corporation Centralized KPI framework systems and methods
US7467078B2 (en) 2004-07-16 2008-12-16 Agilent Technologies Inc. Portable distributed application framework
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
US7561673B2 (en) * 2004-09-30 2009-07-14 Microsoft Corporation Integration of speech services with telecommunications
US20060070066A1 (en) 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
US7631291B2 (en) 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
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
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
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
US7689455B2 (en) 2005-04-07 2010-03-30 Olista Ltd. Analyzing and detecting anomalies in data records using artificial intelligence
US20100262901A1 (en) 2005-04-14 2010-10-14 Disalvo Dean F Engineering process for a real-time user-defined data collection, analysis, and optimization tool (dot)
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 株式会社ソニー・コンピュータエンタテインメント コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US7752598B2 (en) * 2005-05-13 2010-07-06 International Business Machines Corporation Generating executable objects implementing methods for an information model
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
WO2006130684A2 (en) 2005-05-31 2006-12-07 Testquest, Inc. Systems and methods for automated testing
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 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US7487137B2 (en) * 2005-08-17 2009-02-03 International Business Machines Corporation Apparatus, system, and method for java bean delta generation
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
US20070239819A1 (en) 2005-10-07 2007-10-11 Neoedge Networks, Inc. Service and messaging infrastructure to support creation of distributed, peer to peer applications with a service oriented architecture
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
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
US20070234277A1 (en) 2006-01-24 2007-10-04 Hui Lei Method and apparatus for model-driven business performance management
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
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
US7735060B2 (en) * 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying sensor-enabled software applications
US8095923B2 (en) * 2006-06-29 2012-01-10 Augusta Systems, Inc. System and method for deploying and managing intelligent nodes in a distributed network
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
US8024396B2 (en) 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US7970892B2 (en) * 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8239505B2 (en) 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US7797289B2 (en) * 2007-09-05 2010-09-14 Oracle International Corporation Method and apparatus for automatically executing rules in enterprise systems
US8225308B2 (en) 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US7926070B2 (en) 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US8181151B2 (en) 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US20090112932A1 (en) 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
US20090113292A1 (en) 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US7974939B2 (en) 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8352407B2 (en) 2008-01-21 2013-01-08 Hewlett-Packard Development Company, L.P. Systems and methods for modeling consequences of events
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
US8099720B2 (en) 2012-01-17
JP2011502309A (ja) 2011-01-20
EP2218021A1 (en) 2010-08-18
CN101836201A (zh) 2010-09-15
US8443347B2 (en) 2013-05-14
US20120042305A1 (en) 2012-02-16
WO2009055751A1 (en) 2009-04-30
EP2218021A4 (en) 2011-10-12
CN101836201B (zh) 2013-03-06
US20090113437A1 (en) 2009-04-30

Similar Documents

Publication Publication Date Title
JP5346032B2 (ja) 宣言的モデルの変換
EP2218012B1 (en) Modeling and managing heterogeneous applications
US8225308B2 (en) Managing software lifecycle
US9715380B2 (en) Techniques for enabling dynamic update of device data models
JP5216853B2 (ja) 分散型システムにおける宣言的モデルの段階的な実施
US7512942B2 (en) Model-driven software deployment in an application server
KR101220000B1 (ko) 서비스와 클라이언트 런타임을 생성, 교환, 및 구성하기위한 추상적 기술의 사용
JP5420139B2 (ja) ダイナミック・サービス・サロゲート
JP5171790B2 (ja) 情報処理装置、通信システムおよびプログラム
EP1857931A2 (en) Computer software development methods and systems
US20080189713A1 (en) System and Method for Performing Systems Management on IT-Resources Using Web Services
Arcelli et al. Performance-driven software model refactoring
US20090113457A1 (en) Performing requested commands for model-based applications
US20070282801A1 (en) Dynamically creating and executing an application lifecycle management operation
CN102420873A (zh) 复合网络全新云应用平台
CN114911518A (zh) 云函数应用发布管理方法、系统、设备及存储介质
US8127271B2 (en) Method and system for accessing a resource implemented in a computer network
JP2019109874A (ja) 情報処理方法、情報処理装置および情報処理プログラム
CN113791819A (zh) 接口文档生成方法和装置、存储介质、电子设备
US8904372B2 (en) Dialog to service conversion method and system
US11347614B2 (en) Modifying compiled applications to monitor performance
JP5692320B2 (ja) 統合管理装置、制御方法及びプログラム
JP2005250958A (ja) 分散コンピューティング環境におけるサービス実行処理システム、およびそのクライアント装置ならびにプログラム、サービス実行処理方法
CN117492904A (zh) 一种微服务灰度发布方法、系统、装置和介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130617

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

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: 20130717

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130717

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130815

R150 Certificate of patent or registration of utility model

Ref document number: 5346032

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250