999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Seneca微服務的過程監測系統①

2017-07-19 12:27:20呂海東葛日波朱志剛
計算機系統應用 2017年7期
關鍵詞:服務系統

呂海東, 葛日波, 朱志剛

(大連理工大學 城市學院, 大連 116600)

基于Seneca微服務的過程監測系統①

呂海東, 葛日波, 朱志剛

(大連理工大學 城市學院, 大連 116600)

針對傳統監測監控與數據管理應用系統架構復雜, 前后端開發技術不一致, 通訊協議不統一, 難以實現高并發請求的問題, 在高性能服務器平臺Node.js下, 使用全新的微服務架構和Seneca框架技術與監測監控技術相結合,使用統一的Node.js編程模式, 標準化的REST API通訊協議, 實現了低成本、高性能、易維護和安全性的監測與數據管理的企業級應用.

微服務; API網關; 工業過程監控系統; Node.js; Seneca框架

當前在開發具有監測監控和數據管理相結合的軟硬件應用系統時, 通常都在數據采集層和數據管理層采用不同的技術和編程語言. 在數據采集端一般使用專門的工業控制計算機, 使用C語言甚至是匯編語言完成對現場傳感器數據的采集, 而在上位機服務器端普遍使用基于JavaEE的軟件架構技術, 如使用Hibernate,Spring和Spring MVC等, 這就導致前端和后端開發技術不一致, 需要熟悉不同技術的開發人員, 導致項目投資大, 編程難度大, 開發周期長, 項目難以維護等諸多缺陷.

如果數據采集前端和數據管理后端采用相同的軟件開發技術和編程語言, 將極大的簡化此類軟件系統的開發, 減低不同軟件技術協作的復雜性. 基于JavaScript編程語言的Node.js平臺出現, 使該需求的實現成為可能.

為實現能進行超大量并發請求處理的應用開發,克服傳統服務器平臺的難以支持超大并發連接的實時應用, 以全新模式工作的服務器平臺技術Node.js[1]得以快速發展. Node.js的單線程、非阻塞、異步響應處理、事件驅動的特性, Node.js同時支持在微型設備和大型服務器上運行, 微型設備如樹莓派, Arduino, Intel Galileo Gen, Intel Edison Arduino, BeagleBone Black等,使得其成為當今開發面向工業過程監控、物聯網、移動應用和企業級應用的首選.

另一方面軟件開發最新的架構技術-微服務[2](Micro services), 由于其能使各類系統應用的開發得以全面的簡化, 加快其應用的部署和維護, 克服了傳統單一結構模式的軟件系統的固有的缺陷, 成為當前軟件開發的最流行技術之一.

微服務是互聯網云計算時代傳統軟件系統從單一整體架構向分布式微組件結構轉變的必然選擇. 通過將傳統軟件系統的功能拆分為可獨立開發和部署的微服務, 提高了軟件應用系統的可靠性、可維護性和可伸縮性, 能適應當前以移動客戶端為主要訪問模式的超大量并發請求處理, 并實現快速響應, 以滿足移動客戶的對系統性能的極高需求.

基于Node.js的微服務的發展更是以驚人的速度在進行, 眾多基于Node.js的微服務框架紛紛出現, 其中佼佼者Seneca[3]以其簡單的REST API[4]實現模式, 由于其同時支持HTTP和TCP通訊協議等諸多優點開始得到了認可和應用.

本文結合過程監控和微服務技術, 利用Node.js服務器平臺, Seneca微服務架構, 完美實現了一個超低成本、高性能的全新模式的監測監控與業務管理全集成的企業級管理系統, 并在某大型分布式CNG加氣站管理系統中應用, 從氣罐、加油機監控, 加氣數據傳輸, 加氣卡結算, 采購, 銷售和庫存管理等實現全程信息化處理.

1 系統總體架構設計

整個系統采用分布式架構, 包括中央服務器、監控下位機、管理PC客戶端、移動客戶端, 實現從監控、數據傳輸、業務管理的全覆蓋, 其系統總體架構參見圖1所示.

系統建設初期采用本地的服務器, 未來可升級為云主機. 服務器采用Ubuntu Server15.04[5]操作系統, 安裝Node.js的最新版V5.1, 數據的存儲采用MariaDB10[5],微服務實現使用Seneca.

