企业应用集成企业应用集成鲍亮baoliang@mailxidianeducn西安电子科技大学软件工程研究所baoliang@mail.xidian.edu.cn2010-6-301方法集成西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/22方法集成简介方法集成简介方法级别上的应用集成允许企业通过公共方法级别上的应用集成允许企业通过公共的业务逻辑或者方法进行应用集成这可以通过定义能够共享方法的形式进行集成集成待共享的方法能够在一个中心服务器上部署或通过分布对象等方法在应用程序之署,或通过分布对象等方法在应用程序之间进行交换西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/33方法集成简介(续)方法集成简介(续)方法集成不是新的概念共享公共的流程方法集成不是新的概念,共享公共的流程已经有很长的历史始于将近20年前,形式是分布式对象和多层(multitiered)客户端/服务器形式(在层(multitiered)客户端/服务器形式(在一个为企业提供可重用的公共基础结构的服务器)服务器)在这里,“重用”是一个十分重要的概念。西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/44方法集成简介(续)方法集成简介(续)通过定义组公共的方法集合我们能够通过定义一组公共的方法集合,我们能够在企业的应用程序之间重用这些方法这样做的结果是对重复请求的方法或应用不需要再次开发,可以直接使用不需要再次开发,可以直接使用方法集成的核心就是为了在企业范围内做到重要业务流程最大限度的重用到重要业务流程最大限度的重用这种要求在应用集成中受到很多约束与限这种要求在应用集成中受到很多约束与限制西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/55方法集成简介(续)方法集成简介(续)造成这种限制的原因包括企业的内部策略造成这种限制的原因包括企业的内部策略(特定的流程是否原意与他人共享,是否商机等等存在商业机密等等)不能够选择一个一致的技术集合(不同应不能够选择个致的技术集合(不同应用系统在开发时采用不同的技术,要跨越不同的技术共享流程难度很大)不同的技术共享流程难度很大)在大多数情况下,对重用的限制主要是缺少对企业整体架构的理解和集中控制的能力西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/66力组合应用程序组合应用程序组合应用程序是指通过业务逻辑或方法将组合应用程序是指通过业务逻辑或方法将应用程序组织在一起这种组织方式是分布对象技术和事务系统(transactionalsystem)想要达到的终(transactionalsystem)想要达到的终极目标也是方法集成想要达到的目标也是方法集成想要达到的目标目前比较流行的SOA就是从这个方面给出目前比较流行的SOA就是从这个方面给出了一定的探索与实现西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/77方法集成的目标方法集成的目标在企业内部采用工具和技术进行集成不仅在企业内部采用工具和技术进行集成不仅是为了能够创建如何共享公共方法的机会,建种还要能够创建达到这种共享的基础设施我们应该集成系统,能够达到信息共享的我们应该集成系统,能够达到信息共享的目的,并提供能够重用业务逻辑的环境这种状态是种理想的目标这种状态是一种理想的目标西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/88方法集成的目标方法集成的目标虽然这种目标能够听起来比较理想但它虽然这种目标能够听起来比较理想,但它是一种最具“侵犯性”的企业应用集成方式数据集成,用户界面集成与应用程序接口数据集成,用户界面集成与应用程序接口集成一般不需要改变待集成的系统或已经集成好的系统集成好的系统方法集成需要大量改变企业应用程序的内部结构,以达到强度更大的应用集成效果改变已有系统的逻辑是一个代价昂贵的过西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/99改变已有系统的逻辑是个代价昂贵的过程,所以需要谨慎实施改变带来的代价改变带来的代价当对待集成的当对待集成的应用系统或集成好的应用系统进行改变时:统进行改变时改变的数量越大其代价相大,其代价相应也越高西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1010方法集成思而后行方法集成:三思而后行考虑到方法集成的侵入性和代价企业必考虑到方法集成的侵入性和代价,企业必须清晰理解这种方法是机遇与挑战并存的能够在不同的应用系统中共享公共的业务能够在不同的应用系统中共享公共的业务逻辑,从而达到集成这些应用系统的目的这种方式带来了巨大的机遇的——这种方式带来了巨大的机遇然而,伴随着集成的侵入性和代价,实现然而,伴随着集成的侵入性和代价,实现过程中的成本会抵消许多机遇带来的潜在利益利益方法集成,还是需要企业决策者三思而后行西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1111行方法集成个例子方法集成:一个例子方法集成个典型的案例就是在方法层面方法集成一个典型的案例就是在方法层面上将两个或多个应用程序“捆绑”在一起,集从而达到集成业务流程和数据的目的考虑这样一种情况:考虑这样种情况:两个存在于同一个企业内的应用系统,一个是基于C++的应用系统运行于Linux机器上基于C++的应用系统,运行于Linux机器上另外一个是基于NT的客户端/服务器应用程序,前端采用J实现后端数据库采用Sb前端采用Java实现,后端数据库采用Sybase西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1212方法集成个例子方法集成:一个例子EAI架构师的意图是采用方法集成技术创EAI架构师的意图是采用方法集成技术,创建一个组合应用程序一种可能的情况是:应用程序需要紧耦合,从而共享公共的业务逻辑,并对外暴露这从而共享公共的业务逻辑,并对外暴露这两个系统的业务逻辑,达到未来的重用目的的与其他的应用集成方法不同,为了实现这个目的,我们必须重新构建系统(一般情况下是源代码级别上的)西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1313况下是源代码级别上的)方法集成个例子方法集成:一个例子具体的实现方法是具体的实现方法是:首先,我们能够将两个系统中的业务逻辑转移到一个共享的服务器中,可能是一个应用程序服务器然后,我们需要采用方法共享机制重新构建两个系统,可用的技术有分布对象技术等。来创个系统可用的技术有分布对象技术等来创建一个紧耦合的应用程序,允许在不同系统中访问方法西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1414方法集成个例子方法集成:一个例子如果使用分布对象技术实现方法集成我如果使用分布对象技术实现方法集成,我们需要包装应用程序使用分布式对象例如CORBA或COM使用分布式对象,例如CORBA或COM,包装两个应用程序的逻辑,这样就达到了在两个系统之间远程共享流程的目的在两个系统之间远程共享流程的目的采用这种方法意味着重写应用程序代码,采用这种方法意味着重写应用程序代码,并对代码进行测试幸运的是目前有一些工具能够提供包装幸运的是,目前有些工具能够提供包装能力,并响应分布式请求,辅助方法集成过程西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1515过程什么是流程什么是流程方法级别的应用集成的目的是为了共享流方法级别的应用集成的目的是为了共享流程在EAI的上下文中个业务流程表达为任在EAI的上下文中,一个业务流程表达为任何规则或逻辑片段,这些信息存在于企业中影响信息的处理方式中,影响信息的处理方式例如在一个税收系统中,对某种税种的处例如在个税收系统中,对某种税种的处理过程就表现为一个流程业务流程的识别和定义并不复杂棘手的业务流程的识别和定义并不复杂,棘手的问题在于实现这些流程的技术千差万别,很难做到互相共享西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1616很难做到互相共享流程的组成流程的组成个典型的业务流程由以下要素组成一个典型的业务流程由以下要素组成情景:将流程分解的依据规则:一组需要达成共识的条件集合逻辑:表达了完成一个任务需要的一系列步骤逻辑:表达了完成个任务需要的系列步骤(顺序执行,选择,循环等结构)数据在EAI的上下文中数据表示在企业应数据:在EAI的上下文中,数据表示在企业应用程序中共享的信息对象同时包含数据和方法对象:同时包含数据和方法西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1717方法仓库方法仓库将存在于不同应用程序中的方法集中到将存在于不同应用程序中的方法集中到一个统一的方法仓库中采用这种方式的优点很清楚:如果在一个企业内的所有方法都集中到一个集中的服企业内的所有方法都集中到个集中的服务器中,对业务流程的集成就会变成一个相当简单的事情对方法的远程调用也很相当简单的事情,对方法的远程调用也很直接西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1818方法仓库方法仓库西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1919方法仓库方法仓库方法仓库将方法集中以达到共享的目的方法仓库将方法集中以达到共享的目的(比如组合应用程序),并在集中的服务器中维护和重用应用程序逻辑器中维护和重用应用程序逻辑例如,如果一个系统中的某一个流程发生变化采用方法仓库的方式需改变所变化,采用方法仓库的方式不需要改变所有与该流程相关的部分,只需要在方法仓库中行新库中进行更新即可方法仓库的缺点在于其维护费用,方法仓方法仓库的缺点在于其维护费用,方法仓库需要负责将采用不同技术的流程信息转换为统一的表现方式,这个代价很大西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所