SOA的应用
来源:计算机世界 更新时间:2012-04-15


  随着信息化工作的不断深入,在众多企业信息化和政府信息化的建设过程中,逐渐呈现出涉及生产、运营、管理的各种信息资源的二次开发和整合应用的需求。不少企业都拥有其在某领域内的简单应用集成,如管理信息系统 
(MIS)、企业资源规划系统(ERP),以及办公自动化(OA)和工作流管理系统(WFMS)等等。而这些应用软件都是基于某种操作系统或基础软件架构平台来直接构建,并没有一个通用的、开放的、扩展能力强的基础软件平台来支持,还可能出现不同种类的操作系统、应用软件、系统软件和应用基础结构的相互交织。若是重新建立一个新的基础环境并不现实。

如何才能让不同的应用平台与软件系统之间彼此连通,共享功能和数据呢?“面向服务的体系结构”为我们提出了一个解决方法。

面向服务的体系结构(service-oriented architecture,以下简称SOA)几年前作为一种技术概念被提出,并逐渐发展成为今日热门的应用平台开发框架技术。

SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务,从而保护了现有的IT基础建设投资。

无论是基于Sun公司的J2EE的三层应用开发和还是基于微软的.NET的三层应用开发,SOA实现了跨平台的服务互用。

据Gartner预测,2007年有超过50%的企业采用SOA体系,到2010年该比例将会达到80%。

基于SOA的应用平台

真正意义上的企业应用平台,指的是某一类操作系统和应用系统之间的某一类系统软件。它屏蔽各操作系统,网络和数据库的低层细节,为分布式应用提供基础框架;可以方便地开发、运行和管理分布式应用系统,而且还有强大的功能和可扩展性,可以满足不断增长的需求。

越来越多的实践表明,应用平台应该先寻找一个基础框架。在这个框架之上,企业根据即时的需求,对应用系统或功能模块进行组合,甚至是可以更加细分的对象组件。

应用平台应该实现多个系统间数据采集的整合,可以和不通的数据源、各类关系数据库、文件、图形数据库,应用系统进行连接和数据读取,对数据进行加工处理,将需要的数据提交给另一个系统使用,同时支持不同地域间的应用系统的集成;支持多种数据格式(如普通文件,XML, SWIFT),提供数据格式转换功能;提供数据压缩、数据加密和签名、数据填充、数据格式翻译消息过滤等强有力的数据加工处理能力;支持事务功能;提供故障恢复能力;提供标准的系统集成适配器和应用集成适配器的开发框架,提供方便易用的配置工具,具有很好的平台可移植性。

目前很多企业和政府部门内部都已经搭建了信息管理系统。但出现各系统之间的不互通,存在重复劳动,各个系统之间信息不能同步更新等问题。

SOA的出现能很好地解决这个问题。企业在构建内部应用时,可以把新的系统搭建在平台之上;通过SOA技术,可以将应用系统切实地捆绑在一起。对于企业内部原有的应用系统来讲,通过平台的接口技术,做到与这些系统的实时链接,共享信息,同步数据更新,实现有效的应用集成。内部信息集成可以逐渐演变为企业内外信息集成。  

SOA的实现方式

基于Web Service的实现。Web Service技术,能够很好地克服异构系统之间平台、语言、协议的差异,实现无缝、松耦合的系统集成。Web Service是一种技术规范,而SOA是设计原则。Web服务中的WSDL,是一个SOA配套的接口定义标准,这是Web服务和SOA的根本联系。从本质上来说,SOA是一种架构模式,而Web服务是利用一组标准实现的服务。

基于消息中间件的实现。中间件作为基础层次,在异构平台中分布对象之问对消息进行驱动的、透明的、异步的、基于消息内容的消息传输。

使用基于REST构架Web2.0的实现。REST,它使Web2.0底层的IT架构彻底地简化,让他们变得异常简单,想用就用。在REST的世界中,所有的东西都被看作资源,不管是文件还是图片,也不管是txt格式还是xml格式。而对资源的操作简化为创建、获取、更新、销毁四种,它认为所有的事情都可以通过这四种操作来实现。最后具体的使用协议只是最基础的、最简单的HTTP协议,没有复杂的交互。

在大企业内的很多大型的SOA环境并不是完全基于Web service的,它们可能是基于CORBA,或者基于ESB。它们也可能是在标准的应用服务器上构建的定制的框架。

从以技术概念被提出,予以实现至今,SOA可以实现大多数的接口标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建新的应用;免予客户或服务消费者服务实现的改变所带来的影响;在升级单个服务或服务消费者时无须重写整个应用,也无须保留已经不再适用于新需求的现有系统。

尽管有关SOA的开发、部署、管理方式的争论此起彼伏,但实际SOA的用户无处不在,并且呈增长趋势。

总而言之,SOA可以借助现有的应用来组合产生新服务的敏捷方式,为企业构建应用平台提供更好的灵活性。随着企业应用平台的成熟及应用技术的不断发展,为企业信息化和政府信息化的继续深入有了一个理想的解决方案。