(计算机应用技术专业论文)基于微软办公平台的专用软件的集成与设计方法的研究.pdf_第1页
(计算机应用技术专业论文)基于微软办公平台的专用软件的集成与设计方法的研究.pdf_第2页
(计算机应用技术专业论文)基于微软办公平台的专用软件的集成与设计方法的研究.pdf_第3页
(计算机应用技术专业论文)基于微软办公平台的专用软件的集成与设计方法的研究.pdf_第4页
(计算机应用技术专业论文)基于微软办公平台的专用软件的集成与设计方法的研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)基于微软办公平台的专用软件的集成与设计方法的研究.pdf.pdf 免费下载

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

文档简介

沈阳_ 业大学硕一l 学位论文 摘要 随着c o m 、d c o m 、c o m + 乃至a c t i v e x 技术的应用和发展,软件系统的架构和 程序设计的理念也发生了很大的变化。借助于组件和面向对象等模型,这些技术对近年 来逐渐流行起来的客户朋睫务器等模式提供了很好的支持。 本文的主要目的是分析办公软件的对象模型和b c b ( b o r l a n dc + + b u i l d e r6 0 ,以 下同) 环境对这些对象模型的封装方法,进而给出利用b c b 环境进行办公软件的客户 服务器应用设计规范,以指导对类似软件的“二次开发”。 首先,分析了典型办公自动化软件m sw o r d 、m se x c e l 和m so u t l o o k 等的对象封 装模型,阐述了模型中的部分重要对象的含义和相互关系,并对利用v b a ( v i s u a l b a s i cf o ra p p l i c a t i o n ,以下同) 语言进行二次丌发的方法按重要对象的层次和功能进行 了归纳和总结。 其次,深入地分析了b c b 对组件服务器的封装层次结构,对主要组件服务器封装 对象的各种不同的调用方式进行了细致地分析和对比,并在此基础上阐述了各自的优缺 点,总结了c + 十环境中通过o l e 方式调用服务器对象与利用v b a 语言进行调用之间的 映射关系。 最后,利用b c b 和v b a 环境给出了两个辅助设计软件的设计。其一是一个针对 m sw o r d 的可视化客户软件辅助自动编程工具,该软件依据b c b 中封装的组件和调用 规范,能够自动生成客户程序中的实现主要服务器功能调用的c h 程序源代码,这些代 码可以直接被插入在应用软件中而不必手工编制这些源代码。其二是基于v b a 语言的 一个计算机辅助教学软件,它在m sw o r d 内实现了主要三个方面的功能,包括学生管 理模块、特殊公式编辑模块和特殊图形编辑模块。上述软件的设计一方面作为文中所分 析结果的示例,同时也展示了利用现有服务器软件进行客j 、程序设计的方法。 关键词:组件,客户i n 务器,对象,b c b ,v b a 沈阳工业大学硕士学位论文 ar e s e a r c hi n t oi n t e g r a t i o na n d d e s i g n o f e x p e r t s o f t w a r e b a s i n g o n m i c r o s o f to f f i c ep l a t f o r m a b s t r a c t w i t hc o m ,d c o m ,c o m + a n da c t i v e xt e c h n o l o g ya p p l i c a t i o na n dd e v e l o p m e n t ,a l s o v e r yb i gc b _ m l g eh a p p e n e d i nt h ei d e at h a tt h es y s t e m a t i cf r a m eo f s o f t w a r ed r a w sp r o g r a m m i n g , s ow ec a nm a k e g o o d u s eo f t h e s u p p o r t o f c sm o d e lf r a m et h a tp o p u l a r si nr e c e n ty e a r s i ti st h em a i n p u r p o s eo f t h ep a p e r t h a ta n a l y z e st h eo b j e c tm o d e lo f t h eo f f i c es o r w a r ea n d b c b ( b o r l a n dc 什b u i l d e r6 0 ,f o l l o w i n ga n dt h es a m e ) e n v i r o n m e n t t ot h ee n c a p s u l a t i o no f t h eo b j e c tm o d e l i tg i v e st h ea p p l i c a t i o nd e s i g nr u l e so ft h eo f f i c es o f t w a r ei n s i d eb c b e n v i r o n m e n kw h i c hg u i d e st h ef u l 仙e rd e v e l o p m e n t o f t h es i m i l a rs o f t w a r e a tf i r s t ,t h e p a p e ra n a l y z e s t h eo b j e c te n c a p s u l a t i o nm o d e lo ft h eo f f i c ea u t o m a t i o n s o f t w a r e ,m sw o r d2 0 0 3 ,m se x c e l2 0 0 3a n dm so u t l o o k2 0 0 3 i te x p l a i n st h em e a n i n ga n d c o r r e l a t i o no f t h ep a r to f i m p o r t a n to b j e c t i tc o m p a r e sa n dc o n c l u d e st h em e t h o d s a c c o r d i n g t o t h el e v e lo f s t r u c t u r ea n df u n c t i o no f t h e i m p o r t a n to b j e c to n t h ed e v e l o p m e n t m e t h o dt om a k i n g u s eo fv b af v i s u a lb a s i cf o ra p p l i c a t i o n ,f o l l o w i n ga n dt h es a m e ) l a n g u a g et oc a r r yo u t r e p e a t e d t h e n ,i td e e p l ya n a l y z e st h ee n c a p s u l a t i o nl e v e lo f s t r u c t u r ei n s i d eb c b i ta n a i y z e sa n d c o m p a r e s t od i f f e r e n ti n v o k i n gw a yf o rt h ee n c a p s u l a t i o no b j e c to f t h em a i nc o m p o n e n t s e r v e r , a n di ts e tf o r t ht h er e s p e c t i v ep l u s e sa n dm i n u s e s i tc o n c l u d e st h em a p p i n gl a wb e t w e e nb y o l e w a yi n v o k i n g s e l w e ra n d u s i n g v b a f i n a l l y ,t h ep a p e rd e s i g n st w oa s s i s t sd e s i g ns o f t w a r e ,o n ei si n s i d eb c b m a dt h eo t h e ri s v b ae n v i r o m e n t t h ef i r s to n ei sav i s u a la u t o m a t i o np r o g r a m m i n gt o o l sf o rc l i e n ts o f t w a r et o b ea i m e da tm sw o r d ,w h i c hc a n v o l u n t a r i l yg e n e r a t ec + + p r o c e d u r e s 0 1 r i c ec o d e a c c o r d i n g t ot h ee n c a p s u l a t i o nc o m p o n e n ta n d i n v o k i n g r u l e si n s i d eb c b ,a n dt h e s ec o d en e e d n tw r i t e b y h a n da n dc a nb ei n t e r v e n e di nd i r e c t l yi na p p l i c a t i o ns o f t w a r e t h es e n c o n do n ei sa t e a c h i n g a s s i s t a n ts y s t e mw i t hv b a l a n g u a g et h es y s t e mh a st h r e em o d u l e si nm sw o r d :s t u d e n t m a n a g e m e n tm o d u l e ,s p e c i a lf o r m u l ae d i t o rm o d u l ea n ds p e c i a lg r a p h i c se d i t o rm o d u l e t h e 2 沈阳 :业犬学硕士学位论义 d e s i g no f t h ea b o v es o f t w a r en o to n l y c a r lb eu s e d e x a m p l e f o ra n a l y z i n gt h er e s u l t ,a l s od i s p l a y t h em e t h o d o f d e s i g n i n g t h ec l i e n tp r o g r a m m i n g u s i n g t h ec u r r e n ts e r v e rs o f t w a r e k e yw o r d s :c o m p o n e m ,c s ,o b j e c t ,b c b ,v b a 3 独创性说明 本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 沈阳工业大学或其他教育机构的学位或证书所使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表 示了谢意。 签名:乏驾日期:丝! :! 关二f 论文使用授权的说明 本人完全了解沈阳工业大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公 布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论 文。 ( 保密的论文在解密后应遵循此规定) 签名: 差塑 导师签名:,兰挫丝 日期: ,棚f t ? 沈i j h a - 业火学硕十学位论文 1 绪论 1 1 课题的提出 随着办公自动化系统和计算机应用的普及,客户对软件系统提出了更新的要求。工 作中每天可能从各种数据库中得到大量的文本,但常常因为数据格式等原因,需要浪费 大量的时间对这些数据进行加工。如果能在o a 系统中对m sw o r d 文档格式的数据进 行处理或加工,自然会大幅度减轻工作的负担,提高工作效率。显然,新的应用系统丌 发商不可能重新独立开发一套m sw o r d 文档解释乃至编辑系统,因为无论从开发成 本、周期甚至知识产权等多方面都是不允许的。此外,无论什么样的软件设计环境,终 究不会是一个万能的工具,都会有其自身的缺陷和不足。例如,在我们进行数据库软件 开发的时候,一般要进行大量报表设计,尤其当涉及到设计多重报表或交叉报表时,可 能会觉得力不从心。此时,如果能够利用e x c e l 强大的电子表格处理功能,就可以弥 补程序设计环境所提供的报表工具在功能上的不足,进而得到实用美观的报表,满足实 际应用的需要。 目前,客户朋务器( c s ) 结构已是众多系统所采用的一种应用广泛的系统结构。 从功能上说,c s 结构延伸t n 务器已有的功能,也为客户程序的开发带来了便利。对 于一些常规的任务,新的软件不必重新设计已经在服务器中实现的部分,而可以将这些 任务交由服务器去完成。从程序设计的角度看,这类似于软件的二次开发。 在现今的软件环境中,有众多的软件可以作为服务器程序,也有大量的开发环境支 持客户服务器程序开发。本文选择的是针对m so f f i c e 办公套件的服务器功能和调用规 范进行分析和研究,其原因在于如下几点: ( 1 ) 实用性。目前,无论是政府机关、学校还是其它办公场所,几乎都离不开办公 软件,而作为世界上最著名的办公软件的m so f f i c e 在这些场合都有应用。因此,对 m s o f f i c e 的服务器功能和调用规范的分析具有十分重要的实用价值。 ( 2 ) 代表性。虽然国内外有为数不少的办公软件,只要提供服务器功能,支持“二 次丌发”,那么它们的对象模型都与o f f i c e 非常相似。可见,对m so f f i c e 的分析具有 较强的代表性。 沈1 5 | = | 工业人学顿士学位论文 ( 3 ) 功能完善。m so f f i c e 强大的功能是大量应用程序所向往的,这也是因为m s o f f i c e 是最复杂的服务器程序之一。换言之,对这样系统的分析可以是我们完整地掌握 办公软件甚至完整的服务器程序的开发及调用方法,为类似程序的设计和二次开发打下 坚实的基础。 1 2 客户胆艮务器模型概述 1 2 1c s 模式介绍 c s 模式将一个应用程序分成两部分,分别在同一台计算机或分离的计算机上运 行,即客户请求服务,服务器提供服务呱 c s 结构是现代计算机系统中主流高效率的体系结构,也是一个低成本,特别是一 个开放的体系结构。c s 可以增强应用的可移植性,改善网络和系统的性能,提高用户 的工作效率,降低和保护用户的投资,甚至可以减少对小型机和大型机的需求。c s 体 系结构不仅能包括系统目前及未来的业务发展所需要的各种规模与处理能力的s e r v e r 及其相应的o s 和d b m s ,还能包括系统现存的各种网络系统、主机系统、文件服务 系统。这样,就能有机地构成个先进的、开放的、可扩展的系统处理结构。 1 2 2 c s 体系结构 c s 结构是客户机和服务器构成的一种网络计算机体系结构;典型的c s 结构如图 11 。 c l i c i t 慧川瓤愀r v e t s f 糙 纛搠 藏务嚣 c e e 嘲黎筑蹲罄s e 种e r 系统 图1 1c s 模式结构 在c s 结构下,作为后台的服务器完成数据存储管理、文件服务和数据加工处理: 作为前台的客户机提供用户界面并负责处理用户对数据及文件提出的请求服务,在网络 上传递的信息是客户请求和服务器返回的结果。这样,可以将客户端承担的数据处理任 沈阳工业大学硕士学位论文 务交给服务器来完成,降低网络流通量,提高系统性能,使服务器控制管理数据的能力 由文件服务方式上升到数据库方式。 中间件( m i d d l e w a r e ) 是随c s 计算产生的一个概念,它在c s 中扮演着重要的角 色。中间件是c s 系统中软件的一个中间层,主要负责透明的连接客户和服务器客户 和服务器之间连接最底层总是通过硬件来实现的,这便是网络连接。对设计c s 应用来 说,此种连接更多的是一种软件通信过程,如网络协议和应用接1 :3 等。由于c s 环境复 杂,涉及到不同的操作系统和通信规程,多种数据源以及不同的硬件平台,所以中间件 应非常灵活且具有很强的适应性。c s 系统中的中间件能将用户和开发人员与不同的操 作系统和通信规程隔离开,而数据则可以在不同的硬件平台之间以及平台上驻留的应用 进程中流动。通过中间件,客户应用程序能对不同的数据和应用提供平稳访问。近年 来,出现了多种连接客户和服务器的标准和软件。例如o d b c ( o p e n d a t a b a s e c o n n e c t i v i t y ) 就是一种广泛采用的数据访问中间件。严格地讲o d b c 只是一个标准而 不是产品,从功能上看,它处于客户和服务器之间,能把对多个数据库访问的复杂性隐 蔽起来。 客户和服务器之间的通信是基于网络的。常用的通信手段有管道( p i p e s ) 、远程过 程调用( r p c ) 和网络s q l 。 1 2 3c s 体系结构优势 c s 模型是一种发展比较成功的软件模型,因为其有如下的一些优势: ( 1 ) 稳定性、可靠性好。c s 模型简化了应用,使任务得到分离,客户和服务器各司 其职,共同完成任务。 ( 2 ) 软件的可扩展性更好。一个服务器进程可以为多个客户提供服务,客户也可以 连接到不同的服务器上,这种模型的连接非常灵活。 ( 3 ) 提高性能。根据硬件的配置,可以把繁重的任务放到高配置的一端,用低配置 的设备完成些简单的任务,使软件运行更加合理。 ( 4 ) 在网络上实现时,可以降低网络流量。在网络上只传输客户和服务程序所关心 的数据。 ( 5 ) 在数据库应用中可以实现事务( t r a n s a c t i o n ) 机制,提供数据备份能力等。 沈阳工业大学硕上学位论文 l _ 3 开发语言简介 1 3 1b c b 语言概述 应该说目前已有较多的语言环境支持c s 程序设计规范,例如c + + b u i l d e r 、 d e l p h i 、v i s u a lc + + 、v i s u a lb a s i c 、p o w e rb u i l d e r 以及i b ml o t t t s 等。其中,蛔嫡s e 公 司的c + + b u i l d e r ( 以下简称b c b ) 和d e l p h i 可能是从易用性和功能性等方面看最为优 秀的产品,本文的分析和设计即是以b c b 为对象的。之所以如此,e 是因为b c b 本身 的功能强大,且不仅继承了c + + 的灵活性,同时又保留了编写简单和环境易用的特点。 事实上,在第四代语言中,从笔者的观点看,v i s u a lc + + 并不能称得上真正的可视化设 计环境,在其提供的少量的“可视化”设计工具之下,程序员仍然停留在手工编码的基 础上。相反,b c b 和d e l p h i 才是真正地建立在组件基础上的可视化编程工具。对于多 数的应用程序设计者来说,这些环境提供了快速编写程序的可能,这也是目前有大量的 应用程序( 包括数据库管理系统) 都由这些工具开发的原因 2 - 4 1 。 1 3 2b c b 对组件对象接口的支持 b c b 是目前唯一完美集成了c o b r a 与c o m c o m + 的c + + 集成开发环境,可以 快速开发具有w e b 服务支持功能的电子商务应用程序,也是全球率先实现跨平台、高 效可视化开发w i n d o w s l i n u x 应用程序的语言环境。b c b 兼容c l x 、v c l 和b o r l a n d c + 十f o rl i n u x ,并且增强了对于m i c r o s o f tv i s u a lc + + 源程序的兼容程度,提供m f c6 0 版与a t l3 0 版函数库1 。在设计方面,具有新颖的可视化设计工具。在数据库操纵 方面,配有数据库引擎,可以通过s q l 连接或o d b c 访问多种数据库,并具有开发基 于c s 模式的数据库应用程序的能力。 作为一个功能强大的编程工具,b c b 对一些典型的服务器程序,如微软公司的m s o f f i c e 以及f o x b a s e 等进行了很好的封装,而在程序中操控服务器程序时是完全透明 的。对于同一个应用,根据软件自身的特点可能被封装在一个或多个组件里。例如,对 w o r d ,b c b 封装了如下6 个组件;w o r d g l o b a l 、w o r d a p p l i c a t i o n 、w o r d d o c u m e n t 、 w o r d f o n t 、w o r d p a r a g r a p h f o r m a t 、w o r d l e t t e r c o n t e n t 。针对某些特殊的应用,可以单独 使用某个( 些) 组件,但通常需要这些组件合作才能完成服务器的功能。n 止g ,需要研 沈阳丁业人学顺士学位论艾 究封装这些组件时的方法,即类的层次结构,也要分析这些组件乃至类层次中提供f f 3 步l - 部接口,才能从本质上理解并很好地应用这些组件,实现应用程序的调蹦。 1 4 课题研究的主要工作 基于上述分析,本文主要完成了如下几方面的工作: ( 1 】在剖析b c b 对服务器软件的封装方法的基础上,详细阐述b c b 封装的类层次 结构,并总结类以及组件调用的一般性规律。 ( 2 ) 对b c 窟调用服务器的若于方式进行研究和比较,以得出较佳的程序设计方案。 ( 3 1 利用b c b 环境设计一个辅助软件,针对m so f f i c e 办公自动化套件,依据b c b 中封装的组件和调用规范,能够自动生成客户程序中的实现主要服务器功能调用的c h 程序源代码,这些代码可以首接被插入在应用软件中。 ( 4 ) 利用m sw o r d 2 0 0 0 中的v b a 编写教学管理辅助软件系统,在构建计算机教 学辅助系统的时候,将系统根据功能划分为三个模块:学生管理器模块、特殊公式编辑 模块和特殊图形编辑模块。 本文的讨论基于b o r l a n dc h b u i l d e r6 0 版本,并主要以m so f f i c e2 0 0 3 作为服务 器软件实例。 沈阳 二业大学硕士学位论文 2 组件概述 2 1 组件的产生 ( 1 ) 软件业面临的挑战。计算机软件发展的早期,一个应用系统往往是一个单独的 应用程序。随着计算机软件和硬件的不断发展,传统的软件开发方法已不能适应软件的 发展。现代的软件应用既庞大又复杂,软件的开发周期长,维护困难,难以扩展其它功 能。应用软件往往集成了许多功能,而大多数功能难以单独升级或替换,软件的可扩展 性差。应用越复杂,程序也就越庞大,系统开发的难度也就越大。而且,一旦系统的某 个版本形成以后,在下一个版本发布之前,应用程序下会有所变化 8 一。而对于庞大的 程序来说,更新版本的周期很长,在两个版本之问,如果由于操作系统发生了变化,或 硬件平台有了变化,则应用系统就很难适应这样的变化,所以这类单体应用已经不能满 足计算机软硬件的发展需要。 ( 2 ) 传统的解决方案。要解决这些问题,一个很自然的想法就是把一个庞大的应用 程序分割成多个模块,每个模块保持一定的功能独立性。这些模块可以单独开发,调 试。当所有的模块开发完成后,把他们组合到一起就得到了完整的应用系统,最初开发 者使用函数库作为访问个功能模块的方法,这些库通过应用程序接口( a p p l i c a t i o n p r o g r a m m i n gi n t e r f a c e ) 实现其功能。这使用a p i 的传统方法存在很多缺陷,其中包 括:a p i 更新、版本问题、模块之间通信和实现语言的限制。 ( 3 ) 面向对象的程序设计方法。长期以来面向对象程序设计方法是解决传统软件丌 发问题的最好方案。面向对象编程技术让开发者按照现实世界里人们思考问题的模式编 写,面向对象编程语言让开发者更好地利用代码直接表达现实中存在的对象,从面向对 象语言到面向对象设计方法,面向对象的思想已经渗入到计算机软件科学的各个领域。 面向对象编程得到大规模普及,是因为它允许开发者可以在完全不同的工程之间共享代 码,所以重用性是面向对象方法的重要特性。 面向对象编程的软件重用仅限于程序源代码级别的重用,但是这仅仅是一种较低层 次的重用,面向对象方法的重用还存在另一个问题,它一般要求对象程序和使用对象的 沈阳工业大学硕士学位论文 客户程序使用同样的编程语言。比如,如果某个类库是用c 什编写的,那么用其它语言 编写的应用程序基本上不可能重用该代码。 虽然面向对象方法已深入人心,但随着软件科学的不断发展,尤其是近几年 l u t e r n e t i n 价a n e t 的飞速发展,使软件应用置身于更加广阔的环境,从而对应用软件的 跨语言、跨平台和互操作性提出了更高的要求。 ( 4 ) 组件化的软件开发方法。尽管面向对象编程技术非常强大,然而面对更加复杂 的现代分布式软件应用,它显得有点力不从心,于是组件化程序设计思想得到了迅速的 发展。按照组件化程序设计思想,将单独的、庞大而复杂的应用程序分成多个模块,每 个模块保持一定的功能独立性,我们将每个这样的模块称为组件( c o m p o n e n t ) ,这 些组件模块可以运行在同一台机器上,又可以运行在局域网、广域网甚至i n t e m e t 上的 不同机器上。一。个设计良好的应用系统往往被划分成一些组件,这些组件可以单独开 发,单独编译,甚至单独调试和测试。当所有的组件开发完成后,把它们组合到一起就 得到了完整的应用系统。 从软件模型角度来考虑,一个很自然的想法就是把个庞大的应用程序分成多个模 块,每一个模块保持一定的功能独立性,在协同工作时,通过相互之间的接i = _ :i 完成实际 的任务。每一个这样的模块就称为组件。个设计良好的应用系统常被切分成若干个组 件,这些组件可以单独开发,单独编译,甚至单独调试和测试。当所有的组件丌发完成 后,把它们组合在一起就得到了完整的应用系统。当系统的外界软硬件环境发生变化或 者用户的需求有所更改时。并不需要对所有的组件进行修改,而只需改变受影响的组 件,然后重新组合得到新的升级软件。图2 1 体现了这样的升级过程。 图2 1 组件化匣用程序的升级示例 沈阳工业大学钡十学位论文 在图2 1 中,只有组件1 和组件4 受到了影响。于是,在保持原来接口的基础上, 仅对组件l 和组件4 进行了修改并将其与其它组件重新组合得到了新的应用系统版本 二,即在不修改组件2 、3 、5 、6 的情况下完成了软件的一次升级。 组件化软件结构为软件开发和维护带来了很大的好处,但要实现这种组件化结构模 型并非易事,尤其对于复杂的应用,要把应用分成一些独立的组件,而且这种切分还要 尽可能符合系统的应用逻辑和业务要求,这是一门新的组件化程序设计技术。它不同于 传统的结构化程序设计技术,也不同于现在被广泛采用的面向对象程序设计技术。可以 说,组件化程序设计位于这二者之上,它更注重于应用系统的全局,要求从应用系统整 体的角度来考虑。在具体设计某个组件或模块时,仍然需要结构化程序设计和面向对象 程序设计技术作为基础。 2 _ 2 组件的定义 组件技术是近年发展起来的一种优秀的软件重用技术。采用组件开发软件就象搭积 木一样容易,组件是具有某种特定功能的软件模块,它几乎可以完成任何任务。对于组 件的定义,不同的学者有不同的理解。下面是软件行业对组件的一些具有代表性的观 点; ( 1 ) 组件是软件的基本量子。它具有一定的功能、可插用、可维护。 ( 2 ) 组件是软件开发中一个可以替换的单元,它封装了设计决策,并作为一个大单 元部分和其它组件组合起来。 ( 3 ) 组件是具有特定功能的,能够跨越进程边界,实现网络、语言、应用程序、开 发工具和操作系统的“即插即用”的独立对象。 ( 4 ) 组件是指任何可被分离出来,具有标准化的,可重用的公丌接口的软件。 结合以上的观点,我们可以这样给组件下定义,组件也称构件,是指以重用为目的 开发的具有特定的功能,与开发语言无关的,并且具有一定的独立性的,能够独立工作 或同其它构件组合起来协调工作软件模块。 沈阳工业人学硕士学位论文 2 3 组件的特点和优势 2 3 1 组件的特点 组件技术是面向埘象的开发技术的延伸,因此,组件具有面向对象的特征。组什能 够独立地实现其功能,而不依赖与其它外部环境,组件能够被高度的重用。在理想的环 境下,组件的实现与应用与开发语言和平台是无关的。凶此组件具有功能独立性、高度 的u j 重用性、与语言和平台无关性等特点。 2 3 2 组件技术的优势 组件拥有以前软件所无法实现的诸多特点: ( 1 ) 组件位置透明性组件以及使用它的程序能够在阔进程中,不同的进程或不同 的机器上运行。组件对远程组件的处理方式应和对本地组件的处理方式是一样的。 ( 2 ) 与语言无关性组件,必须以二进制的形式的发布,这样就将其实现所用的编程 语言封装起来,做到与语言,丌发环境无关。 ( 3 ) 很好的圳扩充性,由于每个细件都足自主的,只能通过接口和外界通信,当 个组件需要提供新的服务时,可通过增加新的接口来完成,不会影响到使用原接r n 的客 户,而新的用户可咀重新选择新的接口来获得服务。 ( 4 ) 实现不同厂商的软件间的真丁e 的互操作,组件可以来自不同的组件丌放商,独 立地被生产,获得和配置,不同的组件可以方便地措建应用程序。 2 4 微软组件技术的发展 自从8 0 年代面向对象的思想出现以来,从面向对象的程序设计语言到面向对象的 程序设计方法,面向对象的思想迅速发展,渗透到计算机科学的每个领域中来。在过 去的这些年中,对象技术的发展路径是从d d e ( 动态数据交换) 、o l e ( 对蒙链接和 嵌入) 、c o m ( 组件对象模型) 和a c t i v e x 等等1 “” 。在这些技术的发展过程中,始终 遵循者一个思想:软什复用,使应用程序开发的复杂性和成本降低。 2 x 1 面向对象的组件模型- - c o m c o m ,即组件对象模型,是一种以组件作为发布单元的对象模型,其功能足使各 软件组件可以用统一的方式进行交互。c o m 既提供了组件之间进行交互的规范,也提 沈阳工业大学硕士学位论文 供了实现交互的环境,因为组件对象之间交互的规范不依赖于任何特定的语言,故 c o m 也可以是不同语言协作开发的种标准。 可以说,c o m 是在应用程序之间的交互技术o l e 的发展过程中产生的,而进一步 的发展表明,c o m 所定义的组件标准的广泛性远远超过了o l e 所具有的能力。尽管从 一开始c o m 就具有很好的应用前景,也能很好地胜任组件化软件的模型标准,但实际 进展并不顺利,其原因可能在于o l e 技术本身的复杂性。但随着软件的日益庞大和分 布处理的要求,人们逐渐意识到c o m 符合了当前软件业的发展需要,用c o m 进行软 件架构是一种理想的应用方案。这促使c o m 又得到了进“步的发展,并已遍布于 m i c r o s o f t 的各种软件产品中【1 0 - 1 3 1 。 f 1 ) c o m 的面向对象特性。在图2 1 中,我们忽略了组件与组件之间的接口。实际 上,组件之间的接口是组件软件的关键,因为接口是双方进行通信的基础。因此,软件 组件应该遵从统一的标准,在同一软件中的组件必须使用同样的接口标准才能保证组件 之间可以进行通信。至于采用的标准则取决于系统设计者的选择:如果设计软件时不考 虑与其它软件的通信,则可以使用自定义的接口标准,否则应该使用一些公用的标准。 从目前w i n d o w s 系统上的软件使用情况来看,c o m 就是这样一个公用的组件标准。 c o m 不仅提供了组件之间的接口标准,同时也引入了面向对象的思想。在c o m 标准中,对象是一个非常活跃的元素,这使得人们常称其为c o m 对象。组件模块为 c o m 对象提供了活动的空间,c o m 对象以接口的方式提供服务,这种接口即称为 c o m 接口。图2 2 说明了c o m 组件、c o m 对象和c o m 接口三者之脚的关系。 一一 c u m 酬吓 对象一对象二 接口i 接口2接口3 图2 2c o m 组件、c o m 对象和c o m 接口关系 沈阳t 业大学硕+ 学位论文 在w i n d o w s 系统平台上,一个c o m 组件或者是一个d l l ( d y n a m i cl i n k i n g l i b r a r y ,动态连接库) 文件,或者是个e x e ( 可执行程序) 文件。一个组件程序可以包 含多个c o m 对象,并且每个c o m 对象可以实现多个接口。当另外的组件或普通程序 ( 即组件的客户程序) 调用组件的功能时,首先要创建一个c o m 对象或通过其它途径获 得c o m 对象,然后通过该对象所实现的c o m 接口调用它所提供的服务。当所有的服 务结束后,如果客户程序不再需要该c o m 对象,那么应该释放掉对象所占用的资源, 包括对象本身。 由于大多数c o m 组件只包含一个c o m 对象,所以组件和对象的概念很容易混淆, 实际上二者有着本质的不同。 自从c o m 在o l e2 中首次被作为底层技术使用以来,已经经过了不断地完善和充 实。与早期的概念相比,今天的c o m 已经增加了很多新的内容,如对分布式组件对象 模型的扩展以及数据库事务( t r a n s a c t i o n ) 的支持等。 ( 2 ) 对象与接口。c o m 是面向对象的软件模型,而对象是它的基本要素之一。这里 的c o m 对象类似于c _ h 中的对象的概念,是指某个类( c l a s s ) 的一个实例,而类则是一 组相关的数据和功能组合在一起的一个结构。使用对象的应用或另一个对象称为客户, 也称为对象的用户。 接口是一组逻辑上相关的函数集合,其函数也被称为接口成员函数。习惯上接口名 常以“i ”为前缀,如后文中的“i u n k n o w n ”。对象通过接口成员函数为客户提供各种形 式的服务。 在c o m 模型中,对象本身对于客户来说是不可见的,客户请求服务只能通过接口 进行。每一个接口都由一个1 2 8 位的全局唯一标识符( g u i d ,g l o b a l l yu n i q u ei d e n t i f i e r 、 来标识。客户通过g u i d 获得接口的指针,再通过接口指针来调用所对应的成员函数, 至于具体功能则完全由对象的接口内部实现。所以,在c o m 模型中,对象通过接口及 接口中的函数为客户提供服务,而客户只与接口打交道。 接口通常是不变的,只要客户期望的接口在组件对象中还存在,就可以继续使用该 接口所提供的服务。对象可以支持多个接口,而对组件对象的升级也就可以通过增加接 一l l - 沈n i 业大学顿十学位论文 口的方法实现,这样得到的新接口不会影响老接口的使用。新客户可使用新增的接口, 老客户可在不更新代码的情况下继续使用老的接口。 客户标识c o m 对象的方法与接口类似,每个对象也用一个1 2 8 位g u i d 来标识, 称为c l s i d ( c l a s s i d e n f i f i e r ,类标识符或类i o ) ,用c l s i d 标识对象可以保证其在全球范 围内的唯一性。只要系统中含有某类c o m 对象的信息,并包括c o m 对象所在的模块 文件( d l l 或e x e 文件) 以及c o m 对象在代码中的入口点( 实际的过程要复杂得多) ,客 户程序就可以由c l s i d 来创建c o m 对象。 在客户成功地创建对象后,就得到了一个指向对象某个接口的指针。因为c o m 对 象至少实现一个接口,所以客户就可以调用该接口提供的所有服务。根据c o m 规范, 一个c o m 对象如果实现了多个接口则可以从某个接口得到该对象的任意其它接口, 即一旦得到了一个接口指针,就可以得到其它所有的接口。因此,客户在创建了c o m 对象并得到了某个接口指针后,就可以调用该对象所有接口提供的服务。从这一点上 说,对象对于客户来说只是一组接口。 当然,c o m 对象也可以有其自己的状态,f 是这种状态才使客户得知c o m 对象 的存在。如果客户同时拥有两个相同c l s i d 的对象,则两个对象可以有不同的状态。 客户完全不必关心c o m 对象是如何实现的,也不必更新两个对象的状态数据结构之间 有什么关系( 数组或者链表) 。c o m 对象还可以是无状态的,这种c o m 对象以提供功能 服务为主,可以用柬代替传统的a p i 函数接口,使得应用程序编程接口更为有序,组织 层次性更强。 c o m 虽然以c s 模型为基础,但使用上非常灵活。图2 3 中给出了引用示例,其 中的每一个箭头代表了一个客户服务器关系。在图2 3 ( a ) 中,客户与组件对象只是 一个简单的c s 模型结构;在图2 ,3 c o ) ,对象2 既为客户直接提供服务,也为对象1 提供服务,此时对象1 就成了对象2 的客户,对象l 为客户提供服务。在这样的模型 中,对象1 由客户直接创建,而对象2 既可以由客户创建,也可以由对象1 创建:图 2 3 ( c ) 和( d ) 是c o m 中两种重要的对象重用结构,分别称为包容( e o n t a i r m l e n t ) 矛 1 聚合 ( a g g r e g a t i o n ) 。对于客户来说,只知道对象1 的存在,并不知道对象2 的存在,但对象1 在实现某些服务时要调用于对象2 的服务。两者的区别在于,当客户调用由对象2 提供 沈阳工业大学硕士学位论文 的服务时,包容模型中由对象1 调用对象2 的服务,再把结果转给客户,所以客户间接 地调用对象2 的服务,而在聚合模型中的客户虽然并不知道对象2 的存在,但它调用对 象2 的服务是直接进行的。 。 c o m 对象1 l + 叵 ( a ) 简单客户服务器模型( b ) 客户服务器模型的两重结构 c o l d 对象l 1 困 ( c ) c o m 中包容膜型示例( d ) c o m 中聚合模型示例 图2 - 3c o m 使用c s 模型的方法 2 4 ,2 分布式组件对象模型d c o m m i c r o s o r 的分布式c o m ( d c o m ) 扩展了组件对象模型技术( c o m ) ,使其能够 支持在局域网、广域网甚至l n t e m e t 上不同计算机对象之间的通讯。使用d c o m ,你的 应用程序就可以在位置上达到分布性,从而满足你的客户和应用的需求。 d c o m 是世界上领先的组件技术c o m 的无缝扩展,基于c o m 的应用、组件、工 具以及知识转移到标准化的分布式计算领域中来。在做分布式计算时,d c o m 处理网 络协议的低层次的细节问题,d c o m 增强了c o m 的分布处理性能,支持多种通信协 议,也加强了组件通信的安全保斟1 4 11 5 1 。 2 4 3c o m 更高层次的应用c o m + 技术 w i n d o w sd n a ( d i s t r i b u t e di n t e r n e ta p p l i c a t i o na r c h i t e c t u r e ) 是m i c r o s o f t 多年积累 下来的技术精华集合起来而形成一个完整的、多层结构的企业应用总体方案,它使 w i n d o w s 真正成为企业应席平台。c o m + 是d n a 结构的核心,它将成为企业应用或者 分布式应用的基本工具。 沈阳工业大学硕士学位论文 c o m + 是c o l v l 的新发展,是c o m 更高层次上的应用。c o m + 的底层结构仍然 以c o m 为基础,它几乎包容了c o m 的所有内容。通常认为,c o m + 是c o m 、 d c o m 和m 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 ) 的集成( 关系图如图24 ) ,c o m + 综合了 这些技术要素。同时,c o m 十倡导了一种新的概念,它把c o m 组件软件提升到应用层 而不再是底层的软件结构,它通过操作系统的各种支持,使组件对象模型建立在应用层 上,把所有组件的底层细节留给操作系统 1 。 2 , 4c o m + 组成结构幽 c o m + 标志着m i c r o s o f l 的组件技术达到了一个新的高度,它不再局限于一一台机器 卜的桌面系统,它把目标指向了更为广阔的企业内部网,甚至i n t e m e t 国际互连网络。 c o m + 与多层结构模型以及w i n d o w s 操作系统为企业应用或w e b 应用提供了一套完整 的解决方案。 2 5 其他组件技术 2 5 1 公共对象请求中介结构c o r b a c o r b a ( c o m m o no b j e c t r e q u e s t b r o k e r a r c h i t e c t u r e ) 最初是o m g f o b j e c t m a n a g e m e n tg r o u p ,对象管理组织) 组织在1 9 9 0 年l1 月出版的对象管理体系指南 中提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议, 以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。c o r b a 沈阳丁业大学硕十学位论文 可以跨各种操作平台,包括w i n d o w so s ,甚至支持d o s 操作系统,c o r b a 跨多种语 言,支持c h ,s m a l l t a l k ,j a v a ,c o b o l

温馨提示

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

评论

0/150

提交评论