亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于RESTful的中間件服務(wù)化體系結(jié)構(gòu)及關(guān)鍵技術(shù)研究

        2019-08-05 09:39:38李富合高東林曹寧生
        艦船電子工程 2019年7期
        關(guān)鍵詞:資源用戶設(shè)備

        李富合 高東林 曹寧生

        (中國艦船研究院 北京 100101)

        1 引言

        隨著云計(jì)算、大數(shù)據(jù)、人工智能等基礎(chǔ)共性技術(shù)在船舶平臺(tái)上的逐步應(yīng)用,未來的船舶信息平臺(tái)上將實(shí)現(xiàn)各類設(shè)備的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等資源的統(tǒng)一服務(wù)化管理,硬件設(shè)備資源的服務(wù)化管理為云計(jì)算環(huán)境中軟件的服務(wù)化提供了基礎(chǔ)支撐。目前船舶裝備中的軟件包含三類:基礎(chǔ)軟件、中間件[1]和應(yīng)用軟件?;A(chǔ)軟件包括固件、操作系統(tǒng)以及硬件模塊的驅(qū)動(dòng)程序等,應(yīng)用軟件則囊括了船舶裝備上使用的各種定制軟件,中間件作為基礎(chǔ)軟件和應(yīng)用軟件之間的軟件,屏蔽了各類不同廠家設(shè)備之間的差異,為應(yīng)用軟件提供統(tǒng)一的接口調(diào)用。船舶設(shè)備中間件實(shí)現(xiàn)了包括操控、音視頻、顯示、人機(jī)交互等功能,是船舶裝備軟件的重要組成部分。

        中間件雖然為應(yīng)用軟件提供了統(tǒng)一的接口,但是它們往往獨(dú)立工作于單一物理設(shè)備,容易形成“信息孤島”[2]。此外,中間件傳統(tǒng)的部署模式缺乏靈活性,系統(tǒng)維護(hù)難度大。無法滿足云計(jì)算環(huán)境下船舶信息基礎(chǔ)平臺(tái)對(duì)軟件資源共享、系統(tǒng)動(dòng)態(tài)重構(gòu)的要求。

        本文設(shè)計(jì)一種基于RESTful的中間件服務(wù)化體系架構(gòu),通過提供一套開放的RESTfulAPI來實(shí)現(xiàn)中間件接口服務(wù)化以及中間件部署管理的功能需求。REST(Representational State Transfer)是分布式超媒體系統(tǒng)的架構(gòu)風(fēng)格,它采用面向資源的架構(gòu),將網(wǎng)絡(luò)上所有的事物都抽象為資源,通過統(tǒng)一資源標(biāo)識(shí)符(Universal Resource Identifies,URI)來定位和表示資源并進(jìn)行面向不同資源的操作[3]。資源表述格式的Web服務(wù)(RESTful Web Services)是符合REST架構(gòu)風(fēng)格的一種輕量級(jí)的Web Services。它以更加貼近Web特性的方式實(shí)現(xiàn)Web服務(wù)。它具有很好的松散耦合性、互操作性和可擴(kuò)展性。

        2 總體設(shè)計(jì)

        2.1 系統(tǒng)架構(gòu)設(shè)計(jì)

        船舶裝備中的中間件軟件作為底層軟件,它部署在每一臺(tái)設(shè)備上,中間件軟件與設(shè)備是一一對(duì)應(yīng)的。而應(yīng)用軟件是部署在某一臺(tái)或幾臺(tái)服務(wù)器上,它通過調(diào)用中間件來設(shè)備信息的獲取和設(shè)備管理控制。為了實(shí)現(xiàn)應(yīng)用軟件對(duì)中間件資源的統(tǒng)一調(diào)用和管理,系統(tǒng)提出一種使用Web技術(shù)來為上層應(yīng)用軟件開放提供一系列RESTful中間件接口調(diào)用的服務(wù)化體系架構(gòu)。通過調(diào)用中間件接口服務(wù)層,應(yīng)用層軟件可以實(shí)現(xiàn)分布式調(diào)用不同設(shè)備上的中間件接口,并能夠進(jìn)行對(duì)不同設(shè)備上的中間件資源進(jìn)行統(tǒng)一管理。圖1為系統(tǒng)應(yīng)用場(chǎng)景圖。

        圖1 系統(tǒng)應(yīng)用場(chǎng)景圖

        在實(shí)際的工程應(yīng)用中,云主機(jī)上的中間件分布具有異構(gòu)性、分散性、多樣性等特點(diǎn),不同中間件需要部署到不同的云主機(jī)上。從平臺(tái)的開放性和互操作性角度考慮,本系統(tǒng)采用二層架構(gòu)設(shè)計(jì)。圖2為系統(tǒng)架構(gòu)圖。

        圖2 系統(tǒng)架構(gòu)圖

        與傳統(tǒng)中間件體系結(jié)構(gòu)相比,本系統(tǒng)使用B/S(Browser/Server)系統(tǒng)架構(gòu),突破了單機(jī)限制,滿足了在云環(huán)境下中間件資源的分布式管理,具有部署簡(jiǎn)單、管理方便的特性。系統(tǒng)劃分成服務(wù)器端和客戶端兩部分。客戶端部署在安裝有中間件的設(shè)備中,它通過加載設(shè)備中的中間件來為服務(wù)器端提供中間件接口調(diào)用服務(wù),它接收來自于服務(wù)器端的RESTful接口并返回中間件執(zhí)行結(jié)果。服務(wù)器端接收來自于上層應(yīng)用的RESTful接口,并將接口的執(zhí)行結(jié)果返回給應(yīng)用程序。它提供的RESTful接口實(shí)現(xiàn)了客戶端中間件的部署管理、中間件的池化管理、系統(tǒng)管理以及負(fù)載管理等功能。

        2.2 系統(tǒng)功能設(shè)計(jì)

        2.2.1 客戶端功能設(shè)計(jì)

        客戶端需要部署到運(yùn)行中間件的設(shè)備中,因此客戶端程序基本需要在集群中每一臺(tái)設(shè)備運(yùn)行,為了降低系統(tǒng)客戶端的功能冗余,客戶端僅僅保留中間件接口調(diào)用功能,它接收服務(wù)器端的接口調(diào)用請(qǐng)求,調(diào)用相關(guān)的中間件接口并將中間件執(zhí)行結(jié)果返回給服務(wù)器端。

        2.2.2 客戶端功能設(shè)計(jì)

        服務(wù)器端軟件可以部署在一臺(tái)性能較高的服務(wù)器中,也可以選擇一臺(tái)客戶端設(shè)備同時(shí)作為服務(wù)器。服務(wù)器端統(tǒng)一負(fù)責(zé)各個(gè)客戶端上中間件的部署管理、服務(wù)器端中間件的池化管理、RESTful接口訪問負(fù)載管理以及系統(tǒng)管理等。

        1)中間件部署管理。管理客戶端設(shè)備上的中間件,包括部署中間件、移除中間件、升級(jí)中間件、中間配置參數(shù)管理等功能;

        2)中間件池化管理。對(duì)系統(tǒng)中所有不同類型、不同版本的中間件資源進(jìn)行統(tǒng)一管理控制,包括上傳中間件、下載中間件、更新中間件、中間件版本控制管理、中間件配置管理等功能;

        3)系統(tǒng)管理。對(duì)服務(wù)器端進(jìn)行管理,包括用戶管理、用戶權(quán)限管理、系統(tǒng)配置參數(shù)管理、客戶端管理等功能;

        4)負(fù)載管理。將不同用戶、不用應(yīng)用程序提交的RESTful中間件網(wǎng)絡(luò)接口分發(fā)到不同的設(shè)備節(jié)點(diǎn)。

        3 系統(tǒng)關(guān)鍵技術(shù)和實(shí)現(xiàn)機(jī)制

        3.1 RESTful接口設(shè)計(jì)

        3.1.1 資源定義

        資源分為以下幾類:

        1)物理設(shè)備資源;

        2)中間件資源;

        3)中間件接口資源;

        4)用戶資源。

        3.1.2 網(wǎng)絡(luò)操作定義

        系統(tǒng)RESTful接口分為以下四類[4]:

        1)GET方法。用戶查詢已有的資源;

        2)POST方法。用戶更新已有資源;

        3)PUT方法。用戶創(chuàng)建新的資源;

        4)DELETE方法。用戶刪除已有的資源。

        3.1.3 狀態(tài)碼定義

        應(yīng)用程序調(diào)用中間件網(wǎng)絡(luò)接口時(shí),根據(jù)中間件執(zhí)行結(jié)果向用戶返回的狀態(tài)碼和提示信息,基本返回狀態(tài)碼定義[5]如下(方括號(hào)中是該狀態(tài)碼對(duì)應(yīng)的HTTP請(qǐng)求方式)。

        200OK-[GET]:客戶端成功返回用戶請(qǐng)求的數(shù)據(jù),該操作是冪等的(Idempotent)。

        201CREATED-[POST/PUT]:用戶新建或修改數(shù)據(jù)成功。

        202Accepted-[*]:表示一個(gè)請(qǐng)求已經(jīng)進(jìn)入后臺(tái)排隊(duì)(異步任務(wù))。

        204NOCONTENT-[DELETE]:用戶刪除數(shù)據(jù)成功。

        400INVALIDREQUEST-[POST/PUT]:用戶發(fā)出的請(qǐng)求有錯(cuò)誤,服務(wù)器沒有進(jìn)行新建或修改數(shù)據(jù)的操作,該操作是冪等的。

        401Unauthorized-[*]:表示用戶沒有權(quán)限(令牌、用戶名、密碼錯(cuò)誤)。

        403Forbidden-[*]表示用戶得到授權(quán)(與401錯(cuò)誤相對(duì)),但是訪問是被禁止的。

        404NOTFOUND-[*]:用戶發(fā)出的請(qǐng)求針對(duì)的是不存在的記錄,服務(wù)器沒有進(jìn)行操作,該操作是冪等的。

        500INTERNALSERVERERROR-[*]:服務(wù)器發(fā)生錯(cuò)誤,用戶將無法判斷發(fā)出的請(qǐng)求是否成功。

        3.2 URL路由設(shè)計(jì)

        系統(tǒng)中的資源分布在不同的物理設(shè)備中,為了保證服務(wù)器正確將應(yīng)用程序的RESTful請(qǐng)求準(zhǔn)確、快速地發(fā)送到相應(yīng)的設(shè)備上。需要制定一套路由規(guī)則完成接口的路由,像路由器的路由算法一樣,優(yōu)秀的路由設(shè)計(jì)可以讓URL地址更加簡(jiǎn)潔和優(yōu)雅,并且容易被人理解。

        常用的路由方法有以下幾種:

        1)正則路由;

        2)規(guī)則路由;

        3)靜態(tài)路由(URL映射)。

        靜態(tài)路由直觀明了,但不利于URL地址的重用,容易導(dǎo)致配置文件過大,降低地址匹配效率。正則路由使用正則表達(dá)式來解析URL地址,并將網(wǎng)絡(luò)請(qǐng)求重定向到相應(yīng)的網(wǎng)絡(luò)程序,雖然正則表達(dá)式簡(jiǎn)潔高效,但正則表達(dá)式語法比較復(fù)雜,不易入門學(xué)習(xí)。因此本文使用正則表達(dá)式來支持系統(tǒng)可以對(duì)URL地址進(jìn)行路由操作。

        在每一個(gè)物理節(jié)點(diǎn)中設(shè)計(jì)路由配置文件,配置文件的每一行代表一個(gè)路由規(guī)則,路由規(guī)則定義如下:

        ‘路由規(guī)則’=>[‘模塊名/模塊接口’,[‘method’=> ‘請(qǐng)求類型’],[‘匹配參數(shù)1’=>‘變量規(guī)則1’,‘匹配參數(shù)2 ’=>‘變量規(guī)則2’]……];

        配置文件格式示例如下:

        系統(tǒng)會(huì)按配置文件中路由規(guī)則的順序依次匹配路由規(guī)則,一旦匹配到的話,就會(huì)定位到路由定義中的控制器和操作方法去執(zhí)行中間件接口(可以傳入接口相應(yīng)的參數(shù))。

        3.3 客戶端設(shè)計(jì)

        3.3.1 接口設(shè)計(jì)

        http://serverName:port/devices/devID/midwares/midID/interfaces/interfaceName。這是客戶端提供給用戶的接口格式,參數(shù)說明如下。

        server Name:服務(wù)器端Web域名,也可以是IP地址;

        port:服務(wù)器端端軟件監(jiān)聽端口,默認(rèn)為Apache默認(rèn)監(jiān)聽端口80,可通過修改apache配置文件設(shè)置;

        devices:系統(tǒng)中的物理設(shè)備資源;

        devID:設(shè)備唯一標(biāo)識(shí)。通常由廠商號(hào)+設(shè)備號(hào)+通道號(hào)組成,可以唯一標(biāo)識(shí)一臺(tái)物理設(shè)備,dev-ID與設(shè)備IP地址的對(duì)應(yīng)關(guān)系反映在服務(wù)器端的配置文件中;

        midwares:系統(tǒng)中的中間件資源;

        midID:中間件ID。唯一標(biāo)識(shí)使用的某一個(gè)中間件,中間件ID與中間件名稱的對(duì)應(yīng)關(guān)系反映在服務(wù)器端的配置文件中;

        interfaces:系統(tǒng)中的中間件接口資源;

        interfaceName:中間件接口名稱,參見各個(gè)中間件技術(shù)設(shè)計(jì)文檔。

        3.3.2 接口執(zhí)行流程

        考慮到客戶端需要部署到每一臺(tái)設(shè)備的實(shí)際情況,客戶端設(shè)計(jì)時(shí)采用功能最小化原則。因此用戶調(diào)用客戶端提供的RESTful接口并不是直接將HTTP請(qǐng)求發(fā)送到客戶端,而是發(fā)送到服務(wù)器端,服務(wù)器端先進(jìn)行權(quán)限認(rèn)證,認(rèn)證通過后解析接口的URL,并根據(jù)其中的devID將請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的客戶端,客戶端調(diào)用部署在本地設(shè)備的中間件接口并將程序結(jié)果返回給服務(wù)器,最后服務(wù)器將結(jié)果封裝成統(tǒng)一的JSON數(shù)據(jù)并返回給用戶。

        圖3 客戶端執(zhí)行流程圖

        客戶端的執(zhí)行流程圖如圖3所示。客戶端首先判斷網(wǎng)絡(luò)請(qǐng)求是否合法,由于客戶端不能進(jìn)行權(quán)限驗(yàn)證,因此它通過判斷是否是服務(wù)器端發(fā)起的網(wǎng)絡(luò)接口調(diào)用來實(shí)現(xiàn),即客戶端僅僅接受服務(wù)器端的中間件接口調(diào)用請(qǐng)求,若請(qǐng)求端不是服務(wù)器端,則認(rèn)為是一個(gè)非法的網(wǎng)絡(luò)請(qǐng)求。若請(qǐng)求合法,則解析HTTP請(qǐng)求body中的參數(shù)信息,根據(jù)參數(shù)加載相應(yīng)的中間件并調(diào)用相應(yīng)的中間件接口。中間件接口執(zhí)行完成后客戶端將執(zhí)行結(jié)果返回給服務(wù)器。

        3.4 服務(wù)器端設(shè)計(jì)

        3.4.1 接口設(shè)計(jì)

        服務(wù)器端管理的資源包括中間件資源、用戶資源、中間件資源,三種資源之間是多對(duì)多的關(guān)系,服務(wù)器端使用XML配置文件來描述系統(tǒng)資源之間的關(guān)系。以下是對(duì)三種資源的RESTful接口設(shè)計(jì)。

        1)中間件部署管理

        物理節(jié)點(diǎn)上的中間件管理。包括部署中間件、移除中間件、升級(jí)中間件、中間配置參數(shù)管理等。接口設(shè)計(jì)如下:

        表1 中間件部署管理路由設(shè)計(jì)

        2)中間件池化管理

        中間件池化管理。包括上傳中間件、下載中間件、更新中間件、中間件版本控制管理、中間件配置管理等。接口設(shè)計(jì)如表2。

        表2 中間件池化管理路由設(shè)計(jì)

        表3 系統(tǒng)管理路由設(shè)計(jì)

        3)系統(tǒng)管理

        系統(tǒng)管理。包括用戶管理、用戶權(quán)限管理、系統(tǒng)配置參數(shù)管理、物理節(jié)點(diǎn)配置管理等。接口設(shè)計(jì)如表3。

        3.4.2 API執(zhí)行流程

        圖4為服務(wù)器端執(zhí)行流程。

        圖4 服務(wù)器端API執(zhí)行流程

        1)URL訪問檢測(cè)

        上層應(yīng)用在調(diào)用中間件網(wǎng)絡(luò)接口時(shí),必須提供一種身份認(rèn)證機(jī)制,具體做法是先發(fā)送一個(gè)用戶登錄請(qǐng)求到服務(wù)器端,服務(wù)器端會(huì)產(chǎn)生一對(duì)臨時(shí)密鑰,公鑰存在服務(wù)器,私鑰發(fā)送給應(yīng)用程序,用于用戶權(quán)限驗(yàn)證;只有訪問檢測(cè)通過,中間件接口調(diào)用請(qǐng)求才會(huì)受理。密鑰獲取方法如下:

        返回信息如下:

        所有對(duì)資源訪問的請(qǐng)求,都需要設(shè)置Authorization(授權(quán))請(qǐng)求頭,并加上自己的access_token,會(huì)話結(jié)束后密鑰也隨之失效。

        2)路由檢測(cè)

        將網(wǎng)絡(luò)URL與路由表中的路由進(jìn)行匹配,如果一旦檢測(cè)到匹配的路由,根據(jù)定義的路由地址會(huì)注冊(cè)到相應(yīng)的URL調(diào)度。

        3)分發(fā)請(qǐng)求

        完成了URL檢測(cè)和路由檢測(cè)之后,路由器會(huì)分發(fā)請(qǐng)求到對(duì)應(yīng)的路由地址,這也是應(yīng)用請(qǐng)求的生命周期中最重要的一個(gè)環(huán)節(jié)。

        根據(jù)URL中的DevID參數(shù)將請(qǐng)求直接分發(fā)請(qǐng)求到設(shè)備ID相對(duì)應(yīng)的重定向地址,支持指定重定向代碼,默認(rèn)為301重定向。

        4)響應(yīng)輸出

        將客戶端返回的數(shù)據(jù)輸出到頁面或者應(yīng)用程序。特別的,對(duì)于耗時(shí)較長(zhǎng)的接口調(diào)用,客戶端程序無法實(shí)時(shí)返回接口執(zhí)行結(jié)果,為此系統(tǒng)需要對(duì)此類請(qǐng)求作相應(yīng)的處理,對(duì)應(yīng)狀態(tài)碼設(shè)計(jì)中的202返回值,并返回一個(gè)輪詢IP地址,其他設(shè)備可以調(diào)用這個(gè)輪詢IP查詢提交任務(wù)的執(zhí)行狀態(tài),若任務(wù)執(zhí)行完成,則返回200狀態(tài)碼。

        4 結(jié)語

        本文根據(jù)云計(jì)算環(huán)境下船舶信息基礎(chǔ)平臺(tái)對(duì)中間件所承載的各類資源共享的需求,分析了在云計(jì)算集群中實(shí)現(xiàn)中間件服務(wù)化的可行性,提出了一種基于RESTful技術(shù)的二層中間件服務(wù)化體系架構(gòu),并對(duì)該架構(gòu)中的接口標(biāo)準(zhǔn)和執(zhí)行流程提出設(shè)計(jì)方案,為在船舶信息基礎(chǔ)平臺(tái)中實(shí)現(xiàn)中間件數(shù)據(jù)資源共享、系統(tǒng)動(dòng)態(tài)重組重構(gòu)提供了有效的解決途徑。

        猜你喜歡
        資源用戶設(shè)備
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        基礎(chǔ)教育資源展示
        一樣的資源,不一樣的收獲
        資源回收
        基于MPU6050簡(jiǎn)單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        自拍 另类 综合 欧美小说| 日日麻批免费高清视频| 男女深夜视频网站入口| 上海熟女av黑人在线播放| 国产精品a免费一区久久电影| 精品香蕉久久久午夜福利| 国产一线视频在线观看高清| 黄色潮片三级三级三级免费| 午夜精品久久久久久久99老熟妇| 亚洲啪av永久无码精品放毛片| 吃奶摸下的激烈视频| 在线免费日韩| 99在线国产视频| 亚洲一区二区三区1区2区| 国产精品精品国产色婷婷| 亚洲情综合五月天| 亚洲日韩精品无码专区网站| 狠干狠爱无码区| 最近亚洲精品中文字幕| 毛茸茸的女性外淫小视频| 又硬又粗进去好爽免费| 久久精品人妻无码一区二区三区| 国产精品久久久久久久久KTV| 91超碰在线观看免费| 国产人妖一区二区av| 国产精品国产高清国产专区| 成人av鲁丝片一区二区免费| 国产真人无码作爱视频免费| 国产午夜激无码AV毛片不卡| av网站韩日在线观看免费 | av网站影片在线观看| 亚洲高清一区二区精品| av无码国产在线看免费网站| 亚洲日韩欧美国产另类综合| 亚洲中文字幕乱码免费| 国产av精品久久一区二区| 丰满少妇高潮惨叫久久久| 四虎影库久免费视频| 成人无码区免费AⅤ片WWW| 操老熟妇老女人一区二区| 日本伦理精品一区二区三区|