基于构件的网络ERP系统框架研究
本文提供了一个Web环境下基于构件的IERP系统软件的框架设计，在论文中首先分析了IERP的定义，包括IERP、ERP的含义和集成过程。其次，分析了IERP系统的体系结构，包括框架结构和分块体系结构，最后讨论了系统框架的实现技术，包括EJB、CORBA和Web Service集成构件的优缺点，并提出了IERP系统构件的集成方案。
一、IERP的定义和资源集成
ERP首先是1990年初由Gartner Group提出的，在Gartner Group信息技术词汇表(Gartner Group's IT Glossary—Enterprise Resource Planning (ERP))中关于ERP的定义如下：一个由Gartner Group提出的概念，描述下一代制造商业系统和制造资源计划(Manufacturing Resource Planning MRP II)软件的集成。它包含了客户端/服务器(Client/Server，C/S)体系结构，使用图形用户接口，应用开放式系统进行规划。除了已有的标准功能外，它还包括其它功能，如质量、过程运作管理和报表等。另外，基础技术在ERP中的使用，使软件和硬件分离而易于升级。ERP的关键在于它能够量身定制，因而具有固有的易用性。
F. Robert Jacobs and Elliot Bendoly 从“概念”和“系统”两个方面对ERP的定义进行了探讨，概念研究主要集中在ERP对不同商业功能执行的潜在冲击上，而“系统”研究主要是对错综复杂的软件包和过程进行设计以实现相应的概念对象。
David C. Yen、David C. Chou and Jane Chang把ERP系统看作是一个软件，能够用它来集成企业内部所有的功能信息，并且自主执行业务处理。也就是说，ERP系统是一个商业管理系统，它集成了企业的方方面面的内容，包括计划、市场和制造。
以上定义无论是从概念上，还是从系统上、软件上都可以看出它们具有一个共同点，ERP是对企业所有的信息流、物流、资金流和工作流的无缝集成，是企业集成内部所有资源，包括财务、成本、物流、制造、人力资源等，进行有效的计划和控制，以达到最大效益的工具。然而，随着Internet的广泛应用，传统ERP逐渐显示出了它的局限性，它主要集中在对企业内部资源的管理，缺乏自主性和柔性，针对这一问题，本文提出了网络ERP的概念，IERP是以WEB为平台，充分利用网络通信技术，实现企业内部资源和外部资源的无缝集成，达到企业内部资源的共享和外部资源的协同，最终实现企业的在线运作。图1描述了IERP系统的资源集成过程。
图1 IERP系统资源流动集成图
二、IERP系统体系结构
1.IERP系统分块体系结构
软件体系结构代表了系统公共的高层次的抽象，是软件开发过程中的重要产品和系统性重用的主要资产，基于构件的软件开发必须以体系结构为中心。为解决不同部门或公司的逻辑处理的协同，我们在设计时引入了软构件以提供协同服务，使软件具有足够的灵活性和互操作性。
传统的ERP系统采用基于浏览器/服务器 (Browse/Server，B/S)的层次体系结构，分为表现层、业务逻辑层和数据层，虽然三层结构在Web应用系统开发中，被证明是行之有效的，但是它的表现层、业务逻辑层和数据层紧耦合，如果一层发生变动，其它层也必须随之变动，不利于软件的复用和重构。为了克服三层结构的局限性，我们将系统分成五快，从而在软件体系结构上保证了构件的可复用性，软件的可重构性、可扩展性。图2为基于构件的IERP系统分块体系结构，分为前台表现块、界面构件块、业务功能块、数据访问块和后台管理系统块。根据定义，分层方法只允许一个层与其相邻的上下层之间通信。如果按层次结构将系统体系结构分为五层，那么通信只能在相邻两层间进行，而系统实际运作时前台表现层与后台管理系统层的操作需要业务功能层与前台表现层、界面构件层与数据访问层通信。而这违反了分层原则，因此IERP系统体系结构是按块而不是按层来组织。这种结构将数据模型与数据源分离开来，我们可以用最小的代价改变数据库管理系统。各块和各构件之间使用对象请求代理(Object Request Broker，ORB)、EJB( Enterprise Java Beans，由SUN公司提出的基于Java的面向对象的组件标准)和Web Service实现相互合作。
图2 IERP系统分块体系结构
(1)前台表现块 用Web客户端构成表现块，为Web浏览器准备
显示内容，用于和用户进行交互，主要包括图形用户界面和所有的显示逻辑，前台表现块函数独立于页面内容，因此，可以改变业务功能或界面构件而不会对表现块造成影响。
(2)界面构件块 为前台表现块提供用户显示的界面构件，把客户端应用程序从复杂的业务服务中孤立出来，使表现块不受复杂的业务干扰，降低表现块和业务功能块的耦合度。系统采用了软构件技术，将部分脚本块(如报表格式、图像格式等)封装为构件，既有利于大量脚本的重用又增加了系统的安全性。
(3)业务功能块 业务功能块是IERP框架的核心部分，用于封装大量可重用业务构件。业务构件的设计既要满足系统需求，又要具备高内聚、低耦合、易重用的特点。
(4)数据访问块 该块提供了接口适配器和数据库适配器，主要用于数据为业务功能块和界面构件块服务，提供数据访问服务，使业务逻辑脱离后台管理系统块的干扰，同时有利于基于构件的事务的实现，包括数据有效性的验证，数据记录集的添加、修改、删除等。
(5)后台管理系统块 该块包括数据库、知识库、底层硬件、分布式计算环境、操作系统和网络配置与维护，数据库用于存储信息数据,包括基本信息，货物信息和生产信息等。知识库用于存储本地规则和部门或公司间的合作协议,支持工作流引擎的执行。
2.IERP系统框架结构
基于构件的框架是由一组相互协作的构件组成，通过用构件替代框架内部相互协作的类，以增大框架构成成分的粒度，用构件接口的调用替代类方法的重载，便于框架的组装，从而使软件具有更大的构件粒度以及良好的扩展机制，使其更易于被重用和重构，易于满足软件的客户化要求，这些构件及其协作关系定义了应用系统的体系结构。综上所述，并参照文献[12]给出了IERP系统的框架结构(如图3所示)，系统主要由十三个核心构件、一个备用构件库、一个客户关系管理构件库、一个供应链管理构件库、三个引擎和三个平台构成。图中虚线部分为框架内部构件，即框架核心构件，它实现了系统的共性。其余为由用户定制的、待组装构件，即应用构件，它代表了系统的变化性。在系统定制时，根据应用的具体特点，对非核心构件库进行筛选，通过构件接口将框架核心构件和所筛选的构件衔接起来，进行组装，形成最终的应用系统框架，实现软件构件的复用和系统的重构。
图3 IERP系统框架结构
在IERP系统框架结构中，通信引擎实现构件之间、构件与用户之间的通信。主要包括数据通信、信息转换与流动等。企业应用集成引擎主要实现构件之间、构件和用户之间的请求和响应，例如用户通过WEB浏览器提出他们的请求，企业应用集成引擎则要找到所需要的请求，并且将结果返回给用户。工作流引擎是系统构件协同的关键,负责商业过程的建模、执行与监控。基于用户命令,工作流管理程序按存储在知识库中的规则分析形成工作流,并利用工作流来协调完成企业内部各部门及其相应的应用软件系统之间的工作。
图4 EJB、CORBA和Web Service在IERP系统体系结构中的技术实现
三、实现技术
实现技术是系统实现的关键，基于构件的IERP系统的框架设计主要实现三个方面的内容：构件的设计、构件接口设计和服务。应用的技术主要包括：EJB、CORBA和Web Service。IERP系统框架设计是一个基于构件的设计，是构件的集成。构件封装了存储数据的属性和执行功能的方法，它对外界隐藏设计和实现细节，仅通过接口与外界交换信息，接口是理解构件和使用构件的唯一信息源。综上所述，我们可以看出，IERP系统的构件组合是通过接口集成的，并且IERP框架的实现依赖于一系列的服务、工具以及通信机制。
1.通过CORBA集成
CORBA是由对象管理组织(Object Management Group，OMG)为解决分布式、异构的
软件和硬件环境下对象之间的互操作问题而提出的基于中间件的构件技术。CORBA使用了中间代理机制，使用对象请求代理(Object Request Broker, ORB),实现构件之间的通信，从而将构件的接口与构件的实现分离开来，客户可以通过静态存根(Stub)或者通过运行时动态生成的IDL(Interface Define Language，接口定义语言)来调用服务，并且提供了一个强制性的网间对象请求中介通信协议(the Internet Inter-ORB Protocol， IIOP)，可以通过TCP/IP协议实现构件间的通信。CORBA提供了丰富的便于用户使用的、标准的对象服务，如命名服务、交易服务等。优点：以IDL为标准，与实现构件接口的语言、软件平台和硬件平台无关;以ORB为软件总线，开放性好。缺点：IDL的实现与软、硬件平台相关，无法满足Internet上大量的移动计算的需求;具有独立的体系结构和私有协议，不同模型的应用系统之间通信十分不便。
2.通过EJB集成
EJB是Sun公司提出的基于Java的面向对象的组件标准，是Java类与XML的集合，具有平台无关性、可重用性和可移植性的特点。EJB构件间的相互调用是通过远程方法调用RMI(Remote method invocation)协议完成的。RMI使用在TCP/IP上的线路集协议JRMP(Java Remote Method Protocol，Java远程方法协议)和IIOP实现网络间的传输。EJB提供了JNDI(Java naming and directory interface Java ，命名和目录接口)、JTS(Java Transaction Service，Java事务服务)等一系列服务。缺点：具有语言相关性;具有独立的体系结构和私有协议，不同模型的应用系统间通信十分不便。
3.通过Web Service集成
Web Service 是建立在XML数据交换基础上的软件模型，是一种部署到Internet中，可复用的应用程序构件。Web Service定义了一系列标准和协议，用于接口定义、方法调用、基于Internet的构件注册以及各种应用的实现。其中主要的标准和协议是：XML、WSDL、SOAP、HTTP、UDDI。这些标准和协议的具体介绍参看文献[14]。优点：Web Service使用标准的Internet协议，具有协议的通用性;完全的平台、语言无关性，具有良好的互操作性。缺点：由于基于XML，所以也具有XML的缺点，因为XML数据要经过多步处理才能被系统使用，因此占用大量的CPU资源，对大量数据处理经常出现超时现象。
4.IERP系统构件集成方案
根据上面对CORBA、EJB和Web Service三种集成方案的优缺点分析，我们在设计IERP系统时将三种技术融合起来，取长补短。由于CORBA具有丰富的服务和良好的开放性，系统中除需要移动计算的构件之外的企业内部交互性大的构件全部通过CORBA集成，从而避免了EJB和Web Service数据处理速度慢的缺点。企业内部需要移动计算的构件，像物料需求计算，成本核算等，采用EJB集成，从而发挥了EJB可移植性和平台无关性的优点。对于数据交互量不大的供应商和客户服务构件以及其他的与客户、合作伙伴相关的构件采用Web Service进行集成，从而充分发挥了协议通用性、平台和语言无关性的优势。
四、结论
随着Internet和Intranet的广泛使用，传统的ERP系统已经不能完全满足企业的需要，网络ERP的设计为企业提供了一个以WEB为平台的网络管理系统，基于构件的软件开发方法和作为面向领域具有大粒度可复用软件成分的框架设计实现了IERP系统的互操作性，可扩展性、可重用性和可重构性，EJB、CORBA和Web Service为IERP系统的实现提供了技术支持。