徐樂



摘要:本文探討了當前企業資源開發中遇到的瓶頸,提出了通過服務資源共享平臺提升企業開發能力的必要性,分析了基于企業服務總線的服務資源共享平臺的層次結構,研究了平臺的總體架構、功能結構和關鍵技術。
關鍵詞:企業服務總線;服務資源共享;spring cloud
中圖分類號:TP393.09 文獻標識碼:A 文章編號:1007-9416(2019)03-0064-03
1 概述
隨著信息技術的迅猛發展,針對不同的業務,都會部署一套前端應用和后臺服務,同時不斷提出新的應用需求,這種快速迭代更新要求我們建立短、平、快的開發模式。現有已開發的服務,有很多通過重新組合可構建出新的服務能力,可供新的應用使用,大大縮短了開發周期,避免了服務資源的浪費。同時,采用平臺服務共享的方式,可以從傳統的賣服務器轉化成賣服務,采用服務上云的方式,極大的節省了硬件成本,便于推廣。
2 服務資源共享平臺
服務資源共享平臺是針對企業業務系統管理開發的一個平臺。通過服務資源共享平臺,應用可獲取所需后臺服務、可對服務進行監管保障,管理服務的全生命周期,對服務進行統一配置管理,對相互孤立的數據集合進行整合,提供通用接口,統一管理,并建立合理的更新機制,避免重復錄入,保證數據的一致性、實時性、安全性,用戶可通過配置資源地址,訪問已注冊的業務資源,不再需要重復開發該業務,從而成為能在全局范圍內為眾多應用所共享的數據資源,降低了政府及企事業單位IT管理成本,最重要的是使得他們內部數據得到了整合,可在這些數據基礎上進一步提高各種分析手段,從而對政府部門及企事業決策分析提供數據參考。
2.1 層次結構
服務資源共享平臺對應用運行所需的基礎數據、業務組件和網絡服務等服務資源,進行統一注冊、審核、發布、授權、查詢、認證、使用、更新和下線等全生命周期管理。使應用按照統一的技術標準、統一的安全策略,快速開發、快速部署、快速迭代。保證應用的靈活、健壯、高效、易用、安全,促進應用健康有序發展。服務資源共享平臺作為應用支撐的重要組成部分之一,對各類移動應用建設提供全面支撐。服務資源共享平臺綜合利用EAI應用集成、SOA面向服務、ESB服務總線和Microservices微服務等軟件技術,以適應新技術條件下的分布式、虛擬化、微型化部署,并與網絡接入控制、移動安全接入、授權訪問代理、網絡隔離交換與訪問控制等基礎安全技術聯動,保障應用的接入和運行安全,接受平臺集中管理控制。服務資源共享平臺的層次結構如圖1所示。各類移動應用的服務端,通過應用支撐平臺中的服務資源共享平臺訪問各類網絡服務資源,開展業務應用。并通過平臺安全防護措施保障信息安全,通過集中管控進行集中運行維護和安全管理。
其中:(1)基礎設施層:主要指企業運行環境中的網絡、計算、存儲等基礎設施。(2)服務資源層:企業運行環境的服務資源,建立在基礎設施層之上,包括各類基礎數據、API業務組件和網絡服務。(3)應用支撐層:服務資源共享平臺作為應用支撐系統的重要組成部分,在應用開發服務、應用發布管理、統一認證授權和運行監測評估等子系統的協作下,匯聚各類服務資源支撐上層應用。(4)應用服務層:包括原生APP應用、H5 Web輕應用、混合模式及其他傳統應用服務。(5)安全防護:企業運行環境中的安全防護體系保障應用的安全有序運行。
2.2 總體架構
服務資源共享平臺的總體架構如圖2所示。本平臺基于隔離交換技術,對相互孤立的數據集合進行整合,統一管理,并創建合理的更新機制,避免重復錄入,保證數據的一致性、實時性、安全性,實現系統間的松耦合,實現服務共享,從而成為能在全局范圍內為眾多應用所共享的數據資源,降低了政府及企事業單位IT管理成本,最重要的是使得他們內部數據得到了整合,可在這些數據基礎上進一步提高各種分析手段,從而對政府部門及企事業決策分析提供數據參考[1]。
(1)總線前置部分,由兩個nginx服務器構成,實現負載均衡。(2)消息隊列,用戶作為服務消費者,可以通過發消息來調用服務,這些消息由服務總線轉換后發送給適當的服務實現[2]。在高并發環境下,通過使用消息隊列,我們可以異步處理請求,從而緩解系統的壓力,避免由于來不及同步處理,而導致請求堵塞。本平臺中所有模塊間的通信均采用消息隊列ActiveMQ實現。(3)Mule ESB集群,集群了多臺ESB總線設備,采用諸如keep alive的技術實現熱備功能,有效避免服務器出現意外故障,或者大量應用請求業務資源時,造成響應速度卡頓的情況,從而提高平臺的容錯性和不間斷性,保障系統長期穩定的運行。(4)接口目錄,開放的API目錄,詳細說明應用的信息,如:應用所屬區域,開發人員信息,測試應用還是正式應用。(5)管理服務器,管理員可通過操作平臺,對登錄賬號進行管理,查看ESB總線運行情況,服務調用頻率,服務器內存占用率,運行速度等情況,用戶也通過用戶界面,配置服務信息、平臺信息等。(6)認證、授權,管理平臺可對請求服務資源共享平臺的應用進行認證、授權,通過應用攜帶的令牌等安全策略,確定用戶是否可以訪問對應的資源,若用戶不具有相應區域的訪問權限則組織其訪問資源。(7)日志服務器,對ESB總線服務器的運行狀態進行日志記錄,對應用請求業務資源的情況進行全日制管理,對日志進行詳細分級記錄,從而為分析、改善服務資源共享平臺做鋪墊。(8)數據庫,采用關系型數據庫對接口資源、用戶信息、業務資源信息等進行存儲管理,定時更新維護,當有新用戶注冊本平臺、新業務資源注冊到總線、新的移動警務應用請求業務資源、或者業務資源狀態有更新時,都及時同步到數據庫中,便于集中管理,更新整體總線運行機制,確保應用的準確路由。(9)應用服務器,應用服務器由業務資源提供方提供,并需經過測試才能注冊到總線,通過Restful或者Web service等標準接口統一對外提供資源。由服務資源共享平臺的總線模塊統一對其調度,由服務資源共享平臺的管理模塊統一管理其注冊、審核、發布、授權、查詢、認證、使用、更新和下線等生命周期。
2.3 功能結構
服務資源共享平臺的功能結構如圖3所示。應用客戶端向平臺提出資源請求后,由安全策略引擎模塊驗證其是否符合規范,對其進行認證授權,確認通過后,交給總線基礎引擎,引擎作為總線的開發環境,可將服務的代碼和配置文件打包成開發包,部署到總線基礎引擎里,確定其調度資源的ID,資源地址等基本信息,再由服務轉換模塊,將消息格式、數據格式、接口等轉換成標準格式,由服務路由控制模塊通過其訪問資源的URL地址,將請求路由到指定業務資源,業務資源可以是服務,也可以是數據庫資源,服務統一通過Restful或web service接口調用,數據庫資源則直接調用服務資源共享平臺離線存儲的數據。業務資源服務上線、下線或者狀態更新時,由服務管理器模塊集中管理,對外提供可訪問的業務資源的接口目錄,供客戶端應用查詢調用。
2.4 關鍵技術
(1)微服務框架,綜合采用spring cloud框架,以適應新技術條件下的分布式、虛擬化、微型化部署。(2)服務注冊,采用Eureka,Eureka是Netflix開源的一款提供云端服服務注冊和發現的產品,它提供了完整的Service Registry和Service Discovery實現,以實現云端服務發現和故障轉移等服務治理。也是spring cloud體系中最重要最核心的組件之一。(3)統一配置。在分布式系統中,由于服務數量巨多,為了方便服務配置文件統一管理,實時更新,所以需要Spring Cloud架構中提供的分布式配置中心組件,Spring cloud config。它支持將服務的配置信息放在配置服務的內存中(即本地),也支持放在遠程Git倉庫中。Git的管理界面,就是配置的管理界面。一個應用的不同部署實例可以從Spring Cloud Config的服務端獲取不同的版本配置,從而支持一些特殊的場景。Git可以方便地使用各種第三方工具來對其內容(配置信息)進行管理更新和版本化,同時Git倉庫的Hook功能還可以幫助我們實時地監控配置內容的修改。(4)服務路由。在Spring Cloud微服務系統中,客戶端要調用后端服務,首先經過負載均衡(Zuul、Ngnix),再到達服務網關(Zuul集群),由Zuul網關轉發請求給對應的服務。服務消費者無需關心后臺部署的服務名稱和地址。用戶只知道網關地址,并不知道服務具體的部署地址,所有請求都往Zuul網關走,網關會根據請求中的一些特征,將請求轉發給后端的各個服務。(5)訪問控制。用戶通過應用或服務訪問服務資源共享平臺的后臺服務時,平臺會調用“統一認證接口、統一授權接口、統一鑒權接口”進行訪問控制。認證鑒權基于統一驗證授權機制,實現對服務的用戶、終端、應用、數據等因素實現統一管控。授權訪問是基于安全策略定義,通過接入方式和方法的搭建數據安全接入通道,經過服務解析和服務調用,達到第三方安全接入功能。(6)鏈路監控。服務之間通過網絡進行通信,跟蹤每個請求,可以追溯錯誤日志、了解請求經過了哪些服務(從而了解信息是如何在服務之間流動)、了解請求耗費時間、網絡延遲、業務邏輯耗費時間等指標,及時進行故障診斷,提供完整的服務質量評估報告,以衡量現有的應用系統效率,為優化、升級提供指導,從而能更好地分析系統瓶頸、解決系統問題。(7)斷路保護。在微服務架構中,根據業務來拆分成一個個的服務,服務與服務之間可以相互調用(RPC)。為了保證其高可用,單個服務通常會集群部署。由于網絡原因或者自身的原因,服務并不能保證100%可用,如果單個服務出現問題,調用這個服務就會出現線程阻塞,此時若有大量的請求涌入,Servlet容器的線程資源會被消耗完畢,導致服務癱瘓。服務與服務之間的依賴性,故障會傳播,會對整個微服務系統造成災難性的嚴重后果。為了解決這個問題,本平臺采用斷路器模型Hystrix。
3 結語
服務資源共享平臺對于企業開發、業務資源共享具有重大意義,已投入市場應用,通過將基礎共性服務掛接到平臺后端,已實現部分資源的共享。服務資源共享平臺是互聯網應用快速發展下的必備產物。
參考文獻
[1] 陳清金,陳存香,張巖.Docker技術實現分析[J].信息通信技術,2015(2):37-40.
[2] 王平,龔文濤.基于SOA的高校貧困生認定體系的研究[J].微型電腦應用,2015(10):55-56+59.
Service Resource Sharing Platform Based on Enterprise Service Bus
XU Le
(The First Research Institute of the Ministry of Public Security, Beijing? 100048)
Abstract:This paper discusses the bottlenecks encountered in the current enterprise resource development, puts forward the necessity of improving enterprise development capability through service resource sharing platform, analyses the hierarchical structure of service resource sharing platform based on enterprise service bus, and studies the overall structure, functional structure and key technologies of the platform.
Key words:enterprise service bus; service resource sharing; spring cloud