儲氣罐和管道的監控使用西門子PLC S3-700, 通過樹莓派2B+[6]讀取PLC的監測數據[7], 定時調用服務器端的微服務API傳輸到中央服務器數據庫中. 樹莓派運行Linux操作系統Debian, 同樣安裝Node.js, 由于上位服務器和監測下位機相同的開發和運行環境, 簡化系統的開發成本, 加快開發進度.

圖1 系統總體架構圖

2 系統微服務設計與實現

系統采用基于Node.js的微服務框架Seneca實現所業務所需的微服務. Seneca的如下優點極大簡化了微服務的開發的部署.

(1) 支持多種通訊模式, 包括REST API, TCP, 消息隊列, 發布/訂閱模式等.

(2) 數據的傳輸全部采用JSON格式, 減少了網絡傳輸數據量, 節省了網絡帶寬.

(3) 微服務采用模式匹配加響應工作, 簡化了微服務的查找和調用, 克服了傳統的微服務的復雜的注冊和服務機制, 極大簡化了微服務的部署.

整個系統無論是數據采集客戶端還是數據管理服務器端, 都采用Seneca框架將各種功能發布為基于REST API的微服務, 通過這些API采集端和服務器端都可以進行雙向的數據通訊, 并使用標準的JSON數據格式進行數據的傳輸, 極大簡化了系統的開發難度.

為簡化系統的投資, 本系統沒有采用昂貴的工業控制PC機作為下位監測端, 而是使用廉價的用于物聯網系統的樹莓派卡片式計算機, 在其內置的Linux平臺支持下, 安裝了Node.js和Seneca框架, 使用專門用于Node.js平臺的連接各種傳感器的數據采集框架Johnny-Five. 通過Johnny-Five內置的各種數據采集模塊, 將采集的數據轉換為JSON格式, 使用Seneca的微服務發布為REST API, 任何終端包括服務器管理層, 手機或平板, 甚至其他軟件系統都可以通過標準的REST API接口讀取監測的數據, 或發送執行動作的指令給連接的各種執行器, 如閥門, 步進電機等. 數據采集和控制端系統的微服務結構參見圖2所示.

圖2 下位機采集端微服務結構

服務器處理端同樣基于Node.js平臺, 與數據庫的連接服務采用了支持ORM功能的Sails.js框架, 該框架實現了MVC模式, 極大簡化了數據庫編程. 微服務框架Seneca調用Sail.js框架, 對外發布為支持REST API的微服務, 可供各種客戶端訪問, 如Web, 手機, 其他物聯網設備等, 服務端的微服務設計架構參見圖3所示.

圖3 服務器端微服務架構設計

每個微服務通過Seneca的role屬性實現服務的分類, 屬性cmd則定義服務的名稱. 當微服務的客戶通過seneca實例傳入指定的模式信息后, Seneca根據模式匹配定位到指定的微服務, 執行回調函數, 通過msg取得傳入的數據參數, 使用respond對象返回微服務操作結果.

Seneca微服務可以通過多種方式調用. 在Node.js進程內部以及不同Node進程之間, 都可以通過Seneca的客戶端實現.

使用Seneca的client對象的方法act對指定的微服務進行調用, 并且調用時依舊使用Node.js的異步非阻塞模式, 得以實現超大量客戶并發請求的快速處理.

Seneca的微服務默認提供標準的RESTful API模式調用, 可以通過HTTP或HTTPS對微服務進行請求.

如果分布式系統都采用Node.js進行開發, 則直接使用Seneca的client對象對微服務進行請求調用, 而采用其他技術時, 可以使用HTTP REST API進行請求, 如移動客戶端的Android和iOS手機. 無論哪種請求方式微服務的返回結果都是JSON[8]數據對象, 方便客戶端進行數據的解析和處理.

系統中功能都采用微服務實現, 核心微服務包括氣罐監測數據、加氣機數據監測、會員管理、加氣卡管理、CNG采購管理、 CNG庫存管理等.

系統中Web客戶端使用jQuery通過REST API HTTP請求微服務完成對客戶的管理業務.

由于定義的微服務較多, 系統采用Node.js的模塊機制將每個微服務定義在單獨的JavaScript文件內, 再使用Node.js和Seneca的模塊載入機制實現微服務的部署, 其示意加載和啟動實現代碼如下:

3 微服務API Gateway[9]設計與實現

