レベル: 初級 Eric Kirchstein (ekirchst@us.ibm.com), Software Engineer, IBM Software Group, Tivoli Foundation Technologies Design and Development
2005年 4月 26日 管理対象リソース(managed resources)の行動を指示するポリシーを作成、適用するために、PMAC(Policy Management for Autonomic Computing)システムがどのように動作するかを学びましょう。この記事では、管理対象リソースの中から取得できる必要なターゲット・データを明らかにし、そのデータを集めるために3つのツール(WSDLとWS-RPそしてMRP)がどのように相互動作するかを見て行きます。
はじめに
今日の複雑なITシステムを管理するためには、インテリジェントな管理ポリシーが必要です。この記事では、管理対象リソース(managed resource)の振る舞いを指示するポリシーを作成、適用するためのポリシー言語と機構を提供するために作られた、PMAC(Policy Management for Autonomic Computing)システムの詳細について解説します。
IT分野における大企業あるいは成長企業の最大の課題の1つが、ITリソースの管理です。ポリシー駆動型システムの下では、ITスタッフが、こうした管理対象リソースの行動を指示するポリシーを設定し、管理方法を調整します。こうしたリソースの行動には、単純な一連イベントもあれば複雑なイベントの連続もあり、その結果は、1つあるいは複数のポリシーを使用することによって決定されます。
alphaWorks(参考文献)からダウンロードできるツールであるPMACは、任意の管理対象リソースに対してポリシーを作成、適用するために必要な、ポリシー言語と仕組みを提供します。ポリシーの完全な定義は、この記事の範囲外ですので、詳細は、「An introduction to policy for autonomic computing」(参考文献)をご覧ください。
管理対象リソースを定義する
では、管理対象リソースとは、具体的に何を指すのでしょう。最も基本的な定義としては、次のようなものです。
管理対象となるITシステムのランタイム環境に存在する実体
これで十分ですよね? この記事では、この定義を使うことにします。
例えば、ある特定の、あるいは複数のリソースのオペレーション管理に責任を持つ「マネージャー」アプリケーションがあるとしましょう。このマネージャー・アプリケーションは、ポリシーを使って、何をすべきかを判断しますが、こうしたポリシーは各管理対象リソースから送られてくるデータに依存します。したがって、マネージャー・アプリケーションは、リソースからデータを収集する必要があります。
このデータには、次のような情報が含まれるでしょう。
- 管理対象リソースのステートフル情報を定義するプロパティー
- 管理対象リソース上で変更可能なプロパティー
- 管理対象リソース上で実行可能なオペレーション
- ポリシー指針に基づいて、この管理対象リソースに対して下される判断
マネージャー・アプリケーションは、データを収集する前に、どんなデータが入手可能かを知る必要があります。しかし残念なことに、リソースを記述するデータは、様々なファイルの中に保存されています。
ここにPMACが登場するのです。PMACが提供する仕組みを利用すると、データを統合できるようになります。つまり、対象となるリソースに関連した、意味のある、そのリソース固有のポリシーを作ることができ、実行時にポリシーの妥当性検証、評価を行うようにできるのです。
この記事の主なテーマは、管理対象リソースをPMAC対応にするための方法を示すことです。その前にまず、必要な情報を収集するために追跡すべきリソース、つまり管理対象リソース記述文書をちょっと見ることにします。こうした文書がどのように相互動作するのか、情報がどのように相互関連して、意味ある管理対象リソース記述となるのかを説明しましょう。
また皆さんは、得られる結果の情報が組み合わされてMED(managed element descriptor)Java™オブジェクトができることについても、理解したいかも知れません。しかし、MEDについてはこの記事の範囲外ですので、今後のdeveloperWorksのチュートリアルに期待してください。
データはどこにあるのか
管理対象リソースからデータを収集する上で最も厄介な問題は、ポリシーを定義するために必要なデータが、大幅に異なるバラバラな文書に分散しているかも知れない、という点です。PMACはこの問題を解決するために、次のような3つの標準XML文書を使って情報を収集しています。
-
WSDL(Web Services Description Language)は、文書指向あるいはプロシージャー指向の情報を含んだメッセージを操作するエンドポイントのセットとして、ネットワーク・サービスを記述するXMLフォーマットです。オペレーションやメッセージは抽象的に記述され、最終的には、具体的なネットワーク・プロトコルとエンドポイントを定義するメッセージ・フォーマットになります。関連した実際のエンドポイントは、組み合わされて抽象エンドポイント(サービスとしても知られています)にまとめられます。WSDLは拡張性があり、通信に使われるメッセージ・フォーマットやネットワーク・プロトコルがどのようなものであっても、エンドポイントとそのメッセージを記述することができます。
-
WS-RP(Web Services Resource Properties)は、WS-ResourcePropertiesとしても知られていますが、ステートフル・リソースにアクセスするための仕様です。WS-RPは、ステートフル・リソースに関連付けられたデータを、Webサービス技術を使ってクエリーし、変更する方法を定義しています。そのため、クライアントは標準的手段を使って、WS-Resourceに関連付けられたデータにアクセスできるようになります。またWS-RPは、メッセージ交換のための標準セットも定義しており、これを使ってリクエスターがWS-Resourceのプロパティー値をクエリーしたり、更新したりすることができます。サービス・インターフェースに関連付けられたリソース・プロジェクションで定義されたプロパティー・セットは、こうしたメッセージ交換の内容の有効値に対する制約を定義します。
-
MRP(Managed Resource Prototype)は、適当なWS-RP文書と共に使用される、管理対象リソース・プロパティーに関しての追加情報を提供します。これに含まれるものとしては、管理対象リソース・プロパティーの値に対する制約や、リソース・プロパティーが変更可能かどうか、実際の場面でこうしたプロパティーが取りうる値、などがあります。
図1は、WSDLとWS-RP、MRPの関係を示しています。この図では、WS-RP文書は、WSDL文書のタイプ選択の中に含まれることになります。
図1. WSDLとWS-RP、MRPの動作関係
PMACはスコープを、「ポリシーの主題の定義」として定義します。この相互動作の例では、左側にあるMRP_a文書は同じであり、組み合わされて、右側にあるMRP_Scope1になります。WSDL_1成果物とWSDL_2成果物は組み合わされ、右側にあるWSDL_Scope1成果物になります。
また、この相互動作では、次のような点にも注目する必要があります。
- WSDLは、MRPが参照していないportTypesを持つことができる。
- MRPとスコープの間には一対一の関係がある。したがって、同じスコープは同じMRPを持つ必要がある。
では、これらのコンポーネントのそれぞれに対して、もっと詳しい説明をすることにしましょう。
WSDL(Web Services Description Language)
PMACはWSDL文書を使って、使用可能なセンサー・オペレーションとエフェクター・オペレーションを収集します。
オートノミック・マネージャーでは、センサー・オペレーションが環境を監視します。オートノミック・マネージャーは、検出したデータを分析した後、アクションを計画し、実行します。アクションは、エフェクター・オペレーションを通して行われます。センサーは管理対象リソースの現在の状態を監視し、エフェクターは現在の状態を変更する機能を持っています。
WSDLはまた、WSDLのwsdl:typesセクションにWS-RPインスタンスを含む場合があります。(ただし、WS-RPインスタンスは別文書として作成しておくこともできます。)
リスト1は、WSDLファイルのスケルトンのXML断片です(もっと詳細な例は、この記事の後の方に出てきますが、このWSDLファイルでも、皆さんが自分独自のものを作るためのテンプレートしては適切でしょう。この文書のルート・ノードには、多くの名前空間定義が含まれていることに注意してください。これらの全てが使われることはないかも知れませんが、完全さを保つために入れてあります。)
リスト1. WSDLファイルの例(スケルトン)
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="myWSDLname"
targetNamespace="http://www.ibm.com/namespaces/myWSDLns"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mypre="http://autonomic.ibm.com/myns"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:basefault="http://basefaults.wsrf.ibm.com"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:format="http://schemas.xmlsoap.org/wsdl/formatbinding/"
xmlns:java="http://schemas.xmlsoap.org/wsdl/java/"
xmlns:wsrp="http://www.ibm.com/xmlns/stdwip/web-services/WS-ResourceProperties"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<!--This is where the WS-RP definition goes. More detail available in WS-RP section below-->
<schema targetNamespace="http://autonomic.ibm.com/myns" xmlns="http://www.w3.org/2001/XMLSchema">
<!--One example of a generic resource property definition -->
<element name="MyResourceProperty" type="xsd:int" />
<!--Example of a GlobalElementDescriptor (GED) containing the above resource property-->
<element name="MyGED">
<complexType>
<sequence>
<element ref="mypre:MyResourceProperty"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="getResourcePropertyRequest">
<wsdl:part name="qname" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="getResourcePropertyResponse">
<wsdl:part name="getResourcePropertyReturn" type="xsd:anyType"/>
</wsdl:message>
<wsdl:message name="getSomethingRequest">
<wsdl:part name="getSomethingArg" element="getSomething" />
</wsdl:message>
<wsdl:message name="getSomethingResponse ">
<wsdl:part name="getSomethingReturn" type="xsd:int" />
</wsdl:message>
<wsdl:portType name="testUAPortType" wsrp:ResourceProperties="uasppol:MyGED">
<!-- Sample operation --> <wsdl:operation name="getSomething">
<wsdl:input message="uasp:getSomethingRequest" name="getSomethingRequest" />
<wsdl:output message="uasp:getSomethingResponse" name="getSomethingResponse" />
</wsdl:operation>
<!-- Mandatory operation -->
<wsdl:operation name="GetResourceProperty" parameterOrder="qname">
<wsdl:input message="uasp:getResourcePropertyRequest" name="getResourcePropertyRequest"/>
<wsdl:output message="uasp:getResourcePropertyResponse" name="getResourcePropertyResponse"/>
<wsdl:fault message="uasp:JavaMRException" name="JavaMRException"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
|
WS-RP(Web Services Resource Properties)
PMACでは、外部から参照可能な各管理対象リソースの状態は、Webサービスに対するWSDLの中でスキーマが定義された、WS-RP文書のインスタンスを通して表現されます。PMACの世界では、WSDL文書がセンサー・オペレーションとエフェクター・オペレーションを定義します。このWSDL文書は、WS-RP仕様で定義されるオペレーションで使われるリソース・プロパティーを規定した、Resource Properties文書を指定します。
WSDLファイルでは、事前定義のオペレーション(例えばGetやSet、Queryなど)も使用可能ですが、こうした標準リソース・プロパティー・オペレーションの対象外のオペレーションも、WSDLファイルに含めることができます。WSDL文書は、単独の文書としても、あるいは管理対象リソース対するWSDLの中に埋め込む形でも実装することができます。
リスト2のXML断片は、WS-RP 仕様の中で使用されるXMLタイプや要素を定義するXMLスキーマを示しています。
リスト2. WS-RPで使用されるXMLタイプや要素を定義するスキーマ
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsrp=
"http://www.ibm.com/xmlns/stdwip/web-services/ws-resourceProperties"
elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace=
"http://www.ibm.com/xmlns/stdwip/web-services/ws-resourceProperties" >
<!-- defines the Global Attribute Declaration to be included on the
WSDL 1.1 portType -->
<xs:attribute name="resourceProperties" type="xs:QName" />
<!-- this type should be used to contain any XPath 1.0 expression that conforms to the XPath 1.0 grammar -->
<xs:simpleType name="XPathExpression">
<xs:restriction base="xs:string" />
</xs:simpleType>
<!-- this type should be used to contain only node-set type XPath 1.0
expressions that conform to the locationPath production of the XPath 1.0 grammar -->
<xs:simpleType name="locationPath">
<xs:restriction base="xs:string" />
</xs:simpleType>
<!-- Defines the standard Notification Message related to ResourceProperties value change -->
<xs:complexType name="ResourceChangeNotificationType">
<xs:sequence>
<xs:element name="oldValue" minOccurs="1" maxOccurs="1" xsi:nillable="true">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="newValue" minOccurs="1" maxOccurs="1" xsi:nillable="true">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element> </xs:sequence>
<xs:attribute name="location" type="wsrp:locationPath" use="optional" />
</xs:complexType>
<xs:element name="ResourceChangeNotification" type="wsrp:ResourceChangeNotificationType" />
</xs:schema>
|
MRP(Managed Resource Prototype)
MRP文書は、適切なResource Properties文書とあわせて使用することができる、管理対象リソース・プロパティーに関しての追加情報を定義します。MRPに含まれる追加情報の例には次のようなものがあります。
- 管理対象リソースのプロパティーの値に対する制約
- リソース・プロパティーが修正可能かどうかの表示
- 実際の場面でこうしたプロパティーが取りうる値
MRPは管理対象リソースのプロパティーを、読み込み専用、あるいは読み書き可能として定義することができます。PMACでは、読み込み専用プロパティーは管理対象リソース・センサーと見なされ、読み書き可能プロパティーは、有効なセンサー、エフェクターと見なされます。
MRPは、MRPが記述する管理対象リソース・タイプの全インスタンスで共有されます。ただし、2つの異なるスコープを持つMRP文書は同じであってはならず、PMACには何ら強制機構が用意されていないことに注意してください。
基本的にMRPは、ある特定なタイプの管理対象リソースが作られた時に、それがどのように見えるか、どのように振る舞うかを記述します。MRPは特定なスコープに対して、一対一で結びつけられています。MRP仕様の詳細に関しては、参考文献にある、ACAB.BO0312文書を見てください。
リスト3は、MRP文書の構造の概要を示しています。MRP文書の内容は拡張可能であり、全ての場所で属性や内容の追加が可能であることに注意してください。
リスト3. MRP構造の概要
<managedResourcePrototype portType="QName" wsdlLocation="URL"?>
<property path="propertyPath"
mutability="constant|appendable|mutable" ?
modifiability="read-only|read-write" ?
usage="list of NCnames" ?
units="unit of measurement"
{anyAttribute} > <validValue extensible="true|false"?>
{any}*
</validValue>*
<initialValue>
{any}*
</initialValue>?
<defaultValue>
{any}*
</defaultValue>?
{any}*
</property>
<operation
operationName="NCName"
portType="QName"
{anyAttribute} *> *
{any} *
</operation>
<event ...> *
...
</event>
{any}*
</managedResourcePrototype>
|
PMACとの関係から見た、MRPの主な要素や属性としては、次のようなものがあります。
-
property: MRPのproperty要素を使うと、属性や値を、WS-RP文書内の要素(例えば仕様の詳細など)に関連付けられるだけではなく、PMACに特有な<callout>要素をさらに洗練するためにも使用することができます。下記は、この要素の各属性の説明です。
-
path: 対応するWS-RP文書内での、特定の管理対象リソース・プロパティーを意味します。MRP仕様では、これをXPathステートメントとして記述していますが、PMACでは、内部構成体を使ってWS-RP要素と関連付けています。
-
mutability: PMACでは現在使用していません。
-
modifiability: このプロパティーがポリシーの中で、センサーあるいはエフェクターとして、あるいはそのどちらでも使えるかどうかを示します。有効な値としては、read-only(デフォルト)とread-writeがあります。
-
units: PMACでは現在使用していません。
-
usage: PMACでは現在使用していません。
-
{anyAttribute}: PMACでは現在使用していません。
-
validValue: 管理対象リソース・プロパティーの有効値のリストとして使うことができます。
-
extensible: これが有効値の完全セットなのか、あるいはユーザーが有効値を追加できるのかを示します。デフォルトでは、追加を許すようになっています。
-
initialValue: PMACでは現在使用していません。
-
defaultValue: PMACでは現在使用していません。
-
{any}: この要素を使うと、PMACは(あるいは他のコンポーネントも)独自の、ポリシー特有の構造を自由に定義できるようになります。PMACでは、「決定」(decision)に特有のプロパティーをグループ分けしやすいように、この自由度を利用して<callout>要素(次のセクションで説明)を定義します。
-
operation: このスコープ内の管理対象リソースがサポートする、全てのオペレーションを指します。
-
operationName: 関連付けられたWSDLのportTypeで定義されたオペレーションの名前
-
portType: オペレーションが定義されている、WSDLでのportTypeの名前
-
{anyAttribute}: PMACでは現在使用していません。
-
{any}: PMACでは現在使用していません。

 |
