基于私有云架構的基金報表系統開發論文_第1頁
基于私有云架構的基金報表系統開發論文_第2頁
基于私有云架構的基金報表系統開發論文_第3頁
基于私有云架構的基金報表系統開發論文_第4頁
基于私有云架構的基金報表系統開發論文_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論