專利名稱:基于工作流的會話管理的制作方法
基于工作流的會話管理
背景技術:
本公開涉及視頻遞送系統(tǒng)的會話管理(session management)。隨著網絡基礎設施的持續(xù)演變以支持視頻的網絡傳輸或者諸如有線電視、視頻點播(VOD )、交換式數字視頻(SDV)和視頻文件下載之類的其它內容服務的高需求,這些服務持續(xù)激增。許多網絡基礎設施包括用于提供視頻服務的頭端、用于遞送視頻服務的應用、以及將內容供應給機頂盒或其它用戶設備(通常安裝在人們家中)以用于將服務呈現給用戶(例如,按次計費電影)的視頻服務器。這些網絡通常將機頂盒布置成服務組,服務組是由發(fā)源于頭端并終止于服務組的一組共同連接所服務的機頂盒的集合。通常,每個機頂盒在地理上被布置為接近該組中的其它機頂盒,并且由物理同軸電纜(同軸電纜)限定的連接將該分支外伸至各個服務組。機頂盒已演變?yōu)榉謩e可尋址的網絡設備,從而使得向客戶端設備提供更大控制粒度的視頻點播、交換式數字視頻和其它選擇性觀看技術成為可能。其它網絡基礎設施包括數字內容的基于因特網協(xié)議(IP)的視頻遞送。在基于IP的視頻遞送中,提供商通常通過用于提供視頻遞送服務的多個服務器來運營。根據該技術,客戶端可以從流傳輸服務器請求基于IP的視頻以便在諸如電視機、計算機、移動設備或者適于觀看或存儲基于IP的視頻內容的其·它設備之類的客戶端設備上觀看視頻。通常,流傳輸服務器通過將所請求內容例如經由客戶家庭網絡中的電纜調制解調器、因特網連接等流傳輸給客戶端來對請求進行服務。視頻遞送系統(tǒng)通常使用客戶端與服務器之間的通信會話(和/或會話管理器)來管理諸如點播內容之類的內容的選擇性內容遞送。通常當接收到來自客戶端設備的對于特定內容的請求時,給定會話被發(fā)起。會話管理常常包括認證、授權、將內容擴展為播放列表、以及為給定會話的持續(xù)期間預留網絡/系統(tǒng)資產。典型的傳統(tǒng)會話管理器應用是實現這些VOD特征并管理諸如從視頻服務器到機頂盒的視頻數據之類的內容的遞送的單個整體應用。傳統(tǒng)的VOD會話管理器應用被安裝在分開的各頭端中。
發(fā)明內容
用于內容遞送的會話管理的傳統(tǒng)應用,諸如視頻點播會話管理應用,具有多種缺陷。絕大多數系統(tǒng)運營商(MS0),即,多個有線電視系統(tǒng)的運營商,已在局部范圍中部署了視頻點播(VOD)方案,即是說,相關聯的設備和軟件在地理上被安裝在訂戶所在的地方。例如,如果兩個城市是不同的服務區(qū),則用于每個服務區(qū)的頭端將具有其自己的如下實例管理內容的分發(fā)和遞送的后臺(其包括會話管理器);將內容遞送給邊緣設備的(一個或多個)視頻服務器;以及將內容遞送給訂戶的(一個或多個)邊緣設備。在圖1中表示出了該方法。中等大小MSO可以具有幾十個局部部署,而大的MSO可以具有復制這些系統(tǒng)之間的成百上千個局部部署。會話管理器應用是安裝在每個局部部署內的單個整體應用。MSO包含的服務區(qū)越多,升級每個位置處的會話管理器應用所需的時間、費用和復雜度越大。這是因為升級MSO的總體視頻遞送系統(tǒng)需要在物理上更新每個頭端,例如,通過將技術人員送到每個頭端以安裝新的軟件和/或硬件。由于每個頭端位置包括該會話管理器的單獨的實例(例如,可執(zhí)行的),因此升級會話管理器的特征要求將新的軟件帶到該位置、進行安裝,然后讓舊版本停止運行(這可能臨時中斷服務)并且必須啟動新的版本。該VOD部署方法針對局部部署產生了若干挑戰(zhàn)。一個問題是,設備和會話管理軟件被局部化到每個頭端。另一問題是,被局部化的設備具有有限的能力,這隨后限制了訂戶基數。會話管理服務的擴展是昂貴的且費時的以便執(zhí)行升級,這是因為在分布式位置中存在必須進行修改的軟件和硬件的大量實例。此外,這些會話管理器是整體的會話管理應用,其中,單個廠商利用用以在各個組件之間進行通信的封閉式專用接口將系統(tǒng)組件綁定在給定部署中。換言之,傳統(tǒng)VOD部署在局部化位置處使用硬連線控制邏輯,即,完成從會話建立到資源管理再到會話拆斷的所有事情的單段代碼,而不具有改變或修改該代碼的靈活性或具有有限的靈活性。傳統(tǒng)VOD部署體系結構使用本質上為整體的會話管理系統(tǒng)(例如,作為應用運行的經編譯代碼),并且具體地進行構建以應對該體系結構所施加的要求,特別是關于支持數目減少的訂戶以及支持對縮放和可靠性的有限需求。針對這些約束的設計帶來了許多挑戰(zhàn)。一個挑戰(zhàn)是用于新的會話管理特征的長的實現時間線。例如,推出新的服務可能要花六個月到兩年的時間來完成。由于系統(tǒng)是整體的,因此升級這些系統(tǒng)是困難且費時的。軟件升級一般意味著替換整個系統(tǒng),并且硬件升級(諸如添加更多存儲裝置)可能意味著拆下整個系統(tǒng)。此外,存在有限的回彈能力。由于有限的訂戶基數,因此采用縮減的可用性方案曾是可接受的,從而允許廠商實現針對回彈性的1+1方法。利用1+1回彈性,會話管理器對被部署在主動-主動或主動-被動操作模式中。又一挑戰(zhàn)是封閉的接口。構建整體系統(tǒng)曾允許廠商使用封閉接口,這導致難以集成新的組件并且使得幾乎不可能具有由不同廠商提供的“即插即用”服務。許多視頻遞送提供商、MS0、有線電視運營商和其它VOD提供商希望例如通過從數千個標題(title)移到成百上千個標題或更多標題,來將它們的體系結構更新為能夠極大地擴展內容供應。另一體系結構更新是最經常經由內容遞送網絡(⑶N)來地區(qū)化或州域化內容分發(fā)信道。例如,不是使內容在頭端處本地被接收并總是呈現出,而是可以使內容在有限數目的區(qū)域或州域位置處被接收。然后可基于需求或預定義規(guī)則將內容分發(fā)到訂戶。結合內容的地區(qū)化或州域化,提供商還使它們的系統(tǒng)的會話管理組件集中化。圖2中表示出了會話管理功能的地區(qū)化。會話管理器負責管理視頻點播系統(tǒng)中的會話。會話管理活動可以包括認證、授權、計費、預留網絡資源等。會話管理器現在具有性能期望。例如,對視頻點播選擇的響應應當在非常短的時間幀內被遞送給客戶端應用,并且尤其是要遞送給訂戶。該時間幀理想地在約100-200毫秒內,以使得訂戶無需等待較長時間來開始接收視頻內容。重試可被構建到某些系統(tǒng)交互中,包括在初始嘗試失敗或者被感知到要花太長時間的情況下給定用戶何時重試購買一影片。這意味著會話管理器本身通常不負責重試操作。集中化會話管理帶來了另外的性能期望。大規(guī)模區(qū)域可支持上千萬訂戶。這意味著集中化的會話管理器可以負責成千上萬的并發(fā)會話,以及每秒數千個建立。為了支持這些大規(guī)模區(qū)域,會話管理系統(tǒng)應當提供恒定可用性的服務、在系統(tǒng)存活著而不中斷到端用戶的服務的同時升級系統(tǒng)的能力、以及新服務的快速實現和部署。這里公開的技術包括用于視頻遞送系統(tǒng)的基于工作流(workflow-based)的會話管理器的系統(tǒng)和方法。這樣的技術增加了在視頻遞送系統(tǒng)中部署新特征和服務的速度和靈活性。這些基于工作流的會話管理技術致力于與現有會話管理器系統(tǒng)相關聯的挑戰(zhàn),并且支持來自下一代(集中化)視頻點播系統(tǒng)體系結構的期望。這里描述的用于視頻遞送系統(tǒng)的基于工作流的會話管理器的系統(tǒng)和方法包括用于會話管理的新的體系結構模型。該新的會話管理模型提供了面向服務的且基于工作流的方法。作為面向服務的方法,每個功能會話管理步驟可被表示為一業(yè)務服務。這樣的方法促進了服務級的競爭,這為每個服務帶來了最佳解決方案,而不是如曾在捆綁式整體系統(tǒng)中進行的系統(tǒng)級競爭。新的功能現在可以根據服務接口來定義,并且獨立于該系統(tǒng)的其余部分來實現和測試。服務中的現有功能可以獨立于該系統(tǒng)的其余部分而被增強和測試,并且可以通過升級該服務而非整個系統(tǒng)而被引入。此外,會話管理服務可在不同應用中被再使用。作為基于工作流的解決方案,將要執(zhí)行的一系列步驟可被定義為數據,而不是被硬編碼在應用內。例如,給定的步驟序列可以以XML文件被定義,其然后可以利用圖形編輯器被創(chuàng)建和改變。給定工作流上的每個節(jié)點(任務)表示將被調用的服務,并且傳遞到每個服務的數據以及從每個服務傳遞來的數據也可以以XML或其它數據文件被定義。將工作流定義為數據使得服務從控制流分離,從而支持多個廠商對服務的獨立開發(fā)。該技術極大地提高了引入新服務的速度,因為將給定新服務引入系統(tǒng)主要是通過更新配置文件來完成的,而無需新代碼或僅需很少的新代碼。然后可以通過向工作流添加新節(jié)點以及針對該節(jié)點的一組支持實施方式來完成添加新服務,而不需要修改會話管理器本身。基于工作流的會話管理也可被配置為使得任何給定節(jié)點可以基于一些預定準則,例如通過客戶端IP地址、地理位置、評級等,而針對頭端中的一些或所有頭端選擇性地被使能。因此,這樣的基于工作流的會話管理系統(tǒng)允許運營商將會話管理器應該做什么以及執(zhí)行任務的順序表達為數據來取代預編譯代碼。傳統(tǒng)工作流管理系統(tǒng)一般包括這樣的計算機系統(tǒng),該計算機系統(tǒng)管理并定義組織內的一系列任務以產生最后的一個或多個結果。工作流管理系統(tǒng)使得用戶能夠針對不同類型的服務、工作或處理來定義不同工作流。工作流系統(tǒng)通常在業(yè)務管理的上下文中被使用。例如,工作流系統(tǒng)通常被用于制造特定類型的商品、完成產品的研究和開發(fā)、在各種渠道中分發(fā)商品、提供諸如醫(yī)療服務之類的專業(yè)服務等。在項目開發(fā)的上下文中,工作流系統(tǒng)可能自動地將設計文檔從技術總監(jiān)路由至生產工程師,或者在不同開發(fā)階段之間移動設計文檔。一旦給定任務被完成,傳統(tǒng)工作流軟件確保負責下一任務的個人得到通知并接收他們執(zhí)行下一階段處理所需的數據?,F在,可獲得作為開放式源和專用供應兩者的多種工作流框架。然而,這些傳統(tǒng)工作流框架被構建來處理可能要花數分鐘到數周來完成的各種條件和服務(包括人在循環(huán)中服務)。為了處理這些情形,工作流框架持續(xù)保持從工作流層跨越到服務層的每個邊界處的工作流狀態(tài)是常見的。在從服務層轉變到工作流層期間加載工作流狀態(tài)并且在工作流層與服務層之間使用雙向異步通信也是常見的。通常通過將工作流中的每個節(jié)點當作個體事物來管理持續(xù)保持活動,以使得當給定服務出故障時,工作流的狀態(tài)可以退回去。傳統(tǒng)工作流框架的持續(xù)保持和轉變活動可能是CPU密集和I/O密集型操作,從而消耗數秒或更多的時間。當在系統(tǒng)中呈現較長以及非常長期限的服務時,該功能可以是有用的。傳統(tǒng)工作流系統(tǒng)通常經由“工作流引擎”來運行。工作流引擎一般是基于軟件的控制系統(tǒng)或管理工作流的處理。工作流引擎因此被配置為通過訪問活動序列來處理工作流事件/節(jié)點,并且該序列可通過數據或數據文件來定義。工作流引擎提供了用于根據預定義序列和/或預定義規(guī)則來執(zhí)行并安排工作項的機制。由于工作流定義了要執(zhí)行的任務序列,因此一些任務依賴于先前任務的完成,或者依賴于從先前任務生成的數據。工作流引擎還對將從給定任務(服務)生成的任何數據傳遞給隨后執(zhí)行的任務進行管理。換言之,工作流引擎接收指定動作的集合或序列的腳本。工作流引擎然后執(zhí)行該腳本中指定的該序列中的那些動作,而不管該序列是連續(xù)的還是并列的。工作流引擎通常使用數據庫來存儲腳本的狀態(tài)和在動作之間生成的數據。示例工作流引擎和系統(tǒng)包括jBPM (JBoss業(yè)務處理管理)、Tibco BusinessWorks、iProcess Suite、Joget、Enhydra Shark、Bonita 等等。實質上,傳統(tǒng)工作流系統(tǒng)獲取運用場景,將該運用場景打斷成離散的塊或任務,并且然后將這些塊縫合在一起來定義運行序列。利用用于工作流系統(tǒng)的傳統(tǒng)方法,這些系統(tǒng)無法被應用于實時系統(tǒng)。什么是實時的可取決于特定應用。在內容遞送和視頻內容遞送的上下文中,實時可以指短于大約半秒,并且應當更接近于大約100-200毫秒。例如,如果在選擇了點播視頻標題之后,視頻遞送系統(tǒng)花了一秒或更長時間才開始播放視頻,則選擇VOD內容的用戶可能感覺到系統(tǒng)較慢。傳統(tǒng)工作流系統(tǒng)通常無法在短于一秒或者甚至在數秒中完成對工作流序列的處理。實質上,許多工作流序列花費數天或數周來完成,并且在各個階段中涉及人類輸入。這樣,由于傳統(tǒng)較長的序列完成時間,傳統(tǒng)工作流框架(開放式源或專有的)是在未考慮運行速度的情況下被設計的。為了提供這樣的期望的實時響應,傳統(tǒng)系統(tǒng)是整體的,即,運行經預編譯的代碼來提供實時結果。然而,如上面所說明的,盡管整體系統(tǒng)是很快的,但是它們無法適當地縮放或者不能快速添加服務。實際上,傳統(tǒng)觀點對于將任何類型的面向工作流的方法應用于實時會話建立或任何實時系統(tǒng)給出了反向教導。這里公開的技術使用基于工作流的會話管理系統(tǒng),該系統(tǒng)可以包括使用工作流引擎來處理節(jié)點(任務、事件、轉變)序列。為了實現基于工作流的會話管理器的所預期的近似實時的性能,該系統(tǒng)可以執(zhí)行各個處理步驟。該系統(tǒng)在會話建立時加載工作流的定義并且緩存這些定義。然后,該系統(tǒng)通過檢查所緩存的工作流定義來確定要執(zhí)行的下一節(jié)點。會話管理器同時調用與工作流序列中的每個節(jié)點相關聯的(一個或多個)服務。系統(tǒng)不持續(xù)保持每個節(jié)點轉變處的工作流狀態(tài),這是相比于傳統(tǒng)工作流系統(tǒng)的重大改進。因此,會話管理器可以通過提供可用于執(zhí)行各個服務的線程池來支持高度并發(fā)的工作流處理,執(zhí)行單個事物內部的工作流,并且當檢測到任何故障時將適當的錯誤代碼返回給端用戶。這樣的技術為視頻遞送會話管理提供了一種在工作流基礎設施中具有非常低的時延和較低開銷的確定性方法,從而向運營商(包括非技術運營商)提供了添加和修改服務的能力。一個實施例包括一種會話管理器,其提供用于控制通過網絡到客戶端設備的視頻遞送的會話管理。該會話管理器從客戶端設備接收訪問視頻內容的請求。該請求可以在服務器處被接收。例如,用戶希望觀看視頻點播內容并且做出觀看該內容的選擇。會話管理器訪問數據文件,該數據文件定義了要經由工作流引擎執(zhí)行的工作流序列。工作流序列定義多個節(jié)點,其中每個節(jié)點標識要執(zhí)行的至少一個會話管理服務。至少一個節(jié)點標識在給定的會話管理服務之間傳遞的數據。會話管理器將工作流序列和多個節(jié)點加載到共享存儲器中,諸如非易失性存儲器。會話管理器可以經由工作流引擎根據工作流序列來執(zhí)行與多個節(jié)點相對應的會話管理服務。會話管理器然后可以發(fā)送指令給遠程頭端、流傳輸器或其它內容遞送系統(tǒng),以將視頻內容發(fā)送給客戶端設備。在另一實施例中,內容遞送系統(tǒng)使能將工作流序列配置用于會話管理。系統(tǒng)經由用戶接口接收選擇節(jié)點的集合的輸入,每個節(jié)點是數據文件,該數據文件標識會話管理器將經由工作流引擎執(zhí)行的至少一個會話管理服務。系統(tǒng)經由用戶接口接收指定了工作流引擎要執(zhí)行的節(jié)點序列的輸入,并且隨后生成定義了工作流引擎要執(zhí)行的該節(jié)點序列的工作流數據文件。例如,用戶通過利用圖形編輯器來選擇并布置節(jié)點序列。系統(tǒng)然后創(chuàng)建會話管理器,該會話管理器在被執(zhí)行時控制經由工作流引擎將內容遞送給客戶端設備。其中,工作流引擎根據來自工作流數據文件的所定義節(jié)點序列來執(zhí)行會話管理服務。在又一實施例中,內容遞送系統(tǒng)或其它適當實體將節(jié)點的集合定義為數據文件,每個節(jié)點標識將要利用會話管理器執(zhí)行的至少一個服務。該系統(tǒng)將服務的集合定義為數據文件,每個服務標識動作的集合,動作引用當被執(zhí)行時提供與相應服務相對應的會話管理處理的功能。該系統(tǒng)將工作流處理順序定義為工作流數據文件,工作流處理順序指示節(jié)點的集合的執(zhí)行次序以便實現內容遞送系統(tǒng)的會話管理。該系統(tǒng)然后生成控制通過網絡將內容遞送給客戶端設備的會話管理器。該會話管理器在被執(zhí)行時使用工作流引擎,工作流引擎根據工作流數據文件中定義的工作流處理順序來提供對節(jié)點的集合的實時執(zhí)行另一實施例是實時地發(fā)起視頻遞送會話的實時工作流引擎。即,工作流引擎實時地處理給定數據序列(例如用于會話建立),例如以在預定時間量內完成特定任務序列。這里的其它實施例包括用以執(zhí)行上面概述且在下面詳細公開的步驟和操作的軟件程序。一個這樣的實施例包括具有計算機存儲介質(例如,非暫時性的有形計算機可讀介質、分散在各地的或共處一地的存儲介質、一個或多個計算機存儲介質等)的計算機程序產品,計算機存儲介質在其上編碼有計算機程序邏輯,該計算機程序邏輯在具有處理器和相應存儲器的計算機化設備中被執(zhí)行時,將處理器編程來執(zhí)行(或使得處理器執(zhí)行)這里公開的操作。這些布置通常被提供作為軟件、固件、微代碼、代碼數據(例如,數據結構)等,它們被布置或編碼在計算機可讀存儲介質上,例如,光介質(例如,CD-ROM)、軟盤、硬盤、一個或多個ROM或RAM或PROM芯片、專用集成電路(ASIC)、現場可編程門陣列(FPGA)等等。軟件或固件或其它這樣的配置可以被安裝在計算機化設備上,以使計算機化設備執(zhí)行這里說明的技術。因此,本公開的一個特定實施例涉及包括一個或多個非暫時性計算機存儲介質的計算機程序產品,計算機存儲介質在其上存儲有用于支持如下操作的指令,操作例如是在服務器處接收來自客戶端設備的訪問視頻內容的請求;訪問定義了要經由工作流引擎執(zhí)行的工作流序列的數據文件,工作流序列定義多個節(jié)點,每個節(jié)點標識要執(zhí)行的至少一個會話管理服務,至少一個節(jié)點標識在給定會話管理服務之間傳遞的數據;將工作流序列和多個節(jié)點加載到共享存儲器中;經由工作流引擎根據工作流序列來執(zhí)行與多個節(jié)點相對應的會話管理服務;以及發(fā)送指令給遠程頭端以向客戶端設備發(fā)送視頻內容。這里描述的指令和方法當被相應的計算機設備的處理器執(zhí)行時,使得處理器執(zhí)行這里公開的方法。本公開的其它實施例包括用以執(zhí)行上面概述且在下面詳細公開的任何方法實施例步驟和操作的軟件程序。當然,這里描述的不同步驟的討論順序是出于清楚起見而被呈現的。一般地,這些步驟可以以任何合適的順序來執(zhí)行。
此外,將明白,這里的系統(tǒng)、方法、裝置等的每個可以例如在處理器內或操作系統(tǒng)內或軟件應用內,或者經由非軟件應用(其中人執(zhí)行所有或部分操作),而完全被實施為軟件程序、被實施為軟件與硬件的混合,或者單獨被實施為硬件。這里描述的示例實施例可以在產品和/或軟件應用中來實現,例如由Beaumaris Networks, Inc. , Boxborough, MA, USA制造的產品和/或軟件應用。如上面討論的,這里的技術很適合于用在支持視頻內容遞送的軟件應用中。然而,應注意,這里的實施例不限于用在這些應用中并且這里討論的技術也很適合于其它應用。另外,雖然這里的不同特征、技術、配置等的每個是在本公開的不同地方被討論的,但是希望各個概念可以彼此獨立地或者彼此結合地來執(zhí)行。因此,本發(fā)明可以以許多不同方式來實施和看待。注意,這里的發(fā)明內容部分并不是指定每個實施例和/或遞增地指定本公開或要求保護的發(fā)明的新穎方面。取而代之的是,本發(fā)明內容僅提供對不同實施例和相比于傳統(tǒng)技術的相應新穎點的初步討論。對于本發(fā)明和實施例的其它細節(jié)和/或可能的觀點展示,讀者可參考下面將進一步討論的本公開的具體實施方式
部分以及相應附圖。
將從如附圖中所示的、下面對本文的優(yōu)選實施例的更具體描述中清楚本發(fā)明的前面的以及其它目的、特征和優(yōu)點,在附圖中,相似的標號在不同視圖中指代相同部分。繪圖不必是成比例的,而是強調對實施例、原理和概念的圖示說明。圖1是圖示出內容遞送系統(tǒng)的頭端中的局部化會話管理部署的示圖。圖2是圖示出用于內容遞送系統(tǒng)的頭端的集中化會話管理部署的示圖。圖3是圖示出基于工作流的內容遞送系統(tǒng)的工作流組件的框圖。圖4是根據這里的實施例的工作流代碼的示例代碼段。圖5是根據這里的實施例的工作流服務的示例代碼段。圖6是根據這里的實施例的在基于QAM的內容遞送系統(tǒng)中操作的會話管理器的示例工作流的框圖。圖7是根據這里的實施例的在基于IP的內容遞送系統(tǒng)中操作的會話管理器的示例工作流的框圖。圖8是圖示出根據這里的實施例的支持內容遞送會話管理的處理示例的流程圖。圖9是圖示出根據這里的實施例的支持內容遞送會話管理的處理示例的流程圖。圖10是圖示出根據這里的實施例的支持內容遞送會話管理的處理示例的流程圖。圖11是圖示出根據這里的實施例的支持內容遞送會話管理的處理示例的流程圖。圖12是根據這里的實施例的在計算機/網絡環(huán)境中操作的會話管理器的示例框圖。
具體實施例方式這里公開的技術包括用于視頻遞送系統(tǒng)的基于工作流的會話管理器的系統(tǒng)和方法。這樣的技術增加了在視頻遞送系統(tǒng)中部署新特征和服務的速度和靈活性。這些基于工作流的會話管理技術致力于與現有會話管理器系統(tǒng)相關聯的挑戰(zhàn),并且支持來自下一代(集中化)視頻點播系統(tǒng)體系結構的期望。這里描述的用于視頻遞送系統(tǒng)的基于工作流的會話管理器的系統(tǒng)和方法包括用于會話管理的新的體系結構模型。該新的會話管理模型提供了面向服務的且基于工作流的方法。作為面向服務的方法,每個功能會話管理步驟可被表示為一業(yè)務服務。這樣的方法促進了服務級的競爭,這為每個服務帶來了最佳解決方案,而不是如曾在捆綁式整體系統(tǒng)中進行的系統(tǒng)級競爭。新的功能現在可以根據服務接口來定義,并且獨立于該系統(tǒng)的其余部分來實現和測試。服務中的現有功能可以獨立于該系統(tǒng)的其余部分而被增強和測試,并且可以通過升級該服務而非整個系統(tǒng)而被引入。此外,會話管理服務可在不同應用中被再使用。作為基于工作流的解決方案,將要執(zhí)行的一系列步驟可被定義為數據,而不是被硬編碼在應用內。例如,給定的步驟序列可以以XML文件被定義,其然后可以利用圖形編輯器被創(chuàng)建和改變。給定工作流上的每個節(jié)點(任務)表示將被調用的服務,并且傳遞到每個服務的數據以及從每個服務傳遞來的數據也可以以XML或其它數據文件被定義。將工作流定義為數據使得服務從控制流分離,從而支持多個廠商對服務的獨立開發(fā)。該技術極大地提高了引入新服務的速度,因為將給定新服務引入系統(tǒng)主要是通過更新配置文件來完成的,而無需新代碼或僅需很少的新代碼。這里公開的技術使用基于工作流的會話管理系統(tǒng),該系統(tǒng)可以包括使用工作流引擎來處理節(jié)點(任務、事件、轉變)序列。為了實現基于工作流的會話管理器的所預期的近似實時的性能,該系統(tǒng)可以執(zhí)行各個處理步驟。該系統(tǒng)在會話建立時加載工作流的定義并且緩存這些定義。然后,該系統(tǒng)通過檢查所緩存的工作流定義來確定要執(zhí)行的下一節(jié)點。會話管理器同時調用與工作流序列中的每個節(jié)點相關聯的(一個或多個)服務。緩存節(jié)點定義和所生成的或檢索到的數據可以有助于加快基于工作流的處理。由于傳統(tǒng)工作流系統(tǒng)處理的是長期限處理,因此在對給定節(jié)點進行調用的任何時候,這些系統(tǒng)都要持續(xù)保持工作流的狀態(tài)。這是計算上昂貴的操作,因為這通常涉及將數據存儲在數據庫或其它數據存儲裝置中以等待直到下一節(jié)點準備好被執(zhí)行為止,例如在接收到特定批準電子郵件之后。在接收到針對下一任務的觸發(fā)之后,傳統(tǒng)系統(tǒng)將恢復工作流的狀態(tài),基于批準電子郵件來執(zhí)行下一任務,并且然后再次存儲狀態(tài)信息。因此,傳統(tǒng)工作流系統(tǒng)被設計用于長期處理,而非實時處理。通過在存儲器中緩存節(jié)點定義并維護狀態(tài)信息,工作流處理可被加快。這里公開的技術還改進了存儲器管理,以使得在存儲器中工作流的表示是一種非常高效的數據結構,該數據結構不用將數據從一種格式轉換為另一格式。這是相比于傳統(tǒng)工作流系統(tǒng)的另一改進。傳統(tǒng)工作流系統(tǒng)常常取決于接下來將使用數據的實體來將數據從一種格式轉換為另一種格式。這里的技術提供了線性存儲器管理(例如,通過使用Java對象)而不用在格式之間來回轉換數據,從而有助于提供實時處理。因此,會話管理器可以通過提供可用于執(zhí)行各個服務的線程池來支持高度并發(fā)的工作流處理,執(zhí)行單個事物內部的工作流,并且當檢測到任何故障時將適當的錯誤代碼返回給端用戶。圖3是圖示出用于內容遞送的一般性示例工作流的框圖。工作流層(虛線以上部分)是六個相連節(jié)點的序列。也稱為任務的每個節(jié)點表示將由工作流處理器或工作流引擎執(zhí)行的、作為會話管理一部分的數據文件或業(yè)務處理。例如,會話管理器可以訪問數據文件,例如,定義了要執(zhí)行的處理序列的XML (可擴展標記語言),或者可以引用要執(zhí)行的處理序列。圖4示出了示例定義數據文件的代碼段,并且將在下面更詳細討論。注意,該節(jié)點序列可以包括分支、如果/則(if/then)邏輯,等等。例如,節(jié)點I由工作流引擎處理。取決于對節(jié)點I進行處理而生成的數據,工作流引擎然后將繼續(xù)到節(jié)點2或節(jié)點3。從處理節(jié)點I得到的某些數據可被傳遞給節(jié)點2、節(jié)點3或后續(xù)節(jié)點。作為數據文件,節(jié)點一般不知道彼此,但是,工作流引擎明白要與哪些節(jié)點對話以及要從一個節(jié)點檢索什么信息以傳遞到另一節(jié)點。這樣,工作流引擎本身可以包括提供實時處理的功能。換言之,在一個實施例中,工作流引擎可以被修改或改進,以作用來緩存節(jié)點定義、在節(jié)點間傳遞的追蹤數據、以及流線型存儲器管理,以便提供實時會話管理處理。繼續(xù)本示例,在節(jié)點2或節(jié)點3的處理之后,處理繼續(xù)到節(jié)點4。注意,每個節(jié)點映射到或者以其它方式引用來自服務層的工作流服務。工作流服務可以是所引用的動作或處理或者是定義了要執(zhí)行的一個或多個動作的數據文件。示例動作可能是發(fā)送文本消息、在社交網絡賬戶上張貼消息、為特定賬戶付費等。在一些實施例中,每個服務被表示為工作流服務的定義。在此示例中,工作流服務4包括在被調用時要執(zhí)行的四個動作。為了簡化,在圖3的示例中,僅節(jié)點4被示出了相應的工作流服務,然而工作流層的每個節(jié)點可以引用一個或多個對應的工作流服務。一些節(jié)點可以不引用任何工作流服務,而其他節(jié)點可以引用多于一個服務。圖5示出了示例工作流服務數據文件的代碼段。圖3的工作流層也可用來圖示給定會話管理器的工作流的圖形編輯。例如,使用圖形編輯器或類似輸入手段,用戶可以通過圖形來布置工作流節(jié)點的布局,包括指定連接序列和任何分支。這可以包括高層控制構圖,例如判決節(jié)點、如果-則邏輯、分支、再連接、并行執(zhí)行的節(jié)點、以及甚至可在開始遞送視頻內容之后完成的節(jié)點序列。用戶也可以直接編輯數據文件。因此,新的服務可被添加到給定內容遞送系統(tǒng)而無需新的硬件和/或新的軟件,正如傳統(tǒng)的整體方法一樣。當添加新節(jié)點到現有服務時,工作流可以自動地或經由圖形編輯器被改變。當添加新節(jié)點時,系統(tǒng)生成從該新節(jié)點到現有節(jié)點的映射。該映射不一定需要在圖形編輯器中示出。該映射可以包括服務名、類別名、數據等。在新節(jié)點被添加之后,系統(tǒng)可以例如通過創(chuàng)建.PAR文件來創(chuàng)建對應文件。類似地,當向新服務添加新節(jié)點時,新服務可以通過向給定數據庫添加數據文件來設計和實現,對應的新節(jié)點數據文件可被創(chuàng)建用于添加到工作流序列,并且然后通過圖形或文本被添加到工作流序列,并且然后系統(tǒng)將創(chuàng)建對應的映射和定義文件?,F在,通過更具體的示例,考慮給定MSO希望向訂戶提供新通知服務的情況。該新服務可能使能這樣的選項,每當具有特定評級的視頻點播內容被選擇時,該選項就將文本消息發(fā)送給訂戶的移動設備。例如,每當具有PG-13評級、R評級或更高評級的電影被選擇時,訂戶可以選擇經由文本消息被通知。這樣的服務可能是服務需要的,以便知道不恰當的視頻是否將被其孩子選擇。在傳統(tǒng)上,MSO可能要花數月或數年來推出這樣的服務。然而,利用這里公開的技術,這樣的服務可以快速地被添加并且無需更新內容遞送系統(tǒng)本身。取而代之的是,引用該服務的節(jié)點被創(chuàng)建,工作流服務數據文件被創(chuàng)建并被存儲在數據庫中,并且然后用戶可以將新節(jié)點添加到集中化位置處的現有工作流序列,并且在會話管理器下次接收到發(fā)起針對點播內容的會話的請求時,會話管理器加載具有用于文本消息通知的新節(jié)點的工作流數據文件,并且當處理更新后工作流序列時,工作流引擎將處理引用文本消息服務且然后發(fā)送相應消息的該新的文本消息節(jié)點。返回圖4,所示代碼段圖示出了要添加的用于示例文本消息服務的示例數據文件的各部分。在線條402處,數據文件標識出了節(jié)點名。線條407然后標識映射以檢查或驗證各個特征,諸如所選標題的價格、電影評級、TV評級等。取決于訂戶的偏好和來自所選標題的信息,文本消息節(jié)點或對應的工作流服務可以指示發(fā)送文本消息,該文本消息可以包括標識數據、價格、評級或其它所請求信息。圖5然后圖示出了提供了用于發(fā)起文本消息傳輸的指令的示例數據文件。更具體地,工作流引擎可以利用例如在工作流引擎的存儲器映射圖中使用的“esbsServiceName”和“esbCategoryName”來標識特定節(jié)點。線條407還標識了工作流引擎如何將變量傳遞給對應服務。使用該數據文件,工作流引擎可以標識出將作為輸入進行發(fā)送的內容以及將作為輸出進行檢索的內容。線條407可被當作從一個命名空間到另一命名空間的映射。注意,BPM是指業(yè)務處理管理器。圖5的節(jié)點數據文件和圖6的工作流服務文件可以包括二者之間的映射或引用,以使得工作流引擎可以標識出要遞送和檢索的數據。工作流服務文件還可以通過讓要調用的Java類實現特定通知服務,來包括要執(zhí)行的動作的列表。圖6和圖7是在基于正交幅度調制(QAM)的系統(tǒng)(圖6)和在基于因特網協(xié)議(IP)的視頻遞送系統(tǒng)(圖7)中操作的示例的基于工作流的會話管理器或會話管理系統(tǒng)的框圖。這些示例序列是用于基于QAM和IP的系統(tǒng)的一般化建立序列。注意,存在被連接或縫合在一起以定義處理序列的離散活動或節(jié)點。任何給定節(jié)點可以基于在一個或多個先前節(jié)點的執(zhí)行期間發(fā)生的事物而被調用或執(zhí)行。因此,在一個節(jié)點的處理期間發(fā)生的事物可以影響或沖擊在第二節(jié)點的處理期間發(fā)生的事物。會話管理器然后可以在中央會話管理位置處被更新,并且集中地執(zhí)行會話管理器的實例以控制頭端。因此,會話管理器不位于頭端處,于是頭端可以專注于視頻傳輸/重傳活動。更具體地,這兩個示例會話管理器都可以應對可被執(zhí)行用于會話建立的標準操作集合,即使服務的執(zhí)行順序可能在它們之間不同。所期望的典型服務可以包括對用戶觀看所請求內容進行認證/授權;將所請求內容擴展為播放列表;分配將引起內容的流傳輸的(一個或多個)資源(V0D服務器或流傳輸器或CDN節(jié)點),分配將向客戶設備(QAM或CMTS)遞送內容的資源,以及向計費系統(tǒng)通知已進行了購買。類似地,當拆斷流時,會話管理器可以釋放在會話建立期間分配的資源。一般地,客戶端設備請求內容,例如,對點播視頻做出選擇,該請求使得系統(tǒng)發(fā)起會話。一般地,會話管理器然后處理工作流序列。在圖6和圖7中,序列被圖示為從左向后進行。每個節(jié)點可被選擇并定位作為業(yè)務處理的一部分,并且因此節(jié)點選擇實質上可以取決于給定應用而變化。圖12圖示出了根據這里的實施例在計算機/網絡環(huán)境中操作的會話管理器/內容管理器140的示例框圖。概括地說,圖12示出了顯示圖形用戶界面133的計算機系統(tǒng)149,圖形用戶界面133提供會話管理器和/或會話管理器編輯器。圖12的物理系統(tǒng)的各方面將在描述流程圖之后更詳細地進行描述?,F在將經由圖8-11中的流程圖和示圖來討論與會話管理器140相關聯的功能。為了以下討論的目的,會話管理器、會話管理器編輯器或內容遞送系統(tǒng)或其它適當實體執(zhí)行流程圖中的步驟。
現在更具體地描述實施例,圖8是圖示出這里公開的實施例的流程圖。在步驟810,會話管理器在服務器處接收來自客戶端設備的訪問視頻內容的請求。例如,觀看有線電視的用戶使用機頂盒控制器來選擇特定點播視頻標題,或者操作平板電腦或蜂窩電話的用戶選擇要流傳輸的特定視頻。在步驟820,會話管理器訪問數據文件,該數據文件定義了要經由工作流引擎執(zhí)行的工作流序列。例如,該數據文件可以是XML文件、文本文件或其它數據文件。工作流序列定義多個節(jié)點,每個節(jié)點標識要執(zhí)行的至少一個會話管理服務。多個節(jié)點都可被包括在該數據文件內,或者替代地,可以引用工作流節(jié)點的各數據文件。這些節(jié)點中的至少一個可以標識在給定會話管理服務之間傳遞的數據。例如,特定節(jié)點標識電影的標題,提取價格和評級,并且將該數據傳遞給后續(xù)節(jié)點或工作流服務。在步驟830,會話管理器將工作流序列和多個節(jié)點加載到共享存儲器中。例如,會話管理器可以將工作流序列加載到RAM存儲器中。通過將工作流序列加載到存儲器中,會話管理器不必在會話初始化期間持續(xù)保持數據,這有助于使得處理速度足夠快以符合訂戶期望。在步驟840,會話管理器經由工作流引擎根據該工作流序列來執(zhí)行與多個節(jié)點相對應的會話管理服務。換言之,會話管理器根據由工作流數據文件定義的指定順序來處理業(yè)務處理序列。在步驟850,會話管理器向遠程頭端發(fā)送指令以將視頻內容發(fā)送給客戶端設備。例如,會話管理器自身可能不執(zhí)行視頻遞送。利用集中化的會話管理器和遠程頭端或傳輸點,會話管理器發(fā)送指令給這些頭端以便將所請求視頻內容發(fā)送、流傳輸或以其它方式遞送給用戶。圖9包括圖示出了如這里公開的會話管理器140的可選功能和其它和/或替代實施例的流程圖。在步驟810,會話管理器在服務器處接收來自客戶端設備的訪問視頻內容的請求。在步驟812,會話管理器從視頻點播系統(tǒng)接收訪問視頻內容的請求。例如,有線電視訂戶選擇觀看點播/即時觀看電影,或者甚至選擇新的頻道來觀看。在一些實施例中,傳統(tǒng)廣播頻道本身可被配置用于使用每個頻道的會話管理器來發(fā)送視頻內容。在步驟820,會話管理器訪問數據文件,該數據文件定義了要經由工作流引擎執(zhí)行的工作流序列。工作流序列定義多個節(jié)點,每個節(jié)點標識要執(zhí)行的至少一個會話管理服務,至少一個節(jié)點標識在給定會話管理服務之間傳遞的數據。在步驟830,會話管理器將工作流序列和多個節(jié)點加載到共享存儲器中。在步驟832,會話管理器在給定會話的開始處加載工作流定義,并且緩存工作流定義以使得工作流引擎處理節(jié)點不用持續(xù)保持從處理多個節(jié)點中生成的數據直到向遠程頭端發(fā)送了指令之后為止。通過在存儲器中執(zhí)行工作流處理和數據傳送,會話管理器快速地完成給定工作流序列。在步驟840,會話管理器經由工作流引擎根據該工作流序列來執(zhí)行與多個節(jié)點相對應的會話管理服務。在步驟842,會話管理器通過檢查所緩存的工作流定義來確定工作流序列內要執(zhí)行的下一節(jié)點。
在步驟844,會話管理器在處理每個相應節(jié)點的同時,處理給定會話管理服務。換言之,在每個節(jié)點的處理期間,系統(tǒng)還處理對應服務并且然后進行到下一服務。通過非限制性示例,在圖6中,響應于對購買服務器節(jié)點的處理,會話管理器同時處理購買服務和任何相應動作,并且然后進行來處理播放列表引擎節(jié)點。在步驟846,會話管理器執(zhí)行至少一個新的會話管理服務而不用更新工作流引擎。通過將這樣的內容遞送系統(tǒng)構建為基于工作流的,可以在不用更新工作流引擎的情況下來添加、移除或修改服務??梢愿鹿?jié)點和對應服務兩者,或者可以僅更新對應服務。在步驟850,會話管理器向遠程頭端發(fā)送指令以將視頻內容發(fā)送給客戶端設備。這可以包括發(fā)送用以將視頻內容流傳輸到客戶端設備的指令。工作流定義可以定義從各會話管理服務傳遞的/傳遞到各會話管理服務的/在各會話管理服務間傳遞的數據。并非所有會話管理服務都需要從在前的服務生成或取回的數據。工作流引擎在少于約500毫秒中,處理在發(fā)送指令給遠程頭端之前執(zhí)行的節(jié)點的工作流序列。注意,所執(zhí)行的節(jié)點序列可以僅包含要求在開始發(fā)送視頻內容之前被處理的那些節(jié)點。例如,給定工作流序列可以具有多個分支。一些分支可能涉及通知服務或日志服務,其不一定需要在授權用戶以及開始視頻回放之前完成。因此,一個實施例包括這樣的工作流處理引擎,其在少于約800毫秒的時間內并且甚至在少于約250毫秒的時間內,實時地執(zhí)行(作為數據文件的)任務序列以提供會話管理并對回放授權。另一實施例包括修改現有工作流引擎以實時地處理節(jié)點。圖10是圖示出這里公開的實施例的流程圖。這些實施例可以包括可以結合會話管理器編輯器的會話管理器,或類似內容遞送系統(tǒng)。在步驟1010,內容遞送系統(tǒng)將節(jié)點的集合定義為數據文件,其中每個節(jié)點標識將要利用會話管理器執(zhí)行的至少一個服務。在步驟1020,內容遞送系統(tǒng)將服務的集合定義為數據文件,每個服務標識動作的集合,所述動作引用當被執(zhí)行時提供與相應服務相對應的會話管理處理的功能。在步驟1030,內容遞送系統(tǒng)將工作流處理順序定義為工作流數據文件。工作流處理順序指示節(jié)點的集合的執(zhí)行次序以便實現內容遞送系統(tǒng)的會話管理。在步驟1040,內容遞送系統(tǒng)生成會話管理器,該會話管理器控制通過網絡將內容遞送給客戶端設備。會話管理器在被執(zhí)行時使用工作流引擎,工作流引擎根據工作流數據文件中定義的工作流處理順序來提供對節(jié)點集合的實時執(zhí)行。圖11包括圖示出如這里公開的內容遞送系統(tǒng)的可選功能和其它和/或替代實施例的流程圖。在步驟1010,內容遞送系統(tǒng)將節(jié)點的集合定義為數據文件,其中每個節(jié)點標識將要利用會話管理器執(zhí)行的至少一個服務。業(yè)務服務可以被表示為節(jié)點(步驟1014)。在步驟1012,內容遞送系統(tǒng)創(chuàng)建每個節(jié)點到對應服務的至少一個數據文件的映射。對應服務的數據文件標識工作流引擎在處理執(zhí)行序列中的后續(xù)節(jié)點之前要調用的動作。例如,這些動作可以包括檢索訂戶狀態(tài)、檢索標題評級等。在步驟1020,內容遞送系統(tǒng)將服務的集合定義為數據文件,每個服務標識動作的集合,所述動作引用當被執(zhí)行時提供與相應服務相對應的會話管理處理的功能。在步驟1030,內容遞送系統(tǒng)將工作流處理順序定義為工作流數據文件。工作流處理順序指示節(jié)點的集合的執(zhí)行次序以便實現內容遞送系統(tǒng)的會話管理。
在步驟1032,內容遞送系統(tǒng)響應于經由圖形用戶界面接收到的、指定了指示處理序列的給定節(jié)點之間的連接和節(jié)點的集合的輸入,來創(chuàng)建工作流數據文件。因此,內容提供商可以在無需更新內容遞送硬件的情況下來生成工作流和服務改變。在步驟1040,內容遞送系統(tǒng)生成會話管理器,該會話管理器控制通過網絡將內容遞送給客戶端設備。會話管理器在被執(zhí)行時使用工作流引擎,工作流引擎根據工作流數據文件中定義的工作流處理順序來提供對節(jié)點集合的實時執(zhí)行。在步驟1042,內容遞送系統(tǒng)生成會話管理器,該會話管理器控制將視頻內容遞送給請求了視頻內容的客戶端設備來作為視頻點播服務。在步驟1044,內容遞送系統(tǒng)在啟動時加載工作流的定義并且緩存工作流的定義直到給定會話完成為止,以使得工作流引擎執(zhí)行給定的節(jié)點工作流而不用將節(jié)點狀態(tài)信息存儲在非易失性存儲裝置中直到開始向給定客戶端遞送內容為止。不用為會話啟動來持續(xù)保持工作流處理期間的數據,會話管理器因此可以為點播視頻應用提供足夠快的基于工作流的會話管理系統(tǒng)。例如,觀看者通常不希望等待視頻內容開始播放長于約半秒的時間。這里公開的技術可以在約100-200毫秒內完成工作流處理。在步驟1046,會話管理器在發(fā)送指令以遞送視頻內容之前來執(zhí)行業(yè)務服務序列。例如,某些授權、計費及其它任務可能需要在流傳輸內容之前完成。在另一實施例中,內容遞送系統(tǒng)包括用于控制內容到客戶端設備的遞送的會話管理器編輯器或其它基于圖形的編輯器。在此實施例中,內容遞送系統(tǒng)經由用戶接口接收選擇節(jié)點集合的輸入。例如,用戶可以訪問菜單或節(jié)點的其它數據儲存庫并且將這些拖到排序區(qū)域,或者用戶可以在構建序列時根據需要選擇特定節(jié)點。每個節(jié)點是或者表示數據文件,該數據文件標識會話管理器要經由工作流引擎來執(zhí)行的至少一個會話管理服務。內容遞送系統(tǒng)經由用戶接口來接收指定了工作流引擎要執(zhí)行的節(jié)點序列的輸入。內容遞送系統(tǒng)生成定義了工作流引擎要執(zhí)行的該節(jié)點序列的工作流數據文件。然后,內容遞送系統(tǒng)或會話管理器編輯器創(chuàng)建會話管理器,該會話管理器在被執(zhí)行時對經由工作流引擎向客戶端設備遞送內容進行控制。該工作流引擎根據來自工作流數據文件的所定義的節(jié)點序列來執(zhí)行會話管理服務。該會話管理器可被用于控制視頻內容到客戶端設備的遞送,客戶端設備包括使用視頻點播服務的設備。因此,會話管理器在被執(zhí)行時,在啟動時加載工作流的定義并且緩存工作流的定義直到給定會話完成為止,以使得給定的節(jié)點工作流被管理者引擎執(zhí)行,而不用將節(jié)點狀態(tài)信息存儲在非易失性存儲裝置中直到開始向給定客戶端遞送內容為止,從而提高了處理速度。使用圖形編輯器,用戶可以指定表示節(jié)點的圖標的圖形布局。圖形布局或布置因此指定了相連節(jié)點的序列,以使得基于表示節(jié)點的圖標的圖形布局來生成工作流數據文件。圖形編輯器還可以接收修改圖標的圖形布局的輸入,并且然后更新工作流數據文件中的工作流定義。繼續(xù)到圖12,以下討論提供了指示出如何實現與如上所述的會話管理器140相關聯的功能的基本實施例。然而,應注意,用于實現會話管理器140的實際配置可以取決于相應應用而變化。例如,計算機系統(tǒng)149可以包括執(zhí)行如這里描述的處理的一個或多個計算機。
在不同實施例中,計算機系統(tǒng)149可以是任何不同類型的設備,包括但不限于蜂窩電話、個人計算機系統(tǒng)、臺式計算機、膝上型計算機、筆記本電腦或上網本、大型計算機系統(tǒng)、手持計算機、工作站、網絡計算機、應用服務器、存儲設備、消費電子設備,如相機、攝錄像機、機頂盒、移動設備、視頻游戲控制臺、手持視頻游戲設備、或者一般地任何類型的計算或電子設備。計算機系統(tǒng)149被示為連接到顯示監(jiān)視器130,顯示監(jiān)視器130用于顯示供用戶136利用輸入設備135進行操作的圖形用戶界面133??蛇x地,貯存庫138可被用于存儲數據文件和處理前后的內容兩者。輸入設備135可以包括一個或多個設備,諸如鍵盤、計算機鼠標、麥克風等。如圖所示,本示例的計算機系統(tǒng)149包括互連143,互連143將存儲器系統(tǒng)141、處理器142、I/O接口 144和通信接口 145相耦合。I/O接口 144提供到外圍設備的連接,外圍設備例如是包括計算機鼠標、鍵盤、移動光標的選擇工具、顯示屏等的輸入設備135。根據這里的實施例,通信接口 145使得計算機系統(tǒng)149的會話管理器140能夠通過網絡通信,并且根據需要,檢索需要用于創(chuàng)建視圖、處理內容、與用戶通信等的任何數據。如圖所示,存儲器系統(tǒng)141被編碼有支持上面討論的且并且如下面進一步討論的功能的會話管理器140。會話管理器140-1 (和/或這里描述的其它資源)可被體現為支持根據這里描述的不同實施例的處理功能的軟件代碼,諸如數據和/或邏輯指令。在一個實施例的操作期間,處理器142通過利用互連143來訪問存儲器系統(tǒng)141,以便起動、運行、執(zhí)行、解釋或以其它方式執(zhí)行會話管理器140-1的邏輯指令。會話管理器140-1的執(zhí)行產生了會話管理器處理140-2中的處理功能。換言之,會話管理器處理140-2表示在計算機系統(tǒng)149的處理器142之內或之上執(zhí)行的會話管理器140的一個或多個部分。應注意,除了執(zhí)行這里討論的方法操作的會話管理器處理140-2之外,這里的其它實施例還包括會話管理器140-1本身(即,未被執(zhí)行的或非執(zhí)行邏輯指令和/或數據)。會話管理器140-1可被存儲在非暫時性的有形計算機可讀存儲介質上,包括如下計算機可讀介質,諸如軟盤、硬盤、光介質等。根據其它實施例,會話管理器140-1還可以存儲在存儲器類型的系統(tǒng)中,例如以固件、只讀存儲器(ROM)的形式,或者在此示例中,以存儲器系統(tǒng)141中的可執(zhí)行代碼的形式。還應注意,除了這些實施例,這里的其它實施例包括會話管理器140-1在處理器142中執(zhí)行來作為會話管理器處理140-2。因此,本領域技術人員將明白,計算機系統(tǒng)149可以包括其它處理和/或軟件以及硬件組件,例如控制硬件資源或多個處理器的分配和使用的操作系統(tǒng)。本領域技術人員還將明白,可以在對上面說明的技術的操作做出許多變更的同時,依然獲得本發(fā)明的相同目的。這些變更意圖由本發(fā)明的范圍所涵蓋。這樣,本發(fā)明前面對實施例的描述不希望是限制性的。而是,對本發(fā)明實施例的任何限制被呈現在以下權利要求中。
權利要求
1.一種用于控制通過網絡向客戶端設備遞送內容的計算機實現的會話管理方法,該計算機實現的方法包括 在服務器處接收來自客戶端設備的訪問視頻內容的請求; 訪問定義了要經由工作流引擎執(zhí)行的工作流序列的數據文件,所述工作流序列定義多個節(jié)點,每個節(jié)點標識要執(zhí)行的至少一個會話管理服務,至少一個節(jié)點標識在給定會話管理服務之間傳遞的數據; 將所述工作流序列和多個節(jié)點加載到共享存儲器中; 經由所述工作流引擎根據所述工作流序列來執(zhí)行與所述多個節(jié)點相對應的會話管理服務;以及 發(fā)送指令給遠程頭端以向所述客戶端設備發(fā)送所述視頻內容。
2.如權利要求1所述的計算機實現的方法,其中,將所述工作流序列和多個節(jié)點加載到共享存儲器中包括在給定會話啟動時加載工作流定義,并且緩存所述工作流定義,以使得所述工作流引擎對節(jié)點進行處理而不用持續(xù)保持從處理所述多個節(jié)點中生成的數據直到向所述遠程頭端發(fā)送指令之后為止。
3.如權利要求2所述的計算機實現的方法,還包括通過檢查所緩存的工作流定義來確定所述工作序列中要執(zhí)行的下一節(jié)點。
4.如權利要求2所述的計算機實現的方法,還包括 其中,執(zhí)行會話管理服務包括在處理每個相應節(jié)點的同時處理給定會話管理服務;以及 其中,所述工作流定義定義了從各個會話管理服務傳遞的數據。
5.如權利要求1所述的計算機實現的方法,還包括 其中,接收訪問視頻內容的請求包括從視頻點播系統(tǒng)接收訪問視頻內容的請求;以及 其中,發(fā)送指令給遠程頭端包括發(fā)送向所述客戶端設備流傳輸所述視頻內容的指令。
6.如權利要求5所述的計算機實現的方法,其中,所述工作流引擎在少于約500毫秒的時間內來處理在發(fā)送指令給所述遠程頭端之前執(zhí)行的節(jié)點的工作流序列。
7.如權利要求1所述的計算機實現的方法,其中,執(zhí)行會話管理服務包括執(zhí)行至少一個新的會話管理服務而不用更新所述工作流引擎。
8.一種提供用于控制通過網絡向客戶端設備遞送內容的會話管理的系統(tǒng),該系統(tǒng)包括 處理器;以及 耦合到所述處理器的存儲器,所述存儲器存儲指令,所述指令在被所述處理器執(zhí)行時使得所述系統(tǒng)執(zhí)行以下操作 在服務器處接收來自客戶端設備的訪問視頻內容的請求; 訪問定義了要經由工作流引擎執(zhí)行的工作流序列的數據文件,所述工作流序列定義多個節(jié)點,每個節(jié)點標識要執(zhí)行的至少一個會話管理服務,至少一個節(jié)點標識在給定會話管理服務之間傳遞的數據; 將所述工作流序列和多個節(jié)點加載到共享存儲器中; 經由所述工作流引擎根據所述工作流序列來執(zhí)行與所述多個節(jié)點相對應的會話管理服務;以及發(fā)送指令給遠程頭端以向所述客戶端設備發(fā)送所述視頻內容。
9.一種開發(fā)用于控制通過網絡向客戶端設備遞送內容的會話管理器的計算機實現的方法,該計算機實現的方法包括 經由用戶接口接收選擇節(jié)點的集合的輸入,每個節(jié)點是數據文件,所述數據文件標識了會話管理器要經由工作流引擎執(zhí)行的至少一個會話管理服務; 經由所述用戶接口接收指定了所述工作流引擎要執(zhí)行的節(jié)點序列的輸入; 生成定義了所述工作流引擎要執(zhí)行的所述節(jié)點序列的工作流數據文件;以及創(chuàng)建當被執(zhí)行時控制經由所述工作流引擎向客戶端設備遞送內容的會話管理器,所述工作流引擎根據來自所述工作流數據文件的所定義節(jié)點序列來執(zhí)行會話管理服務。
10.如權利要求9所述的計算機實現的方法,其中,接收指定了節(jié)點序列的輸入包括經由圖形編輯器來接收指定了表示節(jié)點的圖標的圖形布局的輸入,所述圖形布局指定相連節(jié)點的序列,其中所述工作流數據文件基于表示節(jié)點的圖標的圖形布局被生成。
11.如權利要求10所述的計算機實現的方法,其中,響應于接收到修改圖標的圖形布局的輸入,更新所述工作流數據文件中的工作流定義。
12.如權利要求9所述的計算機實現的方法,其中,創(chuàng)建控制向客戶端設備遞送內容的會話管理器包括創(chuàng)建控制向請求視頻內容的客戶端設備遞送所述視頻內容來作為視頻點播服務的會話管理器。
13.如權利要求12所述的計算機實現的方法,其中,將服務的集合定義為數據文件包括定義對作出請求的客戶端設備接收視頻內容進行授權的至少一個服務。
14.如權利要求9所述的計算機實現的方法,其中,所述會話管理器在被執(zhí)行時,在啟動時加載工作流的定義,并且緩存所述工作流的定義直到給定會話完成為止,以使得由所述工作流引擎執(zhí)行給定的節(jié)點工作流而不用將節(jié)點狀態(tài)信息存儲在非易失性存儲裝置中直到開始向給定客戶端遞送內容為止。
15.一種開發(fā)用于控制到客戶端設備的內容遞送的會話管理器的系統(tǒng),該系統(tǒng)包括 處理器;以及 耦合到所述處理器的存儲器,所述存儲器存儲指令,所述指令在被所述處理器執(zhí)行時使得所述系統(tǒng)執(zhí)行以下操作 經由用戶接口接收選擇節(jié)點的集合的輸入,每個節(jié)點是數據文件,所述數據文件標識了會話管理器要經由工作流引擎執(zhí)行的至少一個會話管理服務; 經由所述用戶接口接收指定了所述工作流引擎要執(zhí)行的節(jié)點序列的輸入; 生成定義了所述工作流引擎要執(zhí)行的所述節(jié)點序列的工作流數據文件;以及創(chuàng)建當被執(zhí)行時控制經由所述工作流引擎向客戶端設備遞送內容的會話管理器,所述工作流引擎根據來自所述工作流數據文件的所定義節(jié)點序列來執(zhí)行會話管理服務。
16.一種用于開發(fā)會話管理器的方法,該會話管理器管理用于向端用戶設備遞送內容的內容遞送系統(tǒng),該方法包括 將節(jié)點的集合定義為數據文件,每個節(jié)點標識將利用所述會話管理器執(zhí)行的至少一個服務; 將服務的集合定義為數據文件,每個服務標識動作的集合,所述動作引用當被執(zhí)行時提供與相應服務相對應的會話管理處理的功能;將工作流處理順序定義為工作流數據文件,所述工作流處理順序指示節(jié)點的集合的執(zhí)行次序以便實現所述內容遞送系統(tǒng)的會話管理;以及 生成控制通過網絡將內容遞送給客戶端設備的會話管理器,該會話管理器在被執(zhí)行時使用工作流引擎,所述工作流引擎根據所述工作流數據文件中定義的所述工作流處理順序來提供對所述節(jié)點的集合的實時執(zhí)行。
17.如權利要求16所述的方法,其中,生成控制將內容遞送給客戶端設備的會話管理器包括創(chuàng)建控制向請求視頻內容的客戶端設備遞送所述視頻內容來作為視頻點播服務的會話管理器。
18.如權利要求17所述的方法,其中,將服務的集合定義為數據文件包括定義對作出請求的客戶端設備接收視頻內容進行授權的至少一個服務。
19.如權利要求16所述的方法,其中,每個節(jié)點標識將被執(zhí)行的至少一個服務包括每個節(jié)點創(chuàng)建到對應服務的至少一個數據文件的映射,所述對應服務的數據文件標識所述工作流引擎在處理執(zhí)行序列中的后續(xù)節(jié)點之前要調用的動作。
20.如權利要求16所述的方法,其中,所述會話管理器在被執(zhí)行時,在啟動時加載工作流的定義,并且緩存所述工作流的定義直到給定會話完成為止,以使得由所述工作流引擎執(zhí)行給定的節(jié)點工作流而不用將節(jié)點狀態(tài)信息存儲在非易失性存儲裝置中直到開始向給定客戶端遞送內容為止。
21.如權利要求16所述的方法,還包括 其中,將節(jié)點的集合定義為數據文件包括將業(yè)務服務表示為節(jié)點;以及 其中,根據所述工作流數據文件中定義的所述工作流處理順序執(zhí)行節(jié)點的集合包括執(zhí)行在遞送視頻內容之前要執(zhí)行的一系列業(yè)務服務。
22.如權利要求16所述的方法,其中,將所述工作流處理順序定義為工作流數據文件包括響應于經由圖形用戶界面接收到指定了指示處理序列的給定節(jié)點之間的連接和節(jié)點的集合的輸入,來創(chuàng)建所述工作流數據文件。
全文摘要
這里公開的技術包括系統(tǒng)和方法,其提供用于內容遞送系統(tǒng)的基于工作流的會話管理器或工作流引擎,例如,用于遞送點播視頻、流傳輸音頻、流傳輸視頻等等。這些技術增加了在視頻遞送系統(tǒng)中部署新的特征和服務的速度和靈活性。這些技術包括提供面向服務和基于工作流的方法的會話管理模型。作為面向服務的方法,每個功能會話管理步驟可以被表示為業(yè)務服務。作為基于工作流的解決方案,將被執(zhí)行的步驟序列可被定義為數據。定義為數據后,步驟(節(jié)點、任務)隨后可被創(chuàng)建并且利用圖形編輯器來改變??梢酝ㄟ^定義新服務的動作并將節(jié)點添加到給定會話管理工作流序列中來添加新服務。本技術包括實時地發(fā)起會話管理的工作流引擎。
文檔編號G06Q10/06GK103069444SQ201180015533
公開日2013年4月24日 申請日期2011年3月24日 優(yōu)先權日2010年3月24日
發(fā)明者托馬斯·E·小艾瑞克森, 唐納德·艾德里安·小迪尤爾, 理查德·康拉德·克萊姆森, 安德魯·詹姆斯·拉姆普爾拉, 李常庚 申請人:寶美瑞思網絡公司