企业服务总线需求说明
企業(yè)服務總線需求說明
?
Enterprzise Service Bus
?
1???? ESB的主要作用
ESB主要解決多終端多系統(tǒng)的相互調(diào)用問題,減少系統(tǒng)間的耦合,添加可維護性。
?2???? ESB的核心需求
ESB的核心需求主要包含:服務調(diào)用與數(shù)據(jù)適配、服務管理、服務安全、服務監(jiān)控。
2.1?? 服務調(diào)用與數(shù)據(jù)適配
支持系統(tǒng)間進行相互的服務調(diào)用,系統(tǒng)間數(shù)據(jù)協(xié)議相互獨立,通過數(shù)據(jù)適配可以自己主動實現(xiàn)系統(tǒng)數(shù)據(jù)與ESB數(shù)據(jù)的傳輸轉(zhuǎn)換。
支持單個服務調(diào)用,多個服務調(diào)用(組合服務)。
?
2.2?? 服務管理
服務管理功能主要包含服務的注冊、公布、版本號控制以及服務信息維護功能。
?
2.2.1????? 服務的屬性
業(yè)務系統(tǒng)須要與其他業(yè)務系統(tǒng)之間進行通信,是由ESB平臺提供數(shù)據(jù)接口的服務進行,業(yè)務系統(tǒng)在使用服務前必需先進行注冊,并在服務有效的期間內(nèi)。
?
2.2.2????? 服務的注冊
服務必須先進行注冊,記錄具體的服務描寫敘述信息。
服務由管理員來統(tǒng)一行進管理,服務的功能包含:添加(注冊)、改動(變更)、刪除、查詢。
?
2.2.3????? 服務的公布
服務公布后,才干提供外部訪問。
服務通過改動狀態(tài)來控制是否向外公布,也可以通過時間段來控制服務的有效期(這個主要是針對平臺向第三方公司提供的時效性服務)。
?
2.2.4????? 服務的版本號控制
支撐同一服務多個版本號的控制。
因為業(yè)務系統(tǒng)的開發(fā)進度等其他原因,引起數(shù)據(jù)接口版本號的數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)源不同。服務的版本號由管理員來控制,版本號名稱由管理員填寫。服務版本號的功能包含:添加、改動、刪除、查詢。
?
2.2.5????? 服務規(guī)則緩存
為了提高效率,系統(tǒng)初始化時,從數(shù)據(jù)庫的路由關系表中讀取路由關系,通過定義緩存接口,將其路由關系表信息寫入緩存。
當路由關系表信息發(fā)生變更時,手動發(fā)送路由關系改動通知到改動緩存,又一次讀取服務路由關系表,刷新服務路由緩存。
?
2.2.6????? 服務信息管理
服務信息的增刪改查功能,以及信息的分類管理。
服務信息分類可以是多級分類結(jié)構(gòu)的樹結(jié)構(gòu)
?
2.3?? 協(xié)議轉(zhuǎn)換
不同業(yè)務系統(tǒng)之間的數(shù)據(jù)交換
不同的業(yè)務系統(tǒng)可能會使用不同的協(xié)議傳遞消息,ESB平臺提供不同的接口類型以適應不同的入口協(xié)議或者出口,協(xié)議的轉(zhuǎn)換在ESB平臺的內(nèi)部封裝完畢,不須要在接入系統(tǒng)做相關改動。該平臺支持的協(xié)議包含WEBSERVICE和HTTP等。
?
2.4?? 服務安全
建立良好的安全訪問機制,保證安全性。
以服務數(shù)據(jù)作為基礎,構(gòu)成業(yè)務系統(tǒng)須要的數(shù)據(jù)流轉(zhuǎn)的路由,每一個請求都須要推斷所發(fā)起的請求是否合法,否則應反應相應的代碼說明“不同意該請求”。請求接入時要進行的驗證。
2.4.1????? 驗證流程
訪問授權驗證
對URL參數(shù)_lic值的有效性進行驗證,_lic和_valid通常是服務處理方提供,相當于用戶/password的概念。
參數(shù)簽名驗證
對URL參數(shù)_sign值的有效性進行驗證,用于防止傳輸數(shù)據(jù)過程中被攔截篡改,_sign的生成校驗規(guī)則請看下文。
業(yè)務數(shù)據(jù)驗證
具體業(yè)務級別的驗證,依據(jù)服務路由規(guī)則的配置,讀取服務路由關系驗證。
?
?
?
2.5?? 服務監(jiān)控???
監(jiān)控每一個服務的調(diào)用,寫入監(jiān)控日志,為日后的服務調(diào)用分析、調(diào)優(yōu)提供數(shù)據(jù)支撐。
服務監(jiān)控,記錄每一個服務調(diào)度的過程相關的屬性,以便以后系統(tǒng)的升級改造等提供可靠性的數(shù)據(jù)分析。
?
2.6?? 非功能性需求
2.6.1????? 高性能
支撐高訪問量的服務調(diào)用請求,建立良好的緩存、隊列等機制。
組建一個高性能的數(shù)據(jù)調(diào)度的隊列。定義作業(yè)調(diào)度的隊列(List<WorkItem>),利用新線程進行分配資源,避免堵死。可視化設置隊列的等待的數(shù)量或等待數(shù)量自己主動適應(Auto)。
針對不同服務的業(yè)務要求,設置是否須要開啟緩存,并統(tǒng)一設置緩存的生命周期。依據(jù)服務的調(diào)度的條件,把須要緩存的數(shù)據(jù)記錄到一個緩存組(以Hastable)類型存儲,有利于提高索引的效率。
?
2.6.2????? 擴展性
具有良好的擴展性,為日后的功能控制提供支撐。
?
2.6.3????? 可維護性
提供可視化、靈活的配置管理。
建立ESB控制臺,用來控制整個ESB平臺的功能。
?
3???? 通用功能組件
ESB的為服務的統(tǒng)一接入提供良好的支撐,在ESB上進一步接入封裝很多其他的通用功能組件可以較少各個系統(tǒng)反復功能的開發(fā)。
3.1?? 系統(tǒng)日志
3.1.1????? 業(yè)務日志
支持多系統(tǒng)、多業(yè)務,依據(jù)數(shù)據(jù)量自己主動進行數(shù)據(jù)分表(按月或按日)。
?
3.1.2????? 維護日志
支持多系統(tǒng)、多業(yè)務,依據(jù)數(shù)據(jù)量自己主動進行數(shù)據(jù)分表(按月)。
?
3.1.3????? 錯誤日志
支持多系統(tǒng)錯誤日志記錄,依據(jù)數(shù)據(jù)量自己主動進行數(shù)據(jù)分表(按年)。
?
3.2?? 計劃任務
支持由周期時間或指定時間驅(qū)動的任務調(diào)度,觸發(fā)運行指定的服務。
支持計劃任務的可視化配置管理。
比如:
每月1號調(diào)用報表服務生成月運營報表。
?
3.3?? 事件管理
可以監(jiān)控制定的業(yè)務類型,當發(fā)生業(yè)務時自己主動產(chǎn)生相應的事件,觸發(fā)指定的服務。
支持事件的可視化配置管理。
比如:
當新審核通過一個學生檔案的新增時,自己主動調(diào)用服務,為該學生開通會員賬號。
收集各業(yè)務系統(tǒng)的業(yè)務需求,確定須要制訂的事件,興許再進行事件開發(fā)。事件以組件方面作為功能擴展實現(xiàn),并添加事件觸發(fā)時所產(chǎn)生的過程記錄,方便以后統(tǒng)計管理及問題排查。
轉(zhuǎn)載于:https://www.cnblogs.com/mfrbuaa/p/3866071.html
總結(jié)
以上是生活随笔為你收集整理的企业服务总线需求说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: canvas入门-1三种填充方式、渐变、
- 下一篇: 9.JAVA之GUI编程列出指定目录内容