專利名稱:基于iocp的海量終端設(shè)備接入系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種終端設(shè)備接入系統(tǒng),特別是基于IOCP的海量終端設(shè)備接入系統(tǒng)。
技術(shù)背景
隨著汽車行業(yè)的不斷發(fā)展,越來越多的車輛都開始裝有GPS導(dǎo)航設(shè)備,由于客戶需要隨時了解自己的車輛的行駛狀態(tài)和行駛位置,這樣在每個客戶的電腦上都需要安裝一個查車客戶端,供客戶隨時在客戶端上查看自己的車輛。此時,客戶端的接入量是檢驗一個服務(wù)器性能的重要指標(biāo)之一。假如有成百上千個客戶通過客戶端同時對自己的車輛進行操作,這樣服務(wù)器就需要對所有客戶端的請求進行處理,將指令下發(fā)到各個車輛的GPS設(shè)備上。如果采用傳統(tǒng)的多線程方式,服務(wù)器端在每個客戶端連入之后,都要啟動一個新的線程和客戶端進行通信,這樣有多少個客戶端,就需要啟動多少個線程,因為這些線程都是出于運行狀態(tài),系統(tǒng)必須在所有的線程之間進行切換,CPU忙著去切換線程,根本沒有時間去執(zhí)行線程體,所以效率非常低下。發(fā)明內(nèi)容
針對上述的問題,本發(fā)明提出基于IOCP的海量終端設(shè)備接入系統(tǒng)最大限度提高網(wǎng)絡(luò)通信性能。
本發(fā)明的技術(shù)方案是這樣實現(xiàn)的
基于IOCP的海量終端設(shè)備接入系統(tǒng),包括終端設(shè)備、通訊接入系統(tǒng)、監(jiān)控中心以及數(shù)據(jù)庫,數(shù)據(jù)庫與監(jiān)控中心連接,終端設(shè)備通過通訊接入系統(tǒng)連接到監(jiān)控中心。
進一步的,通訊接入系統(tǒng)包括
接入鏈路管理系統(tǒng)與所述終端設(shè)備以及監(jiān)控中心連接;
數(shù)據(jù)收發(fā)管理系統(tǒng)包括接收內(nèi)存隊列和發(fā)送內(nèi)存隊列,接收內(nèi)存隊列包括已用隊列和未用隊列;發(fā)送內(nèi)存隊列包括空閑隊列;
接入?yún)f(xié)議適配器用于解析不同協(xié)議的終端設(shè)備發(fā)送的數(shù)據(jù);
接入?yún)f(xié)議標(biāo)準(zhǔn)化模塊與接入?yún)f(xié)議適配器連接,將解析后的數(shù)據(jù)進行標(biāo)準(zhǔn)化封裝后發(fā)送到監(jiān)控中心;
終端設(shè)備管理系統(tǒng)包括終端設(shè)備接入層和終端設(shè)備控制系統(tǒng)。
再進一步的,終端設(shè)備控制系統(tǒng)包括
應(yīng)用協(xié)議轉(zhuǎn)換器監(jiān)控中心下發(fā)的指令通過應(yīng)用協(xié)議轉(zhuǎn)換器轉(zhuǎn)化成可識別的標(biāo)準(zhǔn)協(xié)議發(fā)送到終端設(shè)備接入層;
終端設(shè)備能力管理子系統(tǒng)用于記錄終端設(shè)備的功能信息,并將信息發(fā)送到監(jiān)控中心;
終端設(shè)備接入管理子系統(tǒng)用于控制終端設(shè)備的接入與否;
終端設(shè)備狀態(tài)管理子系統(tǒng)用于管理和記錄終端設(shè)備的運行狀態(tài)。
再進一步的,接入鏈路管理系統(tǒng)包括映射表、socket句柄以及連接容器;監(jiān)控中心下發(fā)指令數(shù)據(jù)時,映射表生成一個socket鏈表結(jié)構(gòu)添加到連接容器,socket鏈表結(jié)構(gòu)中存儲有SIM卡號、最新接收時間信息。
再進一步的,接入鏈路管理系統(tǒng)還包括超時判斷線程;超時判斷線程通過訪問 socket鏈表結(jié)構(gòu)獲取最新接收時間,當(dāng)最新接收時間超過規(guī)定值,則刪除連接容器內(nèi)的 socket鏈表結(jié)構(gòu)。
由上述對本發(fā)明的描述可知,和現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點
本發(fā)明能夠?qū)崿F(xiàn)海量終端設(shè)備的接入,滿足大量客戶同時在線的要求,只使用少量的線程來處理和客戶端的所有通信,消除了無謂的線程上下文切換,最大限度的提高了網(wǎng)絡(luò)通信的性能。提高系統(tǒng)運行效率,能夠為車輛監(jiān)控、管理等GPS終端設(shè)備接入應(yīng)用提供堅實的技術(shù)保障。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明的拓?fù)浣Y(jié)構(gòu)圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
定義為了有助于和澄清隨后的實施例的描述,對部分術(shù)語限定如下,下列的限定應(yīng)用于本說明書以及權(quán)利要求書。
IOCP :全稱 I/O Completion Port,中文譯為 1/0 完成端口。IOCP 是一個異步 1/0 的API,它可以高效地將1/0事件通知給應(yīng)用程序。
使用IOCP的基本步驟
Al :創(chuàng)建IOCP對象,由它負(fù)責(zé)管理多個Socket和1/0請求。
A2 :創(chuàng)建一個工作線程池,以便Socket發(fā)送1/0請求給IOCP對象后,由這些工作線程進行I/o操作。創(chuàng)建這些線程的時候,將這些線程綁定到IOCP上。
A3 :創(chuàng)建一個監(jiān)聽的socket。
A4 :輪詢,當(dāng)接收到了新的連接后,將socket和完成端口進行關(guān)聯(lián)并且投遞給 IOCP 一個1/0請求。
A5 : 因為是異步的,我們可以去做其他,等待IOCP將1/0操作完成會回饋一個消息,再進行處理。
實施例
基于IOCP的海量終端設(shè)備接入系統(tǒng),包括終端設(shè)備、通訊接入系統(tǒng)、監(jiān)控中心以及數(shù)據(jù)庫,數(shù)據(jù)庫與監(jiān)控中心連接,終端設(shè)備通過通訊接入系統(tǒng)連接到監(jiān)控中心。
通訊接入系統(tǒng),主要負(fù)責(zé)與車載終端設(shè)備之間通信鏈路的管理、數(shù)據(jù)收發(fā)。為了兼容不同的車載終端設(shè)備,在該層對車載終端設(shè)備到中心的數(shù)據(jù)進行協(xié)議標(biāo)準(zhǔn)化處理。通訊接入系統(tǒng)包括接入鏈路管理系統(tǒng)、數(shù)據(jù)收發(fā)管理系統(tǒng)、接入?yún)f(xié)議適配器、接入?yún)f(xié)議標(biāo)準(zhǔn)化模塊、終端設(shè)備管理系統(tǒng)。
B1、接入鏈路管理系統(tǒng)與所述終端設(shè)備以及監(jiān)控中心連接;為獲得通信模塊最大通信服務(wù)能力,本系統(tǒng)采用高效的IOCP (完全端口)技術(shù)。接入鏈路管理系統(tǒng)包括映射表、socket句柄(系統(tǒng)自動賦值)、連接容器以及超時判斷線程;監(jiān)控中心下發(fā)指令數(shù)據(jù)時, 映射表生成一個socket鏈表結(jié)構(gòu)添加到連接容器,socket鏈表結(jié)構(gòu)中存儲有SIM卡號、最新接收時間信息。當(dāng)有指令下方時候,系統(tǒng)根據(jù)SIM卡號連接容器內(nèi)找到到對應(yīng)的socket 句柄,然后根據(jù)此句柄發(fā)送數(shù)據(jù)到終端設(shè)備。超時判斷線程通過訪問socket鏈表結(jié)構(gòu)獲取最新接收時間,當(dāng)最新接收時間超過規(guī)定值,則認(rèn)為終端設(shè)備已經(jīng)接收超時掉線,則刪除連接容器內(nèi)的socket鏈表結(jié)構(gòu),釋放空間。當(dāng)有新終端設(shè)備上線或者掉線,需要把最新的終端設(shè)備在線情況發(fā)給上層服務(wù)。
B2、數(shù)據(jù)收發(fā)管理系統(tǒng)(內(nèi)存隊列)包括接收內(nèi)存隊列和發(fā)送內(nèi)存隊列,接收內(nèi)存隊列包括已用隊列和未用隊列;發(fā)送內(nèi)存隊列包括空閑隊列。
B21、接收到數(shù)據(jù)時接收內(nèi)存隊列中內(nèi)建“已用隊列”和“未用隊列”,從“未用隊列”中取出一個結(jié)點,將數(shù)據(jù)拷貝進去后,插入“已用隊列”;獲取一個“已用隊列”中的結(jié)點, 處理數(shù)據(jù)后,將該節(jié)點釋放給“未用隊列”。接收到數(shù)據(jù)后,存放在“已用隊列”中,并讓多個邏輯處理線程等待在“已用隊列”的出口處,一旦邏輯線程返回,表示從“已用隊列”中獲取了一個接收消息,然后開始處理。
B22、發(fā)送數(shù)據(jù)時發(fā)送內(nèi)存隊列中內(nèi)建一個“空閑隊列”,從“空閑隊列”中取出一個結(jié)點使用,使用完成后,將節(jié)點釋放給“空閑隊列”,以達到減少內(nèi)存碎片的作用。
B3、接入?yún)f(xié)議適配器用于解析不同協(xié)議的終端設(shè)備發(fā)送的數(shù)據(jù);為支持不同協(xié)議的終端設(shè)備接入,把對不同廠家的終端設(shè)備的數(shù)據(jù)解析按協(xié)議封裝成DLL,接入?yún)f(xié)議適配器從接收內(nèi)存隊列里取出數(shù)據(jù),判斷數(shù)據(jù)屬于哪種協(xié)議的數(shù)據(jù),然后調(diào)用對應(yīng)的DLL進行數(shù)據(jù)解析。
B4、接入?yún)f(xié)議標(biāo)準(zhǔn)化模塊與接入?yún)f(xié)議適配器連接,將解析后的數(shù)據(jù)進行標(biāo)準(zhǔn)化封裝后發(fā)送到監(jiān)控中心。
B5、終端設(shè)備管理系統(tǒng)包括終端設(shè)備接入層和終端設(shè)備控制系統(tǒng)。
B51、終端設(shè)備接入層主要包括通訊接入系統(tǒng)管理、版本、配置、路由信息管理、數(shù)據(jù)隊列處理幾個部分。
通訊接入系統(tǒng)管理主要對接入通訊接入系統(tǒng)的停用、啟用、最大連接數(shù)、線程池數(shù)、內(nèi)存池大小等進行管理控制。
版本管理終端設(shè)備固件程序的升級管理。
配置管理所有對終端設(shè)備的指令下發(fā)數(shù)據(jù),由此服務(wù)進行管理。
路由信息管理由于通訊接入系統(tǒng)和業(yè)務(wù)處理不是一對一的對應(yīng)關(guān)系,需要對通訊接入系統(tǒng)的路由信息進行管理。
B52、終端設(shè)備控制系統(tǒng)包括、應(yīng)用協(xié)議轉(zhuǎn)換器、終端設(shè)備能力管理子系統(tǒng)、終端設(shè)備接入管理子系統(tǒng)、終端設(shè)備狀態(tài)管理子系統(tǒng);
應(yīng)用協(xié)議轉(zhuǎn)換器監(jiān)控中心下發(fā)的指令通過應(yīng)用協(xié)議轉(zhuǎn)換器轉(zhuǎn)化成可識別的標(biāo)準(zhǔn)協(xié)議發(fā)送到終端設(shè)備接入層;
終端設(shè)備能力管理子系統(tǒng)用于記錄終端設(shè)備的功能信息,并將信息發(fā)送到監(jiān)控中心;不同廠家的終端可能存在功能上的不同,比如有的支持4路視頻,有的支持8路視頻,或者有的支持拍照有的不支持拍照,因此需要對終端的功能有專門的管理,這樣當(dāng)Π 往一個不支持拍照功能的終端發(fā)送拍照指令時,可以及時的告知此終端不支持拍照功能。
終端設(shè)備接入管理子系統(tǒng)用于控制終端設(shè)備的接入與否;比如當(dāng)某個運營商的服務(wù)費以及到期而沒有按規(guī)定及時續(xù)費,則可以對該運營商對應(yīng)的終端進行接入控制, 比如不讓上線,或者不讓在UI展示等。
終端設(shè)備狀態(tài)管理子系統(tǒng)用于管理和記錄終端設(shè)備的運行狀態(tài)。實際應(yīng)用中存在這樣的場景多個客戶同時對一個車輛下發(fā)定時拍照,或者同事對某個車輛進行重點監(jiān)控,但是可能某一個客戶中間又想停止拍照或者監(jiān)控,下發(fā)了停止指令,而為了不影響到其他客戶的使用,則需要對這樣的指令進行處理,這樣的指令不能下發(fā)到終端,而應(yīng)該是對停止拍照或者監(jiān)控的客戶不進行數(shù)據(jù)傳輸。這樣就需要對終端的狀態(tài)進行管理,以保證客戶的正常使用。
和現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點
本發(fā)明能夠?qū)崿F(xiàn)海量終端設(shè)備的接入,滿足大量客戶同時在線的要求,只使用少量的線程來處理和客戶端的所有通信,消除了無謂的線程上下文切換,最大限度的提高了網(wǎng)絡(luò)通信的性能。提高系統(tǒng)運行效率,能夠為車輛監(jiān)控、管理等GPS終端設(shè)備接入應(yīng)用提供堅實的技術(shù)保障。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng) 包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.基于IOCP的海量終端設(shè)備接入系統(tǒng),其特征在于包括終端設(shè)備、通訊接入系統(tǒng)、監(jiān)控中心以及數(shù)據(jù)庫,數(shù)據(jù)庫與監(jiān)控中心連接,終端設(shè)備通過通訊接入系統(tǒng)連接到監(jiān)控中心。
2.如權(quán)利要求1所述的基于IOCP的海量終端設(shè)備接入系統(tǒng),其特征在于通訊接入系統(tǒng)包括 接入鏈路管理系統(tǒng)與所述終端設(shè)備以及監(jiān)控中心連接; 數(shù)據(jù)收發(fā)管理系統(tǒng)包括接收內(nèi)存隊列和發(fā)送內(nèi)存隊列,接收內(nèi)存隊列包括已用隊列和未用隊列;發(fā)送內(nèi)存隊列包括空閑隊列; 接入?yún)f(xié)議適配器用于解析不同協(xié)議的終端設(shè)備發(fā)送的數(shù)據(jù); 接入?yún)f(xié)議標(biāo)準(zhǔn)化模塊與接入?yún)f(xié)議適配器連接,將解析后的數(shù)據(jù)進行標(biāo)準(zhǔn)化封裝后發(fā)送到監(jiān)控中心; 終端設(shè)備管理系統(tǒng)包括終端設(shè)備接入層和終端設(shè)備控制系統(tǒng)。
3.如權(quán)利要求2所述的基于IOCP的海量終端設(shè)備接入系統(tǒng),其特征在于終端設(shè)備控制系統(tǒng)包括 應(yīng)用協(xié)議轉(zhuǎn)換器監(jiān)控中心下發(fā)的指令通過應(yīng)用協(xié)議轉(zhuǎn)換器轉(zhuǎn)化成可識別的標(biāo)準(zhǔn)協(xié)議發(fā)送到終端設(shè)備接入層; 終端設(shè)備能力管理子系統(tǒng)用于記錄終端設(shè)備的功能信息,并將信息發(fā)送到監(jiān)控中心; 終端設(shè)備接入管理子系統(tǒng)用于控制終端設(shè)備的接入與否; 終端設(shè)備狀態(tài)管理子系統(tǒng)用于管理和記錄終端設(shè)備的運行狀態(tài)。
4.如權(quán)利要求2所述的基于IOCP的海量終端設(shè)備接入系統(tǒng),其特征在于接入鏈路管理系統(tǒng)包括映射表、socket句柄以及連接容器;監(jiān)控中心下發(fā)指令數(shù)據(jù)時,映射表生成一個socket鏈表結(jié)構(gòu)添加到連接容器,socket鏈表結(jié)構(gòu)中存儲有SIM卡號、最新接收時間信息。
5.如權(quán)利要求4所述的基于IOCP的海量終端設(shè)備接入系統(tǒng),其特征在于接入鏈路管理系統(tǒng)還包括超時判斷線程;超時判斷線程通過訪問socket鏈表結(jié)構(gòu)獲取最新接收時間,當(dāng)最新接收時間超過規(guī)定值,則刪除連接容器內(nèi)的socket鏈表結(jié)構(gòu)。
全文摘要
本發(fā)明提出基于IOCP的海量終端設(shè)備接入系統(tǒng)最大限度提高網(wǎng)絡(luò)通信性能。基于IOCP的海量終端設(shè)備接入系統(tǒng),包括終端設(shè)備、通訊接入系統(tǒng)、監(jiān)控中心以及數(shù)據(jù)庫,數(shù)據(jù)庫與監(jiān)控中心連接,終端設(shè)備通過通訊接入系統(tǒng)連接到監(jiān)控中心。
文檔編號H04L29/08GK103037011SQ201210575218
公開日2013年4月10日 申請日期2012年12月26日 優(yōu)先權(quán)日2012年12月26日
發(fā)明者簡書杰 申請人:泉州豪杰信息科技發(fā)展有限公司