專利名稱:數(shù)字媒體服務(wù)器的升級(jí)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字媒體服務(wù)器領(lǐng)域。
背景技術(shù):
數(shù)字媒體服務(wù)器,例如網(wǎng)絡(luò)服務(wù)器和視頻點(diǎn)播服務(wù)器,典型地包括許多功能性組件,這些組件包括用于存儲(chǔ)數(shù)字媒體,將這種媒體從文件格式轉(zhuǎn)換到線格式(wire format),以及安排媒體包(media packet)的傳輸?shù)慕M件。在運(yùn)行期間,媒體服務(wù)器從客戶或管理器接受對(duì)內(nèi)容的輸入請(qǐng)求,并通過網(wǎng)絡(luò)向客戶傳輸媒體包。
大多數(shù)數(shù)字媒體服務(wù)器采用基于PC的結(jié)構(gòu)(PC-based architecture)并運(yùn)行多種軟件組件,以提供上述的功能。在這些軟件組件的設(shè)計(jì)中,技術(shù)人員付出了很大的努力以確保對(duì)其進(jìn)行了充分地調(diào)試,并且沒有缺陷。然而,實(shí)際上,許多缺陷在設(shè)計(jì)階段是不能被發(fā)現(xiàn)的,只有當(dāng)軟件被投入實(shí)際運(yùn)行中時(shí)才能暴露出這些缺陷。
系統(tǒng)運(yùn)行中發(fā)現(xiàn)的缺陷常??梢酝ㄟ^進(jìn)行軟件組件的升級(jí)而糾正。有時(shí)也進(jìn)行軟件升級(jí)以補(bǔ)充或改進(jìn)服務(wù)器功能,從而延長(zhǎng)服務(wù)器的競(jìng)爭(zhēng)生命。
為了升級(jí)正在執(zhí)行的軟件組件,就必須停止該組件的運(yùn)行,將替換版本載入存儲(chǔ)器并運(yùn)行。在這個(gè)階段中,組件不能提供正常的服務(wù)。
媒體服務(wù)器操作系統(tǒng)的缺陷產(chǎn)生的后果可能更為嚴(yán)重。典型地,操作系統(tǒng)圍繞許多緊密結(jié)合的模塊設(shè)計(jì),這些模塊向其它程序提供抽象數(shù)據(jù)結(jié)構(gòu),例如文件、存儲(chǔ)器、輸入/輸出流、信號(hào)量(semaphore)、程序以及線程。應(yīng)用程序通過應(yīng)用程序接口(API)存取這些抽象結(jié)構(gòu)。對(duì)這些結(jié)構(gòu)其中之一的改變可能導(dǎo)致其它結(jié)構(gòu)或模塊中的副作用。通常地,操作系統(tǒng)級(jí)組件的替代要求重新載入整個(gè)操作系統(tǒng),并在服務(wù)器重新啟動(dòng)過程中完成。因此,沒有使媒體服務(wù)器脫機(jī)就不能升級(jí)操作系統(tǒng)級(jí)資源,并且在這些服務(wù)被恢復(fù)之前,重新啟動(dòng)可能需要相當(dāng)長(zhǎng)的時(shí)間。
脫機(jī)的服務(wù)器不能接收輸入的請(qǐng)求或向已有的會(huì)話傳輸內(nèi)容。因此,脫機(jī)的服務(wù)器可能影響整個(gè)服務(wù)網(wǎng)絡(luò)的可用性,除非有足夠的冗余服務(wù)器可用。
圖1說明典型的升級(jí)過程及其對(duì)網(wǎng)絡(luò)可用性的影響。如圖1所示,在步驟105中,啟動(dòng)升級(jí)。接著,在步驟110中,檢測(cè)到升級(jí)包。如果該升級(jí)包不能被下載,則升級(jí)過程結(jié)束(步驟190)。
在可以安裝升級(jí)軟件之前,執(zhí)行升級(jí)前管理步驟120。特別地,在步驟125中,用戶會(huì)話或者變少,或者被轉(zhuǎn)移到未受影響的機(jī)器。接著,在步驟127中,中斷將被更新的軟件所影響的服務(wù)。
接著,執(zhí)行升級(jí)過程步驟140。特別地,在步驟145中,系統(tǒng)的設(shè)置和屬性或者被復(fù)制或者被修改。在步驟147中,從升級(jí)包復(fù)制新的組件。盡管一些媒體服務(wù)器可能允許在其運(yùn)行時(shí)從本地或遠(yuǎn)程傳輸數(shù)據(jù)進(jìn)入該服務(wù)器,但是為了實(shí)現(xiàn)升級(jí),一些服務(wù)中斷是特別必須的,而且在大多數(shù)情況下,服務(wù)器必需首先脫機(jī)工作。
接著,執(zhí)行升級(jí)后過程步驟160。特別地,在步驟165中,媒體服務(wù)器的電源被關(guān)斷并接著接通(如果服務(wù)器脫機(jī)),并且重新開始升級(jí)后的軟件提供的服務(wù)。單個(gè)電源周期可以持續(xù)從只有幾秒到幾分鐘之內(nèi)的任何時(shí)間。單個(gè)電源周期需要的時(shí)間量依賴于服務(wù)器在斷開電源之前依次斷開正在運(yùn)行的應(yīng)用程序所需要的時(shí)間加上在電源再次接通后重新啟動(dòng)服務(wù)器和重新恢復(fù)應(yīng)用程序所需要的時(shí)間。只有在這些事件完成后,服務(wù)器才能開始接收新的用戶會(huì)話(步驟167)。
上述過程可能較大地影響系統(tǒng)的操作,特別是在整個(gè)系統(tǒng)升級(jí)的情況下,例如所有系統(tǒng)API和低級(jí)驅(qū)動(dòng)器的升級(jí)。一般的數(shù)字媒體公司可能具有很多受這種升級(jí)影響的在線媒體服務(wù)器。盡管公司可能選擇當(dāng)服務(wù)器應(yīng)用處于最低點(diǎn)的時(shí)候進(jìn)行升級(jí),但是如果需要關(guān)閉媒體服務(wù)器,升級(jí)仍然可能在某種程度上中斷服務(wù)。至少公司可能由于停機(jī)時(shí)間受到收入的損失和遭受客戶的不滿。
為了避免這種服務(wù)中斷現(xiàn)象,公司經(jīng)常保有過多的服務(wù)器容量或冗余系統(tǒng),以處理在升級(jí)過程中從受影響的服務(wù)器引導(dǎo)出來的通信量。但是冗余系統(tǒng)會(huì)引入額外的開支并且在許多情況下是無效的。
發(fā)明內(nèi)容
本發(fā)明公開了一種系統(tǒng)和方法,其用于升級(jí)數(shù)字媒體服務(wù)器的硬件和軟件組件,而不會(huì)中斷媒體傳輸服務(wù)。在一個(gè)優(yōu)選實(shí)施例中,本系統(tǒng)和方法采用面向?qū)ο蟮哪P?,其允許當(dāng)安裝操作系統(tǒng)和應(yīng)用程序級(jí)的軟件升級(jí)程序時(shí),系統(tǒng)服務(wù)器保持完全運(yùn)行狀態(tài)。此外,該系統(tǒng)和方法使用冗余或可分區(qū)可編程邏輯器件以執(zhí)行固件升級(jí),而不中斷媒體傳輸服務(wù)。
在另一方面,本發(fā)明旨在提供一種升級(jí)數(shù)字媒體服務(wù)器的方法,包括檢查包括新對(duì)象的升級(jí)包的存在;在升級(jí)包中識(shí)別新的對(duì)象;識(shí)別新的對(duì)象的功能和屬性;評(píng)估新的對(duì)象的兼容性;將新的對(duì)象示例為應(yīng)用程序?qū)ο蠡蚍?wù)對(duì)象;確定新的對(duì)象是否代替舊的對(duì)象;以及如果該新的對(duì)象代替舊的對(duì)象,則替換舊的對(duì)象。
在本發(fā)明的另一方面,替換的步驟進(jìn)一步包括鎖閉舊的對(duì)象和新的對(duì)象;從舊的對(duì)象向新的對(duì)象復(fù)制字段(field);建立從所述新的對(duì)象到對(duì)所述舊的對(duì)象有關(guān)聯(lián)的各個(gè)對(duì)象的鏈接;將其它對(duì)象到所述舊的對(duì)象的鏈接重新連接到所述新的對(duì)象;解鎖新的對(duì)象;以及刪除舊的對(duì)象。
在本發(fā)明的另一方面,刪除的步驟包括存檔(archiving)舊的對(duì)象。
在本發(fā)明的另一方面,刪除的步驟包括清除(purging)舊的對(duì)象。
在本發(fā)明的另一方面,升級(jí)包進(jìn)一步包括一種或多種用于舊的對(duì)象的新方法,所述方法進(jìn)一步包括識(shí)別一種或多種新方法;評(píng)估一種或多種新方法的兼容性;確定新方法是否代替舊方法;以及如果新方法代替舊方法,則停止并替換舊方法。
在本發(fā)明的另一方面,舊方法是一個(gè)接口。
在本發(fā)明的另一方面,該方法進(jìn)一步包括從網(wǎng)絡(luò)源下載升級(jí)包。
在本發(fā)明的另一方面,該方法進(jìn)一步包括從存儲(chǔ)介質(zhì)載入升級(jí)包。
在另一方面,本發(fā)明旨在一種升級(jí)數(shù)字媒體服務(wù)器的方法,其具有包括第一活動(dòng)分區(qū)和第二非活動(dòng)分區(qū)的可分區(qū)的可編程邏輯器件,該方法包括用新的邏輯為第二分區(qū)編程;將第二分區(qū)從非活動(dòng)狀態(tài)轉(zhuǎn)換到活動(dòng)狀態(tài),并同時(shí)從第一分區(qū)接管(assume)數(shù)據(jù)處理功能;以及將第一分區(qū)轉(zhuǎn)換為非活動(dòng)狀態(tài)。
在本發(fā)明的另一方面,所述方法進(jìn)一步包括用新的邏輯為第一分區(qū)編程。
在另一方面,本發(fā)明旨在提供一種升級(jí)數(shù)字媒體服務(wù)器的方法,數(shù)字媒體服務(wù)器具有兩個(gè)或多個(gè)冗余的可編程邏輯器件,每個(gè)具有活動(dòng)和非活動(dòng)狀態(tài),所述方法包括確定處于活動(dòng)狀態(tài)的第一組可編程邏輯器件;向處于非活動(dòng)狀態(tài)的一個(gè)或多個(gè)邏輯器件的第二組載入新的邏輯;將第二組器件轉(zhuǎn)換到活動(dòng)狀態(tài),并同時(shí)從第一組器件接管數(shù)據(jù)處理功能;以及將第一器件轉(zhuǎn)換為非活動(dòng)狀態(tài)。
在本發(fā)明的另一方面,該方法進(jìn)一步包括向第一組器件載入新的邏輯。
在另一方面,本發(fā)明旨在提供一種在數(shù)字媒體服務(wù)器上安裝升級(jí)軟件的方法,該數(shù)字媒體服務(wù)器包括通用計(jì)算機(jī)和硬件引擎,所述計(jì)算機(jī)包括面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,而且所述硬件引擎包括具有第一活動(dòng)分區(qū)和第二非活動(dòng)分區(qū)的可編程的邏輯器件,所述方法包括檢查包括新的對(duì)象和新邏輯的升級(jí)包的存在;在升級(jí)包中識(shí)別新的對(duì)象;識(shí)別新的對(duì)象的功能和屬性;評(píng)估新的對(duì)象的兼容性;將新的對(duì)象示例為應(yīng)用程序?qū)ο蠡蚍?wù)對(duì)象;確定新的對(duì)象是否代替舊的對(duì)象;如果新的對(duì)象代替舊的對(duì)象,則替換舊的對(duì)象;在升級(jí)包中識(shí)別新邏輯;用新邏輯編程第二非活動(dòng)分區(qū);將第二分區(qū)從非活動(dòng)狀態(tài)轉(zhuǎn)換到活動(dòng)狀態(tài),并同時(shí)從第一活動(dòng)分區(qū)接管數(shù)據(jù)處理功能;以及將第一分區(qū)轉(zhuǎn)換為非活動(dòng)狀態(tài)。
在本發(fā)明的另一方面,替換的步驟進(jìn)一步包括鎖閉舊的對(duì)象和新的對(duì)象;從舊的對(duì)象向新的對(duì)象復(fù)制字段(field);建立從所述新的對(duì)象到各個(gè)對(duì)所述舊的對(duì)象相關(guān)聯(lián)的對(duì)象的鏈接;將其它對(duì)象到所述舊的對(duì)象的鏈接重新連接到所述新的對(duì)象;解鎖新的對(duì)象;以及刪除舊的對(duì)象。
在另一方面,本發(fā)明旨在提供一種在數(shù)字媒體服務(wù)器上安裝升級(jí)軟件的方法,該數(shù)字媒體服務(wù)器包括通用計(jì)算機(jī)和硬件引擎,所述計(jì)算機(jī)包括面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,而所述硬件引擎包括兩個(gè)或多個(gè)可編程的邏輯器件,每個(gè)器件具有活動(dòng)和非活動(dòng)狀態(tài),所述方法包括檢查包括新的對(duì)象和新邏輯的升級(jí)包的存在;在升級(jí)包中識(shí)別新的對(duì)象;識(shí)別新的對(duì)象的功能和屬性;評(píng)估新的對(duì)象的兼容性;將新的對(duì)象示例為應(yīng)用程序?qū)ο蠛头?wù)對(duì)象;確定新的對(duì)象是否代替舊的對(duì)象;如果新的對(duì)象代替舊的對(duì)象,則替換舊的對(duì)象;在升級(jí)包中識(shí)別新邏輯;確定處于活動(dòng)狀態(tài)的第一組可編程邏輯器件;將新邏輯編程進(jìn)入處于非活動(dòng)狀態(tài)的一個(gè)或多個(gè)邏輯器件中的第二組;將第二組器件轉(zhuǎn)換到活動(dòng)狀態(tài),并同時(shí)從第一組器件接管數(shù)據(jù)處理功能;以及將第一組器件轉(zhuǎn)換到非活動(dòng)狀態(tài)。
在本發(fā)明的另一方面,替換的步驟進(jìn)一步包括鎖閉舊的對(duì)象和新的對(duì)象;從舊的對(duì)象向新的對(duì)象復(fù)制字段;建立從所述新的對(duì)象到各個(gè)對(duì)所述舊的對(duì)象相關(guān)聯(lián)的對(duì)象的鏈接;將其它對(duì)象到所述舊的對(duì)象的鏈接重新連接到所述新的對(duì)象;解鎖新的對(duì)象;以及刪除舊的對(duì)象。
在本發(fā)明的另一方面,升級(jí)包進(jìn)一步包括用于舊的對(duì)象的一種或多種新方法,以及所述方法進(jìn)一步包括識(shí)別一種或多種新方法;評(píng)估一種或多種新方法的兼容性;確定新方法是否代替舊方法;以及如果新方法代替舊方法,則停止并替換舊方法。
在本發(fā)明的另一方面,所述舊方法是一個(gè)接口。
在另一方面,本發(fā)明旨在提供一種數(shù)字媒體服務(wù)器,其包括對(duì)象存儲(chǔ);面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,其包括服務(wù)對(duì)象,應(yīng)用程序?qū)ο?,以及?duì)象管理器,其適合方便服務(wù)對(duì)象和應(yīng)用程序?qū)ο蟮奶鎿Q,而不中斷服務(wù)和應(yīng)用程序?qū)ο筇峁┑臄?shù)據(jù)處理功能。
在本發(fā)明的另一方面,服務(wù)器進(jìn)一步包括網(wǎng)絡(luò)接口,其用于下載包括替代的服務(wù)和應(yīng)用程序?qū)ο蟮纳?jí)包。
在本發(fā)明的另一方面,服務(wù)器進(jìn)一步包括存儲(chǔ)介質(zhì),其用于存儲(chǔ)包括替代的服務(wù)和應(yīng)用程序?qū)ο蟮纳?jí)包。
在另一方面,本發(fā)明旨在提供一種數(shù)字媒體服務(wù)器,其包括兩個(gè)或多個(gè)可編程的邏輯器件,每個(gè)器件能夠在活動(dòng)狀態(tài)和非活動(dòng)狀態(tài)之間切換;輸入數(shù)據(jù)通路;以及輸出數(shù)據(jù)通路;其中處于活動(dòng)狀態(tài)的一個(gè)或多個(gè)可編程的邏輯器件處理到達(dá)輸入數(shù)據(jù)通路的數(shù)字媒體,并將被處理的數(shù)字媒體提供給輸出數(shù)據(jù)通路,同時(shí)編程處于非活動(dòng)狀態(tài)的一個(gè)或多個(gè)可編程的邏輯器件。
在另一方面,本發(fā)明旨在提供一種數(shù)字媒體服務(wù)器,其包括可分區(qū)的可編程的邏輯器件,其具有兩個(gè)或多個(gè)獨(dú)立的可編程的分區(qū),每個(gè)分區(qū)能夠在活動(dòng)狀態(tài)和非活動(dòng)狀態(tài)之間切換;輸入數(shù)據(jù)通路;和輸出數(shù)據(jù)通路;其中處于活動(dòng)狀態(tài)的一個(gè)或多個(gè)分區(qū)處理到達(dá)輸入數(shù)據(jù)通路的數(shù)字媒體,并將被處理的數(shù)字媒體提供給輸出數(shù)據(jù)通路,同時(shí)編程處于非活動(dòng)狀態(tài)的一個(gè)或多個(gè)分區(qū)。
在另一方面,本發(fā)明旨在提供一種數(shù)字媒體服務(wù)器,其包括對(duì)象存儲(chǔ);面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,其包括服務(wù)對(duì)象,應(yīng)用程序?qū)ο?,?duì)象管理器,其適合方便服務(wù)對(duì)象和應(yīng)用程序?qū)ο蟮奶鎿Q,而不中斷服務(wù)和應(yīng)用程序?qū)ο筇峁┑臄?shù)據(jù)處理功能;兩個(gè)或多個(gè)可編程的邏輯器件,每個(gè)器件能夠在活動(dòng)狀態(tài)和非活動(dòng)狀態(tài)之間切換;輸入數(shù)據(jù)通路;以及輸出數(shù)據(jù)通路;其中處于活動(dòng)狀態(tài)的一個(gè)或多個(gè)可編程的邏輯器件處理到達(dá)輸入數(shù)據(jù)通路的數(shù)字媒體,并將被處理的數(shù)字媒體提供給輸出數(shù)據(jù)通路,同時(shí)用新邏輯編程處于非活動(dòng)狀態(tài)的一個(gè)或多個(gè)可編程的邏輯器件。
在另一方面,本發(fā)明旨在提供一種數(shù)字媒體服務(wù)器,其包括對(duì)象存儲(chǔ);面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,其包括服務(wù)對(duì)象,應(yīng)用程序?qū)ο螅约皩?duì)象管理器,其適合方便服務(wù)對(duì)象和應(yīng)用程序?qū)ο蟮奶鎿Q,而不中斷服務(wù)和應(yīng)用程序?qū)ο筇峁┑臄?shù)據(jù)處理功能;可分區(qū)的可編程的邏輯器件,其具有兩個(gè)或多個(gè)獨(dú)立的可編程的分區(qū),每個(gè)分區(qū)能夠在活動(dòng)狀態(tài)和非活動(dòng)狀態(tài)之間切換;輸入數(shù)據(jù)通路;以及輸出數(shù)據(jù)通路;其中處于活動(dòng)狀態(tài)的一個(gè)或多個(gè)分區(qū)處理到達(dá)輸入數(shù)據(jù)通路的數(shù)字媒體,并將被處理的數(shù)字媒體提供給輸出數(shù)據(jù)通路,同時(shí)用新邏輯編程處于非活動(dòng)狀態(tài)的一個(gè)或多個(gè)分區(qū)。
圖1是說明根據(jù)現(xiàn)有技術(shù)的升級(jí)過程的流程圖;圖2是描述數(shù)字媒體服務(wù)器的優(yōu)選實(shí)施例的方塊圖;圖3是說明數(shù)字媒體服務(wù)器數(shù)據(jù)流動(dòng)過程的優(yōu)選實(shí)施例的流程圖;圖4A是對(duì)象的示例性實(shí)施例;圖4B是描述本發(fā)明一個(gè)實(shí)施例中通用計(jì)算設(shè)備的優(yōu)選實(shí)施例的方塊圖;圖5是說明優(yōu)選實(shí)施例中用于執(zhí)行升級(jí)程序的步驟的流程圖;圖6是說明優(yōu)選實(shí)施例中用于進(jìn)行對(duì)象的替代的步驟的流程圖;圖7A是說明使用可分區(qū)的可重新編程的邏輯器件的數(shù)字媒體傳輸途徑的優(yōu)選實(shí)施例的方塊圖;圖7B是說明使用冗余的可重新編程的器件的數(shù)字媒體傳輸途徑的優(yōu)選實(shí)施例的方塊圖;圖8是說明使用可分區(qū)的可編程的邏輯器件執(zhí)行硬件引擎的固件升級(jí)的優(yōu)選實(shí)施例的流程圖;以及圖9是說明使用冗余的可編程的邏輯器件執(zhí)行硬件引擎的固件升級(jí)的優(yōu)選實(shí)施例的流程圖。
具體實(shí)施例方式
為了說明和方便理解本發(fā)明,將結(jié)合特定的數(shù)字媒體服務(wù)器描述下述優(yōu)選實(shí)施例。
如圖2所示,這些優(yōu)選實(shí)施例的數(shù)字媒體服務(wù)器200優(yōu)選地包括硬件引擎220,通用計(jì)算機(jī)240,以及存儲(chǔ)設(shè)備210。硬件引擎220優(yōu)選地包括媒體緩沖器225,一個(gè)或可多個(gè)可編程邏輯器件(PLD)227,以及網(wǎng)絡(luò)接口230。如下面的詳細(xì)描述,在一個(gè)優(yōu)選實(shí)施例中,硬件引擎220可以包括可分區(qū)的PLD或冗余PLD,以方便媒體服務(wù)器升級(jí)而不會(huì)產(chǎn)生服務(wù)中斷。
通用計(jì)算機(jī)240優(yōu)選地包括面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境250,操作系統(tǒng)260,以及硬件接口270??偩€280提供硬件引擎220、通用計(jì)算機(jī)240和存儲(chǔ)設(shè)備210之間的數(shù)據(jù)通信通路。
硬件引擎220優(yōu)選地適用于從存儲(chǔ)在存儲(chǔ)設(shè)備210上的數(shù)據(jù)生成線數(shù)據(jù)包(wire data packet),并通過數(shù)字網(wǎng)絡(luò)將其發(fā)送給客戶。在一個(gè)優(yōu)選實(shí)施例中,在通用計(jì)算設(shè)備240的控制下,數(shù)據(jù)從存儲(chǔ)設(shè)備210復(fù)制到媒體緩沖器225。在2003年2月19日提交的美國(guó)專利申請(qǐng)?zhí)朜o.10/369,305,名稱為“混合流平臺(tái)(Hybrid Streaming Platform)”(被Pennie & EdmondsLLP標(biāo)記為案號(hào)no.11055-005-999)的申請(qǐng)中描述了包括通用計(jì)算設(shè)備240和硬件引擎220的優(yōu)選的結(jié)構(gòu),因此其中的每個(gè)教導(dǎo)和實(shí)施例被全部包括作為參考。
PLD 227優(yōu)選地適合于將媒體緩沖器225中被復(fù)制的數(shù)據(jù)從文件格式轉(zhuǎn)換為線格式。通過網(wǎng)絡(luò)接口230,完整的數(shù)據(jù)包被送到網(wǎng)絡(luò)。在2003年2月19日提交的美國(guó)專利申請(qǐng)No.10/369,306,名稱為“可變流硬件(Flexible Streaming Hardware)”(被Pennie & Edmonds LLP標(biāo)記為案號(hào)no.11055-006-999)的申請(qǐng)中描述了用于執(zhí)行這些步驟的優(yōu)選系統(tǒng)和方法,因此其中的每個(gè)教導(dǎo)和實(shí)施例被全部包括作為參考。
圖3說明數(shù)字媒體服務(wù)器200執(zhí)行的數(shù)據(jù)流過程的優(yōu)選實(shí)施例。如圖3所示,在步驟310中,從存儲(chǔ)設(shè)備210中讀出媒體數(shù)據(jù)塊,并根據(jù)來自通用計(jì)算設(shè)備240的指令直接復(fù)制到媒體緩沖器225。在步驟320中,硬件引擎220重新裝配來自于存儲(chǔ)在媒體緩沖器225中數(shù)據(jù)塊的媒體數(shù)據(jù)。
在步驟330中,硬件引擎220在從媒體緩沖器225讀出時(shí)生成數(shù)據(jù)包。在步驟340中,硬件引擎220將剛生成的數(shù)據(jù)包傳輸?shù)骄W(wǎng)絡(luò)接口230,其接著將數(shù)據(jù)包寫入數(shù)字網(wǎng)絡(luò)。正如下列專利指出的,在2003年2月19日提交的美國(guó)專利申請(qǐng)No.10/369,306,名稱為“可變流硬件(FlexibleStreaming Hardware)”(被Pennie & Edmonds LLP標(biāo)記為案號(hào)no.11055-006-999)和美國(guó)專利申請(qǐng)?zhí)朜o.10/369,305,名稱為“混合流平臺(tái)(Hybrid Streaming Platform)”(被Pennie & Edmonds LLP標(biāo)記為案號(hào)no.11055-005-999)的申請(qǐng)中更詳細(xì)地描述了該過程和執(zhí)行該過程的平臺(tái),因此兩者中的每個(gè)教導(dǎo)和實(shí)施例被全部包括作為參考。
在一個(gè)優(yōu)選實(shí)施例中,通用計(jì)算設(shè)備240優(yōu)選地已經(jīng)安裝了運(yùn)行時(shí)間環(huán)境250,其適于運(yùn)行面向?qū)ο蟮能浖绦?,該軟件程序包括用于?shí)現(xiàn)任何希望的流解決方案或其它任務(wù)的程序。這種任務(wù)可以包括會(huì)話設(shè)置、管理和流話路的拆卸以及誤差處理。在一個(gè)優(yōu)選實(shí)施例中,這些程序被設(shè)計(jì)為面向?qū)ο蟮某绦颉?br>
圖4A說明一個(gè)優(yōu)選實(shí)施例中對(duì)象410的組成。如圖4A所示,對(duì)象410優(yōu)選地包括字段412,方法415以及動(dòng)態(tài)參考418。字段412在對(duì)象410中存儲(chǔ)數(shù)據(jù),并包括能夠被其它對(duì)象(通常所說的屬性414)訪問的數(shù)據(jù),以及隱藏于其它對(duì)象的數(shù)據(jù)。字段412表示對(duì)象410的當(dāng)前狀態(tài)。
方法415是可以對(duì)字段412中的數(shù)據(jù)進(jìn)行操作的程序或功能。而可以被其它對(duì)象調(diào)用以與對(duì)象互相作用的對(duì)象的方法稱為接口417。
動(dòng)態(tài)參考418表示對(duì)象410之間的控制和數(shù)據(jù)流通路。對(duì)象的參考418不需在運(yùn)行時(shí)間之前定義,并且甚至能夠在運(yùn)行時(shí)間環(huán)境250中建立對(duì)象410之后被改變。
圖4B更詳細(xì)地說明運(yùn)行時(shí)間環(huán)境250。環(huán)境250優(yōu)選地包括應(yīng)用程序420,服務(wù)430以及對(duì)象管理器440。應(yīng)用程序420是被設(shè)計(jì)為執(zhí)行某項(xiàng)任務(wù)的對(duì)象的集合。對(duì)象之間的動(dòng)態(tài)參考418被說明為圖4B中的雙向箭頭。服務(wù)430是被設(shè)計(jì)為提供應(yīng)用程序?qū)ο蠛屯ㄓ糜?jì)算機(jī)240的操作系統(tǒng)(OS)260以及硬件接口270之間的接口的對(duì)象的集合。
對(duì)象管理器440優(yōu)選地負(fù)責(zé)維持包括在應(yīng)用程序420和服務(wù)430中的所有對(duì)象410的狀態(tài)。在一個(gè)優(yōu)選實(shí)施例中,對(duì)象管理器440驗(yàn)證對(duì)象410,以確保這些對(duì)象被正確地構(gòu)成,并在將其載入運(yùn)行時(shí)間環(huán)境250之前不會(huì)被破壞。對(duì)象管理器440同時(shí)列舉對(duì)象數(shù)量并對(duì)其評(píng)估,以確保其與對(duì)象管理器440、環(huán)境250以及其他對(duì)象410的兼容性。
運(yùn)行時(shí)間環(huán)境250優(yōu)選地建立在通用計(jì)算機(jī)240的操作系統(tǒng)260提供的裝置之上。通過操作系統(tǒng)260與服務(wù)430相互作用,應(yīng)用程序?qū)ο竽軌蜷g接地訪問硬件270。本領(lǐng)域技術(shù)人員將知道使用面向?qū)ο蟮慕M件可以執(zhí)行操作系統(tǒng)260。這種操作系統(tǒng)可以被定位在運(yùn)行時(shí)間環(huán)境250中,并作為服務(wù)430的擴(kuò)充來運(yùn)行。實(shí)際上,運(yùn)行時(shí)間環(huán)境250可以被看作與操作系統(tǒng)260結(jié)合。這就允許不中斷操作系統(tǒng)提供的功能而對(duì)操作系統(tǒng)升級(jí),正如下面所述。
硬件270優(yōu)選地包括輸入-輸出接口卡272、274,用于與運(yùn)行時(shí)間環(huán)境中的對(duì)象和數(shù)據(jù)存儲(chǔ)設(shè)備210交互。
數(shù)據(jù)存儲(chǔ)設(shè)備210是存儲(chǔ)庫,其優(yōu)選地包含對(duì)象或被稱為包490的對(duì)象集合的定義。這種包被典型地組合,以使對(duì)象集合的傳輸更加方便。
升級(jí)過程下面結(jié)合圖5描述對(duì)運(yùn)行在通用計(jì)算機(jī)240上的面向?qū)ο蟮能浖M(jìn)行升級(jí)的優(yōu)選實(shí)施例。如圖5所示,在步驟505中,系統(tǒng)管理器啟動(dòng)升級(jí)會(huì)話。在步驟510中,對(duì)象管理器440確定在數(shù)據(jù)存儲(chǔ)器210中是否存在對(duì)象包490(包括被升級(jí)對(duì)象)。如果升級(jí)包可用,則在步驟520中執(zhí)行運(yùn)行時(shí)間可擴(kuò)展升級(jí)。
在執(zhí)行運(yùn)行時(shí)間可擴(kuò)展升級(jí)(步驟520)之前,對(duì)象管理器440繼續(xù)跟蹤環(huán)境250中對(duì)象的所有當(dāng)前情況,包括對(duì)其他對(duì)象的動(dòng)態(tài)參考418。在步驟530中,對(duì)象管理器440識(shí)別升級(jí)包490中的任何新的對(duì)象,并且,在這種情況下,驗(yàn)證這些對(duì)象被正確地形成并且不會(huì)被破壞。在步驟535中,列舉包490中的每個(gè)對(duì)象以及與對(duì)象相應(yīng)的接口和屬性。在該列舉過程中,對(duì)象管理器440確定對(duì)象將如何與其它對(duì)象交互。接著,在步驟540中,評(píng)估每個(gè)對(duì)象與可能調(diào)用它的其它對(duì)象的兼容性。同時(shí),優(yōu)選地檢查對(duì)象版本以確保其與對(duì)象管理器440和環(huán)境250以及其它交互的對(duì)象的兼容性。
在步驟550中,對(duì)象管理器440在環(huán)境250的適當(dāng)區(qū)域建立新對(duì)象的實(shí)例。對(duì)象管理器440同時(shí)建立新對(duì)象和已有的服務(wù)430或應(yīng)用程序420之間的邏輯連接。
關(guān)于全部或部分替換已有對(duì)象提供的功能的新對(duì)象,對(duì)象管理器440優(yōu)選地適用于指導(dǎo)從被替換的已有對(duì)象到被安裝的新對(duì)象的依次轉(zhuǎn)換。這里該過程被稱為升級(jí),下面結(jié)合圖6更詳細(xì)地描述該過程。在步驟560中,對(duì)象管理器440將字段412從已有的對(duì)象復(fù)制到其相應(yīng)的替代對(duì)象中。接著,在步驟570中,在用于維持在線的已有對(duì)象和任何新對(duì)象之間建立新的動(dòng)態(tài)參考418。在步驟575中,已有的動(dòng)態(tài)參考418被重新路由到新對(duì)象。這就允許對(duì)象參考418從已有對(duì)象到新對(duì)象的順序重新路由。
在步驟580中,不再處于有效使用中的對(duì)象410或者被對(duì)象管理器440從環(huán)境250中永久地清除,或者被存入存儲(chǔ)設(shè)備210用于以后可能的恢復(fù)。
由于升級(jí)可能包括對(duì)已有對(duì)象的部分或全部替換,就可能存在被替換的對(duì)象所提供的服務(wù)或功能的中斷。在一個(gè)優(yōu)選實(shí)施例中,本系統(tǒng)和方法通過升級(jí)新的替代對(duì)象解決該問題,以避免已有對(duì)象被替換時(shí)的服務(wù)中斷。更特別地,升級(jí)允許對(duì)象管理器440在升級(jí)中將活動(dòng)數(shù)據(jù)傳輸通路從已有對(duì)象轉(zhuǎn)換到新對(duì)象,而不會(huì)中斷或終止這些數(shù)據(jù)傳輸通路。
在圖6中說明了示例性的升級(jí)過程。在圖6的示例性情況下,作為升級(jí)的一部分,對(duì)象A被對(duì)象B代替。在步驟610中,對(duì)象管理器440驗(yàn)證對(duì)象B的方法和屬性與對(duì)象A參考的上游對(duì)象的兼容。這些上游對(duì)象為向?qū)ο驛提供數(shù)據(jù)或服務(wù)的對(duì)象。在步驟615中,對(duì)象管理器440驗(yàn)證對(duì)象B的方法和屬性與參考對(duì)象A的下游對(duì)象的兼容。這些下游對(duì)象為從對(duì)象A請(qǐng)求服務(wù)或接收數(shù)據(jù)的對(duì)象。一旦完成這些驗(yàn)證,對(duì)象管理器440在環(huán)境250中建立對(duì)象B的實(shí)例。
接著,在步驟625中,對(duì)象管理器440在環(huán)境250中鎖閉對(duì)象A和對(duì)象B。鎖閉防止任一對(duì)象的字段412變化,并在從對(duì)象A到對(duì)象B的轉(zhuǎn)換中為對(duì)象管理器440提供對(duì)這些對(duì)象的專用存取。
當(dāng)對(duì)象在步驟630中被鎖閉時(shí),對(duì)象管理器440將對(duì)象A發(fā)現(xiàn)的字段值復(fù)制到對(duì)象B。接著,在步驟635中,從對(duì)象A到對(duì)象B復(fù)制到上游對(duì)象的參考418。同樣地,在步驟640中,在下游對(duì)象中發(fā)現(xiàn)的到對(duì)象A的參考被重新定向到對(duì)象B。在步驟645中,對(duì)象B被對(duì)象管理器440解鎖,從而恢復(fù)最初由對(duì)象A提供但現(xiàn)在由對(duì)象B提供的服務(wù)和功能,并使對(duì)象B提供的任何新服務(wù)和功能可用。在步驟650中,對(duì)象管理器440清除或存檔對(duì)象A,從而完成升級(jí)過程。
升級(jí)也可以包括更精細(xì)的(finer grained)方法,其中不需替換整個(gè)對(duì)象而改變對(duì)象的方法。在這種情況下,不需鎖閉整個(gè)對(duì)象;而是,限制對(duì)升級(jí)的方法的訪問。例如,假如包括在流管理器對(duì)象中的日志記錄器(logwriter)接口要求升級(jí)。流管理器對(duì)象繼續(xù)通過其它方法向其它對(duì)象提供功能。升級(jí)過程阻止對(duì)象訪問日志記錄器接口,但是不鎖閉流管理器對(duì)象。在用于日志記錄器接口的代碼被替換之后,對(duì)象能夠重新開始與日志記錄器接口的交互。
運(yùn)行時(shí)間可擴(kuò)充的數(shù)字媒體服務(wù)器硬件引擎220中的可編程邏輯器件227一般地不包括類似通用計(jì)算機(jī)240的操作系統(tǒng)。而是,PLD227一般用可編程邏輯器件設(shè)計(jì),以有效地實(shí)現(xiàn)相對(duì)有限的一組數(shù)據(jù)處理任務(wù),如上所述。下面描述兩個(gè)優(yōu)選實(shí)施例,其用于在PLD 227中得到的可編程邏輯的升級(jí)中,保持媒體以滿負(fù)荷傳輸。
在第一個(gè)優(yōu)選實(shí)施例中,每個(gè)PLD227能夠選擇地分區(qū)和重新編程器件的指定部分,其它不受影響的部分正常地運(yùn)行。在第二個(gè)優(yōu)選實(shí)施例中,硬件引擎220包括冗余PLD。下面結(jié)合圖7A-B和圖8-9描述這些實(shí)施例。
圖7A說明可分區(qū)的PLD實(shí)施例。在該實(shí)施例中,數(shù)字媒體傳輸途徑700優(yōu)選地包括數(shù)據(jù)通路710和可分區(qū)的可重新編程的邏輯器件720??煞謪^(qū)的可重新編程的邏輯器件720優(yōu)選地包括多個(gè)分區(qū),(例如,722,724,726),每個(gè)分區(qū)可以在其它分區(qū)繼續(xù)工作時(shí),被獨(dú)立地重新編程。
在圖8中更詳細(xì)地說明了用于可分區(qū)的PLD700的固件升級(jí)過程的例子。如圖8所示,在步驟810中,當(dāng)系統(tǒng)管理器啟動(dòng)固件升級(jí)時(shí),在PLD700中建立新的分區(qū)。接著,在步驟820中,用一組新的硬件描述語言(HDL)邏輯編程該分區(qū)。在步驟830中,進(jìn)行可操作的傳輸,其中分區(qū)控制來自其代替的初始分區(qū)的處理功能。更具體地,新的非活動(dòng)的分區(qū)被轉(zhuǎn)換為活動(dòng)狀態(tài),并提供繼續(xù)流數(shù)字媒體所需要的處理功能。同時(shí),初始分區(qū)被轉(zhuǎn)換為非活動(dòng)狀態(tài)。接著,在步驟840中,初始分區(qū)被重新編程,從而完成升級(jí)會(huì)話。
圖7B說明冗余邏輯器件的實(shí)施例。在該實(shí)施例中,數(shù)字媒體傳輸路徑750優(yōu)選地包括數(shù)據(jù)通路760,第一可編程邏輯器件770(PLD-A),以及第二可編程邏輯器件780(PLD-B)。非活動(dòng)的器件僅通過通路760傳遞數(shù)據(jù)。
由于采用該冗余方法,一個(gè)PLD可以用于重新編程,而另一個(gè)響應(yīng)來自通用計(jì)算機(jī)240的請(qǐng)求。隨后,兩個(gè)PLD可以再次交換控制,從而另一個(gè)可以被升級(jí)。因此可以完成固件升級(jí)而不會(huì)中斷數(shù)字媒體傳輸服務(wù)。
在圖9中更詳細(xì)地說明了用于冗余PLD路徑750的固件升級(jí)過程的例子。如圖9所示,步驟910中,當(dāng)系統(tǒng)管理器啟動(dòng)固件升級(jí)時(shí),確定器件770、780哪個(gè)處于活動(dòng)狀態(tài)、哪個(gè)處于非活動(dòng)狀態(tài)或通過(passthrough)。對(duì)于圖7B的示例性情況,假設(shè)PLD-A 770處于活動(dòng)狀態(tài)。接著,在步驟920中,通過載入一組新的硬件描述語言(HDL)邏輯升級(jí)PLD-B780。在步驟930中,進(jìn)行有效的轉(zhuǎn)換,其中PLD-B 780成為活動(dòng)器件,PLD-A 770成為非活動(dòng)器件。接著,在步驟940中,用一組新的HDL邏輯升級(jí)PLD-A,從而完成升級(jí)會(huì)話。
當(dāng)結(jié)合特定實(shí)施例描述本發(fā)明時(shí),根據(jù)前面的描述本領(lǐng)域技術(shù)人員應(yīng)該清楚許多可供選擇的方法,修改和變化。
權(quán)利要求
1.一種升級(jí)數(shù)字媒體服務(wù)器的方法,其包括檢查包括新的對(duì)象的升級(jí)包的存在;在所述升級(jí)包中識(shí)別新的對(duì)象;識(shí)別所述新的對(duì)象的功能和屬性;評(píng)估所述新的對(duì)象的兼容性;將新的對(duì)象示例為應(yīng)用程序?qū)ο蠡蚍?wù)對(duì)象;確定新的對(duì)象是否代替舊的對(duì)象;以及如果所述新的對(duì)象代替舊的對(duì)象,則替換所述舊的對(duì)象。
2.如權(quán)利要求1所述的方法,其中所述替換的步驟進(jìn)一步包括鎖閉所述舊的對(duì)象和所述新的對(duì)象;從所述舊的對(duì)象向所述新的對(duì)象復(fù)制字段;建立從所述新的對(duì)象到對(duì)所述舊的對(duì)象有關(guān)聯(lián)的各個(gè)對(duì)象的鏈接;將其它對(duì)象到所述舊的對(duì)象的鏈接重新連接到所述新的對(duì)象;解鎖所述新的對(duì)象;以及刪除所述舊的對(duì)象。
3.如權(quán)利要求2所述的方法,其中所述刪除的步驟包括存檔所述舊的對(duì)象。
4.如權(quán)利要求2所述的方法,其中所述刪除的步驟包括清除所述舊的對(duì)象。
5.如權(quán)利要求1所述的方法,其中所述升級(jí)包進(jìn)一步包括一種或多種用于舊的對(duì)象的新方法,所述方法進(jìn)一步包括識(shí)別一種或多種新方法;評(píng)估一種或多種新方法的兼容性;確定新方法是否代替舊方法;以及如果所述新方法代替所述舊方法,則停止并替換所述舊方法。
6.如權(quán)利要求5所述的方法,其中所述舊方法是一個(gè)接口。
7.如權(quán)利要求1所述的方法,進(jìn)一步包括從網(wǎng)絡(luò)源下載所述升級(jí)包。
8.如權(quán)利要求1所述的方法,進(jìn)一步包括從存儲(chǔ)介質(zhì)載入所述升級(jí)包。
9.一種升級(jí)數(shù)字媒體服務(wù)器的方法,該數(shù)字媒體服務(wù)器具有包括第一活動(dòng)分區(qū)和第二非活動(dòng)分區(qū)的可分區(qū)的可編程邏輯器件,該方法包括用新的邏輯為所述第二分區(qū)編程;將所述第二分區(qū)從所述非活動(dòng)狀態(tài)轉(zhuǎn)換到所述活動(dòng)狀態(tài),并同時(shí)從所述第一分區(qū)接管數(shù)據(jù)處理功能;以及將所述第一分區(qū)轉(zhuǎn)換為非活動(dòng)狀態(tài)。
10.如權(quán)利要求9所述的方法,進(jìn)一步包括用新的邏輯為所述第一分區(qū)編程。
11.一種升級(jí)數(shù)字媒體服務(wù)器的方法,該數(shù)字媒體服務(wù)器具有兩個(gè)或多個(gè)冗余的可編程邏輯器件,每個(gè)器件具有活動(dòng)和非活動(dòng)狀態(tài),所述方法包括確定處于所述活動(dòng)狀態(tài)的第一組可編程邏輯器件;向處于所述非活動(dòng)狀態(tài)的一個(gè)或多個(gè)邏輯器件的第二組載入新的邏輯;將所述第二組器件轉(zhuǎn)換到所述活動(dòng)狀態(tài),并同時(shí)從所述第一組器件接手?jǐn)?shù)據(jù)處理功能;以及將所述第一器件轉(zhuǎn)換為所述非活動(dòng)狀態(tài)。
12.如權(quán)利要求11所述的方法,進(jìn)一步包括向所述第一組器件載入新的邏輯。
13.一種在數(shù)字媒體服務(wù)器上安裝升級(jí)軟件的方法,該數(shù)字媒體服務(wù)器包括一臺(tái)通用計(jì)算機(jī)和一個(gè)硬件引擎,所述計(jì)算機(jī)包括面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,而所述硬件引擎包括具有第一活動(dòng)分區(qū)和第二非活動(dòng)分區(qū)的可編程的邏輯器件,所述方法包括檢查包含新的對(duì)象和新邏輯的升級(jí)包的存在;在所述升級(jí)包中識(shí)別新的對(duì)象;識(shí)別所述新的對(duì)象的功能和屬性;評(píng)估所述新的對(duì)象的兼容性;將新的對(duì)象示例為應(yīng)用程序?qū)ο蠡蚍?wù)對(duì)象;確定新的對(duì)象是否代替舊的對(duì)象;如果所述新的對(duì)象代替所述舊的對(duì)象,則替換所述舊的對(duì)象;在所述升級(jí)包中識(shí)別新邏輯;用所述新邏輯編程所述第二非活動(dòng)分區(qū);將所述第二分區(qū)從非活動(dòng)狀態(tài)轉(zhuǎn)換到活動(dòng)狀態(tài),并同時(shí)從所述第一活動(dòng)分區(qū)接手?jǐn)?shù)據(jù)處理功能;以及將所述第一分區(qū)轉(zhuǎn)換為非活動(dòng)狀態(tài)。
14.如權(quán)利要求13所述的方法,進(jìn)一步包括用所述新邏輯編程所述第一分區(qū)。
15.如權(quán)利要求13所述的方法,進(jìn)一步包括從網(wǎng)絡(luò)源下載所述升級(jí)包。
16.如權(quán)利要求13所述的方法,進(jìn)一步包括從存儲(chǔ)介質(zhì)載入所述升級(jí)包。
17.如權(quán)利要求13所述的方法,其中所述替換的步驟進(jìn)一步包括鎖閉所述舊的對(duì)象和所述新的對(duì)象;從所述舊的對(duì)象向所述新的對(duì)象復(fù)制字段;建立從所述新的對(duì)象到各個(gè)對(duì)所述舊的對(duì)象相關(guān)聯(lián)的對(duì)象的鏈接;將到所述舊的對(duì)象的鏈接從其它對(duì)象重新連接到所述新的對(duì)象;解鎖所述新的對(duì)象;以及刪除所述舊的對(duì)象。
18.如權(quán)利要求17所述的方法,其中所述刪除的步驟包括存檔所述舊的對(duì)象。
19.如權(quán)利要求17所述的方法,其中所述刪除的步驟包括清除所述舊的對(duì)象。
20.一種在數(shù)字媒體服務(wù)器上安裝升級(jí)軟件的方法,該數(shù)字媒體服務(wù)器包括一臺(tái)通用計(jì)算機(jī)和一個(gè)硬件引擎,所述計(jì)算機(jī)包括面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,而所述硬件引擎包括兩個(gè)或多個(gè)可編程的邏輯器件,每個(gè)器件具有活動(dòng)和非活動(dòng)狀態(tài),所述方法包括檢查包含新的對(duì)象和新邏輯的升級(jí)包的存在;在所述升級(jí)包中識(shí)別新的對(duì)象;識(shí)別所述新的對(duì)象的功能和屬性;評(píng)估所述新的對(duì)象的兼容性;將新的對(duì)象示例為應(yīng)用程序?qū)ο蠡蚍?wù)對(duì)象;確定新的對(duì)象是否代替舊的對(duì)象;如果所述新的對(duì)象代替所述舊的對(duì)象,則替換所述舊的對(duì)象;在所述升級(jí)包中識(shí)別新邏輯;確定處于所述活動(dòng)狀態(tài)的第一組可編程邏輯器件;將新邏輯編程進(jìn)入第二組一個(gè)或多個(gè)處于非活動(dòng)狀態(tài)的邏輯器件;將所述第二組器件轉(zhuǎn)換到活動(dòng)狀態(tài),并同時(shí)從所述第一組器件接手?jǐn)?shù)據(jù)處理功能;以及將所述第一組器件轉(zhuǎn)換到所述非活動(dòng)狀態(tài)。
21.如權(quán)利要求20所述的方法,進(jìn)一步包括將所述新邏輯編程進(jìn)入所述第一組器件。
22.如權(quán)利要求20所述的方法,進(jìn)一步包括從網(wǎng)絡(luò)源下載所述升級(jí)包。
23.如權(quán)利要求20所述的方法,進(jìn)一步包括從存儲(chǔ)介質(zhì)載入所述升級(jí)包。
24.如權(quán)利要求20所述的方法,其中所述替換的步驟進(jìn)一步包括鎖閉所述舊的對(duì)象和所述新的對(duì)象;從所述舊的對(duì)象向所述新的對(duì)象復(fù)制字段;建立從所述新的對(duì)象到各個(gè)與所述舊的對(duì)象相關(guān)聯(lián)的對(duì)象的鏈接;將到所述舊的對(duì)象的鏈接從其它對(duì)象重新連接到所述新的對(duì)象;解鎖所述新的對(duì)象;以及刪除所述舊的對(duì)象。
25.如權(quán)利要求24所述的方法,其中所述刪除的步驟包括存檔所述舊的對(duì)象。
26.如權(quán)利要求24所述的方法,其中所述刪除的步驟包括清除所述舊的對(duì)象。
27.如權(quán)利要求20所述的方法,其中所述升級(jí)包進(jìn)一步包括用于舊的對(duì)象的一種或多種新方法,所述方法進(jìn)一步包括識(shí)別所述一種或多種新方法;評(píng)估所述一種或多種新方法的兼容性;確定新方法是否可以代替舊方法;以及如果所述新方法代替所述舊方法,則停止并替換所述舊方法。
28.如權(quán)利要求27所述的方法,其中所述舊方法是一個(gè)接口。
29.一種數(shù)字媒體服務(wù)器,其包括對(duì)象存儲(chǔ);以及面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,其包括服務(wù)對(duì)象,應(yīng)用程序?qū)ο?,以及?duì)象管理器,其適用于幫助服務(wù)對(duì)象和應(yīng)用程序?qū)ο蟮奶鎿Q,而不中斷由服務(wù)和應(yīng)用程序?qū)ο筇峁┑臄?shù)據(jù)處理功能。
30.如權(quán)利要求29所述的服務(wù)器,進(jìn)一步包括網(wǎng)絡(luò)接口,其用于下載包括替代的服務(wù)和應(yīng)用程序?qū)ο蟮纳?jí)包。
31.如權(quán)利要求29所述的服務(wù)器,進(jìn)一步包括存儲(chǔ)介質(zhì),其用于存儲(chǔ)包括替代的服務(wù)和應(yīng)用程序?qū)ο蟮纳?jí)包。
32.一種數(shù)字媒體服務(wù)器,其包括兩個(gè)或多個(gè)可編程的邏輯器件,每個(gè)器件能夠在活動(dòng)狀態(tài)和非活動(dòng)狀態(tài)之間切換;輸入數(shù)據(jù)通路;以及輸出數(shù)據(jù)通路;其中處于所述活動(dòng)狀態(tài)的一個(gè)或多個(gè)可編程的邏輯器件處理到達(dá)所述輸入數(shù)據(jù)通路的數(shù)字媒體,并將被處理的數(shù)字媒體提供給所述輸出數(shù)據(jù)通路,同時(shí)處于所述非活動(dòng)狀態(tài)的一個(gè)或多個(gè)可編程的邏輯器件已被編程。
33.一種數(shù)字媒體服務(wù)器,其包括可分區(qū)的可編程的邏輯器件,其具有兩個(gè)或多個(gè)獨(dú)立的可編程的分區(qū),每個(gè)分區(qū)能夠在活動(dòng)狀態(tài)和非活動(dòng)狀態(tài)之間切換;輸入數(shù)據(jù)通路;以及輸出數(shù)據(jù)通路;其中處于所述活動(dòng)狀態(tài)的一個(gè)或多個(gè)分區(qū)處理到達(dá)所述輸入數(shù)據(jù)通路的數(shù)字媒體,并將被處理的數(shù)字媒體提供給所述輸出數(shù)據(jù)通路,同時(shí)處于所述非活動(dòng)狀態(tài)的一個(gè)或多個(gè)分區(qū)已被編程。
34.一種數(shù)字媒體服務(wù)器,其包括對(duì)象存儲(chǔ);面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,其包括服務(wù)對(duì)象,應(yīng)用程序?qū)ο?,?duì)象管理器,其適用于方便所述服務(wù)對(duì)象和所述應(yīng)用程序?qū)ο蟮拇妫恢袛嘤伤龇?wù)和應(yīng)用程序?qū)ο筇峁┑臄?shù)據(jù)處理功能;兩個(gè)或多個(gè)可編程的邏輯器件,每個(gè)器件能夠在活動(dòng)狀態(tài)和非活動(dòng)狀態(tài)之間切換;輸入數(shù)據(jù)通路;以及輸出數(shù)據(jù)通路;其中處于所述活動(dòng)狀態(tài)的一個(gè)或多個(gè)可編程的邏輯器件處理到達(dá)所述輸入數(shù)據(jù)通路的數(shù)字媒體,并將被處理的數(shù)字媒體提供給所述輸出數(shù)據(jù)通路,同時(shí)用新邏輯編程處于所述非活動(dòng)狀態(tài)的一個(gè)或多個(gè)可編程的邏輯器件。
35.如權(quán)利要求34所述的服務(wù)器,進(jìn)一步包括網(wǎng)絡(luò)接口,其用于下載包括替代的服務(wù)和應(yīng)用程序?qū)ο蠛托逻壿嫷纳?jí)包。
36.如權(quán)利要求34所述的服務(wù)器,其進(jìn)一步包括存儲(chǔ)介質(zhì),其用于存儲(chǔ)包括替代的服務(wù)和應(yīng)用程序?qū)ο蠛托逻壿嫷纳?jí)包。
37.一種數(shù)字媒體服務(wù)器,其包括對(duì)象存儲(chǔ);面向?qū)ο蟮倪\(yùn)行時(shí)間環(huán)境,其包括服務(wù)對(duì)象,應(yīng)用程序?qū)ο螅瑢?duì)象管理器,其適用于方便所述服務(wù)對(duì)象和所述應(yīng)用程序?qū)ο蟮拇?,而不中斷由所述服?wù)和應(yīng)用程序?qū)ο筇峁┑臄?shù)據(jù)處理功能;可分區(qū)的可編程的邏輯器件,其具有兩個(gè)或多個(gè)獨(dú)立的可編程的分區(qū),每個(gè)分區(qū)能夠在活動(dòng)狀態(tài)和非活動(dòng)狀態(tài)之間切換;輸入數(shù)據(jù)通路;以及輸出數(shù)據(jù)通路;其中處于所述活動(dòng)狀態(tài)的一個(gè)或多個(gè)分區(qū)處理到達(dá)所述輸入數(shù)據(jù)通路的數(shù)字媒體,并將被處理的數(shù)字媒體提供給所述輸出數(shù)據(jù)通路,同時(shí)用新邏輯編程處于所述非活動(dòng)狀態(tài)的一個(gè)或多個(gè)分區(qū)。
38.如權(quán)利要求37所述的服務(wù)器,進(jìn)一步包括網(wǎng)絡(luò)接口,其用于下載包括替代服務(wù)和應(yīng)用程序?qū)ο蠛托逻壿嫷纳?jí)包。
39.如權(quán)利要求37所述的服務(wù)器,進(jìn)一步包括存儲(chǔ)介質(zhì),其用于存儲(chǔ)包括替代服務(wù)和應(yīng)用程序?qū)ο蠛托逻壿嫷纳?jí)包。
全文摘要
公開了一種系統(tǒng)和方法,其用于升級(jí)數(shù)字媒體服務(wù)器的硬件和軟件組件,而不中斷媒體傳輸服務(wù)。在一個(gè)優(yōu)選實(shí)施例中,本系統(tǒng)和方法采用面向?qū)ο蟮哪P停湓试S系統(tǒng)服務(wù)器保持完全運(yùn)行,同時(shí)安裝操作系統(tǒng)和應(yīng)用程序級(jí)的軟件升級(jí)程序。此外,該系統(tǒng)和方法使用冗余的或可分區(qū)的可編程邏輯器件,以執(zhí)行固件升級(jí),而不中斷媒體傳輸服務(wù)。
文檔編號(hào)G06F9/445GK1762154SQ200480007660
公開日2006年4月19日 申請(qǐng)日期2004年3月30日 優(yōu)先權(quán)日2003年4月2日
發(fā)明者理查德·T·歐斯特萊克, 克雷格·莫非 申請(qǐng)人:海灘無極限有限公司