论SOA在系统集成中的应用

2009-09-29 03:41
中国教育信息化·高教职教 2009年9期
关键词:系统集成

张 乾

摘 要:系统集成是Web Service和SOA的主要应用领域,集成技术主要用于解决数据库爆炸和信息孤岛问题。集成通过自适应技术来整合IT信息资源,发挥IT的整体作用,集成技术包括了连接、管理、规范和整合企业内外的信息。随着Web Service和SOA的不断成熟,一种基于SOA的集成框架ESB也日趋完善。ESB融合了EAI和B2B的优点,采用ESB可以使系统集成更方便、更经济。

关键词:SOA 系统集成 Web Service ESB

中图分类号:TP303文献标识码:A 文章编号:1673-8454(2009)17-0081-04

一、概念

系统集成泛指连接、管理和组合各种企业内和企业间的系统,使集成后的系统能以统一的方式互联互操作以支持业务过程的自动化技术。将两个或者两个以上的系统进行集成时主要涉及组织、角色、任务和过程的定义和管理。系统集成的主要工作有集成方案的确定,集成功能范围的划分,工作流系统的创建改造,数据格式的规范,组织模型的统一等。

SOA(Service-Oriented Architecture),一般翻译为“面向服务的体系结构”,它是一种良好分布式软件架构模型,它将不同的功能单元(服务)通过单元之间的接口和契约联系起来。接口采用中立的方式进行定义,独立于实现服务的硬件平台、操作系统和编程语言,使得构建的服务可以以一种统一和通用的方式进行交互。所以,SOA是将软件组织在一起的抽象概念。

二、系统集成

系统集成是一种新兴的服务方式,指在企业范围内外,将多个应用系统的过程、软件、标准、数据库和硬件集成在一起,使集成后的系统成为一个无缝运作的系统。系统集成的本质就是最优化的综合统筹设计,对一个大型的综合计算机网络系统,系统集成所要达到的目标——整体性能最优,即所有部件和成分合在一起后不但能工作,而且全系统是低成本的、高效率的、性能匀称的、可扩充的和可维护的系统。一般的系统集成包括业务过程集成、应用集成、数据集成和功能集成。通过集成可以增进与客户的关系,增强供应链间的联系,改善内部流程,减少市场周期等。我们经常把系统集成分为:表示集成、数据集成和功能集成(如图1所示),另外API集成是所有集成的基础。系统集成实现的关键在于解决系统之间的互联和互操作性问题,它是一个多厂商、多协议和面向各种应用的体系结构。这就需要解决各类设备、子系统间的接口、协议、系统平台、应用软件等与子系统、建筑环境、施工配合、组织管理和人员配备相关的一切面向集成的问题。

目前系统集成的领头公司主要有:IBM、EBA、Microsoft、Sybase等,它们都很好地实现自己的系统集成的解决放方案。

三、SOA的关键技术

与SOA相关的技术很多,主要有XML、Web Service、CORBA(DOM、EJB)、ESB、SOAD、BPM(EAI、B2Bi)等。

1.SOA

SOA是目前IT领域的热点,它是具有分布、协作、共享特征软件的首选体系结构。

SOA的关键是“服务”的概念,W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化。”

Service-architecture.com将SOA定义为:“本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。”

Looselycoupled.com将SOA定义为:“按需连接资源的系统。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合关系。” 它是一种架构模型,可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。

Gartner则将SOA描述为:“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。”

SOA支持将业务功能单元作为连接服务或可重复进行集成,在需要时可通过网络访问这些服务或任务。SOA是一种松散耦合和粗粒度的服务结构,它将服务组合成各种应用程序,提高了代码的重用率、方便地复用各种应用资源,使业务更加灵活和便利,增加功能的同时减轻了工作量。SOA原型的一个典型例子就是CORBA(公共对象请求代理体系),随着Web Service技术的成熟,SOA也有了进步,主要体现在以XML为基础的技术上。在Web Service中通过WSDL来描述接口,这样系统的动态性、灵活性、自治性就会有很大的提高。

SOA的主要组件结构如图2所示。SOA是通过http传递的SOAP消息。SOAP(简单对象访问协议)是一种基于XML文本的通信协议,它是一种轻型的分布式计算协议,在分布式环境中交换信息。Http允许SOAP利用Web服务器、代理服务器和防火墙等进行投资,达到简单、可扩展的目的。

