SOA有哪些基本原则?

 
   | |

导读:就JBI和SCA/SDO标准而言,JBI的应用范围更严格,可能最终会成为更大的标准中的一部分Java实现。基于标准Web Service是目前实现SOA应用的一项基本技术。

关键词:JBI SCA SDO Java Web Service SOA应用

 
正在加载数据...

  了解SOA是为了解决什么样的问题,我们先来了解一下SOA有哪些基本原则。

  粗粒度

  在SOA中服务粒度有两种相关的意思,即服务是如何实现的,服务使用和返回了多少数据或多少消息。细粒度服务执行了最小的功能,发送和接收少量的数据。粗粒度服务执行了较大的业务功能,并交换了更多的数据。

  原则:细粒度服务是供粗粒度服务或组合服务使用的,而不是由终端应用直接使用的。如果应用是使用细粒度服务建立的,则应用将不得不调用网络上多个服务,并且发生在每个服务上的数据量较少,因而会对对系统整体性带来影响。所以,粗粒度服务的用户不能直接调用他所使用的细粒度服务。同时,由于粗粒度服务可能使用多个细粒度服务,因此它们不能提供粒度级的安全和访问控制。

  松散耦合

  松耦合的系统特点是灵活,而应用到SOA中的目的就是将服务使用者和服务提供者在服务实现和客户如何使用服务方面隔离开来。服务提供者和服务使用者间松散耦合背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响服务使用者的情况下进行修改。

  大多数松散耦合方法都依靠基于服务接口的消息。基于消息的接口能够兼容多种传输方式(如HTTP、JMS、TCP/IP、MOM等)。基于消息的接口可以采用同步和异步协议实现。

  可重用部件/服务如果完全按照可重用的原则设计服务,SOA将可以使应用变得更为灵活。可重用服务采用通用格式提供重要的业务功能,为开发人员节约了大量时间。

  设计可重用服务应该是与数据库设计或通用数据建模类似的最有价值的工作。

  基于标准Web Service是目前实现SOA应用的一项基本的,适用的技术,它为服务的访问提供了一个被广泛接受的开放标准。

  JBI(JSR208)是SUN推出的基于Java的SOA标准,随着在JSR 208中被定义,它也成为了把服务容器组装为合成应用的标准。

  Service Component Architecture (SCA)和Service Data Objects (SDOs)标准是IBM和BEA所推出的SOA标准,并在Apache Group建立了Apache Tuscany项目。

  在我看来,标准之争并不是关键所在,但就JBI和SCA/SDO标准而言,JBI的应用范围更严格,可能最终会成为更大的标准中的一部分Java实现。

  1、SOA面临什么样的问题?

  繁杂的应用和协议繁变化的服务需求管理监控网络瓶颈标准的缺失困难的跨团队变更管理这些问题都比较好理解,也不是只有采用SOA才能解决问题的。但是作为典型的SOA应用,以上的情况都是必须面对的,也是SOA系统函待解决的。

  2、SOA的应用场景是怎样的?

  适用场景:集成成本持续增长,而并未因为可提供真正投资回报 (ROI) 的新业务机会而得到缓解。

  兼并和收购是企业扩大市场份额和获得新发展机会的业务模式的核心。

  解决方案要求对来自异构系统和编程模型的业务功能进行集成。

  业务的生存依赖于根据市场变化快速调整或即时响应竞争威胁的能力。

  全球经济的影响要求企业事半功倍地开展业务,而且有必要依赖业务合作伙伴提供非核心业务功能。

  就提高收益而言,与业务合作伙伴协作的效率对企业十分关键。

  企业业务资产的价值在减少,因为不能对其进行评估,以在最初用途之外的其他地方使用。

  企业员工的效率出现了问题,因为他们的大部分时间并没有花在提供公司业务模型的核心功能和服务上。

  企业的业务充满了机会型的业务工作。

  企业从头开始开发新应用程序。(SOA应当作为定位将来的新应用程序的缺省架构模式,当然,业务条件有其他限制时除外。)

  不适用场景:企业只将小部分 IT 预算用于集成项目。
 
  企业的大部分流程都是手动的或以文档为中心的,自动化的机会几乎为零。

  企业的大部分应用程序开发都使用相同的编程模型。

  企业的操作由一个或两个客户关系管理 (CRM) 和企业资源规划 (ERP) 应用程序管理,几乎没有集成要求。

  企业的现有技能库与实现支持 SOA 的基础结构所需的技能库之间存在重大差异。

  未发现可从 SOA 提供的功能受益的业务需求或机会。

  新业务服务的可用性将对现有的收益流带来负面影响。

  企业依赖的业务合作伙伴对公司间流程的自动化采用了不同的优先级。

  企业的主要业务的开展涉及到海量且同步性和实时性要求非常高的事务。

原文出处:http://www.cnw.com.cn/cnw07/Software/SOA/htm2008/20080825_58052.shtml
 
来源:网界网    
 
 
 
 
 

Java Web服务

 
从两个观点上来看,Scala是一门重要的语言。第一,它代表了许多程序员所没有的新的想法,也就是说,我在功能理念下如何编程……
 
很多时候“架构”是用来描述所有Web服务器都连接在一个巨大的ESB一起时会发生什么的东西。因为对于许多项目来说是迄今为止的道路……
 
长期以来应用开发最通用的语言之一,Java已经开始获得云计算平台的支撑。但是由于新的和分布式架构平台,像Google App Engine……
 
大约15年的时间了,Java继续增加作为现代中间件的影响力。不论今后是否成功,显然Java已经为计算带来了新的同质性。Java最大的中间层价值……
 
今年当Oracle准备收购Sun以及VMware收购SpringSource之时,Java的世界有些动摇。Sun控制着Java Community Process(JCP),JCP支配着语言……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录