admin 管理员组

文章数量: 1086019


2024年3月28日发(作者:三层架构是什么)

维普资讯

第35卷(2007)第1期 计算机与数字工程 145 

基于.NET的DRP系统设计与研究’ 

倪凯 黄本雄。 肖玉兰。 王腾江 

(华中科技大学电子与信息工程系 武汉430074) (福州大学管理学院 ’福州350002) 

(福建星网锐捷通讯股份有限公司” 福州350002) 

摘要DRP(分销资源计划)系统使企业能够及时把握渠道信息,为企业的业务经营及与商务伙伴的合作提供了一 

种全新的模式。文中使用MVC设计模式并采用iBATIS作为持久层框架,设计了基于微软.NET平台的面向中小型企业的 

DRP系统,并对该系统的主要功能模块、关健技术及实现方法进行了论述。 

关键词分销资源计划.NET MVC iBATIS 

中田分类号TP274 

1 引言 

销售订单管理、代销商品管理、退货管理; 

(2)采购管理:包括采购单管理、采购到货处 

在竞争激烈的现代商业社会,销售渠道已经成 

理、采购退货、采购计划; 

为企业之间竞争的关键因素。当前,大多数企业与 

(3)库存管理:包括日常出入库管理,调拨管 

其分销机构之间存在着很高的信息和数据壁垒,企 

理,经营用品借出管理,库存盘点处理,库存损益处 

业很难及时掌握产品的准确销售和库存情况。 

理,库存核算; 

DRP(Distribution Resource Planning,分销资源计 

(4)价格管理:包括变价处理、地区价格设置、 

划)就是针对这一问题提出的先进思想。 

客户价格设置、批量折扣、付款方式折扣、促销时间 

MVC是一种优秀的设计模式。近几年,它已 

折扣、降价保护; 

成为Sun公司的j2EE平台上推荐的设计模式,并 

(5)应收应付:包括收款处理、冲应收处理、采 

出现了一些基于它的java Web应用框架,如著名 

购付款处理、采购退款处理、冲应付处理、应收记息 

的Structs;而在企业应用的另一主流开发平台—— 

处理…。 

微软的.NET方面,关于应用MVC的讨论还比较 

少。本文就.NET平台下运用MVC设计DRP系统 

3 系统体系结构 

软件架构进行了深入讨论。 

3.1 MVC设计模式 

2 系统功能模块 

MVC(Model—View—Controller)模式,即模型 

视图一控制器模式,是Xerox Palo Alto研究中心 

系统通过对分销的各种业务(包括销售处理、 

(PARC)在2O世纪8O年代为Smalltalk一80编程语 

库存、订货、调拨等)的实时管理,在企业和其分销 

言发明的一种设计模式。它将系统对象分为模型、 

机构之间进行信息共享和信息传递,从而使企业具 

视图和控制器,分别用来处理系统的业务逻辑、显 

有对订单、供货等的快速反应和持续补充库存的能 

示逻辑和控制逻辑障]。图1显示了它们各自的功 

力,为企业的经营提供决策依据及支持环境。 

能及相互关系。 

系统的主要功能模块包括: 

(1)模型(Mode1)模型是应用程序的主体部 

(1)销售管理:包括询价报价管理、销售计划、 

分,表示业务数据和业务逻辑。 

收到本文时间:2o06年2月20日 

作者简介:倪凯,男,华中科技大学电子与信息工程系硕士研究生,研究方向:互联网与电子商务、企业信息系统。 

黄本雄,男,教授,华中科技大学电子与信息工程系。肖玉兰,女,福州大学管理学院硕士研究生,研究方 

向:企业制度与组织。王腾江,男.软件设计师,DRP项目经理,福建星网锐捷通讯股份有限公司。 

维普资讯

146 倪凯等:基于.NET的DRP系统设计与研究 第35卷 

(2)视图(View)视图是用户看到并与之交互 

(1)表现层表现层用于用户和系统的交互。 

的界面。视图向用户显示相关的数据,并能接收用 

