赛迪网 > 中国信息化 应用分析总 > 文章
  IT资讯搜索
 
IT产品搜索
· [方案] 征信数据上报系统方案 网站防篡改方案
· [专题] 07年六大令人失望信息化事件 回眸SOA
· [方案] 反垃圾邮件解决方案 烟草行业解决方案
· [商务] 2008年中国电子商务行业发展趋势研究报告
· [专题] 中小企业实施管理 公司网站做不好CIO掉饭碗
· [案例] 北京网通客户服务系统 某部集中运行管理平台

SOA促使软件产业进化

发布时间:2007.12.13 09:51     来源:支点网    作者:刘军

在最近一两年里软件产业中频频出现SOA这个词汇,但是SOA到底是什么?似乎还没有一个十分明朗的答案;SOA有什么特点?SOA的出现对于软件架构设计产生什么影响?能解决哪些问题?能给企业带来什么好处? 是否能促使软件产业的发展及进化呢?下面笔者就根据跟随大家一起来探讨这些问题。

  SOA是什么?

  SOA并不是一种语言,也不是一种具体的技术,SOA是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种 软件系统架构。它尝试给出在特定环境下推荐采用的一种架构,从这 个角度上来说,它更像一种模式(Pattern)。因此它与很多已有的软件技术(比如面向对象技术),是互补的而非互斥的。它们分别面向不同的应用 场景,用来满足不同的特定需求。

  SOA的特点

  需求决定的同时也限制功能。SOA最主要的应用在于解决在Internet环境下的不同商业应用之间的业务集成问题。SOA具有三大基本特征:

  1、独立的功能实体

  在Internet这样松散的使用环境中,任何访问请求都有可能出错,因此任何企图通过Internet进行控制的结构都会面临严重的稳定性问题。SOA非常强调架构中提供服务的功能实体的完全独立自主的能力。传统的组件技术,如.NET Remoting,EJB,COM或者CORBA,都需要有一个宿主(Host或者Server)来存放和管理这些功能实体;当这些宿主运行结束时这些组件的寿命也随之结束。这样当宿主本身或者其它功能部分出现问题的时候,在该宿主上运行的其它应用服务就会受到影响。

  SOA架构中非常强调实体自我管理和恢复能力。常见的用来进行自我恢复的技术,比如事务处理(Transaction),消息队列(Message Queue),冗余部署(Redundant Deployment)和集群系统(Cluster)在SOA中都起到至关重要的作用。

  2、大数据量低频率访问

  对于.NET Remoting,EJB或者XML-RPC这些传统的分布式计算模型而言,他们的服务提供都是通过函数调用的方式进行的,一个功能的完成往往需要通过客户端和服务器来回很多次函数调用才能完成。在Intranet的环境下,这些调用给系统的响应速度和稳定性带来的影响都可以忽略不计,但是在Internet环境下这些因素往往是决定整个系统是否能正常工作的一个关键决定因素。因此SOA系统推荐采用大数据量的方式一次性进行信息交换。

  3、基于文本的消息传递

  由于Internet中大量异构系统的存在决定了SOA系统必须采用基于文本而非二进制的消息传递方式。在COM、CORBA这些传统的组件模型中,从服务器端传往客户端的是一个二进制编码的对象,在客户端通过调用这个对象的方法来完成某些功能;但是在Internet环境下,不同语言,不同平台对数据、甚至是一些基本数据类型定义不同,给不同的服务之间传递对象带来的很大困难。由于基于文本的消息本身是不包含任何处理逻辑和数据类型的,因此服务间只传递文本,对数据的处理依赖于接收端的方式可以帮忙绕过兼容性这个的大泥坑。

  此外,对于一个服务来说,Internet与局域网最大的一个区别就是在Internet上的版本管理极其困难,传统软件采用的升级方式在这种松散的分布式环境中几乎无法进行。采用基于文本的消息传递方式,数据处理端可以只选择性的处理自己理解的那部分数据,而忽略其它的数据,从而得到的非常理想的兼容性。

  SOA的出现对于软件架构设计产生什么影响?

  无论现在的IT系统是否牵涉到基于Internet的业务集成,采用SOA推荐的架构都对提高系统的扩展性有很大帮助。

  使用基于文本方式的SOAP调用,摆脱远程调用中出现的函数参数类型等与数据无关的信息,保证所有SOAP传递的都是有意义的商业数据。依赖于Schema,而不是类定义对这些数据进行解释。传统的三层Web应用将可能变成四层结构:传统意义上的商业逻辑层将被进一步划分为存放每个会话(Session)信息的客户逻辑层和与状态无关Sateless的SOA层。

  “基于构件技术的软件开发方法是未来的主流技术,而基于构件的SOA架构是一次信息系统架构上的变革,也是现实信息服务的客观需求。”微软大中华区企业服务部总经理辛儿伦在接受采访时表示。

  事实上,目前微软的大多数软件特别是新的版本都是在基于构件的SOA概念设计上研发出来的。除了做内核部分还要通过编码之外,其余都是通过构件化开发的。同时,微软内部的IT系统也是SOA架构,比如公文审批、报销、跟ERP等应用系统的整合。因此,可见SOA对于微软来说,本身就已经是SOA概念的身体力行者。

  SOA能解决哪些问题?

  我们最怕遇到的两件事,一是公司进行业务整合,二是公司开展新业务。因为对这对我们来说,两件事都意味一个结果——持续熬夜加班。有人将异构系统环境与需求的不断变化,看作多年来应用软件的两大“癌症”,使得软件从业人员长年累月陷入“修修补补、穷于应付”的工作状态,企业也根本无法做到对市场变化作出快速响应。

  追本溯源,是因为于当初的软件设计思想和软件架构有问题。过去,应用软件基本上是按照业务流程逐一对应开发的,每一个应用自成体系、自立门户。

  事实上,任何应用都包含最基本的三个内容:界面、业务逻辑和数据展现,应该可以重复利用。但就因为每个应用自成体系,每开发一个新应用,就需要重开发一遍界面与数据展现,重写一遍业务代码,浪费了大量的时间和人力。

  而SOA就是力求改变过去纵向开发应用的模式,将软件按照业务需求,定义成大小合适的“组件”,作为企业共享资源,随时调用。SOA的核心就是找到将软件组织在一起的方法。

  SOA能给企业带来什么好处?

  SOA带给用户的好处很明显,除了前面提到的可以降低开发成本,提高系统集成度和响应速度等,还能帮助解决因为系统升级带来的烦恼。对于传统的软件升级对用户就意味着每三年来一次革命,不仅需耗费大量金钱,还会闹得人仰马翻。现有的ERP等企业软件几乎都是铁板一块,当某一点业务变化时,某一点功能需要调整时,必须全部升级,这不但造成升级TCO成本太高,而且牵一发动全身,质量无法保证。而未来SOA构架下的企业软件就像是一个不断进化的生态过程,某些“服务(业务组件)”不断地局部升级,新的“服务”不断地加入,只有这样的系统才能真正做到RTE实时企业,快速适应业务变化。

  但是,SOA也不是万能的,正如微软大中华区服务部总经理辛儿伦所说,SOA架构变革能不能成功,最重要的是人、策略、管理及领导文化。

  SOA是否能促使软件产业的发展及进化呢?

  过去的面向对象、技术组件的概念之所以没有获得大家期望中的成功,主要原因在于其关注点在技术,一个技术组件往往用某单一技术来实现一个技术功能,如一段JAVA 实现的日历。对用户没有很大的意义。另外,技术组件是紧耦合的,组件粒度通常过小,不但组装成本高,而且一个组件的改动对另一组件的影响很大,从而影响质量。但业务组件(基于SOA架构的组件,也叫服务)却将注意力集中在业务功能上,每一个业务功能必须是完整的,至于实现这一个业务功能的技术可能涉及很多,如数据库、JAVA、JSP等。也就是说,在一个业务组件中,可能所有这些技术同时出现,以实现现实中所需的业务功能,如财务报销、病历、税务等众多方面。它强调技术无关性,是对业务对象的抽象。同时,“服务”的安装,未来的升级维护等应该被考虑到,而不仅是一堆实现某功能的代码。

  另外,在范围上,SOA也要远远大于面向对象模式。面向对象的重用性只能局限于一个项目,一个应用。但在实际应用中,跨部门、组织、行业的应用之间互联互通,是经常发生的情况。例如药监局与省政府之间,有的时候也是有需要互联互通的模式。

  总结

  SOA伴随着无处不在的标准,新的软件设计思想和软件架构,为企业的现有资产或投资带来了更好的重用性。SOA时代也是是为双赢或多赢的协同创新的时代,协作而非竞争正在悄悄改变软件产业的格局。(责任编辑:崔平)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 标准体系已成中国SOA走向实际应用的瓶颈 (12-13) · BEA在上海隆重举行BEAWorld 2007盛会 (12-12)
· 降低总拥有成本 为构建SOA提供坚实的基础 (12-12) · “开源”SOA正在改写IT规划方程式 (12-12)
· SOA成未来必然发展趋势 实施要分五步走 (12-12) · 利用SOA架构多个层面实现“一站式”服务 (12-12)
· 聚焦首个全面支持国际构件标准的中间件产品 (12-12) · 真实的SOA世界距离我们有多远? (12-07)
· SOA与SaaS:构架与服务两者将在何处相遇? (12-07) · 业界动态:SOA软件加入微软业务流程联盟 (12-06)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网站建设市场重新洗牌 一卡通引领革命潮流
· 北京加快信息化建设 医保一卡通年底前启动
· ERP案例分析 SaaS带来冲击 IT服务商面临挑战
· 通方期货CRM解决方案 房地产行业CRM解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统