在基于微服務架構的企業級應用開發中, 為提高系統的安全性、可維護性和可伸縮性, 基本上都采用微服務API網關來接收客戶的請求, 將微服務與外部客戶端進行隔離, 避免客戶端與微服務進行直接的相互通訊, 保護微服務避免受到各種攻擊. 另外當微服務發生改變時, 只修改API Gateway, 不需要客戶端進行任何修改. 所有客戶端都與API網關進行通訊, 由網關實現動態均衡負載, 再定位到系統中指定的微服務.

本系統采用Senaca和Express[10]整合, 實現微服務API網關的Web接口, 以便微服務調用能通過企業內部的防火墻, 提供微服務調用的對外端口. API網關封裝所有的微服務調用, 如數據采集、加油卡, 業務處理等,并將多個微服務的響應結果進行整合以單一結果發送回客戶端.

為演示一個微服務網關API的實現過程, 下面以加氣站客戶管理業務微服務API網關的實現加以說明, 該API網關將代理實際微服務, 供外部客戶端訪問, 并可以進行安全性驗證.

首先使用Node的模塊機制, 定義API網關的功能函數, 并在函數內部調用微服務公布的功能, 其簡要實現代碼如下所示:

將微服務的API網關的實現代碼, 通過Seneca和Express的整合, 即可實現REST API模式的微服務. 最后使用Express支持的中間件功能, 將Seneca的微服務和Express Web服務進行整合, 實現微服務的REST API訪問協議.

4 數據采集客戶端設計與實現

為減少系統的投資, 數據采集客戶端采用廉價的物聯網核心設備樹莓派卡片式計算機通過TCP/IP與加氣站的氣罐、加氣槍的傳感器和PLC相連. 系統利用樹莓派內置的Linux操作系統, 并安裝Node.js, 實現與服務器端微服務相同的編程模式, 有利于系統的維護和升級.

樹莓派客戶端利用Node.js的johnny-five框架[11]實現與PLC連接, 并定時讀取監控數據, 包括氣罐的壓力,容量等參數. 在取得監控數據后, 使用Seneca的客戶端對象client向服務器端監控數據微服務API網關發送監控數據, 由微服務對監控數據進行存儲和處理. 傳感器數據讀取示意實現代碼如下:

johnny-five框架封裝了大量的傳感器和執行器的訪問代碼, 通過使用johnny-five可以以統一方式實現監測監控的編程, 簡化了監測系統的開發.

5 業務管理客戶端設計與實現

系統業務處理客戶端采用Web方式, 可以使用PC、手機、平板等訪問由Express實現的Web服務器,請求系統的監控和管理頁面. 客戶端使用HTML、JavaScript、jQuery實現與服務器端的微服務API網關進行雙向的數據通訊.

客戶端與微服務API Gateway的通訊, 通過jQuery的AJAX JSON調用函數getJSON實現, 其實現的簡要示意代碼如下:

其中請求的地址是微服務API網關的REST地址,參數customerData是封裝了增加客戶表單提交的客戶數據, 再使用異步響應模式取得微服務API返回的處理結果, 使用這種異步工作模式, 將極大改善Web客戶的響應處理速度. Web客戶端調用微服務API編程極其簡單且高效的, 由此加快了企業級應用的開發進度.

6 結語

此系統的設計與實施, 開創了工業過程監測監控系統和微服務整合的低成本全新企業級互聯網系統的創新實踐, 通過使用廉價的物聯網板式計算機如樹莓派等, 極大減輕了企業的經濟負擔, 提高了企業投入技術改造的積極性. 使用全新的異步響應式編程模式和高性能的Node.js結合, 極大簡化了監控系統的編程和維護, 加快了系統的開發和部署效率, 通過微服務技術,提高了系統的可靠性、可維護性和可伸縮性, 未來擬采用微服務集群技術, 能更好滿足了此類監控和管理集成系統對性能和實時性需求.

1陸凌牛. Node. js權威指南. 北京: 機械工業出版社, 2014.

2唐文宇. 面向SOA架構微服務的安全系統的設計與實現[碩士學位論文]. 南京: 南京大學, 2016.

3Rodger R. Seneca Web. http://senecajs.org/2010-2015.

4Bojinov V. RESTful Web API design with Node. js. Birmingham-Mumbai: Packt Publishing, 2015.

5van Vugt S. Pro Ubuntu server administration. Berkeley,USA: Apress Publishing, 2009.

6汪鑫, 彭雨薇. 基于樹莓派的網絡監控系統的研究與實現.硅谷, 2014, 7(14): 25–26. [doi: 10.3969/j.issn.1671-7597.2014.14.015]

