(管理科学与工程专业论文)net架构下组件技术的研究与应用.pdf_第1页
(管理科学与工程专业论文)net架构下组件技术的研究与应用.pdf_第2页
(管理科学与工程专业论文)net架构下组件技术的研究与应用.pdf_第3页
(管理科学与工程专业论文)net架构下组件技术的研究与应用.pdf_第4页
(管理科学与工程专业论文)net架构下组件技术的研究与应用.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(管理科学与工程专业论文)net架构下组件技术的研究与应用.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 ,当今的软件应用系统趋向于构造三层或多层结构,这种软件体系结构所采用的 。,核。b 技术之一就是组件技术,而一直处于组件技术研究前沿的微软公司,其对组件 技术的研究从组件对象模型、分布式组件对象模型到事务服务模型,然后到在事务 服务模型的基础上发展起来的c o m + ,直到现在的n e t 组件,组件技术已经发生 了质的变化j 本文将按照组件技术的发展演变阶段,并结合某一核电站的库存管理 , 系统,对组件技术进行研究。 首先,阐述了组件技术产生的背景和概念、组件技术的演变历程及其思想,对 组件的特点、采用组件的优势、组件对象技术的特征进行了分析,并提出了核电站 j = ,。 库存管理系统中采用组件技术的必要性。 其次,对流行的组件对象模型( 如:c o m d c o m 、m t s 、c o m + ) 各自的特点 和工作机理进行了分析,对组件接口技术也进行了一定的研究。 然后,对w i n d o w sd n a 环境下的组件和n e t 架构下的组件进行了比较分析, 研究了c o m 组件与n e t 组件的互操作性,并提出了采用n e t 组件技术设计核电 站库存管理系统。 最后,对备品备件的库存管理系统进行了分析与设计,并采用n e t 组件技术 设计了几个通用的数据库事务操作组件和库存管理中的入库、出库、当前库存三个 模块组件。 关键词:组件 c o m , d c o m , _ c e 噼,w l n d 。w sd n a ,n e t , 库存管理系统 华中科技大学硕士学位论文 a b s t r a c t r h ec u r r e n ts o f t w a r e a p p l i c a t i o ns y s t e m t r e n d st oc o n s t r u c tt h r e e l a y e r s o r m u l t i l a y e ra r c h i t e c t u r e ,o n e o ft h e k e yt e c h n o l o g i e s t h es o f t w a r e s y s t e ma d o p t s i s c o m p o n e n tt e c h n o l o g y m i c r o s o f tc o m p a n y ,d e d i c a t e di t s e l ft ot h el e a d i n ge d g er e s e a r c h o fc o m p o n e n tt e c h n o l o g y , h a sb e e ns t u d y i n g o nt h e c o m p o n e n tt e c h n o l o g y f r o m c o m p o n e n to b j e c tm o d e l ,d i s t r i b u t e dc o m p o n e n to b j e c t m o d e lt om i c r o s o f t t r a n s a c t i o ns e r v i c e ,t h e nt oc o m + w h i c hb a s e do nm i c r o s o f tt r a n s a c t i o ns e r v i c e ,u n t i l t h e p r e s e n t n e tc o m p o n e n t ,c o m p o n e n tt e c h n o l o g ya l r e a d y t o o k p l a c e s u b s t a n t i a l c h a n g e s ,t h i sa r t i c l ea c c o r d i n gt ot h ee v o l v e m e n to fd e v e l o p i n gs t a g e so fc o m p o n e n t t e c h n o l o g y , w i l ls t u d ya b o u tc o m p o n e n tt e c h n o l o g yb y a ne x a m p l eo ft h es y s t e mo fs t o c k m a n a g e m e n to fs o m e o n e n u c l e a r p o w e rp l a n t f i r s to fa l l ,t h ea u t h o rd i s c u s s e dt h eb a c k g r o u n do fc o m p o n e n tc o m i n gi n t ob e i n g , t h ec o n c e p to f c o m p o n e n t ,e a c hs t a g eo ft h ed e v e l o p m e n to fc o m p o n e n tt e c h n o l o g ya n d t h et h o u g h to fe a c hs t a g ea b o u t c o m p o n e n tt e c h n o l o g y , a n da n a l y z e dt h ec h a r a c t e r i s t i co f c o m p o n e n ta n dc o m p o n e n tt e c h n o l o g y , m o r e o v e r ,t h ea u t h o r b r o u g h t f o r w a r dt h e n e c e s s i t y o f a d o p t i n gc o m p o n e n tt e c h n o l o g y t oe s t a b l i s h t h e s y s t e m o fs t o c k m a n a g e m e n t o ft h en u c l e a rp o w e r p l a n t s e c o n d l y ,t h ea u t h o ra n a l y z e dt h ec h a r a c t e r i s t i ca n dw o r k i n gm e c h a n i s mo fs o m e p o p u l a rc o m p o n e n to b j e c tm o d e l s ( e g c o m d c o m ,m t s ,c o m + ) ,i na d d i t i o n , s t u d i e dt h ei n t e r f a c et e c h n o l o g yu s e d b yc o m p o n e n to b j e c t t h e n ,t h ea u t h o rc a r r i e do nc o m p a r a t i v ea n a l y s i sb e t w e e nt h ec o m p o n e n tb a s e do n w i n d o w sd i s t r i b u t e d i n t e r n e t a p p l i c a t i o n a r c h i t e c t u r ew i t ht h e c o m p o n e n t b a s e d o n n e tf r a m e w o r k ,a n dr e s e a r c h e dt h ei n t e r a c t i v eo p e r a t i o nb e t w e e n t h e m ,f u r t h e r m o r e , t h ea u t h o rs u g g e s t e dt h es y s t e mo fs t o c km a n a g e m e n to f t h en u c l e a rp o w e r p l a n ts h o u l d b ee s t a b l i s h e db y a p p l y i n g n e tc o m p o n e n tt e c h n o l o g y 1 i 华中科技大学硕士学位论文 f i n a l l y , b ya d o p t i n g n e tc o m p o n e n tt e c h n o l o g y , t h e a u t h o ra n a l y s e da n dd e s i g n e d t h e s y s t e mo fs t o c km a n a g e m e n t ,t h e r e i n t o ,d e s i g n e d s e v e r a lc o m m o nc o m p o n e n t a b o u tt h et r a n s a c t i o no p e r m i o no fd a t a b a s ea n d t h r e em o d u l ec o m p o n e n tc o n c e r n e d w i t ht h ee n t r yo f r a ws t u f f , t h ed r a w i n go f m m e f i a l ,p r e s e n ts t o c ki ns t o c km a n a g e m e n t k e y w o r d s :c o m p o n e n t ,c o m p o n e n to b j e c tm o d e l ,d i s t r i b u t e dc o m p o n e n to b j e c t m o d e l ,c o m + ,w i n d o w s d i s t r i b u t e di n t e m e t a p p l i c a t i o na r c h i t e c t u r e ,n e t , m a n a g e m e n ts y s t e m o f i n v e n t o r y i i i 华中科技大学硕士学位论文 1 绪论 1 1 课题研究的背景、目的及意义 本论文的选题是在大亚湾岭澳核电站库存控制决策支持系统的分析和设计的基 础上提出的。采用c f s 两层结构进行企业信息系统的设计,有很多的弊端,当企业 的业务逻辑规则发生微小的变化而需要改进系统软件时,就要修改所有客户端的代 码和服务器端代码,尤其是对多用户使用的系统,每一客户机上都要安装客户端软 件,一旦客户端代码需要修改,则所有的客户端软件需要重新安装,这是一个非常 无聊的且费时费力的重复性劳动。由此可见,c s 两层结构的软件系统的维护难度很 大,可以说是“牵一发而动全身”,鉴于这种情况,当今软件界提出了采用组件技术 构造三层或多层结构的软件系统。基于w i n d o w sf o r m 的多层结构的软件系统的开 发,在过去通常采用c o m 、d c o m 等组件技术来进行业务逻辑功能层的设计,为 了准确无误地调用组件,须对c o m 组件进行跟踪,从而要求组件在操作系统的注册 表中进行注册,当用户的业务逻辑规则发生变化时,必须更改组件及其接口,这样 开发人员就必须重新编译所有相关的d l l ,重新对组件进行注册,如此就会出现组 件的版本冲突问题,也就是d l l h e l l ( d l l 困境) ,此外,开发人员在设计组件的过 程中,也不得不编写涉及组件对象生存期、内存管理、安全性维护等代码,这些问 题严重影响到程序开发的效率以及程序的维护。而微软n e t 技术的提出能很好地解 决这些问题,在n e t 采用的通用语言运行时( c l r ) 的环境下,组件对象具有自我 描述功能,从而不再需要外部类型库对组件进行描述,也无须在注册表中注册组件, 并且同一n e t 组件的多种版本能够在同一系统中并行运行,不会有任何相互影响, 因此不会引起组件舨本的冲突,此外,通用语言运行时能提供对组件对象生存期、 内存分配、安全性维护的自动管理,从而也就不需要开发人员编写这些繁琐的代码, 大大提高了软件系统开发的效率。由此可见,从c o m 组件到n e t 组件,组件模型 已经发生了本质上的变化,n e t 架构下组件模型相对以前的c o m 、d c o m 具有明 华中科技大学硕士学位论文 = = = = 一= = = = = = = = = = = = = = ;= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 显的优势。n e t 是一项新的软件开发技术,在n e t 环境下,组件的产生、编译及 其最终的部署都发生了很大的变化,在这种状况下,对n e t 架构下的组件技术进行 研究,具有一定的理论和实践意义。 1 , 2 国内外研究现状概述 随着计算机技术的发展和应用的深入,管理信息系统( m m ) 已由原来的单一事务 处理型向提供事务处理、分析处理和决策支持功能的综合型方向发展。这种形势使 软件系统渐趋庞大复杂,因此迫切需要设计出合理的层次型计算体系,以降低系统 设计的复杂性和加快系统的开发,使系统具有高适应性和强伸缩性。顺应这种需要 的管理信息系统的计算模式也由单一体系结构( 包括单机版系统和基于主机终端的 单层系统) 发展到c s 和b s 的二层模式,而随着互联网络技术的迅猛发展,网络用 户的数量急剧增长,应用日趋复杂,传统的二层客户服务器结构愈发显得捉襟见肘, 为了适应未来更复杂、更繁重的业务处理任务和快速开发的需要,三层分布式系统 结构便应运而生。于是出现了c s s 三层模型,在c s s 的基础上,微软提出了 w i n d o w sd n a 体系,基于d n a 的三层应用结构w i n d o w sd n a 是一个基于w i n d o w s 平台的分布式应用开发模型,它以三层体系结构为基本构架,以c o m d c o m 作为 其核心技术,w i n d o w sd n a 为三层应用的每一层都提供了解决方案,同时也为这 些应用提供了大量的底层服务,开发人员可以直接加以利用,它能够充分利用集成 于w i n d o w s 平台上的各种功能特性,并利用c o m d c o m 将各项技术有机地集成在 一起,使整个应用系统的各部分协调工作从而实现某个任务。w i n d o w sd n a 同c s s 模型一样将业务逻辑层独立出来,单独组成一层,形成了前端表示层、中问业务逻 辑层和后端数据服务层的体系结构。在w i n d o w sd n a 的基础上,2 0 0 0 年6 月微软 又战略性地提出了“用户可以在任何时间、任何地点、通过任何设备获得信息”的n e t 战略,这就是n e t 。n e t 是一种分布式运算框架,以x m l ( 可扩展标识语言) 为基础, 以w e b 服务为核心辅以其他各种技术实现,意在充分利用i n t e m e t 上强大的计算资 源和# 富的带宽资源,提高用户的工作效率。可以暂时这样认为, net 是一系列 软件,它使m i c r o s o f t 用户可以在任何时间、任何地点、通过任何设备获取所需信息。 2 华中科技大学硕士学位论文 net 平台从根本上改善了计算机用户之间进行交互的方式,最大限度地发挥了电 子商务中计算技术的重要作用【6 1 。除了w i n d o w s d n a 和net 外,目前市场上主流 的分布式计算平台还有s u n 公司的j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 、o m g 组织的c o r b a 平台。这些技术和规范都为三层或n 层分布式应用系统结构的设计 开发提供了支撑。 1 3 本文的主要研究内容 本文将从计算机软件系统的结构演变、组件技术、组件对象模型、n e t 下的组 件技术以及其在库存管理中的应用等几个方面,对n e t 架构下的组件技术的内部机 理及其应用进行探索和研究。本论文分七章,各章的内容如下: 第一章:绪论。提出了课题研究的背景、目的及意义,分析了国内外研究的现 状。 第二章:组件技术。阐述了组件技术产生的背景和概念以及组件技术的思想及 其演变历程,并对组件的特点、采用组件的优势、组件对象技术的特征进行了分析。 第三章:组件对象模型。对流行的组件对象模型( 如:c o m d c o m 、m t s 、c o m + ) 各自的特点和工作机理进行了分析,此外,对组件接1 :3 技术也进行了一定的研究。 第四章:n e tf r a m e w o r k 下的组件技术。对w i n d o w sd n a 环境下的组件和n e t 架构下的组件进行了比较分析,并研究了c o m 组件与n e t 组件的互操作性。 第五章:备品备件库存管理系统的设计。分析了物料仓库的流程分析,对系统 的功能模型、编码、数据库以及系统软件平台进行了设计; 第六章:n e t 组件技术在备品备件库存管理系统中的应用。采用n e t 组件技 术,设计了几个通用的数据库事务操作组件和库存管理中的入库、出库、当前库存 三个模块组件。 第七章:总结与展望。对全文的主要内容进行了总结,并对本论文研究的不足、 不完善之处以及今后的研究方向作出了补充说明。 华中科技大学硕士学位论文 2 组件技术 2 1 组件技术产生的背景及其概念 在计算机软件发展的早期,一个应用系统往往是一个单独的用户程序,但随着 应用的日益复杂,程序变得越来越庞大。而且一旦系统的某个版本完成以后,在下 一个版本出来之前,应用程序不会再有所改变。而对于庞大的程序来说,更新版本 的周期很长,在两卜版本之间,如果由于操作系统发生了变化,或者硬件平台有了 变化,则应用系统就很难适应这样的变化。所以这类单体的应用程序已经不能满足 计算机软硬件的发展需求。 从软件模型角度来考虑,一个很自然的想法就是把一个庞大的应用程序分成多 个模块,每一个模块保持一定的功能独立性,在系统工作时,通过相互之间的接口 完成实际的任务。我们把每一个这样的模块称为组件,一个设计良好的应用系统往 往被先分成一些组件,这些组件可以单独开发,单独编译,甚至单独调试和测试。 当所有的组件开发完成后,把它们组合在一起就得到了完整的应用系统。当系统的 外界软硬件环境发生变化或者用户的需求有所更改时,并不需要对所有的组件进行 修改,而只需对受到影响的组件进行修改,然后重新组合得到新的升级软件。下面 的侧子【2 4 l 体现了这样的一个升级过程。 例如:设在一个由五个组件构成的应用系统中,在应用系统版本的使用过程中, 由于软件环境发生了变化,其中组件l 和组件3 受到了影响,于是,在保持原有组 件的基础上,对组件1 和组件3 进行了修改或更换,分别得到组件1 和组件3 。 把修改后的组件和其它的组件合在一起得到了新的应用系统。它可以运行在新的软 件环境下。于是我们在不修改组件2 、4 、5 的情况下,完成了软件的一次升级。 从上面的例子我们可以看出,组件化结构为我们带来了极大的好处,大家所熟 悉的面向对象的系统开发方法同面向组件的编程方法从认识论的角度是一致的,把 程序中的模块抽象出来作为组件,而构成环境发生变化后,用户可以通过重新组合 一i-,_一 4 华中科技大学硕士学位论文 他们的组件来应对环境的变化。 2 2 组件技术的思想及其演变的历程 随着计算机技术的发展和应用的不断深入,软件系统的规模和复杂度日益增加 在软件设计过程中,人们所面i 临的问题将不仅是考虑软件系统的功能问题,而且要 解决更高要求的可修改性、可用性和可靠性等非功能性问题从7 0 年代中期和后期开 始,为了缓解软件危机,人们寄希望于软件重用技术。从7 0 年代的模块重用,8 0 年 代的对象重用,到9 0 年代的组件重用,软件重用技术成为提高软件生产率与质量、 减少软件开发周期和降低成本的关键因素,并对软件的发展起到了巨大的推动作用 何为组件技术? 【2 7 】目前,在软件丌发领域,一场新的革命正在悄悄兴起,这是由 日趋成熟的组件技术引发的。几年以前,当微软公司首先使用o l e 的时候,其初衷 是为了增强软件的互操作性。然而在使用过程中,人们逐渐认识到这一技术背后的 实质性内容和它在软件开发中所扮演的重要角色。组件技术将以前所未有的方式提 高软件产业的生产效率,这一点已逐步成为软件开发人员的共识。传统的 c l i e n t s e r v e r 结构、群件、中削件等大型软件系统的构成形式,都将在组件的基础上 重新构造。组件技术使近二十年来兴起的面向对象技术进入到成熟的实用化阶段。 在组件技术的概念模式下,软件系统可以被视为相互协同工作的对象集合,其中每 个对象都会提供特定的服务,发出特定的消息,并且以标准形式公布出来,以便其 它对象了解和调用。组件间的接口通过一种与平台无关的语言i d l ( i n t e r f a c ed e f i n e l a n g u a g e ) 来定义,而且是二进制兼容的,使用者可以直接调用执行模块来获得对象 提供的服务。早期的类库,提供的是源代码级的重用,只适用于比较小规模的开发 形式;而组件则封装得更加彻底,更易于使用,并且不限于c + + 之类的语言,可以 在各种开发语言和开发环境中使用。由于组件技术的出现,软件开发的方式有了很 大的变化,可以把软件开发的内容分成若干个层次,将每个层次封装成一个个的组 件,在构建应用系统时,将这些绁什有机地组装起来就成为一个系统,就象是用零 件组装出一台机器样。我们可以按需要设计出许多组件,在构建应用系统时可以 根据自己的应用需求选择需要的组件,若发现某个组件有问题,只需要对它进行修 华中科技大学硕士学位论文 改或替换掉就行了,而不必象传统开发方法那样对整个系统进行重构;同时,一个 组件可以被多个应用系统使用。可以看出,组件技术的应用,可以使软件的可维护 性和可重用性大大提高,显著地减少了应用软件开发的复杂度,避免了软件资源的 极大浪费。 2 3 组件的特点和优势 2 , 3 1 组件的特点 可以认为组件是一个独立的单元,它能够完成一套特定的功能,并可定义明确 的接口。除此之外,组件还应该具有以下属性【1 1 : ( 1 ) 二进制标准。软件组件需要用于二进制级,为使其他公司使用第三方组件 销售商的产品,第三方组件销售商不必发行自己的专用源代码。 ( 2 ) 与语言无关性。市场上有许多用于开发软件的语言,一个软件组件应该能 被这些语言所使用和创建。 ( 3 ) 位置透明性。正确的基于组件的解决方案的目标之一,是使客户程序与组 件能够交互作用,不论组件放在哪里都一样。 ( 4 ) 版本兼容。组件必须可以在不妨碍已有客户的情况下被升级。 2 , 3 2 运用组件的优点 运用组件具有的优势: ( 1 ) 可管理性:将一个产品分成许多组件的集合,可使设计者将一个复杂的单 一的问题分成较小的可管理的问题的集合。 ( 2 ) 规模经济:组件是独立的单元,理论上能够相互独立的实施。如果接口各 方面均已明确定义,多个开发者能够并行的实施单个组件。 ( 3 ) 明确的相关性:组件将关于如何完成一个任务的实施细节隐藏起来,只露出 定义明确的接口,在实施细节中的任何错误都是孤立的。错误可以被隔离,调试方便。 ( 4 ) 开发周期短,现成易得,降低了丌发费用:许多公司已经做好了现成的组 一- _ _ _ _ _ 6 华中科技大学硕士学位论文 件,可以直接买过来用。公司可以只编写“胶水”,或将这些组件放在一起形成应用 程序的逻辑框架。 ( 5 ) 容易维护:组件的源代码只保存在一个组件里,集中和模块化的方法使得 组件容易维护,使用起来无需费,h 使用组件的开发者只需要知道他能做什么,不 需要知道他怎么做。开发者能集中精力改善组件的界面和功能,而不是关心基础代 码的内部结构。 ( 6 ) 表现如:每个组件只有套源代码,无论何处使用,表现一样。 ( 7 ) 安全性增强:组件是完全编译的,将敏感或者专用的事务逻辑放在这些组 件内比放在脚本上更安全,因为脚才i 是可以被用户看到的。 2 4 组件对象技术的特征 组件技术作为新型软件开发的核心技术,具有以下突出特征: ( 1 ) 组件对象必须是动态链接 基于组件对象开发应用程序的优点直接源于用户可以动态地将组件插入或卸出 应用程序,因此组件对象必须是动态链接,如果基于组件对象的应用程序,不能在 运行时动态链接组件对象,那么当用户需要改变应用程序中的部分组件进行版本升 级时,只有重新编译链接整个应用程序,这对于用户来说,几乎是不可能的。 ( 2 ) 组件对象是和语言无关的 无论组件对象是用什么语言丌发的,它都可以被任一客户使用,将组件对象的 实现语言暴露出来只会引起客户和组件对象之间新的依赖,因此组件对象必须是已 经编译好的二进制形式发粕的软件单元。 ( 3 ) 版本更新方便、系统更具健壮性 组件对象接口是不变的,任何功能和语法的变化都将建立新的接口,同时保留 老的接口。这样就可以保证在不妨碍原有用户的情况下升级,也能被新客户使用, 不会造成新版本不一致而引起的系统射j 溃。 ( 4 ) 组件对象在网络上的位置足透明的 客户对组件对象的使用感觉如在同一进程中一样。组件对象的位置对客户是 一一 7 华中科技大学硕士学位论文 透明的。组件对象的定位由操作系统和组件对象模型中基础设施和服务完成。 ( 5 ) 良好的可伸缩性 组件对象模型中当一个组件对象需要提供新的服务时,只要提供服务实现,然 后发布新的接口就可以了。这样既不会影响使用原有接口的客户,客户也可以选择 新的接口来获得新的服务。增加组件对象或扩展组件对象的服务可以扩充应用系统, 同样裁减组件对象可以减少应用系统的服务和大小。 ( 6 ) 具有强有力的基础设施和服务支持 组件对象模型中提供了诸如命名服务、时间服务、安全服务、对象代理、持续 存储、连接管理及远程调用等基础设施和服务。它们保证组件对象之间能够有机地 结合在一起,实现无缝连接,它们是组件对象获得重用性、可移植性和互操作性有 效的工具。 2 5 核电站备品备件库存管理系统中应用组件技术的必要性 对库存实施科学的管理,降低存货成本,提高企业的经济效益,是企业的第三 利润源泉。库存管理是有关存货的生产管理活动,也就是对企业在经营过程中为销 售或生产耗用储备的资产的管理,包括对原材料、燃料、包装物、产成品以及发出 商品的管理。库存中的存货是一种重要的流动资产,是企业物流的重组成部分。对 存货实施科学的管理,可以降低企业平均资金的占用水平,提高存货的流转速度和 总资产周转率,从而提高企业的经流效益。 对生产连续型企业如炼钢厂、核电站等而言,其原料的库存管理是至关重要的, 这样的企业其库存具有库存量大、种类多、少量库存物品占有多数资金以及不常用 备品备件消耗的随机性等特点,生产所需的原料或备品、备件的缺货将会导致生产 的停顿,从而带来重大损失,相反,采购或库存过多则占用大量的流动资金和产生 过多的额外存储费用。 传统的基本库存模型有定点订货模型、定期订货模型及两者的交替和混合使用, 这些模型都是建立在一定的假设基础之上的,譬如,假设某库存原料单位时间的需 求量一定或其采购备运期为常数等,然而在实际生活中这些假设是很少成立的,因 r 华中科技大学硕士学位论文 为外部环境( 如政治、经济、文化和科技等) 的变化,都会直接或间接引起各种生 产资料市场供需的变化,从而影响到企业库存,如由于s a r s ( 非典型肺炎,一种传染 性疾病1 或战争爆发等环境的变化,可能导致国家之间进出f l 管制,使得进口物料的 备运期延长,为提供足够的库存满足生产需要,应加大该物料的安全库存量或库存 安全系数、采购批量等,在类似这样的情况下,库存原料的采购备用期、单位时间 的需求量及库存模型的其它参数更倾向于随机变化,这为企业库存控制的决策带来 了新的挑战。 这种库存的随机性变化,往往会导致库存业务逻辑规则的改变,比如,库存物 品的a b c 分类规则的变化,物品的编号规则的变化,库存模型中的参数的变化,经 济订货批量、订货点计算算法的变化等。库存管理信息系统的设计,如果采用传统 的c s 结构,库存业务逻辑代码混杂在客户端代码中,当库存业务规则发生变化时, 就要修改业务逻辑代码,这样就要导致所有的客户端代码都要修改,经过修改、重 新编译之后,再重装客户端软件,如果是多用户系统,这种维护将是一项非常繁琐、 艰巨而浪费的重复性劳动。由此可见,c s 结构系统的可扩展性、可维护性以及可重 用性都较差。 通过对本章前四节的研究,可以了解到在软件系统设计中应用组件技术的优势, 所以我们的备品备件库存管理系统将设计为三层结构,并且采用组件技术,采用组 件来设计库存系统,将库存业务规则封装在组件中,并把组件部署在服务器端,当 库存业务规则发生变化时,我们只需修改服务器端的组件代码,而不必修改客户端 代码和进行重新编译、安装,如此,系统的扩展性、维护性以及代码和程序的重用 性都将得到很大的改善。 9 华中科技大学硕士学位论文 3 组件对象模型 从理论上讲,如果市场上预制的组件足够多,一个公司只需要编写某些“胶水”, 或将这些组件放在一起形成一个应用程序的逻辑框架。尽管组件周围有许多细节, 但是我们发现组件确实归结于几个简单的但功能非常强大的概念。一个组件可以分 成两个基本的构件块:接口和实施。组件具有自己的规范,它定义了组件的方方面 面,扶其创建背后的高层动机到使用其编程的细枝末节,但如果硬性地把组件组合 在一起很容易破坏这些软件,这时就需要组件对象模型的介入。 3 1c o m ( c o m p o n e n t o b j e c tm o d e l ,组件对象模型) c o m 是个开放的组件标准,有很强的扩充和扩展能力。c o m 规定了对象模型 和编程要求,使c o m 对象可以与其他对象相互操作。这些对象可以用不同的语青实 现,:其结构也可以不同。基于c o m ,微软进一步将o l e 技术发展到o l e 2 。其中 c o m 实现了o l e 对象之间的底层通信工作,其作用类似于c o r b a o r b 。在o l e 2 中出现了拖放技术以及o l e 自动化。c o m 规范 9 1 包括c o m 核心、结构化存储、统 一数据传输、智能命名和系统级的实现。c o m 核心规定了组件对象与客户通过二进 制接口标准进行交互的原则,结构化存储定义了复合文档的存储格式以及创建文档 的接口,统一数据传输约定了组件之间数据交换的标准接口,智能命名给予对象一 个系统可识别的唯一标识。 3 1 1c o m 的三种形态1 5 i ( 1 ) c o m 是一种规范 ( 2 ) c o m 是一种现代的软件开发思想 ( 3 ) c o m 是一种构造软件组件的二进制标准 3 1 2c o m 存在的理由 众所周知,计算机硬件和软件的持续发展已经导致了复杂完善的应用程序的大 一 1 0 华中科技大学硕士学位论文 量增加。这些应用程序有的用于用户桌面,有的应用于网络环境。对于如此复杂的 软件在开发人员和用户两方面都带来了很多问题。其中包括: ( 1 ) 现代软件应用程序规模大,而且复杂。开发过程耗费时间,维护起来即困 难,叉代价昂贵,而进行功能方面的扩展又充满风险。 ( 2 ) 应用程序正在以一种大而全的方式开发。它们以一种事先包装好的形式出 现,包含一定范围内的固定功能,其中不能添加任何功能,原有功能也不能被删除 和独立进行升级,也不能用其它功能代替。 ( 3 ) 应用程序本身不能集成。一个程序的数据和功能不能直接用在另一个程序中。 针对上述情况,m i c r o s o f t 提出了组件标准一一c o m ,在c o m 体系结构上构造 的软件可以较好地解决这些问题。 c o m 的基本目标【”是:开发人员能够通过组装现成的组件来创建应用程序,使 基于组件应用程序成为现实。c o m 是一种语言独立的、系统级的对象模型,它提供 了一种标准的方式,用于组件和应用程序间的交互操作因为c o m 定义了一种二进制 的互操作性标准,而不是一种基于语言的标准,这样,开发人员就可使用任何语言 或工具创建应用程序。组件之间通过接口来进行通信,接口是组件软件的关键,因 为接口是双方进行通信的基础。因此,软件组件应该遵循统一的标准,在同一软件 中的组件必须使用同样的接口标准才能保证组件之间可以进行通信服务。丌发人员 创建的c o m 组件可展示一个或多个接口,每一个接口提供一种方法和属性,这些方 法和属性可被其它组件或应用程序调用。当前有很多开发工具,可以为编写和使用 c o m 组件提供支持。 3 1 3c o m 的内容 组件对象模型c o m 内容复杂,主要包括【3 l : ( 1 ) 接口:c o m 对象问互相调用的一组语义相关的接口,每个接口有一个1 2 8 位的唯一标识( g u i d ) 。所有的接口皆直接或间接地从1 u n k o w n 接口继承而来, i u n k o w n 接口包括q u e r y i n t e r f a c e 、a d d r e f 和r e l e a s e 。 ( 2 ) c o m 对象:即c o c l a s s 实例,提供接口的具体服务。c o c l a s s 是一个或多 1 l 华中科技大学硕士学位论文 个c o m 接口的实现。对c o m 对象的调用是通过一个指向其接口的指针实现的。c o m 服务器:是一个程序或库,包含c o m 对象,向客户提供服务。 ( 3 ) 类工厂( c l a s sf a c t o r y ) :用于创建、注册c o m 对象的特殊对象,为实例化 c o c l a s s 提供一种标准机制。对c o c l a s s 进行实例化是通过调用全局w i n d o w sa p i 函 数c o g e t c l a s s o b j e c t 或c o c r e a t e l n s t a n c e 实现的。 ( 4 ) 类型库( t y p el i b r a r y ) :一个二进制资源文件,包含c o m 服务器中对象与 接口的类型信息,可以从m i d l 或o d l 转换而来。 ( 5 ) a u t o m a t i o n 服务器扩展:a u t o m a t i o n 代表一个应用程序控制另一个应用程 序中对象的能力。a u t o m a t i o n 服务器是指实现i d i s p a t c h 接口的对象,i d i s p a t c h 在 1 u n k n o w n 的基础上增加了g e t l d s o f n a m e s ,g e t t y p e l n f o ,g e t t y p e l n f o c o u n t 以及 i n v o k e 接口。 3 1 4c o m 应用的特点 c o m 的应用有如下特点【8 1 : ( 1 ) 丰富的综合服务,包括事务、安全性、消息队列和数据存取,以支持最广 泛的应用: ( 2 ) 组件间通过基于指针的a p i 调用实现互操作,调用透明性好; ( 3 ) 对w i n d o w s 依赖性强,对其他操作系统的支持相对不足:供货商可使用多 种开发语言开发,如v c 、v b 、c + + b u i l d e r 等; ( 4 ) 定制应用软件和可重用组件的广泛用户基础; ( 5 ) 可靠的重用性,充分利用用户和开发人员的现有投资。 在c o m 系统中,客户对组件对象功能的调用接口一般采用c o mi d l 来描述。 c o m 定义了两类服务器,进程内服务器和进程外服务器。进程内服务器即本地机上 的d 1 l ,进程外服务器分为两类,一是本地机上的e x e 可执行程序,二是远程机上 的d i l 或e x e 程序。服务器内部包括组件接口的实现体( i n t e r f a c ei m p l e m e n t l 和类工 厂( c l a s sf a c t o r y ) ,类工厂生产组件对象,将对象的接口指针返回给客户。组件服务 器的定位由c o m 库完成并返回对象指针。c o m 对象位置的透明性处理由c o m 的 一一 1 2 华中科技大学硕士学位论文 服务控制机制保证。进程外的对象必须先调用服务控制机制提供的代理,代理生成 服务对象的远程过程调用r p c ( r e m o t ep r o c e s sc a l l ) 。基于c o m 的系统调用原理 如图3 1 - 1 所示。 图3 1 - 1 基于c o m 的系统调用原理 3 2d c o m ( 分布式组件对象模型1 4 1 ) d c o m 是微软与其他业界厂商合作提出的一种分布组件对象模型,它是c o m 在分布计算方面的自然延续,为分布在网络不同节点的两个c o m 组件提供了互操作 的基础结构。d c o m 增强c o m 的分布处理性能,支持多种通信协议,加强组件通 信的安全保障,把基于认证i n t e m e t 安全机制同基于w i n d o w sn t 的c 2 级安全机制 集成在一起。但从系统内部的实现机制而言,d c o m 所采用的技术仍符合图4 1 1 所示的c o m 模式。d c o m 自动建立连接、传输信息并返回来自远程组件的答复。 d c o m 在组件中的作用有如p c 机间通信的p c i 和i s a 总线,负责各种组件之间的 信息传递,如果没有d c o m ,则达不到分布计算环境的要求。微软通过纳入事务处 理服务、更容易地编程以及对u n i x 和其它平台的支持扩充了d c o m 。建立d c o m 时和使用c o m 建立对象的方式是相同的,只需再加入一个机器名称的参数。如果 c o m 通过w i n d o w s a p i 的c o g e t c l a s s o b j e c t 建立对象,只需再输入机器名称的参数 即可在远程指定的计算机中建立对象,并且取得指定接口的信息。它构造于r p c 的 技术:三上,并且使用t c p i p 作为网络通信协议。 1 3 华中科技大学硕士学位论文 3 3m t s ( m i c r o s o f tt r a n s a c t i o ns e r v e r ) 多层分布式应用中的组件可能对数据库的表,非数据库的实体如消息队列进行 操作,而这种组件却可能被多个客户调用,这样就会出现多个操作并发的问题,必 须采取事务方法来管理所有操作,保证所有事务全部成功提交或者全部回滚到事务 的初始状态,微软实现了一个管理支持事务的组件的服务器m t s ,以保证在多个并 发操作中数据的完整性和一致性。 m t s 是一个基于组件的事务处理系统,用于开发、配置以及管理高性能的、可 用的和可靠的企业i n t e r n e t 及i n t r a n e t 服务器应用程序。m t s 定义了一个编程模型来 开发分布式的、基于组件的应用程序。m t s 还提供了一个运行基础环境和一个图形 工具来配置和管理这些应用程序。m t s 的编程模型为开发组件提供了一个框架,这 些组件封装了业务逻辑关系。m t s 运行环境是运行这些组件的一个中间平台,用户 可以使用m t s 资源管理器来注册和管理在运行环境中执行的组件。运行时,客户端 动态提出远程组件实例的请求,此时m t s 服务器响应客户请求,生成相应的实例, 为其提供运行环境,并将它的运行纳入自己的管理之中。多层编程模型为开发者和 管理者超越二层结构的客户n 务器应用程序的限制提供了便利,使多层应用程序的 配置和管理具有更大的灵活性。 3 4 c o m + 当w i n d o w s2 0 0 0 发布的时候,微软将m t s 与c o m 捆绑在一起,合成c o m + , 作为系统提供的基本服务。它的底层结构以c o m 为基础,并有机结合了d o c m ( 分 布式组件对象模型,能自行处理底层网络协议的细节,支持不同计算机上组件对象 和客户程序之间或者组件对象之间的相互通信) 、m t s 机制( 微软事务服务器,它定 义了一个多层编程模型来开发分步式的、基于组件的应用程序,为运行和管理组件 提供了一个中间平台) ,这种结合的服务可以给c o m 提供事务处理、缓冲池等等一 系列由m t s 提供的功能,更加扩展了c o m 的功能。在多层结构系统中,一方面可 以将业务逻辑,包装在c o m 组件中,另一方面,当涉及

温馨提示

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

评论

0/150

提交评论