醫(yī)療保障信息平臺應(yīng)用系統(tǒng)技術(shù)架構(gòu)規(guī)范2020版_第1頁
醫(yī)療保障信息平臺應(yīng)用系統(tǒng)技術(shù)架構(gòu)規(guī)范2020版_第2頁
醫(yī)療保障信息平臺應(yīng)用系統(tǒng)技術(shù)架構(gòu)規(guī)范2020版_第3頁
醫(yī)療保障信息平臺應(yīng)用系統(tǒng)技術(shù)架構(gòu)規(guī)范2020版_第4頁
醫(yī)療保障信息平臺應(yīng)用系統(tǒng)技術(shù)架構(gòu)規(guī)范2020版_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、醫(yī)療保障信息平臺應(yīng)用系統(tǒng)技術(shù)架構(gòu)規(guī)范1 范圍本規(guī)范規(guī)定了醫(yī)療保障信息平臺建設(shè)總體技術(shù)架構(gòu),給出了業(yè)務(wù)子系統(tǒng)應(yīng)用架構(gòu)分層設(shè)計、核心服務(wù)框架和云平臺適配框架設(shè)計說明,提出了框架相關(guān)技術(shù)選型、框架總體應(yīng)用要求,明確了框架版本更新機制等方面內(nèi)容。本規(guī)范適用于醫(yī)療保障信息平臺相關(guān)業(yè)務(wù)應(yīng)用子系統(tǒng)和業(yè)務(wù)中臺的建設(shè)。2 術(shù)語和定義2 .1架構(gòu)architecture有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述,用于指導大型軟件系統(tǒng)各個方面的設(shè)計。2.2醫(yī)療保障應(yīng)用框架HealthcareSecurityApplicationFramework(HSAF)為了實現(xiàn)醫(yī)保信息化統(tǒng)一技術(shù)架構(gòu)標準目標,為業(yè)務(wù)子系統(tǒng)提供技術(shù)架構(gòu)標準

2、所要求的基礎(chǔ)功能軟件產(chǎn)品和服務(wù)。采用分布式云架構(gòu),封裝核心左支推服務(wù)適配接口,用于實現(xiàn)云產(chǎn)品解耦設(shè)計。3 縮略語下列英文縮略語適用于本文件。HSAF醫(yī)療保障應(yīng)用框架(HealthcaxeSecurityApplicationFramework)laaS基礎(chǔ)設(shè)施即服務(wù)(Infrastructure-as-a-Service)PaaS平臺即服務(wù)(Platform-as-a-Service)Web全球廣域網(wǎng)(WorldWideWeb)API應(yīng)用程序編程接II(ApplicationProgranmingInterface)SDK軟件開發(fā)1:具包(SoftwareDevelopmentKit)SQL結(jié)

3、構(gòu)化查詢語言(StructuredQueryLanguage)TCP傳輸控制協(xié)議(TransmissionControlProtocol)HTTP超文本傳輸協(xié)議(HyperTextTransferProtocol)HTTPS超文本傳輸安全協(xié)議(HyperTextTransferProtocolSecure)XML可擴展標記語言(ExtensibleMarkupLanguage)JSONJava腳本對象簡譜(JavaScriptObjectNotation)ORM對象關(guān)系映射(ObjectRelationalMapping)JWTJSONWeb令牌(JSONWebToken)loC控制反轉(zhuǎn)(In

4、versionofControl)DI依賴注入(DependencyInjection)XJ-B01-2019AOP面向切面編程(AspectOrientedProgramming)OLTP聯(lián)機事務(wù)處理過程(On-LineTransactionProcessing)HA高可用(HighAvailable)ECS阿里云服務(wù)器(ElasticComputeService)HSF阿里云淘寶服務(wù)框架(High-speedServiceFramework)EDAS阿里云企業(yè)級分布式應(yīng)用服務(wù)(EnterpriseDistributedApplicationService)DRDS阿里云分布式關(guān)系型數(shù)據(jù)庫服

5、務(wù)(DistributedRelationalDatabaseService)OSS阿里云對象存儲服務(wù)(ObjectStorageService)TSF騰訊微服務(wù)平臺(TencentServiceFreunework)CMQ騰訊云消息隊列(CloudMessageQueue)TDSQL騰訊云分布式數(shù)據(jù)庫服務(wù)(TencentDBforTDSQL)CLS騰訊云的日志服務(wù)(CloudLogService)ELKElacticsearch»Logstash和Kibana簡稱RPC遠程過程調(diào)用(RemoteProcedureCall)4 總體技術(shù)架構(gòu)4.1 總體技術(shù)架構(gòu)總體技術(shù)架構(gòu)參見圖1及圖

6、20系統(tǒng)總體技術(shù)架構(gòu)采用分布式云架構(gòu),在基礎(chǔ)設(shè)施層上,結(jié)合云平臺,提供分布式服務(wù)支撐。通過業(yè)務(wù)中臺構(gòu)建業(yè)務(wù)中心,支持實時交易型應(yīng)用;通過數(shù)T應(yīng)用系統(tǒng)醫(yī)療保障業(yè)務(wù)系統(tǒng)據(jù)中臺實現(xiàn)數(shù)據(jù)匯聚、數(shù)據(jù)治理等,開展大數(shù)據(jù)應(yīng)用。基統(tǒng)一的應(yīng)用分層架構(gòu)建設(shè)經(jīng)辦管理類、公共服務(wù)類、智能監(jiān)管類、宏觀決策類業(yè)務(wù)子系統(tǒng)應(yīng)用。HSAF框架HSAF核心框架PAASHSAF適配框架云支撐服務(wù)分布式云架構(gòu)分布式服務(wù)分布式緩存分布式數(shù)據(jù)訪問分布式日志膘務(wù)非結(jié)構(gòu)化存儲消息隊列云基礎(chǔ)設(shè)施圖1總體技術(shù)架構(gòu)一概念圖國家戶0網(wǎng)信充平8技術(shù)架恂k制控異N3一處建何海F后攔:提值日|5|&1:|lyllftl上下:.;.二"短

7、全過小鼻及需aSeoice閂泥也有Seo-ice分布it臍務(wù)匚業(yè)務(wù)N理£B。?»限訪同三DA。持久化屋ORMappiflg特拒訪問代窿CDAAL節(jié)心檎K(H-UU)(£勺誄列)(*點)RMWfil)(/t任折)(弁久化)(心幡)(帽和哂)叵叵)'(')圖2總體技術(shù)架構(gòu)邏輯圖總體技術(shù)架構(gòu)描述如下:a) 業(yè)務(wù)系統(tǒng):基廣醫(yī)療保障應(yīng)用框架(HealthcareSecurityApplicationFramework,簡稱:HSAF)開發(fā)的支撐醫(yī)療保障業(yè)務(wù)運行的應(yīng)用子系統(tǒng):b) HSAF框架:采用分布式云架構(gòu),封裝核心云支拄服務(wù)適配接口,用于實現(xiàn)云產(chǎn)品解耦設(shè)

