JP4966414B2 - サービスアプリケーション内でのコンポーネントプログラムの管理 - Google Patents

サービスアプリケーション内でのコンポーネントプログラムの管理 Download PDF

Info

Publication number
JP4966414B2
JP4966414B2 JP2010545043A JP2010545043A JP4966414B2 JP 4966414 B2 JP4966414 B2 JP 4966414B2 JP 2010545043 A JP2010545043 A JP 2010545043A JP 2010545043 A JP2010545043 A JP 2010545043A JP 4966414 B2 JP4966414 B2 JP 4966414B2
Authority
JP
Japan
Prior art keywords
component programs
component
service
computer system
service application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010545043A
Other languages
English (en)
Other versions
JP2011512579A (ja
JP2011512579A5 (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 JP2011512579A publication Critical patent/JP2011512579A/ja
Publication of JP2011512579A5 publication Critical patent/JP2011512579A5/ja
Application granted granted Critical
Publication of JP4966414B2 publication Critical patent/JP4966414B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

一般に、ソフトウェアアプリケーションは、その構成において多自由度を認めるように書かれる。この特性を活用する際、様々なユーザーが、ユーザーそれぞれに特有なやり方で実施するように、ある特定のソフトウェアアプリケーションをセットアップすることができる。したがって、単一のソフトウェアアプリケーションに組み入れられるこうした自由により、ソフトウェアアプリケーションが全く異なる結果を生じることが可能になる。
このタイプのソフトウェアアプリケーションは、ユーザーにインターネットを介してアプリケーションを遠隔に操作させるアプリケーションサービスプロバイダー(ASP)によって使用される。ソフトウェアアプリケーションは自由度を含むので、ユーザーは、アプリケーションに手動でプログラムを組み込むための性能要求をASPに与えることができる。さらに、ほとんどのソフトウェアアプリケーションは、個々に識別され、手動でプログラムされなければならない別個の基底要素を含み、その結果ソフトウェアアプリケーションが性能要求を表し得る。受け取った性能要求に従って基底要素を手動プログラムするプロセスは、労力がかかり、エラーを起こしやすい。したがって、ソフトウェアアプリケーションをカスタマイズするこのアドホック方法により、ASPからのソフトウェアアプリケーションの提供にもろさが生じる。こうした手動プログラミングの短所は、多数のユーザーが、それぞれの性能要求を絶えず与え、変更していると一層大きくなる。
本概要は、「発明を実施するための形態」において後でさらに説明される概念を、簡略化された形で紹介するためのものである。本概要は、本特許請求対象の主要な特徴または本質的な特徴を識別することは意図しておらず、本特許請求対象の範囲を決定する一助として使われることも意図していない。
本発明の実施形態は、サービスモデルに従ってサービスアプリケーション内でコンポーネントプログラムを自動的に管理する構造(たとえば、インスタンス化方式)を提供することによって、手動プログラミングの短所を減らすサービスモデリング手法を提供する。最初に、サービスアプリケーション内でコンポーネントプログラムをインスタンス化するためのトリガーが検出される。実施形態において、トリガーは、サービスアプリケーション上の負荷レベルに対する変化の指示(たとえば、サービスアプリケーションをホストするウェブサイトでのトラフィックを監視することによる)、またはサービスモデル内の仕様に対する変化の指示(たとえば、アプリケーションサービスプロバイダーとクライアントとの間で確立されたサービス記述コントラクトを修正することによる)に基づく。
トリガーの検出に付随して、サービスモデルの仕様から構成設定が抽出され、構成設定(たとえば、コンポーネントプログラムのアドレス、アルゴリズム識別子、サービスロケーション、メモリーリソースアドレスなど)は、コンポーネントプログラム内のパラメーターを構成するのに使用される。ある例では、コンポーネントプログラムは、サービスアプリケーションを実行するデータセンター内の様々なコンピューティングデバイスの所で展開される。別の例では、様々なコンピューティングデバイス上にある予め確立されたコンポーネントプログラムが、インスタンス化に使用可能であると識別される。こうした展開され、かつ/または識別されたコンポーネントプログラムは、マップ(たとえば、変換マップ、構造マップ)にアクセスする論理ステップと、変換マップに従って構成設定から定式化値を導出する論理ステップと、コンポーネントプログラム全体に定式化値を自動的に伝搬する論理ステップと、構造マップに従って定式化値に対応するパラメーターを配置する論理ステップと、適切なパラメーターの所で定式化値を組み込む論理ステップとを含むインスタンス化プロセスに従って構成される。この堅牢なインスタンス化プロセスは、コンポーネントプログラムを自動的に構成し、したがって、手動プログラミングに固有な短所(上で論じた)を大幅に削減する。
本発明の実施形態が、添付の図面を参照して後で詳細に説明される。
本発明の実施形態を実装する際の使用に適した例示的なコンピューティング環境を示すブロック図である。 本発明の実施形態を実装する際の使用に適した例示的なコンピューティングシステムを示すブロック図である。 本発明の実施形態による、サービスモデルに従ってサービスアプリケーション内でコンポーネントを管理する方法を示すフロー図である。 定式化値を、コンポーネントプログラムの適切なパラメーターに組み込む方法を示すフロー図である。 定式化値を、コンポーネントプログラムの適切なパラメーターに組み込む方法を示すフロー図である。 本発明の実施形態による、トリガーイベントに応答する方法を示すフロー図である。
法的要件を満たすために、本発明の実施形態の主題を明確に本明細書において説明する。ただし、この説明自体は、本特許の範囲を限定することを意図していない。そうではなく、本発明者は、特許請求の対象が、本文書において説明されるものと類似した、異なるステップまたはステップの組合せを含むように、現在または将来の他の技術とともに、他の方法でも実施されることを企図している。さらに、「ステップ」および/または「ブロック」という用語は、本明細書において、利用される方法の異なる要素を意味するのに用いることができるが、この用語は、個々のステップの順序が明確に記述されない限り、本明細書において開示される様々なステップの間のいかなる具体的な順序も含意すると解釈されるべきでない。
本発明の実施形態は、サービスモデルに従ってサービスアプリケーション内でコンポーネントプログラムを自動的に管理する方法、システム、および実行されると、本発明の実施形態による方法を実施するコンピューター実行可能命令をその上に具現化させたコンピューター記憶媒体に関する。最初に、サービスアプリケーション内でコンポーネントプログラムをインスタンス化するためのトリガーが検出される。実施形態において、トリガーは、サービスアプリケーション上での負荷レベルに対する変化の指示(たとえば、サービスアプリケーションをホストするウェブサイトでのトラフィックを監視することによる)、またはサービスモデル内の仕様に対する変化の指示(たとえば、アプリケーションサービスプロバイダーとクライアントとの間で確立されたサービス記述コントラクトを修正することによる)に基づく。
トリガーの検出に付随して、サービスモデルの仕様から構成設定が抽出され、構成設定(たとえば、コンポーネントプログラムのアドレス、アルゴリズム識別子、サービスロケーション、メモリーリソースアドレスなど)は、コンポーネントプログラム内のパラメーターを構成するのに使用される。ある例では、コンポーネントプログラムは、サービスアプリケーションを実行するデータセンター内の様々なコンピューティングデバイスの所で展開される。別の例では、様々なコンピューティングデバイス上にある予め確立されたコンポーネントプログラムが、インスタンス化に使用可能であると識別される。こうした展開され、かつ/または識別されたコンポーネントプログラムは、マップ(たとえば、変換マップ、構造マップ)にアクセスする論理ステップと、変換マップに従って、構成設定から定式化値を導出する論理ステップと、定式化値をコンポーネントプログラム全体に自動的に伝搬する論理ステップと、構造マップに従って、定式化値に対応するパラメーターを配置する論理ステップと、定式化値を適切なパラメーターの所で組み込む論理ステップとを含むインスタンス化プロセスに従って構成される。
したがって、一態様では、本発明の実施形態は、実行されると、サービスモデルに従ってサービスアプリケーション内で1つまたは複数のコンポーネントプログラムを管理する方法を実施するコンピューター実行可能命令をその上に具現化させた1つまたは複数のコンピューター記憶媒体に関する。この方法は、データセンター内の別個のコンピューティングデバイス上で実行可能なコンポーネントプログラムを含むサービスアプリケーション上での負荷レベルを判定すること、コンポーネントプログラムに対して施行することができる構成設定をサービスモデルから抽出すること、および負荷のレベルに従ってサービスアプリケーションを管理するインスタンス化プロセスを開始することを含む。インスタンス化プロセスは、データセンター内でコンポーネントプログラムを展開すること、構成設定から導出された定式化値を、展開されたコンポーネントプログラム全体に自動的に伝搬すること、および定式化値をコンポーネントプログラムに少なくとも一時的に組み込み、そうすることによって、サービスモデルに整合したサービスアプリケーションの機能性を提供することを含む。実施形態において、この方法は、組み込まれた定式化値に従ってサービスアプリケーションを実行することをさらに含む。
別の態様では、本発明の実施形態は、コンポーネントプログラムに構成設定を伝搬することによってサービスアプリケーションをインスタンス化し、そうすることによってサービスアプリケーションの機能性を促進する方法を実施するコンピューター実行可能命令をその上に具現化させた1つまたは複数のコンピューター記憶媒体上に具現化されるコンピューターシステムに関する。このコンピューターシステムは、第1のコンピューティングデバイスおよび第2のコンピューティングデバイスを含む。第1のコンピューティングデバイスは、サービスアプリケーションの動作をサポートするコンポーネントプログラムを実行する。第2のコンピューティングデバイスは、サービスモデルに従ってサービスアプリケーションを実装するインスタンス化プロセスを開始する。インスタンス化プロセスは、サービスモデル内の仕様から構成設定を抽出すること、第1のコンピューティングデバイス上にあるコンポーネントプログラムを、インスタンス化に使用可能であると識別すること、コンポーネントプログラムの一部が構成設定に適合するかどうか確認するために、コンポーネントプログラム内のパラメーターに問い合わせること、構成設定から導出された定式化値を、適合コンポーネントプログラム全体に自動的に伝搬すること、および定式化値に従って適合コンポーネントプログラムのパラメーターを構成することを含む。
さらに別の態様では、本発明の実施形態は、インスタンス化方式に従ってデータセンター内で動作する、サービスアプリケーションのコンポーネントプログラムを構成するコンピューター化方法に関する。このコンピューター化方法は、サービスモデルに問い合わせることによって構成設定を判定するステップと、インスタンス化方式にアクセスするステップであって、インスタンス化方式が、サービスモデルを満足するためにどのコンポーネントプログラムを展開するか指示し、インスタンス化方式が変換マップを提供するステップと、指示されたコンポーネントプログラムを、データセンター内の複数のコンピューティングデバイス上で展開するステップと、変換マップに部分的に基づいて、構成設定を定式化値にコンバートするステップと、定式化値を、展開されたコンポーネントプログラムに自動的に分配するステップと、分配された定式化値を、展開されたコンポーネントプログラムに関連づけて少なくとも一時的に格納するステップとを少なくとも含む。
本発明の実施形態の概要を手短に説明したが、本発明の実施形態の実装に適した例示的な動作環境について、以下で説明する。
図面全体を参照するが、最初は特に図1を参照すると、本発明の実施形態を実装する例示的な動作環境が示され、全体としてコンピューティングデバイス100と指定される。コンピューティングデバイス100は、適切なコンピューティング環境の一例に過ぎず、本発明の実施形態の使用または機能性の範囲に関していかなる限定を示唆することも意図していない。コンピューティング環境100は、図示するコンポーネントのいずれかまたは組合せに関するいかなる依存または要件を有すると解釈されるべきでもない。
本発明の実施形態は、コンピューターまたは携帯情報端末もしくは他のハンドヘルドデバイスなどの他のマシンによって実行されるプログラムコンポーネントなど、コンピューター実行可能命令を含むコンピューターコードまたはマシン使用可能命令という一般的コンテキストにおいて説明することができる。概して、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むプログラムコンポーネントは、特定のタスクを実施し、または特定の抽象データタイプを実装するコードを指す。本発明の実施形態は、ハンドヘルドデバイス、家電製品、汎用コンピューター、特殊コンピューティングデバイスなどを含む、様々なシステム構成で実施することができる。本発明の実施形態は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実施される分散型コンピューティング環境において実施することもできる。
図1の参照を続けると、コンピューティングデバイス100は、メモリー112、1つまたは複数のプロセッサー114、1つまたは複数の提示コンポーネント116、入出力(I/O)ポート118、I/Oコンポーネント120、および例示的電源122というデバイスを直接または間接的に結合するバス110を含む。バス110は、何が1つまたは複数のバスであり得るかを表す(アドレスバス、データバス、またはその組合せなど)。図1の様々なブロックは、分かりやすくするために線で示してあるが、実際には、様々なコンポーネントの線引きはあまり明確でなく、例えて言うならば、線はより正確にはグレーでありあいまいであろう。たとえば、ディスプレイデバイスなどの提示コンポーネントを、I/Oコンポーネントであるとみなすことができる。また、プロセッサーはメモリーを有する。本発明者らは、このようなことが当該分野の性質であると認識し、図1の線図は、本発明の1つまたは複数の実施形態に関連して使うことができる例示的なコンピューティングデバイスを例示するに過ぎないことを繰り返しておく。「ワークステーション」、「サーバー」、「ラップトップ」、「ハンドヘルドデバイス」のようなカテゴリはすべて、図1の範囲内であることを企図しており、「コンピューター」または「コンピューティングデバイス」を指すので、こうしたカテゴリの間は区別されない。
コンピューティングデバイス100は一般に、様々なコンピューター可読媒体を含む。限定ではなく例として、コンピューター可読媒体は、ランダムアクセスメモリー(RAM)、読出し専用メモリー(ROM)、電子的消去可能プログラム可能読出し専用メモリー(EEPROM)、フラッシュメモリーもしくは他のメモリー技術、CDROM、デジタル多用途ディスク(DVD)または他の光もしくはホログラフメディア、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報をエンコードするのに使うことができ、コンピューティングデバイス100によってアクセスすることができる他のどの媒体も備え得る。
メモリー112は、揮発性および/または不揮発性メモリーの形のコンピューター記憶媒体を含む。メモリーは、取外し可能、固定式、またはその組合せでよい。例示的なハードウェアデバイスは、固体状態メモリー、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス100は、メモリー112やI/Oコンポーネント120など、様々なエンティティーからデータを読み取る1つまたは複数のプロセッサーを含む。提示コンポーネント(1つまたは複数)116は、ユーザーまたは他のデバイスにデータ指示を提示する。例示的な提示コンポーネントは、ディスプレイデバイス、スピーカ、印刷コンポーネント、振動コンポーネントなどを含む。I/Oポート118は、コンピューティングデバイス100を、その一部が内蔵型でよいI/Oコンポーネント120を含む他のデバイスに論理的に結合させる。例示的コンポーネントは、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、プリンタ、無線デバイスなどを含む。
ここで図2に移ると、サービスモデルに従ってサービスアプリケーション210内でコンポーネントプログラム201、202、203、204を管理するように構成されたコンピューティングシステム200を示す、本発明の実施形態によるブロック図が示されている。図2に示すコンピューティングシステム200は、適切な1つのコンピューティングシステム環境の単なる例であり、本発明の実施形態の使用または機能性の範囲に関するいかなる限定も示唆することは意図していないことが当業者には理解されよう。また、コンピューティングシステム200は、図示してあるどの単一のコンポーネントまたはコンポーネントの組合せに関しても、いかなる依存または要件も有すると解釈されるべきではない。さらに、図2の様々なブロックは、分かりやすくするために線で示してあるが、実際には、様々なコンポーネントの線引きはあまり明確でなく、例えて言うならば、線はより正確にはグレーでありあいまいであろう。
コンピューティングシステム200は、クライアントコンピューティングデバイス215、依存サービスプロバイダー220、およびデータセンター225を含み、これらはすべて、ネットワーク(図示せず)を介して相互に通信する。ネットワークは、限定ではなく、1つまたは複数のローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)を含み得る。このようなネットワーク接続環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット、およびインターネットにおいてよく見られる。したがって、ネットワークについては、本明細書においてさらに説明する。
図2に示すクライアントコンピューティングデバイス215、依存サービスプロバイダー220、およびデータセンター225はそれぞれ、たとえば、図1を参照して上述したコンピューティングデバイス100など、どのタイプのコンピューティングデバイスでもよい。限定ではなく単に例示目的として、クライアントコンピューティングデバイス215、および依存サービスプロバイダー220はそれぞれ、パーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、ハンドヘルドデバイス、モバイルハンドセット、家庭用電子機器などでよい。実施形態において、データセンター225は、サーバー、コンピューティングデバイスの集合体、またはサービスアプリケーション210を実行することが可能な他のマシンでよい。さらに、クライアントコンピューティングデバイス215は、その上にある、データセンター225への有線または無線ネットワークパスを介してサービスアプリケーション210にアクセスするためのウェブブラウザーアプリケーション230をさらに含み得る。ただし、本発明の実施形態は、このようなコンピューティングデバイス上での実装に限定されず、本発明の実施形態の範囲内で、異なる様々なタイプのコンピューティングデバイスのいずれの上でも実装することができることに留意されたい。
図2に示すように、クライアントコンピューティングデバイス215は、ウェブブラウザーアプリケーション230を実行してサービスアプリケーション210にアクセスするように構成される。サービスアプリケーション210は、概して直接的に、通信経路235を介して、または依存サービスプロバイダー220によりアクセスされ得る。実施形態において、依存サービスプロバイダー220によるアクセスは、ユーザー提供の資格情報240をプロバイダー220に伝えることを含む。一般に、ユーザー提供の資格情報240は、ログインデータ、パスワード、または依存サービスプロバイダー220の所で実装されるセキュリティープロトコルを満足するようにクライアントによって提供される他のどの情報でもよい。これに対して、依存サービスプロバイダー220は、資格情報240をメッセージ245に入れて、コンポーネント201、202、203、204の1つまたは複数との間で交換する。
実施形態において、依存サービスプロバイダー220は、データセンター225の外部に配置され、サービスアプリケーション210を維持するアプリケーションサービスプロバイダーとは別個のエンティティーによって管理される。ただし、依存サービスプロバイダー220は、メッセージ245をその間で交換することによって、活動をコンポーネントプログラム201、202、203、204と協調させることができる。依存サービスプロバイダー220とコンポーネントプログラム201、202、203、204との間の活動の協調は、依存サービスプロバイダー220をターゲットとするリソース配置によって容易にされる。こうしたリソース配置は一般に、サービスモデル内の仕様によって確立される。
概して、サービスモデルは、サービスアプリケーション210のコンポーネントプログラム201、202、203、204を管理する命令を提供するインターフェイス設計図である。したがって、サービスモデルは、インスタンス化中にどのマップを利用するか、コンポーネントプログラム201、202、203、204の伝搬中にどのコンピューティングデバイスを使用するか、コンポーネントプログラム201、202、203、204の間の通信経路246、247がどこに配置されるか、およびサービスアプリケーション210がデータセンター225によって実行される具体的なやり方を記述する他の任意の情報のような管理側面を識別する仕様を含む。ある例では、サービスモデルは、部分的には、クライアントとアプリケーションサービスプロバイダーとの間に確立されたサービス記述コントラクトに従って生成される。サービス記述コントラクトの結果として、クライアントは、サービスアプリケーション210、およびアプリケーションサービスプロバイダーによって維持される他のソフトウェアへのアクセスを与えられる。
さらに、サービスモデルは、仕様から暗黙的および明示的構成設定を抽出させるフックを仕様内に提供する。実施形態において、暗黙的構成設定は、コンポーネントプログラム201、202、203、204および/または他のコンポーネント(たとえば、依存サービスプロバイダー220、メモリーリソース250)それぞれの間の対話を容易にするための構造的情報(たとえば、コンポーネントアドレス、リソース配置、およびメモリーリソースアドレス)を与える。さらに、暗黙的構成設定は、上記コンポーネントの間でメッセージを消費し翻訳するアプリケーションプログラミングインターフェイス(API)を提供し、そうすることによって、コンポーネントに、調和して通信を行わせる。実施形態において、明示的構成設定は、コンポーネントプログラムの機能性に影響する、コンポーネントプログラム201、202、203、204内のパラメーターに命令(たとえば、アルゴリズム識別子および他の構成値)を与える。単に例示目的として、クライアントをサービスアプリケーション210にログインさせる、指定された資格情報は、サービスモデルの中に記憶(memorialize)される。サービスモデル中のフックは、こうした資格情報を明示的構成設定に与え、構成設定は、資格情報を予測値としてコンポーネント201に分配する。こうした予測値は、メッセージ245に入れて依存サービスプロバイダー220から伝えられる、ユーザー提供の資格情報240と比較される。メッセージ245を受信すると、コンポーネント201は、ユーザー提供の資格情報240を予測値と比較する。比較の結果、合致が生じる場合、クライアントは、サービスアプリケーション210へのアクセスを与えられる。
データセンター225は、他のものの中でも特に、サービスアプリケーション210の実行用に設けられる。サービスアプリケーション210は、使用(たとえば、1時間あたりのクライアントのヒット数)に合わせて、またはサービスモデルに対する修正によって拡張することができる1組のコンポーネントプログラム201、202、203、204を含む。一般に、サービスアプリケーション210は、異なる多くのコンポーネント(たとえば、コンポーネントプログラム201、202、203、204)からなることを特徴とし、これは従来のアプリケーションと同様である。例示的な実施形態において、サービスアプリケーション210は、異なるコンポーネントが複合インターネットサービスとして一緒に機能するように、こうしたコンポーネントを管理する。例として、サービスアプリケーション210は、様々なクライアントに、ある特定のウェブサイトでコメントを投稿させるブログサービスである。可能性としては、全員がブログサービスにアクセスする数千人のクライアントが存在し得るので、ブログサービスによって、その動作の継続をサポートするために複数のコンポーネントが展開される。こうしたコンポーネントは、単一のアプリケーションとして機能するように、互いに合わせてアクションを協調させるので、コンポーネントの展開および破棄がクライアントにとって透過である。
サービスアプリケーション210の一例が図示され説明されたが、データセンター225内で複数のサービスアプリケーションが実行されることができ、本発明の実施形態は、図示し説明したサービスアプリケーション210に限定されないことを当業者は理解されたい。複数のサービスアプリケーションを有するこうした実施形態において、サービスアプリケーション210および他のサービスアプリケーション(図示せず)は、それぞれ独立に、および/または互いに共同して動作し得る。一例では、データセンター225上で同時に稼動するサービスアプリケーションは、1組のコンポーネントプログラム201、202、203、204を共有する。単に例示目的として、1組のコンポーネントプログラム201、202、203、204は、新規サービスアプリケーションによって消費する(たとえば、使用要件に従って供給し直す)ことも、サービスアプリケーション(たとえば、プログラムコンポーネントにアクセスする複数のサービスアプリケーション)の間で共有することもできる。したがって、データセンター225上のリソースは、実施形態において、多くの相互依存または独立サービスアプリケーションの相互運用性を提供する。
実施形態において、データセンター225は、第1のコンピューティングデバイス255および第2のコンピューティングデバイス265などの様々なマシン、ならびにメモリーリソース250を含む。コンピューティングデバイス255、265は、たとえば、コンピューティングデバイス100(図1を参照)、パーソナルコンピューター、サーバー、コンピューティングデバイスの集合体、またはサービスアプリケーション210を実行することが可能な他のマシンなど、どのタイプのコンピューティングデバイスでもよい。さらに、コンピューティングデバイス255、265は、コンポーネントプログラム201、202、203、204を格納し実行することが可能である。コンポーネントプログラム201、202、203、204は、サービスアプリケーション210によって管理される数々のコンポーネントプログラムのうちいくつかのコンポーネントを実施する。実施形態において、コンポーネントプログラム201、202、203、204は、サービスモデル内の仕様に従って開発され、または書かれる。一例では、コンポーネントプログラム201、202、203、204の1つまたは複数は、構成設定に対するアップデートが起きたと判定すると、パラメーター270に自動的に再構成させるサービスモデル内の一連の規則に従って開発される。4つのコンポーネントプログラムが図2に示され、本明細書において説明されたが、本発明の実施形態は、サービスアプリケーション210の動作をサポートするための任意の数のコンポーネントプログラムを使用することを企図している。例示的な実施形態において、コンポーネントプログラムの数は、サービスアプリケーション210上でのクライアントの負荷レベルに関連し、負荷のレベルが高くなるほど、より多くのコンポーネントプログラムが展開される。
パラメーター270は一般に、コンポーネントプログラム201、202、203、204上、またはそれぞれコンポーネント201、204上にある要素266、275上にある。概して、パラメーターは、コンポーネントがそれぞれ内部で行う決定を微調整し、そうすることによって、コンポーネントの協働パフォーマンスを改良する。パラメーター270は、数および性質において例示的である。つまり、特定のコンポーネントプログラムまたは要素上にいくつかのパラメーターが示されているが、本発明の実施形態は、コンポーネントプログラムまたは要素のいずれかの上にある、ゼロから多くのパラメーターまでを企図している。
メモリーリソース250は一般に、データセンター225上にあり、データを格納するように構成される。実施形態において、メモリーリソース250は、そのリソースと関連づけられて格納された項目の1つまたは複数を求めて検索可能である。データストアー250に格納されたデータは、構成可能でよく、サービスアプリケーション210の実行に適したどの情報も含み得ることが当業者には理解されよう。このような情報の内容およびボリュームは、本発明の実施形態の範囲をいかようにも限定することは意図していない。さらに、単一の独立コンポーネントとして図示してあるが、メモリーリソース250は、実際には、複数のデータストアー、たとえば、データベースクラスターでよい。さらに、メモリーリソース250の所に格納されたデータは、コンポーネントプログラム201、202、203、204によってアクセス可能である。一実施形態では、構成設定は、データにそこからアクセスするために、コンポーネントプログラム201、202、203、204の1つまたは複数にメモリーリソース250を配置させるメモリーリソースアドレス、または別の適切なメモリー割振りを与えられる。
動作の際、サービスアプリケーション210は、コンポーネントプログラム201、202、203、204を管理するように構成される。管理の一側面は、トリガーイベントを検出すると、コンポーネントプログラム201、202、203、204を確立し構成することを伴う。トリガーイベントは、トリガーイベントを検出するとサービスアプリケーション210内でコンポーネントプログラム201、202、203、204をインスタンス化するよう、サービスアプリケーション210に警告する。実施形態において、トリガーは、図6を参照して後でより詳しく論じるように、サービスアプリケーション210上での負荷レベルに対する変化の指示(たとえば、1つもしくは複数のクライアントコンピューティングデバイス215からのトラフィックを監視することによる)、またはサービスモデル内の仕様に対する変化の指示(たとえば、アプリケーションサービスプロバイダーとクライアントとの間で確立されたサービス記述コントラクトを修正することによる)に基づく。
トリガーの検出に付随して、構成設定280が、サービスモデルの仕様および/またはフックから抽出される。概して、構成設定280は、サービスアプリケーション210を正しく管理することを容易にする。実施形態において、構成設定280は、より詳しく上で論じたように、暗黙的または明示的構成設定でよい。特定の例において、構成設定280は、コンポーネントプログラムのアドレス、アルゴリズム識別子、サービスロケーション、メモリーリソースアドレス、またはコンポーネントプログラム内のパラメーターを構成するのに使用される他のどのデータストリングも含む。
構成設定280の抽出に付随して、またはそれと同時に、コンポーネントプログラム201、202、203、204が、負荷を満たし、アップデートされたサービスモデルを満足するために、またはサービスアプリケーション210の動作に関する他のどの理由でも確立される。一例では、コンポーネントプログラム201、202、203、204を確立することは、データセンター225内の様々なコンピューティングデバイス255、265の所でコンポーネントプログラム201、202、203、204を展開することを含む。別の例では、コンポーネントプログラム201、202、203、204を確立することは、様々なコンピューティングデバイス255、256上にあり、識別されている予め確立されたコンポーネントプログラムを、インスタンス化に使用可能であると識別することを含む。コンポーネントプログラム201、202、203、204の2通りの確立法が示されているが、コンポーネントプログラム201、202、203、204を確立する他の方法が使用されてよく、本発明の実施形態は、本明細書において示し説明したやり方に限定されないことを当業者は理解されたい。
こうした展開され、かつ/または識別されたコンポーネントプログラム201、202、203、204は、インスタンス化プロセスに従って構成され、このプロセスは、マップ(たとえば、変換マップ、構造マップ)にアクセスする論理ステップと、変換マップに従って構成設定280から定式化値290を導出する論理ステップと、定式化値290をコンポーネントプログラム201、202、203、204全体に自動的に伝搬する論理ステップと、構造マップに従って定式化値290に対応するパラメーター270を配置する論理ステップと、定式化値290を適切なパラメーター270の所に組み込む論理ステップとを含む。例示的な実施形態において、パラメーター270は、定式化値290の組込みに先立って、コンポーネント201、202、203、204それぞれが構成設定280と適合するかどうか判定するために、サービスアプリケーション210によって問い合わせられる。
ここで図3に移ると、本発明の実施形態による、サービスモデルに従ってサービスアプリケーション内でコンポーネントを管理する全体的方法300を示すフロー図が示されている。最初に、ブロック305に示すように、サービスアプリケーションの所で指示(たとえば、トリガーイベント)が受信される。トリガーイベントは、図6を参照してより詳しく論じる。一般に、指示は、サービスアプリケーションの統一動作を維持するために、より多くの、またはより少ないコンポーネントプログラムが確立されるべきであるとサービスアプリケーションに警告する。例示的な実施形態において、コンポーネントプログラムの追加および削減は、サービスアプリケーションに現時点でアクセスしているクライアントに対して透過である。ブロック310に示すように、サービスモデル内の仕様に問い合わせると、フックから構成設定が抽出される。上でより詳しく論じたように、暗黙的および明示的構成設定など、様々なタイプの構成設定が抽出され得る。
ブロック315に示すように、トリガーイベントに従って、サービスアプリケーションを管理するインスタンス化プロセスが開始される。実施形態において、インスタンス化プロセスは、コンポーネントプログラムを確立する論理ステップと、定式化値を導出する論理ステップと、定式化値を自動的に伝搬する論理ステップと、定式化値を組み込む論理ステップとを少なくとも含む。具体的には、ブロック320に示すように、コンポーネントプログラムは、展開し(たとえば、新規コンポーネントプログラムを生成し)、またはデータセンター内のマシン上の既存コンポーネントプログラムを使用可能と識別することによって確立される。使用可能な既存コンポーネントプログラムを識別する例示的な実施形態では、既存のコンポーネントプログラム内のパラメーターは、構成設定に適合するかどうか判定するために問い合わせられる。したがって、こうした「適合」コンポーネントプログラムは、伝搬中に定式化値を受信する。
実施形態において、こうしたコンポーネントプログラムは、データセンター内の1つまたは様々なコンピューティングデバイスの所に配置される。この遠隔展開スタイルは、構成設定によってコンポーネントデバイスに与えられる命令(たとえば、コンポーネントアドレス)によって可能にされる。さらに、構成設定は、コンポーネントプログラムの一部の所でAPIを構成し、そうすることによって、各コンポーネントプログラムを、コンポーネントプログラム、メモリーリソース、および遠隔依存サービスプロバイダー(たとえば、通信相手によって維持されるサービス)の他のタイプおよびインスタンスと協調させる命令を含む。
ブロック325に示すように、構成設定から定式化値が導出される。実施形態において、定式化値は、変換マップ、コンポーネントプログラムそれぞれの判定された状態、またはその組合せに従って導出される。こうした定式化値は、ブロック330に示すように、展開されたコンポーネントプログラム、適合コンポーネントプログラム、またはその組合せに自動的に伝搬される。こうしたステップ(たとえば、ブロック320、325、330)は、どの順序でも、または付随的にとることができる。ブロック335に示すように、定式化値は、コンポーネントプログラムのパラメーターの所で組み込まれる。他の実施形態では、定式化値は、対応するパラメーターに関連づけられて一時的に格納される。パラメーターの組込みに付随して、サービスアプリケーションは、ブロック340に示すように、定式化値に従って実行される。
ここで図4、5に移ると、本発明の実施形態による、コンポーネントプログラムの適切なパラメーターに定式化値を組み込む方法400、500を示すフロー図が示されている。図4を参照すると、最初に、ブロック410に示すように、サービスアプリケーションによってマップ構造がアクセスされる。他の実施形態では、構造マップは、構成設定によってアクセスされ、またはその中に格納される。ブロック420に示すように、コンポーネントプログラム内のパラメーターは、構造マップ内の論理に従って配置される。したがって、ブロック430に示すように、構造マップの論理は、適切なパラメーターに定式化値を向けるのを助け、そうすることによって、定式化値の正しい組込みを促進する。
図5を参照すると、ブロック510に示すように、確立されたコンポーネントプログラムそれぞれの状態が決定される。実施形態において、状態は概して、コンポーネントプログラムのインスタンスもしくはタイプ、またはコンポーネントプログラムの既存の構成に関する。ブロック520に示すように、変換マップがアクセスされる。例示的な実施形態において、変換マップは、コンポーネントプログラムそれぞれの判定された状態に入ると、構成設定を定式化値として表現する論理を含む。この論理に基づいて、コンポーネントプログラムの各インスタンスに対応する定式化値が導出される。
図6は、本発明の実施形態による、トリガーイベントに応答する方法600を示すフロー図である。ブロック610に示すように、サービス記述コントラクトに対する修正の指示が受信される。ブロック620に示すように、サービスモデル内の仕様に修正が影響するかどうかの判定が行われる。判定が、大幅な感情が生成されないこと示す場合、ブロック630に示すように、コンポーネントプログラムの現在の構成が維持される。ブロック640に示すように、サービスアプリケーションでのトラフィックが監視される。ブロック650に示すように、負荷レベルに変化があるかどうかの判定が行われる。負荷のレベルに対する変化も大幅な調整も示されないことを判定が示す場合、ブロック630に示すように、コンポーネントプログラムの現在の構成が維持される。
ただし、ブロック620、650の判定が、トリガーイベントが起きた(たとえば、負荷のレベルに大幅な変化が起こり、または仕様に対する修正が大幅な効果を駆り立てた)ことを示す場合、ブロック660に示すように、アップデートされた構成設定が、サービスモデルに従って抽出される。アップデートされた構成設定を作成するための、サービスモデルの使用は、図2を参照して上でより詳しく論じた。ブロック670に示すように、定式化値は、アップデートされた構成設定から導出される。ブロック680に示すように、コンポーネントプログラムは、導出された定式化値を用いて再構成される。実施形態において、再構成は、図3に列挙したステップを含む。
本発明の実施形態が、すべての点において制限的ではなく例示的であることを意図している、特定の実施形態との関係において説明された。本発明の実施形態が、その範囲から逸脱することなく属す代替実施形態が、当業者には明らかであろう。
上記内容から、本発明は、明白であり本システムおよび方法に固有な他の利点とともに、上で説明した目的をすべて達成するのに十分に適応したものであることが分かるであろう。特定のいくつかの特徴およびサブコンビネーションは、有用であり、他の特徴およびサブコンビネーションに言及せずに利用され得ることが理解されよう。このことは、請求項によって企図されるとともに、その範囲内である。

Claims (17)

  1. 実行されると、サービスアプリケーションの中の1又は複数のコンポーネントプログラムをサービスモデルに従って管理する方法をコンピューターに実行させるコンピューター実行可能命令が記憶されている1又は複数のコンピューター記憶媒体であって、前記方法は、
    前記サービスアプリケーションにおける負荷レベルを判断するステップであって、前記サービスアプリケーションはデータセンターの中の別個のコンピューティングデバイスにおいて実行可能な前記1又は複数のコンポーネントプログラムを含む、ステップと、
    前記サービスモデルから、前記1又は複数のコンポーネントプログラムに対して施行することができる構成設定を抽出するステップと、
    前記負荷レベルに従って前記サービスアプリケーションを管理するインスタンス化プロセスを開始するステップであって、前記インスタンス化プロセスは、
    (a)前記データセンターの中の前記1又は複数のコンポーネントプログラムを展開するステップと、
    (b)前記1又は複数の展開されたコンポーネントプログラムのそれぞれの状態を判断するステップと、
    (c)変換マップにアクセスするステップであって、前記変換マップは、前記1又は複数のコンポーネントプログラムのそれぞれの状態に対応する定式化値として前記構成設定を表現する論理を含む、ステップと、
    (d)前記変換マップの論理を用い、前記変換マップの論理に従って前記定式化値を前記構成設定から導出するステップと、
    (e)前記導出された定式化値を、前記展開された1又は複数のコンポーネントプログラム全体に自動的に伝搬するステップと、
    を含む、ステップと、
    前記定式化値を、前記1又は複数のコンポーネントプログラムに少なくとも一時的に組み込み、よって前記サービスモデルと整合する前記サービスアプリケーションの機能性を提供するステップと、
    を含む、1又は複数のコンピューター記憶媒体。
  2. 請求項1記載の1又は複数のコンピューター記憶媒体において、負荷レベルを判断する前記ステップは、前記サービスアプリケーションをホストするウェブサイトでのトラフィックを監視するステップを含む、1又は複数のコンピューター記憶媒体。
  3. 請求項1記載の1又は複数のコンピューター記憶媒体において、前記サービスアプリケーションは、ウェブブラウザーアプリケーションを介してクライアントにアクセス可能なアプリケーションサービスプロバイダーによって維持されるデータセンター上にあるソフトウェアを含む、1又は複数のコンピューター記憶媒体。
  4. 請求項3記載の1又は複数のコンピューター記憶媒体において、前記サービスモデルは、部分的には、前記アプリケーションサービスプロバイダーと前記クライアントとの間で締結されたサービス記述コントラクトに従って生成される、1又は複数のコンピューター記憶媒体。
  5. 請求項1記載の1又は複数のコンピューター記憶媒体であって、前記組み込まれた定式化値に従って前記サービスアプリケーションを実行するステップを更に含む、1又は複数のコンピューター記憶媒体。
  6. 1又は複数のコンポーネントプログラムに構成設定を伝搬することによって、サービスアプリケーションをインスタンス化し、よって前記サービスアプリケーションの機能性を促進する方法を実行するコンピューターシステムであって、
    前記サービスアプリケーションの動作をサポートする前記1又は複数のコンポーネントプログラムを実行する第1のコンピューティングデバイスと、
    サービスモデルに従って前記サービスアプリケーションを実装するインスタンス化プロセスを開始する第2のコンピューティングデバイスと、
    を備えており、前記インスタンス化プロセスは、
    (a)前記サービスモデル内の仕様から構成設定を抽出するステップと、
    (b)前記第1のコンピューティングデバイス上にある前記1又は複数のコンポーネントプログラムを、インスタンス化に使用可能であると識別するステップと、
    (c)前記1又は複数のコンポーネントプログラム内のパラメーターに問い合わせて、前記1又は複数のコンポーネントプログラムの一部が前記構成設定に適合するかどうかを確認するステップと、
    (d)前記1又は複数の適合するコンポーネントプログラムから構造マップにアクセスするステップであって、前記構造マップは、前記1又は複数の適合するコンポーネントプログラムの中で前記パラメーターを見つける論理を含む、ステップと、
    (e)前記構成設定から導出された定式化値を、前記1又は複数の適合コンポーネントプログラム全体に自動的に伝搬するステップと、
    (f)前記構成設定から導出された前記定式化値を前記構造マップの前記論理に従って前記パラメーターに向けるステップと、
    (g)前記1又は複数の適合コンポーネントプログラムの前記パラメーターを前記定式化値に従って構成するステップと、
    を含む、コンピューターシステム。
  7. 請求項6記載のコンピューターシステムであって、前記インスタンス化プロセスは、
    前記サービスモデルの前記仕様に対する修正の指示を受け取るステップと、
    前記修正された仕様から、アップデートされた構成設定を抽出するステップと、
    を更に含む、コンピューターシステム。
  8. 請求項7記載のコンピューターシステムにおいて、前記第1のコンピューティングデバイス上にある前記1又は複数のコンポーネントプログラムは、前記アップデートされた構成設定から定式化値を受け取ると前記パラメーターが自動的に再構成することを可能にする一連の規則に従って開発される、コンピューターシステム。
  9. 請求項6記載のコンピューターシステムにおいて、前記第2のコンピューティングデバイスは、更に、前記サービスアプリケーションの動作をサポートする前記1又は複数のコンポーネントプログラムを実行するように構成されている、コンピューターシステム。
  10. 請求項9記載のコンピューターシステムにおいて、前記構成設定はコンポーネントアドレスを含み、前記コンポーネントアドレスは、前記第1のコンピューティングデバイス上にある前記1又は複数のコンポーネントプログラムが前記第2のコンピューティングデバイス上にある前記1又は複数のコンポーネントプログラムと活動を協調することを可能にする、コンピューターシステム。
  11. 請求項6記載のコンピューターシステムにおいて、前記構成設定はアルゴリズム識別子を含み、前記アルゴリズム識別子は、前記1又は複数のコンポーネントプログラムに特定のアルゴリズムを起動するように命令し、よって、前記サービスアプリケーションの実行に影響を与える、コンピューターシステム。
  12. 請求項6記載のコンピューターシステムであって、前記サービスアプリケーションの動作をサポートする1組の依存サービスを更に備え、前記サービスアプリケーションはアプリケーションサービスプロバイダーによって管理され、前記1組の依存サービスは前記アプリケーションサービスプロバイダーとは別個の少なくとも1つのエンティティーによって管理される、コンピューターシステム。
  13. 請求項12記載のコンピューターシステムにおいて、前記構成設定はリソース配置を含み、前記リソース配置は前記1又は複数のコンポーネントプログラムが前記第1のコンピューティングデバイス及び前記第2のコンピューティングデバイスの外部に配置された前記1組の依存サービスと活動を協調することを可能にする、コンピューターシステム。
  14. 請求項13記載のコンピューターシステムにおいて、活動を協調することは、
    前記1組の依存サービスと前記1又は複数のコンポーネントプログラムとの間でメッセージを交換することと、
    前記交換されたメッセージと、前記1又は複数の適合コンポーネントプログラムの前記パラメーターの所に組み込まれた前記定式化値とを比較することと、
    を含む、コンピューターシステム。
  15. 請求項6記載のコンピューターシステムにおいて、前記第1のコンピューティングデバイスと前記第2のコンピューティングデバイスとはデータセンターを構成し、前記データセンターはデータを記憶するメモリーリソースを含み、前記メモリーリソースにあるデータは前記1又は複数のコンポーネントプログラムによってアクセス可能である、コンピューターシステム。
  16. 請求項15記載のコンピューターシステムにおいて、前記構成設定はメモリーリソースアドレスを含み、前記メモリーリソースアドレスは前記1又は複数のコンポーネントプログラムが前記データにアクセスする適切なメモリーリソースを見つけることを可能にする、コンピューターシステム。
  17. インスタンス化方式に従ってデータセンター内で動作するサービスアプリケーションのコンポーネントプログラムを構成するコンピューター化された方法であって、
    サービスモデルに問い合わせることによって構成設定を判断するステップと、
    前記インスタンス化方式にアクセスするステップであって、前記インスタンス化方式は前記サービスモデルを満足させるためにどのコンポーネントプログラムを展開するかを指示し、前記インスタンス化方式は変換マップを提供する、ステップと、
    前記指示されたコンポーネントプログラムを前記データセンター内の複数のコンピューティングデバイス上で展開するステップと、
    前記変換マップに部分的に基づいて前記構成設定を定式化値に変換するステップであって、前記定式化値は予測値を含み、前記予測値は、ユーザーによって提供された資格情報(credential)を前記予測値の中の対応する予測値に一致させる際に、1又は複数のコンポーネントプログラムを介する前記サービスアプリケーションへのユーザーアクセスを可能にするように構成されている、ステップと、
    前記定式化値を、前記展開されたコンポーネントプログラムに自動的に分配するステップと、
    前記展開されたコンポーネントプログラムと関連付けて、前記分配された定式化値を少なくとも一時的に格納するステップと、
    を含む、方法。
JP2010545043A 2008-01-30 2009-01-07 サービスアプリケーション内でのコンポーネントプログラムの管理 Active JP4966414B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/022,756 US8112771B2 (en) 2008-01-30 2008-01-30 Managing component programs within a service application
US12/022,756 2008-01-30
PCT/US2009/030283 WO2009099694A2 (en) 2008-01-30 2009-01-07 Managing component programs within a service application

Publications (3)

Publication Number Publication Date
JP2011512579A JP2011512579A (ja) 2011-04-21
JP2011512579A5 JP2011512579A5 (ja) 2012-02-02
JP4966414B2 true JP4966414B2 (ja) 2012-07-04

Family

ID=40900553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010545043A Active JP4966414B2 (ja) 2008-01-30 2009-01-07 サービスアプリケーション内でのコンポーネントプログラムの管理

Country Status (11)

Country Link
US (1) US8112771B2 (ja)
EP (1) EP2238533B1 (ja)
JP (1) JP4966414B2 (ja)
KR (1) KR101547847B1 (ja)
CN (1) CN101933000B (ja)
AU (1) AU2009210699B2 (ja)
BR (1) BRPI0906256B1 (ja)
CA (1) CA2710654C (ja)
RU (1) RU2487396C2 (ja)
TW (1) TWI385576B (ja)
WO (1) WO2009099694A2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131644B2 (en) 2006-08-29 2012-03-06 Sap Ag Formular update
US8135659B2 (en) 2008-10-01 2012-03-13 Sap Ag System configuration comparison to identify process variation
US8396893B2 (en) 2008-12-11 2013-03-12 Sap Ag Unified configuration of multiple applications
US8255429B2 (en) * 2008-12-17 2012-08-28 Sap Ag Configuration change without disruption of incomplete processes
US9253020B2 (en) * 2009-06-11 2016-02-02 International Business Machines Corporation Web service interaction in a dynamically extensible business application
KR101209951B1 (ko) * 2011-06-10 2012-12-07 주식회사 캐스트이즈 안드로이드 어플리케이션 실행 요청에 따른 어플리케이션별 연계 작업 사전 수행 장치 및 방법
US20130254757A1 (en) * 2012-03-22 2013-09-26 Shenol YOUSOUF Nesting installations of software products
US10169000B2 (en) 2012-05-30 2019-01-01 Red Hat Israel, Ltd. Provisioning composite applications using secure parameter access
CN104541247B (zh) * 2012-08-07 2018-12-11 超威半导体公司 用于调整云计算系统的系统和方法
US9569274B2 (en) * 2012-10-16 2017-02-14 Microsoft Technology Licensing, Llc Distributed application optimization using service groups
GB2526331A (en) * 2014-05-21 2015-11-25 Vodafone Ip Licensing Ltd Management of resource allocation in a mobile telecommunication network
US9900391B2 (en) 2014-08-05 2018-02-20 Microsoft Technology Licensing, Llc Automated orchestration of infrastructure service blocks in hosted services
WO2016050270A1 (en) * 2014-09-29 2016-04-07 Hewlett-Packard Development Company L.P. Provisioning a service
US10270735B2 (en) 2014-10-10 2019-04-23 Microsoft Technology Licensing, Llc Distributed components in computing clusters
CN105426200B (zh) 2015-10-30 2018-11-09 小米科技有限责任公司 通讯模组固件和插件生成方法及装置
EP3363157B1 (en) * 2016-01-19 2022-03-02 Hewlett Packard Enterprise Development LP Computer system managements
US11171841B2 (en) 2016-01-28 2021-11-09 Hewlett Packard Enterprise Development Lp System for propagating a modification of a first service, in a service graph, to a second service
US11196643B2 (en) 2018-04-04 2021-12-07 Hewlett Packard Enterprise Development Lp State transitions for a set of services
US11281491B2 (en) 2018-11-21 2022-03-22 Hewlett Packard Enterprise Development Lp Execution of services concurrently
CN109697152B (zh) * 2019-03-01 2022-04-05 北京慧辰资道资讯股份有限公司 一种智能生成机柜设备发热大数据的方法及装置
US11765604B2 (en) 2021-12-16 2023-09-19 T-Mobile Usa, Inc. Providing configuration updates to wireless telecommunication networks

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3006551B2 (ja) * 1996-07-12 2000-02-07 日本電気株式会社 複数コンピュータ間の業務分散システム、業務分散方法および業務分散プログラムを記録した記録媒体
US6247056B1 (en) * 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
US6792605B1 (en) * 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
JP2002202928A (ja) * 2000-12-28 2002-07-19 Nec Corp アプリケーションサービスoemシステム
US7039705B2 (en) * 2001-10-26 2006-05-02 Hewlett-Packard Development Company, L.P. Representing capacities and demands in a layered computing environment using normalized values
US7246350B2 (en) * 2002-01-07 2007-07-17 Intel Corporation Dynamic composition and maintenance of applications
JP2003316576A (ja) * 2002-04-25 2003-11-07 Hitachi Ltd アプリケーション制御方法及びその実施装置並びにその処理プログラム
US7797403B2 (en) * 2002-07-12 2010-09-14 Microsoft Corporation Deployment of configuration information
US7216343B2 (en) * 2002-09-20 2007-05-08 International Business Machines Corporation Method and apparatus for automatic updating and testing of software
US20050251786A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation System and method for dynamic software installation instructions
GB0420673D0 (en) * 2004-09-17 2004-10-20 Ibm Data sharing system, method and software tool
JP2006119848A (ja) 2004-10-20 2006-05-11 Fujitsu Ltd ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法
US7827563B2 (en) * 2004-11-03 2010-11-02 Kyocera Mita Corporation Open architecture and interfaces for workflow applications in office document systems
US7590988B2 (en) * 2005-03-08 2009-09-15 Microsoft Corporation Dynamic service generation for legacy components
JP2006252189A (ja) * 2005-03-10 2006-09-21 Hitachi Ltd アプリケーション運用管理システム及び方法
US20060242647A1 (en) * 2005-04-21 2006-10-26 Kimbrel Tracy J Dynamic application placement under service and memory constraints
US20060245354A1 (en) 2005-04-28 2006-11-02 International Business Machines Corporation Method and apparatus for deploying and instantiating multiple instances of applications in automated data centers using application deployment template
US7519711B2 (en) * 2006-06-15 2009-04-14 International Business Machines Corporation Method for middleware assisted system integration in a federated environment
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US8978125B2 (en) * 2006-10-19 2015-03-10 Oracle International Corporation Identity controlled data center
US7886188B2 (en) * 2007-11-20 2011-02-08 International Business Machines Corporation System and method for distributed monitoring of a soap service
JP5745749B2 (ja) * 2008-01-15 2015-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 記憶インフラストラクチャを自動的に管理するための方法および適切な記憶インフラストラクチャ

Also Published As

Publication number Publication date
BRPI0906256A2 (pt) 2015-07-07
JP2011512579A (ja) 2011-04-21
RU2487396C2 (ru) 2013-07-10
TWI385576B (zh) 2013-02-11
US8112771B2 (en) 2012-02-07
AU2009210699B2 (en) 2013-05-23
CN101933000B (zh) 2014-03-05
AU2009210699A1 (en) 2009-08-13
EP2238533A4 (en) 2014-08-06
KR20100105737A (ko) 2010-09-29
BRPI0906256B1 (pt) 2019-11-26
CN101933000A (zh) 2010-12-29
RU2010132155A (ru) 2012-02-10
CA2710654C (en) 2016-07-26
CA2710654A1 (en) 2009-08-13
TW200941342A (en) 2009-10-01
KR101547847B1 (ko) 2015-08-27
WO2009099694A2 (en) 2009-08-13
EP2238533A2 (en) 2010-10-13
US20090193439A1 (en) 2009-07-30
EP2238533B1 (en) 2020-02-19
WO2009099694A3 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
JP4966414B2 (ja) サービスアプリケーション内でのコンポーネントプログラムの管理
CN109194506B (zh) 区块链网络部署方法、平台及计算机存储介质
JP6935496B2 (ja) メッセージングプロトコル通信の管理
KR101652191B1 (ko) 국소적으로 지원되는 클라우드-기반 저장장치
US8327350B2 (en) Virtual resource templates
US10613837B2 (en) Distributed component model
US20100306772A1 (en) Virtual solution composition and deployment system and method
US10922357B1 (en) Automatically mapping natural language commands to service APIs
WO2019055871A1 (en) SYSTEMS AND METHODS FOR DEPLOYMENT ORCHESTRATION OF DISTRIBUTED APPLICATIONS CONTROLLED BY A SET OF RULES
CN113168345A (zh) 云服务的流线型安全部署
JP2013513142A (ja) クラウド・サービス・カタログを用いたサービスの供給
US10891569B1 (en) Dynamic task discovery for workflow tasks
US10013449B1 (en) Validating and non-validating secondary indexes for a table in a non-relational data store
US10715472B2 (en) System and method for unit-of-order routing
US11005719B2 (en) Internet of Things system topology generation
CN111158859A (zh) 基于麒麟操作系统的应用管理系统及其实现与使用方法
Yu et al. Modeling and analysis of mobile cloud computing based on bigraph theory
US10541898B2 (en) System and method for creating, deploying, and administering distinct virtual computer networks
US8583600B2 (en) Deploying directory instances
JP2013524381A (ja) プラットフォーム非依存プレゼンテーションの構成
Zhu et al. Research on the Cloud Services Plat form Architecture of Digital Library Based on Cloud Computing Technology
US10169000B2 (en) Provisioning composite applications using secure parameter access
US10523591B2 (en) Discovering resource availability across regions
CN111444443A (zh) 内容推送服务器及其内容服务的内容推送方法
JP2011008361A (ja) 機器管理装置、機器管理システム、機器設定方法、機器設定プログラム、及びそのプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111207

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20120206

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20120210

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120330

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4966414

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250