SOA实例:基于SOA的OA与ERP的整合应用

         0 引言
        办公自动化(Office automation,OA)系统是实现办公自动化的信息系统。企业资源计划系统( Enterp rise Resource Planning, ERP)是对企业中的物流、资金流和信息流进行全面集成管理的信息管理系统。企业通过ERP系统实现供应链的全面管理。这两套系统一个侧重于工作流审批,一个侧重于企业内部资源之间的数据流动。它们一般都彼此独立运作,提供各自独立的功能。但是在企业中,经常有些业务流程是贯穿于ERP和OA两个系统当中的。如采购申请流程中,申请审批、流程的流转是由OA系统完成的,填写采购用款申请单、付款、做凭证则是ERP系统的功能,因此用户不得不频繁地切换两个系统,才能完成采购申请。此外,企业在利用OA系统进行工作流审批后,产生了多业务数据,这些数据同时可能是ERP系统的数据源,为了避免数据的重复以及保证数据源的唯一性,也就产生了OA系统与ERP系统集成的需求。目前在企业中常见的OA2ERP系统集成方法,归纳起来有如下两大类:
        1)基于应用编程接口(App lication Programming Interface,API)的封装集成模式。利用OA与ERP各自提供的访问底层数据库的函数和AP I接口,实现两系统之间的数据访问
        2)基于数据表的互访模式。采用中间缓冲表,以一致的数据模型存储不同系统间的共享数据,通过直接对两系统的数据表进行操作的方式,实现不同系统间的数据访问,以及数据的一致和实时传递。
以上方法属于紧耦合的系统集成方法。紧耦合的集成方式将影响系统的灵活性和扩展性,阻碍业务的流程调整和优化,不利于企业的业务发展。为了解决上述问题,我们需要一种新的企业应用集成方式。该方式不仅能保证原有系统的数据安全性和逻辑安全性,而且还能够实现系统之间的松耦合,方便系统流程的重组和优化。这种方式就是面向服务架构( Service2Oriented Architecture, SOA)的企业应用集成方式。

        1 OA与ERP的整合的必要性
        1)保护了现有的IT基础建设投资在企业中软件服务的整合需求是当前企业中最热门的需求。这种需求在OA与ERP之间也同样存在。利用对现有的OA系统与ERP系统的重用和整合来解决新的业务需求,不仅可以低成本高效率地满足新的需求,也有效地保护了现有的IT基础建设投资。
        2)实现了两个系统的优势互补OA系统的最大特点是工作流管理。它具有强大的工作流定制功能,可以适应于企业各种形式的审批表单和流程的需求,并能满足多层次的审批结构、支持较复杂的审批层次。而ERP产品的工作流更多地实现了业务上的逻辑数据流,它并不着重于行政结构上的审批,因此对于国内很多无法摆脱行政审批结构的企业来说, ERP软件在这一方面就显得逊色。此外ERP系统开发模式通常是将业务流程硬编码到应用系统的整体结构中,每次业务流程的修改都可能引起程序结构的大幅变动。这种僵硬的体系结构增加系统复杂性,阻碍系统灵活性。通过ERP和OA的整合,利用OA的强大的工作流定制功能,可以很好地解决ERP系统存在的问题。ERP系统是面向功能的事务处理系统,具体解决某个或某些领域的问题,提高事务处理的效率和水平;工作流管理的着眼点是在企业的整个业务层,提高企业的业务处理水平。在工作流管理的支撑下,通过集成具体的业务应用软件系统(如: ERP) ,可以良好地完成对企业经营过程运行的支持,在更广的范围内,不同的时间跨度上做好企业的经营管理,提高企业的整体水平和竞争力。
        3) 有利于企业业务流程重构( Business Process Reengineering,BPR)企业生产经营活动是由各种业务流程交织在一起组成的。建设ERP系统的重要工作之一就是对用户的业务流程的分析、建模和实施。在市场竞争日趋激烈的时代,客户需求瞬息万变,产品生命周期不断缩短,技术不断创新,企业要在这样一个竞争和变化的外部环境下生存,必须不断地调整和优化企业的各种业务流程,对流程进行重构。基于SOA架构的ERP和OA系统的整合方案,通过业务流程的定义,灵活地将ERP系统的功能连接在一起,快速完成企业BPR和ERP的重构。

        2 基于SOA的OA与ERP的整合应用
        2. 1 基本思想
        OA系统中的工作流[ 3, 4 ]模块包括工作流过程定义组件、工作流引擎组件、工作流监控组件、工作流客户端和应用接口组件等部分。过程定义是建立工作流的过程,将企业的实际业务过程转化为计算机可处理的工作流模型。工作流引擎负责对工作流进行实例化、执行和管理。监控组件负责对工作流的执行进行管理、分析与控制。工作流客户端负责人机交互,提供工作流执行的接口,帮助完成业务过程的执行。相关应用程序接口负责与应用程序的接口,提供工作流执行时所需要的软件以协助工作流的正常执行。通过对企业实际业务流程的分析,抽取出原子级的企业业务活动。首先通过工作流过程定义组件将这些活动以及与活动相关的信息、人员和活动对应的Web服务统一集成起来,然后通过工作流引擎组件按照所定义的业务流程模型进
