0 引言
企业资源计划(EntERPrise Resource Planning,ERP)集先进企业管理思想与信息技术于一身,随着我国企业信息化不断推进。越来越多中小型企业纷纷采用ERP提升企业竞争力;然而由于现存ERP系统功能模块固化、扩展性不高、中小型企业个性化业务模式特殊化等原因直接或间接导致ERP实施在中小企业失败率极高。
近些年为从根本上解决ERP开发周期长、实施失败率商的问题,“平台化”逐渐成为国内外ERP厂商的主要开发模式,例如SAP NetWeaver,用友UAP,金蝶BOS等。SAP Netweaver产品过于庞大复杂,简单的需求变化解决起来却很复杂等缺点注定了其不适合于我国的中小企业。国内金蝶、用友为缓和企业“二次开发”迫切需求仓促推出BOS、UAP,可以针对已实施的系统进行局部少量的二次修改,但对于复杂的业务流程的改变仍然需要软件研发中心二次开发完成。由此可见这些平台没有真正解决中小型企业的个性化问题,更谈不上被市场接受,究其原因有三:1)不是基于面向服务架构(Service-Oriented Architecture。SOA),无法根据个性化需求快速构建企业适合的ERP系统;2)不是基于ERP-BPEL(Business Process Execution Language,业务流程执行语言)理念,无法帮助企业提高业务流程灵活性和敏捷性;3)设计路线错误,大都为ERP系统集成产品,独立性、扩展性太差。因此,研究开发—个专门针对中小企业使用的、高效的、低成本的EBP系统开发支撑平台是目前辱须解决的一个迫切问题。
可重用性、可扩展性一直都是软件行业所追求的,Eclipse插件技术使得这一愿望成为现实。因此本文提出基于Eclipse插件的可视化Web ERP系统开发支撑平台VWESA(Visual Web ERP System Architecl,可视化Web ERP系统构建者)的研究。该平台采用插件技术对软件架构及其设计进行划分,将平台的功能模块在Eclipse扩展点基础上扩展开发为独立插件;采用页面编辑环境和EBP—BPEL(即将BPEL的建模图符陋]按ERP企业系统的业务流特点进行扩展而成)进行可视化业务流程建模,使用平台的解释引擎进行流程部署与代码生成;以最终实现企业ERP系统的开发。
1 VWESA平台组织框架
VWESA平台采用SOA进行平台逻辑架构系统设计;基于Eclipse开发环境,按照插件(plug-in)的开发理念进行功能模块划分与开发,模块之间的接口定义明确,最终形成一个具有模块插件功能的ERP系统开发支撑平台。
1.1 VWESA系统开发平台逻辑结构
VWESA系统开发平台按SOA划分为用户接入层、后台协同层、业务流程层、服务供应层和数据访问层五个部分组成。
用户接八层 用户接人层采用Tiles、HTML、AJAX等技术,用于实现目标ERP系统的Web界面显示。通过Tiles定义了目标系统Web页面的框架,该层主要负责提交用户请求,并通过HTML和AJAX技术与后台协同层进行交互反馈,接受并返回数据,呈现给用户。
后台协同层 后台协同层采用JSF(Java server Faces)框架和Servlet技术来实现,它的作用为:协助控制页面的跳转、接受由用户接人层发送来的请求、数据并以控件的形式调用业务流程层所实现的业务流程进而完成对业务逻辑的访问等。利用JSF框架可以验证用户输入的值,实现页面导航,使用XML来控制页面之间的跳转关系。
业务流程层 业务流程层采用ERP-BPEL技术实现,符合BPEL规范,ERP—BPEL是具体ERP业务流程的表现,其所定义的流程实质上是对一系列单个无状态服务的调用与编排,是本文通过对BPEL的语法、图符功能含义进行深人研究,并结合分析中小企业业务流程,研究、设计出一套具有更高抽象级别、更适合企业建模开发人员使用的图符标签。在平台中通过定义的建模图符进行业务建模,并在图符参数中添加Web服务的web服务描述语言(Web Service Description Language,WSDL)文件,调用服务供应层所提供的可重用的服务元素,从而实现一个业务流程的功能。定义好的ERP-BPEL流程通过ODE解释引擎进行部署,对外发布为Web服务,以控件的方式供上两层调用。
服务供应层 服务供应层采用Axis2方式,用Java语言开发一些根据企业业务流程而抽取出的粒度较适中的服务元素.并将服务元素进行部署生成WDSL文件以供上面的业务流程层进行调用。平台中严格采用SOA技术设计服务元素。各种粒度服务元素只有在数量、种类上达到一定规模时,才能满足软件复用和基于服务重构的需求。数据访问层数据访问层的核心功能是供其他层次访问数据资源,包括数据库、XML文件等。为了在其他不同层次采用统一的方式访问数据访问层所提供的数据资源,VWESA采用Hibemate技术以对象的形式实现可视化操作数据库,并向其他层次提供访问的接口Hibemate文件。
由图1可见,VWESA通过符合BPEL规范的ODE解释引擎对ERP-BPEL业务流程进行部署及代码生成;而Web页面解释引擎Ⅱ通过servlet文件和htmlf文件与界面部分交互,最终实现快速生成、部署满足中小企业业务需求的ERP Web系统。
图1 VWESA开发支撑平台SOA技术架构
1.2 VWESA系统开发平台插件结构
VWESA系统基于Eclipse插件体系,通过ERP-BPEL流程为导向,结合ODE解释引擎、web服务、SOA架构、面向对象的数据库设计方法等先进技术实现一个能快速生成基于B/S架构的ERP Web系统。整个VWESA平台的功能可分为:资源管理器、Web系统界面设计、业务流程建模及其解释引擎、服务元素库、数据库建模与管理。平台以Eclip6e插件体系结构进行设计,平台的插件结构如图2所示。
图2 VWESA系筑开发平台插件结构
VWESA的各部分功能插件通过预定义的Eclipse扩展点进行扩展来向平台添加新功能:
项目资源管理器插件 主要提供项目的资源管理,包括项目的目录结构管理、项目文件管理、调用其他插件和项目部署等。其使用WTP(Web Tools Platform)提供的Projects Facets扩展技术,扩展WTP工程向导,进而添加创建VWESA项目类型的向导。创建向导主要完成Java web项目所依赖的JAR包加载,项目结构的初步规划及项目所需配置文件设置等。通过扩展点coln.v-wesa.builder.vweaaNature的实现来完成VWESA项目特性的添加和删除;通过扩展点orgeclipse.wst.common.project.facet.Core.facets,实现VWESA类型选项、JAR包的加载、项且工程结构规划(数据资源包、业务流程包、服务元素包、Web界面包、解释引擎包)等。
展现逻辑设计插件 涵盖两部分:基于图形化编辑框架(娜jcal Editor Framework,GEF)的图形化编辑与界面代码生成,其提供给用户一个可视化网页编辑环境,通过将环境中控件与业务建模部分的ERP—BPEL流程对应。使得用户通过拖拉控件即可完成目标ERP系统界面编辑。GEF可视化编辑器基于org.eclipse.ui.editors扩展点,分别设计Palette和Editor两个基于GEF的小模块。代码生成器在每次图形化界面设计完成后保存时触发,根据页面所用的元素产生相应的Web代码和与解释引擎交互的*.do文件。可视化编辑器读取解释引擎提供的*.htmlf的动作描述文件,经过代码生成器分析利用,通过Web解释引擎传回动作名称等参数与ERP-BPEL流程交互。Web解释引擎根据*.do完成Servlet代码二次生成,同时将*.jsp部署为Web应用。
业务逻辑设计插件 采用ERP-BPEL和CEF技术实现一个可视化业务流程建模环境。业务流程建模环境设计思想是:利用平台提供的高级图符,通过属性调用服务元素库中Web服务进而完成业务流程的编排。ERP-BPEL流程通过JET技术进行模型驱动代码生成,包括ERP-BPEL文件、WSDL文件、Deploy.xml文件,并经过ODE解释引擎部署、自动生成代码,同时将ERP-BPEL流程对外发布为一个WebServiee以供开发者调用。该插件通过扩展editor、view,使用GEF实现基本的画图功能,包括画图、图符工具集合;通过扩展propertyPages,结合GEF实现对图符的属性进行修改:通过扩展actionSet、popMenu,结合GEF实现对流程图修改命令的实现,并响应Eclipse工具栏命令;通过扩展perspectives以实现对图中的节点的透视浏览。
自定义元素开发插件 中小企业根据自己特有的业务模式,长期摸索并累积的适合自身业务流程的服务元素。
服务元素库插件 该插件提供对服务进行描述、分类、存储、检索和版本更新管理等功能。服务元素库存放、管理从企业业务流程中抽取、编写的小粒度服务,以支持用户的快速开发。如符合SOA规范的n3订单录入、订单修改、订单审核、订单查询等小粒度服务。插件基于org.eclipse.ui.views扩展点,实现服务元素管理功能,如:服务列表展示采用Eclipse JFace的TreeViewer控件,以树型结构的形式列举在视图中。
数据库建模插件 该插件提供一个可视化的面向对象的数据库建模环境,可以实时对模型进行修改,采用JET技术实现模型自动生成Java文件、对象关系映射文件和Hibernate配置文件等,以便VWESA其他模块可以通过Hibernate插件直接访问数据库。此外插件还支持数据库数据管理,选中设计的对象可以直接查看该对象映射到数据表中的数据,可以对数据进行各种操作。该数据管理插件,通过扩展org.eliPSe.ui.editom扩展点实现可视化数据库建模环境,方便开发人员开发,使开发人员不需懂得太多关系数据库的知识,即可对数据库表结构和数据进行可视化的管理。极大地提高ERP Web应用系统数据库的设计效率,降低设计难度。
2 VWESA平台模块通信接口设计与实现
VWESA的SOA架构和插件结构使得各层问有着清晰的职责划分,各模块之问通过良好定义的通信接口Do]低耦合地实现企业ERP Web应用系统的快速构建。图3明确定义了各模块间的通信方式和接口表现形式。
图3 VWESA各模块问通信接口设计
1)资源管理器模块与其他模块。
VWESA开发平台基于Eclipse插件。其各组成模块均以独立的插件形式存在。资源管理器模块提供了用户在使用VWESA开发平台开发工程时的工程资源管理。资源管理器模块为工程处理好对jar包的依赖关系、工程属性的配置,以确保其他模块在平台上顺畅运行。
2)数据库建模、管理模块与服务层开发模块。
数据库建模、管理模块为设计好的数据库生成数据库操作所使用的Hibernate技术封装API,然后以Hibernate的XML文件形式提供给Web服务;服务层开发模块便可以通过使用这个XML文件获得对数据库操作的API,然后对其进行调用。
3)服务层开发模块与BPEL业务建模模块。
业务流程建模模块中,当业务流程需要调用Web服务的时候,只需要Web服务的描述文档WSDL文件。当用户使用服务层开发模块开发并部署好Web服务之后,服务层开发模块便会为Web服务生成WSDL文件。然后在业务流程建模环境中配置图符属性,导人WSDL文件,便可完成对Web服务调用。
4)BPEL业务建模模块与解释引擎模块。
根据系统架构设计,业务流程建模模块与解析引擎模块间接口是业务流程图的WS-BPEL文件、WSDL文件和Deploy.xml文件。解析引擎模块中第一引擎是ODE解析引擎,而该引擎负责部署、解析业务流程时需要相应ERP-BPEL文件。
5)解释引擎模块与web系统界面设计模块。
解释引擎模块中ODE解释引擎完成ERP-BPEL文件部署、解析,并将BPEL流程发布为web服务。Web解释引擎通过ws2java方法将刚发布的Web服务生成Java文件,然后利用java2servlet将生成的Java文件解析成相应的servlet代码,且生成供Web界面设计模块调用的htmlf文件;在Web系统界面设计模块中,对控件的属性进行设置,调用解释引擎生成servlet的*.do文件及jsp文件。最后Web解释引擎对Web界面设计模块JSP文件进行解析部署,最终生成可运行的目标ERP web系统。
3 应用实例
图4就是我校ERP项目组利用VWESA平台开发的某玩具厂ERP系统销售供应商务平台的一个界面,开发实践证明了本平台生成ERP Web系统的可行性。
图4玩具厂ERP系统销售供应商务平台界面
首先在VWESA平台中利用项目资源管理器插件,新建一个目标项目“ToysERP”,同时完成jar包的加载、项目结构搭建及目标工程项目的初始化工作;接着由展现逻辑设计插件的可视化网页编辑环境,通过拖拉控件完成图4目标系统界面的编辑及其控件元素的属性设置,以完成与去其他页面和ERP-BPEL建模结果的衔接;同时用户必须利用服务元素库插件、数据库建模插件所提供的可视化环境完成案例中菜单和功能键所涉及的小粒度服务的编写与积累(只涉及网页链接的,如:菜单上的“首页”和“企业介绍”则只需涉及网页不同编辑界面的衔接关系,不涉及功能服务的编写,服务编写后编译成Web service、生成WSDL文件、并打包、部署到AXIS2服务器);接着利用业务逻辑设计插件所提供的ERP-BPEL可视化业务流程建模环境,实现案例中菜单和功能键所涉及的业务流程调用的建模。通过添加绑定所需要的服务WSDL,调用所需的服务,再通过平台提供的“生成BPEL代码”完成WS-BPEL、WSDL、Deploy.xml的代码生成;最后由解释引擎模块中ODE引擎部署、解析ERP-BPEL流程文件(解析WS-BPEL、WSDL、Deploy.xml文件,并将ERP-BPEL流程对外发布为Web服务,并生成servlet供Web系统界面编辑环境调用);由“部署Web应用”,完成图4所示的运行界面的代码生成,因篇幅关系这里略去生成的代码。
4 结语
熟练使用VWESA平台后,可以简单、快速地构建出所需要的B/S ERP目标系统。构建实践证明本平台技术方案可行、高效。其特点在于:1)整个平台开发为基于Eclipse的独立插件,开发效率高、扩展性好;2)采用ERP-BPEL技术,实现可视化的业务流程建模,使得流程建模更开放、灵活,提高了企业业务流程重组的灵活性和业务敏捷性;3)VWESA实现了多种Web界面编辑组合与敏捷业务流程的无缝连接,适合开发、生成需求多变的ERP系统,下来将力争达到规模应用的水平。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文网址:http://www.toberp.com/html/consultation/1082007981.html