现在的软件行业有着各种各样的技术平台,体系架构,但由于不同平台关注的方面不一样,各有各自的特色,平台之间很难沟通,从而形成一个个的信息孤岛.那如何把这些信息孤岛联系在一起呢.?业界提出了很多的方案,一个很著名的方案就是 Serviced-Oriented (面向服务).那面向服务是什么呢?这是对它的定义:“SOA is an architectural style whose goal is to achieve loose coupling among interacting software agents. A service is a unit of work done by a service provider to achieve desired end results for a service consumer. Both provider and consumer are roles played by software agents on behalf of their owners.”(1).面向服务是一系列服务的集合.各个服务之间可以互相通信(包括简单的数据传递和多个服务共同参与一个活动) ,它通过为各个系统提供一些外部接口,从而达到集成各个系统的目的.业界也有些相对应的体系架构,例如: DCOM.CORBA.J2EE.但都无法彻底实现跨系统的集成.个人觉得原因如下:
这时一种新的体系架构出现了,它就是XML Web Services,微软对它的定义是 : “XML Web services 是提供特定功能元素(如应用程序逻辑)的可编程实体,任何数量的、可能是完全不同的系统都可以用常见的 Internet 标准(如 XML 和 HTTP)访问它。它的核心特征是存在于服务的实现与使用之间的高度抽象化。” Web Services正在迅速的被各个平台所接受.相对于其他架构,它的优势在与:
二. 定义 XML Web Service顾名思义就是使用XML来提供Web服务.其实严格的说Web可以不要,就是XML Service,因为并不是所有的Web Service都需要WebServer的.服务就是把我有的功能提供给使用者,也就是向使用者提供一个接口,这就是Web Service.因此Web Service绝对不是一种新的分布式对象.而DCOM , CORBA,J2EE 本质上都是分布式的对象.
三. 组成 1. 一些能处理XML的组件.
首先XML Web Service(或者Web Service)要能够处理XML,至于处理XML的组件是如何设计的.不同语言,平台有不同的方式.可以是OO(面向对象)的.也可以是其他方式.在.Net里是通过.Net Framework 提供的一些类实现的
2. XML 文档
前面我们说过Web Service优势之一在与接口定义语言(IDL)是基于XML的文档,由于Web Service 是SOA(面向服务)的一种,而SOA的目标是在系统之间建立一种松散的耦合,因此服务和消费服务方就不能以Object作为数据沟通的纽带或者说锲约(Contract) ,就必须使用XML文档来做为锲约.那为了使服务提供方和消费方都能够理解Contract的含意.Web Service使用WSDL来描述XML文档.即描述对外的接口.同时使用XML Schema来描述文档里的数据
3. XML文档的载体
有了XML文档就需要一个承载它的协议.Web Service使用SOAP作为载.SOAP:简单对象访问协议,严格来说这个名称是错的,因为它不是用来访问对象的.MS给它的定义是” SOAP 是一种基于 XML 的、用于在 Web 上交换结构化和类型信息的简单的轻量协议”.它以信封的方式来承载XML文档.信封分为两部分: 信封头(head) 和信封体(body).头一般用来保存一些辅助的信息,例如安全(签名和加密数据)和路由信息,信封体用来保存锲约即服务的接口描述和具体的数据
4. 服务的地址
用来告诉服务消费方从哪里可以访问服务,服务位于何地,对此
Microsoft提供了UDDI(通用说明、发现和集成).
Net 实现Web Service的方式是通过ASP.NET.它封装了很多的细节,使开发人员开发WebService很方便,但造成的结果是使认识本质比较困难.(MS的一贯作风).