版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
系統(tǒng)技術(shù)架構(gòu)系統(tǒng)技術(shù)架構(gòu)總體架構(gòu)廣東網(wǎng)通BSS系統(tǒng)重構(gòu)項(xiàng)目的主要技術(shù)目標(biāo)包括提高應(yīng)用系統(tǒng)的可重用性和流程的可配置性,以解決在業(yè)務(wù)快速變化的市場環(huán)境下如何保證業(yè)務(wù)支撐軟件及時(shí)交付高質(zhì)量的軟件版本,同時(shí)盡量降低業(yè)務(wù)軟件的重復(fù)性開發(fā)工作量。為了滿足日益復(fù)雜的業(yè)務(wù)需求,確保能夠在第一時(shí)間里推出市場所需的服務(wù)、并且業(yè)務(wù)支撐系統(tǒng)的改動(dòng)量最小,我們建議在系統(tǒng)中采用SOA架構(gòu)。SOA是從企業(yè)的需求開始,把IT系統(tǒng)和商業(yè)流程連合在一起,以服務(wù)集成形式實(shí)現(xiàn)新的而又靈活的應(yīng)用功能*0人簡化了IT,讓IT變得更有彈性,以便更好地發(fā)展和優(yōu)化業(yè)務(wù)流程,從而促進(jìn)企業(yè)與合作伙伴的業(yè)務(wù)需要,也使供應(yīng)商和客戶之間動(dòng)作流程的端到端整合,讓企業(yè)可以快速靈敏地響應(yīng)客戶和市場不斷變化的需求。SOA能夠加強(qiáng)對整個(gè)企業(yè)架構(gòu)的控制能力并且由于具有高級別的重用性,有助于提升開發(fā)效率,加快開發(fā)速度;采用只需少量改動(dòng)的核心企業(yè)級IT應(yīng)用,讓運(yùn)營企業(yè)和廠商只需優(yōu)化基于標(biāo)準(zhǔn)技術(shù)的IT技能,從而降低了在客戶化和人員技能方面的投入,從而節(jié)約了成本。以SOA在基礎(chǔ),結(jié)合功能和非功能性需求的考慮,我們對廣東網(wǎng)通BSS系統(tǒng)給出如下的系統(tǒng)架構(gòu):指系統(tǒng)已經(jīng)存在的程序資源,例如網(wǎng)元操作平臺(tái)、銀行系統(tǒng)等外部系統(tǒng),以及BSS系統(tǒng)自身的數(shù)據(jù)等。組件層在這一層中用不同的組件把底層系統(tǒng)的資源封裝起來。服務(wù)層在這層中用底層功能組件來構(gòu)建所需要的不同功能的服務(wù)。商業(yè)流程層在服務(wù)層之上為商業(yè)流程層,在這一層中我們利用已經(jīng)封裝好的各種服務(wù)來構(gòu)建商業(yè)系統(tǒng)中的商業(yè)流程。流程是可以組合的,一個(gè)流程可以作為另一個(gè)流程的子流程使用,更好地提供了流程的重用性及靈活性??v向貫穿系統(tǒng)的是集成架構(gòu)和基礎(chǔ)架構(gòu),集成架構(gòu)的核心為企業(yè)服務(wù)總線(ESB);而基礎(chǔ)架構(gòu)則為整個(gè)SOA系統(tǒng)提供一些輔助的功能,例如服務(wù)質(zhì)量管理,安全管理這一類的輔助功能。將體系架構(gòu)映射到J2EE的技術(shù)平臺(tái)上面可以得出如下的模型:這是一個(gè)擴(kuò)展的J2EE架構(gòu)實(shí)現(xiàn),表示層的內(nèi)容可以運(yùn)行在WEB容器之上,商業(yè)流程、服務(wù)層、組件層的內(nèi)容則會(huì)運(yùn)行在EJB容器之上,基礎(chǔ)架構(gòu)的安全,管理及監(jiān)控也會(huì)實(shí)現(xiàn)成EJB容器之上的服務(wù),而一般來說,現(xiàn)有的應(yīng)用服務(wù)器都可以提供企業(yè)服務(wù)總線的功能。這個(gè)實(shí)現(xiàn)除了支持Web應(yīng)用之外,還支持J2EE的遠(yuǎn)程客戶,具有遠(yuǎn)程EJB的分布式應(yīng)用,以及其它類型的客戶端。該體系結(jié)構(gòu)在WEB層(或者是其他遠(yuǎn)程客戶)與業(yè)務(wù)對象之間使用RMI,WEB層通過業(yè)務(wù)接口和業(yè)務(wù)委托來遠(yuǎn)程訪問業(yè)務(wù)邏輯會(huì)話EJB,業(yè)務(wù)邏輯處理數(shù)據(jù),然后業(yè)務(wù)邏輯會(huì)話EJB通過DAO訪問數(shù)據(jù)存儲(chǔ),也就是把數(shù)據(jù)持久化。這種架構(gòu)的最大好處是通過一個(gè)中間層來支持所有的J2EE客戶類型;還允許各種構(gòu)件在不同的物理服務(wù)器上分布;這樣給應(yīng)用實(shí)現(xiàn)最大的可伸縮性,EJB容器為遠(yuǎn)程客戶提供一個(gè)綜合性接口。表示層——Web界面及Web服務(wù)接口這一層用來與用戶交互,并把來自系統(tǒng)的信息顯示給用戶。J2EE使用JSP/Servlet技術(shù)支完成這一層的任務(wù)。這里,我們引入JSF、JSP標(biāo)準(zhǔn)標(biāo)記庫和AJAX技術(shù),應(yīng)用框架采用改進(jìn)過的Struts2。Web服務(wù)接口標(biāo)準(zhǔn)(比如SOAP)不再要求使用RMI和EJB來支持遠(yuǎn)程客戶,從而使客戶的遠(yuǎn)程訪問不必使用EJB接口。傳統(tǒng)的Web服務(wù)接口運(yùn)行在同一個(gè)Web容器中。使用SOAP基于XML,并且是自描述的,這樣的服務(wù)標(biāo)準(zhǔn)具有跨平臺(tái)性,支持J2EE客戶之外的客戶,比如日后的電話語音訂貨系統(tǒng)與互聯(lián)網(wǎng)系統(tǒng)等應(yīng)用。Web服務(wù)傳輸協(xié)議運(yùn)行在HTTP上面。接入服務(wù)――統(tǒng)一接入平臺(tái)對于其它類型的客戶端,BSS系統(tǒng)構(gòu)建統(tǒng)一接入平臺(tái),為其提供服務(wù)。建統(tǒng)一接入平臺(tái)包含了接口連接管理、接口邏輯管理和接口服務(wù)三部分:接口連接管理:提供接口接入處理完整的管理功能,在接口連接管理中包含了傳輸管理、通訊服務(wù)、負(fù)載均衡、動(dòng)態(tài)配置管理、網(wǎng)絡(luò)調(diào)度等功能;接口邏輯管理:提供了和接口業(yè)務(wù)相關(guān)的數(shù)據(jù)管理、優(yōu)先級管理、交換分發(fā)和完整性管理等功能;接口服務(wù):是對BSS系統(tǒng)服務(wù)層提供的商業(yè)流程封裝后提供給對端系統(tǒng)的相應(yīng)服務(wù),以阻斷對端系統(tǒng)和業(yè)務(wù)層的直接通訊,同時(shí)安全高效的支持外圍接入服務(wù)。表示層――業(yè)務(wù)接口業(yè)務(wù)對象對外暴露為EJB,在Web組件層與業(yè)務(wù)對象之間使用RMI(遠(yuǎn)程方法調(diào)用,當(dāng)然,遠(yuǎn)程方法調(diào)用的通信細(xì)節(jié)由容器來實(shí)現(xiàn)并隱藏),為了減少遠(yuǎn)程調(diào)用的性能開銷,系統(tǒng)架構(gòu)采用常用的設(shè)計(jì)模式一業(yè)務(wù)接口和接口實(shí)現(xiàn)一業(yè)務(wù)委托來處理對遠(yuǎn)程EJB的訪問。另一方面,由于EJB對象的查找及實(shí)例化是相當(dāng)消耗系統(tǒng)資源的,業(yè)務(wù)接口可以緩存EJB對象的遠(yuǎn)程句柄這樣節(jié)省了查找和實(shí)例化的時(shí)間,從而提高系統(tǒng)的性能。邏輯層——業(yè)務(wù)邏輯EJB這一層處理應(yīng)用的核心業(yè)務(wù)邏輯。所有的業(yè)務(wù)組件都實(shí)現(xiàn)為EJB容器內(nèi)的StatelessSessionBean組件。EJB容器提供了業(yè)務(wù)組件生命周期管理、多線程調(diào)度、同步處理、事務(wù)管理和資源分配等,這樣業(yè)務(wù)組件只需要專注于業(yè)務(wù)需求的實(shí)現(xiàn)即可。由于業(yè)務(wù)邏輯都集中在EJB組件實(shí)現(xiàn),而客戶端只用來與用戶的交互,這樣保證了業(yè)務(wù)邏輯的統(tǒng)一。如上所述,〕2EE結(jié)構(gòu)中的邏輯層,對應(yīng)于我們系統(tǒng)架構(gòu)中組件模型的組件層、服務(wù)層及流程層,也就是說,我們將使用EJB去實(shí)現(xiàn)組件、服務(wù)及流程。首先,我們使用EJB去封裝后臺(tái)數(shù)據(jù)庫的數(shù)據(jù)對象(通過DAO去訪問數(shù)據(jù)庫),由于系統(tǒng)涉及到多個(gè)數(shù)據(jù)庫,這樣可以使上層的應(yīng)用忽略了數(shù)據(jù)的來源,并且提供了基本的事務(wù)功能。在封裝數(shù)據(jù)對象之后,我們同樣使用EJB去實(shí)現(xiàn)一些基本的服務(wù)功能,這些EJB的粒度將會(huì)比較細(xì),只完成單一的功能,如客戶資料查詢等。最后,我們再使用EJB,將細(xì)粒度的服務(wù)組件按商業(yè)流程連合在一起,完成更完整的流程。在設(shè)計(jì)的理念上,流程是可以組合的,一個(gè)流程可以作為另一個(gè)流程的子流程使用,更好地提供了流程的重用性及靈活性。甚至在發(fā)展到一定的程度后,可以引入工作流引擎,如BPEL,通過描述的方式去定義一個(gè)工作流程,從而使整個(gè)商業(yè)過程靈活可配置,面向業(yè)務(wù)人員。邏輯層――規(guī)則引擎使用規(guī)則引擎(如:ILOG),可以在原有的業(yè)務(wù)邏輯層中抽取出業(yè)務(wù)規(guī)則層,一方面實(shí)現(xiàn)應(yīng)用邏輯與業(yè)務(wù)邏輯松散耦合,使系統(tǒng)能夠在用戶期望的時(shí)間規(guī)定內(nèi)完成業(yè)務(wù)需求功能;另一方面從體系架構(gòu)上保證業(yè)務(wù)規(guī)則層能夠在BSS系統(tǒng)的各個(gè)功能模塊中具備業(yè)務(wù)編輯配置能力。規(guī)則管理系統(tǒng)功能主要包括一下模塊:規(guī)則的設(shè)計(jì)與編輯模塊規(guī)則調(diào)試分析模塊規(guī)則管理模塊規(guī)則執(zhí)行模塊如下圖所示,使用ILOG規(guī)則引擎可以較大程度的提高系統(tǒng)的靈活性不過,使用ILOG規(guī)則引擎也會(huì)導(dǎo)致程序性能有一定成都下降,這是因?yàn)槌绦蛎看螆?zhí)行前都需要訪問規(guī)則庫,并進(jìn)行規(guī)則比較。另外,使用ILOG規(guī)則引擎也會(huì)在一定程度上增加操作復(fù)雜性,這是因?yàn)橐M(jìn)行規(guī)則配置。因此,ILOG建議應(yīng)用在規(guī)則變動(dòng)較頻繁,而且可以通過靈活配置而不修改程序可以實(shí)現(xiàn)的模塊。ILOG建議應(yīng)用在規(guī)則變動(dòng)較頻繁,而且可以通過靈活配置而不修改程序可以實(shí)現(xiàn)的模塊。1.7.商業(yè)流程――工作流引擎流程做為SOA世界中重要的概念,有個(gè)方面的問題可以關(guān)注,一是業(yè)務(wù)流程的建模,是指使用流程進(jìn)行建模反應(yīng)業(yè)務(wù)需求。二是工作流的應(yīng)用,其實(shí)工作流是前者的一個(gè)子集,強(qiáng)調(diào)人機(jī)交互,人工干預(yù)流程(通常是長流程)。而業(yè)務(wù)流程中是可以沒有人工干預(yù)的,其中一種觀點(diǎn)就是,將商業(yè)邏輯用規(guī)則引擎管理,這樣人干預(yù)的節(jié)點(diǎn)越少,做為企業(yè)來講,流程的效率越高,從中獲取的商業(yè)利益也越大。在這個(gè)領(lǐng)域,工作流管理的概念在前,其標(biāo)準(zhǔn)WFMC也經(jīng)歷了很長時(shí)間,但一直沒有得到很好的應(yīng)用和推廣。而是近幾年隨著SOA概念的推廣,OASIS的BPEL越來越多的被關(guān)注,現(xiàn)在版本是2。0。BPEL的全稱是WS-BPEL。這個(gè)標(biāo)準(zhǔn)是基于WebService的。所采用的引擎是否一定要實(shí)現(xiàn)某某規(guī)范和標(biāo)準(zhǔn)值得探討,因?yàn)楫?dāng)前流程這方面的標(biāo)準(zhǔn)規(guī)范存在的太多,也沒有一個(gè)強(qiáng)勢的標(biāo)準(zhǔn)(最強(qiáng)勢的現(xiàn)在來看也是bpel了)。但從功能上,流程引擎(或者擴(kuò)展后的流程系統(tǒng))需要支持下面幾種要求:圖形化的流程定義。能夠API靈活易用。流程容易開發(fā)。清晰的流程概念和運(yùn)作方式,一定要具有人機(jī)交互能力。(角色,權(quán)限相關(guān)聯(lián))支持流程的熱部署。提供靈活的擴(kuò)展方式,良好的和外部系統(tǒng)/模塊的交互能力(本地代碼交互和分布式的系統(tǒng)的交互)。如果做為模塊,能夠易集成。完備的文檔及其他可尋求的幫助方式以上幾點(diǎn)依次從流程分析定義,流程開發(fā),流程部署,流程運(yùn)行期和外部的交互,如何集成等幾個(gè)方面進(jìn)行考慮。大概比較一下基于BPEL的引擎和JBPMBPEL優(yōu)勢符合最流行的流程標(biāo)準(zhǔn)規(guī)范。適于大規(guī)模編程,集成特性好。良好的圖形設(shè)計(jì)工具。是SOA重要的組成部分。劣勢比較復(fù)雜,或者說很復(fù)雜。需要非常了解BPEL標(biāo)準(zhǔn)。(如何利用bpel設(shè)計(jì)流程?)一定要熟悉webservice的開發(fā)和其相關(guān)的標(biāo)準(zhǔn)。注意:以上兩項(xiàng)如果有現(xiàn)成的封裝并且團(tuán)隊(duì)中已經(jīng)有人熟悉問題也不大。依賴特定引擎實(shí)現(xiàn)本地代碼交互。依賴于特定的引擎實(shí)現(xiàn)人機(jī)交互。JBMP優(yōu)勢簡單易用的編程模型。做為模塊容易集成。也可設(shè)計(jì)成子系統(tǒng)。其概念模型也很清晰。良好的基于eclipse的圖形設(shè)計(jì)工具。(易用性強(qiáng))很靈活。可以方便的測試流程設(shè)計(jì)(脫離數(shù)據(jù)庫運(yùn)行)。易于擴(kuò)展。內(nèi)部已有比較好的研究。相關(guān)社區(qū)比較活躍。劣勢不是標(biāo)準(zhǔn)(jbpm有一個(gè)子項(xiàng)目支持bpel)在大規(guī)模集成方面不如BEPL相關(guān)實(shí)現(xiàn)。無論是采用哪種實(shí)現(xiàn)方式,最好都能了解流程設(shè)計(jì)的pattern,processdesignpattern是流程設(shè)計(jì)中常用的一些場景,可做為原子組合成復(fù)雜的場景。對日后快速建模提供相應(yīng)支持。1.8,資源層——DAO這一組件用于處理存貯系統(tǒng)的數(shù)據(jù)。業(yè)務(wù)組件通過調(diào)用DAO組件實(shí)現(xiàn)對數(shù)據(jù)庫的操作。DAO實(shí)現(xiàn)了用來操作數(shù)據(jù)源的訪問機(jī)制。數(shù)據(jù)源可以時(shí)RDBMS,LDAP,F(xiàn)ile等。依賴于DAO的業(yè)務(wù)組件為其客戶端使用DAO提供更簡單的接口°DAO完全向客戶端隱藏了數(shù)據(jù)源實(shí)現(xiàn)細(xì)節(jié)。由于當(dāng)?shù)蛯訑?shù)據(jù)源實(shí)現(xiàn)變化時(shí),DAO向客戶端提供的接口不會(huì)變化,所有該模式允許DAO調(diào)整到不同的存儲(chǔ)模式,而不會(huì)影響其客戶端或者業(yè)務(wù)組件。重要的是,DAO充當(dāng)組件和數(shù)據(jù)源之間的適配器。使用數(shù)據(jù)訪問服務(wù)層之后,BSS系統(tǒng)實(shí)現(xiàn)了幾個(gè)重要的效果:透明性業(yè)務(wù)對象可以是使用數(shù)據(jù)源,而無須了解該數(shù)據(jù)源實(shí)現(xiàn)的具體細(xì)節(jié)。訪問是透明的,原因是實(shí)現(xiàn)被隱藏在DAO的內(nèi)部。更容易的遷移DAO層使應(yīng)用程序更加容易地遷移到一個(gè)不同的數(shù)據(jù)庫實(shí)現(xiàn)。業(yè)務(wù)對象不了解低層數(shù)據(jù)實(shí)現(xiàn)。因而,該遷移只涉及對DAO層的變化。更進(jìn)一步說,如果使用工廠策略,則有可能為每一個(gè)低層存儲(chǔ)實(shí)現(xiàn)提供一個(gè)具體工廠實(shí)現(xiàn)。在這種情況下,遷移到不同的遷移實(shí)現(xiàn)意味著給應(yīng)用程序提供一個(gè)新的工廠實(shí)現(xiàn)。減少業(yè)務(wù)對象中代碼復(fù)雜度由于DAO管理所有的數(shù)據(jù)訪問復(fù)雜性,它可以簡化業(yè)務(wù)對象和其他使用DAO的客戶端中的代碼。所有與實(shí)現(xiàn)有關(guān)的代碼(比如sql語句)都被包含在DAO中,而不是包含在業(yè)務(wù)對象中。這樣做提高了代碼的可讀性,已經(jīng)代碼生產(chǎn)效率。把所有的數(shù)據(jù)訪問集中到一個(gè)獨(dú)立的層。因?yàn)樗械臄?shù)據(jù)訪問操作現(xiàn)在被委托給口人0,所有單獨(dú)的數(shù)據(jù)訪問層可以被看作把數(shù)據(jù)訪問實(shí)現(xiàn)與應(yīng)用程序中的其他代碼相隔離的。這種集中化使應(yīng)用程序更容易地維護(hù)和管理。這里,我們使用了一個(gè)第三方的LIB HibernateoHibernate相對于EntityBean來說,性能高了不少。還有一點(diǎn)的是,Hibernate將會(huì)是EJB3.0的CMP底層實(shí)現(xiàn)機(jī)制,那意味著Hibernate是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)行業(yè)安全保護(hù)建議
- 2024年社會(huì)健康大班教案
- 財(cái)務(wù)部全年工作概述
- 《肺栓塞診治新進(jìn)展》課件
- 化妝師為客戶化妝設(shè)計(jì)妝容
- 兒童教育行業(yè)教育啟蒙培訓(xùn)心得
- 防務(wù)行業(yè)戰(zhàn)術(shù)訓(xùn)練培訓(xùn)總結(jié)
- 2024年稅務(wù)師題庫及完整答案
- 2024年計(jì)算機(jī)網(wǎng)絡(luò)個(gè)人簡歷
- 2024年甘孜職業(yè)學(xué)院單招職業(yè)技能測試題庫有答案
- 2025年安徽交控集團(tuán)招聘筆試參考題庫含答案解析
- 促進(jìn)臨床合理用藥持續(xù)改進(jìn)措施
- 精神科護(hù)理崗位競聘
- 廣西北海市2023-2024學(xué)年八年級(上)期末數(shù)學(xué)試卷
- 非急救轉(zhuǎn)運(yùn)合同范例
- 車輛使用安全培訓(xùn)
- 肺結(jié)核的護(hù)理個(gè)案
- AutoCAD2024簡明教程資料
- 《中國傳統(tǒng)文化》課件模板(六套)
- 民航客艙服務(wù)管理Ⅱ?qū)W習(xí)通超星期末考試答案章節(jié)答案2024年
- 兒科主任年終總結(jié)
評論
0/150
提交評論