国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Mule ESB的IOT系統(tǒng)集成平臺

2020-02-02 03:37韓麗霞張占營
電子技術(shù)與軟件工程 2020年16期
關(guān)鍵詞:架構(gòu)服務(wù)器用戶

韓麗霞 張占營

(1.天津市西青區(qū)人民檢察院 天津市 300380 2.天津師范大學(xué)計算機與信息工程學(xué)院 天津市 300387)

從“數(shù)字城市”到“平安城市”再到如今的“智慧城市”,以“綠色、智能、安全”為主題的“智慧城市”建設(shè)正如火如荼地進行,迅速在中國大地遍地開花[1]?!爸腔巯馈迸c智慧城市的建設(shè)可謂相輔相成,通過運用現(xiàn)代高新技術(shù),智慧消防實現(xiàn)了無線報警網(wǎng)絡(luò)服務(wù)。它解決了電信、建筑、供電、交通等公共設(shè)施建設(shè)協(xié)調(diào)發(fā)展的問題,消防指揮中心與用戶單位聯(lián)網(wǎng),改變了過去傳統(tǒng)、落后和被動的報警、接警、處警方式,實現(xiàn)了報警自動化、接警智能化、處警預(yù)案化和管理網(wǎng)絡(luò)化,極大地提高了處警速度,使人民生命、財產(chǎn)的安全以及警員生命的安全得到最大限度的保護。

隨著智慧消防信息化建設(shè)的不斷推進,信息系統(tǒng)規(guī)模在不斷擴大,各系統(tǒng)之間的關(guān)系變得越來越復(fù)雜。消防系統(tǒng)信息化是一個漸進的過程,各個應(yīng)用系統(tǒng)之間互相獨立并且存在較大差異性,所以形成了一個個的“信息孤島”[2]。如何將眾多的“信息孤島”聯(lián)系起來,實現(xiàn)對服務(wù)通信、硬件和數(shù)據(jù)等方面集成管理的系統(tǒng)平臺,是智慧消防系統(tǒng)建設(shè)的重點也是難點。

在復(fù)雜系統(tǒng)建設(shè)的過程中,高性能框架的重要性不斷凸顯。2017年11月份,阿里發(fā)布了dubbo-2.5.7,這是繼2017年9月份以來阿里重新推出dubbo 后的第三代更新版本,dubbo 是一個分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠程服務(wù)調(diào)用方案,以及SOA 服務(wù)治理方案,它是面向服務(wù)的體系架構(gòu)SOA 時代的產(chǎn)物,關(guān)注點主要在于服務(wù)的調(diào)用,流量分發(fā)、流量監(jiān)控和熔斷。在服務(wù)治理的開源框架中,Spring Cloud 框架也相當優(yōu)秀,它誕生于微服務(wù)架構(gòu)時代,關(guān)注微服務(wù)治理的生態(tài),依托Spirng Boot 的優(yōu)勢,為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)的一些工具,包括配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等,考慮到微服務(wù)治理的方方面面。

Mule 是一個以Java 為核心的輕量級的消息框架和整合平臺,技術(shù)上關(guān)注靈活性,高效性以及易開發(fā)性,具有服務(wù)中介、數(shù)據(jù)轉(zhuǎn)換、消息路由、服務(wù)創(chuàng)建和托管的功能。本文以面向服務(wù)的體系架構(gòu)SOA 為理念,基于Mule 提出了一個將硬件、數(shù)據(jù)和服務(wù)統(tǒng)一管理的集成系統(tǒng)平臺,提供可插拔的Web 服務(wù),擴展性強。該平臺框架與dubbo 十分相似,實現(xiàn)了組織內(nèi)部或跨組織邊界的不同系統(tǒng)的連接,解決了數(shù)據(jù)源之間的數(shù)據(jù)和不同應(yīng)用之間的服務(wù)互相交互的問題。本文實現(xiàn)的集成系統(tǒng)平臺不僅是企業(yè)可用于服務(wù)的智能化管理中心,而且是企業(yè)內(nèi)服務(wù)使用者與企業(yè)服務(wù)交互的統(tǒng)一接口,為智慧消防系統(tǒng)集成提出了新的解決辦法。

