夏子昂 葛明濤 胡海峰 王俊傑
摘 要:【目的】在物聯(lián)網(wǎng)系統(tǒng)中,服務(wù)器起著重要的作用,提供穩(wěn)定的TCP服務(wù)、數(shù)據(jù)庫(kù)服務(wù)、Web服務(wù)器服務(wù)。主要介紹了物聯(lián)網(wǎng)服務(wù)器的搭建過(guò)程和關(guān)鍵考慮因素?!痉椒ā渴紫扔懻摿朔?wù)器的平臺(tái)選擇,確保服務(wù)器能夠滿足性能需求且便于維護(hù);然后詳細(xì)地介紹了TCP服務(wù)器、數(shù)據(jù)庫(kù)、Web服務(wù)器的搭建過(guò)程,包括開(kāi)發(fā)相應(yīng)的軟件程序、安裝和配置數(shù)據(jù)庫(kù)系統(tǒng)、選擇合適的Web服務(wù)器軟件;接著強(qiáng)調(diào)了服務(wù)器的安全性和可擴(kuò)展性,提出了相應(yīng)的安全考慮和容災(zāi)備份方案;最后指出了該系統(tǒng)的局限性和未來(lái)改進(jìn)方向?!窘Y(jié)果】經(jīng)測(cè)試,該系統(tǒng)能夠穩(wěn)定運(yùn)行并實(shí)現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)的實(shí)時(shí)展示和大量數(shù)據(jù)交互功能,通過(guò)了性能檢測(cè)以及可靠性、安全性的驗(yàn)證?!窘Y(jié)論】將服務(wù)器的部署方案應(yīng)用于風(fēng)光儲(chǔ)智能電站中,驗(yàn)證了該方案的可行性。實(shí)驗(yàn)結(jié)果表明,該方案穩(wěn)定可靠,可以為物聯(lián)網(wǎng)服務(wù)器的搭建和應(yīng)用提供一定的參考和指導(dǎo)。
關(guān)鍵詞:物聯(lián)網(wǎng)服務(wù)器;TCP服務(wù);Web服務(wù)器
中圖分類號(hào):TP368.5??? 文獻(xiàn)標(biāo)志碼:A???? 文章編號(hào):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 引言
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,越來(lái)越多的設(shè)備和傳感器可以連接到物聯(lián)網(wǎng)中,從而產(chǎn)生了大量的數(shù)據(jù)。這些數(shù)據(jù)對(duì)于實(shí)現(xiàn)自動(dòng)化和智能化的應(yīng)用具有重要的價(jià)值。然而,如何高效、快速地收集、存儲(chǔ)、處理這些數(shù)據(jù)是現(xiàn)在所面臨的一個(gè)挑戰(zhàn)。物聯(lián)網(wǎng)服務(wù)器作為物聯(lián)網(wǎng)系統(tǒng)中的核心組件,負(fù)責(zé)管理和處理物聯(lián)網(wǎng)設(shè)備所發(fā)送的數(shù)據(jù),提供基礎(chǔ)的TCP服務(wù)、數(shù)據(jù)庫(kù)服務(wù)、Web服務(wù)器服務(wù)。因此,物聯(lián)網(wǎng)服務(wù)器的搭建和運(yùn)維對(duì)保證系統(tǒng)穩(wěn)定性和數(shù)據(jù)安全性至關(guān)重要。本研究主要介紹了服務(wù)器平臺(tái)選擇、TCP服務(wù)器的搭建、數(shù)據(jù)庫(kù)的搭建、Web服務(wù)器的搭建,分析了服務(wù)器的安全性和可擴(kuò)展性,并討論了該研究的局限性和未來(lái)改進(jìn)方向。
1 服務(wù)器平臺(tái)選擇
1.1 服務(wù)器平臺(tái)任務(wù)需求分析
物聯(lián)網(wǎng)體系結(jié)構(gòu)如圖1所示[1],服務(wù)器要提供網(wǎng)絡(luò)層和應(yīng)用層的服務(wù)。本項(xiàng)目由于需要在穩(wěn)定的網(wǎng)絡(luò)環(huán)境中24小時(shí)不間斷工作,所以采用了阿里云服務(wù)平臺(tái),并使用ubuntu20操作系統(tǒng)。阿里云服務(wù)器可以提供穩(wěn)定可靠的硬件設(shè)備和網(wǎng)絡(luò)環(huán)境,與Ubuntu操作系統(tǒng)的穩(wěn)定性相結(jié)合,可以確保系統(tǒng)運(yùn)行的可靠性和持續(xù)性。并且阿里云服務(wù)器具備完善的安全措施和防護(hù)機(jī)制,與Ubuntu操作系統(tǒng)的安全特性相結(jié)合,可以提供雙重保障,有效防范網(wǎng)絡(luò)攻擊和威脅。
1.2 服務(wù)器平臺(tái)功能設(shè)計(jì)
1.2.1 TCP服務(wù)端。物聯(lián)網(wǎng)服務(wù)器應(yīng)當(dāng)具備接入大量設(shè)備和接收感知層大量數(shù)據(jù)的能力。本系統(tǒng)采用TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸,可以提供穩(wěn)定可靠的通信連接。
1.2.2 數(shù)據(jù)庫(kù)服務(wù)。物聯(lián)網(wǎng)服務(wù)器對(duì)于數(shù)據(jù)庫(kù)服務(wù)有著很高的性能要求。應(yīng)先建立物理層的數(shù)據(jù)庫(kù),且該數(shù)據(jù)庫(kù)要有高速讀寫能力,并能夠處理瞬時(shí)的大量數(shù)據(jù);之后在物理層的數(shù)據(jù)庫(kù)基礎(chǔ)上,分離、整合、優(yōu)化出Web端和后期算法所需要的數(shù)據(jù)庫(kù)。
1.2.3 Web服務(wù)端。Web服務(wù)器主要提供動(dòng)態(tài)內(nèi)容生成服務(wù)、數(shù)據(jù)庫(kù)查詢服務(wù)、用戶認(rèn)證服務(wù)等。該項(xiàng)目主要用于大數(shù)據(jù)平臺(tái)的展示。
根據(jù)以上功能需求進(jìn)行設(shè)計(jì),該項(xiàng)目的服務(wù)器總體設(shè)計(jì)如圖2所示。
2 TCP服務(wù)器的搭建
2.1 TCP協(xié)議
傳輸控制協(xié)議(Transmission Control Protocol,TCP)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。作為傳輸層協(xié)議之一,TCP提供了可靠的數(shù)據(jù)傳輸服務(wù),確保了數(shù)據(jù)包的正確性、完整性、有序性,這些特性對(duì)于物聯(lián)網(wǎng)應(yīng)用非常重要[2]。
2.2 TCP傳輸數(shù)據(jù)包設(shè)計(jì)
在物聯(lián)網(wǎng)系統(tǒng)中,感知層的設(shè)備是通過(guò)TCP協(xié)議向網(wǎng)絡(luò)層通信的。服務(wù)器端通過(guò)代碼即可開(kāi)啟TCP的端口,并保持監(jiān)聽(tīng),保證了設(shè)備的正常接入。當(dāng)設(shè)備接入TCP通信隊(duì)列時(shí),服務(wù)器端將會(huì)發(fā)送一段密文,用于驗(yàn)證設(shè)備是否為合法設(shè)備,驗(yàn)證數(shù)據(jù)包格式見(jiàn)表1。
發(fā)送采集到的數(shù)據(jù)的數(shù)據(jù)包格式,應(yīng)先進(jìn)行設(shè)備識(shí)別,再分析接收到的數(shù)據(jù)類別,采集數(shù)據(jù)包格式見(jiàn)表2。
2.3 TCP實(shí)現(xiàn)思路
本研究利用python實(shí)現(xiàn)TCP服務(wù)端的功能。首先創(chuàng)建TCP的連接對(duì)象,并使用多線程,時(shí)刻保持監(jiān)聽(tīng)狀態(tài);當(dāng)連接到客戶端時(shí),服務(wù)器端會(huì)向客戶端發(fā)送驗(yàn)證數(shù)據(jù)包,當(dāng)驗(yàn)證通過(guò)后,會(huì)把建立的socket通道保存到線程池中,確保連接穩(wěn)定;在接收到數(shù)據(jù)后應(yīng)先進(jìn)行身份驗(yàn)證,在通過(guò)身份驗(yàn)證之后將該連接放入線程中保持連接,并持續(xù)接收數(shù)據(jù)。Socket模塊處理信息流程如圖3所示。
3 數(shù)據(jù)庫(kù)的搭建
本研究使用的是MySQL數(shù)據(jù)庫(kù),是一個(gè)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),因其具有良好的穩(wěn)定性和可靠性,成為開(kāi)發(fā)人員和數(shù)據(jù)庫(kù)管理員首選的數(shù)據(jù)庫(kù)系統(tǒng),廣泛應(yīng)用于各種規(guī)模的應(yīng)用程序和網(wǎng)站。MySQL具有以下突出特點(diǎn):高性能,MySQL具備優(yōu)化的查詢執(zhí)行引擎和高效的索引機(jī)制,可以處理大量數(shù)據(jù)并提供快速響應(yīng),滿足物聯(lián)網(wǎng)應(yīng)用的需求;靈活性,MySQL支持多種數(shù)據(jù)類型和存儲(chǔ)引擎,可以根據(jù)不同的物聯(lián)網(wǎng)應(yīng)用需求選擇合適的存儲(chǔ)方式。例如,對(duì)于時(shí)間序列數(shù)據(jù)可以選擇使用InnoDB或者M(jìn)yISAM存儲(chǔ)引擎,對(duì)于低延遲的數(shù)據(jù)訪問(wèn)可以選擇使用內(nèi)存表存儲(chǔ)引擎[3]。
數(shù)據(jù)庫(kù)總體設(shè)計(jì)如圖4所示。首先創(chuàng)建兩大數(shù)據(jù)庫(kù)分別為感知層數(shù)據(jù)庫(kù)和Web端數(shù)據(jù)庫(kù)。感知層數(shù)據(jù)庫(kù)主要用于接收硬件終端設(shè)備發(fā)來(lái)的底層數(shù)據(jù)和部分環(huán)境采集數(shù)據(jù),比如光伏板此時(shí)的電壓、電流、功率、環(huán)境溫度、光照強(qiáng)度等;Web端數(shù)據(jù)庫(kù)主要是用于顯示大數(shù)據(jù)平臺(tái)的實(shí)時(shí)數(shù)據(jù)和保存用戶的個(gè)人信息。
4 Web服務(wù)器的搭建
本研究設(shè)計(jì)的Web服務(wù)器應(yīng)首先滿足數(shù)據(jù)的實(shí)時(shí)顯示功能,并且可以承受短時(shí)間內(nèi)大量數(shù)據(jù)的交互,因此可采用Nginx技術(shù)。
Nginx是一個(gè)輕量級(jí)且高性能的Web服務(wù)器和反向代理服務(wù)器,往往被設(shè)計(jì)成異步、事件驅(qū)動(dòng)的架構(gòu)。Nginx自身具備的高性能和高并發(fā)處理能力,能夠有效地處理大量的并發(fā)請(qǐng)求,非常適用于物聯(lián)網(wǎng)環(huán)境中需要處理大量設(shè)備數(shù)據(jù)和請(qǐng)求的場(chǎng)景[4]。
物聯(lián)網(wǎng)系統(tǒng)可能涉及多個(gè)設(shè)備和傳感器,因此需要平均分配請(qǐng)求負(fù)載以實(shí)現(xiàn)高可用性和可擴(kuò)展性。Nginx提供的負(fù)載均衡機(jī)制,可以根據(jù)配置的算法將請(qǐng)求均勻地分發(fā)給后端服務(wù)器,使系統(tǒng)能夠更高效地處理請(qǐng)求,并具備容錯(cuò)能力。
物聯(lián)網(wǎng)系統(tǒng)涉及大量敏感數(shù)據(jù)和設(shè)備控制操作,其安全性至關(guān)重要。Nginx提供了豐富的安全功能,如SSL/TLS支持、訪問(wèn)控制列表(ACL)、IP白名單和黑名單、請(qǐng)求過(guò)濾等,可以保護(hù)服務(wù)器避免惡意攻擊和未授權(quán)訪問(wèn)[5]。
綜上所述,Nginx在物聯(lián)網(wǎng)(IoT)服務(wù)器端具有多種優(yōu)點(diǎn):高性能和高并發(fā)處理能力、負(fù)載均衡和容錯(cuò)能力、安全性和訪問(wèn)控制,這些能力讓它成為物聯(lián)網(wǎng)環(huán)境中常用的服務(wù)器選擇。
5 服務(wù)器的安全性和可擴(kuò)展性考慮
5.1 服務(wù)器的安全性
物聯(lián)網(wǎng)服務(wù)器的安全性包括物聯(lián)網(wǎng)系統(tǒng)中設(shè)備、傳感器、數(shù)據(jù)等的安全。以下是一些重要的安全考慮因素。
①身份驗(yàn)證與訪問(wèn)控制。為了保護(hù)物聯(lián)網(wǎng)服務(wù)器,必須確保只有經(jīng)過(guò)身份驗(yàn)證的設(shè)備和用戶才可以進(jìn)行訪問(wèn),根據(jù)不同的設(shè)備和權(quán)限,需要設(shè)置適當(dāng)?shù)脑L問(wèn)控制。
②數(shù)據(jù)加密。對(duì)于通過(guò)物聯(lián)網(wǎng)傳輸?shù)拿舾袛?shù)據(jù),應(yīng)采用安全的加密方法對(duì)其進(jìn)行加密,如使用TCP協(xié)議進(jìn)行安全傳輸,確保數(shù)據(jù)在傳輸過(guò)程中不被竊取、篡改或劫持[6]。
③強(qiáng)化網(wǎng)絡(luò)安全。物聯(lián)網(wǎng)服務(wù)器應(yīng)部署在防火墻后面,需要配置網(wǎng)絡(luò)安全系統(tǒng),并限制對(duì)服務(wù)器的遠(yuǎn)程訪問(wèn)。使用入侵檢測(cè)與防御系統(tǒng)(IDS/IPS)、網(wǎng)絡(luò)隔離等技術(shù),監(jiān)控和阻斷針對(duì)服務(wù)器的惡意攻擊和未授權(quán)訪問(wèn)。
④安全審計(jì)與監(jiān)測(cè)。建立安全審計(jì)和監(jiān)測(cè)機(jī)制,記錄和監(jiān)控服務(wù)器的日志,識(shí)別和響應(yīng)異常活動(dòng)。使用安全信息與事件管理系統(tǒng)(SIEM)等工具,及時(shí)發(fā)現(xiàn)并處理潛在的安全威脅。
5.2 服務(wù)器的可擴(kuò)展性
服務(wù)器的可擴(kuò)展性是指在面對(duì)不斷增長(zhǎng)的需求時(shí),能夠有效地?cái)U(kuò)展服務(wù)器的處理能力和資源,以滿足更多的請(qǐng)求和用戶。以下是一些提高服務(wù)器可擴(kuò)展性的方法。
①水平擴(kuò)展。通過(guò)增加服務(wù)器節(jié)點(diǎn)的數(shù)量來(lái)擴(kuò)展系統(tǒng)的處理能力。這可以通過(guò)部署負(fù)載均衡器來(lái)實(shí)現(xiàn),將請(qǐng)求分發(fā)到多個(gè)服務(wù)器上,從而提高系統(tǒng)的并發(fā)處理能力。
②垂直擴(kuò)展。在單個(gè)服務(wù)器上增加更多的計(jì)算資源,如CPU、內(nèi)存、存儲(chǔ)容量,以支持更多的請(qǐng)求和用戶。這可以通過(guò)升級(jí)硬件或采用虛擬化技術(shù)來(lái)實(shí)現(xiàn)。
③異步處理。將耗時(shí)的操作異步化,通過(guò)消息隊(duì)列等機(jī)制將請(qǐng)求放入隊(duì)列中,由后臺(tái)任務(wù)進(jìn)行處理。這樣可以釋放服務(wù)器資源,提高系統(tǒng)的并發(fā)能力。
④數(shù)據(jù)庫(kù)優(yōu)化。優(yōu)化數(shù)據(jù)庫(kù)設(shè)計(jì)和查詢語(yǔ)句,采用合適的索引和分區(qū)技術(shù),以提高數(shù)據(jù)庫(kù)的性能和擴(kuò)展性。
通過(guò)采用上述方法,可以有效地提高服務(wù)器的可擴(kuò)展性,滿足不斷增長(zhǎng)的需求,并確保系統(tǒng)具有良好的性能和可靠性。
6 結(jié)語(yǔ)
基于上述理念和步驟,本研究構(gòu)建了一個(gè)物聯(lián)網(wǎng)系統(tǒng)服務(wù)器,搭建過(guò)程如下。
首先,根據(jù)需求確定系統(tǒng)的功能和架構(gòu)設(shè)計(jì),并選擇合適的技術(shù)工具和平臺(tái)。根據(jù)物聯(lián)網(wǎng)平臺(tái)的24小時(shí)不間斷、高性能、平穩(wěn)運(yùn)行的要求,采用阿里云平臺(tái)?;赥CP協(xié)議進(jìn)行數(shù)據(jù)傳輸,確保數(shù)據(jù)包正確性、完整性、有序性,同時(shí)要考慮安全性問(wèn)題,對(duì)建立的Socket通道進(jìn)行身份驗(yàn)證,確保身份合法,提高系統(tǒng)安全性。
其次,由于物聯(lián)網(wǎng)應(yīng)用場(chǎng)景中需要能夠處理大量的數(shù)據(jù)并提供快速響應(yīng)的數(shù)據(jù)庫(kù),所以采用Mysql數(shù)據(jù)庫(kù)。MySQL具備優(yōu)化的查詢執(zhí)行引擎和高效的索引機(jī)制,可以滿足物聯(lián)網(wǎng)應(yīng)用的需求。
再次,選擇使用Nginx作為Web服務(wù)器,對(duì)系統(tǒng)進(jìn)行負(fù)載均衡的配置,運(yùn)用Nginx的負(fù)載均衡機(jī)制,以實(shí)現(xiàn)高性能和高并發(fā)處理能力。
最后,在運(yùn)行和測(cè)試系統(tǒng)后,系統(tǒng)能夠穩(wěn)定運(yùn)行并實(shí)現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)的實(shí)時(shí)展示和大量數(shù)據(jù)交互功能,通過(guò)了性能檢測(cè)以及可靠性、安全性的驗(yàn)證。運(yùn)行結(jié)果顯示該系統(tǒng)運(yùn)行平穩(wěn),能夠滿足用戶的需求。TCP測(cè)試結(jié)果如圖5所示,測(cè)試環(huán)境:Ubuntu20.0.4系統(tǒng);測(cè)試條件:并發(fā)連接10 000臺(tái)設(shè)備,每臺(tái)設(shè)備發(fā)送100條消息。
綜上所述,物聯(lián)網(wǎng)服務(wù)器系統(tǒng)經(jīng)過(guò)上述步驟的設(shè)計(jì)和搭建,能夠穩(wěn)定運(yùn)行,該設(shè)計(jì)可驗(yàn)證整個(gè)過(guò)程中的安全性和可靠性,系統(tǒng)的負(fù)載均衡配置確保了高可用性和可擴(kuò)展性。整體而言,該系統(tǒng)能夠有效地滿足物聯(lián)網(wǎng)場(chǎng)景的需求。
參考文獻(xiàn):
[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].電腦知識(shí)與技術(shù),2009,5(3):563-565,598.
[3]楊婷,莫若玉,張秀娟,等.輕量級(jí)緩存策略的關(guān)系型數(shù)據(jù)庫(kù)全文搜索加強(qiáng)與擴(kuò)展[J].計(jì)算機(jī)應(yīng)用,2023,43(8):2431-2438.
[4]趙華飛,徐踐,張娜.基于Netty的農(nóng)業(yè)物聯(lián)網(wǎng)服務(wù)器系統(tǒng)設(shè)計(jì)[J].現(xiàn)代農(nóng)業(yè)科技,2019(9):254-255.
[5]張榮.基于網(wǎng)站web服務(wù)器網(wǎng)絡(luò)安全的分析與設(shè)計(jì)[D].成都:四川大學(xué),2006.
[6]朱小平.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)安全技術(shù)的研究與實(shí)現(xiàn)[D].上海:同濟(jì)大學(xué),2006.
收稿日期:2023-09-17
基金項(xiàng)目:河南省科技攻關(guān)項(xiàng)目(242102241061、242102210131)。
作者簡(jiǎn)介:夏子昂(2002—),男,本科生,研究方向:嵌入式應(yīng)用開(kāi)發(fā)、圖像處理。
通信作者:葛明濤(1979—),男,博士,副教授,研究方向:信號(hào)處理、大數(shù)據(jù)分析。