8、計,詳見4.3;c)適配層:基于HSAF的適配技術(shù),將應(yīng)用層依賴的分布式技術(shù)與具體廠商的分布式技術(shù)進行適配,實現(xiàn)應(yīng)用層可以適配多家廠商的分布式技術(shù):d)云支掠服務(wù)層:基于云基礎(chǔ)設(shè)施,為應(yīng)用層提供通用的技術(shù)支撐服務(wù),包括分布式服務(wù)、分布式緩存、分布式數(shù)據(jù)訪問、日志服務(wù)、非結(jié)構(gòu)化存儲和消息隊列等;e)云基礎(chǔ)設(shè)施層:采用云架構(gòu),在物理設(shè)備基礎(chǔ)上.實現(xiàn)計算資源、存儲資源、網(wǎng)絡(luò)資源的動態(tài)管理和資源調(diào)配。4. 2架構(gòu)設(shè)計思路為滿足全國醫(yī)療保障信息系統(tǒng)部署模式的可靈活選攔要求,相對傳統(tǒng)系統(tǒng)技術(shù)架構(gòu),醫(yī)療保璋信息平臺在架構(gòu)中增加了“適配層”,將應(yīng)用層依膜的分布式技術(shù)與具體廠商的分布式技術(shù)進行適配,實現(xiàn)應(yīng)用層可

9、以適配多家廠商的分布式技術(shù)。地方可根據(jù)實際情況向各個云資源提供商(包括政務(wù)云和專有云等)租用或申請資源使用,也可自建數(shù)據(jù)中心。云基礎(chǔ)設(shè)施建設(shè)參見圖3。公共照務(wù)區(qū)核心業(yè)務(wù)區(qū)告市兩級部署株式省級集中部署模五公;U晚系蛻的如US阿M?幽甲MA湖的8公共修分子系疣公共事次,煙公共朝區(qū)山窮中自亞劣«T>生產(chǎn)區(qū)交校區(qū)I大數(shù)掇區(qū)iiimv'Es«ne®a?se:魯理子村-KIsnffl核心業(yè)務(wù)區(qū)云)awttUR)mnHHH1為SUE務(wù)中tf»JUftB在出分護序色腳價Ita子同t業(yè)務(wù)彈提.MM1M1改停.浜沖管H7朝管理?礎(chǔ)*RMJ業(yè)券C0B鐵心處第Mi

