SOA(Service-OrientedArchitecture)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA的概念最初由Gartner公司提出,由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,因此当时SOA并未引起人们的广泛关注。而伴随着互联网的浪潮,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司的业务打包成独立的、具有很强伸缩性的基于互联网的服务,人们提出了Web服务的概念,这可以说是SOA的发端。
Web服务开始流行以后,互联网迅速出现了大量的基于不同平台和语言开发的Web服务组件。为了能够有效地对这些为数众多的组件进行管理,人们迫切需要找到一种新的面向服务的分布式Web计算架构。该架构要能够使这些由不同组织开发的Web服务能够相互学习和交互,保障安全以及兼顾复用性和可管理性。由此,人们重新找回面向服务的架构SOA,并赋予其时代的特征。需求推动技术进步,正是这种强烈的市场需求,使得SOA再次成为人们关注的焦点。
目前,我们看到由SOA带来的更大趋势有:更小的IT商家会为他们的运营配置更复杂的客制化商业逻辑,同时在外围配以功能性软件包。在大的企业中,客户内勤制度将为以在复合SOA应用中客制化为支持的标准ERP包取代。数据中心SOA解决方案将与包括ETL在内的传统IT技术集合相结合,实现巩固操作数据,B2B通信的FTP,为后台流程管理进行工作日程安排,以APM(软件性能管理)管理SOA合成软件中的软件包部分。
具体到SOA的应用,我们看到,税务部门、银行机构都在做数据大集中,而民航机票订票系统也要实现数据大集中,否则业务就没法办理。从整体来看,大型公司、机构都要解决自己的电子商务、电子政务的建设问题。这些公司和机构在信息系统建设时,不仅要考虑自己的系统建设问题,还要考虑与外界其他系统间的互联互通问题。否则,就很容易成为信息孤岛。而采用SOA解决系统之间的互联互通问题很方便。
回顾IT技术的发展,我们会发现,总有一些前沿企业提供技术,当这些技术与用户的需求相吻合时,这些技术就变得流行起来。目前大量的厂商也已经开始全力支持SOA。其中IBM不仅推出了许多基于SOA的技术,在国内还举办了SOA大学生竞赛,已开始为基于SOA的系统开发积累人才。BEA从中间件入手,在SOA方面也已有了较大的优势。SAP将要推出基于SOA的ERP,Oracle则已开始了把收购来的Peoplesoft公司的软件往SOA上迁移的工作。可以说,国外几乎所有的大公司都在做SOA。
SOA能够使企业内部动态数据服务的创建变得更加方便,同时,还能够使企业开发人员创建影响这些服务的复合应用程序。事实上,SOA包含整合信息孤岛、通过虚拟化技术将应用不同系统(异构)和分布在各地的应用,呈现为一个统一、安全、可管理的整体。为了达到这一目的,还需要所有的信息系统使用同一个开放标准,来保证系统间实现联通。当实现了这些整合以后,业务部门、人力资源部件和财务部门的业务就通过业务流程贯穿了起来。从组织架构的角度讲,这实际上实现了水平整合。
我们也看到,作为一个具有发展前景的应用系统架构,SOA尚处在不断的发展中,自然存在许多有待改进的地方。目前,SOA在可靠性、安全性、编制、遗留系统支持和语义方面也存在着一些不足。SOA还没有完全为事务的最高可靠性,不可否认性(nonrepudiation)、消息一定会被传送且仅传送一次以及事务撤回做好更充足的准备,不过离标准和实施技术成熟到可以满足这一需求的程度并不遥远。
在过去,访问控制只需要登录和验证;而在SOA环境中,由于一个应用软件的组件很容易去跟属于不同域的其他组件进行对话,所以确保迥然不同又相互连接的系统之间的安全性就复杂得多了。批评SOA的人士经常会提到性能是阻碍其采用的一个障碍,但技术的标准化总需要在速度方面有一些牺牲。这种怀疑观点通常针对两个方面:SOA的分布性质和Web服务协议的开销。不可否认,任何分布式系统的执行速度都不如独立式系统,这完全是因为网络的制约作用造成的。当然,有些应用软件无法容忍网络引起的延迟,例如那些对实时性要求很高的应用软件,所以在应用SOA架构之前,搞清楚它的适用范围就显得很重要。因为需求,所以发展,技术的推动性在如今的社会中已经变得非常重要。
(本文系通信世界网今日评论专栏稿件,谢绝转载,刊登只为传播更多信息,并不代表本网观点。)
·虚拟化与SOA新说 最终统一于服务虚拟化? [11/9] |
·SOA造就流程公司2.0 [11/9] |
·SOA的业务价值分析:重用和透明 [11/9] |
·何时采用SOA,何时不采用SOA [11/9] |
·SOA的革命意义 [11/9] |
·SOA新手入门指南 [11/9] |
·SOA的真相是什么? [11/9] |
·SOA的架构理念是什么? [11/9] |
·SOA能做什么? [11/9] |
·什么是SOA? [11/9] |