




已阅读5页,还剩79页未读, 继续免费阅读
(计算机应用技术专业论文)分布式系统性能分析.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京邮电大学硕士学位论文 摘要 摘要 随着网络技术和计算机软件的发展,分布式系统被广泛应用于电信,金融,电子商 务等各个领域。然而在建立这些分布式系统的开发前期,由于没有行之有效的方法来控制 其性能,所以在系统运行时期,各种性能问题逐渐暴露,到这时才寻找导致性能低下的原 因为时已晚。有鉴于此,分布式系统性能的问题应该在软件开发前期就得到评估和控制, 为此需要大量的有关性能方面的知识予以支持,诸如软件编码本身、软件的体系结构、网 络的结构和状态、计算机的处理能力等,并且需要找出影响分布式系统性能的关键因素并 对它们进行详细的分析。因此本文首先介绍了分布式系统和软件性能的概念,分析影响分 布式系统性能的几大因素,包括网络,主机性能,重点介绍调用代价的概念,以及调用代 价的研究和它在整个分布式系统性能分析中的地位和意义。然后专门针对分布式系统的调 用代价展开详细的讨论,通过实验,分别针对六种不同的系统架构设计用例,运行并获得 充足的实验数据,运用统计学方法对其进行分析,计算,最终找出各种分布式系统环境下 调用的参数类型,参数个数,服务器负荷等因素与分布式系统的性能之间的关联的规律, 通过这些规律,即可以在系统建立初期对分布式系统的调用代价进行评估,对整个系统的 性能进行一定的控制。本文最后在总结影响分布式系统调用代价的几点因素后,对分布式 系统初期的构建,后期的调优,结合实际应用的c r m 系统提出初步的改进建议和优化策 略。 主题词:分布式系统,软件性能分析,调用代价 南京邮电大学硕士学位论文a b s t r a c t a b s t r a c t w i t ht h ed e v e l o p i n go fn e t w o r ka n dt h ec o m p u t e rs o f t w a r et e c h n o l o g y , d i s t r i b u t e d s y s t e mi sw i d e l yu s e di nt h ea r e ao ft e l e c o m m u n i c a t i o n ,f i n a n c i a l ,a n de c o m m e r c e b e f o r e t h o s ed i s t r i b u t e ds y s t e m sw e r ef o u n d e d ,i ti sd i f f i c u l tt of i n dae f f e c t i v ew a yt oc o n t r o lt h e i r p e r f o r m a n c e ,s om a n yl o wp e r f o r m a n c ei s s u e sa p p e a rw h e nt h e s es y s t e m sr u n i ti st o ol a t et o f i n dt h er e a s o no ft h el o wp e r f o r m a n c ep r o b l e m t h ed i s t r i b u t e ds y s t e mp e r f o r m a n c ei s s u e s h o u l db ee v a l u a t e da n dc o n t r o l l e dw h e ni ti sd e s i g n e d ,a n dal o to fk n o w l e d g ea b o u ts y s t e m p e r f o r m a n c ei sn e e d e d ,l i k es o f t w a r ec o d e ,t h ea r c h i t e c t u r eo ft h es y s t e m ,t h ea r c h i t e c t u r ea n d t h es t a t eo ft h en e t w o r k ,t h ec a l c u l a t i n ga b i l i t yo ft h ec o m p u t e r w es h o u l df i n dt h ek e yf a c t o r s i m p a c t i n gt h es y s t e mp e r f o r m a n c ea n da n a l y s i st h e mi nd e t a i l t h i sp a p e rf i r s ti n t r o d u c e s s e v e r a lk i n d so fd i s t r i b u t e ds y s t e m sa n dt h ec o n c e p to fs o f t w a r ep e r f o r m a n c e ,a n dt h e n a n a l y z e st h ek e yf a c t o r si m p a c t i n gt h ed i s t r i b u t e ds y s t e m sp e r f o r m a n c e ,i n c l u d i n gn e t w o r k , h a r d w a r ep e r f o r m a n c e ,f o c u s i n go nt h ec o n c e p to fc a l l i n g c o s t ,a n dt h er e s e a r c ho fc a l l i n g - c o s t , t h es i g n i f i c a n c ea n ds t a t u so fc a l l i n g c o s ti nt h er e s e a r c ho fd i s t r i b u t e ds y s t e m sp e r f o r m a n c e t h e nw ed i s c u s st h ec a l l i n g c o s to ft h ed i s t r i b u t e ds y s t e m si nd e t a i l ,d e s i g ne x p e r i m e n t so fs i x k i n d so fd i s t r i b u t e ds y s t e m ss e p a r a t e l y , t h e nr u nt h ep r o g r a m sa n dg e te n o u g hd a t a u s i n g s t a t i s t i c a lm e t h o d st oa n a l y z ea n dc o m p u t et h er e s u l t ,w ef i n da tl a s tt h er e g u l a rp a t t e ma n dt h e a s s o c i a t i o na m o n gt h ep a r a m e t e rt y p e ,t h en u m b e ro fp a r a m e t e r s ,s e r v e rl o a d i n ga n dt h e p e r f o r m a n c eo ft h ed i s t r i b u t e ds y s t e m u s i n gt h e s ep a t t e r n s ,w ec a l le v a l u a t et h ec a l l i n g c o s t o ft h ed i s t r i b u t e ds y s t e m sb e f o r ei ti ss e t u p ,a n dt h e nc o n t r o lt h ew h o l es y s t e mp e r f o r m a n c e a f t e rs u m m a r i z i n gs e v e r a lf a c t o r sw h i c hi m p a c tt h es y s t e mp e r f o r m a n c e ,w eg i v es o m ea d v i c e o nt h es y s t e ms e t t i n gu pa n dt h eo p t i m i z i n go ft h er u n n i n gs y s t e ma c c o r d i n gt ot h er e a lc r m s y s t e m k e yw o r d s :d i s t r i b u t e ds y s t e m ,s o f t w a r ep e r f o r m a n c ea n a l y s i s ,c a l l i n g - c o s t n 南京邮电大学学位论文原创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得南京邮电大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名:主逢整日期垒耻2 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留本人所送 交学位论文的复印件和电子文档,可以采用影印、缩印或其它复制手段保存论 文。本文电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。 论文的公布( 包括刊登) 授权南京邮电大学研究生部办理。 研究生签名:主垦整 导师签 南京邮电大学硕士学位论文绪论 1 1 课题背景 第一章绪论 随着软件技术和网络技术的发展,分布式系统在软件行业各个领域的应用越来越广 泛。分布式系统的大量使用给应用系统带来了方便的同时,也给系统性能造成了一定的影 响,例如远过程调用,分布式中间件的使用,分布式系统交互的标准化,规范化,分布式 系统的连接初始化,连接控制等等因素都会给整个系统带来额外的开销。因此,分布式系 统的性能成为系统构建时不得不考虑的重要因素。在充分发挥分布式系统的处理优势的同 时,能够合理降低它在性能方面开销,是需要研究的重点问题之一。 1 2 本文的工作与创新 针对分布式系统性能方面的研究,按照我们的工作策略,将其大致分为三个部分: 即分布式系统的调用代价,网络对分布式系统性能造成的影响,以及硬件环境对分布式系 统性能的影响。本文主要研究目标为分布式系统的调用代价。通过实验、分析的手段观察 测量多种不同分布式系统在各种不同情况下调用代价的消耗,从而总结出由于系统的调用 代价给几种分布式系统性能带来的影响。 一般分布式系统在构建时极少考虑到其性能因素,通常只按照规范例程或者使用手 册等编写代码,这样做就无法在体系设计阶段对性能进行评估,因此容易在性能方面留下 隐患。本文的创新点在于能够根据应用需求提前预知或者避免性能方面有可能出现的问 题,能够根据系统的特性给出优化建议,采用类似建模的方法,能够根据一系列特定的指 标在系统构建初期对分布式系统的性能进行评估和控制。 1 3 本论文的结构 本文首先介绍分布式系统的定义及现阶段使用较多的几种分布式系统;然后介绍性能 分析的基本原理,重点介绍了软件性能分析( s p e ) 的概念:第三章开始设计详细的实验,针 南京邮电大学硕士学位论文绪论 对六种不同的分布式系统设计详细的实验方法;第四章对实验结果进行论证分析和比较, 包括不同类型系统间对比分析,同一系统问不同参数类型的对比分析,多次调用和单次调 用分析等,采用统计学方法,结合图表等手段进行论述;最后,根据实验结果进行总结, 结合实际的c r m 系统给出分布式系统的优化建议和策略。 2 南京邮电大学硕士学位论文第二章分布式系统的概念 第二章分布式系统的概念 2 1 分布式系统的定义 随着计算机软件的发展,程序的功能从简单到复杂,软件规模越来越大,因此需要 考虑系统功能的分解和结构化;同时不同的系统之间需要协作,而有时不同系统的软件属 主并不相同,因此需要进行系统之间的同步协调,从而分布式系统逐渐发展起来。 分布式系统是建立在网络上的若干独立计算机的集合,这些计算机对于用户来说就 像是单个相关系统。它有两个重要特性:其一,各种计算机之间的差别以及计算机之间的 通信方式的差别对于用户是隐藏的。同样,用户也看不到分布式系统内部组织结构:其二, 用户和应用程序都能够以一种统一的方式与分布式系统进行交互【1 1 。 分布式系统从发展来看,逐渐经历了以下几个阶段:从一开始的主程序和子程序的 分离,即程序开始结构化,到程序的动态链接,面向对象,进而出现的多进程、多线程, 以及多进程之间的协调和关联,至此,初步的分布式系统雏形已经出现。再往后发展便出 现了真正意义上的分布式系统。但是万变不离其宗,所有的分布式系统需要解决的共同问 题即为不同进程之间的关联和协调。 多进程系统有多种形式。从最简单的本机多进程,到局域网之间的多进程( 包括v p n 等多种形式) ,这种情况为系统属主内部的多进程,到当今使用较多的广域网之间的多进 程,其表现形式就是社会化交互,电子商务等流行应用。虽然多进程形式复杂多样,但它 们的本质都相同。 分布式系统按功能可分为分布式操作系统,分布式软件系统,分布式数据库系统, 分布式文件系统等 2 1 。 2 2 分布式系统的发展趋势 分布式系统出现以来,使互联网优势得以充分发挥。它充分利用了网络资源,整 合多台计算机的计算能力,使得以前无法完成的复杂计算现在能够实现,从发展趋势 来看,分布式系统的结构越来越复杂,功能越来越强大。 南京邮电大学硕士学位论文 第二章分布式系统的概念 例如: ( 1 ) 网格计算的发展:利用互联网把分散在不同地理位置的电脑组织成一个“虚拟的超 级计算机”,其中每一台参与计算的计算机就是一个节点,而整个计算系统是由成千上万 个节点组成的一张网格, 这种网格的数据处理能力极强,并且能充分利用网络上的闲置 处理能力。 ( 2 ) 软件发展从构件到服务,到广义编程,系统构建越来越重视体系结构而不限于个 别标准。 f 3 ) p e e rt op e e r :点对点模式。最广泛应用即互联网下载服务,利用多台计算机的优 势,使得下载速度不再仅限于服务器,大大减轻了服务器负荷并且加快了下载速度。 ( 4 ) 云计算:通过寻找和使用最适宜的资源快速完成所需要的服务。 ( 5 ) 分布式系统的大量运用使得计算方式从一般计算向关键任务计算发展。 近来,分布式系统又出现逐渐向面向构件,面向服务的方向发展趋势。例如现在 流行的s o a 的概念,分布式系统逐渐构建化,模块化。而构建实质就是功能的二进 制实现,是可运行代码。系统之间交互通过有合同定义的接r l 来实现,并且可以独立 部署,可以由第三方来构造,每种系统和一种构建模型保持一致。分布式系统的应用 构成如图2 1 。 面向使用者的应用 冷归q 产 服务的关联,功能和 冷厂猥功能忑 控制,包括通信,流程 和规则等 构件的外观服务 冷藉睹疋 构件的物理实现o o oy 图2 1 分布式系统的应用构成图 4 南京邮电大学硕士学位论文第二章分布式系统的概念 2 3 分布式系统的优点及不足1 3 1 分布式系统的优点有: 具有良好的可扩充性,随着需求的更改能够实现敏捷变化并且快速提供新服务:有 效组成复杂系统和大系统,能够合理分配现有资源,有效重用资源;能够实现特殊应用, 例如远程容灾等;实现服务和计算的社会化;支持系统的逐步演化和升级。 其不足之处有: 运行环境比较复杂,各单元间依赖性强;增加各种调用开销,例如标准化所带来的 代价,网络因素造成的延时等;管理技术复杂,管理工作量大;开发系统复杂,开发组织 难度大,性能上问题比较多,难以控制。 2 4 几种分布式系统的体系结构和标准 2 4 1 分布式系统基本结构 ( 1 ) 传统c s 结构 在传统的c l i e n t s e r v e r 结构中,应用程序逻辑通常分布在客户端和服务器两端,客 户端发出数据资源访问请求,服务器端将结果返回客户端。c l i e n t s e r v e r 结构的缺陷是, 当客户端数目激增时,服务器的性能将会因为无法进行负载平衡而大大下降。而一旦应用 的需求发生变化,客户端和服务器端的应用程序则都需要修改,这样给应用的维护和升级 带来了极大的不便,而且大量数据的传输也增加了网络的负载。为了解决c l i e n t s e r v e r 存在的问题,应该向多层分布式应用转变。 ( 2 ) 多层分布式系统结构 在多层分布式应用中,客户端和服务器之间可以加入一层或多层应用服务程序( 如 图2 - 2 ) ,这种程序称为“应用服务器”( a p p l i c a t i o ns e r v e r ) 。开发人员可以将企业应用的商 业逻辑放在中间层服务器上,而不是客户端,从而将应用的业务逻辑与用户接口隔离开, 在保证客户端功能的前提下,为用户提供一个瘦的( t h i n ) 接i z l 。如果需要修改应用程序代 码,则可以只在中间层服务器上修改,而不用修改客户端应用程序。从而使程序员可以 南京邮电大学硕士学位论文第二章分布式系统的概念 专注于应用系统核心业务逻辑的分析、设计和开发,简化了系统的开发、更新和升级工作, 极大增强了应用的伸缩性和灵活性吲。 - 、 回 1卜( 业务逻辑层) i - - _ v v 、 ( 敷据存储层) 客户端 应用服务器 数据库服务器 图2 2多层分布式应用体系结构 ( 3 ) 中间件技术【9 】 通常,为了将种类各异的计算机和网络都呈现为单个系统,分布式系统常常通过一 个软件层组织起来,该软件层在逻辑上位于由用户和应用程序组成的上层与由操作系统组 成的底层之间,这样的分布式系统又称为中间件系统( m i d d l e w a r e ) 。 中间件的基本功能包括:管理进程间通信,构件的登记和发现,构件的接口描述, 管理分布式系统的安全等一些事务。通过中间件,可以大大简化分布式系统的开发,更加 方便地管理和维护整个分布式系统。通常一种中间件与一种特定的分布式系统关联,但也 有将几种中间件集成在一起并且能够适应多种分布式系统的。 2 4 2 几种常用的分布式系统 ( 1 ) 管道( p i p e ) 及网络套接字( s o c k e t ) 原理 从严格来说,p i p e 不能算作实用的分布式系统,因为在l i n u x 系统环境下p i p e 仅限 于进行本机进程间通信。通常情况是一个进程的输出连接到另一个进程的输入,这时通过 管道就可以建立进程间的关联从而进行通信,它的本质是一种特殊的文件【l6 1 。 p i p e 是一种半双工的管道,需要用一个句柄来向管道中写入数据,用另一个不同的 句柄用来读出数据。 在建立一个p i p e 的同时,系统即生成一个文件,当有进程向管道写入数据时,实际 也是向文件写入数据;同样,若有进程从管道读取数据,实际也就是从文件读取数据。 c 语言中,建立管道使用m k f i f o ( ) 函数,打开管道使用o p e n ( ) i 垂i 数,这与文件操作非 常类似。而对管道读写完全与读写普通文件一样,使用r e a d ( ) 和w r i t e o i 函数,只是在传递 6 南京邮电大学硕士学位论文第二章分布式系统的概念 参数的时候,传递了管道的句柄而非文件的句柄。 对于写管道:写入管道的数据按到达次序排列。如果管道满,则对管道的写被阻塞, 直到管道中的数据被读操作读取。对于写操作,如果一次w r i t e o 调用写的数据量小于管道 容量,则写操作一次完成,而如果管道所剩余的容量不够,w r i t e ( ) 被阻塞直到管道的剩余 容量可以一次写完为止。如果w r i t e ( ) 调用写的数据量大于管道容量,则写操作分多次完成; 对于读管道:读操作按照数据到达的顺序读取。已经被读取的数据在管道内不再存在,即 数据在管道中不能被重复利用。如果管道为空,且管道的写端口是打开状态,则读操作被 阻塞直到有数据写入为止。一次r e a d ( ) 调用中,如果管道中的数据量不够r e a d o 指定的数 量,则按实际的数量读取,并对r e a d ( ) 返回实际数量值。 需要注意的是p i p e 是面向字符流的,即管道不能识别管道中的数据意义,它把所有 通过管道传输的数据统一当作字符流或二进制流来处理。因此在通过管道传递参数或消息 时,需要自己定义高层通信协议,用来解释传输数据的意义。 s o c k e t 与管道很类似,也是面向流的,它仅仅保证了最底层的通信能够正常进行而 不对传输的数据有任何解释。s o c k e t 套接字与p i p e 不同的是,s o c k e t 是面向网络的,它连 接的两个进程可以位于不同的主机上,通过底层网络协议,如t c p i p 协议等来建立不同 主机进程之间的连接,当然也可以连接本机上的两个进程,但它们的本质相同。 当采取面向连接的方式时,c 语言环境下,s o c k e t 通过s e n d o 和r e c v ( ) 函数来进行通 信。当采用阻塞模式时,s e n d ( ) 函数发送指定数据到远端,然后进程阻塞,直到远端返回 接收成功消息:r e c v o 函数接收远端发送回的数据存放到指定缓冲区,进程阻塞,直到接 收完成,函数返回。 实际上大多数分布式系统都要依赖于s o c k e t 实现,因为它们都需要经由网络,虽然 它们的网络类型可以不同。关键在于分布式系统的复杂程度不同:在s o c k e t 之上可以建 立最简单的c l i e n t s e r v e r 模式的分布式系统,也可以建立具有中间件结构的大型复杂分布 式系统。在本论文中s o c k e t 分布式系统指最简单的位于本机上的c l i e n t s e r v e r 模式的分布 式系统。 ( 2 ) c o r b a 公用对象请求代理结构基本原理 ( i ) c o r b a 的概念 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 ) 是- - 种工业标准,提供了面向对 象的标准化互操作规范,用户能在不知道软件和硬件平台以及网络位置的情况下透明地获 取信息,实现交互。作为分布式对象系统中的通信核心,c o r b a 提供了完整的分布式应 7 南京邮电大学硕士学位论文第二章分布式系统的概念 用框架,包括对象的定位和激活、参数编码、多路复用和错误处理等,它消除了分布式应 用程序开发和单机应用程序开发的差异【引。 ( i ) c o r b a 体系结构 c o r b a 标准由对象管理组织( o m g ) 设立并进行控制。c o r b a 定义了一系列a p i , 通信协议,和物件服务信息模型,使得异构应用程序能够互相操作,这些应用程序可以用 不同的语言编写,并且运行在不同的平台上。 c o r b a 体系结构图如下【8 】: 二c l i e n t) b j e c t i m p l e m e n t a t i o n 多 弋 7 弋,7n 么 z 7 s t a t i ci d l d y n a m i c d y n a m i c ) lo r b s k e l e t o ns k e l e t o n i n v o c a t i o n s t u b si n t e r f a c e o b j e c ta d a p t e r o r bc o r e 图2 3c o r b a 体系结构图 c o i m a 体系结构包括以下几个组件: ( a ) o r a 接口和o r b 核心: 在c o r b a 体系结构中,o r b 并不需要作为一个单独的组件来实现,而是通过一系 列接口来定义。不同的o r b 所选择的实现方式有很大的不同。o r b 提供了透明的请求传 递机制,弱化客户端方法调用的细节以及简化分布式处理。o r b 核心是整个o r b 的一部 分,提供基本的对象表示并负责传送对象请求。c o r b a 的设计目标是支持不同的对象机 制,这种支持正是通过在o r b 核心上构建o r b 组件来实现的,o r b 组件屏蔽了不同o r b 核心之间的差异【7 1 。 ( b ) 客户端应用程序: 客户端对象可以访问对象实现的一个引用。客户端对象只是根据对象接口了解对象 8 南京邮电大学硕士学位论文第二章分布式系统的概念 实现的逻辑结构,并可以调用对象支持的行为。客户端程序应该具有良好的可移植性,并 且无需修改源代码,就可以在任何o r b 上运行。客户端程序无需了解对象实现的具体方 法或者与o r b 的交互情况。 ( c ) 服务端应用程序: 服务端应用程序包含了一系列的对象实现,包括所有的数据结构和方法等。对象实 现的方法可以多种多样,包括独立的服务器、数据库、方法的程序代码和封装应用等。对 象实现不依赖于o r b 或客户调用对象的方式。 ( d ) 请求( r e q u e s t ) : 客户通过请求来得到服务。客户端在请求中要提供服务的对象实现框架,执行操作 的函数原型,操作上下文以及该操作所用到的参数。 ( e ) 桩和骨架( i d ls t u b sa n ds k e l e t o n s ) : 对一种特定语言的映射,桩和骨架提供了对象实现和对象请求的编程接口,但是它 们并不一定是一一对应的,还可以选用动态调用接口来访问对象的s k e l e t o n 程序。 ( d 动态调用接 ( d y n a m i ci n v o c m i o ni n t e r f a c e ,d i i ) : 实现对象调用的动态处理,也就是说不必通过专用的某一操作的程序框架来访问对 象实现。通过d i i 接口,客户方可以直接利用o r b 提供的请求机制传送请求到目标对象, 不需要i d ls t u b s 。 ( 曲动态骨架接口( d y n a m i cs k e l e t o ni n t e r f a c e ,d s i ) : 相当于客户端的d i i 。 ( h ) 对象适配器( o b j e c ta d a p t e o : 是对象实现访问o r b 所提供的服务的主要方式。o r b 通过对象适配器提供服务, 包括:对象引用的生成与解释,方法的调用、交互的安全、对象和实现的激活与终止、对 象引用到对象实现的映射以及对象实现的登记等。 ( 3 ) j 2 e e 基本原理 j 2 e e 是一种利用j a v a 2 平台来简化与多级企业解决方案的开发、部署和管理相关的 复杂问题的体系结构。 j 2 e e 技术的基础就是核心j a v a 平台或j a v a 2 平台的标准版。j 2 e e 不仅巩固了标准 版中的许多优点,同时还提供了对e j b ( e n t e r p r i s ej a v ab e a n s ) 、s e r v l e t 、j s p ( j a v as e r v e r p a g e s ) 以及x m l 等技术的全面支持捌。 j 2 e e 使用了e j bs e r v e r 作为商业组件的部署环境,在e j bs e r v e r 中提供了分布式计 9 南京邮电大学硕士学位论文第二章分布式系统的概念 算环境中组件需要的所有服务,例如组件生命周期的管理、数据库连接的管理、分布式事 务的支持、组件的命名服务等等。有些企业级的e j bs e r v e r 还提供了支持高可用性和高 性能的群集技术,失败的自动转移和恢复,应用负载的自动均衡能力等。实现商业逻辑的 e j b 组件可以更加高效地运行在应用服务器中,支持多种客户端的访问。例如采用h t t p 协议的客户端可以先向运行在w e bs e r v e r 上的s e r v l e t 或者j s p 发出请求,在j s p 中嵌入 j a v a 的代码调用运行在e j bs e r v e r 中的e j b 组件服务,以实现商业逻辑;而其他的客户 端,可以通过i i o p 直接访问运行在e j bs e r v e r 中的组件。一个多层的分布式的应用模型 意味着应用逻辑依据功能划分成组件,并且可以在同一个服务器或不同的服务器上安装。 一个应用组件被安装在什么地方,取决于该应用组件属于多层j 2 e e 环境中的哪一层,比 如位于客户层、w e b 层、业务层或者企业信息系统层( e i s ) 。 j 2 e e 技术之所以赢得广泛重视的原因之一就是e j b 。它提供了一个框架来开发和实 施分布式商务逻辑,由此极大地简化了具有可伸缩性和高度复杂性的企业级应用的开发。 e j b 规范定义了e j b 组件在何时如何与它们的容器进行交互作用,同时e j b 规范也定义 了3 种基本的组件类型:s t a t e l e s ss e s s i o nb e a n s ,s t a t e f u ls e s s i o nb e a n ,e n t i t yb e a n s p 。 a p p l i c a t i o n 陧翌国 i ( 兰垒垒! ) j 玉夏) 巫重) ( 玉亘) r e s o l v e _ i n i t i a l r e f e r e n c e s ( c o r b a _ o r b _ o b j e c t l d _ _ i m p l e m e n t a t i o n r e p o s i t o r y , e n v ) ; i m p l r e p 2 f j :i m p l e m e n t a t i o n r e p :_ _ n a r r o w ( 0 ) ; 0 = i m p l _ r e p - l o o k u p _ i d ( _ i m p l m d i n t i f i n t ,e n v ) ; i m p l = c o r b a :i m p l e m e n t a t i o n d e f :_ n a r r o w ( 0 ) ; b o a - i m p l _ i s _ r e a d y ( i m p l ,e n v ) ; 上述语句是服务端的初始化步骤,如o r b 初始化,查找服务接口等等,这些步骤在 服务端程序启动后仅执行一遍,即可接收客户端请求。当多次接收客户端连接时,因为连 接已经建立,上述代码就不再执行,服务端可直接接收数据并处理然后返回。 客户端也可能存在这种情况,在实验中,我们把系统看作黑盒,仅在实验中区分多 次调用( 1 0 次及以上) 以及单次调用( 1 次) 两种情况。具体分布式系统如何处理不做深 入分析,我们只从外部观察其实验结果的变化。 综上,调用代价指客户端及服务端消耗的时间总和。关于服务器端业务逻辑处理时 间,在计算时是算在实验结果中的,但是业务逻辑在实验中是固定的,可以测算出它消耗 的具体时间,所以只要将实验结果减去业务逻辑耗时即可得到调用代价值。调用过程示例 见图4 1t 南京邮电大学硕士学位论文第阴章调用代价具体实验测试方法 客户端 璧 二三 准备 二: 调用 二: 霪 y 服务器端 11 返回 v ;一v 、q 冒图蛹溺翻耀翻黝、瞄酗嘲鼎鞲鞠鳓黝 4 3 实验用例详细说明 图4 i 调用过程步骤 始化) 3 收并处理 客户端:实验客户端负责发起远程调用,包括初始化参数,远过程调用,接收服务 器端返回并解析其中的返回值。 所有分布式系统的客户端基本框架一致,分2 种调用模式:a 模式和b 模式。 a 模式:一次调用代价 一次调用代价包含了客户端初始化和收尾工作的代价。测试方法如下:系统服务部 署完毕后,客户端每隔1 0 分钟调用一次服务器服务,记录包括客户端初始化,服务器端 初始化,客户端调用完毕释放连接等所有工作消耗的时间。在这里,并不把服务器端服务 关闭,也不重新部署服务,因为在实际系统中,完全关闭一个运行的服务这种情况发生的 概率不多,大多情况是:客户端连接较少,每隔一定时间才有一个连接,而服务器端仍然 正常运行并等待连接。这里尽量做到接近实际运用。 计时:计时也放置于客户端。具体位置在参数初始化前和返回值解析完毕之后,即 在需要传递的参数初始化之前取系统时间t 1 ,然后调用过程开始,当服务器端返回结果后, 将结果解析输出,再取系统时间t 2 ,则t 2 t 1 即为测得的调用代价。 b 模式:多次调用代价 分别取连续调用1 0 次,1 0 0 次,1 0 0 0 次,1 0 0 0 0 次及1 0 0 0 0 0 次调用的时间。这里计 算调用总时间即当所有调用开始之前和所有调用结束之后的时间差作为多次调用代价。 多次调用目的有两个,一是观察随着调用次数的增多,可以观察数据的一般趋势, 是线性还是非线性,增长速度等;二是计算多次调用消耗总时间,可以得出比较精确的平 均值,而且可以明显消除数据波动带来的数据不稳定因素,并且可以基于多次调用的数据 得出一些统计规律。 南京邮电大学硕士学位论文第四章调用代价具体实验测试方法 如图4 1 :调用代价时间包括步骤l ,2 ,3 ,4 ,5 的总和。 服务器端:服务器端负责接收客户端连接请求并解析其中的参数,执行业务逻辑, 得出返回值,然后返回给客户端。 服务器端的业务逻辑模仿:采用两种模型,即服务器负荷高以及服务器负荷低2 种, 高负荷模拟方法为在服务器端执行2 0 万次w h i l e 语句循环,低负荷模拟方法为在服务器 端执行2 万次w h i l e 语句循环。当循环结束即表示服务器端业务逻辑处理完毕,服务器端 业务逻辑函数若有返回值则返回相应值。这里的循环次数经过实际考察,符合实际应用系 统的规律。 4 4 六种不同类型系统调用模式 4 4 1b a s e 基本类型: 为了实现对比,设计b a s e 基本类型。b a s e 类型实质上为进程内调用,调用原型如下: v o i dm a i n o r e m o t e c a l l 0 ; i n tr e m o t e c a l l o ) ; 可以看出,远过程函数与发起调用进程位于同一台机器并且位于同一地址空间。 4 4 2p i p e 管道类型调用方式 管道实质上也为本机调用,但是它可以实现不同进程之间的通信,它也不经由网络, 但它与其它分布式系统有一定的类似之处,因此也取其调用代价结果作为对比。 4 4 3s o c k e t 网络套接字方式 通过s o c k e t 建立最简单的分布式系统,分别编写客户端与服务器端组成典型的c s 2 7 南京邮电大学硕士学位论文 第四章调用代价具体实验测试方法 模式。客户端通过网络套接字,调用服务器端服务,服务器端也通过同样方式返回,其过 程非常简单,所有函数调用都通过硬编码实现。 4 4 4c o r b a 方式 对于c o r b a 分布式系统,采用了两种中间件产品来实现,一个是o r a c l e 公司的 t u x e d o 中间件,另外是富士通( f 哂u s t u ) 公司的i n t e r s t a g e 产品来实现。 t u x e d o 产品支持c o r b a 服务的所有开发过程,包括i d l 文件编译,桩代码自动生 成,服务的开发,部署等。我们需要做的部分为添加服务实现,按照规范编写i d l 文件, 按t u x e d o 产品格式编写客户端和服务器端初始化过程及调用格式,编译并部署c o r b a 服务即可。 i n t e r s t a g e 的实现与t u x e d o 开发很相似,核心部分都相同,i d l 文件甚至基本可以 通用,仅有细节上的差别并不重要。 对于c o r b a ,我们将服务器端被调用的业务逻辑包装成服务部署在t u x e d o 或者 i n t e r s t a g e 中间件上,客户端只需要根据i d l 定义的桩代码调用远端服务并添加计时模块 即可。 4 4 5j 2 e e 方式 j 2 e e 同样采用两种分布式系统实现:w e b l o g i c 和i n t e r s t a g e 。 w e b l o g i c 是美国b e a 公司出品的一个应用服务器,本质上它是一个基于j 2 e e 架构的 中间件。b e a w e b l o g i c 是用于开发、集成、部署和管理大型分布式w e b 应用、网络应用 和数据库应用的j a v a 应用服务器。 对于实际运行的c r m 系统,使用的也是w e b l o g i c 系统,同时为了对照,也采用了 富士通( f u j u s t u ) 公司的i n t e r s t a g e 系统。i n t e r s t a g e 不仅集成了c o r b a ,而且还支持 w e b l o g i e 服务,通过使用两种不同的系统实现e j b 的部署,使得测试结果更有参考价值。 4 4 6g s o a p 方式 g s o a p 代表了w r e bs e r v i c e 应用。g s o a p 编译工具提供了一个s o a p x m l 关于 2 8 南京邮电大学硕士学位论文第四章调用代价具体实验测试方法 c c + + 语言的实现方法,从而让c ,c h 语言开发w e b 服务或客户端程序的工作变得简单 很多。g s o a p 利用编译器技术提供了一组透明化的s o a p a p i ,并将与开发无关的s o a p 实现细节对用户隐藏起来。g s o a p 的编译器能够自动地将用户定义的本地化的c 或c + + 数据类型转变为符合x m l 语法的数据结构,反之亦然。这样,只用一组简单的a p i 就将 用户从s o a p 细节实现工作中解脱了出来。 所以,采用g s o a p 编写最简单的分布式应用时,只需要编写调用函数的头文件即可, 这很类似于c o r b a 中的i d l 文件。当有头文件之后,利用g s o a p 提供的工具,自动生 成客户端和服务器端框架代码,然后再添加业务逻辑的实现并且编译即可。在这里我们没 有部署服务,即简单地开启服务器进程和客户端进程就可以实现调用。 总之,概括讲即为同一种业务逻辑,用多种分布式系统来实现。 4 5 四种不同的参数模式 对于每种分布式系统调用方式,分别设计4 种参数模式: ( 1 ) 短参数类型:设计为单一i n t 类型输入参数,返回i n t 类型值。 函数原型为:i n tr e m o t e c a l l ( i mi n ) ; ( 2 ) 长参数类型:参数长度为5 1 2 字节的字符串,返回参数也为5 1 2 字节的字符串, 函数返回h a t 类型或者无返回也可。 函数原型为:i n tr e m o t e c a l l ( c h a r * i n ,c h a r * * o u t ) ; ( 3 ) 多参数类型:输入参数为7 个整型类型,输出参数为一个结构体,里面包含了5 个整型类型。函数返回i n t 类型或者无返回也可。 函数原型为:i n tr e m o t e c a l l ( i n ti n l ,i n ti n 2 ,i n ti n 3 ,i n t i n 4 ,i n t i n 5 ,i n ti n 6 ,i n ti n 7 ,s t r u c t _ _ o u t i n to u t l ;i n to u t 2 ;i n to u t 3 ;i n to u t 4 ;i n to u t 5 ; & o u t ) ; ( 4 ) 复杂参数类型:参数类型多,个数多。类型包括整型,字符串,浮点型,单字符, 长整型和混合结构体,返回参数也为一个复杂的结构体。总的个数与多参数类型一致。函 数返回i n t 类型或者无返回也可。 函数原型为:i n tr e m o t e c a l l ( c h a ri n l ,i n ti n 2 ,l o n gi n 3 ,f l o a ti n 4 ,c h a r i n 5 ,s l r u c t _ i n i n i n 6 ;c h a ri n 7 ; i n ,s t r u c t _ o u t c h a ro u t l ;i n to u t 2 ;l o n go u t 3 ;f l o a to u t 4 ;c h a r 宰o u t 5 ; & o u t ) ; 南京邮电大学硕士学位论文 第四褒调用代价具体实验测试方法 4 6 程序结构流程图 ( a ) 一次调用模式 4 7 核心部分代码 图4 - 2 程序结构流程图 这里给出核心部分的调用示例代码( 以g s o a p 为例) : 单次调用: g e t t i m e o f d a y ( & s t a r t , n u l l ) ;获取开始时间 s t r u c ts o a ps o a p ; s o a p _ i n i t ( & s o a p ) ;s o a p 初始化 ( b ) 多次调用模式 南京邮电大学硕士学位论文 第四章调用代价具体实验测试方法 c h a r 铲a ;参数初始化 i n t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵池区安全员证考及答案1
- 高职教师教学胜任力提升的有效策略
- 脐橙产业发展趋势与应对措施
- 老旧建筑健康监测系统设计与应用探索
- 土味水晶鞋营销方案
- 2025年交通工程安全题库及答案
- 三级语文百科知识竞赛题及答案
- 养殖专业模拟试题及答案
- 儿科病区应急预案(3篇)
- 7.2 三角函数概念说课稿-2025-2026学年高中数学苏教版2019必修第一册-苏教版2019
- 富士康员工手册(第10版)
- DL-T 2574-2022 混流式水轮机维护检修规程
- 脑电图基础知识及判读课件
- 公路隧道病害产生机理及防治对策
- ct室防辐射施工方案
- 工务段-跨越施工配合协议
- IATF16949项目移交管理程序
- 第三节酒店业的演变-课件
- 新能源题库 -电气题库
- 律师事务所分所名称检索登记表
- 《放射物理与防护》习题
评论
0/150
提交评论