如何理解ERP开发平台,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
下面简单整理一下ERP开发平台的主要作用和结构:
主要作用:让业务组的程序员能根据业务需求快速开发单据,分工合作,我们关注技术实现,他们关注业务需求。
一、系统架构:
首先横向看是一个多层式的结构,包括数据层、中间层、UCO,前端(分WinForm和WebForm),UCO可看做是前端与中间层交互的媒介,既可在服务端执行也可在客户端执行;其次纵向看类似SOA架构,分CRL和SRL,CRL主要提供通用服务和接口,SRL主要是对CRL的实做,这样就做到了接口与实做相独立,后续可方便替换实做,满足高内聚,低耦合的要求。
二、资源定义:
因为对我们来说定义了资源就相当于定义了系统(资源定义就是对整个系统的描述),所以它是我们核心,所有功能的操作都是围绕它展开的,它里面主要包括数据库表的描述(数据源模型),界面描述(窗体拍板模型),对象描述(权限模型),单据流转描述(转单模型),联动计算模型,存储过程模型,显示名称模型。***我们可利用SQLBuilder和数据源模型非常方便地产生SQL语法,而一些复杂的表达式也可通过Paser来进行解析(SQLBuilder和Paser是我们里面很核心的两个组件)。
三、分布式架构:
考虑客户端服务器在不同地域,所以两者怎么通讯是首先要考虑的,同时要考虑效率,因为客户端和服务器有时候传输的资料量很大,通讯频繁,所以这里涉及到压缩,分流,加密,当然还有就是服务器的负载平衡和各司其职,有些只能在Master上执行,如数据库访问,KEY控管,有些可以在APP上执行,如中间层操作。
四、前端呈现:
目前我们有WinForm和WebForm两种呈现方式,但他们只是展现不同而已,UCO,中间层逻辑都一样,同一份代码。因为界面操作细节很多,既要考虑易用性又要考虑效率,所以我们在这块投入了很大的人力,包括控件改写,自动排版,效率,绘画,消息处理。而且很多东西我们也是一边做一边研究,如我这周重构的EndEdit与控件刷新的关系。
五、报表打印:
报表打印也是ERP的一个重头戏,这里涉及数据的准备和打印格式的设计,数据准备主要考虑的就是效率问题,打印格式设计涉及的细节就太多了(此部分详见我上次分享的“浅析XtraReport运作原理”)。
六、数据库操作:
这里主要包括数据库表结构的创建与升级(升级又可分为对资料的升级对表结构的升级),以及数据库访问,数据库访问都封装在数据层,这边主要考虑的就是不同平台数据库的访问,以及如何提高数据库访问的效率,提高效率我们主要是通过对象池来实现,通过对象池既可以做到对象共享,又可保持连接,还可控制并发上限,一举多得。
七、序列化机制:
因为很多东西需要存储,所以序列化的效率和方便性就显得特别重要了,我们在经历两年阵痛后,由老大操刀重写了整个序列化机制,现在看来这一举动还是挺明智了,毕竟我们做产品的,要追求***,要考虑“后代”。
八、其他的
如商业规则检查,转单,联动计算,排程报表,提醒精灵,我的消息,服务器管理,资料导入导出,脚本机制,自动化测试,格式化都很重要,所以我后面有时间再详细分享。
九、效率问题
因为资料庞大,逻辑复杂,所以很容易出现效率问题,怎么解决这个问题我们一直在努力,目前解决这个问题标准流程就是首先理清逻辑,看看算法有没有问题,某些动作是否可以简化;其次就是优化核心元件,如重写序列化,通讯机制,对象池;***就是人性化处理,通过进度条,画面优化来让用户心理上得到慰藉。
Internet技术的成熟为企业信息管理系统增加与客户或供应商实现信息共享和直接的数据交换的能力,从而强化了企业间的联系,形成共同发展的生存链,体现企业为达到生存竟争的供应链管理思想。ERP系统相应实现这方面的功能,使决策者及业务部门实现跨企业的联合作战。
ERP的应用的确可以有效地促进现有企业管理的现代化、科学化,适应竞争日益激烈的市场要求,它的导入,已经成为大势所趋。
看完上述内容,你们掌握如何理解ERP开发平台的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!