




已阅读5页,还剩49页未读, 继续免费阅读
(计算机软件与理论专业论文)信息系统集成的研究和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【摘要】 w i s s s 2 3 s 今天,随着信息时代的到来,存在着大量的数字信息。它们的存 在增加了我们获得信息的方式。但也存在下列问题:( 1 ) 由于信息提 供商的不同,导致信息格式、检索方式、访问方式的不同,这大大影 响了用户的工作效率。( 2 ) 由于信息提供商的检索方法、手段各不相 同,导致检索效率也不同。因此为了提高信息资源的利用率,使用户 能更快速地、方便地访问所需信息,必须有一个整合过的、统一的、 高效的检索系统。 本文提出并实现了一种信息系统集成方案。主要在三个方面进行 了优化设计:( 1 ) 系统整体性能设计:主要考虑到多数据,高负载 而进行的系统优化措施,使用r 分布式结构,并引入了组件化设计。 ( 2 ) 检索设计:由于信息资源数量大,为了解决检索效率问题,使 用了改进后的倒排表模型的检索系统。( 3 ) 标准化通信设计:对信息 源进行转换并用标准x m l 进行包装,较好地解决了多样性信息的整 合问题。 【关键字】 。 倒排表,组件化,c o m + ,c o r b a ,x m l a b s t r a c t t h i s p a p e rm a i n l yd i s c u s s e s t h r e ei d e a si nt h e i n t e g r a t e di n f o r m a t i o n s e a r c h i n gs y s t e m t h a ti sd e s i g n e dt os o l v et h ei n e f f i c i e n c yi nt h ec o m m o n i n f o r m a t i o ns e a r c h i n ga m o n gt h em u l t ii n f o r m a t i o ns u p p l i e s f i r s t l y , w e a n a l y z ed i s t r i b u t e do b j e c t sa n dc o m p o n e n tt e c h n o l o g yd e e p l yf r o mt h e v i e wo ft h ec o n s t r u c t i o no f c o m p o n e n ts y s t e m s ,a n dd e p i c t t h e c h a r a c t e r i s t i c so fc o m p o n e n ts y s t e m si nd e t a i lw i t hc o m + o n eo f p o p u l a rd i s t r i b u t e dc o m p o n e n t s t a n d a r d sc u r r e n t l y w eu s ei tt os o l v et h e o v e r l o a d i n ga n ds l o w l ys e a r c h i n gs p e e d s e c o n d l y , w ef o c u so nf u l lt e x t s e a r c h i n gt e c h n o l o g y t os o l v et h et i m e - c o n s u m i n gi n f o r m a t i o ns e a r c h i n g w eu s e di n v e r t e d l i s tm o d e lt h a ti sc o m m o nu s e di n f u l l t e x ti n d e x r e s e a r c h w eu s e dt h i sb o t hi nf u l lt e x ts e a r c h i n go fd o c t y p ed o c u m e n t s a n di n s e a r c h i n g o fb o o k s c a t a l o g s l a s t ,w e d i s c u s s e dt h es t a n d a r d c o m m u n i c a t eb e t w e e na l lt h ep a r t so ft h i ss y s t e m i nt h i ss p o t ,x m li s u s e dt os o l v et h i sp r o b l e m k e y w o r d s i n t e g r a t i o n ,i n v e r t e d - l i s t ,d y n a m i ci n d e x ,c o m + ,c o r b a ,x m l 复咀人学顺i 。学位沦文 第一章绪论 i 1 研究背景 今天,随着信息时代的到来,存在着大量的数字信息( 比如,现在出版的绝 大部分书籍,均有相对应的电子版本) 。由于它的易流通以及代价低廉,所以现 在图书馆也大都购置了大量的电子版书籍。它们的存在增加了获得信息的方式。 它的丰富和及时性是其它方式所无法替代的。应该说,大量数字信息的存在大大 方便了对信息的获取。但在使用过程中,也发现了很多不便: ( 1 )由于信息提供商的不同,导致信息源格式、检索方式、访问方式的 不同。特别是检索方式的不同。它导致用户在使用过程中,如需查 找多个信息源,就不得不打开各自的检索接口;面对不同的界面。 这不仅影响了系统的检索效率,也影响了用户的工作效率。 ( 2 )根据信息量的大小,对信息检索的方法也应按需进行选择。但由于 信息提供商的不同导致不同的检索方法、检索效率。如有一个高效 的检索算法,这可以大大节省用户时间。 因此,从使用的角度出发,急需有一个统一的整合系统,能将各信息源包括 进来,提供统一的检索和合理的检索算法。使用户能看到统一的检索界面,以及 统一的信息访问方式。任何一次检索都可自由选择想要的多个信息源,又可以方 便地访问信息,而不必考虑具体信息源。由于信息量的庞大,必须有个合适的分 布式结构,使各部分工作能合理地、方便地分配到各个计算机系统中。另外,由 于信息提供商的多样性和不可预见性,又必须要求该系统有较强的适应性、可扩 展性,能方便地增加、删减信息源。本文从这些角度出发,讨论并实现了一种构 件化的分布式体系结构,它能很好地满足以上要求。 信息数字化的另一个问题就是检索效率问题。数字化信息的增加不但增j j l l 了 信息的体积,其目录信息也以同样的速度增长着。因此不但对信息全文检索时需 要有一个好的方法:即使对书目信息进行检索时,也必须引入全文检索技术。目 前国外对全文索引研究方兴未艾,已有一些较成熟的商用产品出现。由于中西文 问的巨大差异,简单地移植改造国外成果的方法是行不通的。因此在本文中,将 通过对传统的倒排表全文索引模型进行改进,讨论并实现了一种增量模型。由于 它的动态性,无论是对全文检索还是对书目检索,都能很好地应用于信息集成检 索系统;同时,它具有好的索引的空问效率:索引的检索效率;索引的 创建效率。 复 【人学埘i j 学位论文 1 2 主要内容 本文以建立一个大型信息集成检索系统为目标,指出在构造该大型系统中的 难点以及解决方案。 首先,整个系统是基于多个信息系统的,为了提高效率,介绍了分布式结构。 同时引入了组件化设计,介绍和分析了当的研究广泛、应用较多的c o r b a 和 c o m + 技术。具体介绍了c o m + 在该系统中的应用。 文章第二部分介绍了构造系统中碰到的检索效率低的问题。在检索中,由于 信息的数量巨大,即使在书目检索中,也存在着效率问题。本文介绍了基于倒排 表模型的检索系统。在实验中证实它是有效的、合理的检索系统;另外,还实现 了d o c 文档的全文检索,增加了用户检索的方式。 文章第三部分讨论各部分之问的通信问题,由于信息提供商的不同,各信息 的表现形式和储存方式各不相同。为了屏蔽各信息源之f l i 3 的差别。我们对信息用 标准x m l 进行包装,各信息以x m l 的形式进行交流,消除整合程序对信息源 格式的依赖性,从而提高整合程序的适用范围。 1 3 全文结构 本文共分五章叙述: 。 第一章绪论。 第二章介绍了本论文课题的背景、研究目的、全文主要内容和结构。 第三章阐述了采用分布式对象及构筑应用软件的优点及该技术在软件工业 中的趋势。详细介绍了当前业界流行的c o r b a 、c o m + 分布式对象标准,并详 细讨论了c o m + 在该系统中的集成策略。 第四章介绍了基于倒排表模型的检索系统,讨论了它在系统中的两个应用 ( 1 ) d o c 文档全文检索( 2 ) 书目检索。 第五章讲述了信息统一化表示问题;即用x m l 对信息进行包装。 第六章对本课题进行了回顾和总结。并对将来的发展作了展望。 复黾人学颂l 学位论文 第二章系统框架与总体设计 2 1 需求说明 本系统的总体目标就是向用户提供统一的检索界面,使用户通过该界面只需 提交一次检索请求,就能实现对多个独立的信息系统( 如:自建信息数据库、超 星和万方数据库等) 的检索,又以统一的界面向用户返回结果。并在返回结果页 面中,能方便地选择所需信息,而不必考虑信息所在位置。因而向用户提供一个 统一的、整合的信息提供系统,而不再让用户感到信息来源的多样性、复杂性。 实际情况是各信息提供商有各自的信息提供方式,比如有些以w e b 形式向 用户提供信息,有些为f t p 形式。各信息提供商也各自提供了自己的检索平台, 有些以网页f o r m 形式、有些则是独立的检索程序。 因此,在设计该系统时,是以单个w e b 服务、单个整合服务、多个信息源 的结构构建的。考虑到负载问题,我们引入分布式结构。各信息源以各自形式存 在于不同的应用服务器中。另外各信息源也提供了自己的检索信息、手段( 大部 分以书目的形式存在于数据库中) 。一般将相应书目信息放在对应的信息源应用 服务器上( 也可分开放) 。当检索时,在各应用服务器上有代理来检索书目信息 ( 或其它方法) ,从而向整合服务器返回x m l 书目信息。因此,当讨论到检索 时,又将应用服务器称之为检索代理。 2 2 系统网络结构 网络结构如图2 - 1 所示: 复旦人学砸i 掣位论文 图2 一1 名词解释: 1 应用服务器( 检索代理) 存放信息资源和检索信息,并提供各个数据源的检 索和全文浏览服务; 主要作用就是提供检索代理以及信息资源的提交。信息检索的要求由整合服 务器分发。各应用服务器在各自的信息系统内进行检索。从而实现分布式检索。 当用户选择信息后,通过整合服务器向某应用服务器分发信息需求要求。最终由 应用服务器提供信息资源。 2 数据库服务器提供以数据库形式存放的书目信息的检索; 可以存放由信息提供商提供的书目信息。 3 整合服务器提供不同数据源的信息整合并与w e b 服务器交互; 整合服务器兼有整合和调度的功能。它将用户检索要求进行分析后,向备应 用服务器分发检索条件。当各检索结果返回后,又对结果集进行整合,形成统一 的检索结果提供给w e b 服务器。当信息需求到来时,由整合服务器向某个对应的 应用服务器转发请求。 4 w e b 服务器负责以网页的方式提供信息检索和浏览服务: w e b 服务器提供普通的w e b 访问服务,使用户能通过页面的方式检索和访问 信息。也提供一定的安全管理。提供日志,有利于用户追踪。 5 安全和数据管理机器负责安全和数据更新管理: 安全和数据管理机器出管理员使用,对w e b 服务器产生的同志进行分析,并 通过w e b 服务器给用户设置权限。另外还负责应用服务器和数据库服务器的更新 操作。对自建数据库提供书目录入界面。 6 复旦人学硕l :学位论文 2 3 实现结构图 实现结构如图2 - 2 所示: 图2 2 实现,且都为进程内组件形式,这样当负载较高时可容易配置成c o m + 分确 式结构,同时当某信息源较小时也可集中于同一服务器中( 如整合服务器中) , 这样,c o m 以本地进程内组件运行,极大地提高了效率。 2 4 系统逻辑结构 系统从逻辑上,可分成三大部分:整合服务、检索代理、索引设计。整合服 务位于整合服务器中,负责从接受w e b 服务器接受请求串、分发请求串、整合结 果。检索代理负责从整合服务器处接受请求串,进行检索并返回结果。索引涉及 到书目的索引和全文索引。 复口人学顺i 。学位论义 2 4 1 整合服务 整合功能结构图 图2 3 说明: 从w e b 接口处获得检索请求。请求有固定的x m l 格式,格式将在后面介绍: 分析请求部分的功能是判断检索请求是不是合法,合法性判断可根据d t d 中定义 的舰则进行判断( 在第五章里具体介绍) 。然后察看要检索的信息源,如上例即 为超星、万方等多个信息源。分析结果完毕后就进行请求分发,分发时首先察看 配置信息,得到信息源的地址或c o m 对象。然后分别向各个信息源代理目标发送 单个检索请求 从代理返回的结果以x m l 格式,具体介绍在以后对结果进行x m l 包装里介 绍 2 4 2 检索代理 代理结构图: 复h 人学硕i 学位论文 图2 - 4 从整合服务得到检索请求后,首先分析检索请求,看是不是合法,比如该信 息源是否有该检索字段;然后根据请求进行相应的检索动作。当进行检索时,应 根据各个检索源不同的特点,进行不同的操作,如对自建信息数据库进行全文检 索时,首先经索引得到目标名,然后根据目标名查找自建数据库,从而得到目标 文件的其他信息,然后将所有命中的文件信息以x m l 形式返回。 检索数据来源介绍 考虑到数据源的多样性以及不确定性,系统必须提供了多样的数据录入接 口,以适应各种情况,归纳起来共有三点: 由数据源提供者提供应用程序接口( a p ) ,可以检索和返叵i 书目信息。接口 的参数至少包括检索入口和检索内容两个参数。这种方式的特点是可以不考 虑信息源的内部结构,缺点是需要信息提供商合作,需要他们实现该a p i 。 由数据源提供者提供书目信息,格式为m a r c 或者数据库( 包含相应的文档 资料) 。优缺点跟上方法相反,只需要信息提供商提供现成的书目信息, 而不需他们编写任何代码。缺点是许多提供商不愿暴露各自的内部结构。 数据源支持以纯测览器方式进行书目检索和测览的功能( 不需要用户安装特 殊的插件,或者运行j a v aa p p l e t ) ,即支持h t m l 方式的提交和返回。对于 信息提供商来说,这是对他们最好的方式,不用进行任何操作又不会暴露任 何内部信息。缺点是实现需大量代码,且对不同网页实现的代码可重用性较 低。 以上三个方法中,可由数据源提供者选择使用。我们将对每一数据提供商提 供的数据录入方法,适配程序网关。使它能整合到统一信息资源库中。 复旦人学颂l 学位论文 2 4 3 索引构件 索引结构如图 索0 i 库 图2 5 索引构件实现了倒排表全文索引模型,主要用在两个方面:图书的全文检索 和书目信息的索引。 2 5 系统设计要点 1 ) 整合设计:主要是为了解决负载高、响应速度慢的问题,系统设计了 种分布式结构,并引入了构件化设计。具体情况在第三章讨论。 2 ) 索引技术设计:考虑到信息量大,要提高系统的效率,必须引入索引技 术。本文提出了一套使用倒排表模型的解决方案。并对该模型进行了 番改进,使它更合理地应用于该系统中。孩设计在第四章详细讨论。 3 ) 标准化通信设计:由于信息源的多样性和不稳定性。我们必须考虑个子 系统的同信问题,使各子系统有更大的适应性。文章在第五章详细讨论 了该问题的x i d l 解决方案。 2 6 开发环境 本大型信息检索集成系统的开发环境为: 操作系统 选择m i c r o s o f tw i n d o w s2 0 0 0s e r v e r 为开发平台 数据库管理系统 以s q l s e r v e r2 0 0 0 为后台数据库,通过a d o 访问。 开发语言 以v c 6 0 作为主要开发语言,负责开发c o m 构件用作整合服务和 信息检索代理,同时采用v c 6 0 或v b 丌发日志察看程序和配置程序。 w e b 开发语言 由于a s p 可方便地建立、使用c o m 对象,因此采用a s p 作为w e b 开发语言。 2 7 界面设计 1 0 复咀人学碗i j 学位论文 1 ) 检索界面如图: 图2 - 6 检索界面 上图即为检索界面,在这里可自由选择数据源,也可选择检索方式( 如按书 名、全文、作者等) 。 2 ) 检索结果界面如图 图2 7 结果返同界面 上图为检索结果界面,可看出不同信息源的检索结果的整合效果。 复口人学倾上学位沦史 第三章信息资源整合设计 系统首要目标就是对各信息系统进行整合,从第二章可得知系统为分布式结 构。因此,设计出一个合理的、健壮的分布式结构,是系统成功的关键。这里在 实现分布结构的办法是引入了构件化技术。 3 1 构件化技术简介 构件( c o m p o n e n t ) 是一个或多个服务的物理封装,是可重用的软件单元。它 可以是一段二进制代码( e 或d l l ) ,数据库触发器或存储过程的集合,或一段 任何软件实体。构件是可预编泽、预测试、可重用的应用构造模块。构件的内部 构造和实现对外界是隐藏的,但构件可以通过输入输出参数被其他应用程序或构 件调用。 构件的方法来源于软件重用的思想。构件技术是伴随着软件丌发危机和困境 迎刃产生的。随着应用系统的日益庞大,软件开发出现了一系列问题: 夺开发效率低。 夺软件适用性差。 夺对软件开发成本和进度的估计常常不准确。 夺用户对”已完成的”软件系统不满意现象经常发生。 夺软件产品的质量不可靠。 审软件常常是不可维护的。 夺重复工作。软件工程师必须从头开始实现应用软件的代码,浪费众多的 劳动。 夺软件开发周期长,重复开发现象严重。 令软件质量难以保证。 构件方法以抽象数据类型为基础,借用了硬件电路设计集成电路的思想,先 构造出软件的集成块,通过软件集成块的组建,形成更大的软件模块,最后调试、 连接、汇编成一个可用的软件产品。通过使用构件,有以下优点: 夺构件可共享和重用。一个构件可以同时被多个其它应用程序或构件调用, 大大节省开发时间和投入。 提高软件开发的效率与质量。 夺提高开发大型软件系统的效率。 夺与对象类似,构件具备透明性与封装性。软件开发人员无需了解构件的 具体实现细节,相反,只需了解构件的接口即可。 复入学坝,1 二学位论文 构件的构造应遵循以下原则: 夺增强构件的可重用性,提高抽象的级别。 夺可理解性,构件应该有完整的文档。 夺构件代表一个抽象,有很高的内聚力,必须提供一些所需的特定操作、 属性、事件和方法接口。 夺提高构件的重用程虞,分离功能构件,将可变构件数据化、参数化、适 应具体的应用需求。 夺构件的尺寸大小、复杂度适中。 夺构件要易于演化,数据与其结构封装在一起,数据存放在数据构件对象 中,能主动解释其结构。 3 2 基于构件化技术的分布式体系结构 随着构件技术的发展,使得软件开发由传统的c s 模式逐步转向为适合网络 环境的c s s ,即客户机服务器月艮务器模式,在该模式下,客户机通常用于完 成人一机交互与应用的表示,如w e b 浏览器;中间层即第一级服务用于应用语 义计算,即事务处理,中间层可以利用多个构件如w e b 和应用程序服务器来组 成:后一级服务用于应用数据的存取与管理,包括数据存储,如关系型或面向对 象数据库。下图为典型的三层计算模型。 复旦人学坝i j 学位论文 幽3 1 由此可见,分布式环境下软件系统正在向瘦客户机方向发展,要求服务器提 供大量、完备的服务,即应用程序中数据的表示与数据的存储分离,从而各部分 之问的通信成为一个非常重要的因素。 基于三层的分布式计算往往为异构环境,如何解决异构环境的系统集成是决 定此类系统开发和应用能否成功的关键问题。然而,解决分布式计算环境中的异 构性并不简单,尤其是开发出能支持和充分利用异构网络的应用程序和构件是非 常具有挑战性的。在当今的软件工业中,存在着两种互相竞争的标准,即c o r b a 与c o m d c o m 、c o m + ,以下分别介绍。 3 3 c o r b a 简介 c o r b a ( 通用对象请求代理体系结构) 是在当今快速发展的软件与硬件资 源的情况下发展出的一种新技术。它可以让分布的应用程序完成通信,无论这种 应用程序是什么厂商生产的,只要符合c o r b a 标准就可以相互通信。c o r b a 1 1 于1 9 9 1 年由o m g 提出,同时还提出了接口定义语言i n t e r f a c ed e f i n i t i o n l a n g u a g e ,i d l ) 以及能够让客户,月务器对象在特定的o r b ( 对象请求代理) 实现中进行通信。而1 9 9 4 年提出并被采纳的c o r b a2 0 标准才真正实现了不同 4 复且人学i i i i i 学位论文 身i 产厂商间的互操作性。 1 ) 对象请求代理( o r b ) 下面来看看c o r b a 的一些具体情况。c o r b a 被设计用来对不同的对象系 统进行集成,提供灵活的的对象调用与功能实现。下图是客户对织通过o r b 调 用服务器对象。 幽3 - 2 0 r b 是一个在对象问建立客户服务器联系的中间件。使用o r b ,客户可以 调用服务器的对象或对象中的应用,被调用的对象不要求在同一台机器上。由 o r b 负责进行通信,同时o r b 也负责寻找适于完成这一工作的对象,并在服务 器对象完成后返回结果。客户对象完全可以不关心服务器对象的位置。实现它所 采用的具体技术和工作的硬件平台,甚至不必关心服务器对象的与服务无关的接 口信息,这就大大简化了客户程序的工作。既然能够这么方便,那o r b 就需要 提供在不同机器间应用程序间的通信,数据转换,并提供多对象系统的无缝连接。 我们在编制客户月艮务器程序时,常常需要自己定义通信协议,协议的制定往 往与硬件和实现的方法有关,而o r b 能够简化这过程。在o r b 下,协议通 过i d l 语言进行定义,保证了一致性,为了照顾到灵活性,o r b 允许程序员选 择相应的操作系统,执行环境和编程语言。更重要的是它可以使原来的代码通过 一定的方式重用。c o r b a 是面向对象标准的第一步,有了这个标准,软件的实 现与工作环境对用户和开发者不再重要,可以把精力更多地放在本地系统的实现 与优化上。 2 ) o r b 的结构及类型 o r b 通过一系列接口和接口定义中说明的要实现操作的类型,确定提供的服 务和实现客户与服务对象通信的方式。通过i d l 接口定义、接口库或适配器 复口人学倾l 学位论文 ( a d a p t e r ) 的协调,o r b 可以向客户机和具备服务功能的对象实现( o b j e c t i m p l e m e n t a t i o n ) 提供服务。作为c o r b a 体系结构帕核心,o r b 可以实现如下三 利,类型的接口: 对于所有的o r b 实现具有相同的操作; 针对特定类型对象的操作; 与列象实现类型有关的操作。 基于o r b 实现的不同类型接【_ :_ 】,一个客户端请求可以同时访问多个由不同 o r b 实现通信管理的对象引用。在实际应用中,只要遵循公共的o r b 体系结构, 程序设计可以选择o r b 的多种实现方式,其中包括: ( 1 ) 客户和实现驻留( c l i e n t i m p l e m e n t a t i o nr e s i d e n t ) o r b :采用驻留在 客户和服务对象实现程序的方式实现o r b 。在这种实现方式下,客户端可以通过 桩( s t u b ) 程序,以位置透明的方式向具体的实现对象提出服务请求,实现客户 与服务对象的通信。 ( 2 ) 基于服务( s e r v e r b a s e d ) o r b :客户对象和实现对象均可以与一个或多 个服务对象进行通信,服务对象的功能是将请求从客户端发送到对象实现。在这 种方式中,o r b 的作用是完成客户对象与实现对象的通信,为对象之间的交互提 供服务。 ( 3 ) 基于系统( s y s t e m b a s e d ) o r b :在这种实现方式中,o r b 被操作系统认 为是系统所提供的一项基本服务。由于操作系统了解调用方与服务对象的位置, 因而可以充分地实现o r b 功能的优化。 ( 4 ) 基于库( l i b r a r y b a s e d ) o r b :如果认为对象实现可以共享,则可以将 实现功能放入实现库( i m p l e m e n t a t i o nr e p o s i t o r y ) 中,从而创建基于库的o r b 。 3 ) o r b 中的主要方法 客户端和服务对象端均可以自由选择使用o r b 对象中定义的方法来实现操 作。下面举例说明o r b 对象中的重要方法: ( 1 ) o r bo r b i n i t ( i n o u ta r g l i s ta r g v ,i no r b i do r b i d e n t i f i e r ) 作用:o r b 初始化方法。 ( 2 ) s t r i n go b j e c t t o s t r i n g ( i no b j e c to b j ) 作用:将对对象的引用转换成客户可以用字符串方式存储的对象信息。 ( 3 ) o b j e c ts t r i n gt o _ o b j e c t ( i ns t r i n gs i r ) 作用:上述方法的逆过程。将以字符串方式存储的对象转换成对对象类型的引用。 6 复旦人学顶l 学位论文 ( 4 ) o b j e c tr e s o l v e i n i t i m r e f e r e n c e s ( i no b j e c t i di d e n t i f i e r ) 作用:获取初始对象引用。 ( 5 ) p o l i c yg e t p o l i c y ( i np o l i c y t y p ep o l i c y t y p e ) 作用:返回指定类型的服务策略对象。 4 ) 服务请求的实现方式 关于对象请求的实现方式,c o r b a 规范中定义客户程序可以用动态调用接i = 1 ( d i i 。d y n a m i ei n v o c a t i o ni n t e r f a c e ) 方式或通过o m gi d l 文件经编译后在 客户端生成的桩( s t u b ) 方式提出服务请求。这两种实现方式的区别在于通过 o m gi d l 桩( s t u b ) 文件方式实现的调用请求中,客户能够访问的服务对象方法 取决于服务对象所支持的接口;而动态调用接口调用方式则与服务对象的接口无 关。尽管实现调用请求的方式有所区别,但客户发出的请求服务调用的语义是相 同的,服务对象不去分析服务请求提出的方式。 o r b 通过i d l 客户桩( s t u b ) 方式或动态调用接口( d i i ) 方式定位服务对 象的实现代码、传递服务对象应用参数以及完成对请求传送方式的控制。服务对 象的实现( o b j e c ti m p l e m e n t a t i o n ) 通过对象适配器( o b j e c ta d a p t e r ) 提供 对客户请求的服务。客户对服务器端方法的调用方式见图3 - 3 。 3 4 c o m d c o m 、c o m + 模型与技术 与c o r b a 相对立的是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 ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ) 是微软制 定的构件技术标准。 c o m 是构件对象模型及其在m i c r o s o f t 和其他操作系统的实现,是一个用来 实现在单一地址空间交互或在一台主机内不问进程问通信的构件的集成体系结 构。c o m 技术是在o l e 基础上发展起来的,并且克服了o o p 对即插即用软件模型 复人学坝i 学化埝史 ,i :发的支持只实用于源代码线、而不是二进制标准这一缺点。为了实现在操作系 统级平滑地集成不同语言和不同开发者的应用,c o m 建立了一套二进制构件剥象 标准及一个系统级的实现,确保软件构件对象在系统中共存并且相互作用;并且 与传统的a p i 共享服务不同,在连接后,灿l 粜c o m 不再需要,将停止耗用资源。 c o m 是其他技术如o l e 、a c t i v e x 及由m i c r o s o f t 操作系统提供的一系列其他服 务的基础。 d c o m 是c o m 的扩充,提供在分斫i 式计算环境下应用程序的互操作性及可移动 性,允许运行在网络上不同机器上的对象互相交互。 3 4 1 构件对象模型c o m ( c o m p o n e n t0 b j e c tm o d e l ) 幽3 - 4 c o m 的结构如图3 - 4 ,一个c o m 组件或者一个d l l 文件,或者是一个e x e 文件。 一个组件程序可以包含多个c o m 对象,并且每个c o m 对象可以实现多个接口。当 另外的组件或普通客户程序调用组件功能时它首先创建一个c 0 i l l 对象或者通过 其他途径获得c o m 对象,然后通过该对象所实现的c o m 接口调用它所提供的服务。 当所有的服务结束后,如果客户程序不再需要c o m 对象,那么它就释放掉对象所 专有的资源,包括对象本身。 1 c o m 接口 c o m 接口使应用程序和其它组件可以和c 0 5 【组件的功能进行通信。组件功能 通过虚拟函数表( v i r t u a lf u n c t i o nt a b l e ) 访问,也称v t a b l e ,v t a b l e 不包含 实际函数,只是包含组件函数的一组指针。组件要访问其组件的功能时,要通过 这个v t a b l e 。 复日人学嘲i + 学位论文 客户机不能直接访问v t a b l e ,另一指针u q 接口指针( i n t e r i l & c ep o i n t e r ) , 增加了与接口的另一层间接。使这个接口得以实现,即客户机见到v t a b l e 表中 指针的指针。 2 进程内、进程外组件 按组件创建时所在的位置,可将c o m 组件分为进程内和进程外组件之分。 进程内组件的实现在d l l 文件中,当客户端调用组件服务时,将组件程序装入自 己的进程中。由于在同一进程空间里,所以调用组件函数时不用进行中间转换, 可直接进行,因此调用效率非常高。 当组件实现在e x e 文件中时,称之为进程外组件。这样在调用组件函数时就 必须跨进程,这时候,调用过程如下图 羞?客户程组件程 “一 序序 弋理d l l i l : l存根d l l -l l p c 7 图3 5 3 4 2 d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ) 模型 d c o m 是c o m 的网络版本,d c o m 对c o m 进行了一些变化。c o m 可以生成可复 用组件但如果要把组件放在非客户机时会怎么样昵? 因为这正是分布式应用程序 的目标。m i c r o s o f t 已经对此深思熟虑,建立了另一种c o m 一一分布式 c o m ( d i s t r i b u t e dc o m 或d c o m ) 。d c o m 的结构如图: 客户程 组仆程 序序 - 代理_ d l l i i存根d l l r p c ,r 幽3 - 6 从图3 - 6 中可看出,它与c o m 的差别即为将l p c 替换为r p c 。就是这点差别, 是它能应用于分布式结构。 r p c 中介 进行远程过程调用时,它在远程机器上执行一个函数,并从该函数返结果。 分布式进程在应用程序进程之间传递控制和数据,就像本地过程调用一样,但分 布式应用程序传递数据的方式和单处理器系统传递数据的方式有显著的不同。 单处理器系统在过程间传递数据时,可以只传递地址或数据项名称。由于它 9 复黾人学硕士学位论文 们在同一执行环境中运行,数据是共享的,因为存储格式和数据结构通常是相同 的。这时,数据可能在共享内存中。而在分布应用中,则数据要实际包装并在网 络上移动,以便被调进程使用。 r p c 的使用不需要d c o i f 【其它部分支持分瓶式处理。换句话观,可以直接用 m i c r o s o f tr p c 建立分布应用程序。但是,在d c o m 情境中,m i c r o s o f t 用r p c 支持网络上的远程函数调用,r p c 使应用程序开发人员看不到。在d c o i 情境中, m i c r o s o f t 用r p c 作为中介。 3 4 3c 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 、d c o m 和m t s ( m i c r o s o f i t r a n s a c t i o ns e r v e r ) 的集成,它综合了这些技术要素。但更重要的一点是,c o m + 倡导了一利新的概 念,它把c o m 组件软件提升到应用层而不再是底层的软件结构,它通过操作系 统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操 作系统,因此,c o m + 与操作系统的结合更加紧密。 1 ) c o m + 基本结构 c o m + 的基本结构并不复杂,简单说起来,它把c o m 和m t s 的编程模型结 合起来,同时又增加了一些新的特性。 从c o m 的发展角度来看,c o m 最初作为桌面操作系统平台上的组件技术, 主要为o l e 服务。但是随着w i n d o w sn t 与d c o m 的发布,c o m 通过底层的 远程支持使组件技术延伸到了分布式应用领域,充分体现了c o m 的扩展能力以 及组件结构模型的优势。m t s 为c o m 增添了许多新的内容,弥补了c o m 和 d c o m 的一些不足,它注重于服务器一端的组件管理和配置环境。c o m + 进一步 把c o m 、d c o m 和m t s 统起来,形成真正适合于企业应用的组件技术。c o m 、 d c o m 、m t s 以及c o m + 的结构关系如图所示。 复q a 学碗,i 学位论文 图3 7 c o m 十组成结构 c o m + 不仅继承了c o m 、d c o m 和m t s 的许多特性,同时也新增了一些服 务,比如负载平衡、内存数据库、事件模型、队列服务等。c o m + 新增的服务为 c o m + 应用提供了很强的功能,建立在c o m + 基础上的应用程序可以直接利用这 些服务而获得良好的企业应用特性。 c o m + 还提供了一个比m t s 更好的组件管理环境,c o m + 管理程序( c o m + e x p l o r e r ) 也采用了m m c ( m ic r o s o f tm a n a g e m e n tc o n s o le ) 标准界面。对应于m t s 中的包 ( p a c k a g e ) ,c o m + 称之为c o m + 应用( c o m + a p p l i c a t i o n ) ,每一个c o m + 应用也包括 一个或多个c o m 十组件以及与应用有关的角色信息。通过c o m + 管理程序,可以设 置c o m + 应用和c o m + 组件的属性信息,比如组件的事务特性、安全特性等等。 2 ) c o m + 系统服务介绍 c o m + 的系统服务有的从m t s 继承过来,有的是新增加的。包括队列组件、 负载平衡、内存数据库和事件服务,同时也有一些在m t s 中已经引入的、但 c o m + 又增强了的系统服务,包括事务、对象池、安全模型以及管理特性。 下面首先对与系统相关的新增特点进行简单介绍: 1 c o m + 队列组件 我们知道,c o m 客户与远程组件之间的交互是基于r p c 连接的,虽然c o m 也允许异步调用,但客户与组件的生存期必须保持一致,调用必须在连接有效期 范围内进行。 c o m + 除了支持这种基于r p c 连接的运行方式,它还支持另一种运行模式, 我们称为基于消息的通讯过程,它可以有效地把客户与组件的生存期分离开。这 复h 人学碗卜学位论文 种模式通过c o m + 的队列组件服务实现,下图是队列组件的基本模型结构。 图3 - 8 队列组件模型结构图 队列组件对于分布式应用非常有意义,尤其是在慢速网络上运行的应用系 统,这种机制可以保证应用系统能够可靠地运行。在应用系统包含大量客户节点 但服务器数量又比较少的情况下,客户应用程序可以把它们的请求放到队列中, 当服务器负载比较轻的时候再处理这些请求,因此队列机制也从另一个角度实现 了应用系统的负载平衡以及可伸缩特性。 , 2 负载平衡 c o m + 提供了一个负载平衡服务,它可以以透明方式实现动态负载平衡。如 要使组件支持负载平衡,首先我们必须定义一个应用集群( a p p l i c a t i o nc l u s t e r ) ,应 用集群是指一组已经安装了服务器端组件的机器( 至多可达8 台机器) ,然后把一 台机器配置成负载平衡路由器( r o u t e r ) ,负载平衡路由器会把对象的创建请求传递 到应用集群中的某一台机器上。 c o m + 负载平衡应用模型中对象剑建过程如下图所示。 复日| 大学碱i 。学位论文 图39 负载、f 衡模斌f 对象创矬i 意图 客户程序仍然可以按通常的方式创建远程对象,在c o c r e a t e l n s t a n c e e x 函数 中指定路由器机器名,当创建成功之后,它得到的对象实例运行在当前负载最轻 的服务器上。路由器检查c o m + 目录,看请求创建的组件对象是否支持负载平衡, 如果是,则它根据路由算法,把创建请求路由到负载最轻的服务器上。然后,应 用集群中的服务器接收到创建请求之后,它就创建对象,并把对象引用直接返回 给客户机。因此,一旦对象已经被成功创建,那么客户与对象之间的连接是直接 进行的,而不必再通过路由器。 3 ) 总结 总的来说,有以下几个主要特性: 真正的异步通讯。 事件服务。 可伸缩性。动态负载平衡以及内存数据库、对象池等系统服务都为c o m + 的 可伸缩性提供了技术基础。 可管理和可配置性。 易于开发。 3 5 c o r b a 、c o m d c o m 和c o m + 比较 虽然d c o m 提供了与c o r b a 相同的软件集成功能,但d c o m 最大的一个缺陷是 它对p c 平台依赖性。虽然微软提供了d c o m 向u n i x 移植的解决方案,但代价是 高昂的。而c o r b a 提供的软件集成功能适用于p c 平台和非p c 平台,当然也能跨 平台的使用。进一步,o m g 将c o m 在p c 上的优势吸收到了c o r b a 中。 作为第一个以面向对象和多平台为主要目标的中间层技术,c o r b a 有足够的 时间发展得比d c o m 成熟。c o r b a 的发展起点是面向编程,而d c o m 是起源于文档 结构的o l e ,这使得c o r b a 定义的接口比d c o m 的更容易理解。得益于这种简单 定义的基于编码层的接口,采用c o r b a 的用户能创建可靠的应用集成,尤其是集 成一些抽象的不易被协调改动的程序或系统的时候。相反,d c o m 提供的是复杂 和不明了的基于c + + 函数的二进制码编程接口。虽然借用高层次的工具,用户能 够很快产生框架结构,但由于一般很难处于编码层,对这些复杂的结构,用户显 得难于理解和难于维护。 c o m + x e 是微软考虑上述d c o m 的问题后,而推出类c o r b a 的独立于编程语言 的d c o m 改进技术,但同c o r b a 技术相比,上述问题依然没有完全解决,特别是 跨平台方面。 但同c o r b a 相比,c o m + 也有开发简单,以及与w i n d o w s 联系紧密的特点,而 复旦人学颅i 学位论文 w i n d o w s 则是使用最多的客户端平台。 3 6 信息资源整合系统构件化设计 我们的宗旨是将系统设计与实现构件化。将整个系统设计成独立、互相交互 的构件,最终实现一个以构件为基础,具备良好的维护性与互操作性的系统。本 节将具体讨论这方面的问题。 系统中的构件化设计主要使用在检索方面,检索用例图如下图: 图3 一1 0 从图3 1 0 中可看到检索主要分两大部份,整合和代理。一般而言从功能角度 上将整合部分放在整合服务器上,检索代理放在各自代理机器( 应用服务器) 上。 也可从性能角度出发,在物理上进行重新划分,如检索代理负载较小时,则可放 在整合服务器上或几个代理共用一个机器。 由于这是一个分布式结构,引入构件以后则成分和式构件系统。现在比较成 熟的有m i c r o s o f t 的d c o m 以及较新的c o m + 结构和c o r b a 结构,应该说这两 种体系各有各的优缺点,应用户要求本系统采用c o m + 结构;这里主要介绍 d c o m 和c o m + 结构。为了对比,也介绍不用构件技术
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB23-T 3561-2023 城市桥梁自复位拉索减震支座技术规程
- 年产7350吨农用摇臂轴项目可行性研究报告
- 汽车水性抗紫外涂料项目可行性研究报告
- 防汛知识培训课件医院
- AbMole小课堂丨Staurosporine(星孢菌素):广谱激酶抑制剂的作用 机制及其在肿瘤、神经生物学上的研究应用
- DB65T 4100-2018 羊肺丝虫病的诊断与治疗规程
- 防意外伤害自救知识培训课件
- 建材买卖合同2篇
- 2025年信托合同2篇
- 部队军事体能训练教学课件
- 2025四川蜀道建筑科技有限公司招聘16人备考练习题库及答案解析
- 80年血火淬炼此刻亮剑正当时:纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵仪式对初中生的启示-2025-2026学年初中主题班会
- 2025-2026学年西师大版(2024)小学数学一年级上册(全册)教学设计(附目录P227)
- GB/T 45777-2025水泥中石膏掺量评估方法
- 任务一切中断时的接发列车办法授课颜保凡课件
- 情侣合伙开店合同范例
- 《宠物美容与护理》全套教学课件
- 表面工程学第十二章-表面微细加工技术
- 山东大学工程流体力学(杜广生)课件第5章 粘性流体的一维流动
- 底拖法在管道施工中的应用
- Toeic托业考试真习题及答案
评论
0/150
提交评论