Services-Oriented Arthitecture的概念和基础

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的应用构建。

Sevices request and response model

图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是自给的和自描述的;
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中应用模型:


  SOAP and WSDL

图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 --------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值