行业务的执行,在适当的时间激活相应的Web service,传递Web service的参数,获取Web service的处理结果,从而实现OA系统和ERP系统全面集成。基于SOA的OA与ERP的整合应用的架构体系图如图1。


        2. 2 基于SOA架构的ERP系统
        2. 2. 1 SOA的本质和实现技术
        SOA是一个整合各种服务的架构平台。核心本质是实现服务和技术的完全分离,从而在最大限度上实现服务的集成和重组。SOA体系架构的主要特点是粗粒度和松耦。服务之间的松耦合是指服务具有中立的接口(没有强制绑定到特定的实现上)特征;服务的粗粒度是指服务可以实现更多的功能,并且依赖于更大的数据集。SOA的实现技术包括Web service和企业服务总线。
        1)Web services技术使用一系列标准和协议实现相关的功能,服务提供者用WSDL (Web服务描述语言)描述Web服务,用UDD I(统一描述、发现和集成)向服务注册代理发布和注册Web服务,服务请求者通过UDD I进行查询,找到所需的
服务后,利用SOAP (简单对象协议)来绑定、调用这些服务。因为WSDL中给出了Web service的地址URL,在本文中外部直接通过WSDL提供的URL进行相应的Web service调用,而不使用UDD I机制。
        2)企业服务总线以中介的身份处于服务请求者和服务提供者之间,这样服务请求者任何的服务请求,先送到服务总线,由服务总线将请求信息转给服务提供者,得到返回信息后,服务总线再传给服务请求者。
        2. 2. 2 基于SOA的ERP系统的实现方法
为了实现OA与ERP系统之间的整合应用,必须通过构建SOA架构平台使得ERP具有给OA系统提供服务的功能。构建基于SOA架构的ERP系统包括两个方面:
        1)从接近实际业务的角度,结合SOA架构服务松耦合的要点,把ERP系统功能分解成粗粒度和细粒度的服务。如图1所示的系统体系结构中, ERP各个业务模块的功能如:库存管理、采购管理、销售管理、分销管理等作为粗粒度服务发布,而每个模块的功能又是由多个子功能组成,我们把这些子功能作为细粒度服务发布。如销售管理服务就由销售报价、客户订单、客户出货、客户档案等细粒度服务组合而成。每个细粒度服务利用数据访问逻辑组件对数据库表进行查找、更新、保存等操作。
        2)通过企业服务总线将这些分散的Web服务进行集中的管理。当服务请求者向服务总线发送请求信息的时候,首先是发给服务总线的代理服务,代理服务在收到服务后,转给业务服务,由它进一步转给外部服务提供者。
        2. 3 建立集成Web service工作流环境
工作流环境将用户定义的业务流程与ERP 的Web service关联起来,并管理和控制业务流程的运行,是对贯穿于OA和ERP系统的业务流程逻辑的具体实现。它主要包括流程定义和流程的执行、监控两大部分。
        2. 3. 1 流程的定义