1 SOA與ESB

1.1 SOA

圖1:SOA 的基本體系結(jié)構(gòu)

圖2:總體業(yè)務(wù)架構(gòu)

面向服務(wù)的體系架構(gòu)(SOA),是在分布式的環(huán)境中,將各種功能都以服務(wù)的形式提供給最終用戶或者其他服務(wù),這些服務(wù)帶有定義明確的可調(diào)用接口,可以以定義好的順序調(diào)用這些服務(wù)來形成業(yè)務(wù)流程。SOA 是一種“抽象的、松散耦合的粒度軟件架構(gòu)”,其核心理念是“重用”和“互操作”,它將資源整合成可操作的、基于標準的服務(wù),使其能被重新組合和應(yīng)用。SOA 的基本體系結(jié)構(gòu)如圖1所示[3]。

1.2 企業(yè)服務(wù)總線ESB

ESB 全稱為Enterprise Service Bus,即企業(yè)服務(wù)總線。它是傳統(tǒng)中間件技術(shù)與XML、Web 服務(wù)等技術(shù)結(jié)合的產(chǎn)物,負責(zé)集成和智能化管理服務(wù)。應(yīng)用程序通過調(diào)用ESB 向外暴露出來的服務(wù)接口獲得數(shù)據(jù),這些接口是標準統(tǒng)一的,然而具體實現(xiàn)則對上層應(yīng)用程序隱藏,ESB 負責(zé)消息傳輸、服務(wù)接入、協(xié)議轉(zhuǎn)換、數(shù)據(jù)格式轉(zhuǎn)換,在ESB 內(nèi)部通過注冊、發(fā)現(xiàn)、調(diào)度服務(wù)實現(xiàn)數(shù)據(jù)集成[4]。ESB提供了網(wǎng)絡(luò)中最基本的連接中樞,是構(gòu)筑企業(yè)神經(jīng)系統(tǒng)的必要元素。ESB 的出現(xiàn)改變了傳統(tǒng)的軟件架構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價的解決方案,同時它還可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運作,實現(xiàn)了不同服務(wù)之間的通信與整合。從功能上看,ESB 提供了事件驅(qū)動和文檔導(dǎo)向的處理模式,以及分布式的運行管理機制,它支持基于內(nèi)容的路由和過濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標準接口。

本文集成系統(tǒng)平臺的實現(xiàn)中,通過Mule ESB 把消防業(yè)務(wù)系統(tǒng)集成起來,通過企業(yè)系統(tǒng)就可以利用Mule ESB 訪問各個子系統(tǒng),解決了傳統(tǒng)被動報警的局限性,極大地提高了處警速度,實現(xiàn)真正的“智慧”消防。

2 關(guān)鍵問題

2.1 快速原型模型

在開發(fā)真實系統(tǒng)之前,構(gòu)造一個原型,在該原型的基礎(chǔ)上,逐漸完成整個系統(tǒng)的開發(fā)工作即快速原型模型,它是增量模型的另一種形式??焖僭湍P偷牡谝徊绞墙ㄔ煲粋€快速原型,實現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,用戶或客戶對原型進行評價,進一步細化待開發(fā)軟件的需求。通過逐步調(diào)整原型使其滿足客戶的要求,開發(fā)人員可以確定客戶的真正需求是什么;第二步則在第一步的基礎(chǔ)上開發(fā)客戶滿意的軟件產(chǎn)品。

2.2 增量模型

增量模型融合了瀑布模型的基本成分(重復(fù)應(yīng)用)和原型實現(xiàn)的迭代特征,該模型采用隨著日程時間的進展而交錯的線性序列,每一個線性序列產(chǎn)生軟件的一個可發(fā)布的“增量”。客戶對每一個增量的使用和評估都作為下一個增量發(fā)布的新特征和功能,這個過程在每一個增量發(fā)布后不斷重復(fù),直到產(chǎn)生了最終的完善產(chǎn)品。增量模型強調(diào)每一個增量均發(fā)布一個可操作的產(chǎn)品。

