- 浏览: 1307608 次
文章分类
最新评论
-
yzj578492228:
578492228@qq.com
仿qq聊天程序设计 -
charles_gz:
感谢共享,不过采用第一种方法后当应用程序运行起来我这会提示:
...
ARM-Linux移植攻略--yaffs2 Partially written block xxx detected 问题解决 -
wenwushuangquandexia:
我现在也在做模仿QQ的Web即时通讯,一点思路都没有,也求源 ...
仿qq聊天程序设计 -
jyjava:
呵呵,这样的领导的确少见了,领导更多的是关心自己的股票,关心怎 ...
变化中成长 -
huqing2010:
jinnianshilongnian 写道jinpengaig ...
变化中成长
在UDDI注册中心使用BPEL4WS
UDDI用来发布和发现一个Web服务。关于如何发布和发现Web服务,尤其是使用WSDL[WSDL1.1],已经应用于很多最佳实践(Best Practice)中了。
WSDL描述了Web服务的静态接口,包括定义每个接口中的操作。这对参与无状态消息交换的Web服务来说已经足够了。但是,对参与较长会话的Web服务,需要使用消息交换间的逻辑上或时间上的依赖关系(dependency)对服务的行为进行描述。
BPEL4WS抽象流程对抽象的WSDL接口作了补充,它描述Web服务的行为并为业务伙伴(business partners)的集成提供必要的数据。抽象流程定义了业务伙伴调用Web服务操作的顺序。因此,它对业务伙伴间的抽象流程交换也有一定的作用。软件公司和标准团体使用UDDI注册中心发布不同类型的服务,商业用户使用其支持的服务描述完成注册。BPEL4WS和WSDL用来描述服务类型、所支持的协议类型以及其他部署细节等。
尽管可以在一个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和本文档相关的一些特性以及BPEL4WS到UDDI映射的一些概念。
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的关系
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 tModel和portType 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 BPEL到UDDI的映射
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 订票场景
下面的代码示例展示了旅行社服务(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中的ReservationAndBookingTickets的process 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…”
4.3.2 根据portType查找流程
查找使用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 tModel的tModel注册信息。流程中使用的portType的tModelKey可通过process tModel的categoryBag获得。一旦检索到该tModelKey,再次调用categoryBag获取key为”uuid:a1…”(InterfaceOfTravelAgent)和key为”uuid:a2…”(InterfaceOfCustomer)的portType的tModel注册信息。
<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”。
4.5.2 根据portType查找流程
查找使用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 tModel的tModel注册,其key为
”uddi:TravelAgent.com:ReservationAndBookingTicketsProcess”。流程中使用的portType的tModelkey可以从process tModel的categoryBag处获得。一旦检索到该tModelKey,再次调用categoryBag获取key为
”uddi:TravelAgent.com:TravelAgentInterface_portType”(InterfaceOfTravelAgent)和key为
”uddi:TravelAgent.com:CustomerInterface_portType”(InterfaceOfCustomer)的portType的tModel注册信息。
<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.
相关推荐
本人翻译 在blog http://blog.csdn.net/juset上有
uddi注册中心 uddi注册中心资料 uddi注册中心
Web 服务描述语言(WSDL)有多种用法。特别是,根据应用程序的需要,WSDL 在 UDDI 注册中心有好几种使用方法
另外,贴出自己写的解析wsdl文件 注册到uddi 中心 以及查找 源代码。生成数据库的脚本放在文件目录下,这里的数据库测试环境为sqlserver2005,由于数据库中,原来的描述字段为255varchar型,由于实际的wsdl文件的描述...
通过UDDI4J连接JUDDI,搭建自己的服务注册中心
UDDI 注册中心是Web Service 技术体系中的重要组成部分, UDDI 的数据特征和操作...详细分析了UDDI 的信息模型, 结合目录服务技术提出基于LDAP 的UDDI 系统架构, 在此基础上实现了灵活、高效、低成本的UDDI 注册中心。
UDDI 是一套基于Web 的、分布式的、为Web 服务提供的信息注册中心的实现标准规 范,同时也包含一组使企业能将自身提供的Web 服务注册以使得别的企业能够发现的访问 协议的实现标准。UDDI 提供了一组基于标准的规范...
UDDI是基于WEB服务的,按照步骤用户将轻而义举的掌握UDDI的注册及安装。
将 Web 服务发布到 UDDI 注册中心 验证 Speed-start 发布 发现和测试服务 结束语 参考资料 关于作者 相关内容: Speed-start Web services 理解 UDDI 注册中心的 WSDL developerWorks Toolbox 订阅 在 Web 服务专区...
一个利用uddi4j和juddirc0.9做一个注册web服务(wsdl文件)到uddi服务器上。 注册服务:wsld接口和wsdl实现,分别使用PublishServiceImplementation和PublishServiceInterface两个程序来实现
uddi使用说明 uddi详细文档 设计规范文档 最新版本v3
uddi4j是一个JAVA类库,提供了一个API来与web 服务UDDI注册中心相结合。UDDI4J得到了HP, IBM和SAP的支持。
用于测试juddi的客户端,一般是使用uddi的 API UDDI4J作为客户端
ws在uddi中注册,销毁。客户端通过wsdl文件再uddi中查找需要的ws,然后远程调用。只上传几个重要文件。
利用uddi4j 的API创建web服务,将创建好的web服务发布到juddi的服务器上,在juddi服务器上查询web服务。
这是一篇关于UDDI注册中心的文章,主要讲述了UDDI注册中心的概念、工作原理、设计规范等内容
看了下教程,实现UDDI注册中心有2种方法,一个是IBM的公共UDDI注册中心,一个是搭建Apache的私有UDDI注册中心,我选择搭建Apache的JUDDI,在其中遇到不少问题,主要是必须要用jdk1.5版本和tomcat5.5,花了不少时间来配...
它使用一种基于 Web 的语言,该语言支持 web 服务技术系列,包括 SOAP、WSDL、UDDI、Web 服务可靠性消息、Web 服务寻址、Web 服务协调以及 Web 服务事务。 BPEL 代表了两种早期工作流语言 - Web 服务流语言 (WSFL)...
理解 UDDI,学习web service。