2.XML

XML(Extensible Markup Language)可扩展标记语言,是一套定义语义标记的规则,也是元标记语言,用于定义其他与特定领域有关系的、语义的、结构化的标记语言的句法语言。XML具有简明有效、易学易用、开放、国际化、标准高效、可扩展等特点。它是一种简单、灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。使用XML有以下好处:使搜索更有意义,开发灵活的Web应用软件更简单,可实现不同的数据集成,适用于多种应用环境,方便客户端的数据处理和计算,数据标准满足个性化要求,局部数据可随时更新,与现有的Web发布机兼容,可扩展性高和有良好的压缩性能。

3.Web Service

Web Service是由URI标识的软件应用,其接口和绑定可以用XML来定义和描述并且可以被发现,与其他软件通过基于Internet的协议以XML消息交换方式直接交互。Web Service是实现SOA的具体方式之一,它是架构在XML和Internet之上的分布式计算技术。Web Service是系统集成中用来解决应用程序之间相互通信的技术,同时也是描述一系列操作的接口。在Web Service中需要一系列标准的支持,例如WSDL、UDDI、SOAP等,这些标准在角色、操作和构件三者之间起连接作用,如图3所示。

(1)WSDL(Web Service Description Language)包含文档或面向过程消息的端点操作信息的XML格式网络服务描述,可以绑定描述与SOAP、HTTP GET/POST和MIME技术。

(2)UDDI(Universal Description,Discovery and Integr-ation,统一描述、发现和集成)是一个规范,可以用于以Web Service为基础的信息注册,是一个公用的可接入集合,以登记的形式将信息登记出来以便可以发现这些服务。

(3)SOAP(Simple Object Access Protocol)是一种轻量级的编程,常用于没有控制中心、分布式的环境中交换信息,它以XML为基础,一般由信封、编码规则、远程过程调用和应答规则、捆绑方式组成。

4.CORBA、DOM、EJB

CORBA是Common Object Request Broker Architecture的缩写,简称公共对象请求代理体系,它由国际对象,管理组织OMG指定。在该环境下开发的软件既可面向对象又具有可重用性、可移植性及可操作性等特点。CORBA是一种分布式计算标准,其主要分三层:对象请求代理、公共对象服务和公共设施。CORBA是一种应用于开发和配置分布式应用的服务器端中间件模型规范,包括:抽象构件模型、构件容器结构和构件的配置以及打包规范。

5.ESB

ESB(Enterprise Service Bus)采用SOA原则,在大粒度服务级别通过事件驱动和基于XML的消息引擎,以与实现无关的方式集成企业应用的新型标准。它使用许多可能的传递消息协议来负责适当的控制流甚至还可能是服务之间所有消息的传输,相当于计算机的系统总线。模块(服务)都以松耦合连接到BUS上,以此方式来提高服务效率,ESB主要有智能路由(Routing)、传输(Transformation)和事件(Event)组成,如图4所示。

6.SOAD

SOAD(Service-Oriented Analysis and Design,面向服务的分析与设计),是专门为面向服务的体系结构范型设计的软件建模和开发方法,它建立在早期包括面向对象的分析和设计以及业务过程管理在内的过程开发基础之上。所有的设计方法都提倡信息隐藏、抽象和关注点分离。但是SOAD加入了对服务仓库、服务编排和企业服务总线的设计方法。SOAD是以架构为中心,以用例和业务过程驱动,迭代式开发方法。

四、基于J2EE的系统集成解决方案

不管是C/S还是B/S结构的系统软件,最终的目的只有一个——对各种服务的集成。软件技术发展到今天,EIS的集成出现了两大主流,即SUN的J2EE方案和MS的.NET方案,他们要做的都是将不同的服务进行集成后统一接口暴露给客户端。J2EE并非一个产品,而是一系列的标准。J2EE(Java 2 Enterprise Edition)技术的基础是Java 2平台,它提供了对EJB、Servlet、JSP、XML等技术的全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发、部署和管理等复杂问题。事实上,J2EE已经成为企业级开发的工业标准和首选平台。J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。

