SOA思想、技术

SOA思想与技术

Gartner Group 1996 年最早提出了面向服务构架(Service Oriented Architecture ,SOA),而该公司预计2008年至2010年,采用SOA体系构架的企业将分别达到70%80%

SOA究竟是什么呢?可以说他是一种信息系统集成思想。理解SOA关键是理解这个“S”,即Service。服务可以说是一种即超越具体技术,又包容具体技术的一种业务功能(SOA是一种较系统应用层面的,通常是分布式多系统应用层面上,而非独立的单个系统上的)。怎么才算是SOA呢,或者说SOA包括哪些基本要素和目标呢?目前有哪些技术可以来实现SOA呢?接下来将一一说明。

一、SOA基本要素:

1.       松散耦合

a)         服务之间的松散耦合

这里所说的服务之间的松散耦合,是指不同服务的功能不要互相依赖,一个服务应该能够自己实现所提供的接口功能(所谓内聚),不要依赖其它的服务。以ATM取款机为例,它提供了余额查询、取款、存款等功能。这些功能应该能够独立的工作,比如取款功能不能工作了,应该要不能影响余额查询功能和存款功能的运行。甚至ATM机出错了,其它业务办理方式应该要能继续服务(如银行柜台、WEB终端、电话银行等)

ATM系统架构)

这个需求通过一个比较好的架构设计就可以实现,用传统的技术也可以实现,主要是要有这种独立、不互相依赖、内聚的思想。

b)        接口和实现之间的松散耦合

其实WebService已经实现了这一点,它以WSDL来描述WebService的功能、调用访问等,以UUID来统一发布管理WSDL地址,用J2EE.NET或其它技术都可以实现。

c)        业务组件和传输协议之间的松散耦合

EJB需求RMI传输协议,WebService需要SOA传输协议,JMS需求JMS传输协议等,要解决不同传输协议的透明化、集中处理,其实现在也有相应的解决方案,在后面会逐一介绍当前流行的一些解决方案。

2.       粗粒度

“粗粒度”是指SOA中服务的接口应该比具体语言(java,C#)上的接口要更大一些,但这个“粗粒度”也不要“太粗”,“太粗”则表明抽象程度太高,以至于远离了用户的实际操作,这就反而不好了。因为一切以现实的情况来衡量、设计、实现这才是最真实的、准确的(这一点不单是在SOA上,在javaC#等具体计算机语言上也是如此)。

3.       位置和传输协议透明

位置和传输协议是SOA最根本区别于目前面向组件编程的地方。目前的服务组件如EJBWebServiceJMS或相应的组件包(如javabeandll等)的发布都是和特定应用服务器(如apache http server,iis,weblogic,tomcat,websphere,jboss等)客户端必须知道具体的应用服务器的URL才能调用相应的组件。在全球经济一体化的浪潮下,各企业的服务集成以便提供更多丰富的功能服务,这是必然的趋势。

位置透明,就是不论服务组件的实际位置URL如何变化,客户端的调用程序的URL都不需求改变。

传输协议透明,是指不管服务组件使用的是何种传输协议,客户端的调用程序的传输协议都不需求改变,这对于客户端来说是透明的。

目前组件的调用方式如下图:

(一般系统架构)

二、SOA目标

       随着全球经济一体化的深入发展,敏捷的、多渠道的、安全的、松散耦合的系统集成已经成为越来越多企业业务的需要。

技术构架:

 

(SOA技术架构)

业务架构:

 

(SAO业务架构)

三、SOA思想方案

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值