Transcript Document

冯志勇
天津大学计算机学院
2008年10月
WEB SERVICES及其协议栈
1
大纲
SOA模型
 Web Services概述
 XML and XML Schema
 通信协议
 Web Services 描述
 Web Services 流描述
 Web Services 发布和发现

2
SOA模型
3
SOA模型


作为一个分布式计算架构, Web服务是最重要的SOA实现。
SOA模型是Web服务体系结构的概念
4
SOA模型中的概念

角色




操作




Services Provider
Services Requestor
Services Registry
Publish
Find
Bind
关键组件


Services
Services Description
5
SOA模型中的主要标准

标准





Web Services Description Language (WSDL)
Universal Description, Discovery and Integration (UDDI)
Simple Object Access Protocol (SOAP)
Web Service Flow Language (WSFL)
……
6
SOA开发过程
业务组件分析
服务识别
服务定义
组件识别
组件定义
服务实现决策
SOA 实现
7
SOA开发的层模型
业务过程
服务
集
成
架
构
Qos
服
务
消
费
者
安
全
管
理
组件
服
务
提
供
者
已有应用资源
8
过程 VS 层模型
9
RELATIONSHIP BETWEEN SOA AND WEB
SERVICES


Based on open standard and flexible implementation, Web
services is natively applicable to SOA implementation.
The Relationships between Web services and SOA are:

Web services provide an open standard and machine-readable model
(WSDL) for creating explicit, implementation-independent descriptions
of service interfaces.

Web services provide communication mechanisms that are locationtransparent and interoperable.

Web services are evolving through BPEL4WS, document-style SOAP, and
WSDL, and emerging technologies such as WS-ResourceFramework to
support the technical implementation of well-designed services that
encapsulate and model reusable function in a flexible manner.
10
WEB SERVICES概述
11
WEB SERVICES





Web: 灵活的人机交互
Web Services: Web服务是最近制定的技术规范,充分利用现
有的开放标准如XML , URL 和HTTP提供一个新的系统对系统
通信标准
工作定义:通过标准化协议访问网络软件服务
 简单对象访问协议(SOAP):非常灵活的远程过程调用
(RPC)
大量的利益在商业界,学术界,标准制定机构, . . .
应用电子商务,电信,科技,资源数据库,政府,教育, . . .
12
WEB SERVICES类型

面向业务的Web Services



面向消费的Web Services


B2C的网站,全国多方B2C系统
面向设备的Web Services


ERP,CRM,
应用系统集成
支持不同种类的服务。如天气报告,电子邮件服务
面向系统的 Web Services



认证
监测
QoS
13
WEB SERVICES过程
简化和/或自动化Web服务
 发现



组合





指定组成的目标;
指定组成的约束;
构建一个组成;
分析组成的成分。
调用



是什么性质应予以说明?
如何有效地对他们的查询?
保持颁布分离;
提供交易担保。
监控


如何跟踪条款;
回收失败条款。
14
WEB SERVICES 标准栈
Web Services
组合:
WSFL,BPEL4WS
WS-CDL
WS-CAF
Web Services
事务:
WS-Coordination
WS-Transaction
发布和发现:
WS-AtomicTransaction
UDDI,
WSWS-BusinessActivity
WSIL
SecureConversation
Web Services
, WS-Discovery
WSManagement:
SecurityPolicy
WSDM, WS-Manageability
WS-Trust
SPML, WS-Provisioning
Web Services
安全:
XML-Encryption
XML-Signature
WS-Security
服务描述层: WSDL, WSCL, WSCI,WS-MetadataExchange, WS-Policy
XML 消息层: SOAP , WS-Addressing, WS-Notification, WS-Eventing,
WS-Enumeration, WS-MessageDelivery, WS-Reliability,WS Reliable Messaging,
WS-Resources WS-Transfer
传输层: HTTP, SMTP, FTP, etc.
15
接口
WSDL
消息
SOAP
类型
XML Schema
数据
XML
Web Service 标准
Sun J2EE
BPEL
Microsoft .Net
行为
IBM WebSphere
WEB SERVICE 核心标准
实现平台
16
XML AND XML SCHEMA
17
XML的结构


