| ||||||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||||||
| 外部との関係 | ||||||||||||||
BPELは外部から呼び出される、あるいは外部を呼び出すことによってプロセスを実行させる。そのため外部との関係をあらわすことが重要となる。また、外部との関係はインターフェースによって定義されるためWSDL(注1)と密接な関係がある。 ※注1:WSDL(Wen Service Description Language) XMLをベースとしたWebサービスを記述するための言語 BPELとWSDLの関係は表3の手順で定義する。
表3:WSDLとBPELの関係 通常、WSDLはサービスの記述をおこなったもので、外部との関係をあらわすものではない。そのため、WSDLにBPEL拡張要素(partnerLinkType)を追加して外部関係をあらわす。 もっと具体的に説明するため、次のWSDLを元に説明する。 WSDLのpartnerLinkType要素(WSDL)
ここでは、元のWSDLにplinkで修飾された名前空間が追加され(1)、この名前空間で定義されたpartnerLinkType要素(2)で外部関係をあらわしている。 どのPortTypeが外部と関係を持つのかを名前をつけて定義付け(3)をおこなう。この名前がBPELから参照されることとなる。 BPELでは、このWSDLで定義されたpartnerLinkTypeを型として、partnerLink要素を定義する。例えば、BPELファイルからpartnerLink要素に関係する箇所だけを抜粋すると次のようになる。 BPELでのWSDLとの関連付け(BPEL)
wsdl1で修飾された名前空間はWSDLで定義された名前空間と同じ(5)であり、このWSDLで定義されたplink要素の名前Service1と関連をつけている(2、6)。3番目の属性であるpartnerRoleは「WSDLを呼び出す」関係にあることを意味している。「BPELが呼び出される」関係にあるWSDLと関係付けする場合はpartnerRole属性ではなく、myRole属性を用いて定義する。このpartnerRole、myRole属性にはWSDLのrole要素のname属性の値を設定する(6)。 この2つの定義によって、BPELとWSDLの関係付けがおこなわれBPELのアクティビティとWSDLのオペレーションを結びつけることができるようになる。上の2つの例では、BPELからWSDLのオペレーションを呼び出すことを意図した定義であり、外部呼出しのアクティビティであるinvokeを用いると次のように記述される。 invokeする場合(BPEL)
この要素のpartnerLink属性がBPELのpartnerLinkの名前(6)をあらわしており、間接的にWSDLのpartnerLinkTypeをあらわし、どのサービスが呼び出されるのかが明確となる。 ![]() 図2:WSDLとBPELの関係 図2上は上記で説明したWSDLとBPELの関係をあらわしており、図2下は例示したコードを図示したものだ。 これで、WSDLのpartnerLinkType要素とBPELのpartnerLink要素の関係が明確になったと思う。この関係は名前空間で修飾された名前によって関係付けられ、物理的なWSDLファイルとは結び付けられていない。この物理的なWSDLとの結びつきは他の個所で行われており、システムの構成を柔軟なものとしている。 | ||||||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||||||
| ||||||||||||||
| ||||||||||||||
| ||||||||||||||


