吴艳征 昂朝群
摘要:针对当前企业ERP系统中存在的灵活性差,开发时间长等问题,提出并构建可重构ERP系统的体系结构。通过需求分析,明确企业ERP系统构建中对于集成性、扩展性、维护性等方面的要求,基于可重用构建的思想,建立了柔性ERP系统构建体系架构,详细讨论了以面向可重构ERP架构的为目标的构件开发模式,以及基于计算无关模型的重用模式。该体系架构的研究,为建立柔性企业ERP系统提供了基础和指导。
关键词:企业资源规划;系统架构模型;计算无关模型
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)10-2470-05
Abstract: Poor flexibility, long development time and other problems that exist in the current enterprise ERP system, we propose and build reconfigurable ERP system architecture. Through needs analysis, specifically the requirements of in the construction of integration, scalability, maintainability in enterprise ERP system, based on reusable building ideas, establish a flexible ERP system building architecture, discuss the component development model aim at ERP reconfigurable architecture, as well as reuse model of computational independent model. The research of this architecture, provide the foundation and guidance for the establishment of a flexible enterprise ERP system.
Key words: enterprise resource planning; system architecture model; calculation independent model
1 概述
对柔性化可定制软件体系架构方案的研究向来是软件工程领域的热点。ERP系统是制造型企业提高生产和管理效率,增强企业实力的重要基础,在信息化技术迅猛发展的现阶段,越来越受到重视。可重构ERP系统能够满足企业、开发商等多方需求,对其关重构架构的研究具有重要的理论和现实意义。
可重构ERP系统的核心在于其可重构性,重构的定义首先由美国的R.Dove提出,他认为重构是以现有的资源为基础,在不改变或者较少改变当前资源的情况下,通过对资源的重组和利用,达到满足不同应用需求的目的[1]。文献[2]认为重构是指构形的改变,而构型的概念是指由多个具有一定属性的构件,以及它们之间关系的总和组成,某一构形是一个暂稳态,而重构则是将某一构形转换为另一构形的过程,而对于可重构ERP系统概念的界定,主要是指对系统构形改变能力的衡量,当业务需求发生改变时,是否具有足够的能力从当前的构形改变为另一种更符合企业需求的构形,从而保证企业能够应对所发生的变化。不同的领域对于重构性的概念定义也不同,ERP系统是面向先进制造型企业管理模式的一种信息化平台,Y.Koren在上个世纪末期提出了可重构制造系统的概念[3],可重构ERP系统是在构建初始阶段,就通过一系列方法和手段,使系统在结构、软件、硬件等方面都具有可改变和重组的能力,从而可以根据实际的市场需求和业务流程调整需求,快速准确地对系统自身进行调整,保证其能够继续高效地管理企业资源。可重构制造系统中包括多个组成部分,而可重构的信息系统是其基础支撑,该类系统应能够在外部需求发生变化时具备相应的调整和重构能力。虽然国内外学者对于可重构的ERP系统研究较多,但到目前为止还没有形成一个统一的权威定义,在学术界一般分为两种观点,一种被称为狭义定义,即仅考虑ERP系统在开发构建阶段的可重构能力,也就是系统所具备的可重构属性;另一种被称为广义的定义,即不仅考虑开发阶段的可重构性,还需要考虑在系统运行阶段的可重构能力[4]。
2 可重构ERP系统模式分析
可重构ERP系统构建模式的提出是在传统ERP系统基础上提出的,首先传统ERP系统的构建模式存在着诸多弊端,然后通过一个实例分析得到ERP系统重构的意义。
2.1 传统ERP系统的构建模式分析
ERP系统是为了解决制造型企业对于人力、物力、信息数据等诸多企业资源元素管理不力的问题而设计开发的[5]。传统的ERP系统构建模式主要包括通用版和定制版两种方式。通用版的ERP系统针对于企业主要资源和业务流程的管理,基于信息化技术规范管理流程,从而达到优化企业管理,提高经济效益的目的。然而每一个企业在长期的生产过程中通过逐步调整,一般都形成了一套较为完整和高效的管理体制,而通用版的ERP系统要求企业放弃原有管理流程,反过来要求其适应软件的管理规范,这一方式很有可能会阻碍企业竞争力的提高。定制版是根据每一个企业自身的业务及管理流程特定对ERP系统进行开发,虽然可以较好的满足企业的需求,但是成本较高,开发周期长,而且从长远发展的角度看,也无法应对企业业务需求的变化。基于上述两种方式,后期出现了混合版ERP系统,主要采用二次开发、面向行业定制等方式实现ERP系统的构建。二次开发虽然考虑到了企业应用的个性化问题,但是具有一定的风险性,而面向行业定制的方法,由于同行业中不同企业的资源管理模式和方法不同,也同样无法较好地满足企业个性化的业务需求。上述各种方法共有的问题是对于企业业务需求的变化不具备灵活调整的能力。
基于上述分析,采用构建计算无关模型,实现模型驱动的可重构ERP系统具有重要的现实意义。计算无关模型驱动的企业ERP系统与所应用的行业对象无关,可以实现基于需求模型的变化而对软件功能架构进行调整的目的,在系统运行过程中通过配置实现具体流程的更新,具有开发时间短、开发成本低、用户满意度高、系统柔性好、可维护性强等突出优点。
2.2 可重构ERP系统需求分析
通过对大量企业当前ERP系统的分析,得到可重构企业ERP系统的功能要求如下:
一是可配置能力。系统的可配置性包括两个方面的要求,首先是在静态时,ERP系统本身可以通过配置文件对系统的功能进行增减,以满足不同类型企业用户的需求;另一方面是在系统的运行阶段,根据用户制定的业务逻辑模型及流程的改变,自动对对应的系统工作流程进行调整。
二是可集成功能。为了充分利用基于网络的信息共享,简化数据处理流程,可重构的ERP系统应能够实现对分布式ERP系统的集成,对不同企业中ERP系统的集成,对企业原有信息管理系统的集成等。
三是可扩展功能。企业的业务需求随着外部环境,内部经营策略,实际应用效果的变化而不断变化的,因此,作为企业资源管理的优化和决策系统,可重构的ERP系统必须能够根据需求的变化而对其功能进行重构。
四是可重用功能。定制型ERP系统的弊端在于开发周期长,成本大,而可重构ERP系统通过对功能组件的复用实现节约开发时间,提高开发效率的目标。
2.3 企业重构流程分析
制造型企业以需求模型更新为驱动的重构主要包括业务模型的重构和ERP软件系统重构两个方面[6]。企业中的重构对象主要由业务过程、业务模型、ERP系统组成。业务过程的重构是在企业层面发生的,是企业根据实际的需求,对企业自身的各类资源和工作流程进行相应的调整,从而优化资源管理过程,提高效率;业务模型重构对象是根据变化后业务过程模型,将其转化为可由ERP系统识别的模型定义;ERP系统重构对象是根据业务模型定义,基于实际的环境实现系统功能。
广义的重构定义包括开发阶段的重构和运行阶段的重构两个组成部分[7]。开发阶段的重构主要是根据企业有可能的业务需求变化,在设计时考虑到系统的可配置性;运行阶段的重要主要是根据企业管理模式、业务流程的变化,由ERP系统自动实现其工作流程的重构,主要考虑其柔性和构件的可重用性。根据以上的分析,给出可重构ERP系统的表达式:
A={B,C,D}
该式中的A表示可重构的企业ERP系统,B表示企业随着需求而更新的模型,C表示根据企业需求变化而更新的业务模型,D表示ERP系统的重构实施。
3 可重构ERP系统的构件分析
上一节分析了可重构ERP系统架构设计的目标和功能需求,而实现这些重构目标的基础是软件构件。
3.1 构件应用分析
不同的企业的业务需求和工作流程不同,但从抽象的角度分析,存在着大量相同的重复性操作,如报表生成、数据库管理、采购流程等,可重构ERP系统的目的是要将这些共同的操作规范进行提取,生成与上下文无关的软件构件,再由企业的业务需求模型驱动,对构件资源进行重组和生成,从而使ERP系统具备动态可调整的能力。
传统的软件构件一般是从功能的角度出发,将复杂的功能分解为多个子功能构件,粒度越小,可重用性越高。但这一方式没有考虑到企业实际的业务流程需求,实际上,一般的企业业务流程是由多个环节和步骤所构成,因此在对软件构件的划分方面,也应有针对性地定义不同粒度的构件单位,以满足不同重用重组的需求。本研究将从企业业务模型的角度出发,将不同粒度的构件及其组合划分为以下几种类型[8]:
一是原子构件,该类构件的粒度最小,但通用性最强,主要包括与业务相关的操作性构件,如订单的发送、接收、填写等,以及与业务无关的通用型构件,如打印服务、网络传输服务构件等。
二是复合型构件,该类构件的粒度大于原子构件,由多个原子构件组成,复合型构件用于完成一个核心的业务流程,该流程由多个环节组成,每一个环节对应着一个原子构件,例如对于表格业务构件,由单据的生成、填写、发送等组成。复合型构件可应用于多个活动中。
三是组合型构件,该类构件也是由原子构件组成,但其粒度大于复合型构件,更重要的区别是该类构件仅对外提供特定的功能,与企业的具体业务流程结合较为紧密,如订单处理的一整套流程。
由上述分析,结合可重构ERP系统的功能需求定义,构建了一套以可重用软件构件为基础,以企业业务需求模型为驱动,以工作流引擎为调度方式的可重构ERP系统架构,如图1所示。
如图1所示,首先利用业务建模工具根据企业业务需求的实际构建业务模型,业务模型利用工作流配置文件实现对各种不同粒度软件构件的组装与部署。构件化的可重构ERP系统包括各类软件构件,构件运行平台及支撑环境等,构件受工作流引擎调度,通过组合的重构,基于构件运行环境实现ERP系统的各类功能需求。当企业的业务需求发生改变时,利用建模工具更新需求模型,由此改变工作流配置文件,工作流引擎控制各种不同粒度构件组装和运行。在这一模式下,在ERP系统的设计开发阶段,通过建立企业业务需求模型,明确所需要构建的软件构件功能和粒度,而在系统运行阶段,可根据业务模型的调整,实现对不同构件的动态组装和重用。
3.2 构件化ERP系统构建流程分析
基于以上提出的基于构件化的可重构ERP系统框架,建立了面向全生命周期的可重构模式,分别在系统构件的初始、开发、运行三个阶段[9],实现了可重构ERP系统的功能需求目标。本小节重点讨论构件化可重构ERP系统的具体实施步骤。
3.2.1 不同粒度软件构件的开发
构件是可重构ERP系统构建的基础,构件具有不同的粒度,但都应具有可重用性,其开发的步骤为:首先,根据企业业务需求所处的领域,依据以前的开发经验,确定该领域中存在着的可重用功能模块;然后形成规范的功能模块描述,存储于领域模型库,以满足日后的维护需求;第三是根据该类功能模块与具体业务逻辑结合的紧密程度,确定其构件属性;在特定平台上设计构件的功能;确定构件使用的接口规约;利用编程语言实现构件功能;将构件存储于构件库中。
3.2.2 ERP系统的开发步骤分析
在构件库为基础,根据业务需求模型设计开发ERP系统。首先根据企业实际情况分析业务需求;然后从业务模型库中查询和选取业务模型;根据生成的业务模型在构件库中检索适合的构件对象,如果现有的构件对象都无法满足需求,则需要重新设计并开发构件;将所有适合的构件统一进行装配;基于实际的运行平台完成编码和部署工作;基于实际应用对新的ERP系统进行测试,根据测试结果调整构件及其组装过程,直到满足用户需求。
3.2.3 ERP系统的重构步骤分析
在ERP系统运行过程中,如果企业的业务需求发生了改变,由相关人员重新建立企业业务需求模型;对工作流配置文件进行更新;系统根据工作流的配置参数对构件的组成和部署进行调整;如果由于缺少相应的构件而导致系统无法正常工作,则重新进入ERP系统的开发步骤。
3.2.4 可重用构件库的管理步骤
构件库的管理工作是保证ERP系统快速开发与部署的基础,根据所存储构件对象的不同可以分为可重用ERP构件库和领域模型构件库两类。领域模型构件库中存储着根据企业业务需求建立的模型,有利于加快对新企业业务模型的分析与构建;可重用ERP构件库中存储着各种不同粒度的软件构件,是具体ERP系统快速建立的基础。
4 基于模型的ERP系统重构模式
本文提出的模型驱动的,基于软件构件的可重构ERP系统与传统的MDA(Model Driven Architecture 模型驱动架构)[10]之间的关系,是对其细化和具体化。其改进主要表现在以下两个方面。
一是对MDA所定义模型的改进。MDA中定义了计算无关模型和平台无关模型,而本框架构则将这些模型具体到对业务模型的建立,以及对可重用构件的设计开发和选取等操作。CIM模型对应于业务需求的建模操作,PIM对应于面向业务模型构建,PSM和Code对应于具体的构件开发和选取。
二是改进了不同模型之间的转换功能。MDA中上层模型到下层模型的转换是其研究的重点,而本框架中从业务需求,到业务模型,到构件装配模型的转换,充分应用于构件识别技术、代码生成技术等,从而将抽象的转换过程具体化为从模型到具体代码的转换,可操作性更强。
4.1 全生命周期可重构框架
基于模型的可重构ERP系统在系统设计、开发、运行等各个阶段都具有可重构性,其构建的过程具体分析如下:
一是在ERP系统的设计阶段,由企业具体应用领域的需求建立业务模型,这此模型将被存储到模型库中,供其他相关ERP系统构建使用,同时,将具体的ERP构件作为可重用资源存储到构件库中,以备在系统具体实现时实现重用。
二是在系统开发阶段,存储在构件库中的可重用ERP构件根据其实现的功能以及粒度,被配置为可具体的ERP系统,在此过程中生成的新构件以及生成的可重用代码被存储到控件库,从而实现ERP系统的快速开发与部署。
三是在系统运行阶段,一旦企业的内部管理机制和生产流程发生改变,通过对工作流参数的更新,调整现有构件装配模式实现系统新功能,从而大幅降低系统二次开发的成本。
上述三个阶段中,设计阶段是其他两个阶段的基础,为其提供了可重用的资源,而开发与运行阶段基于构件的可重构性,则具体实现了ERP系统的功能。
4.2 可重用ERP构件的开发模式
可重用ERP构件的开发主要是通过对企业所在领域业务需求的分析,从业务的角度出发,对软件构件的功能和接口进行设计,并通过构件库的方式进行管理,从而实现构件的复用。
在构件的开发过程中,首先对照MDA中的CIM模式进行建模操作,具体分为两个步骤,首先是对企业的业务需求进行分析,从不同的角度对实现视图的描述,包括过程、组织、信息等,建立起立体的企业需求模型,然后以此为基础,将企业需求模型转换为业务模型,业务模型针对的是具体的ERP系统功能,从而为平台无关模型的构建提供基础。
第二步是建立面向业务的平台无关模型,主要是以业务模型为基础,利用UML等软件建模工具,根据业务模型的需求,描述能够通过软件构件的组合所能够实现的系统功能。该步骤主要考虑构件的粒度和功能,不涉及到具体实现。
第三步是建立平台相关的构件,以上一步骤中得到的平台无关模型为基础,根据其对功能的要求,基于特定的应用平台,具体实现构件功能。该步骤中需要使用软件架构模式、工作流技术、界面开发技术等。
第四步是实现具体的系统代码编写,根据所采用的构件,结合系统功能的需求,利用编程语言实现代码。在具体开发中,利用工作流配置文件对可重用软件构件进行调度和组合,从而实现系统功能。
4.3 计算无关模型驱动的构件重用模式
可重用ERP构件开发模式的分析为可重构ERP系统的实现提供了基础,而基于计算无关模型的构件重用模式是具体实现系统功能的方案。具体的重用可描述为:首先,由计算无关模型确定系统所需要的软件功能构件,然后根据所定义的映射关系,实现对构件的调度和装配。计算无关模型的构建是根据企业具体的业务流程构建,在实际运行过程中,一旦企业的业务模型发生改变,与之相对应的下层工作流配置文件、数据表信息、用户角色信息等都将根据映射关系进行改变,映射关系的改变将直接到可重用软件的选取和运转流程产生影响,从而满足新的企业需求。
构件的重用根据其功能的变化需求可分为四种方式,分别是直接重用,更改配置文件后重用,更新构件功能后重用,无法重用。对于无法重用的构件,需要重新设计实现相应的构件,以满足系统的要求。
4.4 构件重用模式实例分析
根据本文所研究的企业ERP系统重构模型,系统开发的总体架构,如图2所示:
系统共分为三个层次,用户界面层实现接受用户文字与图形输入的数据,以及向用户展现系统处理的结果等功能;工具层是系统的核心层,实现企业业务计算无关模型的构件,模型间的转换,以及可重用构件模型的建立及选取等系统的主要功能;系统支撑层主要为系统的主功能提供运行环境,包括各类集成接口;数据层提供数据管理等基础性服务。
从系统的功能组成结构考虑,系统架构如图3所示:
系统主要包括三个主要功能模块,分别是计算无关模型构建子系统、计算无关模型向平台无关模型的转换子系统、可重用构件选取子系统。计算无关模型构建子系统以可视化的方式提供了计算无关模型的建模功能,并可以实现对模型的管理,该子系统以参考模型管理工具为基础实现自身功能;计算无关模型向平台无关模型转换子系统以本体建构工具为基础,实现对元本体映射规则的构建、本体模型构建等功能;构件选取子系统的功能包括不同层次业务特征的定义与维护、平台无关构件模型的建立、基本本体的构件匹配功能、对可重用软件构件的管理等。
5 总结
本文对业务模型驱动的ERP系统架构进行了分析和设计,该架构一是可以提高制造企业的信息化程度方面,可以有效地加快ERP系统重构和部署的效率;二是对于具体的制造企业,可灵活地根据业务需求的变化对ERP系统进行重构,从而在竞争中占据主动;三对于ERP系统的开发商而言,根据企业业务需求而可柔性重构的ERP系统与用户的需求更为贴合,具有良好的可扩展性和可维护性,也可大幅降低开发成本,提升企业形象。
参考文献:
[1] R Dove. Reconfigurable Manufacturing Systems[J].Production,2009,107(2): 16-17.
[2] 王成恩.制造系统的可重构性[J].计算机集成制造系统-CIMS,2011,6(4):1-5.
[3] Y Koren,U Heisel,F Jovane.Reconfigurable Manufacturing Systems[M].CIRP Annals,2012,48(2):527-540.
[4] Y L Tang,C D Li,X Y Hu.Reconfigurable ERP: Concept and Service-oriented System Architecture[J].In Proceedings of the Sixth Wuhan International Conference on E-business,2013:782-790.
[5] 李千目,许满武,张宏.软件体系结构设计[M].北京:清华大学出版社,2008:229-230.
[6] Cassidy K,Gross K,Malekpour A.Advanced Pattern Recognition for Detection of Complex Software Aging in Online Transaction Processing Servers[C].Proc.DSN 2002.USA:Washington,2002.
[7] 胡顺扬,翟有甜,周波.基于.NET平台的软件构件开发方法研究[J].计算机技术与发展,2008,18(11):58-63.
[8] Castelli V,Harper R E,Heidelber P.Proactive Management of Software Aging[J].IBMJRD,2004,45(2):311-332.
[9] 胡顺扬,翟有甜,周波.基于.NET平台的软件构件开发方法研究[J].计算机技术与发展,2008,18(11):58-63.
[10] 张高峰,张志勇,张静瑜.基于模型驱动架构的舰载指控系统仿真研究[J].系统仿真学报,2011(S1):225-227.