7席英杰, 劉文麗. 簡述西門子S7-300/400的通訊功能及工業應用. 自動化與儀表, 2007, 22(1): 37–40.

8于京, 詹曉東. 一種基于JSON格式的生產線數據采集系統模型. 制造業自動化, 2007, 34(3): 154–156.

9唐鼎, 秦小偉. 物聯網應用化智能網關技術. 信息通信技術, 2013, (6): 78–82.

10Mardan A. Pro Express. JS. Berkeley: Apress Publishing, 2014.

11Tilkov S, Vinoski S. Node. js: Using JavaScript to build high-performance network programs. IEEE Internet Computing, 2010, 14(6): 80–83. [doi: 10.1109/MIC.2010.145]

SCADA Based on Seneca Micro-Service

LV Hai-Dong, GE Ri-Bo, ZHU Zhi-Gang
(City Institute, Dalian University of Technology, Dalian 116600, China)

In view of the complexity of traditional industry process monitoring system(SCADA) architecture, the inconsistency of the development technology and communication protocol between front and backend of application which could not process high concurrent requests, the innovated application which combines the SCADA and microservice framework Seneca based on Node.js server platform is developed which uses unified Node.js programming model and standardized REST API protocol. The application has low cost, high performance, easy maintenance and security of SCADA enterprise.

micro-services; API gateway; SCADA; Node.js; Seneca framework

呂海東, E-mail: haidonglu@126.com

呂海東,葛日波,朱志剛.基于Seneca微服務的過程監測系統.計算機系統應用,2017,26(7):121–125. http://www.c-s-a.org.cn/1003-3254/5829.html

2016-10-18; 收到修改稿時間: 2016-11-21

猜你喜歡
服務系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
半沸制皂系統(下)
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
主站蜘蛛池模板: 真实国产乱子伦视频| 九九免费观看全部免费视频| 四虎永久在线视频| 国产日韩欧美精品区性色| 亚洲水蜜桃久久综合网站| 国产无遮挡裸体免费视频| 精品国产乱码久久久久久一区二区| 久久国产精品夜色| 中文字幕日韩丝袜一区| 久久精品这里只有国产中文精品| 99精品欧美一区| 国产精品三级av及在线观看| 国产激情无码一区二区APP| 精品国产aⅴ一区二区三区| 国产日本一区二区三区| 国产呦视频免费视频在线观看| 99偷拍视频精品一区二区| 热re99久久精品国99热| 国产精品免费福利久久播放| 亚洲天堂首页| 九九热精品视频在线| 亚洲乱码在线播放| 波多野结衣AV无码久久一区| 中文字幕无码制服中字| 精品视频一区二区三区在线播| 色婷婷在线影院| 国产在线高清一级毛片| 亚洲最新地址| 最新亚洲人成无码网站欣赏网| 波多野结衣一区二区三视频 | 国产亚洲精品自在线| 欧美h在线观看| 欧美天天干| 亚洲第一国产综合| 中文字幕无码中文字幕有码在线| 国产自无码视频在线观看| 国产精品自在拍首页视频8 | 精品自窥自偷在线看| www.亚洲一区| 极品国产一区二区三区| 51国产偷自视频区视频手机观看| 嫩草在线视频| 久久特级毛片| a在线亚洲男人的天堂试看| 欧美日韩久久综合| 午夜毛片免费观看视频 | 黄色成年视频| 波多野结衣一区二区三区四区视频| 粉嫩国产白浆在线观看| 97免费在线观看视频| 亚洲成人手机在线| 99久久精品免费看国产免费软件 | 久久中文电影| 亚洲自偷自拍另类小说| 伊人91视频| 亚洲国产av无码综合原创国产| 亚洲一区二区三区国产精品| 日韩午夜片| 国产电话自拍伊人| 久久黄色毛片| 国产无码网站在线观看| 国产一区二区福利| 日韩a在线观看免费观看| 色噜噜狠狠狠综合曰曰曰| 欧美日韩v| 国产精品2| 伊人成色综合网| 手机成人午夜在线视频| 欧美亚洲第一页| 四虎永久在线精品国产免费| 国产在线精品香蕉麻豆| 中文字幕丝袜一区二区| 欧美一级一级做性视频| 欧美成人午夜视频| 五月婷婷欧美| 久久精品女人天堂aaa| 亚洲成aⅴ人在线观看| 久久国产免费观看| 伊人国产无码高清视频| 国产一区二区影院| 97色伦色在线综合视频| 亚洲男人天堂2020|