




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文 搏要 摘要 投资者在进行交易前需要做很多的工作,那就是投资的研究和分析。要进行 投资研究和分析,首先需要获取市场交易数据,没有数据就无法进行研究和分析。 本文的主要目的就是为实时交易数据发布系统( 暂时命名为r 刑) 设计高吞吐量的 架构,r 1 m 能够辅助原有的交易平台,帮助投资者能够更好地把握市场的最新动 向以及投资机会,快速有效地实现资产运作策略。 实时交易数据发布系统最重要的一个特点就是“实时性”,而且它的服务器和 客户端之间的通讯非常繁忙,交易数据量也非常大,所以这些系统需要具备比较 高的吞吐量。这篇文章主要的工作有两个方面: 1 ) 研究出了一些策略和方法,把这些策略和方法结合起来应用到实时交易数 据发布系统中,能够帮助我们设计出具有高吞吐量的架构。 这些策略和方法主要包含三类: 1 多层的系统架构( m u l t i - t i e r ) ; 2 增加c a c h e 模块; 3 数据的处理方式: 包含增量数据方式,分级稀疏数据方式,c l i e mp o i l i n g 或s e r v e rp 璐h 实时数 据发布方式和简化的数据格式。 2 ) 在r 1 m 实时交易数据发布系统的具体设计中,应用了上面的策略和方法 来提高它的吞吐量,并且从垂直方向和水平方向上进行扩展来提高吞吐量。 在技术实现上,r 1 m 采用了基于f 1 e x 的r i a 架构,l u a 架构兼具了b s 和 c s 的优点。因此,r 1 m 的客户端具有本地计算和存储的能力,这样减少了对服 务器的依赖和数据传输和存储需求,提高了整个刚的吞吐量和性能。 最后,本文还设计了一个测试案铡,来测试在垂直方向上的扩展是如何提高 r t m 系统吞吐量的。 关键词架构,吞吐量,扩展,融a ,f 1 e x 浙江大学硕士学位论文 a b s t r a c t a st h ed e v e i o 芦姗to f 在n a i l c i a im a r k e t 锄di t 由e c h n o i o 鼢m o r e 觚dm o r e f h l a n c i a lt r a d i l l g 撒l dm a r k e tm o n i t o 咖go p e r a t i o n sa 舱m o v e dt om ei n t e m e t 0 n e s i 鲥f i c a n tc h a r a c t e ro ft i l e s ee l e c n o n i cm a r l ( e t 讹d i 船锄i i l a t i o na p p l i c a t i o n si s “r e a l - t i m e 乙b e c a u s ct l l ei n v e s t o r sg i l o u l dg c tt l l er e a l - t i m em a r k e t 胁a i l d 卸a l y z c t 王比i ri n v e s t i n gp o n f o l i o u s i l a l l y ,t 1 1 e 辩f i n a i l c i a l 印p l i c a t i o l l so f t e nd e a l 埘t 1 1ah u g e v 0 1 u m eo f 卸dt 1 1 e i ru s e rn u m b e ri sa l s ol a r g e t h e r e a l t i m e ”a n d “ah u g e v o l 啪eo fda _ 留a s kt h c s ea p p l i c a t i o n s 谢ml l i g l lt h r o u g h p u t 确eo b j e c to ft i l i sp a p e r i st 0d e s i g na r c l l i t e c t u r e s 诚ml l i g ht 1 1 r o u 曲p u tf o rt h e 辩m a l - t i m e 蚋d i n gd a t a d i s s 锄i n a t i o na p p l i c 砒i o n s t h et w om a i nw o r k so f t h i sp a p e r : 1 ) w l l i l ed e s i g i l i n gt h e s ea r c h i t e c t i l r e sw i t hh i g h l i d u 曲p u tf o rt l l e r e a l 撕m e 订a d i n gd a t ad i s s c m i n a t i o na p p l i c a t i o i 硌,t h ea r c h i t e c t sc a nr c f e r 胁c et 量1 ef o l l o w i i l g 蛐西e sm l dm e t h o d s :1 m u l t j t i e ra r c l l i t e c m r e s ;2 a d dc h em o d u l e ;3 a d o p tt 圭l e d e l t ad a t am o d e ;4 a d o p tt l l es p a r s ed a t am o d e ;5 c l i e n tp 0 1 1 i n gv ss e r v e fp u s hf o r l 训- t i m en 硼i n gd a t a ;6 s t n l c 嘶n gd a t af - o rp e r l l b n n a n c ec o n s i d e r a t i o n s a tt l l es 锄e t i m e ,t h ea r c h “e c t ss h o u l dd e s i g n 出ea r c h i 妣t so ft l i 曲e 吐t h r o u g h p u tw i t h mt h ec o s t c o n s 妇i n t s 卸d 如懈m i g r a t i o nc o s t 2 ) t h ea b o v es t r a t e 百e s 锄dm e t h o d s 盯ca p p l i e dt oas p e c i f i cr e a l - t i i l l e 打a d i n gd a 诅 d i s s e m i n a t i o na p p i i c a t i o nr t m ,h i c hi saw c ba p p l i c a t i o n nn o to i l l yp m v i d e si t s u s e r s1 l l er e a l t i m em a r k e td a a ,b u ta l s o r n em a r k e tr 印o n i n g ,s t a t i s t i ca i l d c o m p 撕s o n 协f o 册a t i o n 1 nt h ec l i e ms i d e ,t l l e 辩咖w i l lb ed i s p l a y e dm a i n l yi l l c h a n s 蹦c hi n t e m e ta p p l i c a t i o n ( r i a ) i sa d o p t e df o rr 1 mc l i e n ts i d ed e v e l o p m e m t 蟛f ea 托t w od i r e c “o n sf b fr t me x t e 札s i o n st oi m 秘a v ei t s 让埴o u 西p u t :1 v 枷c a l e x t e n s i o n ;2 p a r a 】e le x t e n s i o n i nv e n i c a ld i r e c t i o mf 1 e x 鲫p p o n sf o u rd a t aa c c e s s m 猢e r s :w 曲s 盯v i c e ,h t t ps e i c e ,r 锄o t eo b j e c t ( a m f ) a r l df l e xm e s s a g es e r v i c e ( s e r v e rp u s h ) i np a r a 】l e ld i r e c 6 0 n :1 s i n g l ei l l s t a n c e o fr t ms e n ,e r ;2 m u l t i i n s t a n c e so f r l 、ms e r v e rw i t l l o u tl o a db a l a i l c e :3 m u l t i i n 蚍m c e so f r l ms e e r 、析t hl o a db a 】m l c e k 吖w o r d s1 k o u 曲p u t ,a r c h i t e c 衄e ,e x t e i l s i o n ,i u a ,f l e x 浙江大学硕士学位论文图目录 图目录 图2 1f 1 e ) 【编程模型9 图2 2 消息从生产者到消费者的一个数据流图1 1 图2 3p u b l i s l l ,锄b s c r i b c 的消息流图1 1 图2 - 4s e r “c c - o r i e n t c da f c l l i t c c t i l r c 。1 2 图2 5s o a 元素1 2 图3 1 三层架构模式1 7 图3 - 2m l l l t i t i c r 服务器端结构1 8 图3 3m u l t i - t i c r 客户端结构1 9 图3 - 4 添加c a c h e 模块到客户端2 0 图3 5 从c a c h e 里获取数据的流程2 1 图3 6 在服务器中加入的c a c h e 块2 2 图3 7 工作在c a c h e 上的线程2 3 图3 - 8 增量数据方式具体设计2 4 图3 9 增量数据方式2 5 图3 1 0 当天曲线图,数据密度为d 2 7 图3 1 1 一星期曲线图,数据密度为d 2 2 7 图3 1 2 使用c l i e mp o l l i n g 请求实时交易数据2 8 图3 1 3 使用s e n ,e rp u s h 请求实时交易数据2 9 图3 1 4 单个服务器实例部署结构3 3 图3 1 5 多个经过克隆的服务器实例部署结构图3 4 图3 1 6 分功能块部署多个实例的结构图3 5 图3 1 7 负载均衡的多个服务器实例结构图3 6 图4 1r 1 m 应用系统的结构3 8 图4 2r t m 客户端架构设计4 1 图4 3 在f l e x 客户端和j 2 e e 服务器之间的g a t e 、a vs e r v l e t 4 2 图4 4r 1 m 服务器端的架构设计4 3 图5 1 三种数据访问方式的测试结果比较。5 4 图5 2 单个r 1 m 服务器对多个r 卟i 客户端5 7 图5 - 3 无负载均衡的多个r t m 服务器实例5 7 图5 4 负载均衡的多个r 1 m 服务器实例5 8 图6 1 垂直方向上的扩展成本图6 2 i l l 浙江大学硕士学位论文表目录 表目录 表格3 1 测试结果3 0 表格5 1 三种数据访问方式的测试数据结果比较5 3 表格5 - 2 数据格式简化后的测试结果。5 5 表格6 1 垂直方向的成本吞吐量关系表6 1 表格6 - 2 水平方向上的成本一吞吐量关系表,6 l 浙江大学硕士学位论文第l 章绪论 第1 章绪论 1 1 应用背景 某银行的金融系统a 是一个采用客户端,服务器结构的支持多银行的外汇交易 平台,它向用户提供了安全的,实时的,支持多订约方进行全天2 4 小时交易。a 产品的使用者主要包括两类: 1 ) b u y - s i d e 鹏e r ,也就是c u s t o m e r ,主要是各种需要进入货币市场的金融机构 或者投资公司等; 2 ) s e l l s i d eu s e r ,也就是t r a d e r ,主要是各种大的银行机构等。 c u s t 哪c r 主要根据自己的投资组合和策略,向t r a d e r 发送一些外汇交易的订 单( o f d e r ) ,而t r a d e r 负责对这些外汇订单进行定价,他们主要是参考外汇交易市 场的价格( 像路透社提供的实时外汇交易价格) ,然后给出相应的出价m i d ) 和要价 ( a s k ) 。 在金融世界里,像系统a 所提供的外汇交易其实只是这些投资者在整个投资 过程中的一部分。在c u s t o m e r 对胁d e r 发送订单前,他们需要很多的工作,那 就是投资的研究和分析。不仅c u s t o m e r 需要做这些投资研究和分析,t r a d e r 也同 样需要,投资研究和分析是在整个投资过程中一直存在的。 要进行投资研究和分析,首先需要获取市场实时交易数据和历史交易数据, 没有数据就无法进行研究和分析。由于系统a 只是一个交易平台,它无法把实时 交易数据以某些形式呈现给c u s t o m e r 和t f a d e r ,所以在此基础上,可以设计一个 实时的交易数据发布系统( 暂且命名为硎) 来辅助系统a 。通过使用这个实时的 交易数据发布系统,投资者可以充分把握货币市场的最新动向以及投资机会,面 向国际货币市场进行投资,从而快速有效的实现全球资产运作策略。 1 2 实时交易数据发布系统 实时金融交易数据发布系统必须具备的特征就是“实时性”,因为投资者需要 获取实时的交易数据来分析投资组合,并做出投资策略。通常,这些投资者想要 获取的交易数据还不止实时的交易数据,他们还需要一些历史的交易数据。通过 对历史的数据分析,比较,然后预计市场的发展趋势,才能做出比较正确的投资 决策。通常,实时交易数据发布系统的数据量是非常大的,因此在网络上,总是 有大量的数据从发布系统发送到投资者。 浙江大学硕士学位论文第l 章绪论 实时交易数据发布系统中,服务器和客户端之间的通讯非常繁忙,而且交易 数据量也非常大,所以这些系统需要具备比较高的吞吐量。 对于实时交易数据发布系统来说,吞吐量主要就是指:系统在特定的时间内 实际完成的工作量。 在实时交易数据发布系统的初始阶段,系统的用户数量通常不大,因此系统 服务器对于这样的一个负担能够比较好的运作,用户请求的响应时间也比较短, 因此用户体验( u 蝌e ) 【p e f i e i l c e ) 是比较好的。但是 1 ) 随着业务的发展和扩张,这些系统要发布的交易数据量会逐渐增加。 2 ) 当这些系统被更多的用户接受后,用户数量也会大大增加。 随着交易数据量和用户数量的增加,系统服务器会变得更加繁忙,而且单位 时间内需要处理的数据和用户请求也增多了。如果这个时候,单位时间内系统完 成的工作量没有增加,系统的吞吐量就达到最大值了。当吞吐量达到这个最大值 时,如果并发用户数量一直在增加,系统的性能就会下降了,用户请求的响应时 间也变长了。 吞吐量没有得到提高,主要是由两个原因引起的: 1 ) 系统服务器本身的资源有限,单位时间内只能完成这个工作量。 2 ) 由于网络带宽的问题,即使系统服务器可以处理更多的任务,但是由于 带宽有限,网络上传输的数据量又非常大,所以用户的请求和响应都被 延迟了。 1 3 解决办法:设计高吞吐量和易扩展的系统架构 架构设计师的任务就是为某个具体的应用系统设计一个比较抽象的结构,他 们设计出来的架构,必须要满足现有应用系统的需要,还要在将来技术和业务需 求变动的时候,能够比较容易地进行扩展。架构不是一些具有魔力的公式,而是 支持变动的结构。成功企业架构的目标就是,探究整个业务领域,设计出一个系 统的基础框架,这个框架能够提供可行的解决方案,同时还能遇见到将来的变化。 当然,很多8 0 年代开发的应用系统到今天还在被使用,因此架构设计师需要对 目前的需要和将来的需要进行衡量目光不能太短浅,但也没必要太超越现实。【刀 为实时交易数据发布系统设计高吞吐量和易扩展的架构特别得重要,主要有 以下一些原因: 1 ) 实时交易数据发布系统需要很好的实时性。 实时性要求应用系统有比较高的吞吐量,如果架构设计不好,对系统的性能 浙江大学硕士学位论文 第l 章绪论 会有很大的影响,在后面会有具体的例子来说明。 2 ) 实时交易数据发布系统发展比较迅速。其中,业务的需求变动比较快, 并发用户的数量增加也比较快。 因为实时交易数据发布系统发展快,所以要求系统的架构有比较好的扩展能 力。可能经过一年或两年,原来的系统就不能满足需求了,从而需要对它们进行 升级。如果架构设计师在为实时交易数据发布系统设计架构时,没有遇见到未来 的变动,那他们设计出来的架构很可能扩展能力比较差。 浙江大学硕士学位论文第2 章相关技术背景 第2 章相关技术背景 2 1 传统的w e b 应用 传统的网络应用开发可以被分为两类:一类是客户端服务器( c s ) 架构;另 一类是浏览器服务器( b s ) 架构。 基于客户端服务器的桌面应用 桌面应用相比起浏览器应用有很多优点,主要是: 1 ) 桌面应用能提供更好c h e r ) 的用户体验 2 )g u i 的界面元素也要丰富得多 3 ) 桌面应用不需要浏览器应用的p a g e 装载的等待时间,因此桌面应用的反 应速度和交互性都比较好。 4 ) 桌面应用程序可以开发得非常复杂和具有重量级,可以充分地利用本地 的计算和储存能力,进而开发出功能复杂的产品。 5 )由于桌面应用可以用本地的计算,可以把一些计算移到客户端,同时, 桌面应用可以用内存和外存,可以把数据缓存,进而大大减少对服务器 端的依赖,服务器的消耗也小。 6 )桌面应用可以同时支持在线和离线。 同时,桌面应用也有如下一些主要的缺点: 1 )桌面应用程序需要在使用前安装。客户端的升级和维护成本比较大,服 务器端也会随着版本的发展而变得愈加复杂,因为除了支持最新版本的 客户端,服务器还要保持向后兼容。 2 ) 桌面应用程序是和平台相关的。在安装之前,平台的环境必须先设定好, 而且必须获取正确的版本。 基于浏览器服务器的架构 在传统的浏览器朋务器的架构中,几乎所有的计算都是在服务器端,浏览器 只是作为呈现从服务器端发送过来的内容的作用。浏览器服务器架构的应用更加 的通用,现在有9 0 的应用都基于这个架构。 基于浏览器服务器架构的应用有很多优点,主要是: 1 )开发和维护成本都比较低。用户界面比较简单,而且是标准化的,通过 4 浙江大学硕士学位论文 第2 章相关技术背景 使用标准化的t a g 和r i p t 就可以开发出基于浏览器的界面。 2 ) 不需要安装,升级和打补丁都很简单,只要在服务器上做就可以了。因 此维护成本很低。 3 ) 可获得性和扩展性更好。浏览器朋匣务器架构的应用可以在任何连网的地 方被访问,而且可以通过不同的设备和终端进行访问。 4 ) 平台独立性。浏览器服务器架构的应用可以不用担心不同操作系统的问 题, 也不用开发多个版本应对不同的操作系统。 基于浏览器服务器架构的应用也有如下的一些主要缺点: 1 ) b s 架构应用最大的问题是需要用户等待装载下一个页面q a g el o a d i n 曲。 当用户在等待装载时,页面是b l o c l ( i n g 的,这样的用户使用体验上就比 较差。 2 ) b s 架构应用对服务器有较强的依赖,服务器不仅要做业务逻辑,也要做 显示逻辑。 3 ) b s 架构应用在前台的g u i 上也比较简单,做不到丰富的特性。 4 ) b s 架构应用对网络带宽的占用比同应用的c s 架构的程序大。 2 2r i c hi n t e 珈e ta p p l i c a t i o n ( r i a ) 是一个新的架构 r i c hi n t e m e t a p p l i c a t i o n ( 砌a ) 综合了b s 和c s 应用的强处,同时用去除了它 们的缺点。在砌a 的客户端,基于页面的开发已经被基于功能的开发所取代。一 个基于r i a 的应用可以通过异步的方式和服务器通信,在不阻断用户操作的同时 进行数据的发送和接收。r i a 的应用是居于一个客户端的虚拟机的,a 的应用 除了在对客户端主机的操作权限上外,和c s 架构的应用可以有同样的计算能力 和内外存使用能力。i u a 应用的界面也可以和c s 架构的应用一样的丰富,如在 控件之间的拖曳操作等。 2 2 1r i c hi n t e 功e ta p p l i c a t i o n 概念 对用户体验来说,好的体验是无缝的( s e a 硼e s s ) ,集中在主要方面的( f o c u s e d ) , 面向连接的( c 0 1 1 i i e c e d ) ,和有意识的( a w a r e ) 。应用产品应该提供最大化的好的体 验,除了继续保持那些在已经证明的对提高用户体验要好的作用的元素外,上 面提到的四点也要在设计中考虑。 浙江大学硕士学位论文 第2 章相关技术背景 要运行i u a 应用的客户端都需要有一个特定的虚拟机,这个虚拟机提供r n 的运行平台,r n 应用是不能超过虚拟机的能力的。相比起b ,s 架构的客户端, r i a 的客户端界面要丰富的多,如控件间的拖曳操作,用滑动条( s l i d e r ) 过滤数 据等。同时一些不需要服务器资源参与的计算可以在r 队的客户端中完成,大大 提高了程序的响应速度和交互性。相比起b s 架构的服务器端开发,r 认的服务 器不需要做任何对显示的操作,它只要关注在核心的计算和逻辑上,因此r i a 的 服务器对外的接口更加简洁和面向服务( s e r v i c e 面e n t e d ) 。总的来说,灿的客户 端能力已经和c s 的客户端非常的接近,其发展的方向是和c s 客户端除了对本 机操作权限外一样的能力。 客户端和服务器端的平衡 r n 的应用在客户端有强大的计算和存储能力,所以,一部分的计算和存储 工作可以从服务器上挪到客户端上。因此相比b s 架构,a 可以释放服务器端 的资源,减小服务器的压力。同时这样也减少了客户端和服务器的通信,减少了 网络带宽的占用。 异步的通信方式 r 认的客户端可以和服务器端用异步的方式通信。异步通信可以在不阻断 ( b l o c k i n g ) 用户操作的情况下调用服务器端的服务并且接收数据。 提高网络使用效率 r n 架构的应用会在网络使用量上有显著的降低。应r 认有计算能力,比传 统的b s 架构的客户端更加智能的决定哪些是需要和服务器交互,哪些操作不需 要。在减少交互次数的同时,服务的请求和响应的大小也会减少,提高了数据传 输的有效率。 2 2 2r i c hi n t e h l e ta p p l i c a t i o n 相关的技术和产品 r i a 的产品的选择有比较大的范围,目前有很多产品可以选择,从轻量的到 鲁棒的标准的解决方案都有。目前为止,各式各样的r 队解决方案都可以归结为 下面三种技术平台:f l a s h ,j “a 和n e t 。a j a x 作为b s 和l u a 架构之间的过渡, 不作为r 认的解决方案。 6 浙江大学硕士学位论文 第2 章相关技术背景 基于n e t 的解决方案 n e t 平台由m i c m s o n 提出。在w i n d o w s s t a 的发布中包含了n e t3 o 的平 台。这个平台引入了“w m d o w sp r e s e n 协t i o nf o u n d a t i o n ”( w p f ) 。w p f 统一了所 有的表现层资源,如文档、图片、音频、视频,和在w i n d o 、转平台下的其他的应 用程序。使用了w p f ,开发人员可以使用基于x m l 的一种新的代码x a m l 和如 c 群和s u a lb 硒i c 一样的n e t 支持的编程语言。这些开发出来的应用不仅可以在 w i n d o w s 平台上运行,而且可以在浏览器中运行。考虑到m i c r o f i 在操作系统 客户端上的占有率,n e t 平台上的w p f 将成为一个主要的a 平台。同时, m i c r o f i 还在改进n e t 平台让它更好的支持r j a 的特性。【4 】 基于j a v a 的解决方案 从发布了j a v a a p p l e t ,j a v a 一直在w e b 应用的开发中担当开拓者。j a v a a p p l e t 可以被嵌入到普通的h 删l 网页中。在现在的浏览器中,j a v a a p p l e t 可以在网页 被打开时自动加载。j a v a a p p l e t 可以最早支持m o b i l e p d a 的计算环境的技术。j a v a 提供了客户端的平台无关的u i 库( s 晰n g ) ,也提供了基于x m l 标签和教本的 j s p 语言。但是,j a v a 还没有推出一种基于x m l 的u i 设计和构建方法。而基于 l 的u 1 构建方法是r i a 的一个业界的标准。同时, j a v ac o i 砌咖匆p r o c e s s ( j c p ) 正在把a j a x 基层进入j s p 中。同时,一些公司已经开发了一些产品可以 通过x m l 声明性语言来构建r i a 的s 谢n gu i 。 j a v a 也提供了一个“j a v aw 曲吼a n ”的技术,它是一个可以下载的瘦客户端, 可以是一些本地的或者网络的应用。在基于j a v a 的砌a 技术中,j a v aw 曲s t a r t 是用的最多的r 队平台。 基于f l a s h 的解决方案 f l a s l l f l e 】【是a d o b c 的产品,主要是用于网络应用的开发。a d o b cf l a s h 是一 个跨平台的,而且它有非常好的特性来帮助设计一个好的界面。f l e x 和鼬a p r e n 诅t i o ns e n ,c r 是a d o b e 在提升了f l a s h 的能力的一个产品,开发了好几年。 f l a s h 技术从一开始就关注在图形图像,音频视频上面。使用f l a s h 或者f l c x ,开 发者需要学习a c t i o n s c r i p t 语言。f 1 e x 简化了开发者的开发过程,提供了m x m l , 是基于x m l 的一种声明性语言。f l e x 可以和w 曲服务,n e t ,j 2 e e ,c o l df u s i o n 无缝连接。 这几种解决方案都可以提供一个丰富的用户界面,但是这些砌a 技术的解决 浙江大学硕士学位论文第2 章相关技术背景 方案在企业级应用的移植:从c s 到r 1 a ,从b s 到r j a ,有很多的区别。 2 3f 1 e x 2 3 1f l e x 概念和开发语言 a d o b cf l e x 是为满足希望开发硒c h1 1 1 t e m c t 应用程序的企业级程序员的需求而 推出的表示服务器和应用程序框架。刚a 将桌面应用的响应速度和丰富功能与 w 曲应用程序的广度结合在一起,以提供效果更好的最终用户体验。f l e 】( 表示服 务器提供基于标准的、声明性的编程方法和流程,并提供运行时服务,用于开发 和部署丰富客户端应用程序的表示层。f i e x 开发者使用直观的基于x m l 的语言 来定义丰富的用户界面;该语言由f 1 e x 服务器翻译成智能的客户端应用程序,在 普遍存在的f k 曲运行时环境中运行。回到应用程序的客户端,f l c x 解决什么问 题? 很多w 曲应用程序的用户体验不能令人满意,从而导致了高弃用率、高培训 费用和投资的浪费。f l e x 提供一种新的技术来解决这些问题。在f l e x 出现之前, 试图解决用户界面问题的企业级开发者常常因为h 咧l 的局限性而遭受挫折。 h 州l 起初是为浏览静态文档而设计的,并不适合于提供内容丰富、交互性强和 数据驱动的应用程序。f l e x 为这些程序员提供了一种方法,可以开发出将桌面应 用的强交互性和丰富内容与w 曲的广度结合在一起的应用程序;程序员可以使用 他们偏好的编程方法、开发流程。该方法还满足了基础结构与集成要求。f l e x 允 许应用程序开发者描述应用程序的用户界面布局和u i 控件,并使用开发者熟悉 的、基于标准的编程模型进行数据绑定。 f 1 c x 包含了f l e x 类库,基于x m l 的m x m l 语言,和面向对象的a c t i o n s c r i p t 编程语言。正如下面的图所示: 浙江大学硕士学位论文第2 章相关技术背景 i f l e x l 。 l m l 一“案 a c t i o n s c 啷t 二。一。童 一 羔 三銎l j 一溅 冁= = 镶燕氟;i 霹 一一一w 女# # a “w o # _ “# * * p 矿 图2 1f l e x 编程模型 m 煳l 语言是基于x m l 的,它是用来对用户界面的排版的语言。m x m l 也 可以用来定义不可见的界面元素,如何访问服务器服务的数据连接层,数据源和 控件之间的数据绑定关系。【l 】 和h t m l 语言一样,m x m l 语言提供了表示用户界面的标签。对熟悉h m l 的开发人员来说,m x m l 是很类似的。但是m x m l 比h 1 m l 更加结构化,它也 提供了更多的更加丰富的界面元素和控件。如,m x m l 提供了数据网格,树,t a b 导航,a c c o r d i o n s ,还有菜单。除了这些,还有一些不可见的组件如w e b 服务连 接,数据绑定,和动画效果。用户也可以通过扩展和组合m x m i 提供的组件开 发新的组件给项目使用。【1 】 和h m l 最大的不同是,m x m l 定义的应用将会被编译成为s w f 格式的文 件。s w f 文件可以被a d o b e 的f 1 a s hp 1 a y e r 运行。因此,m 以l 提供了比h ,l 更动态和丰富的用户使用界面。【1 】 f l c x 的开发人员使用a c t i o n s c r i p t 语言去定义他们的f l e x 应用的功能。相比 起m x m l ,a “o n s c r i p t 可以做所有m x m l 能做的事情,而且在流程控制,对象 处理上面更加得有效和简单。开发人员可以先在m x m l 定义用户的界面排版, 如c o n t a i n e r s ,c o n 仃o l s ,e 虢c t s ,f o 彻a n e r s ,v a l i d a t i o i l s 和w e bs e r v i c e s ,并且把排 版和位置信息也放在m x m l 中。每个控件都提供了标准的行为,不需要任何 a c t i o n s 嘶p l 代码,一个按钮就会在鼠标移过时自动高亮。但是,m x m l 作为一 个声明性语言,是不适合去写如何让按钮在用户点击时要如何反应的。为此, a c t i o n s 嘶p t 语言就被引入,用来定义复杂的控制和操作流程。a c t i o n s c r i p t 是一 9 浙江大学硕士学位论文第2 章相关技术背景 个面向对象的语言,它提供了类,方法,不同的数据类型,流程控制关键字等等。 作为一个基本的概念,m x m l 定义了应用的静态方面,而a c t i 伽s c r i p t 实现了应 用的动态方面。【1 】 2 3 2f 1 e xm e s s a g es e r v i c e( f 峪) 硒c hi n t 锄c ta p p l i c a t i o n 需要一个超越传统的r e q m s 饥k s p o n s c 模式的数据管 理层。提供一个更丰富的,更加富有表现力的用户体验通常需要更加密集的数据 交互,而且会带来管理数据在客户端和服务器之间交互的挑战。f l e xd a t as e r v i c e ( f d s ) 基于鲁棒的消息架构,和通用的中间层软件集成在一起,提供了自动的 同步服务器和客户端之间的数据。f d s 同时也支持实时的数据s e r v e rp u s h 和 p u b l i s h s u b s c m i e 消息。它也支持了长时间连接的应用。f d s 的这些特性提供了 一个更加丰富,更加让用户满意的体验,同时也提高了内部用户的生产效率。 d a t a p i l s h f l e xd a t as e r v i c e ( f d s ) 提供了d a 睡p u s h 的能力,它能够让数据自动地从服 务器用推的方式到达客户端。这个特性在要求实时的系统中传统上是用客户 端p o l l i n g 的方式。这个d a 协p u s h 的能力能够向大数量级的用户提供更新,同时 对重要数据提供u p t o t l l e s e c o n d 的视图,可以把更新的延时保持在到1 秒或者以 下。这个特性在股票交易系统,实时的资源监控,商店管理系统等等对实时性要 求高的系统中有重要的作用。 p u b l i 洲s u b s c r i b e 消息 f l e xda _ t as e r v i c e 提供了p u b l i s l 】s u b s c f i b e 消息的能力,这个特性和一些现有 的基于消息的系统( 如j m s ) 集成。它使得消息实时地在客户端和f l e xd a t as e r v i c e 服务器之间传递。f d s 的这个p u b l i s i l s u b s 翻b e 能力使得f l e x 客户端可以p u b l i s h 和s u b s c m i e 消息到t o p i c 上,和传统的富客户端应用程序一样的可靠和服务质量 水平。这个特性使得f l e x 可以在更加复杂和重要的系统中使用,如物流管理系统, 仓储管理系统,股票交易系统等等。 f l e xm e s s a g es e r v i c e 是f l e xd a t as e r v i c e 中的一个重要的组件,它是基于目 前的消息系统的标准而设计的。它提供了一个客户端的a p i 和一套相应的服务器 端的用于构建f l e xm e s s a g i n g 应用的消息服务。 1 0 浙江大学硕士学位论文 第2 章相关技术背景 消息系统按照系统的行为可以分成两个角色,发送消息的叫做生产者,接收 消息的叫做消费者。生产者发送消息到特地消息目的地,然后消息服务将把这个 消息发送到正确的消费者。 下图显示了消息从生产者到消费者的一个数据流图,数据被编码成消息,然 后通过c h a l l i l e l 发送到目的地。消息随后被通过另一个c h a i l n e l 发送到消息的消费 者,消息在消费者上会被解码成消费者要的数据,进而被消费者使用。 p m d u c e r k 至互h 。硎n 撕卜 丑 c o n 蜘朋e r 图2 2 消息从生产者到消费者的一个数据流图 p u b l i s l l s u b s c r i b e 消息是一个基于t o p i c 的消息系统。在f 1 e xm e s s a g es e n ,i c e 中,一个t o p i c 和一个消息目的地等同。在p l l b l i s l l ,s u b s c r i b e 中,一个消息可能有 多个消息消费者,是一个一对多的关系。如下图: 图2 - 3p i l b l i s h ,s u b s c r i b e 的消息流图 2 4s e n r i c e 心i e n t e da r c h i t e c t u r e ( s o a ) s e r v i c e - o r i e m e da r c h i t e c t u r c s ( s o a ) 是一个企业级的软件解决方案。它是一个新 的架构。s o a 的流行来源于、bs e i v i c e s 技术的广泛采用。在一个s o a 中,开 浙江大学硕士学位论文第2 章相关技术背景 发人员把服务看成是一个相对粗粒度的可以处理某个特定任务的组件。这些组件 的实现方法s o a 是不关心的,他们可以用各种不同语言在不同的平台上实现, s o a 仅仅关心这些组件之间如何互连。服务一般是分布式的,服务的消费者能够 通过网络在任意地方访问他们。【2 】 服务是一个可以被发现的软件实例,作为一个独立的应用,通过一个松耦合 的基于消息的交互模型,它可以和其他应用和其他服务交互。【l o 】 图2 - 4s e r v i c e - o r i e i i t c da r c h j t c c t 哦 s o a 的元素构成可以如下图所示: 图2 5s o a 元素 一个设计优良的服务具有如下的特性: 1 2 浙江大学硕士学位论文第2 章相关技术背景 1 ) 粗粒度的 2 ) 基于接口的设计,有正式的服务结构定义 3 ) 为远程访问提供了标准的编码格式 4 ) 可以被发现的 5 ) 单个实例的 6 ) 松耦合的 7 ) 同时提供了同步和异步的交互方式的支持 软件解决方案总会特别考虑这两个基本的方面:应对变化的能力和低的成本。 为了保持业务上的竞争力,软件必须对业务的变化( 内部的如收购了新的业务, 业务重新的整合;外部的如业务竞争的压力和客户的需求) 做出快速的响应。这 样的变化要求一个能够控制成本的,可以扩展的i t 基础设施去支持。 s e r v i c e o r i e n t e da r c h i l e c t u r e 能够让用户帮助组织在变化的业务环境中成功。【1 3 】 1 ) 充分利用现有的i t 资产,包括一些l e g a c y 系统的集成。 s o a 提供了一个抽象层。这个抽象层可以让一些现有的1 1 r 资产通过包装可以 成为s o a 架构的一部分,保护了已有的投资。有了s 0 a ,组织获得了对直接 使用外部的已经存在的资源的直接使用能力。 2 ) 易于系统问的集成,易于管理复杂的应用 s o a 组件之间的集成是基于组件之间的规约而不是实现的。这个特性可以让 实现对调用不可见,也可以让基础设施和实现变化时最小化地影响其他组件。 通过提供服务的规约,在不同平台上用不同的方式实现系统互连变 :导简单, 管理这些互连也变得简单。这是个重要的特性,因为越多的服务连接在一起 会形成更强大的价值链。 3 ) 对新的需求和变化的快速响应,从而缩短了产品开发周期 通过重用已经存在的服务来构建新的服务的特性提供了一个重要的优点:企 业将会更快的对业务的变化,需求的变化做出反应。使用现有的组件和服务 将减少开发周期:收集需求,做设计,开发和测试。这个特性使得快速开发 新业务服务和企业快速应对变化成功可能,也大大缩短了新产品的研发周期。 4 ) 降低成本,增加软件的重用比例 把企业内的核心业务服务用一个松耦合的方式发布成一个个的服务,能够被 简单的重用和在新的产品中组合。这个方法大大降低了重新开发的情况,减 浙江大学硕士学位论文第2 章相关技术背景 少了资源的浪费,提高了重用的比例,降低了成本。 5 ) s o a 能为将来的业务增长提供机会。 s o a 让将来的业务正在提供了机会。在将来业务变化的时候,业务的流程可 以用一系列的业务服务来构建,更改,管理。s o a 的这些可扩展性和快速响 应能力是企业生存和发展的重要保证。易于集成的特性也让企业在新的领域 开发新的业务更加简单。 浙江大学硕士学位论文第3 章高吞吐量架构设计中的策略和方法 第3 章高吞吐量架构设计中的策略和方法 3 1 设计架构时常见的问题 3 1 1 扩展很难或成本很大的架构 有很多的应用系统在刚开始的时候,需求并不多,所以整个项目的开发比较 简单。也有可能整个项目的开发时间比较短,不能有很多时间来规范化地设计一 个系统架构。对于这种项目,开发人员不需要耗费多少的时间和资源就能快速把 整个项目开发出来。由于这类系统没有一个好的架构设计,所以它的所有功能实 现都是快速堆积起来的,整个系统也没有比较清楚的层次关系。如果将来由于业 务的发展,这些系统要进行扩展来满足客户的需求,到那个时候,架构设计师和 项目经理将会非常的头
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区的物业管理及服务创新
- 工业排放控制技术分析
- 工业污染治理的新技术与成果
- 工业建筑设计及其安全防护措施
- 工业废水零排放技术研究与应用推广
- 工业污染防治与环保技术探讨
- 工业污染的防治与绿色生产
- 工业机器人编程与调试技术研究
- 工业设计中的智能产品创新
- 工业自动化在白水泥生产中的应用研究
- 2025年江苏高考真题化学试题(解析版)
- 2024协警辅警考试公安基础知识考试速记辅导资料
- 《平行四边形的面积》说课课件
- 2025年九年级语文中考最后一练口语交际(全国版)(含解析)
- 一例高血压护理个案
- GB/T 18913-2025船舶与海洋技术航海气象图传真接收机
- 2025-2030中国风力发电机机舱行业市场现状供需分析及投资评估规划分析研究报告
- 2025年广东省深圳市龙岗区中考英语二模试卷
- 2024年注册会计师考试《会计》真题及答案解析
- 南通市启东市医疗卫生单位招聘事业编制人员考试真题2024
- 2024-2025学年度人教版二年级数学下学期期末试卷(含答案)
评论
0/150
提交评论