论文部分内容阅读
近年来,ERP在我国已被越来越多的企业认同和接受。实施ERP已成为企业信息化的重要标志之一。但目前大多数企业在應用ERP系统时均面临着系统重用和集成以及流程敏捷化两方面的问题。
如何使ERP系统具有快速可重构性,能动态调整其结构和行为,以支持企业的管理创新与流程重组优化,并能和企业现有的其他应用系统实现无缝集成,已成为当前的一个挑战。因此。本文基于软件复用、软件构件等技术,提出一种基于SOA的ERP体系架构模型,以满足企业业务流程重组的需要并具有可靠性、复用性、易扩展性和动态可变性的特点,实现为企业“量身定制”。
一、面向服务架构(SOA)的工作原理
(一)SOA的定义
面向服务架构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过其间定义良好的接口和契约联系起来。服务是指定义良好的、自包含的、不依赖于上下文和其他服务的一组功能。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。
(二)SOA的体系结构
在面向服务架构中主要有三种角色:
1.服务消费者:利用服务注册中心查找所需的服务。然后使用该服务。2.服务提供者:是创建服务的实体,并且对使用自身服务的请求进行响应。3.服务注册中心:注册已经发布的服务,对其进行分类,并提供搜索服务。它相当于一个服务信息的数据库,为服务提供者与服务消费者提供一个平台,使两者可以各取所需,同时服务注册中心要有一个通用的标准,使服务提供商提供的服务符合这个标准,这样,服务消费者使用的服务才可以跨越不同的服务提供者。
在SOA的体系结构中,每个实体的角色不是固定不变的,一个实体可以同时充当以上三种角色中的一个或多个。
在面向服务的体系结构中主要的操作有:1.发布:使服务提供者可以向服务注册中心注册自己的功能及访问接口。2.发现:使服务请求者可以通过服务注册中心查找特定种类的服务。3.绑定和调用:在获得服务描述信息之后,服务消费者据此去调用服务。
目前,实现SOA的技术很多,比如Web Services、CORBA等,这些技术一个很重要的共同点就是支持在不同的平台上、以不同语言编写的各种程序以基于标准的方式相互通信。例如,作为SOA的一种实现手段,Web服务提供了基于可扩展标记语言(XML)的标准接口。具有完好的封装性、松散的耦合性、协议规范的标准性以及高度的可集成性等特点,能够良好地满足SOA应用模式的需求。目前已经有一系列基于XML的Web服务标准被业界广泛接受,形成了Web服务的核心技术。服务的提供者可以用Web服务描述语言(Web ServicesDescription Language,WSDL)描述Web服务:用统一描述、发现与集成(Universal Description,Discovery and Integration,UDDI)注册中心发布、注册Web服务;服务的请求者通过UDDI进行查询,发现所需的服务后可以利用简单对象访问协议(Simpie Object AccessProtocol,SOAP)来绑定、调用这些服务。
(三)SOA的特点
与传统开发方法相比,SOA架构具有以下几个典型特点:
1 标准化的接口。近年来出现的两个重要标准XML和Web服务使得SOA得以真正实现。Web服务使应用功能得以通过标准化接口提供,并可基于标准化传输方式、采用标准化协议进行调用。采用XML,开发人员无须了解特定的数据表示格式,便能够在这些应用间交换数据。
2 松耦合性。通过接口中立,避免了修改一个服务的代码对其他服务的影响,使开发者能够大量的迁移或取代单个服务而不影响总的组合应用程序。
3 位置透明性。位置透明性指的是SOA系统中的所有服务对于他们的调用来说都是位置透明的,也就是说每个服务的调用者只需要知道他们调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪。
4 服务的可重用性。服务的可重用性设计显著地降低了成本。为了实现可重用性,服务只工作在特定处理过程的上下文中,独立底层实现和客户需求的变更。
从SOA的几个重要特征可以看出,SOA具备了标准化、可操作、可组装的特性,提供了一个通用的、可操作的和有弹性的行业标准架构,可以在软件基础架构中建立一系列支持商业模型的可重复利用的服务,这些服务由不同应用系统的组件构成,能够帮助企业实现适应商业流程变化的需求。
二、基于SOA的ERP体系架构模型
为了解决传统ERP系统存在的问题,可以将ERP系统功能分解成粗粒度和细粒度的服务,通过服务组合实现ERP系统的整体功能。当企业业务流程重组时。通过重新组合已编写的服务部件即可容易地实现。为此,本文提出了一种基于SOA的多层企业ERP系统应用框架,在对服务进行归类和粒度划分基础上,强调了企业内部服务的开发部署与管理控制,能够有效支持企业业务过程的快速重构,并考虑了和其他系统集成的问题。
该框架由下而上包括企业资源层、核心服务层、业务流程层、服务应用层。其中企业资源层是企业软、硬件资源的逻辑表示;核心服务层将企业资源服务化,成为遵循SOA规范的服务提供者;业务流程层是基于成组技术的服务归类和面向业务的服务组织,从而形成更大粒度的服务组件;服务应用层为企业应用求解提供方法和工具。各层的功能分别叙述如下:
(一)企业资源层:该层主要包括企业现有系统,如CRM、SCM、OA和遗留系统等。这些应用系统目前在企业中对业务起了一定的支撑作用,今后仍将在企业内使用,但各系统之间交互能力较差,数据和功能难以重用。典型的应用实例是:企业现在需要一个面向客户的订单查询系统。如果使用现有系统,客户首先要登录CRM验证身份、获取客户信息,然后须通过ERP查看订单详情,最后可能还得进入SCM中获得订单当前的执行状态等。这时,SOA的作用是将现有系统的某些功能封装成服务以便重用、集成或组合成流程。
(二)核心服务层:核心服务层将企业资源包装为符合SOA规范的能够完成特定任务的功能单元。核心服务层为应用系统提供原子服务,所谓原子,这里指从服务的层次和组织角度来看,它是一个基本功能实体,不能向下分割,即原子服务是系统中的最小服务颗粒,它不包含其他服务,也不是由其他服务组成的。然后,根据成组技术原理,将功能相同或相近的服务聚集形成服务簇(即细粒度服务),以简化复杂和庞大的服务视图,方便服务的分类组织和管理。同时,通过对细粒度组件进行流程的编排。使其不但能够协作产生粗粒度服务组件,还能够根据需要,通过改变流程的编排,动态适应业务变化引起的组件功能的改变。在业务变化涉及到组件服务的内部服务时,又能够通过修改配置,重新组装细粒度服务组件,重构粗粒度服务,以适应企业业务流程的动态变革的需求。 (三)业务流程层:业务流程是具体的企业业务活动过程的抽象表达。是面向业务功能的服务扩展逻辑。以业务需求为导向,选择合适的集成服务或原子服务,利用工作流技术,组合形成业务服务流,直接支持企业业务过程的执行。业务服务流作为支撑面向服务的企业应用的粗粒度服务组件,是支持业务过程快速重构的关键。利用服务流描述语言(WDSL)定义服务流,定义主要包括所采用的服务及服务间规约,当业务流程改变时,可以调整服务流定义或是更换所使用的服务快速形成新的服务流,以适应需求的变化。
(四)服务应用层:服务应用层为用户提供GUI接口,调用企业应用服务。根据SOA机制,只要权限满足要求,原子服务、集成服务和业务服务流均可直接被用户(应用)调用。服务应用层为用户实现友好的图形界面和简洁的应用服务访问接口。
与OSI的七层網络协议构架类似,本框架中上一层也需要下一层的支持。其中,企业服务总线(enterprise service bus,简称ESB)是企业服务运行的基础平台,负责对分散在整个企业以及企业外延的服务进行中央配置、部署和管理,为系统提供统一的服务调用接口。而构架的安全性、可管理性及服务质量(QoS)则需要在各个层次都有所体现。
同时,为了实现互联网环境下企业之间的信息集成,本文提出了一个能够适应企业间(包括企业内部)自动化系统集成的体系架构,通过此架构能够方便迅速地集成来自企业内部及外部客户所请求的服务,从而实现商业需求和应用的功能性要求。
ERP系统的各个业务模块可作为粗粒度服务发布,而每个模块的功能又由多个子功能组成,我们把这些子功能作为细粒度服务发布。企业内部提供的服务在本地服务注册中心注册,可由企业内部客户端访问,而需要提供给外部合作企业访问的服务,则发布到公共服务注册中心,供外部合作企业访问。请求服务的客户端通过web环境显示用户界面,利用SOAP客户接口实现与服务提供方和服务注册中心通讯,达到查询服务和绑定服务的目的。
三、基于SOA的ERP体系架构的优点
通过SOA思想的引入,笔者认为基于SOA的ERP系统可以做到传统ERP无法实现的一些特点,主要表现为:
(一)集成现有系统,解决了“信息孤岛”问题。SOA要求开发者从服务集成的角度来设计应用软件,考虑复用现有的服务。通过使用SOA,可将企业现有的应用系统封装成标准的服务,使用这些服务只需要知道它们的接口和名称,可有效地利用现有的投资,并可方便地实现各业务应用的集成。因此,除了ERP以外,企业其他的以ERP为核心的外围信息化模块如CRM、SCM、OA等,若符合SOA的技术规范,即使不是同一个公司的产品,实施和接口将比以前更加容易。
(二)降低企业的IT投资成本。目前,多数企业通常购买的是成熟性软件,需一个模块或一个系统地购买,企业在购买时往往无法将那些企业不需要的功能剔除出去,这样,企业就不得不为此多付出资金、培训等许多不必要的成本。而支持SOA的ERP软件则可以帮助企业实现真正的按需购买,企业需要什么功能就购买相应的服务,帮助企业避免不必要的支出。
(三)实现企业的动态变革,真正实现ERR的应用柔性。基于SQA的ERP系统提供的是一个个独立的服务,服务之间可以通过标准接口来相互调用,这样企业在重复功能上就可以直接通过接口调用,而不必去重新开发。当企业的业务流程发生变化时,只需要修改相应的服务即可,降低了修改的难度与复杂度,保证了企业的ERP系统的动态变化。
四、结论
ERP产品在国内的发展有很多失败的案例,其中一个最大的原因在于ERP产品不能真正满足用户的需求。因此,本文提出基于SOA的ERP系统体系架构的研究,目的在于提高ERP产品的柔性和灵活性,使之能够满足企业经常发生的业务流程变化及信息系统集成的需求,对新一代ERP产品的开发和生产有积极的指导作用,通过软件复用加快ERP软件生产,延长ERP产品的生命周期。
如何使ERP系统具有快速可重构性,能动态调整其结构和行为,以支持企业的管理创新与流程重组优化,并能和企业现有的其他应用系统实现无缝集成,已成为当前的一个挑战。因此。本文基于软件复用、软件构件等技术,提出一种基于SOA的ERP体系架构模型,以满足企业业务流程重组的需要并具有可靠性、复用性、易扩展性和动态可变性的特点,实现为企业“量身定制”。
一、面向服务架构(SOA)的工作原理
(一)SOA的定义
面向服务架构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过其间定义良好的接口和契约联系起来。服务是指定义良好的、自包含的、不依赖于上下文和其他服务的一组功能。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。
(二)SOA的体系结构
在面向服务架构中主要有三种角色:
1.服务消费者:利用服务注册中心查找所需的服务。然后使用该服务。2.服务提供者:是创建服务的实体,并且对使用自身服务的请求进行响应。3.服务注册中心:注册已经发布的服务,对其进行分类,并提供搜索服务。它相当于一个服务信息的数据库,为服务提供者与服务消费者提供一个平台,使两者可以各取所需,同时服务注册中心要有一个通用的标准,使服务提供商提供的服务符合这个标准,这样,服务消费者使用的服务才可以跨越不同的服务提供者。
在SOA的体系结构中,每个实体的角色不是固定不变的,一个实体可以同时充当以上三种角色中的一个或多个。
在面向服务的体系结构中主要的操作有:1.发布:使服务提供者可以向服务注册中心注册自己的功能及访问接口。2.发现:使服务请求者可以通过服务注册中心查找特定种类的服务。3.绑定和调用:在获得服务描述信息之后,服务消费者据此去调用服务。
目前,实现SOA的技术很多,比如Web Services、CORBA等,这些技术一个很重要的共同点就是支持在不同的平台上、以不同语言编写的各种程序以基于标准的方式相互通信。例如,作为SOA的一种实现手段,Web服务提供了基于可扩展标记语言(XML)的标准接口。具有完好的封装性、松散的耦合性、协议规范的标准性以及高度的可集成性等特点,能够良好地满足SOA应用模式的需求。目前已经有一系列基于XML的Web服务标准被业界广泛接受,形成了Web服务的核心技术。服务的提供者可以用Web服务描述语言(Web ServicesDescription Language,WSDL)描述Web服务:用统一描述、发现与集成(Universal Description,Discovery and Integration,UDDI)注册中心发布、注册Web服务;服务的请求者通过UDDI进行查询,发现所需的服务后可以利用简单对象访问协议(Simpie Object AccessProtocol,SOAP)来绑定、调用这些服务。
(三)SOA的特点
与传统开发方法相比,SOA架构具有以下几个典型特点:
1 标准化的接口。近年来出现的两个重要标准XML和Web服务使得SOA得以真正实现。Web服务使应用功能得以通过标准化接口提供,并可基于标准化传输方式、采用标准化协议进行调用。采用XML,开发人员无须了解特定的数据表示格式,便能够在这些应用间交换数据。
2 松耦合性。通过接口中立,避免了修改一个服务的代码对其他服务的影响,使开发者能够大量的迁移或取代单个服务而不影响总的组合应用程序。
3 位置透明性。位置透明性指的是SOA系统中的所有服务对于他们的调用来说都是位置透明的,也就是说每个服务的调用者只需要知道他们调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪。
4 服务的可重用性。服务的可重用性设计显著地降低了成本。为了实现可重用性,服务只工作在特定处理过程的上下文中,独立底层实现和客户需求的变更。
从SOA的几个重要特征可以看出,SOA具备了标准化、可操作、可组装的特性,提供了一个通用的、可操作的和有弹性的行业标准架构,可以在软件基础架构中建立一系列支持商业模型的可重复利用的服务,这些服务由不同应用系统的组件构成,能够帮助企业实现适应商业流程变化的需求。
二、基于SOA的ERP体系架构模型
为了解决传统ERP系统存在的问题,可以将ERP系统功能分解成粗粒度和细粒度的服务,通过服务组合实现ERP系统的整体功能。当企业业务流程重组时。通过重新组合已编写的服务部件即可容易地实现。为此,本文提出了一种基于SOA的多层企业ERP系统应用框架,在对服务进行归类和粒度划分基础上,强调了企业内部服务的开发部署与管理控制,能够有效支持企业业务过程的快速重构,并考虑了和其他系统集成的问题。
该框架由下而上包括企业资源层、核心服务层、业务流程层、服务应用层。其中企业资源层是企业软、硬件资源的逻辑表示;核心服务层将企业资源服务化,成为遵循SOA规范的服务提供者;业务流程层是基于成组技术的服务归类和面向业务的服务组织,从而形成更大粒度的服务组件;服务应用层为企业应用求解提供方法和工具。各层的功能分别叙述如下:
(一)企业资源层:该层主要包括企业现有系统,如CRM、SCM、OA和遗留系统等。这些应用系统目前在企业中对业务起了一定的支撑作用,今后仍将在企业内使用,但各系统之间交互能力较差,数据和功能难以重用。典型的应用实例是:企业现在需要一个面向客户的订单查询系统。如果使用现有系统,客户首先要登录CRM验证身份、获取客户信息,然后须通过ERP查看订单详情,最后可能还得进入SCM中获得订单当前的执行状态等。这时,SOA的作用是将现有系统的某些功能封装成服务以便重用、集成或组合成流程。
(二)核心服务层:核心服务层将企业资源包装为符合SOA规范的能够完成特定任务的功能单元。核心服务层为应用系统提供原子服务,所谓原子,这里指从服务的层次和组织角度来看,它是一个基本功能实体,不能向下分割,即原子服务是系统中的最小服务颗粒,它不包含其他服务,也不是由其他服务组成的。然后,根据成组技术原理,将功能相同或相近的服务聚集形成服务簇(即细粒度服务),以简化复杂和庞大的服务视图,方便服务的分类组织和管理。同时,通过对细粒度组件进行流程的编排。使其不但能够协作产生粗粒度服务组件,还能够根据需要,通过改变流程的编排,动态适应业务变化引起的组件功能的改变。在业务变化涉及到组件服务的内部服务时,又能够通过修改配置,重新组装细粒度服务组件,重构粗粒度服务,以适应企业业务流程的动态变革的需求。 (三)业务流程层:业务流程是具体的企业业务活动过程的抽象表达。是面向业务功能的服务扩展逻辑。以业务需求为导向,选择合适的集成服务或原子服务,利用工作流技术,组合形成业务服务流,直接支持企业业务过程的执行。业务服务流作为支撑面向服务的企业应用的粗粒度服务组件,是支持业务过程快速重构的关键。利用服务流描述语言(WDSL)定义服务流,定义主要包括所采用的服务及服务间规约,当业务流程改变时,可以调整服务流定义或是更换所使用的服务快速形成新的服务流,以适应需求的变化。
(四)服务应用层:服务应用层为用户提供GUI接口,调用企业应用服务。根据SOA机制,只要权限满足要求,原子服务、集成服务和业务服务流均可直接被用户(应用)调用。服务应用层为用户实现友好的图形界面和简洁的应用服务访问接口。
与OSI的七层網络协议构架类似,本框架中上一层也需要下一层的支持。其中,企业服务总线(enterprise service bus,简称ESB)是企业服务运行的基础平台,负责对分散在整个企业以及企业外延的服务进行中央配置、部署和管理,为系统提供统一的服务调用接口。而构架的安全性、可管理性及服务质量(QoS)则需要在各个层次都有所体现。
同时,为了实现互联网环境下企业之间的信息集成,本文提出了一个能够适应企业间(包括企业内部)自动化系统集成的体系架构,通过此架构能够方便迅速地集成来自企业内部及外部客户所请求的服务,从而实现商业需求和应用的功能性要求。
ERP系统的各个业务模块可作为粗粒度服务发布,而每个模块的功能又由多个子功能组成,我们把这些子功能作为细粒度服务发布。企业内部提供的服务在本地服务注册中心注册,可由企业内部客户端访问,而需要提供给外部合作企业访问的服务,则发布到公共服务注册中心,供外部合作企业访问。请求服务的客户端通过web环境显示用户界面,利用SOAP客户接口实现与服务提供方和服务注册中心通讯,达到查询服务和绑定服务的目的。
三、基于SOA的ERP体系架构的优点
通过SOA思想的引入,笔者认为基于SOA的ERP系统可以做到传统ERP无法实现的一些特点,主要表现为:
(一)集成现有系统,解决了“信息孤岛”问题。SOA要求开发者从服务集成的角度来设计应用软件,考虑复用现有的服务。通过使用SOA,可将企业现有的应用系统封装成标准的服务,使用这些服务只需要知道它们的接口和名称,可有效地利用现有的投资,并可方便地实现各业务应用的集成。因此,除了ERP以外,企业其他的以ERP为核心的外围信息化模块如CRM、SCM、OA等,若符合SOA的技术规范,即使不是同一个公司的产品,实施和接口将比以前更加容易。
(二)降低企业的IT投资成本。目前,多数企业通常购买的是成熟性软件,需一个模块或一个系统地购买,企业在购买时往往无法将那些企业不需要的功能剔除出去,这样,企业就不得不为此多付出资金、培训等许多不必要的成本。而支持SOA的ERP软件则可以帮助企业实现真正的按需购买,企业需要什么功能就购买相应的服务,帮助企业避免不必要的支出。
(三)实现企业的动态变革,真正实现ERR的应用柔性。基于SQA的ERP系统提供的是一个个独立的服务,服务之间可以通过标准接口来相互调用,这样企业在重复功能上就可以直接通过接口调用,而不必去重新开发。当企业的业务流程发生变化时,只需要修改相应的服务即可,降低了修改的难度与复杂度,保证了企业的ERP系统的动态变化。
四、结论
ERP产品在国内的发展有很多失败的案例,其中一个最大的原因在于ERP产品不能真正满足用户的需求。因此,本文提出基于SOA的ERP系统体系架构的研究,目的在于提高ERP产品的柔性和灵活性,使之能够满足企业经常发生的业务流程变化及信息系统集成的需求,对新一代ERP产品的开发和生产有积极的指导作用,通过软件复用加快ERP软件生产,延长ERP产品的生命周期。