ERP通过对企业的物资、资金、信息等资源的统一管理,更好地实现信息共享,提高企业资源的利用率,有效加强企业管理过程监督和控制力。针对企业间的ERP通信,EDI通过制订标准化的数据格式消除了企业间的系统沟通障碍。然而在企业内部的信息交换却没有一个相应的信息标准。这个问题在企业整合或ERP系统更新时显得尤为明显。
1 原有模式的缺点
当前国内外ERP内部信息交换由于没有相应的标准,不同的ERP软件产品都采用各自的数据交换方式,一般采用直接或间接访问数据库的方式来得到需要的数据。这样做可以加快数据处理的速度。但是在企业实施、整合或更新,特别是面对不同的ERP系统时,不同的语义和数据结构都可能成为障碍。
1. 1系统模块添加
在信息化的过程中,一些企业在初期可能存在企业信息化人才和计算机设备缺乏等情况,从实际情况和成本方面考虑,往往会采用只采用部分ERP模块或开发一些信息系统,在信息化比较成熟的时候再切换到ERP系统。比如许多企业的信息化都是从会计电算化开始的,在条件成熟的时候,再开始增加模块或直接上ERP系统。在上ERP系统的时候是选择全新的系统,还是在成熟的系统上进行升级,是企业经常面对的一个问题。放弃熟悉的系统而转向一个全新的系统,对企业而言不仅是极大的资源浪费,而且还要承受更大的风险。在选择系统升级和添加新的系统模块时,经常面对的一个问题就是如何使新的系统与原系统进行平滑转换。由于不同的ERP系统可能采用完全不同的数据库系统和系统流程,数据库不兼容、流程差异等都可能造成ERP实施的失败。
1. 2不同系统整合
在一个企业中运行不同的ERP系统并不是很常见,但是出现的问题也许是致命的。在企业整合过程中,这种情况就可能出现,往往是在要联合的企业分别运行了不同的ERP系统,这样就常常要求ERP系统整合。由于不同的企业可能采用不同的ERP软件,而且企业的规模越大难度就越大,在整合失败的情况下,造成的损失就越大。由于在实际情况中,各个企业信息化环境不同,如果ERP系统整合不好就会形成两个企业的信息相对独立,就会形成一个“信息孤岛”,使每个系统相对独立又相互封闭。在明基、西门子手机部门兼并过程中,ERP整合失败是造成兼并失败的一个重要原因。
2 EDI的工作模式
在ERP的发展过程中,企业原来的单一企业向以供应链为主导的虚拟企业发展,企业间的合作不断加强。为了解决企业间的ERP系统间的信息交流问题,早在上世纪60年代,欧洲和美国几乎同时提出了EDI的概念。EDI(Electronic Data Interchange,电子数据交换)通过计算机通信网络将企业间商业信息,用一种国际公认的标准格式,实现各有关部门或公司与企业之间的数据交换与处理,并完成以贸易为中心的全部过程。国际标准化组织(ISO)将EDI描述为:“将贸易(商业)或行政事务处理按照一个公认的标准变成结构化的事务处理或信息数据格式,从计算机到计算机的电子传输”。
早期的EDI系统实施费用昂贵,随着XML技术的出现,联合国贸易促进及电子商务中心(UN/CEFACT)和美国结构信息标准高级组织(OASIS)又提出了ebXML(Electronic Business using eXtensible Markup Language)的解决方案。ebXML作为一种廉价的EDI实现技术得到了迅速的发展。
ebXML作为一种企业间的数据传输的解决方案很好地消除了ERP系统间的数据差异问题。在解决这个问题之前,我们可以参考一下ebXML的工作模式。ebXML是一组标准化规范,它使得不同规模、不同地域的企业通过互联网进行商务通信。通过使用ebXML,公司可以使用标准化的方法去交换商业信息、开展贸易关系、用正常术语联络信息、定义和注册业务流程。
在ebXML的使用过程中,企业间的XML格式差异都是通过ebXML注册中心来消除的。在ebXML注册中心将不同公司的相同信息一一对应起来,在不同公司要求获取数据的时候,将需要的公司信息转换为请求可以识别的ebXML格式。
3 模块间通信的标准化
在信息系统设计开发中,对于数据流和数据字典中格式的最终实现是由于系统开发时采用的开发工具与系统模型相关。在实际的应用中,由于对内部数据格式没有统一的规定,不同的ERP系统,或者同一ERP系统不同版本的内部交换格式都可能是不同的,这样就对系统的整合及二次开发带来一定的难度。
虽然在不同的语言中,也存在各自的数据交换语言,比如Ajax技术中就采用JSON作为其数据交换的标准。由于Ajax使用的JavaScript是一种脚本语言,脚本语言较低的效率和缺少XML解释器使得Ajax放弃了对XML的选择而转向了简洁的JSON,虽然JSON在数据格式和使用上都比XML简洁,然而JSON专注于JavaScript方面的数据交换,缺乏语言的兼容性,而且JSON不是一个标准化的格式,稳定性和安全性都不能很好地保证,所以在普及方面还是有很多的问题。
类似的技术是ADO.Net采用了XML作为数据交换的中间格式,XML作为数据交换的统一格式为其实现跨数据库提供了基础。由于ADO技术只是作为一种跨数据库的数据操作方式而设计,对于数据含义的统一和解释并不是必要的。同时,在新一代的数据库存储技术中,XML已成为新的数据库存储格式,XML在Web应用中也起到了举足轻重的作用。而在桌面应用中,XML也已成为很好的数据存储格式。XML作为新一代的数据存储标准,XML着眼于数据存储及数据的呈现,作为下一代的网络语言XML是成功的。然而在语义统一方面,XML并没有做出相应的规定,不能作为模块间通信的数据交换语言。
4 如何使用ebXML消除数据差异
消除模块间的信息交换格式不统一的问题,成熟的ebXML似乎是一个可行的解决方案。由于ebXML在设计之初就是为了统一不同系统间的通信格式,作为系统内部数据交换的统一格式,也是非常合适的。
在系统设计时,系统设计人员就根据需要对系统做出系统设计,数据字典和数据流是其中重要的一部分,合理高效的数据流是好的信息系统的基础,在信息系统试运行期间,针对用户变化的需求有时可能要对数据做出一定的修改和完善,如何在变化的需求中保持系统的稳健性是信息系统设计开发者需要考虑的一个问题。在系统模块直接访问数据的开发方式下,一旦某个数据流需要做出修改,涉及的模块都要做出相应的修改。而利用ebXML将数据流进行对象化封装是一个比较好的解决方案。
在ebXML的实施中,不同系统的的差异由ebXML注册中心来消除,不同含义的XML信息通过在注册处查找对方的定义来实现转换,对于不同的数据信息也可以采用类似的处理办法来进行转换,我们可以在ERP系统与数据库之间加入EDI翻译层作为ERP系统与数据库交互的中介,系统中各个模块间的数据流可以在EDI翻译层定义,所有的数据相关定义存储在EDI翻译层,ERP的各个模块不再直接对数据库进行操作,在系统模块请求的时候,只是向EDI翻译层发出数据流请求,而EDI翻译层将根据系统设计时预定义的数据流格式,从数据库获得并转换为XML格式报文返回给ERP系统。
而对于外部系统的数据操作同样由EDI翻译层来消除差异性,在不同的ERP系统互联的时候,首先要在EDI翻译层对对方的数据流和数据字典做出对应的数据解释,即将对方的数据流和自己的数据库对应起来。在不同系统间通信时,如果需要外部数据,则对EDI翻译层发出数据请求,己方的EDI翻译层收到后将请求转发给被请求方的EDI翻译层,对方的EDI翻译层收到后则根据定义数据格式做出反应和处理,然后将要求的数据返回给发送方的EDI翻译层,己方的EDI翻译层再把数据返回给ERP模块,这样完成整个数据处理过程(参见图2)。即在全局方面,EDI翻译层也可以作为ebXML的端点来实现;在内部系统中,EDI翻译层又是ebXML的本地化的实现。所以在具体实施中,EDI翻译层并不与ebXML冲突,两者可以很好地结合在一起。
5 在企业开发中的意义
在ERP系统与数据库中间加入翻译层,使得数据层与处理层分离的开发方法不仅在ERP系统整合等应用中发挥作用,而且对于ERP系统设计也有着重要意义。采用这种方法使得ERP软件的设计与数据库无关,对于设计人员而言,在针对不同数据库的开发中,不需要关注数据库之间的差异,而由EDI翻译层来消除其间的差异。在新版本开发中,数据流的修改不再影响到整个系统,只要在EDI翻译层修改数据流及数据字典的定义即可。在系统设计时,针对在对在不同企业、但企业流程相同或相似的系统,开发人员只要针对企业做出不同的数据定义,而应用部分则不需要完全重新开发。另外在XML开发中,还可以通过XSL使界面和数据分离,经过层次的分离后,ERP系统设计者可以专注于ERP系统的流程,而从具体的数据处理工作中摆脱出来,这样不仅降低了ERP系统的开发难度,还增强了系统的柔性,针对企业定制ERP系统的难度将得到降低,对于提高ERP实施的成功率有很大的促进作用。
作为信息系统设计的一种数据解决方式,采用数据层、系统处理层分离设计的做法可以使开发人员专注于自己的模块,大大提高工作效率。
然而,由于在数据处理的过程中从数据库得到的数据和用户发送的数据都要由EDI翻译层进行转换,这样必定会降低数据处理的效率。在ERP信息系统中,一般来说,数据处理速度不是系统的瓶颈,且ERP系统一般都是部署在企业内部网中,网络速度和系统转换速度都不会对系统处理速度造成很大的影响。与其带来的效益相比,这些都是可以接受的。这种方法对于开发通用ERP系统的意义尤为明显。
6 结束语
ERP系统的整合是一项重要的工程,并非单纯的数据整合。本文旨在提出一种跨系统、跨数据库的数据整合方案,通过ebXML的数据转换将不同类型的数据转换为系统可用的XML数据格式,在不同的系统中的数据格式识别问题由ebXML注册中心来解决。
作者:QC 来源:和讯