本發(fā)明涉及數(shù)字電視廣播技術(shù)領(lǐng)域,更具體地說,涉及頻點(diǎn)資源分配方法和頻點(diǎn)資源管理服務(wù)器。
背景技術(shù):
頻點(diǎn)的資源是廣電進(jìn)行數(shù)據(jù)播發(fā)使用的一個(gè)很重要的資源。所有頻點(diǎn)的資源都是有限的,也是允許多客戶端共享的,這不可避免會(huì)發(fā)生在同一頻點(diǎn)、同一瞬時(shí)有多個(gè)客戶端都想要占用資源的情況,但在同一頻點(diǎn)、同一瞬時(shí)只能為一個(gè)客戶端分配資源。
為了防止因各客戶端在同一頻點(diǎn)競爭資源而導(dǎo)致資源分配混亂的問題,目前采取的措施是:客戶端在向頻點(diǎn)資源管理服務(wù)器發(fā)出資源申請的同時(shí),對所有頻點(diǎn)的資源加一個(gè)全局的鎖,加鎖后只有本客戶端能夠獲取資源、獲取到資源后對頻點(diǎn)資源管理服務(wù)器進(jìn)行寫操作(即填寫本客戶端要占用的頻點(diǎn)和帶寬),寫操作完成后解鎖,這樣保證了在同一頻點(diǎn)、同一瞬時(shí)只為一個(gè)客戶端分配資源。
但該措施下,頻點(diǎn)資源管理服務(wù)器只能逐個(gè)地為各客戶端分配資源,而排在越后面的客戶端等待時(shí)間就越長,而且網(wǎng)絡(luò)間交互耗費(fèi)時(shí)間較多,這些都導(dǎo)致了資源分配效率太低。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種頻點(diǎn)資源分配方法和頻點(diǎn)資源管理服務(wù)器,以防止因各客戶端在同一頻點(diǎn)上競爭資源而導(dǎo)致資源分配混亂的問題,同時(shí)提高資源分配效率。
一種頻點(diǎn)資源分配方法,應(yīng)用于頻點(diǎn)資源管理服務(wù)器,所述方法包括:
讀取客戶端發(fā)送的資源申請;
遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)的資源是否被加鎖以及當(dāng)前頻點(diǎn)是否有足夠分配的資源;
若當(dāng)前頻點(diǎn)的資源已被加鎖和/或當(dāng)前頻點(diǎn)沒有足夠分配的資源,繼續(xù)對下一頻點(diǎn)進(jìn)行判斷;
若當(dāng)前頻點(diǎn)的資源未被加鎖并且當(dāng)前頻點(diǎn)有足夠分配的資源,在當(dāng)前頻點(diǎn)上為本客戶端分配資源,同時(shí)對當(dāng)前頻點(diǎn)的資源加鎖,直至為本客戶端資源分配完成后才解鎖。
可選地,所述繼續(xù)對下一頻點(diǎn)進(jìn)行判斷之前,還包括:
判斷當(dāng)前頻點(diǎn)是否為最后一個(gè)頻點(diǎn);
若當(dāng)前頻點(diǎn)并非最后一個(gè)頻點(diǎn),進(jìn)入所述繼續(xù)對下一頻點(diǎn)進(jìn)行判斷的步驟;
若當(dāng)前頻點(diǎn)為最后一個(gè)頻點(diǎn),生成并輸出提示申請失敗的信號。
可選地,所述讀取客戶端發(fā)送的資源申請后,還包括:
對本客戶端進(jìn)行鑒權(quán);
若鑒權(quán)通過,執(zhí)行所述遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)是否為目標(biāo)頻點(diǎn)的步驟。
一種頻點(diǎn)資源管理服務(wù)器,包括:
輸入端口,用于讀取客戶端發(fā)送的資源申請
處理器,用于遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)的資源是否被加鎖以及當(dāng)前頻點(diǎn)是否有足夠分配的資源;若當(dāng)前頻點(diǎn)的資源已被加鎖和/或當(dāng)前頻點(diǎn)沒有足夠分配的資源,繼續(xù)對下一頻點(diǎn)進(jìn)行判斷;若當(dāng)前頻點(diǎn)的資源未被加鎖并且當(dāng)前頻點(diǎn)有足夠分配的資源,在當(dāng)前頻點(diǎn)上為本客戶端分配資源,同時(shí)對當(dāng)前頻點(diǎn)的資源加鎖,直至為本客戶端資源分配完成后才解鎖。
可選地,所述處理器在繼續(xù)對下一頻點(diǎn)進(jìn)行判斷之前,還用于:判斷當(dāng)前頻點(diǎn)是否為最后一個(gè)頻點(diǎn);若當(dāng)前頻點(diǎn)并非最后一個(gè)頻點(diǎn),進(jìn)入所述繼續(xù)對下一頻點(diǎn)進(jìn)行判斷的步驟;若當(dāng)前頻點(diǎn)為最后一個(gè)頻點(diǎn),生成并輸出提示申請失敗的信號。
可選地,所述處理器在所述輸入端口讀取客戶端發(fā)送的資源申請后,還用于對本客戶端進(jìn)行鑒權(quán);若鑒權(quán)通過,執(zhí)行所述遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)的資源是否被加鎖以及當(dāng)前頻點(diǎn)是否有足夠分配的資源的步驟。
從上述的技術(shù)方案可以看出,本發(fā)明在任一頻點(diǎn)為一個(gè)客戶端分配資源時(shí),僅對本頻點(diǎn)的資源加鎖,而不是對所有頻點(diǎn)的資源加全局鎖,這樣不僅防止了因各客戶端在同一頻點(diǎn)上競爭資源而導(dǎo)致資源分配混亂的問題,而且可以實(shí)現(xiàn)同時(shí)有多個(gè)頻點(diǎn)為不同客戶端分配資源,因而提高了資源分配效率。并且,本發(fā)明從客戶端發(fā)送資源申請直至資源分配結(jié)束的整個(gè)過程,都只需要在頻點(diǎn)資源管理服務(wù)器中進(jìn)行操作,因此客戶端與頻點(diǎn)資源管理服務(wù)器間交互耗費(fèi)時(shí)間較少,這進(jìn)一步提高了資源分配效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例公開的一種頻點(diǎn)資源分配方法流程圖;
圖2為本發(fā)明實(shí)施例公開的又一種頻點(diǎn)資源分配方法流程圖;
圖3為本發(fā)明實(shí)施例公開的一種頻點(diǎn)資源管理服務(wù)器結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參見圖1,本發(fā)明實(shí)施例公開了一種頻點(diǎn)資源分配方法,應(yīng)用于頻點(diǎn)資源管理服務(wù)器,以防止因各客戶端在同一頻點(diǎn)上競爭資源而導(dǎo)致資源分配混亂的問題,同時(shí)提高資源分配效率,所述頻點(diǎn)資源分配方法包括:
步驟s01:讀取客戶端發(fā)送的資源申請。
具體的,客戶端發(fā)送的資源申請實(shí)質(zhì)就是對頻點(diǎn)的帶寬資源的申請。所述資源申請中除了包含本客戶端申請的帶寬,通常還攜帶有本客戶端的區(qū)域碼、本客戶端申請的節(jié)目信息等。
步驟s02:遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)的資源是否未被加鎖以及當(dāng)前頻點(diǎn)是否有足夠分配的資源;如果當(dāng)前頻點(diǎn)的資源已被加鎖和/或當(dāng)前頻點(diǎn)沒有足夠分配的資源,繼續(xù)對下一頻點(diǎn)進(jìn)行判斷;如果當(dāng)前頻點(diǎn)的資源未被加鎖并且當(dāng)前頻點(diǎn)有足夠分配的資源,則進(jìn)入步驟s03。
其中,所述判斷當(dāng)前頻點(diǎn)的資源是否未被加鎖以及當(dāng)前頻點(diǎn)是否有足夠分配的資源,目的為了判斷是否允許在當(dāng)前頻點(diǎn)上為本客戶端分配資源。
具體的,由于所有頻點(diǎn)的資源都是有限的,所以在采用當(dāng)前頻點(diǎn)為本客戶端分配資源前,首先要判斷當(dāng)前頻點(diǎn)是否有足夠分配的資源,如果當(dāng)前頻點(diǎn)沒有足夠分配的資源,則不允許在當(dāng)前頻點(diǎn)上為本客戶端分配資源。其中,所述判斷當(dāng)前頻點(diǎn)是否有足夠分配的資源,具體是指:判斷當(dāng)前頻點(diǎn)已被占用的帶寬與本客戶端申請的帶寬之和是否小于當(dāng)前頻點(diǎn)的帶寬限額,若是,則判定當(dāng)前頻點(diǎn)有足夠分配的資源,若否,則判定當(dāng)前頻點(diǎn)沒有足夠分配的資源。
同時(shí),由于本發(fā)明實(shí)施例采用了鎖機(jī)制(鎖機(jī)制的詳述請參見下文),使得當(dāng)前頻點(diǎn)的資源被加鎖后不能在該頻點(diǎn)為客戶端分配資源,所以在采用當(dāng)前頻點(diǎn)為本客戶端分配資源前,還要判斷當(dāng)前頻點(diǎn)的資源是否被加鎖,若已加鎖,說明頻點(diǎn)資源管理服務(wù)器正在該頻點(diǎn)上為其他客戶端分配資源,此刻不支持在該頻點(diǎn)上為本客戶端分配資源。
只有在當(dāng)前頻點(diǎn)有足夠分配的資源,并且當(dāng)前頻點(diǎn)的資源未被加鎖的情況下,才允許在當(dāng)前頻點(diǎn)上為本客戶端分配資源。
步驟s03:在當(dāng)前頻點(diǎn)上為本客戶端分配資源,同時(shí)對當(dāng)前頻點(diǎn)的資源加鎖,直至為本客戶端資源分配完成后才解鎖。
具體的,為了防止因各客戶端在同一頻點(diǎn)競爭資源而導(dǎo)致資源分配混亂的問題,本發(fā)明實(shí)施例采用了鎖機(jī)制,結(jié)合步驟s02-步驟s03可知該鎖機(jī)制具體可描述為:在任一頻點(diǎn)為一個(gè)客戶端分配資源時(shí),對當(dāng)前頻點(diǎn)的資源加鎖,加鎖后不能在當(dāng)前頻點(diǎn)為其他客戶端分配資源,直至為本客戶端資源分配完成后才解鎖,才能在當(dāng)前頻點(diǎn)為下一客戶端分配資源,從而防止了因各客戶端在同一頻點(diǎn)上競爭資源而導(dǎo)致資源分配混亂的問題。而且相較于現(xiàn)有技術(shù)采用的鎖機(jī)制,本發(fā)明實(shí)施例中各頻點(diǎn)的資源是否需要加鎖是互不影響的,所以還可以實(shí)現(xiàn)同時(shí)有多個(gè)頻點(diǎn)為不同客戶端分配資源,從而提高了資源分配效率。
現(xiàn)有技術(shù)和本發(fā)明實(shí)施例采用的鎖機(jī)制可以用一個(gè)形象的例子進(jìn)行對比說明:一個(gè)停車場里有多個(gè)車位,為了防止同一瞬時(shí)有多輛車搶占同一車位的情況,現(xiàn)有技術(shù)為停車場大門上鎖,在同一瞬時(shí)只能有一輛車進(jìn)入停車場;而本發(fā)明實(shí)施例是針對車位上鎖,在同一瞬時(shí)可以有多輛車分別進(jìn)入停車場的不同車位,效率更高。
由上述描述可知,本發(fā)明實(shí)施例在任一頻點(diǎn)為一個(gè)客戶端分配資源時(shí),僅對本頻點(diǎn)的資源加鎖,而不是對所有頻點(diǎn)的資源加全局鎖,這樣不僅防止了因各客戶端在同一頻點(diǎn)上競爭資源而導(dǎo)致資源分配混亂的問題,而且可以實(shí)現(xiàn)同時(shí)有多個(gè)頻點(diǎn)為不同客戶端分配資源,因而提高了資源分配效率。
并且,本發(fā)明實(shí)施例中,從客戶端發(fā)送資源申請直至資源分配結(jié)束的整個(gè)過程,都只需要在頻點(diǎn)資源管理服務(wù)器中進(jìn)行操作,因此客戶端與頻點(diǎn)資源管理服務(wù)器間交互耗費(fèi)時(shí)間較少,這進(jìn)一步提高了資源分配效率。
可選地,在本發(fā)明實(shí)施例公開的又一種頻點(diǎn)資源分配方法中,所述繼續(xù)對下一頻點(diǎn)進(jìn)行判斷之前,還包括:判斷當(dāng)前頻點(diǎn)是否為最后一個(gè)頻點(diǎn);若否,進(jìn)入所述繼續(xù)對下一頻點(diǎn)進(jìn)行判斷的步驟;若是,生成并輸出提示申請失敗的信號,從而避免程序空轉(zhuǎn)。所述又一種頻點(diǎn)資源分配方法的具體方案如圖2所示,包括:
步驟s01:讀取客戶端發(fā)送的資源申請。
具體的,客戶端發(fā)送的資源申請實(shí)質(zhì)就是對頻點(diǎn)的帶寬資源的申請。所述資源申請中除了包含本客戶端申請的帶寬,通常還攜帶有本客戶端的區(qū)域碼、本客戶端申請的節(jié)目信息等。
步驟s02:遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)的資源是否未被加鎖以及當(dāng)前頻點(diǎn)是否有足夠分配的資源;如果當(dāng)前頻點(diǎn)的資源已被加鎖和/或當(dāng)前頻點(diǎn)沒有足夠分配的資源,進(jìn)入步驟s03;如果當(dāng)前頻點(diǎn)的資源未被加鎖并且當(dāng)前頻點(diǎn)有足夠分配的資源,則進(jìn)入步驟s05。
步驟s03:判斷當(dāng)前頻點(diǎn)是否為最后一個(gè)頻點(diǎn);若當(dāng)前頻點(diǎn)并非最后一個(gè)頻點(diǎn),返回步驟s02繼續(xù)遍歷下一頻點(diǎn);若當(dāng)前頻點(diǎn)為最后一個(gè)頻點(diǎn),進(jìn)入步驟s04。
步驟s04:生成并輸出提示申請失敗的信號,本客戶端的資源申請以失敗告終。
步驟s05:在當(dāng)前頻點(diǎn)上為本客戶端分配資源,同時(shí)對當(dāng)前頻點(diǎn)的資源加鎖,直至為本客戶端資源分配完成后才解鎖。
可選地,基于上述任一實(shí)施例,在本發(fā)明實(shí)施例公開的又一種頻點(diǎn)資源分配方法中,所述讀取客戶端發(fā)送的資源申請后,還包括:對本客戶端進(jìn)行鑒權(quán);若鑒權(quán)通過,執(zhí)行所述遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)是否為目標(biāo)頻點(diǎn)的步驟,從而避免未授權(quán)用戶竊取資源。
此外,參見圖3,本發(fā)明實(shí)施例公開了一種頻點(diǎn)資源管理服務(wù)器,包括:
輸入端口100,用于讀取客戶端發(fā)送的資源申請;
處理器200,用于遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)的資源是否被加鎖以及當(dāng)前頻點(diǎn)是否有足夠分配的資源;若當(dāng)前頻點(diǎn)的資源已被加鎖和/或當(dāng)前頻點(diǎn)沒有足夠分配的資源,繼續(xù)對下一頻點(diǎn)進(jìn)行判斷;若當(dāng)前頻點(diǎn)的資源未被加鎖并且當(dāng)前頻點(diǎn)有足夠分配的資源,在當(dāng)前頻點(diǎn)上為本客戶端分配資源,同時(shí)對當(dāng)前頻點(diǎn)的資源加鎖,直至為本客戶端資源分配完成后才解鎖。
可選的,處理器200在繼續(xù)對下一頻點(diǎn)進(jìn)行判斷之前,還用于:判斷當(dāng)前頻點(diǎn)是否為最后一個(gè)頻點(diǎn);若當(dāng)前頻點(diǎn)并非最后一個(gè)頻點(diǎn),進(jìn)入所述繼續(xù)對下一頻點(diǎn)進(jìn)行判斷的步驟;若當(dāng)前頻點(diǎn)為最后一個(gè)頻點(diǎn),生成并輸出提示申請失敗的信號。
可選的,處理器200在所述輸入端口讀取客戶端發(fā)送的資源申請后,還用于對本客戶端進(jìn)行鑒權(quán);若鑒權(quán)通過,執(zhí)行所述遍歷各個(gè)頻點(diǎn),判斷當(dāng)前頻點(diǎn)的資源是否被加鎖以及當(dāng)前頻點(diǎn)是否有足夠分配的資源的步驟。
綜上所述,本發(fā)明在任一頻點(diǎn)為一個(gè)客戶端分配資源時(shí),僅對本頻點(diǎn)的資源加鎖,而不是對所有頻點(diǎn)的資源加全局鎖,這樣不僅防止了因各客戶端在同一頻點(diǎn)上競爭資源而導(dǎo)致資源分配混亂的問題,而且可以實(shí)現(xiàn)同時(shí)有多個(gè)頻點(diǎn)為不同客戶端分配資源,因而提高了資源分配效率。并且,本發(fā)明從客戶端發(fā)送資源申請直至資源分配結(jié)束的整個(gè)過程,都只需要在頻點(diǎn)資源管理服務(wù)器中進(jìn)行操作,因此客戶端與頻點(diǎn)資源管理服務(wù)器間交互耗費(fèi)時(shí)間較少,這進(jìn)一步提高了資源分配效率。
本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的頻點(diǎn)資源管理服務(wù)器而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明實(shí)施例的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明實(shí)施例將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。