汪波
無錫農村商業銀行股份有限公司,江蘇 無錫,214000
SOA面向服務體系架構(service-oriented architecture,SOA)是一種服務不同功能單位的構件組合模型,它們通過各類型之間的良好的界面和合同而被連接在一起[1]。基于SOA技術架構的多并發異構業務中臺系統提供了一個通用、可互操作、靈活的工業標準體系結構,其可以在一個軟件基礎上構建一套可重復利用、可循環的業務模式,其包含了各種應用程序的組成部分,并能滿足不斷變化的業務過程需要。在SOA技術結構系統中,針對傳統 MVC模型,業務邏輯層從邏輯上進行業務邏輯、業務服務和業務過程的邏輯設計,以及技術上的規范化。該標準的建立可以減少企業信息系統的投入,使其在體系結構上更加適合于迅速變化的業務過程和業務模式,最大限度地保留原有的信息資產投資方,并降低對硬件資源的依賴性,從而改變整個企業的信息化進程。
SOA技術體系結構采用新的商業模式和管理功能,實現了實時的整合。集中式的數據和應用程序,便于在部署、管理、技術功能等方面進行調整,能夠加快企業的反應能力和穩定性[2]。采用成熟的中間件,可以使一個體系結構去支持多個應用程序,從而減少系統的結構資源成本和人力資源。在與第三方進行系統對接和開發時,API接口通過微服務平臺為用戶提供標準化的服務,使用戶在與第三方進行連接時不再有任何顧慮。此外,SOA技術架構具有縱向擴展、橫向擴展、緩存、負載均衡、高可用性、高安全性、易于管理且用戶體驗良好等優勢。
SOA是一種具有靈活性和強大功能服務層的構件組合模型,其核心優勢在于對公用基礎應用(中間件)和專用應用進行總體規劃,從而達到分層化、模塊化的目的,從而使公共軟件、硬件資源的利用率達到最大化,降低整個體系的合成多樣性,需以服務的模式來規劃其在企業產業管理體系中的功能[4]。基于SOA技術架構的多并發異構業務架構體系在設置之初需要構造一個統一化的企業信息收集平臺,該集成平臺系統會主動查找信息在客戶發出指令后,并將其反饋到用戶的即時決策中。在數據存取層中,還加入了一些輔助工具,通過計算機自動操作來排除不相關的數據,并且快速地進行故障診斷,是許多公司和其他部門常用的一種系統。 基于SOA架構技術的業務流程異構系統的集成平臺模式中包括以下幾個組成部分
中心節點。目前基于SOA的業務流程異構系統已經將BPO-P以中間件形式融入到企業業務中。其中心節點中的BPO-P包括五層中間件BPO-P層,能夠在普通應用服務器上加以應用,為系統和終端用戶之間提供交互;系統管理層:提供用戶所需管理、分配權限、管理資源、控制登錄等服務;輔助組件層:包括輔助BPO-P快速部署及功能組件,分別為web服務封裝、服務訪問代理、服務注冊、業務流程等;集成服務總線:提供web服務運行的環境及性能監控、服務管理、事務處理等系統性功能,可以實現多種第三方服務功能。
子節點。平臺內的子節點能夠根據業務相關需求實現無限擴展,每個平臺節點分別包括了web服務封裝模塊、編排業務流程模塊、服務注冊與發布模塊以及服務訪問代理模塊。
Web服務封裝。SOA架構技術中web服務封裝模塊是一項重點內容,通過現有專門輔助封裝工具幫助企業內部工作者迅速完成封裝工作。
業務流程編排。基于SOA架構技術下對現有web服務進行組合編排能夠形成新的業務流程,當流程變化時可以通過改變編排快速適應現有流程。
并發異構平臺適應服務器部署。BPO-P服務將輸出結果進行編譯、測試、部署等聯系在一起自動執行開源工具,其具有結構清晰、操作便捷、易于集成等優勢,能夠滿足并發異構平臺服務部署需求。
首先要進行業務分割,其是指業務上的拆分,以高內聚、低耦合為業務內容的劃分準則,將比較復雜的業務劃分成不同模塊,將模塊單獨部署并實現接口化,實現業務上的細粒度橫向分割,降低業務復雜度,同時對業務模塊進行分塊規劃與維護,減少系統整體宕機的時間。根據公司不同業務需求和板塊,支持服務化的開源技術框架包括Dubbox、Dubbo以及Spring Cloud等,在業務拆分前需要經過架構、開發、業務以及DBA等多部門共同討論,針對公司業務短期內的發展區劃分業務板塊。在SOA的架構中,各個服務模塊通過控制器(manager)進行統一管理,提高了對服務模塊的可控性。流程服務和管理服務通過WF架構實現工作流的持久化和跟蹤。具體的服務流程如圖1所示。

