划时代的ERP业务数据流层系列(2) 之 电闪雷鸣:Namsara数据流层核心思想揭秘

划时代的ERP业务数据流层系列(2) 之 电闪雷鸣:
Namsara数据流层核心思想揭秘

概述:

ERP的大部分处理针对数据库的数据,因此我设计了一套规范去约束这些处理,采用了数据流的思想,得到了数据流层框架Namsara。

核心模块:

Namsara的核心模块包括 Exchanger, Filter, Loader, Channel。通过这四个模块的综合运用,可以处理任意的ERP需求。

Exchanger::实现数据映射,包括简单的数据四则混合运算,字符串处理等。是数据流层的核心部分。例如订单生成到货单,通过配置Exchanger,就可以实现。

Filter:数据的bool运算,其结果影响到Channel的数理(channel下文介绍),产生分流。其作用类似程序语言的IF条件判断,满足不同需要的数据处理

Loader:加载外部数据,与持久层Nemuria紧密结合。目的在于引进新数据源到数据流。通过配置可以简单的向数据源添加需要的数据,满足数据流处理的要求,不需要写代码进行数据读取与加载。其结果根据加载是否成功产生分流。

Channel:数据流层另外一个核心模块。他主要对以上三个模块进行链条式连接,形成类似流水线一样的数据处理。

模块小结:

简单的说,通过Channel对Exchanger, Filter, Loader进行装配,实现了数据流处理;Loader加载了Exchanger需要的数据源,Filter提供条件选择合适的Exchanger, Loader进行处理。

数据流图示例:

以下是一个简单的数据流图:

上图的模块体现了Channel对Filter, Exchanger, Loader的组装。

数据流图文字分析:

下面我就套用一个订单到货的例子进行文字分析上图:
Precondition:
有一张订货单,现在需要生成到货单,批次,入库单。
Requirement:
订货单中如果是赠品,则不生成入库单。
如果是非商品,则生成入库单。
所有商品生成到货单,批次
DataFlow:
赠品流:Filter判断为赠品,进入Exchanger2生成批次
商品流:Filter判断为商品,进入Loader读取数据库商品信息;进入Exchanger1生成入库单,进入Exchanger2生成批次
全部再进入Exchanger3生成到货单
上面体现了我设计的Namsara实际处理逻辑,即在Filter分流,在Exchanger2并流,然后再运行Exchanger3。当然具体的程序逻辑下文再讲。

下次预告:

下一篇,我将公开Namsara的源代码,并提供一个简单的Demo程序方便大家理解。欢迎大家来做客:狂风暴雨——倾盆大雨篇:Namsara源代码发布
posted @ 2007-02-16 22:23    阅读(1112)  评论(2编辑  收藏  举报
IT民工