




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 b s 模式的应用系统能够弥补c s 模式系统下的缺陷,在企业应用系统由c s 模式 向b s 模式转变的过程中,如何使现有的软件资源得到复用,从而快速、高效地开发 出b s 模式的应用系统,成为国内外共同关注的问题。 本文基于上述需求,研究了软件复用技术,对c s 向b s 模式的迁移,提出了一 种基于a c t i v e f o r m 与i n t r a w e b 技术的系统迁移方法。对现有c s 模式的遗留系统进 行分析,在原有c s 结构源代码的基础上快捷高效地开发出b s 结构,实现系统由c s 模式向b s 模式的迁移,并研究了迁移中的关键技术。将所提出的转换方法应用在开 发项目企业公文工作流管理系统中,实现了系统由c s 模式向b s 模式的迁移, 成功达到了预期的目的。 关键词:a c tiv e f o r m in t r a w e bc sb s 软件复用 a b s t r a c t a st h ea p p l i c a t i o ns y s t e m sb a s e db sp a t t e mc a l lg e to v e rt h ef l a wo fc sp a r e r n ,i th a s b e c o m et h eh o ts p o ta n di s s u ea 打a c t i n gm o r ea n dm o r ea t t e n t i o na n dr e s e a r c hh o wt om a k e f u l lu s eo fe x i s t i n gs o f t w a r er e s o u r c e sa n dd e v e l o pe f f e c t i v eb sm o d ea p p l i c a t i o ns y s t e m r a p i d l yo nt h ep r o c e s so ft r a n s a t i o nf r o mc sm o d et ob sm o d ei ne n t e r p r i c em a n a g e m e n t s y s t e m n et h e s i sd i s c u s s e ds e v e r a ld e v e l o p m e n tm o d e sa n da n a l y z e dn o w a d a y ss o f t w a r e r e p e t i t i o nt e c h n o l o g yb a s e do nt h ed e m a n d i ta n a l y z e dt h ec sf o r m e rs y s t e m ,w i t ht h eu s e o fs o f t w a r er e p e t i t i o nt e c h n o l o g yb a s e do l la c t i v exa n di n t r a w e bt e c h n o l o g y w i t hh i g h l y e f f e c t i v ed e v e l o p st h eb ss t r u c t u r ei nt h eo r i g i n a lc ss t r u c t u r es o u r c ec o d ef o u n d a t i o n a n dt h et r a n s f e r a n c eh a sp r o c e s s e df r o mc st ob sm o d e t h ep a p e rd i s c u s s e dt h ek e yt e c h o nt h a t 1 1 1 em e n t i o n e dt e c hi sa p p l i e di n t ot h ed e v e l o p m e n tp r o p j e c t w o r kf l o wm a n a g e m e n t s y s t e mo fe n t e r p r i s ed o c u m e n ta n dr e a l i z et h et r a n s f e r e n c ef r o mc st ob sm o d e ,w h i c h h a s 百v t h es a t i s e f i e dr e s u l t s k e y w o r d s :a c f i v e f o r m i n t r a w e bc l i e n t s e r v e rb r e w e r s e r v e r s o f t w a r er e p e t i t i o n 长春理工大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,基于a c t i v e f o r m 与 i n t r a w e b 技术的c s 到b s 模式转换的研究是本人在指导教师的指 导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容 外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标 明。本人完全意识到本声明的法律结果由本人承担。 作者签名:盛遗g 缘呈! j 至f 且月堑日 长春理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“长春理工大学硕士、博士 学位论文版权使用规定”,同意长春理工大学保留并向国家有关部门或 机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人 授权长春理工大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位 论文。 作者签名:j 主! 塑i 塑翌匠年丛月羔日 指导导师签名;垄蓟型2 年勘丝日 第一章绪论 随着计算机软、硬件技术的迅猛发展,计算机系统经历了一个从简单到复杂、从 低级到高级的过程。计算模式也经历了主机批处理模式、哑终端主机模式、以网络为 中心模式、c s 模式、b s 模式。c s 结构,即大家所熟知的客户机和服务器结构,它 利用服务器端和客户端硬件环境的优势,将任务合理分配到c l i e n t 端和s e r v e r 端来 实现,降低了系统的通讯开销。目前大多数应用软件系统都是c l i e n t s e r v e r 模式的 两层结构,随着企业应用的规模越来越大,应用程序的复杂程度不断提高,c s 模式的 缺点不断被暴露出来,而且越来越明显。集中表现在:客户端的升级和维护比较困难, 这是因为c s 结构的每一个客户端都必须安装和配置。为了解决上述c s 架构带来的 一系列问题,近几年来,随着w e b 技术的迅速发展,出现了新一代的计算模式一b s 模式,b s 模式的应用系统凭借自身的优势得到了长足的发展。 1 1 研究目的及意义 出于信息共享与效率提高的需要,用于企业内部的c 1 l e n t s e r v e r 结构的应用程 序已逐渐不能满足人们的需要。越来越多的b r o w s e r s e r v e r 结构的应用程序被提了出 来。b s 模型简化了c s 中的客户端,客户端只需装上操作系统、网络协议软件及浏览 器。而服务器端则集中了所有的应用逻辑、开发、维护等几乎所有工作也都集中在服 务器端。由于在b s 结构下,只需要开发服务器端应用程序,无需开发客户端应用程 序,服务器端的应用程序可以通过w e b 浏览器在客户端运行。 由于国内企业对公文办公系统的特殊性要求,一些通用的公文办公系统要能胜任 公文处理要求还有一定距离,对企业来说,确实需要一套能提高办公效率的系统。怎 样才能更有效的生成各种复杂公文和公文流程。随着数据量的增大,怎样保证系统通 讯性能。能不能采用多种技术的组合来保证系统的稳定可靠,使得系统易维护、可扩 展。 由此,本文中的设计具有如下的研究意义: 1 在公文处理过程中浏览器要频繁处理用户交互信息并且需要进行复杂公文的绘 制,在现有的几种技术中,a c t i v e f o r m 是一种比较成熟稳定的实现方案。 2 企业用户办公过程中也不愿出现经常性的页面切换,a c t i v e f o r m 可以满足这个 要求。a c t i v e f o r m 实现工作流管理系统的b r o s e r 端程序。这样用户就可以在浏览器中 完成公文的日常处理,功能都在a c t i v e f o r m 中完成,因此无窗口切换。 3 若能根据具体应用的特征,从功能和结构上对客户端应用程序进行合理的划分, 让其与应用服务器密切相关的部分采用i n t r a w e b 技术实现运行在w e b 服务器端,而与 客户端资源访问密切相关的部分采用a c t i v e f o r m 技术实现运行在客户机。两种技术混 合应用以达到充分发挥各自的长处、克服各自的不足的目的。 1 2 国内外研究的发展及现状 国内已经有了能够成功实现c s 结构软件向b s 结构软件过渡的产品。许多学者 对这种技术进行了研究,提出了技术方法,但这些方法中有些只是针对某一程序设计语 言( 如p o w e r b u i l d e r 、d e l p h i ) 提出的,有些尚属于理论研究阶段,某些技术未完全成熟。 本文提出的应用a c t i v e x 技术的c s 向b s 的迁移方法,通用性强,技术成熟且难度小, 特别是在混合语言编程中具有较强的实用性。 国外软件市场,大多数大型企业管理软件已经是b s 结构,或者正处于c s 结构 向b s 结构的过渡时期。国内的大多数软件企业也已经开始向b s 结构转变。b s 结构 的大型管理软件势必在将来的几年内占据管理软件领域的主导地位。 对公文工作流的研究可以回溯到上个世纪七十年代,在当前,研究领域趋向于认 为p e t r i 网是所有流程定义语言之母。工作流模式比较了大量的工作流管理系统并以 p e t r i 网的术语表述了通用流程建模概念。工作流标准还处于制定阶段,现在存在大量 相互重叠的规范,导致规范如此之多而同时每个规范的应用又很有限的原因是,在工 作流基础概念上大家达成的共识很少。工作流是最容易让你感到心烦的话题,因为工 作流本身的概念会和其他相关概念和技术混淆在一起。 1 3 论文的主要工作及结构 1 3 1 本文的主要工作 很多企业也推出了自己的公文工作流产品,大多基于其他平台之上,由于本身这 些平台的通用性,因此基于这些平台的系统对于对公文有特殊要求的企业也显得无能 为力。根据企业的具体需求,提出了一种基于a c t i v e f o r m 与i n t r a w e b 技术的c s 到 b s 模式转换的方法。 由此本文的主要研究内容如下: 1 _ 阐述了c s 模式向b s 模式转换的相关基本概念。这一部分是实现c s 模式向 b s 模式转换的基础,将要实现的工作如下:介绍面向对象软件工程、c o m 组件、a c t i v e x 控件、i n t r a w e b 技术。由此提出了一种c s 模式向b s 模式转换的解决方案。 2 c s 模式向b s 模式转换的研究。这一部分是实现c s 模式向b s 模式转换的关 键技术,将要实现的工作如下:阐述了软件复用技术、a c t i v e f o t m 技术、探讨了c s 模式向b s 模式转换的方法。 3 企业公文工作流管理系统的设计与实现。这一部分主要是利用a c t i v e f o r m 和 i n t r a w e b 技术实现了c s 模式向b s 模式的转换,主要工作如下:首先对原c s 模式遗 留系统进行分析,得出系统结构图,在此基础上得出三层模型。其次进行软件重构,经过 对遗留系统的分析,得出用户信息处理子系统、公文处理子系统。然后通过系统整合将 a c t i v e f o r m 开发的功能模块潜入到t n t r a w e b 的w e b 开发框架中,实现了c s 模式向b s 模式的快捷转换。最后系统发布。 2 1 3 2 本文的结构 依据上一节中所述的内容,按照要实现部分的先后顺序可将本文分为五章。 第一章绪论:主要介绍了本课题的国内外研究现状及意义、课题来源及主要研究 内容等。 第二章模式转换的关键技术:介绍了面向对象软件工程、a c t i v ex 有关的基本概 念、a c t i v ex 控件的创建、a c t i v ex 控件的调用以及c o m 组件、c o m 对象、c o m 接口。 介绍了i n t r a w e b 技术:介绍了i n t r a w e b 的技术特点、工作原理、及开发框架体系结构、 探讨并提出了模式转换方案。 第三章c s 模式向b s 模式转换方法探讨:利用基于a c t i v e f o r m 控件的软件复用 技术、通过i n t r a w e b 提供的w e b 框架和a c t i v e f o r m 控件实现软件复用,在此基础上, 对c s 模式向b s 模式转换方法进行探讨。 第四章c s 模式向b s 模式转换的设计与实现:针对上述转换方法,设计并实现了 将c s 模式的企业公文工作流管理系统部分转换为b s 模式。 第五章为结束语。在结束语中对本文所做工作进行了总结,指出了对该研究工作 的未来展望等。 第二章模式转换的关键技术 本章描述了面向对象软件工程,着重介绍了c o m 组件、c o m 对象、c o m 接口。这些 是a c t i v ex 技术的基础,接着介绍了a c t i v ex 技术a c t i v ex 控件、创建a c t i v ex 控件、调用a c t i v ex 控件以及对i n t r a w e b 进行技术探讨一i n t r a w e b 的工作原理、开 发模式等。最后提出了一个c s 模式向b s 模式转换的方案。 2 1 面向对象软件工程 面向对象软件工程“1 也称为面向对象的开发方法。是指导面向对象的程序设计进行 软件开发的规范。面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维 方式,使开发软件的方法与过程接近人类认识世界解决问题的方法与过程,也就是使 描述问题的问题空间( 也称问题域) 与实现解法的解空间( 也称求解域) 在结构上取得一 致。面向对象方法所提供的“对象”概念,是让软件开发者自己定义或选取解空间对 象,然后把软件系统作为一系列离散的解空间对象的集合。面向对象方法采用“喷泉” 软件生命周期,将软件开发工程划分为概念模型分析、系统设计、对象实现和系统组 装等五个阶段,允许自低向上的从已定义的基本对象类出发,逐步构造新的对象类, 因此具有良好的应变能力。“喷泉”模型使得生命周期内各阶段过渡比较平滑,而且相 互间能实现可逆互操作。由于对象的独立封装,模块的可构造性、可扩充性、可重用 性也大大加强,面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应 用的要求。软件工程模型如图2 1 所示: 困 自然语言回 固 面向对象r i 石f 一 编程语言亡安 i o o t l 困 图2 1 面向对象的软件工程方法 u m l 是面向对象技术的支持工具。是一种可视化语言。面向对象建模方法的一大优 势就是广泛的利用可视化元素描述模型。符号的表示法定义了规范的可视化元素,并 为开发者使用这些可视化元素进行系统建模提供了标准,u m l 是一组有特定意义的图形 符号。 u m l 包括:类图、对象图、用例图、顺序图、协作图、状态图、活动图、构件图、 实施图9 种视图。 类图展现了一组对象、接口、协作和窗口之间的关系。在面向对象系统的建模中 4 所建立的最常见的图就是类图,类图给出系统的静态设计视图。 对象图展现了一组对象以及它们之间的关系。对象图描述了在类图中所建立的事 物的实例的静态映射。和类图一样,这些图给出系统的静态设计视图或静态进程视图, 但它们是从真实的或原型案例角度建立的。 用例图展现了一组用例、角色( 一种特殊的类) 及其它们之间的关系。用例图给出 系统的静态用例视图,这些图对于系统的行为组织和建模是非常重要的。 顺序图和防作图都是交互图。交互图展现了一种交互,它由一组对象和它们之间 的关系组成,包括在它们之间可能发送的消息。 顺序图是一种强调消息的时间顺序的交互图。协作图强调收发消息的对象的结构 组织。顺序图和防作图是同构的,这意味着它们可以相互转换。 状态图展现了一个状态机,它由状态、转换、事件和活动组成。状态图专注于系 统的动态视图。它对于接口、类或协作的行为建模尤为重要,而且它强调对象行为的 事件顺序,这非常有助于对反应式系统建模。 活动图是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。 活动图专注于系统的动态视图。它强调对象间的控制流程,对于系统的功能建模特别 重要。 构件图展现了一组构件之间的组织和依赖。构件图专注于系统的静态实现视图。 它与类图相关,通常把构件映射成一个或多个类、接口或协作。 实施图展现了对运行时处理节点以及其中的构件的配置。实施图给出了体系结构 的静态实施视图。它与构件图相关,通常一个节点包含一个或多个构件。 表2 - 1u m l 建模体系 模式类型 模型图种类建模机制 用例模型用例图静态建模 静态模型类图对象图静态建模 行为模型状态图活动图动态建模 交互模型顺序图协作图动态建模 实现模型构件图实施图静态建模 对于面向对象编程技术主要有: 1 对象 一个对象是一个数据类型。对象就象记录一样,是一种数据结构。按最简单的理 解,我们可以将对象理解成一个记录。但实际上,对象是一种定义不确切的术语,它 常用来定义抽象的事务,是构成应用程序的项目,其内涵远比记录要丰富。在本文中, 对象可被理解为可视化部件如按钮、标签、表等。 了解对象,最关键的是掌握对象的特性。个对象,其最突出的特征有三个:封 装性、继承性、多态性。 2 对象的封装性 对对象最基本的理解是把数据和代码组合在同一个结构中,这就是对象的封装特 性。将对象的数据域封闭在对象的内部,使得外部程序必需而且只能使用正确的方法 才能对要读写的数据域进行访问。封装性意味着数据和代码一起出现在同一结构中, 如果需要的话,可以在数据周围砌上“围墙”,只有用对象类的方法才能在“围墙”上 打开缺口。 3 对象的继承性 继承性的含义直接而且显然。它是指把一个新的对象定义成为已存在对象的后代。 新对象继承了旧类的一切东西。在往新对象中添加任何新内容以前,父类的每一个字 段和方法都已存在于子类中,父类是刨建予类的基石。 4 对象的多态性 多态性是在对象体系中把设想和实现分开的手段。如果说继承性是系统的布局手 段,多态性就是其功能实现的方法。多态性意味着某种概括的动作可以由特定的方式 来实现,这取决于执行该动作的对象。多态性允许以类似的方式处理类体系中类似的 对象。根据特定的任务,一个应用程序被分解成许多对象,多态性把高级设计处理的 设想如新对象的创建、对象在屏幕上的重显、程序运行的其它抽象描述等,留给知道 该如何完美的处理它们的对象去实现。 2 2c o m 概述 组件对象模型( c o m p o n e n to b j e c tm o d e l 。c o m ) 不仅定义了组件程序之间进行交互 的标准,也提供了组件程序运行所需的环境。在c o m 标准中,一个组件程序也被称为 一个模块,它可以是一个动态链接库( d y n a m i cl i n kl i b r a r y ,d l l ) ,被称作进程内组 件( i n p r o c e s sc o m p o n e n t ) 。也可以是一个可执行程序( 即e x e 程序) ,被称作进程外 组件( o u t - o f - p r o c e s sc o m p o n e n t ) 。一个组件程序可以包含一个或多个组件对象,因 为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 对象和c o m 接口三者之间的关系可由图2 2 来说明。 c o m 组件 接口1 接e l2 占 接口3 图2 2c 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 对象,那么它应该释放c o m 对象所占有的资源,包括对象自身。 2 2 1c o m 组件 c o m 所提供的服务组件对象在实现时有两种进程模型:分别是进程内对象和进程外 对象,如果是进程内对象,则对象在客户进程空间中运行。如果是进程外对象,则对 象运行在同一机器上的另一个进程空间之中或者远程机器的进程空间之中,分别介绍 如下: c o m 组件可以分布在同一个进程内,以d l l ( 动态链接库) 文件形式提供,被称为进 程内组件,此时组件和客户端无需任何中介组件就能相互联系,客户进程直接调用组 件中对象的方法。c o m 组件也可以在不同的进程间,此时它以e x e ( 可执行程序) 文件 形式提供,被称为进程间组件,当一个客户进程需要和另一个进程中的组件通讯时, 它不能直接调用该进程,而需要遵循操作系统对进程间通讯所做的规定。c o m 使得这种 通讯能够以一种完全透明的方式进行:它截取从客户进程来的调用并将其传送到另一 进程中的组件。当c o m 组件位于不同的机器上时,它可以以d l l ( 动态链接库) 形式提供, 也可以e x e ( 可执行程序) 文件提供。不论是进程内组件还是进程外组件,都具有下述几 个特点:c o m 组件是软件的基本单元:它具有一定的功能,可插用,同时又是可维护的。 c o m 组件是软件开发中一个可替换的软件单元,它封装了设计决策,并作为一个大单元 的一部分和其它组件结合起来。c o m 组件是具有特定功能的,能够跨越进程的边界,实 现网络、语言、应用程序、开发工具和操作系统的“即插即用”的独立的对象。c o m 组件是指任何可被分离出来,具有标准化的、可重用的公开接口软件。 简单来说,c o m 组件可以在二进制级别上进行集成和重用,组件与环境和上下文无 关。c o m 组件的这些特点,使得它在组件化程序设计以及软件重用方面获得了广泛的应 用。 使用c o m 组件有如下一些优点: 有利于程序的模块化。当需要对应用程序进行修改时,只需要修改其中的一个模 块,而不是整个应用程序。我们可以提供d l l 的不同版本,代替当前的d l l 。共享代 码、资源和数据。使用c o m 组件可以实现代码共享。某一个具体语言中的代码也可以 共享,但只限于该语言内部,而c o m 组件可以被所有的w i n d o w s 应用程序调用。节省 内存。如果不同的程序使用相同的c o m 对象,只需将c o m 在内存中装载一次。适合于 复杂的应用程序开发。当开发一个庞大而且需不断更新应用程序时,可以将其划分为 多个执行部分进行c o m 封装,这样我们只对需要改变的部分进行操作,而不是对整个 大执行文件进行改动。 2 2 2c o m 对象 c o m 对象类似于c + + 中的对象,是某个类的一个实例。c o m 接口是一组逻辑上相关 7 的函数的集合,其函数被称为接口成员函数。c o m 对象通过接口为客户提供各种形式的 服务。由于c o m 对象对于客户是透明的,因此必须用一种命名规则对c o m 对象命名。 m i c r o s o f t 采用c l s i d 和i i d 对c o m 对象和接口进行标识。c l s i d 和l i d 是一个1 2 8 位 全局唯标识符g u i d ,g u i d 的结构如下: t y p e d e fs t r u c t _ g u i d u n s i g n e dl o n gd a t a l : u n s i g n e ds h o r td a t a 2 : u n s i g n e ds h o r td a t a 3 : u n s i g n e dc h a rd a t a 4 8 : 1 g u i d 创建者负责生成一个g u i d 来标识对象类或接口的工作。在运行阶段,程序可以通 过a p i 函数c o c r e a t e g u i d 来完成这项工作,返回一个新的g u i d 。在开发阶段可以通过 实用程序g u i d g e n e x e 来获得,该程序在内部调用c o c r e a t g u i d ( ) ,并将得到的g u i d 放到剪贴板中。 2 2 3c o m 接口 c 酬接口。1 提供了两个不同c o m 对象间的一种连接。对由c o m 组件构成的应用程序 而言,接口比组件本身更重要。使用组件来构造应用程序的最大优点在于可以复用应 用程序的结构。如果接口设计得好,可以得到可复用性极高的结构。c o b l 接口可以保护 系统免受外界变化的影响。接口还可以使客户用同样的方式来处理不同的组件,这种 能力称为接口的多态。 接口是一个对象向外暴露其功能的方式。从技术上来讲,接口是包含了一组函数 的数据结构,通过这种数据结构,客户代码可以调用组件对象的功能,接口定义了一 组成员函数,这组成员函数是组件对象暴露出来的所有信息,客户程序利用这些函数 获得组件对象的服务。 c o m 规范使用接口描述语言i d l ( i n t e r f a c ed e s c r i p t i o nl a n g u a g e ) 来描述c o m 接 口。i d l 不仅用于定义c o m 接口,同时还定义了一些常用的数据类型,另外也可以用于 描述自定义的数据结构。 l u n k n o w n 接口是c o m 中一个非常重要的接口,也是每一个c o m 对象中必须实现的 接口,c o m 中所有的接口都是从特定的接口l u n k n o w n 中派生的,c o m 程序除自己的方 法外,还有三个l u n k n o w n 的方法。l u n k n o w n 的i d l 表示如下: i n t e r f a c el u n k n o w n ( v i r t u a l h r e s u l tq u e r y i n t e r f a c e ( i n r e p i i di i d 。 o u t v o i d * * p p v o b j e c t ) = 0 : u l o n ga d d r e f o = 0 : u l o n gr e l e a s e0 = 0 o u e r y i n t e r f a c e ( i n j r e f i i di i d ) o u t j v o i d 料p p v o b j e c t ) :用于获取组件的不 同接口。其中i i d 是一个g u i d ,表明所要求的接口:而返回的是指向所请求接口指针的 地址。 a d d r e f ( ) 和r e l e a s e 0 :用来辅助组件决定何时可以撤销组件。当引用计数为0 时, 组件会自动撤销对象。当客户每产生一个新的对象指针时,应调用a d d r e f ( ) 一次:当客 户每次销毁一个对象时,应调用r e l e a s e 0 一次。由于c o m 接口是外晃调用c o m 对象服 务的唯一途径,因此,为了确保c o m 接口定义与实现的一致性和正确性,c o m 规范为 c o m 接口制定了一系列的规则,这些规则具体描述如下:i u n k n o w n 接口具有唯一性,对 于同一个对象的不同接口指针查询得到的i u n k n o w n 接口必须完全相同。也就是说,每 个对象i u n k n o w n 接口指针是唯一的。接口具有自反性,对于一个接口查询其自身应该 总是成功的。接口具有对称性,如果从一个接口指针查询到另一个界面指针,则从第 二个界面指针再回到第一个界面指针也必定是成功的。接口具有传递性,如果从第一 个接口指针查询到第二个接口指针,从第二个接口指针可以查询到第三个接口指针, 则从第三个接口指针一定可以查询到第一个接口指针。接口查询具有时间无关性,如 果在某一个时刻可以查询到某一个接口指针,则以后任何时刻都可以查询得到该接口 的指针。 2 3a c t iv ox 技术概述 1 9 9 6 年,微软提出了a c t i v ex 。1 的概念,其核心技术是建立在c o m 或d i s t r i b u t e d c o m ( 两者是同义词,经常混合使用) 基础上和o l e 技术“1 的基础上,是对它们的继承和 发展。a c t i v ex 技术不仅能够在i n t e r n e t 网上使用,而且更广泛地应用在各种各样的 程序语言和多种面向对象的开发工具上。d e l p h i 作为非常成熟的面向对象的开发工具, 不仅支持a c t i v ex 技术,而且对a c t i v ex 技术的应用非常的直接和方便。其应用主 要在以下两个方面:一是a c t i v ex 控件的创建和使用,二是进行w e b 应用程序的开发。 软件部件,或称软件构件、软件组件,是具有特殊功能的软件模块,这种软件模 块要遵守一定的接口规范,提供实现互操作进而完成软件系统的集成。部件软件技术 则是集成软件部件从而组成应用系统的技术。m i c r o s o f t 的c o m d c o m 是目前被较为普 遍接收的标准,它提供了组件软件技术的底层支持,可用于创建可重复使用的二进制 部件,而不是可重复使用的源代码。 部件对象模型c o m ( c o m p o n e n to b j e c tm o d e l ) 规定了在单个应用程序中应用程序之 间对象的作用方式。每个部件对象都要遵从这种模型来实现和使用支持对象间相互作 用的接口。d c o m 是c o m 的网络技术改进,它把部件软件应用推上了i n t e r n e t ,其主 要特点如下: 支持多种通信协议,可以使异种网络协议的部件交互通信。使j a v aa p p l e t s 能够 9 和i n t e r n e t 上的其他部件直接通信。d c o m 构件由许多语言开发如c 、c + + 、b a s i c 、p a s c a l 等。保障部件通信安全。底层通信技术依然基于d c e 、r p c 。 a c t i v ex 是建立在d c o m 之上的应用技术,包括对w i n 3 2a p i 和c o m 一系列扩充和 增强,使开发人员能够把计算机桌面环境与构成i n t e r n e t 及其大量资源的环境集成起 来,同时保护在w i n d o w s 技术中的现有开发投资。作为对o l e 的补充,主要特点是支 持i n t e r n e t 。a c t i v ex 是一个开发技术的集合,主要包括如下几个部分: i 针对i n t e r n e t 的a c t i v ex 控件:可在使用j a v a a p p l e t s 的许多地方使用a c t i v e x 控件,a c t i v e x 控件是对0 c x 的改进。 2 a c t i v ex 的脚本功能:利用它可在程序中加人脚本或o l e 自动化功能,使多个存 在于w e b 页面中的控件协同工作。 3 a c t i v ex 文档,是基于被称为d o co b j e c t 的一种更高层的抽象。d o co b j e c t 是对o l e 文档的一些扩展,它把w e b 浏览器作为浏览复合文档的容器。 4 i n t e r n e t 控制包,可使用这些方便、简单、易用的a c t i v ex 控件为应用程序增 加i n t e r n e t 访问功能。 5 a c t i v ex 服务器体系结构。 6 a c t i v ex 提供了和j a v a 的集成。 2 3 1a c t i v ex 控件 a c t i v ex 构件的设计目标是把编程可能使用的程序段进行封装,可视化处理,提 供通用接口,让软件开发人员能够方便地调用,而且可在由多个厂家提供的多种开发 平台中使用它。它包括控制、文档、脚本3 种最常用的技术,同时也包括j a v a 虚拟机 和服务器框架,a c t i v ex 控件是被实现作为进程间服务器d l l ,并支持o l ea u t o m a t i o n 、 可视化编辑与i n s i d e o u t ( 从里到外) 激活的复合文档对象。它可以被多种开发平台透明 调用,实现了软件重用,方便了程序开发人员。在多种平台上( 如v b ,c + + ,d e l p h i 等) 可以访问这些对象的属性、对象方法和事件,可以编辑对象属性,也可以把某一平台 下的组件转换为a c t i v e x 构件。 a c t i v ex 控件基于d l l ,这意味着当使用它们时,需要将其代码( o c x 文件) 与使用 它们的应用程序一起分配。在d e l p h i 中,组件的代码可以静态地与可执行文件链接, 或使用运行时组件包动态地与它链接。a c t i v ex 控件具有独立的文件,允许不同的应 用程序共享,这通常与d l l 一样。如果两个应用程序使用相同的控件( 或运行组件包) , 在硬盘上只需要一份拷贝,在内存中也只需要一份拷贝。这就意味着使用a c t i v ex 控 件的应用程序更快速、高效。d e l p h i 组件的数量比a c t i v ex 控件要少,而且d e l p h i 组件只能在d e l p h i 与b o r l a n dc + + 中使用它。而a c t i v ex 控件,可以在多种平台下使 用。 2 3 2 创建a c t i v ex 控件 创建a c t i v ex 控件的关键是设计并测试好自己的组件。同时应该值得注意的是 a c t i v ex 技术仅限于w i n d o w s 视窗( w i n d o w sx 和w i n d o w sn t ) ,而制作的自定义组件 1 0 必须继承于t w i n c o n t r o l 类或其派生类,这一点也是最容易忽视和遗漏的。下面将一 个继承于t c u s t o m c o n t r o l 类的自定义组件t m y l a b e l ( d e l p h i 自带的t l a b e l 和t e d i t 组件的集成) 转化为a c t i v ex 控件。 ( 1 ) 关闭d e l p h i 中打开的所有文件,然后选择“f i l e n e w ”菜单,选中a c t i v ex 选项卡,双击a c t i v exc o n t r o l 图标,打开a c t i v ex 控件向导( a c t i v ex c o n t r o l w i z a r d ) 。 ( 2 ) 从v c lc l a s sn a m e 的下拉式菜单中选中要转换的组t m y l a b e l ,d e l p h i 将自动 完成其余部分的内容,在通常情况a c t i v ex 控件向导下最好采用这些缺省名称。其作 用分别是: * i n c l u d ed e s i g n - t i m el i c e n s e :如果选中该选项,它将创建一个格式为1 i c 的文 件( 如例子中生成的m y l a b e l x c o n t r o l l 1 i c 文件) ,它是a c t i v e x 控件的许可证文件, 必须存在,否则生成的控件就无法正常工作。 * i n c l u d ev e r s i o ni n f o r m a t i o n :该项先把版本信息添加到该控件的t l b ( t h e a c t i v e xl i b r a r y ) 文件中,用户可以看到该信息。如果要想输入版本信息,那么选择 “p r o j e c t o p t i o n ”,并选择v e r s i o n i n f o 选项卡。 2 3 3 调用a c t i v ex 控件 d e l p h i 带有一些预安装的a c t i v ex 控件,而且可以方便地买到并安装第三方的 a c t i v ex 控件,如果你的机器中安装了其他软件开发平台,那么这些软件本身预安装 的a c t i v ex 控件也可以被d e l p h i 使用。d e l p h i 安装a c t i v ex 控件的过程比较简单。 在w i n d o w s 中注册的a c t i r ex 控件库列表。如果我们选择一个控件库,d e l p h i 将读取 它的类型库,列出它的控件,并为它的单元建议一个文件名,如果信息正确,只需按 动c r e a t eu n i t 按钮,就可以显示由d e l p h i 为a c t i v ex 控件生成的p a s c a l 源代码文 件。按动i n s t a l l 按钮,可以将这个新单元添加到d e l p h i 组件包中,以及组件面板上。 d e l p h i 会生成o b j e c tp a s c a l 源代码文件,它包括了库中每个a c t i v ex 控件的类定义。 基本的思想是,d e l p h i 声明一个接口,然后继承t o l e c o n t r o l 类,这个新类,包 含了所谓局部专用对象的接口对象,结果,新类与a c t i v ex 控件本身具有相同的属性、 对象方法与事件。在d e l p h i 下还可以自己编写a c t i v ex 控件,一般是把d e l p h i 中的 组件库v c l 改造成a c t i v ex 控件,可以使用a c t i v e xc o n t r o lw i z a r d 来实现这一目 的。还可以用e d i t 菜单下的a d dt oi n t e r f a c e 命令给a c t i v ex 构件添加新的属性。 这些属性会自动添加到控件的类型库( t l b ) 文件、它的输人库单元以及它的执行单元 中。 2 4i n t r a w e b 技术概述 i n t r a w e b 是一个创建基于w e b 应用程序。1 的具有革命性意义的新方法,在早期版 本的i n t r a w e b 的用最简单的方法创建w e b 解决方案的基础上,i n t r a w e b 扩展了它的技 术,提供了一个杰出的工具,用来高速、简易地创i n t e r n e t ,i n t r a n e t 以及e x t r a n e t 应用程序。许多基于w e b 的开发工具都要求开发者有c g i 脚本的知识,同时也要求开 发者要有状态跟踪以及复杂的客户端配置。i n t r a w e b 避免了这些。通过使用d e l p h i 中的组件,简单的创建一个应用程序项目,之后,注册到服务器上,客户就可以利用 兼容h t m l4 的任何一种浏览器来访问这个应用程序。这些浏览器可以包括最新版的 n e t s c a p e 以及i n t e r n e te x p l o e r 等等。i n t r a w e b 开发的w e b 应用程序在这些浏览器 上都通过了测试。利用i n t r a w e b 开发,不需要写任何的h t m l 、c g i 或是j a v a s c r i p t 代码,所有的代码都在d e l p h i 中完成了。为了让应用程序有更好的灵活性,可以利用 i n t r a w e b 开发的应用程序也可以以独立的可执行程序的方式像其它的桌面应用程序一 样来运行,也提供了相应的调试能力。 i n t r a w e b 很像是普通的应用程序,唯一不同的是它的用户界面是用浏览器代替了 通常的w i n d o w s 界面,当把应用程序安装到w e b 服务器上之后,用户马上就可以通过 它的网络地址来开启它,应用程序会马上建立使用者的用户信息,这样就可以避免丢 失用户信息或者与其它的使用者发生使用混乱。每一个用户的使用信息都会由程序自 动刨建和跟踪,并且对于开发者来说,是透明的。其它的开发语言,像i s a p i ,c g i ,a s p 处理这些问题的能力都不是很好。i n t r a w e b 设计成一套能创建基于w e b 的各种类型应 用程序的开发工具,不论是一个简单的数据输入界面、投票或是更复杂的让已访问过 的客户能够顺利登录的程序等,i n t r a w e b 都能胜任。 2 4 1i n t r a w e b 技术特点 i n t r a w e b 是一组软件工具,主要用来简化服务器端程序开发。使用i n t r a w e b 开发 网络服务器端程序和开发传统的g u i 应用程序草本相似,并且可以编写所有的商务逻 辑,必要时会自动将程序元素转换成脚本或h t m l 。b o r l a n d 公司从d e l p h i 7 以上的版 本中都捆绑了i n t r a w e b 组件,其技术特点是: 1 能够使d e l p h i 程序员沿用原来的w i n d o w s 应用程序设计理念来设计w e b 应用程 序,可以轻易地在d e l p h i 豹
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中央一号文件自测50题【答案+解析】
- 出纳安全培训内容课件
- 衡水金卷四省(四川云南)高三联考9月联考政治(含答案)
- 涉密信息系统集成资质保密知识测试题库题库(含答案)
- 2025年面条买卖合同
- 道教入学考试面试问题及答案
- 思瑞浦招聘笔试题库2025
- 2025年农村私人房屋买卖合同范本
- 2025合同范本:计算机硬件采购合同样本
- 2025年上海房屋租赁合同范本版
- 2025年血透室透析液污染应急预案演练脚本
- 医院空气净化管理标准解析
- 风机噪声控制材料研究及使用方法
- 吴伯萧名篇阅读理解与教学设计
- 曲臂式高空作业车专项施工方案
- 各阶段样件管理办法
- 2025年服务行业技能考试-电教员历年参考题库含答案解析(5套100道单选题合辑)
- 高职院校实训室管理办法
- 电力施工安全管理办法
- 公务摄影培训课件下载
- 德瑞斯D600变频器说明书
评论
0/150
提交评论