标签:部分数据的标签
元素和子元素:数据节以<tagname>开始和</tagname>结
束, 内容必须正确匹配

正确匹配

不正确匹配



<account> … <balance> …. </balance> </account>
<account> … <balance> …. </account> </balance>
正确:对同一父元素, 每一个开始标签必须有一个独特
的匹配的结束标记.
18
XML的结构

每个文件必须有一个顶层元素
<bank>
<customer>
<name> Hayes </name>
<street> Main </street>
<city> Harrison </city>
<account>
<account-number> A-102 </account-number>
<branch-name>Perryridge </branch-name>
<balance>
400 </balance>
</account>
<account>
…
</account>
</customer>
.
.
Top level element
</bank>
19
XML的结构

属性Attribute

元素可以有属性
<account acct-type = “checking” >
<account-number> A-102 </account-number>
<branch-name> Perryridge </branch-name>
<balance> 400 </balance>
</account>


对内部开始标记的一个组成部分,属性定义为
name=value
一个因素可能有若干属性,但每个属性名称只能出现一
次

<account acct-type = “checking” monthly-fee=“5”>
20
XML的结构

元素和属性之间的区别
属性不能嵌套
<customer name=Hayes street=Main city=Harrison>
<account>
<account-number> A-102 </account-number>
<branch-name> Perryridge </branch-name>
<balance>
400 </balance>
</account>
<account>
…
</account>
</customer>
21
XML的结构

Well-Formed XML 文档
(称之为根元素)
 每个元素包含一个开始和相应的结束标记
 标签不能重叠, 如
<author><name>LeeHong</author></name>
 在属性的一个因素具有唯一的名字
 元和标记名称必须是合法的
 文件中只有一个外层元素
22
XML的结构

树模型的XML文件
 只有一个根
 没有环
 根以外的每个节点只有一个父节点
 每个节点有一个标签、元素或属性
 该元素的序是很重要的
23
24
命名空间





XML数据已成为各组织之间的交换;
在不同的组织相同的标记名称可能有不同的含义,
造成交换文件的混乱;
指定一个独特的字符串作为一个元素名称避免混淆;
解决办法:使用 unique-name:element-name
使用XML命名空间可以避免在整个文件中使用长的
名字
25
命名空间
<Schema name="mySchema"
xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes"
xmlns:myNS=http://www.xml_step_by_step.edu\ns.xml
>
三个命名空间:
schema namespace
datatype namespace
myNS namespace
26
XML SCHEMA



数据库schemas限制哪些信息可以存储,存储值的数据类型
Schemas 对XML数据交换非常重要
 否则,一个网站不能自动解释从另一个网站收到的数据
XML schema两个机制
 Document Type Definition (DTD)
 XML Schema
27
XML SCHEMA

XML Schema Supports
 数据类型
 E.g.
integer, string, etc
 Also, constraints on min/max values
 用户定义类型
 不像DTDs,XML
Schema 采用XML语法,
 更多标准表达,且更细致
 与命名空间集成(reuse
and refine)
 更多特征
 列表,
唯一和外键约束,继承 ..
28
<xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema>
<xsd:element name=“bank” type=“BankType”/>
<xsd:element name=“account”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=“account-number” type=“xsd:string”/>
<xsd:element name=“branch-name” type=“xsd:string”/>
<xsd:element name=“balance”
type=“xsd:decimal”/>
</xsd:squence>
</xsd:complexType>
</xsd:element>
….. definitions of customer and depositor ….
<xsd:complexType name=“BankType”>
<xsd:squence>
<xsd:element ref=“account” minOccurs=“0” maxOccurs=“unbounded”/>
<xsd:element ref=“customer” minOccurs=“0” maxOccurs=“unbounded”/>
<xsd:element ref=“depositor” minOccurs=“0” maxOccurs=“unbounded”/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
29
XML SCHEMA

元素类型
<element name=". . ."/> with possible attributes:
 ‘类型’属性
定义该元素的类型: type=". . ." (more on types later)
 基数限制 :