2.3 可插拔的Web服務(wù)

所謂可插拔,意味著給系統(tǒng)添加新功能的時候(或者將原來功能的實現(xiàn)替換成新的實現(xiàn)而保持接口不變),不改變系統(tǒng)已有功能。這樣的可插拔的功能模塊被稱為插件。插件(plugin)的出現(xiàn)可以很好地支持系統(tǒng)的可擴展性(Extensibility),一個擴展性好的系統(tǒng)意味著很容易替換或者增加某些功能。本文的集成平臺實現(xiàn)可插拔的Web 服務(wù),最大化的降低變化帶來的復(fù)雜性,具有強大的擴展能力,尤其針對像 “智慧消防”這樣的系統(tǒng),系統(tǒng)功能隨著城市發(fā)展在不斷變化,可插拔的Web 服務(wù)打破了傳統(tǒng)的對象復(fù)用技術(shù)、組件復(fù)用技術(shù)的靜態(tài)性,實現(xiàn)動態(tài)地增、刪業(yè)務(wù)功能,為程序維護帶來便利,用戶也具有良好體驗。

3 總體設(shè)計

3.1 架構(gòu)體系

總體架構(gòu)分為三個主要部分:軟件集成中心、數(shù)據(jù)集成中心、硬件集成中心。三個主要部分相輔相成,利用外圍中間件、基礎(chǔ)支持框架、數(shù)據(jù)中心,最終實現(xiàn)系統(tǒng)集成的目的,為智慧城市各子系統(tǒng)建設(shè)提供基礎(chǔ)保障??傮w業(yè)務(wù)架構(gòu)如圖2所示。

3.2 系統(tǒng)原理

整個系統(tǒng)可劃分成數(shù)據(jù)集成中心、軟件集成中心、硬件集成中心、系統(tǒng)集成這幾部分。其中,數(shù)據(jù)集成中心主要負責(zé)數(shù)據(jù)的轉(zhuǎn)換、整合、處理等工作;軟件集成中心負責(zé)ESB 服務(wù)器的監(jiān)視和控制、權(quán)限數(shù)據(jù)的設(shè)置以及應(yīng)用的構(gòu)建和發(fā)布,所有權(quán)限控制和數(shù)據(jù)流轉(zhuǎn)由ESB 服務(wù)器實現(xiàn);硬件集成中心負責(zé)集成物聯(lián)網(wǎng)數(shù)據(jù),數(shù)據(jù)由ESB 應(yīng)用中的服務(wù)流程接入;系統(tǒng)集成由應(yīng)用中的服務(wù)流程完成。系統(tǒng)原理如圖3所示。

3.3 系統(tǒng)結(jié)構(gòu)

圖3:系統(tǒng)原理

圖4:部署圖

圖5:用戶組操作模塊結(jié)構(gòu)

圖6:服務(wù)器管理模塊結(jié)構(gòu)

圖7:構(gòu)建數(shù)據(jù)集成器模塊結(jié)構(gòu)

SIP 系統(tǒng)由以下部分組成:

(1)SIP 服務(wù)器/集群(多臺);

(2)SIP-CONSOLE 服務(wù)器(單一);

(3)數(shù)據(jù)庫(單一);

部署圖如圖4所示。

4 系統(tǒng)功能

該集成系統(tǒng)平臺主要有以下幾個功能:平臺管理、ESB 服務(wù)器管理與監(jiān)控、應(yīng)用管理、服務(wù)管理以及數(shù)據(jù)源管理。

4.1 平臺管理

平臺管理主要實現(xiàn)用戶及用戶組的增、刪、改、查功能。通過接口即用戶或者用戶組管理頁面,將所有參數(shù)、權(quán)限輸入到頁面上,頁面通過控制層,最終與用戶或用戶組業(yè)務(wù)層取得聯(lián)系,從而實現(xiàn)對數(shù)據(jù)庫的操作。以用戶組的操作為例,其模塊結(jié)構(gòu)如圖5所示。

4.2 ESB服務(wù)器管理與監(jiān)控

