Services-Oriented Arthitecture的概念和基础

原创 2006年05月24日 12:20:00

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平台。





以下是一些相关的参考资料连接

 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
 
   

Object-Oriented Programming Concepts——面向对象编程的一些概念

什么是对象? 对象是理解面向对象技术的关键。现在看看你的周围你会发现很多现实世界中对象的例子:你的狗,你的桌子,你的电视机,你的自行车。 现实世界中的对象有两个特点:他们都有状态和...

数据挖掘概念(Analysis Services - 数据挖掘)

数据挖掘是从大型数据集中发现可行信息的过程。数据挖掘使用数学分析来派生存在于数据中的模式和趋势。通常,由于这些模式的关系过于复杂或涉及数据过多,因此使用传统数据浏览无法发现这些模式。 这些模式和趋势...

Web Services介绍及基本概念

第一章: 总的来说,Web Services有以下几个方面的优势:1、Web Services使企业内部和企业之间的人、信息和流程之间的整合更加容易,从而缩短业务流程周期,提高企业反应速度;2、We...

Web 服务概念性体系结构(Web Services Conceptual Architecture)第 1 部分

本文中提到的体系结构包括对 Web 服务需要的组件和功能的高级描述,以及对实现这些组件和功能的工具和中间件的要求。现在,诸如 IBM XML and Web Service Development E...
  • B080310
  • B080310
  • 2012年05月06日 16:48
  • 1494

ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters

上一节完成了对nodes, Topic的理解,再深入一步: Services and Parameters 我不理解为何 ROS wiki 要把service与parameter放在一起介绍, 很想分...
  • sonictl
  • sonictl
  • 2015年07月07日 10:30
  • 1269
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Services-Oriented Arthitecture的概念和基础
举报原因:
原因补充:

(最多只允许输入30个字)