版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE56 / NUMPAGES62硕士学位论文基于私有云架构的基金报表系统开发摘要近年来,云计算不论在计算机行业还是普通人们生活中都已经成了一个炙手可热的词汇,各大IT企业都成为了云计算的拥护者。同样在金融业领域,云计算依然有它应用的强烈需求,将金融业务的在线运作系统迁移到云端已经成为了提升服务效率、加快版本升级、更新业务需求的不二选择。同时在轻量级服务越来越普与的今天,越来越多的企业级应用已经从C/S架构迁移到了B/S的大军中来,在web技术迅速发展的这些年中,涌现了不少成熟的解决方案,如JSP/Servlt、.NET、PHP等,但是绝对不能忽视的是富客户端(RIA)的崛起,它是良好用
2、户体验的优秀解决方案。而Flex又是RIA中的佼佼者,我们可以利用Flex创造出不亚于桌面应用的操作效果。在本文中,作者主要分析了基金报表系统的课题背景,详细阐述了云计算的技术背景,对实现与辅助系统的J2EE后台技术架构进行了详细的介绍,着重笔墨阐述了Flex与其框架Cairngorm的设计运行机制,前后台的衔接与整个云平台的整合。同时结合系统实际的商业需求,将几个主要模块的设计实现进行了描述。接着又介绍了几个开发过程中使用到的技术要点。最后系统地列举出实际中遇到的前端性能瓶颈问题并给出实际的解决方案。由于作者在项目中的任务主要分布在前台所以本文中着重从前台开发的角度介绍项目中的各种问题,对于
3、后台部分对主要的框架等进行了详细的介绍。关键词:Cloud ,Flex,J2EE,Flash Player,松耦合AbstractIn recent years, cloud computing, whetherin the computer industryorinthelifeofcommonpeoplehas become ahotword, and the major IT companieshave becomeproponents ofcloud computing. Also inthefieldoffinancialindustry, cloud computingisstil
4、lstrong demandforitsapplication, theonlineoperationoffinancial businesssystemsto migrate tothecloudhas becomethechoicetoimprove serviceefficiency, speed uptheupgrade, update thebusiness requirements.Today more and more enterprise applicationsservicesarebecoming increasingly popularlightweightmigrati
5、onfromC/S structuretotheforceofB/S structure, Webtechnology developed rapidlythese years have emergedmany mature solutions like JSP/Servlet、.NET、PHP etc. But which absolutely could notbe ignored isthe riseoftheRich Internet Application(RIA), it is excellentsolutionfora good user experience. And Flex
6、 isthe leader in theRIA, we can use Flextocreatetheeffectofthe operationasmuchasdesktop applications. In this article, theauthoranalyzedthesubjectbackgroundofthefund reportingsystem, elaborated on thebackgroundofcloud computingtechnology, and carried out a detailedintroductiontotheJ2EEback-end techn
7、ologyarchitectureoftheauxiliary systemandtheprivate cloud, focus on wordsdescribedthe design and operationmechanismoftheFlex and itsframeworkCairngorm, interface between front and back andtheintegrationofthe entirecloudplatform. Combined withtheactualbusinessrequirements,design and implementationofs
8、everal majormodulesare described. Then introducesthetechniquesused inseveraldevelopment process. Finally listedseveralproblemsencounteredintheactualsystemandgivethe actualsolution one by one. Inthis article the author introduced fromtheperspectiveofthefrontdevelopment focuses onthevarious issuesinth
9、eproject, and carried out a detailedintroductiontothe mainframeworkforthebackgroundpart.Keywords:Cloud ,Flex,J2EE,Flash Player, Loosely coupled目录 TOC o 1-3 h z u HYPERLINK l _Toc325397064摘要 PAGEREF _Toc325397064 h iHYPERLINK l _Toc325397065Abstract PAGEREF _Toc325397065 h iiHYPERLINK l _Toc325397066
10、1.1 课题背景 PAGEREF _Toc325397066 h 2HYPERLINK l _Toc3253970671.2 云计算概述 PAGEREF _Toc325397067 h 2HYPERLINK l _Toc3253970681.2.1 云计算的概念 PAGEREF _Toc325397068 h 2HYPERLINK l _Toc3253970691.2.2 云计算的特点 PAGEREF _Toc325397069 h 2HYPERLINK l _Toc3253970701.2.3 云计算的研究现状 PAGEREF _Toc325397070 h 3HYPERLINK l _To
11、c3253970711.2.4 云计算技术在银行中应用需要重视的问题 PAGEREF _Toc325397071 h 4HYPERLINK l _Toc3253970721.3 面向金融企业的一个基金报表系统FAR PAGEREF _Toc325397072 h 5HYPERLINK l _Toc3253970731.3.1 系统重构的意义 PAGEREF _Toc325397073 h 5HYPERLINK l _Toc3253970741.3.2 系统的组成 PAGEREF _Toc325397074 h 6HYPERLINK l _Toc3253970751.4 论文组织结构 PAGER
12、EF _Toc325397075 h 6HYPERLINK l _Toc3253970761.5 本章小结 PAGEREF _Toc325397076 h 7HYPERLINK l _Toc325397077第2章 系统的架构 PAGEREF _Toc325397077 h 8HYPERLINK l _Toc3253970782.1 Cloud的系统架构 PAGEREF _Toc325397078 h 8HYPERLINK l _Toc3253970792.1.1 SOA架构 PAGEREF _Toc325397079 h 8HYPERLINK l _Toc3253970802.1.2 Clo
13、ud的SOA架构 PAGEREF _Toc325397080 h 9HYPERLINK l _Toc3253970812.1.3 实际应用中的私有云 PAGEREF _Toc325397081 h 11HYPERLINK l _Toc3253970822.1.4 Cloud App工程设计框架的选型 PAGEREF _Toc325397082 h 11HYPERLINK l _Toc3253970832.2 Cloud 的前端实现技术 PAGEREF _Toc325397083 h 13HYPERLINK l _Toc3253970842.2.1 前端技术的选择 PAGEREF _Toc325
14、397084 h 13HYPERLINK l _Toc3253970852.2.2 Flex技术概述 PAGEREF _Toc325397085 h 14HYPERLINK l _Toc3253970862.3 工程后台技术概述 PAGEREF _Toc325397086 h 21HYPERLINK l _Toc3253970872.3.1 J2EE PAGEREF _Toc325397087 h 21HYPERLINK l _Toc3253970882.4 本章小结 PAGEREF _Toc325397088 h 22HYPERLINK l _Toc325397089第3章 系统的设计实现
15、PAGEREF _Toc325397089 h 23HYPERLINK l _Toc3253970903.1 FAR的设计架构 PAGEREF _Toc325397090 h 23HYPERLINK l _Toc3253970913.2 Fund/Assets Maintenance模块的设计 PAGEREF _Toc325397091 h 24HYPERLINK l _Toc3253970923.2.1 Maintenance Main Page的设计 PAGEREF _Toc325397092 h 24HYPERLINK l _Toc3253970933.2.2 Add new fund
16、功能的设计 PAGEREF _Toc325397093 h 25HYPERLINK l _Toc3253970943.2.3 OOT功能的设计 PAGEREF _Toc325397094 h 26HYPERLINK l _Toc3253970953.2.4 Import 功能的设计 PAGEREF _Toc325397095 h 27HYPERLINK l _Toc3253970963.2.5 Fund Structure功能的设计 PAGEREF _Toc325397096 h 28HYPERLINK l _Toc3253970973.3 Report/Export的设计 PAGEREF _
17、Toc325397097 h 29HYPERLINK l _Toc3253970983.3.1 自定义的报表 PAGEREF _Toc325397098 h 29HYPERLINK l _Toc3253970993.4 Administration的设计 PAGEREF _Toc325397099 h 30HYPERLINK l _Toc3253971003.4.1 Start New Month功能的设计 PAGEREF _Toc325397100 h 30HYPERLINK l _Toc3253971013.4.2 App Users功能的设计 PAGEREF _Toc325397101
18、h 30HYPERLINK l _Toc3253971023.4.3 Exchange rate update PAGEREF _Toc325397102 h 32HYPERLINK l _Toc3253971033.5 本章小结 PAGEREF _Toc325397103 h 32HYPERLINK l _Toc325397104第4章 系统实现的关键技术 PAGEREF _Toc325397104 h 33HYPERLINK l _Toc3253971054.1 工程在云端的部署 PAGEREF _Toc325397105 h 33HYPERLINK l _Toc3253971064.2
19、Flex与Java的数据通信 PAGEREF _Toc325397106 h 34HYPERLINK l _Toc3253971074.3 Excel导出 PAGEREF _Toc325397107 h 37HYPERLINK l _Toc3253971084.4 系统安全性的控制 PAGEREF _Toc325397108 h 39HYPERLINK l _Toc3253971094.4.1 Flex的安全性控制 PAGEREF _Toc325397109 h 39HYPERLINK l _Toc3253971104.4.2 ESF的使用 PAGEREF _Toc325397110 h 39
20、HYPERLINK l _Toc3253971114.5 数据过滤问题的描述与解决 PAGEREF _Toc325397111 h 40HYPERLINK l _Toc3253971124.5.1 问题的描述 PAGEREF _Toc325397112 h 40HYPERLINK l _Toc3253971134.5.2 动态选择过滤条件 PAGEREF _Toc325397113 h 41HYPERLINK l _Toc3253971144.5.3 多重过滤条件的控制 PAGEREF _Toc325397114 h 42HYPERLINK l _Toc3253971154.5.4 过滤条件的
21、保存与加载 PAGEREF _Toc325397115 h 42HYPERLINK l _Toc3253971164.6 本章小结 PAGEREF _Toc325397116 h 43HYPERLINK l _Toc325397117第5章 前端的性能问题与其解决 PAGEREF _Toc325397117 h 44HYPERLINK l _Toc3253971185.1 前台加载速度瓶颈问题的描述 PAGEREF _Toc325397118 h 44HYPERLINK l _Toc3253971195.2 Flex的存回收机制 PAGEREF _Toc325397119 h 44HYPERL
22、INK l _Toc3253971205.2.1 垃圾回收的时机 PAGEREF _Toc325397120 h 45HYPERLINK l _Toc3253971215.3 module的应用 PAGEREF _Toc325397121 h 46HYPERLINK l _Toc3253971225.4 RSL的应用 PAGEREF _Toc325397122 h 47HYPERLINK l _Toc3253971235.5 消除Listener的存消耗 PAGEREF _Toc325397123 h 49HYPERLINK l _Toc3253971245.6 图像绘制初始化的优化 PAGE
23、REF _Toc325397124 h 49HYPERLINK l _Toc3253971255.7 Flex页面延迟加载 PAGEREF _Toc325397125 h 49HYPERLINK l _Toc3253971265.8 在数据库设计上改进前台的加载速度 PAGEREF _Toc325397126 h 50HYPERLINK l _Toc3253971275.9 本章小结 PAGEREF _Toc325397127 h 51HYPERLINK l _Toc325397128第6章 总结与展望 PAGEREF _Toc325397128 h 52HYPERLINK l _Toc325
24、3971296.1 总结 PAGEREF _Toc325397129 h 52HYPERLINK l _Toc3253971306.2 展望 PAGEREF _Toc325397130 h 52HYPERLINK l _Toc325397131参考文献 PAGEREF _Toc325397131 h 54HYPERLINK l _Toc325397132作者简历 PAGEREF _Toc325397132 h 56HYPERLINK l _Toc325397133致 PAGEREF _Toc325397133 h 57图目录 TOC h z c 图 HYPERLINK l _Toc325397
25、134图 2.1 SOA组建与其工作流程 PAGEREF _Toc325397134 h 9HYPERLINK l _Toc325397135图 2.2Cloud的SOA架构 PAGEREF _Toc325397135 h 10HYPERLINK l _Toc325397136图 2.3工程选型组合图 PAGEREF _Toc325397136 h 12HYPERLINK l _Toc325397137图 2.4 Flex结构图 PAGEREF _Toc325397137 h 17HYPERLINK l _Toc325397138图 2.5 Cairngorm的MVC分层 PAGEREF _T
26、oc325397138 h 19HYPERLINK l _Toc325397139图 2.6 MVC模式下的Cairngorm组件 PAGEREF _Toc325397139 h 20HYPERLINK l _Toc325397140图 3.1 FAR的架构图 PAGEREF _Toc325397140 h 23HYPERLINK l _Toc325397141图 4.1系统部署示意图 PAGEREF _Toc325397141 h 33HYPERLINK l _Toc325397142图 4.2 云端部署流程图 PAGEREF _Toc325397142 h 34HYPERLINK l _T
27、oc325397143图 4.3 Service请求示例 PAGEREF _Toc325397143 h 35HYPERLINK l _Toc325397144图 4.4 前后台传输XML格式示例 PAGEREF _Toc325397144 h 36HYPERLINK l _Toc325397145图 4.5 Flex接收解析XML示例 PAGEREF _Toc325397145 h 37HYPERLINK l _Toc325397146图 4.6 Flex端接收响应失败示例 PAGEREF _Toc325397146 h 37HYPERLINK l _Toc325397147图 4.7 Ja
28、va导出Excel示例 PAGEREF _Toc325397147 h 38HYPERLINK l _Toc325397148图 4.8 生成Excel报表效果 PAGEREF _Toc325397148 h 39HYPERLINK l _Toc325397149图 4.9安全沙箱示例 PAGEREF _Toc325397149 h 39HYPERLINK l _Toc325397150图 4.10 ESF配置示例 PAGEREF _Toc325397150 h 40HYPERLINK l _Toc325397151图 5.1 Flex AVM 垃圾回收机制示例 PAGEREF _Toc325
29、397151 h 45HYPERLINK l _Toc325397152图 5.2 Module声明示例 PAGEREF _Toc325397152 h 47HYPERLINK l _Toc325397153图 5.3 Flex Builder RSL应用界面 PAGEREF _Toc325397153 h 48HYPERLINK l _Toc325397154图 5.4 RSL效果图 PAGEREF _Toc325397154 h 49第一章 绪论课题背景随着全球经济的不断发展也整合,金融行业全球化的竞争格局变得越来越激烈。金融企业的工作效率成为了能否在竞争中取胜的关键因素,公司时时刻刻都在
30、想方设法在每一个环节提高生产的效率,其中有一环对公司的运行状况,客户的信息反馈,将来的运营趋势都起到引导与推动的作用。这就是报表的生成。准确而详实的报表可以帮助使金融从业人员快速得到第一手的信息,通过往期的明细记录,分析出当下的得失优缺,制定出针对下一期的最佳方案。而粗糙且简单的报表只会误导系统使用者,做出错误的判断使后果不堪设想。因此设计并实现出一套优秀健壮的报表系统对当下的金融企业有着举足轻重的意义。云计算概述云计算的概念通俗地讲,云计算是庞大的服务器集群,通过动态调动资源,为用户提供各种IT服务。云计算的基本原理是,将计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据
31、中心的运行将与互联网更相似。这使得企业能将资源切换到需要的应用上,根据需求访问计算机和存储系统。1云计算的特点云计算的发展非常迅速,大体包含以下7个特点。1超大规模。“云”具有相当大的规模,Google云计算已经拥有100多万台服务器,Amazon,IBM,Yahoo,Microsoft等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。2虚拟化。云计算支持用户在任意位置使用各种终端获取应用服务,所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解,也不用担心应用运行的具体位置,只需要一台笔记本或一个手
32、机,就可以通过网络服务来实现所需要的一切,甚至包括超级计算这样的任务。3高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。4通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。5高可扩展性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。6按需服务。“云”是一个庞大的资源池,按需购买,“云”可以像自来水、电、煤气那样计费。7极其廉价。由于“云”的特殊容错措施,可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,
33、“云”的通用性使资源的利用率大幅提升。用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。2云计算的研究现状作为一项新兴的,颠覆性的技术,云计算技术一经推出便在业引起广泛响应,主要的IT厂商,如Google、IBM、Amazon、Microsoft和Yahoo等,已经相继开展了研究工作,并推出自己的云计算产品和服务。其中,Amazon的云计算服务总称为Amazon Web Services(AWS。Amazon WEB服务)。包括四种主要的服务:Simple Storage Service(s3,一种简单的存储服务)、Elasti
34、c ComputeCloud(EC2,弹性可扩展的云计算服务器)、SimpleQueuing Service(一种简单的消息队列)以与处于无限期公测阶段的SimpleDB(简单的数据库管理)。IBM于2007年11月先在推出了“蓝云(Blue Cloud)”计划,包含了一系列的云计算产品。2008年5月,IBM宣布在中国太湖新城科教产业园为中国的软件公司建立的IBM中国“云计算中心”正式投入运营。Google于2008年4月推出App Engine云计算平台,它是一个由Python应用服务器群、BigTable(Google的一个部的数据库系统)数据库访问与Google File System
35、(GFS)数据储存服务组成的平台,能为开发者提供一体化的主机服务器与可自动升级的在线应用服务。Microsoft的Azure Services Platform由两层构成。底层是Windows Azure,提供了一个基于Windows的虚拟计算环境和存储;在底层上,提供了很多针对不同应用的服务,如Live服务、NET服务、SQL服务等。通过这些服务,可以解决以前面临的很多问题。4云计算技术在银行中应用需要重视的问题作为一项有着广泛应用前景的新兴技术,在被业看好的同时也需要解决其投入运营过程中面临的一系列问题,如对用户的不透明性、监管措施等。但随着云计算技术的进一步发展以与云理念的不断深化,这种
36、应用平台在将来必将大规模地普与,届时信息生活必将发生翻天覆地的变化。银行在采用这种新技术带来巨大的发展前景的同时,也应考虑将其与自己所处的行业性质结合起来,确保能够给银行带来真正的收益。利用云计算,云供应商确保了数据传输的安全性。数据是存放在云供应商,这对银行来说是不透明的。随着基于云计算的服务日益发展,云计算服务将由多家服务商共同承担,而这些服务商可能将这些服务层层外包,这样数据会经过层层传递,给银行带来巨大的安全风险。对于银行来说,数据是银行的生命,如果云供应商泄露银行数据的话,不仅会给银行带来经济上的损失,而且还会极影响银行的发展前景。因此,如果希望银行采用云计算这种技术,怎样确保银行对
37、供应商保存数据的信任,是云计算这种商业模式急需解决的最主要的问题之一。鉴于银行数据的敏感性或出于对云计算提供商的不信任,作者认为整个银行可建立私有云(private cloud),共同组成一个银行业的云计算中心。利用这种云计算模式,银行可以完全控制云计算方式,如云存储的存储资源的访问可以完全由银行自己控制,而不是云计算服务的提供商,相当于使用银行自己建立的部云。这毫无疑问是创建了新的产业链,并有效降低整个行业的运营成本。当然银行也可以对外提供服务,银行所有云计算应用都基于这个平台,对于数据保护完全由自己控制,从而有效地避免了采用公共云服务引起的各种风险。其次,监管问题也是云计算技术需要面对的一
38、个问题。如果银行让云供应商提供服务,将由谁负责对供应商进行监管?是不是要引入第三方机构?政府部门应该扮演什么角色?未来云计算市场需要从法律、道德两方面对服务提供商进行监管,这却是迄今为止最难解决的监管难题。3面向金融企业的一个基金报表系统FARFAR(Fund & Assets Reporting)项目是国外某金融企业在部使用的一个专门用于做基金与资产报表的系统。该系统被用于计算与统计整个公司每个月份各个粒度层面上的基金与资产表现状况,此系统的用户是企业中专业负责统计运营状况的人员与公司全球各个地区的负责人。系统在每个月固定时间对用户开放,供用户输入需要统计的信息,然后在月末产生出各种可以根据
39、用户定制的报表。系统重构的意义在本人接触这个项目前,FAR已经成功在企业部运作了6年之久,在此之前的版本是使用微软的.net为开发工具进行开发的,此次重构有着许多客观的原因,使这个项目的新开发不单单是一次版本的跃进,更是从多方面多层次进步的考量。首先从商业角度来说,企业对一个已存在的系统随着时间的推移,社会因素的转变,总会有不断新的需求提出,但是在旧平台上的系统因为其原始设计问题,扩展性瓶颈严重,每个扩展动作都会设计较大的改动,开发与测试周期无限延长,对公司的效率产生影响。第二对企业中该系统的使用者来说,老旧的系统在页面显示上界面不美观,刷新跳转过于频繁,业务操作反应过慢等都是急需要改进的问题
40、;其次从技术角度来看,新近崛起的RIA(富客户端)技术是解决用户体验问题的一个绝佳方案,各种富客户端的优点将在下一章中详细介绍。第二,云计算是近些年来业界非常倡导的趋势之一,企业也不失时机得想要将一些系统迁移到云端,对于FAR这种进行重新开发的项目犹是如此,在基于云计算的后台逻辑运作下,系统的总体性能将大幅提升。最后也是最重要的就是设计出一个更具有扩展性的系统,不仅仅做到前后台逻辑的解耦,更要做到在功能与功能、模块与模块之间代码的松耦合、消除冗余,这样做最大的目的就是当新的需求提出或者有Bug出现时开发和测试团队可以以最快的时间解决问题,减少代码的更改量。最终使整个系统的健壮性、可用性、实时性
41、等个方面都得到进步。系统的组成整个系统主要分为3个部分:1.Fund and Assets Maintenance主要功能是提供给用户一个可视化的基金信息描述界面。同时提供新增、维护基金的功能。2.Reports/Export主要功能是提供给用户根据自身需要的条件将符合要求的基金信息以报表的形式导出。3.Administration系统的管理员功能模块,对系统的全局的操作,包含对用户信息的操作和跨月数据整合等功能。论文组织结构本文从基金报表系统的概念出发,以FAR系统为例,主要从技术的角度结合商业需求阐述了设计和开发一个企业级基金报表系统中所遇到的问题以与可能的解决方案。下面是本文的组织结构:
42、第一章:绪论,介绍了云计算以与基金报表系统的背景知识以与目前的研究发展现状,简单介绍了FAR的主要功能大块。第二章:系统的架构,阐述了开发所需的各种相关技术与框架,包括Flex、J2EE、Cairngorm、Cloud、SOA等等。最后将上述技术整合概述出FAR的系统架构。第三章:系统的设计实现,结合实际的商业需求,对几个最主要的功能点进行需求分析,给出具体的设计实现方案。第四章:系统实现关键技术的介绍,对几个实现系统的关键技术进行了详细的介绍,包括前后台的交互方式、Excel报表的导出方法、安全与权限控制的手段以与对存垃圾回收的认识。第五章:系统开发中遇到的问题与解决,提出了几个在实际开发设
43、计过程中遇到的问题与困难,包括前台页面加载速度的瓶颈问题等等。最终将设计与研究之后得出的解决方案从各个可能的角度进行了详细的描述。本章小结本章主要从商业背景出发介绍课题背景,阐述了基金报表系统目前的发展现状,详细介绍了Cloud的背景容,同时结合项目实际,提出了项目开发设计研究的意义。最后简单介绍了本文的组织结构。在下一章中将结合本章提出的技术需求介绍本项目在实际开发设计中所采用的主要技术解决方案。系统的架构Cloud的系统架构SOA架构面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间
44、定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。5作为SOA的模型有三个主要的特征,第一:它将应用中属于不同功能的模块使用一个统一的定义良好的接口联系起来;第二:接口是采用一种中立的方式定义的,它应该独立于实现服务的系统平台、编程语言和硬件平台;第三:构建在各种系统中的服务可以以一种统一和通用的方式进行交互。相对于传统的系统架构,我们之所以使用SOA是因为传统的架构都是把软件写在一个单独的软件体里,即在一个软件包里将所有的应用程序功能都整合在一起。这样做的结果
45、是实现用来整合程序功能的代码和实现功能本身的代码混合在了一起,与此密切相关的就是一旦更改了一部分的功能本身代码就会导致对上层代码的入侵,换句话说就是单元间的耦合性太大。对系统的复杂度和后期维护的成本都有较大的影响。SOA的宗旨就是要把各个功能单元彼此分开,以使这个单元可以独立得成为系统中的一个“组件”,这些组件之间充分解耦,在一个统一接口的调用下不仅是代码的层次更加明晰同时减少了代码的冗余并且最大程度的增加了模块的重用性。图 STYLEREF 1 s2.SEQ 图 * ARABIC s 11 SOA组建与其工作流程SOA架构中有三个重要的角色,接下来一一介绍。服务提供者:发布自己的服务到服务注
46、册中心,并且当请求到来是进行相应。服务注册中心:用来注册已经发布的服务,对其进行分类,并且提供搜索的服务。服务请求者:利用服务注册中心查找所需要的服务,然后使用该服务。一个完整的从发布到实现服务的过程如下:服务提供者将符合接口规的服务发布注册到注册中心。服务请求者在请求服务时首先要向注册中心查找所需的服务对应的服务提供者是谁。注册中心向服务请求者返回服务提供者的信息。服务使用者向服务提供者请求服务。服务使用者根据服务描述中的信息来调用服务,即绑定服务。Cloud的SOA架构Cloud的架构是基于SOA的基础上又自行扩展实现的架构。整个架构分为6个层次和两个切面。如下图所示:图 STYLEREF
47、 1 s2.SEQ 图 * ARABIC s 12Cloud的SOA架构接下来介绍下这六层结构,这六层之间只有从上向下的流动,一个服务只能从上层向下依赖或对话,各个服务之间又是相对独立的。服务编排/协调层(Service Orchestration):这是整个架构的顶层,所有的请求都将在这层被整合,主要被用来调用商业服务以完成高层次的商业目标。商业服务层(Business Services):用来实现服务协调层所请求的操作,具体的实现方法是去调用本身系统外或者自身的商业服务,而这些服务往往都是些较为通用的服务,如查询汇率、查询股票信息等。应用服务层(Application Services):
48、主要负责接收商业服务层传递下来的服务请求。并且去真正调用具体的服务。服务适配器层(Service Adapter):当被调用的服务是来自于外部的提供者或者来自先前已经存在的项目功能时就需要使用这个适配器层,使得这些原本可能不符合统一接口的服务适应自身的需求。应用逻辑层(Application Logic):这层实际上是一个功能的具体实现,大多数情况下这层是一个先前就存在的应用逻辑,通过上层适配器的调用使得其的功能被统一接口使用。数据存储层(Data Storage):这层是实际的物理数据存储层,数据类型包括关系数据库、文件、XML、数据仓库等等。除了这六个层级调用的应用层外还有两个切面也是不可
49、或缺的,它们的作用覆盖各个层次。数据服务切面(Data Services):被一个或者多个层用来访问数据,同时拥有创建、操作、验证和映射的功能。安全服务切面(Security Services):包括验证、授权、权限管理、安全编码等功能,在整个结构中对权限的控制是至始至终的。实际应用中的私有云在企业中实际应用的私有云是由公司的Cloud Team来进行开发和维护的,在现有的云中,已经定义了一整套的Cloud Framework,这套SDK中包含了许多非常常见的J2EE技术,公司通过包装将其封装在自己的框架中。这个云与普遍意义上的云有个最大的区别就是它只包含数据的处理但不包含数据的存储。相对于我
50、们熟悉的Hadoop,它只具备类似MapReduce的分布式计算功能但是没有HDFS(Hadoop Distributed File System)的分布式存储功能。当然只要符合云的概念那必须有集群的使用,这也是云的目的之一:用更廉价的服务器集群来创造出更加强大出处理能力。对开发者来说需要使用公司经过包装过的Eclipse版本进行开发,开发的框架应用来SOA的架构,具体将在下一节具体介绍,在编写Service类时必须符合命名的规,以IDF开头加上被分配的序列号。只有这样才能正确得被部署到公司的云端。Cloud App工程设计框架的选型从简单的意义上讲,任何搭建在Cloud平台的上工程应用最大的
51、目的就是利用Cloud强大的运算处理能力和规模化的存储功能6。Web技术发展到今天,有许多种实现技术都可以胜任搭建Cloud Application的任务。下图给出了部分可选的方案。图 STYLEREF 1 s2.SEQ 图 * ARABIC s 13工程选型组合图首先原本我们是可以直接抛开数据库层,因为广义上的云计算都包含云所特有的文件数据系统,如Google的GFS(Google File System)和Hadoop的HDFS等。但是如果所属的云是特定的无数据存储的云那还是需要考虑使用适当数据库作为目标数据源,这个选择是非常多样的,包括Microsoft SQL Server、MySql
52、、DB2、Oracle等都是成熟的选择方案,但是考虑到Unix平台的兼容性与海量数据的存储功能Oracle是我们最后的选择。其次在服务层,包括.NET、PHP、Java等备选方案,不过在这点上的选择是比较明确的,只有Java兼容企业私有云的API,所以毫无悬念的选择Java成为工程后台的工具。第三是信息传递层,为了配合Cloud SOA的架构系统采用 Service的方案。最后在前端,有包括Adobe Flex、微软的Silver Light等富客户端实现手段,但是从技术的成熟度,最终的呈现效果考虑,我们最终选择了Flex。以上各个技术点将在下个章节中一一介绍。Cloud 的前端实现技术前端技
53、术的选择如上一节所述,在Cloud的前端技术即客户端层的实现有多种可选的技术方案,如Adobe Flex、Laszlo Systems的OpenLaszlo、微软的Silver Light等,这些技术都有其各自的特色和优势所在,在此我例举Adobe Flex和Laszlo Systems的OpenLaszlo做一个简单的对比。成熟度:成熟度使用框架当前版本以与框架的开发所花费的时间长度来度量。严格的说,OpenLaszlo的开发在Flex之前,尽管它使用的是另一个名称,Laszlo Systems的发行版一直在Adobe之前。Flex SDK 在第4次更替开发时还是 beta 版本,而Open
54、Laszlo已经有一个统一的发布计划,当前为V4.4,这使 OpenLaszlo略胜于Flex。Web服务支持:在比较客户端开发技术时,Web服务支持是一个重要的考虑因素,因为支持的协议在很大程度上会影响 UI 的反应速度。例如,JavaScript Object Notation (JSON) 和Action Message Format(AMF)消息的有线传输一般比Representational State Transfer (REST) 和基于SOAP的服务要快,因为数据被压缩为二进制格式。这会使用户感觉到性能大大提升,因为数据的检索和处理速度变得更快。这就是说,客户端开发技术支持各种
55、通信协议非常重要。OpenLaszlo 在Web服务支持方面远远落后于Flex,因为它需要配合 OpenLaszlo Java servlet才能支持SOAP和XML-RPC。考虑到它对Ajax的依赖,以SOLO模式运行时,OpenLaszlo以Web服务的XML Request对象为基础构建。不幸的是,与几乎每个服务器端语言都是用的Adobe二进制AMF相比,请求响应时间要慢的多。开发所需的工作量:Flex和OpenLaszlo框架实现其自己的基于XML的对象声明语言。具体来说,Flex 使用MXML声明 ActionScript对象和属性,OpenLaszlo使用LZX声明 JavaScr
56、ipt 对象和属性。MXML和LZX使用一样的基XML对象符号,唯一的不同在于所使用的 DTD结构和XML架构。它们的核心目的是一样的:加快客户端应用程序和UI的开发速度。随着这两项技术的成熟,每种框架的持续开发基本原则保持一致:用更少的时间做更多的工作。换句话说,能够使用MXML做更多的工作意味着需要更少的 ActionScript代码。类似地,使用LZX标记做更多的工作意味着需要编写的 JavaScript代码更少。这就意味着您需要做的工作更少。大部分情况下,目前使用OpenLaszlo编写应用程序与使用Flex编写应用程序所需的时间是一样的。再加上两个平台之间的相似性,很难判断哪一种更加
57、优秀。社区参与度:像任何开源技术一样,社区参与度是平台应用和发展速度的关键因素。一项技术的社区支持度并非总是通过贡献代码的人数来度量的。实际上,通过 “开源记者”(在博客中发布教程和专业入门文档供该技术新手参考的人)的数量来确定社区参与度更加容易。进一步说,强大的社区往往有大量的质量保证 “分析员” 通过项目的 bug 数据库报告 bug。Flex在社区参与度方面取得了胜利。Adobe新闻聚合器(news aggregator)仅在Flex一项上就有2370 feed。此外,从F开放社区和在线Flex Cookbook(它就像是Flex“代码库”百科全书)可以获得许多资源,这都是社区发布的。综
58、上所述尽管在成熟度上Flex也许还有所欠缺,但是在对Web服务的支持有明显的优势,这对做好Cloud前后台的数据交换有重大的意义,同时在代码的开发工作量上也随着产品的成熟越加快捷简单,最后拥有强大的社区对入门级的RIA开发者来说无疑是最大的帮助,因此在我们的项目中Flex成为了Cloud前端技术的不二选择7。RIA丰富互联网应用程序(HYPERLINK :/wiki/%E8%8B%B1%E8%AF%AD o 英语英语:Rich Internet applications,简称RIA),又译为丰富性网络应用服务,是一种具有近似于传统桌面HYPERLINK :/wiki/%E5%BA%94%E7%
59、94%A8%E8%BD%AF%E4%BB%B6 o 应用软件应用软件系统功能和特性的HYPERLINK :/wiki/%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F o 网络应用程序网络应用系统。RIA系统最大的特点是将大部分处理任务都从HYPERLINK :/wiki/%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2 o 用户界面用户界面端移植到HYPERLINK :/wiki/%E5%AE%A2%E6%88%B7%E7%AB%AF o 客户端客户端,仅保留一些必要数据与HYPERLINK :/wiki/%
60、E6%9C%8D%E5%8A%A1%E5%99%A8 o 服务器服务器端进行信息交互。8RIA发展现状当今流行的几种主要RIA技术有Flex,Silverlight和Laszlo技术。Microsoft Silverlight是HYPERLINK :/wiki/%E5%BE%AE%E8%BB%9F o 微软微软所发展的Web前端应用程式开发解决方案,是微软HYPERLINK :/wiki/%E4%B8%B0%E5%AF%8C%E4%BA%92%E8%81%94%E7%BD%91%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F o 丰富互联网应用程序丰富型互联网应用程式(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高端别墅石材购销安装合同
- 伦理学任课教师招聘协议
- 乳制品采购合同管理办法
- 社区中心自动门安装合同
- 古镇保护合同管理案例
- 电子制造伸缩缝安装施工协议
- 铝合金室内装修合同
- 桥梁隔音施工合同样本
- 家电品牌总经理招聘合同
- 生态系统初探模板
- 2023-2024学年高二历史上学期期末考点大串讲选择题专练100题(选必1第1-18课)(全解全析)
- 实验四 哈夫曼树与哈夫曼编码
- 《餐饮传菜部的工作》课件
- 科教版高中信息技术必修一信息与信息技术信息及其特征课件
- 鼻炎的常见症状和药物治疗
- 起重机械的电气故障排除和维修技巧
- 五年级上册《劳动与技术》期中期末复习测试卷(附答案)
- 了解世界各大宗教的信仰
- 一例缝线伤口延迟愈合患者的个案护理体会
- 自然资源数据平台建设需求
- (完整)中小学教师职称评定答辩题
评论
0/150
提交评论