ESB 服務(wù)器管理包括兩大方面,第一,對服務(wù)器進行增加、展示、移除以及操作,控制某服務(wù)器是否加入集群。通過服務(wù)器管理頁面,用戶只需要對所有功能進行可視化操作,方便快捷,無需了解具體實現(xiàn)步驟,達到了很好地用戶體驗。第二,對服務(wù)器的監(jiān)控功能,該平臺實現(xiàn)了對服務(wù)器統(tǒng)一管理的功能,在服務(wù)器管理頁面上,可以獲得各個服務(wù)器的狀態(tài)信息、圖表項、服務(wù)器所在虛擬機各項狀態(tài)信息以及系統(tǒng)各項狀態(tài)信息。其模塊結(jié)構(gòu)如圖6所示。

4.3 應(yīng)用管理和服務(wù)管理

應(yīng)用管理功能實現(xiàn)了軟件的集成管理,在應(yīng)用包管理界面,實現(xiàn)對應(yīng)用的發(fā)布、卸載、展示等功能。

服務(wù)管理功能通過參數(shù)和腳本、pattern lib 快速構(gòu)建服務(wù),提供服務(wù)報文的快捷轉(zhuǎn)換。還可以在服務(wù)管理頁面中展示接口,并控制該服務(wù)和服務(wù)中接口的啟動和停止。除此之外,還特別設(shè)計了服務(wù)安全管理,即對用戶的權(quán)限進行設(shè)定,當用戶滿足條件時,為用戶生成CA 證書并且下載證書包。

4.4 數(shù)據(jù)源管理

基于Mule 技術(shù),簡化了不同數(shù)據(jù)源之間的數(shù)據(jù)交互。除此之外,該平臺還實現(xiàn)了數(shù)據(jù)抽取與預(yù)處理功能,在數(shù)據(jù)模型管理頁面上,將抽象的數(shù)據(jù)模型展示給用戶,或者進行新增、編輯、刪除、構(gòu)建等操作。在數(shù)據(jù)集成器管理頁面,通過展示數(shù)據(jù)集成器,可以發(fā)現(xiàn)是否存在數(shù)據(jù)轉(zhuǎn)換腳本異常、數(shù)據(jù)來源連接異?;蛘呦到y(tǒng)運行異常等。下面以構(gòu)建數(shù)據(jù)集成器為例,其模塊結(jié)構(gòu)如圖7所示。

5 系統(tǒng)接口

系統(tǒng)接口的實現(xiàn)將使平臺可以達到跨語言,跨硬件,跨網(wǎng)絡(luò)環(huán)境等特性,大大提高系統(tǒng)的可用性和擴展性。

本系統(tǒng)統(tǒng)一采用JSON 作為數(shù)據(jù)傳輸格式。它是一種輕量級的數(shù)據(jù)交換格式。JSON 采用完全獨立于語言的文本格式,但是也使用了類似于C 語言家族的習(xí)慣。這些特性使JSON 成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成(網(wǎng)絡(luò)傳輸速度快)。

本系統(tǒng)使用CXF Webservice 開源框架,發(fā)布RESTful 風(fēng)格的Webservice。REST 指的是一組架構(gòu)約束條件和原則。滿足這些約束條件和原則的應(yīng)用程序或設(shè)計就是 RESTful。Web 應(yīng)用程序最重要的 REST 原則是,客戶端和服務(wù)器之間的交互在請求之間是無狀態(tài)的。從客戶端到服務(wù)器的每個請求都必須包含理解請求所必需的信息。如果服務(wù)器在請求之間的任何時間點重啟,客戶端不會得到通知。此外,無狀態(tài)請求可以由任何可用服務(wù)器回答,這十分適合云計算之類的環(huán)境??蛻舳丝梢跃彺鏀?shù)據(jù)以改進性能。

在服務(wù)器端,應(yīng)用程序狀態(tài)和功能可以分為各種資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應(yīng)用程序?qū)ο?、?shù)據(jù)庫記錄、算法等等。每個資源都使用 URI (Universal Resource Identifier) 得到一個唯一的地址。所有資源都共享統(tǒng)一的接口,以便在客戶端和服務(wù)器之間傳輸狀態(tài)。使用的是標準的 HTTP方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是應(yīng)用程序狀態(tài)的引擎,資源表示通過超鏈接互聯(lián)。

