已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要: b “毽 驴z6 6 8 本文从当前应用系统的外部特性出发,分类讨论三种系统集成方法。首先 从构件系统软件内部构筑方式着手,分析了分布式对象与构件技术,以当前业 界非常流行的分布式构件标准c o r b a 为代表详述了构件系统的特点,在 此基础上描述和举例说明基于c o r b a 的集成思想。随后针对两种封闭系统的 集成思想作深入剖析。,一种是比较特殊的封闭系统w e b 系统,在介绍完一 些概念、技术之后,给出了w e b 数据转换集成的技术框架,利用它来封装现有 的w e b 系统。另一种系统为基于可执行程序的封闭系统,文章介绍了这种系统 的定义和特点,又详细描述了h o o k 以及h o o k 设计模式,并将h o o k 设计模式融 入到这类封闭系统的集成思想中,在一些情况下解决了封闭系统功能扩展的要 求。同时以网络图书馆项目为例对该集成思想进行了设计和实现。最后,本文 对本课题进行了回顾和e e , 结,并对将来的发展作了展望。) “7 关键词: 集成,封闭系统,h o o k 设计模式,c o r b a ,w e b 数据转换 a b s t r a c t : t h i sp a p e rm a i n l yd i s c u s s e st h r e es y s t e mi n t e g r a t i o nm e t h o d sr e s p e c t i v e l ya c c o r d i n g t ot h ec h a r a c t e r i s t i c so fc u r r e n ta p p l i c a t i o ns y s t e m s f i r s t l y , w ea n a l y z ed i s t r i b u t e d o b j e c t s a n d c o m p o n e n tt e c h n o l o g yd e e p l y f r o mt h ev 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 tt h ec h a r a c t e r i s t i c s o fc o m p o n e n ts y s t e m si n d e t a i l w i t hc o r b a o n eo fp o p u l a rd i s t r i b u t e dc o m p o n e n ts t a n d a r d sc u r r e n t l y - a st h e t e c h n i c a lc o r e a n dt h e nt h ei n t e g r a t i o ni d e ab a s e do nc o r b ai sr e a c h e dn a t u r a l l y a n dn a r r a t e db y e x a m p l e s e c o n d l y ,w ef o c u so n t h ei n t e g r a t i o nm e t h o d so ft w ok i n d s o fs e l f - c l o s e ds y s t e m s o n e s - s y s t e m sb a s e do nw e b ,a r es p e c i a la m o n gt h es e l f - c l o s e d s y s t e m s a f t e r s o m e c o n c e p t s a n dt e c h n o l o g ya r el i s t e d ,w e p r e s e n t t h e a r c h i t e c t u r eo fo u rw e b d a t ac o n v e r s i o n i n t e g r a t i o nt e c h n o l o g y , e n c a p s u l a t i n g e x i s t i n g w e bs y s t e m s t h eo t h e ro n e sa r e g e n e r a l s e l f - c l o s e d s y s t e m s b a s e do n e x e c u t i o nf i l e s p a p e ri n t r o d u c e st h ed e f i n i t i o na n dc h a r a c t e r i s t i c so ft h es y s t e m s , d e s c r i b e sh o o ka n dh o o kd e s i g np a a e m ,a n dt h e na d d sh o o kd e s i g np a a e mi n t ot h e i n t e g r a t i o ni d e a m e a n w h i l e ,t h e i d e ai s d e s i g n e d a n di m p l e m e n t e dw i t h i nt h e i n v o l v e de x a m p l e o u rn e t w o r kl i b r a r y p r o j e c t i nt h ee n d ,t h ep a p e rm a k e sa c o n c l u s i o na n d p e r s p e c t i v e k e y w o r d s : i n t e g r a t i o n ,s e l f - c l o s e ds y s t e m s ,h o o kd e s i g np a t f e r n ,c o r b a ,w e b - d a t ac o n v e r s i o n 笙= 童堕堡 第一章绪论 1 1 研究背景 如何使企业在不同历史时期积累的大量信息和现有应用系统共享集成,以 及如何保证今天的应用系统能与将来的应用系统方便的集成,成为当前企业集 成中亟待解决的问题。企业迫切需要使信息系统的构造从复杂、不可变中解放 出来,能够方便、快速的根据企业业务过程模型实现已有系统的移植和新系统 的引入,从而可以根据企业自适应的要求快速的对信息系统重组。 随着分布处理技术的发展和计算机研究应用领域的广泛深入,人们在应用 系统的研制和开发过程中常常遇到这样的问题: ( 1 )现有系统能够满足部分功能,当需要实现全部功能时,是重新开 发一个满足所有功能的新的大系统,废弃现有系统? 还是在现有 系统基础上开发满足其它部分功能的子系统,再利用集成技术将 已有系统与新开发的系统进行有效集成? ( 2 )应用系统刚开始运行效果良好,但随着技术的发展及需求的改变, 发现系统的适应性和扩展能力下降,系统赖以支撑的核心技术也 不稳定,导致系统维护费用大增,难以维持,甚至瘫痪。 如何正确的认识并妥善的解决这些问题,是摆在研究人员面前的一个难题。 鉴于国内大多数企业和部门的实际情况,作者认为:系统集成既能充分的利用 过去的成果,又能及时的采用最先进的科学技术,而且具有开放性、节省投资、 缩短开发周期、避免重复建设和高可靠性等优点。因此,系统集成不失为解决 应用系统研究和发展问题的一种积极策略。系统集成并不是已有系统的间单堆 积,而是采用先进的集成技术将它们与特定的软件部分有机的结合在一起,形 成一个完备的系统,提高各部件互操作的能力,并使系统的适应性、扩展性大 大增强。今天,随着信息时代的到来,系统集成作为- 1 3 技术对其进行研究有 着十分重要的意义。 1 2 主要内容 本文根据当前应用软件的现状,将应用软件分为开放式系统、封闭式系统。 针对开放式系统,根据规范的说明采用相应的技术集成。我们在第二章主要介 绍和分析了当前研究广泛、应用较多的c o r b a 技术。而对于封闭系统,由于 其特殊性,一般常规的技术无法应用,但在实际开发中需要处理的情况却非常 普遍。在第三和第四章我们将封闭系统分为两大类型分别讨论。第三章主要分 析和解决基于w e b 的系统集成,在章节的结束引用实际项目中的运用来说明其 复旦大学硕士学位论文 第一章绪论 可行性。第四章分析了以可执行程序形式存在的封闭系统,深入其内部结构探 讨系统集成的解决方法,在章节的末尾也引用了实际的例子。 1 3 全文结构 本文共分五章叙述: 第一章介绍了本论文课题的背景、研究目的、全文主要内容和结构。 第二章阐述了采用分布式对象及构筑应用软件的优点及该技术在软件工业 中的趋势。详细介绍了当前业界流行的c o r b a 分布式对象标准,并采用此标 准形成普遍适用的集成策略。 第三章介绍了基于w e b 的系统集成的相关背景,针对h t m l 文档的特点定 义了描述文件的格式,已达到系统集成的目的。 第四章分析了可执行程序软件的特点和内部结构,并详述了h o o k 设计模式, 从理论角度介绍实现原理,从实际的角度介绍实现过程。 第五章对本课题进行了回顾和总结,并对将来的发展作了展望。 复旦大学硕士学位论文 第二章构件系统下的集成 2 1 构件技术 9 0 年代软件开发的一个重要进展就是构件化。这是由于现在的系统规模越 来越大,一个系统要求完成的功能越来越多。而大多数软件都是凭借个人的聪 明才智采用手工方式生产,效率低,成本高,开发大型系统的失败率极高。如 何才能提高软件生产效率? 如何保障软件产品质量? 如何减少重复劳动? 软件 的生产方式亟待一次根本性的转变。 软件工业产生的巨大危机使人们开始向硬件工业的成功寻找帮助。2 0 年前 集成电路技术的出现改变了硬件工业的生产模式。硬件厂商开始把一些晶体管 封装起来,提供一些特定的功能,如与非门电路,这些封装起来的具有特定功 能的电路就是集成电路。集成电路能方便的制造和销售,同时它也为硬件的设 计提供了很大的方便,设计师不需要从最基本的晶体管开始设计,只需用现成 的集成电路来构筑整个硬件系统。随着硬件变得更加复杂,集成电路被集成在 一个芯片的主板上以提供更复杂的功能。随着硬件技术的进步,这些芯片可以 被做得越来越小,可以有更多的芯片可以被集成在一起,形成超大规模集成电 路。 与此形成鲜明对比的是软件工程师们仍然为繁琐的细节工作而烦恼,他们 必须从头开始实现应用软件的代码,许多精力和实践就如此浪费了。所以,为 了获得更高的开发效率和更好质量的产品,计算机软件工业的生产模式也应该 如生产硬件那样,软件的开发也应像硬件一样成为对各种构件的组装。 软件构件化( s o f t w a r ec o m p o n e n t ) 技术此时就应运而生。构件技术的基本 思想在于:创建和利用可复用的软件构件来解决应用软件的开发问题。构件的 概念范围很广,它可以是一段程序( 可为二进制形式) ,也可以是设计文档, 甚至可以是一种思想。本章所讲述的构件主要指可复用软件,后面将不再特别 指出。 与面向对象编程技术不同,构件技术是一种更高层次的对象技术:它独立 于语言,面向应用程序,用户只需了解构件的外在表现形式,而不用关心其内 部实现方法;它既可以用面向对象语言实现,也可以用非面向对象的过程语言 实现。只要遵循构件技术的规范,各个软件开发商就可以用自己方便的语言去 实现可被复用的构件,应用程序的开发人员就可以通过挑选构件组装成新的应 用软件。 构件化的主要目的是彻底改变软件生产方式,从根本上提高软件生产的效 率和质量,提高开发大型软件系统的成功率。有了软件构件之后,应用开发人 复旦大学硕士学位论文 第二章构件系统下的集成 员就可以利用现成的软件构件装配成适用于不同领域、功能各异的应用系统。 可以预见,构件的使用将极大的促进软件工业的发展。 构件技术主要有以下几个特点: 透明性和封装性 与传统的对象不同,构件不提供源代码,只能通过它的接口被使用,应具 有良好规范的接口( i n t e r f a c e ) 。接口它与的内部实现是截然分开的。接口 是构件提供给外部的功能,构件如何实现这些功能是构件内部的事务。这 样,对外部来说,构件是能提供某些功能的黑盒子;对构件的开发者来说, 这为他们提供了很大的方便:他们可以用面向对象的方法来开发构件,也 可以用过程语言来做开发,甚至可以把一个已经存在的系统包装成为构件, 以保护以前的投资。 预制性 构件由构件开发商独立开发,是一自包含的软件实体,它可以被独立的定 价出售。应用软件的程序员可以购买需要的构件组合成自己的系统。 互操作性 构件可以作为一个服务对象被跨地址空间、跨网络、跨操作系统、跨语言 的进行调用,它是一系统无关的软件实体。 可复用性 构件所提供的功能可以为多个系统使用,可以利用已有的构件来构造新的 软件。 由此可见,构件应该是具有预制性、封装性、透明性、互操作性、可复用 性的个软件单元。 然而,处理分布式计算实体问的异构复用性以实现系统集成不是一个简单 的问题。为了解决构件与构件之间的互操作性问题,相应的软件构件系统的体 系结构和构件接口标准等应运而生。在现在的软件工业中,有两套不同主流构 件标准,即c o m d c o m 和c o r b a ,这两套相竞争的标准各自获得了很大的 成功,它们代表了软件工业中构件技术的发展水平。 由于本论文主要讨论如何解决不同表现形式的系统集成问题,c o m d c o m 和c o r b a 虽然在体系结构、实现细节上有较大的差异,但在此我们不深入研 究,而主要以c o r b a 为代表探讨集成技术的解决方案。 2 2c o r b a 概述 2 2 1 对象管理体系结构 对象技术就是系统以对象为最基本的操作单元,分布式对象技术将对象技 术扩展到异质的网络环境中,不同的计算机系统和语言通过对象间的互操作协 复旦大学硕士学位论文 第二章构件系统下的集成 调工作。其目的是让不同厂家、不同平台、不同语言、不同操作系统下的分布 式对象能方便的进行无缝整合。 o m g 是一个软件行业的国际组织,主要致力于促进对象技术在软件工程中 的运用以及为分布式环境中对象技术的开发和运用提出模型和标准接口,它本 身并不开发软件而仅仅公布软件所依赖的规范。 对象管理体系结构( o b j e c tm a n a g e m e n ta r c h i t e c t u r e - - o m a ) 是o m g 为分 布式对象计算定义的一个抽象结构,o m a 定义了不同组件间的通讯接口,陈述 面向对象环境中标准化服务的必要性。同时,o m a 为面向对象语言、系统、数 据库和对象库都作了明确的定义,为面向对象系统定义了抽象的框架,包括系 统采用的技术,系统体系结构的目标以及系统的参考模型。 o b j e c tr e q u e s tb r o k e r ( c o r b a ) 图2 io m a 参考模型 图2 1 显示了o m a 的参考模型。其核心是对象请求代理( o b j e c tr e q u e s t b r o k e r - - o r b ) ,起着“对象总线”的作用,提供对象调用的地址透明,激活策 略和通讯功能。其他各个部分说明如下: 1 ) a p p l i c a t i o no b j e c t s ( 应用对象) 是为指定的应用而特定产生的接口。 2 ) o b j e c ts e r v i c e s ( 对象服务) 是包含组对象的基本服务,如存储工具、 管理、目录服务、认证和安全。 3 ) c o m m o nf a c i l i t i e s ( 公共设施) 是一组通用对象,如用于用户接口、例 外处理和打印机输出等可重用组件。 4 ) d o m a i n i n t e r f a c e s ( 领域接口) 是所面向特定的应用领域,如面向制造 业、电讯、医药、财政等领域。其在o m a 中位置与对象服务和公共设 复旦丈学硕士学位论文 施相似。 c o r b a ( c o m m o no b j e c tr e q u e s t b r o k e ra r c h i t e c t u r e ) 是由o m g 提出的分 布式对象的框架体系,是o m a 的一种具体的实现方案。对应于o m a 参考模型, c o r b a 也相应有4 个对象接口,分别与o m a 中四个对象接口对应,它们分别 是:c o r b a 服务、c o r b a 设施、c o r b a 领域、应用对象。 2 2 2c o r b a 体系结构 c o r b a 定义了一个四层模型,如下对其中的概念和关键技术作详细的阐 述。 1 、o r b 核心 在分布式系统中,某些对象提供服务,而调用者根据需要向该对象发出请 求,其中调用者称为客户,对象称为服务器。在o m a 对象模型中,由o r b 负 责将客户的请求传递给服务器对象,并返回运算结果给客户。对客户来说,这 种消息的传递是透明的,全部由o r b 完成,客户不需要知道对象位于网络的什 么地方,o r b 如何通讯,对象如何实现,如何存储等。 o r b 核心实现对象间的通讯机制和激活、调度等任务,实现客户对目标对 象( 服务器) 访问在以下方面的透明。 ( 1 )对象位置:客户不知道目标对象驻留何处,目标对象可以在通过 网络到达的另一台机器的某个进程中,可以在客户所在的同一机 器但处于不同的进程中,也可以与客户处于同一进程。 ( 2 )对象实现:客户不知道目标对象是如何实现的、不知道目标对象 实现所采用的语言、也不知道所处的硬件平台和操作系统。 ( 3 )对象执行状态:客户向目标对象发请求时,无需知道目标对象当 前是否处于活动状态并准备接受请求。如果需要,o r b 在向目标 对象发送请求前会透明的启动对象。 ( 4 ) 对象通讯机制:客户不知道o r b 用来向对象发送请求和将相应结 果返回给客户的具体通讯机制( 如t c p i p 、共享内存、本地方法调用等) 。 客户在向对象发送请求之前,首先需要获得一个对象引用。o r b 使用对象 引用来辨别和定位对象从而传送请求。 旦客户获得了对象引用,它就可以调用该对象提供的方法。一般来说, 方法总包括接收一些参数作为输入,并返回另一些参数作为输出。o r b 的责任 就是从客户一方接收输入参数,并将这些参数打包( 把参数转换为能在网络上 传输的格式) ,传送到对象一方。在对象一方的o r b 负责将参数解包为对象能 操作的格式,交由对象实现后再将输出参数用同样的方式返回客户。整个打包 解包以及传送的过程对程序员来说都是透明的,与客户端程序调用本地方法一 样简单。 复旦大学硕士学位论文 苎三皇塑堡墨竺! 塑叁堕二三 由于o r b 在打包解包过程中将参数转换成与平台无关的通讯格式,屏蔽了 不同平台的数据差异,从而实现了c o r b a 的平台独立性。 2 、接口定义语言与映射 尽管对象引用指定了一个特定对象,但它不提供对象的接口信息,客户在 向对象发送请求前必须知道对象提供哪些服务,对象的接口规定了对象所支持 的操作和类型,也就定义了客户向对象发送的请求。在c o r b a 中,对象的接 口由接口定义语言( 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 d l ) 定义,i d l 的一个重 要特点是其语言独立性,因为i d l 是一种描述性语言,并不是用来实现对象功 能,而只是定义了分布式对象间调用的接口。所以它不具有( 也不应该具有) 一般程序设计语言的所有特征,如控制结构等,对象功能的实现是由某种具体 程序设计语言,如c + + 、j a v a 等来实现的。 语言映射( m a p p i n g ) 的目的就是将i d l 语言翻译到某种具体程序设计语言。 语言映射般包括三个方面: ( 1 )基本语言成分的映射,如i d l 数据类型、模块、接口、操作、对 象引用等的映射。 ( 2 )c o i 强a 对象接口及其它伪对象接口的映射。 ( 3 )c o r b a 对象在具体程序设计语言中的实现方法。 正是i d l 实现了c o r b a 的语言独立性,因为由i d l 定义的接口描述可以 映射到任何一种编程语言,c o r b a 应用程序和组件就不依赖于同一种语言来 编写,换句话说,一个c + 十编写的客户程序可以调用一个由j a v a 编写的服务器 对象的方法,甚至还可以是一个由c o b o l 编写的服务器程序。 语言独立性是c o r b a 的一个重要特征,因为c o r b a 没有指定一种特定编 程语言来实现应用系统。它提供了程序员自由选择语言的权利,程序员可以选 择对应用最合适的语言,或者他最熟悉的语言来开发应用。在一个应用系统中 的各个组件也可以使用不同的语言来开发,如客户端程序可以用j a v a 来实现, 以提供平台可移植性,服务器端程序可以用c + + 来开发,以保证运行效率。 c o r b a 使这些不同的组件问的通讯成为可能。 3 、客户码桩与服务器码架 应用系统开发者首先应当将各组件间的接口用i d l 定义,然后用i d l 编译 器翻译i d l ,编译器会产生针对具体编程语言的客户码桩( c l i e n ts t u b ) 代码和 服务器码架( s e r v e rs k e l e t o n ) 代码。s t u b 和s k e l e t o n 代码被认为是i d l 语言与 具体编程语言之间的粘合剂。s t u b 代码被用在客户端程序中作为客户调用服务 器方法的一个接口,客户程序调用s t u b 代码就如同调用服务器方法一样,s t u b 负责与o r b 通讯。s k e l e t o n 代码被用在服务器一端,提供对象建立的框架。对 i d l 接口的每一个操作,i d l 编译器都会在s k e l e t o n 代码中产生一个空的方法, 以便程序员提供这些方法的具体实现。 复旦大学硕士学位论文 苎三兰塑熊墨堕! ! 型墅生! 图2 2 一个请求从客户端传递到目标实现端 c o r b a 定义了两种客户 向对象发送请求的方式: 静态调用方式由客户 调用s t u b 代码实现,如图2 2 所示。 动态调用方式由动态 调用接口( d y n a m i c i n v o c a t i o n i n t e r f a c e d i i ) 实现,d i i 不需 要s t u b 代码,客户从接口池 中动态的产生一个请求由d 1 1 分发给o r b 。 不论使用何种调用方式发 送请求,o r b 都会定位到对象实现、激活对象、传递请求。对象实现不需要知 道请求是通过s t u b 还是d i i 方式传递过来的,也不需要知道请求来自何处。它 处理接收到的请求,将输出结果返回给o r b ,再由o r b 返回给客户。 4 、i i o p c o r b a 是如何进行远程调用的呢? 图2 3 图解了一个远程调用过程。为了 调用远程对象实例,客户端必须先获得实例的对象引用。客户端在本地采用与 本地调用相同的代码代替异地实例的对象引用。当o r b 检查对象引用并发现目 标对象在异地时,就在网络中将引用路由至异地对象的o r b 。 o m g 在两个关键层面上进行标准化规定。首先,客户端知道将要调用的对 象类型,并且客户端的s t u b 和对象s k e l e t o n 由同一个i d l 产生。这意味着客户 端知道调用的操作、输入参数、调用对象地址以及调用何时到达目标对象等。 这些由o m g 的i d l 规定可实现。其次,客户端o r b 和对象的o r b 遵守相同 的协议,即目标对象、操作、使用的各类参数等表示方法均相同。0 m g 也为此 作了标准化定义i i o p ( i n t e m e ti n t e r o r bp r o t o c 0 1 ) 来解决由于o r b 核心 实现上存在的差异可能导致的部件互操作性上的问题。 图2 3 采用o r b t o o r b 通讯进行互操作 复旦丈学硕士学位论文 塑三兰塑竺墨竺! 塑苎堕二竺 2 3 基于c o r b a 的集成方案 从目前的状况来看,c o r b a 规范已成为分布式对象计算发展的主流,尤其 是随着不同o r b 之间互操作的i i o p 标准的制定及c o r b a 规范已获得大批计 算机公司和研究机构的支持涌现出了许多成功的c o r b a 实现系统,基于 c o r b a 应用开发的软件构件技术在很多分布系统的开发和支持中都得到应用。 2 3 i 体系结构 c o r b a 提供了一种让对象与本地或网上的其他对象透明的请求服务与接收 信息的机制。o r b 作为它的核心,在分布异构环境中的不同应用之间提供互操 作性并实现多个对象系统之间的无缝连接;另外,c o r b a 提供独立于编程语 言的i d l 描述对象和操作,从而使远程的应用可以通过o r b 请求这些对象上的 操作进行服务。定义o r b 服务不仅在异构分布式环境下提供了颗粒级的互操作 能力,而且对于c o r b a 定义的通用对象服务和公共设施,用户可以结合其特 殊需求构造应用对象服务以提供企业应用级的完整的集成服务系统。 应用系统 应用系统 l n i 、 功能代理功能代理 基于c o r b a 的上层服务集成系统 。i 对象服务 i 公共设施 数据库集成管理环境 异构网络集成环境 图2 4 基于c o r b a 技术的集成系统体系结构 基于c o r b a 技术的企业集成系统的体系结构模型如图2 4 所示。作为低层 异构网络集成环境,主要用于支持企业内、企业间多种不同通讯协议和解决异 构网络环境下的高性能通讯。数据库集成管理环境之异构多库的集成与管理, 实现关系数据库、网状数据库和面向对象数据库等异构数据库的数据模型、模 式、数据结构及格式的转换,支持同类数据库的不同实现系统的集成。基于 c o r b a 的上层服务集成系统由c o r b a 实现提供对象服务、公共设施及结合应 复旦大学硕士学位论文 第二章构件系统下的集成 - 1 0 - 用需求开发的一系列功能代理,可以为多个应用系统的实现同时提供服务。 2 3 2 数据库集成 接下来我们对其中的数据库集成管理环境详细阐述集成思想,设计基于 c o r b a 的多数据库集成方案。该集成环境将各种主流数据库( 如o r a c l e 、 s y b a s e 、d b 2 等) 集成起来,为用户( 上层系统) 提供统一的操作接口,即提 供单一类型的数据定义和操作语言,并允许同时访问多个独立的数据库。 方案的实现思路是:将分布式系统中的各数据库成员模型化为对象,而数 据库系统提供的服务被模型化为对象方法,这些方法组成对象接1 :3 ,成员系统 为这些服务提供实现,也就是将参加集成的数据库通过对象封装注册到o r b 总 线上,客户通过公共语言表达请求与成员系统进行交互,对象请求代理机制负 责将请求转换为可用服务、传递请求到适当的系统,并返回采用公共语言表示 的应答。而这一切的实现时通过对成员数据库的相关部分进行转换和集成,给 用户提供一个统一的模式表示和接口而完成的。 图2 5 数据库集成模型 该模型如图2 5 所示:其中数据库服务器将成员数据库模型化为一个个组 件,成为可以直接插在c o r b a 软件总线上的对象插件。代理服务负责向客户 端提供统一的接口,均衡客户请求并将客户请求送到合适的数据库服务器。代 理机制简化了客户方程序,并使系统具有良好的扩展性。如果今后需要将其他 数据库系统,或其他非结构化的文件系统集成起来,只需扩充代理服务器,而 不影响客户代码。 3 3 3 上层服务集成 基于c o r b a 的上层服务集成系统构筑于数据库集成系统或直接在异构网 络集成环境之上,主要处理位于再上层的应用系统的功能请求。在这一层,系 统主要包括代理服务器和应用服务器。在代理服务器和应用服务器中同时实现 对象服务,但代理服务器并不真正完成实际的操作,而路由给具体的应用服务 器来完成,应用服务器需要完成实际的操作。 复旦大学硕士学位论文 苎三兰塑壁至竺! 童坐型l 尘 为了说明清楚,我们以虚拟图书馆为例,说明上层服务系统的集成思路和 图2 6 基于c o r b a 的虚拟图书馆集成环境体系结构 方法。在图2 6 中有三个真实的图书馆( 即应用服务器) ,他们分别提供借阅 和查询服务。在集成平台中,我们将三个真实的图书馆包装为三个c 0 r b a 服 务方对象,它们的服务分别对应着查询和借阅两个方法。同时,在代理服务器 中建立一个虚拟图书馆对象v l ,它也有借阅和查询两个方法。v l 对象的借阅 和查询方法并不真正地完成查询和借阅操作,它只负责将用户的请求转发给真 实图书馆对象。v l 是c o r b a 客户方对象,因为它完成对真实图书馆方法的请 求;同时它也是c 0 砌,a 服务方对象,因为用户通过c o 砌m 调用它的借阅和 查询方法。 系统的工作过程是这样的:0 i 国l e t 是上层的c o r b a 客户对象,通过它客 户可以得到v l 的对象引用,因此可以调用v l 的方法;当v l 得到方法调用请 求后,它将该请求转发给真实图书馆;真实图书馆执行真正的访问数据库等操 作,将结果返回给v l ;v l 将各真实图书馆返回的结果整合之后返回给o r b l e t ; 最后o r b j e f 将结果返回给用户。 3 3 4 结论 以上对企业系统各个部分的集成体系进行了剖析,异构网络集成环境可以 采用与数据库集成相同的体系结构进行,所不同的只是集成对象。经c o r b a 技术封装之后的整个企业系统框架可以从根本上符合c o i 出a 规范,具有良好 的互操作性、扩展性。 复旦大学硕士学位论文 第三章基于w e b 的系统集成 - 第三章基于w e b 的系统集成 3 1 引言 当前在i n t e m e t 上存在着不可计数的h t m l 文档,它为我们提供了丰富的共 享资源,极大的省去了手工查询之苦,往来奔波之劳。在此之前,每当我们需 要收集某一类信息时,只能四处调查收集资料,方能整理成有用信息。举例说, 当需要求医看牙时,你也许不知道哪些医院的牙科比较有名,在技术相当的同 时,还需要根据自己的经济实力来决定选择哪家医院。在i n t e m e t 时代,你无需 奔波于各医院之间,只需访问各医院在i n t e m e t 上发布的信息,就可查询到你所 需要的相关信息。 i n t e m e t 的迅猛发展,使得人们获取信息比以前更加方便和快捷。但是,随 着w e b 的普及,网站数量越来越多,不可能一家网站就能提供全面的信息,人 们所需求的数据分布在多家网站的w e b 网页上,而且数据量的极度膨胀,更加 大了获取有效信息的难度。 虽然现在的搜索引擎可以帮助人们搜索信息,但是由于网站数量极多,搜 索引擎提供的结果数量多且不集中,难以直接满足用户的要求,用户还要花费 大量的时间仔细的从搜索结果中检查哪些才是真正所需,所以搜索引擎只能给 用户提供所需信息的大致方向,而大量的工作还要由用户自己来完成。 3 2 概念简介 3 2 1 扩展巴科斯诺尔范式 1 、定义 扩展巴科斯一诺尔范式( e b n f ) 是一组规则,称为产生式。每一条规则描 述一个特定的语法片断。 个e b n f 文档是正确的,当且仅当在处理输入流时不断运用各个规则, 能归约为一个简单特定的规则,并且不再有新的输入。 2 、规则 j ) 基本记法 e b n f 定义的每条语法规则都有相同的形式: s y m b o l := e x p r e s s i o n 如g r a d e :2 a b c d 】定义了能接受的成绩等级,对于顺序列举的字符范围 复旦大学硕士学位论文 规则规定可以采用如下形式: g r a d e := a - d 】 而不必一个个列出所有的字符。 2 、字符组 e b n f 允许出现更复杂的表达式。例如,在x m l 中空白空间定义为一个或 多个空格、跳格、新行字符或换行字符。采用e b n f ,能够写出表示“一个或 任意多”这样的选项。 b l a n k := ( # x 2 0 i # x 9 i # x d i 拌x a ) + b l a n k 表示用于表示空白空间的符号。# x 2 0 、# x 9 、# x d 、# x a 分别代表空格 键产生的空白字符、跳格、新行和换行字符。“l ”表示“或”。括号后的“+ ” 表示“一个或多个”。这样,该语法规则就解释为“空白空间定义为一个或多 个空格、跳格、新行字符或换行字符”。 3 1 排除字符 有时候一个表达式需要从一个集合中排除几个元素。考虑字母表。辅音字 母可以定义为小写字母表中除元音以外的所有字母。辅音字母规则表达式为: c o n s o n a n t s := ( 【 a e i o u 】ia l p h a b e t ) 3 2 2d i d 在i n t e m e t 中如何比较精确的定位所查找的文献、求购信息等是一个热门话 题。但利用基于h t m l 的w e b 技术不容易实现。很多人都有如下相似的经历: 当前,信息的检索常采用搜索引擎,但即使充分利用了引擎的检索特征构造出 一个查询,得到的仍只是一大堆链接,它们经常只包含要搜索的信息片断。导 致搜索引擎检索不精确的原因在于,大多数h t m l 文档内容都是为视觉表达( 如 黑体、斜体和缩进) 编码的,它只有简单的结构概念:标题、段落或列表,却 不包含元素( 如作者、价格或头衔) ,不能为这些元素指派特殊属性,不能提 供结构的一致性。 s g m l 、x m l 为用户提供了创建文档的灵活性,在创建文档时可利用一个 庞大的编码标注集确定特定信息,从而解决上述问题,精确检索数据,免除了 冗长的匹配搜索过程。s g m l 、x m l 所采用的技术是用户可以自己定义在文档 中所采用的元素和属性,即文档类型定义( d o c u m e n t t y p e d e f i n i t i o n d t d ) 。 d t d 是s g m l 和x m l 规范提供的模式类型,即为文档提供的“说明约束”的 机制,用于控制文档内的结构和内容关系。“模式”这个术语是从关系数据库 复旦大学硕士学位论文 借用的,其含义是一个特殊信息集合必须服从的模型( 在s g m l 和x m l 中, 指定义了一类文档的模型) 。d t d 运用于以文档为中心的应用将极为出色。为 了使应用程序能自动处理s g m l 或x m l 文档,需要更丰富的基于相应规范句 法的模式语言。 每个用户都可定义自己所喜欢的标记,但目前一般在一个行业中制订统一 的d t d ,这有利于扩充和数据的检索。我们将结合大学课程目录这个例子来说 明d t d 。在d t d 中采用e b n f 范式来产生d t d 的语法。 1 、确定元素 首先需要决定d t d 中包含哪些元素或属性。以大学课程目录为例,大致包 含如下元素。 表主要元素 元素名 含义 c o u r s e确定- f 课程 n a m e课程名称 l e n g t h描述课程时限 i n s t r u c t o t确定谁教授该课程 t a指出有无助教 t a n a m e确定助教 d e s c r i l ,t i o n提供课程描述 p r e r e q u i s i t e列出学生必须先修的课程 t e x t b o o k 确定要求的教材 t i t l e 确定要求教材的题目 a u t h o r 确定教材的作者 i s b n 确定教材的国际标准书号 p u b l i s h e r 确定教材出版商的名称 上述元素为主要的几个对象,它们之间的相关关系如下: 对象相关对象 c o u r s e n a m e 、l e n g t h 、i n s t r u c t o r 、t a 、 t a n a m e 、d e s c r i p t i o n t e x t b o o k t i t l e 、a u t h o r 、i s b n 、p u b l i s h e r 2 、元素类型说明 复旦大学硕士学位论文 必须说明d t d 中的每个元素,我们结合x m l 语法解释元素类型说明。x m l 语法具有非常特殊的句法规则,元素说明必须以字符串 ! e l e m e n t 开始。其 一般形式为: e l e m e n tn a m e 是元素名,在文档中使用,一般根据其在文档中所具有的含 义确定相应的名称,而不是任意赋予标示符。如对于助教元素,我们可采用 “t e a c h e ra s s i s r a n t ”的英文缩写t a ,这样在书写文档过程中更具直观性。 e l e m e n t _ e x p r e s s i o n 是元素表达式,是一个符合e b n f 的表达式。如下例子 都是合法的: 其中所使用的指示符符号表示的含义如下: 指示符提示 ?可选( 零或一次出现) + 可选与可重复( 零次或多次出现) + 必须并可重复( 一次或多次出现) 3 、属性表说明 与元素一样,属性必须在d t d 中说明。每个元素的属性在属性表中说明, 而不是一个一个的说明。属性表说明包括 ! a t t l i s t 、元素的类属标示符、属 性名及其缺省值。 如果打算为d o g 元素创建一个必备属性b r e e d ,那么a t t l i s t 说明应为: 其中c d a t a 指b r e e d 的类型为字符串,# r e q u i r e d 指该属性是必备的。 d t d 是s g m l 和x m l 中非常重要的概念,对它的全面展开将涉及到很多 相关技术,所以,本小节仅介绍与我们将要讨论的集成技术密切相关的一些概 念,更详细的资料请参考x m l 文档。 3 3w e b 数据转换集成 3 3 1 实现基础 d t d 是x m l 的关键技术,从上述分析我们知道,利用x m l 来构造文档发 布信息,的确具有惊人的好处。但是就目前来看,要从h t m l 过渡到x m l 还 复旦大学硕士学位论文 兰三兰苎主鉴! 竺墨竺壅壁二! 旦二 需要一个漫长的过程,将全世界成千上万的网站改造过来不是一蹴而就的。所 以,怎样在h t m l 的基础上为用户提供类似于x m l 上的优质服务成为我们研 究的一个重点。本章主要探讨基于w e b 的数据集成,并为其规划了一个可以推 而广之的模型。 我们在分析了大量h t m l 文档后发现,在i n t e m e t 上大规模数据的存在形式 总是一致的,数据的规模决定了不可能采用形式多样的显示方式。现阶段一般 都采用表单的形式,这就为我们基于h t m l 的数据集成提供了应用基础。 图3 1 为在复旦大学图书馆的w e b p a c 中检索“题名= 红楼梦”所得到的部 分结果显示。 童趋监 题名 著者 记录共型 出版地 出版日期 望谴避 矗名 若者 记录类型 出敝地 出版日期 垒邋避 题名 若者 记录类型 出版姐 出版日期 望谗避 题名 著者 记录类型 出版地 红楼梦 曹雪芹 ( 文字材料) 天津 1 9 9 7 红楼梦 曹善芹 ( 文字材料) 郑州 1 9 9 6 红楼梦 曹雪芹 ( 文字材料) 上海 1 9 3 0 红楼梦 曹雪芹 ( 文字材料) 上海 图3 1 大数据量的h t m l 页面显示 从中不难发现所有记录的规整性,包括显示方式、显示项等,所不同的只 是各个记录的内容以及所在的绝对位置。当然我们更主要还是要从它的h t m l 文档中来把握其规律性,h t m l 文档是我们处理的对象和关键所在。 图3 2 是从整个页面的h t m l 文档中所截取出来的一部分,与上图中的显 示相对应。 r a b l ew i d t h = 10 0 查阅记录 题名 町d 红楼梦 订d 著者 曹雪芹 记录类型 町d ( 文字材料) 町d 复旦大学硕士学位论文 第三章基于w e b 的系统集成 q d 出版地 町d 天津q r r 出版日期 1 9 9 7 查阅记录 红楼梦 著者 曹雪芹 町d 记录类型 ( 文字材料) 订r 订d 出版地 郑州 查阅记录训 题名刮b 红楼梦 著者 q d 曹雪芹订r 记录类型 ( 文字材料) 出版地 上海 红楼梦 著者 曹雪芹町r 记录类型 ( 文字材料) 出版地 订d 上海 出版日期 1 9 4 9 吲t a b l e 图3 2 存储大数据的h t m l 文档格式 上述h t m l 文档具有代表性。我们将主要考虑对数据处理有用的主题信息, 而忽略其他不相干部分。这主要是( 1 ) 其他非关键部分需要千变万化的表现形 式,这将导致h t m l 文档的复杂性,给我们的处理带来难以克服的难度; ( 2 ) 非关键部分的忽略对用户的需求不影响,而且如此处理能极大的缩短开发时间, 这在实际应用中更加行之有效。 以下将要介绍的w e b 数据转换集成技术通过描述文件对d t d 进行扩充来实 现数据集成。利用此项技术从巨量的信息中提取有用信息,用户无需繁琐的连 复旦大学硕士学位论文 第三章基于w e b 的系统集成 接各信息源而只需关注自己的真正需求;所提供的集成技术,能去除来自不同 网站的数据的不一致性和冗余
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东莞市2026届高一化学第一学期期中复习检测模拟试题含解析
- 具身智能在建筑施工中的协同作业风险预警方案可行性报告
- 具身智能+特殊儿童社交互动能力评估与训练方案方案可行性报告
- 具身智能+建筑智能化管理方案可行性报告
- 深基坑安全措施方案
- 安全生产三年攻坚行动方案心得
- 物业社区文化活动持续优化方案可行性报告
- 具身智能+外骨骼机器人助力中风患者恢复行走方案可行性报告
- 具身智能+零售业无人结账系统优化策略方案可行性报告
- 河南省永城市2026届化学高二第一学期期中联考模拟试题含解析
- 2025年03月随县公开引进事业单位急需紧缺高层次人才92人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2024-2025学年外研版(三起)三年级英语下册全册教案
- 2025年温州市工业与能源发展集团有限公司招聘笔试参考题库含答案解析
- 立体几何复习教案
- 临床教学案例库的构建策略与实施
- 大学生心理健康教育(第三版)教案:第三章 学业发展 成长之基
- 无废医院培训
- 涉水警情处置流程
- 党政干部安全课课件
- 老年重症患者静脉血栓栓塞症预防中国专家共识(2023)解读
- 企业管理-电信客户经理岗位职责说明书
评论
0/150
提交评论