基于ESB的集成式PLM系统实现
时间:04-17
来源:21IC
点击:
摘要:随着企业中越来越多的信息软件和管理软件的应用,如何将这些软件有效地集成起来,使整个企业管理交流系统化、流程化成了许多企业面临的困惑。在研究面向服务的架构以及企业服务总线的实现方法的基础上,提出了一种PLM系统的实现方式。采用此种方法,可以节约企业在企业管理软件上的投资,有效利用原有软件资源,实现原有多种管理信息软件向PLM系统的转变,完成企业信息平台的整合集成。
关键词:面向服务架构;企业服务总线;产品生命周期;集成式PLM系统
0 引言
面向服务架构(SOA)是一种组件模型,它通过应用程序功能单元(称之为服务)之间定义完善的接口和契约,来联系应用程序中的不同服务。一般对SOA比较一致的认同观点是:服务应当通过明确的、与实现无关的接口来定义;服务可以被松散绑定,并且可以通过强调位置透明性和互操作性的通信协议进行调用;服务封装了可重用的业务功能。SOA依赖于将应用程序发布为服务,这些服务可被外部各方调用。其核心本质是实现服务和技术的完全分离,从而最大限度上实现服务的集成和重组。换句话说,SOA可以将所有的软件都改造成一个一个的服务,各个软件之间的联系都采用服务来完成。有了这个架构,每个软件的开发团队只需要关注自己负责的软件就可以了,使得当前软件的维护和后续软件的开发就变得简单多了。
企业服务总线(ESB)是从消息中间件的基础上发展而来的。ESB采用"总线"的模式来管理和简化应用之间的集成拓扑结构,以更加开放的标准为基础来支持应用之间在消息、事件和服务的级别上动态的互联互通。ESB是一种在松散耦合的服务和应用之间标准的集成方式。主要可以应用在以下三个方面:1)面向服务的架构:分布式的应用由可重用的服务组成;2)面向消息的架构:应用之间通过ESB发送和接受消息;3)事件驱动的架构:应用之间异步地产生和接收消息。ESB就是在SOA架构中实现服务间智能化集成与管理的中介。如图1,常见总线方式的SOA架构模型。
产品生命周期管理PLM(Product Life-cycle Management)自20世纪末提出以来,便迅速成为制造业关注的焦点。PLM结合电子商务技术与协同技术,将产品的开发流程与SCM、CRM、ERP等系统进行集成,将孤岛式流程管理转变为集成化的一体管理,实现从概念设计、产品设计、产品生产、产品维护到管理信息的全面数字化;实现企业知识价值的提升与知识共享管理,产品开发和业务流程的优化,从而全面提升企业生产效率,降低产品生命周期管理的成本,以提升企业的市场竞争力。
1 集成式PLM系统的思路
随着越来越多的企业部署了OA、ERP、CRM等系统软件,来加强整个企业信息流程的管理和业务信息的交流,如何成功的将各个系统的数据信息集成到一起成为企业关注的焦点。将不同数据库不同结构的系统紧密而合理的集成起来,以完成企业内部甚至与外部企业和用户的业务交流,成为了各企业用户最为普遍的想法,也成为软件开发行业的热点。集成式PLM系统可以将0A、ERP、CRM等系统软件成功整合在一起,实现企业信息的完美整合,以及企业业务流程的控制。图2是一种集成式PLM系统模型:
随着技术的不断发展,Web Services、JMS等的不断出现,一种实现SOA系统架构的方案出现了:ESB,即开发出一个转化、处理的综合性平台,实现各个软件之间数据的"黑盒"联系。不论采用何种技术方式向"总线"提交请求,"总线"都能成功地应答并返回相应的数据。对现存的企业应用软件进行ESB系统架构改造时,可以将各个软件与其他软件进行数据关联的地方进行必要的、不改变技术手段的改造,使之连接到ESB中。这种改造的改动非常小,因此成本也很低,就使得SOA系统架构的实现成为可能。ESB需要实现对于消息的控制、传送、分派、解析。
图3是一个常见的对现有系统进行改造的ESB系统架构。
图3常见的对现有系统进行改造的ESB系统架构在这个架构中,每个组成部分称之为一个服务。不同的相关服务的组合,就形成一个相对完整的系统。这种系统结构的优点在于服务的组合、发布、重用,具有依赖性低;能够同时运行不同的软件版本;相对独立,便于团队的开发和理解;与原系统集成的成本低廉。集成式PLM系统就是要在企业原有的管理和信息软件基础上,根据实际的需要,将各类企业软件系统封装成一个个服务并通过ESB集成的方式,整合到一个平台下,这样可以有效地利用原有资源,也可以在此基础上进行后续开发。
2 集成式PLM系统实现
通常公司或企业里最常用的莫过于资源管理系统(ERP)和客户管理系统(CRM),下面就以这两种系统的集成为示例,介绍一下基于ESB解决方案的集成式PLM系统的部分实现。这两个系统的功能在某些方面是重合的,但是侧重点和系统开发商不同。如果没有一个统一的理念来管理这两个系统或更多的系统,想结合起来使用,难度很大。如果再加上公司的其他系统,那么整个系统简直就是一团乱麻。
对CRM和IERP系统的整合内容主要包括:客户管理、产品管理、工作流管理、工作人员管理、营销管理、销售管理、客户服务和支持、订单管理、信息交流、决策支持等。如果要新增加一个客户或者一个产品,需要保持两个系统里面的数据的一致性。如果软件不是来自同一个厂商,两者不能在数据库层面集成,可以使用下面的方法解决此类问题。
关键词:面向服务架构;企业服务总线;产品生命周期;集成式PLM系统
0 引言
面向服务架构(SOA)是一种组件模型,它通过应用程序功能单元(称之为服务)之间定义完善的接口和契约,来联系应用程序中的不同服务。一般对SOA比较一致的认同观点是:服务应当通过明确的、与实现无关的接口来定义;服务可以被松散绑定,并且可以通过强调位置透明性和互操作性的通信协议进行调用;服务封装了可重用的业务功能。SOA依赖于将应用程序发布为服务,这些服务可被外部各方调用。其核心本质是实现服务和技术的完全分离,从而最大限度上实现服务的集成和重组。换句话说,SOA可以将所有的软件都改造成一个一个的服务,各个软件之间的联系都采用服务来完成。有了这个架构,每个软件的开发团队只需要关注自己负责的软件就可以了,使得当前软件的维护和后续软件的开发就变得简单多了。
企业服务总线(ESB)是从消息中间件的基础上发展而来的。ESB采用"总线"的模式来管理和简化应用之间的集成拓扑结构,以更加开放的标准为基础来支持应用之间在消息、事件和服务的级别上动态的互联互通。ESB是一种在松散耦合的服务和应用之间标准的集成方式。主要可以应用在以下三个方面:1)面向服务的架构:分布式的应用由可重用的服务组成;2)面向消息的架构:应用之间通过ESB发送和接受消息;3)事件驱动的架构:应用之间异步地产生和接收消息。ESB就是在SOA架构中实现服务间智能化集成与管理的中介。如图1,常见总线方式的SOA架构模型。
产品生命周期管理PLM(Product Life-cycle Management)自20世纪末提出以来,便迅速成为制造业关注的焦点。PLM结合电子商务技术与协同技术,将产品的开发流程与SCM、CRM、ERP等系统进行集成,将孤岛式流程管理转变为集成化的一体管理,实现从概念设计、产品设计、产品生产、产品维护到管理信息的全面数字化;实现企业知识价值的提升与知识共享管理,产品开发和业务流程的优化,从而全面提升企业生产效率,降低产品生命周期管理的成本,以提升企业的市场竞争力。
1 集成式PLM系统的思路
随着越来越多的企业部署了OA、ERP、CRM等系统软件,来加强整个企业信息流程的管理和业务信息的交流,如何成功的将各个系统的数据信息集成到一起成为企业关注的焦点。将不同数据库不同结构的系统紧密而合理的集成起来,以完成企业内部甚至与外部企业和用户的业务交流,成为了各企业用户最为普遍的想法,也成为软件开发行业的热点。集成式PLM系统可以将0A、ERP、CRM等系统软件成功整合在一起,实现企业信息的完美整合,以及企业业务流程的控制。图2是一种集成式PLM系统模型:
随着技术的不断发展,Web Services、JMS等的不断出现,一种实现SOA系统架构的方案出现了:ESB,即开发出一个转化、处理的综合性平台,实现各个软件之间数据的"黑盒"联系。不论采用何种技术方式向"总线"提交请求,"总线"都能成功地应答并返回相应的数据。对现存的企业应用软件进行ESB系统架构改造时,可以将各个软件与其他软件进行数据关联的地方进行必要的、不改变技术手段的改造,使之连接到ESB中。这种改造的改动非常小,因此成本也很低,就使得SOA系统架构的实现成为可能。ESB需要实现对于消息的控制、传送、分派、解析。
图3是一个常见的对现有系统进行改造的ESB系统架构。
图3常见的对现有系统进行改造的ESB系统架构在这个架构中,每个组成部分称之为一个服务。不同的相关服务的组合,就形成一个相对完整的系统。这种系统结构的优点在于服务的组合、发布、重用,具有依赖性低;能够同时运行不同的软件版本;相对独立,便于团队的开发和理解;与原系统集成的成本低廉。集成式PLM系统就是要在企业原有的管理和信息软件基础上,根据实际的需要,将各类企业软件系统封装成一个个服务并通过ESB集成的方式,整合到一个平台下,这样可以有效地利用原有资源,也可以在此基础上进行后续开发。
2 集成式PLM系统实现
通常公司或企业里最常用的莫过于资源管理系统(ERP)和客户管理系统(CRM),下面就以这两种系统的集成为示例,介绍一下基于ESB解决方案的集成式PLM系统的部分实现。这两个系统的功能在某些方面是重合的,但是侧重点和系统开发商不同。如果没有一个统一的理念来管理这两个系统或更多的系统,想结合起来使用,难度很大。如果再加上公司的其他系统,那么整个系统简直就是一团乱麻。
对CRM和IERP系统的整合内容主要包括:客户管理、产品管理、工作流管理、工作人员管理、营销管理、销售管理、客户服务和支持、订单管理、信息交流、决策支持等。如果要新增加一个客户或者一个产品,需要保持两个系统里面的数据的一致性。如果软件不是来自同一个厂商,两者不能在数据库层面集成,可以使用下面的方法解决此类问题。