Mule 開發(fā)用的是Anypoint Studio,它是一個功能強大、用戶界面友好的基于Eclipse 的開發(fā)工具。使用統(tǒng)一工具設(shè)計和實施 API,以圖形或 XML 形式構(gòu)建、編輯、記錄和調(diào)試集成,簡化數(shù)據(jù)映射和轉(zhuǎn)換,完全支持從構(gòu)建到部署的整個過程,使用預(yù)構(gòu)建組件快速啟動集成。

groovy 是一種類似java 的語言,也是用eclipse 開發(fā),該平臺利用groovy 編寫,把數(shù)據(jù)轉(zhuǎn)接適配模板化,系統(tǒng)擴展時只需要針對具體數(shù)據(jù)結(jié)構(gòu)創(chuàng)建新的javabean 并編寫新的groovy 文件,即可以擴展新的數(shù)據(jù)源。

下列是系統(tǒng)中用的groovy 模板之一。

import com.sip.transformer.util.BeanConvertor;

import com.sip.transformer.bean.DBParamForInsertion;

import org.mule.module.xml.transformer.XmlToObject;

import com.sip.di.datamodel.DataTable;

def XmlToObject=new XmlToObject();

XmlToObject.addAlias("DataTable",DataTable.class);

XmlToObject.getXStream().omitField(Object.class,"xs:schema")

XmlToObject.getXStream().autodetectAnnotations(true);

return XmlToObject.transformMessage(message,"utf-8");

6 結(jié)束語

在復(fù)雜系統(tǒng)平臺如智能消防系統(tǒng)的設(shè)計過程中,發(fā)布服務(wù)和注冊服務(wù)都是很重要的,通過把服務(wù)注冊到Mule ESB 中,隱藏了底層服務(wù)的實現(xiàn)細節(jié),上層應(yīng)用只需調(diào)用Mule ESB 中暴露的接口就可以了。Mule ESB 負責(zé)協(xié)議轉(zhuǎn)換、數(shù)據(jù)格式轉(zhuǎn)換、服務(wù)路由等一系列繁瑣的事情。

通過使用Mule ESB 實現(xiàn)消防系統(tǒng)的系統(tǒng)集成,采用面向服務(wù)的架構(gòu),將易變的業(yè)務(wù)流程(業(yè)務(wù))與相對穩(wěn)定的業(yè)務(wù)職能(服務(wù))分開,通過服務(wù)將系統(tǒng)與業(yè)務(wù)系統(tǒng)之間進行解耦,同時也實現(xiàn)了業(yè)務(wù)系統(tǒng)之間形成松散結(jié)構(gòu),所以即便是未來消防業(yè)務(wù)的某些方面發(fā)生了變化,該平臺也能夠很好地適應(yīng),達到快速響應(yīng)的目的。

猜你喜歡
架構(gòu)服務(wù)器用戶
基于FPGA的RNN硬件加速架構(gòu)
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
通信控制服務(wù)器(CCS)維護終端的設(shè)計與實現(xiàn)
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
中國服務(wù)器市場份額出爐
關(guān)注用戶
得形忘意的服務(wù)器標準
關(guān)注用戶
計算機網(wǎng)絡(luò)安全服務(wù)器入侵與防御
關(guān)注用戶
任丘市| 抚松县| 常宁市| 洪湖市| 麻城市| 泽普县| 青川县| 龙门县| 和田市| 柘荣县| 封开县| 雅安市| 永登县| 保定市| 宁蒗| 白朗县| 正宁县| 曲阳县| 高邑县| 玉屏| 内江市| 阆中市| 竹溪县| 沛县| 曲沃县| 大洼县| 安西县| 镇雄县| 东山县| 麦盖提县| 柳州市| 广灵县| 渝北区| 辽阳县| 京山县| 福海县| 靖江市| 江山市| 抚松县| 肃宁县| 澄江县|