管理対象リソース文書同士が相互動作するようにする
MRP文書は、管理対象リソースが呼び出すことのできるオペレーションに関して追加情報を提供する、子要素、calloutを含んでいます。calloutオペレーションを使うと、管理対象リソースは、他のサービス・インターフェース上で呼び出しが可能になります。PMACでは、calloutは、結果ベース、あるいはコンフィギュレーション・ベースのポリシーでの決定指針に対するcalloutを規定するために使われます。PMACでは、このcalloutにはRequestDecisionRequestという名前をつける必要があります。
calloutの下には、決定名を定義するために使われるcalloutDecision要素があり、またオプションとして、これに関連付けられた入力と出力があります。この要素のname属性は、この決定名の宣言です。
リスト4は、MRPにおけるcalloutDecisionとメッセージの間の関係を説明しています。
リスト4. MRPにおけるcalloutDecisionとメッセージの間の関係
<callout operationName=="RequestDecisionRequest" portType="AutonomicManagerRemote">
<!--This represents a property that is defined in the WS-RP-->
<message name="input1">
<part name="rpname1" />
<!--This represents a property variable not defined in the WS-RP-->
<part name="varname1" type="xsd:string"/>
</message>
<message name="input2">
<part name="rpname2" />
</message>
<message name="output1">
<part name="varname2" />
<part name="varname3" />
</message>
<message name="output2">
<part name="varname4" />
</message>
...
<calloutDecision name="decisionname1">
<!-- The "message" attributes in the following input and output elements work as references to the
"name" attributes in the like-named "message" child elements under the "callout" element above -->
<input message="input1" /> <output message="output1" />
</calloutDecision>
<calloutDecision name="decisionname2">
<input message="input2" />
<output message="output2" />
</calloutDecision>
</callout>
...
|
WSDLの中で定義されないリソース変数を参照するメッセージを参照するcallout決定は、結果ベースのポリシーにのみ適用することができます。WSDL/WS-RPのリソース・プロパティーのみを参照するメッセージを参照するcallout決定は、結果ベースのポリシーとコンフィギュレーション・ベースのポリシーの両方に適用することができます。
オペレーション
WSDLオペレーションは、入力要素と出力要素の組み合わせによって区別されます。こうした要素の順序によって、メッセージ交換パターン(message-exchange pattern)が定義されます。
MRP文書では、こうしたオペレーションを、ポリシーという文脈で定義しようとします。この情報は、MRPオペレーション要素属性、portTypeとoperationNameを使って収集されます。portType属性は、WSDLのportType子要素のname属性を参照します。この関係が決定されると、オペレーション情報は、portTypeのoperation子要素に対するname属性を使って決定されます。図2は、この関係を説明しています。
図2.メッセージ交換パターンの関係を発見する
入力と出力
オペレーションに対するメッセージ要素は、WSDL文書の中に含まれています。こうしたメッセージ要素は、オペレーションの入力あるいは出力として使われる抽象メッセージを定義します。前のセクションで説明したportType/operation要素内にある、入力要素のメッセージ属性は、このメッセージname属性と相互に関連しています。
各メッセージ要素には、nameとelement属性を持つpart子要素があります。name属性は、WS-RPにあるリソース・プロパティー文書要素を参照します。リソース・プロパティー文書は、portType要素のwsrp:resourceProperties属性が参照する文書と同じでなければなりません。part子要素に対して何もelement属性が無い場合には、認識可能なXMLスキーマ・タイプを参照するtype要素がなければなりません。
リスト5は、WSDL文書の中での関係を説明しています。
リスト5. WSDL文書の中での関係
<wsdl:types>
<xsd:schema targetNamespace=... >
<xsd:element name="ExampleRscProp" type="xsd:string" />
<xsd:element name="MyResourceProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ExampleRscProp" />
<xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- ========== Message Types for GetResourceProperty ============ -->
<xsd:element name="GetResourcePropertyRequest" type="xsd:QName" />
<xsd:element name="GetResourcePropertyResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:any maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</wsdl:types>
<portType name="portType1" wsrp:resourceProperties="MyResourceProperty">
<operation name="GetResourceProperty">
<!--The message attribute "GetResourcePropertyRequest"
is used as a reference to the message with the name attribute value "GetResourcePropertyRequest" below-->
<input name="GetResourcePropertyRequest"
message="impl:GetResourcePropertyRequest"/>
<output name="GetResourcePropertyResponse"
message="impl:GetResourcePropertyResponse" />
</operation>
</portType>
<wsdl:message name="GetResourcePropertyRequest">
<!--Referred to by the "GetResourcePropertyRequest" input above-->
<wsdl:part name="GetResourcePropertyRequest"
element="wsrp:GetResourcePropertyRequest" />
</wsdl:message>
<wsdl:message name="GetResourcePropertyResponse">
<wsdl:part name="GetResourcePropertyResponse"
element="wsrp:GetResourcePropertyResponse" />
</wsdl:message>
|
リスト5では、GetResourcePropertyRequestという特別なWS-RPオペレーションが参照されています。通常は、入力要素と出力要素はリクエストに対する明示的なパラメーターを指しますが、GetResourcePropertyRequestでは、入力要素が逆に汎用エントリーを指すのです。ここで微妙なのは、portType要素のwsrp:resourceProperties属性によって、プロパティー・リストが参照されている点です。こうしたプロパティーのみを取得できるのです。
同じルールが、SetResourcePropertiesRequestにも適用されます。こうした関係は、入力メッセージと出力メッセージの両方に適用されます。
タイプ
PMACでは、リソース・プロパティー・タイプはWS-RP文書の中で示されます。PMACでの具体的なWS-RPの使い方に入り込む前に、WS-RP文書の構造と意味体系について、もう少し説明しておきましょう。
WS-RP文書は、管理対象リソースのクラスに関連付けられ、外部から参照可能なリソース・プロパティーの宣言を提供します。WSDL文書は、グローバルXML要素宣言(Global XML Element Declaration)をportTypeインターフェースの属性として宣言することによって、関連付けられたリソース・プロパティー文書を定義します。例えば、次のようになります。
<wsdl:portType name="portType1" wsrp:resourceProperties="DB2" >
このグローバル要素宣言はサービスに対して、(portTypeと関連付けられたグローバル要素宣言がルート要素である文書を使って)、リソース・プロパティーへのインターフェースを提供するように要求します。
WS-RPについて、もう少し
WSDL文書との関係から言うと、WS-RP宣言は、内部の場合も外部の場合もあります。内部WS-RPは、WSDL文書内のtypes要素に含まれるXMLスキーマです。
先に説明した通り、portTypeは、WS-RPに記述されたリソース・プロパティーを意味するresourceProperties属性を含む必要があります。リスト6は、この関係の一例を示しています。
リスト6. WS-RP宣言とWSDLの間の関係
<wsdl:types>
<xsd:targetNamespace=... >
<!--These are examples of resource property declarations-->
<xsd:element name="propinttype" type="xsd:integer" />
<xsd:element name="propstringtype" type="xsd:string" />
<!--This element is the declaration of the resource properties
document that is referenced by the 'wsrp:resourceProperties'
attribute in the wsdl:portType element below (theInterfaceName)-->
<xsd:element name="sampleRscProps">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="propinttype" />
<xsd:element ref="propstringtype" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</wsdl:types>
<!-- The wsrp:resourceProperties attribute points to the GED above (sampleRscProps) -->
<wsdl:portType name="theInterfaceName" wsrp:resourceProperties="sampleRscProps">
</wsdl:portType>
|
全体を見る
図3は、WSDLとWS-RP、そしてMRP相互の関連を表しています。この図は基本的に、このセクションで説明したことを、詳細を省略して図式化したものです。
図3. WSDLとWS-FPそしてMRPがどのように相互動作するかの概要
まとめ
この記事では、PMACシステム(Policy Management for Autonomic Computing、オートノミック・コンピューティングのためのポリシー管理)がどのように動作するかを理解し、管理対象リソースの行動を指示するポリシーを作成、適用するために必要な、ポリシー言語と機構について学びました。また管理対象リソースの定義を行いました。そしてPMACを利用するために、どのようなデータについて、管理対象リソースからアクセスする必要があるかの概要も説明しました。こうしたデータには、ステートフル・プロパティー定義や、どのプロパティーが変更可能であるか、どのオペレーションが実行可能か、ポリシー指針に基づいて下される決定にはどんなものがあるか、などがあります。
さらに、そうしたデータを収集するために使用する3つのツール、WSDL(Web Services Description Language)とWS-RP(Web Services Resource Properties)、MRP文書(Managed Resource Prototype documents)についての詳細な定義も行い、この3つがどのように関連動作するかについても例示しました。
この記事の資料を利用することによって、より効率的なITリソース管理能力を持ったオートノミック・システムの構築が始められるはずです。
参考文献
著者について  | 
|  | Eric KirchsteinはIBMのソフトウェア技術者であり、XMLプログラミング技術と方法論を専門に、オートノミック・コンピューティング技術に従事しています。オートノミック・コンピューティング技術に関わる前には、Javaプログラマー、DB2フォーカル・ポイントとしてTivoli Service Level Advisorに携わっていました。ノースキャロライナ州立大学でコンピューター・サイエンスの学位を取得しており、IBM認定のDB2 UDB V6.1/V7.1スペシャリスト、またレベル1発明者でもあります。 |
記事の評価
|