Services-Oriented Arthitecture的概念和基础

原创 2006年06月07日 14:05: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平台。





以下是一些相关的参考资料连接
-----------------------------------------------------------------------------------
<
最后一次 登陆时间为:
             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 --------------------------------------

基础网络概念

摘自《鸟哥的 Linux 私房菜-网络篇》 局域网络 (Local Area Network, LAN) 广域网 (Wide Area Network, WAN) MAC (Media Ac...
  • breeze_life
  • breeze_life
  • 2013年08月07日 18:17
  • 1895

cocos2dx学习之基本概念

转载自 http://blog.csdn.net/bill_man/article/details/7214035 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色。 导...
  • chan70707
  • chan70707
  • 2016年07月08日 11:11
  • 329

Java学习的基础概念和知识点

static 1、随着类的加载而加载 2、优先于对象存在 3、被所有对象所共享 4、可以直接被类名调用 使用注意: 1、静态方法只能访问静态成员 2、非静态成员可以访问静态成员 3、静态方法中不可以...
  • wj610671226
  • wj610671226
  • 2016年08月15日 21:45
  • 1071

ORACLE基础概念

数据库实例    用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。其实就是用来访问和使用...
  • Z_T_T
  • Z_T_T
  • 2017年05月10日 17:33
  • 152

mysql数据库基础概念

MYSQL是支持sql(structured Query Language,结构化查询语言)数据库语言的一个关系数据库...
  • happy_cheng
  • happy_cheng
  • 2014年07月27日 22:04
  • 585

数据库基础概念

DBMS基础概念;E-R模型的应用;将E-R图映射到表中的步骤;处理数据冗余的范式应用...
  • heart_1014
  • heart_1014
  • 2016年08月07日 15:27
  • 636

SQL(一)-基本概念

1:(数据库简介 数据库是以便于访问的方式组织的数据的集合,方便有效的管理和更新。 数据库由存储相关信息的表组成。 例如,如果您要创建包含大量信息(如视频,用户名,密码和评论)的YouTube网站,您...
  • cho3en1
  • cho3en1
  • 2016年11月21日 13:43
  • 240

C++ 基础概念

pointers(指针)、references(引用)、casts(类型转换)、arrays(数组)、constructors(构造)- 再沒有比这些更基础的议题了。几乎最简单的C++ 程序也会用到其...
  • qq_34882983
  • qq_34882983
  • 2017年01月11日 18:44
  • 593

算法系列(一)基本概念

一、什么是算法 算法是完成一个任务所需的一系列步骤,计算机解决计算机问题,我们希望从一个计算机算法中获得两个结果,给定一个输入,它应该总能够产生该问题的正确输出结果,并且在运行该算法时,能够有效的利...
  • robertcpp
  • robertcpp
  • 2016年05月29日 10:17
  • 1906

C++基本概念和常识

C++基本数据类型: 整形,字符型,实型,逻辑型(布尔型)   数据类型修饰符: short  long  unsigned    signed 注意: 1. 布尔型: 布尔型(bool):  ...
  • ztli_xd
  • ztli_xd
  • 2016年05月23日 16:43
  • 392
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Services-Oriented Arthitecture的概念和基础
举报原因:
原因补充:

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