聲明:摘自 基於O3W平臺的證券交易系統設計與實現_易軼 2007年碩士學位論文 僅供學習,若有侵權,請聯繫做者刪除!html
第二章 Object 3Tier Infoworks 平臺的研究前端
2.1 分佈式多層架構技術介紹程序員
傳統的分佈式應用系統模式是「主機/終端」或「客戶機/服務器,客戶機/服務器系統(Client/Server System)的結構是
指把一個大型的計算機應用系統變爲多個能互爲獨立的子系統,而服務器即是整個應用系統資源的存儲與管理中心,
多臺客戶機則各自處理相應的功能,共同實現完整的應用。算法
可是,隨着對各類舊有應用的不斷擴充和新應用的不斷增長,各企業IT部門面臨的問題也愈來愈多,諸如不一樣硬件平臺、
諸如不一樣硬件平臺、不一樣網絡環境、不一樣數據庫之間的互操做、多種應用模式的並存、系統運行效率太低、傳輸不可靠、數據庫
數據加密、開發週期過長等問題,單純依賴傳統的的結構的系統已經不能知足要求。因而爲解決傳統模式與應用需求日益
突出的矛盾,爲解決傳統模式與應用需求日益突出的矛盾,以交易中間件爲基礎框架的三層客戶機服務器模式應運而生。編程
三層結構以中間層管理大量的客戶端,併爲其聯接、集成多種異構的服務器平臺,經過有效的組織和管理,
在極爲寬廣的範圍內將客戶機與服務器進行高效組合。同時中間件開創的以負載平衡、動態伸縮等功能爲表明的管理模式,
己被普遍證明爲創建關鍵業務應用系統的最佳環境,使在傳統模式下不可能實現的應用成爲可能,併爲應用提供了充分的擴展餘地。後端
目前最流行的分佈式架構技術主要是 Microsoft 的COM/DCOM/COM+ 和 700多個廠商共同提倡的 COBRA 以及
Sun 公司提倡的 EJB ,三者雖然實現的方案和平臺各自不一樣,可是它們的核心架構都是同樣的,都是由客戶端程序、中間層
服務程序、數據庫服務三層共同構成。在中間層,分佈式業務組件負責企業應用的商業邏輯部署。瀏覽器
一、ActiveX方案
ActiveX是微軟綜合Winn32,OLE和COM/DCOM等技術所創建的一整套Internet應用開發,平臺其核心是微軟的組件模型
COM/DCOM。ActiveX的運行機制是,瀏覽器下載ActiveX控件,腳本或者文檔並在本地運行,他們能夠做爲DCOM客戶,
利用DCOM的對象遠程過程調用機制訪問應用服務器中的對象,也能夠經過服務器上ISAPI等接口,訪問後端數據庫。安全
ActiveX是從對象聯接與嵌入技術OLE演化而來,在此以前所開發的大量的OLE對象能夠被ActiveX所重用,從而節省了
軟件開發的投資。ActiveX是一種與語言無關的開發平臺,ActiveX控件或者腳本能夠用Visual C++、Visual Basic、Java、
JavaScript 等多種語言實現,於是方便了程序員的開發。然而目前DCOM只支持Windows平臺,所以用ActiveX的分佈式計算
組件模型只能運行在Windows平臺上沒法知足異構環境下應用的要求。服務器
二、Java RMI方案
遠程方法調用RMI是Sun公司用Java語言創建的分佈對象計算環境。其客戶端程序是一個Java Applet或者JavaBeans對象,
它經過RMI內部通訊機制調用應用服務器上Java的對象的有關方法,繼而以JDBC等方式訪問資源數據庫。
由於Java RMI是在純Java環境下實現的,Java語言自己的可移植性使得RMI有很強的跨平臺性。此外,在處理純Java對象
之間的通訊的時候,RMI具備較高的效率。可是RMI只能訪問Java對象這妨礙了它與其餘語言編寫的應用之間的交互,影響了
其應用範圍的擴展。從內部實現機制上來看,RMI能夠當作一種廣義的ORB。
三、COBRA方案
在該方案中,COBRA客戶方程序從HTTP服務器下載執行,與應用服務器上COBRA的應用對象經過IIOP協議進行通訊,
調用其指定的操做。COBRA應用對象首先對客戶的請求進行認證和解釋,根據客戶的請求的內容,或者直接訪問
資源層的數據庫,或者與網絡上其它COBRA對象相互交互,共同完成客戶的請求。COBRA方案的優點在於它是一個
完整的、開放的、穩定的分佈式對象計算體系,而且具備「即插即用「的軟總線機制,並且其具備跨平臺、跨語言的特性。
四、EJB方案
EJB定義了一種服務器端組件模型,它容許商務對象的開發,並能夠從一種品牌的CTM組件事務監控器
轉移到另外一種品牌的CTM。組件(bean)表明一個簡單的編程模型,它容許開發者集中於商務目的。EJB的服務器遵循
EJB規範的CTM,則負責將組件生成分佈式對象與管理各類服務,如事務性、持久性、併發性和安全性等。
除了基於商務邏輯定義bean外,開發者還要定義bean的運行屬性、方法與選擇可視化組件的顯示屬性相似。
組件的如事務性、持久性、併發性和安全性行爲能經過一系列屬性中選擇定義。最終結果是, EJB使在健壯的事務環境中
開發分佈式組件系統更加容易。對於那些關鍵性的任務,尤爲高速執行的分佈式系統中使用COBRA DCOM
和 JAVA RMI感到複雜的開發者和IT廠商而言,
EJB提供了一個更簡單、更高效的開發平臺。
EJB已經成爲了一種事實上的工業標準,不少供應商早在規範最後完成前就宣佈了他們對EJB的支持。
EJB提供了一種標準分佈式組件模型,能夠大大簡化開發過程,並容許在一個供應商的EJB服務器上開發和配置
bean的能輕易被配置到其餘供應商EJB服務器。
在目前的企業計算環境中,EJB 和 COM,COBRA並列爲三大組件標準。
EJB是用於開發和部署多層結構的、分佈式的、面向對象的應用系統的跨平臺的構件體系結構。
採用EJB可使開發商業應用系統變得容易,應用系統能夠在一個支持EJB的環境中開發,開發完以後部署
在其餘的環境中。從而隨着需求的改變,應用系統能夠不加修改地遷移到其餘功能更強、更復雜的服務器上。
中間件技術介紹
一、中間件的定義
因爲劃分的標準不一樣,目前對於什麼是中間件並無準確而統一的定義。在衆多關於中間件的定義中,
比較廣泛被接受的是IDC表述的:
IDC對中間件的定義代表
在綜合現有研究成果的基礎上,咱們能夠給出以下的關於中間件的完整性定義,即
中間件是基礎軟件的一大類,屬於可複用軟件的範疇,總的做用是:
由此定義不難看出,中間件具備以下基本特徵:
二、中間件的基本做用
對於應用軟件開發,中間件遠比操做系統和網絡服務更爲重要。中間件的做用是爲處於本身上層的應用軟件提供運行與開發
的環境,幫助用戶靈活、高效地開發和集成複雜的應用軟件,一般用於系統內部數據庫與應用之間的消息傳遞處格式轉換等問題。
中間件帶給應用系統的,不僅是開發的簡便、開發週期的縮短,也減小了系統的維護、運行和管理的工做量,還減小了
計算機整體費用的投入。其次,中間件做爲新層次的基礎軟件,其重要做用是將不一樣時期、不一樣操做系統上開發應用軟件
集成起來像一個完美無缺的總體協調工做。這是操做系統、數據庫管理系統自己作不了的,從而節約了大量的人力,財力投入。
另外,在愈來愈熱的電子商務領域,中間件依然大有做爲。中間件能夠用來普遍地集成電子商務中的各類應用,支持大量客戶的
併發訪問,使應用開發商快速開發出靈活多變的電子商務應用,並儘快把信息系統和商務活動放到中。
中間件的做用具體體如今它所提供的服務上,主要包括
1)通信服務
目前的操做系統都支持網絡編程接口,可是這些接口一般都是底層的而且很是複雜而不利於使用。
中間件則對分佈式應用的開發者屏蔽了複雜的底層網絡編程細節。
因爲中間件須要屏蔽分佈環境中操做系統和網絡協議的異構性,所以它必須可以提供分佈環境下的通信服務。
基於目的和實現機制的不一樣,應用間的分佈式通信包括如下三類
在這些基本的通信平臺之上,能夠構築各類框架,爲應用程序提供不一樣領域內的服務,如事務處理監控器、
分佈數據訪問、對象事務管理器OTM等。
2)併發性服務
基於中間件的應用必須具備高度可擴展性,一般以每秒所處理的請求或消息的數量(QPS)來衡量。
這種要求在系統中保證最大化的併發性,這樣就能夠同時執行儘量多的任務。中間件系統使用
不少技術和模式來加強併發性,例如在服務器進程中採用多線程技術,多線程技術容許中間件子系統
最大化網絡鏈接的處理以及達到這些鏈接的請求和消息的處理等。
3)通用中間件支持
除了提升通訊和併發服務支持外,分佈式應用中使用中間件服務來解決那些獨立於任何特定應用領域的問題。
最經常使用的中間件服務有目錄服務、事務服務、安全服務、管理服務、事件服務、連續性服務、負載平衡服務、配置服務。
三、中間件的分類
中間件的種類有不少,通信和事務處理中間件是中間件層次劃分中最爲基本的中間件,
它們向下須要網絡協議的支持,向上爲最高層應用提供基礎平臺。所以在上述層次劃分的基礎上,
能夠根據功能將中間件進一步細化爲如下種類:
2.3 Object 3Tier Infoworks平臺的技術介紹
在證券行業的大型計算機應用系統中,中間件的使用日益普及,中間件已與操做系統、數據庫並列爲三大基礎軟件。
Object 3Tier Infoworks(o3w)平臺是日本野村綜合研究所開發的,己成爲行業標準的分佈式多層架構中間件,在日本的
證券行業中普遍使用。經過對分佈式應用的開發者隱藏底層信息,屏蔽網絡和分佈式應用的複雜性,併爲網絡和分佈式應用
提供相應的服務,使得開發者能夠集中致力於應用邏輯。
Object 3Tier Infoworks平臺是在證券企業、Internet這樣的分佈式運算環境中開發和管理三層結構的
客戶服務器型關鍵任務應用系統的強有力工具。它具有分佈式事務處理和應用通訊功能,並提供各類完善的服務來創建、
運行和管理關鍵任務應用系統。開發人員可以用它創建跨多個硬件平臺、數據庫和操做系統的可互操做的應用系統。
Object 3Tier Infoworks平臺是企業、Internet分佈式應用中的基礎主幹平臺。
Object 3Tier Infoworks平臺提供了一個開放的環境,支持各類各樣的客戶、數據庫、網絡、遺留系統和通信方式。
它使分佈式關鍵任務應用系統具備大型主機的性能,從而使這些應用系統可以應付數以千計的用戶,大交易吞吐量,多
並行數據庫存取和大量數據,同時保持較短的反應時間,較高數據完整性和安全性,而且確保整年天,每週天,天天小時
的系統可用性。同時,Object 3Tier Infoworks平臺還能讓開發人員和系統管理人員享用分佈式運算環境提供的好處,
如技術成本的低增加率,靈活性提升,快速應用開發和安裝以及業務信息存取得以改善。
關鍵業務應用一般是面向事務的,要求具備準確的數據完整性、較好的性能和管理需求。這些需求要求對應用的開發、
調度和操做給出一個結構化的方案。由像Object 3Tier Infoworks平臺這樣的中間件支持的組件軟件模型爲分佈式環境
處理關鍵性業務應用提供了一個結構化的解決方案,。
Object 3Tier Infoworks平臺和基於組件的應用設計從異構的計算資源中建立了一個虛擬主機在分佈式應用系統級提供
可管理的相互關聯的資源。
O3W平臺具備如下中間件功能
一、通訊處理中間件
因爲中間件須要屏蔽分佈環境中異構的操做系統和網絡協議,所以它必須可以提供分佈環境的通信服務。
通訊處理中間件能在不一樣平臺之間進行通訊,實現分佈式應用中實時、可靠、高效的跨平臺數據傳輸。
O3W平臺採用消息中間件來構建,經過消息中間件來把應用擴展到不一樣的操做系統和網絡環境。消息中間件很是適合
時間驅動的應用,事件發生後,消息中間件通知服務方應該進行何種操做。因爲採用消息中間進行編程,消息中間件
能夠很是方便地擴展到不一樣操做系統和硬件平臺上。消息中間件的核心安裝在須要進行消息傳遞的系統上,創建消息傳遞
的邏輯通道,由中間件實現消息發送。消息中間件是一種點到點的機制,既支持同步方式也支持異步方式,於是很是適
合面向對象的編程方式。
二、數據存取中間件
數據存取中間件適用於應用程序與數據源之間的互操做模型。在分佈式系統中,重要數據集中存放在
數據服務器中,客戶端使用面向數據庫的API,提請直接訪問和更新基於服務器的數據源,包括關係型、非關係型和
對象型數據源,也包括通過加密或壓縮存放的各類格式的多媒體類型。平臺爲分佈式網絡環境下的虛擬緩衝存取、
格式轉換以及解壓縮等帶來方便,採用了數據庫廠商直接提供的數據存取中間件,如JDBC等。
數據存取中間件大多基於語句,採用同步通訊方式。數據存取中間件使得開發分佈式應用簡單,可是若在
廣域網上使用會帶來嚴重的效率問題,這是由於廣域網上語句的交互使得通信流量過大,同時對數據壓縮、加密帶來不便。
所以針對不一樣的應用需求,如對海量數據、異格式數據、壓縮數據以及加密數據等,須要分別有相應的中間件。
三、分佈對象中間件
面向對象技術是軟件界孜孜以求的目標,傳統的面向對象技術經過封裝、繼承以及多態提供了良好的代碼重用功能。
可是這些對象僅存在程序中,沒法向外界代表它們的存在,所以沒法被外部所訪問。O3W平臺採用了適用於瀏覽器的
J2EE面向對象中間件,提供了標準的構件框架,使得不一樣廠商的軟件經過不一樣的地址空間、網絡和操做系統相互交互
訪問,此構件的具體實現、位置以及所依附的操做系統對客戶而言都是透明的。
2.4 Object 3Tier Infoworks平臺的優勢
一、縮短應用的開發週期
Object 3Tier Infoworks平臺的三層結構組件軟件模型將用戶界面的表示部分和業務邏輯部分按客戶組件
服務器組件分開,使開發人員可以按組件的思想專一入於業務邏輯的開發,用戶界面部分可用流行的前端開發工具
來快速完成。而客戶和服務器之間、服務器和服務器之間的通信,異構平臺之間的數據變換,以及服務器和數據庫之間
的集成和事務控制都由平臺來完成。當數據庫或服務器端的業務邏輯改變時,客戶端則不必定要改變反之當客
戶改變或增長新的客戶界面時,服務器端則不必定要改變,大大增長了應用系統的各部分的可複用性。
平臺提供的簡潔使用戶程序可以物理地點透明地在客戶和服務器之間、服務器和服務器之間進行各類方式的通信,
極大地減輕開發人員的負擔。
二、減小系統運行成本
沒有使用中間件的應用系統,其初期的資金及運行費用的投入要比同規模的使用中間件的應用系統多一倍。
三、減小項目開發風險
研究代表,沒有使用標準商業中間件的關鍵應用系統開發項目的失敗率高於90%。利用Object 3Tier Infoworks平臺有助於
減輕應用軟件開發者的負擔,使他們利用現有的硬件設備、操做系統、網絡、數據庫管理系統以及對象模型建立分佈式應用軟件
時更加駕輕就熟。
四、減小應用開發費用
對於應用軟件開發,Object 3Tier Infoworks平臺提供的程序接口定義了一個相對穩定的高層應用環境,無論底層的計算機
硬件和系統軟件怎樣更新換代,只要將平臺升級更新,並保持中間件對外的接口定義不變,應用軟件幾乎不需任何修改,從而
保護了企業在應用軟件開發和維護中的重大投資。
五、很是高的性能
一方面,平臺可以使多個客戶鏈接到一個服務器進程,由這個服務器進程存取數據庫,爲客戶的請求服務。這樣,
數據庫爲處理鏈接所需的資源大大減小。另外一方面,客戶和服務器之間,服務器和服務器之間的通信中,網絡上流動的
只有相對較少的客戶或服務器的請求和服務器處理的結果,而再也不是兩層結構中客戶和之間的大量請求和應答。
六、系統的安全性
平臺經過結構化用戶界面支持應用服務的驗證、受權和存取控制,容許用戶加入本身的驗證服務模塊。平臺還提供信息加密
服務,容許對網絡上傳輸的信息進行算法加密。
七、技術革新性
企業對自我建造的基礎中間件軟件平臺的頻繁革新是極不容易實現的不實際的。而採用Object 3Tier Infoworks平臺,
則對技術的發展與變化能夠放心,由於開發Object 3Tier Infoworks平臺的野村綜合研究所會義不容辭地把握技術方向和進行技術革新。
第四章證券交易系統的具體實現
本證券交易系統總的處理流程是:
本系統使用 O3W_Studio 附帶的XML_Creator文件來實現EXECL加載宏功能,這樣就能利用該功能生成的XML文檔來進行系統功能控制。
只要定義好
點擊EXECL軟件的XML_Creator宏功能,就會自動生成相對應的Data Store Bean文件、Web頁面跳轉控制文件、模塊功能調用文件、
數據變換文件及接口參數定義文件等的XML文檔。
4.一、系統視圖層的實現
本證券交易管理系統中的視圖部分主要是由一系列頁面組成,主要功能是進行請求和將模塊處理的數據表現給客戶端。
JSP頁面使用了大量的JavaScript做爲共同函數,以此進行軟件代碼複用,簡化開發過程。做爲一種嵌入HTML文檔的、
基於對象的腳本設計語言,其中很大一部分的語法同JAVA語言很類似,並且的設計可使它很容易地同語言一同工做,它能夠充
分支持JAVA的applet小應用程序,JAVA的applet的小應用程序也能夠很方便地訪問已有的代碼。因此,
能夠把JavaScript當作是JAVA語言的某種簡化版本。
在JavaScript這樣的用戶端腳本語言出現以前,傳統的數據提交和驗證工做均由用戶端瀏覽器經過網絡傳輸到服務器上進行。
若是數據量很大,這對於網絡和服務器的資源來講實在是一種無形的浪費。而使用JavaScript就能夠在客戶端進行數據驗證。
JavaScript能夠方便地操縱各類瀏覽器的對象,可使用JavaScript來控制瀏覽器的外觀,狀態甚至運行方式,能夠根據用戶的
須要「定製」瀏覽器,從而使網頁更加友好。可使多種任務僅在用戶端就能夠完成而不須要網絡和服務器的參與,
從而支持分佈式的運算和處理。
在視圖層主要使用瞭如下技術
一、TagLib
在JSP前端頁面中使用各類標籤完成頁面數據邏輯的組織與顯示。如(html,bean,logic)
二、國際化的消息處理功能
在JSP頁面中不出現特定語言的字符串描述,將這些統一的字符串信息統一的提取到文件中,經過標籤提取。
便於整個系統的語言變動與組織。
三、界面組合功能
統一組織頁面的結構,便於系統改版、維護。
4.1.1視圖層的數據交換
在本系統中的全部的數據交換過程都是經過類型緩衝區來完成的。所謂類型緩衝區,即一塊特定格式的內存塊,
用來實現客戶端和服務端之間的數據交換。Object 3Tier Infoworks平臺提供了名爲Data Store Bean緩衝區來供開發者使用。
這種統必定義的類型緩衝區可使它們在跨越不一樣網絡、不一樣協議、不一樣構架以及不一樣操做系統之間獲得統一的處理,
這就使得開發者在分佈式計算環境中有效地避開了異構網絡和異構計算機系統帶來的差別,把精力集中在商業邏輯的開
發上。
對緩衝區的操做有增長、刪除、修改等。客戶端調用某項服務以前,如須要使用DSB,則要事先對DSB實例進行內存分配
和實例初始化工做,再向此緩衝區中寫入須要傳遞的數據一樣端首先要從中取得傳入的參數,並檢查參數的有效性,
再進行下一步操做。在返回數據時,一樣要對進行一些寫入操做。
4.2.1 COBOL語言的使用
在本系統中,是採用COBOL語言來實現業務邏輯功能。COBOL的全稱是 Common Business Oriented Language,
意即通用商業語言。在企業管理中,數值計算並不複雜,但數據處理信息量卻很大。爲專門解決經企管理問題,於1959
年,由美國的一些計算機用戶組織設計了專用於商務處理的計算機語言COBOL,並於1961年美國數據系統語言協會公佈。
經不斷修改、豐富完善和標準化,己發展爲多種版本。
COBOL語言使用了300多個英語保留字,大量採用普通英語詞彙和句型,COBOL程序通俗易懂,素有「英語語言」之稱。
語言語法規則嚴格。用語言編寫的任一源程序,都要依次按標識部、環境部、數據部和過程部四部分書寫,
整個源程序象一棵由根到幹,由幹到枝,由枝到葉的樹,習慣上稱之爲樹型結構。
目前COBOL語言主要應用於情報檢索、商業數據處理等管理領域。
Java擅長使用者接口的設計,COBOL而則是在商業邏輯上(business logic)十分強大。COBOL被用來
開發存貨、銀行、支付、流通和股票交易系統,可說大部份重要應用都是用開發的,並且這些都是企業裏最最重要的系統。
COBOL一直是符合業界標準,像是近年分別取得ANSI以及ISO的標準認證,隨着環境的變遷,
也不斷增長許多新的功能,其中最大的特點在於咱們轉變爲對象導向一的程序語言,這使得一直持續和的合做。
如今就是以協助企業開發組件化的應用爲目的。
4.2.2事務的使用
本系統業務邏輯的實現中採用了事務。咱們要求在(分佈式)資源上的一組操做被看成一個工做單元(unit)
在一個工做單元中,操做的全部部分一塊兒成功或失敗並恢復。在全部狀況下,都要求應用維護一個工做單元的成功或失敗。
在失敗的狀況下,全部資源要把數據狀態返回到之前的狀態,(好比說,工做單元開始前的狀態)。
事務的概念即爲了在一個工做單元中維護數據的完整性。
一個事務是有下列屬性的一個工做單元:
一、原子性(ATOMCITY):一個事務要被徹底的無二義性的作完或撤消。在任何操做出現一個錯誤的狀況下,
構成事務的全部操做的效果必須被撤消,數據應被回滾到之前的狀態。
二、一致性(CONSISTENCY):均一個事務應該保護全部定義在數據上的不變的屬性例如完整性約束。
在完成了一個成功的事務時,數據應處於一致的狀態。換句話說,一個事務應該把系統從一個一致狀態轉換到另外一個一致狀態。
舉個例子,在關係數據庫的狀況下,一個一致的事務將保護定義在數據上的全部完整性約束。
三、隔離性(ISOLATION):在同一個環境中可能有多個事務併發執行,而每一個事務都應表現爲獨立執行。
串行的執行一系列事務的效果應該同於併發的執行它們。這要求兩件事:在一個事務執行過程當中,數據的中間的可能
不一致狀態不該該被暴露給全部的其餘事務;兩個併發的事務應該不能操做同一項數據。數據庫管理系統一般使用鎖來實現這個特徵。
四、持久性(DURABILITY):一個被完成的事務的效果應該是持久的。