在表现层主要是设计和构建ASP.NET页面。 

户的输入数据,但它并不进行任何实际的业务 ASP.NET采用代码隐藏技术将页面和后置代码分 

处理。 

离。由于页面的导航和业务的流转都由控制层负 

责,后置代码也非常简洁,仅需负责诸如下拉列表 

的数据绑定等简单的页面初始化操作。 

(2)控制层控制层处理页面导航和业务流转。 

页面导航可能很简单,但也可能复杂。比如,只有 

在某种确定的条件下用户才能看到某一页面,或者 

需要根据先前的输入来选择显示不同的页面。 

控制层由许多控制器类组成,每一个业务实体 

可以有多个控制器类。 

(3)领域层领域层处理领域逻辑(又称业务逻 

辑)。领域对象一般分为领域实体对象与领域过程 

对象。实体对象通常是业务领域中的名词,代表具 

方法调用 

体的人、事物或概念,如客户、订单等;过程对象则 

…………… 

’事件 

代表业务逻辑或流程,通常依赖于实体对象。 

图1 MVC设计模式 

(4)数据源层数据源层负责数据的访问。在 

(3)控制器(C( ̄ntroller)控制器接受用户的输 

数据源层,一个重要的问题是系统中的业务实体在 

入并调用模型和视图去完成用户的请求。 

表现层和业务逻辑层均表现为对象,而在数据持久 

MVC模式处理过程:首先控制器接收用户的 

层则表现为关系数据。如何在这两者间进行转换? 

请求,并决定应该调用哪个模型来进行处理;然后 

这就需要用到对象/关系映射(Object/Relation 

模型根据用户请求进行相应的业务逻辑处理,并返 

Mapping,或ORM)。系统采用iBATIS框架来实现 

回数据;最后控制器调用相应的视图来格式化模型 

ORM 

返回的数据,并通过视图呈现给用户。 

4 系统实现关键技术 

3.2采用MVC设计模式的分销系统体系结构 

传统的三层结构将企业应用从上至下分为表 

4.1 页面和业务实体的数据传送 

现层、领域层与数据源层。表现层实现用户界面, 

通过对业务对象类的属性使用定制特性(CUS— 

领域层实现领域逻辑,数据源层存取数据 。系统 

tom attirbute),系统实现了页面同业务对象的数据 

应用MVC的思想,在表现层和领域层之间加上一 

绑定,以及页面数据回送到业务对象。 

个控制层,并将数据映射功能放在数据源层。系统 

定制特性是.NET框架提供的一种构造,可以 

分层模型如图2所示。 

用来定义一些信息,并将这些信息应用于几乎所有 

的元数据表项上,然后在运行时通过查询这些可扩 

表现层 

ASP.NET Page 

展的元数据信息来动态地改变代码的执行方式。 

(1)特性类 

控制层 

Contro11er 

特性类定义了业务对象的属性需要包含的特 

性集。例如,特性集包含页面控件名称、控件类型、 

领域层 

Busines s Entity 

属性说明、数据类型、最大长度、最小长度及是否允 

许为空,特性类的构造函数原型如下: 

数据源层 

l iBATIS 

public BindAttribute(stirng ControlID,Con— 

trolDomain Control,s ̄ing Caption,stirng DataType, 

int MaxI_ength,int MinLength,bool AllowNul1) 

其中ControlDomain是控件类型的枚举。 

(2)业务对象类 

图2系统分层模型 

(下转第153页) 

维普资讯

第35卷(2007)第1期 计算机与数字工程 

参考文献 

153 

盘,总的识别率可达到95%以上。 

5 结论 

本文在设计了数字式仪表自动判读系统总体 

[1]王伟锋指示表全自动检定仪的研究[D]长春理工大学 

硕士学位论文,2002.12 

结构的基础上,详细分析了仪表示值自动判读算法 

北京工业大学硕士学位论文2001.5 

的设计流程和特点。实验结果表明该算法在精确 

[3]万磊白洪亮戴军扩展的Otsu最优阈值图像分割的实现 

度上可优于仪表的最小刻度级,同时具有良好的实 

方法[J]哈尔滨工程大学学报2OO3,24(3):326—329 

时性,可满足当前各领域中实际应用的需求。由于 

[4]Otsu N.A Threshold Selection Method From Gray Level 

本文算法的实时I生和准确度均较高,而且算法可推 

Histograms[J].IEEE Trans On Systems.Man And Cy- 

[2]董庆霞图像处理技术在指示表精度检定中的应用[D] 

广到其它类型的表盘(如指针型表盘等),因此具 

bemeties 1979,9(1):62-66 

有较高的推广应用价值。 

[5]陈卫刚戚飞虎 一种新的协同模式识别学习算法 

[J].上海交通大学学报2004,38(1):18—2O 

(上接第146页) 

点。以select语句为例: 

在业务对象类中,对有需要的属性定义了它相应的定 

<select id=“SelectOrder”parameterClass= 

制特l生。例如,OrderlD是业务对象类Order的一个属 

string”resuhMap=“OrderResult’’> 

性,用TextBox控件来显示。其控件ID为txtOrderlD, 

select from ORDER 

詹陛说明为“订单号”,数据类型为int,最大和最小长 

<dynamic prepend=“WHERE”> 

度分别为9和1,且不能为空(因其唯一地标识了一张 

<isParameterPresent> 

订单)。OrderlD属性定制特陛如下: 

ORDER

ID=#value# 

[BindAttifbute(“txtOrderlD”,ControlDomain. 

</isParameterPresent> 

TextBox,“订单号”,“int”,9,1,false)] 

</dynamic> 

(3)数据绑定程序和数据对象存储程序 

</select> 

这两个程序通过读取业务对象各个属性的定 

其中dynamic节点为动态SQL语句。数据 

制特性,获得它们对应绑定的控件ID名称。数据 

库操作在映射文件中定义,从而将数据存储逻辑 

绑定程序查找页面上对应的控件并对它进行赋值; 从上层逻辑代码中独立出来。而底层数据操作 

数据存储程序先校验控件的值是否符合业务数据 

的SQL可配置化,使开发人员可以控制最终的 

对象属性的类型等信息,再将控件的值写回业务对 

数据操作方式,通过SQL的优化获得最佳的数 

象相应的属性。 

据库执行效能。 

4.2业务对象和关系数据的映射 

iBATIS是一个开源的数据映射工具。相对Hi- 

5 结束语 

bemate等提供了全面的数据库封装方案的ORM实现 

本文针对当前中小型企业分销存在的问题,提 

而言,它是一个简单的、半自动化的框架。它不会在运 

出了基于.NET的DRP系统的设计方案。系统已 

行期自动生成SQL执行。具体的SQL语句由开发人 在有关企业实施,从用户的反应来看,运行情况良 

员编写,然后通过映射文件,将SQL语句所需的参数 好。系统具有可管理性、扩展性好、使用方便等特 

以及返回的结果字段映射到指定的对象 J。 

性,可以广泛推广使用。 

映射文件是iBATIS的主体文件。以订单(Order) 

参考文献 

对象为例,在restdtMap节点中定义映射的结果: 

[1]吴文钊.决战营销一企业分销资源计划(DRP)原理与 

<resultMap id:“OrderResuh”class=“Order’’> 

实现[M].北京:电子工业出版社,2004 

<result property=“OrderlD”column=“OR— 

[2]孙卫琴.精通Structs:基于MVC的Java Web设计与开 

DER

ID’’/> 

发[M].北京:电子工业出版社,2004 

_

[3]Maain Fowler.企业应用架构模式[M].北京:机械工业 

<result property “CustomerlD”column= 

出版社,2004 

“ORDER

CUSTOMER

ID”/> 

[4]iBATIS Data Mapper Developer Guide[DB/OL].http:// 

</resuhMap> 

ibatis.apache.ors/. ‘ 

在statement配置中包含与SQL语句相关的节 


本文标签: 业务 系统 数据 对象 管理