文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ERP开发平台简介

ERP开发平台简介

时间:2011-04-24  来源:Blacker

进公司到现在一直从事ERPII平台的开发,四年多了,看到平台慢慢成型,感到很有成就感,下面简单整理一下我们的开发平台的主要作用和结构:

主要作用:让业务组的程序员能根据业务需求快速开发单据,分工合作,我们关注技术实现,他们关注业务需求。

一、系统架构:首先横向看是一个多层式的结构,包括数据层、中间层、UCO,前端(分WinForm和WebForm),UCO可看做是前端与中间层交互的媒介,既可在服务端执行也可在客户端执行;其次纵向看类似SOA架构,分CRL和SRL,CRL主要提供通用服务和接口,SRL主要是对CRL的实做,这样就做到了接口与实做相独立,后续可方便替换实做,满足高内聚,低耦合的要求。

二、资源定义:因为对我们来说定义了资源就相当于定义了系统(资源定义就是对整个系统的描述),所以它是我们核心,所有功能的操作都是围绕它展开的,它里面主要包括数据库表的描述(数据源模型),界面描述(窗体拍板模型),对象描述(权限模型),单据流转描述(转单模型),联动计算模型,存储过程模型,显示名称模型。最后我们可利用SQLBuilder和数据源模型非常方便地产生SQL语法,而一些复杂的表达式也可通过Paser来进行解析(SQLBuilder和Paser是我们里面很核心的两个组件)。

三、分布式架构:考虑客户端服务器在不同地域,所以两者怎么通讯是首先要考虑的,同时要考虑效率,因为客户端和服务器有时候传输的资料量很大,通讯频繁,所以这里涉及到压缩,分流,加密,当然还有就是服务器的负载平衡和各司其职,有些只能在Master上执行,如数据库访问,KEY控管,有些可以在APP上执行,如中间层操作。

四、前端呈现:目前我们有WinForm和WebForm两种呈现方式,但他们只是展现不同而已,UCO,中间层逻辑都一样,同一份代码。因为界面操作细节很多,既要考虑易用性又要考虑效率,所以我们在这块投入了很大的人力,包括控件改写,自动排版,效率,绘画,消息处理。而且很多东西我们也是一边做一边研究,如我这周重构的EndEdit与控件刷新的关系。

五、报表打印:报表打印也是ERP的一个重头戏,这里涉及数据的准备和打印格式的设计,数据准备主要考虑的就是效率问题,打印格式设计涉及的细节就太多了(此部分详见我上次分享的“浅析XtraReport运作原理”)。

六、数据库操作:这里主要包括数据库表结构的创建与升级(升级又可分为对资料的升级对表结构的升级),以及数据库访问,数据库访问都封装在数据层,这边主要考虑的就是不同平台数据库的访问,以及如何提高数据库访问的效率,提高效率我们主要是通过对象池来实现,通过对象池既可以做到对象共享,又可保持连接,还可控制并发上限,一举多得。

七、序列化机制:因为很多东西需要存储,所以序列化的效率和方便性就显得特别重要了,我们在经历两年阵痛后,由老大操刀重写了整个序列化机制,现在看来这一举动还是挺明智了,毕竟我们做产品的,要追求完美,要考虑“后代”。

八、其他的的如商业规则检查,转单,联动计算,排程报表,提醒精灵,我的消息,服务器管理,资料导入导出,脚本机制,自动化测试,格式化都很重要,所以我后面有时间再详细分享。

九、最后一个问题就是效率,因为资料庞大,逻辑复杂,所以很容易出现效率问题,怎么解决这个问题我们一直在努力,目前解决这个问题标准流程就是首先理清逻辑,看看算法有没有问题,某些动作是否可以简化;其次就是优化核心元件,如重写序列化,通讯机制,对象池;最后就是人性化处理,通过进度条,画面优化来让用户心理上得到慰藉。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载