硕士学位论文-Smart公司综合业务大前置系统的设计和实现.pdf_第1页
硕士学位论文-Smart公司综合业务大前置系统的设计和实现.pdf_第2页
硕士学位论文-Smart公司综合业务大前置系统的设计和实现.pdf_第3页
硕士学位论文-Smart公司综合业务大前置系统的设计和实现.pdf_第4页
硕士学位论文-Smart公司综合业务大前置系统的设计和实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

硕士学位论文-Smart公司综合业务大前置系统的设计和实现.pdf.pdf 免费下载

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

文档简介

北京邮电大学 硕士学位论文 Smart公司综合业务大前置系统的设计和实现 姓名:肖馨 申请学位级别:硕士 专业:软件工程 指导教师:郭文明 20070801 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 S m a r t 公司综合业务大前置系统的设计和实现 摘要 本文的研究目标是关于s m a r t 公司综合业务大前置系统的软件 结构设计、业务及功能设计。本文首先通过对比分析明确的阐述了 s m a r t 公司综合业务大前置系统的产生背景、应用环境、作用、特点 以及优势,然后详尽的对s m a r t 公司综合业务大前置系统的设计思想, 软件体系结构及相关的设计模式与技术做了介绍,并通过s m a r t 公司 综合业务大前置系统具体的各个业务模块设计进行了分类叙述。在对 s m a r t 公司综合业务大前置系统存在的问题进行分析的基础上,最后 通过实际分析与展望,阐述了s m a r t 公司综合业务大前置系统未来发 展。 本文主要是围绕如何结合L I N U X 操作系统、数据库开发技术、软 件体系结构、软件设计模式、业务模型、业务流程来阐述s m a r t 公司 综合业务大前置系统的设计。通过对比不同的业务实现模式,选择建 立一个业务集约化、统一化、平台化的系统,通过将软件体系结构及 软件设计模式具体映射到实际的业务模块及操作系统机制,设计出一 个能达到实现商业实际运行目标的系统。 本文所阐述的系统主要采用模块化编程思想,在整体软件设计上 应用了分层的软件体系结构以求到达可扩展性目标;在整体的并发体 系结构上实现了动态可伸缩进程池、自学习的分布式动态流水线调度 引擎,以求解决性能瓶颈问题;在整体的通信体系结构上,采用了邮 箱模型,以求主动触发、异步执行的效果。在此基础上,综合运用了 各种软件设计模式来实现各个功能模块,在不影响现有业务功能的前 提下实现业务功能的动态扩展,实现了业务模块与运行进程的解耦, 建立了性能优越的进程调度控制体系和进程间通信构架,在硬件资源 非常有限的前提下,非常好地解决了系统的低消耗资源、可伸缩处理、 大吞吐量、高实时响应速度、高可靠性,实现业务集约化、统一化、 平台化管理的设计目标。 在实际运行过程中,新系统与原系统比较下,具有良好的可扩展 性、高吞吐量、快响应时间等特点,较好满足了业务的要求,基本实 现本文目标。 关键词:综合业务大前置系统,数据集中,软件体系结构,系统进 程控制,模块设计 I I I 北京邮电大学研究生论文 s m a r t 公司综合业务大前置系统的设计和实现 D e s i g na n di m p l e m e n to fi n t e g r a t e ds e r v i c e sf r o n ts y s t e mo f S m a r tC o m p a n y A BS T R A C T T h ea i mo ft h i sa r t i c l ei st os t u d yt h es o f t w a r ea r c h i t e c t u r e t h e s e r v i c ea n dt h ef u n c t i o nd e s i g no fa ni n t e g r a t e ds e r v i c e sf r o n ts y s t e mo f S m a r tC o m p a n y T h ea r t i c l ei n t r o d u c e st h eb a c k g r o u n d a p p l i c a t i o n e n v i r o n m e n t ,f u n c t i o n s ,c h a r a c t e r sa n da d v a n t a g e so ft h i ss y s t e mb y c o m p a r i s o na n dc o n t r a s t I ta l s oe x p l a i n st h ed e s i g nt h o u g h t s ,S O f t w a r e a r c h i t e c t u r e ,a n dt h er e l a t e dd e s i g np a t t e m sa n dt e c h n o l o g i e si nd e t a i l s , e s p e c i a l l yt h o s es p e c i f i cb u s i n e s sm o d u l e s T h ea u t h o rd e s c r i b e st h e d e s i g nb yt h ec a t e g o r y T h ea r t i c l ea l s oa n a l y z e st h ed e f e c t so ft h i s s y s t e ma n ds h o w st h ep r o s p e c t sa n di t sf u t u r ed e v e l o p m e n ti nt h ee n d T h ea r t i c l ee x p l a i n st h ei n t e g r a t e ds e r v i c e sf r o n ts y s t e mo fS m a r t C o m p a n y , f r o mi t sL i n u xO S ,S O f t w a r ea r c h i t e c t u r e ,S O f t w a r ed e s i g n p a t t e r n ,b u s i n e s sm o d u l e st ob u s i n e s sp r o c e s s T h ed e s i g n e rb u i l d sa n i n t e n s i v e ,u n i f i e da n dp l a t f 0 1 1 1b u s i n e s ss y s t e mb yc o m p a r i n gd i f f e r e n t b u s i n e s sm o d u l e s ;a n df i n a l l yi m p l e m e n t sas y s t e ma c h i e v i n gb u s i n e s s o b ie c t st h r o u g ht h em e c h a n i s mo fm i r r o r i n gs o f t w a r ea r c h i t e c t u r ea n d d e s i g np a t t e r n st or e a lb u s i n e s sm o d u l e sa n do p e r a t i n gs y s t e m T h es y s t e mi n t r o d u c e di nt h i sa r t i c l ea d o p t sm o d u l a rp r o g r a m m i n g a n da p p l i e sm u l t i 1 a y e rd i s t r i b u t e da r c h i t e c t u r e ,w h i c hh e l p st h es y s t e mt o a c h i e v ei t se x t e n s i b i l i t y ;T h ei n t e g r a t e da r c h i t e c t u r ec a r r i e so u tr e a l i z e d y n a m i cs c a l a b l ep r o c e s sp o o la n dd i s t r i b u t e dd y n a m i cp i p e l i n ec a l l i n g e n g i n ef u n c t i o n sa n ds o l v e sp e r f o r m a n c eb o t t l e n e c k ; w h i l et h e c o m m u n i c a t i o na r c h i t e c t u r ea p p l i e sm a i l b o xm o d u l et og e tt h ee f f e c to f t r i g g e ra c t i v e l ya n de x e c u t ea s y n c h r o n o u s l y B a s e d o na p p l i c a t i o n m e n t i o n e da b o v et or e a l i z et h ef u n c t i o no fe a c hm o d u l e ,a n dn o ta f f e c t i n g a n ye x i s t i n gf u n c t i o n s ;I tt a k e sa d v a n t a g eo ft h em e c h a n i s ml i k ep r o c e s s s y n c h r o n i z a t i o nc o n t r o la n dc o m m u n i c a t i o np r o v i d e db yL i n u xi no r d e r t ob r i n ga b o u tt h ed e c o u p l i n gb e t w e e nb u s i n e s sm o d u l e sa n dp r o c e s s e s , a n db u i l dh i g hp e r f o r m a n c ep r o c e s sc a l l i n gc o n t r o ls y s t e ma n d i n t e r - p r o c e s sc o m m u n i c a t i o na r c h i t e c t u r e 珊1 e nh a r d w a r er e s o u r c e sa r e l i m i t e d t h i sa r c h i t e c t u r ea n dr e l a t e dt e c h n o l o g i e ss u c c e s s f u l l yr e s o l v et h e i s s u e so fr e s o u r c ec o n s u m p t i o n ,s c a l a b l ep r o c e s s ,l a r g ec a p a c i t y , h i g h r e a l t i m er e s p o n s e ss p e e da n dh i g hr e l i a b i l i t y , a c h i e v i n gt h eg o a lo f V 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 d e s i g n i n g a n i n t e n s i v e ,u n i f i e da n dp l a t f o r mb u s i n e s sm a n a g e m e n t s y s t e m C o m p a r ew i t he x i s t i n gs y s t e md u r i n go p e r a t i o n ,t h en e ws y s t e mh a s f e a t u r e sl i k ee x c e l l e n te x t e n s i b i l i t y , h u g ec a p a c i t ya n dq u i c kr e s p o n s e ;i t f u l f i l l sb u s i n e s sr e q u i r e m e n t sm u c hb e t t e ra n dp r i m a r i l ya c h i e v e st h eg o a l o ft h i ss t u d y K E YW O R D S :F i n a n c i n gF r o n tS y s t e m ,D a t aC o n c e n t r a t i o n ,S o f t w a r e A r c h i t e c t u r e ,P r o c e s sC o n t r o l ,M o d u l eD e s i g n V I 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:亟裳日期:狸! ! :翌 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:叠鏊同期:2 1 丑:f 里! ! Z 导师签名:舞基犁一 日期:塑挈生卫 一I I 7 I l 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统 第一章前言 1 1 应用背景 斯玛特信息服务有限公司( 简称“S M A R T 公司”,下同) 成立于2 0 0 4 年底, 是由上海杉德银卡通服务有限公司、澳大利亚D C S 公司共同投资组建。S m a r t 公 司的主营业务是提供会员卡服务。为保证业务的顺利开展,公司在成立之初,就 委托杉德金卡信息系统科技有限公司( 简称“杉德金卡”) 开发了S m a r t 前置系 统及s m a r t 帐务系统,保障了S m a r t 卡在金融P O S 终端上支付、卡帐户管理、商 户交易资金的清算。 随着公司业务规模的扩大,s m a r t 卡不仅仅单纯地进行消费支付,而且更 重要的是能够进行水、电、煤、电信、移动通信等代收代付业务、交通卡充值、 购买飞机票、支付旅游费等等各种中间业务;能够受理s m a r t 卡的终端不仅仅是 金融P O S 机、更重要的是能够通过I n t e r n e t W E B 服务、C a l l C e n t e r 接入。常规 的做法是每出现一种新的业务,都得开发相应的业务处理系统,配置新的业务处 理机器。由于各业务系统孤立导致管理无序,软硬件投入大交易成本上升,极大 地制约了业务的拓展。 我国银行、保险、电信、税务、烟草、财务等各行各业大都经历了从业务分 散到业务集中、从数据分散到数据集中的阶段,通过业务集中和数据集中实现业 务经营的规范化和集约化是这些行业迈向现代化的必经阶段。为实现业务经营管 理的规范化和节约化,有效整合资源,降低运行成本,实现随需应变的发展战略, 当前阶段,这些行业正在如火如荼地进行着“数据大集中模式”的新一代综合业 务系统建设,力图打破传统上基于省域范围甚至更为分散的按地域性条块分割的 管理和经营模式,依托快速发展的信息技术进行技术创新,为客户提供实时的、 全国性的产品和多样性、个性化的新型服务渠道,建设一个集中、统一的全国性 或是地域性的数据集中处理环境,将各个系统的业务数据和业务处理流程进行统 一整合,实现以账务数据为主的核心业务数据大集中,形成一个完整的业务数据 库和客户数据库n 】 2 4 l 。 因此,为适应业务发展的快速发展,紧跟时代信息化潮流,统一接入金融 P O S 机、W E B 服务、C a l1 C e n t e r ,统一和各第三方业务系统互连,实现业务集约 化、统一化、平台化管理,s m a r t 卡公司委托杉德金卡开发一套功能齐备、扩展 性好、易于操作和维护便捷的综合业务大前置系统。 1 2 本文研究方向及内容 业务系统大集中是当前各行业特别是金融行业的大势所趋,相应的信息系统 也是当前各大软件厂商的研发热点,这类系统往往构建在交易中间件基础上啊1 , 无论是硬件还是软件投资上都非常巨大,这大大超出了一个刚起步公司的承受范 围。因此,利用操作系统本身的通信、进程并发机制以及数据库系统的编程工具, 第l 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 借鉴银行相关业务系统的成功经验,设计一个业务扩展性好、交易吞吐量高、交 易响应时间短、高可用的业务系统是本文的研究所在。 本人在这次工程项目过程中,通过对以往设计的系统实例分析,结合软件工 程领域的设计理论,重新设计了整个系统的构架,并负责了联机交易功能的实现。 1 3 本文研究的主要意义 _ 借助软件工程领域新兴的软件体系结构、软件设计模式对传统的金融 联机事务系统进行构建,突破传统思维的禁锢,将面向对象的设计思 想、面向组件及体系结构的设计理念与传统的面向过程语言结合,打 破目f j i 金融系统软件的思维范式; _ 借助软件重构的理念,通过新的思维方式在传统软件基础上进行分 析、设计、编码重构,探索了软件复用的可行性;: 探索了在低成本低投资下( 指的是硬件及中间件等系统软件成本) 实现 高性能高效益安全业务系统的可行性。 1 4 文章的结构及编排 以下的章节,本文将如下安排: 在第二章将简略分析需求状况。 在第三章将介绍系统采用的设计思想、系统整体结构设计。 在第四章将介绍应用系统的具体业务模块设计。 在第五章主要介绍系统的业务流程设计 在第六章将介绍应用系统的测试及运行。 在第七章是本文回顾,并将提出系统的不足和展望。 第2 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 第二章需求状况分析 2 1 原有系统弊病分析 s m a r t 公司成立之初,发行了s m a r t 卡,该卡是m e m o r y 卡,主要在P O S 终 端上进行脱机消费。在这种背景下,s m a r t 前置处理的接入渠道比较单一,只负 责接入P O S ;处理的业务功能也比较单一,主要负责卡的消费和充值。基本上无 需考虑业务扩展性,其各部分关系如图2 一l 。 I 。 s m a n 帐务系统 JL 1 r S m a r t 商i JL 1r 图2 1 原有s m a r t 系统结构示意图 随着s m a r t 卡的市场推广成功,截至2 0 0 5 年底发卡量已到达5 0 0 多万张, 建立了良好的品牌效应,基本上完成传统支付领域的布局。公司领导审时度势, 决定将业务推向纵深发展,通过发行带有会员服务性质的汇点卡,不断广泛开拓 缴费公用事业费、交通卡充值、网上支付、积分兑换等各类中间增值业务。由于 汇点卡不再将帐户放置芯片内,而是放置在后台帐务主机中,公司要求系统不仅 仅利用P O S 作为业务受理终端,而且要充分电话、W E B 、短信等多种渠道全方位 为持卡人提供丰富的业务服务。这就要求s m a r t 系统要建设成为一个随需应便的 系统,能够根据业务发展快速部署服务的系统。 原有的s m a r t 系统由于开发仓促,在设备接入仅考虑了P O S 的接入,在业务 处理上仅考虑了传统卡的支付业务,基本上不具有可扩展性。并且原有s m a r t 系 统采用的进程模型是每来一笔交易就产生一个进程处理,在进程通信上采用U n i x 消息队列方式,当业务多时,会出现资源耗费严重、消息队列堵塞进而系统崩溃, 不具有良好的稳定性,对业务的拓展、渠道的多方接入产生了不良影响。 通过技术分析,一种可行的方法是现有的s m a r t 前置仅作为P O S 接入的前置 系统,对于不同的接入渠道可以开发不同的接入前置,电话自助业务有电话自助 业务的前置系统处理,W E B 接入由W E B 接入的前置系统进行处理( 结构图参见图 第3 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 2 2 ) 。在这种方案下,可以将不同的前置系统分布在不同的机器上,可以实现 业务的一定程度的扩展,避免原有s m a r t 的弊病。但是这种方案由于同一业务需 要在不同前置系统中重复分布,虽然能解燃眉之急,但是从长远来看,弊远远大 于利。具体来说,在该模式下主要存在如下问题: 资源耗费严重 采用该模式,不同业务有自己的处理系统,对机器资源是极大浪费,投入产 出比过于低下。 通过编程实现每种业务的交易 采用该种方式,不能有效复用现有处理平台,造成编程、测试的大量重复, 耗费大量的精力重复类似的过程,效率低下。 _多个前置机( 业务机) 造成管理上的复杂性 由于各种中间业务往往有自己的程序,分布在不同的前置机( 业务机) 上, 需要安排人力进行管理,这就造成了管理上的复杂性 一终端通信的复杂性 t 终端需要把不同的业务发送给不同的前置机业务机,当增加新业务时,需 要更新自助终端程序,并且需要配置不同的通信参数。 交易路由由程序控制 每类交易报文的传送都有一定的路径选择,传统模式下,业务必须编程 控制每个交易的路由。随着业务的增加,路由控制也将成为系统的负担,每 次每类交易的变动,都会引起程序的更改,系统都必须重新编译。极大影响 了业务的工作效率,阻碍了业务的发展。 一业务数据分散,很难进行统计分析决策 各个业务分散在不同的业务系统中,势必造成统计分析的困难。进而,影响 了客户化信息的挖掘,s m a r t 公司很难得到不同客户群体的不同消费信息、不同 业务发展状况信息,严重阻碍了业务的发展。因此,重新设计一个统一接入各方、 业务平台化集约化管理的综合业务大前置系统势在必行。 图2 2 可行的一种满足业务需求的系统结构示意图 第4 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 2 2 大前置系统功能分析 正如前文所述,s m a r t 公司综合业务大前置系统主要为水、电、煤、电信、 移动通信等代收代付业务、交通卡充值、购买飞机票、支付旅游费等等各种中间 业务建立统一的受理环境,统一负责接入金融P O S 机、W E B 服务、C a l l C e n t e r , 统一和各第三方业务系统互连,实现业务集约化、统一化、平台化管理。它与其 它系统的互连关系如图2 - 3 所示。 图2 - 3s m a r t 综合业务大前置和其它系统的关系图 一网上支付系统 负责W e b 支付渠道的接入。 一C a l l C e n t e r 系统 负责电话人工、自助方式接入。 P O S 终端应用系统 负责处理S M A R T 卡在金融P O S 终端上的受理。 交通卡渠道接入系统 负责转发交通卡充值交易信息。 一付费通渠道接入系统 负责转发水电煤缴费交易信息。 S m a r t 帐务系统 负责管理S m a r t 卡帐户、商户清算。 通过图2 - 3 进行需求分析,我们可以得到以下结论,综合业务大前置系统是 一个高效的交易处理平台。该平台必须具有以下主要的功能: 第5 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 多渠道的接入服务( P O S 、W E B 、C a l l C e n t e r 电话自助) 一 完善的设备管理和设备联机服务接口和业务逻辑 一统一的管理接口和交易接口 远程设备的管理和监控 与外围系统( 帐务主机、付费通网络、交通卡公司网络) 的接口 一 各类业务实现的基础架构和交易接口 联机数据的统计和收集 同时,该平台应该具有以下的特性: 灵活快速的业务开发环境 可选择的标准应用服务组件 一 对复杂的外部通讯环境和交易环境的是良好适应性 统一的基础应用平台 系统结构的模块化和可伸缩性 2 3 软硬件环境 为到达系统节约投资的目的,参照银行交易系统主流数据库选型,系统采用: 一开发工具 I n f o r m i XC 1i e n tS D K2 8 1f o rl i n u x G c c3 4 D e p h i7 0 - 软件环境 操作系统:R e dH a tL i n u xA S4 0 数据库: I n f o r m i xI D S 企业版7 3 1 U Cf o rL i n u x 硬件环境 I B Me S e r v e rX 3 3 6 2 4 小结 本章对比了s m a r t 原有系统和大前置系统,结合考虑了系统的可扩展性、高吞 吐量、快响应时间等要求,确定了工作需求、技术要求和开发工具等。 第6 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 第三章系统构架设计 为了给数目正在增长的持卡用户提供服务和内容,对于高性能集约性金融交 易平台的需求正在同益增长。集约性金融交易平台的开发者F 在努力构建快速、 可伸缩和可配置的系统。但是,如果不注意避开一些常见的陷阱和缺陷,其中包 括麻烦而易错的低级编程细节、缺乏可移植性,以及广泛的设计选择,这样的任 务可能是十分困难的。这一部分给出了这些危险的路标。随后本文描述这个业务 系统的设计思想,以及怎样通过有效利用设计和代码复用,将模式和框架、体系 结构应用于避免这些危险。 3 1 交易平台的常见缺陷 3 1 1 应用独立的缺陷 综合业务大前置作为业务系统,面临着一些反复发生的挑战,这些挑战在很 大程度上独立于特定的应用需求。例如,像其他通信或是并发系统一样,交易系 统必须执行多种任务:连接建立、事件处理器分派、进程间通信、内存管理、静 态和动态的组件配置、并发、同步,以及持续性。在大多数金融交易系统中,这 些任务是以特定的方式、使用低级的本地0 S 应用编程接口来实现的。遗憾的是, 本地O SA P I 并不是开发金融系统或其他类型的通信并发应用的有效途径。下面 是与本地O SA P I 的使用相关联的常见缺陷: 一过多的低级细节 通过本地O SA P I 来构建系统要求开发者熟悉低级的O S 细节。开发者必须仔 细地追踪每个系统调用返回的错误代码,并在他们的服务器中处理这些特定于 O S 的问题。这样的细节使得开发者的注意力从更广阔的、更为战略性的问题( 比 如语义和程序结构) 上转移开来。例如,使用w a i t 系统调用的U N I X 开发者必须 在下面两种错误之间进行区分:由于没有子进程存在而返回的错误和来自信号中 断的错误。在后一种情况下,必须重新发出w a i t 调用。 一持续地重新发现和发明不兼容的更高级编程抽象 常用的对过多的O SA P I 细节的补救方法是定义更高级的编程抽象。例如, 在O L T P 系统中,进程问通信和并发是每个系统必须涉及的问题。但是,这些类 型的抽象常常被各个开发者或项目独立地重新发现和发明。这样的特定处理妨碍 了生产效率,并创建出不兼容的组件,无法迅速地在大型软件组织的项目内和项 目间复用。 高错误可能性 由于低级O SA P I 缺乏类型安全性,对它们进行编程是麻烦而易错的。例如, 大多数W e b 服务器都使用S o c k e tA P I 来编写。但是,S o c k e tA P I 中的通信端点 被表示为无类型的句柄。这增加了发生微妙的编程错误和运行时错误的可能性。 缺乏可移植性 低级O SA P I 出了名地不可移植,即使是在同一0 S 的不同版本间也是如此。 例如,W i n 3 2 平台上的S o c k e tA P I 实现( W i n S o c k ) 与U N I X 平台上的实现有着 微妙的不同。而且,即使是W i n d o w s 的不同版本上的W i n S o c k 实现也具有不兼 第7 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 容的、与时俱变的错误:在执行非阻塞连接时会导致偶发的失败。 一不能处理更高的复杂性 O SA P I 为一些机制定义了基本接口,像进程和线程管理、进程问通信、文 件系统,以及内存管理。但是,当应用的大小和复杂性增长时,这些基本接口无 法适当地升级。例如,典型的U N I X 进程只允许缓冲大约7 个待处理连接。对于 被大量访问的、必须处理成百并发客户的W e b 服务器来说,这个数目是不够的: 3 1 2 应用相关的缺陷 斯玛特综合业务大前置系统是一种O L T P 金融应用,如果设计或是处理不好, 会产生许多相关的影响到业务扩展的缺陷。下文即一些与应用设计相关的缺陷: 通信协议难于管理 斯玛特综合业务大前置系统需要接入P O S 、电话自助、W E B ,需要和各种业 务第三方连接,不可避免产生通信。这些接入方由于各方的通信要求不同,必然 带来通信协议的管理复杂性。具体表现为: 令通信方式多样 接入方可能需要采用串口、T C P I Ps o c k e t 、F T P 、E - M a i l 等不同通 信方式交换数据。 连接管理不同 不同的接入方可能采用短连接、长连接,半双工、全双工、会话等不同 的连接管理。 夺报文编码 不同的接入方采用的数据编码方式不一样,比如I S 0 8 5 8 3 、定长定 域报文、分隔符报文、定长不定域报文等。 如果这些不采用好的设计方式及设计理念,关于协议通信协议的管理将会硬 编码到软件中,乃至增加一种业务都要编写新的代码处理,给系统带来很大的复 杂性。 业务流程不可定制 斯玛特综合业务大前置系统不同于一般的金融O L T P 系统,业务不固定,随 需应变,立足于支持各类增值业务。采用传统的设计模式大部分是业务硬编码到 程序中,比较好的设计是把业务步骤抽象成子步骤,然后进行配置步骤。前一种 设计方式每增加一种业务需要增加处理逻辑,后一种能够比较好的处理与现有业 务类似的交易,对于完全不同的交易不但需要边编写新的代码,而且需要把新的 业务进行分解融入原有的设计中,业务之间不可避免会产生相关,长远看跟第一 种方式没什么区别。 新业务增加复杂 正是由于业务不可定制,传统的设计会造成业务逻辑之间交叉,软件框架与 业务逻辑不能解耦,新增业务需要对原有业务逻辑要很熟悉,才能增加,而且不 会影响原有的业务处理逻辑,这无疑增加了复杂性。 3 2 采用最新的软件工程方法克服设计缺陷 六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件 设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越 复杂,整个系统的结构和规格说明显得越来越重要。软件危机的程度日益加剧, 现有的软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,对总 体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明 第8 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 显重要得多。在此种背景下,人们认识到软件体系结构、软机设计模式的重要性, 并认为对软件体系结构、软件设计模式的系统、深入的研究将会成为提高软件生 产率和解决软件维护问题的新的最有希望的途径。 自从软件系统首次被分成许多模块,模块之问有相互作用,组合起来有整体 的属性,就具有了体系结构。好的开发者常常会使用一些体系结构模式作为软件 系统结构设计策略,但他们并没有规范地、明确地表达出来,这样就无法将他们 的知识与别人交流。软件体系结构是设计抽象的进一步发展,满足了更好地理解 软件系统,更方便地开发更大、更复杂的软件系统的需要。 事实上,软件总是有体系结构的,不存在没有体系结构的软件。体系结构一 词在英文罩就是”建筑”的意思。把软件比作一座楼房,从整体上讲,是因为它有 基础、主体和装饰,即操作系统之上的基础设施软件、实现计算逻辑的主体应用 程序、方便使用的用户界面程序。从细节上来看每一个程序也是有结构的。早期 的结构化程序就是以语句组成模块,模块的聚集和嵌套形成层层调用的程序结 构,也就是体系结构。结构化程序的程序( 表达) 结构和( 计算的) 逻辑结构的 一致性及自顶向下开发方法自然而然地形成了体系结构。由于结构化程序设计时 代程序规模不大,通过强调结构化程序设计方法学,自顶向下、逐步求精,并注 意模块的耦合性就可以得到相对良好的结构,所以,并未特别研究软件体系结构。 我们可以作个简单的比喻,结构化程序设计时代是以砖、瓦、灰、沙、石、 预制梁、柱、屋面板盖平房和小楼,而面向对象时代以整面墙、整间房、一层楼 梯的预制件盖高楼大厦。构件怎样搭配才合理? 体系结构怎样构造容易? 重要构 件有了更改后,如何保证整栋高楼不倒? 每种应用领域需要什么设计模式( 医院、 工厂、旅馆) ? 有哪些实用、美观、强度、造价合理的构件骨架使建造出来的建 筑( 即体系结构) 更能满足用户的需求? 如同土木工程进入到现代建筑学一样, 软件也从传统的软件工程进入到现代面向对象的软件工程,研究整个软件系统的 体系结构,寻求建构最快、成本最低、质量最好的构造过程。 由此比较分析可以看出,软件设计模式及软件体系结构等软件复用技术是被 广泛称许的减少开发工作量的方法。这些技术有效利用了有经验的开发者的域知 识和以前的成果。在有效地应用时,复用可以避免重新创建和认证常用的、针对 重复发生的应用需求和软件设计挑战的解决方案。 因此,为解决3 1 节提出的缺陷,采用软件体系设计模式及软件体系结构, 能够有效地给负责增强和维护现有软件的开发者保留设计信息,不会随时间而流 逝。本章将结合斯玛特综合应用大前置业务流域知识,运用软件设计模式及软件 体系结构的思想阐述该系统的解决方案。需要特别指出的是,虽然向对象设计语 言更容易实现软件设计模式及软件体系结构设计思想系统,但是由于本系统需要 考虑继承遗留的代码不得不采用结构化语言实现,这基本不会影响设计思想采用 软件设计模式及软件体系结构。 3 3 系统设计思想 为达到业务平台化、集约化、高效处理的设计目标,通过分析,系统应采取如 下设计思想: _ 以交易为中心 整个系统的设计以交易为主导,业务信息、终端信息、交易控制信息 都以交易为服务核心。 系统扩展性强 第9 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 业务种类较多,处理方法不尽相同,各种业务数据格式迥异。因此, 设计了统一的A P I ,具有操作、维护方便和灵活扩展的特点。 交易实时性高 使用了数据库表和事务处理的优化设计,保证了中间业务处理的高效 性,有效的消除了系统高峰时段的堵塞现象。 系统安全可靠 系统安全体系品质高,严格控制对数据和程序的访问和修改,对网间 传输的重要数据施行加密和认证。 数据完整一致性 系统对交易及各种数据按交易顺序处理,同时记录交易明细和各项 同志,具有超时自动冲正等功能。 交易码驱动 在程序主控处理逻辑上采用交易码驱动方式,可根据需要动态 裁剪执行模块。 参数化定义 系统实现了参数表驱动方式,主要运用在输入输出格式定 制方面。 模块化编程 采用模块化编程,提高了编码质量,减少冗余代码,提高了系 统的整体稳定性。 批量和联机方式 系统支持交易的批量和联机处理方式。批量处理由前置机生成 批量文件上送主机。 一帐务与业务分离 利用S M A R T 现有的网络环境,将与帐务无关的中间业务数据、信息 改由大前置系统处理并承担S M A R T 与代理单位的通信、对帐及统计报表的处 理,减轻了帐务主机的负荷。 3 4 系统体系结构 3 4 1 典型的软件体系结构风格 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、 数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息, 连接构件把体系结构的不同部分组组合连接起来。近期大量的软件体系结构风格 的研究和实践促进了对设计的复用,一些经过实践证实的解决方案也可以可靠地 用于解决新的问题。体系结构风格的不变部分使不同的系统可以共享同一个实现 代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容易地 理解系统的体系结构。例如,如果某人把系统描述为”客户服务器”模式,则不 必给出设计细节,我们立刻就会明白系统是如何组织和工作的。 常见的典型的软件风格有: 一C 2 风格 C 2 体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运 作的并行构件网络。C 2 风格中的系统组织规则如下: 系统中的构件和连接件都有个顶部和一个底部; 构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连 第l O 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 接件的顶部,而构件与构件之l 日J 的直接连接是不允许的; 令一个连接件可以和任意数目的其它构件和连接件连接; 令当两个连接件进行直接连接时,必须由其中一个的底部到另一个的 顶部。 图3 1 是C 2 风格的示意图。图中构件与连接件之间的连接体现了C 2 风格 中构建系统的规则。 中 一 连接件- - J 一 - - - - - 一- - 连接件 连揍件 崔揍件 图3 1C 2 风格体系结构 C 2 风格是最常用的一种软件体系结构风格。从C 2 风格的组织规则和结构 图中,我们可以得出,C 2 风格具有以下特点: 令系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一 起: 夺所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来 实现的; 构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在 同一地址空间内执行,或某些构件共享特定控制线程之类的相关性 假设。 管道过滤器风格 在管道过滤器风格的软件体系结构中,每个构件都有一组输入和输出, 构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常 通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出 便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据 流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重 要的过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个 过滤器不知道它上游和下游的标识。一个管道过滤器网络输出的正确性并 不依赖于过滤器进行增量计算过程的顺序。 图3 - 2 是管道过滤器风格的示意图。一个典型的管道过滤器体系结构 的例子是以U n i xs h e l l 编写的程序。U n i x 既提供一种符号,以连接各组成 部分( U n i x 的进程) ,又提供某种进程运行时机制以实现管道。另一个著名的 例子是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统 中,一个阶段( 包括词法分析、语法分析、语义分析和代码生成) 的输出是 另一个阶段的输入。 第1 l 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 图3 - 2 管道过滤器软件体系结构 管道过滤器风格的软件体系结构具有许多很好的特点: 夺使得软构件具有良好的隐蔽性和高内聚、低耦合的特点; 允许设计者将整个系统的输入输出行为看成是多个过滤器的行为 的简单合成; 夺支持软件重用。重要提供适合在两个过滤器之间传送的数据,任何 两个过滤器都可被连接起来; 令系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中 来;旧的可以被改进的过滤器替换掉; 夺允许对一些如吞吐量、死锁等属性的分析; 夺支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与 其它任务并行执行。 但是,这样的系统也存在着若干不利因素: 夺通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地 处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一 个完整的从输入到输出的转换。 不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为 严重。 令因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合 成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器 的复杂性。 数据抽象和面向对象风格 抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面 向对象系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和 它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或 者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持 资源的完整性。对象是通过函数和过程的调用来交互的。 图3 - 3 是数据抽象和面向对象风格的示意图。 第1 2 页共6 8 页 北京邮电大学研究生论文s m a r t 公司综合业务大前置系统的设计和实现 过程调用 图3 - 3 数据抽象和面向对象风格软件体系结构 面向对象的系统有许多的优点,并早已为人所知: 令因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示, 而不影响其它的对象。 夺设计者可将一些数据存取操作的问题分解成一些交互的代理程序的 集合。 但是,面向对象的系统也存在着某些问题: 夺为了使一个对象和另一个对象通过过程调用等进行交互,必须知道 对象的标识。只要一个对象的标识改变了,就必须修改所有其他明 确调用它的对象。 令必须修改所有显式调用它的其它对象,并消除由此带来的一些副作 用。例如,如果A 使用了对象B ,C 也使用了对象B ,那么,C 对B 的使用所造成的对A 的影响可能是料想不到的。 基于事件的隐式调用风格 基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发 或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注 册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样, 一个事件的触发就导致了另一模块中的过程的调

温馨提示

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

评论

0/150

提交评论