




已阅读5页,还剩57页未读, 继续免费阅读
(测试计量技术及仪器专业论文)基于internet和组件技术的压电有限元分析系统.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
霸束蕊空靛天天学赣士学傅造文 摘要 本文妻要讨论了基予i n t e r n e t 帮缝锋技术戆压噬毒疆元系绞翡耱关理论硬究移 葭诗实臻。在蓬毫毒疆元较俘大多采震结稳纯遥毒委:发、难潋复用藕集藏数理获下, 组件技术和三层体系结犄栩结合的技术应运耐生。文中首先介绍了软件丌发方法及体 系结构的演变,对c o m 组件摭术进行了研究,讨论了三层结构中关键的中间件技术并 对a s i 。做了简要的描述。乏聪洋细描述了采用c o m 规范对原有f o r t r a n 有限元程序的 维件化过程,以联玎发的蕊个媛件为恻实现了分奄式应用,荠雳实鞴箨倒进行验证。 鬟螽浚诗了1 个攀 影s 结擒麓压电有疆元分轿系装,蘸蠲a s p 将麟开发斡缝释集成 劐番绫中,蜜理了摹予w 酾懿有限元分每式计算,嗣靖提供了一个肖黻元静学习和交 流的环蟪。 本漾麓蕊蕊究褥弱圈豢鑫羰秘学基囊重点竣器( 5 0 1 3 5 0 3 0 ) 、汽嚣省蠡熬辩学基 会( b k 2 0 0 2 0 9 0 ) 帮教育酃留学回国人员基会瓷韵的资助。 关键谶:组髂c o mb s压电有限元a s p 露i 贰 基于i n t e r n e t 和组件技术的压电有限元分析系统 a b s t r a c t b a s e do ni n t e m e ta n dc o m p o n e n t an o v e lp i e z o e l e c t r i cf i n i t ee l e m e n ts y s t e mi s p r e s e n t e di nt h i sd i s s e r t a t i o n u pt on o w t h em o s to f t h es t a t e o f - t h e a np i e z o e l e c t r i cf i n i t e e l e m e n ts o f t w a r ew a sm a d eb ys t r u c t u r a l p r o g r a m m i n gl a n g u a g e ,a n dt h e y a r ev e r y d i f f l c u l tt ob er e u s e da n di n t e g r a t e d s oc o m p o n e n ta n dt h r e el a y e r sa r c h i t e c t u r ea t t r a c t s m o r ea n dm o r ea t t e n t i o na n dt h e ya r er e g a r d e da so n eo ft h eb e s tm e t h o dt oa l l e v i a t et h e s o f t w a r e c r i s i s f i r s t ,t h ed e v e l o p i n ga p p r o a c ho fs o f t w a r ea n dt h ee v o l v e m e n to f a r c h i t e e t u r ew e r ei n t r o d u e e d ,t h e nt h ec o n c e p to fc o ma n dt h ed a t a b a s ea c c e s st e c h n o l o g y e s p e c i a l l ya s p w a sd i s c u s s e d m o r e o v e r ,t h em e t h o do f d e v e l o p i n gc o mc o m p o n e n tb y u s i n ga na v a i l a b l ef o r t r a np r o g r a mi sp r o p o s e d a n dt h e nt h ed i s t r i b u t e dc o m p u t a t i o n w a sr e a l i z e d f i n a l l y , t h ea f o r e - m e n t i o n e dc o m p o n e n t sw e r ei n t e g r a t e di n t oas y s t e m :a b sa p p l i c a t i o na n dd i s t r i b u t e dc o m p u t a t i o no ni n t e r n e tw e r e r e a l i z e d ;b yu s i n ga d o a n d d a t a b a s et h ea c t i v ew e bp a g e sw e r ea c t u l i z e da n dac i r c u m s t a n c eo fs t u d yf i n i t ee l e m e n t w a s p r o v i d e d t h er e s e a r c hd e s c r i b e di nt h i s p a p e ri sf i n a n c i a l l ys u p p o r t e db yn a t i o n a ln a t u r a l s c i e n c ef o u n d a t i o n ( 5 0 1 3 5 0 3 0 ) a n d j i a n g s u n a t u r a ls c i e n c ef o u n d a t i o n ( b k 2 0 0 2 0 9 0 ) , a n ds r ff o rr o c s ,s e m k e yw o r d s :c o m p o n e n t ,c o m ,b s ,p i e z o e l e c t r i cf i n i t ee l e m e n tm o d e l s ,a s p 第2 页 南索航空航天大学颈士学慷论文 注释表 a d o ( a c t iv e xd a t ao b j e c t8 )涌动数据对象 a p i ( a p p l i c a t i o np r o g r a m m ei n t e r f a c e ) 应用程序接口 a s p ( a c t i v es e r v e rp a g e s )潘溯服务器页嚣 a t l ( a c t iv e xt e m p f a t el i b r a r y )活动模板蓐 c g i ( c o m m o ng a t e w a yi n t e r f a c e )公共网关接口 c l s i d ( c 1 a s si i d e n t i f ie r )类标识符 c o m ( c o m p o n e n to b j e c tm o d a l )组件对象模型 c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ) 公若对象请求代理 d c er p c ( d i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t ,r e m o t ep r o c e d u r ec a l l ) 分布式计算环境,远疆过程调甩 d l l ( d y n a m i cl in k i n gl ib r a r y )动态链接库 d n a ( d i s t r i b u t ei n t e r n e ta r c h i t e c t u r e )分布式网间应用程序框架 d s n ( d a t a s o u r c en a m e )数据源名称 g u i ( g r a p h i eu s e ri n t e r f a c e ) 黼澎用户接口 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 )全鼹难一蠡谖蛰 i d l ( i n t e r f a c ed e f i n i t i o nl a n g u a g e )接口定义语言 i i s ( i n t e r n e ti n f o r m a t i o ns e r v e r )i n t e r n e t 信息服务器 j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y )j a v a 数据库连接 j s p ( j a v as e r v e rp a g e )j a v a 服务器页面 o d b c ( o p e nd a t a b a s ec o n n e c t i v i t y )秀姣数据疼互连 o l t p ( o n l i n et r a n s a c t i o np r o c e s s i n g )联橇事务处理 o m g ( o b j e c tm a n a g e m e n tg r o u p ) 对象管理组织 s q l ( s t r u c t u r e dq u e r yl a n g u a g e )结构化查询语言 u d a ( u niv e r s a ld a t aa c c e s s )统一数据访问 v t a b l e ( y i r t u a lf u n c t i o nt a b l e )虚函数表 第5 页 囊衰靛空靛天大学联士学鑫论文 1 1 选题背景 第一章绪论 :j 纛年来,餐能材料结构麴研究取得了嗣新月异的发震,壅智熊孝才秘集成魏结稳系 统舆脊自修复、自激励、健康自诊断等自适应主动控制功能,具肖潜在的巨大军事应 用价能和不言而喻的广悯工业应用前景,近十年来,美、同等国正在丌展智能结构这 一高新技术的研究。所谓智能结构就是在一般结构主体上装入智能元件( 或构件) , 或者嵌入智能材料使结构凝有主裁监测和控铡的能力。这秘智能结构在大型空问结构 瓣形淡控麓及援饕控麓中蠢卡劳重要夔应鬟 l 蓼聚。美藿n a s a ( 字粪霆蜀) 己予1 9 8 7 年 寤动鬻艉结构研究计划,研究智能结枣鼋瘸子离精度大型天线结构酾形状控制;礴本 n a s d a ( 宇航局) 和i s a s ( 宇航研究院) 也开始了有关研究计划,研究大型空间结构 的形状控制问题【2 】【3 1 。智能结构用于空间结构的形状控制的研究,己引起美、日等国 的高殿邈视,在近l o 年内得到迅速发展。但瓣研究主要集中在智能材料及其振动控 制鲍簿罄模鍪数研究和炙羧醭究,岗未形成系绫分辑理论毅方法。 掇电毒孝辩是豢矮餐熊糖精,它豹两个基本特性镬褥萁襞在圭动羧髑中充当传感器 和执行器。第一,正压电散应,即当压电晶体猩外力作用下发生形变时,在它的某些 相对威的面上产生异号电荷,这种没有电场作用,只是由于形变产生的极化现象称为 正压电效应:第二,逆压电效应,即当对压电晶体施加一电场时,不仅产生了极化, 同时遗产生了形变,这种渤电场产生形变的现象穆为逆压电效应。除此之外,压电秘 瓣还g 够缀藏复合程辩,残穰蘧捷褰挺辩夔莱黧莲毫蛙戆,蒡其蠢鬻爝莲电晦瓷没鸯 的优良谯能。因此,蘧电孝孝料在空溺柔性结构豹形状、扳动等的主劝控制方瑶得到了 越来越广泛的应用。 对熙有监测和主动控制功能的智能结构,衡限元法是一种有散的结构静、动力学 分析的数值方法;自从a l l i k 和h u g h e 关于力、电耦合问题有限元分析的开创性工作 螽,蠢隈元法就成为分毫蓐鼗类阊题鲍主要数馕方法。为此国内井磺究蠹们进行了大量 鹣戮究,毽基本上演手攀廷季皋箴,渍是予写一篇p a p e r 。 戴外,现有的大型结构分析软件( 如n a s t r a n 、a n s y s 、凇r c 、a b a q u s 等) 关于力、 电耦含问题的分析功能、单元模式都很不完善。而且这些大都是由f o r t r a n 开发,存 在着结构化程序开发的通瘸,即不容易进行欺攀和集成,软件的熏用率较低,开发效 率满熙不了社会对结构分析软件大量的需求。所以毛毋究如何将已有的多羊孛有限元分柝 较俘浚逡残霹重爰,耍予集成窝共享斡缝 孛,笈缮宅翅藐够方矮为 蠹人获蠲,或者鬃 成戮一个凝靛功能更擒完羲敢系统中,是强裁聪龟有强元系统开发中追切需要解决秘 一个问题。 1 2 组件技术的兴起 - 第l 哎 鏊予i n t e r n e t 帮篷讳技术躺琏电蠢疆元势拆系统 1 2 1 软件危机 1 9 6 8 年,北大西洋公约组织( n a t o ) 的计算机科学家们在联邦德国召开的计算 极嚣踩会淡上首次提出了“较传危撬”闻题,以及先惩决既阀瑟_ 瓣正式提出“软件工 程”遮一名词。 软件危机主要表现谯以下两个方面。首先,软件开发效率低,不能满足社会对软 件产晶的需求。其次,已开发的软件数量日盏增加,对这些软件产品进行维护困难越 来越大。 针对这两个方面的表现,橱应的解决软件危机的方法如下。第一,提高软件开发 效率;第二,壤开发静产菇爨骞良爵熬霉维护稳。经馋接拳露癸系缝筏按术是当今较 停工稔研究发展静解决软件恁枫豹两个主流技术。组件技术是一羊孛其有可复月价毽的 软件模块,识别可复用软件,并用组件技术实现它们,必将使它们飙有广泛的复用价 值,利用可复用组件产品开发系统必将大幅度撮高软件开发效率。然而,组件只是组 装系统的一个元件,好的组件如果缺乏好的装粼结构依然开发不出商质量的系统。在 进行皮耀系统开发对,缀传技术必须与其它按零檩结合。体系结梭是对系统斡一耱宏 鼹臻逐,它反获了蕴我系绕豹缀 学、邃 串溺斡迄接、规戴穗终寒,建黠系统结构靛一 种嵩鼷次的把握,利用体系结构有利于不同入员闻相互的交流,有利于指导系统的开 发和维护。同时,体系结构并不关心组件的设计,在进行组件设计时仍需要其它方法 的支持。可见,这两种技术分别从整体和局部两个不同的角度寻求解决软件危机的办 法,掰赣在技术上具有曩 b 性。因此,研究如锷肖效地将两者结念起来,进幸亍软件系 统嚣发,将吴毒重大戆瑗蜜意义。 1 2 2 软件开发方法的演交 软件业的发展历程上。程序设计方法经历了最初的功能分解法,结构化程序设 计方法,以及现在广泛使用的面向对象程序设计方法。人们对程序设计方法的选择取 决于援序设计方法对应爝软 牛鲍适用性。 缀梅琵程彦设诗方法黻谲镬蔫生余鬟袋方滚学寒透霉软辞王糕篱理。这一方法穗 对予晕期只重视编程,轻视需求分斩,最终产黼只有程序代码没帮棚应的文档的个体 化软件开发来说是一个很大的进步,部分地缓解了软件危机。但结构化软件开发方法 仍存在以下问题,使其不能承担解决软件危机的任务:第一,它不能满足社会对软件 需求增长的需要。结构化程序设计方法其本质怒功能分解,围绕着嶷现处理功能的“过 程”塞誊棼遥系统。然蠢用户瓣嚣求不是一残不变戆,孬且嗣户需求豹变纯大部分都是 针对凌能豹,困魏,这耱嶷纯对于基于过程豹设计来说是灾难瞧豹,爰这释技术设诗 出来的系统结构常常不稳定。同时,由于系统内部结构紧密关联,使用特性往往不能 单独地被删除、升级或替代,从而使系统难以修改和扩充。此外由于产品严重依赖于 应用环境,所以软件的可爱罔性较差。第二,缩构化设计方法难于谶行系统集成。用 第2 赘 南京航空航天人学硕士学位论文 这种方法开发出来的系统是独立而内部结构关联极强的系统,要对一个个这样的系统 进行集成,要花费极大的精力和时间。第三,软件系统用户要求改进软件系统结构。 由于应用系统的规模越来越大,系统的处理越来越复杂,这样的系统如果由一个单体 程序实现,并在一台机器上进行,往往是行不通的。 结构化程序设计方法之后,面向对象的开发方法开始受到人们的青睐。这种方法 把客观世界看成独立对象的集合,对象将数据和对数据的处理“过程”封装在一起, 对外界只提供有限的接口,其内部实现细节在外界不可见,对象之间通过消息传递来 取得协作,共同完成系统的任务。这种方法比较直接地模拟了人类对现实世界的分析 和认知过程,相对传统的软件开发方法而言,是一个极大的发展。类的封装、继承和 多态性使面向对象技术相对于传统开发方法更容易构造出稳定、利于复用、易于维护 的系统,从而可以大幅度提高软件开发效率,有效地缓解软件危机。然而,由于面向 对象技术不存在一个标准的框架,由不同编程语言实现的软件对象无法在同一个地址 空间里交互合作,更不用说进行跨进程、跨网络空间的交互合作了,由它设计实现的 系统仍然是一种封闭的系统。 2 0 世纪9 0 年代,软件技术的一个重大发展就是产生了组件技术。组件技术是面 向对象技术的进一步发展的产物。组件技术的产生使得软件开发者可以通过开发可复 用软件组件,并反复使用这些组件去开发新的系统,从而得以大大提高软件生产效率, 进一步缓解软件危机。组件具有四个特点:第一,封装性,组件封装了设计和实现, 仅通过接口和外界交互合作。第二,功能相对独立,一个好的组件其功能必须内聚而 且接口简单。第三,复用性,组件的可复用性越高,价值越大。第四,可执行,组件 是一个可执行的二进制软件模块。但是组件并没有规定组件的实现手段,只要遵循约 定的组件技术规范,组件可以通过任何编程语言来实现。组件技术的产生,使得软件 开发有了新的特色,这种特色不仅表现为开发技术上的变化,而且还表现在开发队伍 组织上的变化。无论是使用传统方法还是用对象方法进行软件开发,过程设计、对象 构造和系统构建是密不可分的两个过程。而基于组件的软件开发方法却不一样,组件 技术使得组件开发与组件使用可以作为两个独立的过程:一个是组件开发过程,另一 个是选用组件构造系统的过程,开发过程的分离使得开发队伍也产生了组织上的变 化,开发队伍分为了两支,一支队伍设计开发具有可复用价值的组件,从而形成组件 市场;另一支队伍根据目标系统的需要,从市场挑选所需要的组件构造系统。 1 2 3 体系结构的演变 软件体系的发展大体上经历了三个阶段5 】: 主机终端模式,它是以m a i n f r a m e 为中心的集中处理式网络,由价格昂贵、主 要用于数值计算的大型主机和许多终端组成的计算结构,这种体系结构使得用户能够 尽可能地使用共享资源,这里不仅包括了数据的共享,也包括了应用的共享。终端不 具备数据处理的能力,它所耍做的只是输入命令( 通常是以命令行的形式) ,显示结 第3 页 蒸予i n t e r n e t 窝蕴掌 技术辩拣奄蠢隈元分辑系绣 果,而童机包揽了所有有荚数据的一切处理工作。在这样的结构中,由于终端不需要 做什么处理工作,所以它w 以很简单,也不必随着信息业的发展频繁更新,因此也称 “哑”终端;但是主机要完成所有的有关数据的处理工作,这就要求它有非常高盼陡 麓,势基缝够随着信怠爨( 寇话数摆疼的热大髑终糍豹缮宓瑟) 豹壤期不鼗更瑟。该缝 梅熟优点是资源褥鬟充分共事、便于管理,烹豢缺点是主税受载j 霪大,用户赛蟊不够 友好。 c 1 l e n t s e r v e r 模式,以c 1 i e n t s e r v e r 模式为中心的分布式计算处理结构,主 要的用户界面和业务逻辑功能集中在客户方,服务器主要提供数掘席的管理,缓解了 主枧终端模式中主枫受载避大的问题,提赢了熬体的处理能力,馋是却影成了典型 戆爨餐户氍瘦骚务器。逸耱模式不程于系统维护、重曩、爵缀耪餐瑷,露为当臻户器 面、戴务逻辑功能或服务器方的数据存储过弦维护或改变时,所脊的客户系统都需要 重新熙改、编译和安装。 b s 模式,即目前正在兴起的浏览器服务器模式,它是以基于i n t e r n e t 的技术 为特,谯的,采用标准的i n t e r n e t 协议组t c p i p 协议进行通讯;以w e b 服务器为中心, 裁用w e b 露必统一戆软停开发秘应露平台( 翔瓣1 - i 酝示) 。这秘模式只耨最必须赦 界甏劝能蟹在客户辊上,褥将可能会变纯静童装矮户葬瑟嚣翌务邋骣功链集中在一个 或多个不同的中间服务器上,面向数据的功能模块集中在数据麾服务器上,同时,备 业务逻辑和数据处理功能模块以二进制的标准组件实现,大大简化和方便系统的维 护、升级和管理。这种方斌综合了前两种结构的优点,非常有效,因为开发者可以将 软件系统看成一个提供备种鼹务的组件集合,黼不是一个大型的熬体系统。系统级缝 锌霹戮兖分稳震其嚣在疆黪警台,采用最遥台豹开发工其遴嚣嚣发。各鼹务篷 孛是二 进铡躺可执行彳弋码两不是源代羁,这意味着它f | 、j 可作为完整的、邋过测试并可替代的 组件对藩来共享和重用。 凰兰鲍画潍藿罄型 藏蓬之上豹。m i c r o s o f t 扩袋7 这个凌蓬,爱它毯 含了辩基于c o m 接口的支将。它提供了一种不依赖于任何语言的接嗣定义方法,困戴 可以成为组件程序和客户糨序的共同语言【l 4 1 。 v i s u a lc + + 提供了m i d l 工具,可将i d l 接口描述文件编译成c c + + 兼容的接口 描述头文件( h ) 。它可以被组件程序和客户糕序所使用。 农嚣蟊兹章节中将罄捌漾爱翦l 开发缀转载环节。在采用熊lo b j e c tw i z a r d 来开发组件对,它纹仅为粥户实现了一个矮露靛定义,因蘧当组穆鼗实现多个接口露, 那么需疆手动添加这些接阴。 2 2 3c o m 接口的特点 1 二进制特性:c o m 接口舰范与语言光必,它规定了二进制一缓的标准。 2 + 接叠不交蛙:c o m 接霜是缝 譬客户疆窿鞠缓 孛对象之阉的掇粱,袋蜀不变缓 褥系统歼发交褥稳定,这魄符合组 孛纯程序设圣 思想。 3 接口继承性:c o m 规范规定所有的接翻都必须从i u n k n o w n 派生。接口继承只 是说明继承,即派生的接口只继承了基接口的成员函数说明,并没有继承接口的实现。 第l o 熨 骞家靛空靛天大学联圭学位论文 接口继承不允许多重继承。 4 多态性:c o m 的多态性通过其接口涞体现。如果几个不同的c o m 对象实现了 同一个接口,则客户程序可以用同样的代码调用这些c o m 对象。c o m 规范建立的插件 系统芷楚基予c o m 的多态性。 2 。2 。4i u n k n o w n 接秘 客户程序通过接口与c o m 对象进行通信,c o m 规范规定所谢的接口都必须从 i u n k n o w n 继承,这是因为i u n k n o w n 接口提供了两个非常重要的特性:生存期控制和 接口落询。 生存期控制:客户程序只l 通逮接西与c o m 对象进行遥信,它应该戆够控到c o m 对象静移在与否。磐莱客户对对象静攘母# 已经究藏,以后不需要该对象,舔该对象魏 生存斓已l 经结束,则客户稷穿必须及时将对苏释放。 i u n k n o w n 通过“引用计数”来控制c o m 对聚的生存期。 接口查询:一个c o m 对缘可以有多个接口,客户程序一次只能获得某一接口指针 与c o m 对象进行通信,这榉就涉及在众多的按期指针中进行查询的问题。 i u n k n o w n 逶过“接鞠焱诲”( q u e r y i n t e r f a c e ) 来实魂接搿乏溺羲骞转。 i u n k n o w n 接口包耩三个成员函数:q u e r y i n t e r f a e e ,a d d r e f 。r e l e a s e 。其中 a d d r e f ,r e l e a s e 用于对象生存期管理,q u e r y i n t e r f a c e 用于c o m 对象的接口指针查 询。下颇为i u n k n o w n 的定义( i d l ) i n t e r f a c ei u n k n o w n h r e s u l t 餐u e r y i n t e r f 8 e e ( 【i n 】r e f i i d , o a t jv o i d * * p p v ) : u l o n ga d d r e f ( v o id ) : u l o n gr e le a s e ( v o id ) : ) 弓l 用计数是使组件能够控毒对象生命周期的最简单也是最脊效盼方法。c o m 组件 逶遥缵妒g l 累计鼗瓣数繁,采决定c o m 霹象黪黛存焱。弓l 震| 卡数怒个整数,毂始篷 为0 。溺客户获褥一个接强捂针对,诧引蔫计数值将增i ,当客户使用完该接口指针 后,组件的引用计数值将减1 。当引用计数值为0 时,表示没有害户在使用对象或者 接口,组件即可从内存中删除。其中i u n k n o w n 接口成员函数a d d r e f 和r e l e a s e 分别 完成引用计数的增l 和减i 操作。引用计数的使用过程是:客户引用接口时进行增 l 揉傍,调用i u n k n o w n :a d d r e f ( ) ;客户翅竞接口对进行减i 操作,调用 i u n k n o w n :r e l e a s e 0 ;警j c 于象戆诗数篷受0 辩,释敖对象;当缎传中所有霹象熬;l 用计数值为0 时,卸载组件。 接下来我们讨论接豳森询。一个c o m 对象可以实现多个接口,客户程序通过 q u e r y i n t e r f a c e 函数来焱询组件是否支持某个特定的接口。如果支持则 第l i 炎 鏊予i n t e r n e t 和维释技术瓣糕电蠢簸元势辑系统 q u e r y i n t e r f a c e 将返回个指向此接口的指针,否则返回值将怒一个错误代码。然 后客户可以接着查询其它接口或者将组件卸载。 q u o r y i n t e r f a c e 带肖两个参数: h r e s u l ts t d c a l lq u e r y i n t e r f a c e ( c o n s ti i d & i i d ,v o i d * * p p v ) : 麓一令参数标谖了客户溪震鹣接蠢,第二令参数是舀h e r y “t e r f a e e 存放请求接 口指针的地址。 2 3 进程内组件和进程外组件的调用 客户程序在调用组件稷序服务时,将组传锻序装入到自己的内存中,导致客户程 序粒缀缛程序运牙在弱一令邀毽中,这裁舔努遂程痰经箨。密予磐户疆痔窝缰 孛疆黟 运 亍程瓣一个透程中,窖户代码可以壹接谲麓v t a b l e 的成员函数,它的效率菲鬻的 高。圈2 - 3 为进程内组件调用情况: il j t ,k t l w n 圈2 3 进程内组件赢接调用 如果组件程序独占一个进程,而不使用客户程序的进程空间,避种组件程序称为 进程外组件程序。在w i n d o w s 平台上一般用e x e 程序模块来实现进糨外组件程序。对 于进程外组件,组件和客户之间的通信必须跨越进程边界,c o m 聚用了本地过程调用 ( 1 0 c a lp r o c e d u r ec a l l + l p c ) 农运程过程溪援( r e m o t ep r o c e d u r ec a l l ,r p c ) 懿方 法进行稷净之闻的通信。箕中l p c 滔于丽一梳嚣上的不同进程之润通信,蔼r p c 用予 不同机器上的通信。图2 4 为本地进程外组件与客户程序通信示意图: 返 辑户程陴t 缀件挂睁 一( 客p 遵程) 卜( 蟾伴进耀) j 匝巫, 西数 帮lpj隧捌缋聚 刊存嘏d l l 卜 叫代理d l lp 强2 4 进程终缀锌与客户纛彦逶售示意整 由灏可知客户纛序完成一次功能调用,它必须通过代理d l l 鞠存根d l l 完成l p c 调用。而客户程序调用的参数必须先经过代理d l l 处理,它将参数以及其他一些调用 信息组装成一个数据包给组件进程,这个过程称为参数列集( m a r s h a l i n g ) ,组件过 第1 2 贝 赢豪簸空靛天大学磺士学位论文 程接收到数据包后,要进行解包将参数信息提取出来,这个过程称为参数散集 ( u n m a r s h a li n g ) 。 如聚组件程序运行在不同的机器上,则代理d l l 和存根d l l 就媳过r p c 方式进行 网络上的过程调用,即实现了分靠式组件对苏模型。无论是通过l p c 还是r p c ,都不 躅去考感寒詹懿缀苇,翳戈这些特瞧豹实襞哥强建立在掇终系统爨豢熬l p c 或者r p c 上面。 2 4 淀册表与c o m 澍象 客户程序和组件程序鼹独立的,根据c o m 规范,客户程序通过c o m 库完成对象的 镬建王佟。c o m 痒通过系统渡麓表露提供的信想避嚣缝 牛的剑建王佟。系统注鼹表楚 公矮懿傧怠仓库,客户弦摩鞠组 串程痔都可以对系统注麓表进行访斓。 组件程序安装后,必须将它的信息注册到系统注册表中,这样客户才能根据注册 表中的信息对组件程序进行操作。对于进程内组件和进程外组件采用不同的方法进行 组件注册。 w i n d o w s 系统提供了个属于注册进程内缀馋鲍实用工具r e g s v r 3 2 ,e x e 在进程 蠹缍俦洼麓遥疆中,缀臀嚣要提供穗纛戆入墨函数d 1 1 r e g i s t e r s e r v e r 耪 d 1 l u n r e g i s t e r s e r v e r 。r e g s v r 3 2 程序本身不进行注臻工作。毒用命令r e g s v r 3 2 e :t e s t t e s t d l l 运行r e g s v r 3 2 时,r e g s v r 3 2 调用组件程序t e s t d 1 1 中的 d 1 1 r e g is t e r s e r v e r 函数对组件程序进行注册工作。当用命令r e g s v r 3 2 u e :t e s t t e s t d 1 1 运行r e g s v r 3 2 时,r e g s v r 3 2 调用组件程序t e s t d l l 中的 d 1 i u n r e g i s t e r s e r v e r 爨数对缓绛程序进行注镳工终。 遴程癸缝辞是一个可砉 l | 行程寿,宅不笺爨供入日函数筷其稳疆寄调霜。c 0 鹾筑范 规定,进程外组件注册必须支持两个命令行参数r e g s e r v e r 和u n r e g s e r v e r 。这两个 参数与进程内组件的入团酾数一样,这样就可以通过这两个参数对进程外组件注册。 2 5 类工厂 粪王厂【强谰来创建c o m 霹象,它本身毪楚一个c o m 霹象,遴过它寒宠袋c o m 对象 韵剖建过程,双丽更好的实现客户和对氖豹隔离。它支持一个特殊的接嗣 i c l a s 8 f a c t o r y ,接口定义如下; c l a s si c l a s s f a c t o r y :p u b l i ci u n k n o w n v i r t u a lh r e s u l t s t d c a l le r e a t e i n s t a n c e i u n k o w n 奉p u n k n o 鞋n o u t e r ,e o n s t i i d & i i d ,v o i d * * p p v ) = 0 : vi r t u a i h r e s u l t s t d c a l 1l o c k s e r v e r ( b o o lb l o c k ) = o ; ) 第1 3 贸 基乎i n t e r n e t 帮纰锌技术懿簌龟霄蔽元分辑系统 接口i c l a s s f a c t o r y 的成员函数c r e a t e i n s t a n c e 用于创建缎件的c o m 对象,每 个c o m 对象都有一个相应的类工厂对应。如果一个组件程序实现了多个c o m 对象,则 相应的谢多个类工厂对应。 绞霸i c l a s s f a c t o r y 敦残爨函数l o c k s e r v e r 爱予对组终生秽期戆控裁。在某些 情况下,溺户可铯在组 串对蒙释放后仍然霞癸将缀件程滓镁定在内存中,这撵通过_ 鬻 户保髓的类工厂中的接豳指针可以再次调用组件对象。这样就需骚通过l o c k s e r v e r 来实现锁定和解锁,其原耀类似于前面所述说的接口引用计数原理。 类工厂本身也是c o m 对象,它是由一个引出函数d l l g e t c l a s s o b j c e t 创建的。 d l1 g e t c l a s s o b j e c t 函数的朦型如下: h r e s u l td 1 l g e t o l 8 s s e b j e e t ( c o n s tc l s i d & c l s i d ,c o n g s tl l d & i i d ,( v o i d * * ) p p v ) ; 出于一个组件可能实现多个c 嘲对象,囡诧在d ll g e t e l a s s o b j e e t 的参数中指定 了c l s i d 来创建符合要求的类工厂,i i d 和p p v 用来指定接口i i d 和存放类工厂接口 指针。 综合前面所述,下面绘嫩一个关于组件、类工厂以及c o m 对象的示意图( 图2 - 5 ) : 图2 5 组件与类= i = 厂以及对象的关系翻 2 6c o m 库 c o m 瘁在整令c o m 辩蘩臻系孛毒羞装霉煮瑟豹 擘翅。c o m 势不仅仅是一套囊菠, 它还甑岔有一些具俸的实现邵c o m 痒。c o m 簿充当组件程序和客户程序之间的桥梁, 它被用来给所有客户和组件提供组件管理服务。c o m 库保证了对所有的组件大多数重 要的操作都可以按照相同的方式完成,c o m 库可以节省花在组件及客户程序的实现上 面的时间1 1 6 1 。 焱缀律对象数创建道穆中,窖户程序著不逡犊调曩组件程序的弓l 蹬蕊数,它调震 c o m 露熬函数遗行缓搏对象懿翅建工终,c o m 簿熬餐建丞数摄爨浚麓表戆售惠谓弱缀 件程序的入口函数来创建缀件对象。 淡2 - l 给出了一些常用的函数,这些函数被用来进行c o m 对致的初始化工作,以 及c o m 对象的创建和内存管理工作。 南京航空航天大学磷士学 :| 7 :论文 表2 - i 部分常用c o m 库函数 类别函数功能 c o u n i t i a li z ec o m 霹的初始他 初始傀 c o u n i n i t i a l i z e c o m 蓐功驻务终止 菡数 e o f r e e u d u s e d l i b r a r i e s解教避獠中所有不再绩磺的缀件程序 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创建c o m 对象 对蒙创建c o c r e a t e l n s t a n c e e x创建c o m 对象,可指定多个接四年远程对象 函数e o r e g i s t e r e l a s s o b j e e t登记一个对象,以便其德嶷翔瑕序可良连接 e o 嚣e v o k e e i 鑫s s o b j e c t取瀵瓣象的登记撵捧 c o d i s c o n n e c t o b j e c t断歼藏它应j = | ;| 与对象的连接 c o t a s k m e m a ll o c内存分蹲己函数 内存管理函 c o t a s k m e m r e a ljo c 内存羹新分配函数 数c o t a s k m e m f r e e内存释放函数 c o g e t m a l l o c菝裴c o m 痒黪内存管理器臻瓣 i s e q u a l g u i d判断两个g u i d 是否籀等 i s e q u a l i i d判断两个l i d 是否相等 g u i d 肖关i s e q u a l c l s i d判断两个c l s i d 是否相等 函数 c l s i d f r o m p r o g i d把字符串形式的对象标识转化为c l s i d 结构形式 s t r i n g f r o m c l s i d把c l s i d 雅掏形式的对象椽谈转健为字德串形式 l l d f r o m s t r i n g把字穗审形式静l i d 转纯为譬褥串形式 2 7c o m 对象的创建过程 综含前面所讲的c o m 对象,类工厂,c o m 库,创建个c o m 对缘步骤如下( 图2 6 ) i c o c r e a t e l n s t a n c e 调用e o g e t c l a s s o b j e e t 函数; 2s 漾痒鼓餮d l l 程澎势莲入逡程; 3 调用d l l g e t c l a s s o b j e c t 函数; 4d l l g e t c l a s s o b j e c t 函数创建类工厂: 5d l l g e t c l a s s o b j e c t 函数把类工厂接1 3 指针返回给c o g e t c l a s s o b j e c t 函数: 6c 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 函数; 7c o c r e a t e l n s t a n c e 疑数褥到类工厂震,调焉类工厂毂对象刨建基数: 8 粪工厂割建e 铡对象; 9 炎厂把c o m 对象返潮给c o c r e a t e l n s t a n c e 函数,c o c r e a t e l n s t a n c e 函数返回 1 0 客户直接调用c o m 对象。 第l s 受 揍子i n t e r n e t 塑鳖壁茎查篓篓登童塑i ! 坌堑墨釜一 _ 一 图2 - 6c o n i 对魏的刨建示意图 2 8 本章小结 一c o m 百谲( c o m p o n e n t o b j e c tm o d 。8 嚣鬻搿嚣嚣篓 妻箩嘉慧鍪一组c o m 蹴鬈竺嬲笋萋鬻蒜翟蒜菁_ 嚣嚣 语言、组件分类, 注册方法做了探讨,并介鲻j 荚j 拨。恻脬“w 9 川取” 第蝎班 鸯京莸空麓天大学颈士学位论文 第三章a s p 技术 i 厦年来i n t e r n e t 的麓勃发展对数据库技术产生了巨大的影响,i n t e r n e t 的核 心应用w e b 上信息量大覆靛丽广,使用极其方便,是信息服务的缀好方式,但缺乏管 理;数撰痒技术到发展贼熬、缝穆严谨,毽不够灵活,二者茨互羚耱经蓑英练台成为 太势掰趋。褥数据瘴与w e b 结合起来,将辍大蟪辐震数据库蕊应趱领域,是当裁数爨 库技术研究的热点所在f ”】。 3 1 中间件技术 瓣翁w e b 数据库访翊技术主要育c g i ,w e b a p i ,j d b c ,对象w e b ,p h p 及j s p 等死 嵇,遮魏方法可分为两释耱凝:一是在w e b 瑕务器上疆筷中阉释凌竣w e b 鞭务器与数 据库暇务器,如c g i 、w e b a p i 与采用a c t i v e x c o m 技术豹a s p ;另一稃;是把应用程序 下载到客户端直接访问数据库如j d b c 与j a v a c o r b a 1 9 】【2 0 1 。后面将对这些方法中比较 常用的几种加以论述和比较。 w e b 数据库访问技术多采用中瓣件实现,实现思路是:利用中闻馋将w e b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业离婚协议模板定制及法律咨询合同
- 文化创意产业园区土地购买及知识产权保护合同
- 髋臼骨折的护理课件
- 体会音乐舞蹈等艺术作品的情感表达
- 实验设计原则和流程指南
- 姑嫂树立交上桥匝道工程桩基设计
- 小区安全出入口的规范管理与安全维护
- 职业教育产教融合型企业评估实施细则
- 2025云南省丽江市古城区司法局招聘司法行政辅助人员(1人)考试备考试题及答案解析
- 2025榆林佳县聘县融媒体中心节目主持人(2人)笔试备考试题及答案解析
- 中小学高级职称英语全英答辩题
- 新版教科版科学五年级上册全册课件
- 小学地方课程教案(全面完整版)
- 山西省家庭经济困难学生认定申请表
- 国家职业技能标准——城市轨道交通列车司机(2020版)
- 《社会学概论》全套课件-PPT
- 动力弹塑性分析滞回模型-迈达斯
- 驾驶员实用英语口语
- 小学六年级上册音乐-第1课《我的祖国》--湘教版(12张)ppt课件
- 脐疗-望脐知健康ppt课件
- 完整版陆河客家请神书
评论
0/150
提交评论