JP2004272908A - システムの設計、展開、管理のフェーズを統合する方法 - Google Patents

システムの設計、展開、管理のフェーズを統合する方法 Download PDF

Info

Publication number
JP2004272908A
JP2004272908A JP2004063226A JP2004063226A JP2004272908A JP 2004272908 A JP2004272908 A JP 2004272908A JP 2004063226 A JP2004063226 A JP 2004063226A JP 2004063226 A JP2004063226 A JP 2004063226A JP 2004272908 A JP2004272908 A JP 2004272908A
Authority
JP
Japan
Prior art keywords
environment
definition
instance
sdm
constraints
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004063226A
Other languages
English (en)
Inventor
Galen C Hunt
シー.ハント ガレン
Geoffrey Outhred
アウスレッド ジェフリー
Bassam Tabbara
タッバラ バッサム
Kevin Grealish
グレアリッシュ ケビン
Rob Mensching
メンシング ロブ
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 JP2004272908A publication Critical patent/JP2004272908A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • 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/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Supply And Distribution Of Alternating Current (AREA)

Abstract

【課題】 システムの設計、展開、管理のフェーズを統合する。
【解決手段】 いくつかの態様によれば、システムの設計、展開、管理のフェーズを統合することは、システム定義モデルを使用してシステムを設計することを含む。その後、システム定義モデルを使用して、システムを1つまたは複数のコンピューティングデバイス上に展開し、システムの展開後、システム定義モデルを使用して、1つまたは複数のコンピューティングデバイス上に展開されたシステムを管理する。
【選択図】 図2

Description