10、k乃中依堂分M中心JJ壬敷空同步1二二二二二二«WWrtRIfW.安ni次累大skd母于神KQ*蛀分析/(NXUNWX政務(wù)云勺-邛、專有云專有彳-8ra>7as管是彳儆公共啊/*務(wù)中卷W4Xlft«tFWttJiM1業(yè)務(wù)(仙河皿M八/'Ji:中0/,一3-£業(yè)務(wù)”務(wù)axn«,*業(yè)務(wù)(WftKKS&公募很黑S?K圖3云基礎(chǔ)設(shè)施建設(shè)在總體技術(shù)架構(gòu)設(shè)計和代碼開發(fā)時,應(yīng)遵循一個重要原則:框架需滿足技術(shù)擴展性的要求,當前框架能適配至少三種云平臺分布式技術(shù),新的分布式技術(shù)的加入可以通過框架的擴展實現(xiàn)。4.3應(yīng)用技術(shù)分層架構(gòu)為了保證業(yè)務(wù)子系統(tǒng)應(yīng)用

11、具有良好的橫向擴展能力,以應(yīng)對未來業(yè)務(wù)的快速發(fā)展,整個應(yīng)用架構(gòu)采用分布式云架構(gòu)設(shè)計,業(yè)務(wù)能力通過微服務(wù)框架基于高內(nèi)聚低耦合的思路實現(xiàn)。所有服務(wù)均為無狀態(tài)服務(wù),實現(xiàn)在線應(yīng)用的擴縮容能力。應(yīng)用分層架構(gòu)參見圖4o心據(jù)訪i5后FK量ff口本地胭務(wù)Sen>ee業(yè)旁處aESnil訪問居DAON3gM持久帙我據(jù)訪問代理8DAAL分布式步馬W居聯(lián)里務(wù)Sendee圖4應(yīng)用技術(shù)分層架構(gòu)業(yè)務(wù)應(yīng)用子系統(tǒng)分為客戶端和服務(wù)器端兩大部分:a)客戶端:前端展現(xiàn)層;b)服務(wù)器端: 控制層:一一業(yè)務(wù)邏輯層: 數(shù)據(jù)訪問層; 分布式數(shù)據(jù)庫層。業(yè)務(wù)應(yīng)用子系統(tǒng)需嚴格按照該分層架構(gòu)和調(diào)用層次進行應(yīng)用程序開發(fā)和服務(wù)調(diào)用。4.4HSAF

12、框架4.4.1 概述HSAF框架設(shè)計采用1+N模式,即1套核心框架,多套云支撐服務(wù)技術(shù)平臺適配。HSAF框架中包含控制層、業(yè)務(wù)層和持久化層接H抽象,定義了分布式服務(wù)框架、分布式緩存、分布式消息隊列、非結(jié)構(gòu)化存儲、日志服務(wù)等分布式中間件服務(wù)的接I?;?.2架構(gòu)設(shè)計思路,HSAF框架分為兩部分:a) HSAF核心框架,提供業(yè)務(wù)子系統(tǒng)運行相關(guān)的基礎(chǔ)框架和服務(wù)支撐;b) HSAF適配框架,提供對不同云支撐服務(wù)技術(shù)平分的適配和可移植支摔。HSAF框架總體結(jié)構(gòu)參見圖5o定時任務(wù)核心框架圖5HSAF框架結(jié)構(gòu)c) 4.2HSAF核心框架HSAF核心框架,統(tǒng)一封裝了Spring框架相關(guān)組件、ORM持久化框架、

13、數(shù)據(jù)庫連接池組件、會話上下文、異常統(tǒng)一攔截器、操作日志攔截器、權(quán)限認證攔截器、安全過濾攔截器等開發(fā)基礎(chǔ)服務(wù),能使業(yè)務(wù)系統(tǒng)開發(fā)人員盡可能只關(guān)注業(yè)務(wù)邏軾,而無需過多關(guān)注技術(shù)細節(jié)。它主要提供了以下功能和服務(wù):a)統(tǒng)一認證服務(wù)(詳見6.1):XJ-B01-2019b)單點登錄服務(wù)(詳見6.2);c)全局ID序列服務(wù)(詳見6.3):d)事務(wù)管理(詳見6.4):e)異常管理(詳見6.5);f)定時任務(wù)(詳見6.6);g)持久化服務(wù)(詳見6.7):h)數(shù)據(jù)庫連接池服務(wù)(詳見6.8):i)報表服務(wù)(詳見6.9)。4. 4.3HSAF適配框架5. 4.3.1適配抽象層適配抽象層是時適配層中的分布式服務(wù)的具體技術(shù)

14、實現(xiàn)進行抽象,提供了分布式緩存、遠程服務(wù)調(diào)用、非結(jié)構(gòu)化存儲、消息隊列等PaaS層服務(wù)的抽象接【I。在代碼中,應(yīng)基干抽象接口層進行開發(fā),而不能直接使用具體的擴展派生類,否則代碼將綁定某種具體技術(shù)方案。適配抽象層設(shè)H詳見7.1o6. 4.3.2適配實現(xiàn)層適配實現(xiàn)層基適配抽象層,擴展了分布式服務(wù)的具體技術(shù)實現(xiàn)。醫(yī)療保障信息平臺適配的技術(shù)實現(xiàn),已預(yù)設(shè)提供以下三套方案:阿里云專有云產(chǎn)品(詳見7.2)、騰訊云專有云產(chǎn)品(詳見7.3)、開源產(chǎn)品中的一種選型(詳見7.4)。各地醫(yī)保系統(tǒng)做技術(shù)合規(guī)選型時,如采用HSAF框架預(yù)設(shè)適配實現(xiàn)技術(shù)之外的技術(shù),應(yīng)做相應(yīng)適配、開發(fā)工作。7. 5遠程服務(wù)調(diào)用遠程服務(wù)調(diào)用是分布

15、式服務(wù)框架的基礎(chǔ)和核心功能。目前主流的分布式服務(wù)框架使用兩種遠程服務(wù)調(diào)用協(xié)議:a) RPC協(xié)議,以Dubbo、Thrift、gRPC、rpcx、Motan為代表的框架使用的協(xié)議:b) HTTP協(xié)議,以SpringCloud為代表的框架使用的協(xié)議。兩種協(xié)議在不同的分層上提供服務(wù),RPC協(xié)議是在Service層提供服務(wù),HTTP協(xié)議是在Controller層提供服務(wù)。為了兼容兩種不同的服務(wù)提供方式,實現(xiàn)一套業(yè)務(wù)代碼適配不同的分布式服務(wù)框架所使用的遠程服務(wù)調(diào)用協(xié)議,如圖6所示,架構(gòu)要求如下:a)對于RPC協(xié)議,通過提供不同的服務(wù)注冊發(fā)現(xiàn)配置文件來實現(xiàn)協(xié)議的切換:b)時于HTTP協(xié)議,Service服

16、務(wù)需要額外包裝一層Controller層來實現(xiàn)服務(wù)的協(xié)議轉(zhuǎn)換。HSAF適配層設(shè)計一套核心業(yè)務(wù)代萬4多套侵人適配5應(yīng)用技術(shù)分層架構(gòu)5.1 客戶端5.1.1 概述客戶端包含PC端、移動端、大屏幕端等類型。客戶端與服務(wù)器端之間的通訊協(xié)議為HTTP協(xié)議,交互的數(shù)據(jù)格式為JSON格式。5.1.2 前端展現(xiàn)層前端展現(xiàn)層泛指一切在客戶端直接與用戶交互的客戶界面(UI),本層是MVC架構(gòu)中的視圖層(V)。各類型客戶端使用各自的組件作為前端展現(xiàn)層的UI實現(xiàn)方式。前端展現(xiàn)層將用戶對UI的操作轉(zhuǎn)化成基于HTTP協(xié)議的JSON格式的字符串去訪問服務(wù)器,并將服務(wù)器返回的數(shù)據(jù)通過各自的組件展現(xiàn)給用戶。服務(wù)器端能響應(yīng)符介H

17、TTP/JSON的業(yè)務(wù)請求,客戶端應(yīng)發(fā)出符合業(yè)務(wù)要求的HTTP/JSON請求,由服務(wù)器端處理和響應(yīng)。HSAF框架在瀏覽器上的前端展現(xiàn)層實現(xiàn)是參考實現(xiàn)。HSAF框架提供了基于PC端的前端展現(xiàn)層實現(xiàn),其他類型客戶端部分需要開發(fā)商自行實現(xiàn)。5.2 服務(wù)器端5.2.1 概述服務(wù)器端包含控制層、業(yè)務(wù)處理邏輯層、數(shù)據(jù)訪問層和分布式數(shù)據(jù)庫層四部分。5.2.2 控制層控制層包含過濾器攔截器層、控制器層(Controller)兩部分。過波器攔截器層主要處理全局性問題,一切訪問都會經(jīng)過過濾器攔截器層處理,不會繞過過濾器攔截器直接訪問控制層。本層次提供的能力包括:XJ-B01-2019a)分布式會話管理:用戶會話信

18、息統(tǒng)一寫入分布式緩存中;b)裝我上下文信息;c)記錄操作口志;d)安全管理:通過一個過濾器徒攔截進入的請求,并將這些請求轉(zhuǎn)給認證和訪問決策管理器處理,從而增強安全性??刂破鲗迂撠熣埱蟮娜芷谔幚恚邮找环职l(fā)一調(diào)用業(yè)務(wù)視圖展現(xiàn)的全過程。HSAF的核心控制框架是困繞前端控制器(DispatcherServlet)展開的,前端控制器負費將請求派發(fā)到特定的控制器。當控制器類接收到一個請求時,它會在自己內(nèi)部尋找一個合適的處理方法來處理請求??刂破髟谶x擇好適合處理請求的方法時,傳入收到的請求(根據(jù)方法參數(shù)類型,可能以不同的類型傳入),并且調(diào)用該方法中的邏輯來進行處理。方法邏輯會調(diào)用業(yè)務(wù)邏輯。業(yè)務(wù)邏

19、輯運行完畢之后,會委派給一個視圖,由該視圖來處理方法的返回值。返回的視圖名稱會返回給前端控制器,它會根據(jù)一個視圖解析器將視圖名稱解析為一個具體的視圖實現(xiàn).5. 2.3業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層包含Service、BO兩個子層次。在View、ControllerService、B0這三個層次之間通過DTO進行業(yè)務(wù)對象的傳遞,在B0與DA0之間通過DO進行數(shù)據(jù)對象的傳遞。Service是服務(wù)的發(fā)布層,提供府外服務(wù)的接口,并調(diào)用B0完成接II任務(wù)。B0層實現(xiàn)具體的業(yè)務(wù)邏輯。DAO層書寫數(shù)據(jù)庫訪問邏輯,調(diào)用持久化層實現(xiàn)數(shù)據(jù)庫的訪問工作。8. 2.4數(shù)據(jù)訪問層數(shù)據(jù)訪問層分為持久化層和數(shù)據(jù)訪問代理層兩部分。持久

20、化層實現(xiàn)0/RMapping的工作并調(diào)用分布式數(shù)據(jù)庫。數(shù)據(jù)訪問代理層統(tǒng)一接收數(shù)據(jù)訪問層的請求并對請求進行解析、優(yōu)化、路由、分發(fā)給分布式數(shù)據(jù)庫,提供對分庫分表、讀寫分離的透明支持,并且提供對跨庫信息進行合并等操作,將數(shù)據(jù)庫結(jié)果返回給數(shù)據(jù)訪問層。9. 2.5分布式數(shù)據(jù)庫層分布式數(shù)據(jù)庫層通過分布式數(shù)據(jù)訪問代理服務(wù),訪問分布式關(guān)系型數(shù)據(jù)庫,能使多個關(guān)系型數(shù)據(jù)庫工作如在同一個關(guān)系型數(shù)據(jù)庫一樣。10. 3框架層次調(diào)用11. 3.1對象模型定義分層中涉及的對象模型定義如下:a)DT0(DataTransferObject):數(shù)據(jù)傳輸對象,Service或Manager向外傳輸?shù)膶ο螅篵)BO(Busines

21、sObject):業(yè)務(wù)對象,由Service層輸出的封裝業(yè)務(wù)邏輯的對象:c)DO(DataObject):數(shù)據(jù)時象,此對象與數(shù)據(jù)庫表結(jié)構(gòu)一一對應(yīng),可擴展虛擬字段(如一些查詢條件、計算字段、匯總信息等),通過DAO層向上傳輸數(shù)據(jù)源對象。5.3.2調(diào)用順序框架層次調(diào)用參見圖1,框架層次調(diào)用順序如下:a)客戶端瀏覽器發(fā)起HTTP/JSON請求;b)服務(wù)器端過濾器過漁請求,做安全、編碼、session管理等處理,攔截器攔截請求做記錄口忐、訪問統(tǒng)計等操作,并裝我上下文信息:c)控制器接收前端傳過來的DTO對象,并調(diào)用本地服務(wù)或者遠程服務(wù);d) Service分為接II與實現(xiàn)兩部分。Service服務(wù)接I

22、1接受控制層的遠程或本地調(diào)用,接收DTO對象,調(diào)用本地B0中的業(yè)務(wù)邏輯,并將B0返回的業(yè)務(wù)結(jié)果(DTO對象)返回給控制層(遠程或本地客戶端):e) B0分為接口與實現(xiàn)兩部分。B0服務(wù)接II接受Service的本地調(diào)用,接收DTO對象,實現(xiàn)業(yè)務(wù)邏輯,使用DO對象調(diào)用DAO來訪問數(shù)據(jù)庫,將DAO返回DO對象轉(zhuǎn)換為DTO對象,返回給Service:f) DAO層接受B0層的調(diào)用,接收DO對象,實現(xiàn)具體的SQL邏輯,訪問數(shù)據(jù)庫,并將返回的數(shù)據(jù)模型返回給B0:g)數(shù)據(jù)訪問層實現(xiàn)數(shù)據(jù)持久化工作,將數(shù)據(jù)庫的庫表結(jié)構(gòu)與java灼象做映射:h)數(shù)據(jù)訪問代理層接受持久化層的數(shù)據(jù)訪問,對數(shù)據(jù)訪問進行數(shù)據(jù)操作的解析和

23、執(zhí)行,包括會話管理、分庫分表策略、語義解析、請求路由、數(shù)據(jù)合并、切換控制等,數(shù)據(jù)訪問代理層將數(shù)據(jù)操作處理后分派到具體的分布式數(shù)據(jù)庫:i)分布式數(shù)據(jù)庫層接受數(shù)據(jù)訪問代理層的訪問,進行數(shù)據(jù)庫處理,將數(shù)據(jù)返回給數(shù)據(jù)訪問代理層。5 .3.3調(diào)用要求各層次的調(diào)用順序及對象模型的傳輸,應(yīng)遵循5.3.2所述。對象模型傳輸示意參見圖7。圖7對象模型傳輸示意圖6 核心框架設(shè)計6.1 統(tǒng)一認證服務(wù)6.1.1 概述用戶認證指驗證某個用戶是否為系統(tǒng)中的合法主體,即判斷用戶能否訪問該系統(tǒng)。用戶認證一般要求用戶提供用戶名和密碼。系統(tǒng)通過校驗用戶名和密科來完成認證過程。6.1.2 認證技術(shù)HSAF框架中采用OAuth2.0

24、標準、JWT(JSONWebToken)進行登錄認證,使用SpringSecurity框架完成相關(guān)的認證和授權(quán)驗證。 OAuthOAuth是一種開放的協(xié)議,為桌面、內(nèi)成Web應(yīng)用提供了一種簡單的、標準的方式去訪問需要用戶授權(quán)的API服務(wù)。XJ-B01-20190Auth2.0具有以下特點:a)簡單:不管是OAuth服務(wù)提供者還是應(yīng)用開發(fā)者,都很容易理解與使用:b)安全:沒有涉及到用戶密鑰等信息,更安全更靈活:c)開放:任何服務(wù)提供商都可以實現(xiàn)OAuth,任何軟件開發(fā)商都可以使用OAuthoOAuth2.0定義了四種授權(quán)方式:a) 授權(quán)碼模式(AuthorizationCode):

25、b)簡化模式(Implicit):c)密碼模式(Password):d)客戶端模式(ClientCredentials)©OAuth2.0定義了以下幾種角色:b) ResourceOwner:資源擁仃者;c) ResourceServer:資源服務(wù)器:d) Client:第三方應(yīng)用客戶端;e) AuthorizationServer:授權(quán)服務(wù)器。 JWTJWT是一個開放標準(RFC7519),它定義了一種緊湊且獨立的方式,用于在各方之間作為JSOX對象安全地傳輸信息。此信息可以通過數(shù)字簽名進行驗證和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公

26、鑰/私鑰對進行簽名。6.1.2. 3SpringSecuritySpringSecurity是一個能夠為基J,Spring的企業(yè)應(yīng)用系統(tǒng),提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應(yīng)用上下文中配置的Bean,充分利用了SpringIoC,DI和AOP功能,為應(yīng)用系統(tǒng)提供聲明式的安全訪問控制功能,減少了為企業(yè)系統(tǒng)安全控制編寫大量重復(fù)代碼的工作。6.1.3認證服務(wù) 認證服務(wù)場景認證服務(wù)提供以下三種場景的認證能力:a)內(nèi)部統(tǒng)一門戶認證;b)客戶端應(yīng)用認證:c)開放授權(quán)認證。6.1.3. 2內(nèi)部統(tǒng)一門戶認證內(nèi)部統(tǒng)一門戶子系統(tǒng)為醫(yī)保局業(yè)務(wù)經(jīng)辦工作人員提供統(tǒng)一

27、登錄入11,認證服務(wù)能提供統(tǒng)一的身份認證能力和單點登錄服務(wù)(詳見6.2)。6.1.3. 3客戶端應(yīng)用認證公共服務(wù)子系統(tǒng)涉及移動APP、網(wǎng)廳、短信、微信/小程序、自助終端等客戶端,認證服務(wù)提供客戶端統(tǒng)一身份認證能力。如圖8所示,認證服務(wù)提供的客戶端統(tǒng)一身份認證流程如下:a)用戶登錄客戶端;b)客戶端向認證眼務(wù)請求認證;c)認證服務(wù)使用密碼模式進行認證;)zdefghi)客戶端向用戶展示結(jié)果。AP闌髡認證服務(wù)認證通過,生成JWT格式的access-token,返回給客戶端;客戶端存儲川T,返回登錄成功;用戶在客戶端進行后續(xù)操作;客戶端攜帶JWT向API服務(wù)請求API接口;API服務(wù)驗證JWT的有效

28、性,驗證通過則執(zhí)行后續(xù)邏輯,返回結(jié)果:圖8客戶端應(yīng)用認證流程開放授權(quán)認證基于OAuth標準,認證服務(wù)能提供開放開發(fā)授權(quán)認證的能力。如圖9所示,開放授權(quán)認證流程如下:a)用戶(ResourceOwner角色)向第三方系統(tǒng)發(fā)起請求;b)第三方系統(tǒng)(Client角色)向用戶返回用戶授權(quán)認證操作:c)用戶輸入平臺認證信息,向認證服務(wù)(AuthorizationServer角色)請求授權(quán)認證;d)認證服務(wù)認證通過,生成code,并跳轉(zhuǎn)到授權(quán)確認頁面;e)用戶同意授權(quán):f)認證服務(wù)生成code并跳轉(zhuǎn)到重定向頁面:g)第三方系統(tǒng)使用code請求認證服務(wù)的token接口;h)認證服務(wù)生成JWT格

29、式的access_token并返回;i)第三方系統(tǒng)本地存儲access_token;j)第三方系統(tǒng)后續(xù)使用access_token向開放資源服務(wù)(ResourceServer角色)請求開放資源,并經(jīng)過處理后展現(xiàn)給用戶。醫(yī)療保0信息平臺夫第三方系續(xù)認證觸務(wù)開放費等服務(wù)2簿人平臺認證信息,請求授權(quán)認證0411111111111112.1:仇證通過01ft111EI3同意授權(quán)0A111一I11111開廣3.1:311111tfiicodeOJ11111,3.2:虢轉(zhuǎn)到玉定向地卬L0T-13.2.1:使用codei8求toke除口04集成JWT格式的accesstokenf)1111

30、111111<3.2.2:-igHaccessjoken存健access_tokenO3.2.3:使用auLe”_tok,nil|求LK9X0111111111111113.2.5展現(xiàn)站果0U1<3.2.4:g-1-1行后竣邏幄0J一_/*三方圖9開放授權(quán)認證場景6.2單點登錄服務(wù)6.2.1實現(xiàn)方式單點登錄(SingleSignOn)服務(wù)是指在多個相互信任的應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)的服務(wù)。系統(tǒng)采用Session共享方案來實現(xiàn)單點登錄。共享Session可謂是實現(xiàn)單點登錄最立接、最簡單的方式。將用戶認證信息保存于Session中,即以Sessio

31、n內(nèi)存儲的值為用戶憑證,這在單個站點內(nèi)使用是很正常也很容易實現(xiàn)的,而在用戶驗證、用戶信息管理與業(yè)務(wù)應(yīng)用分離的場景下即會遇到單點登錄的問題,在應(yīng)用體系筒單,子系統(tǒng)很少的情況下,可以考慮采用Session共享的方法來處理這個問題。Session服務(wù)用于存儲與用戶相關(guān)的數(shù)據(jù),默認由Web容器進行管理。單機情況下,所有用戶的Session數(shù)據(jù)由一臺服務(wù)器持有,不存在Session數(shù)據(jù)不一致的情況,但在分布式情況下,用戶的前后兩次請求可能會轉(zhuǎn)發(fā)到不同的后端服務(wù)器上,如果不進行Session共享會出現(xiàn)Session數(shù)據(jù)不一致的情況。因此打造一個高可用的分布式系統(tǒng),應(yīng)將Session管理從容器中獨立:出來成

32、為統(tǒng)一的脫離容器的Session存儲機制。ESAF框架的Session管理通過基于Redis服務(wù)器的方案來實現(xiàn)Session的共享存儲。6.2.2單點登錄流程如圖10所示,單點登錄流程如下:a)接收用戶認證信息;b)將用戶認證信息提交認證中心進行認證;c)認證成功生成有效憑證并通過用戶中心獲取對應(yīng)用戶詳細信息:d)將用戶信息寫入Session對象,保存至Session共享服務(wù)中;e)通過Session共享服務(wù)獲取認證服務(wù)共享的Session信息,完成單點登錄:f)通過用戶過濾器獲取當前登錄用戶,并將用戶信息及所屬機構(gòu)信息寫入線程對象HsafContextHolder中。1首次丑錄()必露配置為

33、相同域名圖10單點登錄流程6.2.3應(yīng)用要求為保證醫(yī)療保障信息平臺各個業(yè)務(wù)子系統(tǒng)Web應(yīng)用的Session共享,避免出現(xiàn)因跨域?qū)е碌腟ession不能共享問gg,各業(yè)務(wù)子系統(tǒng)Web應(yīng)用應(yīng)配置相同的域名。Session共享服務(wù)應(yīng)使用獨立的緩存服務(wù)器進行存儲,與業(yè)務(wù)使用的緩存服務(wù)器完全分離,互不影響。6.3全局ID序列服務(wù)全局唯一序列號生成是在設(shè)計一個分布式系統(tǒng)時常常會遇見的需求。在分布式系統(tǒng)架構(gòu)XJ-B01-2019下,尤其是數(shù)據(jù)庫使用分庫分表的時候,數(shù)據(jù)庫自增主鍵已無法保證全局唯一。HSAF框架提供了統(tǒng)一的組件,實現(xiàn)全局ID序列生成服務(wù),可被直接調(diào)用生成全局序列IDo6.4事務(wù)管理6.4.1實

34、現(xiàn)方式HSAF框架使用了Spring框架的事務(wù)管理機制。Spring支持編程式事務(wù)管理和聲明式事務(wù)管理兩種方式。聲明式事務(wù)管理是非代碼侵入式的開發(fā)方式,這是Spring所倡導的開發(fā)方式。聲明式事務(wù)管理也有兩種常用的方式,一種是基于tx和A0P命名空間的XML配置文件,另一種就是基JTransactional注解。6.4.2應(yīng)用要求為了方便系統(tǒng)氾活地進行事務(wù)隔離等級、事務(wù)傳播行為、事務(wù)超時、事務(wù)回滾規(guī)則等參數(shù)的控制,應(yīng)使用基于XML配置文件的聲明式事務(wù)管理方式,不應(yīng)使用基于Transactional注解的方式。另外,根據(jù)分層設(shè)計,Service是服務(wù)的發(fā)布層,B0層是具體的業(yè)務(wù)邏輯實現(xiàn)層,Ser

35、vice層提供對外服務(wù)的接I1,并調(diào)用B0層完成接II任務(wù)。架構(gòu)要求事務(wù)只能聲明在B0層。6.5異常管理6.5.1異常類設(shè)計HSAF框架統(tǒng)一異常處理,實現(xiàn)對控制層、業(yè)務(wù)處理層及數(shù)據(jù)訪問層的異常捕獲和異常信息封裝。業(yè)務(wù)開發(fā)人員只需要在各個層次中,拋出對應(yīng)的業(yè)務(wù)異常和數(shù)據(jù)訪問異常,框架會進行統(tǒng)一攔截,不需要開發(fā)人員手動進行異常處理,可減少代碼量,提高開發(fā)效率,同時也實現(xiàn)了整個系統(tǒng)的異常統(tǒng)一處理和管理。異常類設(shè)計如圖11所示。框架所有的異常均繼承自*cn.hsa.hsaf.framework,exception.AppException'這個基類,每個業(yè)務(wù)j系統(tǒng)(或者業(yè)務(wù)中臺)定義自己的異常

36、類(統(tǒng)一繼承自Busine=Excepticn1系統(tǒng)運行過程中,在控制層(Controller),業(yè)務(wù)服務(wù)層(Service).業(yè)務(wù)邏輯層出0)、數(shù)據(jù)訪問層(DAO)如果發(fā)生業(yè)務(wù)異常(BusinessException)、數(shù)據(jù)訪問異常(DataAccessException)或擰其它運行時異常,SpringMVC調(diào)用框架提供的HSAFExceptionHand1er對異常信息進行統(tǒng)一攔假處理,記錄異??谥?,并將異常信息經(jīng)業(yè)務(wù)封裝后返回UI層進行提示。圖11異常類設(shè)計6.5.2異常錯誤碼框架采用前后端分離技術(shù),前端通過HTTP請求后臺服務(wù),數(shù)據(jù)統(tǒng)一使用JSO格式,服務(wù)端響應(yīng)數(shù)據(jù)使ffl統(tǒng)一的規(guī)范

37、格式和狀態(tài)碼:示例:H"type:success,"code":0,"message":”這里顯示錯誤簡短信息”,"data":)如圖12所示,為了方便問題的定位排查,以及服務(wù)質(zhì)量的統(tǒng)計分析,在HSAF框架的異?;愔卸x卒片誤碼code屬性,應(yīng)用代碼拋出異常時,需要定義該屬性。publicclassAppExceptionextendsRuntimeExceptionprivatestaticfinallongserialVtrstonUlD=-7611643172712984323L;異稹巖誤碼,詳見開發(fā)指南中的錯誤科定

38、義intcode;publicAppExcepti(xi(finalintcode)sup«r();this.code=ccxle;)publicAppExcepticxi(finalintcode,finalStringmessage)super(message);this.code=code;圖12錯誤碼定義業(yè)務(wù)異常錯誤碼采用六位字符串,格式為“兩位系統(tǒng)編號+兩位模塊編號+兩位異常編號”,具體的異常錯誤碼見表lo表1錯誤碼使用范圍說明錯誤碼使用范圍說明0系統(tǒng)級成功-1系統(tǒng)級未知異常-2系統(tǒng)級請求參數(shù)異常-3系統(tǒng)級服務(wù)端請求超時-4系統(tǒng)級權(quán)限校驗異常-5系統(tǒng)級無效的請求地址-6系統(tǒng)

39、級觸發(fā)限流lOxxxx框架級llxxxx內(nèi)部統(tǒng)一門戶12xxxx基礎(chǔ)信息管理13xxxx醫(yī)保業(yè)務(wù)基礎(chǔ)14xxxx支付方式管理15xxxx醫(yī)療服務(wù)價格管理16xxxx信用評價管理17xxxx跨省異地就醫(yī)18xxxx藥品和醫(yī)用耗材招采19xxxx公共服務(wù)20xxxx基金運行及審計監(jiān)管21xxxx醫(yī)療保障智能監(jiān)管22xxxx運行監(jiān)測23xxxx宏觀決策大數(shù)據(jù)應(yīng)用24xxxx內(nèi)部控制25xxxx業(yè)務(wù)中臺6. 5.3不可捕獲異常的處理HSAFExceptionHandler可以攔截處理所有應(yīng)用層抽出的AppException異常的子類,但是系統(tǒng)運行過程中,還有一些“特殊”的異常是無法捕獲的,原因是:a)

40、AppException異?;愂抢^承自RuntimeException,而java的異常根類為Throwable»Throwable的兩個子類Error和Exception,Exception的兩個子類CheckedException和RuntimeException:因此能被捕獲的實際上只是RuntimeException相關(guān)的異常(當然這能夠處理大部分的異常情況),對j'Error以及CheckedException無法捕獲:b)正常的代碼中一般使用try.catch(AppExceptionex)。來捕獲異常,執(zhí)行過程中可能因為線程中斷或阻塞了,導致catch塊中的代

41、碼并沒有正常的執(zhí)行到。為了統(tǒng)一對不可捕獲異常的處理,HSAF框架統(tǒng)一封裝實現(xiàn)了Thread.UncaughtExceptionHandler接1I,該接II聲明了某個線程執(zhí)行過程中,對未捕獲的異常處理,如圖13所示。publicclassHsafUncaughtExceptionHandlerImplementirbread.Un<aughtExceptlonHandlerOverridpublicvoiduncdughtExcption(Thr"Throwbl.)打Ep出現(xiàn)異常的線舁和7常名行Systui.outprintin("捕技到異希:線程名t.getM

42、71;me()十異常名(c-*);/TODO記錄異常日志異一找的信息e.print5tdckTra<e();/T000.加樂并笈甯正需尊曾持得地理,可以在M處社正處理方法)圖13未捕獲的異常處理如圖14所示,應(yīng)用請求的入口一般是Controller,因此HSAF框架通過A0P切面的方式在請求的入口方法處設(shè)置當前線程的UncaughtExceptionHandler.以處理當前線程中無法正常捕獲的各種異常。packagecn.hsa.hsafcore.fraitework.webexception;importorg.aspectj.lang.JoinPoint;iiaportorg.sp

43、rinRfraBeiMork.beans.factory.annotation.Autowired;a9ClassName:HsafUncaughtExceptionHandlerAspect* Description:不下植工導布的妹一處理,在controller人口代嗎處;梟加aop注入* author:siniu“9date:2019年8月12日* <aop:aspectj-autpgroxyproxy-target-classswtruewx/aop:aspectj-auitpprqxy><1-不可瘠決異常的統(tǒng)一攔截處理-><beanid-whsafUnc

44、aughtExceptionHandlerA$pectHclasscn.hsa.hsaf.core.fraoework.web.exception.HsafUnceughtExceptionHandlerAspect"/><«op;.c.onfjg><aop:dspectref=Mh$afUncaughtExceptionHan<ilerAspe<t-><!-切而為Controller下ff)所有為法-><aop:pointcutid=*per+ormancewexpression=t,excution(*cn.h

45、sa.hsaf.controller.)"/><aop:beforemethod="doBefore"pointcut-ref=,prformance,"/><t/.dOP:d$pect></aop.:,cpnfi<>B/publicclassHsafUncaughtLxceptionHandlerAspectAutowiredprivateHsafUncaughtExceptionHandlerhsafUncaughtLxceptionHundler;publicvoiddoBefore(JoinPoin

46、tjp)Thread.setDefaultUncaughtxceptionHaodter(hiafUnc4iughtExceptionHand1er);)圖14AOP切面設(shè)置當前線程的UncaughtExceptionHandIer6.5.4應(yīng)用要求國家或地方在開展醫(yī)療保障信息平臺建設(shè)時,異常派生類應(yīng)繼承框架統(tǒng)一的異常類結(jié)構(gòu)設(shè)計(如圖11所示)。代碼開發(fā)中,除非有明確約定,否則而捕獲的異常直接拋到匕一層,由HSAF框架在控制層進行統(tǒng)一攔截。6.6定時任務(wù)HSAF框架基于XXL-JOB擴展定時任務(wù)組件,提供分布式定時任務(wù)支持。XXL-JOB是一個輕量級分布式任務(wù)調(diào)度平臺,其核心設(shè)計目標是開發(fā)迅速

47、、學習簡單、輕量級、易擴展?,F(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,接入場景如電商業(yè)務(wù),020業(yè)務(wù)和大數(shù)據(jù)作業(yè)等,易上手,開箱即用。其設(shè)計思想為將調(diào)度行為抽象形成“調(diào)度中心”公共平臺,而平臺自身并不承擔業(yè)務(wù)邏輯,“調(diào)度中心”負責發(fā)起調(diào)度請求。將任務(wù)抽象成分散的JobHandler,交由“執(zhí)行器”統(tǒng)一管理,“執(zhí)行器”負貨接收調(diào)度請求并執(zhí)行對應(yīng)的JobHandler中業(yè)務(wù)邏輯。因此“調(diào)度”和“任務(wù)”兩部分可以相互解耦,提高系統(tǒng)整體稔定性和擴展性。1.7 持久化服務(wù)HSAF框架使用了MyBatis提供持久化服務(wù)。MyBatis是支持定制化SQL、存儲過程以及高級映射的優(yōu)秀的持久層框架。MyBatis

48、避免了幾乎所有的JDBC代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集。MyBatis可以對配置和原生Map使用簡單的XML或注解,將接II和Java的P0J0s(PlainOldJavaObjects,普通的Java對象)映射成數(shù)據(jù)庫中的記錄。1.8 數(shù)據(jù)庫連接池服務(wù)數(shù)據(jù)庫連接是一種關(guān)鍵的、有限的、昂貴的資源,對數(shù)據(jù)庫連接的管理能顯著影響到整個應(yīng)用系統(tǒng)的伸縮性和健壯性,影響到應(yīng)用系統(tǒng)的性能指標。為了減少數(shù)據(jù)庫連接頻繁創(chuàng)建、釋放所產(chǎn)生的開銷,應(yīng)用系統(tǒng)開發(fā)中應(yīng)采用數(shù)據(jù)庫連接池技術(shù)。數(shù)據(jù)庫連接池負貢分配、管理和耗放數(shù)據(jù)庫連接,它允許應(yīng)用系統(tǒng)重復(fù)使用一個現(xiàn)有的數(shù)據(jù)庫連接,而不是再重新建立一個:釋放空閑時間超過最大

49、空閑時間的數(shù)據(jù)庫連接來避免因為沒有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏。這項技術(shù)能明顯星高對數(shù)據(jù)庫操作的性能。數(shù)據(jù)庫連接池的基本思想就是為數(shù)據(jù)庫連接建立一個“池”o預(yù)先在池中放入一定數(shù)量:的連接,當需要建立數(shù)據(jù)庫連接時,只需從“池”中取出一個,使用完畢之后再放回去??赏ㄟ^設(shè)定連接池最大連接數(shù)來防止系統(tǒng)過多地與數(shù)據(jù)庫連接。6 .9報表服務(wù)報表就是用表格、圖表等形式來動態(tài)顯示數(shù)據(jù),可以用公式表示為:“報表:多樣的格式+動態(tài)的數(shù)據(jù)”。報表可以幫助使用者訪問、格式化數(shù)據(jù),并把數(shù)據(jù)信息以可靠和安全的方式呈現(xiàn)給使用者。報表是管理的基本措施和途徑,處應(yīng)用系統(tǒng)的基本業(yè)務(wù)要求,也是實施BI戰(zhàn)略的基礎(chǔ)??蚣苤刑峁?/p>

50、了統(tǒng)一的報表服務(wù),主要功能是提供報表資源的管理,用戶身份與權(quán)限管理,數(shù)字簽章、服務(wù)轉(zhuǎn)發(fā)及報表展現(xiàn)。報表服務(wù)管理的報表資源主要包含數(shù)據(jù)源、報表模板、報表輸出結(jié)果等。報表服務(wù)是獨立運行的單獨服務(wù),可進行分布式部署,模板的存儲采用分布式對象存儲(OSS),全網(wǎng)任意節(jié)點均可訪問。報表服務(wù)對外采用脆B和RESTful方式進行服務(wù),WEB用于管理人員對報表進行資源及權(quán)限配置,RESTful用于業(yè)務(wù)系統(tǒng)而接報表服務(wù)。報表服務(wù)支持多種數(shù)據(jù)導出格式,如PDF、Excel、圖片等進行存儲,亦可通過RESTful方式調(diào)用報表將結(jié)果頁面,其嵌入到業(yè)務(wù)系統(tǒng)中。報表服務(wù)還提供了嚴謹?shù)姆?wù)轉(zhuǎn)發(fā)設(shè)置,能為每一張報表進行報表工

51、具配置,當業(yè)務(wù)系統(tǒng)發(fā)起服務(wù)請求時,報表服務(wù)會根據(jù)配置進行轉(zhuǎn)發(fā),未配置的請求將會被作為非法請求丟棄并記錄監(jiān)控日志。報表工具具有獨立模板設(shè)計器,可視化地開發(fā)報表更方便、快捷,它具有如下特點:a)提供拖拽式、所見即所得的報表編輯器:b)提供多樣的向?qū)砗喕瘡?fù)雜的報表設(shè)計任務(wù):c)提供多樣化的排版和格式化工具;d)報表可轉(zhuǎn)換為PDF、HTML、EXCEL等格式:e)支持數(shù)據(jù)源調(diào)試;f)支持無限次數(shù)的撤消和重做:s)內(nèi)置超過20種的圖表支持;h)集成超過15種語言:i)提供報表模板與報表庫樣式管理;j)提供源文件的備份;k)提供文檔結(jié)構(gòu)瀏覽器。7 適配框架設(shè)計7.1 適配抽象層設(shè)計7.1.1 分布式服務(wù)

52、框架分布式服務(wù)框架是分布式系統(tǒng)架構(gòu)的基礎(chǔ)。分布式服務(wù)關(guān)鍵不僅僅是分布式服務(wù)本身,而是一套治理框架,這種框架使得分布式服務(wù)可以獨立的部署、運行、升級,還能實現(xiàn)分布式服務(wù)之間在結(jié)構(gòu)上的“松耦合”,而在功能上表現(xiàn)為一個統(tǒng)一的整體,體現(xiàn)為統(tǒng)一風格的界面,統(tǒng)一的權(quán)限管理,統(tǒng)一的安全策略,統(tǒng)一的上線過程,統(tǒng)一的日志和審計方法,統(tǒng)一的調(diào)度方式,統(tǒng)一的訪問入口等等。分布式服務(wù)框架具備如下能力:a)RPC遠程過程調(diào)用:b)服務(wù)注冊與發(fā)現(xiàn);c)服務(wù)治理:d)負載均衡:e)消息總線,輕量級的MQ或HTTP;f)鞋路跟蹤;g)配置中心。HSAF采用配置文件的方法來切換不同的分布式服務(wù)框架。7.1.2 分布式緩存緩存的

53、主要作用是降低應(yīng)用和數(shù)據(jù)庫的負我,提高系統(tǒng)性能、客戶端訪問速度。在架構(gòu)和業(yè)務(wù)設(shè)計上,可以考慮將訪問量較大、不經(jīng)常修改的,比如字典表和系統(tǒng)參數(shù),或?qū)?shù)據(jù)庫性能影響較大的杳詢的結(jié)果進行緩存,提高系統(tǒng)整體性能。HSAF框架使用了SpringCache框架作為緩存層的抽象框架。SpringCache不是一個具體的緩存實現(xiàn)方.案,而是一個對緩存使用的抽象。HSAF框架提供了基于Redis的接I1實現(xiàn),能夠兼容不同云平臺基于Redis或提供類Redis接口服務(wù)的緩存方案。分布式緩存服務(wù)抽象類接口如圖15所示,定義cn.hsa.hsaf.core,cache.HsafCacheManager緩存統(tǒng)一管理器。

54、圖15分布式緩存服務(wù)抽象類接口7.1.3 分布式消息隊列分布式消息隊列,是分布式系統(tǒng)中重要、常用的中間件,它使用事件驅(qū)動架構(gòu),通過在低耦合的模塊之間傳輸事件消息,以保持模塊的松散耦介,并借助事件消息的通信完成模塊間合作。HSAF引入并使用消息隊列組件作為分布式服務(wù)架構(gòu)下各個應(yīng)用之間消息通訊的中間件。分布式消息隊列服務(wù)抽象類接I如圖16所示,類設(shè)計:a) 定義cn.hsa.hsaf.core.mq.MQBusinessHandler消息監(jiān)聽業(yè)務(wù)處理接II類;b) 定義cn.hsa.hsaf.core.mq.MQProducer消息隊列生產(chǎn)者接II類:c) 定義cn.hsa.hsaf.core.m

55、q.MQConsumer消息隊列消費者接II類:d) 定義cn.hsa.hsaf.core.mq.MQMessage消息實體類。n-SerializablegMQNessagege<ld()String、w<ld($tring)void、getTimottamplllongbiXTimMtamp(long)void»getToplcOStringebietTopic(Stnng)voidgetHeadersOMap<String.Object>-$e<HeddefS(Map<S(rlr>g,Object>)void4'getCo

56、ntent!)Te%secComent(T)voidiMQConsuner-start!)voidshutdownf)voWsubscnbe<String.MOButinetsHandlerlvoidunsubscro«Stfing|voidMQBusinessKandler-doBusiness(MQMessaQe<?>>booleanMQProducerttartOvoidshutdown()void-tend(MQM(Htagt<?>>boolean圖16分布式消息隊列服務(wù)抽象類接口7.1.4 分布式數(shù)據(jù)庫服務(wù)在數(shù)據(jù)量逐漸增大的情況口傳統(tǒng)數(shù)據(jù)庫存在著先天性的弊端,分布式數(shù)據(jù)訪問代埋服XJ-B01-2019務(wù)主要能使得傳統(tǒng)數(shù)據(jù)庫易于擴展,可切分,提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論