專利名稱:媒體流在線服務(wù)遷移的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種媒體流在線服務(wù)遷移的方法和 裝置。
背景技術(shù):
近年來,隨著網(wǎng)絡(luò)帶寬的提高和用戶規(guī)模的增加,寬帶網(wǎng)絡(luò)以及各種新
業(yè)務(wù)得到了很大的發(fā)展。IPTV (交互式網(wǎng)絡(luò)電視)作為寬帶網(wǎng)絡(luò)中的新一代 業(yè)務(wù)越來越受到重視,IPTV代表了基于IP網(wǎng)絡(luò)的新型視頻傳播業(yè)務(wù)的發(fā)展方 向。在IPTV中,主要通過流^ 某體服務(wù)器等核心部件來保證可靠的傳輸質(zhì)量和 完美的顯示效果,流媒體服務(wù)器擔(dān)負(fù)著視頻文件的存儲,和將視頻文件以流 的方式推送到網(wǎng)絡(luò)中去的任務(wù),因此,流媒體服務(wù)器需要有很高的性能和可 靠性要求。
單 一 的流媒體服務(wù)器難以滿足I PTV業(yè)務(wù)的數(shù)據(jù)處理量大、數(shù)據(jù)吞吐量 高、視頻播放實時性、客戶連接請求數(shù)目大、連接時間長等需求。為了提高 流媒體服務(wù)器的性能和可靠性,目前主要采用負(fù)載均衡的松散耦合集群方式 的流媒體服務(wù)器系統(tǒng),該流媒體服務(wù)器系統(tǒng)的 一種結(jié)構(gòu)示意圖如圖1所示, 該流媒體服務(wù)器系統(tǒng)中的一種基本的媒體流點播的處理流程如圖2所示。具 體處理過程如下
用戶客戶端首先向設(shè)置在負(fù)載均衡器上的RTSP (Real-Time Streaming Protocol,實時流媒體協(xié)議)代理發(fā)送媒體流Operation (操作)請求,該操 作包括Option (選擇),Describe (描述),Setup (建立),Play (播放),Pause (暫停),Teardown (下載)等RTSP方法,RTSP代理將接收
到的媒體流操作請求轉(zhuǎn)發(fā)給流媒體服務(wù)器。流媒體服務(wù)器對接收到的媒體流 操作請求進(jìn)行處理后,向RTSP代理返回媒體流操作響應(yīng),RTSP代理將接收 到的媒體流操作響應(yīng)再轉(zhuǎn)發(fā)給用戶客戶端。整個流媒體服務(wù)器系統(tǒng)(包括負(fù) 載均衡器和后臺的流媒體服務(wù)器)對外只顯示一個ip地址(即Rtsp代理的ip 地址)。
在媒體服務(wù)器系統(tǒng)中,用戶/應(yīng)用程序?qū)γ襟w流的需求被映射成為服務(wù)。 采用集群方式的媒體服務(wù)器系統(tǒng)主要存在著以下兩個問題
1、 當(dāng)媒體內(nèi)容在各個流媒體服務(wù)器節(jié)點上分布不合理時,會引起媒體流 服務(wù)分布不合理,從而造成部分流媒體服務(wù)器發(fā)生性能瓶頸。
2、 即使媒體內(nèi)容在各個流媒體服務(wù)器節(jié)點上分布不合理,但是由于請求 調(diào)度技術(shù)不完善以及用戶終止流服務(wù)等操作,也會51起媒體流服務(wù)分布的不 合理,造成部分流媒體服務(wù)器發(fā)生性能瓶頸。
在集群系統(tǒng)中,目前研究的遷移技術(shù)是進(jìn)程遷移。在進(jìn)程運行過程中, 根據(jù)系統(tǒng)的負(fù)載情況,通過將進(jìn)程從負(fù)載較重的節(jié)點轉(zhuǎn)移到另 一 負(fù)載較輕的 節(jié)點繼續(xù)運行,可以有效的實現(xiàn)負(fù)載動態(tài)均衡。進(jìn)程遷移技術(shù)使得動態(tài)調(diào)度 成為可能。但是由于目前的絕大多數(shù)應(yīng)用是面向服務(wù)的,采用進(jìn)程遷移往往 是不合適的。比如服務(wù)器A通過創(chuàng)建的5個線程正在對5個用戶提供服務(wù),如 果通過進(jìn)程遷移把該進(jìn)程遷移到服務(wù)器B上,則5個用戶需要全部遷移走。但 是5個用戶可能播放的進(jìn)度不一樣,并且集群系統(tǒng)可能只需要遷移一個用 戶,就能達(dá)到負(fù)載的平衡。
發(fā)明內(nèi)容
本發(fā)明實施例的目的是提供一種媒體流在線服務(wù)遷移的方法和裝置,從 而可以解決現(xiàn)有進(jìn)程遷移的方法將造成媒體流傳送的中斷的問題。本發(fā)明實施例的目的是通過以下技術(shù)方案實現(xiàn)的 一種媒體流在線服務(wù)遷移的方法,包括
負(fù)載均衡器向正在向用戶提供媒體流服務(wù)的第一流媒體服務(wù)器發(fā)送服務(wù) 遷移消息,所述第 一流媒體服務(wù)器根據(jù)所述服務(wù)遷移消息中指示的數(shù)據(jù)包的 位置信息,停止向所述用戶提供媒體流服務(wù);
所述負(fù)載均衡器向第二流媒體服務(wù)器發(fā)送媒體流操作請求,所述第二流 媒體服務(wù)器根據(jù)所述媒體流操作請求中指示的數(shù)據(jù)包的位置信息,向所述用 戶提供媒體流服務(wù)。
一種負(fù)載均衡器,包括
服務(wù)遷出模塊,用于向正在向用戶提供媒體流服務(wù)的第 一流媒體服務(wù)器 發(fā)送服務(wù)遷出消息,所述第一流媒體服務(wù)器根據(jù)所述服務(wù)遷移消息中指示的 數(shù)據(jù)包的位置信息,停止向用戶提供媒體流服務(wù);
服務(wù)遷入模塊,用于向第二流媒體服務(wù)器發(fā)送媒體流操作請求,所述第 二流媒體服務(wù)器根據(jù)所述媒體流操作請求中指示的數(shù)據(jù)包的位置信息,向所 述用戶提供媒體流服務(wù)。
一種流纟某體服務(wù)器,包括
服務(wù)遷移消息解析模塊,用于接收負(fù)載均衡器發(fā)送的服務(wù)遷移消息,對 該服務(wù)遷移消息進(jìn)行解析,獲取所述服務(wù)遷移消息中攜帶的數(shù)據(jù)包的位置信 息,將該位置信息傳遞給遷出服務(wù)實現(xiàn)模塊;
遷出服務(wù)實現(xiàn)模塊,用于在向用戶發(fā)送的數(shù)據(jù)包的位置達(dá)到所述服務(wù)遷 移消息解析模塊所獲取的位置信息時,停止向用戶提供媒體流服務(wù)。
一種流纟某體服務(wù)器,包括
媒體流操作請求解析模塊,用于接收負(fù)載均衡器發(fā)送的媒體流操作請 求,對該媒體流操作請求進(jìn)行解析,獲取所述媒體流操作請求中攜帶的數(shù)據(jù)包的位置信息、媒體流同步資源、時間偏移和用戶信息,并傳遞給遷入服務(wù)實現(xiàn)模塊;遷入服務(wù)實現(xiàn)模塊,用于根據(jù)所述媒體流操作請求解析模塊所傳遞過來 的信息,從所述媒體流同步資源獲取相應(yīng)的媒體流信息,從所述時間偏移指 示的時間開始,根據(jù)數(shù)據(jù)包的位置信息向所述用戶發(fā)送媒體流。由上述本發(fā)明實施例提供的技術(shù)方案可以看出,本發(fā)明可以使媒體流在 服務(wù)過程中,從當(dāng)前服務(wù)節(jié)點實時遷移到指定的服務(wù)節(jié)點,從而實現(xiàn)動態(tài)的 負(fù)載均衡服務(wù),提高系統(tǒng)資源的利用率。
圖1為現(xiàn)有的流媒體服務(wù)器系統(tǒng)的 一種結(jié)構(gòu)示意圖;圖2為現(xiàn)有的流媒體服務(wù)器系統(tǒng)中的一種基本的媒體流點播的處理流程圖;圖3為以采用了負(fù)載均衡器的流媒體服務(wù)器系統(tǒng)為例,本發(fā)明實施例提出的媒體流在線服務(wù)遷移的方法的處理流程圖;圖4為本發(fā)明實施例提出的媒體流服務(wù)遷出的具體處理流程圖; 圖5為本發(fā)明實施例提出的媒體流服務(wù)遷入的具體處理流程圖; 圖6為本發(fā)明提供的負(fù)載均衡器的實施例的結(jié)構(gòu)示意圖; 圖7為本發(fā)明提供的一種流j泉體服務(wù)器的實施例的結(jié)構(gòu)示意圖; 圖8為本發(fā)明提供的另 一種流媒體服務(wù)器的實施例的結(jié)構(gòu)示意圖。
具體實施方式
在本發(fā)明實施例中,提出了在線服務(wù)遷移的概念,服務(wù)遷移是指一個服 務(wù)從當(dāng)前服務(wù)節(jié)點移動到指定的服務(wù)節(jié)點上。也就是說,流媒體服務(wù)器集群 系統(tǒng)中的各個服務(wù)器節(jié)點不再是一個孤立的節(jié)點,而是整個系統(tǒng)中的 一個有機的部分。并且在進(jìn)行服務(wù)遷移的過程中,能保證媒體流不中斷,對客戶端 不造成任何影響。以采用了負(fù)載均衡器的流媒體服務(wù)器系統(tǒng)為例,本發(fā)明實施例提出的媒體流服務(wù)遷移的方法的處理流程如圖3所示,包括如下處理步驟步驟31、用戶終端首先向設(shè)置在負(fù)載均衡器上的RtspProxy ( RTSP代 理)發(fā)送媒體流Operation (操作)請求,該操作包括Option, Describe, Setup, Play等RTSP方法,RtspProxy將接收到的媒體流操作請求轉(zhuǎn)發(fā)給源 流媒體服務(wù)器。源流媒體服務(wù)器對接收到的媒體流操作請求進(jìn)行處理后,向 RTSP代理返回媒體流操作響應(yīng),RtspProxy將接收到的媒體流操作響應(yīng)再轉(zhuǎn) 發(fā)給用戶客戶端。步驟32、當(dāng)負(fù)載均衡器發(fā)現(xiàn)上述源流媒體服務(wù)器的負(fù)載比較大或媒體流 分布不合理時,決定將該源流媒體服務(wù)器上的給上述用戶終端提供的媒體流 傳送服務(wù),遷移到其他能夠提供所請求的服務(wù)且負(fù)載比較輕或者能使得媒體 流分布更合理的流媒體服務(wù)器上。于是,負(fù)載均衡器根據(jù)各個流媒體服務(wù)器 的負(fù)載情況,選擇一個合理的目標(biāo)流^f某體服務(wù)器。RtspProxy向源流媒體服務(wù)器發(fā)送Handoff (遷移)命令,源流媒體服務(wù) 器對上述Handoff命令進(jìn)行處理后,向負(fù)載均衡器返回Handoff命令的響應(yīng), 從而實現(xiàn)媒體流服務(wù)的遷出,該媒體流服務(wù)遷出的具體處理流程如圖4所 示,具體處理過程為在流媒體服務(wù)器中, 一個媒體流的數(shù)據(jù)幀首先被封裝成一個sample (采 樣),該sample再被分成多個packet (包),然后通過rtp協(xié)議發(fā)送給用戶終 端。因jt匕,可以通過sampleSeq (sample序歹'J號)+packetSeq (包序歹'J號) 來定位出每個包的具體位置,這樣在服務(wù)遷移的時候可以將粒度精確到 一個 包。RtspProxy在決定遷移服務(wù)時,向源流媒體服務(wù)器上的RtspSession (會 話處理)模塊發(fā)出Handoff (遷移)命令,RtspSession模塊是流媒體服務(wù)器 的核心模塊之一,其主要功能是維護(hù)客戶與服務(wù)器連接期間的不同狀態(tài),并 對這些不同的狀態(tài)做出相應(yīng)的反應(yīng),例如用戶請求解析的時候,它會調(diào)用請 求解析的函數(shù)解析請求。上述Handoff命令包含如下參數(shù)Handoff:用來表示這是一個Handoff命令。CSeq:用來表示需要保持依次遞增。Session:用來表示表示會i舌ID。SampleNum, PacketNum:用來表示采樣凄t值和包凄t值,這兩個字賴: 表示接收到HandoffStop命令后,經(jīng)過多少個幀和包后結(jié)束發(fā)送數(shù)據(jù),兩個字 段需要同時設(shè)置??蛇x參數(shù)Interval:用來表示接受到Handoff命令后,經(jīng)過多久后結(jié)束發(fā)送數(shù)據(jù), 該參數(shù)以什ame為粒度。RtspSession模塊在收到遷移"Handoff'命令后,首先檢查遷移命令是否 有效,如果有效,則通過調(diào)用新增的接口函數(shù)向源流媒體服務(wù)器上的 QTRTPFile (流化處理)模塊發(fā)送通知消息。QTRTPFile模塊是流媒體服務(wù) 器的核心模塊之一,其主要功能將媒體文件流化為數(shù)據(jù)包,并將數(shù)據(jù)包發(fā)送 給其它的調(diào)用模塊。上述通知消息中攜帶上述Handoff命令中包含的 SampleNum, PacketNum,以及l(fā)nterval參數(shù)信息。QTRTPFile模塊接收到上述通知消息后,根據(jù)上述SampleNum , PacketNum,以及l(fā)nterval參數(shù)信息,定位出具體的數(shù)據(jù)幀和數(shù)據(jù)包的位置, 在向用戶發(fā)送的數(shù)據(jù)包到該位置后,停止向用戶發(fā)送數(shù)據(jù)包。RtspSession 模塊也根據(jù)上述SampleNum, PacketNum,以及l(fā)nterval參數(shù)信息,定位出具體的數(shù)據(jù)幀和數(shù)據(jù)包的位置,并向RtspProxy發(fā)送攜帶該位置信息的 Handoff response消息。上述Handoff Response命令包含如下參數(shù)RTSP/1.0 200OK\r\n:用來表示遷出服務(wù)成功;Cseq:用來表示相應(yīng)的Cseq;Session:用來表示會i舌ID;SSRCV:用來表示視頻track的SSRC;TimeStampOffsetV:用來表示時間戳的初始偏移;SSRCA:用來表示音頻track的SSRC;TimeStampOffsetV:用來表示時間戳的初始偏移;SampleSeqA:用來表示下一個數(shù)據(jù)包所處的sample的序列號;PacketSeqA:用來表示下一個數(shù)據(jù)包的序列號;packetCount:用來表示發(fā)送的數(shù)據(jù)包數(shù)目;byteCount:用來表示發(fā)送的字節(jié)數(shù)PlayTime:用來表示代表源服務(wù)器的系統(tǒng)時鐘時間;在Handoff命令無效或者定位數(shù)據(jù)幀和數(shù)據(jù)包的位置出錯的情況下, RtspSession模塊發(fā)送給RtspProxy的Handoff Response命令包含的參數(shù)為RTSP/1.0 xxx \r\n :用來表示出現(xiàn)錯誤。步驟33、當(dāng)負(fù)載均衡器中的RtspProxy接收到上述攜帶遷出服務(wù)成功參 數(shù)的Handoff Response命令后,向上述目標(biāo)流媒體服務(wù)器發(fā)送媒體流操作請 求,目標(biāo)流媒體服務(wù)器對接收到的媒體流操作請求進(jìn)行處理后,向 RtspProxy返回媒體流操作響應(yīng),實現(xiàn)媒體流服務(wù)遷入。然后,目標(biāo)流媒體 服務(wù)器代替上述源流媒體服務(wù)器向用戶發(fā)送媒體流。上述媒體流服務(wù)遷入的 具體處理流程如圖5所示,具體處理過程為將媒體流服務(wù)遷入當(dāng)作一個新的點播請求,RtspProxy先分別向目標(biāo)流媒 體服務(wù)器中的RtspSession模塊發(fā)送Option, Describe操作,目標(biāo)流媒體服務(wù) 器向RtspProxy返回Option, Describe操作的響應(yīng)。然后,RtspProxy向目標(biāo) 流媒體服務(wù)器發(fā)送擴展后的Setup命令,在Setup命令的TransportHeader中 添加如下參數(shù)SSRC (同步資源,Synchronization source )、 SampleSeq 、 PacketSeq 、 TimeStampOffset(時間{扁移)、ClientlP 、 PacketCount (報文數(shù))、byteCount (字節(jié)數(shù))、playTJme (播放時間)。 把這些參數(shù)放到。RtspSession在接收到上述擴展的Setup命令后,通過擴展的 ParseTransportHeader()函數(shù)獲取該擴展的Setup命令中的上述參數(shù)值,根據(jù) SampleSeq 、 PacketSeq 、 TimeStampOffset參數(shù)信息,定位出具體的數(shù)據(jù) 幀和數(shù)據(jù)包的位置,該位置為目標(biāo)流媒體服務(wù)器向用戶發(fā)送的媒體流的數(shù)據(jù) 包的起始位置。向目標(biāo)流媒體服務(wù)器中的QTRTPFile模塊發(fā)送該位置信息、 時間偏移的值和SSRC的值,向RtspProxy返回上述擴展的Setup命令的相 應(yīng)。然后,RtspProxy向目標(biāo)流媒體服務(wù)器中的RtspSession模塊發(fā)送Play操 作,RtspSession才莫塊向RtspProxy返回Play才喿作的相應(yīng)。i某體流服務(wù)遷入過 程結(jié)束。之后,目標(biāo)流媒體服務(wù)器中的QTRTPFile模塊從同步資源中獲取媒體流 信息,從所述時間偏移指示的時間開始,根據(jù)數(shù)據(jù)包的位置信息向所述用戶 發(fā)送媒體流。本發(fā)明提供的負(fù)載均衡器的實施例的結(jié)構(gòu)示意圖如圖6所示,包括如下模塊服務(wù)遷出模塊,用于向正在向用戶提供媒體流服務(wù)的第 一流媒體服務(wù)器 發(fā)送服務(wù)遷出消息,所述第一流媒體服務(wù)器根據(jù)所述服務(wù)遷移消息中指示的 數(shù)據(jù)包的位置信息,停止向用戶提供媒體流服務(wù);服務(wù)遷入模塊,用于向第二流媒體服務(wù)器發(fā)送媒體流操作請求,所述第 二流媒體服務(wù)器根據(jù)所述媒體流操作請求中指示的數(shù)據(jù)包的位置信息,向所 述用戶提供媒體流服務(wù)。本發(fā)明實施例涉及到對流媒體服務(wù)器的修改,主要包括消息解析、消息 傳遞和功能實現(xiàn)等三方面的修改。對于消息解析部分,它接收RTSP請求, 解析出新添加的字段參數(shù),并按照流媒體服務(wù)器的規(guī)則,將其保存在相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;對于消息傳遞部分,它依據(jù)已有的RTSP命令的處理流程,添 加一整套新的Handoff請求的處理流程,包括參數(shù)的提取及設(shè)置,響應(yīng)消息的 字段拼接;對于功能實現(xiàn)部分,根據(jù)傳遞過來的參數(shù)實現(xiàn)x幀后停止播放或者 從某個包開始播放的功能。下面分別介紹對這三個部分的修改。(1) 消息解析部分包含"遷出"和"遷入"兩套消息解析。消息解析過程 的入口點都在Server.tproj/ RTSPRequest.cpp中。對于"遷出"的消息解析, 首先解析RTSP請求的第一行,包括Method (方法)、URI (統(tǒng)一資源標(biāo) 識)和Version (版本)。然后解析對應(yīng)的請求頭,但是在解析請求頭的函凄t 中,需要添加語句,以解析HANDOFF請求頭以及sampleNum 、 packetNum、 interval的值,并將它們存入字典中。對于"遷入"的消息解析, 在解析請求頭的函數(shù)中,需要添加語句以解析HANDOFF頭,取出 HANDOFF頭信息以及sampleSeq 、 packetSeq 、 timestampOffset 、 seqOffset和ssrc的值,并將它們存入字典中。(2) 消息傳遞部分本部分也包含"遷出"和"遷入"兩套對應(yīng)的消息傳遞 機制。消息傳遞過程的入 口 點在文件位于 APIModules/QTSSFileModule/QTSSFileModule.cpp中。對于"遷出"的消息傳 遞部分,在負(fù)責(zé)根據(jù)RTSP命令進(jìn)行相應(yīng)處理的函數(shù)ProcessRTSPRequest 中需要添加針對HANDOFF的相關(guān)代碼,并在該文件中添加處理HANDOFF 的函數(shù),它用來獲取RtspProxy在RTSP命令中發(fā)送的并在RtspRequest中解析出來的相關(guān)參數(shù)(參數(shù)的功能是為了實現(xiàn)在X幀之后停止播放),并將這些參數(shù)傳遞給QTRTPFile ,同時給RtspProxy發(fā)送響應(yīng)。數(shù)也需要做相應(yīng)的修改,添加上遷移指令的response部分。在類 RTPSession添力口函凄史SendHandoffResponse()來發(fā)送HANDOFFp向應(yīng)。在 Server.tproj/RTPStream.cpp及其相應(yīng)的頭文件中添力口新的函數(shù) AppendHandoff()來完成報文的拼接工作。對于"遷入"的消息傳遞部分,需要 對QTSSFileModule.cpp文件中的DoSetup()函數(shù)中進(jìn)行擴展,在提取參數(shù)時 需要4是耳又theSampleSeq 、 thePacketSeq 、 theTimeStampOffset和 theSeqOffset;在RTPSession中的AddStream函數(shù),會在內(nèi)部創(chuàng)建一個隨機 的不重復(fù)的ssrc值;在AddRTPStream函數(shù)中判斷流程是"遷入"的流程還是普 通的點播的流程,如果是"遷入"流程,則取出相應(yīng)的SSRC;最后依據(jù) theSampleSeq、 thePacketSeq等參數(shù),設(shè)置遷移完成后播放的起始位置。(3)功能實現(xiàn)部分該部分也有"遷出"和"遷入"兩部分功能實現(xiàn)。對于 "遷出"的功能實現(xiàn)部分,需要增加設(shè)置HandoffSample()的函數(shù),它是設(shè)置指 定媒體流要停止的幀的序號。在該函數(shù)中,首先取出RTPStream,再把遷移 幀的值設(shè)置到RTPStream的屬性以及每個track中去,然后,在 GetNextPacket函數(shù)中,比哞交耳又出來的包的幀號和HandoffSampleNumber, 如果前者小于后者,則繼續(xù)發(fā)包,否則說明此媒體流要停止,跳轉(zhuǎn)到下一個 流,再繼續(xù)判斷下一個流是否小于該流的HandoffSampleNumber,是的話繼 續(xù)發(fā)包,否則返回一個比影片時間大的值,讓其停止。對于"遷入"的功能實 現(xiàn)部分,需要新增加一個根據(jù)時間戳和順序號位置偏移量得出的Track,并且 需要增加一個設(shè)置HANDOFF起始點(包括起始位置幀號和數(shù)據(jù)包號等)的 函數(shù),還要增加函數(shù)以便在"遷入"流程時第一次獲取報文數(shù)據(jù),以后的每次 報文數(shù)據(jù)是通過PrefetchNextPacket()函數(shù)獲取。本發(fā)明提供的 一種流媒體服務(wù)器的實施例的結(jié)構(gòu)示意圖如圖7所示,包括如下模塊服務(wù)遷移消息解析模塊,用于接收負(fù)載均衡器發(fā)送的服務(wù)遷移消息,對 該服務(wù)遷移消息進(jìn)行解析,獲取所述服務(wù)遷移消息中攜帶的數(shù)據(jù)包的位置信 息,將該位置信息傳遞給遷出服務(wù)實現(xiàn)模塊;遷出服務(wù)實現(xiàn)模塊,用于在向用戶發(fā)送的數(shù)據(jù)包的位置達(dá)到所述服務(wù)遷 移消息解析模塊所獲取的位置信息時,停止向用戶提供媒體流服務(wù)。本發(fā)明提供的另 一種流媒體服務(wù)器的實施例的結(jié)構(gòu)示意圖如圖8所示, 包括如下模塊媒體流操作請求解析模塊,用于接收負(fù)載均衡器發(fā)送的媒體流操作請 求,對該媒體流操作請求進(jìn)行解析,獲取所述媒體流操作請求中攜帶的數(shù)據(jù) 包的位置信息、媒體流同步資源、時間偏移和用戶信息,并傳遞給遷入服務(wù) 實現(xiàn)模塊;遷入服務(wù)實現(xiàn)模塊,用于根據(jù)所述媒體流操作請求解析模塊所傳遞過來 的信息,從所述媒體流同步資源獲取相應(yīng)的媒體流信息,從所述時間偏移指 示的時間開始,根據(jù)數(shù)據(jù)包的位置信息向所述用戶發(fā)送々某體流。綜上所述,應(yīng)用本發(fā)明所述裝置和方法后,可以使媒體流在服務(wù)過程 中,從當(dāng)前服務(wù)節(jié)點實時遷移到指定的服務(wù)節(jié)點??梢詫崿F(xiàn)動態(tài)的負(fù)載均衡 服務(wù),提高系統(tǒng)資源的利用率,實現(xiàn)對集群系統(tǒng)中的媒體資源進(jìn)行優(yōu)化部 署。并且在進(jìn)行動態(tài)調(diào)整的過程中,能保證媒體流不中斷,對客戶端不造成 任何影響。因而,可以透明的達(dá)到系統(tǒng)中各個節(jié)點的負(fù)載均衡,使得各個服 務(wù)器節(jié)點協(xié)同工作。以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護(hù)范圍并不 局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可 輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明 的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種媒體流在線服務(wù)遷移的方法,其特征在于,包括負(fù)載均衡器向正在向用戶提供媒體流服務(wù)的第一流媒體服務(wù)器發(fā)送服務(wù)遷移消息,所述第一流媒體服務(wù)器根據(jù)所述服務(wù)遷移消息中指示的數(shù)據(jù)包的位置信息,停止向所述用戶提供媒體流服務(wù);所述負(fù)載均衡器向第二流媒體服務(wù)器發(fā)送媒體流操作請求,所述第二流媒體服務(wù)器根據(jù)所述媒體流操作請求中指示的數(shù)據(jù)包的位置信息,向所述用戶提供媒體流服務(wù)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的數(shù)據(jù)包的位置信息 包括數(shù)據(jù)幀對應(yīng)的采樣序列號和該采樣中數(shù)據(jù)包序列號。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的服務(wù)遷移消息中指 示的數(shù)據(jù)包的位置信息和所述媒體流操作請求中指示的數(shù)據(jù)包的位置信息相 同。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一流媒體服務(wù)器根 據(jù)所述服務(wù)遷移消息中指示的數(shù)據(jù)包的位置信息,停止向用戶提供媒體流服 務(wù),具體包括所述第一流媒體服務(wù)器中的會話處理模塊接收所述服務(wù)遷移消息,將所 述服務(wù)遷移消息中指示的數(shù)據(jù)包的位置信息發(fā)送給所述第 一流媒體服務(wù)器中 的流化處理模塊;所述流化處理模塊在發(fā)送的數(shù)據(jù)包的位置達(dá)到所述位置信息時,停止向用戶提供媒體流服務(wù),所述會話處理模塊向負(fù)載均衡器返回服務(wù)遷移響應(yīng)消 臺、
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括所述第 一流媒體服務(wù)器中的會話處理模塊如果檢查出所述服務(wù)遷移消息 無效或者所述數(shù)據(jù)包的位置信息錯誤,所述會話處理模塊向負(fù)載均衡器返回 錯誤信息。
6、 根據(jù)權(quán)利要求1至5任一項所述的方法,其特征在于,負(fù)載均衡器向第二流媒體服務(wù)器發(fā)送媒體流操作請求,所述第二流媒體服務(wù)器根據(jù)所述媒 體流操作請求中指示的數(shù)據(jù)包的位置信息,向所述用戶提供媒體流服務(wù),具體包括負(fù)載均衡器向第二流媒體服務(wù)器發(fā)送攜帶數(shù)據(jù)包的位置、媒體流同步資 源、時間偏移和用戶信息的媒體流建立操作,所述第二流媒體服務(wù)器中的會 話處理模塊接收所述媒體流建立操作,將所述數(shù)據(jù)包的位置信息、媒體流同 步資源和時間偏移信息發(fā)送給所述第二流媒體服務(wù)器中的流化處理模塊;所述會話處理模塊向所述負(fù)載均衡器返回媒體流建立操作的響應(yīng),所述 流化處理模塊從所述媒體流同步資源獲取相應(yīng)的媒體流信息,從所述時間偏 移指示的時間開始,才艮據(jù)數(shù)據(jù)包的位置信息向所述用戶發(fā)送J^某體流。
7、 根據(jù)權(quán)利要求1至5任一項所述的方法,其特征在于,所述方法適用 于集群方式的流媒體服務(wù)器系統(tǒng)。
8、 一種負(fù)載均衡器,其特征在于,包括服務(wù)遷出模塊,用于向正在向用戶提供媒體流服務(wù)的第一流媒體服務(wù)器 發(fā)送服務(wù)遷出消息,所述第 一流媒體服務(wù)器根據(jù)所述服務(wù)遷移消息中指示的 數(shù)據(jù)包的位置信息,停止向用戶提供媒體流服務(wù);服務(wù)遷入模塊,用于向第二流媒體服務(wù)器發(fā)送媒體流操作請求,所述第 二流媒體服務(wù)器根據(jù)所述媒體流操作請求中指示的數(shù)據(jù)包的位置信息,向所 述用戶提供媒體流服務(wù)。
9、 一種流媒體服務(wù)器,其特征在于,包括服務(wù)遷移消息解析模塊,用于接收負(fù)載均衡器發(fā)送的服務(wù)遷移消息,對 該服務(wù)遷移消息進(jìn)行解析,獲取所述服務(wù)遷移消息中攜帶的數(shù)據(jù)包的位置信息,將該位置信息傳遞給遷出服務(wù)實現(xiàn)模塊;遷出服務(wù)實現(xiàn)模塊,用于在向用戶發(fā)送的數(shù)據(jù)包的位置達(dá)到所述服務(wù)遷 移消息解析模塊所獲取的位置信息時,停止向用戶提供媒體流服務(wù)。
10、 一種流媒體服務(wù)器,其特征在于,包括媒體流操作請求解析模塊,用于接收負(fù)載均衡器發(fā)送的媒體流操作請 求,對該媒體流操作請求進(jìn)行解析,獲取所述媒體流操作請求中攜帶的數(shù)據(jù) 包的位置信息、媒體流同步資源、時間偏移和用戶信息,并傳遞給遷入服務(wù) 實現(xiàn)模塊;遷入服務(wù)實現(xiàn)模塊,用于根據(jù)所述媒體流操作請求解析模塊所傳遞過來 的信息,從所述媒體流同步資源獲取相應(yīng)的媒體流信息,從所述時間偏移指 示的時間開始,根據(jù)數(shù)據(jù)包的位置信息向所述用戶發(fā)送々某體流。
全文摘要
本發(fā)明提供了一種媒體流在線服務(wù)遷移的方法和裝置。該方法主要包括負(fù)載均衡器向正在向用戶提供媒體流服務(wù)的第一流媒體服務(wù)器發(fā)送服務(wù)遷移消息,所述第一流媒體服務(wù)器根據(jù)所述服務(wù)遷移消息中指示的數(shù)據(jù)包的位置信息,停止向所述用戶提供媒體流服務(wù);所述負(fù)載均衡器向第二流媒體服務(wù)器發(fā)送媒體流操作請求,所述第二流媒體服務(wù)器根據(jù)所述媒體流操作請求中指示的數(shù)據(jù)包的位置信息,向所述用戶提供媒體流服務(wù)。利用本發(fā)明,可以使媒體流在服務(wù)過程中,從當(dāng)前服務(wù)節(jié)點實時遷移到指定的服務(wù)節(jié)點,從而實現(xiàn)動態(tài)的負(fù)載均衡服務(wù),提高系統(tǒng)資源的利用率。
文檔編號H04L29/06GK101252546SQ20081010408
公開日2008年8月27日 申請日期2008年4月15日 優(yōu)先權(quán)日2008年4月15日
發(fā)明者奚宏生, 靖 李, 堅 楊, 殷保群, 趙兵選 申請人:中國科學(xué)技術(shù)大學(xué)