ActiveBPEL流程的部署关键文件

部署就是把流程及其相关的文件发布到ActiveBPEL server中去。在部署时,ActiveBPEL将完成下面的事情:

1.        如果部署时没有指定流程在将来生效,那么流程将马上可以被执行;

2.        流程和部署的信息将被置入管理控制台,用户可以查看并管理;

3.        流程相关的信息将存入数据库中;

4.        如果部署出错,将给出错误信息。

ActiveBPEL引擎如果要执行一个流程,需要将BPEL文件和好几个辅助文件打包到一个BPR(Business Process aRchive)文件中。Bpr文件包括如下信息:

1.        BPEL文件(.bpel)

2.        BPEL流程中使用的wsdl文件(.wsdl)

3.        资源目录文件(包括wsdl中使用的本地XSD文件和XSL文件)

4.        流程部署描述符(.pdd文件)

5.        伙伴定义文件(可选,.pdef文件)

BPEL文件请参考BPEL标准,流程部署描述符文件将另外单独说明,下面讨论资源目录文件和伙伴定义文件。

资源目录文件

ActiveBPEL通过资源目录文件来查找流程需要的WSDLXSD等资源文件。下面的例子显示了catalog.xml的一个entry的语法:

<catalog>

<resourceEntry location="string" classpath="slash/separated/classpath/filename.wsdl"/>

</catalog>

 

 

 

 

 


Location属性映射到资源文件的位置。它可以是pdd文件中resourceReferences块中的<resource>元素的location属性值;也可以是wsdl文件中<import>元素的location属性值。

在部署时加载资源文件的时候,ActiveBPEL引擎从pdd文件中读取resourceReferences,然后用<resource>元素的location属性作为Key,到catalog.xml中来查找有无对应的值。如果找到,引擎就会从对应的classpath加载相应的资源;如果没有找到,那么就认为location是一个绝对URL,并从这个位置来加载资源。

Classpath属性指定了资源文件在bpr文件中的位置,它是相对于bpr根目录的一个位置。

伙伴定义文件

伙伴定义文件对每个服务伙伴定义了端点信息。对于伙伴实现的每个伙伴链接类型,该文件定义了一个端点引用。

比如有个叫“国家银行”的服务伙伴,它向BPEL流程发送一个请求,想评估向某个客户发放贷款的风险。BPEL流程在评估风险后,将查找正确的服务端点,以回调“国家银行”。这是非常有用的,因为“国家银行”可能还有其他的服务链接类型,比如汇率调整或者保险请求等。伙伴定义文件可以为每个伙伴链接类型定义一个端点引用。

用户可以直接在bpr文件中加入.pdef文件作为伙伴定义文件;如果伙伴定义文件修改了,并不需要重新部署BPEL流程,只需要部署伙伴定义文件就可以。样例文件如下:

<?xml version='1.0' encoding="UTF-8"?>

<partnerDefinition    principal="Acme" xmlns="http://schemas.active-endpoints.com/pdef/2004/10/pdef.xsd"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"

xmlns:s="http://www.active-endpoints.com/wsdl/store">

<partnerLinkType name="s:storeLT">

<role name="customer">

<wsa:EndpointReference xmlns:store="http://www.activeendpoints.com/wsdl/store">

<wsa:Address>store:anyURI</wsa:Address>

<wsa:ReferenceProperties xmlns:Credentials="http://active-endpoints/endpoint-credentials">

<Credentials:username>MyUser</Credentials:username>

<Credentials:password>MyPassword</Credentials:password>

</wsa:ReferenceProperties>

<wsa:ServiceName PortName="StorePort">store:StoreService</wsa:ServiceName>

</wsa:EndpointReference>

</role>

</partnerLinkType>

</partnerDefinition>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(xml,XSL)