圖1 SOA 技術架構下業務服務流程
在進行分級體系結構后,通常包括前端接入層、中間應用層、公用服務層和數據存儲層,其中接入層含有CDN、DNS轉發、負載均衡、靜態資源層等[2]。信用負載均衡的系統分層架構圖如圖2所示。
高內聚、低耦合是企業應用系統的主要目的,而業務分解是企業間分離中的一個重要工具。一般而言,按照企業的商業體系特征和相互關系,將其分解為公用的業務系統,并將其作為一個通用的業務應用,且將其作為一個界面。在不同的業務系統中,采用不同的配置方式,使體系的耦合幅度降低,讓體系之間的影響因素減少,以達到整體體系利用率大大提升的目的。由于有了前一層的負載平衡和逆向代理,所以后端的所有應用程序都可以橫向部署,提高整個系統的利用率,提高系統的吞吐能力,且提高其并發能力。在實際應用部署中,大部分都是Java程序,且大部分都是在Tomcat中部署的,以此舉例,在部署應用程序時,需要注意的問題有哪些,或者是推薦JDK和Tomcat的統一。這樣既能更好地管理,又能更好地進行自動化的維護和部署。其中,操作系統優化,安全加固,Tomcat優化。在Tomcat的自動化部署中,我們采取一種基于系統配置和安全強化策略的自動優化方法。另外,系統還提供了一個自動化備份和一個自動的日志記錄,且通過統一的部署腳本來實現。這樣,部署組合中的安裝位置、部署方式等將會保持一致,從而實現了統一的管理、備份和升級。而靜態的動態頁面,這一特性可以提高訪問速度,以滿足不同的訪問流量。
公共服務層分離了一些緩存內容、消息隊列、session、文件圖片、統一調度、定時任務等,作為獨立的服務,提供業務層的緩存、消息隊列、圖片等服務。
高速緩存是指快速有效儲存信息數據。操作系統服務器對一般的信息進行檢查可以利用儲存服務器,能夠提升整個體系的搜索效率。該方法通過對報文隊列的異步調用,實現對報文的短時間儲存,大幅度提升體系的并發率,提升其整個體系的操作效果。數據高速緩存和session存儲都是Redis。數據存儲層將詳細描述 Redis集群的部署結構。主要的中間件是活動MO和RabitMQ,它們都可以提供主-slave或者集群部署。Kafka主要用于建立一個日志分析平臺[3]。至于 ActiveMQ和 RabitMQ,其實差別并不是很大,都是在工廠里運用的,問題不大。在技術方面,最好是運用熟悉的開發和維護,更詳細地說,最好達到最熟悉開發這一標準。
對于文件圖片服務器,且對于企業來說,如果具有高度機密性,并且是可以在企業內部使用的,那么就需要建立一個分布式的文件服務器和圖片服務器,再運用 FastDFS的方法去構造一個分布式的資料服務系統。推薦通過購買云計算的方式去服務受眾人群,以便于維護和管理,同時,由于云計算本身的特點,其能夠加速下載文件和圖片。
公共服務層的體系結構和部署結構普遍都是采取高可用方法,主要是從和、集群兩方面,它們都是分布的。因為所有的商業都在被調用,因此公共服務非常重要,所以確保在實際產品安排中運用高可用地方案,其可在一定范圍中調整程度。分析公司的真實狀態,在安排公共服務的部署時,可以采取主從式和 Cluster的部署。
為滿足實時擴展要求,安置一個腳本在集群中,幫助集群中的服務器范圍能夠快速地擴大。一致性hash方法是分布式擴大方案中經常運用地。
在信息資源庫中,可將其內容分割為關系數據庫和 NoSQL數據庫。從高可用的集群中,包括負載平衡,讀寫分離,分庫分類表等內容[5]。
Redis是 NoSQL數據庫的主流。Redis高頻率運用高可用模式是哨兵模式和群集。其最有用的特色除了上面提到的共享 wession存儲外,就是儲存普遍遇見的資源,推薦在產品環境中進行分組配置,而非關聯信息資料庫。分庫和分區是其除了高可用和監測外還存在的一個大問題,因此,如何迅速地進行大規模的擴充,對于系統的建設也非常重要。
關于 Redis的操作系統,強烈建議在初始規劃中將擴展問題考慮在內,這樣可以避免后期的移植和網絡擴展,其類似于一個關聯的資料庫。Redis的分類和擴展是一個系統架構的關鍵,特別是在業務快速增長的時期, Redis中的緩存數據越來越多,若不好好規劃則會失去主動權,Rodis擁有三種集群方案∶
主從復制∶在主從復制模式下,首先包含了主資料庫(master)和從資料庫(slave)的概述分析。主數據庫是一個活躍的商業應用程序,可以在任何時候進行讀取和寫入,讀取和寫入的數據也會準時排序,將更改的內容同步到從數據庫中。一個主資料庫可以有多個從資料庫,但一個從資料庫只能有一個主資料庫。
崗哨:雷迪斯的運作情況由崗哨進行檢測操作,它的主要功能有:主要監視從資料庫的運作情況;主站發生故障時,會自動轉換成 mastcr;安置不同位置崗哨時,其會相互檢測;且一個redis能夠被所有崗哨檢測。
集群:使用集群,將多種類型的信息數據庫整合分析,且安排啟動各個數據庫的clusterenable組態在一個時間點。在每一組中,至少要有三個主要資料庫才能維持其穩定的運作。
當前 SOA業務流程中的異構系統整合已成為當今的一個研究熱點,利用已有的技術與平臺來構建異構系統,能夠適應企業日益增長的需求,能夠有效地支撐起企業的應用系統整合,以達到協同工作的目的。同時,應用公司也可以根據新的體系結構,對原有的系統進行抽選式替換,建立一個全新的商業模式,并將其引入到不同的軟件供應商中,從而逐步消除不同結構體系中的資源單一存放,讓智能化運用起來更加便利簡易。