(模式识别与智能系统专业论文)net环境下软件组件之间的互操作方法研究.pdf_第1页
(模式识别与智能系统专业论文)net环境下软件组件之间的互操作方法研究.pdf_第2页
(模式识别与智能系统专业论文)net环境下软件组件之间的互操作方法研究.pdf_第3页
(模式识别与智能系统专业论文)net环境下软件组件之间的互操作方法研究.pdf_第4页
(模式识别与智能系统专业论文)net环境下软件组件之间的互操作方法研究.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

硕士论文 n e t 环境下欺件组件之间的互摄作方法研究 摘要 组件开发模型( c 伽) 所开发的组件具有很好的复用性,可以使软件系统更为结 构化以及复用度高等优点,所以组件化开发成为软件开发的最为普遍的方法。因此, 许多商业化的软件系统虽然使用各种编程语言构成,但普遍选用c o - l 技术作为软件构 件的基础。但是随着企业业务以及需求的不断增加扩展,企业问协同合作的不断加强, 要求对原来的系统进行改进或者应用于i n t e r n e t 以加强合作c o j 4 技术的缺陷就在 于不能在i n t e r n e t 环境下进行部署和应用,并且难于和其他编程语言所开发的系统 进行集成。 在网络四通八达的今天,面向服务的体系桨构( s o a ,s e r v i c eo r i e n t e d a r c h i t e c t u r e ) 这个概念已经十分普及,而作为s o a 的代表k b 服务( w e b s e r v i c e ) ,引起了广泛的关注,并且发展十分的迅速。r e m o t i n g 作为m i c r o s o f tv i s u a l s t u d i o n e t 的另外一种技术,是一种分布式处理方式,从n e t 的技术架构来看, r e m o t i n g 就是d c 伽的一种升级,提供了一种允许对象通过应用程序域与另一对象进 行交互的框架。在这些大前提下,本论文以研究n e t 组件和c 。i 组件之间韵互操作 为研究目的,引入w e b 服务和r e m o t i n g ,提出了通过对s o a p 扩展提高w e b 服务和 r e m o t i n g 的效率从而提高n e t 组件和c o l 4 组件之间互操作效率,最终将现有的c o r 组件应用于i n t e r n e t 的解决方案 本文首先在介绍组件技术、n e t 环境、w e b 服务以及r e m o t i n g 的基础上,深入 研究了在n e t 环境下c 伽组件与n e t 组件之间的互操作方法。即托管代码与非托管 代码之间的互操作,并给出了相应的示例代码实现。 s o & o 是一项新的软件通信技术,它不仅是w e b 服务的基础,同时r 鲫o t i n g 也可 以将它作为底层通信。本文重点研究了s o a p 协议的扩展机制的关键技术,利用w e b 服务和r e m o t i n g 都可以以s o a p 作为基础的共同点,通过s o a p 扩展机制,对s o a p 进行扩展,自定义s o a p 消息并且对s o a p 消息进行压缩,实现s o a p 消息的高效传输 和高效解析,以提高互操作效率在论文的最后给出了利用w e b 服务和r e m o t i n g 对 基于c o m 开发出来的c a x av a u l t 进行封装的实现模型,并给出了具体的实现步骤以 及一些关键性技术的实现方法。因此,整个方案具有一定的可扩展性和实际应用价值 关键词:c o m 、w e b 服务、r e m o t i n g 、s o a p 、m 髓艟c o m p o n e n t sd e v e l o p e db a s e d0 1 1c o m i so f g o o di 既i s a g ew h i c hm a k es o f l w m s y s t e mm 0 1 es u u c u m l la n dh a v em a n ye x c e l l e n c es u c h 鹤g o o d 撑螂s ot h em e t , h o do f d e 、,e l o p i n g f t w a b a s e d c 0 mb c o m t h em o s tu n i v e r s a l m e t h o d a sa 琏斌a 1 血伽g hm a n yc o m m e r c i a l 鳓盘w 粥s y s t e m su s i n gn o w 躺& - v d o p e db ya l lk i n d s o fp r o g r a m m el a n g u a g e s , m o s to ft h e mc h o o s ec o ma st h eb a s eo f f l w 孤e c o m p o n c n t b u t 留t h ei n c 渤s i n ga n d 懿瑚她o fc o m p a n l e s o l 把* r a l i o n s a n d r 明t l i 俺m 肋t s ,也e 鼬嘲唱_ i b 锄i n go fc o o p c w a f i o n sb c 婀v 蝴m p a n i 器血r e q u i r e si n 单响喀 t h e i rs y s t e m s a p p l y i n gt oh t e r n e tt os t r g t h 吼c o o p e r a t i o n s t kd e f e c to fc o mi st h 越 i tc a n tb ed e p l o y e da n da p p l i e d0 1 1t h ei n t e m e t a n di ti sb a r dt oi n t e g r a t ew i t ho t h e r s y s t e m sd e v e l o p e db yo t h e rp r o g r a m m el a n g u a g e s n o wt h en e t w o r kh a sb e e nh i g h 晦d e v e l o p e d 1 kc o n c e p to fs o ah a sb e e nv e r y p o p u l a r a st h e 托弘就嘲删蛐o fs o a , w e bs 盯、,i a t t r a c t se x t e n s i v ei i l 呛n t i o n sa n d d e v e l o p sr a p i d l y r e m o t i n g , 嬲a n o t h e rt e c h n o l o g yo fm i c r o s o rv i s u a ls t u d i o 1 、m t a sa m o d eo fd i s l r i b u t e dd i s p o s a l i t s 缸u p g r a d eo fd c o mi nt h ea s p e c to ft e c h n o l o g y a r c h i t e c t u r e o f n e t i ts u p p l i e saf l - r m cw h i c hp e r m i t so n o 场e c tt oc o m m u n i c a t ew i t h a l l o t h c ro t d e c tt h r o u g ha p p l i c a t i o nf i e l du n d e rt h e s e 弘蜘n 溉,a i m i n g 砒球钟c h i 】唱 加雌c i l a lo p e r a t i o n sb e t w e e n n e tc ( 1 l l p o l l t sa n dc o l dc o m p o n e n t s 。t h i sd i s s e r t a t i o n i m p o r mw e bs 日v i 淄a n dr 锄o t m ga n dh i n 黟f o r w a r di m p r o v i n ge f f i c i e n c yo fw e b s o l v i c ea n dr e m o t i n gb ys o a pe x t 酗o l li no r d e rt oh n p r o v ee f f i c i e n c yo fi i i u r i a l o p e l 蕊o l l sb 曲嗍n e tc o m p o n e n t sa n dc o mc o m p o n c 毗s t l m ni t 印p l i c s 啦a 出垃硌 c o mc o m p o n e n 协协h t e 】m 以 1 1 1 i sd i s s e r t a t i o nf i r s tg i v 篇ai n t r o d l i c f i o no fc o mt e c h n o l o g y , n e t , w 曲船m c c a n dr e m o t i n g t h e ni td e e p l yr e s e a r c h e sm e t h o d so fm u t u a l 氍q l t i o n 8b c t w o e n :n e t c o m p o n e n t sa n dc o ma 瞰珥0 咀啜如u n d e xc i i 仰吡或瞅o f n e t , a n dg i v e s $ o m cc o d e sf o r e x a m p l e 。 s o a pi san e w 氟忸mc o m m u n i c a t i o nt e c h n o l o g y s o a pi st h eb a s eo fw | c b 驰a l s or e m o t i n gc a nu s o a p 私r o c k - b o t t o mc o m m u n i c a t i o n n i i sd i s s e r t a t i o n s t r e s s e s 代爆a 霹c h o n k e y t h n o l o g y o f s o a p e x t e n s i o n , m a k i n g u o f t h e e _ o m 1 l n g r o u n d w h i c hb o t hw e b 舅州c ea n dr e m o t i 驾湖b a s eo ns o a p i tm 矗k e sa 甥【t e n s i f o rs o a p b yt h em e c h a n i s mo fs 0 a pe x t e n s i o n i tu 湖s o a pn 蟑s s a g eo f1 l 问娟n 酣a n d c o m p r i s e ss o a pm e s s a g ei no l d 凹t oa c c o m p l i s hh i g h l yt r a n s f e r r i n l n ga n dp a r s i n go f n s o a p 础s a g e a sa 聪吼她i ti m p r o v e se f f i c i e n c yo fm u t u a lo p e r a f i o i 塔a tl a b o rg i v e sa m o d e lo fu s i a gw e bs 盯“c ca n dr 锄o t i n gt o c 印s u d 锄ec a x a v a u l tw h i c hi sb a s e do i l c o m 髓d g i v d e t a i l e dp r o c e s s 锄d 由旺n p o b s b i 玳艇bo f s o m ep i v o t a lt e c h n o l o g y g ot h e e n t i r ep r o j e c tt i n sg o o de x p a n s i b i l i t ya n dp r a c t i c a la p p l i e dv a l u e k e y w o r d :c o m 、w e bs e r v i c e 、r e m o t i n g 、s o a p 、x m l m 声、明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本 学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发表或 公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使 用过的材料。与我一同工作的同事对本学位论文做出的贡献均已在论文 中作了明确的说明。 研究生签名:跏门年时日 一年5 序矿日 f 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或 上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并 授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密 论文,按保密的有关规定和程序处理。 研究生签名:吲锄威阳 硕士论文躯”年境下软件组件之闯的互操作方法研究 1 绪论 1 1 本文的研究背景、目的和意义 随着软件开发技术的不断发展,软件不断朝着集成化、组件化的方向发展现在 许多系统一般都是用一种编程语言所开发出来的,随着企业业务的不断扩展、需求不 断增加,许多企业对软件系统的要求也越来越高:比如说所使用的软件系统能够与其 他的软件系统进行集成,又如自己原先所使用的系统存有大量重要的数据并且花费了 大量的金钱,为了保护企业的数据和现有投资,不能遗弃,因而要求开发的系统能够 对原有的遗留系统进行重复利用丽由于两种系统所使用的编程语言、系统架构以及 一些技术都是截然不同的,成为系统集成或者系统重用的关键性问题 由于组件开发模型所开发的组件具有很好的复用性,可以使软件系统更为结构 化,同时也可以使软件开发者分工更为明确,软件开发者无须知道组件中方法的具体 实现,只要知道对象中的方法具体实现的功能就可以进行自己的工作,所以组件化开 发成为软件开发的最为普遍的方法,许多软件系统都是基于组件模型开发出来的不 仅如此,如v i s u a ls t u d i o n e t 这类软件集成开发环境也在不断朝着组件化的方向 发展,开发环境本身就是由许多组件集成起来的正如上所说,越来越多的企业有软 件集成或者是能够重复利用原来的软件系统( 称之为历史遗留系统) 的要求,而且企 业所使用的软件系统通常都是采用组件模型来开发的,因此能够利用现有的软件开发 环境来复用遗留系统的组件并且可以进行交互操作或者是对遗留系统进行集成,也成 为当前企业的迫切需求,也是软件开发者当前所面对的比较普遍的问题。v i s u a l s t u d i o n e t 由于其高度集成的开发环境给软件开发者开发软件系统或者复用以前的 组件提供了很多便利,深受广大软件开发者的欢迎。其次,随着企业需求的不断提高, 企业为了加强企业问的协同合作,也要求企业数据在i n t e r n e t 范围内的共享,而许 多基于组件模型开发出来的遗留系统难以在i n t e r n e t 范围内进行部署和应用,由此 对遗留系统进行面向i n t e r n e t 范围内的集成和包装,也成为当前的一个迫切需求 w e b 服务技术面向服务的体系架构( s o a “。,s e r v i c eo r i e n t e da r c h i t e c t u r e ) 的代表,利用标准网络协议和舭数据格式进行通信,具有良好的普适性和灵活性, 并提供在互联网范围内进行服务注册和发现以及调用的手段,帮助企业挖掘发挥现有 技术的最大功能,打破各类应用系统在不同体系上的束缚,在互联网上方便地进行发 布、发现和互操作,进而打破企业间的界限,实现信息的集成与封装,从而成为对现 有产品进行改造的一个重要技术手段。 v i s u a ls t u d i o n e t 的另外一种技术采e m o t i n g ”。,是一种分布式处理方式, 从n e t 的技术架构来看,r e m o t i n g 就是d o 嘣的一种升级,提供了一种允许对象通过 l 磺士论文n e r 环境下软件组件之间的互操作方法研究 应用程序域与另一对象进行交互的框架,主要用语管理跨应用程序域的同步和异步 r p c 会话。n e tr e m o t i n 8 提供了非常灵活和可扩展的编程框架具有很多的优点, 比如r e m o t i n g 性能非常好,速度接近d c 嘣,r e m o t i n g 可以供开发者选择传输通道类 型( 如h t t p ,t c p ) 和格式类型( 如b i n a r y ,s o a p ) ,r e m o t i n g 还支持开发标准( h t t p , s o a p ,w s d l ,x m l ) 并且拥有c o m m o nt y p es y s t e m ( c t s ) 和c o m m o nl a n g u a g er u n t i m e ( c l r ) 所拥有的易于使用和功能强大的特点因此基于以上的优点,在n e t 环境下 研究n e t 组件与其他软件组件( 如c o m 组件) 的互操作方法,并且将基于c o m 的遗 留系统封装成w e b s e r v i c e 和r e m o t i n g ,使现有系统能够通过软件组件间的互操作与 遗留系统迸行交互,既保留原来遗留系统的功能,又进行一定的扩展,有着非常普遍 而深刻的意义,且具有较为广阔的应用前景 1 2 本文研究的主要内容 软件组件所涉及的开发环境有许多,诸如v c + + 、v b 、d e l p h i 等,而作为m i c r o s o f t 的v i s u a ls t u d i o n e t 集成开发环境,里边所包含的编程语言主要有;v c h 、c # 等, 所以本文对n e t 组件和非托管组件( v c + + 的c o n 组件) 之间的互操作原理进行深入 的研究,并对在n e t 环境下软件组件之间的进行互操作的一些关键问题进行了研究, 并在此研究的基础上,探讨并提出7 根据项目要求而自定义的提高组件之间互操作交 互效率的n e t 组件和o 叫组件之间的互操作协议,最终通过将c o t ( 封装成w e b 服务 和r e m o t i n g ,构成一个能够在i n t e r n e t 上应用,并且组件之间能够交互操作的b s 结构的系统。本文主要包括了以下几个方面的研究内容: 根据项目的要求以及现在企业对软件系统的需求,指出现有的软件组件的互 操作以及软件系统的可重用性的不足 叙述当前项目的细节要求,并分析当前企业对自己所使用的软件系统和旧的软件 系统的迫切需求,提出现在的软件组件在互操作性方面的不足,导致了对遗留系统的 可重用性以及对遗留系统的集成都有了巨大的障碍。从而提出了软件组件的互操作性 问题,以提高系统的可重用性并可方便的进行系统的集成; n e t 环境、w e b s e r v i c e 技术和r e m o t i n g 技术的介绍、分析与研究 简要介绍v i s u a ls t u d i o n 盱集成开发环境,并分别详细介绍了| e b s e r v i c e 技术和r e m o t i n g 技术的概念、技术要点、性能分析,指出y e b s e r v i c e 技术和r e m o t i n g 技术不仅是将来软件开发的必然趋势,而且通过在n e t 环境下研究软件组件的互操 作性,对于企业的遗留系统的可重用和可集成更为有利和方便,更有利于今后企业间 的协同工作和发展; n e t 环境下,软件组件的互操作方法的探索和研究。 详细阐述了在n e t 环境下,软件组件( n e t 组件和c o m 组件之间) 进行互操作 2 碗士论文、n e t 环境下软件组件之问的互操作方法研究 的几种模式重点研究n e t 环境下与n e t 组件与c o t 4 组件的互操作相关的一些关键 闯露,包括为互操作性分别生成c o w 组件和n e tf r a m e w o r k 组件、为互操作性向c 伽 公开n e tf r 锄e w o r k 组件,为互操作性向n e tf r a m e w o r k 公开c o w 组件,对互操作 进行封送处理( 包括用n e t 平台进行封送处理和用c o wi n t e r o p 进行封送处理) 等 方面并在此研究的基础上根据项目的具体需求,自定义c o w 可调用包( o c l , c o w c a l l a b l ew r a p p e r ) 和运行库可调用包( r c i r ,r u n t i m ec a l l a b l ew r a p p e r ) ,通过对 s o a p 协议的扩展,自定义s o a p 消息并对s o a p 消息进行压缩,实现s o a p 消息的高 效传输和高效解析,从而提高服务器端n e t 组件和c o t 组件之间互操作的交互效率; 将基于c o m 的组件封装成w e b 服务组件和r e m o t i n g 组件 具体阐述了在n e t 环境下,将基于c o m 的组件封装成w e b 服务组件和r e m o t i n g 组件的详细步骤,使w e b 服务组件和r e m o t i n g 组件能够与c o m 组件进行互操作,并 给出一些具有代表意义的关键性代码和说明; 1 3 本文的内容安捧 本文围绕n e t 环境下的软件组件互操作,大致分为六章:第一章为引言部分: 第二章对组件化技术进行了大致介绍;第三章分别介绍了n e t 环境、w e b 服务和 r e m o t i n g 的技术要点,并对w e b 服务和r e m o t i n g 进行了相应的分析;第四章对n e t 组件和c o w 组件之闯互操作的各个方法傲了详尽的描述:第五章主要阐述利用s o a p 扩展以提高互操作的方案设计以及实现;第六章结合项目实际应用将基于c o t 4 的c a x a v a u l t 封装为w e b 服务和r e m o t i n g 的设计以及一些关键性技术实现;第七章为总结 与展望。 3 硬士论文 髓t 环境下软件组件之间的互操作方法研究 2 组件化设计的基本技术 组件开发模型所开发的组件具有很好的复用性,可以使软件系统更为结构化,同 时也可以使软件开发者分工更为明确。所以组件技术已经成为软件开发中使用最为普 遍的技术本章对组件技术以及各种常见的组件做了简要的描述,然后介绍了遗留系 统,并结合组件技术分析了对基于组件的遗留系统的封装和集成问题。 2 1 组件技术概述 组件技术是在面向对象技术基础之上演化丽来的,它是为了解决软件发展领域的 一些难题而提出的软件设计方法“、“在数据库应用程序中。采用组件技术可以达 到隔离前端应用程序与数据库的目的连接相应数据库之后,就不必考虑低层细节, 可以改变数据访问实现逻辑丽不影响前端。组件一般具有如下属性: 1 ) 组件是可独立配置的单元这是它与对象的本质区别组件内部独立设计、独 立开发,可迸行独立测试、独立发布; 2 ) 组件强调与环境和其他组件的分离,因此组件的实现是严格封装的,外界没有 机会或没有必要知道组件内部的实现细节,为了尽可能的消除软件之间或者是软件的 不同部分之间的联系,组件内部设计应该强内聚,而组件之问则尽量追求松耦合; 3 ) 组件可强在适当的环境中被不同形式的或不同层次的重复使用,因此组件需 要提供清楚的接口规范,可以与环境交互组件技术强调接口与实现分离,接口是对象 或者组件间的通信协议,实现是对象或者组件的内部细节: 4 ) 组件不应当是持续的,即组件没有个体特有的属性 2 1 1 组件的特点 1 封装性:组件是包装,分发和传递的单元 封装性是将组件视为一个组织概念,将一系列可重用的元素视为一个单元关键 是重用性。组件的这个特点在u 既1 0 和1 1 中定义为如下:“组件是一个可提供模型 元素的物理包的可重用部分”服务器上的组件的封装性是基于组件的分发和部署需 求对于一个企业级的管理一个以上的分布式异构数据库的组件一般分割成许多的 d l l ,分别分配到企业网的特别节点上。 2 服务性;组件是服务的供应者 服务性是将组件视为一个能够为用户提供服务( 操作或函数) 的软件实体这里 是强调组件是服务提供者。设计一个应用程序包括设计组件问如何通过调用对方的服 务来合作在c o m p o n e n td e s c r i p t i o nh o d e l ( o d e ) 中。对面向服务的组件的定义 4 硬士论文艇t 环境下软件组件之问的互操作方法研究 是:“组件是通过接口提供服务的软件包” 3 完整性:组件是数据完整或封装的边界 尽管服务性允许组件操作的独立性,但是没有指明组件的交换边界完整性是强 调组件为一个可以提供独立的,可替换的行为单元,是指组件的独立性完整性是一 种可以被多种不同的面向可重用性技术所支持的解决方案。组件在s t e r l i r 培 s o f t w a r e sc b s e 9 6s t a n d a r d 中被描述如下:“组件是一个独立的软件操作传递包, 它可以用于建立应用程序或者是更大的组件”。 2 1 2 分布式组件的特点 分布透明性是分布式组件系统最显著的特点,它主要包括以下几个方面: 1 ) 位置透明性:即组件在分布式环境中的位置是透明的,用户无需知道服务的 位置。 2 ) 存取透明性:用户对远程组件和对本地组件所采取的操作是一致的 3 ) 迁移透明性:组件在分布式环境中的重定位是透明的,用户无需知道组件在 网络之间的移动 4 ) 并发透明性:对分布式环境中组件的共享访问是透明的,用户不必处理并发 访问的问题,由系统负责维持分布式系统中组件备份的一致性 2 1 3 当代分布式组件的优点 当代的分布式组件可以作为分布式应用系统的基本架构,客户程序与分布式组件 对象之间形成了客户服务器的关系,进一步可构成多层软件模型。其主要特点有; 1 ) 可伸缩性 随着用户数目的增加、数据量的不断增多,分布式应用系统的适应能力就反映了 此系统的优劣当用户数目比较少,数据量不大时,系统显得小巧而快速;当应用规 模增大时,系统也能够正常运行并且在保证性能的情况下不影响可靠性可以自动分 配c p u 或者是服务器。 2 ) 可配置性 分布式软件系统可以很方便地对系统进行重新配置使客户程序和组件程序在不 改交代码的情况下适应不同的网络环境。 3 ) 安全性 分布式软件系统一般具有访问安全性和激发安全性访问安全性指定哪些用户可 以调用组件对象,激发安全性可以指点哪些用户可以在一个新进程中创建新的对象 4 ) 协议无关性 硕士论文 。n e t 环境下软件组件之闻的互操作方法研究 分布式应用系统不要求专门的网络协议,对网络有很强的适应能力。用户可以在 不改变现有网络结构的情况下适应分布式应用软件目前在w i n d o w s 平台下,有以下 一些协议:t c p i p 、i j d p 、i p x s p x 以及n e t b l 0 s 但是对于开发者而言,可以直接利 用其底层网络通信能力,所以是协议无关的。 5 ) 平台独立性 当代分布式组件技术可以把平台相关的二进制标准和平台无关的标准隅离开来, 使其能够很好地适应不同的系统平台,比如:w i n d o w s 与u n i x 2 2 各种组件介绍 2 2 1c o n 组件 c o i l 是一种以组件为发布单元的对象模型,这种模型使组件以一种统一的方式进 行交互 如图2 2 1 1 所示,c o m 主要是由对象和接口两部分组成,对象通过接口为 客户提供各种形式的服务。对于c 伽对象来说,接口是它与外乔交互的唯一途径,客 户程序用一个指向接口数据结构的指针来调用接口成员函数。c o m 定义的每一个接口 都必须从i u n k o o w n 继承过来,其原因在于i u n k n o w 接口提供了两个非常重要的特征: 生存期控制和接口查询。 接口1 接口2 图2 2 1 1c 0 1 4 结构图 c 0 1 4 采用了。引用计数技术”来解决内存管理的问题,通过引用计数来决定c o l ( 对象是否继续生存下去,c 例对象的客户程序可以通过接口指针很好地控制对象的生 存期。图2 2 1 2 显示了c 伽接口的结构。 6 硕士论文。陋r 环境下软件组件之甸的互操作方法研究 i 曲k i 接口指针f 1 指针r 指针函数1 指针函数2 对象实现 指针函数3 图2 2 1 2c o m 接口结构图 2 2 2 嘴组件 分布式组件对象模型d c 咖是c o m 的扩展”,它可以支持不同计算机上组件对象 与客户程序之间或者组件对象之间的相互通讯对于客户程序而言,组件程序所处的 位置是透明的 0 似组件有甄种进程运行模型:进程内组件和进程外组件。进程外组件又包括本 地进程外组件和远程组件,其中远程组件就是d c 锄d c o m 用网络协议来代替本地进 程之问的通讯,无论客户还是组件都不知道连接是通过网络进行的 当调用d c 伽组件时,在注册表中找到组件的位置,然后通过r p c 在服务器上创 建远程对象,调用服务,最后返回结果给客户端代理d l l 和存根d l l 除了完成r p c 调用外,还需要对参数和返回值进行列集和散集操作 当客户程序调用组件对象的成员函数时,它实际上是调用本进程内代理对象的对 应成员函数,代理对象负责把客户的参数从堆栈中读出,列集并通过弼络传输。当远 程机器上的存根代码接收到这些列集数据后,用这些数据重新建立堆栈组件对象对 堆栈中的返回值和输出参数进行列集处理,并通过网络传输到客户机器中,由代理对 象把结果散集到客户堆栈中。最后返回到客户程序。 2 2 3c o m + 童t 件 c o t l + 把c o l ( , d c o m 和盯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 ) 三者有机地统一起来, 形成了一个概念新、功能强的组件体系结构,真正适合于企业级应用平台” c o m + 的对象引用与环境相关,不能简单地把对象引用从一个环境传递到另一个环 境当客户从一个环境调用另一个环境中的对象时、中间必须经过代理对象和存根代 码,由代理对象拦截调用,负责进行环境切换,保证客户代码和对象分别在自己的环 境中执行。c 0 渺包含两种模型:c o m + 队列组件模型;c o l 4 + 事件模型 7 顿士论文n e t 环境下软件组件之间的互操作方法研究 2 2 4 n e t 组件技术 在n e t 框架中,不仅可以完全访问c o h + 服务,而且也更容易创建服务组n e t 框架组件可被添加至c 0 射应用程序中。在c 删+ 应用程序中,n e t 框架组件可以利用 自动组件服务,例如:事务、对象池、排队组件、事件等等n e t 框架支持大量用 于进程间通讯的可插入通道和格式化程序在托管代码和非托管代码之间进行转换 时,n e t 框架使用了c o m 基础结构,尤其是d c 咖所有使用c o m + 服务的方案都使用 了托管到非托管转换,因此默认使用d c o m 。 m i c r o s o f t n e t 远程处理”“”提供一个允许对象在应用程序域阀互相交互的框 架。此框架提供若干服务,包括激活和生存期支持,以及负责在本地和远程应用程序 之问传输消息的通讯信道。格式化程序用于在通过信道传输消息之前编码和解码信 息。应用程序可以在性能因素比较关键的地方使用二进制编码,或者在必须具有与其 他远程处理框架的互操作性的地方使用) n 儿编码所有) 。编码都使用s o a p 协议从 一个应用程序域向另一个应用程序域传输消息远程处理的设计考虑了安全性,并提 供许多挂钩以使信道接收器在流通过信道传输之前可以访问消息和序列化流 n e t 组件除了具有大多数组件的特点,如组件的二进制兼容性、接口与实现的 分离、对象位置透明性、安全性和语言独立性,还具有以下一些新的特性; i ) n e t 组件都是从s y s t e 吐o b j e c t 类派生,都是s y s t e 札o b j e c t 类的多态表现 2 ) n e t 组件没有类工厂,由运行时环境把类型声明解析成包含a s s e m b l y 3 ) n e t 组件不使用引用计数管理对象的生命周期,由无用单元回收器自动清除 对象 。 4 ) n e t 组件没有描述接口和定制类型的 d l 文件或类型库,类型定义嵌在 a s s e m b l y 中作为元数据 5 ) w e t 组件不依靠注册表管理,安装n e t 组件只要把它复制到应用程序的目录 下直接使用w e t 严格维护版本控制,允许同一组件的新旧版本在同一台机器上同 时运行,这就解决d l lh e l l 问题 2 3 组件技术与遗留系统 2 3 1 遗留系统的定义和特点 计算机技术飞速发展,日新月异,许多企业因为业务发展的需要和市场竞争的压 力,需要建设新的企业信息系统。在这种升级改造的过程中,怎么处理和利用那些历 史遗留下来的老系统,成为影响新系统建设成败和开发效率的关键因素之一文章称 这些老系统为遗留素统。 l 硬士论文n e t 环境下软件组件之间的互操作方法研究 目前,学术界和工业界对遗留系统的定义没有统一的意见。b e n n e t t 在1 9 9 5 年 对遗留系统作了如下的定义“:遗留系统是大家不知道如何处理但对组织又是至关 重要的系统b r o d i e 对遗留系统的定义如下“;遗留系统是指任何基本上不能进行 修改和进化以满足新的变化了的业务需求的信息系统。 据认为,遗留系统应该具有以下特点: ( 1 ) 系统虽然完成企业中许多重要的业务管理工作,但随着企业业务的不断扩 展,已经不能完全满足企业的需求 ( 2 ) 系统虽然在性能上能够满足要求,但是随着企业间的协同合作的不断加强, 企业要求能够在i n t e r n e t 范围内共享其产品数据等等,现在的软件系统只能在局域 网或者i n t r a n e t 范围内运行,不满足这方面的要求。 ( 3 ) 通常是大型的软件系统,由不同的开发者,在不同的时期,采用不同的语言 进行开发,并运行于不同的操作系统平台中,彼此之间很少实现信息的共享 本文中讨论的遗留系统符合b r o d i e 对遗留系统的定义,研究目的是通过w e b 封 装使遗留系统能适应i n t e r n e t 运行环境的需要。 2 3 2 遗留系统的包装和集成 在过去三十年间,大量使用旧技术( 例如使用过程化语言) 的软件得到了发展, 这类系统已经经历了很长一段时间严格的代码修改。结果,不完整的设计文档和体系 结构使得维护变得更加困难,花费时间更多,维护费用更高。另一方面,这些系统有 着重要的经济价值。它们中的大部分对于企业来说都是非常重要的。对于这些投资高、 专用性强的系统来说,简单抛弃它和重新使用新技术来开发新系统都不是一个好的选 择。对遗留系统进行移植,将其移植到一个新平台上,同时保持遗留系统的功能并且 使系统继续工作,显然是一个比较简单的方法,同时移植使系统具有更多的灵活性、 更易理解、更易维护、成本更低。现在对遗留系统进行移植用得比较多的就是对遗留 系统进行包装和集成 遗留系统要能够与新系统集成,傲到即插即用,首先必须进行包装。包装实质上 是用一个掩藏老系统不需要的复杂性和输出一个现代接口的软件层来包围遗留系统。 每一个新系统的出现都会带来遗留系统包装的问题,w e bs e r v i c e 技术作为一种新技 术,由于它能提供跨平台、穿越防火墙的访问能力,基于一系列的公开标准,因此w e b s e r v i c e 的应用成为研究的热点,很多大公司也推出了自己的w e bs e r v i c e 平台,例 如m i c r o s o f t 的n e t 平台,i 蹦的w e b s p h e r e 也提供基于j 2 e e 的w e bs e r v i c e 平台, 用f f e bs e r v i c e 包装遗留系统也成为很多公司和机构研究的方向。 目前,存在着众多的遗留系统,由不同的开发者,在不同的时期,采用不同的语 言进行开发,并运行于不同的操作系统平台中,彼此之间很少实现信息的共享。因此, o 硬士论文舰r 环境下软件组件之问的互操作方法研究 有必要把这些遗留系统集成起来,使它们成为一个运行整体,实现数据共享,同时也 保证遗留系统的运行稳定性及安全性。而且,传统的信息集成技术,由于自身的限制, 不能很好地解决遗留系统的跨平台集成,以及集成系统的安全可靠运行c o r b 定义 了一种语言无关的通信方式,基于这种优势,有研究者提出了基于c o h b a 的遗留系统 集成模型,并提出对遗留系统的集成方案虽然基于c o 髓a 的遗留系统集成模型有一 定的可行性,但是由于企业防火墙通常辉阻止对象请求代理( o b j e c tr e q u e s tb r o k e r , o r b ) ,所以这种模型对于传统信息系统的集成还是具有一定的局限性 2 3 3 基于组件的遗留系统及其包装集成方案 基于组件对象模型( c 嘣) 开发出来的组件具有诸多优点,并且基于组件对象模 型开发出来的代码的重用性提供了一种模块化和面向对象的技术标准,它定义了定位 和辩识其他组件的功能的标准方式,可以用各种语言编写和使用,所以许多的遗留系 统都是基于组件对象模型开发出来的 但是基于c 嗍开发出来的这些遗留系统,由于g 叫固有的一些缺点和局限性,因 此难以在i n t e r n e t 环境下进行部署和应用,只能在局域网或者i n t r a n e t 内部进行部 署和应用一方面随着现在企业业务的不断发展。需求也在不断增加,诸如软件集成 或者能够重复利用原来的软件系统,另一方面随着企业问的协同合作的加强。企业要 求能够让自己的企业数据能够在i n t e r n e t 范围内得到共享,从而能够加强企业间的 协同合作。 m i c r o s o f t 的v i s u a ls t u d i o n e t 是一款具有高度集成的开发环境、具有多种 软件开发语言的软件开发框架n e t 本身是许多组件的集成。是随着业界对w e b 服 务的日益重视产生出来的,同时n e t 具有着新的技术r e m o t i n g ,所以n e t 对于 基于组件对象模型开发出来的遗留系统的包装和集成有着非常大的优势和便利 w e b 服务技术利用标准网络协议和x m l 数据格式进行通信,具有良好的酱适性和 灵活性,并提供在互联网范围内进行服务注册和发现以及调用的手段,帮助企业挖掘 发挥现有技术的最大功能,打破各类应用系统在不同体系上的束缚,在互联网上方便 地进行发布、发现和互操作,进而打破企业间的界限,实现信息的集成与封装,从而 成为对现有产品进行改造的一个重要技术手段 v i s u a ls t u d i o n e t 的另外一种技术r e t i n s ,是一种分布式处理方式, 从n e t 的技术角度来看,r e m o t i n g 就是d c o m 的一种升级,提供了一种允许对象通过 应用程序域与另一对象进行交互的框架,主要用语管理跨应用程序域的同步和异步 r p c 会话n e tr e m o t i n g 提供了非常灵活和可扩展的编程框架,具有很多的优点, 比如r e m o t i n g 性能非常好,速度接近d c 例,r e m o t i n g 可以供开发者选择传输通道类 型( 如h t t p ,t c p ) 和格式类型( 如b i n a r y ,s o a p ) ,r e m o t i n g 还支持开发标准( h t t p , l o 硬士论文n e t 环境下软件组件之问的互撮作方法研究 s o a p ,w s d l ,x m l ) 并且拥有c o m m o nt y p es y s t e m ( c t s ) 和c o u p o nl a n g u a g er u n t i m e ( c l r ) 所拥有的易于使用和功能强大的特点 基于n e t 对于c o m 组件在包装和集成方面的诸多优势和便利,使用w e b 服务和 r e m o t i n g 对基于c o m 的遗留系统进行包装和集成,也就成为最好的选择。 、 2 4 本章小结 组件技术已经成为运用最为普遍的软件开发技术,本文先用一小节的篇幅介绍了 组件的诸多特点;然后简单介绍了现在的各种组件的结构模型和特点等;最后详细对 遗留系统进行了介绍和分析,包括其定义、特点以及对遗留系统的包装集成,并且结 合组件技术提出了对基于组件的遗留系统用w e b 服务和r e m o t i n g 进行进行包装和集 成的方案 磺士论文 n 盯野境下软件组件之间的互撰作方法研究 3 n e t 环境 m i c r o s o f t 创立之初的目标是“在每一个地方,每个人的办公桌上都有一台运行 m i c r o s o f t 操作系统的计算机”。最近,m i c r o s o f t 认为这个目标已经实现,并确立了 新的目标一。使l i i c r o s o f t 用户可以在任何时间,任何地点、通过任何设备获得信 息”,并决定通过“新一代w i n d o w s 服务( n g w s ) 即m i c r o s o f t n e t 来实现这一新目 标 3 1 n e t 环境

温馨提示

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

评论

0/150

提交评论