J2EE平台通过新的JAX-RPC1.1 API提供完整的Web服务支持,这种API很好地支持基于Servlet和企业Bean的服务端点。JAX-RPC1.1基于WSDL和SOAP协议提供了与Web服务的互操作性。J2EE平台也支持Web Services for J2EE规范(JSR 921),它定义了Web服务部署需求并利用了JAX-RPC编程模型。J2EE1.4平台有以下优点:提供了一个多层应用程序模型,这意味着应用程序的不同部分可以运行在不同的设备上。J2EE结构定义了一个客房机层,一个中间层(由一个或多个子层组成),以及一个EIS层。基于容器的组件管理,J2EE基于组件开发模型的中枢容器(Container)概念,容器提供了组件服务的运行时(Runtime)环境,组件可以期望它们的服务在任何J2EE平台上都有效。所有的EJB容器提供对EJB组件的事务和生命周期管理的自动支持,并支持对EJB的查找或其他的服务。容器还提供对企业信息系统的标准化访问。J2EE1.4平台升级新增加的技术大部分和Web服务相关。在J2EE1.4平台下,开发、部署、发现Web服务变得非常方便。J2EE1.4提供了Web服务总框架,如图5所示,主要包括了:Web Services for J2EE、JAX-RPC、SAAJ、JAXR、Connector Architecture1.5等,其中JAX-RPC是J2EE1.4平台中Web服务的核心技术。除此之外,J2EE还声称支持WS-I Basic Profile1.0。

在J2EE平台下,Web服务器通过两种方式访问J2EE应用程序,一种是携带一组类型参数(最初的Web服务版本)的RPC风格调用(同步和异步),这种类型的服务调用非常类似传统的方法调用,使用在分布式对象和RPC实现中;另外一种则是消息传递风格调用(同步和异步),这种类型的服务调用类似传统的消息系统。客户在访问JAX-RPC API创建的Web服务,JAX-RPC就使用Servlet来实现相应的Web服务。Web服务的客户也可以通过Bean的服务端点接口访问无状态会话Bean。如果不采取消息的同一规范,则Web服务的客户不能访问其他类型企业的Bean。

五、总结

SOA将应用程序不同的功能单元,通过组件(服务)之间接口和契约联系起来,甚至将不同的应用系统整合成一个功能强大、服务性能强的系统。其接口采用中立的方式进行定义,我们一般称之为松耦合。松耦合的系统有很好的灵活性,当整个应用程序的每个组件的内部结构和实现逐个发生改变时,它能继续存在。接口独立于硬件、操作系统和编程语言,使得系统中的服务可以统一和通用的方式进行消息传递和交互。通过使用基于XML的语言WSDL来描述接口,相应的服务已经转到更动态且灵活的接口系统。以SOA为基础的系统集成很好地解决了信息孤岛的问题。

参考文献:

[1]全国计算机技术与软件专业技术资格(水平)考试办公室,2006年下半年试题分析与解答.北京:清华大学出版社,2007.

[2]张友生.系统分析师技术指南[M].北京:清华大学出版社,2007.

[3](美)科拉夫兹格,(美)本克,(美)斯拉姆著,韩宏志译. Enterprise SOA中文版——面向服务架构的最佳实战[M].北京:清华大学出版社,2006.

[4]梁爱虎.SOA思想、技术与系统集成应用详解[M].北京:电子工业出版社,2007.

[5]毛新生.SOA 原理·方法·实践[M].北京:电子工业出版社,2007.

[6]Stephen R.Schach.面向对象与传统软件工程[M].北京:机械工业出版社,2006.

[7]史济民等.软件工程——原理、方法与应用[M].北京:高等教育出版社,2002.

[8]喻坚,韩燕波.面向服务的计算:原理和应用[M].北京:清华大学出版社,2006.

[9]吴维元等.Web服务数据传输通道的安全性分析[M].北京:网络安全技术与应用,2008.2.

猜你喜欢
系统集成
加氢站与调压站能源供应系统集成技术及应用
试析汽车产业智能制造中的信息化系统集成
工业企业系统集成技术 系统集成技术与信息化集成系统(下)
“系统集成”式的改革
车牌识别与视频监控系统集成探讨
全舰计算环境体系结构和系统集成框架