基于SOA的B2B集成
 

2009-06-26 作者:陈 兵 来源:陈 兵的blog

 

当前,在向以客户为中心,以及向电子商务环境下企业间协同管理转型的过程中,企业的信息化系统正面临着巨大挑战。企业信息化的管理领域早已超出了企业内部资源计划与管理的范畴,企业对业务处理的速度、反应要求很高,一定要按照市场的变化不断地调整企业的业务流程,而且在不同行业,不同企业,甚至一个企业针对不同产品、不同客户和不同时间等不同条件下需要制定的业务流程会有很大的差别。管理、业务等各种需求不断变化对支撑系统造成的压力,要求IT 系统能够快速支撑新业务、新合作伙伴加入的实现,那么,留给系统开发和调试的时间就非常少,再加上新业务不断频繁的推出以及新合作伙伴的加入,这些不但增加了信息化工作人员的工作量,还给系统稳定性带来隐忧。

某大型设备制造企业A(以下简称A企业)是国内设备制造的重点企业,市场的激烈竞争决定了信息化在这家大型企业中的重要性。A企业在过去几年已经陆续实施了ERP,网站,MES,资金管理,办公自动化系统等。

A企业的 ERP系统已经成功支持A企业数年,其影响力己经逐渐扩展到A企业的合作伙伴的系统中。鉴于多个零部件供应尚和销售渠道相关信息系统的多样性,目前和A企业ERP与合作伙伴的连接采用第三方集成商自开发的平台,大多采用定时txt文本方式,存在接口数量多,数据量大,不易监控,管理,扩充、维护等问题。

虽然这个场景(是两个系统的基本集成问题—A企业与每个合作伙伴之间是简单的一对一)可能看起来很好地匹配了特定的当前需求,但是随着时间的推移,这种需求可能发展成更复杂的需求(如支持一个或多个应用程序实现更广泛的连接性场景。因此A企业需要在实现满足非常明确的需求的解决方案、努力预料未来的需求和定义跨企业的一致解决方案这三者之间作出选择。将企业的需要看作是总体上相对复杂的场景(如实现具有高服务质量和 Web 服务标准支持的 SOA 基础架构)可能是比较适合的。

在这种情况下,Web 服务 SOAP 标准或消息传递中间件可能是候选的集成技术。这个场景的一个重要的问题是,将来是否会出现需要集成其他系统的情况。一开始就使用可扩展解决方案可能会对未来的需要提供支持;但是必须在为构建这样的解决方案而付出的额外工作与解决简单的问题的最初需要之间保持平衡。

最终A企业认识到它们需要的是实现具有高服务质量和 Web 服务标准支持的 SOA 基础架构来支撑其业务发展。基于此,A企业选择使用Oracle的SOA套件来解决合作伙伴与A企业ERP的系统集成问题。

在实施基于Oracle的SOA套件来解决合作伙伴与A企业ERP的系统集成问题之前,我们概括一下大部分对 SOA 的描述所适用的原则对于我们的进一步工作是很有帮助的:

  • 利用显式的与实现无关的接口来定义服务。
  • 利用强调位置透明性和可互操作性的通信协议。
  • 封装可重用业务功能的服务的定义。

针对A企业的实际情况,构建一个典型的SOA整合应用需要下面几步操作:

1. 构建服务: 为了实现 SOA,应用程序和基础架构都必须支持 SOA 原则。启用 SOA 应用程序涉及到创建服务接口,服务接口可以直接也可以间接地通过使用适配器用于现有的或新的功能。这一步可能包括:使用应用程序或者技术适配器来激活服务中现有的业务逻辑,或者使用J2EE或其他语言写入新的业务逻辑。

2. 将服务配置到业务流中:实现服务编制这--业务流程可以使底层服务的更改变得更加简单。业务流程的高层表现形式--如业务流程执行语言(BPEL)、一种基于XML的用于表示服务编制的语言--为实现灵活的业务流程奠定了基础。

Oracle BPEL Process Manager,属于用于企业间集成的Oracle融合中间件产品,Oracle的SOA套件的组成部分之一。Oracle BPEL Process Manager的由许多开源项目组装在一起协同工作而构成的,所以,Oracle BPEL Process Manager的技术细节更为开放,这使得开发人员在使用Oracle BPEL Process Manager的过程中能够感觉更为亲切,能够更快地融入到该产品的使用中。

Oracle BPEL Process Manager通过将一系列同步和异步的服务组合到一个

端到端BPEL流程流中,由BPEL引擎负责解析BPEL语言,从而实现企业内部,企业间数据集成,业务流程的自动化,简化了基于面向服务的体系结构(SOA)开发应用程序的流程。Oracle BPEL Process Manager为设计、部署和管理BPEL业务流程提供了一个开发人员易于使用的可靠的解决方案。

3. 激活服务通信:这一步必须确保:服务与服务之间,或者服务与后端应用程序之间能够可靠地相互通信。SOA支持松散耦合。通信、数据传输以及信息路由,从最基本的级别来看,启用该基础架构涉及到规划功能来将服务请求路由和传递给正确的服务提供者。这些过程能够被企业服务总线(ESB)捕获,它们是服务通信的关键。本项目中,我们使用的是Oracle Service Bus(Oracle的企业服务总线,简写为OSB),可是为什么要使用OSB呢?

基础架构支持在不影响服务的客户端的情况下由另一 个服务实现替代原有的服务实现是至关重要的。这不仅需要根据 SOA 原则指定服务接口,而且需要基础架构允许客户端代码以独立于所涉及的服务位置和通信协议的方式来调用服务。这样的服务路由和替代是 OSB 的许多功能中的一部分。

4.接入:利用Oracle B2B Adapter提供多种协议的接入方式,如对于数据库,会提供比如DBAdapter的接入的手段,对于JMS,会提供JMS Adapter接入的手段,对于EDI会提供EDI Adapter等,对多个零部件供应尚和销售渠道相关多样性的相关信息系统进行整合和格式转换,例如,讲EDI 850格式转换成A企业相关系统所需要的格式。

除此之外,我们的还要确保服务安全(安全、审核、日志)和优化服务(有效地监视服务和事件是非常重要的过程),在A企业的项目实施中,分别采取Oracle Oracle Web服务管理器(用于服务的安全和策略管理)和Oracle业务活动监视(BAM,用于业务服务和流程的商业级监视以及优化)才实现。

Oracle BPEL Process Manager是Oracle公司在其它厂商某些类似产品出现之后才研发的一款专门提供企业系统集成的中间件产品。该产品在市场上出现的相对比较晚,一些B2B领域内的标准己经成熟,并且该产品的很多组成部分都是由一些比较受欢迎的开源项目组成,技术细节是公开的,标准也是成熟的,而且A企业及或作伙伴中很多都在使用Oracle数据库产品,因此相比其它公司类似产品而言,使用Oracle BPEM PM + OSB + B2B Adapter的解决思路更适合于A企业的目前和未来可预期的需求。

以下链接有最新ORACLE中间件的资料可以去看看:

http://wmdata.com.cn/oracle/iwom-bi/index.asp?frm=chenb


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织