• minOccurs=“x”, x可以使任何自然数(包括 0)
• maxOccurs=“x”, x可以使任何自然数(包括 0) 或无限
30
XML SCHEMA
<element name="email"/>
<element name="head" minOccurs="1"
maxOccurs="1"/>
<element name="to" minOccurs="1"/>
31
XML SCHEMA

属性类型
<attribute name=". . ."/> with possible
attributes
 type=".
. ."
 use="x", corresponds to #OPTIONAL and #IMPLIED
in DTDs
 use="x" value=". . .", where x may be default or
fixed
32
XML SCHEMA
<attribute name="id" type="ID"
use="required"/>
<attribute name="speaks"
type="LanguageType" use="default“
value="en"/>
33
XML SCHEMA

数据类型
 数字数据类型,
包括:integer, Short, Byte, Long,
Float, Decimal
 串类型,包括: string, ID, IDREF, CDATA,
Language
 日期和时间类型

用户定义的数据类型
 简单数据类型和复杂数据类型
34
XML SCHEMA

复杂数据类型和扩展数据类型

通过对子element的组合与其他类型扩展来完成的, 它有三种组合方式:
sequence,all,choice.



对于sequence方式,各子element在对应的XML文档中的出现的次序与定义
中的次序必须一致;
对于all方式,各子element在对应的XML文档中的可以以任意次序出现;
对于choice方式,各子element在对应的XML文档只出现其中的一个。
<complexType name="lecturerType">
<sequence>
<element name="firstname" type="string"
minOccurs="0" maxOccurs="unbounded"/>
<element name="lastname" type="string"/>
</sequence>
<attribute name="title" type="string" use="optional"/>
</complexType>
35
XML SCHEMA

<element name=“lecture” type=“lectureType”>
<lecture title=“associate professor”>
<firstname>Zhiyong</firstname>
<lastname>Feng</lastname>
</lecture>
36
XML SCHEMA
数据类型扩展:现有的数据类型可以扩展新的元素
或属性
<complexType name="extendedLecturerType">
<extension base="lecturerType">
<sequence>
<element name="email" type="string"
minOccurs="0" maxOccurs="1"/>
</sequence>
<attribute name="rank" type="string" use="required"/>
</extension>
</complexType>
37
XML SCHEMA

限制数据类型和简单的数据类型
通过限制现有的数据类型 定义
<complexType name="restrictedLecturerType">
<restriction base="lecturerType">
<sequence>
<element name="firstname" type="string"
minOccurs="1" maxOccurs="2"/>
</sequence>
<attribute name="title" type="string" use="required"/>
</restriction>
</complexType>
38
XML SCHEMA

Simple data types can also be defined by
restricting existing data types.
<simpleType name="dayOfMonth">
<restriction base="integer">
<minInclusive value="1"/>
<maxInclusive value="31"/>
</restriction>
</simpleType>
39
通信协议(SOAP)
40
为什么要有简单对象访问协议(SOAP)

SOAP协议是一个XML消息传递协议,独立于任何特定的传输
协议。
替代复杂的分布式对象技术的轻量级协议

开始为BizTalk (Microsoft/UserLand/DevelopMentor )设计



是W3C 标准
基于XML
41
SOAP 消息结构

SOAP Envelope
SOAP Header

Header Block
...
Header Block
SOAP Body
Body Block
...
Body Block

Envelope contains
 Header
 Body
Header is optional
 Out-of-band information
such as…
 Authentication
information
 Message routes
 Logging
 Transaction flow
Body contains XML body of
RPC call
42
SOAP 例子
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-ncoding">
<soap:Body>
<m:GetPrice xmlns:m="http://www.w3schools.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>
</soap:Envelope>
43
SOAP例子
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse>
</soap:Body>
</soap:Envelope>
44
WEB SERVICES 描述语言
45
WEB SERVICES描述语言 (WSDL)

WSDL是一种基于XML的接口定义语言, 它分离功能和
执行,使SOA建议的契约设计成为可能

WSDL 定义
 Services 做什么– 接口 interface
 访问说明 – how
 Services 位置– where
46
WSDL要素
Supports
接口
Port Type
Operation
Input & Output
Formats & Protocols
访问
说明
Binding
How to encode
Message
Implements
Port
Provides
Services
Endpoints
47
WSDL主体结构
<definitions namespace = “http://… ”>
<types> XML schema types </type>
<message> definition of a message消息定义 </message>
<portType> a set of operations一组操作 </portType>
<binding> communication protocols通信协议 </binding>
<Services> a list of binding and ports绑定和端口列表 </Services>
</definitions>
48
类型
<types>
<schema targetNamespace=“http://example.com/stockquote.xsd”
 <types> define
data types used in defining messages
xmlns=“http://www.w3.org/2000/10/XMLSchema”>
<element name=“TradePriceRequest”>
 XML<complexType>
Schema, DTD, and etc.
<all>
 XML Schema
must be supported by any vendor of WSDL
<element name=“tickerSymbol” type=“string“
conformant products
minOccur = “1” maxOccur=“10”/>
<element name = “payment”>
<complexType>
<choice>
<element name = “account” type=“string” />
<element name = “creditcard” type=“string” />
</choice>
</complexType>
</element>
</all>
</complexType>
</element>
</schema>
</types>
49
WSDL 消息



A <message> element defines the data elements of an
operation
Each message can be the input or output of an operation, and
may consist of one or more parts
A part resembles a parameter of a function
<message name=“GetLastTradePriceInput”>
<part name=“body” element="TradePriceRequest"/>
</message>
<message name=“GetLastTradePriceOutput”>
<part name=“body” element=“TradePrice” />
</message>
50
WSDL PORTTYPE端口类型
The <portType> element is the most important WSDL element:
it defines
 a web Services
<portType
name=“StockQuotePortType”>
 the operations that can be performed, and
<operation name=“GetLastTradePrice”>
 the messages that are involved
<input message=“tns:GetLastTradePriceInput” />
 The <port> defines the connection point to a web Services, an
<output message=“tns:GetLastTradePriceOutput” />
instance of <portType>
</operation>
 It can be compared to a function library (or a module, or a
</portType>
class) in a traditional programming language
 Each operation can be compared to a function in a
traditional programming language

51
OPERATION TYPES操作类型


请求响应型是最常见的操作类型,定义的WSDL四种类型 :
 One-way:这次行动可以收到一个讯息,但不会返回响应

Request-response:这次行动可以接收请求,并返回响应

Solicit-response: 操作可以发送请求,并等待回应

Notification: 操作可以发送消息,但不会等待回应
WSDL 1.2 adds: request – multiple response
52
OPERATION TYPES操作类型
One-way:

<message name="newTermValues">
<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
<operation name="setTerm">
<input name="newTerm" message="newTermValues"/>
</operation>
</portType >
Request-response:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
53
BINDING绑定



定义消息如何传递,以及服务的位置
<binding> element有两个属性 :
 type: the port type
 name: name of the binding
<soap:binding>有两个属性 :
 style: either “document” or “rpc”
 transport: protocol to use, e.g., “http”
54
BINDING绑定
<binding name="StockQuoteSoapBinding“
type="tns:StockQuotePortType">
<soap:binding style=“document”
transport=“http://schemas.xmlsoap.org/soap/http” />
<operation name="GetLastTradePrice">
<soap:operation
soapAction=“http://example.com/GetLastTradePrice” />
<input>
<soap:body use=“literal” />
</input>
<output>
<soap:body use=“literal” />
</output>
</operation>
</binding>
55
SERVICES
<Services name=“StockQuoteServices”>
<documentation>
My first Services
</documentation>
<port name=“StockQuotePort”
binding=“tns:StockQuoteBinding”>
<soap:address
location=“http://example.com/stockquote” />
</port>
</Services>
56
WSDL总结
Types
 Message
 Operation
 PortType
 Binding
 Port
 Service

57
WEB SERVICES FLOW DESCRIPTION
58
业务流程执行语言(BPEL)





