SOA
本质上是服务的集合,又因为所谓服务也就是函数,所以SOA可以理解为用于服务的函数的集合
Service
服务就是精确定义、
封装完善、独立于其他服务所处环境和状态的
函数
。
SOA和web Service
SOA
不是
WebService
,
Web Service
是目前最适合实现
SOA
的技术
Web Service
Web Service
是一种部署在
Web
上的对象或者是应用程序组件,
Web Service
数据的传输同样需要借助
HTTP
协议。
Web Service
是一个平台独立的,低耦合的,自包含的、基于可编程的
web
的应用程序,可使用开放的
XML
(标准通用标记语言下的一个子集)标准来 述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
Web Service
的三要素之一:
SOAP(协议)
SOAP
是
基于
XML
在分散或分布式的环境中交换信息的简单的协议。
OAP
的设计是为了在一个松散的、分布的环境中使用
XML
对等地交换结构化的和类型化的信息 供了一个简单且轻量级的机制。
当然,最多的情况还是还是绑定在
HTTP
协议上面传输。所以,导致大多数人认为
SOAP
就是
HTTP + XML
,或者认为
SOAP
是
HTTP post
请求的一个专用版本,遵循一种特殊的
XML
消息格式。
虽然,我们看到的情况确实如此,但这并不是
SOAP
本质与全部。
Web Service
的三要素之二:WSDL(文档)
网络服务描述语言,简称
WSDL
。它是一门基于
XML
的语言,用于 述
Web Services ,
以及如何对
Web Services
进行访问。
WSDL
文档主要使用以下几个元素来描述某个
Web Service
:
<portType>
web service 可被
执行的操作,
可以把
<portType>
元素比作传统编程语言中的一个函数库(或一个模块、或一个类)
<message>
web service
使用的消息,
<message>
元素定义一个操作的数据元素。
可以把这些部件比作传统编程语言中一个函数调用的参数
<types>
web service
使用的数据类型。
为了最大程度的平台中立性,
WSDL
使用
XML Schema
语法来定义数据类型。
<binding> web service
使用的通信协议。
<binding>
元素为每个端口定义消息格式和协议细节
对于接口来说,接口文档非常重要,它 述如何访问接口。那么
WSDL
就可以看作
Web Service
接口的一种标准格式的“文档”。
Web Service
的三要素之三:UDDI(跨企业)
UDDI
是一个独立于平台的框架,通过使用
Internet
来 述服务,发现企业,并对企业服务进行集成。
UDDI
指的是通用描述、发现与集成服务。
UDDI
是一种用于存储有关
Web Services
的信息的目录。
UDDI
是一种由
WSDL 描
述的
Web Services 界面
的目录。
UDDI
经由
SOAP
进行通信。
UDDI
可以帮助
Web
服务 供商在互联网上发布
Web Services
的信息。
UDDI
是一种目录服务,企业可以通过
UDDI
来注册和搜索
Web Services
。
Web Service的体系结构
涉及到三个角色:
web Service 提供者:(发布)
web Service 请求者:(查找)
web Service 中介: (绑定)
中介
用来注册已经发布的
Web Service
供者,并对其进行分类,同时提供搜索服务,用UDDI实现
Web Service
相对于
HTTP
有何不同?
1.
接口中实现的方法和要求参数一目了然。
2.
不用担心大小写问题。
3.
不用担心中文
urlencode
问题。
4.
代码中不用多次声明认证(账号,密码)参数。
5.
传递参数可以为数组,对象等。
Web Service
能被
HTTP
替代么?
答案是肯定的