培训1 - 论多层分布式结构系统的开发.doc_第1页
培训1 - 论多层分布式结构系统的开发.doc_第2页
培训1 - 论多层分布式结构系统的开发.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

论多层分布式结构系统的开发摘要:电子商务的出现加速了世界的数字化进程,一个全新的、充满机遇与挑战的数字化世界正逐渐演变为现实。随着电子商务网络应用的不断扩充、新应用形式的不断增加,使企业面临越来越多的挑战,尤其是对分布式网络应用的需求,若单纯依靠传统系统软件或Web工具软件,很难解决如跨平台、跨网络、异种数据库系统之间互操作、系统效率低、传输不可靠以及模块耦合性高等问题。企业所迫切需要的是一种简捷的、松耦合,使系统开发、部署与管理变得轻松和谐的企业应用新方式。于是,基于分布式结构系统的软件开发模式就应运而生。本文讨论了仓储管理系统(Warehouse Management System 以下简称WMS)项目中分布式结构系统开发模式的应用。在本项目的开发过程中,我担任了系统架构设计师的角色。通过多层分布式结构开发模式,管理复杂的异构环境,实现不同硬件设备、操作系统、网络环境及数据库系统之间的完整集成,增强了系统的可修改性和可靠性,使得整个项目成功上线。正文一、系统介绍我所在的单位是一家服装电子商务公司,作为单位的主要技术骨干之一,主持了整个WMS项目:启动、需求分析设计、实现、部署测试和上线。WMS项目的成立源自企业战略的需求:提高日均发货速度与日均发货量,以满足客户日益提高的购物体验。该系统集成了条码(Barcode)、无线通信(RF移动终端)、任务盘点等仓储技术,软件和硬件相结合,它主要的功能模块有:收货、库存管理、订单处理、分拣和配送控制等功能。二、两层架构的优点与缺点在我们企业刚起步的时候,业务系统都是以B/S结构为主,少数系统是C/S结构,俗称两层架构。在仓储管理中,不需要库位的概念,只需要记录商品的库存数量和扣减库存的记录,不使用移动设备;业务流程相对简单,而且每天的单量都较少,模块都相对简单,例如,批量导入订单,在B/S端新建一个Web页面,通过IIS服务器上传一个固定格式的Excel文件,Web页面解析该文件,逐行读取数据,并写入数据库,此类模块中,文件的操作、上传和数据库操作都相对简单,因此都可以集成在客户端,因此传统的两层架构取得了广泛的成功。但随着企业规模的扩展,新业务形式的增加,特别的财务模块的上线,需要建立进销存SCM供应链体系,并且把仓库库存实时推送给进销存系统;另外随着每日单量的增加,系统监控等新功能完善,两层架构逐渐暴露出其缺点:1、 客户端的设计复杂,:文件操作,界面的显示效果,数据库操作,异构系统的对接,都集中在客户端。,因此客户端的维护工作日益复杂,正所谓牵一发,而动全身,一个小小的错误,可能影响多个功能模块的正常使用,而且定位错误困难;2、 开发成本高:模块之间耦合度过高,没有抽象出公共可重用构件,因此开发成本高;3、 软件维护和升级困难:企业内唯一在线的数据库服务器成为系统可靠性和安全性的极大隐患,如果数据库停止服务,则整个系统趋于瘫痪。4、 不能分布式,吞吐量越来越小:因客户端和服务器端直接连接,不能分布式负载均衡,服务器将消耗额外资源用于处理与客户端的连接工作,例如心跳机制和Session。当同时存在大量请求时,服务器资源将被用于频繁应付与客户端之间的连接,从而无法及时响应客户端的请求。另外客户端数据请求的堆积,也引起系统整体运行效率的下降甚至崩溃。两层架构对我们企业信息化建设的制约越来越明显,因此在新WMS系统的开发中,我们采用基于多层分布式结构的模式进行系统开发。三、多层分布式架构在系统中的应用不管是三层还是四层架构,或者更多层架构风格,其实其含义还是一样的,只是细节有所不同,要解决的问题还是三个层面的问题:界面层、逻辑层、数据层。因为我们仓库有各类岗位,有固定位置作业的岗位,有整个仓库流动作业的岗位,也有管理岗位,甚至需要支持在家办公的特点,基于这点需求,我们采用混合式(即有C/A/S,也有B/A/S架构)多层分布式结构,在固定式岗位中,岗位特点需要快速作业,因此对及时性要求高,因此采用C/A/S的架构风格;在管理岗位,更加偏向于瘦客户端,因此采用B/A/S的架构风格;在移动设备上,需要开发嵌入式系统,而且为了控制某些硬件驱动,类似电量、无线网开关、快捷键等,并且还要保持心跳连接,实时监控员工的作业进度和在线情况,因此C/A/S风格,更加合适,当然,有些企业为了支持跨硬件,也可以开发成基于浏览器的B/A/S多层分布式系统,只需有安装浏览器即可。在该项目中,界面层分3种类型,一类是基于浏览器,另一类是Windows操作系统的客户端软件,还有一类是基于移动终端WinCE 6.0操作系统的客户端软件。逻辑层也相应的分为3类,一类针对浏览器业务,一类针对客户端软件,还有一类是Socket服务端,用于连接移动设备。逻辑层在物理上再分了一层,主要是对数据库操作,尽可能使sql语句足够精简,保证其sql语句的执行效率,然后通过组合sql语句实现各种业务。数据层,主要为了存储数据,不做逻辑操作,特别是存储过程尽可能少,存储过程使用不当,容易造成死锁。界面层纯粹提供一个用户视觉上的界面,不管是基于浏览器的Html页面,还是开发在Win ce6.0操作系统上的客户端,通过其界面层,用户可以输入数据,获取数据,同时也提供了一定的安全性和格式验证,某些简单的错误,就没有必要服务器通信,浪费服务器资源,例如验证只能输入数字而不能输入字符,就可以通过正则表达式进行验证。基于浏览器的客户端,我们采用HTML+CSS+Ajax的经典组合,仅支持主流的浏览器,例如IE8+、Firefox,谷歌浏览器(IE6、IE7兼容性较差,我们公司就不考虑支持)。在基于windows操作系统的客户端,我们采用Microsoft公司的.Net Framework中间件进行系统开发,开发的系统可以运行在多个Windows系统上,部分机器的硬件配置适合xp,但不适合windows7,从而保证企业PC机资源的不浪费。在移动终端,我们也采用.Net Compact Framework中间件开发,当然,采用C+开发更加合适,但考虑到.net的开发门槛较低,因此更加适合我们企业的状况。逻辑层是整个系统最核心的部分,在传统的客户端/服务端(C/S或者B/S)之间加入一层或者多层应用程序(这种程序称为“应用服务器”),从而形成C/A/S或者B/A/S的架构模式,基于这种架构模式开发的系统,可以称之为多层分布式系统。在多层分布式应用中,逻辑层是界面层和服务器层(数据库层)的桥梁,它响应界面层的用户请求,执行任务并从服务器层抓取数据,并将必要的数传送给界面层。这意味着如果需要修改业务流程,则可以只在逻辑层上修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了企业系统的开发、更新和升级工作,极大增强了企业应用的伸缩性和灵活性。为了使系统能负载均衡,在物理上各模块相对独立,如图:分层的特点就是每一层只影响相邻的两层,所以在开发阶段,每一层可以同时进行开发,最后通过约定的接口进行对接即可。在WMS系统中,基于浏览器的客户端,我们部署在IIS 7.1的web 服务器上,和界面层与逻辑层之间的通信采用Web Service远程调用,Web Service一方面可以使模快间松耦合,另一方面Web Service的接口可以重用,特别一些查询类接口,可以重用在BI报表方面。Web service使用标准协议规范,其所有公共协议都使用开放的标准协议进行描述、传输和交换,因此,在和别的系统对接时,Web Service是比较合适的做法,又屏蔽平台的差异,无论CORBA或DCOM都可以使用这种标准协议进行互操作,在我们企业,WMS系统和购入的财务系统和SCM供应链系统,都是采用Web Service对接。移送终端和RF应用层之间,我们采用Socket同步通信,在RF应用层,我们部署一套监听端口,一旦有移动设备接入,该用户就开始上线,并启动心跳线程,监控用户的在线情况。传输的格式是报文头+报文体加密的字符串,报文头存放的是报文体长度,用于在 RF应用层接收到数据并解密后,通过报文头记录的报文体长度,开始接收数据流,以防数据丢失。Windows客户端程序与应用层之间的通信采用.Net Remoting,Remoting就是DCOM的一种升级,它改善了很多功能,可以调用远程对象。数据层,数据层定义和维护数据的完整性,安全性。在我们系统中,使用Microsoft的MS SQL Server 2008 R2版。在数据库这一层,为了保证数据库性能,很少有复杂的逻辑操作,一般都是简单的Insert Update和Select操作,没有delete操作,所有数据都是有效数据,只是通过状态位进行数据筛选。在数据层这边,报表数据库和主数据库分离,报表数据库用于数据分析和决策,报表数据库一般只满足1范式,其中会增加一些冗余字段,使得尽可能不使用join联表查询。主数据库会在每日的凌晨同步数据到报表数据库,主要是通过Windows Server服务执行。从数据库用于与外部系统对接,外来数据不直接进入到主数据库,需要对数据进行补充和清洗,再写入主数据库,防止外来数据写入过频繁,影响主数据库的性能。四、多层分布式机构系统的优点与挑战在我们的WMS系统中,采用混合式多层分布式结构,分层的特点就是每一层只影响相邻的两层,只要在设计阶段对接口进行规范,则开发任务就可以并行进行。尽管多层分布式架构为我们提供了极大优势,但也给我们带来了挑战,特别是在逻辑分层的时候,层与层之间的界限不是特别明显,有些功能模块更适合与内聚,为了性能,需要放在一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论