把业务流程定义为相互协作的Web服务组;
定义抽象过程和可执行过程;
创建Web服务组合;
来自:
 扎根在传统的流模型;
 概念来源于结构化编程语言;
 建立于核心的WSDL和XML规范之上;
 融合WSFL和XLANG的概念。
OASIS WS BPEL 技术委员会正在推进 BPEL4WS规范
59
BPEL WEB SERVICES组合
60
BPEL PROCESS 结构
<process ...>
<partners> ...
</partners>
<messageExchanges> ...
</ messageExchanges >
<correlationSets> ...
</correlationSets>
<faultHandlers> ...
</faultHandlers>
<compensationHandlers> ...
</compensationHandlers>
(activities)*






与过程交互的Web Services
过程使用的数据
用于支持异步交互
处理错误条件执行路径
当执行“undoing”命令时的执
行代码
过程实际做的工作
</process>
61
PARTNER的定义和联系

Partner通过web服务信道接受,由服务链接类型定义 A is
accessed over a WS “channel
<partner name=“...”
ServicesLinkType=“...”
partnerRole=“...” myRole=“...”/>

SLT 定义两个角色,每一个角色需要 portTypes支持
<ServicesLinkType name=“...”>
<role name=“...">
<portType name=“...” />*
</role>
<role name=“...”>
<portType name=“...”/>*
</role>
</ServicesLinkType>
62
CONTAINERS(容器)的定义
<containers>
<container name=“…" messageType=“…"/>
<container name=“…" messageType=“…"/>
</containers>
63
BPEL 基本活动




调用一个partner上的操作
<invoke partner=“...” portType=“...” operation=“...”
inputContainer=“...” outputContainer=“...”/>
从partner接受调用
<receive partner=“...” portType=“...” operation=“...”
container=“...” [createInstance=“...”] />
发送应答消息给调用的partner
<reply partner=“...” portType=“...” operation=“...”
container=“...”/>
在容器间复制数据
<assign>
<copy>
<from container=“...”/> <to container=“...”/>
</copy>+
</assign>
64
MORE基本活动

检测处理错误和切换到故障处理模式
<throw faultName=“...” faultContainer=“...”/>

活动可以用于立即放弃这个终止活动的业务流程实例中的所有执行。
<terminate/>

活动使流程能够等待一段特定的时间间隔,或者一直等到某个截止期限为止。
<wait for=“...”? until=“...”? />

活动什么都不做。如果您需要捕获一个故障并抑制它,您可以使用这个活动。
<empty/>
65
BPEL 结构活动

<sequence> 活动包含一个或多个顺序执行的活动。
<sequence standard-attributes>activity+</sequence>

<pick> 活动包含一组事件处理程序。每个处理程序包含一个活动,处
理程序在 pick 已经启动且处理程序正在等待事件发生时运行。
<pick createInstance="yes|no"? standard-attributes>…<pick>

<flow> 构造提供了以并行方式运行活动的能力,还提供了定义防护性
链接的能力。
<flow standard-attributes>activity+</flow>

<switch> 活动起的作用与许多传统编程语言中出现的 switch 构造很相
似。
<swith standard-attributes>
<case>…</case>
…
<otherwise>…</otherwise>
</swith>
66
MORE STRUCTURED ACTIVITIES

<while> 活动重复执行它的子活动,直到对指定的布尔条件求得的值
不再为真。
<while standard-attributes><condition>..</condition>activity</while>

<repeatUntil>活动也是执行它的子活动,与<while> 活动不同的是,
该活动直到对指定的布尔条件求得的值为真,才退出;
<repeatUntil standard-attributes>activity
<condition>…</condition></repeatUntil>

