`
soboer
  • 浏览: 1307608 次
文章分类
社区版块
存档分类
最新评论

在UDDI注册中心使用BPEL4WS

 
阅读更多
UDDI用来发布和发现一个Web服务。关于如何发布和发现Web服务,尤其是使用WSDL[WSDL1.1],已经应用于很多最佳实践(Best Practice)中了。
WSDL描述了Web服务的静态接口,包括定义每个接口中的操作。这对参与无状态消息交换的Web服务来说已经足够了。但是,对参与较长会话的Web服务,需要使用消息交换间的逻辑上或时间上的依赖关系(dependency)对服务的行为进行描述。
BPEL4WS抽象流程对抽象的WSDL接口作了补充,它描述Web服务的行为并为业务伙伴(business partners)的集成提供必要的数据。抽象流程定义了业务伙伴调用Web服务操作的顺序。因此,它对业务伙伴间的抽象流程交换也有一定的作用。软件公司和标准团体使用UDDI注册中心发布不同类型的服务,商业用户使用其支持的服务描述完成注册。BPEL4WSWSDL用来描述服务类型、所支持的协议类型以及其他部署细节等。
尽管可以在一个UDDI注册中心发布BPEL4WS流程定义,但是至今为止还没有一个指导方案来说明具体应该如何做。由于缺少一个通用方法,用户在寻找BPEL4WS流程定义(或实现了该流程定义一部分的Web服务)时将受到一定的限制。
本文为在UDDI注册中心发布BPEL4WS抽象流程提供指导方案。把BPEL4WS描述信息映射到UDDI模型的目的是:
1. 实现BPEL4WS流程定义在UDDI的自动注册
2. 实现基于特定BPEL4WS描述信息和原数据的优化、灵活的UDDI查询
3. UDDI注册中心使用WSDL(第二版)”中定义的映射进行整合。
本文提供了以下几种类型的查询:
ž 给定一个BPEL流程(bpws:process)的命名空间(namespace)或本地名(local name),查找表示该流程的tModel
ž 给定一个表示WSDL端口类型(wsdl:portType)tModel,查找所有表示基于该WSDL端口类型的BPEL流程的tModel
ž 给定一个表示BPEL流程的tModel,查找所有表示该BPEL流程使用的WSDL端口类型的tModel
ž 给定一个表示WSDL端口类型(wsdl:portType)tModel,查找所有实现了BPEL流程的WSDL端口类型的绑定模板(binding Templates)
本文不涉及在UDDI注册中心发布和发现多方流程(multi-party processes)(包括仅有两个参与者的流程)。BPEL4WS抽象流程可用来描述多方流程中的一个参与者的行为。描述多个Web服务在某个场景交互的方法需要引入一个基于BPEL4WS抽象流程的独立的模型。我们假设本文给出的方法可通过扩展从而实现在UDDI注册中心对多方流程进行存储和检索。
1.2 WSDL技术文档的依赖关系
由于BPEL4WS抽象流程使用WSDL文档实现,首先需要一个通用方法把WSDL描述信息映射到UDDI模型。特别地,WSDL端口类型需要在UDDI中逐一注册和标识。因此,本文建立在文档UDDI注册中心使用WSDL(第二版)”的基础上。
文档中关键字must, must not, required, shall,s hall not, should, should not, recommended, may, optional按照[RFC2119]中定义的方式进行翻译。
本节简要描述了BPEL4WS和本文档相关的一些特性以及BPEL4WSUDDI映射的一些概念。
2.1.1 BPEL4WS数据模型
BPEL4WS模型支持参与较长会话的Web服务可见行为(observable behavior)的定义。具体来说,该模型定义了抽象流程,用于描述Web服务的可见行为。本文讨论的就是这种抽象流程。BPEL4WS在描述Web服务的行为时引入了一些新特点,如流程(process),动作(action),关联(correlation),角色(role),伙伴地址(partner link)等等。图1展示了这些特点及其之间的相互关系。一个动作(action)就是处理Web服务之间交互的一个BPEL4WS活动(activity),交互可以是调用一个Web服务的操作(operation)或等待接收一个消息。流程定义了Web服务交互以及其他BPEL4WS基本活动(primitive activities)的顺序。
一个Web服务在某个会话中可能扮演多重角色。通常Web服务对不同的伙伴扮演不同的角色。抽象流程定义Web服务提供者实现的角色及它的伙伴所要实现的角色,完成一个与抽象流程中的描述相一致的会话。
BPEL4WS伙伴连接类型定义了各个角色之间的关系。它至多定义两个可能通信的角色。
BPEL4WS模型建立在WSDL的抽象部分上,包括端口类型、消息类型和数据类型的定义。因此,一个BPEL4WS抽象流程定义是可重用的,也就是说,不同的服务可以实现同一个BPEL4WS抽象流程。BPEL4WS定义依赖于WSDL操作。伙伴连接类型中定义的每个角色指定其实现的那个WSDL端口类型。
一个BPEL4WS文档可包含多个抽象流程定义,每个抽象流程定义使用目标命名空间(target namespace)与其本地名(local name)来进行唯一标识。
1 BPEL模型及与WSDL的关系
2.1.2 BPEL4WS到UDDI的映射
BPEL4WS抽象流程作为独立的UDDI tModel而发布,以BPEL4WS流程名来命名。使用一个分类系统(category system)按照BPEL4WS流程定义对它们进行分类。overviewDoc引用一个包含流程定义的外部BPEL4WS文档。
BPEL4WS流程定义中使用的所有WSDL端口类型都作为portType tModel而发布。
process tModel使用WSDL portType Reference tModel引用所有的WSDL portType tModel。注意,BPEL4WS流程在WSDL portType的基础上定义一个会话。因此,process tModelportType tModel之间的关系由process tModel发布者而不是portType tModel发布者来发布,两者可能不是同一个人。
BPEL4WS流程中使用的那些WSDL portType的实现作为一个UDDI绑定模板(UDDI binding Template)和对相应的WSDL portType tModel(表示BPEL4WS流程的process tModel)的引用而发布。注意,一个部署好的Web服务的行为符合其对应的BPEL4WS流程描述。因此,绑定模板和process tModel之间的关系由绑定模板发布者而不是process tModel发布者来发布,两者可能不是同一个人。
2展示了这种映射方法。
2 BPELUDDI的映射
3 tModel定义
3.1 BPEL实体类型tModel
该映射使用多个UDDI实体表示一个BPEL4WS文档中的各种实体。需要一种机制指出每个UDDI实体描述的是哪一种BPEL4WS实体。BPEL实体类型tModel(BPEL Entity Type tModel)提供了一个分类系统(typing system),指明一个UDDI实体代表某种特定的BPEL4WS实体类型。
Name:   uddi.org:bpel:types
Description: BPEL Type Category System
V3 format key: uddi:uddi.org:bpel:types
V1,V2 format key: uuid:e8d75f6c-3f24-3b8d-97fd-f168e424056f
Categorization: categorization
Checked: yes
3.1.2.1 V2 tModel结构
<tModel tModelKey="uuid:e8d75f6c-3f24-3b8d-97fd-f168e424056f">
<name>uddi.org:bpel:types</name>
<overviewDoc>
<overviewURL>
TBD, should point to this section when the document is published as a Technical Note by the UDDI TC
</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference
keyName="uddi-org:categorization:types"
keyValue="categorization"
tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"/>
<keyedReference
keyName="uddi-org:categorization:types"
keyValue="unchecked"
tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"/>
</categoryBag>
</tModel>
3.1.2.2 有效值
分类系统仅可以使用一个有效值。
有效值
描述
UDDI实体
流程
一个UDDI实体表示的bpel:process
tModel
3.1.2.3 例子
表示一个流程的V2 tModel使用一个categoryBag表示其类型:
<categoryBag>
<keyedReference
tModelKey="uuid:e8d75f6c-3f24-3b8d-97fd-f168e424056f"
keyName="BPEL Entity type"
keyValue="process"/>
¼
</categoryBag>
本节包含表示一个BPEL4WS抽象流程的tModel。此处我们使用一个旅行社(Travel Agent)的例子。本例给出一个订票系统(Ticket Reservation System)中的一个旅行社服务(Travel Agent service)发布的几个基本行为。图3展示了整体流程:旅行社按照一种非常简单的编排方式同一个客户(旅行者)进行交互:一个客户在旅行社订票,并在之后可以选择取消订票或者确认订票。
3 订票场景
4.1 BPEL4WS流程和WSDL端口类型
下面的代码示例展示了旅行社服务(Travel Agent service)的抽象WSDL接口,客户服务(Customer service)的抽象WSDL接口,以及两个服务(或对应角色)之间的关系。
<?xml version="1.0" ?>
<definitions name="TravelAgent"
targetNamespace="http://example.com/travelagent/wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
<!- data type definitions and message definitions are omitted-->
<!-- port type definitions -->
<portType name="InterfaceOfTravelAgent">
<operation name="OrderTrip">
<input message="orderRequest"/>
<output message="orderAcknowledgement"/>
</operation>
<operation name="CancelReservation">
<input message="cancellationRequest"/>
</operation>
<operation name="PerformBooking">
<input message="bookingRequest"/>
<output message="bookingConfirmation"/>
</operation>
</portType>
<portType name="InterfaceOfCustomer">
<operation name="NotificationOfCancellation">
<input message="cancellationResponse"/>
</operation>
<operation name="NotificationOfTimeout">
<input message="timeoutMsg"/>
</operation>
<operation name="ReceiveStatement">
<input message="statement"/>
</operation>
</portType>
<!partner link type definitions -->
<plnk:partnerLinkType name="TravelAgentService">
<plnk:role name="TravelAgent">
<plnk:portType name="InterfaceOfTravelAgent"/>
</plnk:role>
<plnk:role name="Customer">
<plnk:portTYpe name="InterfaceOfCustomer"/>
</plnk:role>
</plnk:partnerLinkType>
<!definition of properties -->
<bpws:property name="reservationID" type="xsd:string"/>
<!- property aliases are omitted-->
</definitions>
下面的代码示例展示了旅行社服务的BPEL4WS抽象流程。
<process name="ReservationAndBookingTickets"
targetNamespace="http://example.com/travelagent"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:taw="http://example.com/travelagent/wsdl"
abstractProcess="yes">
<partnerLinks>
<partnerLink name="TravelAgency"
partnerLinkType="taw:TravelAgencyService"
partnerRole="Customer"
myRole="TravelAgent"/>
</partnerLinks>
<correlationSets>
<correlationSet name="reservationCorrelation"
properties="taw:reservationID"/>
</correlationSets>
<sequence>
<receive partnerLink="TravelAgency"
portType="taw:InterfaceOfTravelAgent"
operation="OrderTrip"
createInstance="yes">
<correlations>
<correlation set="reservationCorrelation"
initiate="yes"/>
</correlations>
</receive>
<pick>
<onAlarm duration="P0Y0M1D">
<invoke partnerLink="TravelAgency"
portType="taw:InterfaceOfCustomer"
operation="NotificationOfTimeout">
<correlations>
<correlation set="reservationCorrelation"
pattern="out"/>
</correlations>
</invoke>
</onAlarm>
<onMessage partnerLink="TravelAgency"
portType="taw:InterfaceOfTravelAgent"
operation="CancelReservation">
<correlations>
<correlation set="reservationCorrelation"/>
</correlations>
<invoke partnerLink="TravelAgency"
portType="taw:InterfaceOfCustomer"
operation="NotificationOfCancellation">
<correlations>
<correlation set="reservationCorrelation"
pattern="out"/>
</correlations>
</invoke>
</onMessage>
<onMessage partnerLink="TravelAgency"
portType="taw:InterfaceOfTravelAgent"
operation="PerformBooking">
<correlations>
<correlation set="reservationCorrelation"/>
</correlations>
<invoke partnerLink="TravelAgency"
portType="taw:InterfaceOfCustomer"
operation="ReceiveStatement">
<correlations>
<correlation set="reservationCorrelation"
pattern="out"/>
</correlations>
</invoke>
</onMessage>
</pick>
</sequence>
</process>
旅行社服务提供者在一个UDDI注册中心发布此BPEL4WS抽象流程及抽象WSDL接口。通过这种方式,任何客户都可通过该服务描述了解旅行社发布的服务。
下面的代码示例展示了抽象WSDL接口和BPEL4WS抽象流程在UDDI的注册。
4.2.1 WSDL端口类型
根据UDDI注册中心中使用WSDL”文档,BPEL4WS流程定义中使用的WSDL portType作为独立的tModel发布,如下所示:
<tModel tModelKey="uuid:a1..." >
<name>InterfaceOfTravelAgent</name>
<overviewDoc>
<overviewURL>http://location/travelagent.wsdl<overviewURL>
<overviewDoc>
<categoryBag>
<keyedReference
tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824"
keyName="uddi-org:xml:namespace"
keyValue="http://example.com/travelagent/wsdl" />
<keyedReference
tModelKey="uuid:6e090afa-33e5-36eb-81b7-1ca18373f457"
keyName="uddi-org:wsdl:types"
keyValue="portType" />
</categoryBag>
</tModel>
<tModel tModelKey="uuid:a2..." >
<name>InterfaceOfCustomer</name>
<overviewDoc>
<overviewURL>http://location/customer.wsdl<overviewURL>
<overviewDoc>
<categoryBag>
<keyedReference
tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824"
keyName="uddi-org:xml:namespace"
keyValue="http://example.com/travelagent/wsdl" />
<keyedReference
tModelKey="uuid:6e090afa-33e5-36eb-81b7-1ca18373f457"
keyName="uddi-org:wsdl:types"
keyValue="portType" />
</categoryBag>
</tModel>
<tModel tModelKey="uuid:b1..." >
<name>ReservationAndBookingTickets</name>
<overviewDoc>
<overviewURL>http://location/reservation.bpel<overviewURL>
<overviewDoc>
<categoryBag>
<keyedReference
tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824"
keyName="uddi-org:xml:namespace"
keyValue="http://example.com/travelagent" />
<keyedReference
tModelKey="uuid:e8d75f6c-3f24-3b8d-97fd-f168e424056f"
keyName="uddi-org:bpel:types"
keyValue="process" />
<keyedReference
tModelKey="uuid:082b0851-25d8-303c-b332-f24a6d53e38e"
keyName="uddi-org:wsdl:portTypeReference"
keyValue="uuid:a1..." />
<keyedReference
tModelKey="uuid:082b0851-25d8-303c-b332-f24a6d53e38e"
keyName="uddi-org:wsdl:portTypeReference"
keyValue="uuid:a2..." />
</categoryBag>
</tModel>
<businessService
serviceKey="d1..."
businessKey="e1...">
¼
<bindingTemplates>
<bindingTemplate
bindingKey="c1..."
serviceKey="d1...">
<accessPoint URLType="http">
http://location/sample
</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo
tModelKey="...">
<description xml:lang="en">
The wsdl:binding that this wsdl:port implements.
The instanceParms specifies the port local name.
</description>
<instanceDetails>
<instanceParms>TravelAgentPort</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
<tModelInstanceInfo
tModelKey="uuid:a1...">
<description xml:lang="en">
The wsdl:portType that this wsdl:port implements.
</description>
</tModelInstanceInfo>
<tModelInstanceInfo
tModelKey="uuid:b1...">
<description xml:lang="en">
The bpel:process this wsdl:port supports.
</description>
</tModelInstanceInfo>
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
</businessService>
4.3 V2查询示例
查找命名空间
http://example.com/travelagent中的ReservationAndBookingTicketsprocess tModel
<find_tModel generic="2.0" xmlns="urn:uddi-org:api_v2">
<name>ReservationAndBookingTickets</name>
<categoryBag>
<keyedReference
tModelKey="uuid:e8d75f6c-3f24-3b8d-97fd-f168e424056f"
keyValue="process"/>
<keyedReference
tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824"
keyValue="http://example.com/travelagent"/>
</categoryBag>
</find_tModel>
返回tModelKey”uuid:b1…”
查找使用InterfaceOfTravelAgent portType的所有流程。
<find_tModel generic="2.0" xmlns="urn:uddi-org:api_v2">
<categoryBag>
<keyedReference
tModelKey="uuid:e8d75f6c-3f24-3b8d-97fd-f168e424056f"
keyValue="process"/>
<keyedReference
tModelKey="uuid:082b0851-25d8-303c-b332-f24a6d53e38e"
keyValue="a1..."/>
</categoryBag>
</find_tModel>
返回tModelKey”uuid:b1…”
查找ReservationAndBookingTickets流程中使用的所有portType
<get_tModelDetail generic="2.0" xmlns="urn:uddi-org:api_v2">
<tModelKey>uuid:b1...</tModelKey>
</get_tModelDetail>
返回key”uuid:b1…”process tModeltModel注册信息。流程中使用的portTypetModelKey可通过process tModelcategoryBag获得。一旦检索到该tModelKey,再次调用categoryBag获取key”uuid:a1…”(InterfaceOfTravelAgent)key”uuid:a2…”(InterfaceOfCustomer)portTypetModel注册信息。
<get_tModelDetail generic="2.0" xmlns="urn:uddi-org:api_v2">
<tModelKey>uuid:a1...</tModelKey>
<tModelKey>uuid:a2...</tModelKey>
</get_tModelDetail>
查找ReservationAndBookingTickets流程的所有实现。
由于在UDDI V2 API中,调用find_binding要求serviceKey属性,故无法通过一个单独的调用来查找一个流程的所有实现。首先必须调用find_service以获取包含了指定流程bindingTemplate的所有服务的key,然后或者通过调用一个get_serviceDetail检索该服务的详细信息并在多个bindingTemplate中寻找合适的那个bindingTemplate,或者通过设置serviceKey属性对每个服务调用find_binding。下面的例子展示了find_binding的用法。
调用find_service获得拥有bindingTemplate的所有流程列表。
<find_service generic="2.0" xmlns="urn:uddi-org:api_v2">
<tModelBag>
<tModelKey>uuid:b1...</tModelKey>
</tModelBag>
</find_service>
返回serviceKey”d1…”
调用find_binding查找某个特定服务的绑定。
<find_binding serviceKey="d1..." generic="2.0" xmlns="urn:uddi-org:api_v2">
<tModelBag>
<tModelKey>uuid:b1...</tModelKey>
</tModelBag>
</find_binding>
返回bindingKey”c1…”
以下例子展示了UDDI V3注册过程,其中key使用uri。下面几小节展示了注册示例以及使用UDDI V3进行查询。
4.4.1 WSDL端口类型
UDDI V3中,WSDL portType tModel使用TravelAgent.com domain keyGenerator生成的domain key发布,TravelAgent已在UDDI中注册。keyGenerator作为发布UDDI中某个服务的许可,该服务的key从相应的domain key处获得:
<tModel tModelKey="uddi:TravelAgent.com:TravelAgentInterface_portType">
<name>InterfaceOfTravelAgent</name>
<overviewDoc>
<overviewURL>http://location/travelagent.wsdl<overviewURL>
<overviewDoc>
<categoryBag>
<keyedReference
tModelKey="uddi:uddi.org:xml:namespace"
keyName="uddi-org:xml:namespace"
keyValue="http://example.com/travelagent/wsdl" />
<keyedReference
tModelKey="uddi:uddi.org:wsdl:types"
keyName="uddi-org:wsdl:types"
keyValue="portType" />
</categoryBag>
</tModel>
<tModel tModelKey="uddi:TravelAgent.com:CustomerInterface_portType">
<name>InterfaceOfCustomer</name>
<overviewDoc>
<overviewURL>http://location/customer.wsdl<overviewURL>
<overviewDoc>
<categoryBag>
<keyedReference
tModelKey="uddi:uddi.org:xml:namespace"
keyName="uddi-org:xml:namespace"
keyValue="http://example.com/travelagent/wsdl" />
<keyedReference
tModelKey="uddi:uddi.org:wsdl:types"
keyName="uddi-org:wsdl:types"
keyValue="portType" />
</categoryBag>
</tModel>
<tModel tModelKey="uddi:TravelAgent.com:ReservationAndBookingTicketsProcess">
<name>ReservationAndBookingTickets</name>
<overviewDoc>
<overviewURL>http://location/reservation.bpel<overviewURL>
<overviewDoc>
<categoryBag>
<keyedReference
tModelKey="uddi:uddi.org:xml:namespace"
keyName="uddi-org:xml:namespace"
keyValue="http://example.com/travelagent" />
<keyedReference
tModelKey="uddi:uddi.org:bpel:types"
keyName="uddi-org:bpel:types"
keyValue="process" />
<keyedReference
tModelKey="uddi:uddi.org:wsdl:porttypereference"
keyName="uddi-org:wsdl:portTypeReference"
keyValue="uddi:TravelAgent.com:TravelAgentInterface_portType" />
<keyedReference
tModelKey="uddi:uddi.org:wsdl:porttypereference"
keyName="uddi-org:wsdl:portTypeReference"
keyValue="UDDI:TravelAgent.com:CustomerInterface" />
</categoryBag>
</tModel>
<businessService
serviceKey="uddi:TravelAgent.com:service1"
businessKey="uddi:TravelAgent.com:StoreFront">
¼
<bindingTemplates>
<bindingTemplate
bindingKey="uddi:TravelAgent.com:TravelAgentPort"
serviceKey="uddi:TravelAgent.com:service1">
<accessPoint useType="endPoint">
http://location/sample
</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo
tModelKey="uddi:...">
<description xml:lang="en">
The wsdl:binding that this wsdl:port implements.
The instanceParms specifies the port local name.
</description>
<instanceDetails>
<instanceParms>TravelAgentPort</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
<tModelInstanceInfo
tModelKey="uddi:TravelAgent.com:TravelAgentInterface_portType">
<description xml:lang="en">
The wsdl:portType that this wsdl:port implements.
</description>
</tModelInstanceInfo>
<tModelInstanceInfo
tModelKey=
"uddi:TravelAgent.com:ReservationAndBookingTicket
sProcess">
<description xml:lang="en">
The bpel:process this wsdl:port supports.
</description>
</tModelInstanceInfo>
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
</businessService>
4.5 V3查询示例
查找ReservationAndBookingTickets业务流程的process tModel,其命名空间为http://example.com/travelagent
<find_tModel xmlns="urn:uddi-org:api_v3">
<name>ReservationAndBookingTickets</name>
<categoryBag>
<keyedReference
tModelKey="uddi:uddi.org:bpel:types"
keyValue="process"/>
<keyedReference
tModelKey="uddi:uddi.org:xml:namespace"
keyValue="http://example.com/travelagent"/>
</categoryBag>
</find_tModel>
返回tModelKey
“uddi:TravelAgent.com:ReservationAndBookingTicketsProcess”
查找使用InterfaceOfTravelAgent portType的所有流程。
<find_tModel xmlns="urn:uddi-org:api_v3">
<categoryBag>
<keyedReference
tModelKey="uddi:uddi.org:bpel:types"
keyValue="process"/>
<keyedReference
tModelKey="uddi:uddi.org:wsdl:porttypereference"
keyValue="uddi:TravelAgent.com:TravelAgentInterface_portType"/>
</categoryBag>
</find_tModel>
返回tModelKey
“uddi:TravelAgent.com:ReservationAndBookingTicketsProcess”
查找在ReservationAndBookingTickets流程中使用的所有portType
<get_tModelDetail xmlns="urn:uddi-org:api_v3">
<tModelKey>uddi:TravelAgent.com:ReservationAndBookingTicketsProcess
</tModelKey>
</get_tModelDetail>
返回process tModeltModel注册,其key
”uddi:TravelAgent.com:ReservationAndBookingTicketsProcess”。流程中使用的portTypetModelkey可以从process tModelcategoryBag处获得。一旦检索到该tModelKey,再次调用categoryBag获取key
”uddi:TravelAgent.com:TravelAgentInterface_portType”(InterfaceOfTravelAgent)key
”uddi:TravelAgent.com:CustomerInterface_portType”(InterfaceOfCustomer)portTypetModel注册信息。
<get_tModelDetail xmlns="urn:uddi-org:api_v3">
<tModelKey>uddi:TravelAgent.com:TravelAgentInterface_portType</tModelKey>
<tModelKey>uddi:TravelAgent.com:CustomerInterface_portType</tModelKey>
</get_tModelDetail>
查找ReservationAndBookingTickets流程的所有实现。
<find_binding xmlns="urn:uddi-org:api_v3">
<tModelBag>
<tModelKey>uddi:TravelAgent.com:ReservationAndBookingTicketsProcess
</tModelKey>
</tModelBag>
</find_binding>
返回bindingKey”uddi:TravleAgent.com:TravleAgentPort”
[BPEL4WS] T. Andrews, F. Curbera, H. Dholakia, Y. Goland, J. Klein, F. Leymann, K.
Liu, D. Roller, D. Smith, S. Thatte, I. Trickovic, S. Weerawarana,
Business Process Execution Language for Web Services Version 1.1,
http://ifr.sap.com/bpel4ws, May 2003.
[RFC2119] S. Bradner, Key words for use in RFCs to Indicate Requirement Levels,
http://www.ietf.org/rfc/rfc2119.txt, IETF RFC 2119, March 1997.
[WSDL11] E. Christensen, F. Curbera, G. Meredith, S. Weerawarana, Web
Services Description Language (WSDL) 1.1,
http://www.w3.org/TR/2001/NOTE-wsdl-20010315, W3C Note, March
2001.
[WSDLBP] J. Colgrave, K. Januszewski, Using WSDL in a UDDI Registry, Version
1.08, http://www.oasis-open.org/committees/uddi-spec/doc/bp/uddi-spectc-
bp-using-wsdl-v108-20021110.htm, OASIS UDDI TC Best Practice,
November 2002.
[WSDLTN] J. Colgrave, K. Januszewski, Using WSDL in a UDDI Registry, Version
2.0, http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spectc-
tn-wsdl-v2.htm, OASIS UDDI TC Technical Note, June 2003.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics