(计算机应用技术专业论文)一个高性能多券种交易撮合系统设计与实现.pdf_第1页
(计算机应用技术专业论文)一个高性能多券种交易撮合系统设计与实现.pdf_第2页
(计算机应用技术专业论文)一个高性能多券种交易撮合系统设计与实现.pdf_第3页
(计算机应用技术专业论文)一个高性能多券种交易撮合系统设计与实现.pdf_第4页
(计算机应用技术专业论文)一个高性能多券种交易撮合系统设计与实现.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

浙江大学硕士学位论文摘要 摘要 随着计算机网络技术的发展,国际和国内的期货、证券、股票等交易所的交 易模式发生了根本性的改变,电子化交易成为主要交易模式。在电子化交易系统 中,高性能高可靠性和可扩展性是三个重要特性。 本文基于多层分布式体系,结合s w p f 2 5 代期货交易系统平台中开发的消息 中间件,提出了s w t s 多券种交易撮合系统的设计和实现。采用t t r e e ( 一个变种 的树) 作为内存数据的组织形式,提高o r d e r b o o k 处理的效率。采用双缓冲机制 减少更新数据到数据库的延时对于撮合过程的影响。抽象出多券种的商品的公共 信息和操作,通过配置文件,配置系统参数使系统可以支持多券种的撮合。可以 通过撮合引擎和中间件服务器的不同的部署策略,提高撮合系统的性能。 本文第一章介绍了国内外金融交易平台的现状,举例分析了金融交易平台的 特点,介绍了当前金融交易平台开发中的主要技术。第二章对所要设计的撮合系 统的需求做了简要的分析。第三章提出了s w t s 多券种交易撮合系统的构架和总体 设计。第四章对s w t s 多券种交易撮合系统的设计和实现中关键技术做了分析。第 五章介绍系统的功能测试和性能测试的用例、策略和结果。文章最后对所作的工 作做了总结。 关键词:交易系统,多层分布式,高性能,高可靠性,高可扩展性,消 息中间件,t t r e e ,多券种 浙江大学硕士学位论文a b s t r a c t a b s t r a c t w i t hd e v e l o p m e n to ft h ec o m p u t e rn e t w o r k t e c h n o l o g y , t h e r ei sag r e a tc h a n g ei n t h et r a d em o d e lo ft h ef u t u r e s ,s e c u r i t i e sa n ds t o c ke x c h a n g ei nl o c a la n do v e r s e a m a l k c t ,t h a ti s ,t h ee l e c t r o n i c - t r a d eh a sb e c o m et h em a i nt r a d em o d e l h l e l e c t r o n i c - t r a d es y s t e m ,h i g hp e r f o r m a n c e ,h i 曲r o b u s ta n dh i g hs c a l a b i l i t ya l et h e m o s ti m p o r t a n tc h a r a c t e r i s t i c b a s e do nt h em u l t i - t i e rd i s t r i b u t e ds y s t e ma n dm o md e l i v e r e di ns w p f2 5f u t u r e t r a d i n gs y s t e m ,t h ep a p e rd i s c u s s e st h ed e s i g n a n di m p l e m e n t a t i o no fs w t $ m u l t i - s e c u r i t i e st r a d i n gs y s t e m w ew i l ld e l i v e ro r d e r b o o ku s i n gt t r e ew i t hh i 曲 p e r f o r m a n c e a p p l y i n gd o u b l eb u f f e ra r e at e c h n o l o g y , w ec a nm a t c h m a k eo r d e r sa n d u p d a t eo r d e ri n t od bs i m u l t a n e o u s l y w ew i l la b s t r a c tc o m m o ni n f o r m a t i o na n d o p e r a t i o ni n t e r f a c et os u p p o r tm u l t i s e c u r i t i e so r d e rm a t c h m a k i n g i no r d e rt oa c h i e v e h i g h e rp e r f o r m a n c e ,w ew i l ld e p l o ym o m s e r v e ra n dm a t c h m a k i n ge n g i n ei nd i f f e r e n t w a y t h es t u d yw i l lf i r s t l ya n a l y z er e c e n tf i n a n c i a lt r a d i n gs y s t e ma n di n t r o d u c et h e t e c h n o l o g ya p p l i e d t h e n , t h es e c o n dc h a p t e rw i l la n a l y z et h er e q u i r e m e n to fs w t s m u l t i - s e c u r i t i e st r a d i n gs y s t e m a f t e rt h ep r o p o s i n go fs w t sm u l t i s e c u r i t i e st r a d i n g s y s t e m ,w ed e s c r i b et h ea r c h i t e c t u r ea n dm o d u l ed e s i g no ft h i ss y s t e m t h en e x ts t e pi s t os t u d yt h ei m p l e m e n t a t i o no fk e y t e c h n o l o g ya p p l i e di ns w t sm u l t i - s e c u r i t i e st r a d i n g s y s t e m as i m u l a t i v et e s te n v i r o n m e n ti si m p o r t e dt oe v a l u a t es w t sm u l t i s e c u r i t i e s t r a d i n gs y s t e m f i n a l l y , t h i st h e s i sg i v e sac o n c l u s i o no fa l lt h ew o r ka b o v e k e y w o r d s :t r a d i n gs y s t e m ,m u l t i t i e rd i s t r i b u t e ds y s t e m ,h i g l lp e r f o r m a n c e ,h i g l l r o b u s t ,h i g l ls c a l a b i l i t y , m o m ,t t r e e ,m u l t i - s e c u r i t i e s 浙江大学硕士学位论文图目录 图目录 图1 1s a x e s s 系统架构5 图1 2e u r o n e x tn s c 系统架构7 图1 3 两层结构的两种形式1 3 图1 4 三层c s 结构1 4 图1 5r p c 调用过程15 图1 6c o r b a 结构体系框架17 图2 1s w t s 系统事务流程2 l 图3 1s w t s 系统硬件体系构架2 7 图3 2s w t s 系统硬件体系构架( 扩展) 2 8 图3 3s w t s 系统软件总体构架2 9 图3 4 撮合引擎和数据库架构3 1 图3 5f i x 消息模块类图3 4 图3 6f i x 和c m e s s a g e 消息转化3 5 图3 7 撮合线程流程图4 0 图3 8 消息中间件s e r v e r 端软件架构4 3 图3 9 订阅信息集合4 5 图3 1 0 连接监听处理流程4 7 图4 1 委托队列排列5 0 图4 2 委托队形( 1 ) 51 图4 3 委托队形( 2 ) 5 2 图4 4 委托队形( 3 ) 5 2 图4 5 委托队形( 4 ) 5 3 图4 6 买委托处理5 4 图4 7 卖委托处理5 5 图4 8 集合竞价处理5 6 图4 9t t r e e 节点结构5 7 图4 1 0 委托队列遍历。5 9 图4 1 1f a c t o r ym e t h o n d 模式6 0 图4 1 2 委托状态查询类图6 l 图4 1 3s t r a t e g y 模式6 2 图4 1 4t t r e e 类图6 2 图4 1 5 事务回写流程6 5 图4 1 6 数据库调优次序6 7 图5 1 股票撮合结果7 2 图5 2 期货撮合结果7 2 i i i 浙江大学硕士学位论文表目录 表目录 表5 1 硬件环境7 0 表5 2 软件环境71 表5 3 测试操作比例7l i v 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成 果,也不包含为获得逝鎏盘堂或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:啦寸 社字吼一髟年6 月7 日 学位论文版权使用授权书 本学位论文作者完全了解逝姿态堂有权保留并向国家有关部门或机构送交本 论文的复印件和磁盘,允许论文被查阅和借阅。本人授权逝鎏盘堂可以将学位论文的 全部或部分内容编入有关数据库进行检索和传播,可以采用影印、缩印或扫描等复制手段 保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 导师签名。 f 签字日期一胪夕日 夸 1 l h 貉7 冬弓 砭 月讲6 v : : 年 名 啄 省 内 者 2 储 2 刘 肌 沦 日 位 字 学 签 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 背景 随着科技的发展,国内和国际的金融交易所的交易模式发生了根本性的改 变,其传统的手工喊价的方式被电子化交易的手段所取代。电子化交易具有交易 速度快、交易透明度高、交易成本低和交易空间广等优势,对于交易量的增长有 巨大的贡献,使人们摆脱了交易场地的限制,使交易可以在全球的任何一个地方 展开。 大量的证据表明,电子交易已经成为市场的主流。完全采用电子交易形式的 欧洲期货交易所在2 0 0 5 年的合同交易量比2 0 0 4 年高出了1 7 ,达到了1 2 5 亿张, 这是电子交易手段越来越广泛的结果。芝加哥商业交易所的统计结果表明,2 0 0 5 年该交易所的7 0 的交易都是通过电子交易形式完成的,而2 0 0 4 年电子交易只 占了总交易量的5 7 。期货期权交易量位居全球第三的芝加哥期货交易所2 0 0 5 年共成交了6 7 5 亿笔,比2 0 0 4 年增长1 2 ,其电子平台的交易量占总交易量的 6 5 。 电子交易的大幅度增长很大一部分得益于网上金融交易系统的发展和完善。 交易系统是交易所关键业务系统,其运行稳定可靠与否关系到交易体系的安全。 交易系统必须保证交易业务的高连续性( 保证每一条指令的按时按序准确到达, 同时防止当点出现的硬件和软件故障对业务的连续性带来的影响) 。因此,高可 靠性时交易系统设计和实现的一个重点。 交易系统还有一个很重要的特点,就是系统的用户数量很多,处理的并发数 也比较大市场行情瞬息万变,交易下单后每个交易者都希望能在尽可能短的时间 内看到委托回报和成交回报。因为时间的延迟可能意味着价格的变动,可能对投 资者带来损失,所以交易系统必须要具备高性能。撮合系统作为交易系统的关键 子系统,同样也有这样的要求。 浙江大学硕士学位论文第l 章绪论 1 2 金融知识 1 2 1 股票交易 股票是股份证书的简称,是股份公司为筹集资金而发行给股东作为持股凭证 并借以取得股息和红利的一种有价证券。每股股票都代表股东对企业拥有一个基 本单位的所有权。股票是股份公司资本的构成部分,可以转让、买卖或作价抵押, 是资金市场的主要长期信用工具。 每只股票可以通过股票i d 来唯一标识。 1 2 2 期货交易 期货,一般指期货合约,就是指由期货交易所统一制定的、规定在将来某一 特定的时间和地点交割一定数量标的物的标准化合约。这个标的物,又叫基础资 产,是期货合约所对应的现货,可以是某种商品,如铜或原油。 期货可以通过商品i d 和商品年月来唯一标识。比如买卖2 0 0 9 年1 0 月份的大 豆。 1 2 3 选择权商品交易 选择权是一种交易者于未来获得以约定价格( 履约价) 买进或卖出标的物所 约定的契约,以权利金高低衡量选择权值价值,买入选择权者支付权利金后拥有 权利但没有义务,在未来到期日或之前,得主动的以约定价格( 履约价) 购买或 出售一定数量的标的物,卖出选择权者收取权利金后有义务但没有权利,在未来 的到期日或之前,被动的以约定价格( 履约价) 出售或购买一定数量的标的物, 选择权可以分为卖权( p u t ) 和买权( c a l l ) 两种。选择权的价值是由相对应 商品的价值衍生而来。换言之,选择权的价值与相对应的特定商品价格的波动直 接相关。 选择权商品可以通过如下的属性唯一标识:商品i d 、商品年月、履约价和 p u t c a l l ( 卖权或买权) 。 2 浙江大学硕士学位论文 第l 章绪论 1 2 4 撮合交易 撮合交易就是用户只需将买卖报价输入各自的终端,这些报价会通过系统广 播给所有的用户。此时,每个用户不仅能看到市场上的最优买卖价接下来,当系 统将某买入报价和某卖出报价撮合成交后,交易双方才会得知各自的对手方姓甚 名谁,最后是进行结算。计算机撮合成交是根据公开喊价的原理设计而成的一种 自动化交易方式,它具有准确、连续、速度快、容量大等优点。目前,金融期货 交易所大都采用计算机撮合成交方式。 1 3 金融交易系统研究现状 目前,业界公认的交易系统很多,就以期货交易而言,就有:德国的 e u r e 凇t r a ,瑞典的o m 、法国的e u r o n e x tn s c 和伦敦的l i l l ec o n n e c t 。 自1 9 9 8 年以来,欧洲期货交易所( e i 瓜e x ) 在短暂的几年时间内,就发展 成为国际知名的期货交易所,交易量居世界前列,这些都取决于该公司整合管理、 完备的电子设施、高效的运营方式。e u r e x 改变了传统的人工交易模式,完全 采用电子交易模式,构成了一个自动化的交易处理系统,e u r e x 在短时间内迅 速发展壮大。 l i f f ec o n n e c t 系统是一个具有高执行速度和灵活性的电子交易平台,它由伦 敦国际金融期货期权交易所( l i f f e ) 设计和开发,用来处理大批量复杂的交易 数据。此系统具有多种交易匹配算法,五十多种不同的交易规则。此系统的使用 者包括美国堪萨斯城期货交易所( k c b t ) 、美国明尼阿波利斯谷物交易所 ( m g e x ) 、加拿大温尼伯商品交易所( w c e ) 和东京国际金融期货交易所 ( t i f f e ) 。 我国金融市场从一开始就推行电子化交易。几十年来,三大交易所的交易系 统已经更换了好几次。由于竞争和业务发展的需要,我国金融市场充分利用后发 优势,在1 9 9 5 年左右开始建设远程交易网络,大力发展远程交易。开始的模式 为在异地城市设置远程交易大厅,通过租用卫星和地面专线接到交易主机完成撮 合。之后又将接入点设置在会员场所,会员在其办公室内就能使用计算机实现报 浙江大学硕士学位论文第1 章绪论 单功能,接收成交回报和交易行情。目前各金融交易所的远程交易发展迅速,经 纪会员基本都开通了远程交易。远程交易和其接入网络已经成为交易所的生命 线。 1 3 1 现有交易系统介绍 1 3 1 1e u r e x ,x e t r a 德国的e u r e x x e t r a 系统功能全面而庞大,在设计系统的体系结构时采用 硬件( 包括主机、通讯服务器和会员服务器) 冗余、通讯线路冗余的方法来保证 系统的可靠性,整个系统的可靠性比其他系统高,但提高了成本,交易所和会员 的投资也比较大。 e u r e x 系统是一个4 层的客户服务器体系,从上到下依次为: 交易主机( b a c ke n d ) 通讯服务器( c o m m u n i c a t i o ns e r v e r ) 会员服务器( m e m b e ri n t e g r a t e ds y s t e ms e r v e r ) 会员交易和管理终端( w o r k s t a t i o n s a t e l l i t e ) 交易主机( b a c ke n d ) 是e u r e x 系统最主要的部分,它选用d i g i t a la l p h a s e r v e r o p e n v m s ,主机之问通过磁盘阵列来保证主机系统的可靠性。交易所在欧 洲、美洲和亚洲设置了几十个访问点( a c c e s sp o i n t ) ,每个访问点至少有两根 2 5 6 k b p s 数据专线和交易所联结。在交易所和访问点都安装了通讯服务器( c s ) , 通过c s 和交易b a c ke n d 进行通讯。c s 也是d i g i t a la l p h as e r v e r ,运行o p e n v m s 操作系统。会员服务器( m i s s ) 安装在会员的办公室,通过两条6 4 k b p s 数据专 线和交易所或访问点的c s 连接,其硬件平台有s u n s o l a r i s 、i n t e l w m d o w sn t 和 i b mr s 6 0 0 咖。工作站可以是w i n d o w sn t 和s u ns o l 撕s 工作站。 b a c ke n d 和c s 之间使用d e c n e t 网络协议相互通讯,c s 与m i s s 、m i s s 与s t a t i o n 之间使用t c p i p 通讯。c s 将网络协议隔断,起到一部分防火墙的功 能。 e u r e x 和x e t r a 的原型来自i b i s 交易系统( 法兰克福的一个电子拍卖市 场使用的系统) ,特别是主机部分,所以也继承了使用o p e n v m s 操作系统的传统, 4 浙江大学硕士学位论文第1 章绪论 主机系统中有大量涉及操作系统可靠性、通讯和安全的中间件都使用o p e n v m s 提供的服务,因此e u r e x 系统不太可能移植到u n i x 平台上。 1 3 1 2o m o m 提供了功能基本一致的两个交易系统:c l i c ke x c h a n g es y s t e m 和 s a x e s s 。s a x e s s 系统是o mt e c h n o l o g y 的最新产品,1 9 9 9 年3 月1 2 日首次 在o ms t o c k h o l me x c h a n g e 使用,替换e x c h a n g e 系统。 s a x e s s 系统功能实用,具有高可靠性和高性能。s a x e s s 系统设计了一个 基于p o s i x ( p o r t a b l eo p e r a t i o ns y s t e mi n t e r f a c e ,可移植操作系统接口) 标准的 软件抽象层,如果需要移植到其他硬件平台,只要兼容该软件抽象层就可以很快 完成,否则,必须修改软件抽象层。有了软件抽象层,s a x e s s 可以很容易地运 行在大部分u n i x 平台上,对s a x e s s 的产品化有很大帮助。 s a x e s s 系统的结构如图1 1 所示: c l i e i l t f r o n t e d 图1 1s a x e s s 系统架构 5 浙江大学硕士学位论文 第l 章绪论 它包括前端子系统( f r o n t e d ) 、中心数据发送子系统( c d s ,c e n t r a l d i s s e m i n a t i o ns e r v e r ) 和后端子系统( b a c k e n d ) 。f r o n t e d 负责转发会员的服务请 求给b a c k e n d ,回复b a c k e n d 的处理结果,为了保证系统的效率和可靠性,安装 了多台f r o n t e d ,每个会员可以保持和两台f r o n t e d 的连接。c d s 负责向会员发送 市场数据和会员的成交数据,市场数据包括交易实时行情和交易系统目前的交易 状态。由于其他会员可能分布在斯德哥尔摩、伦敦和哥本哈根,因此这三个地方 都安装了f r o n t e d 和c d s 以减少数据德传输量,方便会员的接入。f r o n t e d 和c d s 相配合,相当于e u r e x 的前置机( c o m m u n i c a t i o ns e r v e r ,c s ) 。为了保证交易 系统后端子系统( 主机部分) 的可靠性,采用了两套相同的系统和程序,一套作 为主控制器,另一套作为从控制器。主控制器发生故障后,会员服务器和f r o n t e d 配合,在1 0 秒种内自动转到从控制器交易。 为了保证系统的运行速度,所有数据均放在内存中。s a x e s s 系统使用了和 商用数据库系统类似的事务处理机制,会员的每笔报单请求在撮合前和撮合后都 写入交易日志文件,该主从控制器的交易日志分别位于磁盘陈列不同的地方。交 易日志一方面可以保存当天的交易情况,不会像内存数据随着系统的故障而丢 失;另一方面可以回放当天的交易情况,如发生软件故障,事后可以用专用软件 来跟踪定位。 系统做了大量的优化工作来提高系统的响应速度和处理能力: 将经常使用的部件做最大的优化。 尽量使用内存缓冲技术,减少磁盘f o 操作。 使用多c p u 和多线程技术。 并行处理不关联的操作。 1 3 1 3e u r o n e x t e u r o n e x tn s c 系统的会员端的结构和s a x e s s 基本类似,但交易主机使用 c o m p a q f r a n d c m 的容错计算机。 e u r o n e x tn s c 的系统架构如图1 2 所示: 6 浙江大学硕士学位论文 第l 章绪论 f a k t a k 图1 2e u r o n e x tn s c 系统架构 交易系统架构采用了4 层开放式架构,从底层的开放a p i 到交易中心,都采 用了开放式架构。特别是交易前端,根据会员的使用情况,提供了多种解决方案。 如上图所示,h u b 是a t o s e u r o n e x t 开发的消息中间件,它的特性如下: 平台:t r u 6 4 、a i x 、h p - u x :具有可靠性和高性能特点。 高可靠性:基于集群;应用恢复时间约6 0 s ;可以实现灾难恢复。 高性能:平均每秒处理1 0 0 0 个消息,峰值每秒1 0 0 0 0 个消息。 n s c 是交易核心系统,其特性如下: 数据完整性: 确保没有任何订单丢失和重复订单 容错,所有的事务通过n o n s t o p 内部的事务管理工具( t r a n s a c t i o n m a n a g e m r n tf a c i l i t y ) 保证 通过影子进程( s h a d o wp r o c e s s e s ) 保护上下文相关的订单处理进程 ( o i m ) 的可靠性。 7 浙江大学硕士学位论文第l 章绪论 可用性: n s c 将n o n s t o p 的高可用性( 9 9 9 9 9 ) 充分利用起来 远程复制工具( r e m o t ed u p l i c a t i o nf a c i l i t y ) 将全部交易实时复制到 远程数据库 性能和扩展性: 通过将订单处理进程、消息管理进程以及相关的数据库更新进程分 离来实现并行处理 性能测试: 1 3 8 0 0o r d e r s e c o n d ( 所有合约) ,9 5 的时间内订单响 应时间小于1 秒 1 3 1 4l i f f ec o n n e c t l i f f ec o n n e c t 系统是一个具有高执行速度和灵活性的电子交易系统,它由伦 敦国际金融期货期权交易所( l i f f e ) 设计和开发。该系统具有以下八个特性 适用于大容量的复杂品种的交易 支持多种交易规则 支持多种价格算法 发布实时市场行情信息 开放的架构和前后端一体化的a p i 接口 使用了自动行情系统,可以用工业上的标准模式为选择的合约产生最新 指导价 订单流可人工动态干预 无需再设计,考虑到未来市场发展的可平滑升级的系统 1 3 2 金融交易系统的特性 从上述的介绍中,我们可以总结出当前金融交易系统的特性: 高可靠性 系统必须具有很高的可靠性:交易过程要求系统连续无故障,如果在交易中 出现单点故障应自动排除故障,不影响到交易系统的运行;系统遭遇故障不得不 8 浙江大学硕士学位论文 第l 章绪论 异常停止运行后,应能恢复到最后状态;系统要具有在线式备份和恢复能力,并 有应急处理、故障恢复功能;在条件具备的情况下,建立异地灾备系统,防止不 可预见的大的灾难。 高性能 交易系统对报价的实时性要求很高,客观上要求系统具有在大规模并发的会 员报价下快速处理的能力。在交易达到峰值时,系统的响应速度仍应当在一个合 理的、会员能够接收的范围内。期货交易系统在处理效率、并发调度等发面都有 其独特的要求。 在系统平台方面,要求系统有极高的吞吐量、强大的实时任务处理能力和最 短的反应时间以提高交易率,所以要求系统软件、数据库平台、操作系统等提供 相应的支持。 数据吞吐量大 由于交易系统中同时有数百个用户同时运行,而且有可能瞬时成交十分密 集,数据吞吐量大小直接影响到整个系统的性能,所以设计的系统应考虑交易极 端情况。 可伸缩可扩充性强 由于业务不断扩展,交易品种不断增多,交易量不断扩大,系统必须具有良 好的伸缩性。系统在软件体系结构不变的情况下,通过对硬件配置的扩展达到提 高系统性能的作用。系统设计应尽可能灵活,保证以后的扩展。 发展的平滑性 系统的设计要符合交易所的中、长期规划,同时要结合现有的设备情况,保 护原有投资,实现平稳过渡。 1 4 应用技术 随着技术地发展,越来越多新的技术和构架被引入到金融交易系统的设计 中。其中,设计模式、分布式系统和中间件技术在金融交易系统的设计和开发中 显得尤为突出,应用很普遍。下面就来简要地介绍下这些技术背景。 9 浙江大学硕士学位论文 第l 章绪论 1 4 1 设计模式 设计模式是面向对象技术的一个核心组成部分。设计模式的概念最早来源于 建筑学,由建筑师a l e x a n d e r 提出来的,它是记录、提炼存在于软件开发人员头脑中 或文档中的一些反复出现的共性问题及其经过多次验证的成功解,它表达了在特 定上下文情形下产生的、反复出现的典型性问题以及相应的一整套解决方案之间 的关系。设计模式关注的是特定设计问题及其解决方案,它描述了如何利用面向对 象的基本概念和机制来解决可扩展的软件设计中经常出现的问题,并针对设计问 题给出可复用的解决方案,而这个解决方案是对反复出现的设计结构进行识别和 抽象得到的。同时,每个模式都伴有定义的语境和强度,语境解释了模式的适用情 况强度是语境中的元素。如果问题的环境与模式的语境和强度相匹配,该模式便 可应用。 每一个设计模式都系统地命名、解释和评价了面向对象系统中的一个重要的 和重复出现的设计。这样,只要搞清楚这些设计模式,就可以完全或者很大程度上 吸收了那些蕴含在模式中的宝贵经验,对面向对象的系统能够有更完善的了解。更 为重要的是,这些模式可直接用来指导面向对象系统中至关重要的对象建模问题。 只要问题有相同的背景,就可以直接套用这些设计模式,从而大大减轻软件开发人 员的工作量。 1 4 1 1 设计模式的组成 1 。4 1 1 1 设计模式的基本成分 一个设计模式被划分为4 个基本组成部分。 ( 1 ) 模式名称。一个助记名,它用一两个词来描述模式的问题、解决方案和 效果。 ( 2 ) 问题。描述了应该在何时使用模式,它解释了设计问题和问题存在的前 因后果,描述了特定的设计问题,如怎样用对象表示算法等:也可能描述了导致不 灵活设计的类或对象结构。 ( 3 ) 解决方案。描述了设计的基本要素,它们之间的相互关系及各自的职责 和协作方式。 1 0 浙江大学硕士学位论文第l 章绪论 ( 4 ) 效果。描述了模式应用的效果及使用模式应权衡的问题。模式效果对于 评价设计选择和理解使用模式的代价及好处具有重要意义。软件效果大多关注对 时间和空间的衡量,它们也表述了语言和实现问题。模式效果包括它对系统的灵 活性、扩充性或可移植性的影响,这些效果对理解和评价这些模式很有帮助。 1 4 1 1 2 设计模式的描述 为了达到设计复用,必须同时记录设计产生的决定过程、选择过程和权衡过 程。可用统一的格式描述设计模式,目前最常用的格式是e r i c hg a m m a 等n 1 采用的 下面固定模式描述。模式名和分类、意图、别名、动机、适用性、结构、参与者、 协作、效果、实现、代码示例、已知应用、相关模式等1 3 个要素。在特定的软 件开发领域中,可以忽略其中某些要素,也可合并几个要素,甚至可以使用不同的描 述方法来描述所采用的设计模式。设计模式的描述方法圆包括自然语言描述法、 统一标记语言( u m l ) 描述法、形式化语言描述法。自然语言描述法比较简单、方 便,但对现实与设计之间的过渡描述不够流畅。对象建模技术( o m t ) 描述法是利 用类图和对象图对设计模式中的类、实例以及整体模式结构进行图形描述的方法, 而u m l 是在o m t 基础上进一步发展起来的,其描述更加清晰和统一,符合大部分 软件设计人员的习惯,也便于设计人员的理解和应用。形式化语言主要包括 d i s c o ,l e p u s ,l a y o m ,a d wa d o ,c d l ,p d l ,p d s p 等,其中d i s c o 侧重于描 述设计模式中参与者的交互行为。 1 4 1 1 3 设计模式的分类 设计模式依据其目的可分为创建型、结构型、行为型3 种d 1 。创建型模式与 创建的对象有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交 互和怎样分配职责进行描述。根据模式是用于类还是用于对象可将其分为类模式 和对象模式。类模式处理类和子类之间的关系,这些关系通过继承建立,是静态的, 在编译时便确定下来了:对象模式处理对象间的关系,这些关系在运行时是可以变 化的,更具动态性。类模式只指那些集中于处理类间关系的模式,而大部分模式都 属于对象模式的范畴。 1 4 1 2 应用于金融交易系统的设计模式 浙江大学硕士学位论文第l 章绪论 金融交易的复杂性在于交易商品种类多,交易规则多种,价格计算方式多样。 经常被使用到的设计模式,主要是创建型和行为型模式,具体有: a b s t r a c tf a c t o r y :提供一个创建一系列相关或相互依赖对象的接口,而无需 指定它们具体的类。 f a c a d e :为子系统中的一组接口提供一个一致的界面,f a c a d e 模式定义了一 个高层接口,使得这个子系统更加容易使用。 f a c t o r ym e t h o d :定义一个用于创建对象的接口,让子类决定将哪一个类实例 化。f a c t o r ym e t h o d 让一个类的实例化延迟到子类。 s i n g l e t o n :保证一个类仅有一个实例,并提供一个访问它的全局点。 s t r a t e g y :定义一系列的算法,把他们封装起来,并可以相互替换,使算法独 立于客户。 t e m p l a t em e t h o d :定义一个操作中的算法骨架,而将这些算法的具体实现的 代码延迟到子类中完成。 1 4 2 分布式系统 分布式系统,是组件分布在网络计算机上并且通过消息传递进行通信和行为 协调的系统。分布式系统具有以下特征:资源共享、开放性、并发性、可伸缩性、 容错性、透明性。分布式系统的缺点是:复杂性、保密性、不易管理、不可预见 性。 目前分布式技术领域的研究和应用比较广泛。分布式技术的研究方向有:异 构分布式系统,分布式的软件体系结构,分布式对象嘲,分布式数据库网分布式 数据库的容错技术、安全技术、安全设计与安全管理等) ,分布式系统的动态负 载均衡以及容错技术,分布式系统可靠性,分布式系统的组件技术及其应用,分 布式系统中面向对象编程、安全防范措施等,分布式应用系统的开发方法、开发 技术等。 随着分布式处理技术和c l i e n t s e r v e r 体系结构已经日益成熟,分布式多层体 系结构成为构造交易系统的最好选择。 1 2 浙江大学硕士学位论文第l 章绪论 1 4 2 1 分布式体系结构 根据应用系统中层次的划分和组织结构,分布式系统的结构可分为:两层c s 结构和多层结构。前者是传统的已经成熟的c s 应用技术,后者正日益流行并不 断发展。 a ) 两层客户机服务器结构 客户机服务- 器r ( c l i e n f f s e r v e r ) 模式是讨论分布式系统时最常引用的体系结构, 现在仍被广泛地使用。c s 模式把大型地计算机应用系统变为多个相互独立的子 系统,而服务器便是整个应用系统资源存储与管理的中心,多台客户机则各自处 理相应的功能,完成应用系统的功能砸瑚。 从软件系统来讲,把整个系统分为三层:表示层、数据处理层和数据存储层。 但在两层c s 结构中,数据处理层是与表示层或数据存储层一体的,根据其在物 理上的客户机和服务器上分布,又有两种不同的结构形式嘲四1 ,如图1 3 ,其区别 是数据处理层在客户机还是在服务器。 ( a ) ( b ) 图1 3 两层结构的两种形式 两层c s 结构存在以下的缺点: 客户机与服务器直接连接,安全性低,非法用户很容易通过客户机直接闯入 中心数据库,造成数据损失。 客户机程序肥大,随着业务规则的发展,需要随时更新客户机端程序,加大 系统的维护量。 每个客户机都要直接连到数据库服务器。使服务器为每个客户建立连接,消 耗大量原本紧张的服务器资源。 浙江大学硕士学位论文第l 章绪论 大量的数据通过客户机端和服务器端直接传送,在业务高峰时容易造成网络 流量爆增,出现网络堵塞。 c s 模式的这些先天不足,随着业务的变化,将出现越来越多的问题。所以 有必要对这种两层体系结构进行改进,将业务处理与客户交互分开,以实现瘦客 户业务服务数据服务的多层分布式应用体系结构。 b ) 多层客户机服务器结构 多层应用体系结构就是在传统的两层结构的客户端与数据库服务器之间加 入一个中间层,我们称之为应用层。如图1 3 所示,各层实现明确分工n 们n 1 1 : 瘦客户端:提供简洁的人机交互界面,完成数据的输入输出。 中间层:应用程序服务器就放在该层,它为各种应用提供了商业逻辑。服务 器可以是分布式网络的一个组成部分。服务器程序为客户机上的程序提供了各种 服务。完成业务逻辑,实现客户与数据库对话的桥梁。同时,在这一层中,还应 实现分布式管理、负载均衡、失败恢复( f a i l r e c o v e r ) ,安全隔离等功能。 数据服务:提供数据的存储服务,一般就是数据库系统。 c l i e n t 节 d a t a b a s e s e r v e r 图1 4 三层c s 结构 多层结构较传统的两层应用模式有多方面的技术优势,表现在以下几个方 面: 易维护:分布式应用采用了多层体系结构,将应用的逻辑结构进行合理的分 布,业务逻辑在中间服务器,当用户需要改变应用软件的商业逻辑规则时, 只需改变应用服务器的程序即可。客户端程序基本不用改动。 1 4 。侈。,。 浙江大学硕士学位论文第1 章绪论 瘦客户机:减轻了客户机端的工作负荷。 高性能:通过负载均衡以及中间层的数据缓存能力,提高了应用的执行速度。 安全性高:中间层隔离了客户直接对数据库服务器的访问,保护了数据库的 安全。 稳定性:中间层缓冲客户端与数据库的实际连接,使数据库的连接数量远小 于客户端的数量,数据库服务器更加稳定。f a i l r e c o v e r 机制能在一台服务器 故障的情况下,透明地把客户端工作转移到其他服务器上。 伸缩扩展性:基于多层分布体系,当业务增大时,可以在中间层部署更多的 应用服务器,提高对客户端的响应,而所有变化对客户端透明。 1 4 2 2 构建分布式系统的主要技术 目前构建分布式体统的技术主要有四种:远程过程调用、分布式对象技术、 网络应用程序接口和中间件技术。 a ) 远程过程调用 远程过程调用r p c ( r e m o t ep r o c e d u r ec a l l ) 是分布计算中的最传统的通信方 式,一个应用程序使用r p c 来“远程”执行一个位于不同地址空间里的过程,并 且从效果上看和执行本地调用相同n 2 1 3 1 。 事实上,一个r p c 分为两个部分: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 发出远程调用。s e r v e r 和c l i e n t 可以位于同一台计算 机,也可以位于不同的机器,甚至运行在不同的操作系统上,通过网络进行通讯。 相应的s t u b 和运行支持提供数据转化和通讯服务,从而屏蔽不同的操作系统和网 络协议。在这里的r p c 通讯是同步的。采用线程可以进行异步调用。过程如图 1 5 所示: 客户远程 s t u b 服务器进程 丽磊痂 运行时网络支持环境 图1 5r p c 调用过程 图中,x d r ( e x t e r n a ld a t ar e p r e s e n t a t i o n 外部数据表示标准) 负责将面向特定 机器的数据表示和网络标准数据表示作相互转换。s t u b 在其中起到联系客户方与 浙江大学硕士学位论文第l 苹绪论 服务器的关键作用n 引。 在r p c 模型中,c l i e n t 和s e r v e r 只要具备了相应的r p c 接口,并且具有r p c 运行支持,就可以完成相应的互操作,而不必限制于特定的s e r v e r 。因此,r p c 为c l i e n t s e r v e r 分布式计算提供了有力的支持。同时,远程过程调用r p c 所提供 的是基于过程的服务访问,c l i e n t 与s e r v e r 进行直接连接,没有中间机构来处理 请求,因此也具有一定的局限性n 副,比如,r p c 通常需要一些网络细节以定位 s e r v e r ;在c l i e n t 发出请求的同时,要求s e r v e r 必须是活动的等等。虽然有些恢复 机制可以在一个远程调用阻塞时转而去调用另一个服务器上的过程,但这种路由 方式会影响效率。也有的r p c 机制采用异步调用,客户方非阻塞地调用远端的过 程,但这种方式不标准而且很难采用。因此r p c 适合开发小型简单的请求厂应答 模式的应用。 b ) 网络应用程序编程接口 网络应用程序编程接口是利用网络协议提供的功能进行应用程序开发, s o c k e t 机制是最具有代表性的编程接口n6 l

温馨提示

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

评论

0/150

提交评论