<if>活动,首先判断<condition>中的条件是否满足,满足就执行,执行完退
出。否则,依次检查<elseif>中的<condition>中的条件是否满足,满足就执行,
执行完退出。如果都不满足则执行<else>中的活动;
<if standard-attributes>standard-elements
<condition>…</condition>activity
<elseif>*<condition>…</condition>activity</elseif>
<else>activity</else></if>
67
一个活动用例
<sequence>
<sequence>
<receive .../>
Seq
execute
activities sequentially
<flow>
<flow> <sequence>
Flow
<invoke ... />
execute activities in parallel
Seq
Seq
<while ... >
<while>
<assign> ... </assign>
</while>
iterate execution
of activities until condition is violated
<pick> </sequence>
While
<sequence>
several event
activities
<receive
... /> (receive message, timer event)
scheduled<invoke
for execution
... /> in parallel; first one is selected and
corresponding
code executed
</sequence>
</flow>
<link ...>
<reply ... />
defines
a control dependency between
</sequence>
a source activity and a target
68
WEB SERVICES 发布和发现
69
UDDI




UDDI的服务器作为提供目录服务的服务提供商。
SOAP的可用于查询UDDI, 发现WSDL定义的服务的位
置,或在设计或开发时间搜寻可以通过用户界面执
行。
数据结构规范描述什么样的数据存储在UDDI。
序员的API规范包含UDDI如何注册可以访问。
副本规格说明包含如何复制注册信息。
70
UDDI

三个基本功能
 发布:如何注册Web服务
 搜索:如何找到一个特定Web服务
 绑定:如何连接到一个Web服务
71
UDDI REGISTRIES
UDDI的注册包含有关业务和服务信息
– Public registries
– Private registries
72
PUBLIC REGISTRIES
• IBM Public registry Registration:
https://uddi.ibm.com/ubr/registry.html
inquiryURL= https://uddi.ibm.com/ubr/inquiryapi
publishURL= https://uddi.ibm.com/ubr/publishapi
• Test registry Registration:
https://uddi.ibm.com/testregistry/registry.html
inquiryURL= https://uddi.ibm.com/testregistry/inquiryapi
publishURL= https://uddi.ibm.com/testregistry/publishapi
73
PUBLIC REGISTRIES公共 注册
• HP
Registration: http://uddi.hp.com
inquiryURL = http://uddi.hp.com/ubr/inquire
publishURL = https://uddi.hp.com/ubr/publish
• Microsoft
Registration: http://uddi.rte.microsoft.com
inquiryURL=http://uddi.rte.microsoft.com/inquire
publishURL=https://uddi.rte.microsoft.com/publish
• SAP
Registration: http://udditest.sap.com
inquiryURL=http://uddi.sap.com/UDDI/api/inquiry/
publishURL=https://uddi.sap.com/UDDI/api/publish/
74
私有UDDI 注册
• 为了测试目的经营你自己的注册表是;
• 建立您自己的登录服务为自己的组织;
• 信托问题
75
总结
• 作为一个分布式计算架构, Web服务是最重要的SOA的实
现;
• Web服务:灵活的机械与机械交互;
• XML是一种强大的语言来描述数据。由XML模式定义它的
构造规则。
• SOAP的是一种轻量的复杂的分布式对象技术替代,我们使
用的封装Web Services消息
• 通过WSDL开放Web服务功能和接口, Web服务之间的交
互用BPEL描述
• 通用描述,发现和集成( UDDI规范)是一种技术规范来描
述,发现和集成网络服务
76
REFERENCE
SOA & Webservices.http://www-900.ibm.com/developerWorks/cn/

webservices
WebServices. http://www.w3.org/2002/ws/
Ueli Wahli ,Thomas Kjaer…“WebSphere Version 6 Web Services Handbook
Development&Deployment”,http://www.redbooks.ibm.com
/redbooks/pdfs/sg246461.pdf,2005
Stan Kleijnen,Srikanth Raju.An Open Web Services Archiecture.NewYork:
ACM Press,2003
XML.http://www.w3.org/TR/xml/
XML Schema. http://www.w3.org/TR/xmlschema11-1/
XML Schema. http://www.w3.org/TR/xmlschema11-2/
WSDL. http://www.w3.org/TR/wsdl
Tony Andrews, Francisco Curbera…Business Process Execution Language for
Web Services Version 1.1.http://download.boulder.ibm.com/
ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdf
The Stencil Group.” The Evolution of UDDI ,UDDI.org White Paper”
http://www.uddi.org/pubs/the_evolution_of_uddi_20020719.pdf
Java Web Services Application and development, Publication House of
77