仓库管理_物流仓库管理系统的设计与实现论文_第1页
仓库管理_物流仓库管理系统的设计与实现论文_第2页
仓库管理_物流仓库管理系统的设计与实现论文_第3页
仓库管理_物流仓库管理系统的设计与实现论文_第4页
仓库管理_物流仓库管理系统的设计与实现论文_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

大连理工大学 硕士学位论文 物流仓库管理系统的设计与实现 姓名:张敏 申请学位级别:硕士 专业:软件工程 指导教师:吴国伟 20060610 大连理工大学专业学位硕士学位论文 摘要 近年来,物流行业作为个新兴的服务行业,在全球范围内发展迅速。在国际上, 现代物流业被认为是国民经济发展的动脉和基础产业,其发展程度成为衡量一个国家现 代化程度和综合国力的重要标志之。在中国,物流尚处于起步阶段,物流管理的信息 化和自动化是其主要的瓶颈。物流管理的一个核心部分是物流仓库管理。物流仓库管理 的信息化和自动化能够降低物流成本、提高工作效率和加强物流运输企业的竞争力。 本文首先介绍了课题背景及国内外的发展现状,然后介绍了物流仓库管理系统的分 析与设计:第一步,分析了当前物流运输公司的管理系统,指出了其存在的问题,对物 流仓库管理系统的开发进行了需求分析。第二步,从构架上将系统分为三层,分别是表 示层、业务层和持久层。在表示层使用了s 缸1 r t s 技术;在业务层使用了s 面n g 框架;在 持久层上使用了H 弛e 珊慨技术。第三步,定义了系统的结构。第四步,确定了系统的 业务功能模块。第五步,对系统进行了详细设计,包括系统的用例设计、类设计、顺序 图设计、异常设计及数据库设计。本文紧接着介绍了系统的实现,包括表示层、持久化 层和业务逻辑层的实现。最后,介绍了系统的测试,并结合n i t 工具,以一个具体的 模块为例,描述了本系统单元测试的方法和过程。整个系统的构建过程中,通过使用三 个开源框架以及M V C 的设计思想,解决了J 2 E E 平台中E J B 技术的一些不足之处,使 系统既具有松散耦台的特性,又实现了事务的统一管理。 目前,物流仓库管理系统已经被客户验收,并投入到实际的应用中。实践表明该系 统完全满足客户的需求,同时由于系统具有低耦合特性,所以在系统的开发和测试阶段 速度快、效率高,在运行阶段也表明该系统具有较高的稳定性、良好的可维护性和可扩 展性。本文对相关的系统具有一定的参考价值和借鉴意义。 关键词:W c 模式;事务管理;仓库管理 物流仓库管理系统的设计与实现 D e s i 印a n dI m p l e m e n t a t i o no fL o g i s t i c sW a r e h o u s eM a n a g e m e n tS y s t e m A b s t r a c t A sa ne m e r g i I l g n ,i c ei n d u s y ,t l l eI o 垂s t i c sh sd e v e l o p e dr a p i d l yw o d d 、矾d ed l l r i n g 也el a s tf e wy e a r s T h em o d e ml o g i s t i c si 玎d l l s 虹yh 嬲b e e ni m e m a d 咖I a l l yc o n s i d e r e da s 1 e l i f c l i l l e 锄df o u n d a t i o no fm eI l a t i o n a le c o n o m yd e V e l o p m e n t ,觚db e c o I n e s 趾i m p o r t a n t s y m b o lo fm o d e m i z a t i o n 趾do V e 蹦ln a :t i o n a lp o w e ro fac o u I 哪I nC h 访a ,l el o g i s t i c si s s t i Ua t 廿l ei 仃I ) d 甜o ns t a g e T h em a i nb o t t l e n 。c k Sa r ei I l f o r m a t i z a t i o na n da u t o m a t i o no f t h e l o 西g t i c sm a 嫩咿n e n t ,w h o s ec o r ep 8 r ti s 也el o 西g c i c sw 越e h ( m m a n a 宅掣n e n t ,w h i c hc a n r e d u c et h ec o s t ,i m p r o v ew o r ke 街c i e n c ya n de n h 髓c ct b ec o n l p e t 试o na _ b i l i 锣o fl o g i s t i c s s h j p p i n gc o m p 髓i e s T h e l c s i sf i r s ti n 订o d u c e st h eb a c k 鲫u n do ft l l i ss u b j e c ta n dt h ea c n l a ls 诅t eo f d e v e l o p m e n tb o mi r L s i d ea n do m s i d e 也ec o u l l 仃y ,锄dt h 吼g i v e sa i li n 臼o d u c 石o no f h o wt o p e r f h ms y s t 锄锄a l y s i s 锄d 如s i g nf b rm e1 0 9 i s t i c sw a r e h o l l S em 锄a g e m e n t :T h ef i r s ts t e p , a n a l y z e 血e tm a n a g e m 朋ts y s t e mf o ral o 西s t i c ss h j p p i n gc o m p 锄y ,p o i n to u tw h a t p m b l e mi th 鹊,a l l dp e 触ar e q l l i r e m e n t 强a l y s i sf o r 1 es y s t e md e v e l o p m e n to ft l l e l o g i s t i c sw a r e h o l l s em 粕a g e m e n t 1 1 l es e c o n ds t 印,s n 佻t I l r a l l yo r g 觚i z et h es y s t e mi 1 1 t o 血r e e 1 a y e r s :p r e s t a t i O nl a y e r ,b l l s i n e s sl a ) 惯a n dp e r s i s t e n c el a y e r 0 n 也ep r e s e n 枷o nl a y e r ,t h e S m 啦t e 6 h n o l o g ) ,i su s e d ;o n 也eb l l s i l l e s sl a y e r ,t l l eS p 咖g 妇l e w o r ki sa d o p t e d ;0 nt h e p e r s i s t 如c el a y e r ,m e 碰b e m 出t e c l l n o l o g yi su 虹l i z e d T 1 1 et l l 矾s t e p d e f i n ct l l es 仃u c 姐eo f m es y s t 锄T h ef I o u r ms t 印,d 酏e r 】m n et h eb l l s i n e s s 血n c t i o nm O d m e s 矗也es y s t e m T h ef i 她 s t e p ,m a k ead e t a i l e ds y s t e md e s i g I l ,i I l c l u 曲1 9t h ed e s i g I lo f l l s ec 鹊e ,c l 韶s ,s e q u e n c ed i a g r a m , e x c e 砸o n 姐dd a 融I a s e A 胁恤t ,n l et l l e s i se x p l a i l l sh o w t 0i m p l e m e mt h es y s t e m ,i n c I u d i l l g t h ei m p l e m e n t a t i o no fp I e s e m a t i o nl a y e r ,p e r s i s t e l l c el a y e r ,距db u s i n e s sl o 百cl a y e r F i n a l l y m e 血e s i sp r o v i d e sab r i e f d e s c r i p t i o no fs y s c e mt e s d n g ,a n ds h o w sh o wt 0p c r f 0 皿t l l es y s t e m u 芏l i t t e s t a n d 谢ms 址p ss h o u l d b e t a k e n ,b y m b “n g 吐l eu s e o f 廿砖I n j t t o o la n d 仕哈1 l s e o f as p e c i f i cm o d u l e 嬲a ne x 锄p l e D l l r i n g 也eW h o l ep m c c s so fs y s t e mc o n s 仃1 l c t i o 玛s o m e d e f b c 协i 1 1m eE J Bt e c l l n o l o g yu p o nt l l eJ 2 E Ep l a t f o n nh a V eb e e ne l i I 血t e dt h r o u g l lt l l r e e o p e n s o u r c em m e w o r k s 训M V Cd e s i 盟c o n c e p 坞s om a tt l l es y 咖mc 蛆h a v eal o o s e c o u p l i n g 踟d t h e 恤眦吐o n sc a b e m a n a g c d i n ac e n 自m p l a c e N o w ,t h el o g i s t i c sw a r e h 0 璐em a l l a g e m e ms y s t e mh 耶b e e nc b e c k c da n da c c 印巾c db y c u s t o m e r s ,趾da l r e a d yp u ti t o1 1 s e ni sp m v e dmp r a c t i c et h a tm i ss y s t e I I lc a nI n e c t c u s t o m e r s r e q 咖m e n t sc o m p l e t e l y ,c a nb ed e V d o p e da n dt e s t e dq l l i c H ya n de m c i e n t l yd u e 大连理工大学专业学位硕士学位论文 t o “s1 0 wc o u p l i n g ,a n dc a I lh a v el l i 曲e rs t a b i l 姆,g o o dm a i n t e n a n c e 锄ds c a l a b i l i t ya t1 1 】n t i H l e I I la d d i t i o n ,t h i st h e s i sc a I lb e1 l s e df o rr e f b r e ei 芏lo m e rr e l 砷诅s y 曲:m s K e yW o r d s :M V CP a n e r n ;T 聃n s a c t i o nM a n a 驴m 姐t ;W a r e h o u s eM a n a g e m e n t 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名:刍丘釜丝日期:迦! 名盆: 臼 大连理工大学专业学位硕士学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用 规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子 版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,世可采用影印、缩印或扫描等复制手段保存和汇编学位论 文。 作者签名:垒垂丝 导师签名:墨国4 整导师签名:筮型! ! 翌 j 型年月旦日 大连理工大学专业学位硕士学位论文 1 绪论 1 1 课题背景 传统的物流信息,包括顾客需求订货、补给订货、存货要求、仓库作业命令、货运 单以及各种发票等,主要是建立在书面基础上的,由此导致了缓慢的、不可靠的、并且 有误导倾向的信息传输。这种建立在书面基础上的信息传递既增加了作业成本,又降低 了顾客的满意程度,成为现代物流发展的主要障碍口】。 随着社会、经济和技术及各种基础设施不断完善,加之全球经济体化趋势明显和 市场竞争程度日益激烈,近些年来以现代高技术手段的应用和先进的经营管理理念为背 景的现代物流管理与技术,在工业发达国家得到了广泛的承认、应用和发展。我国经过 2 0 年的经济体制改革,无论是企业生产规模、经营管理方式还是市场范围等均发生了巨 大变革,特别是一批以全国、甚至全球市场为目标的企业逐步发展壮大,正在成为其所 在行业为主要力量,加之I T 业的迅猛发展,信息技术的投资成本急剧下降,使用起来 更加得心应手,各种应用软件的开发推广使现代物流作业的经理们能够更有效、更迅速 地利用电子手段传输物流信息,对信息传输进行监管【2 1 。因此,可以预见,传统企业要 想在朝更高层次发展,必须要对其内在机制进行深入的改革。一定要采取现代物流作业 的管理机制。 现代物流作业的信息化必须满足可得性、精确性、及时性、异常适应性、灵活性以 及适当的格式来满足物流信息系统管理各种物流作业信息的要求,并充分支持企业在市 场经营活动过程中的计划和运作。 1 2 国内外解决方案 2 0 世纪6 0 年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件 设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂, 整个系统的结构和规格说明也显得越来越重要【3 1 。面对日益复杂的软件系统,人们开始 认识到,要真正实现软件的工业化生产方式,达到软件产业发展所需要的软件生产率和 质量,良好的体系结构至关重要。 互联网络的广泛应用,日益改变着人们的生活、工作与思维方式。各种w e b 应用系 统也应运而生,尤其是电子商务、电子政务的应用已经成为一个热门领域,然而随着用 户需求的不断变化和市场竞争的日益激烈,这些W e b 应用系统必须不断地改进其内容 和形式,而解决该问题的关键是选择正确的软件架构。近年来,随着网络技术的迅速发 展和J 2 E E ( J a v a 2P la _ 渤肿E n t e r 两s eE m t i o n ) 平台的广泛应用,基于B S 的多层W e b 体系 物流仓库管理系统的设计与实现 结构逐渐发展成熟起来,多层的w e b 应用的开发已成为主流【4 1 。但是,在多层的w e b 体系结构的设计中,仍然存在着程序可重用程度低、维护工作繁琐、应变能力较弱等不 足。同时,多层W e b 应用软件需要面对复杂的网络环境、多样化的用户需求、灵活的 业务模式、复杂的业务流程、众多的组织机构及层次和角色分工等问题,在业务和技术 上也是复杂多变的。因此,如何组织应用程序以实现简单高效的程序编写、升级、维护 和扩展,是当今w e b 应用系统开发值得关注的热点之一。 M v c 设计模式的出现,给w e b 应用系统开发带来了便利,它针对B s 三个主要方 面的处理将系统划分为模型层、视图层、控制层,采用M v C 模式构建W e b 应用系统的 体系结构,能够有效的解决在w e b 应用系统开发过程中由于系统结构的复杂程度较高 而带来的如何解决代码之间的耦合度、代码的易维护性、应用框架的可重用性、组件的 可重用性、易测试性和不同技能的开发人员的分工等诸多关键性问题。因此,M v c 模 式适应了日益复杂的W e b 应用系统的设计需求。 为了降低M V C 模式在J 2 E E 平台上实现的复杂度,W e b 框架适时的诞生了。W e b 框架大都是基于M V C 模式的,它们定义了各自的一套规范,分别把业务逻辑,显示和 流程分开,开发者只要按照这套规范进行开发,1 就可以开发出低耦合的W e b 程序。 J 2 E E 是由s u n 公司提出来的分布式企业计算平台,它利用J a v a2 技术,提供了一 系列的中间件服务来简化诸多企业解决方案的开发、部署和管理相关的复杂问题【”。随 着J 2 E E 跨平台技术的日趋成熟,因其可靠性、可扩展性等特点锝到了市场的认可,J 2 E E 技术成为了w e b 开发的主流。J 2 E E 应用程序主要包括4 层:客户层、W e b 层、E J B 层 和E I s 层【6 J 。其结构如图1 1 所示。 ( 1 ) 客户层:用于处理用户和应用程序的交互。可以是w e b c l i e n t s ,A p p l e t s 或客户 端应用程序。w e bc l i e n t 包括两部分:动态的网页和浏览器。w e bc l i e m 简单方便,但 不能做复杂的操作。A p p l e t 是一个小的客户端程序,它需要浏览器的J V M 来执行,可 以把一部分的业务逻辑用A p p l e t 来实现。客户端应用程序提供了更加友好的图形界面的 功能,它可以直接调用业务逻辑层中的E J B ,当然,也可以打开一个H T T P 链接,与 W e b 层的S e n r l e t 通讯。 f 2 1W e b 层:J 2 E E 平台的W e b 层就是所谓的表示层。它包含负责接收、处理和响 应H T l P 请求的服务器端组件。S e r v l e t 和J S P 是w e b 层的两个J 2 E E 技术。S e r v l e t 和 J s P 会晌应原始客户机接收的m M L 、x M L 、G I F 、A p p l e t 等等。w 曲组件通常需要与 业务数据进行交互,可以通过E J B 也可以直接从数据库与之交互。使用R M I 、J M s 或 者J A X _ R P c 来实现与E J B 地通信,而与数据库和其他外部信息系统的通信则是使用 J D B c 或者J a v a 连接器体系结构来实现。J a v a M a i l 也可以与客户机通信。 塑三盔塑些堂垡堡主堂垡笙奎 H T T P I T T P s ,印p l e 蝌R M I - I I o P 帕B c j A x - R P c ( s o A P ) 图1 1J 2 E E 应用程序的结构图 F 培1 1n l es 仇l 曲】r a ld i 姆r 跗1o f 廿I eJ 2 E Ea p p l i c 鲥0 n ( 3 ) E J B 层:E J B 层包含负责封装应用程序业务逻辑的服务器端组件,是J 2 E E 的 核心。E J B 组件运行于应用服务器的E J B 容器内,容器己经实现了很多的系统级问题, 诸如事务、线程、安全性、远程调用、资源管理、持久化等【7 】。从而使得开发人员专注 于业务逻辑而不必时时为烦琐、艰深的系统底层问题所侵扰。到B 组件在运行时的特性 可通过使用x M L 语言定义的配置描述符加以定制,无须更改代码,从而能很好地适应 快速发展的电子商务等应用领域。 ( 4 ) 企业信息 I S ) 层:企业信息系统层运行企业信息系统软件。这层包括企业基础 设施系统,例如企业资源计划( E R P ) 、大型机事务处理( M a i n 盘a m eT r a n S 枷o nP r o c e s 如酌、 数据库系统及其他遗留信息系统( L e g a c yh f 0 姗a t i o ns y s t e m s ) 。J 2 E E 应用组件因为某种 原因( 例如访问数据库) 可能需要访问企业信息系统。 在开发分布式企业级应用程序时,根据具体业务需求的不同,E J B 规范2 1 又定义 了3 类啪: ( 1 ) 会话E J B :主要用于封装业务逻辑。会话E J B 中的数据并不自动同步于底层的 持久性存储器。会话b e a n 又分为两类。有状态的会话E J B 能够通过方法调用来存储客 户机特有的数据,反之,无状态的会话E 膪不能够存储该数据。 物流仓库管理系统的设计与实现 ( 2 ) 实体E J B :也是用于封装业务逻辑。但是,实体E J B 的数据与底层的持久性存 储器同步。同步过程可以完全受控于容器,称为容器管理的持久性( C 0 n t a i n e r m a m g e d P e r s i s t e n c e ,C M P ) ,或者部分受控于E J B 代码,称为实体管理的持久性( B e a l l 一m a 眦g e d P e r s i s t c n c e ,B 口1 。 ( 3 ) 消息驱动E J B :消息驱动E J B 是E J B2 O 中新引入的,它支持异步通信。会话 和实体E J B 支持同步同步通信,也就是说,当客户机调用E J B 方法时必须等待E J B 返 回结果,如同常规的J a v a 方法调用。 由此可见,三类E 旧在特性、功能和地位上有着本质的区别,而E J B 容器为它们 提供支持和服务的时候,发现有些服务在一般的w e b 应用中显得笨重多余【8 】。其主要缺 陷如下: ( 1 1 编写一个E m 非常复杂:为了编写一个E J B ,系统必须实现4 个文件:业务接 口、H o m e 接口、B e a I l 实现和部署描述文件。还需要引入一些其它类,如工具类和数据 对象类。当系统使用很少的几项服务时,这使得系统的性能降低、复杂度变高。 ( 2 1E J B 是侵入式的:这与前一点有关系。为了使用E J B 容器提供的服务,程序必 须使用i a v a ) ( e j b 中的一些接口。这样就把组件代码绑定到了E J B 技术上了,要在E J B 容器外使用该组件就变得很困难了,甚至于不可能。 ( 3 ) E n t 时哪的不足:作为事实上的O 瓜映射方案,E 埘t yE J B 没有其他O R M 工 具那么灵活。对于B M P 是在B e a n 中完成对数据库J D B C 的各种调用,也就是在实体 B e a n 中明确写入了s 0 L 语句,这种做法对系统的可维护性产生困难。而采用c M P ,它 虽然是由E J B 容器自动完成对数据库的操作,编写起来相对而言要简单一些,但是它不 够灵活,比如要实现类似s Q L 搜索语句的l i k e 命令,就比较困难【9 】。事实上,这也是本 论文采用第三方O 瓜映射工具H i b e m a t e 的重要理由之一。 依据以上分析,虽然E 毋提供了透明的持久性、可移植性和灵活的事务管理,但是 获得这些优点所付出的代价就是会引入复杂性和很长的构建周期,从而使包含它们的系 统设计和开发更加困难。可见在有些项目中运用诸如E J B 等重量级框架并不是明智之 举。 针对上述问题,类似P i c o c o n t a 协e r 、H i v e M 砌及s 埘n g 这样的轻量级框架应运而 生,所谓的“轻量级”,并不是“功能少、设计简陋、实现粗糙”的代名词。它的设计 哲学是“许多的应用不需要分布式,有必要将大多数应用中不必要的技术隔离、改造。 完全可以针对最常见、最简单的应用场景而设计,等到有特殊需求的时候,再想办法解 决问题”。同时在持久层上,E 商t yE J B 解决对象关系映射方面效果不是很好,在实际 的开发过程中完全可以采用第三方工具,比如H i b e m a t e 、T o p L i n k 及T o r q u e 等。 大连理工大学专业学位硕士学位论文 1 3 论文的工作和章节安排 本论文是从现阶段基于M V C 模式的w e b 应用开发中存在的问题入手,主要针对目 前主流厂商提供的J 2 E E 平台的业务逻辑层解决方案E 喝机制的一些不足,找到符合企 业级应用软件系统需求特点的开发方法,并在实际中进行检验。 本论文的意义在于,在项目的具体实现中没有采用J 2 E E 平台的业务逻辑层解决方 案E 腰机制,而是采用s p r i n g 轻量级框架。同时,由于在目前的M v c 框架中,s t r L 鹏 已经逐渐成长为一个稳定、成熟的框架,并且占有了M v C 框架中最大的市场份额,所 以本系统将s 仃吐s 框架跟s 皿吨框架做了一个整合,使它们在表示层、控制层以及业务 逻辑层上协同工作。在持久层的设计上本系统采用了开源的持久层框架H i b e m a t e 。总之, 本文是通过集成使用开源的软件包,根据企业级应用软件需求特点,提供了一套有效的 解决方案,并且通过具体的项目来进行验证。本文提供的解决方案具有快速开发,方便 维护,快速升级,方便测试等优点。 本论文结构如下: 第一章作为论文的绪论,主要包括论文的选题背景、目前国内外的发展现状以及存 在的问题,并阐述了相应的解决方案,最后介绍了本论文的主要工作。 第二章介绍了本课题相关的一些专业技术。如s p r i n g 框架的特性描述、体系结构、 核心机制,s 饥l 乜框架的M V c 模式、工作流程、核心组件,m b 锄a t e 框架的相关接口 及功能特点等。 第三章介绍了物流仓库管理系统的分析与设计。首先介绍了物流仓库管理系统的需 求背景,分析了物流运输公司目前存在的问题,提出了物流仓库管理系统需要解决的问 题;紧接着介绍了物流仓库管理系统的构架设计,从分层的角度上,分别介绍了表示层、 持久层和业务层;其次介绍了系统的结构设计,主要是对系统功能模块的划分;再次介 绍了系统的功能设计,分别介绍了公共数据管理子系统、仓库管理予系统、客户订货子 系统和运营管理子系统的内在功能点;最后着重介绍了系统的详细设计,包括用例设计、 类设计、顺序图、共通部分的异常类型的定义,还有数据库的定义。 第四章介绍了系统的实现。首先介绍了系统运行环境和开发工具;紧接着介绍了表 示层的实现,主要包括页面s 仃L l 乜标签库的使用以及页面输入错误的验证;然后介绍了 持久化层的实现;最后通过三种框架的结合介绍了业务逻辑层的实现。 第五章介绍了本系统的测试。首先介绍了系统的单元测试,并结合几枷t 自动化测 试工具讲述了后台测试的过程与实现,同时对测试结果进行了分析:然后分别介绍了系 统的集成测试和系统测试。 最后是对本文的总结,总结了系统的优点和不足,并对系统进行了展望。 物流仓库管理系统的设计与实现 2 相关技术介绍 2 ,1s p r i n g 框架的介绍 21 1s p r in g 框架的特性描述 S p r h 喀是一个解决了许多在J 2 E E 开发中常见问题的强大框架。简单地说,S p r i n g 是一个轻量级J 2 E E 应用程序框架,它的核心是实现了反向控制( I n v e r s i o n o f C o r l 加l ,I o C l 模式的轻量级容器。S 砸n g 的目标是实现一个全方位的整合框架,在此框架下实现多个 子框架的组合,这些子框架彼此可以独立,也可以切换其他框架,s p 血g 希望实现的目 标是一站式服务的框架整合方案【1o 】。S p 血g 另一个重要的性质就是对面向切面编程 ( A s p e c t0 r i e n t e dP m g 船m m j D g ,A O P ) 思想的支持,这种机制可以用来拦截事务处理。对 s 研n g 的特性具体描述如下: ( 1 ) 轻量级:从大小和系统开支上来说S 埘n g 都算是轻量级的。整个S p r i n g 框架可 以打成一个1 M B 多一点的J A R 包,并且S 砸t l g 的处理开支也非常小。更重要的是,S p 血g 是非侵入式的:基于s 研n g 开发的系统中的对象一般不依赖于s 曲g 的类。 ( 2 ) 反向控制:s p r i g 提倡使用反向控制来实现松耦合。使用I o c ,对象是被动接 收依赖类而不是自己主动去找。通常将I o c 理解为心D I 的反转,即对象不是从容器中 查找它的依赖类,而是容器在实例化对象的时候主动将它的依赖类注入给它。 ( 3 ) 面向切面:S p 血g 对面向切面编程提供了强大的支持,通过将业务逻辑从系统 服务中分离出来,实现了内聚开发。系统对象只做它们该做的业务逻辑,它们不负责其 他系统问蹶( 如日志和事务支持) 。 ( 4 ) 容器:s p 血g 是一个容器,是因为它包含并且管理系统对象的生命周期和配置。 系统可以通过配置来设定使用的B e 趴是一个单一实例,还是每次请求产生一个实例, 并且设定它们之间的关联关系。S p m g 容器有别于传统的重量级E J B 容器。 ( 5 ) 框架:s p r i I l g 实现了使用简单的组件配置组合成一个复杂的系统。在s p 血g 中, 系统中的对象是通过皿文件配置组合起来的。并且S p 血g 提供了很多基础功能( 事务 管理、持久层集成等) ,这使开发人员能够专注于开发应用逻辑。 s p 血鸩的这些特性使系统开发的代码更加清晰,更容易管理,更容易测试。这些也 为在s 砸n g 框架下开发各种子框架打下了很好的基础。 大连理工大学专业学位硕士学位论文 2 1 2S p r ;n g 框架的体系结构 s p f i n g 框架由7 个模块组成( 如图2 1 所示) 。从整体来看,这7 个模块提供了开 发企业级系统所需要的一切。但实际开发过程中不必将系统完全建立在S p 渤g 框架之 上,通常情况下只选择适合自己系统的模块【1 l 】。 麟瓣瀚悯鬻翔 鬯鲨鲨裂鬯鲨鍪鋈、墨盎墨蟊翟蕊墨圃露面删、重璺盛蕾蕊筮墨圆曲面删 圜圜 图2 1s p r i n g 框架的7 个组成模块 F i g 2 1T h es e v e nm o d e l so f S p n g 妇n e w o r k 元素都与or g 印a c h e s 眦s a c t i o n a c t i o r l M 印p 吨类的一个实例对应。 ( 4 ) S 仃位sA c t i o n F o r I n 应用系统的信息转移或者说状态转移的非持久性数据存储,是由A c t i o I l F o 唧B e a l l 负责保持的。A c t i o n F o n 的主要功能就是为A c t i o n 的操作提供与客户表单相映射的数 据,如果在客户指定的情况下,还包括对数据的校验。A c t i o I l F o m 负责对系统数据状态 大连理工大学专业学位硕士学位论文 的保持,而A c t i o n 则负责根据业务逻辑的需要,对数据状态进行修改,在改变系统状态 后,A 吐i o n F o m 则自动的回写新的数据状态并保持。在觚i o n F o r I n 的使用中,S 衄l t s 提倡使用值对象( v a h l e - o b j e c t ) ,使客户或开发人员对数据状态和对象能够有更加清晰的 理解和使用。 ( 5 ) S 缸u t sA c t i 咖I F o r w a r d 代表控制指令所导向的一个来源,简单地说,就是对将要转向的视图地址的一个封 装。A c t i o I l F o n a r d 类定义了三个保护字段I 姗e ,p a m 和r e d i r e c t 。它们构成了 A c t i o I l I b 州a r d 的三个属性。 2 3H I b e r n a t e 框架的介绍 H i b 叫m t e 是一个面向J a v a 环境的对象关系数据库映射工具。它对J D B c 进行了轻 量级的对象封装,使J a v a 程序员可以随心所欲地使甩对象编程思维来操纵数据库翰。 H i b e m a t e 不仅仅管理J a v a 类到数据库表的映射,还提供数据查询和获取数据的方法, 可以大大减少操作数据库的工作量。另外H i b e m a _ t e 既适用于独立的J a v a 程序,也适用 于J a v aw e b 应用,而且还可以在J 2 E E 架构中取代C M P ,完成对象持久化的重任, H i b e m a t e 能集成到会话E J B 和基于B M P 的实体E J B 中。同时,琢b 钮1 毗e 还可以和多 种w 曲服务器、应用服务器良好的集成,并且支持几乎所有流行的数据库服务器。 2 。3 1H b e r n 8 t e 持久层框架 I i b e m a t e 是J a v a 应用和关系数据库之间的桥梁,从技术本质上来说它就是一个提 供数据库服务的中间件【2 引。H i b e m a t e 的体系结构图( 如图2 3 所示) ,其中P e r s i s t e m O b e c t 是简单的业务实体对象( 要被持久化的对象) 。通过H i b e m a t e 被透明地持久化到数据库 中。从而减少了繁琐而且容易出错的J D B c 的操作斟】。这张图也展示了H i b e m a t e 使用 数据库和配置文件来为应用程序提供持久化服务。 2 。3 2H I b e r n a t e 编程接口 应用程序可以直接通过H i b e m a _ t eA P I 访问数据库。H i b e m a t eA P I 中的接口可以分 为以下凡类: ( 1 ) 提供访问数据库的操作( 如保存、更新、删除和查询对象) 的接口。这些接口包 括S e s s i o n 、T r 姐s a c t i o n 和Q u e r y 接口。 ( 2 ) 用于配置 I i b c r n a t e 的接口:c o 瓶g u r a d o n 。 f 3 ) 回调接口,使应用程序接受H i b e m a t e 内部发生的事件,并做出相关的回应。这 些接口包括I n t e r c e p t o r 、L i y c l e 和V a l i d a 乜出l e 接口。 物流仓库管理系统的设计与实现 ( 4 ) 用于扩展H i b 廿n a t e 的功能的接口,如U s e r T ”e 、C o m p o s i t c U s e r T y p e 和 I d e n t m e r G c n e r a t o r 接口。如果需要的话,应用程序可以扩展这些接口。 H m e m a t e 内部封装了J D B c 、J T A 和D I 。J D B c 提供底层的数据访问操作,只要 用户提供了相应的J D B C 驱动程序,所b 唧a t e 可以访问任何一个数据库系统。烈D I 和 J T A 使H i b e m a t e 能够和J 2 E E 应用服务器集成。 图2 3H i b e r n a t e 框架的体系结构图 F i g 2 31 1 l ea r c l l i 雠m r a ld i 姆锄0 f H b e m a I e 量狮e w o r k 在H i b e n l a t e 持久层接臼中,有五个核心的接口被用在每一个H i b e n 戚e 应用程序中, 用这些接口可以存取检索持久对象,控制事务口6 1 。具体描述如下: ( I ) C o 血g u 硎o n 接口 C o n 五g l l r a t i o n 对象的作用是对m b e r n a t e 进行配置,以及对它进行启动。在H i b c m a t e 的启动过程中,c o n 矗g u r a t i o n 类的实例首先定位映射文档的位置,读取这些配置,然后 刨建一个S e s s i o I l F a c t 0 1 了对象。 ( 2 ) S e s s i F a c t o r y 接口 一个S e s s i o l l F a c t o r y 实例对应一个数据存储源,应用从s e s s i 伽F a c t o r y 中获得S e s s i o n 实例。s e s s i o n F a c t o r y 是线程安全的,这意味着它的同一个实例可以被应用的多个线程 共享。同时S e s s i o n F a c t o r y 是重量级的,这意味着不能随意创建和销毁它的实例。一般 情况下,如果应用只访问一个数据库,系统只需要创建一个S e s s i o n F a c t o r y 实例,在应 用初始化的时候创建该实例。如果应用同时访问多个数据库,则需要为每个数据库创建 一个单独的S e s s i o n F a c t o r y 实例。 ( 3 ) S e s s i o n 接口 大连理工大学专业学位硕士学位论文 S e s s i o n 接口是H i b e n m t e 应用使用最广泛的接口。S e s s i 0 也被称为持久化管理器, 它提供了和持久化相关的操作,如添加、更新、删除和查询等。s e s s i o n 实例不是线程 安全的,因此在设计软件架构时,应该避免多个线程共享同一个s e s s i o n 实例。同时 s e s s i o n 实例是轻量级的,所谓轻量级,是指它的创建和销毁不需要消耗太多的资源。 S e s s i o n 接口的f i n d O 方法具有数据库查询的功能,但是它只是执行一些简单的H O L 查 询语句的快捷方式,它的功能远没有Q u e r y 接口强大。 ( 4 ) T r 肌s a c t i o 接口 T 珊瑚荫0 n 接口是H i b e m a t e 的数据库事务接口,它对底层的事务接口做了封装。 H i b e n l a t e 应用可以通过一致的T r a n s a c t i o n 接口来声明事务边界,这有助于应用在不同 的环境和容器中移植。 ( 5 ) Q u e u 和C 曲r i a 接口 Q u e r y 和c r i t e r i a 接口是H i b e r n a t e 的查询接口,用于向数据库查询对象,以及控制 执行查询的过程。Q u e r y 实例包装了一个H Q L 查询语句,H Q L 查询预计与S Q L 查询语 句有些相似,但H Q L 查询语句是面向对象的,它引用类名及类的属性名,而不是表名 及表的字段名。C r i t e r i a 接口完全封装了基于字符串形式的查询语句,比Q u e r y 接口更 加面向对象,c d t e r i a 接口擅长于执行动态查询。 2 3 3H b e r n a t e 的功能特点 从上面的介绍可以总结出 b c m a t c 具有如下功能【2 7 】: ( 1 ) 透明的持久化机制:无需在编译时手工生成持久机制代码( 运行时自动生成代 码1 。 f 2 ) 面向对象的查询语言:相对结构化查询语言具有更大的便利性。 f 3 ) 灵活的对象关系映射方法:实现各种不同类型的映射。 ( 4 ) 高性能:基于普通J a v a 对象和动态代理的轻量级。瓜映射框架使其与其他持久 化机制相比有着显著的性能优势。 f 5 1 简单易于操作的A P I 接口:丰富的资源配置文档使得应用程序的开发简单、快 捷。 物漉仓库管理系统的设计与实现 3 物流仓库管理系统的分析与设计 3 1 系统需求分析 苍龙物流运输有限公司的发展面临着来自物流市场的竞争压力。目前中国的国内物 流服务市场充满了激烈的竞争。许多外资物流服务企业纷纷进入中国国内市场,和国内 的物流公司共同分享这块诱人的蛋糕,世界第二大航空速递公司D H L 、跨国第三方物 流企业T & T 公司、在物流配送方面较有影响的美国c R c L E 公司等都已经在中国开展 了物流服务的业务。同时,国内的物流企业,如顺通物流、华联物流、全争物流等都已 经占据了一定份额的物流服务市场。苍龙物流运输有限公司的发展必然面临着来自这些 竞争对手的竞争压力。苍龙物流运输有限公司为了提高自身的竞争力,它们必须利用现 代信息技术。 现代信息技术的发展为物流的操作打下了准确、快捷的良好基础。高效的物流设施 和运作,离不开每一个物流环节中的电子化管理和快速的电子信息传递。在物流系统中 充分利用电子商务技术,不仅可以节省人力、物力、财力,还有高效、快捷的优势,从 而降低操作成本。 通过对苍龙物流运输有限公司仓库的调查,发现公司基本工作流如图3 1 所示。 图3 1 基本工作流程图 F i g 3 11 k b a s i cw o r l ( f l o wc h a n 根据上面流程的实际调查,可以发现苍龙物流运输有限公司完全是采用传统的管理 方法,特别是在仓库管理中问题最为严重。现有仓库在作业系统中存在的问题可总结如 下: 大连理工大学专业学位硕士学位论文 ( 1 ) 部分货品收发管理以电话方式进行沟通,既容易产生错误,也增加成本; ( 2 ) 在没有计算机管理的情况下,出现了查找商品难的情况,造成了出货不及时的 问题,也给仓库盘点等操作也带来了一定困难; ( 3 ) 进销存管理还是传统的手工录入,录入容易整理难,并且资料不容易保存; 经过对苍龙物流运输有限公司仓库管理现存问题和影响因素的分析,可以归纳出公 司仓库管理系统需要解决的主要问题有以下几点: ( 1 ) 改善仓库管理与物流部门的工作流程,提高工作效率; ( 2 ) 实现仓库的信息化管理,实现整个业务流程的无纸化作业; ( 3 ) 能够方便维护仓库的基本信息,包括商品、货位等; ( 4 ) 能够快速处理入库、出库等流程; ( 5 ) 统计商品的销售状况及公司目前的营业情况,通过报表形式及时反馈给上级主 管部门。 3 2 系统构架设计 大部分的W e b 开发在职责上都是

温馨提示

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

评论

0/150

提交评论