Services-Oriented Arthitecture的概念和基础
作者:张桂权
有些看起来无关紧要的技术,将对未来起十分重要的作用。
—— 题 记
2006年是IT技术的火爆之年,由Ajax点燃的全球征战Web2.0的战火才刚开始,半路上又杀出一个SOA。4月SOA轰然登陆 中国的战场了,到处是IBM 的将兵和“老百姓”“无助”的呐喊声。SOA真的来了,就在你的家门口,做为IT时代的精英,你已经做好迎接挑战的准备了? 2006年中国的软件产业仍然充满了机遇和挑战,大家拭目以待吧 !
其实,SOA和AJAX (Asynchronous JavaScript and XML)一样,都不是什么新鲜的事儿了,应该说在2002年之后,SOA这个概念就已经在IBM、Oracle等公司酝酿了。但是后来由于种种原因(我们 当然不知道了),一直没有得到很好的理解和推广,直到去年11月30日IBM、BEA、Oracle、IONA、SAP、Siebel、Sybase、 Xcalia和Zend科技公司联合发布了针对SOA的编程模型SCA和SDO才标志着SOA的实施进入了一个是实质性的阶段。一时间SOA成为国内外各 大媒体、报刊和杂志的焦点,成为时尚技术的代名词。
SOA真的很火爆了,IBM一来中国就一直在策划和组织 2006“IBM杯”中国高校SOA创新应用大赛 从而激发了中国高校学习SOA的热潮。SOA究竟是什么,它真的就有这么重要吗?会对中国的软件业带来什么的影响,能不能给绝大多数的公司带来更多的收益 呢?中国的企业适合部署SOA?这无疑是大多数人想要问的问题。诚然,如今我们尚未见到哪家公司开发出来像模像样的SOA应用,但是这并不重要,从IBM 等大公司以及大多数程序员对SOA的热情和SOA这全新的概念,我们可以可定SOA将是未来企业整合的最好的技术。SOA只可能带来更多的挑战和商机。
应 该说SOA是计算机软件发展史上的空前的飞跃。回顾计算机软件的发展史就可以发现SOA的优越了,这是显而易见的。可以说在1995年以前,计算机软件的 发展还处于混纯的时代,面向过程的编程是当时的主流思想,C/C++是那时代的主流编程语言,那时候的软件基本上是巨大的单块的程序,没有什么结构和模块 可言了。直到1995年以后面向组件的软件开发才逐渐浮现,这时期颇流行的组件技术有COM/CORBA等,但是随着时间的推移人们发现,基于组件的开发 仍然很复杂,尤其是就行规模庞大的项目开发时,其复杂度高实在太大了,岁着组件的增多,各组件之间的关系是太复杂了,根本就无法就行管理和维护。到 2000年一种新的技术,Web Services,终于浮现了。Web Services是基于XML和HTTP平台的Web应用,主要的要素是SOAP、UDDI和WSDL。它的主要优势是基于一套自己的XML开放标准,从 而使企业异构数据系统之间实现互操作。但是从整体的TOP结构来看仍然很复杂。每一个服务器被发现和定位之后,就被耦合到另一个服务器上。缺乏必要的灵活 性。然而SOA是一个更高的抽象,它屏蔽了每一个服务的任何的技术细节,所以大大的提高了内部的灵活性。SOA的核心应该是企业的服务总线。这是基于开放 标准的、面向消息的、高度分布式的、具有高度智能路由的整合平台。以我看,SOA把软件世界引向何我们现实生活十分接近的虚拟环境。怎细想想我们就不能发 现现实生活就是一个面向服务的最好的例子。假想如果我们出去餐馆吃饭,我们只管餐馆给我们提供餐饮服务,我们根本就不会去关心“服务”内部的细节。我们去 不去接受服务不会对餐馆服务本身产生任何影响,餐馆之关心对外提供服务吧。SOA就是这么棒了。 下面是SOA的概念和基础知识:
一个面向服务的架构(SOA)的本质就是一个服务的集合。这些服务之间进行相互通信。通信既可以包括简单的数据转移,也可以包括两个或多个协同某些活动的服务。一些服务互联的手段/方法是必要的。
SOA 不是一些新技术。过去第一个多人的SOA是基于CORBA规约的DCOM (Distributed Component Object Model, 分布式构件对象模型)或OBRS(Object Request Brokers)。然而如今最常用的方式则是基于XML和Web Services的应用构建。
图1-1服务请求和响应模型
服务
如果一个SOA需要高效,那么我们就需要清楚的了解术语(SOA)了。一个服务是一个完美定义的,自给的并且不依赖于其它服务的内容和状态的函数。
连接
Web 服务的技术更像SOA中的连接技术。Web Services的本质就是利用XML来创建健壮的连接。
下 图说明了一个技术的SOA。它表明右端的一个“服务”客户向左端的服务提供者发送一个服务请求消息。 服务提供这回复一个应答消息给服务客户。请求和随后的应答连接通过一些特殊的方式被定义,服务客户和服务提供者都是可以知道的。其实,一个服务提供者也可 以是一个服务客户。
Web Services
Web Services可以让你的应用成为Web应用,同时可以通过Web来查找和利用Web Services。Web Services的基础平台是XML和HTTP。它具有以下的特点:
Web Services采用的开发的协议通信; Web Services是自给的和自描述的; Web Services可以通过UDDI杯发现; Web Services可以被其它的应用调用; Web Services的基础是XML。 |
另外,HTTP是最通用的网络协议;XML提供了一种在不同的平台和编程语言之间可以被共享的语言,同是表示复杂的消息和功能。
Web Services平台的基础元素
SOAP (简单对象访问协议 Simple Object access Protocol ) UDDI (通用描述、发现和整合 Universal Description, Discovery and Inegration) WSDL (Web Services的描述语言 Web Services Description Language) |
采用Web Services的两大好处
应用组件的重用 和已有的软件互联 |
SOAP
Web Service的基础平台是XML和HTTP。
而SOAP是Simple Object Access Protocol(简单对象访问协议)的缩写。
SOAP是一个通信协议。 |
SOAP是应用之间的通信协议。 |
SOAP是发送消息的一种格式 |
SOAP是平台无关的 |
SOAP是语言无关的 |
SOAP的基础是XML |
SOAP很简单,而且可扩展 |
SOAP允许你绕过防火墙 |
SOAP将成为W3C的一个标准 |
下面是SOAP和WSDL在Web Services中应用模型:
图1-2 SOAP和WSDL在Web Services中应用模型
WSDL
WSDL是基于XML的用来描述Web services和如何访问它们的语言。
* WSDL 是Services Description Language的缩写 |
* WSDL 采用XML编写 |
* WSDL 是一个XML文档 |
* WSDL 是用来描述Web services的语言 |
* WSDL 也可以用来定位Web services |
* WSDL 至今还不是W3C的标准 |
Using of SOAP
图1-3 Using of SOAP
UDDI
UDDI是一个服务目录,在这里应用可以注册和查找Web services。
* UDDI是Universal Description, Discovery and Integration的缩写 |
* UDDI是Web services信息存储的一个目录 |
* UDDI是一个通过WSDL描述的Web服务接口的目录 |
* UDDI通过SOAP通信 |
* UDDI已经被内建到Microsoft .NET平台。 |
以下是一些相关的参考资料连接
-----------------------------------------------------------------------------------
<
最后一次 登陆时间为:
2006年05月24日 12:20:00
>
------------------------------------------------------------------------------------
http://www.service-architecture.com/web-services/articles/service-oriented_architecture_soa_definition.html
http://www.service-architecture.com/web-services/articles/web_services_explained.html
http://www.w3schools.com/webservices/default.asp
----------------------------------------------------------------------------------
文章出处:
云南大学国家示范性软件学院IBM中国大学生SOA大赛参赛团队evil_coder的Blog。
http://blog.csdn.net/evil_coder/
------------------------------------------------- E ----- N ----- D --------------------------------------