狂风暴雨——风云突变篇:基于数据流层Namsara的ERP系统架构描述
狂风暴雨——风云突变:基于数据流层Namsara的ERP系统架构描述
摘要:
简略介绍汇金百货ERP系统架构。
我目前正在参与开发汇金百货ERP系统,主要负责数据库开发维护、系统整体框架、库存模块。报表模块、系统模块。此项目从需求开始经历了1年都,目标在今年3月左右正式取代原版老系统。
能够参与这个项目的需求讨论、数据库分析、模块开发、测试等,是领导和战友给我的机会。
首先要说的就是,因为存在保密之类无聊的协议,我不能公开ERP系统,不能涉及业务流程,所以我把我设计的一种一部分非业务部分拿出来,希望得到大家的建议,让自己不断学习。
我设计的库存模块的特点:使用其他模块生成的数据进行计算、合并、重组。例如A合同B供应商的商品进货,修改库存,生成到货单之类的。
从这个片断可以看出,库存模块大部分是对数据库数据操作(当前的大部分ERP系统一样,例如南北软件)。因为整个模块的架构如下图:
概念:专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。
我自己重新设计了一个持久层,其功能包括:写数据库schema的配置文件自动生成对应的CRUD操作;特殊SQL配置;临时自定义SQL;缓存操作;主键自动生成;分布式同步操作;事务操作等,具体可以看Nemuria架构的介绍。
数据流层(Dataflow Layer):
就是本文即将介绍的Namsara层,通过xml的配置文件,可以实现任意需求的数据操作,不需要写一句代码!有了我目前正在开发的IDE开发环境,开发ERP可以向MDA方向靠拢。具体下文介绍。
业务流层(Workflow layer):
用一个例子说明:一个商品的订货要经过下定单、单据审核确认、单据发出、商品接受、异常商品处理、过时单据处理、异常单据处理等流程。如何组织这些流程就是业务流的任务。他通过合理调用数据流实现任意的业务流搭配。
界面层(专业一点的说法是表示层,我土。。。):
就是些漂亮方便+带提示+回车自动对焦+XP风格+SAP基调+。。。。。的界面满足客户极其变态无聊无礼白痴的需求。我们项目组也自己开发了很多控键。具体不说了。
尾声:
目前,我们ERP项目中的持久层+数据流层已经完全使用XML代替了代码,剩下的业务流层框架正在开发中,估计不会用在这个项目里面,至于界面,我认为是最难的,那些无聊白痴没脑无礼的顾客的需求实在太变态,今后还要多参考一些开源的框架才行。不过一套ERP系统采用MDA方法开发我的感觉并不遥远。
下次预告:
ERP数据流层核心思想。有了思想,就可以在此基础上添加自己的创意想法,使开发ERP变得更加好玩!正如新概念4里面说的: Idea is important!