本発明は、分散コンピューティングシステムのためのアーキテクチャに関する。
インターネットの使用は、過去数年にわたって爆発的に増加しており、引き続き増加中である。人々は、電子メール、オンラインショッピング、ニュースおよび情報の収集、音楽鑑賞、ビデオクリップ視聴、求職など、ワールドワイドウェブ(または単に「ウェブ」)上で提供される多くのサービスによって非常に快適になった。インターネットベースのサービスに対する需要の増加についていくため、ウェブサイトをホストし、これらのサイトのためのバックエンドサービスを提供し、サイトに関連するデータを記憶するための専用のコンピュータシステムは、著しく増加した。
分散コンピュータシステムのタイプの1つは、データセンタ(インターネットデータセンタ(IDC)やエンタープライズデータセンタ(EDC)など)だが、これは、ネットワークベースのサービスをホストするための多くのコンピュータを収容する特別設計された複合体である。データセンタは「ウェブファーム」または「サーバファーム」という名前で呼ばれることもあるが、通常、温度と湿度が調節された物理的に安全な建物内に、何百台から何千台までものコンピュータを収容する。データセンタは一般に、インターネットアクセス、信頼性のある電力供給、および安全な動作環境を提供する。
今日、大規模なデータセンタは複雑であり、しばしば複数のアプリケーションをホストすることが要求される。例えばウェブサイトの中には、数千台のコンピュータを運用し、多くの分散アプリケーションをホストするものもある。これらの分散アプリケーションは複雑なネットワーキング要件を有する場合が多く、複雑なアプリケーションをサポートするために、オペレータがコンピュータを一定のネットワークスイッチに物理接続すること、ならびにデータセンタ内の配線構成を手作業で構成することが必要である。この結果、アプリケーション要件に適合するように物理ネットワークトポロジを構築するこの作業は、時間のかかる厄介なプロセスになる可能性があり、人為的ミスを被りやすい。
したがって、分散アプリケーションを物理的なコンピューティングシステム上で設計および展開する(deploy)ための、改善された技法が必要とされている。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、効率的にシステムを設計、展開、管理可能な、システムの設計、展開、管理のフェーズを統合する方法を提供することにある。
システムの設計、展開、管理のフェーズを統合することについて本明細書に述べる。
いくつかの態様によれば、システム定義モデルを使用してシステムを設計する。その後、システム定義モデルを使用して、システムを1つまたは複数のコンピューティングデバイス上に展開する。システム展開後、システム定義モデルを使用して、1つまたは複数のコンピューティングデバイス上に展開されたシステムを管理する。
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。各図面を通して、同じ機構を参照する場合には同じ番号を使用する。
以下の開示では、大規模なアプリケーションサービスを有する分散コンピューティングシステムを設計および実現するためのアーキテクチャに関連するいくつかの態様について述べる。この開示は、システム定義モデル(SDM)(サービス定義モデル(SDM)と呼ばれることもある)と、SDMランタイム環境とに関する解説を含む。SDMは、アプリケーション設計者が分散コンピュータアプリケーションおよびデータセンタを抽象的な方式で設計するためのツールおよびコンテキストを提供する。このモデルは、物理的なコンピュータリソースおよびソフトウェアによって最終的に実施されることになるアプリケーションの機能単位を表す要素のセットを定義する。モデル要素には、コンポーネントによって表される機能動作をどのように指定すべきかを指示するスキーマが関連する。
本明細書では、用語「配線」を「接続」、「通信」または「通信関係」と言う場合もある。また、用語「システム」を「モジュール」と言い、用語「リソース空間」を「リソース」と言う場合もある。さらに、用語「アプリケーション空間」を「アプリケーション」と言い、用語「インスタンス空間」を「インスタンス」と言う場合もある。さらに、用語「クラス」を「抽象定義」と言い、用語「ポート」を「エンドポイント」と言い、用語「型」を「定義」と言う場合もある。
図1に、例示的なネットワーク100を示す。ネットワーク100の設定では、複数(x)のコンピューティングデバイス102(1)、102(2)、...、102(x)がネットワーク106に結合されている。ネットワーク106は、様々な従来型のネットワークプロトコル(公衆および/またはプロプラエタリプロトコルを含む)を採用した、様々な従来型のネットワークトポロジおよびタイプ(配線および/または無線ネットワークを含む)のいずれかを表すものとする。ネットワーク106には、例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットの一部、その他を含めることができる。ネットワーク100の設定は、例えばデータセンタ(例えばインターネットデータセンタ(IDC))、オフィスまたはビジネス設定、家庭設定、教育または研究施設、小売または販売設定、データストレージ設定などを含めた、幅広い設定のいずれかを表す。
コンピューティングデバイス102は、デスクトップPC(personal computer)、ワークステーション、メインフレームコンピュータ、サーバコンピュータ、インターネット装置、ゲーム用コンソール、ハンドヘルドコンピュータ、携帯電話、パーソナルディジタルアシスタント(PDA)などを含めた、様々な従来型のコンピューティングデバイスのいずれかとすることができる。1つまたは複数のデバイス102は、同じタイプのデバイスでもよく、あるいは異なるタイプのデバイスでもよい。さらに、複数のデバイスが同じタイプのデバイスである場合でも、複数のデバイスはなお、異なる形で構成することもできる(例えば、2つのデバイス102はサーバコンピュータだが、異なるプロセッサ、異なる容量のランダムアクセスメモリ(RAM)、異なるサイズのハードディスクドライブなど、異なるハードウェア構成を有することもできる)。
1つまたは複数のコンピューティングデバイス102は、ネットワーク100の設定に追加した後で再構成することもできる。例えば、特定のコンピューティングデバイス102が、ある期間にわたって(例えば分、時間、日、月などの単位で)動作して1つの機能を実施し、次いで管理者が、異なる機能が望ましいと決定することもできる(例えば、サーバコンピュータからワークステーションコンピュータへの変更、ウェブサーバからローカルなファイルサーバへの変更)。
図2は、システム定義モデルを使用する例示的なアーキテクチャ200を示すブロック図である。SDMは、システムのライフサイクル全体にわたって使用されるように設計される。システムは、協働して共通の機能を達成することのできる関連するソフトウェアおよび/またはハードウェアリソースのセットである。このようなシステムの一例はアプリケーションであり、アプリケーションは、コンピューティングデバイスによって稼動または実行されて様々な機能を実施することのできる命令のセットを指す。アプリケーションの例としては、ゲームなどの娯楽アプリケーション、ワードプロセッサなどの生産性アプリケーション、電子百科辞典などの参照アプリケーション、ウェブサービスや財務分析に使用できる分散アプリケーションなどが挙げられる。このようなシステムの別の例は、アプリケーション(または別の環境)を展開することのできる環境である。環境は、アプリケーション(または別の環境)の展開先であるソフトウェアおよび/またはハードウェアリソースを指す。このような環境は、後でより詳細に論じるようにレイヤ化することができる。
システムのライフサイクルは通常、3つの主要フェーズ(ステージとも言う)を含む。すなわち、設計または開発フェーズと、それに続く展開またはインストールフェーズと、それに続く運用または管理フェーズである。このモデルは、システムライフサイクルの3つのフェーズすべてに適用されるので、システムライフサイクルの様々なフェーズのための統合ポイントと見なすことができ、3つのフェーズのそれぞれを容易にする。さらに、このモデルを使用することにより、これらのフェーズの間で知識を移すことができる。知識は、システムの管理に関する知識(例えば、設計開発チームが将来のバージョンのためまたは現バージョンの性能改善のためにシステムを修正できるように、設計開発チームにフィードバックされる知識)や、システムの構造、展開要件、動作挙動(vehavior)の知識や、デスクトップからデータセンタへの動作環境の知識や、エンドユーザによって観察されたサービスレベルの知識などである。
一般に、設計フェーズの間、SDMに影響を与える開発ツールを使用して、通信ソフトウェアおよびハードウェアコンポーネントからなるシステムを定義する。システム定義は、必要なリソース、構成、動作特徴、ポリシーなどを含めて、分散システムを展開および運用するのに必要なすべての情報を含む。展開フェーズの間、システム定義を使用してシステムを自動的に展開し、必要なソフトウェアおよびハードウェア(例えばサーバ、ストレージ、およびネットワーク)リソースを動的に割り振り、構成する。同じシステム定義を、異なるホスト環境および異なる規模への展開に使用することができる。管理フェーズの間、オペレーティングシステム中のSDMサービスが、システムを管理するためのシステムレベルのビューを提供する。これにより、新しい管理ツールが、リソース割振り、構成管理、アップグレード、およびプロセス自動化をシステムの視点から推進することができる。
アーキテクチャ200は、SDM定義モデルと、SDM定義モデル内の機能動作を定義するスキーマとを採用する。定義モデルは、異なる様々な種類のデータ構造を含み、これらは「定義」と総称される。SDMの機能は、アプリケーションプログラムインタフェース(API)など、1つまたは複数のプラットフォームサービスを介して開示(expose)される。
システムの設計フェーズの間、開発システム202が、SDM文書204のようなシステム定義を含む文書を生成する。開発システム202は、米国ワシントン州レドモンドのMicrosoft(登録商標)Corporationから入手可能なVisual Studio(登録商標)開発システムなど、様々な開発システムのいずれかとすることができる。SDM文書204は、システムの展開および管理に関係するすべての情報(本明細書では知識とも言う)を定義する。システムを展開または管理する際に必要なまたは使用されるどんな知識も、SDM文書204に含まれる。本明細書では知識を単一の文書として述べるが、別法として複数の文書に分散させて維持してもよいことを理解されたい。
システム定義は、システムを、1つまたは複数のリソース、エンドポイント、関係(relationship)、およびサブシステムの点から定義する。システム定義はSDM文書(例えばXML(Extensible Markup Language)文書)中で宣言される。リソースは、ハードウェアリソースまたはソフトウェアリソースとすることができる。エンドポイントは、システムを越えた通信を表す。関係は、システム、リソース、エンドポイントの関連を定義する。サブシステムは、完全なシステムとして扱うことができ、通常はより大きいシステムの一部である。
システム定義は、動的システムの基本構造を取り込む。これは、他のすべての情報がその上に追加される骨格と見なすことができる。この構造は一般に、開発プロセスの間に設計者および開発者によって指定され、通常は頻繁に変更されることはない。構造の他に、SDMは、展開情報、インストールプロセス、構成やイベントや計測のためのスキーマ、自動化タスク、ヘルスモデル、運用ポリシーなども含むことができる。分散システムの存続期間を通して、運用スタッフ、ベンダ、および/または管理システムがその他の情報を追加することができる。
SDM文書204は、システムが展開および/または実行されることになる環境が満たさなければならない1つまたは複数のシステム制約(要件とも言う)を含む。環境自体も、SDM文書を使用して記述される。このような環境は、単一のコンピューティングデバイスとすることもでき、あるいは、コンピューティングデバイスの集合(例えばデータセンタ)、アプリケーションホストの集合などとすることもできる。異なるシステムを異なる環境にインストールすることができる。例えば、データセンタが50台のコンピューティングデバイスを含む場合に、あるシステムをこれらのコンピューティングデバイスのうちの5台に展開し、別のシステムをこれらのコンピューティングデバイスのうちの35台に展開することができる。これらの要件は、次のような様々な形をとる可能性がある。すなわち、システムの展開先であるコンピューティングデバイスに関するハードウェア要件(例えば最低プロセッサ速度、最低メモリ容量、最低ハードドライブ空き容量、利用可能なネットワーク帯域幅の最低量、利用可能な特定のセキュリティ機構など)や、システムの展開先であるコンピューティングデバイスに関するソフトウェア要件(例えば特定のオペレーティングシステム、共にインストールしなければならない1つまたは複数の他のアプリケーション、特定のシステムおよび/またはオペレーティングシステムをどのように構成するかに関する指定、使用される特定タイプのセキュリティまたは暗号化など)や、システムの展開先であるコンピューティングデバイスに関するその他の要件(例えば利用可能なセキュリティ鍵、施行しなければならないデータセンタポリシー、使用される認証、環境トポロジなど)等である。
要件は別な方向に向かう可能性もある。すなわち、環境が、インストールされるシステムの構成に対して制約または要件を有する可能性もある(例えば環境の基準またはポリシーを実施するため)。これらは、環境のオペレータによって生み出される「明示的な」要件とすることができ、システムが有さなければならない特定の設定または構成や、システムが提供またはサポートしなければならない特定の機能や、システムがサポートしなければならない特定のセキュリティ機構などである。これらはまた、環境の特定の構成によって生じる「暗黙的な」要件とすることもできる。例えば、環境中のホストコンピューティングデバイスが特定タイプのファイルシステムを使用している場合に、このファイルシステムを使用して実施することができないアクションがある場合がある(別のファイルシステムを使用すればこれらのアクションを実施することができるにもかかわらず)。
システムの設計および開発フェーズの間、SDM文書204を使用して、1つまたは複数の特定の環境についてシステムを妥当性検査することができる。これは両方向の妥当性検査である。すなわち、システムを環境について妥当性検査し、環境をシステムについて妥当性検査する。環境をシステムについて妥当性検査することは、SDM文書204中で識別される要件を環境と比較して、すべての要件が環境によって満たされるかどうかを決定することによって行うことができる。システムを環境について妥当性検査することは、SDM文書中で環境に関して識別される要件をシステムと比較して、すべての要件がシステムによって満たされるかどうかを判定することによって行うことができる。すべての要件が環境およびシステムによって満たされる場合、設計者または開発者には、システムをこの環境で展開できること、およびシステムがこの環境で実行されることがわかる。しかし、すべての要件が環境および/またはシステムによって満たされない場合は、設計者または開発者には、任意選択で、満たされなかった要件が通知され、それにより、システムをこの環境で展開して実行するためにどんな変更をSDM文書204に(かつそれに対応してシステムに)および/または環境に加えるべきかが通知される。
SDM文書204に含まれるシステム展開に関する知識は、システムをどのように1つまたは複数の環境で展開するかを記述する。SDM文書204は、コントローラ206に利用可能とされ、コントローラ206は、展開モジュール208および管理モジュール210を備える。ある実施形態では、SDM文書204、ならびにシステムをインストールするのに必要なシステムファイルすべて(例えばバイナリ、データ、ライブラリなど)は、SDU(システム定義ユニット)と呼ぶ単一のコンテナ(例えば単一のファイル)に共にパッケージされる。コントローラ206は、図1のコンピューティングデバイス102の1つまたは複数とすることができる。例えば、図1の単一のデバイス102が特定のデータセンタ用のコントローラであってもよく、あるいは、コントローラの任務は複数のデバイス102に分散されてもよい。
展開モジュール208は、システムを環境中に展開するのに使用されるサービスを含む。図2では、システムが展開される環境は、1つまたは複数のターゲットデバイス212である(またはこれらのデバイス上に展開されている)。システムはまた、コントローラ206に展開することもできる。展開モジュール208のこれらのサービスには、1つまたは複数のシステムを環境中にインストールまたは展開するために呼び出すことのできる1つまたは複数の関数が含まれる。
SDM文書204には、異なる環境で展開するための異なる知識を含めることができる。この展開知識は、環境中で行う必要のある任意の変更(例えば、システムレジストリ、作成する必要のあるフォルダ、ディレクトリ、またはファイル、特定の値に設定する必要のある、コンピューティングデバイスのその他の設定パラメータまたは構成パラメータなどの変更)、ならびに、環境中でどのファイル(例えばプログラムファイルおよび/またはデータファイル)をコンピューティングデバイスにコピーする必要があるか、またこれらのファイルに対して実施する必要のある任意の操作(例えば圧縮解除および/または暗号化解除が必要なファイルもある)を記述する。多くの実装形態では、SDM文書204中の展開知識は、例えば、システムのための通常のセットアッププログラムまたはインストールプログラム中に現在みられるような情報に類似する情報を含む。
展開プロセスの間、コントローラ206は、展開に関与するソフトウェアおよびハードウェアリソースの、ならびにこれらの関係の、記録または記憶を生成する。この記録または記憶は、後で管理フェーズの間にコントローラ206が使用することができる。
管理モジュール210は、システムが環境にインストールされた後でシステムを管理するのに使用されるサービスを含む。サービス管理モジュール210のこれらのサービスには、環境中でシステムを管理するために呼び出すことのできる1つまたは複数の関数が含まれる。SDM文書204に含まれるシステム管理に関する知識は、システムをどのように1つまたは複数の環境で管理するかを記述する。
SDM文書204には、システムを異なる環境で管理するための異なる知識を含めることができる。管理知識には、システムの管理または運用で使用される任意の知識が含まれる。管理には、例えば、構成(および任意選択で後の再構成)、パッチおよびアップグレード、保守作業(例えばバックアップ)、ヘルス監視または性能監視などが含まれる。
展開されたシステムに対する変更は、管理モジュール210を介して行う。管理モジュール210のサービスには、環境中に展開された1つまたは複数のシステムに変更を加えるために呼び出すことのできる1つまたは複数の関数が含まれる。管理モジュール210を介してこれらの変更を行うことにより、いくつかの利点を実現することができる。このような利点の1つは、加えられた変更の記録をコントローラ206が維持できることである。コントローラ206は、システムについてのSDM文書204のコピーを維持し、システムに加えられたどんな変更もSDM文書204に記録することができる。あるいはコントローラ206は、システムに加えられた変更に関する別個の記録を維持してもよい。
コントローラ206によって維持されるこの変更記録は、システムおよび/または環境に関する問題を解決するときや、ハードウェア障害によりシステムを再インストールしなければならないとき(システムを再インストールして障害時と同じパラメータ/設定で稼動するよう元に戻せるようにする)などに、後続の操作を単純化することができる。コントローラ206によってこのような変更が行われるようにすることにより、またコントローラ206が記録を維持するようにすることにより、いくらかの人為的ミスを環境からなくすことができる(例えば、変更を行う管理者が変更を帳面に記録することになっているのにそうするのを忘れた場合、この変更の記録はないことになる。この問題は、コントローラ206に記録を維持させることによって解決する)。
さらに、コントローラ206を介してシステムに変更を加えることにより、またコントローラ206を介してシステムを展開することにより、コントローラ206は、環境と、環境中に展開されるシステムと、これらの間の対話とに関する知識のリポジトリとして働くことができる。環境および/または環境中に展開されるシステムに関する知識は、コントローラ206から容易に得ることができる。この知識を使用して、中央のコントローラ206に記憶されている状態を環境中の被制御デバイスが反映していることを妥当性検査することにより、被制御環境の一貫性を保証することができる。
状況によっては、コントローラ206を介さずに、システムおよび/または環境に変更が加えられる場合もあることに留意されたい。例えば、コンピューティングデバイスが誤ってオフにされたり、作動しなくなったりすることがある。これらの状況では、このような変更をコントローラ206中に反映させるよう試みる。これらの変更は、自動的にコントローラ206中に反映させることもでき(例えば、デバイス障害を検出して、このような障害を管理モジュール210のサービスを使用してコントローラ206に通知するシステムを稼動させることができる)、あるいは手動でコントローラ206中に反映させることもできる(例えば、管理者が管理モジュール210のサービスを使用して、このような変更をコントローラ206に通知することができる)。あるいは、加えられた変更を元に戻し、システムおよび/または環境の一部を、コントローラ206によって記録された所望のシステム状態と再び一致させることもできる。
したがって、SDM文書204は、「生きた」文書と見なすことができる。すなわち、環境の変化および/またはシステムの変化に基づいて、システムのライフサイクルを通して継続的に変化することができる。
SDMは、システムを横軸と縦軸にわたって機能構成することを可能にする。横軸に沿った構成は、システムおよびサブシステムによって行う。縦軸に沿った構成は、「レイヤ」によって行う。アプリケーション、サービス、ネットワークトポロジ、およびハードウェアは、分散システムにおける役割を果たすが、通常は、独立して定義され、異なるチームまたは組織によって所有されている。レイヤ化は、コンポーネントがホストに対して制約セットを定義することによって、またその逆によって達成される。
図3に、例示的なレイヤ化設定を示す。図3には、4つのレイヤすなわちレイヤ302、レイヤ304、レイヤ306、レイヤ308が示されている。4つのレイヤが図3に示されているが、実際のレイヤの数は様々とすることができ、4つよりも多いか少ない可能性もある。さらに、種々のレイヤの内容も、実施形態に応じて様々とすることができる。図3からわかるように、種々のレイヤは他のレイヤの上および/または下に位置する(例えばレイヤ306は、レイヤ304の上にあるがレイヤ308の下にある)。
レイヤ内の種々のシステムおよびサブシステムが、相互に対話することができ、また、異なるレイヤのシステムおよびサブシステムと対話することができる。例えばレイヤ308中のサブシステム310は、レイヤ308中のサブシステム312、ならびにレイヤ306中のサブシステム314と対話することができる。さらに、各レイヤは、より高い次のレイヤに対する環境と見なすことができる。例えばレイヤ306は、レイヤ308中のシステムおよびサブシステムに対する環境であり、レイヤ304は、レイヤ306中のシステムおよびサブシステムに対する環境である。各レイヤ302、304、306、308は、それ自体の関連するSDM文書を有する。
種々のレイヤ302、304、306、308は、異なる内容を表すものとすることができる。いくつかの実施形態では、レイヤ302はハードウェアレイヤであり、レイヤ304はネットワークトポロジおよびオペレーティングシステムレイヤであり、レイヤ306はアプリケーションホストレイヤであり、レイヤ308はアプリケーションレイヤである。ハードウェアレイヤは、レイヤ化されたシステムがその上に構築される物理デバイス(例えばコンピューティングデバイス)を表す(例えば図1のデバイス102)。ネットワークトポロジおよびオペレーティングシステムレイヤは、コンピューティングデバイスのネットワークトポロジ(例えば図1のネットワーク100の設定)、ならびにこれらのコンピューティングデバイス上にインストールされるオペレーティングシステムを表す。アプリケーションホストレイヤは、コンピューティングデバイスにインストールされた、他のアプリケーションをホストすることのできるアプリケーションを表す(例えばSQL(Structured Query Language)サーバ、IIS(Internet information service)(商標)など)。アプリケーションレイヤは、コンピューティングデバイスにインストールされた、他のアプリケーションをホストしないアプリケーションを表す(例えばゲームなどの娯楽アプリケーション、ワードプロセッサなどの生産性アプリケーション、電子百科辞典などの参照アプリケーション、ウェブサービスや財務分析に使用できる分散アプリケーションなど)。
図4は、システムのライフサイクル全体にわたってSDMを使用するための例示的なプロセス400を示すフローチャートである。図4のプロセス400の様々な動作は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せにおいて実施することができる。
最初に、SDMに基づいてシステムを設計する(動作402)。システムは、システムが環境中で展開され実行されるために環境が満たさなければならない要件、ならびにシステムの展開および管理に使用されるその他の知識を含むように設計する。この知識は、システムに関連するSDM文書に含まれている。設計後、任意選択で、SDMを使用してシステムを妥当性検査することができる(動作404)。この妥当性検査により、設計者または開発者は、妥当性検査している環境でシステムを展開および実行できることを検証することができる。上で論じたように、システムをシステムの展開先である環境に対して妥当性検査するだけでなく、環境をシステムに対して妥当性検査することも行う。特定の環境についての妥当性検査が失敗した場合は、追加の設計ステップを実施して、システムをこの環境で実行できるようにシステムを改変することができる(あるいは環境を改変するステップを実施することができる)。
妥当性検査の後、SDMを使用してシステムを展開することができる(動作406)。システムを環境中に展開するときは、システムを、後でこの環境で実行することができるように環境中にインストールする。システムをインストールするのに使用される知識は、システムに関連するSDM文書に含まれている。展開後、SDMを使用してシステムを監視および/または管理する(動作408)。システムに関連するSDM文書中の知識は、システムをどのように監視および/または管理するかを識別し、システムは、この知識に従って環境内で監視および/または管理される。
図4のプロセス400は、アプリケーションとしてのシステム、ならびに環境としてのシステムで使用することができる。例えば、アプリケーションをその環境のSDMに対して妥当性検査することができる(例えば、図3のレイヤ308中のアプリケーションを、図3のレイヤ306の環境に対して妥当性検査する)。別の例として、オペレータまたはシステム設計者が、環境(例えば図3のレイヤ306またはレイヤ304)を設計し、これらの環境を、その展開先である環境(例えばそれぞれレイヤ304および302)に対して妥当性検査することができる。
システムおよび/または環境に対する制約をランタイムの間に(システムが監視/管理されている間に)使用して、システムおよび/または環境に対する変更をランタイムの間に妥当性検査することもできる。このようなランタイム妥当性検査により、例えば、ある環境のオペレータが、環境に対する変更がどのように実行中のシステムに影響するかを判定することができ、あるいはシステム設計者が、システムに対する変更がどのように環境中のその実行に影響するかを判定することができる。
以下の解説では、ランタイムに関するフローおよび設定フローに言及する。フローは、分散システムの各部分の間で構成情報を渡すのに使用される(例えば、開発者がある位置の構成情報を指定できるようにする。または、オペレータが単一のエントリだけを提供できるようにする)。フローはまた、システムの各部分の間の設定データのフローを追うことによって構成に対する変更の影響を判定するのにも使用される。
図5に、SDMランタイムを使用する例示的なアーキテクチャ500を示す。アーキテクチャ500は、図2のアーキテクチャ200の一例であり、SDMランタイム510と、後で「例示的なSDM実装形態」の章で論じるSDMの例示的な実装形態とを使用する。SDMランタイム510は、SDMファイルを受領して妥当性検査し、SDU(システム定義ユニット。1つまたは複数のSDMファイルおよびそれらに関係するファイルのパッケージ)をロードし、SDM変更要求を生成して実行し、SDMベースのシステムをターゲット環境に展開するための、コンポーネントおよびプロセスのセットを含む。このランタイム機能により、SDMを使用して記述されたシステムを定義および妥当性検査し、コンピューティングデバイスのセットに展開し、管理することができる。
SDMは、後で「例示的なSDM実装形態」の章でより詳細に論じるが、分散システム(モデル化システム)中のコンポーネントの構成、対話、および変更の記述(description)をサポートするように設計される。SDMは、オブジェクト関係(relational)モデルに基づく。「定義」が、システム中に存在するエンティティを記述し、「関係(relationship)」が、様々なエンティティ間のリンクを識別する。定義および関係はさらに、SDMに関連するセマンティクス情報を取り込むように定義される。具体的には、定義はコンポーネント、エンドポイント、リソースに分けられる。関係は、接続(通信とも言う)、包含、ホスティング、委任、参照に分けられる。定義および関係に関するこれ以上の詳細は後で提供する。
SDMは「抽象定義」を含む。これは、システムの各部分の共通範疇化と、幅広いシステムのためのツールサポートと、設計時の定義チェックのための基盤とを提供する。抽象定義のセットは、サービス設計のための包括的な基盤を提供する。「具象定義」が、実際のシステム設計またはデータセンタ設計の各部分を表す。具象定義の生成は、抽象定義を選択し、具象定義のメンバとそのプロパティの設定値とを定義する実装を提供することによって行う。分散アプリケーションは、これらの具象定義の集合を使用して生成する。
SDMは「制約(constraint)」も含む。制約は、関係のインスタンスが参与することのできる許容される関係のセットに基づく制限をモデル化する。制約は、関係に関与するオブジェクトの構成に応じた要件を記述する際に有用である。例えば、制約を使用して、通信プロトコルの両端の参与者が互換性のあるセキュリティ設定を使用しているかどうかを判定することができる。
ターゲットシステムに対する変更を実施するために、SDMは、「変更要求」またはCRと呼ばれる、必要とされる変更の宣言記述を使用する。SDMは、「SDM実行モデル」の一部として変更要求を展開(expand)、妥当性検査、および実行するのに使用されるプロセスを定義する。
「インスタンス空間」は、管理されるアプリケーションの所望状態と現在状態の両方を取り込む。インスタンス空間中の変更は、追跡され、その変更を開始した変更要求に関連付けられる。インスタンス空間は、SDMランタイム内に記憶され、モデル化システムの現在状態を反映する。ランタイムは、生成されたインスタンスと、これらのインスタンス間の関係との完全な記録を含む。各インスタンスにはバージョン履歴が関連し、バージョン履歴中では、各バージョンが変更要求にリンクされている。新しいインスタンスを生成するプロセスは、変更要求によって開始される。変更要求は、既存のインスタンスの特定メンバに関連する定義および関係に対する、生成、更新、削除要求のセットを定義する。
以下は、図5のコンポーネントがどのように協働するかについての簡単な機能上の解説である。オペレータまたは管理者が、データセンタのトポロジなど、アプリケーションを展開(deploy)できる環境を記述することができる。オペレータまたは管理者は、環境を記述するSDMファイルを作成するが、このファイルは、「論理インフラストラクチャ」(LIM)502、あるいはデータセンタ記述またはデータセンタモデルと呼ばれる。このSDMファイルは、米国ワシントン州レドモンドのMicrosoft(登録商標)Corporationから入手可能なVisual Studio(登録商標)開発システムなど、様々な開発システムのいずれかを使用して生成することができる。
さらに、アプリケーション開発者は、Visual Studio(登録商標)開発システムなどの様々な開発システムのいずれかを使用して、自分のアプリケーションを設計および開発することができる。開発者は、アプリケーションのコンポーネントと、これらのコンポーネントがどのように相互に関係するかを定義するので、アプリケーション記述をデータセンタ記述502に対して妥当性検査することができる。これを「設計時妥当性検査」とも呼ぶ。
アプリケーションが完成すると、開発者は記述をSDMに保存し、アプリケーションがSDU504として展開されるようにアプリケーションのパッケージングを要求する。SDUは、アプリケーションSDMと、アプリケーションをインストールするのに使用されるアプリケーションバイナリおよびその他の参照ファイルとを含む。
LIM502およびSDU504は、展開(deployment)に向けて、コントローラデバイス520の展開ツール506に供給される。展開ツール506は、オペレータが所望のSDU504をロードできるようにするためのユーザインタフェース(UI)を備える。展開ツール506は、CR生成モジュール530と協働して、SDU504に関連するアプリケーションを、SDU504内のSDM中の情報に従ってインストールする。さらに、SDU504からのSDM定義およびインスタンスが、SDMランタイム510のSDM記憶域(store)508にポピュレートされる。SDUは、SDMランタイム510中でSDU管理モジュール540によって管理され、SDU管理モジュール540は、ランタイム510の他のコンポーネントおよびターゲット522がSDUの適切な部分を利用できるようにする。
オペレータはまた、展開中のアプリケーションの展開先であるターゲット522(例えばターゲットコンピューティングデバイス)に対してオペレータがどんなアクションを取りたいかを指定することができる。オペレータは、展開ファイルを介してこれを行うことができ、この展開ファイルは、本明細書では変更要求(CR)とも呼ばれる。CRは、1つまたは複数のエンジン512、514、516、518を通して実行される。一般に、CR展開エンジン512は、CRを展開して、関連するすべてのコンポーネントならびにそれらの接続およびアクションを識別する。値フローエンジン514は、コンポーネントに関する値(接続ストリングなど)をフローする。制約チェックエンジン516は、環境とアプリケーションとの間の制約をチェックする。アクション順序付けエンジン518は、CRに関する必要なすべてのアクションの順序を指定する。
システムに対する変更(アプリケーションの展開を含む)、またはモデルの妥当性検査を開始するために、オペレータまたはプロセスは、CRをサブミット(submit)する。CRは、オペレータがランタイム510中のインスタンスを介して実施したいアクションのセットを含む。これらのアクションは、例えば生成アクション、更新アクション、および/または削除アクションとすることができる。
ユーザまたはオペレータによって開始される変更要求に加えて、展開/自動生成の変更要求があるものとすることもでき、これは、後でより詳細に論じる展開プロセスの一部として生成される。変更要求は、そのソースにかかわらず、完全に展開されチェックされた後で、ターゲットインスタンスの発見、インストール、アンインストール、変更などのアクションをターゲット522に送ることによって実行される。
CRは、グループとして完了または失敗する原子アクションセットとして扱われる。これにより例えば、制約チェックエンジン516は、妥当性をテストするときにすべてのアクションを考慮することができる。
設計時妥当性検査では、CRは、SDMコンパイラ528によって生成され、SDMファイル中の各SDMコンポーネントの1つまたは最小限を含むことになる。この、インスタンス生成コマンドのCRは、CR展開エンジン512、値フローエンジン514、および制約チェックエンジン516の中をフローする。この3つのフェーズで見つかったエラーは、ユーザが使用している開発システムを介してユーザに返される。
展開時は、オペレータは、展開ツール506によって提示されるUI(user interface)でCRを生成する。CRは、SDMランタイム510中のすべてのエンジン512、514、516、518の中をフローし、適切なアクションおよび情報がCR実行モジュール532から適切なターゲット522に送られ、ターゲット522で要求が実行される(例えばアプリケーションがインストールされる)。特定のインストールの場合の適切なターゲット522は、通常、アプリケーションがインストールされることになるターゲットである。
CRの処理を開始する際、定義解決フェーズで、CR生成モジュール530は、変更要求の中で参照されるすべての定義およびメンバを解決する。変更要求は、これらがすでにランタイム510によってロードされていると見なす。これらが存在しない場合は、CR生成モジュール530はロード/コンパイルアクションを開始する。CR生成モジュール530はパス解決フェーズも実施し、変更要求内の、既存のインスタンスおよび生成アクションによって定義されたインスタンスへの参照を解決する。
CR展開エンジン512によって実施される展開は、所与の変更要求について、この要求を実行するのに必要な残りのすべてのアクションをポピュレートするプロセスである。一般にこれらのアクションは、定義インスタンスおよび関係インスタンスに対する構築(construction)アクションおよび破壊(destruction)アクションである。オペレータは任意選択で、インスタンスを構築または破壊するのに必要なすべてのアクションに関する詳細を提供することもでき、あるいはこのプロセスの一部は自動化することもできる。例えばオペレータは、メンバ(例えばbyReferenceメンバ)に対するアクションを識別することにより、オペレータが望む変更に関するキー情報を提供する。すると、ネストされたメンバ(例えばbyReferenceメンバおよびbyValueメンバ)と関係に対して、アクションの残りが埋められる。別の例として、自動化された展開は、外部リソースマネージャを参照することもでき、外部リソースマネージャは、利用可能なリソースを有するデバイスを選択することや、それが必要とするデータに近いアプリケーションを突き止めることなどに基づいて、展開決定を行うことができる。
CR展開エンジン512は、「自動記述(writing)」も実施する。自動記述の間、CR展開エンジン512は、SDM中で指定されているコンポーネントおよび複合コンポーネントのスケール不変のグループ化を分析し、コンポーネントが要求のレベルにスケールされたときにコンポーネントがどのようにグループ化され相互接続されるべきかを判定する。
CR展開エンジン512は、値(value)メンバ展開、参照(reference)メンバ展開、および関係展開も実施する。
値メンバ展開は、すべての非参照定義メンバを識別することを指す。これらのメンバのカーディナリティ(cardinality)が示され、必要なパラメータはすべてわかるので、各メンバごとに、親の生成中であるメンバについては生成要求が変更要求に追加される。変更要求が破壊動作を含む場合は、それらに含まれるすべてのインスタンスについて破壊動作が追加される。
参照メンバ展開は、参照メンバを指す(非参照定義メンバとは反対に)。参照メンバのカーディナリティはしばしば未定義であり、参照メンバは、インスタンスが構築されるための値を必要とする展開時設定を有する可能性がある。したがって、参照メンバ(例えばbyReferenceメンバ)を展開するプロセスは、インスタンスに関する情報として、ランタイムが提供できるよりも多くの情報を必要とする可能性がある。
参照メンバ展開には、発見と呼ばれるプロセスが関係するが、これは、すでに展開されたインスタンスを見つけるのに使用されるプロセスである。発見は、通常は環境のオペレータによって開始されるアクションである。例えばインストール要求の間、CR展開エンジン512は、インスタンスがすでに存在するかどうかを判定し、存在する場合は何が存在するかを判定し、存在しない場合はそれを生成する。コントローラ520上のインスタンスマネージャ(IM)534が、ターゲットデバイス522上のインスタンスマネージャ526と通信して、発見プロセスを開始する。発見プロセスは、インスタンスに関するデータをターゲットデバイス522からコントローラ520に返す。
発見のプロセスは、構築または更新アクションの一部として参照定義メンバをポピュレートする。通常、発見をサポートするオブジェクトマネージャ(発見を実施もするインスタンスマネージャ)に関する参照メンバだけが、このプロセスに参与する。
新しいインスタンスが発見されたときは、インスタンス特有のキー値を使用して、このインスタンスがまだSDMデータベース中に存在しないことをチェックする。新しいインスタンスであることがわかれば、発見されているメンバの定義に従ってインスタンスを分類する。インスタンスがメンバにマッチしない場合、または曖昧なマッチがある場合は、メンバ参照は空白のままにされ、インスタンスはオフラインおよび不完全としてマークされる。
関係展開は、構築されることになる定義インスタンスがすべてわかった後で、定義インスタンスを共にバインドする関係インスタンスを生成することを指す。定義インスタンスの破壊中である場合は、定義インスタンスを参照するすべての関係インスタンスを削除する。
関係を生成するには、メンバ空間を使用して、インスタンス間に存在すべき関係の構成を識別する。定義メンバが1よりも大きいカーディナリティを有する場合、関係のトポロジは基底関係定義から推論する。例えば、通信関係の場合は「自動記述」を実施することができ、ホスト関係の場合は、ホスティング関係に関連するアルゴリズムに基づいてホストを選択する。
フローステージの間、値フローエンジン514は、すべての関係インスタンスにわたってフローを評価する。値フローエンジン514は、改変されたパラメータフローの影響を受けたインスタンスについて、変更要求に更新要求を追加することができる。値フローエンジン514は、変更要求の結果として設定が更新されたインスタンスのセットを判定することにより、フローを評価する。これらのそれぞれにつき、修正された設定に依存する送出設定フローがあればそれを評価し、変更されたインスタンスのセットにターゲットノードを追加する。このプロセスは、そのセットが空になるまで、またはそのセットが循環を含むまで継続する。
フローステージの後、重複検出のプロセスを実施する。重複検出は、図5に示すエンジンのうちの1つ(例えば値フローエンジン514や制約チェックエンジン516)によって実施することもでき、あるいは、図5に示していない別のエンジンによって実施することもできる(例えば重複検出エンジンをSDMランタイム510に含めることができる)。重複検出のプロセスは、展開されたインスタンスを、SDMデータ記憶域中にすでに存在するインスタンスと照合する。例えばこのプロセスは、別のアプリケーションが共有ファイルをインストールしたかどうかを検出する。すでに存在するインスタンスが検出されたときは、存在するインスタンスのバージョンに応じて、いくつかのアクションの1つを実施することができる。すなわち、インストールを失敗にすること、インスタンスを参照カウントすること、インスタンスをアップグレードすること、またはインストールを並行して実施することができる。
制約チェックエンジン516は、制約評価フェーズを実施する。このフェーズでは、モデル中のすべての制約をチェックして、変更要求が処理された後でもこれらがまだ有効となるかどうかを調べる。
制約チェックエンジン516が制約評価フェーズを終了した後には、完全なアクションリストが利用可能である。したがって、アクション順序付けエンジン518は、コンポーネント間の関係を使用して、有効な変更順序付けを判定することができる。この判定は、様々なアルゴリズムのいずれかを使用して行うことができる。
アクション順序付けエンジン518が順序付けを終了すると、マシン特有の順序付けされたアクションセットのサブセットを配信することによって展開を実施することができる。アクションがマシンによって順序付けされグループ化された後、アクションと、インスタンス情報を含むランタイムのSDM記憶域508の必要部分のコピーとが、ターゲットコンピューティングデバイス522に送られる。SDMは、一時的にターゲットデバイスの記憶キャッシュ538に記憶することができる。
ターゲットコンピューティングデバイスは、SDMランタイム510と通信するSDMランタイムのターゲット部分536を備える。ターゲットコンピューティングデバイス522はエージェントも備えており、このエージェントは、実行エンジン524を備え、ターゲットデバイス上の適切なインスタンスマネージャ(IM)526と通信して、生成、更新、削除アクションなどの変更をターゲットに対して行うことができる。各アクションは、原子呼出しとしてインスタンスマネージャ526に送られる。インスタンスマネージャ526は、ステータスメッセージを返し、アクションによってはデータも返す(例えば発見の場合)。すべてのアクションがターゲット522上で完了すると、ターゲットのエージェントは、エラーがあればエラーと、ステータスとをコントローラ520に返す。次いでコントローラ520は、この情報を使用してランタイムのSDM記憶域508を更新する。
上で論じたように、変更は、影響を受ける関係に基づいて変更要求を配信可能部分に分解することによって行われる。すべての部分が完了すると(あるいは1つまたは複数の部分が失敗した後で)、ランタイム510中で結果が照合され、概要がオペレータに返される。失敗の場合は、すべてのアクションを「ロールバック」することができ、システムを変更開始前の状態に戻すことができる。
いくつかの実施形態では、上で論じた設計時妥当性検査の間、SDMコンパイラ528がSDMファイルを受け取り、テストCRを生成し、SDMランタイムの展開エンジン、値フローエンジン、および制約チェックエンジンを通してテストCRを実行し、エラーがあればエラーを開発システムに返す。このプロセスにより、展開に向けたSDM妥当性検査が、設計時の間に開発者にもたらされる。
SDMランタイム510および/またはコントローラ520への公開インタフェースは、オブジェクトモデル(API)ライブラリを介する。このライブラリは、マネージドコードオブジェクトモデルであり、以下の項目の実施を可能にする。
・ランタイム内でSDMを管理する。−SDMファイルをランタイムにロードすることができる。SDMは不変であり、一度に1つロードされる(すなわち、ファイルの一部だけ(例えばSDMファイルからの個々の定義、クラス、またはマッピングの1つ1つ)ではなく、1つのSDMファイルをロードすることができる)。SDMをランタイムから削除することができ、ランタイム内のSDMについてのXML文書を作成することができる。
・ランタイムによって知られるSDUを管理する。
・SDM定義を管理する。−SDM要素を見つけて検討する(ランタイムにロードされたSDMから)。新しいSDMをオーサリングするために提供される公開APIはない(すなわちこれは、SDMの不変要素に対する読出し専用オブジェクトモデルである)。これは、SDM、SDU、識別、バージョン、クラス、定義、バインド/マッピング、およびバージョニングポリシーを含む。
・SDMインスタンスを管理する。−コンポーネント、エンドポイント、リソース、および関係のインスタンスを見つけて検討する。インスタンス空間では、各インスタンスを、GUID、安定パス、またはアレイベースのパスで識別することができる。パスはストリングであり、相対的とすることができる。相対パスを含めたこれらの識別子により、変更要求文書などの文書中でインスタンスを見つけて参照することができる。
・インスタンスを操作する。−生成、トポロジ変更、アップグレード、設定変更、削除を含めて、SDMインスタンスに対して変更を行う。インスタンス変更は変更要求の範囲内で行われ、変更要求は、エラーまたは制約違反があれば要求が完全に失敗するように、更新の原子単位を提供する。インスタンス要求はまた、インスタンスが一時的にホストへのバインドなしでも存在できるようにする。というのは、要求がコミットされるときはインスタンスはホストを有さなければならないからである。また、単一のコンポーネントのインストールまたは設定に影響を与える多くの操作が行われることを可能にし、単一の更新がコンポーネント上で行われるように、インストールまたは設定の更新がコミットまで延期されるようにする。変更要求のコミット前またはコミット時にSDMモデルチェックを実施し、モデル違反または制約違反があればコミットは失敗する。
・変更要求をロードする。−変更要求は、インスタンス空間操作のセットを提示する文書、例えばXMLファイルである。この文書は、相対パスを利用して、アプリケーションインスタンスを生成または削除するための再使用可能「スクリプト」となることができる。
・変更要求を見つけて検討する。−インストール/更新タスクおよびすべてのエラー情報を得ること、ならびに要求の影響を受けるコンポーネントのインストール/更新を再試行することを含む。
・データベース中の変更要求から変更要求文書を生成する。このような文書はいくぶん移植性がある。
・進行状況、ログ、または更新されたステータスなど、変更要求タスクに関するイベントの通知に申し込む。これらのイベント加入の存続期間は、クライアントライブラリをロードしたプロセスの存続期間によって制限される(すなわちこれらは定期CLRイベントである)。
SDMランタイムエンジンは、SDMモデル、およびAPIによって表面化された関数に対して、推論を実施する。ライブラリは、SDMをロードする、コンポーネントインスタンスを生成する、SDM全体を得る(SDMエンティティを検討するため)など、かなり粗な呼出しを使用してウェブサービスとしてランタイムエンジンに通信する。このウェブサービスに関する多くのパラメータのフォーマットは、SDMファイルの場合と同じスキーマを有するXMLである。エンジンはまた、許可に対するチェックも実施することができる。
コントローラ520は、インスタンスマネージャ(IM)を利用することができ、IMは、モデル中の任意の定義または関係に関連付けることができる。IMは、以下の役割の1つまたは複数を実施することができる。
・インスタンスの展開をサポートする。
・インスタンスが展開された後のインスタンスの妥当性検査をサポートする(監査)。
・ランタイムを介して展開されたのではない展開済みインスタンスの発見をサポートする。
・設定値のフローをサポートする。
・制約の評価をサポートする。
・変更要求の展開をサポートする。
・APIを介してインスタンスをCLRクラスとしてユーザに提示することをサポートする。
展開のために、コントローラ520上のインスタンスマネージャ(IM)プラグインがクラスホスト関係に関連付けられるが、このプラグインは、開発システム中で使用される、クラスに関する設計経験を提供し、SDU504中および設定スキーマ中の関連バイナリを作成するプラグインとは別である。インスタンスマネージャは、インスタンスマネージャインタフェースを実装するかまたは抽象クラスから継承するCLRクラスとして(例えばdllアセンブリ中で)SDMランタイム510に供給される。SDMインスタンスマネージャは、インスタンスマネージャ(IM)プラグインとも呼ばれ、以下の機能をコントローラ520に提供する。
・コンポーネントインスタンスをそれらのホストにインストール、アンインストール、または再インストールするためのファイルおよびコマンド(タスク)を生成する。−変更要求の結果、新しいコンポーネントインスタンス、またはコンポーネントインスタンスの削除、またはアンインストールおよび再インストールが必要なコンポーネント変更が生じるとき、インスタンスマネージャは、SDU504中のインスタンス、ホストインスタンス、コンポーネントに関連する定義、これらの定義に関連するバイナリの設定を利用し、手動実行の準備または展開エンジンを介したディスパッチの準備ができたターゲットサーバ上でインストールまたはアンインストールを実施するのに必要なファイルおよびコマンドを作成する。
・コンポーネントインスタンスの設定が変化したとき、またはそのエンドポイントの1つからのビューが変化したとき(例えば通信関係トポロジが変化したせいで、または見えるエンドポイントが設定変更を有するせいで)、コンポーネントインスタンスを更新するためのファイルおよびコマンド(例えばタスク)を生成する。
・コンポーネントインスタンスのエンドポイント上で見えるエンドポイントインスタンスを、コンポーネントインスタンス上の設定にマッピングする。−SDM中で、コンポーネントインスタンスは、何らかの通信関係トポロジの結果として他のエンドポイントインスタンスが見えるエンドポイントインスタンスを有する。他のエンドポイントインスタンスの詳細は、コンポーネントインスタンスがランタイム時にフェッチすることのできる、したがって通常はそれにバインドすることのできる設定にマッピングされる。例えば、ウェブサイトがデータベースクライアントエンドポイントを有し、したがって通信関係はデータベースを使用して確立することができる。正しく確立されたとき、そのデータベースクライアントエンドポイントは、このサーバエンドポイント上の単一のデータベースサーバエンドポイントインスタンスおよび設定を見ることができる。この情報をインスタンスマネージャが使用して、サーバに関する接続ストリングを、クライアントエンドポイントという名前で構成ファイル中に配置する。この結果、コードは単に、データベースに関する接続ストリングをその構成設定から読む。
・コンポーネントインスタンスを監査するためのファイルおよびコマンド(タスク)を生成する。−監査は、存在および正しい設定を確認する。これはホストインスタンス設定にも適用することができる。
・任意のタスクについてステータスを報告する。−IMは、取り込まれた出力の一部または全部を変換し、タスクのステータスを成功、失敗、または不完全として提供し、任意選択で、不完全に関する進行状況(%または最終応答)、失敗に関する詳細(エラーメッセージ)、および任意のステータスに関する人間に読めるログを提供する。インスタンスマネージャに戻ってタスクの出力を解釈することにより、インスタンスマネージャは、診断に十分なログを作成してそれを人間に読めるように維持しなければならないのではなく、そのタスクをログ構造化情報(例えばXML、さらにはSOAP(Simple Object Access Protocol))にすることが自由にできる。
・インスタンスマネージャはまた、ホストとそれらのゲストとの間の制約チェックを実施するコードを提供することもできる。インストーラは、共通の制約言語、例えばXML、XPath、XQueryに基づく言語を使用することができる。
例示的なSDM実装形態
以下の解説では、SDMの要素を定義するスキーマの一実施形態について述べる。
1 定義
Figure 2004272908
2 アーキテクチャの概観
システム定義モデル(SDM)は、分散システム(モデル化システム)中のコンポーネントの構成、対話、および変更の記述をサポートするように設計される。
SDMは、オブジェクト関係モデルに基づく。オブジェクトを使用して、システム中に存在するエンティティを記述し、関係を使用して、それらの間のリンクを識別する。SDMではさらに、SDMにとって重要なセマンティクスを取り込むようにオブジェクトおよび関係が改良される。具体的には、オブジェクトはシステム、エンドポイント、リソースに分けられ、関係は通信、包含、ホスティング、委任、参照に分けられる。
自分のフィーチャのアーキテクチャを記述せよ。必要なブロック図があれば含めよ。コンポーネント(このフィーチャによってどれが変更されるか、または残されるかを識別するもの)、内部インタフェース、データフロー、およびその他の対話を記述せよ。
抽象定義を使用して、システムの各部分の共通範疇化を提供する。これにより、幅広いアプリケーションに対するツールサポートが可能になり、設計時の型チェックのための基盤がもたらされる。抽象定義のセットは、システム設計のための包括的な基盤を提供すると考えられ、これらは時の経過に伴ってゆっくり変化すると考えられる。
実際のアプリケーションまたはデータセンタの設計の各部分を表す具象オブジェクト定義を構築する。抽象オブジェクト定義を利用して、具象型のメンバとそのプロパティの設定値とを定義する実装を提供する。次いで、これらの定義の集合からシステムを構築する。
制約を使用して、インスタンスが参与することのできる許容される関係のセットに対する制限をモデル化する。制約は、関係に関与するオブジェクトの構成に応じたきめ細かい要件を取り込むのに使用する。例えば、制約を使用して、通信プロトコルの両端の参与者が互換性のあるセキュリティ設定を使用していることを妥当性検査することができる。
ターゲットシステムに対する変更を実施するために、SDMは、変更要求と呼ばれる、必要とされる変更の宣言記述を使用する。SDMは、SDM実行モデルの一部として変更要求を展開、妥当性検査、および実行するのに使用されるプロセスを定義する。
インスタンス空間が、管理されるアプリケーションの所望状態と現在状態の両方を取り込む。インスタンス空間中の変更は、追跡され、その変更を開始した変更要求に関連付けられる。
後続のUML(unified modeling language)図は、SDMモデル中のオブジェクト間の広範な対話を取り込むものである。簡単にするために、これらの対話のいくつかは基底型の間で定義されているが、実際の対話は派生型の間に存在し、その結果、より特殊化されている。例えば、通信関係は抽象エンドポイント定義だけを参照する場合がある。
SDM文書は、文書と、文書中の定義に対するマネージャと、他の文書を参照するインポートステートメントと、定義セットとを記述する情報を含む。
図6に例示的な文書を示す。
図7に示すように、すべてのSDM定義は、共通基底定義から派生し、メンバを含むことができる。定義とメンバの間の関係は、後続の図に示すものよりも複雑にすることもできる。
図8に示すように、メンバは、それらが参照する定義の種類によって分けられる。
設定宣言は、設定定義を参照する。図9に示すように、設定値および値リストが、設定に関する値を提供する。
2.1 SDMアプリケーションのライフサイクル
図10に、いくつかの実施形態による例示的なSDMアプリケーションのライフサイクルを示す。
アプリケーションをVisual Studio(登録商標)環境内で設計および実装する(ブロック1002)。開発者は、コンポーネントを実装し、次いでそれらを複合コンポーネント内で結合する。アプリケーションはSDMファイル内に記述する。開発者のアプリケーションが特定のデータセンタ内で展開されることを検証するために、開発者はアプリケーションを、やはりSDMファイル中に記述されたデータセンタ表現にバインドする(ブロック1004)。この表現は、開発者のアプリケーションコンポーネントのホストに関する定義と、開発者のアプリケーションの構成に対する制約とを含む。バインドが失敗した場合は、開発者はアプリケーション設計を修正することができる。
開発者が自分のアプリケーションに満足すれば、開発者はアプリケーションに署名して公表することができ、したがって、今やアプリケーションには厳密名(strong name)およびバージョンが関連付けられている(ブロック1006)。アプリケーションの公表された形は、ソフトウェア配信ユニット(SDU)と呼ばれる。オペレータは、開発者からのSDUを採用し、アプリケーションをSDMランタイムにロードする(ブロック1008)。アプリケーションをロードするプロセスの間、オペレータは、アプリケーションをバインドしたいと思うデータセンタのモデルを選択する。オペレータは、アプリケーションを展開することを決定すると、展開時パラメータをアプリケーションに供給し、アプリケーションのスケールを判定する(ブロック1010)。これは変更要求を使用して行う。
アプリケーションを展開すると、オペレータはランタイムと対話して、アプリケーションの構成およびアプリケーションの各部分に関する設定を判定することができる(ブロック1012)。ランタイムはまた、アプリケーションの実際の構成が、ランタイム内に記録されている所望の構成とマッチすることを検証することもできる。オペレータは、変更要求をサブミットすることにより、展開したアプリケーションを削除することができる(ブロック1014)。オペレータはまた、サービスパックの削除など、実行中のアプリケーションに加えられた個々の変更をロールバックすることもできる。ブロック1016で、展開されたアプリケーションの一部をウェブフロントエンドなどに対して追加または削除することにより、実行中のアプリケーションの構成を変更することができる。アプリケーションはまた、1つまたは複数のアプリケーションコンポーネントのより新しいバージョンをインストールすることによってアップグレードすることもできる。
2.2 抽象オブジェクト定義および関係定義
抽象オブジェクト定義は、設計時にアプリケーション構成をチェックしてからランタイム時にアプリケーションを展開および管理するために必要な構成単位を定義する。これらの構成単位は、モデル化システム中に存在するエンティティを表す。例えば、抽象オブジェクト定義を使用して、ファイルおよびディレクトリ、ウェブサーバ内部の構成、またはSQLサーバ内部のデータベースがモデル化される。
抽象関係定義は、抽象オブジェクト定義間で行われる可能性のある対話をモデル化するのに使用する。関係は、バイナリおよび有向であり、関係の発現に参与するインスタンスを定義するオブジェクト定義を識別する。関係は、オブジェクト間の包含、構築、通信のリンクをモデル化できるようにオブジェクトを共に結ぶ方法を提供する。
次いで、オブジェクトが制約を使用して、オブジェクトの参与する関係を制約し、関係が制約を使用して、リンクできるオブジェクトを制約する。これらの制約は、関係への参与者の定義と設定の両方をターゲットにすることができる。これにより制約は、関係への参与者を特定の定義から派生するインスタンスに限定することができ、また、インスタンスが特定の範囲に含まれる設定値を有することを必要とすることができる。
オブジェクト定義は、システム、エンドポイント、リソースという3つのカテゴリに分けられる。
抽象システム定義は、アプリケーションの自己完結型かつ独立展開可能な部分を記述するのに使用する。これらの定義は、プロセスおよびマシンの境界を横断することのできる明確に定義された通信チャネルを介して対話するアプリケーション部分を表す。
抽象エンドポイント定義は、システムが開示する(expose)ことのできる通信エンドポイントを記述するのに使用する。これらを使用して、設計時にシステム接続性を検証するためおよびランタイム時に接続を可能にするためにシステムが意識すべきすべての形の通信をモデル化する。
抽象リソース定義は、システム内に含まれる挙動を記述する。リソース定義は、他のリソース定義への強力な従属性を有する場合がある。これらの従属性には、特定のインストール順序を必要とすることや、公式に文書化されていない通信機構を介したランタイム対話を開始することを含めることができる。
すべての抽象オブジェクト定義は、設定を開示する能力を共有する。これらの設定は、名前と値の単純な対であり、XMLスキーマを使用して設定の型を定義する。設定は動的でも静的でもよいが、静的の場合は、展開プロセスの間だけ設定することができ、動的の場合は、展開後に変更することができる。実行中のシステムに設定値を適用することを担うコードは、SDMランタイム中でホストされる。
SDMは、抽象オブジェクト定義を越えた継承をサポートする。派生した定義は、その親によって開示されたプロパティを拡張することができ、その親のプロパティに関する値を設定することができる。派生した定義は、その親を参与者として識別する関係のいずれにも参与することができる。
関係定義は、通信、包含、委任、ホスティング、参照という5つのカテゴリに分けられる。
通信関係は、抽象エンドポイント定義間の可能性ある通信対話を取り込むのに使用する。通信関係があることは、識別された定義のエンドポイントを開示しているシステムが通信することが可能かもしれないことを示す。実際のリンク確立は、エンドポイントおよびエンドポイントの開示(exposure)に対する制約を受ける。
包含関係は、抽象オブジェクト定義が別の抽象オブジェクト定義のメンバを含むことができることを記述する。より具体的には、2つの抽象オブジェクト定義AとBの間の包含関係では、Aを実装する具象オブジェクト定義が、Bを実装する具象オブジェクト定義のメンバを含むことができる。
包含を使用して、開発者がアプリケーションを構築するときに生じる自然なネスト構造がモデル化される。メンバオブジェクトを含めることにより、親は、含まれたオブジェクトの存続期間および可視性を制御することができる。ランタイム空間中のすべてのオブジェクトインスタンスは、他のオブジェクトインスタンスのメンバとして存在し、完全に接続されたインスタンスセットを形成する。したがって、包含関係のセットは、インスタンス空間で生じる許容される包含パターンを記述する。
委任関係は、含まれるオブジェクトメンバを選択的に開示するのに使用する。具体的には、委任を使用して、システム定義からのエンドポイントメンバを開示する。サブシステムからエンドポイントを委任することにより、外側のシステムは、特定のプロトコル上で、プロトコルの奥にある実装を開示することなく通信する能力を呈する。
ホスティング関係および参照関係は、従属関係の2つの形である。ホスティング関係は、具象オブジェクトのインスタンスを生成できるようになる前に存在すべき抽象オブジェクトの間の主要な従属性を記述する。あらゆるインスタンスは、ちょうど1つのホスティング関係にゲストとして参与すべきであり、この結果、ホスティング関係はまた、完全に接続されたツリーをインスタンス空間にわたって形成する。参照関係は、パラメータフローおよび構築順序付けに使用することのできる追加の従属性を取り込む。
2.3 具象オブジェクト定義および関係定義
抽象オブジェクト定義から具象オブジェクト定義を構築し、抽象関係定義から具象関係定義を構築する。
抽象オブジェクト定義と抽象関係定義の組合せは、ターゲットシステムをモデル化するためのスキーマを定義する。具象オブジェクト定義の役割は、抽象定義空間のサブセットを使用して、1つまたは複数の抽象定義に基づく再使用可能な構成を生み出すことである。単純な類比として、抽象定義空間は、データベースに関するスキーマに例えることができる。この場合、具象オブジェクト定義は、データベース中の行のセットのための再使用可能テンプレートを表すことになる。行は、具象オブジェクトのインスタンスが生成されたときだけデータベース中に生成される。設計時妥当性検査を行うために、データベース中の行をスキーマの制約(例えば外部キーなど)に対して妥当性検査するのと同じようにして、具象オブジェクト定義を抽象定義空間に対して妥当性検査することができる。
各具象オブジェクト定義は、特定の抽象オブジェクト定義に対する実装を提供する。実装は、設定スキーマに対する拡張と、設定に関する値と、オブジェクトメンバ、関係メンバ、制約メンバ、フローメンバに関する宣言とを含む。具象オブジェクトの挙動は、抽象オブジェクトの定義に従う。すなわち、抽象システム定義が具象システム定義になり、抽象エンドポイント定義が具象エンドポイント定義になり、抽象リソース定義が具象リソース定義になる。
各具象関係定義は、特定の抽象関係定義に対する実装を提供する。実装は、設定宣言および値と、同じ関係カテゴリ(ホスティング、包含、通信など)のネストされたメンバと、関係に参与することのできる型に対する制約とを含むことができる。
具象ホスティング関係は、ある具象オブジェクトのメンバを別の具象オブジェクト上にマッピングすることを定義するのに使用する。例えば、具象ホスティング関係を使用して、ウェブアプリケーションとそれが展開されることになるIISホストとの間のバインドを識別することができる。所与の型に対して複数の具象ホスティング関係が存在することができ、これにより開発者は、特定のトポロジに対して種々の展開構成を定義することができる。
2.4 メンバ
具象型は、他の具象または抽象オブジェクトのメンバを宣言することができる。これらをオブジェクトメンバと呼ぶ。この場合、これらのメンバは、オブジェクトメンバ間の関係を定義する関係メンバから参照される。
オブジェクトメンバは、特定のオブジェクト定義のインスタンスを生成するのに使用される。設定フローを使用して、オブジェクトに関する値を提供することができる。オブジェクトメンバを宣言するとき、ユーザは、オブジェクトメンバが、外側のシステムが生成されるのと同時に生成されるか(値セマンティクス)、あるいはいくらか後で行われる新しい明示的動作によって生成されるか(参照セマンティクス)を決定することができる。
関係メンバは、オブジェクトメンバが生成されたときにそれらが参与することになる関係を定義する。オブジェクトメンバがその親に含まれる場合は、包含関係メンバを型メンバと外側の型との間で宣言する。オブジェクトメンバが委任される場合は、委任関係メンバを、オブジェクトメンバとネストされたオブジェクトメンバとの間で定義する。通信関係メンバは、オブジェクトメンバ上のエンドポイント間で宣言することができ、従属関係メンバ(参照およびホスティング)は、オブジェクトメンバまたはネストされたオブジェクトメンバ間で宣言することができる。
関係制約は、特定のオブジェクトが参与を望む関係のセットを限定するのに使用する。これらは、特定の関係に対する制約、および関係の他方の端の参与者に対する制約を識別する。
2.5 インスタンス空間
SDMランタイムに記憶されているインスタンス空間は、モデル化システムの現在状態を反映する。ランタイムは、生成されたインスタンスと、これらのインスタンス間の関係との完全な記録を含む。各インスタンスにはバージョン履歴が関連し、バージョン履歴中では、各バージョンが変更要求にリンクされている。
新しいインスタンスを生成するプロセスは、変更要求によって開始される。変更要求は、既存のインスタンスの特定メンバに関連する型および関係に対する、生成、更新、削除要求のセットを定義する。ルートは特別なケースである。
変更要求は、ランタイムによって展開され、すべての制約に対して検証されてから構築される。展開プロセスでは、オブジェクトの構築要求の一部として暗黙的に構築される、オブジェクトに含まれるオブジェクトインスタンスおよび関係インスタンスを識別し、次いで設定フローをすべての関係にわたって評価する。検証ステップでは、必要な関係がすべて存在すること、および関係がすべての制約を満たすことをチェックする。最後に構築プロセスでは、各インスタンスの展開、更新、または削除にわたる適切な順序付けを判定し、次いで、適切なアクションが実施されるように、各インスタンスを正しいシーケンスでインスタンスマネージャに渡す。
2.6 レイヤ化
SDMモデルの目標は、アプリケーション開発者と、ソフトウェアインフラストラクチャ設計者と、データセンタ構築者との間で、関心が分離されるようにすることである。これらの各グループは、特定のサービスに焦点を合わせ、異なる従属性セットを有する。
例えば、開発者は主に、SQL、IIS、CLRなど、開発者が依存するホストの間の構成および接続性を気にかける。ホスト構成の設計者は、ネットワークトポロジおよびOS(operating system)構成を気にかけ、ネットワークトポロジ、OS構成、記憶マッピングを開発する構築者は、データセンタに存在するハードウェアについて知る必要がある。
この関心の分離をサポートするために、SDMは、レイヤ化の概念を呈示する。レイヤ化は、アプリケーションが依存するサービスをアプリケーションの包含構造の一部として宣言せずに、ホスティング関係を用いてアプリケーションをサービスにバインドするものである。
SDMモデルの一部として、以下の4つのレイヤが識別される。
アプリケーションレイヤ
・アプリケーションレイヤは、制約されたコンテキストでアプリケーションを構築することをサポートする。コンテキストは、ホストレイヤで定義されるホストの構成によって定義される。
・アプリケーションレイヤ中のシステム定義の例としては、ウェブサービス、データベース、およびBizTalk(商標)スケジュールが挙げられる。
ホストレイヤ
・ソフトウェアコンポーネントからデータセンタを構築する。コンポーネント間の接続を構成する。これらのコンポーネントのいくつかは、アプリケーションレイヤのためのホストとして働く。
・このレイヤ中のシステム定義の例−IIS(商標)、SQL、AD、EXCHANGE、DNS(Domain Name System)、BizTalk(商標)
ネットワーク/OS/ストレージレイヤ
・データセンタネットワークおよびプラットフォームを構築する。ネットワークセキュリティモデルおよびオペレーティングシステムプラットフォーム構成を構成する。オペレーティングシステム構成にストレージを追加する。
・このレイヤ中のシステム定義の例−VLAN、Windows(登録商標)、Filter、Storage
ハードウェアレイヤ
ハードウェアレイヤは、データセンタに存在するマシンのタイプ、およびこれらのマシン間に存在する物理接続を識別する。
図11に、レイヤ4ウェブアプリケーションをレイヤ3ウェブサーバホストにマッピングする例を示す。各レイヤの外側のボックスはシステムを表し、境界上のボックスはエンドポイントを表し、内側のボックスはリソースを表す。これらの各要素を、ホスティング関係を介して下のレイヤにあるホストにマッピングする。
システムに必要な関係を満たすために、マッチする機能を有するホストシステムにこのシステムをバインドする。このプロセスを配置(placement)と呼ぶ。設計時、可能な配置を表す具象ホスティング関係を構築する。展開時、具象ホスティング関係のインスタンスをインスタンス化して、ゲストシステムインスタンスをホストシステムインスタンスにバインドする。
2.7 モデル評価
SDMモデルには、分散システムに対する変更を管理するための明確に定義されたプロセスが関連付けられる。
各変更は、いくつかの処理ステップを経た宣言変更要求によって進められ、その後、要求中の動作が配信され、次いでターゲットシステムに対して実行される。
3 実装の詳細
この設計の実装の詳細を記述せよ。例えば、各コンポーネントがどのように働くか、低レベルのアルゴリズムは何か、どんなクラスおよびデータ構造が実装にとって重要か、などである。誰かがこれを読むことによって、あなたのコードを読まなくてもあなたの実装を完全に理解できなければならない。
3.1 名前付け
SDM中には、オブジェクトを識別するための厳密な名前付けシステムが必要な場所がいくつかある。以下の名前付けシステムによれば、型の生成者は、開発者が元々公表した定義と同じ定義であることを定義のユーザが確信できるような形で、定義に署名することができる。
以下のヘッダは、SDM名前空間における識別子の例である。
Figure 2004272908
別の名前空間中の型を参照するには、その名前空間をインポートする必要がある。
<import alias=”FileSystem”name=”FileSystem”version=”0.1.0.0”publicKeyToken=”AAAABBBBCCCCDDDD”/>
次いで、エイリアスを使用して、その名前空間内の型を参照することができる。
FileSystem:file
3.1.1 識別
SDMの名前は、それらが定義される名前空間を範囲とする。名前空間は、名前、バージョン、言語、および公開鍵トークンで識別され、単一のファイル内に含まれる。
識別の基本形は、名前、バージョン、カルチャ、プラットフォーム、および公開鍵トークンを含む。
<xs:attributeGroup name=”Identity”>
<xs:attribute name=”name” type=”simpleName” use=”required”/>
<xs:attribute name=”version” type=”fourPartVersionType” use=”required”/>
<xs:attribute name=”publicKeyToken” type=”publicKeyTokenType” use=”optional”/>
<xs:attribute name=”culture” type=”xs:string” use=”optional”/>
<xs:attribute name=”platform” type=”xs:string” use=”optional”/>
</xs:attributeGroup>
Figure 2004272908
基底識別を使用して、既存の識別を参照することができ、あるいは、署名および公開鍵と共に、新しい厳密識別を生成することができる。文書には秘密鍵を使用して署名することになり、それにより文書のユーザは、公開鍵を使用してその内容を検証することができる。
Figure 2004272908
Figure 2004272908
公開鍵トークンは、公開鍵/秘密鍵の対の公開部分を識別する16文字の16進ストリングである。これは公開鍵ではなく、単に公開鍵の64ビットハッシュである。
<xs:simpleType name=”publicKeyTokenType”>
<xs:annotation>
<xs:documentation>Public Key Token: 16 hex digits in size</xs:documentation>
</xs:annotation>
<xs:restriction base=”xs:string”>
<xs:pattern value=”([0-9]|[a-f]|[A-F]){16}”/>
</xs:restriction>
</xs:simpleType>
3.1.2 バージョン
ファイルバージョンは、N.N.N.Nの形をとる4部分の数で定義され、0≦N<65535である。慣例的に、この数はメジャー.マイナー.ビルド.リビジョンを表す。
Figure 2004272908
3.1.3 簡易名
簡易名は、英数字および限られた句読点からなる。名前は数字以外の文字で始まらなければならない。
Figure 2004272908
識別子についてはC#定義に準拠する予定である。適切な章(2.4.2)を以下に挿入してある。仕様は以下で見ることができる。
http://devdiv/SpecTool/Documents/Whidbey/VCSharp/Formal%20Language%20Specification/CSharp%20Language%20Specification.doc
SDMモデルでは、頭に「@」の付く名前はサポートされないことに留意されたい。
Figure 2004272908
Figure 2004272908
Figure 2004272908
3.1.4 予約済みの名前
以下は、ユーザがSDMモデル中のオブジェクトの名前を生成するときに使用できない予約済みの名前のリストである。
一定のコンテキスト内で、いくつかの名前が予約されている。
Figure 2004272908
以下の名前は、CLRとの統合により予約されている。
Figure 2004272908
3.1.5 他の名前空間の参照
他の名前空間を現在の名前空間にインポートしてからエイリアスを名前空間に関連付けることにより、名前空間が他の名前空間を参照することを可能である。インポートされた名前空間は、名前、バージョン、および公開鍵トークンで参照される。バージョニングについては3.16章で述べる。
Figure 2004272908
Figure 2004272908
3.1.6 修飾パス
修飾パスはこの場合、現在の名前空間中またはエイリアシングされた名前空間中で定義される定義とマネージャとのいずれかを指す名前である。
[<alias>:] <simpleName> (.<simpleName>)*
エイリアスはインポートステートメント中で定義される。以下の簡易名は、型を識別し、パスの場合はネストされた型を識別する。
Figure 2004272908
3.1.7 定義およびメンバパス
パスは、メンバまたは設定を識別する一連の名前である。パスは、パスに関連するオブジェクトまたは関係によって定義される、周知の名前またはメンバ名で始まるべきである。
Figure 2004272908
3.1.8 インスタンスパス
インスタンス空間中のパスはXPathに基づく。XPath中の要素名はメンバ名に対応し、XPath中の属性は設定に対応する。
3.1.9 名前解決
エイリアスで始まらない名前は、完全修飾されていない。このことは、これらが評価される範囲が、得られるバインドを変化させる可能性があることを意味する。この一例は、ネストされた定義である。ネストされた定義名を解決するとき、ローカル範囲中の定義は、より広い範囲内の定義を隠蔽する。
3.2 設定
すべての定義は、設定宣言を開示することができる。これらの設定は、抽象定義から具象定義を生成するとき、または定義を別の定義内のメンバから参照するときに、提供できる値を記述するのに使用することができる。
設定を定義するには、まずXSDを使用して設定の定義を定義する必要がある。
Figure 2004272908
次いで、この定義を使用する設定であって、設定の挙動を定義するための属性セットを含む設定を宣言することができる。
<settingDeclaration name=”valueType”type=”registryValueType”access=”readwrite”dynamic=”false”required=”true”/>
設定宣言が得られれば、この設定の値を提供することができる。
<settingValue name=”valueType” fixed=”true”>long</settingValue>
3.2.1 設定定義
XSDスキーマを使用して、設定宣言によって使用される設定定義を定義する。スキーマからの単純型および複合型の使用がサポートされる。ただし、これらの型の定義をサポートする他のスキーマ要素がある場合もある。
設定定義のセクションは、名前空間宣言および名前空間インポートを含めた、完全なXMLスキーマを含むべきである。XSDスキーマ中のインポートが、XSDスキーマの名前空間を除いてはSDMファイル中のインポートとマッチすることをチェックする。このことは、参照されるすべての型が別のSDMファイル中で定義されるべきであることを意味する。スキーマは、自由裁量のXSDファイル中で定義される型を参照することはできない。
<xs:complexType name=”settingDefinitions”>
<xs:sequence>
<xs:element ref=”xs:schema”/>
</xs:sequence>
<xs:attribute name=”manager” type=”qualifiedName” use=”optional”/>
<xs:attribute name=”clrNamespace” type=”xs:string” use=”optional”/>
</xs:complexType>
Figure 2004272908
設定は、以下の3つの分離可能な名前空間から解決可能であるべきである。
a)SDM名前空間−システム、リソース、エンドポイント、関係、制約、またはフロー型内の設定型を指すとき。
b)CLR名前空間−CLR内の強く型付けされたクラスを使用する設定を指すとき、および設定型が他の設定型上に構築されるとき。
c)XSD名前空間−設定型が他の設定型を使用して構築されるとき。
これが機能するためには、設定を宣言する方法に対していくつかの制約を課すべきである。
a)すべての設定は、CLR、SDM、およびXSDの各名前空間内で同じグループにあるべきである。すなわち、2つの設定が1つの名前空間で共にある場合、これらは3つの名前空間すべてで共にあるべきである。
b)XSDスキーマ定義内のインポートされた名前空間は、SDMファイル中のインポートされた名前空間、および関連するヘルパアセンブリ中のインポートされた名前空間とマッチすべきである。
c)XSD名前空間を除いては、XSDスキーマ中のすべてのインポートされた名前空間は、SDMファイル内で定義されるべきである。
インポートされたSDM文書からのXSD型へは、QNameを使用してアクセス可能である。
<alias>:<type-name>
したがって例えば、以下の例に示すように、Foo.sdmがBar.sdmをインポートした場合、Bar.sdmの設定型は、Foo.sdmのsettingTypes要素中で参照することができる。
<!--Foo.sdm-->
・・・
<import alias=”bar” location=”Bar.sdm”・・・/>
・・・
<settingTypes>
・・・
<xs:simpleType name=”D”>
<xs:restriction base=”bar:B”・・・/>
</xs:simpleType>
・・・
</settingTypes>
<!--Bar.sdm-->
・・・
<settingTypes>
・・・
<xs:simpleType name=”B”>
<xs:restriction base=”xs:string”・・・/>
</xs:simpleType>
・・・
</settingTypes>
3.2.2. 組込み単純データ型
SDMは、XSDとC#の名前空間の共通部分である限られた組込みデータ型のセットをサポートする。これらの型は、SDMランタイムによってネイティブにサポートされ、以下の表に定義される。これらの型に加えて、ユーザは、XSDとCLS型間のユーザ自身のマッピングを自由に構築して使用することができる。
Figure 2004272908
これらの型は、C#およびXSDの型空間におけるこれらの型の互換派生物にフローすることができる。例えば、stringの値を、ストリングに対する制限を定義したXSD型にフローすることができ、anyの値を、type=”any”を受け入れる設定にフローすることができる。
3.2.2.1 XSD組込み型
図12に、例示的な組込みデータ型階層を示す。
3.2.2.2 C#データ型
Figure 2004272908
3.2.2.3 サポートされる変換
以下は、XSD型とCLS型の間に存在する変換である。
Figure 2004272908
Figure 2004272908
3.2.3 設定宣言
設定宣言セクションでは、前のセクションからの設定宣言を使用して、名前付き設定を生成する。属性を使用して、各設定に関する情報をさらに提供する。
Figure 2004272908
Figure 2004272908
3.2.4 リストサポート
多値設定の操作をサポートするために、単純な設定値リストがサポートされる。リストは、設定宣言と同じ定義の値のシーケンスである。リストは、置換またはマージできる別のリストにフローすることができる。値をリストにマージする際の重複検出はサポートされない。というのは、これは、設定フローを使用すればよりフレキシブルに行うことができるからである。また、どんな形の順序付けもサポートされない。
リスト宣言は、以下のように真に設定された属性listを含む。
<settingDeclaration name=”roles”type=”xs:string”list=”true”/>
次いで、settingValueListを使用して値を提供する。リストを提供するとき、ユーザは、前の値と置換またはマージするかどうかを指定することができる。
Figure 2004272908
SDMは、値リストの単純な操作をサポートする。フローメンバからのパスが設定宣言をターゲットとするとき、結果的な挙動は、パスのどちらかの端における定義に依存する。
Figure 2004272908
3.2.5 設定属性
設定属性は、ランタイムが特定の設定の挙動を記述するのに使用する。
Figure 2004272908
Figure 2004272908
3.2.6 設定値
設定が単一の値として宣言されたかリストとして宣言されたかに応じて、設定に関する値は、設定値要素と設定値リスト要素のどちらかを使用して提供することができる。
3.2.6.1 設定値
設定値は、特定の設定宣言に関する値を提供するのに使用する。値は、宣言に関連する定義とマッチすべきである。値がfixedに宣言された場合、提供された値は、値が固定されるポイントに応じて、すべての派生定義中でまたは参照するメンバ中で使用されることになる。値が固定された後は、オーバーライドすることはできない。
Figure 2004272908
Figure 2004272908
3.2.6.2 設定値リスト
設定値リストは、リストとして宣言された設定に関する1つまたは複数の値を提供するのに使用する。値を宣言するとき、ユーザは、前の値とマージするか、あるいは前の値すべてを上書きするように決定することができる。
Figure 2004272908
Figure 2004272908
3.2.7 設定継承
設定継承は、派生定義が基底定義からのすべての設定宣言を暗黙的に含むことを意味する。設定継承の重要な側面のいくつかを以下に示す。
・設定継承は推移的である。CがBから派生し、BがAから派生した場合、Cは、B中で宣言された設定ならびにA中で宣言された設定を継承する。
・派生定義は、それが拡張する基底定義から継承した設定宣言に新しい設定宣言を追加することができるが、継承した設定の定義を削除することはできない。
3.2.8 型変換
組込み型間のロスレス(lossless)変換がサポートされる。他の型変換は、適切な変換を実行するためにフローが必要である。
3.3 属性
SDM中のオブジェクトの多くは、オブジェクトのコア挙動と直交する挙動を取り込むように属性付けることができる。以下のように定義される一般的な属性付けモデルが使用される。
3.4 定義およびメンバ
3.4.1 定義
定義(definition)は、オブジェクト定義、関係定義、制約定義、フロー定義が派生する基底である。すべての定義は、設定スキーマおよび設計表面(surface)データを含むことができる。各定義は、簡易名で識別され、マネージャを参照する。マネージャは、この特定の定義のためにSDMランタイムに拡張サポートを提供することを担う。
設定スキーマは、この定義のインスタンス上に見られる値を定義する。DesignData要素を使用して、設計表面上でこの定義の表示および編集に特有のデータを含める。
<xs:complexType name=”Definition”>
<xs:sequence>
<xs:element name=”Description” type=”Description” minOccurs=”0”/>
<xs:element name=”DesignData” type=”DesignData” minOccurs=”0”/>
<xs:choice minOccurs=”0” maxOccurs=”unbounded”>
<xs:element name=”SettingDeclaration” type=”SettingDeclaration”/>
<xs:element name=”SettingValue” type=”SettingValue”/>
<xs:element name=”SettingValueList” type=”SettingValueList”/>
</xs:choice>
</xs:sequence>
<xs:attribute name=”Name” type=”SimpleName” use=”required”/>
<xs:attribute name=”Manager” type=”QualifiedName” use=”optional”/>
<xs:attribute name=”ClrClassName” type=”xs:string” use=”optional”/>
</xs:complexType>
Figure 2004272908
3.4.2 メンバ
メンバは、ランタイム時に存在することのできる定義インスタンスを識別するのに使用する。すべてのメンバは、型の範囲内で固有の名前で識別され、それらが参照する定義に関する設定を提供することができ、設計表面特有のデータを含むことができる。
Figure 2004272908
Figure 2004272908
3.5 設定フロー
設定フローは、オブジェクト定義のメンバ間および関係への参与者間でパラメータを渡すのに使用する。フローの一部として、ユーザは、変形を用いて設定値を結合または分離し、新しい設定値を計算することができる。
すべての設定フローメンバは、フロー定義を使用して変形を実装する。フロー定義は、SDMファイル中で宣言される。以下は、URL(Uniform Resource Locator)を解析するフロー型である。
Figure 2004272908
次いで、フローメンバをオブジェクト内または関係内で宣言する。フローメンバは、フロー定義への入力を提供し、次いでフローからの出力をターゲット設定に向けて送る。
Figure 2004272908
3.5.1 フロー定義
フロー定義は、設定値のセットに適用したいと思う特定の変形を定義するのに使用する。フロー定義は、入力設定(書込み専用設定)および出力設定(読出し専用設定)と、変換を定義するための入力インタフェースなど、設計表面特有の情報に関する設定データセクションと、SDMファイルを閲覧するときに使用される記述とを定義する設定スキーマを開示する。フロー定義は、それが定義される名前空間内の名前で識別される。定義はまた、ランタイムがフローを評価するときにランタイムをサポートすることになるマネージャも識別する。
簡単な変形が必要なときにフロー要素の構築を単純にするために、ランタイムはいくつかの標準フロー定義を含むものと考えられる。例としては、コピー、マージ、およびストリング代用が挙げられる。フロー定義はパラメータ化することができるので、構成パラメータに基づいて異なるアクションを実施する1つまたは複数の単純な変形があることも考えられる。
Figure 2004272908
3.5.2 フローメンバ
各フロー要素は、1つまたは複数のソースノード、1つまたは複数の宛先ノード、いくつかの静的設定、およびフロー定義を識別する。フローが評価されるとき、ソースノードからソースデータが収集され、フロー要素からの設定と結合され、変換のためにフロー定義に渡される。出力データは宛先ノードに渡される。
ソース値の1つが変化したときは、フローの再評価がトリガされる。この理由で、値の反転を引き起こす循環フローを回避する必要がある。値が一定のままである場合は、ループは終了する。ランタイムは、スタック深度を常に把握していることによって、無限ループを検出し終了させる。
Figure 2004272908
Figure 2004272908
3.5.3 設定ターゲット
設定ターゲットは、フローが定義されているコンテキストで周知である名前に関係するメンバまたはネストされたメンバ中の設定値へのパスを識別する。周知の名前の例としては、定義または参照宣言中のthis、ホスティング関係宣言中のhostおよびguest、または制約宣言内で定義されたtargetが挙げられる。設定ターゲットはまた、パスによって識別される設定のソース値と宛先設定のどちらかとして使用されることになる関連するフロー定義上の設定も識別する。
Figure 2004272908
Figure 2004272908
出力パスは、ターゲット値を固定および置換するためのセマンティクスをサポートする、設定ターゲットの変形である。
Figure 2004272908
Figure 2004272908
3.6 設定制約
制約は、定義のメンバの設定値に対する制限、または関係への参与者に対する制限を識別するのに使用する。これらの制限は、設計時と展開時の両方においてインスタンス空間中で評価する。
すべての設定制約は、制約定義を使用して設定値を評価する。制約定義は、設定宣言を使用して、それが制約する値を識別する。以下の制約定義は、2つの引数および1つの演算子を利用する単純な比較関数を実装し、次いで制約を評価し、最後に成功またはエラーを返す。
Figure 2004272908
次いで制約メンバを使用して、評価のために制約型に値を提供する。
Figure 2004272908
3.6.1 制約定義
制約定義は、入力値のセットに作用する制約を定義する。制約をパラメータ化して、カスタム挙動を選択することができ、あるいは、パラメータを使用してその挙動を定義する単純な制約エンジンをサポートすることができる。抽象オブジェクト間の既知の関係をサポートするために、単純なパラメータ値制約および複雑な制約セットについて、標準的な制約定義のセットが書かれることが考えられる。
Figure 2004272908
3.6.2 制約メンバ
制約メンバは、特定の制約定義に関する入力値のセットを識別する。メンバは、設定に関する静的な値を識別することができ、入力ステートメントを使用して制約設定をパスにバインドすることができる。
Figure 2004272908
Figure 2004272908
3.7 システムエンドポイント定義およびリソース定義
この章では、抽象および具象オブジェクト定義に関するスキーマについて述べる。
抽象オブジェクト定義は、設定宣言のセットを開示し、それが参与する関係に対する制約を含むことができ、関連するマネージャをランタイム内に有する。
以下は、ウェブサーバについての抽象システム定義である。ウェブサーバは2つの設定を有し、また、少なくとも1つのvsite型を含むことを要する関係制約を有する。
Figure 2004272908
vsiteは、サーババインド情報を含む抽象エンドポイント定義である。
Figure 2004272908
フロントエンドウェブサーバについての具象システム定義は、ウェブサーバカテゴリを静的内容として識別し、1個から100個までの間のエンドポイントインスタンスを表すことのできる単一のbyReferenceエンドポイントメンバを含む。エンドポイントに関する具象エンドポイント定義は、システム定義内部にネストされ、vsiteに関するip EndpointをEndpoint80として定義する。
<SystemDefinition name=”FrontendWebServer” implements=”WebServer” >
<SettingValue name=”category” fixed=”true”>staticContentOnly</settingValue>
<Port name=”contentOnlyVsite” type=”port80Vsite” isReference=”true” minOccurs=”1” maxOccurs=”100”/>
<PortDefinition name=”port80Vsite” implements=”vsite”>
<SettingValue name=”Endpoint” fixed=”true”>80</settingValue>
</PortDefinition >
</SystemDefinition>
3.7.1 オブジェクト定義
抽象および具象オブジェクトは、以下の基底オブジェクト定義を拡張する。基底型定義の要素に加えて、これらは、オブジェクトが参与する関係を制約する能力も共有する。
Figure 2004272908
Figure 2004272908
3.7.2 抽象オブジェクト定義
抽象オブジェクト定義は、設計表面が開示する構成単位であってすべての具象オブジェクトの派生源である構成単位を定義するのに使用する。すなわち、具象オブジェクト定義は抽象オブジェクト定義を実装すべきである。
抽象オブジェクト定義は、単純な継承を追加することによってSDMオブジェクトを拡張する。すなわち、extends属性を使用して、抽象オブジェクト定義に対する基底オブジェクト定義を識別する。次いで抽象オブジェクト定義は、基底オブジェクト定義から設定および関係制約を継承する。継承を通して、オブジェクト定義は、新しい設定および制約を追加することによって抽象オブジェクト定義の設定および制約を拡張することができる。
抽象オブジェクト定義はまた、それらが参与したいと思う関係に対して制約を追加することもできる。例えば、抽象オブジェクト定義は、一定の関係が存在することを必要とすることができ、あるいは関係の他方の端に配置できるオブジェクト定義を制約することができ、あるいは所与の関係に参与するインスタンス上の設定を制約することができる。
3.7.2.1 抽象オブジェクト定義
すべての抽象オブジェクトは、それらが関連付けられたいと思うレイヤを識別することができる。これが提供されない場合、オブジェクト定義はどのレイヤでも使用できると見なされる。抽象オブジェクト定義は、それらが拡張する基底オブジェクト定義を識別することができ、その場合、そのオブジェクト定義の設定および制約を継承し、基底オブジェクト定義が参与する関係中で基底オブジェクト定義の代わりになることができる。
Figure 2004272908
Figure 2004272908
3.7.2.2 抽象エンドポイント、システム、およびリソースオブジェクト定義
SDMモデル中の抽象オブジェクト定義には3つの分類がある。すなわち、抽象エンドポイント定義、抽象システム定義、および抽象リソース定義である。これらはそれぞれ、抽象オブジェクト定義の単純なリネームである。
Figure 2004272908
エンドポイント定義は、通信エンドポイントを表す。エンドポイント上の設定は、バインドプロセスにおけるその使用に関係する。例えばクライアントサーバプロトコルの場合、サーバエンドポイント定義は、設定スキーマを使用して、エンドポイントにバインドするのに必要な設定を識別することができ、クライアントエンドポイント定義は、クライアント特有の接続属性を開示することができる。
システム定義は、データ、ソフトウェア、またはハードウェアの要素の集合を表すのに使用する。例としては、ウェブサービス、データベース、およびスイッチが挙げられる。リソース定義は、システム定義の一部として識別することのできる特定要素を取り込むのに使用する。
3.7.3 暗黙的な基底定義
図13に示すように、別の抽象オブジェクト定義を拡張しないすべての抽象オブジェクトは、エンドポイント、システム、リソースの基底定義のうちの1つを暗黙的に拡張する。これらの基底定義は、関係宣言および制約宣言中で使用することのできる各ツリーのルートを形成する。これにより、関係または制約は、ルートから派生する任意の型を、識別されるルート定義の代わりに使用できることを示すことができる。これらのルート型は常に抽象であり、直接インスタンス化することはできない。
これらの型の定義は、モデル内におけるそのインスタンス化を制御する基底制約を含む。これらはSystem.sdm.で見ることができる。
3.7.4 具象オブジェクト定義
具象オブジェクト定義は、抽象オブジェクト定義に対する実装を提供する。実装は、オブジェクトメンバおよび関係メンバと、実装される抽象定義の設定に関する値と、新しい設定宣言と、メンバ間およびメンバに対する制約間のフローとから構築される。
具象定義はまた、ネストされた定義の宣言を含むこともできる。これらの定義は、含んでいる定義の範囲内のメンバについて使用することができ、定義の範囲外の制約中で参照することができる。
3.7.4.1 基底具象オブジェクト定義
基底具象型は、オブジェクト定義、継承する設定宣言、設計データ、オプションのマネージャ参照、名前、参与できる関係に対する制約、抽象定義の設定に関する値を提供する能力、その設定間およびそのメンバの設定間のフローを記述する能力を拡張する。次いで、具象定義が、実装する抽象定義を識別する能力を追加し、いくつかのオプション属性が、定義のバインド挙動をカスタマイズする能力を追加する。
Figure 2004272908
Figure 2004272908
3.7.4.2 オブジェクトメンバ
オブジェクトメンバは、抽象と具象のどちらかのオブジェクト定義を参照すべきである。これらはインスタンスのアレイを表すことができ、その場合、アレイの上限と下限を定義することができる。これらが参照メンバである場合は、オブジェクトをインスタンス化するユーザは、メンバに対するインスタンスを明示的に構築すべきである。参照メンバでない場合は、ランタイムは、外側のオブジェクトが生成されるのと同時にインスタンスを生成することになる。
Figure 2004272908
Figure 2004272908
SDMモデルでは、親が構築されるときに生成され親が破壊されるときに破壊されるメンバを、親に関係なく存続期間を有するメンバから区別する必要がある。この目的で、IsReference属性を使用する。単純に例えると、インスタンスの生成にnewが使用されるかどうかに基づいてスタックベースとヒープベースの構築が可能なC++宣言に似ている。メンバがIsReferenceとしてマークされた場合は、オペレータ側で、インスタンスを生成してメンバと関連付けるための明示的な新しい操作が必要である。
こうすることにはいくつかの理由がある。
1.オペレータがシステムを構築するとき、IsReferenceメンバを構築できることが開示される。これはオペレータの経験を大幅に単純化する。
2.SDM文書が処理されるとき、文書のインスタンス空間が具象定義空間のインスタンス空間から変化することのできる明確な境界がある。
3.7.4.3 関係メンバ
関係メンバは、オブジェクトメンバが生成されたときにオブジェクトメンバ間に存在する関係を識別する。関係インスタンスは、オペレータによって明示的に生成されるか、あるいはランタイムによって暗黙的に生成される。前者の例はインスタンス間のホスティング関係であり、後者の例はシステム間の通信関係である。
Figure 2004272908
3.7.4.3.1 ホスティングメンバ
ホストメンバは、2つのオブジェクトメンバ間のホスティング関係を宣言するのに使用する。オブジェクトメンバは、含んでいる定義の直接のメンバとすることもでき、定義とメンバシップ関係を有するネストされたメンバとすることもできる。参照されるメンバと含んでいる定義との間には、メンバシップ連鎖があるべきである。
Figure 2004272908
Figure 2004272908
3.7.4.3.2 通信メンバ
通信メンバは、定義の直接のシステムメンバのエンドポイントメンバ間における通信関係を宣言するのに使用する。
Figure 2004272908
Figure 2004272908
3.7.4.3.3 包含メンバ
包含メンバは、型メンバが型によって包含されることを宣言するのに使用する。各型メンバは、包含されるか委任されるかのどちらかとすることができる。包含メンバは、包含関係の親値を自動的に関係のthisポインタに設定する。
Figure 2004272908
Figure 2004272908
3.7.4.3.4 委任メンバ
委任メンバは、外側の型上のエンドポイント定義メンバと、外側の型の直接のシステムメンバ上のエンドポイント定義メンバとの間の委任関係をセットアップするのに使用する。
Figure 2004272908
Figure 2004272908
3.7.4.3.5 参照メンバ
参照メンバは、外側のシステムの2つの直接メンバ間またはネストされたメンバ間の参照関係をセットアップするのに使用する。
Figure 2004272908
Figure 2004272908
3.7.4.4 エンドポイント定義
エンドポイント定義は、ネストされたソース型、リソースメンバ、ホスト関係メンバ、包含関係メンバ、参照関係メンバを宣言する能力を追加することにより、基底オブジェクトを拡張する。
Figure 2004272908
Figure 2004272908
3.7.4.5 サービス定義
システム型は、ネストされたエンドポイント、システム型、リソース型、エンドポイントメンバ、システムメンバ、リソースメンバ、ホスト関係、包含関係、接続関係、委任関係、参照関係に対するサポートを追加することにより、基底型を拡張する。
Figure 2004272908
Figure 2004272908
3.7.4.6 リソース定義
リソース型は、ネストされたリソース型定義、リソースメンバ、ホスト関係メンバ、包含関係メンバ、参照関係メンバを含むことができる。
Figure 2004272908
Figure 2004272908
3.7.4.7 関係規則
オブジェクト定義の特定のインスタンスについて、このインスタンスが果たすことのできる各役割に関連するカーディナリティを、以下の表に識別する。
3.7.4.7.1 システム規則
Figure 2004272908
3.7.4.7.2 エンドポイント規則
Figure 2004272908
3.7.4.7.3 リソース規則
Figure 2004272908
3.7.4.7.4 注
あらゆるインスタンスは、ちょうど1つの包含関係と、少なくとも1つのホスティング関係とに参与すべきである。
これは以下のことを意味する。
A)非参照メンバは包含関係を識別すべきである。
b)参照メンバが構築されるためには、参照メンバは包含関係を識別すべきである。
c)包含関係を有さない参照メンバは、他のメンバに委任することができるだけである。
3.8 関係
関係は、型間の可能な対話を識別するのに使用する。これらはバイナリおよび有向であり、それぞれは、関係に参与することのできるインスタンスの型を識別する。関係はまた、関係に参与するインスタンスの設定を制約することもでき、関係にわたって設定値をフローすることができる。
以下は、型のセクションで述べたウェブサーバ上のウェブアプリケーションについての可能なホスティング関係である。この関係は、2つのシステムのセキュリティモデルが互換性を有することを検証するという制約を含み、また、サーバ名をvsiteからvdirにコピーする設定フローメンバを含む。
Figure 2004272908
関係は、関係に参与することになる型メンバを識別する関係メンバを宣言することによって使用する。
Figure 2004272908
3.8.1 関係定義
基底関係定義は、オブジェクト制約およびフローを定義に追加する。オブジェクト制約は、この関係のインスタンスに参与するオブジェクトインスタンスの設定値に関するステートメントである。例えば、DCOM(Distributed Component Object Model)接続を表す通信関係が、クライアントとサーバのセキュリティ設定が互換性を有することをチェックすることができる。この場合、設定間には、設計プロセスの一部として容易に取り込むことのできる厳密な関係がある。関係に対して4つの階乗的な設定の組合せがあるが、有効な組合せはずっと少数である。
フローは、関係の開発者があるインスタンスから別のインスタンスに値を転送することを可能にする。これにより、オブジェクト定義をそれらの可能な対話とは別に開発することができ、インスタンスは、特定のインスタンスを完全に記述するための関係グラフのサブセットを必要とするのではなく、情報のための参照ポイントとして自立することができる。
関係の名前は、その関係を含んでいる名前空間内で固有であるべきである。
<xs:complexType name=”RelationshipDefinition”>
<xs:complexContent>
<xs:extension base=”Definition”>
<xs:choice minOccurs=”0” maxOccurs=”unbounded”>
<xs:element name=”ObjectConstraintGroup” type=”ObjectConstraintGroup”/>
<xs:element name=”ObjectConstraint” type=”ObjectConstraint”/>
<xs:element name=”Flow” type=”FlowMember”/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Figure 2004272908
3.8.2 抽象関係
抽象関係は、2つの抽象オブジェクト定義間で定義される関係である。これらは、2つの定義間の可能な対話を表す。
Figure 2004272908
3.8.2.1 抽象通信関係
通信関係は、エンドポイント定義間の可能な通信リンクを取り込むのに使用する。これらを使用して、独立して展開されるソフトウェア要素間の対話を記述する。通信関係スキーマは、クライアントおよびサーバエンドポイント参照を追加することによって、基底関係スキーマを拡張する。
Figure 2004272908
Figure 2004272908
通信関係では、以下の抽象型の対の組合せが有効である。
Figure 2004272908
3.8.2.2 抽象ホスティング関係
ホスティング関係は、ゲストが構築されるためにホストが必要であることを取り込むのに使用する。1つのゲストに対して複数の可能なホストがあり得るので、このことは、ホスティング関係がホスト上にゲストを構築する任務も負うことを意味する。したがって、オブジェクトのインスタンスを生成するためには、ゲストから適合するホストへのホスティング関係があるべきである。
例えば、ウェブサービスオブジェクト定義とIISオブジェクト定義との間にホスティング関係があるとする。この場合、MyWebserviceおよびMyIISがそれぞれウェブサービスおよびIISを実装するものとすると、この関係は、ホスティング関係に対するマネージャを使用してシステムMyIISのインスタンス上にシステムMyWebserviceのインスタンスを生成することが可能かもしれないことを示している。システムと関係の両方に存在する制約を評価し終えるまでは、この関係を生成することが可能になるかどうかはわからない。
Figure 2004272908
Figure 2004272908
ホスティング関係では、以下の抽象定義の対の組合せが有効である。
Figure 2004272908
3.8.2.3 抽象包含関係
2つの抽象オブジェクト間の包含関係は、親型(parentType)に基づく具象型がメンバ型(memberType)に基づくメンバを包含できることを取り込む。包含は、親インスタンスがメンバインスタンスの存続期間を制御することができ、メンバインスタンスに挙動を委任することができることを意味する。
Figure 2004272908
Figure 2004272908
包含関係では、以下の抽象定義の対の組合せが有効である。
Figure 2004272908
3.8.2.4 抽象委任関係
委任関係は、外側のシステムから、含まれるシステムに挙動を転送するのに使用する。これは、外側のシステム上のエンドポイントを内側のシステム上のエンドポイントに委任することによって行う。これにより、外側のシステムに向けられたであろうすべての対話を効果的に内側のシステム上のエンドポイントに転送することができる。委任は連鎖させることができ、それにより内側のシステムは、さらにその挙動を別のシステムに委任することができる。
委任関係は、委任に参与することのできる抽象エンドポイント定義の対を定義する。各関係は、プロキシとして働くことのできる抽象エンドポイント定義と、挙動の委任先とすることのできる抽象エンドポイント定義とを識別する。
Figure 2004272908
Figure 2004272908
委任関係では、以下の抽象型の対の組合せが有効である。
Figure 2004272908
リソースおよびシステムの委任がレイヤ間のバインドをサポートできるようにすることもできる。例えば、IISがファイルシステムの一部を、展開する必要なしに開示できるようにすることができる。
3.8.2.5 抽象参照関係
参照関係は、ホスティング関係の従属性の他にある、インスタンス間の強力な従属性を取り込むのに使用する。これらの従属性を使用して、展開中に構築順序を制御し、インストール中および更新中にシステム間でパラメータをフローする。参照関係は強力な従属性を示すので、参照関係がシステム境界を越えることは許容できない。これは、あるシステム内のリソースが別のシステム内のリソースに対して従属性を有することはできないことを意味する。このような従属性があれば、システムはもはや独立した展開単位ではなくなる。システム間に従属性がある場合は、通信関係を使用する。通信関係は、システムの再インストールを必要とせずに、時の経過に伴って変化することができる。
Figure 2004272908
Figure 2004272908
参照関係では、以下の抽象型の対の組合せが有効である。
Figure 2004272908
3.8.3 暗黙的な基底関係
図14に示すように、すべての抽象関係は、基底関係定義の1つを暗黙的に拡張する。これらの定義は、各関係ツリーのルートを形成する。こうすることにより、制約定義内からルート定義を参照することができ、ルート型から共通型制約を継承することができる。
3.8.4 具象関係
具象関係は、2つの具象オブジェクト定義間の関係である。各具象関係は抽象関係を実装すべきである。抽象関係は、具象オブジェクト定義によって直接的または間接的(継承によって)に実装される抽象オブジェクト定義の、マッチする対の間にあるべきである。
Figure 2004272908
3.8.4.1 ホスティング関係
データセンタにアプリケーションを展開するとき、アプリケーション内のシステムに関するすべての未解決ホスティング関係を解決する必要がある。これを行うために、オペレータは、必要な各ホスティング関係につきホスティングメンバを生成することが必要になる。オペレータの作業を簡略化し、開発者が展開プロセスをガイドできるようにするために、開発者は、代わりに具象ホスティング関係を生成することができる。オペレータがアプリケーション展開時に単一のホスティングメンバを宣言するだけで済むような形で、具象ホスティング関係を使用してホスティング関係メンバのセットをグループ化する。
<xs:complexType name=”HostingDefinition”>
<xs:complexContent>
<xs:extension base=”ConcreteRelationship”>
<xs:sequence>
<xs:element name=”Hosting” type=”HostingMember” minOccurs=”0” maxOccurs=”unbounded”/>
</xs:sequence>
<xs:attribute name=”GuestDefinition” type=”QualifiedName” use=”required”/>
<xs:attribute name=”HostDefinition” type=”QualifiedName” use=”required”/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Figure 2004272908
ホスティング関係では、以下の具象型の対の組合せが有効である。
Figure 2004272908
ゲストは、以下の場合かつその場合に限って、ホストにバインドすることができる。
Guest中の各guestMemberにつき、
Host中の1つまたは複数のhostMemberがあり、この場合に、
guestMember.TypeがhostMember.typeとホスティング関係を有し、
guestMember.hostConstraintsがhostMember.settingsに対して妥当性を有し、
hostMember.guestConstraintsがguestMember.settingsに対して妥当性を有し、
guestMemberの各メンバにつき、hostMemberのメンバへのバインドがある。
例えば、以下の具象関係は、レイヤ3システム(Bike)をレイヤ2ホスト(operatingSystem)にバインドする。この場合、ホスティング関係に関する設定が「system folder」のデフォルト値で定義される。この設定が、レイヤ3アプリケーションのシステムとレイヤ2ホストのシステムとの間のホスティング関係を定義する3つのホスティングメンバのうちの1つにフローされる。
<HostingDefinition name=”DefaultBikePlacement” guestDefinition=”Bike” hostDefinition=”OperatingSystem:OperatingSystem”>
<settingDeclaration name=”fileLocationRelativeToRoot” definition=”xs:sting” access=”readwrite” dynamic=”false”/>
<settingValue name=”dirPath”>systemFolder</settingValue>
<flow name=”copyPath” definition=”copy”>
<input name=”source” path=”dirPath”/>
<output name=”destination” path=”bikeExecutableHost.hostRelativePath”/>
</flow>
<hosting name=”bikeExecutableHost” relationship=”fileDirectoryHost”
guestMember=”guest.bikeFile” hostMember=”host.FileSystem”/>
<hosting name=”bikeEventKeyHost” relationship=”registryKeyRegistryKeyHost”
guestMember=”guest.bikeEventKey” hostMember=”host.Registry.ApplicationEventKey”/>
<hosting name=”bikeSoftwareKeyHost” relationship=”registryKeyRegistryKeyHost”
guestMember=”guest.bikeSoftwareKey” hostMember=”host.Registry.HKLM”/>
</HostingDefinition >
3.8.4.2 参照関係
2つの具象型間の具象参照関係を使用して、通信関係を含まないシステム間の特定の従属性を取り込むことができる。例えば、インストールされるあるアプリケーションに対して、別のアプリケーションがすでに存在すべきであることを取り込むことができる。
Figure 2004272908
Figure 2004272908
参照関係では、以下の具象型の対の組合せが有効である。
Figure 2004272908
3.9 オブジェクト制約および関係制約
オブジェクト制約および関係制約は、具象空間のトポロジを定義し、オブジェクトが特定の関係中で使用されたときのオブジェクトの設定を制約するために使用する。
例えば、ある抽象オブジェクト定義(A)内で、この抽象定義の実装が別の抽象オブジェクト定義(B)のインスタンス1つを含むべきであると識別したい場合がある。少なくとも1つの適切な制約関係がすでにあるとすると、こうするには、A内で以下のように見える関係制約を使用したことになる。
Figure 2004272908
この制約は、Aの実装が親の役割を果たし、関係の他方の端(メンバ)における型が型Bであるという、包含関係が存在すべきであることを識別する。Bの構成に対してより多くの制御が欲しい場合は、以下のように、型Bの設定に対する制約を追加することができる。
Figure 2004272908
この場合、メンバの名前がストリング「myPort」に等しいことを必要とする制約が追加されている。
また、制約は関係に追加することもできる。これらをオブジェクト制約と呼ぶ。関係内から、関係に参与するオブジェクトを制約する。関係中の各役割につき、オブジェクト定義を識別することができ、次いでこれらのオブジェクト定義に設定制約を追加することができる。関係から見ると、カーディナリティは常にminOccurs=1およびmaxOccurs=1であり、したがってこれは制約宣言には現れない。
Figure 2004272908
最後に、制約はネストすることができる。これにより、制約を1つに連鎖させることができ、外側の制約が、内側の制約に関するコンテキストを設定する。以下は、webAppシステムをホストするIISシステムの例であり、IISシステムはこの場合、webAppが特定の型のエンドポイントだけを含むように制約する。
この場合、オブジェクト制約のグループを使用して、少なくとも1つが真となる可能性セットを指定する。
Figure 2004272908
ネストされた制約は、外から中へ評価できるパスを形成する。パス上の各制約は、パス上の前のインスタンスならびに現在のインスタンスの設定にアクセスすることができる。ネストされた制約の評価は、識別されるシステム内で制約が定義されているかのように行われる。
以下の2つのシナリオは、fooから見て等価なはずである。第1のシナリオでは、fooが、含まれるシステムbarに対して、ネストされた制約を配置しており、第2のシナリオでは、型barがすでに制約を含んでいる。
シナリオ1:
Figure 2004272908
シナリオ2:
Figure 2004272908
3.9.1 制約モデル
制約モデルには、ガードと述語という2つの部分がある。ガードは、述語を実行するコンテキストを定義するのに使用する。例えば関係内では、ガードを使用して、述語を実行したい型の特定の組合せを識別する。オブジェクト内では、ガードを使用して、他のオブジェクトに対する関係のセットを識別する。
次いで、それらのガードの要件が満たされたときに述語が実行される。述語には2つの形がある。すなわち、設定値を妥当性検査する設定制約と、制約のセットを妥当性検査するグループ制約である。
ガードの中にガードをネストすることができ、その場合、内側のガードは外側のガードが満たされたときだけチェックされる。これにより、関係構造の検証をサポートするパスを構築することができる。
ガードとその述語の組合せは、ガードがマッチし述語が真に評価される回数を示すカーディナリティを有することができる。
より正式には以下のとおりである。
Figure 2004272908
ガードは、ObjectConstraintとRelationshipConstraintのどちらかとして定義される。オブジェクト制約は、関係のいずれかの端に関連する2つのオブジェクト定義を識別する。関係制約は、関係定義およびターゲットオブジェクト定義を識別する。オブジェクト制約は任意選択または必須とすることができ、関係制約は下限と上限を有する。このカーディナリティの違いは、関係は常に2つの型しか識別できないが、型は複数の関係に参与できることを反映している。
Predicate:==SettingsConstraint(rule)|group{(guard)*}
述語は、規則を含む設定制約と、ガードのセットを含むグループとのどちらかである。述語は、ガードのコンテキストで評価される。設定制約の場合、述語は、ルートガードのオーナからの設定と、ネストされた各ガードによって識別されるコンテキストとを識別することができる。グループは、マッチして真に評価されるべきガードを少なくとも1つ含むガードセットを識別するのに使用される。
例:
1. RelationshipConstraint(containmentRelationship,webapp,0,1{}
この例は、webappとの包含関係があるときは常に真に評価されるガードを示している。このガードは、多くても1回、真に評価されることができる。それ以上のマッチがある場合は、エラーがユーザに返される。
Figure 2004272908
この例では、ガードに述語を追加している。ガードは、関係定義とターゲット定義がマッチし、設定制約が真に評価されるときだけ、真に評価される。関係定義とターゲット定義がマッチし、設定制約が真でない場合は、エラーがユーザに返される。関係とターゲット型がマッチし、設定制約が複数回にわたって真に評価される場合は、エラーがユーザに返される。
Figure 2004272908
この例では、ガードの中にガードをネストしている。外側のガードが真であるとき(制約を含む型がwebappも含む)、内側のガードは外側のガードのコンテキストで評価される。これは、内側の関係制約がwebappインスタンスのコンテキストで評価されることを意味する。webAppが0または1個のvdirを含む場合は、内側の制約は真を返す。複数のvdirを含む場合は、制約はユーザにエラーを返す。
Figure 2004272908
オブジェクト制約のコンテキストが、プライマリオブジェクト定義(第1のオブジェクト定義)である。これは、関係制約がwebappのコンテキストで評価されることを意味する。関係制約は2つの可能なコンテキストを定義する。第1は関係であり、これはオブジェクト制約のためのコンテキストになる。第2はターゲットオブジェクト定義であり、これは関係制約のためのコンテキストになる。
Figure 2004272908
この例では、グループを使用して、共にwebappのコンテキストで評価されることになる2つの関係制約を含めている。グループは、関係の少なくとも一方が発火して真を返すまでエラーを生じる。この場合では、webappはvdirとdirectoryのどちらかを含むべきである。
3.9.2 基底制約
<xs:complexType name=”Constraint”>
<xs:sequence>
<xs:element name=”Description” type=”Description” minOccurs=”0”/>
<xs:element name=”DesignData” type=”DesignData” minOccurs=”0”/>
</xs:sequence>
<xs:attribute name=”name” type=”SimpleName”/>
</xs:complexType>
Figure 2004272908
3.9.3 オブジェクト制約
オブジェクト制約は、関係の役割の一方または両方に対する制約を記述する。制約は、制約が失敗した場合に制約の識別を助けるための名前を有し、役割に関連する型をターゲットとする設定制約のリストを含み、さらに、インスタンスを、役割に関連する定義から派生したオブジェクトのインスタンスになるよう制約することもできる。
Figure 2004272908
Figure 2004272908
3.9.4 オブジェクト制約グループ
オブジェクト制約グループは、オブジェクト制約のセットを少なくとも1つのセマンティクスを使用して評価できるよう1つにグループ化することを可能にする。グループは、オブジェクト制約の少なくとも1つが関係上のオブジェクトとマッチし、次いでそれに含まれる述語が真に評価されない限り、エラーを返す。型制約がグループの直接のメンバである場合は、制約に関するrequired属性は無視される。
Figure 2004272908
Figure 2004272908
3.9.5 関係制約
関係制約は、オブジェクトが参与することのできる関係を制約するのに使用する。関係制約は、関係定義を識別し、任意選択で、関係の他方の端におけるインスタンスのオブジェクト定義と、関係のカーディナリティも識別する。エラーメッセージ中で制約を識別できるように、制約には名前が与えられる。関係制約の本体は、関係と、関係の他方の端におけるインスタンスとの両方に関する述語を含む。
関係制約は、いくつかの目的で使用することができる。述語を追加せず単純にカーディナリティを使用する場合、これらは、インスタンスを正しく動作させるために提供すべき関係を識別するのに使用することができる。述語を伴う場合は、このオブジェクトが対話したいインスタンスに関する構成のセットを限定するのに使用することができる。
<xs:complexType name=”RelationshipConstraint”>
<xs:complexContent>
<xs:extension base=”Constraint”>
<xs:choice minOccurs=”0” maxOccurs=”unbounded”>
<xs:element name=”SettingsConstraint” type=”ConstraintMember”/>
<xs:element name=”RelationshipConstraint” type=”RelationshipConstraint”/>
<xs:element name=”RelationshipConstraintGroup” type=”RelationshipConstraintGroup”/>
<xs:element name=”ObjectConstraint” type=”ObjectConstraint”/>
<xs:element name=”ObjectConstraintGroup” type=”ObjectConstraintGroup”/>
</xs:choice>
<xs:attribute name=”Relationship” type=”QualifiedName” use=”required”/>
<xs:attribute name=”MyRole” type=”RolesList” use=”required”/>
<xs:attribute name=”TargetObject” type=”QualifiedName” use=”optional”/>
<xs:attribute name=”MinOccurs” type=”MinOccurs” use=”optional”/>
<xs:attribute name=”MaxOccurs” type=”MaxOccurs” use=”optional”/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Figure 2004272908
3.9.6 関係制約グループ
関係制約グループは、関係制約のセットを少なくとも1つのセマンティクスを使用して述語として評価できるよう1つにグループ化することを可能にする。グループは、含まれる関係制約の少なくとも1つが関係定義およびターゲットオブジェクトとマッチし、それに含まれる述語が真を返さない限り、エラーを返す。含まれる制約中の述語のいずれかがエラーを返す場合は、これらのエラーがユーザに伝えられる。含まれる関係制約のminOccursカーディナリティは無視されるが、maxOccursカーディナリティに違反した場合は、エラーがユーザに返される。
Figure 2004272908
Figure 2004272908
3.10 オブジェクトマネージャ
オブジェクトマネージャは、型および関係がカスタム挙動をランタイム環境に挿入するのに使用する機構である。マネージャがサポートすることのできる役割は、管理する型ごとにいくつかある。すなわち、型のインストールに参与することができ、型のCLR表現を提供することができ、型間のバインドをどのように解決するかについてのポリシー決定に関与することができ、複雑な制約およびフローの実施を提供することができる。
オブジェクトマネージャのすべての役割は、厳密名が付いたクラスへのエントリポイントとしてCLRを介して開示される。オブジェクトマネージャは、SDM中の他の型と同じようにしてパッケージされバージョニングされる。すなわち、システム配信ユニットで配信され、それらのバージョンおよび厳密名は、それらが宣言されるSDMファイルに由来する。
<xs:complexType name=”Manager”>
<xs:sequence>
<xs:element name=”Description” type=”Description” minOccurs=”0”/>
</xs:sequence>
<xs:attribute name=”Name” type=”SimpleName” use=”required”/>
<xs:attribute name=”AssemblyName” type=”xs:string” use=”required”/>
<xs:attribute name=”Version” type=”FourPartVersionType” use=”optional”/>
<xs:attribute name=”PublicKeyToken” type=”PublicKeyTokenType” use=”optional”/>
<xs:attribute name=”Culture” type=”xs:string” use=”optional”/>
<xs:attribute name=”Platform” type=”xs:string” use=”optional”/>
<xs:attribute name=”SourcePath” type=”xs:string” use=”optional”/>
</xs:complexType>
Figure 2004272908
3.10.1 役割
オブジェクトマネージャは、それがサポートする型ごとに、1つまたは複数の役割をサポートすることができる。これらの役割には以下のものが含まれる。
a)型または関係に関する制約の評価
b)型または関係に関するフローの評価
c)型に関する構築/破壊/更新サポート
d)型または関係上の設定に関するオブジェクト表現の開示
e)型または関係に関する発見の実施
f)型または関係をとりまく設計表面特有UIのサポート
3.11 SDM文書構造
SDM文書は、関係とオブジェクトとマネージャとのセットについて、強力な識別、バージョニング、およびローカライゼーション情報を提供する。
<xs:element name=”Sdm”>
<xs:complexType>
<xs:sequence>
<xs:element name=”Information” type=”Information” minOccurs=”0”/>
<xs:element name=”Import” type=”Import” minOccurs=”0” maxOccurs=”unbounded”/>
<xs:element name=”DesignData” type=”DesignData” minOccurs=”0”/>
<xs:element name=”SettingDefinitions” type=”SettingDefinitions” minOccurs=”0”/>
<xs:choice minOccurs=”0” maxOccurs=”unbounded”>
<xs:element name=”AbstractEndpointDefinition” type=”AbstractEndpointDefinition”/>
<xs:element name=”AbstractSystemDefinition” type=”AbstractSystemDefinition”/>
<xs:element name=”AbstractResourceDefinition” type=”AbstractResourceDefinition”/>
<xs:element name=”AbstractCommunicationDefinition” type=”AbstractCommunicationDefinition”/>
<xs:element name=”AbstractHostingDefinition” type=”AbstractHostingDefinition”/>
<xs:element name=”AbstractContainmentDefinition” type=”AbstractContainmentDefinition”/>
<xs:element name=”AbstractDelegationDefinition” type=”AbstractDelegationDefinition”/>
<xs:element name=”AbstractReferenceDefinition” type=”AbstractReferenceDefinition”/>
<xs:element name=”ReferenceDefinition” type=”ReferenceDefinition”/>
<xs:element name=”HostingDefinition” type=”HostingDefinition”/>
<xs:element name=”EndpointDefinition” type=”EndpointDefinition”/>
<xs:element name=”ResourceDefinition” type=”ResourceDefinition”/>
<xs:element name=”ServiceDefinition” type=”ServiceDefinition”/>
<xs:element name=”ConstraintDefinition” type=”ConstraintDefinition”/>
<xs:element name=”FlowDefinition” type=”FlowDefinition”/>
<xs:element name=”Manager” type=”Manager”/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref=”NamespaceIdentity”/>
<xs:attribute name=”documentLanguage” type=”Culture”/>
</xs:complexType>
</xs:element>
3.11.1 情報
SDM文書の情報セクションは、SDM文書の識別および管理をサポートするための、人間に読める情報を含む。
Figure 2004272908
Figure 2004272908
3.12 変更要求
図15に、変更要求の例を示す。変更要求は、SDMランタイムに対する変更のセットを識別する。ランタイムに対するすべての変更は、要求の構築を可能にするAPIによる、またはXMLフォーマットの、変更要求を使用して開始される。
初期の要求は、単一のアクショングループを含む。要求がランタイムによって処理されるにつれて、ネストされるグループ化によってより多くの構造が追加され、展開およびフロープロセスの結果、より多くのアクションが追加される。この評価プロセスを経て、今やターゲットマシンに対して実行される準備のできた変更要求を、完全修飾変更要求と呼ぶ。これ以上の情報については3.13章を参照されたい。
3.12.1 一貫性規則
SDMインスタンス空間に対してアクションを実施する際は、アクション完了後にもSDMインスタンス空間中のすべてのインスタンスが一貫した状態であることを妥当性検査する。一貫した状態とは、インスタンスに適用されるすべての制約が依然として有効であることを意味する。例えば、サーバへの接続を必要とするクライアントのインスタンスを生成する場合、クライアントを生成して接続するのに使用されるアクションのシーケンスが完了したときにも、クライアントとサーバとの間に接続が存在すべきである。
モデル一貫性を評価するのに使用される制約は、アクションベースで、またはアクションのセットの終わりに評価することができる。この2つの型の一貫性を、動作一貫性およびトランザクション一貫性と呼ぶ。
トランザクション完了後にオブジェクトの一貫性がなくなる場合、ユーザはこのインスタンスを明示的にオフラインとしてマークすることができる。インスタンスがオフラインのときは、インスタンスに適用される制約は評価されず、他のインスタンスからはこのインスタンスが存在するようには見えない。このことは、これらのインスタンスもまたすべてオフラインとしてマークすべきであることを意味する場合がある。オフラインは、親から子へ、ホストからゲストへ伝搬される。したがって、システムをオフラインとしてマークすることは、システムによって所有されるすべてのインスタンスをオフラインとしてマークし、システム上でホストされるすべてのインスタンスをオフラインとしてマークすることになる。
3.13 モデル評価
この章では、SDMランタイムの範囲内におけるSDMモデルの挙動について述べる。
3.13.1 定義空間
定義空間は、SDMランタイムに知られているすべての定義を含む。図16の各ステップに、新しい定義をランタイム内にロードする例示的なプロセスを規定する。このプロセスはまた、設計表面がSDM文書を妥当性検査するときに行われるコンパイルプロセスでも共有される。
3.13.1.1 ロード
SDM文書は、SDUの一部として、またはスタンドアロン文書としてランタイムに提示される。ファイルをディスクからロードすることが試みられる。
Figure 2004272908
3.13.1.2 スキーマ妥当性検査
第1のステップでは、SDM文書がSDMスキーマとマッチすることを妥当性検査する。この時点で、すべての未知要素、必要要素の不足している型、無効なデータを含む属性または型については、エラーを返す。
Figure 2004272908
3.13.1.3 設定値および型解決
型解決フェーズでは、SDMファイル内の型への参照をすべて解決する(スキーマ中で修飾名が使用されている位置ならどこでも)。まず、文書の範囲内にあるすべての型参照が有効であることを妥当性検査する。これらはすべて、エイリアスを含まない型参照である。次いで、すべてのインポートステートメントを解決することを試みる。インポートステートメントを解決することができない場合は、名前空間ロードエラーを生成し、インポートステートメントを解決することができる場合は、名前空間内で型を突き止めることを試みる。SDMファイルから名前空間をロードしなければならない場合、名前空間解決プロセスは他のエラーを生じる場合がある。
Figure 2004272908
3.13.1.4 パス解決
パス解決フェーズの間、文書中で定義されたメンバおよび設定へのパスをすべて解決することを試みる。未解決の型を有するメンバまたは設定を参照するパスはエラーを生じない。
Figure 2004272908
Figure 2004272908
3.13.1.5 関係への参与
型空間で、型宣言がそのメンバの関係参与に関してどんな制約にも違反しないことをチェックする。これを行うために、関連する設定制約を有さないすべての型および関係制約を評価する。
Figure 2004272908
Figure 2004272908
3.13.1.6 インスタンスシミュレーション
インスタンスシミュレーションでは、失敗するとわかっている制約は識別し、ユーザ入力に基づいて失敗する場合としない場合がある制約にはフラグを立てないようにすることができるような方式で、値をフローして制約を評価することを試みる。こうするためには、インスタンス空間のモデルを構築し、このインスタンス空間に基づくフローおよび制約を評価する。フローまたは制約がエラーになることがわかっている場合はエラーを発し、エラーになる可能性がある場合は警告を発する。
すべてのbyReferemceシステム上のminOccurs制約を使用して、インスタンス空間変更要求を構築する。minOccursが0のときは、単一のインスタンスを生成し、オプションとしてマークする。次いで、標準の変更要求に使用したのと同じ展開プロセスおよびフロープロセスを通して変更要求を渡す。
Figure 2004272908
次いで、完全に定義された入力値を有するすべてのフローを評価する。入力値が固定でなく、ユーザによって変更できる場合は、このフローの出力を仮としてマークする。仮入力は、それを消費するどんなフロー演算によっても連鎖することになる。フローが完全な入力値を有さず、ユーザが値を提供できる場合は、このフローのすべての出力を未定義としてマークする。オプションのシステムからのフローもまた、仮の値を生じる。
Figure 2004272908
値をフローした後は、これらの値に基づいて制約を評価する。値を供給できなかった制約には警告を発する。また、未定義の値であるために制約が評価できなかったときにも警告を発する。
Figure 2004272908
Figure 2004272908
3.13.2 インスタンス空間
モデル評価プロセスは、宣言変更要求をサブミットすることによって開始する。この要求は、ランタイム内のインスタンスをターゲットとした生成、更新、または削除操作のセットを含む。次いで、図17に示すように、要求を一連のパイプラインステージに通した後、必要な変更をターゲットシステムに対して実施する。
以下の各章で、各展開(expansion)ステップの役割を概説する。
3.13.2.1 要求のサブミット
システムに対する変更を開始するために、オペレータまたはプロセスは、変更要求をサブミットすべきである。変更要求は、オペレータがランタイム内のインスタンスに対して実施したいと思うアクションのセットを含む。これらのアクションは、3つのグループ、すなわち生成アクション、更新アクション、削除アクションに分類される。
次いで要求は、グループとして完了または失敗すべき原子アクションセットとして扱われる。これにより、制約妥当性検査プロセスは、アクションセットがモデルに対する有効な変更をもたらすかどうかを評価するときに、要求中のすべてのアクションを考慮することができる。
Figure 2004272908
3.13.2.1.1 型解決
型解決フェーズでは、変更要求中で参照されるすべての型およびメンバを解決する。変更要求は、これらがすでにランタイムによってロードされていると見なす。これらが存在しない場合は、ランタイムはロード/コンパイルアクションを開始する必要がある。
3.13.2.1.2 パス解決
パス解決フェーズの間に、変更要求内の、既存のインスタンスおよび生成アクションによって定義されたインスタンスへの参照を解決する。
3.13.2.2 展開(Expansion)
展開は、変更要求について、要求を実行するのに必要な残りのすべてのアクションをポピュレートするプロセスである。一般にこれらのアクションは、型インスタンスおよび関係インスタンスに対する構築アクションおよび破壊アクションである。理論的には、オペレータは、インスタンスを構築または破壊するのに必要なすべてのアクションに関する詳細を提供することができるが、これは変更要求オーサリングプロセスを非常に複雑にするので、必要とされない。そうではなく、このプロセスをできるだけ自動化することが試みられる。オペレータは、byRerefenceメンバに対するアクションを識別することにより、オペレータが望む変更に関するキー情報を提供する。すると、ネストされたbyReferenceおよびbyValueメンバと関係に対して、アクションの残りが埋められる。
3.13.2.2.1 値メンバ
展開ステージの間、すべての非参照型メンバを識別する。これらのメンバのカーディナリティはわかっており、必要なすべてのパラメータはわかっている。したがって、各メンバごとに、親の生成中であるメンバについては生成要求を変更要求に追加する。変更要求が破壊動作を含む場合は、それらに含まれるすべてのインスタンスについて破壊動作を追加する。
3.13.2.2.2 参照メンバの展開(発見)
一般に、参照メンバを構築するには、値メンバよりも多くの情報が必要である。これらのカーディナリティはしばしば未定義であり、インスタンスが構築されるための値を必要とする展開時設定を有する可能性がある。したがって、byReferenceメンバを展開するプロセスは、インスタンスに関する情報として、ランタイムが提供できるよりも多くの情報を必要とする可能性がある。この情報を得るためのプロセスを、発見と呼ぶ。
発見のプロセスは、構築または更新アクションの一部として参照型メンバをポピュレートする。発見をサポートするオブジェクトマネージャを有する参照メンバだけが、このプロセスに参与する。
新しいインスタンスが発見されたときは、まず、インスタンス特有のキー値を使用して、このインスタンスがまだSDMデータベース中に存在しないことをチェックする。新しいインスタンスであることがわかれば、次いで、発見中のメンバの型に従ってインスタンスを分類する。インスタンスがメンバにマッチしない場合、または曖昧なマッチがある場合は、メンバ参照は空白のままにし、インスタンスはオフラインおよび不完全としてマークする。
3.13.2.2.3 関係の展開
構築されることになる型インスタンスがすべてわかった後で、型インスタンスを1つにバインドする関係インスタンスを生成する。型インスタンスの破壊中である場合は、型インスタンスを参照するすべての関係インスタンスを削除する。
関係を生成するには、メンバ空間に目を向けて、インスタンス間に存在すべき関係の構成を識別する。型メンバが1よりも大きいカーディナリティを有する場合は、関係のトポロジを推論しなければならない。これをどうやって行うかについては、XX章で詳細に論じる。
3.13.2.3 フロー
フローステージの間、すべての関係インスタンスにわたってフローを評価する。このステージでは、改変されたパラメータフローの影響を受けたインスタンスについて、変更要求に更新要求を追加することができる。
フローは、変更要求の結果として設定が更新されたインスタンスのセットを判定することによって評価する。これらのそれぞれにつき、修正された設定に依存する送出設定フローがあればそれを評価し、変更されたインスタンスのセットにターゲットノードを追加する。このプロセスは、セットが空になるまで、またはセットが循環を含むまで継続する。
Figure 2004272908
3.13.2.4 重複検出
重複検出のプロセスでは、展開されたインスタンスを、SDMデータ記憶域中にすでに存在するインスタンスと照合する。例えば、別のアプリケーションが共有ファイルをインストールしたかどうかを検出する。インスタンスがすでに存在することが検出されたときは、既存のインスタンスのバージョンに応じて、以下のようないくつかのアクションの1つを実施することができる。
a)インストールを失敗にする。
b)インスタンスを参照カウントする。
c)インスタンスをアップグレードする。
d)インストールを並行して実施する。
3.13.2.5 制約評価
制約評価フェーズの間には、変更要求が処理された後でもモデル中のすべての制約がまだ有効となるかどうかをチェックする。
Figure 2004272908
3.13.2.6 要求の順序付け
この時点では完全なアクションリストがあるので、システム間の関係を使用して、有効な変更順序付けを決定することができる。
3.13.2.7 実行
マシン特有の順序付けされたアクションセットのサブセットを配信する。これらのマシン特有セットのマシン間同期をサポートすべきである。
3.13.2.8 要求返却
変更は、影響を受けるホスティング関係に基づいて変更要求を配信可能部分に分解することによって行う。すべての部分が完了(または失敗)すると、ランタイム内で結果を照合し、概要をユーザに返す。
3.13.3 展開の詳細
この章では、型および関係に関する展開(expansion)プロセスについて詳細に検討する。
3.13.3.1 参照メンバの展開(発見)
ホスティング関係が、ある型の新しいインスタンスを構築することを担うのと同様にして、ホスティング関係は、既存の型インスタンスの発見を行うのにも使用される。ある型のインスタンスがホスト上で表される方式はホスティング関係だけが意識しているので、これを行うために、ホスティング関係を独特に配置する。
参照メンバに発見のマークが付されているとき、ホスティング関係が発見をサポートするかどうかをチェックする。サポートする場合は、その関係にホストインスタンスを渡し、関係がホスト上で見つけたゲストインスタンスに対する構築アクションを返すよう関係に要求する。
検証を使用して、インスタンスがもう存在しないことを発見する。この場合もまたホスティング関係を使用して、ホスト上のゲストの存在を検証する。ゲストがもう存在しない場合、ホスティング関係は、破壊アクションを変更要求に追加する。
3.13.3.2 非参照メンバの展開
ランタイムは、変更要求内の構築または破壊アクションについてすでに識別された型の各非参照メンバに対して構築または破壊アクションを単に追加することにより、すべての非参照メンバ展開を処理する。
3.13.3.3 通信関係の展開
2つの型メンバ間に通信関係メンバが存在する場合にオペレータが通信関係のインスタンスを指定していない場合は、完全に接続されたメッシュがメンバ間にあると仮定することにより、通信関係を展開する。
Figure 2004272908
これは何を意味しているだろうか。2つのメンバがメンバ空間で接続されている場合、各メンバのすべてのインスタンスは相互に見えていなければならない。図18に示すように、以下の2つのメンバがある場合、インスタンス空間トポロジはメンバのカーディナリティによって制約される。1800に、例示的な2つのメンバを示す。1802に、最大の2つのインスタンス間の単純なポイントツーポイント関係を示す。1804に、接続のファンアウト(fun out)を示す。一例は、サーバのセット全体にわたって要求の負荷バランスをとることのできるクライアントであろう。1806に、接続のファンイン(fan in)を示す。一例は、単一のサーバを共有するクライアントグループであろう。1808に、これらの場合の組合せを示す。1808では、クライアントのセットがサーバのセットを共有している。
通信リンクを構築するとき、委任エンドポイントが削除されたとしても存在するであろうすべての通信関係とマッチする接続になるように、委任エンドポイントはトランスペアレントになる。図19に、2つの構造1902および1904を示す。これらは、インスタンスA、B、C間の接続に関する限り等価である。
3.13.3.4 ホスティング関係の展開
ホスティング関係が曖昧な場合、オペレータまたはホスティング関係のマネージャが正しいトポロジを判定することが必要である。
ホスティング関係が展開をサポートする場合は、ホストとゲストのセットを関係マネージャに渡し、正しい構築アクションを返すようマネージャに要求する。マネージャが展開をサポートしない場合は、オペレータがより多くの情報を提供することができるように、オペレータに変更要求を返す。
3.13.3.5 参照関係の展開
3.13.3.6 包含関係の展開
包含関係が曖昧であることはないので、ランタイムは常に適切な構築アクションを変更要求に追加することができる。
3.13.3.7 委任関係の展開
展開では、委任関係は通信関係と同じ規則に従う。
3.13.4 フロー
3.13.5 実行
3.14 SDMインスタンス空間
以下の章では、SDMランタイムのインスタンス空間に関するオブジェクトモデルを定義する。インスタンス空間を使用して、SDMによってモデル化されるシステムの構成に対する変更を追跡する。
図20に、インスタンス空間の概観を提供する例示的なUML図を示す。ボックス2002、2004、2006、2008は、この文書の他の章で定義した型を示す。
インスタンス空間は、変更要求によって開始されるバージョニングされた変更をとりまいて構築される。各インスタンスは、実行中のインスタンスに加えられた原子的な変更を表す線形に連続するバージョンを有することができる。将来のバージョンが、実行中のシステムに伝わる前にランタイム内に存在することもできる。
SDMモデルのこのバージョンでは、所与のインスタンスに対して線形変更だけが可能である。将来は、バージョン分岐が可能になり、バージョン解決モデルが導入されるであろう。これにより、特定のインスタンスに対して複数の変更を未解決とすることが可能になる。
線形バージョニングが可能なので、前の変更の上に形成される一連の変更要求をロードすることができる。これは、ローリングアップグレードなどのプロセス中に実施される場合のある一連のアクションの事前妥当性検査をサポートする。
3.14.1 SDMインスタンス
すべてのインスタンスは、SDMインスタンスから派生する。これらは、設定スキーマに関する値を定義する要素と、インスタンスの定義上のメンバとマッチするメンバのリストを定義する要素とを共有する。これらはまた、インスタンスの固有の識別子と、インスタンスのバージョン番号と、インスタンスの名前と、このバージョンがシステムの実行状態を表すかどうかを示すフラグとを定義する属性のセットも共有する。
Figure 2004272908
Figure 2004272908
3.14.2 メンバ
memberは、インスタンスのメンバを、参照されるインスタンスのセットに関連付けるのに使用する。インスタンスのメンバは、インスタンスの定義によって定義される。参照されるインスタンスは、メンバに対して生成されたインスタンス、またはメンバが委任されるインスタンスである。メンバはアレイを表すことができ、その場合は複数の被参照インスタンスがあるものとすることができる。
Figure 2004272908
Figure 2004272908
3.14.3 変更
changeは、インスタンス状態に対する変更を表す。これは、変更要求を、影響を受けるインスタンスのセットに関連付ける。また、変更のステータス(XXX章参照)、および変更が実行された場合の変更応答も識別する。
Figure 2004272908
Figure 2004272908
3.14.3.1 変更ステータス
変更要求は、以下の状態の1つまたは複数をとることができる。
・notStarted−変更要求に対して実行が試みられていないことを示す。
・inProgress−現在実行されていることを示す。
・complete−変更要求がうまく完了したことを示す。
・failed−変更要求が失敗し、変更が未完了の状態であることを示す。
・rolledBack−失敗した変更要求がうまくロールバックされたことを示す。
Figure 2004272908
3.14.4 具象オブジェクトインスタンス
具象オブジェクトインスタンスは、型属性によって識別される具象型のインスタンスを表す。インスタンスには実世界表現がある可能性があるので、インスタンスがその実世界の相対物と同期しているかどうか追跡する必要がある。また、この変更の結果としてインスタンスがオンラインになるかどうかを知ることも望まれる。オンラインのインスタンスは、そのすべての制約に関して有効であるべきである。オフラインのインスタンスは、それが参与している通信関係の他の参与者には見えない。インスタンスが不完全な場合は、インスタンスをオンラインにできるようになる前に、さらに変更要求が必要である。
<xs:complexType name=”ObjectInstance”>
<xs:complexContent>
<xs:extension base=”sdmInstance”>
<xs:attribute name=”inSync” type=”xs:boolean” use=”required”/>
<xs:attribute name=”online” type=”xs:boolean” use=”required”/>
<xs:attribute name=”type” type=”qualifiedName” use=”required”/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Figure 2004272908
3.14.5 関係インスタンス
relationship instanceは、識別された関係型のインスタンスを表す。関係には直接的な実世界表現がないので、関係が同期しているまたはオンラインであるかどうかに関する情報を保持している必要がある。また関係は、それらの制約を満たせない可能性もあるが、相対的に単純なので、不完全であることは予想されない。
Figure 2004272908
Figure 2004272908
3.14.5.1 containment instance
これは包含関係のインスタンスを表す。
Figure 2004272908
Figure 2004272908
3.14.5.2 communication instance
これは通信関係のインスタンスを表す。
Figure 2004272908
Figure 2004272908
3.14.5.3 delegation instance
これは委任関係のインスタンスを表す。
Figure 2004272908
Figure 2004272908
3.14.5.4 hosting instance
これはホスティング関係のインスタンスを表す。
Figure 2004272908
Figure 2004272908
3.14.5.5 reference instance
これは参照関係のインスタンスを表す。
Figure 2004272908
Figure 2004272908
3.14.6 インスタンス
instancesグループは、SDMインスタンスファイル中に存在することのできるインスタンス要素のセットを表す。
<xs:group name=”instances”>
<xs:choice minOccurs=”0” maxOccurs=”unbounded”>
<xs:element name=”SystemInstance” type=”concreteTypeInstance”/>
<xs:element name=”portInstance” type=”concreteTypeInstance”/>
<xs:element name=”resourceInstance” type=”concreteTypeInstance”/>
<xs:element name=”member” type=”member”/>
<xs:element name=”containmentInstance” type=”containmentInstance”/>
<xs:element name=”communicationInstance” type=”communicationInstance”/>
<xs:element name=”hostingInstance” type=”hostingInstance”/>
<xs:element name=”delegationInstance” type=”delegationInstance”/>
<xs:element name=”referenceInstance” type=”referenceInstance”/>
<xs:element name=”placementInstance” type=”placementInstance”/>
</xs:choice>
</xs:group>
3.14.7 インスタンス参照
3.14.7.1 instance Ref
instance Refは、インスタンスへの単純な参照である。参照が変更要求のコンテキストでなされ、インスタンスが変更要求の影響を受けるのでない限り、デフォルトではisCurrentインスタンスになる。
Figure 2004272908
3.14.7.2 instance Version Ref
instance Version Refは、インスタンスの特定のバージョンを識別する。
Figure 2004272908
3.15 展開(deployment)ユニットの構造
要件
・SDM型のセットをインストールするのに必要なすべてのビットを含む。
・署名およびバージョニングができる。
・容易に構築/パッケージ/出荷できる。
・参照または包含によって他のSDUを参照することができる。
・SDM型定義の展開セクションがSDU中のファイルを直接参照する。
3.16 ローカライゼーション
SDMモデルのどの部分がローカライゼーションをサポートし、システムの設計および展開を通してどのようにローカライゼーションがサポートされるかを決定する必要がある。
第1の手法:
ローカライゼーションは、個々の型および管理すべき型に完全に任される。ローカライゼーションは、制約を介して暗黙的である。ローカライゼーションは第1タイプ市民(first type citizen)ではない。これは以下のことを意味する。
a)SDUは、特定バージョンの型の実装を含むことができる。すなわち、特定バージョンの実装が1つある。このことは、違いがローカライゼーションのみに基づく実装はあり得ないことを意味する。したがって、各実装は一定範囲のロケールをサポートすべきであり、あるいは実装は異なる型とすべきである(この目的でバージョニングを使用するのは良くないことである!)。
b)次いで、リソースをmixinとして使用して特定バージョンをサポートすることによって、あるいは、異なるバージョンをサポートする実装を識別する型のセットを使用することによって、ローカライゼーションを達成する。
c)クライアントは、ローカライズされたバージョンのサーバを区別/要求することはできない。
第2の手法:
ローカライゼーションは、名前およびバージョンに沿った識別の第1タイプ市民である。このことは、型への参照が行われる位置ではどこでもローカライゼーションを考慮すべきであることを意味する。
a)クライアントはこの場合、包含関係、ホスティング関係、通信関係のいずれでも、ローカライズされたバージョンのサーバを区別することができる。
b)展開エンジンは、ローカライゼーションを意識すべきであり、ローカライズされたバージョンの型間でオペレータが選択できるようにすべきである。
c)SDUは名前、バージョン、およびロケールで識別される。あるいはSDUは、違いが場所のみに基づく複数の実装を含むことができる。(第1の場合は、ローカライズされないコードを別個のSDU中に配置すべきなので、よりきめ細かいSDUのパッケージングを意味する。第2の場合は、同じ名前で複数のSDUを有することができることを意味する。)
第2の手法は、ロケールが制約として広く使用された場合、設計/UIから見て非常に複雑になる可能性がある。例えば、エンドポイントがローカライズされた場合、またはホストがそれらのゲストをローカライズした場合、接続/配置を見つけるのはずっと複雑になる。第2の手法を、提案した機構として第1の手法のb)と共に使用した場合、複雑さはより扱いやすいかもしれないが、ローカライズされたリソースを誰かが識別し、パッケージし、発送しなければならない。
3.17 バージョニングおよび変更管理
3.17.1 一般的なコメント
・システムをその場でバージョニングできることが望ましい。すなわち、インスタンス識別を変更せずにQFEをSQLに適用できることが望ましい。これは、インスタンスの型を変更することを意味する。
・バージョニングポリシーが、許容されるバージョン変更を制御できるようにすることが望ましい。例えば、システム型の設計者が、システムのメンバに対するバージョニングポリシーがどのくらい厳しいかを選択することができ、あるいはオペレータが、セキュリティ上の理由から一方的にメンバのバージョンをアップグレードすることができる。
・バージョニング変更の伝搬を制限することが望ましい。例えば、メンバの型を変更した場合に、システムの型を変更しなければならず、したがって型変更をルートに伝搬しなければならないのは望ましくない。
・途切れのある変更は、バージョン番号の最初の2つの部分の変化によって示され、途切れのない変更は、バージョン番号の第2の2つの部分の変化によって示される。
この文書を誰かに配布する場合は、NDAの下であっても、仕様書EULAをこの文書の最初に付加しなければならない。情報については<http://dealpoint/Info/Feedback/TDA.asp>を参照されたい。このEULAなしで配布された文書は、当社にとって重大な法的リスクである。
この仕様書をNDAの下で、かつ適切な同意の下で配布してもよいか?
この仕様書を一般に配布してもよいか?
4.テンプレート指示
4.1 フィーチャプロセス情報
目的は、Windows(登録商標)のすべてのフィーチャが同じ仕様書テンプレートを使用するようにすることである。あなたのフィーチャの分野によっては、いくつかのセクションは該当しない場合があることを理解されたい。
このテンプレートがあなたの必要性を満たさない場合、またはエラーを有する場合は、mailto:johngrayにコンタクトのこと。また、新しいPMおよびDevがテンプレートを記入するのに役立つベストプラクティス情報があれば、mailto:johngrayに提案を送信されたい。
フィーチャレビューに向けて予定どおりになるようにするために、カバーページ(コンタクトなど)、セクション1 序文、セクション3.1 依存、セクション6 スケジュール/スタッフ配置を記入する必要がある。最初はこれらのセクションを完全に完成させることができない場合があることは理解される。今わかっているところまで完成させるよう最大限に努力し、進むにつれて更新されたい。意図するところは、チームが可能性ある対話に備えることができるように、あなたのフィーチャの主要なインパクトを概説することである。
フィーチャレビューに備えるためには、この仕様書テンプレートの80%を記入し、各セクションに何かがあるようにすべきである(たとえN/AやTBDでも)。
4.2 テンプレートへの記入の仕方
新規ファイルを選択し、このテンプレートを文書として開く。あなたの仕様書の本体には、書式ツールバー上のスタイルコントロールから、見出し1〜5、本文テキスト、ブロック引用、リスト黒丸、リスト数字などのスタイルを使用する。
文書プロパティ中の文書タイトルの下にフィーチャ名を必ず記入すること。
4.2.1 内容
各セクションには、何を書くべきか理解するのに役立つ基本的な指示がリストされている。すべての指示は青色でリストされている。
「書式マーク」の下のツール/オプション/表示タブで、「隠す」のチェックをオンまたはオフにすれば、このテキストを表示したり隠したりすることができる。また、ツールバー上の「段落」テキスト表示ボタン、または最終ページの「表示/隠す」指示ボタンを使用しても表示することができる(マクロをオンにする必要がある)。
4.2.2 黒丸および数字リストの作り方
・このような黒丸リストを作成するには、1つまたは複数の段落を選択し、書式ツールバー上のスタイルドロップダウンリストからリスト黒丸スタイルを選択する。上の数字付き段落のような数字リストを作成するには、1つまたは複数の段落を選択し、スタイルドロップダウンリストからリスト番号スタイルを選択する。
4.2.3 問題ブロックの作り方
あなたの仕様書の行の中で、問題を強調して言いたい場合があるかもしれない。問題ブロックを使用して、それらに注意を向けさせることができる。問題ブロックの見出しにしたいテキストと、問題ブロックに含めたいテキストの段落を書く。次に、見出しテキストをハイライトさせ、スタイルドロップダウンリストから問題ブロック見出しを選択する。次に、問題ブロックに含めたいテキストの段落をハイライトさせ、ドロップダウンリストから問題ブロックスタイルを選択する。
Figure 2004272908
4.3 目次の更新の仕方
この仕様書の目次を更新するには、TOCページにカーソルを合わせ、右クリックして更新フィールドを選択する。ページ番号だけの更新か、目次全体の更新かを選択することができる。
4.4 仕様書テンプレートの改訂
これは仕様書テンプレート自体の改訂履歴を文書化する。このセクションは個々の仕様書から削除すべきである。
Figure 2004272908
例示的なコンピュータ環境
図21に、本明細書に述べた技法を実施するのに使用できる一般的なコンピュータ環境600の例を示す。コンピュータ環境600は、コンピューティング環境の一例にすぎず、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲に関してどんな制限も意味するものではない。またコンピュータ環境600は、この例示的なコンピュータ環境600に示すコンポーネントのいずれか1つまたは組合せに関してどんな依存も要件も有するものと解釈すべきではない。
コンピュータ環境600は、コンピュータ602の形の汎用コンピューティングデバイスを含む。コンピュータ602は、例えば図1のコンピューティングデバイス102とすることもでき、図2の開発システム202を実装することもでき、図2のコントローラ206とすることもでき、図2のターゲットデバイス212とすることもでき、図5のコントローラ520またはターゲット522とすることもできる。コンピュータ602のコンポーネントには、限定しないが、1つまたは複数のプロセッサまたは処理ユニット604と、システムメモリ606と、プロセッサ604を含めた様々なシステムコンポーネントをシステムメモリ606に結合するシステムバス608とを含めることができる。
システムバス608は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、AGP(accelerated graphics port)、プロセッサバスまたはローカルバスを含めて、いくつかのタイプのバス構造の任意の1つまたは複数を表す。例えばこのようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとも呼ばれるPCI(Peripheral Component Interconnects)バスを含めることができる。
コンピュータ602は通常、様々なコンピュータ可読媒体を備える。このような媒体は、コンピュータ602からアクセス可能な任意の利用可能な媒体とすることができ、揮発性と不揮発性、リムーバブルとノンリムーバブルの両方の媒体が含まれる。
システムメモリ606は、ランダムアクセスメモリ(RAM)610などの揮発性メモリ、および/または、読出し専用メモリ(ROM)612などの不揮発性メモリの形のコンピュータ可読媒体を含む。ROM612には、起動中などにコンピュータ602内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(basic input/output system)614が記憶されている。RAM610は通常、プロセッサ604からすぐにアクセス可能な、かつ/またはプロセッサ604が現在作用している、データおよび/またはプログラムモジュールを含む。
コンピュータ602は、その他のリムーバブル/ノンリムーバブル、揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例えば図21には、ノンリムーバブルかつ不揮発性の磁気媒体(図示せず)に対して読み書きするためのハードディスクドライブ616と、リムーバブルかつ不揮発性の磁気ディスク620(例えば「フロッピー(登録商標)ディスク」)に対して読み書きするための磁気ディスクドライブ618と、CD(compact disc)−ROMやDVD(Digital Versatile Disc)−ROMやその他の光媒体などリムーバブルかつ不揮発性の光ディスク624に対して読み書きするための光ディスクドライブ622を示す。ハードディスクドライブ616、磁気ディスクドライブ618、および光ディスクドライブ622はそれぞれ、1つまたは複数のデータ媒体インタフェース626によってシステムバス608に接続される。あるいは、ハードディスクドライブ616、磁気ディスクドライブ618、および光ディスクドライブ622は、1つまたは複数のインタフェース(図示せず)によってシステムバス608に接続されてもよい。
各ディスクドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶域をコンピュータ602に提供する。この例では、ハードディスク616、リムーバブルな磁気ディスク620、およびリムーバブルな光ディスク624が示してあるが、磁気カセットまたは他の磁気記憶デバイス、フラッシュメモリカード、CD−ROM、DVDまたは他の光記憶装置、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、EEPROM(Electronically Erasable and Programmable Read Only Memory)など、コンピュータからアクセス可能なデータを記憶することのできる他のタイプのコンピュータ可読媒体も、この例示的なコンピューティングシステムおよび環境を実現するのに利用できることを理解されたい。
ハードディスク616、磁気ディスク620、光ディスク624、ROM612、および/またはRAM610には、任意の数のプログラムモジュールを記憶することができる。例えばこれらには、オペレーティングシステム626、1つまたは複数のアプリケーションプログラム628、その他のプログラムモジュール630、およびプログラムデータ632が含まれる。このようなオペレーティングシステム626、1つまたは複数のアプリケーションプログラム628、その他のプログラムモジュール630、およびプログラムデータ632(またはこれらの何らかの組合せ)はそれぞれ、分散ファイルシステムをサポートする常駐コンポーネントの全部または一部を実装することができる。
ユーザは、キーボード634やポインティングデバイス636(例えば「マウス」)などの入力デバイスを介して、コンピュータ602にコマンドおよび情報を入力することができる。その他の入力デバイス638(具体的には図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、シリアルポート、スキャナ、および/またはその他を含めることができる。これらおよび他の入力デバイスは、システムバス608に結合された入出力インタフェース640を介してプロセッサ604に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など、その他のインタフェースおよびバス構造で接続されてもよい。
モニタ642または他のタイプの表示デバイスも、ビデオアダプタ644などのインタフェースを介してシステムバス608に接続することができる。モニタ642に加えて、その他の出力周辺デバイスには、スピーカ(図示せず)やプリンタ646などのコンポーネントを含めることができ、これらは入出力インタフェース640を介してコンピュータ602に接続することができる。
コンピュータ602は、リモートコンピューティングデバイス648など1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。例えばリモートコンピューティングデバイス648は、パーソナルコンピュータ、携帯コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、またはその他の一般的なネットワークノードなどとすることができる。リモートコンピューティングデバイス648は、コンピュータ602に関して本明細書に述べた要素および機能の多くまたはすべてを備えることのできる携帯コンピュータとして示されている。
コンピュータ602とリモートコンピュータ648との間の論理接続を、ローカルエリアネットワーク(LAN)650および一般的なワイドエリアネットワーク(WAN)652として示す。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットでよくみられるものである。
コンピュータ602は、LANネットワーキング環境で実現されるときは、ネットワークインタフェースまたはアダプタ654を介してローカルネットワーク650に接続される。WANネットワーキング環境で実現されるときは通常、ワイドネットワーク652を介した通信を確立するためのモデム656または他の手段を備える。モデム656は、コンピュータ602に内蔵でも外付けでもよく、入出力インタフェース640または他の適切な機構を介してシステムバス608に接続することができる。図示のネットワーク接続は例示的なものであり、コンピュータ602と648の間に通信リンクを確立する他の手段を採用することもできることを理解されたい。
コンピューティング環境600で示すようなネットワーク化された環境では、コンピュータ602に関して示すプログラムモジュールまたはその一部を、リモートのメモリ記憶デバイスに記憶することができる。例として、リモートアプリケーションプログラム658が、リモートコンピュータ648のメモリデバイス上にある。アプリケーションプログラム、およびオペレーティングシステムなどその他の実行可能プログラムコンポーネントは、ここでは説明のために個別のブロックとして示してある。ただし、このようなプログラムおよびコンポーネントは、様々な時点でコンピューティングデバイス602の種々の記憶コンポーネント中にあり、コンピュータのデータプロセッサによって実行されることを理解されたい。
本明細書で、様々なモジュールおよび技法は、1つまたは複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で述べることができる。一般にプログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態で望まれるように結合または分散させることができる。
これらのモジュールおよび技法の実装形態は、何らかの形のコンピュータ可読媒体に記憶するか、コンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、コンピュータからアクセスできる任意の利用可能な媒体とすることができる。限定ではなく例として、コンピュータ可読媒体には、「コンピュータ記憶媒体」および「通信媒体」を含めることができる。
「コンピュータ記憶媒体」には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性および不揮発性、リムーバブルおよびノンリムーバブルな媒体が含まれる。コンピュータ記憶媒体には、限定しないがRAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVDまたは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピュータからアクセスできる他の任意の媒体が含まれる。
「通信媒体」は通常、搬送波や他のトランスポート機構などの変調データ信号中に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを組み入れたものである。通信媒体には、任意の情報送達媒体も含まれる。「変調データ信号」という語は、情報が信号中に符号化される形で1つまたは複数の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体には、配線式ネットワークや直接配線式接続などの配線式媒体と、音響、無線周波、赤外線、その他の無線媒体などの無線媒体とが含まれる。以上の任意の組合せもコンピュータ可読媒体の範囲に含めるべきである。
別法として、このフレームワークの一部をハードウェアで、あるいはハードウェア、ソフトウェア、および/またはファームウェアの組合せで実現することもできる。例えば、1つまたは複数の特定用途向け集積回路(ASIC)またはプログラム可能論理デバイス(PLD)を、このフレームワークの1つまたは複数の部分を実現するように設計またはプログラムすることができる。
結び
本発明を構造上の特徴および/または方法上の動作に特定の言葉で述べたが、添付の特許請求の範囲に定義する本発明は、述べた具体的な特徴または動作に必ずしも限定されないことを理解されたい。そうではなく、これらの具体的な特徴および動作は、特許請求する本発明を実施する例示的な形として開示するものである。
本発明を適用できる実施形態の例示的なネットワーク設定を示す図である。 本発明を適用できる実施形態のSDM定義モデルを使用する例示的なアーキテクチャを示すブロック図である。 本発明を適用できる実施形態の例示的なレイヤ化設定を示す図である。 本発明を適用できる実施形態のシステムのライフサイクル全体にわたってシステム定義モデル(SDM)を使用するための例示的なプロセスを示すフローチャートである。 本発明を適用できる実施形態のSDMランタイムを使用する例示的なアーキテクチャを示す図である。 本発明を適用できる実施形態の例示的なSDM文書を示す図である。 本発明を適用できる実施形態の基底定義およびメンバを示す図である。 本発明を適用できる実施形態の例示的なメンバを示す図である。 例本発明を適用できる実施形態の示的な設定値および値リストを示す図である。 本発明を適用できる実施形態のいくつかの実施形態による例示的なSDMアプリケーションのライフサイクルを示す図である。 本発明を適用できる実施形態のウェブアプリケーションをウェブサーバホストにマッピングする例を示す図である。 本発明を適用できる実施形態の例示的な組込みデータ型階層を示す図である。 本発明を適用できる実施形態の抽象オブジェクト定義の暗黙的な拡張の例を示す図である。 本発明を適用できる実施形態の抽象関係の暗黙的な拡張の例を示す図である。 本発明を適用できる実施形態の変更要求の例を示す図である。 新しい定義をランタイム内にロードする例示的なプロセスを示す図である。 本発明を適用できる実施形態の変更要求を実施する例を示す図である。 本発明を適用できる実施形態の接続されたメンバの例を示す図である。 接続に関する例示的な構造を示す図である。 本発明を適用できる実施形態のインスタンス空間の概観を提供する例示的なUML図である。 本発明を適用できる実施形態の本明細書に述べる技法を実施するのに使用できる一般的なコンピュータ環境を示す図である。
符号の説明
200 例示的なアーキテクチャ
202 開発システム
204 SDM文書
206 コントローラ
208 展開モジュール
210 管理モジュール
212 ターゲットデバイス

Claims (47)

  1. システム定義モデルを使用してシステムを設計するステップと、
    その後、前記システム定義モデルを使用して、前記システムを1つまたは複数のコンピューティングデバイス上に展開するステップと、
    前記システムの展開後、前記システム定義モデルを使用して、前記1つまたは複数のコンピューティングデバイス上に展開された前記システムを管理するステップと
    を備えることを特徴とする方法。
  2. 前記システムはアプリケーションを含む
    ことを特徴とする請求項1に記載の方法。
  3. 前記システムは環境を含む
    ことを特徴とする請求項1に記載の方法。
  4. 前記システムを管理する間に得られた知識を使用して、前記システムの後続バージョンを設計するステップ
    をさらに備えることを特徴とする請求項1に記載の方法。
  5. 前記システム定義モデルは、前記システムをどのように前記1つまたは複数のコンピューティングデバイス上に展開するかを記述した知識を含む
    ことを特徴とする請求項1に記載の方法。
  6. 前記システム定義モデルは、前記システムをどのように複数の異なるコンピューティングデバイス上に展開するかを記述した知識を含み、前記知識は、前記システムをどのように前記複数の異なるコンピューティングデバイスのそれぞれに展開するかを記述した異なる知識を含む
    ことを特徴とする請求項1に記載の方法。
  7. 前記システム定義モデルは、前記システムが前記1つまたは複数のコンピューティングデバイス上で実行されるために前記1つまたは複数のコンピューティングデバイスが満たさなければならない制約を含む
    ことを特徴とする請求項1に記載の方法。
  8. 前記システムの設計中に、前記システム定義モデルを使用して、前記制約が前記1つまたは複数のコンピューティングデバイスによって満たされるかどうかをチェックすることができる
    ことを特徴とする請求項7に記載の方法。
  9. 前記システムの設計中および前記システムの管理中に、前記システム定義モデルを使用して、前記制約が前記1つまたは複数のコンピューティングデバイスによって満たされるかどうかをチェックすることができる
    ことを特徴とする請求項7に記載の方法。
  10. 前記システム定義モデルは、前記システムの展開後に前記システムをどのように管理するかを記述した知識を含む
    ことを特徴とする請求項1に記載の方法。
  11. 前記システムの管理中に、フローを使用して自動的に前記システムに構成変更を伝えるステップ
    をさらに備えることを特徴とする請求項1に記載の方法。
  12. 前記システムは前記1つまたは複数のコンピューティングデバイス上の環境に展開され、前記システムの設計、展開、および管理の前に、
    別のシステム定義モデルを使用して前記環境を設計するステップと、
    その後、前記別のシステム定義モデルを使用して、前記環境を前記1つまたは複数のコンピューティングデバイス上に展開するステップと、
    前記環境の展開後、前記別のシステム定義モデルを使用して、前記1つまたは複数のコンピューティングデバイス上に展開された環境を管理するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  13. 前記環境のための前記システム定義モデルは、1つまたは複数のコンピューティングデバイスの構成を検討することによって得られる
    ことを特徴とする請求項12に記載の方法。
  14. 前記システム定義モデルは、前記システムが前記1つまたは複数のコンピューティングデバイス上で実行されるために前記環境が満たさなければならない制約を含み、前記別のシステム定義モデルは、前記システムが前記1つまたは複数のコンピューティングデバイス上で実行されるために前記システムが満たさなければならない他の制約を含む
    ことを特徴とする請求項12に記載の方法。
  15. 前記1つまたは複数のコンピューティングデバイス上に複数の環境が展開され、
    複数の異なるシステム定義モデルを使用して、前記複数の環境のそれぞれを設計するステップであって、前記複数の環境はそれぞれ前記複数の異なるシステム定義モデルのうちの1つに関連するステップと、
    各環境ごとに、前記複数の異なるシステム定義モデルのうちの前記関連する1つを使用して、前記環境を展開するステップと、
    展開後、各環境ごとに、前記複数の異なるシステム定義モデルのうちの前記関連する1つを使用して、前記環境を管理するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  16. 前記複数の環境はそれぞれレイヤ化され、前記複数の環境はそれぞれ、前記複数の環境のうちの他の1つに対する環境として、または前記システムに対する環境として働く
    ことを特徴とする請求項15に記載の方法。
  17. スキーマを実装する複数の命令を記憶した1つまたは複数のコンピュータ読み取り可能な記録媒体であって、前記複数の命令は、プロセッサによって実行されたとき、
    システムの設計を容易にするステップと、
    前記システムの展開を容易にするステップと、
    前記システムの管理を容易にするステップと
    を前記プロセッサに行わせる
    ことを特徴とするコンピュータ読み取り可能な記録媒体。
  18. 前記システムはアプリケーションを含む
    ことを特徴とする請求項17に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  19. 前記システムは環境を含む
    ことを特徴とする請求項17に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  20. 前記システムの展開を容易にするステップは、前記システムをどのように展開するかを記述した知識をシステム定義モデルに含めることである
    ことを特徴とする請求項17に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  21. 前記システムの展開を容易にするステップは、前記システムをどのように複数の異なる環境に展開するかを記述した知識をシステム定義モデルに含めることであり、前記知識は、前記システムをどのように前記複数の異なる環境のそれぞれに展開するかを記述した異なる知識を含む
    ことを特徴とする請求項17に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  22. 前記システムの設計を容易にするステップは、前記システムが環境で実行されるために前記環境が満たさなければならない制約を、システム定義モデルに含めることである
    ことを特徴とする請求項17に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  23. 前記システムの設計を容易にするステップは、前記システムの設計中に、前記システム定義モデルを使用して、前記制約が前記環境によって満たされるかどうかをチェックすることである
    ことを特徴とする請求項22に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  24. 前記システムの管理を容易にするステップは、前記システムをどのように管理するかを記述した知識をシステム定義モデルに含めることである
    ことを特徴とする請求項17に記載の1つまたは複数のコンピュータ読み取り可能な記録媒体。
  25. システムの設計を容易にする手段と、
    前記システムの展開を容易にする手段と、
    前記システムの管理を容易にする手段と
    を備えたスキーマを実装する
    ことを特徴とする装置。
  26. 前記システムの展開を容易にする手段は、前記システムをどのように展開するかを記述した知識をシステム定義モデルに含める手段を含む
    ことを特徴とする請求項25に記載の装置。
  27. 前記システムの展開を容易にする手段は、前記システムをどのように複数の異なる環境に展開するかを記述した知識をシステム定義モデルに含める手段を含み、前記知識は、前記システムをどのように前記複数の異なる環境のそれぞれに展開するかを記述した異なる知識を含む
    ことを特徴とする請求項25に記載の装置。
  28. 前記システムの設計を容易にする手段は、前記システムが環境で実行されるために前記環境が満たさなければならない制約を、システム定義モデルに含める手段を含む
    ことを特徴とする請求項25に記載の装置。
  29. 前記システムの設計を容易にする手段は、前記システムの設計中に、前記システム定義モデルを使用して、前記制約が前記環境によって満たされるかどうかをチェックする手段を含む
    ことを特徴とする請求項28に記載の装置。
  30. 前記システムの管理を容易にする手段は、前記システムをどのように管理するかを記述した知識をシステム定義モデルに含める手段を含む
    ことを特徴とする請求項25に記載の装置。
  31. アプリケーションのライフサイクルを通して適用可能なシステム定義モデルを備えるシステムであって、前記アプリケーションの前記ライフサイクルは、前記アプリケーションの設計、前記アプリケーションの展開、および前記アプリケーションの管理を含むシステムと、
    前記システム定義モデル内の機能動作をどのように指定すべきかを指示するためのスキーマと
    を備えたことを特徴とするシステム。
  32. 前記システム定義モデルは、前記アプリケーションをどのように展開するかを記述した情報を含む
    ことを特徴とする請求項31に記載のシステム。
  33. 前記システム定義モデルは、前記アプリケーションをどのように複数の異なる環境に展開するかを記述した情報を含み、前記情報は、前記アプリケーションをどのように前記複数の異なる環境のそれぞれに展開するかを記述した異なる情報を含む
    ことを特徴とする請求項31に記載のシステム。
  34. 前記システム定義モデルは、前記アプリケーションが環境で実行されるために前記環境が満たさなければならない制約を含む
    ことを特徴とする請求項31に記載のシステム。
  35. 前記アプリケーションの設計中および前記アプリケーションの管理中に、前記システム定義モデルを使用して、前記制約が前記システム中の1つまたは複数のコンピューティングデバイスによって満たされるかどうかをチェックすることができる
    ことを特徴とする請求項34に記載のシステム。
  36. 前記アプリケーションの設計中に、前記システム定義モデルを使用して、前記制約が前記環境によって満たされるかどうかをチェックすることができる
    ことを特徴とする請求項34に記載のシステム。
  37. 前記システム定義モデルは、前記アプリケーションをどのように管理するかを記述した情報を含む
    ことを特徴とする請求項31に記載のシステム。
  38. 環境のライフサイクルを通して適用可能な別のシステム定義モデルをさらに備え、前記環境の前記ライフサイクルは、前記環境の設計、前記環境の展開、および前記環境の管理を含み、
    前記スキーマはさらに、前記別のシステム定義モデル内の機能動作をどのように指定すべきかを指示するものである
    ことを特徴とする請求項31に記載のシステム。
  39. 前記環境のための前記システム定義モデルは、1つまたは複数のコンピューティングデバイスの構成を検討することによって得られる
    ことを特徴とする請求項38に記載のシステム。
  40. 前記システム定義モデルは、前記アプリケーションが前記環境で実行されるために前記環境が満たさなければならない制約を含み、前記別のシステム定義モデルは、前記アプリケーションが前記環境で実行されるために前記アプリケーションが満たさなければならない他の制約を含む
    ことを特徴とする請求項38に記載のシステム。
  41. 追加の環境のライフサイクルを通して適用可能な追加のシステム定義モデルをさらに備え、前記追加の環境の前記ライフサイクルは、前記追加の環境の設計、前記追加の環境の展開、および前記追加の環境の管理を含み、
    前記追加の環境は、前記環境の下にレイヤ化され、
    前記スキーマはさらに、前記追加のシステム定義モデル内の機能動作をどのように指定すべきかを指示するものである
    ことを特徴とする請求項38に記載のシステム。
  42. システムの設計中に使用され、かつ前記システムの展開中および管理中にシステム定義モデルランタイムと共に使用されるシステム定義モデルのインスタンスを定義するステップ
    を備えることを特徴とする方法。
  43. 前記システム定義モデルは、前記システムをどのように展開するかを記述した情報を含む
    ことを特徴とする請求項42に記載の方法。
  44. 前記システム定義モデルは、前記システムをどのように複数の異なるランタイム内に展開するかを記述した情報を含み、前記情報は、前記システムをどのように前記複数の異なるランタイムのそれぞれに展開するかを記述した異なる情報を含む
    ことを特徴とする請求項42に記載の方法。
  45. 前記システム定義モデルは、前記システムが前記ランタイム内で実行されるために前記ランタイムが満たさなければならない制約を含む
    ことを特徴とする請求項42に記載の方法。
  46. 前記システムの設計中に、前記システム定義モデルを使用して、前記制約が前記ランタイムによって満たされるかどうかをチェックすることができる
    ことを特徴とする請求項45に記載の方法。
  47. 前記システム定義モデルは、前記システムをどのように前記ランタイム中で管理するかを記述した情報を含む
    ことを特徴とする請求項42に記載の方法。
JP2004063226A 2003-03-06 2004-03-05 システムの設計、展開、管理のフェーズを統合する方法 Pending JP2004272908A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45273603P 2003-03-06 2003-03-06
US10/693,838 US8122106B2 (en) 2003-03-06 2003-10-24 Integrating design, deployment, and management phases for systems

Publications (1)

Publication Number Publication Date
JP2004272908A true JP2004272908A (ja) 2004-09-30

Family

ID=32830044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004063226A Pending JP2004272908A (ja) 2003-03-06 2004-03-05 システムの設計、展開、管理のフェーズを統合する方法

Country Status (8)

Country Link
US (5) US8122106B2 (ja)
EP (1) EP1455484B1 (ja)
JP (1) JP2004272908A (ja)
KR (1) KR101026606B1 (ja)
CN (1) CN1619490A (ja)
AU (1) AU2004200639B2 (ja)
IL (1) IL160461A0 (ja)
ZA (1) ZA200401494B (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338190A (ja) * 2005-05-31 2006-12-14 Nec Corp 実装コード開発システム、及び実装コード開発プログラム
JP2007157026A (ja) * 2005-12-08 2007-06-21 Hitachi Ltd 稼働見積システム、稼働見積装置、実行装置及び稼働見積方法
JP2008243195A (ja) * 2007-03-02 2008-10-09 Internatl Business Mach Corp <Ibm> 操作管理製品によって行われる操作における変更制御を自動的に強化するためのシステムおよび方法
JP2009515252A (ja) * 2005-11-02 2009-04-09 マイクロソフト コーポレーション Itオペレーション/ポリシーのモデリング方法
JP2011521340A (ja) * 2008-05-14 2011-07-21 エアバス オペラシオン 共同サービス指向ワークショップにおけるデータのトレーサビリティのための方法
JP2012503827A (ja) * 2008-09-26 2012-02-09 マイクロソフト コーポレーション データ層アプリケーションコンポーネント
JP2013516005A (ja) * 2009-12-23 2013-05-09 サヴィス・インコーポレーテッド マルチテナントシステムにおいてユーザが設計した仮想プライベートデータセンタを自動的にプロビジョニングするためのシステムおよび方法
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US9059933B2 (en) 2009-12-23 2015-06-16 Centurylink Intellectual Property Llc Provisioning virtual private data centers
US9088503B2 (en) 2011-06-02 2015-07-21 Hitachi, Ltd. Multi-tenant information processing system, management server, and configuration management method

Families Citing this family (325)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
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
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US8140635B2 (en) 2005-03-31 2012-03-20 Tripwire, Inc. Data processing environment change management methods and apparatuses
US7292969B1 (en) * 2002-09-27 2007-11-06 Emc Corporation Method and system for simulating performance on one or more data storage systems
EP1418501A1 (fr) * 2002-11-08 2004-05-12 Dunes Technologies S.A. Méthode d'administration d'applications sur des machines virtuelles
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
US7689676B2 (en) 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7765501B2 (en) * 2003-03-06 2010-07-27 Microsoft Corporation Settings and constraints validation to enable design for operations
US7543051B2 (en) * 2003-05-30 2009-06-02 Borland Software Corporation Method of non-intrusive analysis of secure and non-secure web application traffic in real-time
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7606929B2 (en) * 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US7519952B2 (en) * 2003-07-28 2009-04-14 International Business Machines Corporation Detecting an integrity constraint violation in a database by analyzing database schema, application and mapping and inserting a check into the database and application
US9195699B2 (en) * 2003-08-08 2015-11-24 Oracle International Corporation Method and apparatus for storage and retrieval of information in compressed cubes
US8321248B2 (en) * 2003-12-19 2012-11-27 International Business Machines Corporation Method, system and program product for rendering state diagrams for a multi-dimensional enterprise architecture
US7610361B2 (en) * 2004-01-05 2009-10-27 At&T Intellectual Property I, L.P. System and method for ethernet network design
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US7363211B1 (en) * 2004-03-03 2008-04-22 Sun Microsystems, Inc. Method and apparatus for modeling topology objects
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US20050283348A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Serviceability framework for an autonomic data centre
GB2416048A (en) * 2004-07-10 2006-01-11 Hewlett Packard Development Co Inferring data type in a multi stage process
US7962788B2 (en) * 2004-07-28 2011-06-14 Oracle International Corporation Automated treatment of system and application validation failures
US20060025984A1 (en) * 2004-08-02 2006-02-02 Microsoft Corporation Automatic validation and calibration of transaction-based performance models
US8010337B2 (en) * 2004-09-22 2011-08-30 Microsoft Corporation Predicting database system performance
US7325014B1 (en) 2004-09-23 2008-01-29 Cranberry Technologies, Inc. Direct rendering of a web application from a database to a web browser
US7730183B2 (en) * 2005-01-13 2010-06-01 Microsoft Corporation System and method for generating virtual networks
US20060174243A1 (en) * 2005-01-31 2006-08-03 Gregory Brewer Application software installation prequalification system and method
US20060184935A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from users and services
NZ561149A (en) * 2005-02-22 2010-07-30 Connectif Solutions Inc Distributed asset management system and method
US8590011B1 (en) * 2005-02-24 2013-11-19 Versata Development Group, Inc. Variable domain resource data security for data processing systems
US20060235664A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Model-based capacity planning
US7797147B2 (en) 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US7802144B2 (en) 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US7979859B2 (en) * 2005-05-03 2011-07-12 International Business Machines Corporation Managing automated resource provisioning with a workload scheduler
US20070006130A1 (en) * 2005-06-02 2007-01-04 Arnold Stamler Model oriented method of automatically detecting alterations in the design of a software system
US8589140B1 (en) 2005-06-10 2013-11-19 Wapp Tech Corp. System and method for emulating and profiling a frame-based application playing on a mobile device
US7813910B1 (en) 2005-06-10 2010-10-12 Thinkvillage-Kiwi, Llc System and method for developing an application playing on a mobile device emulated on a personal computer
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20070016393A1 (en) * 2005-06-29 2007-01-18 Microsoft Corporation Model-based propagation of attributes
US20070005320A1 (en) * 2005-06-29 2007-01-04 Microsoft Corporation Model-based configuration management
US8176158B2 (en) 2005-08-09 2012-05-08 Tripwire, Inc. Information technology governance and controls methods and apparatuses
US10318894B2 (en) 2005-08-16 2019-06-11 Tripwire, Inc. Conformance authority reconciliation
US7885945B2 (en) * 2005-08-25 2011-02-08 Microsoft Corporation Secure schema identifier generation
US7702788B2 (en) 2005-10-25 2010-04-20 International Business Machines Corporation Method and apparatus for performance and policy analysis in distributed computing systems
US7730452B1 (en) * 2005-11-01 2010-06-01 Hewlett-Packard Development Company, L.P. Testing a component of a distributed system
US8079017B2 (en) * 2005-11-29 2011-12-13 Alcatel-Lucent Automated QS interface testing framework
US8539496B1 (en) * 2005-12-12 2013-09-17 At&T Intellectual Property Ii, L.P. Method and apparatus for configuring network systems implementing diverse platforms to perform business tasks
US7979262B1 (en) * 2005-12-19 2011-07-12 Cadence Design Systems, Inc. Method for verifying connectivity of electrical circuit components
US8676617B2 (en) 2005-12-30 2014-03-18 Sap Ag Architectural design for self-service procurement application software
US8448137B2 (en) * 2005-12-30 2013-05-21 Sap Ag Software model integration scenarios
US8326703B2 (en) * 2005-12-30 2012-12-04 Sap Ag Architectural design for product catalog management application software
US8402426B2 (en) 2005-12-30 2013-03-19 Sap Ag Architectural design for make to stock application software
US8396731B2 (en) * 2005-12-30 2013-03-12 Sap Ag Architectural design for service procurement application software
US8316344B2 (en) * 2005-12-30 2012-11-20 Sap Ag Software model deployment units
US8370794B2 (en) 2005-12-30 2013-02-05 Sap Ag Software model process component
US8522194B2 (en) 2005-12-30 2013-08-27 Sap Ag Software modeling
US7774446B2 (en) * 2005-12-30 2010-08-10 Microsoft Corporation Discovering, defining, and implementing computer application topologies
US8380553B2 (en) * 2005-12-30 2013-02-19 Sap Ag Architectural design for plan-driven procurement application software
US8321831B2 (en) * 2005-12-30 2012-11-27 Sap Ag Architectural design for internal projects application software
US8327319B2 (en) * 2005-12-30 2012-12-04 Sap Ag Software model process interaction
US7801973B1 (en) 2006-01-19 2010-09-21 Sprint Communications Company L.P. Classification of information in data flows in a data storage infrastructure for a communication network
US7797395B1 (en) 2006-01-19 2010-09-14 Sprint Communications Company L.P. Assignment of data flows to storage systems in a data storage infrastructure for a communication network
US7788302B1 (en) 2006-01-19 2010-08-31 Sprint Communications Company L.P. Interactive display of a data storage infrastructure for a communication network
US7895295B1 (en) 2006-01-19 2011-02-22 Sprint Communications Company L.P. Scoring data flow characteristics to assign data flows to storage systems in a data storage infrastructure for a communication network
US7752437B1 (en) 2006-01-19 2010-07-06 Sprint Communications Company L.P. Classification of data in data flows in a data storage infrastructure for a communication network
US8510429B1 (en) 2006-01-19 2013-08-13 Sprint Communications Company L.P. Inventory modeling in a data storage infrastructure for a communication network
US7644373B2 (en) 2006-01-23 2010-01-05 Microsoft Corporation User interface for viewing clusters of images
US7836050B2 (en) * 2006-01-25 2010-11-16 Microsoft Corporation Ranking content based on relevance and quality
US20070174036A1 (en) * 2006-01-26 2007-07-26 International Business Machines Corporation Computer-implemented method, system and program product for emulating a topology of web services
US7814040B1 (en) 2006-01-31 2010-10-12 The Research Foundation Of State University Of New York System and method for image annotation and multi-modal image retrieval using probabilistic semantic models
US7870564B2 (en) 2006-02-16 2011-01-11 Microsoft Corporation Object-based computer system management
US7853945B2 (en) * 2006-02-22 2010-12-14 Michael Kramer Integrated computer server imaging
US20070234345A1 (en) * 2006-02-22 2007-10-04 Microsoft Corporation Integrated multi-server installation
US7596615B2 (en) * 2006-02-22 2009-09-29 Microsoft Corporation Multi-server automated redundant service configuration
US7788227B1 (en) 2006-03-03 2010-08-31 Microsoft Corporation Schema signing and just-in-time installation
US20070214391A1 (en) * 2006-03-10 2007-09-13 International Business Machines Corporation Method and apparatus for testing software
US8538864B2 (en) * 2006-03-30 2013-09-17 Sap Ag Providing payment software application as enterprise services
US8438119B2 (en) * 2006-03-30 2013-05-07 Sap Ag Foundation layer for services based enterprise software architecture
US8326702B2 (en) 2006-03-30 2012-12-04 Sap Ag Providing supplier relationship management software application as enterprise services
US8396749B2 (en) * 2006-03-30 2013-03-12 Sap Ag Providing customer relationship management application as enterprise services
US8442850B2 (en) * 2006-03-30 2013-05-14 Sap Ag Providing accounting software application as enterprise services
US8396761B2 (en) * 2006-03-30 2013-03-12 Sap Ag Providing product catalog software application as enterprise services
US8321832B2 (en) * 2006-03-31 2012-11-27 Sap Ag Composite application modeling
CN101410839B (zh) * 2006-04-12 2012-10-10 国际商业机器公司 调节客户端设备的功能的环境设置的方法和系统
US8312416B2 (en) * 2006-04-13 2012-11-13 Sap Ag Software model business process variant types
US8635596B2 (en) * 2006-04-21 2014-01-21 Microsoft Corporation Model-based event processing
US8266616B1 (en) * 2006-05-11 2012-09-11 Hewlett-Packard Development Company, L.P. Computer system provisioning using templates
US20070283147A1 (en) * 2006-05-30 2007-12-06 Fried Eric P System and method to manage device access in a software partition
US7505995B2 (en) * 2006-06-30 2009-03-17 Microsoft Corporation Object-relational model based user interfaces
US8522304B2 (en) * 2006-09-08 2013-08-27 Ibahn General Holdings Corporation Monitoring and reporting policy compliance of home networks
US7769843B2 (en) * 2006-09-22 2010-08-03 Hy Performix, Inc. Apparatus and method for capacity planning for data center server consolidation and workload reassignment
US20080228459A1 (en) * 2006-10-12 2008-09-18 Nec Laboratories America, Inc. Method and Apparatus for Performing Capacity Planning and Resource Optimization in a Distributed System
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8612971B1 (en) 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US9015703B2 (en) 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8234640B1 (en) 2006-10-17 2012-07-31 Manageiq, Inc. Compliance-based adaptations in managed virtual systems
US8752045B2 (en) 2006-10-17 2014-06-10 Manageiq, Inc. Methods and apparatus for using tags to control and manage assets
US9697019B1 (en) * 2006-10-17 2017-07-04 Manageiq, Inc. Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8458695B2 (en) 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US8949825B1 (en) 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8949826B2 (en) * 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US7743244B2 (en) * 2006-10-31 2010-06-22 Hewlett-Packard Development Company, L.P. Computer system model generation with tracking of actual computer system configuration
US20090300360A1 (en) * 2007-01-18 2009-12-03 Hiroki Sakaguchi Application setting terminal, application executing terminal, and setting information managing server
US20080184277A1 (en) * 2007-01-26 2008-07-31 Microsoft Corporation Systems management policy validation, distribution and enactment
US20080184200A1 (en) * 2007-01-26 2008-07-31 Microsoft Corporation Software configuration policies' validation, distribution, and enactment
US8104080B2 (en) * 2007-01-26 2012-01-24 Microsoft Corporation Universal schema for representing management policy
JP5324918B2 (ja) * 2007-01-30 2013-10-23 アークレイ株式会社 HbA1c測定方法
US7685167B2 (en) * 2007-01-30 2010-03-23 Bmc Software, Inc. Configuration management database reference instance
US20080256534A1 (en) * 2007-04-12 2008-10-16 International Business Machines Corporation Method for improved image-customization by use of embedded metadata
US7974827B2 (en) * 2007-04-23 2011-07-05 Microsoft Corporation Resource model training
US7996204B2 (en) * 2007-04-23 2011-08-09 Microsoft Corporation Simulation using resource models
US7877250B2 (en) 2007-04-23 2011-01-25 John M Oslake Creation of resource models
US8904341B2 (en) * 2007-04-30 2014-12-02 Hewlett-Packard Development Company, L.P. Deriving grounded model of business process suitable for automatic deployment
US20080281958A1 (en) * 2007-05-09 2008-11-13 Microsoft Corporation Unified Console For System and Workload Management
US20080288622A1 (en) * 2007-05-18 2008-11-20 Microsoft Corporation Managing Server Farms
US8302092B2 (en) * 2007-06-26 2012-10-30 Microsoft Corporation Extensible data driven deployment system
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US20090006071A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Methods for Definition and Scalable Execution of Performance Models for Distributed Applications
US8250534B2 (en) * 2007-08-09 2012-08-21 Infonovus Technologies, Llc Method and system for constructing a software application from a complete and consistent specification in a software development process
US8386999B2 (en) * 2007-08-09 2013-02-26 Infonovus Technologies, Llc Method and system for analyzing a software design
KR100927442B1 (ko) * 2007-08-16 2009-11-19 주식회사 마크애니 가상 응용프로그램 생성 시스템, 가상 응용프로그램 설치방법, 네이티브 api 호출 처리 방법 및 가상응용프로그램 수행 방법
US8230386B2 (en) * 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US20090055805A1 (en) * 2007-08-24 2009-02-26 International Business Machines Corporation Method and System for Testing Software
CN101378324B (zh) * 2007-08-31 2011-05-11 华为技术有限公司 组合业务处理、替换、具体业务调用的方法和装置及系统
US8146098B2 (en) * 2007-09-07 2012-03-27 Manageiq, Inc. Method and apparatus for interfacing with a computer user via virtual thumbnails
US8046771B2 (en) * 2007-09-12 2011-10-25 International Business Machines Corporation Generating and using constraints associated with software related products
US20090112932A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8418173B2 (en) 2007-11-27 2013-04-09 Manageiq, Inc. Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment
US8407688B2 (en) * 2007-11-27 2013-03-26 Managelq, Inc. Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
EP2223281A4 (en) * 2007-12-20 2011-05-25 Hewlett Packard Development Co COMMERCIAL PROCESS MODELING ON COMPUTER FOR CUSTOMIZATION AND DELIVERY
EP2223278A4 (en) * 2007-12-20 2011-11-16 Hewlett Packard Development Co MODELING A COMPUTER BASED COMPANY PROCESS AND SIMULATING OPERATION
CN101946258B (zh) * 2007-12-20 2013-05-29 惠普开发有限公司 基于计算机的业务过程在专用硬件上的基于模型的部署
CN101946261A (zh) * 2007-12-20 2011-01-12 惠普开发有限公司 基于计算机的业务过程的自动化模型产生
WO2009082381A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Incorporating development tools in system for deploying computer based process on shared infrastructure
US20090171758A1 (en) * 2007-12-31 2009-07-02 Shai Alfandary Architectural design for physical inventory application software
US8447657B2 (en) * 2007-12-31 2013-05-21 Sap Ag Architectural design for service procurement application software
US8510143B2 (en) * 2007-12-31 2013-08-13 Sap Ag Architectural design for ad-hoc goods movement software
US8200606B2 (en) 2008-02-18 2012-06-12 International Business Machines Corporation Alert management system and method
WO2009108344A1 (en) * 2008-02-29 2009-09-03 Vkernel Corporation Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US8307297B2 (en) * 2008-03-03 2012-11-06 Microsoft Corporation Modeling configurations of systems
US8935701B2 (en) 2008-03-07 2015-01-13 Dell Software Inc. Unified management platform in a computer network
US8091082B2 (en) * 2008-03-12 2012-01-03 DGN Technologies, Inc. Systems and methods for risk analysis and updating of software
US8515727B2 (en) * 2008-03-19 2013-08-20 International Business Machines Corporation Automatic logic model build process with autonomous quality checking
US7882219B2 (en) * 2008-03-27 2011-02-01 International Business Machines Corporation Deploying analytic functions
US20090248722A1 (en) * 2008-03-27 2009-10-01 International Business Machines Corporation Clustering analytic functions
US9363143B2 (en) * 2008-03-27 2016-06-07 International Business Machines Corporation Selective computation using analytic functions
US9070086B2 (en) * 2008-05-12 2015-06-30 Microsoft Technology Licensing, Llc Data driven component reputation
US7958397B2 (en) * 2008-06-20 2011-06-07 Lsi Corporation System for automatically configuring a storage array
US20090327001A1 (en) * 2008-06-30 2009-12-31 International Business Machines Corporation Defining and implementing configuration standards for facilitating compliance testing in an information technology environment
US8230325B1 (en) * 2008-06-30 2012-07-24 Amazon Technologies, Inc. Structured document customizable comparison systems and methods
US8914341B2 (en) 2008-07-03 2014-12-16 Tripwire, Inc. Method and apparatus for continuous compliance assessment
US9477570B2 (en) * 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US8385202B2 (en) * 2008-08-27 2013-02-26 Cisco Technology, Inc. Virtual switch quality of service for virtual machines
US20100070336A1 (en) * 2008-09-18 2010-03-18 Sap Ag Providing Customer Relationship Management Application as Enterprise Services
US8818884B2 (en) * 2008-09-18 2014-08-26 Sap Ag Architectural design for customer returns handling application software
US8380549B2 (en) * 2008-09-18 2013-02-19 Sap Ag Architectural design for embedded support application software
US8374896B2 (en) 2008-09-18 2013-02-12 Sap Ag Architectural design for opportunity management application software
US8386325B2 (en) * 2008-09-18 2013-02-26 Sap Ag Architectural design for plan-driven procurement application software
US8401928B2 (en) 2008-09-18 2013-03-19 Sap Ag Providing supplier relationship management software application as enterprise services
US8595077B2 (en) * 2008-09-18 2013-11-26 Sap Ag Architectural design for service request and order management application software
US8315926B2 (en) * 2008-09-18 2012-11-20 Sap Ag Architectural design for tax declaration application software
US8352338B2 (en) 2008-09-18 2013-01-08 Sap Ag Architectural design for time recording application software
US8359218B2 (en) * 2008-09-18 2013-01-22 Sap Ag Computer readable medium for implementing supply chain control using service-oriented methodology
JP5104958B2 (ja) * 2008-10-03 2012-12-19 富士通株式会社 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム
US8311904B2 (en) * 2008-12-03 2012-11-13 Sap Ag Architectural design for intra-company stock transfer application software
US8738476B2 (en) * 2008-12-03 2014-05-27 Sap Ag Architectural design for selling standardized services application software
US8401908B2 (en) 2008-12-03 2013-03-19 Sap Ag Architectural design for make-to-specification application software
US8321306B2 (en) * 2008-12-03 2012-11-27 Sap Ag Architectural design for selling project-based services application software
US8671035B2 (en) 2008-12-11 2014-03-11 Sap Ag Providing payroll software application as enterprise services
US20100153239A1 (en) * 2008-12-11 2010-06-17 Sap Ag Providing accounting software application as enterprise services
US8296723B2 (en) * 2008-12-11 2012-10-23 International Business Machines Corporation Configurable unified modeling language building blocks
US8631046B2 (en) 2009-01-07 2014-01-14 Oracle International Corporation Generic ontology based semantic business policy engine
US9672478B2 (en) 2009-02-26 2017-06-06 Oracle International Corporation Techniques for semantic business policy composition
US8990368B2 (en) * 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
FR2944618B1 (fr) * 2009-04-17 2011-11-25 Gerard Weerts Systeme de mise a disposition d'une application sur un terminal utilisateur.
US9569282B2 (en) 2009-04-24 2017-02-14 Microsoft Technology Licensing, Llc Concurrent mutation of isolated object graphs
US8195706B2 (en) 2009-05-26 2012-06-05 Computer Associates Think, Inc. Configuration management visualization
US8359594B1 (en) * 2009-06-30 2013-01-22 Sychron Advanced Technologies, Inc. Automated rapid virtual machine provisioning system
US8386498B2 (en) * 2009-08-05 2013-02-26 Loglogic, Inc. Message descriptions
CN101998465B (zh) * 2009-08-21 2012-11-07 中国移动通信集团设计院有限公司 一种网络优化的方法及系统
US20110119191A1 (en) * 2009-11-19 2011-05-19 International Business Machines Corporation License optimization in a virtualized environment
US8352953B2 (en) * 2009-12-03 2013-01-08 International Business Machines Corporation Dynamically provisioning virtual machines
KR20110062937A (ko) * 2009-12-04 2011-06-10 삼성전자주식회사 화상형성장치 및 클라이언트와 연결된 서버, 클라이언트 및 화상형성장치의 드라이버 원격설치방법
US8140905B2 (en) * 2010-02-05 2012-03-20 International Business Machines Corporation Incremental problem determination and resolution in cloud environments
US8260958B2 (en) 2010-02-24 2012-09-04 F5 Networks, Inc. Reducing energy consumption of servers
US8949236B2 (en) 2010-02-26 2015-02-03 Oracle International Corporation Techniques for analyzing data from multiple sources
US8869138B2 (en) * 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
KR101644653B1 (ko) * 2010-03-19 2016-08-02 삼성전자주식회사 단말 적합성 애플리케이션 최적화장치 및 방법
US8738333B1 (en) * 2010-05-25 2014-05-27 Vmware, Inc. Capacity and load analysis in a datacenter
US8140907B2 (en) * 2010-06-29 2012-03-20 International Business Machines Corporation Accelerated virtual environments deployment troubleshooting based on two level file system signature
US9400958B2 (en) 2010-06-30 2016-07-26 Oracle International Corporation Techniques for display of information related to policies
US8543687B2 (en) * 2010-07-22 2013-09-24 International Business Machines Corporation Moving deployment of images between computers
US8560544B2 (en) 2010-09-15 2013-10-15 International Business Machines Corporation Clustering of analytic functions
US8745577B2 (en) 2010-09-29 2014-06-03 International Business Machines Corporation End to end automation of application deployment
US11106479B2 (en) 2010-09-30 2021-08-31 Amazon Technologies, Inc. Virtual provisioning with implementation resource boundary awareness
US8489929B2 (en) * 2010-09-30 2013-07-16 Salesforce.Com, Inc. Facilitating large-scale testing using virtualization technology in a multi-tenant database environment
US9600250B2 (en) 2010-10-08 2017-03-21 Microsoft Technology Licensing, Llc Declarative programming model with a native programming language
US9658890B2 (en) 2010-10-08 2017-05-23 Microsoft Technology Licensing, Llc Runtime agnostic representation of user code for execution with selected execution runtime
US9600255B2 (en) * 2010-10-08 2017-03-21 Microsoft Technology Licensing, Llc Dynamic data and compute resource elasticity
US20120109619A1 (en) * 2010-10-29 2012-05-03 Daniel Juergen Gmach Generating a resource management plan for an infrastructure
US20120117531A1 (en) * 2010-11-08 2012-05-10 Microsoft Corporation Instantiating a Software Development Environment From an Environment Class
US8479172B2 (en) * 2010-11-23 2013-07-02 International Business Machines Corporation Virtual machine testing
US9760348B2 (en) 2010-11-29 2017-09-12 Microsoft Technology Licensing, Llc Verification of a dataflow representation of a program through static type-checking
WO2012072763A1 (en) * 2010-12-01 2012-06-07 Nokia Siemens Networks Oy Method and device for service provisioning in a communication network
US9210031B1 (en) 2010-12-09 2015-12-08 Amazon Technologies, Inc. Brokering for application hosting computing resources of multiple vendor-specific provisioned computing environments
US10108993B2 (en) * 2010-12-15 2018-10-23 Red Hat, Inc. Data driven rules engine to dynamically change product business rules
KR20120068573A (ko) * 2010-12-17 2012-06-27 삼성전자주식회사 심리스 애플리케이션 통합 장치 및 방법
US9104803B2 (en) * 2011-01-03 2015-08-11 Paypal, Inc. On-demand software test environment generation
FI20115104A0 (fi) * 2011-02-02 2011-02-02 Teknologian Tutkimuskeskus Vtt Oy Järjestelmä ja menetelmä malli-pohjaista testaamista varten
US8738972B1 (en) 2011-02-04 2014-05-27 Dell Software Inc. Systems and methods for real-time monitoring of virtualized environments
US20120200206A1 (en) * 2011-02-07 2012-08-09 Dell Products L.P. System and method for designing a configurable modular data center
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
CN102760081B (zh) * 2011-04-29 2016-01-27 国际商业机器公司 虚拟机资源分配的方法和装置
EP2710487A4 (en) 2011-05-09 2015-06-17 Google Inc GENERATING APPLICATION RECOMMENDATIONS BASED ON USER INSTALLED APPLICATIONS
EP2712442A1 (en) 2011-05-09 2014-04-02 Google, Inc. Recommending applications for mobile devices based on installation histories
WO2012154843A1 (en) 2011-05-09 2012-11-15 Google Inc. Identifying applications of interest based on application market log data
EP2710466A1 (en) * 2011-05-09 2014-03-26 Google, Inc. Identifying applications of interest based on application metadata
US8954309B2 (en) * 2011-05-31 2015-02-10 Oracle International Corporation Techniques for application tuning
US8898096B2 (en) 2011-05-31 2014-11-25 Oracle International Corporation Application configuration generation
US8732665B2 (en) 2011-06-28 2014-05-20 Microsoft Corporation Deploying environments for testing by providing instantaneous availability of prebuilt environments
US20150149980A1 (en) * 2013-09-11 2015-05-28 Tongling Yucheng Software Technology Co., Ltd. Service model-oriented software operation platform and operation method thereof
US11144333B2 (en) * 2011-07-12 2021-10-12 Tongling Yuchen Software Technology Co., Ltd. Service model-oriented software system and operation method thereof
US9396094B2 (en) 2011-07-21 2016-07-19 International Business Machines Corporation Software test automation systems and methods
JP5681279B2 (ja) * 2011-08-01 2015-03-04 日本電気株式会社 試験装置、システム、プログラム、及び、方法
US9495222B1 (en) 2011-08-26 2016-11-15 Dell Software Inc. Systems and methods for performance indexing
CN103001989A (zh) * 2011-09-16 2013-03-27 中兴通讯股份有限公司 参数接收方法及系统
EP2774034A4 (en) * 2011-10-31 2015-04-22 Hewlett Packard Development Co REMOTE SOFTWARE USE THROUGH A NETWORK
US9355017B2 (en) 2012-01-06 2016-05-31 Iii Holdings 4, Llc Automated error checking system for a software application and method therefor
CN102571433B (zh) 2012-01-11 2014-07-30 华为技术有限公司 呈现网络路径的方法和装置
US20130191105A1 (en) * 2012-01-20 2013-07-25 International Business Machines Coporation Virtual systems testing
US8701109B1 (en) * 2012-02-06 2014-04-15 Amazon Technologies, Inc. Immortal instance type
US9262298B2 (en) * 2012-02-16 2016-02-16 Microsoft Technology Licensing, Llc Debugging object abstractions
US8595262B1 (en) * 2012-03-29 2013-11-26 Amazon Technologies, Inc. Resource resolution in computing environments using directed graphs
US9973566B2 (en) * 2013-11-17 2018-05-15 Nimbix, Inc. Dynamic creation and execution of containerized applications in cloud computing
US9098598B1 (en) 2012-05-04 2015-08-04 Google Inc. Non-default location support for expandable content item publisher side files
US8694378B1 (en) 2012-05-08 2014-04-08 Google Inc. Publisher side file support for expandable content items
US9082093B2 (en) * 2012-05-09 2015-07-14 Infosys Limited System and method for non-production environment management
US10235205B2 (en) 2012-05-24 2019-03-19 Citrix Systems, Inc. Remote management of distributed datacenters
US20140075420A1 (en) * 2012-06-04 2014-03-13 Google Inc. Generating hardware profiles by a software development environment
EP2865140A4 (en) * 2012-06-22 2016-03-02 Hewlett Packard Development Co OPTIMUM ALLOCATION OF VIRTUAL MACHINES AND VIRTUAL HARD DRIVES WITH A MULTIARY TREE
US8751304B1 (en) 2012-07-05 2014-06-10 Google Inc. Monitoring content item expansion events across multiple content item providers
US9047254B1 (en) * 2012-07-05 2015-06-02 Google Inc. Detection and validation of expansion types of expandable content items
US9043699B1 (en) * 2012-07-05 2015-05-26 Google Inc. Determining expansion directions for expandable content item environments
US9146911B1 (en) 2012-07-17 2015-09-29 Google Inc. Predicting expansion directions for expandable content item environments
US8694632B1 (en) 2012-07-17 2014-04-08 Google Inc. Determining content item expansion prediction accuracy
US9865008B2 (en) 2012-09-20 2018-01-09 Google Llc Determining a configuration of a content item display environment
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US8990772B2 (en) 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US9239727B1 (en) * 2012-10-17 2016-01-19 Amazon Technologies, Inc. Configurable virtual machines
US20140137190A1 (en) * 2012-11-09 2014-05-15 Rapid7, Inc. Methods and systems for passively detecting security levels in client devices
KR20140062288A (ko) * 2012-11-14 2014-05-23 한국전자통신연구원 로봇 컴포넌트 오류 처리 장치 및 그 방법
US9608933B2 (en) * 2013-01-24 2017-03-28 Hitachi, Ltd. Method and system for managing cloud computing environment
CN105074652B (zh) * 2013-01-31 2018-04-27 惠普发展公司,有限责任合伙企业 用于向打印机远程提供应用功能的方法和计算机系统
US9785527B2 (en) 2013-03-27 2017-10-10 Ixia Methods, systems, and computer readable media for emulating virtualization resources
US10740396B2 (en) * 2013-05-24 2020-08-11 Sap Se Representing enterprise data in a knowledge graph
US9021438B2 (en) * 2013-06-20 2015-04-28 Sap Portals Israel Ltd Automatic framework for parallel testing on multiple testing environments
US9158599B2 (en) 2013-06-27 2015-10-13 Sap Se Programming framework for applications
US9990189B2 (en) * 2013-07-03 2018-06-05 International Business Machines Corporation Method to optimize provisioning time with dynamically generated virtual disk contents
US9524299B2 (en) * 2013-08-12 2016-12-20 Ixia Methods, systems, and computer readable media for modeling a workload
US9852129B2 (en) * 2013-11-26 2017-12-26 International Business Machines Corporation Language independent processing of logs in a log analytics system
US9451006B1 (en) 2013-12-12 2016-09-20 Intuit Inc. Methods, systems, and articles of manufacture for configuration-based client-side resource resolution framework for customizable user experience
US10182102B1 (en) 2013-12-12 2019-01-15 Intuit Inc. Methods, systems, and articles of manufacture for configuration-based client-side flow control framework for customizable user experience
US9787597B1 (en) * 2013-12-12 2017-10-10 Untuit Inc. Methods, systems, and articles of manufacture for implementing model definition and constraint enforcement and validation
US9032373B1 (en) 2013-12-23 2015-05-12 International Business Machines Corporation End to end testing automation and parallel test execution
WO2015116191A1 (en) * 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Business process managment
US20150278512A1 (en) * 2014-03-28 2015-10-01 Intel Corporation Virtualization based intra-block workload isolation
RO130722A2 (ro) 2014-04-10 2015-11-27 Ixia, A California Corporation Metodă şi sistem pentru implementare hardware a pachetelor de date uniform amestecate
KR101614448B1 (ko) 2014-04-24 2016-04-22 남서울대학교산학협력단 통합화 의료정보시스템 환경의 접근제어 소프트웨어 설계 방법
US10282396B2 (en) * 2014-05-07 2019-05-07 International Business Machines Corporation Markup language namespace declaration resolution and preservation
EP3175394A4 (en) * 2014-07-30 2018-03-28 Sios Technology Corporation Converged analysis of application, virtualization and cloud infrastructure resources using graph theory
US20220215775A1 (en) * 2014-07-30 2022-07-07 Micah Kosstrin-Greenberg Hardware software complex for language teaching with ad support
JP5962736B2 (ja) * 2014-10-30 2016-08-03 日本電気株式会社 情報処理システム、分類方法、及びそのためのプログラム
US9778926B2 (en) * 2014-10-30 2017-10-03 Google Inc. Minimizing image copying during partition updates
EP3216177B1 (en) 2014-11-06 2021-04-14 Hewlett Packard Enterprise Development LP Network policy graphs
US9563472B2 (en) 2014-12-04 2017-02-07 International Business Machines Corporation Concurrent workload deployment to synchronize activity in a design palette
US11182713B2 (en) 2015-01-24 2021-11-23 Vmware, Inc. Methods and systems to optimize operating system license costs in a virtual data center
US11088834B2 (en) * 2015-04-28 2021-08-10 Palo Alto Research Center Incorporated System for privacy-preserving monetization of big data and method for using the same
US10291726B2 (en) 2015-05-12 2019-05-14 Equinix, Inc. Network field unit for a cloud-based services exchange
US9507616B1 (en) 2015-06-24 2016-11-29 Ixia Methods, systems, and computer readable media for emulating computer processing usage patterns on a virtual machine
US10182122B2 (en) * 2015-08-31 2019-01-15 Open Text Corporation Action flow fragment management
EP3370147A4 (en) 2015-10-30 2019-06-26 Kabushiki Kaisha Toshiba SYSTEM DESIGN DEVICE AND METHOD
US9692653B1 (en) 2015-12-17 2017-06-27 International Business Machines Corporation Automatic generation of validators to validate deployment code used for configuring servers
US10536349B1 (en) * 2015-12-31 2020-01-14 VCE IP Holding Company LLC Configuration system and method for an integrated computing system
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment
US10268495B2 (en) * 2016-02-18 2019-04-23 Verizon Patent And Licensing Inc. Virtual device model system
US10338934B1 (en) * 2016-03-28 2019-07-02 VCE IP Holding Company LLC Inter-object validation system and method using chained specialized configuration applications
US10341215B2 (en) 2016-04-06 2019-07-02 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for emulating network traffic patterns on a virtual machine
US10713072B1 (en) 2016-06-27 2020-07-14 Amazon Technologies, Inc. Computing resource provisioning
WO2018004643A1 (en) * 2016-07-01 2018-01-04 Intel Corporation Automated configuration of machine-to-machine systems
US10917456B2 (en) * 2016-07-25 2021-02-09 Red Hat, Inc. Application management in an application deployment pipeline
US10162819B2 (en) * 2016-08-17 2018-12-25 Netflix, Inc. Change detection in a string repository for translated content
US10042613B2 (en) * 2016-08-19 2018-08-07 International Business Machines Corporation System, method, and recording medium for validating computer documentation
US10296363B2 (en) * 2016-09-16 2019-05-21 Oracle International Corporation Tuning a virtual machine startup parameter
US10802878B2 (en) * 2017-03-31 2020-10-13 Bmc Software, Inc. Phased start and stop of resources in a mainframe environment
US10754829B2 (en) 2017-04-04 2020-08-25 Oracle International Corporation Virtual configuration systems and methods
US10812342B2 (en) * 2017-04-28 2020-10-20 Hewlett Packard Enterprise Development Lp Generating composite network policy
US11645131B2 (en) * 2017-06-16 2023-05-09 Cisco Technology, Inc. Distributed fault code aggregation across application centric dimensions
RU2694763C2 (ru) * 2017-09-22 2019-07-16 Отомэйтед Бизнес Системз Лимитед Способ управления системой социальной организации предприятия посредством создания его виртуальной модели
US10691082B2 (en) * 2017-12-05 2020-06-23 Cisco Technology, Inc. Dynamically adjusting sample rates based on performance of a machine-learning based model for performing a network assurance function in a network assurance system
US10810055B1 (en) * 2017-12-14 2020-10-20 Amazon Technologies, Inc. Request simulation for ensuring compliance
US10613911B2 (en) 2018-01-09 2020-04-07 International Business Machines Corporation Integrating multiple distributed data processing servers with different data partitioning and routing mechanisms, resource sharing policies and lifecycles into a single process
US10802948B2 (en) 2018-07-13 2020-10-13 Bank Of America Corporation Integrated testing data provisioning and conditioning system for application development
US11055400B2 (en) 2018-07-13 2021-07-06 Bank Of America Corporation Monitoring data consumption in an application testing environment
US10831471B2 (en) * 2018-07-19 2020-11-10 Microsoft Technology Licensing, Llc Source code file recommendation notification
US10805154B2 (en) 2018-10-16 2020-10-13 Hartford Fire Insurance Company Secure configuration management system
US11113030B1 (en) * 2019-05-23 2021-09-07 Xilinx, Inc. Constraints for applications in a heterogeneous programming environment
US11100009B2 (en) 2020-01-03 2021-08-24 Bank Of America Corporation Intelligent detection and ejection of unused application components
US11829259B2 (en) * 2020-06-03 2023-11-28 EMC IP Holding Company LLC Automated creation of variable data storage environments for application testing
US11435991B2 (en) * 2020-07-16 2022-09-06 aiden technologies, Inc. Automated machine deployment and configuration
US11595493B2 (en) * 2020-09-28 2023-02-28 Oracle International Corporation System and method for namespace masking in an integration flow
US11323354B1 (en) 2020-10-09 2022-05-03 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using switch emulation
US11483227B2 (en) 2020-10-13 2022-10-25 Keysight Technologies, Inc. Methods, systems and computer readable media for active queue management
US11914755B2 (en) * 2021-02-04 2024-02-27 International Business Machines Corporation Cluster resource signature verification
US11875288B2 (en) 2021-12-03 2024-01-16 International Business Machines Corporation Discovering and using application deployment dependencies to augment governance and compliance policy

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305609A (ja) * 1995-04-28 1996-11-22 Oki Electric Ind Co Ltd プログラムのテスト方法および装置
JPH0934723A (ja) * 1995-04-05 1997-02-07 Internatl Business Mach Corp <Ibm> ネットワークでのアプリケーション・プログラムの導入のための導入計画オブジェクトのコミット
JPH0991143A (ja) * 1995-07-14 1997-04-04 Sony Corp データ処理方法および装置
JPH11110256A (ja) * 1997-10-06 1999-04-23 Toshiba Corp プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JP2003006170A (ja) * 2001-06-20 2003-01-10 Hitachi Ltd 複数計算機環境でのプログラム実行方法
JP2003058698A (ja) * 2001-08-09 2003-02-28 Ricoh Co Ltd It環境最適化支援システム、該システムの機能を実現するプログラム及び記録媒体

Family Cites Families (489)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
US4218582A (en) 1977-10-06 1980-08-19 The Board Of Trustees Of The Leland Stanford Junior University Public key cryptographic apparatus and method
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4424414A (en) 1978-05-01 1984-01-03 Board Of Trustees Of The Leland Stanford Junior University Exponentiation cryptographic apparatus and method
US5031089A (en) 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems
US5495610A (en) * 1989-11-30 1996-02-27 Seer Technologies, Inc. Software distribution system to build and distribute a software release
US5396635A (en) 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
JPH0488489A (ja) 1990-08-01 1992-03-23 Internatl Business Mach Corp <Ibm> 一般化ハフ変換を用いた文字認識装置および方法
JPH06501118A (ja) * 1990-09-17 1994-01-27 ケーブルトロン・システムス・インコーポレーテッド モデル準拠のインテリジェンスを使用するネットワーク管理システム
JPH04287290A (ja) 1990-11-20 1992-10-12 Imra America Inc ハフ変換画像処理装置
AU1645092A (en) * 1991-03-18 1992-10-21 Echelon Corporation Binder interface structure
ATE208067T1 (de) * 1991-03-18 2001-11-15 Echelon Corp Programmiersprachestrukturen für ein netzwerk zur übertragung, abtastung und steuerung von informationen
US6115393A (en) 1991-04-12 2000-09-05 Concord Communications, Inc. Network monitoring
NZ251541A (en) 1992-03-20 1995-12-21 At & T Corp Customer telephone service features de-activated during telemetry call
JPH0754489B2 (ja) 1993-02-22 1995-06-07 日本電気株式会社 Osiシステム環境定義チェック方式
US5557774A (en) 1993-03-22 1996-09-17 Hitachi, Ltd. Method for making test environmental programs
US7043407B2 (en) 1997-03-10 2006-05-09 Trilogy Development Group, Inc. Method and apparatus for configuring systems
JPH076026A (ja) * 1993-05-28 1995-01-10 Xerox Corp 構成管理及び構成要素の互換性保証方法、ならびに常駐ソフトウェアと移行ソフトウェアの非互換性の排除方法
US5686940A (en) * 1993-12-24 1997-11-11 Rohm Co., Ltd. Display apparatus
US5668995A (en) * 1994-04-22 1997-09-16 Ncr Corporation Method and apparatus for capacity planning for multiprocessor computer systems in client/server environments
DE69532434T2 (de) 1994-10-27 2004-11-11 Mitsubishi Corp. Gerät für Dateiurheberrechte-Verwaltungssystem
EP0709760B1 (en) 1994-10-27 2006-05-31 Intarsia Software LLC Data copyright management system
WO1996016497A1 (en) * 1994-11-21 1996-05-30 Oracle Corporation Transferring binary large objects (blobs) in a network environment
US5872928A (en) * 1995-02-24 1999-02-16 Cabletron Systems, Inc. Method and apparatus for defining and enforcing policies for configuration management in communications networks
US5758351A (en) 1995-03-01 1998-05-26 Sterling Software, Inc. System and method for the creation and use of surrogate information system objects
US5724508A (en) 1995-03-09 1998-03-03 Insoft, Inc. Apparatus for collaborative computing
US5895499A (en) 1995-07-03 1999-04-20 Sun Microsystems, Inc. Cross-domain data transfer using deferred page remapping
US5917730A (en) * 1995-08-17 1999-06-29 Gse Process Solutions, Inc. Computer implemented object oriented visualization system and method
US5774689A (en) 1995-09-22 1998-06-30 Bell Atlantic Network Services, Inc. Network configuration management system for digital communication networks
US6047323A (en) * 1995-10-19 2000-04-04 Hewlett-Packard Company Creation and migration of distributed streams in clusters of networked computers
US5684800A (en) * 1995-11-15 1997-11-04 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
GB2309558A (en) 1996-01-26 1997-07-30 Ibm Load balancing across the processors of a server computer
RU2112625C1 (ru) 1996-01-30 1998-06-10 Царева Елена Александровна Машина непрерывного литья металлов
EP1012730A1 (en) 1996-01-31 2000-06-28 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
US5688940A (en) * 1996-02-01 1997-11-18 Biosearch Technologies, Inc. Linker for immobilization, modification and subsequent release of oligomers with a terminal hydroxyl group
US5898830A (en) 1996-10-17 1999-04-27 Network Engineering Software Firewall providing enhanced network security and user transparency
JPH09244940A (ja) 1996-03-12 1997-09-19 Hitachi Ltd 分散計算機資源の管理方法
US5768271A (en) 1996-04-12 1998-06-16 Alcatel Data Networks Inc. Virtual private network
US6085238A (en) 1996-04-23 2000-07-04 Matsushita Electric Works, Ltd. Virtual LAN system
US5748958A (en) 1996-04-30 1998-05-05 International Business Machines Corporation System for utilizing batch requests to present membership changes to process groups
US5845124A (en) 1996-05-01 1998-12-01 Ncr Corporation Systems and methods for generating and displaying a symbolic representation of a network model
EP0812086B1 (en) 1996-06-07 2007-09-05 Nippon Telegraph And Telephone Corporation Vlan control system and method
KR100204029B1 (ko) 1996-06-19 1999-06-15 이계철 비동기전달모드 교환 시스템에서 연결 식별자 할당방법
US6434598B1 (en) * 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US5822531A (en) * 1996-07-22 1998-10-13 International Business Machines Corporation Method and system for dynamically reconfiguring a cluster of computer systems
US5796830A (en) 1996-07-29 1998-08-18 International Business Machines Corporation Interoperable cryptographic key recovery system
US5818937A (en) 1996-08-12 1998-10-06 Ncr Corporation Telephone tone security device
US5930798A (en) * 1996-08-15 1999-07-27 Predicate Logic, Inc. Universal data measurement, analysis and control system
US6236365B1 (en) * 1996-09-09 2001-05-22 Tracbeam, Llc Location of a mobile station using a plurality of commercial wireless infrastructures
US6237020B1 (en) * 1996-10-01 2001-05-22 International Business Machines Corporation Task-oriented automatic distribution of software
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
JPH10124343A (ja) 1996-10-16 1998-05-15 Ricoh Co Ltd モデルシミュレート装置および方法、モデル作成装置および方法、情報記憶媒体
GB2318486B (en) 1996-10-16 2001-03-28 Ibm Data communications system
US5790895A (en) 1996-10-18 1998-08-04 Compaq Computer Corporation Modem sharing
GB2318479B (en) * 1996-10-21 2001-04-04 Northern Telecom Ltd Problem model for alarm correlation
US5905872A (en) 1996-11-05 1999-05-18 At&T Corp. Method of transferring connection management information in world wideweb requests and responses
US5784463A (en) 1996-12-04 1998-07-21 V-One Corporation Token distribution, registration, and dynamic configuration of user entitlement for an application level security system and method
EP1015966A2 (en) 1996-12-13 2000-07-05 Maves International Software, Inc. Method, system and data structures for computer software application development and execution
GB9626241D0 (en) * 1996-12-18 1997-02-05 Ncr Int Inc Secure data processing method and system
US5845277A (en) 1996-12-19 1998-12-01 Mci Communications Corporation Production of statistically-based network maps
US6424992B2 (en) 1996-12-23 2002-07-23 International Business Machines Corporation Affinity-based router and routing method
US6112243A (en) 1996-12-30 2000-08-29 Intel Corporation Method and apparatus for allocating tasks to remote networked processors
US5826015A (en) 1997-02-20 1998-10-20 Digital Equipment Corporation Method and apparatus for secure remote programming of firmware and configurations of a computer over a network
US6151688A (en) 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US5958009A (en) 1997-02-27 1999-09-28 Hewlett-Packard Company System and method for efficiently monitoring quality of service in a distributed processing environment
JPH10240576A (ja) 1997-02-28 1998-09-11 Sony Corp 検証装置および方法
US6104716A (en) 1997-03-28 2000-08-15 International Business Machines Corporation Method and apparatus for lightweight secure communication tunneling over the internet
US5968126A (en) 1997-04-02 1999-10-19 Switchsoft Systems, Inc. User-based binding of network stations to broadcast domains
US6065058A (en) * 1997-05-09 2000-05-16 International Business Machines Corp. Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy
US6266721B1 (en) 1997-05-13 2001-07-24 Micron Electronics, Inc. System architecture for remote access and control of environmental management
US6167438A (en) 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6578077B1 (en) 1997-05-27 2003-06-10 Novell, Inc. Traffic monitoring tool for bandwidth management
US6389464B1 (en) 1997-06-27 2002-05-14 Cornet Technology, Inc. Device management system for managing standards-compliant and non-compliant network elements using standard management protocols and a universal site server which is configurable from remote locations via internet browser technology
US6049528A (en) 1997-06-30 2000-04-11 Sun Microsystems, Inc. Trunking ethernet-compatible networks
FR2765702B1 (fr) * 1997-07-02 2001-07-06 Bull Sa Architecture de systeme de traitement de l'information
US6185308B1 (en) 1997-07-07 2001-02-06 Fujitsu Limited Key recovery system
US5858009A (en) * 1997-08-14 1999-01-12 Medtronic, Inc. Multi-lumen cannula
US6233610B1 (en) 1997-08-27 2001-05-15 Northern Telecom Limited Communications network having management system architecture supporting reuse
US6041054A (en) 1997-09-24 2000-03-21 Telefonaktiebolaget Lm Ericsson Efficient transport of internet protocol packets using asynchronous transfer mode adaptation layer two
US6574661B1 (en) 1997-09-26 2003-06-03 Mci Communications Corporation Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client
JP3649367B2 (ja) * 1997-09-26 2005-05-18 ソニー株式会社 パケット伝送制御方法および装置
EP0907145A3 (en) 1997-10-03 2003-03-26 Nippon Telegraph and Telephone Corporation Method and equipment for extracting image features from image sequence
US6427171B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6192401B1 (en) 1997-10-21 2001-02-20 Sun Microsystems, Inc. System and method for determining cluster membership in a heterogeneous distributed system
US6134594A (en) * 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US6178529B1 (en) 1997-11-03 2001-01-23 Microsoft Corporation Method and system for resource monitoring of disparate resources in a server cluster
US6088734A (en) * 1997-11-12 2000-07-11 International Business Machines Corporation Systems methods and computer program products for controlling earliest deadline first scheduling at ATM nodes
US6125447A (en) 1997-12-11 2000-09-26 Sun Microsystems, Inc. Protection domains to provide security in a computer system
WO1999030514A2 (en) 1997-12-12 1999-06-17 Alcatel Usa Sourcing, L.P. Network management
US6035405A (en) * 1997-12-22 2000-03-07 Nortel Networks Corporation Secure virtual LANs
US6370584B1 (en) 1998-01-13 2002-04-09 Trustees Of Boston University Distributed routing
US6182275B1 (en) * 1998-01-26 2001-01-30 Dell Usa, L.P. Generation of a compatible order for a computer system
US6086618A (en) 1998-01-26 2000-07-11 Microsoft Corporation Method and computer program product for estimating total resource usage requirements of a server application in a hypothetical user configuration
US6484261B1 (en) 1998-02-17 2002-11-19 Cisco Technology, Inc. Graphical network security policy management
US6442557B1 (en) 1998-02-27 2002-08-27 Prc Inc. Evaluation of enterprise architecture model including relational database
US6076108A (en) 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
US6208649B1 (en) 1998-03-11 2001-03-27 Cisco Technology, Inc. Derived VLAN mapping technique
US6691148B1 (en) 1998-03-13 2004-02-10 Verizon Corporate Services Group Inc. Framework for providing quality of service requirements in a distributed object-oriented computer system
US6393386B1 (en) * 1998-03-26 2002-05-21 Visual Networks Technologies, Inc. Dynamic modeling of complex networks and prediction of impacts of faults therein
US6236901B1 (en) * 1998-03-31 2001-05-22 Dell Usa, L.P. Manufacturing system and method for assembly of computer systems in a build-to-order environment
US6118785A (en) 1998-04-07 2000-09-12 3Com Corporation Point-to-point protocol with a signaling channel
US6466985B1 (en) * 1998-04-10 2002-10-15 At&T Corp. Method and apparatus for providing quality of service using the internet protocol
US6059842A (en) * 1998-04-14 2000-05-09 International Business Machines Corp. System and method for optimizing computer software and hardware
US6208345B1 (en) 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6898791B1 (en) 1998-04-21 2005-05-24 California Institute Of Technology Infospheres distributed object system
US6167052A (en) * 1998-04-27 2000-12-26 Vpnx.Com, Inc. Establishing connectivity in networks
US6308174B1 (en) * 1998-05-05 2001-10-23 Nortel Networks Limited Method and apparatus for managing a communications network by storing management information about two or more configuration states of the network
US20020049573A1 (en) 1998-05-13 2002-04-25 El Ata Nabil A. Abu Automated system and method for designing model based architectures of information systems
US6311144B1 (en) 1998-05-13 2001-10-30 Nabil A. Abu El Ata Method and apparatus for designing and analyzing information systems using multi-layer mathematical models
FR2779018B1 (fr) 1998-05-22 2000-08-18 Activcard Terminal et systeme pour la mise en oeuvre de transactions electroniques securisees
US6269076B1 (en) 1998-05-28 2001-07-31 3Com Corporation Method of resolving split virtual LANs utilizing a network management system
JP3617770B2 (ja) 1998-05-29 2005-02-09 株式会社日立製作所 ネットワーク管理システム及びネットワーク管理方式
US6947987B2 (en) 1998-05-29 2005-09-20 Ncr Corporation Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes
US6259448B1 (en) 1998-06-03 2001-07-10 International Business Machines Corporation Resource model configuration and deployment in a distributed computer network
GB2338154B (en) * 1998-06-05 2003-01-29 3Com Technologies Ltd System for providing fair access for vlans to a shared transmission medium
EP1005742A1 (en) 1998-06-19 2000-06-07 Unisphere Solutions, Inc. A quality of service facility in a device for performing ip forwarding and atm switching
US6360265B1 (en) 1998-07-08 2002-03-19 Lucent Technologies Inc. Arrangement of delivering internet protocol datagrams for multimedia services to the same server
US6427163B1 (en) 1998-07-10 2002-07-30 International Business Machines Corporation Highly scalable and highly available cluster system management scheme
US6226788B1 (en) 1998-07-22 2001-05-01 Cisco Technology, Inc. Extensible network management system
US6438100B1 (en) * 1998-08-07 2002-08-20 Alcatel Canada Inc. Method and apparatus for routing server redundancy in a network having carrier scale internetworking
US6266707B1 (en) 1998-08-17 2001-07-24 International Business Machines Corporation System and method for IP network address translation and IP filtering with dynamic address resolution
US6473791B1 (en) 1998-08-17 2002-10-29 Microsoft Corporation Object load balancing
US6336138B1 (en) 1998-08-25 2002-01-01 Hewlett-Packard Company Template-driven approach for generating models on network services
US6717949B1 (en) 1998-08-31 2004-04-06 International Business Machines Corporation System and method for IP network address translation using selective masquerade
US6311270B1 (en) 1998-09-14 2001-10-30 International Business Machines Corporation Method and apparatus for securing communication utilizing a security processor
US6418554B1 (en) * 1998-09-21 2002-07-09 Microsoft Corporation Software implementation installer mechanism
US6167383A (en) * 1998-09-22 2000-12-26 Dell Usa, Lp Method and apparatus for providing customer configured machines at an internet site
US6253230B1 (en) 1998-09-22 2001-06-26 International Business Machines Corporation Distributed scalable device for selecting a server from a server cluster and a switched path to the selected server
US6230312B1 (en) 1998-10-02 2001-05-08 Microsoft Corporation Automatic detection of per-unit location constraints
US6546553B1 (en) * 1998-10-02 2003-04-08 Microsoft Corporation Service installation on a base function and provision of a pass function with a service-free base function semantic
US6728885B1 (en) 1998-10-09 2004-04-27 Networks Associates Technology, Inc. System and method for network access control using adaptive proxies
US6570875B1 (en) 1998-10-13 2003-05-27 Intel Corporation Automatic filtering and creation of virtual LANs among a plurality of switch ports
US6546423B1 (en) 1998-10-22 2003-04-08 At&T Corp. System and method for network load balancing
US6286052B1 (en) 1998-12-04 2001-09-04 Cisco Technology, Inc. Method and apparatus for identifying network data traffic flows and for applying quality of service treatments to the flows
US6393485B1 (en) * 1998-10-27 2002-05-21 International Business Machines Corporation Method and apparatus for managing clustered computer systems
US6212559B1 (en) 1998-10-28 2001-04-03 Trw Inc. Automated configuration of internet-like computer networks
US6691165B1 (en) 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
JP3820777B2 (ja) 1998-11-12 2006-09-13 富士ゼロックス株式会社 秘密鍵寄託システムおよび方法
US6330605B1 (en) 1998-11-19 2001-12-11 Volera, Inc. Proxy cache cluster
US6353806B1 (en) * 1998-11-23 2002-03-05 Lucent Technologies Inc. System level hardware simulator and its automation
US6154543A (en) 1998-11-25 2000-11-28 Hush Communications Anguilla, Inc. Public key cryptosystem with roaming user capability
US6393456B1 (en) 1998-11-30 2002-05-21 Microsoft Corporation System, method, and computer program product for workflow processing using internet interoperable electronic messaging with mime multiple content type
US7058704B1 (en) 1998-12-01 2006-06-06 Network Appliance, Inc.. Method and apparatus for implementing a service-level agreement
US6108702A (en) 1998-12-02 2000-08-22 Micromuse, Inc. Method and apparatus for determining accurate topology features of a network
US6243746B1 (en) * 1998-12-04 2001-06-05 Sun Microsystems, Inc. Method and implementation for using computer network topology objects
US6570847B1 (en) 1998-12-31 2003-05-27 At&T Corp. Method and system for network traffic rate control based on fractional tokens
US6393474B1 (en) 1998-12-31 2002-05-21 3Com Corporation Dynamic policy management apparatus and method using active network devices
US6691168B1 (en) 1998-12-31 2004-02-10 Pmc-Sierra Method and apparatus for high-speed network rule processing
JP2000209324A (ja) * 1999-01-12 2000-07-28 Nec Corp 宛先発信制御システムおよび宛先発信制御方法
US6628671B1 (en) 1999-01-19 2003-09-30 Vtstarcom, Inc. Instant activation of point-to point protocol (PPP) connection using existing PPP state
US6449650B1 (en) * 1999-02-01 2002-09-10 Redback Networks Inc. Methods and apparatus for deploying quality of service policies on a data communication network
JP3765949B2 (ja) 1999-02-17 2006-04-12 富士通株式会社 オブジェクト指向ソフトウェア開発支援装置および開発支援方法
US6377996B1 (en) * 1999-02-18 2002-04-23 International Business Machines Corporation System for seamless streaming of data stored on a network of distributed primary and target servers using segmentation information exchanged among all servers during streaming
US6470464B2 (en) * 1999-02-23 2002-10-22 International Business Machines Corporation System and method for predicting computer system performance and for making recommendations for improving its performance
US6829770B1 (en) * 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6549934B1 (en) * 1999-03-01 2003-04-15 Microsoft Corporation Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client
US6760775B1 (en) 1999-03-05 2004-07-06 At&T Corp. System, method and apparatus for network service load and reliability management
JP2000268012A (ja) 1999-03-12 2000-09-29 Nec Corp クライアントサーバシステムにおけるサーバ負荷の分散方法ならびに装置
US6782408B1 (en) 1999-03-30 2004-08-24 International Business Machines Corporation Controlling a number of instances of an application running in a computing environment
US6442713B1 (en) 1999-03-30 2002-08-27 International Business Machines Corporation Cluster node distress signal
US6801949B1 (en) 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US6839348B2 (en) 1999-04-30 2005-01-04 Cisco Technology, Inc. System and method for distributing multicasts in virtual local area networks
JP2000322288A (ja) * 1999-05-06 2000-11-24 Fujitsu Ltd 分散オブジェクト開発システム、および、分散オブジェクト開発をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6564261B1 (en) 1999-05-10 2003-05-13 Telefonaktiebolaget Lm Ericsson (Publ) Distributed system to intelligently establish sessions between anonymous users over various networks
US6757744B1 (en) 1999-05-12 2004-06-29 Unisys Corporation Distributed transport communications manager with messaging subsystem for high-speed communications between heterogeneous computer systems
US6971072B1 (en) * 1999-05-13 2005-11-29 International Business Machines Corporation Reactive user interface control based on environmental sensing
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6425126B1 (en) 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
WO2000073929A2 (en) 1999-05-27 2000-12-07 Accenture Llp A system, method, and article of manufacture for effectively conveying which components of a system are required for implementation of technology
US6957186B1 (en) 1999-05-27 2005-10-18 Accenture Llp System method and article of manufacture for building, managing, and supporting various components of a system
US6631141B1 (en) 1999-05-27 2003-10-07 Ibm Corporation Methods, systems and computer program products for selecting an aggregator interface
GB9912494D0 (en) 1999-05-28 1999-07-28 Hewlett Packard Co Configuring computer systems
ATE360937T1 (de) 1999-06-10 2007-05-15 Alcatel Internetworking Inc System und verfahren zur selektiven ldap- datenbank synchronisierung
US6539494B1 (en) * 1999-06-17 2003-03-25 Art Technology Group, Inc. Internet server session backup apparatus
US6505244B1 (en) 1999-06-29 2003-01-07 Cisco Technology Inc. Policy engine which supports application specific plug-ins for enforcing policies in a feedback-based, adaptive data network
US6665714B1 (en) * 1999-06-30 2003-12-16 Emc Corporation Method and apparatus for determining an identity of a network device
US6367010B1 (en) 1999-07-02 2002-04-02 Postx Corporation Method for generating secure symmetric encryption and decryption
US6823299B1 (en) 1999-07-09 2004-11-23 Autodesk, Inc. Modeling objects, systems, and simulations by establishing relationships in an event-driven graph in a computer implemented graphics system
US6480955B1 (en) 1999-07-09 2002-11-12 Lsi Logic Corporation Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change
US6584499B1 (en) 1999-07-09 2003-06-24 Lsi Logic Corporation Methods and apparatus for performing mass operations on a plurality of managed devices on a network
US20010020228A1 (en) 1999-07-09 2001-09-06 International Business Machines Corporation Umethod, system and program for managing relationships among entities to exchange encryption keys for use in providing access and authorization to resources
US6820042B1 (en) 1999-07-23 2004-11-16 Opnet Technologies Mixed mode network simulator
JP3656716B2 (ja) 1999-07-27 2005-06-08 株式会社日立製作所 サービス管理システム
GB2363286B (en) 1999-07-28 2003-08-27 Sumitomo Electric Industries Network managing system
US6601233B1 (en) 1999-07-30 2003-07-29 Accenture Llp Business components framework
US6609198B1 (en) * 1999-08-05 2003-08-19 Sun Microsystems, Inc. Log-on service providing credential level change without loss of session continuity
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US6813778B1 (en) 1999-08-16 2004-11-02 General Instruments Corporation Method and system for downloading and managing the enablement of a list of code objects
US7162427B1 (en) 1999-08-20 2007-01-09 Electronic Data Systems Corporation Structure and method of modeling integrated business and information technology frameworks and architecture in support of a business
US6597956B1 (en) * 1999-08-23 2003-07-22 Terraspring, Inc. Method and apparatus for controlling an extensible computing system
US6779016B1 (en) 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
US6587876B1 (en) 1999-08-24 2003-07-01 Hewlett-Packard Development Company Grouping targets of management policies
US6256773B1 (en) 1999-08-31 2001-07-03 Accenture Llp System, method and article of manufacture for configuration management in a development architecture framework
US7139999B2 (en) 1999-08-31 2006-11-21 Accenture Llp Development architecture framework
US6370573B1 (en) 1999-08-31 2002-04-09 Accenture Llp System, method and article of manufacture for managing an environment of a development architecture framework
US7103185B1 (en) 1999-12-22 2006-09-05 Cisco Technology, Inc. Method and apparatus for distributing and updating private keys of multicast group managers using directory replication
JP3773716B2 (ja) * 1999-09-13 2006-05-10 富士通株式会社 グラフィカルユーザインターフェース表示装置及びその装置での処理をコンピュータにて行なわせるためのプログラムを格納した記録媒体
US6738736B1 (en) 1999-10-06 2004-05-18 Accenture Llp Method and estimator for providing capacacity modeling and planning
US6598223B1 (en) * 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6654796B1 (en) 1999-10-07 2003-11-25 Cisco Technology, Inc. System for managing cluster of network switches using IP address for commander switch and redirecting a managing request via forwarding an HTTP connection to an expansion switch
US7404175B2 (en) 2000-10-10 2008-07-22 Bea Systems, Inc. Smart generator
JP4001698B2 (ja) 1999-10-14 2007-10-31 富士通株式会社 負荷分散システム
US6654782B1 (en) 1999-10-28 2003-11-25 Networks Associates, Inc. Modular framework for dynamically processing network events using action sets in a distributed computing environment
US6351685B1 (en) 1999-11-05 2002-02-26 International Business Machines Corporation Wireless communication between multiple intelligent pickers and with a central job queue in an automated data storage library
JP3463803B2 (ja) 1999-11-09 2003-11-05 松下電器産業株式会社 クラスタサーバ装置
US6609148B1 (en) 1999-11-10 2003-08-19 Randy Salo Clients remote access to enterprise networks employing enterprise gateway servers in a centralized data center converting plurality of data requests for messaging and collaboration into a single request
US7464147B1 (en) 1999-11-10 2008-12-09 International Business Machines Corporation Managing a cluster of networked resources and resource groups using rule - base constraints in a scalable clustering environment
US6829639B1 (en) 1999-11-15 2004-12-07 Netvision, Inc. Method and system for intelligent global event notification and control within a distributed computing environment
TW444461B (en) 1999-11-25 2001-07-01 Inventec Corp Virtual network system and method
AU4717901A (en) 1999-12-06 2001-06-25 Warp Solutions, Inc. System and method for dynamic content routing
US6529953B1 (en) 1999-12-17 2003-03-04 Reliable Network Solutions Scalable computer network resource monitoring and location system
US6304972B1 (en) * 2000-01-03 2001-10-16 Massachusetts Institute Of Technology Secure software system and related techniques
US7069432B1 (en) 2000-01-04 2006-06-27 Cisco Technology, Inc. System and method for providing security in a telecommunication network
US6769008B1 (en) 2000-01-10 2004-07-27 Sun Microsystems, Inc. Method and apparatus for dynamically altering configurations of clustered computer systems
US6862613B1 (en) 2000-01-10 2005-03-01 Sun Microsystems, Inc. Method and apparatus for managing operations of clustered computer systems
US7315801B1 (en) 2000-01-14 2008-01-01 Secure Computing Corporation Network security modeling system and method
US6754716B1 (en) 2000-02-11 2004-06-22 Ensim Corporation Restricting communication between network devices on a common network
US7093005B2 (en) 2000-02-11 2006-08-15 Terraspring, Inc. Graphical editor for defining and creating a computer system
WO2001061969A2 (en) 2000-02-18 2001-08-23 Cedere Corporation Auto control of network monitoring and simulation
DE60011990T2 (de) 2000-02-22 2005-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Vorrichtung in einem Kommunikationsnetzwerk
US6983317B1 (en) 2000-02-28 2006-01-03 Microsoft Corporation Enterprise management system
US6701363B1 (en) 2000-02-29 2004-03-02 International Business Machines Corporation Method, computer program product, and system for deriving web transaction performance metrics
US7155490B1 (en) 2000-03-01 2006-12-26 Freewebs Corporation System and method for providing a web-based operating system
US7506034B2 (en) 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US6601101B1 (en) 2000-03-15 2003-07-29 3Com Corporation Transparent access to network attached devices
US6678821B1 (en) 2000-03-23 2004-01-13 E-Witness Inc. Method and system for restricting access to the private key of a user in a public key infrastructure
US6868062B1 (en) 2000-03-28 2005-03-15 Intel Corporation Managing data traffic on multiple ports
US6364439B1 (en) * 2000-03-31 2002-04-02 Interland, Inc. Computer storage systems for computer facilities
US6636929B1 (en) * 2000-04-06 2003-10-21 Hewlett-Packard Development Company, L.P. USB virtual devices
US6748447B1 (en) 2000-04-07 2004-06-08 Network Appliance, Inc. Method and apparatus for scalable distribution of information in a distributed network
US6718361B1 (en) 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6907469B1 (en) 2000-04-11 2005-06-14 International Business Machines Corporation Method for bridging and routing data frames via a network switch comprising a special guided tree handler processor
US7403901B1 (en) 2000-04-13 2008-07-22 Accenture Llp Error and load summary reporting in a health care solution environment
EP1292892A4 (en) 2000-04-14 2006-11-15 Goahead Software Inc SYSTEM AND METHOD FOR UPGRADING NETWORKED EQUIPMENT
US6574195B2 (en) * 2000-04-19 2003-06-03 Caspian Networks, Inc. Micro-flow management
US6904458B1 (en) 2000-04-26 2005-06-07 Microsoft Corporation System and method for remote management
US7054943B1 (en) 2000-04-28 2006-05-30 International Business Machines Corporation Method and apparatus for dynamically adjusting resources assigned to plurality of customers, for meeting service level agreements (slas) with minimal resources, and allowing common pools of resources to be used across plural customers on a demand basis
US6640303B1 (en) 2000-04-28 2003-10-28 Ky Quy Vu System and method for encryption using transparent keys
US6854069B2 (en) 2000-05-02 2005-02-08 Sun Microsystems Inc. Method and system for achieving high availability in a networked computer system
US7047279B1 (en) 2000-05-05 2006-05-16 Accenture, Llp Creating collaborative application sharing
US6675308B1 (en) 2000-05-09 2004-01-06 3Com Corporation Methods of determining whether a network interface card entry within the system registry pertains to physical hardware or to a virtual device
CN100350027C (zh) 2000-05-09 2007-11-21 索罗蒂亚公司 含有环氧化物除酸剂的功能性流体组合物
US7222147B1 (en) 2000-05-20 2007-05-22 Ciena Corporation Processing network management data in accordance with metadata files
US6671699B1 (en) 2000-05-20 2003-12-30 Equipe Communications Corporation Shared database usage in network devices
EP1158740B1 (en) * 2000-05-24 2009-09-16 Sony Deutschland GmbH Quality of Service negotiation
JP3457259B2 (ja) 2000-05-30 2003-10-14 日本電信電話株式会社 プロバイダ切換可能通信方法及びその装置
US6801937B1 (en) 2000-05-31 2004-10-05 International Business Machines Corporation Method, system and program products for defining nodes to a cluster
US6742020B1 (en) 2000-06-08 2004-05-25 Hewlett-Packard Development Company, L.P. System and method for managing data flow and measuring service in a storage network
US6718379B1 (en) 2000-06-09 2004-04-06 Advanced Micro Devices, Inc. System and method for network management of local area networks having non-blocking network switches configured for switching data packets between subnetworks based on management policies
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US6928482B1 (en) 2000-06-29 2005-08-09 Cisco Technology, Inc. Method and apparatus for scalable process flow load balancing of a multiplicity of parallel packet processors in a digital communication network
FR2811179B1 (fr) 2000-06-30 2002-09-27 Thomson Csf Procede de routage de trame ip entre les usagers d'un reseau a graphe variable
WO2002003220A2 (en) 2000-07-05 2002-01-10 Ernst & Young Llp Method and apparatus for providing computer services
US6971063B1 (en) * 2000-07-28 2005-11-29 Wireless Valley Communications Inc. System, method, and apparatus for portable design, deployment, test, and optimization of a communication network
US7366755B1 (en) 2000-07-28 2008-04-29 International Business Machines Corporation Method and apparatus for affinity of users to application servers
US20020143960A1 (en) * 2000-08-02 2002-10-03 Erez Goren Virtual network generation system and method
US6609213B1 (en) 2000-08-10 2003-08-19 Dell Products, L.P. Cluster-based system and method of recovery from server failures
US6823373B1 (en) * 2000-08-11 2004-11-23 Informatica Corporation System and method for coupling remote data stores and mobile devices via an internet based server
DE60031266T2 (de) 2000-08-17 2007-04-19 Sun Microsystems, Inc., Palo Alto Verfahren und System zum Lastausgleich
US6820121B1 (en) 2000-08-24 2004-11-16 International Business Machines Corporation Methods systems and computer program products for processing an event based on policy rules using hashing
US6976269B1 (en) 2000-08-29 2005-12-13 Equinix, Inc. Internet co-location facility security system
US20030050932A1 (en) 2000-09-01 2003-03-13 Pace Charles P. System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks
JP2002084302A (ja) 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> ネットワークによる通信方法及び装置
US6973622B1 (en) 2000-09-25 2005-12-06 Wireless Valley Communications, Inc. System and method for design, tracking, measurement, prediction and optimization of data communication networks
US7058826B2 (en) 2000-09-27 2006-06-06 Amphus, Inc. System, architecture, and method for logical server and other network devices in a dynamically configurable multi-server network environment
US7272653B2 (en) 2000-09-28 2007-09-18 International Business Machines Corporation System and method for implementing a clustered load balancer
US7069204B1 (en) * 2000-09-28 2006-06-27 Cadence Design System, Inc. Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements
US6944759B1 (en) * 2000-09-29 2005-09-13 Hewlett-Packard Development Company, L.P. Automatic system configuration management
US6976079B1 (en) 2000-09-29 2005-12-13 International Business Machines Corporation System and method for upgrading software in a distributed computer system
US7047518B2 (en) 2000-10-04 2006-05-16 Bea Systems, Inc. System for software application development and modeling
AU2002215311A1 (en) 2000-10-05 2002-04-15 Wind River Systems, Inc. A system and method for implementing multi-level network drivers
US7093288B1 (en) 2000-10-24 2006-08-15 Microsoft Corporation Using packet filters and network virtualization to restrict network communications
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
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
US6915338B1 (en) 2000-10-24 2005-07-05 Microsoft Corporation System and method providing automatic policy enforcement in a multi-computer service application
US7113900B1 (en) 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US6886038B1 (en) 2000-10-24 2005-04-26 Microsoft Corporation System and method for restricting data transfers and managing software components of distributed computers
US6769060B1 (en) 2000-10-25 2004-07-27 Ericsson Inc. Method of bilateral identity authentication
US6853841B1 (en) 2000-10-25 2005-02-08 Sun Microsystems, Inc. Protocol for a remote control device to enable control of network attached devices
US6754816B1 (en) 2000-10-26 2004-06-22 Dell Products L.P. Scalable environmental data calculation method customized by system configuration
US7124289B1 (en) 2000-10-31 2006-10-17 Opsware Inc. Automated provisioning framework for internet site servers
US20020082821A1 (en) * 2000-10-31 2002-06-27 Glenn Ferguson Data model for automated server configuration
US8250570B2 (en) 2000-10-31 2012-08-21 Hewlett-Packard Development Company, L.P. Automated provisioning framework for internet site servers
US7003574B1 (en) 2000-11-01 2006-02-21 Microsoft Corporation Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
US6985956B2 (en) 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US8949471B2 (en) 2000-11-02 2015-02-03 Oracle America, Inc. TCP/UDP acceleration
US7313614B2 (en) 2000-11-02 2007-12-25 Sun Microsystems, Inc. Switching system
US7028307B2 (en) * 2000-11-06 2006-04-11 Alcatel Data management framework for policy management
US20040073443A1 (en) 2000-11-10 2004-04-15 Gabrick John J. System for automating and managing an IP environment
US7027412B2 (en) 2000-11-10 2006-04-11 Veritas Operating Corporation System for dynamic provisioning of secure, scalable, and extensible networked computer environments
US7046680B1 (en) 2000-11-28 2006-05-16 Mci, Inc. Network access system including a programmable access device having distributed service control
US7272640B1 (en) 2000-12-08 2007-09-18 Sun Microsystems, Inc. Dynamic network session redirector
US8255513B2 (en) 2000-12-14 2012-08-28 Hewlett-Packard, Caribe B.V. Topology information system for a managed world
US20020075844A1 (en) * 2000-12-15 2002-06-20 Hagen W. Alexander Integrating public and private network resources for optimized broadband wireless access and method
US6856591B1 (en) 2000-12-15 2005-02-15 Cisco Technology, Inc. Method and system for high reliability cluster management
US7421505B2 (en) 2000-12-21 2008-09-02 Noatak Software Llc Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation
US20030046615A1 (en) 2000-12-22 2003-03-06 Alan Stone System and method for adaptive reliability balancing in distributed programming networks
US7225441B2 (en) 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
JP2002354006A (ja) 2001-05-24 2002-12-06 Oki Electric Ind Co Ltd 重複アドレスのネットワークシステム
US6581000B2 (en) * 2001-01-04 2003-06-17 Carnegie Mellon University Position location system and method
US20020090089A1 (en) 2001-01-05 2002-07-11 Steven Branigan Methods and apparatus for secure wireless networking
US6996588B2 (en) 2001-01-08 2006-02-07 International Business Machines Corporation Efficient application deployment on dynamic clusters
US7213231B1 (en) 2001-01-11 2007-05-01 Cisco Technology, Inc. Cross-spectrum application model for dynamic computing environments in software lifecycle
US6963981B1 (en) 2001-01-29 2005-11-08 Akamai Technologies, Inc. Method and apparatus for remote installation of an operating system over a network connection
CN1368694A (zh) 2001-02-01 2002-09-11 安德华科技股份有限公司 动态分辨作业实体的方法与其系统
US7383329B2 (en) 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US20020152086A1 (en) 2001-02-15 2002-10-17 Smith Ned M. Method and apparatus for controlling a lifecycle of an electronic contract
US7246351B2 (en) 2001-02-20 2007-07-17 Jargon Software System and method for deploying and implementing software applications over a distributed network
US20020118642A1 (en) * 2001-02-27 2002-08-29 Lee Daniel Joseph Network topology for use with an open internet protocol services platform
EP1241447A1 (en) 2001-03-13 2002-09-18 Matsushita Electric Industrial Co., Ltd. Information terminal and cartographic information providing system
JP2002271312A (ja) 2001-03-14 2002-09-20 Hitachi Ltd 公開鍵管理方法
US7069337B2 (en) 2001-03-20 2006-06-27 Mci, Inc. Policy-based synchronization of per-class resources between routers in a data network
US7050961B1 (en) * 2001-03-21 2006-05-23 Unisys Corporation Solution generation method for thin client sizing tool
US7003562B2 (en) 2001-03-27 2006-02-21 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices
US7076633B2 (en) 2001-03-28 2006-07-11 Swsoft Holdings, Ltd. Hosting service providing platform system and method
US7028228B1 (en) 2001-03-28 2006-04-11 The Shoregroup, Inc. Method and apparatus for identifying problems in computer networks
US20020156900A1 (en) 2001-03-30 2002-10-24 Brian Marquette Protocol independent control module
US20020198995A1 (en) 2001-04-10 2002-12-26 International Business Machines Corporation Apparatus and methods for maximizing service-level-agreement profits
US7162634B2 (en) 2001-04-18 2007-01-09 Thomson Licensing Method for providing security on a powerline-modem network
GB2374687A (en) 2001-04-19 2002-10-23 Ibm Managing configuration changes in a data processing system
US6971044B2 (en) * 2001-04-20 2005-11-29 Egenera, Inc. Service clusters and method in a processing system with failover capability
US7231430B2 (en) 2001-04-20 2007-06-12 Egenera, Inc. Reconfigurable, virtual processing system, cluster, network and method
US7152109B2 (en) 2001-04-20 2006-12-19 Opsware, Inc Automated provisioning of computing networks according to customer accounts using a network database data model
US6836750B2 (en) 2001-04-23 2004-12-28 Hewlett-Packard Development Company, L.P. Systems and methods for providing an automated diagnostic audit for cluster computer systems
US7058858B2 (en) 2001-04-23 2006-06-06 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
US6895534B2 (en) 2001-04-23 2005-05-17 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
US6816897B2 (en) 2001-04-30 2004-11-09 Opsware, Inc. Console mapping tool for automated deployment and management of network devices
US7543066B2 (en) * 2001-04-30 2009-06-02 International Business Machines Corporation Method and apparatus for maintaining session affinity across multiple server groups
US7131123B2 (en) 2001-04-30 2006-10-31 Opsware Inc. Automated provisioning of computing networks using a network database model
US7194439B2 (en) 2001-04-30 2007-03-20 International Business Machines Corporation Method and system for correlating job accounting information with software license information
US20030014644A1 (en) * 2001-05-02 2003-01-16 Burns James E. Method and system for security policy management
US7013462B2 (en) 2001-05-10 2006-03-14 Hewlett-Packard Development Company, L.P. Method to map an inventory management system to a configuration management system
US20020184327A1 (en) * 2001-05-11 2002-12-05 Major Robert Drew System and method for partitioning address space in a proxy cache server cluster
US20020171690A1 (en) * 2001-05-15 2002-11-21 International Business Machines Corporation Method and system for scaling a graphical user interface (GUI) widget based on selection pointer proximity
US7134122B1 (en) 2001-05-31 2006-11-07 Oracle International Corporation One click deployment
US20030008712A1 (en) 2001-06-04 2003-01-09 Playnet, Inc. System and method for distributing a multi-client game/application over a communications network
US6735596B2 (en) 2001-06-07 2004-05-11 Guy Charles Corynen Computer method and user interface for decision analysis and for global system optimization
US6968551B2 (en) 2001-06-11 2005-11-22 John Hediger System and user interface for generation and processing of software application installation instructions
US20020188941A1 (en) * 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
US6898338B2 (en) * 2001-06-18 2005-05-24 Weatherford/Lamb, Inc. Fabry-Perot sensing element based on a large-diameter optical waveguide
US6944678B2 (en) 2001-06-18 2005-09-13 Transtech Networks Usa, Inc. Content-aware application switch and methods thereof
EP1410196B1 (en) 2001-06-22 2019-08-07 AVEVA Software, LLC Installing supervisory process control and manufacturing software from a remote location and maintaining configuration data links in a run-time environment
US6944606B2 (en) 2001-06-29 2005-09-13 National Instruments Corporation Measurements expert system and method for generating high-performance measurements software drivers
US7082464B2 (en) 2001-07-06 2006-07-25 Juniper Networks, Inc. Network management system
US20030009559A1 (en) 2001-07-09 2003-01-09 Naoya Ikeda Network system and method of distributing accesses to a plurality of server apparatus in the network system
JP2003030424A (ja) 2001-07-10 2003-01-31 Aioi Insurance Co Ltd 保険業務の自動システム化方法およびその装置
US7409420B2 (en) 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US7055149B2 (en) 2001-07-25 2006-05-30 Lenovo (Singapore) Pte Ltd. Method and apparatus for automating software upgrades
US7058181B2 (en) 2001-08-02 2006-06-06 Senforce Technologies, Inc. Wireless bridge for roaming in network environment
US7174379B2 (en) * 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
US6922791B2 (en) 2001-08-09 2005-07-26 Dell Products L.P. Failover system and method for cluster environment
US7367028B2 (en) 2001-08-14 2008-04-29 National Instruments Corporation Graphically deploying programs on devices in a system
WO2003017571A2 (en) 2001-08-15 2003-02-27 Sheer Networks, Inc. Service provisioning in a distributed network management architecture
US7043393B2 (en) 2001-08-15 2006-05-09 National Instruments Corporation System and method for online specification of measurement hardware
US20030041159A1 (en) 2001-08-17 2003-02-27 David Tinsley Systems and method for presenting customizable multimedia presentations
US6823382B2 (en) 2001-08-20 2004-11-23 Altaworks Corporation Monitoring and control engine for multi-tiered service-level management of distributed web-application servers
US20030041142A1 (en) 2001-08-27 2003-02-27 Nec Usa, Inc. Generic network monitoring tool
US6880002B2 (en) 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US6986135B2 (en) 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
US6973620B2 (en) * 2001-09-06 2005-12-06 International Business Machines Corporation Method and apparatus for providing user support based on contextual information
US6980978B2 (en) 2001-09-07 2005-12-27 International Business Machines Corporation Site integration management system for operational support service in an internet data center
US7500069B2 (en) 2001-09-17 2009-03-03 Hewlett-Packard Development Company, L.P. System and method for providing secure access to network logical storage partitions
WO2003027876A1 (en) 2001-09-26 2003-04-03 Jodie Lynn Reynolds System and method for communicating media signals
WO2003029963A2 (en) 2001-09-28 2003-04-10 Codagen Technologies Corp. A system and method for managing architectural layers within a software model
US7769823B2 (en) * 2001-09-28 2010-08-03 F5 Networks, Inc. Method and system for distributing requests for content
US7046660B2 (en) 2001-10-03 2006-05-16 Internet Machines Corp. Switching apparatus for high speed channels using multiple parallel lower speed channels while maintaining data rate
US7140000B2 (en) 2001-10-09 2006-11-21 Certusoft Knowledge oriented programming
US7309498B2 (en) 2001-10-10 2007-12-18 Belenkaya Bronislava G Biodegradable absorbents and methods of preparation
US7257817B2 (en) 2001-10-16 2007-08-14 Microsoft Corporation Virtual network with adaptive dispatcher
US7200665B2 (en) * 2001-10-17 2007-04-03 Hewlett-Packard Development Company, L.P. Allowing requests of a session to be serviced by different servers in a multi-server data service system
EP1307018B1 (en) 2001-10-24 2006-10-11 Sun Microsystems, Inc. Load balancing unit and method of its operation
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
US7194616B2 (en) 2001-10-27 2007-03-20 International Business Machines Corporation Flexible temporary capacity upgrade/downgrade in a computer system without involvement of the operating system
US7024451B2 (en) 2001-11-05 2006-04-04 Hewlett-Packard Development Company, L.P. System and method for maintaining consistent independent server-side state among collaborating servers
US20030126464A1 (en) 2001-12-04 2003-07-03 Mcdaniel Patrick D. Method and system for determining and enforcing security policy in a communication session
US7305556B2 (en) 2001-12-05 2007-12-04 Canon Kabushiki Kaisha Secure printing with authenticated printer key
US7188364B2 (en) 2001-12-20 2007-03-06 Cranite Systems, Inc. Personal virtual bridged local area networks
US7188335B1 (en) 2001-12-28 2007-03-06 Trilogy Development Group, Inc. Product configuration using configuration patterns
US6965668B2 (en) 2002-01-08 2005-11-15 Sbc Services, Inc. Method and system for presenting billing information according to a customer-defined hierarchal structure
US20030138105A1 (en) 2002-01-18 2003-07-24 International Business Machines Corporation Storing keys in a cryptology device
US7412502B2 (en) 2002-04-18 2008-08-12 International Business Machines Corporation Graphics for end to end component mapping and problem-solving in a network environment
US7568019B1 (en) 2002-02-15 2009-07-28 Entrust, Inc. Enterprise management system for normalization, integration and correlation of business measurements with application and infrastructure measurements
US6954930B2 (en) 2002-02-19 2005-10-11 International Business Machines Corporation Remote validation of installation input data
US7254634B1 (en) 2002-03-08 2007-08-07 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US7257584B2 (en) 2002-03-18 2007-08-14 Surgient, Inc. Server file management
US6990666B2 (en) 2002-03-18 2006-01-24 Surgient Inc. Near on-line server
US20030214908A1 (en) 2002-03-19 2003-11-20 Anurag Kumar Methods and apparatus for quality of service control for TCP aggregates at a bottleneck link in the internet
US20030217263A1 (en) 2002-03-21 2003-11-20 Tsutomu Sakai System and method for secure real-time digital transmission
US6968535B2 (en) 2002-03-21 2005-11-22 Sun Microsystems, Inc. Service mapping method of enterprise application modeling and development for multi-tier service environments
US7099936B2 (en) 2002-03-29 2006-08-29 International Business Machines Corporation Multi-tier service level agreement method and system
US20050152270A1 (en) 2002-04-12 2005-07-14 Gerardo Gomez Paredes Policy-based qos management in multi-radio access networks
US7379982B2 (en) 2002-04-15 2008-05-27 Bassam Tabbara System and method for custom installation of an operating system on a remote client
US7120797B2 (en) 2002-04-24 2006-10-10 Microsoft Corporation Methods for authenticating potential members invited to join a group
US7117158B2 (en) 2002-04-25 2006-10-03 Bilcare, Inc. Systems, methods and computer program products for designing, deploying and managing interactive voice response (IVR) systems
US7130881B2 (en) 2002-05-01 2006-10-31 Sun Microsystems, Inc. Remote execution model for distributed application launch and control
US6681262B1 (en) 2002-05-06 2004-01-20 Infinicon Systems Network data flow optimization
US7203911B2 (en) * 2002-05-13 2007-04-10 Microsoft Corporation Altering a display on a viewing device based upon a user proximity to the viewing device
US20030225563A1 (en) 2002-05-30 2003-12-04 Gonos Dan G. Capacity planning
US7376125B1 (en) 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
US6888807B2 (en) 2002-06-10 2005-05-03 Ipr Licensing, Inc. Applying session services based on packet flows
US20050193103A1 (en) 2002-06-18 2005-09-01 John Drabik Method and apparatus for automatic configuration and management of a virtual private network
JP4118092B2 (ja) 2002-06-19 2008-07-16 株式会社ルネサステクノロジ 記憶装置および情報処理装置
US20040002878A1 (en) 2002-06-28 2004-01-01 International Business Machines Corporation Method and system for user-determined authentication in a federated environment
US6801528B2 (en) 2002-07-03 2004-10-05 Ericsson Inc. System and method for dynamic simultaneous connection to multiple service providers
US7210143B2 (en) 2002-07-17 2007-04-24 International Business Machines Corporation Deployment of applications in a multitier compute infrastructure
US20040078787A1 (en) 2002-07-19 2004-04-22 Michael Borek System and method for troubleshooting, maintaining and repairing network devices
US7191344B2 (en) 2002-08-08 2007-03-13 Authenex, Inc. Method and system for controlling access to data stored on a data storage device
US7143420B2 (en) 2002-08-29 2006-11-28 Sun Microsystems, Inc. Strategic technology architecture roadmap
US7275156B2 (en) 2002-08-30 2007-09-25 Xerox Corporation Method and apparatus for establishing and using a secure credential infrastructure
US7505872B2 (en) 2002-09-11 2009-03-17 International Business Machines Corporation Methods and apparatus for impact analysis and problem determination
US6847970B2 (en) 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US7072822B2 (en) 2002-09-30 2006-07-04 Cognos Incorporated Deploying multiple enterprise planning models across clusters of application servers
US20040073795A1 (en) 2002-10-10 2004-04-15 Jablon David P. Systems and methods for password-based connection
EP1411456A3 (en) * 2002-10-16 2005-07-06 Xerox Corporation Method and apparatus for enabling distributed subscription services
US7016742B2 (en) * 2002-11-27 2006-03-21 Bahelle Memorial Institute Decision support for operations and maintenance (DSOM) system
EP1426919A1 (en) * 2002-12-02 2004-06-09 Sony International (Europe) GmbH Method for operating a display device
US7933983B2 (en) 2002-12-17 2011-04-26 Hewlett-Packard Development Company, L.P. Method and system for performing load balancing across control planes in a data center
US7480907B1 (en) 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
US7478385B2 (en) 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US8091117B2 (en) 2003-02-14 2012-01-03 Preventsys, Inc. System and method for interfacing with heterogeneous network data gathering tools
US7436965B2 (en) 2003-02-19 2008-10-14 Microsoft Corporation Optical out-of-band key distribution
AU2003210333A1 (en) 2003-02-21 2004-09-09 Pirelli & C. S.P.A. Method and system for managing network access device using a smart card
US7406692B2 (en) 2003-02-24 2008-07-29 Bea Systems, Inc. System and method for server load balancing and server affinity
US7069553B2 (en) 2003-03-03 2006-06-27 Computer Associates Think, Inc. Universal deployment tool
US7152157B2 (en) 2003-03-05 2006-12-19 Sun Microsystems, Inc. System and method for dynamic resource configuration using a dependency graph
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7765501B2 (en) 2003-03-06 2010-07-27 Microsoft Corporation Settings and constraints validation to enable design for operations
US7689676B2 (en) * 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7350186B2 (en) 2003-03-10 2008-03-25 International Business Machines Corporation Methods and apparatus for managing computing deployment in presence of variable workload
US7386721B1 (en) 2003-03-12 2008-06-10 Cisco Technology, Inc. Method and apparatus for integrated provisioning of a network device with configuration information and identity certification
CA2520933A1 (en) 2003-03-31 2004-10-21 System Management Arts, Inc. Method and apparatus for multi-realm system modeling
US6987838B2 (en) 2003-04-16 2006-01-17 Entrisphere, Inc. System and method for deploying new equipment and services in conjunction with a legacy provisioning system
US20040220792A1 (en) 2003-04-30 2004-11-04 Gallanis Peter Thomas Performance modeling for information systems
US7603442B2 (en) 2003-06-20 2009-10-13 Microsoft Corporation Method and system for maintaining service dependency relationships in a computer system
US7606929B2 (en) 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US7613822B2 (en) 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7567504B2 (en) 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7590736B2 (en) 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7146353B2 (en) 2003-07-22 2006-12-05 Hewlett-Packard Development Company, L.P. Resource allocation for multiple applications
US20050097146A1 (en) 2003-08-21 2005-05-05 Konstantinou Alexander V. Methods and systems for autonomously managing a network
US7389411B2 (en) * 2003-08-29 2008-06-17 Sun Microsystems, Inc. Secure transfer of host identities
US7127625B2 (en) 2003-09-04 2006-10-24 Hewlett-Packard Development Company, L.P. Application management based on power consumption
US7559018B2 (en) * 2003-09-10 2009-07-07 Sas Institute Inc. Computer-implemented system and method for data collection
US7313573B2 (en) 2003-09-17 2007-12-25 International Business Machines Corporation Diagnosis of equipment failures using an integrated approach of case based reasoning and reliability analysis
US7130863B2 (en) 2003-09-24 2006-10-31 Tablecode Software Corporation Method for enhancing object-oriented programming through extending metadata associated with class-body class-head by adding additional metadata to the database
US20050080811A1 (en) * 2003-10-10 2005-04-14 Cendura Corporation Configuration management architecture
US7603547B2 (en) 2003-10-10 2009-10-13 Bea Systems, Inc. Security control module
US7237267B2 (en) 2003-10-16 2007-06-26 Cisco Technology, Inc. Policy-based network security management
US7765540B2 (en) 2003-10-23 2010-07-27 Microsoft Corporation Use of attribution to describe management information
US7103874B2 (en) 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
US6968291B1 (en) 2003-11-04 2005-11-22 Sun Microsystems, Inc. Using and generating finite state machines to monitor system status
US20050102513A1 (en) 2003-11-10 2005-05-12 Nokia Corporation Enforcing authorized domains with domain membership vouchers
US20050102154A1 (en) 2003-11-12 2005-05-12 Dodd Ryan A. Method, computer useable medium, and system for enterprise resource management
JP2005155729A (ja) 2003-11-21 2005-06-16 Toyota Motor Corp ベルト式無段変速機の油圧制御装置
EP1550969A3 (en) 2003-12-11 2005-08-31 International Business Machines Corporation Method and system for dynamically and automatically set-up offerings for IT-services
US7778888B2 (en) * 2003-12-11 2010-08-17 International Business Machines Corporation Method for dynamically and automatically setting up offerings for IT services
US7478381B2 (en) 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US20050138416A1 (en) 2003-12-19 2005-06-23 Microsoft Corporation Object model for managing firewall services
US7278273B1 (en) 2003-12-30 2007-10-09 Google Inc. Modular data center
US20050181775A1 (en) 2004-02-13 2005-08-18 Readyalert Systems, Llc Alert notification service
US7231410B1 (en) 2004-03-10 2007-06-12 Qlogic, Corporation Revision control system for large-scale systems management
US7302608B1 (en) 2004-03-31 2007-11-27 Google Inc. Systems and methods for automatic repair and replacement of networked machines
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US7484237B2 (en) 2004-05-13 2009-01-27 Hewlett-Packard Development Company, L.P. Method and apparatus for role-based security policy management
US8095959B2 (en) 2004-05-27 2012-01-10 Hewlett-Packard Development Company, L.P. Method and system for integrating policies across systems
US7571082B2 (en) 2004-06-22 2009-08-04 Wells Fargo Bank, N.A. Common component modeling
US20060025984A1 (en) 2004-08-02 2006-02-02 Microsoft Corporation Automatic validation and calibration of transaction-based performance models
US8627149B2 (en) 2004-08-30 2014-01-07 International Business Machines Corporation Techniques for health monitoring and control of application servers
US7506338B2 (en) 2004-08-30 2009-03-17 International Business Machines Corporation Method and apparatus for simplifying the deployment and serviceability of commercial software environments
JP4799419B2 (ja) 2004-10-20 2011-10-26 富士通株式会社 設定プログラム、設定方法、および設定装置
US7333000B2 (en) 2004-11-12 2008-02-19 Afco Systems Development, Inc. Tracking system and method for electrically powered equipment
US9043781B2 (en) 2004-12-03 2015-05-26 International Business Machines Corporation Algorithm for automated enterprise deployments
US7730183B2 (en) 2005-01-13 2010-06-01 Microsoft Corporation System and method for generating virtual networks
US7552208B2 (en) 2005-01-18 2009-06-23 Microsoft Corporation Methods for managing capacity
US20060161879A1 (en) 2005-01-18 2006-07-20 Microsoft Corporation Methods for managing standards
US7624086B2 (en) 2005-03-04 2009-11-24 Maxsp Corporation Pre-install compliance system
US7653903B2 (en) 2005-03-25 2010-01-26 Sony Corporation Modular imaging download system
US20060235664A1 (en) 2005-04-15 2006-10-19 Microsoft Corporation Model-based capacity planning
US7797147B2 (en) * 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US7802144B2 (en) * 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US7350068B2 (en) 2005-04-22 2008-03-25 International Business Machines Corporation Server blade network boot method that minimizes required network bandwidth
US7743373B2 (en) 2005-05-06 2010-06-22 International Business Machines Corporation Method and apparatus for managing software catalog and providing configuration for installation
US7805496B2 (en) 2005-05-10 2010-09-28 International Business Machines Corporation Automatic generation of hybrid performance models
US7512942B2 (en) 2005-08-24 2009-03-31 International Business Machines Corporation Model-driven software deployment in an application server
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US7587453B2 (en) 2006-01-05 2009-09-08 International Business Machines Corporation Method and system for determining application availability

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934723A (ja) * 1995-04-05 1997-02-07 Internatl Business Mach Corp <Ibm> ネットワークでのアプリケーション・プログラムの導入のための導入計画オブジェクトのコミット
JPH08305609A (ja) * 1995-04-28 1996-11-22 Oki Electric Ind Co Ltd プログラムのテスト方法および装置
JPH0991143A (ja) * 1995-07-14 1997-04-04 Sony Corp データ処理方法および装置
JPH11110256A (ja) * 1997-10-06 1999-04-23 Toshiba Corp プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JP2003006170A (ja) * 2001-06-20 2003-01-10 Hitachi Ltd 複数計算機環境でのプログラム実行方法
JP2003058698A (ja) * 2001-08-09 2003-02-28 Ricoh Co Ltd It環境最適化支援システム、該システムの機能を実現するプログラム及び記録媒体

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
JP2006338190A (ja) * 2005-05-31 2006-12-14 Nec Corp 実装コード開発システム、及び実装コード開発プログラム
JP2009515252A (ja) * 2005-11-02 2009-04-09 マイクロソフト コーポレーション Itオペレーション/ポリシーのモデリング方法
JP2007157026A (ja) * 2005-12-08 2007-06-21 Hitachi Ltd 稼働見積システム、稼働見積装置、実行装置及び稼働見積方法
JP2008243195A (ja) * 2007-03-02 2008-10-09 Internatl Business Mach Corp <Ibm> 操作管理製品によって行われる操作における変更制御を自動的に強化するためのシステムおよび方法
JP2011521340A (ja) * 2008-05-14 2011-07-21 エアバス オペラシオン 共同サービス指向ワークショップにおけるデータのトレーサビリティのための方法
JP2012503827A (ja) * 2008-09-26 2012-02-09 マイクロソフト コーポレーション データ層アプリケーションコンポーネント
JP2013516005A (ja) * 2009-12-23 2013-05-09 サヴィス・インコーポレーテッド マルチテナントシステムにおいてユーザが設計した仮想プライベートデータセンタを自動的にプロビジョニングするためのシステムおよび方法
US9059933B2 (en) 2009-12-23 2015-06-16 Centurylink Intellectual Property Llc Provisioning virtual private data centers
US9098320B2 (en) 2009-12-23 2015-08-04 Savvis Inc. Systems and methods for automatic provisioning of a user designed virtual private data center in a multi-tenant system
US9088503B2 (en) 2011-06-02 2015-07-21 Hitachi, Ltd. Multi-tenant information processing system, management server, and configuration management method

Also Published As

Publication number Publication date
US20060025985A1 (en) 2006-02-02
EP1455484B1 (en) 2017-09-13
US7890951B2 (en) 2011-02-15
IL160461A0 (en) 2004-07-25
US8122106B2 (en) 2012-02-21
US7792931B2 (en) 2010-09-07
EP1455484A3 (en) 2006-10-04
KR20040079317A (ko) 2004-09-14
US20060031248A1 (en) 2006-02-09
US7886041B2 (en) 2011-02-08
US20040205179A1 (en) 2004-10-14
US20060037002A1 (en) 2006-02-16
EP1455484A2 (en) 2004-09-08
CN1619490A (zh) 2005-05-25
AU2004200639A1 (en) 2004-09-23
ZA200401494B (en) 2005-06-29
KR101026606B1 (ko) 2011-04-04
US20040193388A1 (en) 2004-09-30
AU2004200639B2 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
AU2004200639B2 (en) Integrating design, deployment, and management phases for systems
JP2004272907A (ja) 分散コンピューティングシステムと、分散アプリケーションの自動化された設計、展開、および管理とのためのアーキテクチャ
Bean Laravel 5 essentials
CN102656557B (zh) 自动化企业软件开发
US7543268B2 (en) Development environment for developing applications using a metamodel and a metadata API
US8255888B2 (en) API derivation and XML schema derivation for developing applications
US20050071805A1 (en) Developing applications using a metamodel
US10114861B2 (en) Expandable ad hoc domain specific query for system management
JP2004280820A (ja) ビジネスソフトウェアアプリケーションをサポートするフレームワーク
US20120117560A1 (en) Capability model for deploying componentized applications
KR20070049166A (ko) 목표 기기 상에서의 종속 소프트웨어 패키지의 검출 및이용을 자동화하기 위한 방법 및 소프트웨어 리포지터리를생성하기 위한 시스템
US9244706B2 (en) Command line shell command generation based on schema
EP1498813A2 (en) Design time validation of systems
KR20040079339A (ko) 시스템의 설계 시간 검증을 위한 방법, 장치 및 컴퓨터판독 가능 매체
WO2007021775A2 (en) A method for providing extensible software components within a distributed synchronization system
Aryal MERN stack with modern web practices
Japikse et al. Building the RESTful Service with ASP. NET Core MVC Services
EP1975785A1 (en) Design time validation of systems
Chikwanda et al. Call center management systems
Singleton et al. A Layered Approach to Specification Authoring, Sharing, and Usage
Moemeka et al. Leveraging Existing Code
Krum et al. Building Hosts with Puppet
Law Computer Science Department CB7201 MSc Individual Project
Leonard et al. Configuration
Northcott Managing dependencies and constraints in assembled software systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101130