2010-10-28
基于Web Service的分布式销售仓库系统:0 引 言 随着世界市场经济迅猛发展,许多集团化企业或者由于规模的不断扩大在全国各地乃至世界各地建立了分支机构,或者由于兼并、收购、整合而拥有许多下属企业,使得企业越来越迫切需要分布式应用系统,以满足集团化企业的信息化管理。然而,这样的企业一般IT环境纷繁复杂,企业中可能会拥有多种操作系统、不同的数据库、异构的网络环境以及若干个应用系统等,如何把它们结合成一个有机的协同工作整体,真正实现企业跨平台分布式应用,成为当前程序开发技术的焦点。 1 分布式销售仓库系统的需求分析 本文是以国内一家从事光机电一体化电子专用设备产品的大型集团企业作为研究背景,开发并实现了一个基子web Servicer的分布式销售仓库系统。 1.1 开发背景 (1)集团运营模式分析。该集团根据发展需要,对运营模式作了调整,整合出一个销售公司,三个生产公司;各生产公司只负责生产,不管销售,整个集团的产品销售任务由销售公司统一负责;各生产公司和销售公司均为独立运营、独立核算的单位。因此,各生产公司的产品必须以内部价统一调拨给销售公司,然后由销售公司再以客户价销售给最终用户,实现生产公司到销售公司之间部分产品利润中心的转移。 新的运作模式涉及到一个销售公司对三个生产公司产品的统一梢售管理,为了适应这种运作模式,方便产品的流通和管理,明确各自的责权利,依据销售公司与生产公司达成的相关协议,要求在各生产公司设立销售公司的销售仓库,并出于管理成本和产品本身特性的考虑,该销售仓库由各生产公司和销售公司人员协作管理。销售仓库的物流模型如图1所示。 图1 销售仓库的物流模型 (2)信息化建设的现状分析。该系统将涉及到的四个对象一生产公司(P1)、(P2)、(P3)和销售公司(S),该集团公司在多年的信息化建设过程中已经取得了一定成绩,信息化的程度在硬件和软件方面都比较高。 1.2 需求分析 基于集团公司现有的软、硬件环境,在系统架构的设计时首先考虑的就是新销售仓库系统与原ERP、CRM系统的集成,集成示意如图2所示。 图2 销售仓库系统与ERP/CRM系统的集成示意图 从图2可以看出销售仓库系统既与每一个生产公司的ERP系统存在业务关系,同时也和销售公司的CRM系统相关联。下面是销售仓库系统基本的功能需求分析。 (1)销售仓库管理系统首先应该是分布式系统。分布式系统是一个动态的计算机集合,这些计算机由网络连接到一起,运行专门设计的软件,为用户提供集成式计算机环境。在分布式应用系统中,系统不同的运作部分分布在独立的机器中,所以这个系统的可扩展性也大为提升。 (2)需要与ERP中生产仓库系统的数据集成。生产公司的产品一经其仓库系统出库,产品实际就销售给了销售公司,需要在物理上把实物产品放到销售仓库,同时,销售仓库系统需要进行入库操作。另外,销售仓库系统与生产仓库系统之间的交互还有其它出入库操作。 各生产公司的产品销售是由其ERP中生产仓库系统的销售出库模块实现的,从而可以分析出销售仓库系统与生产公司ERP系统中的生产仓库系统进行对接,将生产仓库系统的出库数据集成并转换成销瞥仓库系统的入库数据。 (3)需要集成CRM中物流系统的数据。一般说来,物流和资金流是密不可分的。要计算出每次出入库的金额,就必须能够获取产品价格的基础数据。 2 Web service分布式销售系统设计 2.1 当前分布式应用系统使用技术分析 分布式系统(分布式计算系统)的应用是随着分布式技术(分布式计算技术)的进步而发展起来的。DCOM和CORBA是目前两种使用比较广泛的分布式计算实现方案。尽管这些技术对企业应用是关键的,而且也取得了相当大的收益,且现在已被广泛采用B/S结构的Web环境中,还存在一定的局限性。SOA是一种组件式构造企业应用系统的方法,一个SOA系统是由一系数列可交互的服务组成,它的组件模型可以参看图3。 图3 SOA框架模型 2.2 分布式销售仓库系统的系统框架 根据以上需求分析和目前分布式技术分析,作者设计了一个基于Web service分布式销售仓库系统的框架,此框架可轻松地解决系统集成、扩展、维护等需求问题,见图4。 图4 分布式销售仓库系统基本框架图 (1)客户端(表示层) 。主要作用是:①将销售仓库系统业务逻辑层产生的结果信息显示给用户;②是用户查找和调用Web service的接口。 (2)应用服务层。本层分为Web服务层和业务逻辑层。Web服务层的主要功能是查找服务注册中心的Web服务和绑定远程己封装为Web服务业务逻辑模块,以供业务逻辑层引用,或执行用户端的Web服务调用;另外,还负责远程数据格式转换等工作。 业务逻辑层负责完成分布式仓库系统的所有功能,它由许多业务逻辑模块组成,这些模块中一部分引用了封装为Web服务的原有系统的数据库操作等功能,也有一些独立于其它系统的业务逻辑模块。应用服务层是服务访问者的重点设计内容。 (3)数据层。主要组成是存储分布式仓库系统的相关数据的数据库。本系统采用的数据库服务器为SQL Server 2000。 基于Web Service的分布式销售仓库系统:3 分布式销售仓库的设计与实现 本文选择该系统的重点问题一数据层包装为例说明包装代码自动生成方法,数据层次的包装在本系统中应用最多也最复杂,系统的数据大多数要在不同的子网间传输,需尽可能的减少数据传输量来提高系统的性能,所以数据层次的包装要引入必要的业务逻辑来减少数据的传输量,为了简化复杂程度,可以让包装后的方法传递SQL语句以完成一些业务逻辑,返回的DataSet给Web Service的用户进行进一步的复杂业务逻辑处理。 让包装后的方法传递SQL语句,本文采取将SQL语句写在方法中,方法接收一些参数作为该SQL语句运行所需要的动态参数,这种途径每个方法只能完成预先设定的SQL语句,因而可以增加安全性,由于可以输入动态参数,因此也具有一定的灵活性。 (1)方法datawrap的参数。在包装器中设计了方法datawrap,以完成数据层次的自动包装,它的输入参数(略)。对包装后的方法的描述,为string数据类型。 (2)图5为datawrap方法的流程图,其要点说明如下:根据所传入的SQL语句中的动态参数类型列表生成包装的方法的形参列表,因传入的动态参数类型为SqlDbType或OleDbType中的数据类型,而包装的方法的参数类型为C#中数据类型,所以,系统分别建立了SqlDbType中数据类型和OleDbType中的数据类型到C#中数据类型的映射,通过映射来生成包装的方法的参数类型列表,映射表存放在数据库中。参数命名规则为:宇符串+“my”+参数类型+参数在类型列表中的位置。 图5 Datewrap方法的流程图 分析SQL语句,确定是否为SELECT语句,再根据数据源类型确定下面的包装用于什么类型。生成代码的过程中要分别用到动态参数名称、动态参数对应的SQL数据类型及其大小、形参名,每四种数值合成一组确定对象的一个参数值,因此设计把这四种数值作为一个类的私有数据成员,包装过程中根据传入的SQL语句和SQL数据类型大小列表生成这个类实例的动态数组。在代码生成后。系统设计了一个查看服务方法和试调用服务方法的界面,可以从中选择查看和试调用服务方法,还可以看到选定Web Service的WSDDL文档。 4 结束语 分布式系统是随着分布式技术的进步而发展起来的,它在许多方面都体现出自己的优势。本文在分析当前分布式计算方案的优缺点之后,针对一个拥有多个子公司的集团型企业的需要,设计并实现了基于Web Service技术的分布式销咨仓库系统,此系统能够与各生产公司现有的ERP系统、销售公司的CRM系统进行良好集成,具有良好的扩展性和灵活性。
|
信息化软件应用目录 OA 办公自动化系统
CRM 客户关系管理系统
PM 项目管理系统
SCM 供应链管理系统
CC 协同商务系统
BPM 业务流程管理
BI 商务智能
CMS 内容管理系统
KM/KBS 知识管理系统
电子商务系统
HRM 人力资源管理系统
ERP 企业资源计划
EAM 企业资产管理系统
|