夏子昂 葛明濤 胡海峰 王俊傑



摘 要:【目的】在物聯網系統中,服務器起著重要的作用,提供穩定的TCP服務、數據庫服務、Web服務器服務。主要介紹了物聯網服務器的搭建過程和關鍵考慮因素。【方法】首先討論了服務器的平臺選擇,確保服務器能夠滿足性能需求且便于維護;然后詳細地介紹了TCP服務器、數據庫、Web服務器的搭建過程,包括開發相應的軟件程序、安裝和配置數據庫系統、選擇合適的Web服務器軟件;接著強調了服務器的安全性和可擴展性,提出了相應的安全考慮和容災備份方案;最后指出了該系統的局限性和未來改進方向。【結果】經測試,該系統能夠穩定運行并實現物聯網數據的實時展示和大量數據交互功能,通過了性能檢測以及可靠性、安全性的驗證。【結論】將服務器的部署方案應用于風光儲智能電站中,驗證了該方案的可行性。實驗結果表明,該方案穩定可靠,可以為物聯網服務器的搭建和應用提供一定的參考和指導。
關鍵詞:物聯網服務器;TCP服務;Web服務器
中圖分類號:TP368.5??? 文獻標志碼:A???? 文章編號:1003-5168(2024)08-0023-05
DOI:10.19968/j.cnki.hnkj.1003-5168.2024.08.005
Construction and Application of IoT? Server
XIA Ziang GE Mingtao HU Haifeng WANG Junjie
(Pingdingshan University, Pingdingshan 467000, China)
Abstract: [Purposes] In the IoT? system, the server plays an important role in providing stable TCP services, database services, and Web server services. This paper mainly introduces the construction process and key considerations of the IoT server. [Methods] To do this, this article first discusses server platform selection to ensure that the server can meet performance needs and is easy to maintain. Then, the steps of building TCP services, database services and Web servers are introduced in detail, including developing corresponding software programs, installing and configuring database systems, and selecting appropriate Web server software. At the same time, this paper also emphasizes the security and scalability of servers, puts forward related security considerations and disaster recovery backup schemes, and points out the limitations of this paper and future improvement directions. [Findings] After testing, the system can operate stably and realize real-time display of IoT data and a large number of data interaction functions. The system is proven for performance, reliability and safety. [Conclusions] Finally, the server deployment scheme is applied to the wind-solar storage intelligent power station, which verifies the research and practice of this paper, and the experiments show that the scheme is stable and reliable, which can provide some reference and guidance for the construction and application of IoT server.
Keywords: IoT server; TCP services; Web server
0 引言
隨著物聯網技術的快速發展,越來越多的設備和傳感器可以連接到物聯網中,從而產生了大量的數據。這些數據對于實現自動化和智能化的應用具有重要的價值。然而,如何高效、快速地收集、存儲、處理這些數據是現在所面臨的一個挑戰。物聯網服務器作為物聯網系統中的核心組件,負責管理和處理物聯網設備所發送的數據,提供基礎的TCP服務、數據庫服務、Web服務器服務。因此,物聯網服務器的搭建和運維對保證系統穩定性和數據安全性至關重要。本研究主要介紹了服務器平臺選擇、TCP服務器的搭建、數據庫的搭建、Web服務器的搭建,分析了服務器的安全性和可擴展性,并討論了該研究的局限性和未來改進方向。
1 服務器平臺選擇
1.1 服務器平臺任務需求分析
物聯網體系結構如圖1所示[1],服務器要提供網絡層和應用層的服務。本項目由于需要在穩定的網絡環境中24小時不間斷工作,所以采用了阿里云服務平臺,并使用ubuntu20操作系統。阿里云服務器可以提供穩定可靠的硬件設備和網絡環境,與Ubuntu操作系統的穩定性相結合,可以確保系統運行的可靠性和持續性。并且阿里云服務器具備完善的安全措施和防護機制,與Ubuntu操作系統的安全特性相結合,可以提供雙重保障,有效防范網絡攻擊和威脅。
1.2 服務器平臺功能設計
1.2.1 TCP服務端。物聯網服務器應當具備接入大量設備和接收感知層大量數據的能力。本系統采用TCP協議進行數據傳輸,可以提供穩定可靠的通信連接。
1.2.2 數據庫服務。物聯網服務器對于數據庫服務有著很高的性能要求。應先建立物理層的數據庫,且該數據庫要有高速讀寫能力,并能夠處理瞬時的大量數據;之后在物理層的數據庫基礎上,分離、整合、優化出Web端和后期算法所需要的數據庫。
1.2.3 Web服務端。Web服務器主要提供動態內容生成服務、數據庫查詢服務、用戶認證服務等。該項目主要用于大數據平臺的展示。
根據以上功能需求進行設計,該項目的服務器總體設計如圖2所示。
2 TCP服務器的搭建
2.1 TCP協議
傳輸控制協議(Transmission Control Protocol,TCP)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。作為傳輸層協議之一,TCP提供了可靠的數據傳輸服務,確保了數據包的正確性、完整性、有序性,這些特性對于物聯網應用非常重要[2]。
2.2 TCP傳輸數據包設計
在物聯網系統中,感知層的設備是通過TCP協議向網絡層通信的。服務器端通過代碼即可開啟TCP的端口,并保持監聽,保證了設備的正常接入。當設備接入TCP通信隊列時,服務器端將會發送一段密文,用于驗證設備是否為合法設備,驗證數據包格式見表1。
發送采集到的數據的數據包格式,應先進行設備識別,再分析接收到的數據類別,采集數據包格式見表2。
2.3 TCP實現思路
本研究利用python實現TCP服務端的功能。首先創建TCP的連接對象,并使用多線程,時刻保持監聽狀態;當連接到客戶端時,服務器端會向客戶端發送驗證數據包,當驗證通過后,會把建立的socket通道保存到線程池中,確保連接穩定;在接收到數據后應先進行身份驗證,在通過身份驗證之后將該連接放入線程中保持連接,并持續接收數據。Socket模塊處理信息流程如圖3所示。
3 數據庫的搭建
本研究使用的是MySQL數據庫,是一個開源的關系型數據庫管理系統,因其具有良好的穩定性和可靠性,成為開發人員和數據庫管理員首選的數據庫系統,廣泛應用于各種規模的應用程序和網站。MySQL具有以下突出特點:高性能,MySQL具備優化的查詢執行引擎和高效的索引機制,可以處理大量數據并提供快速響應,滿足物聯網應用的需求;靈活性,MySQL支持多種數據類型和存儲引擎,可以根據不同的物聯網應用需求選擇合適的存儲方式。例如,對于時間序列數據可以選擇使用InnoDB或者MyISAM存儲引擎,對于低延遲的數據訪問可以選擇使用內存表存儲引擎[3]。
數據庫總體設計如圖4所示。首先創建兩大數據庫分別為感知層數據庫和Web端數據庫。感知層數據庫主要用于接收硬件終端設備發來的底層數據和部分環境采集數據,比如光伏板此時的電壓、電流、功率、環境溫度、光照強度等;Web端數據庫主要是用于顯示大數據平臺的實時數據和保存用戶的個人信息。
4 Web服務器的搭建
本研究設計的Web服務器應首先滿足數據的實時顯示功能,并且可以承受短時間內大量數據的交互,因此可采用Nginx技術。
Nginx是一個輕量級且高性能的Web服務器和反向代理服務器,往往被設計成異步、事件驅動的架構。Nginx自身具備的高性能和高并發處理能力,能夠有效地處理大量的并發請求,非常適用于物聯網環境中需要處理大量設備數據和請求的場景[4]。
物聯網系統可能涉及多個設備和傳感器,因此需要平均分配請求負載以實現高可用性和可擴展性。Nginx提供的負載均衡機制,可以根據配置的算法將請求均勻地分發給后端服務器,使系統能夠更高效地處理請求,并具備容錯能力。
物聯網系統涉及大量敏感數據和設備控制操作,其安全性至關重要。Nginx提供了豐富的安全功能,如SSL/TLS支持、訪問控制列表(ACL)、IP白名單和黑名單、請求過濾等,可以保護服務器避免惡意攻擊和未授權訪問[5]。
綜上所述,Nginx在物聯網(IoT)服務器端具有多種優點:高性能和高并發處理能力、負載均衡和容錯能力、安全性和訪問控制,這些能力讓它成為物聯網環境中常用的服務器選擇。
5 服務器的安全性和可擴展性考慮
5.1 服務器的安全性
物聯網服務器的安全性包括物聯網系統中設備、傳感器、數據等的安全。以下是一些重要的安全考慮因素。
①身份驗證與訪問控制。為了保護物聯網服務器,必須確保只有經過身份驗證的設備和用戶才可以進行訪問,根據不同的設備和權限,需要設置適當的訪問控制。
②數據加密。對于通過物聯網傳輸的敏感數據,應采用安全的加密方法對其進行加密,如使用TCP協議進行安全傳輸,確保數據在傳輸過程中不被竊取、篡改或劫持[6]。
③強化網絡安全。物聯網服務器應部署在防火墻后面,需要配置網絡安全系統,并限制對服務器的遠程訪問。使用入侵檢測與防御系統(IDS/IPS)、網絡隔離等技術,監控和阻斷針對服務器的惡意攻擊和未授權訪問。
④安全審計與監測。建立安全審計和監測機制,記錄和監控服務器的日志,識別和響應異常活動。使用安全信息與事件管理系統(SIEM)等工具,及時發現并處理潛在的安全威脅。
5.2 服務器的可擴展性
服務器的可擴展性是指在面對不斷增長的需求時,能夠有效地擴展服務器的處理能力和資源,以滿足更多的請求和用戶。以下是一些提高服務器可擴展性的方法。
①水平擴展。通過增加服務器節點的數量來擴展系統的處理能力。這可以通過部署負載均衡器來實現,將請求分發到多個服務器上,從而提高系統的并發處理能力。
②垂直擴展。在單個服務器上增加更多的計算資源,如CPU、內存、存儲容量,以支持更多的請求和用戶。這可以通過升級硬件或采用虛擬化技術來實現。
③異步處理。將耗時的操作異步化,通過消息隊列等機制將請求放入隊列中,由后臺任務進行處理。這樣可以釋放服務器資源,提高系統的并發能力。
④數據庫優化。優化數據庫設計和查詢語句,采用合適的索引和分區技術,以提高數據庫的性能和擴展性。
通過采用上述方法,可以有效地提高服務器的可擴展性,滿足不斷增長的需求,并確保系統具有良好的性能和可靠性。
6 結語
基于上述理念和步驟,本研究構建了一個物聯網系統服務器,搭建過程如下。
首先,根據需求確定系統的功能和架構設計,并選擇合適的技術工具和平臺。根據物聯網平臺的24小時不間斷、高性能、平穩運行的要求,采用阿里云平臺。基于TCP協議進行數據傳輸,確保數據包正確性、完整性、有序性,同時要考慮安全性問題,對建立的Socket通道進行身份驗證,確保身份合法,提高系統安全性。
其次,由于物聯網應用場景中需要能夠處理大量的數據并提供快速響應的數據庫,所以采用Mysql數據庫。MySQL具備優化的查詢執行引擎和高效的索引機制,可以滿足物聯網應用的需求。
再次,選擇使用Nginx作為Web服務器,對系統進行負載均衡的配置,運用Nginx的負載均衡機制,以實現高性能和高并發處理能力。
最后,在運行和測試系統后,系統能夠穩定運行并實現物聯網數據的實時展示和大量數據交互功能,通過了性能檢測以及可靠性、安全性的驗證。運行結果顯示該系統運行平穩,能夠滿足用戶的需求。TCP測試結果如圖5所示,測試環境:Ubuntu20.0.4系統;測試條件:并發連接10 000臺設備,每臺設備發送100條消息。
綜上所述,物聯網服務器系統經過上述步驟的設計和搭建,能夠穩定運行,該設計可驗證整個過程中的安全性和可靠性,系統的負載均衡配置確保了高可用性和可擴展性。整體而言,該系統能夠有效地滿足物聯網場景的需求。
參考文獻:
[1]DENG G Q. Design of a foundation block for a centrifugal machine[J]. Second International Conference on Intelligent System Design and Engineering Application,2012.
[2]羅亞非.基于TCP的Socket多線程通信[J].電腦知識與技術,2009,5(3):563-565,598.
[3]楊婷,莫若玉,張秀娟,等.輕量級緩存策略的關系型數據庫全文搜索加強與擴展[J].計算機應用,2023,43(8):2431-2438.
[4]趙華飛,徐踐,張娜.基于Netty的農業物聯網服務器系統設計[J].現代農業科技,2019(9):254-255.
[5]張榮.基于網站web服務器網絡安全的分析與設計[D].成都:四川大學,2006.
[6]朱小平.網絡數據庫安全技術的研究與實現[D].上海:同濟大學,2006.
收稿日期:2023-09-17
基金項目:河南省科技攻關項目(242102241061、242102210131)。
作者簡介:夏子昂(2002—),男,本科生,研究方向:嵌入式應用開發、圖像處理。
通信作者:葛明濤(1979—),男,博士,副教授,研究方向:信號處理、大數據分析。