(通信与信息系统专业论文)基于网络的分布式测试系统开放式架构研究与实现.pdf_第1页
(通信与信息系统专业论文)基于网络的分布式测试系统开放式架构研究与实现.pdf_第2页
(通信与信息系统专业论文)基于网络的分布式测试系统开放式架构研究与实现.pdf_第3页
(通信与信息系统专业论文)基于网络的分布式测试系统开放式架构研究与实现.pdf_第4页
(通信与信息系统专业论文)基于网络的分布式测试系统开放式架构研究与实现.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

西北工业大学硕士学位论文提要本文结合某型号航空电子与火控系统综合自动化测试设备设计的国防预研项目,分析了几种应用中的分布式测试系统,提出有必要建立一种基于网络互连的分布式测试系统的开放式架构。在建立分布式测试系统开放式架构这一领域,已经有一些成果和技术标准,其中i e e e 的标准m - e s t a t e 建立了一个测试和故障诊断领域内的信息交流规范和模型。本文提出以a i e s t a t e 为核心建立分布式测试系统的开放式架构,并探讨了实现该架构的途径和方法。w e b 服务技术是当今分布式计算领域内的一项新的很有创意的技术。本文提出了用w e b 服务来实现上述架构。并以此实现了该架构的一个原型实例,探讨了该架构用w e b 服务实现的可行性与方法。证实了相应架构实现的分布式测试系统具有开放性、易扩展性、设备的可互换性、平台独立性,是一个面向对象的可与其它i n t r a n e t 应用无缝集成的分布式测试系统,可以为建立企业的实用的分布式测试系统和一般测试系统提供新的平台架构。关键词:分布式测试系统,w e b 服务,a i e s t a t e ,i v i ,组件技术,n e t西北工业大学硕士学位论文a b s t r a c tt h isp a p e ri n t r o d u c e sa n da n a l y z e saf e wa p p ll e dd i s t r i b u t e dt e s ts y s t e m sb a s e do nan a t i o n a ld e f e n s ep r e r e s e a r c h i n gp r o g r a mo nd e s i g n i n ga na u t o m a t i ct e s te q u i p m e n to fo n ep l a n e ,a n db r i n gu ph a y i n gt h en e c e s s i t ye s t a b l i s h i n ga no p e ns t r u c t u r eo ft h ed i s t r i b u t e dt e s ts y s t e mb a s e do nt h en e t w o r kc o n n e c t i o n i nt h ed o m a i no fe s t a b l i s h i n ga no p e ns t r u c t u r eo ft h ed i s t r i b u t e dt e s ts y s t e m ,i ta l r e a d yh a dt h ea c h i e v e m e n t a na 1 一e s t a t ee s t a b l i s has t a n d a r do fi n f o r m a t i o ne x c h a n g ei nt h ed o m a i n o ft h et e s ta n d t h ed i a g n o s i s t h i sp a p e rb r i n gu pt oe s t a b l i s hr e g a r d i n ga i e s t s t ea st h ec o r eo ft h eo p e ns t r u c t u r eo ft h ed i s t r i b u t e dt e s ts y s t e m ,a n ds t u d i e st h ew a yt or e a l i z et h es t r u c t u r e t h i sp a p e rh a san e wv i e wo nr e a l i z i n gt h eo p e ns t r u c t u r ew i t ht h ew e bs e r v i c e t h ew e bs e r v i c ei san e wa n dc r e a t i v et e c h n i q u ei nn o w a d a y sd i s t r i b u t e dc a l c u l a t i o nd o m a i n t h i sp a p e rs t u d i e dt h ea p p r o a c ht or e a l i z et h ed i s t r i b u t e dt e s ts y s t e mu s i n gt h ew e bs e r v i c e ,a c c o m p l i s h e dt h ep r o t o t y p eo ft h eo p e ns t r u c t u r e c o n f i r m e dt h a tt h es y s t e mh a so p e n n e s s ,s c a l a b i l i t y ,p l a t f o r m n e u t r a l i t ya n di n t e r c h a n g e a b i1i t yo ni n s t r u m e n t s t h es y s t e mi sb a s e do no o pp r o g r a m ma p p li c a td r a c t l c an g ,w o r k i n ge a s i l yt o g e t h e rw i t ht h eo t h e ri n t r a n e to n t h ei d e ao nt h ep a p e ri sh e l p e dt oe s t a b l i s ht h ed i s t r i b u t e dt e s ts y s t e mo fe n t e r p r i s e sk e yw o r d s :t h ed is t r i b u t e dt e s ts y s t e m ,w e bs e r v i c e ,i v l ,n e ta i e s t a t e西北工业大学硕士学位论文第一章绪论1 1 分布式测试系统的定义和作用可编程仪器的大量的使用,给传统的测试系统带来很大的改变。在可编程仪器使用以前,用户需要通过将被测设备连接到正确的测试设备上,然后通过仪器的面板配置仪器以及选择正确的激励,测量结果则通过读取仪器上的数据显示而获得,有时候,得到的数据还要进一步的处理或计算,而这些常常是手工进行。现在,这种模式的测试系统已经基本过时。大多数的智能仪器已经不提供相应的仪器面板:特别是虚拟仪器的概念( v i r t u a li n s t r u m e n t ) 提出以后,大部分测试是针对某一特定的被测设备在控制仪器的计算机上是运行一个程序即可完成。虚拟仪器就是p c 机+ 专用的模块化可编程的测试仪器+ 专用的测试软件,它通过软件来完成测试并可视化地显示结果。另外,九十年代在网络技术和计算机软件技术方面飞速的发展使得可靠地在各种网络( 局域网、广域网、i n t e r n e t ) 上交换信息变得非常的容易。因此,网络设备和可编程的仪器的使用导致新兴的分布式测试系统( d i s t r i b u t e dt e s ts y s t e m s ,d t s ) 出现,它允许在不同地理位置的多个用户与不同地理位置的多个仪器交互,以完成特定的测试任务。这种类型的分布式测试系统能够满足两种主要的需要。其一是可以有效的使用那些昂贵和复杂的测试仪器。典型的例子是用于电磁兼容试验的消声室和用于芯片厂商在设计新的产品时所用的复杂的测试集成电路晶片的仪器。在这些例子中,远程访问测试系统可以允许晶片的设计工程师和晶片的应用者在设计阶段就可以就产品进行交流,应用者可以在远程测试自己所需的晶片,看它是否合乎要求,不需将笨重的测试仪器移来移去;这增加了新产品的开发速度以及有助于同一领域专家们的交流。分布式测试系统的第二个优点是使从一个单一的位置去控制多个不同地理位置的仪器并完成复杂的测试任务成为可能。一个典型的例子是分布式测试系统在测量地球气候环境方面的应用,科学家和政府机构在地球的不同位置放置很多相关的仪器来测量当地的各种气象数据,科学家可通过得到i n t e r n e t 来控制这些仪器进行各种测量。类似方面的应用也可以在各种油田、电力企业中发现,工西北工业大学硕士学位论文作人员远程监控分布很广的一个个油井,测试一个个远程的设备是否正常等;分布式测试系统主要是在这方面应用的比较多。分布式测试系统在技术上的实现由两种不同的途径。一个是使用现场总线,一个是使用计算机网络技术。但随着现在的工厂和企业大都建立了自己的i n t r a n e t ,基于i n t r a n e t 的信息管理系统成为企业的运作的公共信息平台,为工厂的现代化提供了有利的保证。因此利用流行的计算机网络技术建立的分布式测试系统可以更好的运行在这个平台上,这样无论从成本、管理、维护方面都是一个很好的选择。而用现场总线技术建立的分布式系统没有这种特性,并且,市场上的多种现场总线很难在短期内走向统一,这也为基于现场总线技术的建立的分布式测试系统增加了难度。所以,利用t c p i p 、w e b 、i n t r a n e t 等流行的技术建立的分布式测试系统正在成为主流。另外,随着计算机的软件技术的不断发展,出现了各种模式的分布式计算技术,这些模式的分布式计算技术对建立分布式测试系统产生了很大的影响,提供了工具上的方便。不同模式的分布式计算模式都产生了不同架构的分布式测试系统。1 2 分布式测试系统的组成分布式测试系统的硬件组成如图1 1 :分布式测试系统一般是由一组测试服务器和若干个测试客户端组成,它们之间通过i n t e r n e t 或i n t r a n e t 相连,测试服务器一般拥有相应的软件和硬件资源以提供测试服务,软件包括操作系统、数据库、网络协议,仪器驱动和管理软件等,硬件是各种智能仪器、工控计算机或一般的p c 机,智能仪器通过各种总线如g p i b 、v x i 等与测试服务器相连接。现在也出现了一般的总线与t c p i p 网络的接口技术及设备,如g p i b e n e t 这样的设备,这样智能仪器可直接接入i n t e r n e t 。测试客户端一般通过专用软件或浏览器来访问服务器,以完成相应的控制或测试工作。测试服务器和测试客户端的角色是可以混合的,他们也一般是平常的p c 机,运行的平台w i n d o w s l i n u x u n i x 等:从系统软件组成上看,随着计算机的软件技术的不断发展,出现了各种模式的分布式计算技术,这些模式的分布式计算技术对建立分布式测试系统的产生了很大的影响,提供t t 具上的方便。分布式测试系统一般都为客户端服务器模式,下面将通过详细探讨几个分布式测试系统的实例,来介绍分布式测试系统软西北工业大学硕士学位论文件平台的特点。仪器t图i 1 分布式测试系统组成1 3 分布式测试系统软件平台的特点和发展尽管分布式测试系统从硬件组成上没多大的变化,但随着计算机软件技术的发展和变迁,不同的分布式测试系统的软件结构则有比较大的差别。1 3 1v x i 一1 l 规范第一个主要的实例是v x i 联盟( v x ic o n s o r t i u m ) 提出的v x 一1 1 规范,这个规范主要是对i e e e 一4 8 8 总线的扩展,也就是通过t c p i p 发送i e e e - 4 8 8 总线命令。该扩展的目的在于实现远端的客户端通过网络与仪器控制器( 测试服务器)通过网络通信并完成测试任务。并且对用户来讲好像是在本地使用仪器。v x i - 1 1 规范是基于t c p i p 协议而建立的,因而它的客户端和测试服务器可以通过i n t e r n e t 或i n t r a n e t 进行通信,也可以横跨相当大的距离,客户端和测试服务器之间利用r p c ( 远程调用) 技术,测试服务器一般物理连接上各种仪器,提供一组可供远程调用的标准过程,这些过程执行标准的i e e e - 4 8 8 协议规定的操作如寻址、设备读、设备写、设备状态检测等。客户端调用这些过程以执行测试任务并获得结果。西北工业大学硕士学位论文客户端的测试应用程序是通过嵌入这些r p c 过程而开发的,允许将测试应用程序分布在几个不同的计算机上,达到分布式的控制。但是,这样便出现一个问题,i e e e 一4 8 8 协议是单用户的,也就是个用户完全控制所有可访问的仪器,所以,将这样一个协议放在基于t c p i p 的分布式环境下,当多个用户同时访问一个共享的仪器时该怎么办?为解决这个问题,v x i 1 1 规范采用的是建立锁( 1 0 c k ) 机制,一个用户访问一个仪器时便加一个锁,其他用户便不能访问,直到这个锁被释放。这个方法是在一定程度上解决了问题,并防止一定的非法操作。但这个方法缺乏灵活性,在实际中。往往出现一个用户不能访问一个仪器是因为一个悬而未决的锁;而且死锁现象常常发生,影响了整个系统的性能。1 3 2 基于消息传递的分布式测试系统为克服v x i 1 1 规范的在结构上的缺陷,出现了一个新的模式的分布式测试系统。根据这一模式,多个用户利用合适的客户端软件与测试服务器上的服务器软件交互以并行访问远端的仪器。该系统有以下几个层次或部分组成。如图l 一2 :客户端应用程序层,该层包含用户界面和用于产生测试要求的程序模块。客户端的网络通信层,该层次包含用于管理网络通信的程序模块,包括,服务器的连接和登入、数据流量的控制、网络传输错误的恢复。客户端的网络通信层和服务器上的网络通信层被设计成可以适用于异构的网络环境。服务器端的网络服务层:该层包含用于网络通信管理的程序模块,和队列的管理功能。该层接受来自客户端的连接需求,根据客户端所发消息类型处理消息,所有有关与测试操作的消息立即被加入到相应的队列并分配给仪器管理层。仪器管理层:包含仪器管理和驱动的程序模块,它被设计成支持各种总线的仪器。4西北工业大学硕上学位论文客户端服务器各客户端压仪器c | 譬:各种总线应用程序网络通信留网络通信管理层仪器( 界面或测管理客户端管理服务端( 命令处理线试程序)和仪器驱动)图l - 2 基于消息传递的分布式测试系统与v x i l l 规范相比,该模式的分布式测试系统采用了基于消息的处理模式改善性能,在服务器段建立了一个放置用户测试要求的队列,并根据实际的队列和服务器的负载情况,服务器依次处理各个用户的测试要求,尽可能快给用户响应。这样就比锁机制灵活了许多。包含测试要求的消息由两个部分组成,头字段和数据段。所有的消息都通过客户端的网络通信层和服务器段的网络通信层。头字段没有被编码,雨仅仅是一串a s c i i 字符,它的内容是处理该消息的模块的名称,比如处理用户登入请求的是网络通信管理服务端模块,则头字段的内容是该模块的名称,如果用户要访问仪器,则头字段的内容是仪器管理模块的名称:数据段是一长串的数据流,即可以是二迸制也可以是字符串;这样便于应用程序的开发和网络带宽的有效使用。消息的处理基本上是在仪器管理层,在这里,消息被分成两类,一类消息包含的测试操作只与一个仪器相关,该消息被称为“仪器( i n s t r u m e n t ) ”:另一类消息包含的测试操作是由几个仪器共周完成,该消息被称为“试验( e x p e r i m e n t ) ”。仪器管理层利用消息所包含的数据初始化仪器,启动测试,打包结果形成响应。该模式的分布式测试系统完全建立在t c p i p 协议的基础上的。克服了v x i l l 规范的缺点,发送的消息不再是i e e e 一4 8 8 总线命令,而是自己定西北工业大学硕士学位论文义的消息,在并行访问时应用了队列技术,使分布式测试系统的性能得到很大提升。但是,该模式采用的依然是基于过程的程序设计方法,采用的胖客户形式的c s 结构,系统的灵活度、开放性不是很好。1 ,3 3 基于j a v a 的分布式测试系统j a v a 语言是一种功能强大,类型安全的面向对象的开发工具,其典型的特点是可在各平台上运行。这一模式的分布式测试系统的服务器和客户端的软件都是用j a v a 开发的,因而带来很多新特点。从软件运行的角度看,其构成如图1 - 3 :图i 一3 基ij a v a 的分布式测试系统该分布式测试系统是以j a v a 技术为系统的框架。从程序开发的角度看,完成测试任务的测试方法是有两个j a v a 组件组成:一个a p p l e t 和一个a p p li c a t i o n 。a p p l e t 依赖j a v aa w t 软件包以提供人机接口( f i c l ) 服务。a p p l e t 通过浏览器可以动态的从测试服务器上下载。在它的运行期间,a p p l e t 和它的运行在服务器上同伴a p p l i c a t i o n 通过客户端服务器模式进行交互。测试方法中的a p p l i c a t i o n 组件则是依赖j a v a 的面向对象机制,实际上,从图1 3 可以看到,a p p l i c a t i o n 组件由两个子组件组成,一个j a v as e r v e r ( j s ) 和一个测试方法的线程( t e s tm e t h o dt h r e a d ) 。j s 继续运行并侦听来自客户端的连接要求,连接6西北工业大学硕上学位论文是通过发送测试要求给一个代表特定测试方法的端口( p o r tn u m b e r ) 来进行。当测试要求被接受,该测试方法的一个新的线程实例就启动来完成测试任务,这个线程实例继续利用上面建立的s o c k e t 连接和客户端进行双向的交互。为此,该模式的分布式测试系统建立了一个简单的协议用于a p p l e t 和测试线程进行信息交换( 这些信息包括。通过a p p l e t 向测试线程发布的仪器设置命令、监控命令以及测试数据) 。为达到并发控制的目的,该模式的分布式测试系统采用一种基于a c t o r 的软件框架来建立具体的测试方法,这些a c t o r 是一个粒度很小的对象,它们模拟了一些通过异步消息而彼此通信的有限状态机( 这些异步消息是并行控制和时间调度的基础) 。针对这些a c t o r 有三种操作, 1 e v r 是建立一个新的动作a c t o r 、s e n d是传输消息给一个相应的a c t o r 、b e c o m e 是改变a c t o r 的状态。一个调度程序根据事件和时间的策略负责缓存和分发消息。调度程序反复重复一个基本的过程,选择一个没执行的消息,分发给它的目的a c t o r 。使a c t o r 状态改变,并使它得到执行。a c t o r 的执行过程是原子的,如果因故停止了,调度程序还会让它执行。一个测试方法就是由这样一组a c t o r 组成。这样的,多个、并行的、无冲突的测试方法管理着具体的一组物理仪器,每一个测试方法都会根据客户需要产生具体的实例线程服务用户,当并行访问产生冲突时,调度程序只会让一个仪器上运行一个测试方法的实例线程,当这一个线程运行完以后,才让其它的测试方法开始工作。类似于现代操作系统的多任务,该模式的分布式测试系统就是通过一个调度程序控制基于a c t o r 的测试方法无冲突运行来实现并行访问。除了上述,该模式的分布式测试系统还有一些别的特点。在该模式中,仪器被在两个抽象层次进行模拟,逻辑层和物理层。一个逻辑的仪器对象提供一个物理仪器的所有功能,并且它被不同的测试方法共享。这样,测试方法就必须是线程安全的,使得在一个时间点,只有一个测试线程在上面运行。从以上论述来看,该模式的分布式测试系统采用了当时很新的一些技术,结构新颖、是一个界面友好的、面向对象的分布式系统。但是它还采用了一些非标准的技术,比如它的消息交换协议,因而开放性程度不高。在分布式测试系统中,以上三个例子是非常典型的,具有很好的代表性,反西北工业大学硕士学位论文映了分布式测试系统的特点。可以看出,除了提供正常的测试功能,分布式测试系统的灵活性、开放性、易扩展性得到不断提高,这成为了一个发展方向,这不仅是因为分布式测试系统的实际要求,也是因为分布式技术的发展造成的。随着计算机技术的不断发展,新的分布式计算技术和新的测试软硬件技术的出现,都会对分布式测试系统的发展产生影响,都会导致新的更优秀的架构的分布式测试系统出现。但目前应用的这些系统还是有一些缺点,、是这些系统主要应用网络的传输技术与存贮技术,加强了测试应用中人与测试中的人机环节,测试服务功能不强:二、是这些系统在体系结构都是面向特定应用定制的,还不具备普遍的适用性,开放性程度不是很高。若不能有效地解决这两个问题,创建千百测试系统网络,就需要成千上万的专业技术人员的长时间的辛苦劳动,造成人力与技术资源的巨大浪费,而另一方面,这些测试网络很难有效地接入高速信息公路,造成信息资源的巨大浪费。所以需要建立一个开放的。普遍适用的,能够使测试技术与网络技术真正融为一个有机整体的分布式测试系统的架构势在必行。而现有的计算机技术的发展为建立这样的系统提供基础,利用当今先进的得计算机技术是能够实现这一系统的。1 4 本课题的背景和要完成的工作本课题是某型号航空电子与火控系统综合自动化测试设各设计预研项目的组成部分。在该型号中,涉及的电子设各种类繁多,通信导航、飞控火控、电源等,根据该型号综合保障性设计的要求,需要测试设备能够测试所有的航电设备,而且测试时间要短,以符合战时的要求。另外,在军队使用时,对航电设备的保障是按专业划分的,不同的专业负责不同的设备,该型号一共是三个专业。为此,在设计该综合自动化测试设备的方案时,先是想建立三个集中式的测试设备,一个专业一个,这样可以实现上述的研制要求。可是这样做有一个缺点,就是被测的航电设备尽管专业不同,被测特性却是很相似,这样导致三个测试设备的功能相似,所包含模块化测试仪器重复,提高了成本,造成对模块化测试仪器的极大浪费。为此需要建立一个分布式的测试平台,实现对测试仪器的极大共享,而且三个专业可以并行操作,缩短测试时间,满足型号的研制要求。在设计该平台方8西北工业大学硕士学位论文案时,笔者希望借此设计建立一个通用的开放式分布式测试系统架构。本文将如下展开:第一章绪论,介绍分布式测试系统的概况和课题概况;第二章基本技术和工具,介绍所使用的技术背景和工具;第三章系统平台的建立,探讨以a i - - e s t a t e 为核心的平台架构的建立;第四章系统的实现,详细介绍用w e b 服务实现系统架构时的关键问题和技术。第五章实现系统的一个实例。第六章,结论。9西北工业大学硕士学位论文2 1 分布式计算的简史第二章基本技术和工具最初,分布式计算在商业方面的应用都是在大型计算机上进行的。这些昂贵的计算机可以被通过哑终端进行登录的多个用户使用。这些哑终端本身并没有任何处理能力,它们仅允许用户访问大型计算机上的资源。这种方式的优点是,哑终端可以分散在一栋建筑物中,这就意味着使用大型计算机的每个用户不必挤在一台计算机前。相对于大型计算机的价格来说,那些哑终端真是太便宜了。但是应用程序还是驻留在大型计算机上,这样应用程序本身还是要受到大型计算机的运算能力和资源的限制。随着计算机越来越便宜,以及处理能力不断提高,一般的p c 机的功能都很强大,这就大大的改变了计算机的使用方式,人们可以部分地依赖这些计算机的处理能力,而无须过多地依靠大型机去处理用户的所有请求。2 1 1 客户机服务器模型随着通信技术和计算网络技术的发展,出现了客户机服务器模式的分布式计算的新模式。这种模式包括一台中心服务器,其上包含有数据库或所有客户机需要访问的信息资源。客户机处理用户界面显示,以及向服务器发送数据之前的部分业务逻辑或全部业务逻辑。这样可以充分地利用客户机资源,而释放些服务器资源,从而在服务器上集中处理数据的存储和数据访问。客户机服务器模型将应用程序分布在多个机器上,这样就减轻了在单个机器上的总负载。这个模式经过了两个形式的演化,即胖客户和瘦客户这两种形式,胖客户和瘦客户简单的定义是由应用程序在客户机上占的资源多少而命名。胖客户因其承担业务逻辑而占的资源多,瘦客户较少承担业务逻辑而占的资源少。客户机n务器模式一开始采用的大都是胖客户的形式。但问题便接踵而至了,当新的应用程序加载到数以于计的客户端时,所需的维护问题变成了最大的障碍。这些用户请求都会在建立与数据库的连接上耗费网络资源,当然还会耗费其他的资源,这便导致无法增添更多的客户机,除非极大地增强服务器的处理能力。针对这种体系结构问题的解决方案随着w 删技术的广泛应用而产生,这便是1 0西北工业大学硕士学位论文瘦客户这一新形式。它通过浏览器来访问服务器,将胖客户分担的业务逻辑功能转由服务器承担,使用动态网页访问服务器上的数据库或中间层组件,完成分布式计算。在这种模型下,客户机资源使用的很少,因为h t m l 网页所必需的资源要比在本地运行一个标准的应用程序所耗费的资源要少得多。这种模型其实是一个多层结构,允许应用程序分布在多个服务器中:一台w e b 服务用于处理所有h t t p 请求:另外的一个或多个服务器则用于运行或管理所有的中间层组件;数据库服务器则包含应用程序的实际数据存储。使用这种多层应用程序会产生这样一个结果:整个工作被分成多个部分,并在不同的计算机上进行处理。这种模型有很多优点,应用程序不再要求必须安装在客户端,所开发的应用程序可以供多用户使用,当需要升级或更新功能时,只需在中心w e b 服务器上进行相关的升级即可,在客户端不需要做任何操作:另外侵用这种n 层模型解决方案创建的企业级的w e b 应用程序具有很大的灵活性。能够支持来自动态w e b 页的任何类型的用户界面,以及各种胖客户和掌上设备。通常该体系的结构包含的基本组件如图2 1 所示。图2 一ic s 结构的分布式系统塑! ! 三些查兰竺主兰堡堡兰一一一2 1 2 分布式对象( 组件) 技术在客户机朋殴务器技术革新的同时,软件技术也发生了很大的变化,面向对象技术的出现和发展,使软件的复用性得到很大提高。也促使分布式对象的技术的出现与发展。这个技术背后的概念就是基于接口的程序设计。每个组件都会提供个定义好的接口,而在组件的内部则具体实现了接i z i 所提供的功能,接口可以与组件进行交互。组件的使用者可以使用这些接口,而且可以确信将来组件的变化不会破坏对组件的使用。这便提高了应用程序的灵活性、复用性与可扩展性。由于组件技术的这些优点,使得组件技术在分布式计算中得到进步发展,出现了分布式组件技术,影响最大的是c o r b a 和d c o m 。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 ) 公共对象请求代理体系结构是由o m g 组织制订的一种标准的面向对象应用程序体系规范。由对象请求代理o r b 、对象服务、公共设施、域接口和应用接口这几个部分组成。其核心部分是对象请求代理o r b ( o b j e c tr e q u e s tb r o k e r ) 。o r b 提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。o r b 可看作是在对象之间建立客户服务关系的一种中间件。基于o r b ,客户可以透明的调用服务对象提供的方法,该服务对象可以与客户运行在同一台机器上,也可以运行在其他机器上通过网络与客户进行交互。o r b 截取客户发送的请求,并负责在该软件总线上找到实现该请求的服务对象,然后完成传递参数、方法调用,并返回最终结果。c o r b a1 ,1 由对象管理组织在1 9 9 1 年发布。定义了接口定义语言( i d l ) 和应用编程接口( a p i ) ,从而通过实现对象请求代理( o r b ) 来激活客户与服务器之间的交互。c o r b a2 0 于1 9 9 4 年的1 2 月发布定义了如何跨越不同的o r b 提供者而进行通讯。c o m d o o m ( c o m p o n e n to b j e c tm o d e l 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 )是微软公司提出的分布式组件对象模型标准,支持在局域网、广域网甚至i n t e r n e t 上不同计算机的对象之问的通讯。d c o m 运行在基于c o m 的应用程序、组件、工具等的基础之上,处理网络协议的低层次的细节问题,而用户开发时不必关心太多的网络协议细节,从而使用户能够集中精力解决用户所要求解决的问题。d c o m 位于应用程序的组件之间,将组件以不可见的方式胶合在一起组成具西北工业大学硕士学位论文有完整功能的应用程序。这两种分布式体系的建立对于建立高效分布式应用程序有很好的促进作用,在一个纯粹的同构i n t r a n e t 中。它们都可以正常的发挥作用,但是如果它们运行在异构环境下,彼此之间互操作与互访问不能很好地进行,不利于分布式计算的发展要求。2 1 3 分布式应用的现状和w e b 服务的出现研究一下当前的应用程序开发,便会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户形式的n 层的应用程序( 它包含用户接口、组件和数据库,组件将业务逻辑和数据库的访问以及其他功能封装) ,这当然不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。传统的w i n d o w s 胖客户应用程序使用d c o m 来与服务器进行通信和调用远程对象。确保配置好d c o m 使其在一个大型的网络中正常运行将是一个极富挑战性的工作,同时也是许多i t 工程师的噩梦。事实上,许多i t 工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行个d c o m 。结果就是开发了一个发布容易,但开发难度大而且用户界面极其受限的应用程序。极端的说,就是花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。关于客户端与服务器的通信问题,一个完美的解决方法是使用h t t p 协议来通信。这是因为任何运行w e b 浏览器的机器都在使用i i t t p 协议。同时,当前许多防火墙也配置为只允许进行h t t p 连接。许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都运行在w i n d o w s 平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机和其他u n i x 工作站上。而且目前还有很多商用程序继续在使用c + + 、j a v a 、v i s u a lb a s i c 和其他各种各样的语言编写。除了最简单的程序之外,许多应用程序都需要与运行在其他异构平台上的应用程序进行数据交换。这样的任务通常都是由特殊的方法,如文件传输和分析,消息队列等。在以前,没有一个应用程序通信标准,是独立于平台、组建模型和编程语言的。而随西北工业大学硕士学位论文着计算机技术的不断发展,现代企业面临的环境越来越复杂,其信息系统大多数为多平台、多系统的复杂系统。这就要求今天的企业解决方案具有广泛的兼容能力,可以支持不同的系统平台、数据格式和多种连接方式,要求在i n t e r n e t 环境下,实现系统是松散耦合的、跨平台的,与语言无关的。与特定接口无关的,要求各系统能够无缝地进行通信和共享数据,消除巨大的信息孤岛,实现信息共享、进行数据交换,达到信息的一致性。而且要提供对w e b 应用程序的可靠访问。w e b 服务就是在这一背景下产生的,w e b 服务的设计依赖于i n t e r n e t 标准( 如h t t p 和x m l ) ,通过使用h t t p 在客户端和服务器之间自由地进行通信,不论两个程序的平台和编程语言是什么。实现了在不同的系统之间能够用”软件一软件对话”的方式相互调用。打破了软件应用、网站和各种设备之间的格格不入的状态,实现”基于w e b 无缝集成”的目标。2 2w e b 服务介绍2 2 1w e b 服务的定义w e b 服务就是通过w e b 接口提供的某个功能程序段。通过标准的i n t e r n e t协议( h t t p ) 可以容易的访问该功能。它将基于组件的最好的开发和w e b 便于使用集成在一起。和组件一样,w e b 服务也支持黑盒功能,也就是即使不用知道它如何工作也能访问它。但是却不通过专门的协议( 如d c o m i i o p ) 而是通过标准i n t e r n e t 协议的访问。这就意味着所有客户机都可以使用i n t e r n e t 进行远程过程调用( r e m o t ep r o c e d u r ec a l l ,r p c ) 操作,该操作向i n t e r n e t 上的服务器进行请求,并接受以x m l 格式返回的响应。这些在客户机和服务器之间来回传递的消息被编码到一个特殊的x m l 语句中,这些语句被称为简单的对象访问协议( s i m p l eo b j e c ta c c e s sp r o t o c o l ,简称s o a p ) ,该协议定义访问远程计算机的标准方式。推动v e b服务发展的基本理念就是客户机和服务器能够使用任何技术、任何语言、任何设备来进行通信,这些技术、语言、设备可以由开发人员和中间设备来确定。每个w e b 服务都被明确地定义了唯一的接口,因此无论客户端是j a v as e t v l e t 、v b n e t 、p e r l c g i ,还是w a p 移动电话都无关紧要。他们访问w e b 服务服务的方式西北工业大学硕:b 学位论文是模块化的,使之成为了一个功能强大、具有很大灵活性的消息传输系统。图2 2w e b n 务各协议之间的关系w s d l ( w e b 服务d e s c r i p t i o nl a n g u a g e ,w e b 服务描述语言) w s d l是w e b 服务的描述语言,它被设计用来描述w e b 服务和w e b 服务中所有的方法。这种语言的代码是以x m l 的格式进行编写的,因此,所有的系统都能够识别并解释其中的信息。在一个w s d l 文档中,所有的参数和w e b 服务的方法名称都有详细地说明,同时还包括了w e b 服务本身的位置。最终的结果是客户程序分析一个w e b 服务的w s d l 用可以生成用于访问该w e b 服务所必需的有效的s o a p 消息。w s d l 协议也是一个标准的协议。包括n e t 在内的很多w e b 服务的实现都是使用了发布的w s d l 文档来创建代理对象。这些代理对象用于和外部的w e b 服务进行通信。本地的代理对象的方法模仿了w e b 服务上的方法,客户程序使用代理对象而不是编写s o a p 消息的方式进行工作,代理对象负责创建和格式化发送到w e b 服务的正确的s o a p 消息。1 6西北工业大学硕士学位论文d i s c o 一( d i s c o v e r yp r o t o c o l ,发现协议) d i s c o 的作用相当于一个指针,它帮助用户定位在特定的w e b 站点上的w e b 服务,该协议也可以让一个公司动态地发布自己的w e b 服务。该协议其基本的思想是为客户提供一个单独的位置,以便客户找到某个公司所有发布的w e b服务。该协议是这样的:某个公司将一个d i s c o 文档放在w e b 服务器上,某个潜在的客户检查这个d i s c o 文档,并以此定位到这个公司所发布的每个w e b 服务的w s d l 文件。很明显,这个方法非常有用。不过,当u d d i 注册表出现时,给d i s c o 协议的有效性带来很大问题。u d d i是在i n t e r n e t 上发现可用的w e b 服务的中心仓库。在大多数的情况下,u d d i 注册表将指向需要利用w e b 服务的特殊w s d l 文档。u d d i 通用描述、发现、集成( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r ya n di n t e g r a t i o n 简写为u d d i ) 是用来存储业务信息和发布服务的注册表。该协议定义了一系列的数据结构,方便公司来注册他们的w e b服务,而使用u d d i 协议,潜在的客户能够通过已注册的业务信息搜索并找到该公司所提供的w e b 服务。u d d i 注册表本身就包含几个w e b 服务,以允许任何客户都可以使用标准的s o a p 消息来搜索注册表。目前m i r o s o f t 和i b m 都已经在i n t e r n e t 上建立了u d d i 注册表。u d d i 注册表将成为新的i n t e r n e t 黄页。2 2 3w e b 服务的通用体系结构以上介绍如何访问w e b 服务,下面看看它如何实现。图2 3 是m i c r o s o f t定义的w e b 服务的通用体系结构,该体系结构被划分成5 个逻辑层。离客户最远的是数据层( d a t al a y e r ) ,用于存储w e b 服务所需信息。在数据层上是数据访问层( d a t aa c c e s sl a y e r ) ,用于向商业层( b u s i n e s sl a y e r ) 提交物理数据的逻辑视图。数据访问层将商业逻辑与下层数据存储的变化相隔离,并确保数据的完熬性。商业层执行w e b 服务的商业逻辑,它又分成两层,商业界面( b u s i n e s sf a q a d e ) 和商业逻辑( b u s i n e s sl o g i c ) 。商业界面提供了一个简单的界面,直接映射到公布在w e b 服务中的操作。商业界面使用逻辑层提供的服务。在简单的w e b 服务中,所有的商业逻辑可能由商业界面执行,并直接与数据访问层进行交1 7西北工业大学硕士学位论文互。侦听程序( l i s t e n e r ) 负责接收包含服务请求的输入报文,解析报文,并发送对商业界面中相应方法的请求。如果服务返回一个响应,侦听程序也应负责将来自商业界面的响应包装成报文并发送客户端。图2 3w e b , q r 务通用体系结构这便是w e b 服务的抽象的内部结构,说明w e b 服务是如何建立的。而上面介绍的几种协议,则说明了客户端应用程序是如何与通过w e b 服务交互以完成一个分布式的系统,是w e b 服务韵外部特征。这两方面的便构成了w e b 服务的完整的图景。2 2 4 使用w e b 服务的好处和发展现状1 跨防火墙的通信,提高安全性。如果应用程序有成千上万的用户,而且分布在i n t e r n e t 上,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用d c o m 就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏西北工业大学硕:卜学位论文览器作为客户端,写下一大堆a s p 页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。举个例子,在应用程序里加入一个新页面,必须先建立好用户界面( w e b 页面) ,并在这个页面后面,包含相应商业逻辑的中间层组件,还要再建立至少一个a s p 页面,用来接受用户输入的信息,调用中间层组件,把结果格式化为h t m l形式,最后还要把“结果页”送回浏览器。要是客户端代码不再如此依赖于h t m l表单,客户端的编程就简单多了。如果中间层组件换成w e b 服务的话,就可以从用户界面直接调用中间层组件,从而省掉建立a s p 页面的那步。要调用w e b 服务,可以直接使用m i c r o s o f ts o a pt o o l k i t 或。n e t 这样的s o a p 客户端,也可以使用自己开发的s o a p 客户端,然后把它和应用程序连接起来,实现跨防火墙通信。不仅缩短了开发周期,还减少了代码复杂度,并能够增强应用程序的可维护性。同时,应用程序也不再需要在每次调用中间层组件时,都跳转到相应的“结果页”。这样的跨防火墙通信,就意味着黑客们不能任意的访问您使用x m l 编码的h t t p 信息包的受保护的网络,又由于w e b 服务的特点,w e b 服务可集成和利用其他w e b 应用程序的安全策略,像利用s s l 加密技术来保护传输中的数据,使用a d s l 和l d a p 能够查找成员的关系和进行身份验证等,这也有助于提高w e b 应用程序的安全性。在一个用户界面和中间层有较多交互的应用程序中,使用w e b 服务这种结构,可以节省花在用户界面编程上2 0 的开发时间。另外,这样一个由w e b 服务组成的中间层,完全可以在应用程序集成或其它场合下重用。最后,通过w e b 服务把应用程序的逻辑和数据“暴露”出来,还可以让其它平台上的客户重用这些应用程序。2 跨平台的应用程序集成企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来。而这种集成将花费很大的开发力量。应用程序经常焉要从运行在i b m 主机上的程序中获取数据;或者把数据发送到主机或u n i x 应用程序中去即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。通过w e b 服务应用程序可以用标准的方法( s o a p 协议) 把功能和数据“暴露”出来,供其它应用程序使用。1 9西北工业大学硕士学位论文例如,有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等内容;还有一个订单执行程序,用于实际货物发送的管理。这两个程序来自不同软件厂商。一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物,通过在订单执行程序上面增加一层w e b服务,订单执行程序可以把“a d do r d e r ”函数“暴露”出来。这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。3 企业的互操作性用w e b 服务集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户,突破公司的界限时会

温馨提示

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

评论

0/150

提交评论