流程的定义是将活动和相关的Web service、用户和数据信息关联起来,形成一个工作流引擎可解析的业务流程。建立活动与Web service的联系是其中的关键步骤。通过Web service的WSDL,可以定义活动所需调用的Web service,从而建立活动与Web服务的关联,一旦建立了活动与Web service的关系,活动的输入/输出就映射为Web service的输入/输出参数。
        2. 3. 2 流程的执行和监控
        1)将流程定义部署到工作流数据库中后,工作流引擎组件在按照流程定义文档推动流程流转时,发现某个活动需要调用服务,就通过URL 向服务总线上发送请求信息,Web服务总线根据管理器去处理事务,处理完后通知工作流引擎,然后工作流引擎执行下一个流程或任务;
        2)工作流引擎组件、Service Bus、Web service需要挂接在工作流管理和监控服务上,以便能监控业务流程的流程实例、活动实例以及相关Web service的运行情况。
        3 基于SOA的OA与ERP的整合应用实现
        3. 1 组织模型的统一OA系统和ERP系统都有各自的组织模型。OA系统的组织模型是服务于企业行政组织层面的, ERP的组织模型是服务于企业业务层面的。在工作流的建模过程中,工作流流程活动的执行者(也即工作流参与者)是参考组织模型建立的。所以有必须对两个系统的组织模型进行统一。本文中采
用对OA系统的组织模型重定义的方法,增加OA系统组织结
构的层次数量,把ERP用户和OA用户都在新的组织结构中
反映出来。
        3. 2 调用Web service的访问控制机制
        工作流引擎调用ERP的Web service时,需要进行身份认证,通过验证的用户,才能调用Web service接口方法。本文中通过ERP的身份认证Web服务接口方法实现调用Web service时的访问控制。在流程表单中输入ERP系统的用户名和密码,通过SOAP请求消息传递给身份认证Web服务,作为该Web服务的输入参数。在第一次访问Web service时需要进行身份认证,以后可以通过从Session (会话)中取得用户信息的方式持续访问,直至退出系统或者Session超时。
        3. 3 流程表单
        流程表单中的字段分三种类型:与流程相关的字段、与ERP系统相关的字段和其他字段。
与流程相关的字段如:采购申请中采购用款金额字段。当用款金额小于1万时,流程流转给财务主管审批;当金额大于或等于1万时,流程要流转给总经理审批。与ERP系统相关的字段,即为Web service的输入参数,在工作流引擎组件调用具体的Web service 的时候, 作为SOAP请求信息的一部分,传递给Web service的提供者。如采购申请表单中,采购物品的物料编号、采购数量等信息都要作为ERP的采购管理Web service的“采购信息保存”接口方法的输入参数。其他字段:如审批意见、领导建议和采购原因描述等,这些数据通过流程的流转实现信息的采集和共享,为管理和决策过程提供依据。
        3. 4 基于SOA的OA与ERP的整合应用建模
        1)用户登录OA系统后,根据OA系统的人员配置信息确定身份,此用户同时也获得了其相应的权限。
        2)身份确定后, OA系统根据此用户的权限范围内的工作流程和工作列表,提供流程表单。
        3)用户在工作流表单上填写数据,包括与流程控制相关的信息、与ERP系统相关的参数及其他字段信息。
        4)工作流引擎根据流程定义文档控制流程执行,当流程流转到某个需要调用Web service的活动的时候,发送SOAP请求信息给服务提供者。
        5)Web service利用数据访问逻辑组件对数据库表进行查找、更新、保存等操作。以采购申请为例,用户调用ERP的采购管理Web service的“采购信息保存”接口方法将采购的物料编号、采购数量、价格范围、供应商等存储到ERP的DB中。
        6)服务提供者实现服务之后,将SOAP返回信息传回给OA系统,其中包括单据编号和单据状态等。
        7)当工作流引擎收到ERP系统传来返回信息后,根据WSDL文档将SOAP返回消息解析成自己能够理解的内容,然后自动将其存入流程表单中。
        8)工作流引擎将工作流表单传送给服务器,然后根据工作流控制数据和组织/角色模型将流程表单传递给下一个执行者,并同时发送E2mail通知。
        4 结语
        基于SOA的OA与ERP的集成方案,可将ERP的各个功能组件通过发布成Web service、Service Bus进行集中管理与OA的工作流管理模块完全整合在一起,做到既能有效地进行软件服务的整合,又能实现松耦合的集成。通过把ERP中零散的功能通过业务流程连接在一起,从而改变了ERP系统原有的按照功能模块划分的模式,使ERP的每个功能业务通过工作流,按照业务流程模式灵活地执行结合,快速完成企业BPR和ERP系统的搭建,更好地完成对企业经营过程运行的支持,在更广的范围内,不同的时间跨度上做好企业的经营管理,提高了企业的整体水平和竞争。

 

posted @ 2008-07-02 21:25  齐.net  阅读(2424)  评论(4编辑  收藏  举报