• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Vert.x的實時Web監(jiān)控系統(tǒng)

      2015-10-18 07:39:10呂海東大連理工大學城市學院遼寧大連116600
      網絡安全與數據管理 2015年12期
      關鍵詞:服務器端實時性總線

      呂海東(大連理工大學 城市學院,遼寧 大連 116600)

      基于Vert.x的實時Web監(jiān)控系統(tǒng)

      呂海東(大連理工大學城市學院,遼寧大連116600)

      創(chuàng)新性地使用最新的Vert.x框架,利用其異步、非阻塞、實時性、高并發(fā)的工作模式,對現有的工業(yè)過程監(jiān)控系統(tǒng)進行全面改造,極大提升了系統(tǒng)的響應速度,實時性得到顯著提高,完全滿足大量客戶端并發(fā)的實時請求。

      Vert.x;過程監(jiān)控;PLC;數據推送

      0 引言

      工業(yè)生產監(jiān)控系統(tǒng)的Web化[1]已成為標準,客戶端只使用瀏覽器即可實現對監(jiān)控數據的實時顯示,不需要安裝各種監(jiān)控組件,簡化了監(jiān)控系統(tǒng)維護。實現監(jiān)控數據的實時傳輸和顯示技術也在不斷地出現,從傳統(tǒng)HTTP請求/響應模式,到AJAX的Comet及HTML5的WebSocket,采用數據推送技術,使得Web監(jiān)控系統(tǒng)的實時性得到極大提高。然而監(jiān)控服務器在面對大量客戶連接的并發(fā)請求時,實時性難以滿足。無論JavaEE,還是NET都如此,它們的多線程工作模式是根源所在。為解決此問題,Vert.x框架[2-3]應運而生,它采用全新工作模式,特別適合開發(fā)實時性要求極高的系統(tǒng)。

      Vert.x是用于下一代異步、可伸縮、并發(fā)應用的框架,輕量級的高性能JVM應用平臺,適合開發(fā)各種移動及企業(yè)應用。它徹底解決了業(yè)界遭遇C10K問題,即當并發(fā)連接超過一萬以上時,傳統(tǒng)技術會引發(fā)暫停。以Tomcat為例,它在超過100個并發(fā)長請求就堵塞,而Vert.x可支持超10萬個并發(fā)請求。

      本文采用Vert.x對現有的供熱監(jiān)控系統(tǒng)進行改造,對監(jiān)控服務器端和客戶端進行重構。在服務器端使用Vert.x的Web服務器取代現有Tomcat7,采用Vert.xTCP讀取西門子PLC300的監(jiān)控數據。用戶端采用Vert.x的Event Bus Bridge技術,實時接收服務器端監(jiān)控數據,改造后的監(jiān)控系統(tǒng)的性能和響應速度比原有系統(tǒng)有顯著的提高。

      1 Vert.x框架概述

      Vert.x核心采用與Node.js相同的事件驅動的異步工作模式,使用單線程的事件循環(huán)機制實現高并發(fā)的請求處理,而不像傳統(tǒng)的服務器采用多線程的模式。

      Vert.x的核心組件是Verticle,運行在Vert.x實例中。Vert.x啟動后,根據服務器CPU的內核數,自動創(chuàng)建對應的Vert.x實例,并發(fā)運行Verticle。

      Vert.x采用事件驅動的異步編程模式,通過觸發(fā)事件以及注冊事件處理器完成所有編程任務。Verticle之間不能直接調用,只能發(fā)送和接收事件實現協(xié)作。

      Vert.x的核心是事件總線,Verticle在事件總線發(fā)送和接收事件。事件總線是分布式的,能連接服務器和客戶端。事件總線支持點對點和發(fā)布-訂閱模式的事件傳輸,監(jiān)控系統(tǒng)中服務器向所有連接的客戶端發(fā)送監(jiān)控數據就使用發(fā)布訂閱模式,使得所有客戶端瀏覽器都能實時接收到監(jiān)控數據。

      2 實時監(jiān)控系統(tǒng)設計與實現

      大連柳樹供熱公司監(jiān)控系統(tǒng)現場采用西門子PLCS7-300[4],通過屏蔽雙絞線連接到中心機房的核心交換機上,中心監(jiān)控主機CPU采用志強8核服務器,可并發(fā)運行8個Vert.x實例,能支持十幾萬個并發(fā)請求。頁面采用最新的Bootstrap模版技術[5],自動適應不同尺寸的屏幕顯示,包括手機、平板等。

      2.1讀取PLC監(jiān)控數據TCP編程

      西門子S7-300采用TCP FETCH WRITE通信方式[6],該模式下通過TCP協(xié)議的Socket,主機可與PLC進行數據交換。

      Vert.x內置TCP Client方法,如下是 TCP客戶端讀取PLC數據的代碼:

      客戶端定時發(fā)送數據指令,PLC數據到達后,Socket上的事件監(jiān)聽器工作,從回調函數中取得監(jiān)控數據,并轉換為JSON格式,使用總線方法publish發(fā)布事件??偩€上監(jiān)聽的Web客戶端都能同步接收監(jiān)控數據。Vert.x采用推模式實現數據傳輸,由Vert.x服務器主動發(fā)送數據,不需客戶端請求,節(jié)省了網絡帶寬,提高了傳輸速度,滿足了監(jiān)控系統(tǒng)實時性。監(jiān)控系統(tǒng)的總體架構如圖1所示。

      圖1 供熱監(jiān)控系統(tǒng)總體架構圖

      在 Vert.x服務器中,可啟動多個TCP客戶端Verticle,實現多路監(jiān)測數據的并發(fā)讀取,如下代碼展示主服務器依次啟動 Http Web Server和TCP Client監(jiān)控Verticle等實例。

      2.2監(jiān)控Web服務器的編程

      系統(tǒng)采用Vert.x的服務器模塊web-server~2.0,實現功能強大的Web服務器,并使用異步模式接收客戶端瀏覽器的HTTP請求,支持客戶高并發(fā)的HTTP連接請求,示意代碼如下。

      Vert.x通過deployModule載入Web模塊,Web模塊自動將目錄/web作為站點發(fā)布目錄,在/web目錄中存儲站點的頁面文件。

      代碼中bridge:true表示將服務器端的事件總線延伸到Web客戶端,實現服務器和客戶端的數據傳輸。每個Verticle都可以在Event Bus注冊事件處理器,以此實現數據的接收和發(fā)送。

      2.3監(jiān)控客戶端編程

      客戶端使用普通的HTML即可,不需要動態(tài)頁面。為實現與Vert.x服務器的Event Bus通信,客戶端頁面需要引入Vert.x的 Event Bus Bridge的庫文件 vertxbus-2.1.js。

      監(jiān)控數據顯示使用<div>,使用Bootstrap框架布局,將<div>懸浮在圖片指定位置。監(jiān)控客戶端頁面的數據接收和顯示代碼如下:

      代碼中關鍵是取得Vert.x的Event Bus對象,通過事件總線提供的vertx.EventBus,使用Javascript創(chuàng)建一個實例即可。如果與服務端的Event Bus連接成功,則eb.onopen回調函數工作。在此方法內,通過Event Bus的registerHandler對指定的地址進行監(jiān)聽,當有此地址的事件event到達時,定義的回調函數function(args)開始運行,參數args為事件中包含的JSON數據,解析出JSON數據,使用jQuery的函數html()將數據顯示在指定的<div>元素內,實現監(jiān)控數據的實時顯示。實時監(jiān)控系統(tǒng)監(jiān)控界面如圖2所示。

      Real-time Web based monitoring system based on Vert.x

      Lv Haidong
      (City Institute,Dalian University of Technology,Dalian 116600,China)

      This paper uses the innovative new Vert.x framework,which has the characters such as asynchronous,non blocking,real-time and highly concurrent,to improve the existing industrial process monitoring and control system.The response speed of the system is greatly enhanced,the real-time is greatly improved,and the real time request of a large number of clieats concurrency is completely satisfied.

      Vert.x;SCADA;PLC;data pushing

      TP274

      A

      1674-7720(2015)12-0080-02

      猜你喜歡
      服務器端實時性總線
      基于規(guī)則實時性的端云動態(tài)分配方法研究
      高技術通訊(2021年3期)2021-06-09 06:57:24
      基于PCI Express總線的xHC與FPGA的直接通信
      測控技術(2018年6期)2018-11-25 09:50:12
      機載飛控1553B總線轉以太網總線設計
      測控技術(2018年8期)2018-11-25 07:42:08
      淺析異步通信層的架構在ASP.NET 程序中的應用
      成功(2018年10期)2018-03-26 02:56:14
      基于虛擬局域網的智能變電站通信網絡實時性仿真
      航空電子AFDX與AVB傳輸實時性抗干擾對比
      在Windows中安裝OpenVPN
      多通道ARINC429總線檢查儀
      一種車載Profibus總線系統(tǒng)的實時性分析
      基于EtherCAT總線的ROV控制系統(tǒng)設計
      河南科技(2014年16期)2014-02-27 14:13:22
      英山县| 吕梁市| 资源县| 仪征市| 巍山| 新邵县| 廊坊市| 新津县| 和田市| 宜昌市| 岑巩县| 宁夏| 宝坻区| 周口市| 堆龙德庆县| 伊春市| 宜黄县| 襄樊市| 东台市| 青岛市| 宜春市| 天峨县| 大英县| 云阳县| 册亨县| 永仁县| 金昌市| 瓮安县| 尼木县| 弥勒县| 郧西县| 鄂伦春自治旗| 和林格尔县| 伊春市| 四川省| 介休市| 迭部县| 新密市| 额济纳旗| 渝中区| 方正县|