專利名稱:用于表示層協(xié)議數(shù)據(jù)流的記錄及實(shí)時(shí)回放和搜索的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于提供實(shí)時(shí)回放的方法和系統(tǒng),尤其是用于提供^t表示 層協(xié)議數(shù)據(jù)的記錄和實(shí)時(shí)回放的方法和系統(tǒng)。
背景技術(shù):
(2) 対1辦議數(shù)據(jù)流(例如由位于Ft. Lauderdale, Florida的Citrix Systems公 司發(fā)明的ICA協(xié)議,由X.org Foundation的X協(xié)議,AT&T公司的虛擬網(wǎng)絡(luò)計(jì) 算(Virtual Network Computing)切、議,或者由位于Redmond, Washington的微軟 公司發(fā)明的RDP助議)的服務(wù)器端記錄可以用于倉(cāng)'」作培訓(xùn)材料、提供服務(wù)臺(tái)支 持、啟動(dòng)教程或者用于難以將軟件分發(fā)到各個(gè)客戶端工作站的環(huán)境。但是,很多 用于記錄協(xié)議數(shù)據(jù)流的傳統(tǒng)方法的缺陷是諸如對(duì)計(jì)算機(jī)屏幕活動(dòng)進(jìn)行低效且無(wú) 損失的編碼。記錄并將文件單獨(dú)存儲(chǔ)在服務(wù)器上可能產(chǎn)生與處理大量并發(fā)會(huì)話有
關(guān)的問(wèn)題。很多傳統(tǒng)系統(tǒng)通常的缺陷是戶;n己錄的數(shù)據(jù)比將要回顧的多得多,由此 帶來(lái)了復(fù)雜的記錄過(guò)程或產(chǎn)生過(guò)大的文件。
(3) 有些用于記錄協(xié)議數(shù)據(jù)流的傳統(tǒng)方法不限于遠(yuǎn)程表示協(xié)議自身。很多 這樣的解決方案涉及屏幕抓耳x/采集技術(shù)或?qū)蛻舳藞D形弓i擎的鉤取,帶來(lái)的問(wèn) 題是為了回放需要處理器密集型的編碼或譯碼過(guò)程。
(4) 其它用于記錄用戶屏幕活動(dòng)的方法對(duì)客戶端裝置上的圖形輸出進(jìn)行 編碼。通常,這些方法只限于從Windows客戶端工作站取得周期性的不連續(xù)屏 幕快照。Microsoft (微軟)提供了屏幕采集API作為Windows Media Encoder SDK 的一部分,但這個(gè)方法的缺陷是專注于對(duì)培訓(xùn)和視頻顯示市場(chǎng)的客戶端裝置記 錄。大多數(shù)方法需要客戶端軟件組件并且缺乏進(jìn)行服務(wù)器端記錄的能力。
(5) 另外,遠(yuǎn)程表示協(xié)議自身是有狀態(tài)協(xié)議。為了查看戶;n己錄的表示協(xié)議 數(shù)據(jù)流中的特定點(diǎn),對(duì)該流的回放必須從流的最開(kāi)始處開(kāi)始,并順序回放直到遇 到該特定點(diǎn)。
(6) 不按順序訪問(wèn)所記錄的數(shù)據(jù)流的傳統(tǒng)技術(shù)通常涉及對(duì)關(guān)鍵幀和增量
幀的使用。關(guān)鍵幀通常被作為同步點(diǎn)存儲(chǔ)在流自身中以使幀倉(cāng)的多被快速重現(xiàn)在屏 幕上。增量幀通常描述與先前的幀的區(qū)別以產(chǎn)生可視視頻幀。
8(7) 因?yàn)檫h(yuǎn)程表示協(xié)議通常由于它們的有狀態(tài)的特性而比較緊湊,對(duì)關(guān) 鍵幀的額外存儲(chǔ)將文件大小增加了幾個(gè)數(shù)量級(jí)。g卩〗,用現(xiàn)代的數(shù)字視頻壓縮技
術(shù),關(guān)鍵幀通常將附己錄的表示協(xié)議i娥流所需的存儲(chǔ)增加幾個(gè)數(shù)量級(jí)。但是,
省略關(guān)鍵幀會(huì)產(chǎn)生不可搜索的協(xié)議。希望能有一種具備搜索能力而且不會(huì)因?yàn)樗?存儲(chǔ)的關(guān)鍵幀而使文件過(guò)大的方法。
發(fā)明內(nèi)容
(8) 這里所說(shuō)明的方法和系統(tǒng)提供了將遠(yuǎn)程表示協(xié)議(例如由位于Ft.
Lauderdale, Florida的Citrix Systems公司發(fā)明的ICA協(xié)議,由X.org Foundation 的X幼、議,AT&T公司的虛擬網(wǎng)絡(luò)計(jì)算(Virtual Network Computing)協(xié)議,或 者由位于Redmond, Washington的微軟公司發(fā)明的RDP協(xié)議)記錄為流以及在
以后能夠?qū)?n己錄的流進(jìn)行回放。在無(wú)需修改現(xiàn)有協(xié)議定義的情況下,能夠記錄
最初設(shè)計(jì)用于將計(jì)t^幾屏幕顯示實(shí)時(shí)顯示為無(wú)損失的實(shí)時(shí)屏幕活動(dòng)抓取的協(xié)議。
和傳統(tǒng)的屏幕抓取技術(shù)不同,這種記錄不需要發(fā)生在客戶端裝置上,也不需要任 何客戶端組件。通過(guò)允許將記錄軟件只安裝在服務(wù)器上而不是安裝在許多客戶端
上,本發(fā)明提供的服務(wù)器端記錄大大簡(jiǎn)化了部署。例如,在企業(yè)級(jí)Citrix MetaFrame表示服務(wù)教Citrix MetaFrame Presentation Server)環(huán)境中,客戶端裝置 對(duì)服務(wù)器的比例通常高于100比1。所支持的客戶端裝置的范圍使傳統(tǒng)的客戶端 布署問(wèn)題進(jìn)一步復(fù)雜化。Citrix目前支持Windows PC上的客戶端,UNIX, Linux, 基于Java的客戶端,DOS,大量的Windows CE和基于EPOC的手持裝置,以 及Macintosh。為{別艮務(wù)器端記錄能夠工作,在任何這樣的平臺(tái)上都不需要平臺(tái) 特有的記錄軟件或者任何其它改變。因?yàn)檫h(yuǎn)程表示協(xié)議通常被設(shè)計(jì)用^31過(guò)減小 帶寬而在相X寸較低的速度上有效工作,對(duì)這樣的協(xié)議的記錄自身也是緊湊的。因 為沒(méi)有譯碼成另一種視頻格式,該記錄過(guò)程的負(fù)載很輕,并且產(chǎn)生的流是對(duì)用戶 在記錄時(shí)間在他們的屏幕上所看到的內(nèi)容的真實(shí)表示。
(9) 另外,這里所說(shuō)明的方法和系統(tǒng)使遠(yuǎn)程表示協(xié)議可以像視頻格式一 樣被順序播放,還能夠進(jìn)行隨機(jī)搜索/瀏覽并且不使用所存儲(chǔ)的關(guān)鍵幀。搜索使 觀看流的用戶在回放期間能夠向前或向后跳到該流的任意位置并以應(yīng)答方式繼 續(xù)回放。這里所說(shuō)明的方法和系統(tǒng)能夠謝亍非??焖俚乃阉鞫鵁o(wú)需記錄或存儲(chǔ)關(guān) 鍵幀。
(10) —方面,對(duì)表示層協(xié)議數(shù)據(jù)進(jìn)fiH己錄和實(shí)時(shí)回放的方法包括由記錄 器在表示層協(xié)議數(shù)據(jù)流從第一裝置向第二裝置的傳輸期間攔截包括多個(gè)分組的表示層協(xié)議數(shù)據(jù)流,該表示層協(xié)議數(shù)據(jù)流表示顯示數(shù)據(jù)。分發(fā)器發(fā)送該表示層協(xié) 議數(shù)據(jù)流中的至少一個(gè)分組的副本。協(xié)議引擎使用與該至少一個(gè)復(fù)制的分組相關(guān) 聯(lián)的信息再生由該至少一個(gè)復(fù)制的分組所表示的顯示數(shù)據(jù)。攔截表示層協(xié)議數(shù)據(jù) 流并發(fā)送至少一個(gè)分組的副本的步驟一直重復(fù)直到第一裝置完成了至第二裝置 的協(xié)議數(shù)據(jù)流的傳輸。
(11) 在一個(gè)實(shí)施例中,記錄器在基本與第一裝置向第二裝置發(fā)送表示層 助、議數(shù)據(jù)流的同時(shí)攔截該表示層協(xié)議數(shù)據(jù)流。在另一個(gè)實(shí)施例中,記錄器將至少 一個(gè)復(fù)制的分組發(fā)送到分發(fā)器。在又一個(gè)實(shí)施例中,重復(fù)以使用與該至少一個(gè)復(fù) 制的分組有關(guān)聯(lián)的信息來(lái)再生由該至少一個(gè)復(fù)制的分組所表示的顯示數(shù)據(jù)的步 驟。
(12) 另一方面,用于表示層協(xié)議數(shù)據(jù)的記錄和實(shí)時(shí)回放的系統(tǒng)包 舌記錄 器、分發(fā)器以及協(xié)議引擎。記錄器在表示層協(xié)議數(shù)據(jù)流從第一裝置傳輸?shù)降诙b 置的期間攔截表示層協(xié)議數(shù)據(jù)流,所述表示層協(xié)議數(shù)據(jù)流表示顯示數(shù)據(jù)并且包括 多個(gè)分組。分發(fā)器發(fā)送該表示層協(xié)議數(shù)據(jù)流的至少一個(gè)分組的副本。與分發(fā)器通 信的協(xié)議引擎使用與該至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生由該至少一個(gè)分 組表示的顯示數(shù)據(jù)。記錄器繼續(xù)攔截表示層協(xié)議數(shù)據(jù),分發(fā)器繼續(xù)發(fā)送表示層協(xié) 議數(shù)據(jù)流的至少一個(gè)分組的副本,直到第一裝置完成至第二裝置的該協(xié)議數(shù)據(jù)流 的發(fā)送。
(13) 在一個(gè)實(shí)施例中,記錄器還包括用于由記錄器在基本與第一裝置向 第二裝置發(fā)送表示層助、議數(shù)據(jù)流的同時(shí)攔截該表示層協(xié)議數(shù)據(jù)流的裝置。在另一 個(gè)實(shí)施例中,分發(fā)器還包括用于檢索該至少一個(gè)分組的副本并將該至少一個(gè)分組 的副本發(fā)送到協(xié)議弓l擎的收發(fā)器。
(14) 又一方面,用于在表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放期間實(shí)時(shí)搜索的方
法,包括由前臺(tái)助議弓l擎接收用于呈現(xiàn)尚待接收的第一多個(gè)分組的分組內(nèi)容的請(qǐng)
求。由前臺(tái)協(xié)議引擎識(shí)別出其相關(guān)時(shí)間戳在所i青求的分組之前的狀態(tài)快照。由前
臺(tái)協(xié)議引擎在表示層協(xié)議數(shù)據(jù)流從第一裝置至勝二裝置的傳輸期間根據(jù)識(shí)別出 的狀態(tài)快照顯示戶斥請(qǐng)求的分組。
(15) 又一方面,用于產(chǎn)生狀態(tài)快照的方法和系統(tǒng)使得在包括已經(jīng)被后臺(tái) 協(xié)議弓l擎接收的第一多個(gè)分組和尚待被后臺(tái)協(xié)議弓l擎接收的第二多個(gè)分組的表 示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放期間進(jìn)行實(shí)時(shí)搜索。后臺(tái)協(xié)議弓l擎在表示層協(xié)議數(shù)據(jù) 流從第一裝置至ij第二裝置的傳輸期間接收該第一多個(gè)分組。后臺(tái)協(xié)議引擎產(chǎn)生該 第一多個(gè)分組的表示。后臺(tái)協(xié)議引擎在讀取該第一多個(gè)分組中的至少一個(gè)分組期間產(chǎn)生至少一個(gè)狀態(tài)快照。在一個(gè)實(shí)施例中,該狀態(tài)快照包括在記錄器將分組從 協(xié)議數(shù)據(jù)流復(fù)制到該第一多個(gè)分組中的時(shí)間點(diǎn)時(shí)呈現(xiàn)該協(xié)議數(shù)據(jù)流的協(xié)議弓摩 的狀態(tài)。后臺(tái)幼議引擎存儲(chǔ)所產(chǎn)生的狀態(tài)快照。后臺(tái)協(xié)議弓摩響應(yīng)接收第二多個(gè) 分組中的至少一個(gè)分組而修改顯示數(shù)據(jù)的產(chǎn)生和該至少一個(gè)狀態(tài)快照。呈現(xiàn)協(xié)議 數(shù)據(jù)流內(nèi)容的前臺(tái)協(xié)議弓摩接收搜索由第一多個(gè)分組中的分組內(nèi)容表示的顯示 數(shù)據(jù)的請(qǐng)求,并使用狀態(tài)快照呈現(xiàn)表示所請(qǐng)求的顯示數(shù)據(jù)的內(nèi)容。后臺(tái)協(xié)議引擎 響應(yīng)接收第二多個(gè)分組中的至少一個(gè)分組而更新?tīng)顟B(tài)快照。
(16) 又另一方面,用于狀態(tài)快照的自適應(yīng)產(chǎn)生的方法和系統(tǒng),包括在表 示層協(xié)議數(shù)據(jù)流從第一裝置向第二裝置的傳輸期間向用戶呈現(xiàn)包括已經(jīng)被后臺(tái) 協(xié)議弓l擎接收的第一多個(gè)分組和尚待被后臺(tái)協(xié)議弓i擎接收的第二多個(gè)分組的表 示層幼、議數(shù)據(jù)流的表示。在一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎向用戶呈現(xiàn)協(xié)議數(shù)據(jù)流 的記錄的表示。后臺(tái)協(xié)議引擎在呈現(xiàn)期間監(jiān)控用戶的活動(dòng)。后臺(tái)協(xié)議引擎響/^X寸 活動(dòng)的監(jiān)控而開(kāi)發(fā)活動(dòng)特征。后臺(tái)協(xié)議弓摩根據(jù)活動(dòng)特征產(chǎn)生至少一個(gè)狀態(tài)快 照。后臺(tái)協(xié)議引擎響應(yīng)接收第二多個(gè)分組中的至少一個(gè)分組而修改至少一個(gè)狀態(tài) 快照。
(17) 從下面的詳細(xì)說(shuō)明和附圖將明了本發(fā)明的這些和其它方面,而這些 是為了說(shuō)明本發(fā)明而不是限制本發(fā)明,其中
圖1A是說(shuō)明包括與遠(yuǎn)程機(jī)器相互通信的客戶端的網(wǎng)絡(luò)環(huán)境的一個(gè)實(shí)施例 的框圖1B和1C是說(shuō)明可以用在和這里所描述的方法和系統(tǒng)相連的計(jì)算機(jī)的實(shí) 施例的框圖2是說(shuō)明可實(shí)施本發(fā)明的網(wǎng)絡(luò)200的一個(gè)實(shí)施例的框圖3和圖4是說(shuō)明記錄器在網(wǎng)絡(luò)200上的放置的可選實(shí)施例的框圖5是說(shuō)明用于再生由協(xié)議數(shù)據(jù)流表示的顯示數(shù)據(jù)的系統(tǒng)的一個(gè)實(shí)施例的
框圖6是說(shuō)明用于記錄和1^文服務(wù)器產(chǎn)生的數(shù)據(jù)的方法的流程圖; 圖7是更詳細(xì)地說(shuō)明用于記錄由幼、議數(shù)據(jù)流表示的顯示數(shù)據(jù)的系統(tǒng)中的記 錄器的框圖8說(shuō)明記錄助、議 流的一個(gè)實(shí)施例;
圖9是說(shuō)明在有狀態(tài)遠(yuǎn)程表示協(xié)議的回放期間進(jìn)行實(shí)時(shí)搜索的方法中所采 用步驟的一個(gè)實(shí)施例的流程圖;圖10是說(shuō)明在產(chǎn)生能夠在遠(yuǎn)程表示協(xié)議的回放期間進(jìn)行實(shí)時(shí)搜索的狀態(tài)快 照所采用的步驟的一個(gè)實(shí)施例的流程圖11是說(shuō)明在有狀態(tài)遠(yuǎn)程表示協(xié)議的回放期間進(jìn)行實(shí)時(shí)搜索的系統(tǒng)的框
圖12是說(shuō)明為狀態(tài)快照的自適應(yīng)產(chǎn)生而采用的步驟的一個(gè)實(shí)施例的流程
圖13是說(shuō)明一個(gè)實(shí)施例的三種類(lèi)型的搜索概率分布的圖14是說(shuō)明響應(yīng)確定的搜索概率分布產(chǎn)生狀態(tài)快照的一個(gè)實(shí)施例的圖15說(shuō)明了助、議數(shù)據(jù)流表示的用戶的使用模式的一個(gè)實(shí)施例;
圖16是說(shuō)明用于自適應(yīng)產(chǎn)生狀態(tài)快照的系統(tǒng)的一個(gè)實(shí)施例的框圖,該系統(tǒng)
包括后臺(tái)協(xié)議引擎、前臺(tái)助、議引擎、幼、議數(shù)據(jù)流、活動(dòng)特征和狀態(tài)快照; 圖17是說(shuō)明了用于呈現(xiàn)記錄會(huì)話的系統(tǒng)的一個(gè)實(shí)施例的框圖; 圖18的流程圖說(shuō)明了為產(chǎn)生用于回放戶/H己錄的計(jì)算機(jī)會(huì)話的回放指令而采
取的步驟的一個(gè)實(shí)施例;
圖19是說(shuō)明了在用于所記錄的計(jì)算機(jī)會(huì)話的回放的方法中所采取的步驟的
一個(gè)實(shí)施例的流程圖20是說(shuō)明了為了產(chǎn)生用于呈現(xiàn)記錄會(huì)話的回放指令而采取的步驟的一個(gè)
實(shí)施例的流程圖21說(shuō)明了響應(yīng)回放數(shù)據(jù)結(jié)構(gòu)其內(nèi)容被呈現(xiàn)的再生的記錄流的一個(gè)實(shí)施
圖22說(shuō)明了在包含了表示有意義的用戶活動(dòng)的內(nèi)容的記錄流中特定分組的 一個(gè)實(shí)施例,在這種實(shí)施例中鼠標(biāo) 俞入表示活動(dòng)鼠標(biāo)按鈕狀態(tài);
圖23是說(shuō)明了在呈現(xiàn)記錄會(huì)話中為消除不具備有意義的活動(dòng)的期間而采取 的步驟的一個(gè)實(shí)施例的流程圖24是說(shuō)明了在呈現(xiàn)記錄會(huì)話中為消除圖形更新而采取的步驟的一個(gè)實(shí)施 例的流程圖25說(shuō)明了根據(jù)第二圖形更新之后的屏幕區(qū)域的狀態(tài)是否不同于第一圖形 更新之后的屏幕區(qū)域的狀態(tài)呈現(xiàn)再生的記錄會(huì)話的一個(gè)實(shí)施例;
圖26是說(shuō)明了在呈現(xiàn)記錄會(huì)話中為消除交互序列而采取的步驟的一個(gè)實(shí)施 例的流程圖27是說(shuō)明了在呈i^f記錄的計(jì)算機(jī)會(huì)話中自動(dòng)時(shí)間巻曲的回放中所采取 的步驟的一個(gè)實(shí)施例的流程圖;圖28是說(shuō)明了在呈現(xiàn)戶形己錄的計(jì)算機(jī)會(huì)話中根據(jù)識(shí)別出的應(yīng)用為自動(dòng)時(shí)間 巻曲回放而采取的步驟的一個(gè)實(shí)施例的流程圖29是說(shuō)明了在呈現(xiàn)戶;n己錄的計(jì)算機(jī)會(huì)話中用于自動(dòng)時(shí)間巻曲回放的系統(tǒng)
的一個(gè)實(shí)施例的框圖30A是說(shuō)明了用于表示幼、議層數(shù)據(jù)流的記錄和實(shí)時(shí)回放的系統(tǒng)的一個(gè)實(shí) 施例的框圖30B、 30C和30D是說(shuō)明了用于表示協(xié)議層數(shù)據(jù)流的記錄和實(shí)時(shí)回放的 系統(tǒng)的可選實(shí)施例的框圖31是說(shuō)明了在用于表示協(xié)議層數(shù)據(jù)流的記錄和實(shí)時(shí)回放的方法中所采取 的步驟的一個(gè)實(shí)施例的流程圖32是說(shuō)明了用于在遠(yuǎn)程表示層協(xié)議數(shù)據(jù)的實(shí)時(shí)回放期間進(jìn)行實(shí)時(shí)搜索的 方法中所采取的步驟的一個(gè)實(shí)施例的流程圖33是說(shuō)明了用于在表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放期間產(chǎn)生能夠進(jìn)行實(shí)時(shí) 搜索的狀態(tài)快照的方法中所采取的步驟的一個(gè)實(shí)施例的流程圖34是說(shuō)明了在用于狀態(tài)快照的自適應(yīng)產(chǎn)生的方法中所采取的步驟的一個(gè) 實(shí)施例的流,呈圖。
具體實(shí)施例方式
(is)本發(fā)明的方法禾係統(tǒng)劍共了對(duì)戶;n己錄的表示層協(xié)議會(huì)話的時(shí)移回放。
在有些實(shí)施例中,該技術(shù)依賴用于表示層協(xié)議會(huì)話的記錄和回放的方法和系統(tǒng), 這些也將在這里進(jìn)行說(shuō)明。
(19) 用于表示層協(xié)議會(huì)話的回放的方法的一些實(shí)施例提供了在記錄完成 之后和戶形己錄的助、議數(shù)據(jù)流產(chǎn)生之后的回放功能。但在其它實(shí)施例中,方法和系 統(tǒng)提供了在協(xié)議數(shù)據(jù)流的記錄期間對(duì)協(xié)議數(shù)據(jù)流進(jìn)行回放的功能。在其中一個(gè)實(shí) 施例中,該方法和系統(tǒng)還掛共了對(duì)完成的協(xié)議數(shù)據(jù)流記,行回放的功能。在另 一個(gè)實(shí)施例中,該方法和系統(tǒng)提供了一系列回放控制,包括但不限于從開(kāi)始觀看 記錄的能力、前進(jìn)離退、暫停、快進(jìn)、逐幀前進(jìn)等等。
(20) 在有些實(shí)施例中,這里所說(shuō)明的方法和系統(tǒng)J^共了時(shí)移回放(或時(shí) 移), 一個(gè)從視頻產(chǎn)業(yè)借用的術(shù)語(yǔ)。被稱為DVR (數(shù)字視頻錄像機(jī))的產(chǎn)品例 如眾所周知的TIVO牌使用時(shí)移技術(shù)。這些產(chǎn)品向消費(fèi)者提供比傳統(tǒng)VCR更顯 著的優(yōu)勢(shì),包括在記錄結(jié)束前就開(kāi)始觀看F/H己錄的TV節(jié)目的能力。這個(gè)好處也 被掛共給了這里所說(shuō)明的方法和系統(tǒng)的用戶。用于掛共表示層協(xié)議數(shù)據(jù)的記錄后回放(也就是用于戶;n己錄的表示層協(xié)議數(shù)據(jù)的vcR功能)的方法和系統(tǒng)還可以
J^共在記錄期間的回放。這尤其為該系統(tǒng)打開(kāi)了新的使用案例和新的市場(chǎng)機(jī)會(huì)。 對(duì)于該方法和系統(tǒng)被用于安全目的的實(shí)施例,該功能大大增強(qiáng)了這些方法和系統(tǒng) 作為監(jiān)視和監(jiān)控工具(此時(shí)對(duì)可疑活動(dòng)的響應(yīng)時(shí)間尤其重要)的可用性?,F(xiàn)在可 以在可疑終端用戶違反規(guī)則或?qū)τ?jì)算或網(wǎng)絡(luò)資源的其它不正當(dāng)使用時(shí)將j也們抓 獲。另外,對(duì)于該技術(shù)被用在客戶支持場(chǎng)景中的實(shí)施例,支持技術(shù)人員現(xiàn)在有能 力正確觀察用戶在他們請(qǐng)求幫助之前究竟做了什么,然后立亥鵬〖回"實(shí)況"觀看 用戶將要做什么。這為支持市場(chǎng)掛共了巨大的機(jī)會(huì),因?yàn)楝F(xiàn)有的會(huì)話記錄產(chǎn)品沒(méi) 有提供復(fù)合的實(shí)況和回溯性回放特性。因?yàn)檫@里所說(shuō)明的方法和系統(tǒng)對(duì)系統(tǒng)的性 能、可擴(kuò)展性、可管理性或可用性只有很小(如果有的話)的影響,所以還具有 管理上的優(yōu)勢(shì)。
(21) 在一個(gè)實(shí)施例中,播放一個(gè)實(shí)況會(huì)話可能在該會(huì)話正在被實(shí)況觀看 的時(shí)間段內(nèi)對(duì)始發(fā)表示服務(wù)器有微小的影響。在另一個(gè)實(shí)施例中,當(dāng)沒(méi)有會(huì)話正 在被實(shí)況播放時(shí),對(duì)服務(wù)器的性能和可擴(kuò)展性影響與提供記錄后回放方案的實(shí)施 例中相同。
(22) 從記錄會(huì)話的搜索列表,實(shí)況記錄可以根據(jù)諸如動(dòng)畫(huà)圖標(biāo)、缺少結(jié)
束時(shí)間、和不斷變化的會(huì)話持續(xù)指示等元素被識(shí)別出。在回放期間,用來(lái)顯翁己 錄的"時(shí)間線"的圖形元素(例如拉動(dòng)進(jìn)度條)可以繼續(xù)擴(kuò)展,來(lái)表示當(dāng)來(lái)自會(huì) 話的額外數(shù)據(jù)被記錄時(shí)的不斷增加的可用于回放的數(shù)據(jù)。如果用戶想要觀看實(shí) 況,在一個(gè)實(shí)施例中,他們可以點(diǎn)擊拉動(dòng)進(jìn)度條的最右端。
(23) 在有些實(shí)施例中,例如在監(jiān)控或監(jiān)視場(chǎng)景中,該系統(tǒng)的成功實(shí)現(xiàn)可
能依賴于助、議數(shù)據(jù)流的接收者難以檢測(cè)到它們正在被記錄。在其中一個(gè)實(shí)施例 中,使用提供時(shí)移回放特性的方法和系統(tǒng)不會(huì)從指示這些接收者他們的數(shù)據(jù)和會(huì) 話被記錄或觀看的有效會(huì)話期間提供任何新"線索"。
(24) 在其它實(shí)施例中,從管理員的角度,這些方法和系統(tǒng)提供的特性以 類(lèi)似于這里所說(shuō)明的記錄后回放系統(tǒng)和方法的方式運(yùn)行。在其中一個(gè)實(shí)施例中, 沒(méi)有額外的安裝或配置選項(xiàng)。記錄規(guī)則和安全特性就像它們?cè)谟涗浐蠡胤畔到y(tǒng)和 方法中所做的那樣工作。
(25) 現(xiàn)在參看圖1A,其中說(shuō)明了網(wǎng)絡(luò)環(huán)境的一個(gè)實(shí)施例。簡(jiǎn)要地說(shuō), 該網(wǎng)絡(luò)環(huán)境包括通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)104與一個(gè)或多個(gè)服務(wù)器106a-106n (通常 也稱為服務(wù)器106或遠(yuǎn)程機(jī)器106)相互通信的一個(gè)或多個(gè)客戶端102a-102n(通 常也稱為本地機(jī)或客戶端102)。(26) 盡管圖1A將網(wǎng)絡(luò)104顯示在客戶端102和服務(wù)器106之間,但客 戶端102和服務(wù)器106可以位于相同網(wǎng)絡(luò)104中。網(wǎng)絡(luò)104可以是局域網(wǎng)(LAN, 例如公司內(nèi)部網(wǎng)絡(luò)),城域網(wǎng)(WAN)或廣域網(wǎng)(WAN,例如互聯(lián)網(wǎng)或萬(wàn)鄉(xiāng)隹網(wǎng))。 在有些實(shí)施例中,在客戶端102和服務(wù)器106之間有多個(gè)網(wǎng)絡(luò)104。在其中一個(gè) 實(shí)施例中,網(wǎng)絡(luò)104'可以是私有網(wǎng)絡(luò),網(wǎng)絡(luò)104可以是公共網(wǎng)絡(luò)。在其中另一個(gè) 實(shí)施例中,網(wǎng)絡(luò)104可以是私有網(wǎng)絡(luò),網(wǎng)絡(luò)104'可以是公共網(wǎng)絡(luò)。在又另一個(gè)實(shí) 施例中,網(wǎng)絡(luò)104和104'可以都是私有網(wǎng)絡(luò)。
(27) 網(wǎng)絡(luò)104可以是任意類(lèi)型禾t]減形式的網(wǎng)絡(luò),并且可以包括下列任意 一種點(diǎn)到點(diǎn)網(wǎng)絡(luò),廣播網(wǎng)絡(luò),廣域網(wǎng),局域網(wǎng),電信網(wǎng), 通信網(wǎng),計(jì)算機(jī) 網(wǎng)絡(luò),ATM (異步傳輸模式)網(wǎng)絡(luò),SONET (同步光纖網(wǎng)絡(luò))網(wǎng)絡(luò),SDH (同 步數(shù)字體系)網(wǎng)絡(luò),無(wú)線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)。在有些實(shí)施例中,網(wǎng)絡(luò)104可以包括 無(wú)線鏈路,例如紅外信道或衛(wèi)星帶。網(wǎng)絡(luò)104的拓?fù)浣Y(jié)構(gòu)可以是總線型、星型或 環(huán)形網(wǎng)絡(luò)拓?fù)?。網(wǎng)絡(luò)104和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可以是例如本領(lǐng)域的技術(shù)人員已知的能 夠支持這里所說(shuō)明的操作的任意網(wǎng)絡(luò)或網(wǎng)絡(luò)拓?fù)洹T摼W(wǎng)絡(luò)可以包括使用用來(lái)在移 動(dòng)裝置之間通信的任意一種或多種協(xié)議的移動(dòng)電話網(wǎng)絡(luò)(包括AMPS, TDMA, CDMA, GSM, GPRS或UMTS)。在其中一些實(shí)施例中,不同類(lèi)型的數(shù)據(jù)可 以通過(guò)不同的協(xié)議傳輸。在其它實(shí)施例中,相同類(lèi)型的數(shù)據(jù)可以通過(guò)不同的協(xié)議 傳輸。
(28) 在一個(gè)實(shí)施例中,該系統(tǒng)可以包括多個(gè)邏輯上成組的服務(wù)器106。 在這些實(shí)施例中,服務(wù)器的邏輯組可以被稱為服務(wù)器群組38。在其中一些實(shí)施 例中,服務(wù)器106可以在地理位置上分散。在有些情況下,群組38可以被作為 一個(gè)單個(gè)實(shí)體進(jìn)行管理。在其它實(shí)施例中,服務(wù)器群組38包括多個(gè)服務(wù)器群組 38。在一個(gè)實(shí)施例中,服務(wù)器群組代表一個(gè)或多個(gè)客戶端102執(zhí)行一個(gè)或多個(gè)應(yīng) 用辦。
(29) 各個(gè)群組38中的服務(wù)器106可以是不同種類(lèi)的。服務(wù)器106中的 一個(gè)或多個(gè)可以根據(jù)一種類(lèi)型的操作系統(tǒng)平臺(tái)(例如,由位于Redmond, Washington的微軟公司開(kāi)發(fā)的WINDOWS NT)運(yùn)行,而其它服務(wù)器106中的一 個(gè)或多個(gè)可以根據(jù)另一種類(lèi)型的操作系統(tǒng)平臺(tái)(例如Unix或Linux)運(yùn)行。各 個(gè)群組38中的服務(wù)器106不需要在物理上鄰近相同群組38中的另一個(gè)服務(wù)器 106。因而,邏輯上分組作為群組38的服務(wù)器106組可以用廣域網(wǎng)(WAN)連 接或城域網(wǎng)(MAN)連接來(lái)互聯(lián)。例如,群組38可以包括物理上位于不同大洲 或大洲、國(guó)家、州、城市、校園或房間的不同區(qū)域的服務(wù)器106。如果服務(wù)器106
15由局域網(wǎng)(LAN)連接g種直連形式相連,可以提高群組38中的服務(wù)器106
之間的數(shù)據(jù)傳輸速度。
(30) 服務(wù)器106可以是文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、proxy 服務(wù)器、裝置、網(wǎng)絡(luò)裝置、網(wǎng)關(guān)、應(yīng)用網(wǎng)關(guān)、網(wǎng)關(guān)服務(wù)器、虛擬化服務(wù)器、布署 服務(wù)器、SSL VPN服務(wù)器或防火墻。在有些實(shí)施例中,服務(wù)器106可以有充當(dāng) 應(yīng)用服務(wù)器或者主應(yīng)用,歸器工作的能力。在一個(gè)實(shí)施例中,服務(wù)器106可以包 括活動(dòng)目錄。遠(yuǎn)程機(jī)器30可以是應(yīng)用加速裝置。對(duì)于遠(yuǎn)程機(jī)器30是應(yīng)用加速裝 置的實(shí)施例,遠(yuǎn)程機(jī)器30可以提供包括防火墻功能、應(yīng)用防火墻功能或負(fù)載平 衡功能在內(nèi)的功能。在有些實(shí)施例中,遠(yuǎn)程機(jī)器30包括例如由下歹忪司生產(chǎn)的 系歹ll產(chǎn)品之一位于San Jose, CA的Citrix Application Networking Group, {立于 Mountain View, CA的Silver Peak Systems Inc.,位于San Francisco, CA的Riverbed Technology Inc. , {立于Seattle, WA的F5 Networks Inc.,或者4立于Sunnyvale, CA 的Juniper Networks Inc..
(31) 客戶端102也可以被稱為客戶端節(jié)點(diǎn),客戶端,終端節(jié)點(diǎn)或終端。 在有些實(shí)施例中,客戶端102有能力作為搜索對(duì)服務(wù)器掛共的資源的訪問(wèn)的客戶 端節(jié)點(diǎn)工作,也有能力作為提供對(duì)其它客戶端102a-102n所寄載的資源的訪問(wèn)的 服務(wù)器工作。
(32) 在有些實(shí)施例中,服務(wù)器106劍艮務(wù)器群組38可以運(yùn)行一個(gè)或多 個(gè)應(yīng)用,例如J^共痩客戶端計(jì)算或遠(yuǎn)禾IM示表示應(yīng)用。在一個(gè)實(shí)施例中,服務(wù)器 106或服務(wù)器群組38作為一個(gè)應(yīng)用來(lái)執(zhí)行Citrix Systems Inc.的Citrix Access Suite 的任一部分(例如MetaFrame或Citrix Presentation Server ),禾口/或微軟 公司開(kāi)發(fā)的MICROSOFT WINDOWS終端服務(wù)(Terminal Services)中的{壬意一 個(gè)。在另一個(gè)實(shí)施例中,該應(yīng)用包括由位于Redmond, Washington的微軟公司開(kāi) 發(fā)的遠(yuǎn)程桌面(RDP)客戶端,或者由開(kāi)源X.org組織維護(hù)的Xll客戶端。在又 一實(shí)施例中,服務(wù)器106可以運(yùn)行一個(gè)應(yīng)用,它例如可以是提供電子郵件服務(wù)的 應(yīng)用服務(wù)器(例如由位于Redmond, Washington的微軟公司開(kāi)發(fā)的MICROSOFT EXCHANGE) , Web或Internet服務(wù)器,桌面共享月艮務(wù)器或助、作服務(wù)器。在又 另一實(shí)施例中,這些應(yīng)用中的任意一種都可以包括任一類(lèi)型的所寄載的服務(wù)或產(chǎn) 品,例如由位于Santa Barbae California的Citrix Online Division Inc.提供的 GOTOMEETING,由位于Santa Clara^ California的WebEX Inc.Jif共白勺WEBEX, 或者由位于Redmond, Washington的微軟公司提供的Microsoft O伍ce LIVE MEETING。(33) 客戶端102可以執(zhí)行、運(yùn)行或以其它方式提供應(yīng)用,該應(yīng)用可以是
任意類(lèi)型和/或形式的軟件、,旨或者可執(zhí)行指令,例如任何類(lèi)型和/或形式的web 瀏覽器、基于web的客戶端、客戶端-服務(wù)器應(yīng)用、瘦客戶端計(jì)算客戶端,ActiveX 控件、或者Java,i^、或者能夠在客戶端102上執(zhí)行的任意其它類(lèi)型和/或形式 的可執(zhí)行指令。在有些實(shí)施例中,該應(yīng)用可以是由服務(wù)器106代表客戶端102 執(zhí)行的基于服務(wù)器的或基于遠(yuǎn)程的應(yīng)用。在一個(gè)實(shí)施例中,服務(wù)器106可以使用 瘦客戶端或遠(yuǎn)禾tM示協(xié)議(例如由位于Ft. Lauderdale, Florida的Citrix Systems Inc. 開(kāi)發(fā)的獨(dú)立計(jì)算體系結(jié)構(gòu)(ICA)幼、議,或由位于Redmond, Washington的微軟 公司開(kāi)發(fā)的遠(yuǎn)程桌面協(xié)議(RDP))來(lái)顯示輸出到客戶端102。該應(yīng)用可以使用 任意類(lèi)型的協(xié)議,并且它可為如HTTP客戶端,F(xiàn)TP客戶端,Oscar客戶端或Telnet 客戶端。在其它實(shí)施例中,應(yīng)用包括與VoIP (Voice over Internet Protocol)通信 有關(guān)的任意類(lèi)型的軟件,例如軟IP電話。在進(jìn)一步的實(shí)施例中,該應(yīng)用包括與 實(shí)時(shí)數(shù)據(jù)通信有關(guān)的任意應(yīng)用,例如用于流式傳輸視頻和/或音頻的應(yīng)用。
(34) 客戶端102和服務(wù)器106可以被布署為和/或被執(zhí)行在任意類(lèi)型和形 式的計(jì)算裝置上,例如能夠在任意類(lèi)型和形式的網(wǎng)絡(luò)上通信^#1行這里所說(shuō)明的 操作的計(jì)算機(jī)、網(wǎng)絡(luò)裝置或裝置。圖IB和1C描述了可以用于實(shí)現(xiàn)客戶端102 或服務(wù)器106的一個(gè)實(shí)施例的計(jì)算裝置100的框圖。如圖1B和1C所示,齡 計(jì)算裝置100包括中央處理單元121和主存儲(chǔ)器單元122。如圖IB中所示,計(jì) 算裝置100可以包括顯示裝置124,鍵盤(pán)126和/或定點(diǎn)裝置127,例如鼠t示。如 圖1C中所示,每個(gè)計(jì)算裝置100還可以包括其它可選部件,例如一個(gè)或多個(gè)輸 A/輸出裝置130a-130b (—般用引用編號(hào)130來(lái)指代),以及與中央處理單元121 通信的高速緩沖存儲(chǔ)器140。.
(35) 中央處理單元121是響應(yīng)并處理取自主存儲(chǔ)器單元122的指令的任 意邏輯電路。在很多實(shí)施例中,中央處理單元由微處理器單元^f共,例如由位 于Mountain View, California的Intel公司生產(chǎn)的微處理器;由位于Schaumburg, Illinois的Motorola公司生產(chǎn)的微處理器;由位于Santa Clar^ California的 Transmeta公司生產(chǎn)的微處理器;由位于White Plains, New York的國(guó)際商用機(jī)器 公司(E3M)生產(chǎn)的微處理器RS/6000;由位于Sunnyvale, California的超微裝置
(AMD)公司生產(chǎn)的微處理器。計(jì)算裝置100可以基于任意的這些處理器或者 能夠進(jìn)行如此處描述操作的任意其它處理器。
(36) 主存儲(chǔ)器單元122可以是能夠存儲(chǔ)數(shù)據(jù)并允許微處理器121直接訪 問(wèn)其任意存儲(chǔ)位置的一個(gè)或多個(gè)存儲(chǔ)器芯片,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、突發(fā)(Burst) SRAM或同步突發(fā)(SynchBurst) SRAM (BSRAM)、 動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、快速頁(yè)面模式(Fast Page Mode) DRAM (FPM DRAM)、增強(qiáng)型DRAM (EDRAM)、擴(kuò)展數(shù)據(jù)輸出(Extended Data Output) RAM (EDO RAM)、擴(kuò)展數(shù)據(jù)輸出DRAM (EDODRAM)、突發(fā)擴(kuò)展數(shù)據(jù)輸 出DRAM(BEDO DRAM)、增強(qiáng)型DRAM (EDRAM)、同步DRAM(SDRAM)、 JEDECSRAM、 PC100SDRAM、雙數(shù)據(jù)率SDRAM (DDR SDRAM)、增強(qiáng)型 SDRAM (ESDRAM)、同步鏈接DRAM (SLDRAM)、直接內(nèi)存總線(Rambus) DRAM (DRDRAM)或鐵電RAM (FRAM)。主存儲(chǔ)器122可以基于上述存 儲(chǔ)芯片中的任意一種,或者能夠按照這里所述操作的任一其它可用存儲(chǔ)芯片。在 圖IB所示實(shí)施例中,處理器121通過(guò)系統(tǒng)總線150 (下面將對(duì)其進(jìn)行更詳細(xì)的 說(shuō)明)與主存儲(chǔ)器122通信。圖1B描述了計(jì)算裝置100的一個(gè)實(shí)施例,其中處 理器通過(guò)存儲(chǔ)器端口 103直接與主存儲(chǔ)器122通信。例如,在圖IB中主存儲(chǔ)器 122可以是DRDRAM。
(37) 圖1C描繪的實(shí)施例中,主存儲(chǔ)器121通過(guò)次級(jí)總線(有時(shí)也稱為 背端總線)直接與高速緩沖存儲(chǔ)器140通信。在其它實(shí)施例中,主處理器121 使用系統(tǒng)總線150與高速緩沖存儲(chǔ)器140通信。高速緩沖存儲(chǔ)器140通常具有比 主存儲(chǔ)器122更快的響應(yīng)時(shí)間,并且一般由SRAM、 BSRAM或EDRAM提供。 在圖1C所示的實(shí)施例中,處理器121通過(guò)本地系統(tǒng)總線150與各種I/O裝置130 通信??梢允褂酶鞣N總線將中央處理單元121連接到任意I/O裝置130,包括 VESA VL總線、ISA總線、EISA總線、微MJt體系結(jié)構(gòu)(MCA)總線、PCI 總線、PCI-X總線、PCI-Express總線或者NuBus。對(duì)于其中的I/O裝置是視頻顯 示器124的實(shí)施例,處理器121可以使用高級(jí)圖形端口 (AGP)與顯示器124 通信。圖1C描述了計(jì)算機(jī)100的一個(gè)實(shí)施例,其中主處理器121通過(guò)超級(jí)傳輸 總線(HyperTransport)、快速(R邵id) I/O或InfiniBand直接與I/O裝置130b通信。
圖1C還描述了一個(gè)實(shí)施例,其中混合了本地總線和直接通信處理器121使用
本地互聯(lián)總線與I/O裝置130a通信,而直接與I/O裝置130b通信。
(38) 計(jì)算裝置100可以支持任意適當(dāng)?shù)陌惭b裝置116,例如用于接收軟 盤(pán)(如3.5英寸或5.25英寸)或ZIP盤(pán)的軟驅(qū)、CD-ROM驅(qū)動(dòng)器CD-R/RW驅(qū) 動(dòng)器、DVD-ROM驅(qū)動(dòng)器、各種格式的磁帶驅(qū)動(dòng)器、USB裝置、硬盤(pán)驅(qū)動(dòng)器或 適合安裝軟件和禾ii^(如任一客戶端代理120或其中一部分)的任意其它裝置。 計(jì)算裝置100還可以包括存儲(chǔ)裝置,例如一個(gè)或多個(gè)5,驅(qū)動(dòng)器或獨(dú)立磁盤(pán)的隨 機(jī)陣列,用于存儲(chǔ)操作系統(tǒng)和其它相關(guān)軟件,并用于存儲(chǔ)應(yīng)用軟件f旨,例如與客戶端代理120有關(guān)的任意程序??蛇x地,任意安裝裝置116也可以用作存儲(chǔ)裝 置。另外,操作系統(tǒng)和軟件可以從可引導(dǎo)介質(zhì)上被運(yùn)行,例如認(rèn)OPPIX⑧,一
種用于GNU/Linux的可弓1導(dǎo)CD ,該可引導(dǎo)CD可從knoppix.net作為GNU/Linux
分發(fā)獲得。
(39) 此外,計(jì)算裝置100可以包括網(wǎng)絡(luò)接口 118以通過(guò)多種連接(包括 但不限于標(biāo)準(zhǔn)電話線、LAN或WAN鏈路(如802.11,Tl,T3,56kb,X.25)、寬 帶連接(如ISDN、幀中繼、ATM)、無(wú)線連接或上述任意或全部的一些組合) 對(duì)接到局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或Internet。網(wǎng)絡(luò)接口 118可以包括內(nèi) 置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線網(wǎng)絡(luò)適配器、無(wú)線網(wǎng)絡(luò) 適配器、USB網(wǎng)絡(luò)適配器、調(diào)翻軍調(diào)器或適合將計(jì)算裝置100對(duì)接到能夠通信 射丸行此處所述操作的任一類(lèi)型網(wǎng)絡(luò)的任一其它裝置。
(40) 計(jì)算裝置100中可以有多種I/0裝置130a-130n。輸A^置包括鍵盤(pán)、 鼠標(biāo)、軌跡板、軌跡球、麥克風(fēng)和繪畫(huà)板。輸出裝置包括視頻顯示器、揚(yáng)聲器、 噴墨打印機(jī)、激光打印機(jī)和染料升華(dye—sublimation)打印機(jī)。1/0裝置可以 如圖1B中所示由I/O控制器123控制。1/0控制器可以控制一個(gè)或多個(gè)1/0裝置, 例如鍵盤(pán)126和定點(diǎn)裝置127 (例如鼠標(biāo)或光學(xué)筆)。此外,1/0裝置也可以為 計(jì)算裝置100提供存儲(chǔ)和/或安裝介質(zhì)116。在另其它實(shí)施例中,計(jì)算裝置100 可以提供USB連接以接收手持USB存儲(chǔ)裝置,例如由位于Los Akmitos, California的Twintech Industry Inc.生產(chǎn)的USB閃存驅(qū)動(dòng)器系列裝置。
(41) 在有些實(shí)施例中,計(jì)算裝置100可以包括多個(gè)顯示裝置124a-124n 或與其相連,這些顯示裝置可以是相同或不同的類(lèi)型和/或形式。同樣,IZO裝置 130a-130n中的任一個(gè)和/或1/0控制器123可以包括任意類(lèi)型和減形式的適當(dāng)?shù)?硬件、軟件或軟硬件組合以支持、啟用或提供計(jì)算裝置100對(duì)多個(gè)顯示裝置 124a-124n的連接和使用。例如,計(jì)算裝置100可以包括任意類(lèi)型和減形式的視 頻適配器、視頻卡、驅(qū)動(dòng)器和/或庫(kù),以與顯示裝置124a-124n對(duì)接、通信、連接 或者使用顯示裝置124a-124n。在一個(gè)實(shí)施例中,視頻適配器可以包括多個(gè)連接 器以與多個(gè)顯示裝置124a-124n對(duì)接。在其它實(shí)施例中,計(jì)算裝置100可以包括 多個(gè)視頻適適配器,^視頻適配器連接到顯示裝置124a-124n中的一個(gè)或多個(gè)。 在一些實(shí)施例中,計(jì)算裝置100的操作系統(tǒng)的任一部分都可以被配置用于使用多 個(gè)顯示器124a-124n。在其它實(shí)施例中,顯示裝置124a-124n中的一個(gè)或多個(gè)可 以由一個(gè)或多個(gè)其它計(jì)算裝置提供,諸如(例如通過(guò)網(wǎng)絡(luò))與計(jì)算裝置100相連 的計(jì)算裝置100a和100b提供。這些實(shí)施例可以包括設(shè)計(jì)和構(gòu)造的任一類(lèi)型的軟件,以^頓另一個(gè)計(jì)算機(jī)的顯示裝置作為計(jì)算裝置腦的第二顯示裝置124a。 本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)和意識(shí)到計(jì)算裝置100可以被配置為有多個(gè)顯示裝置 124a-124n的各種方式和實(shí)施例。
(42) 在進(jìn)一步的實(shí)施例中,I/O裝置130可以是系統(tǒng)總線150和外部通信 總線間的橋接器,外部通信總線例如為USB總線、Apple Desktop總線、RS-232 串《琉接、SCSI總線、Fire Wire總線、FireWire 800總線、Ethernet總線AppleTalk 總線、Gigabit Ethernet總線、ATM總線、HIPPI總線、超級(jí)(Super) HIPPI總 線、SerialPlus總線、SCI/LAMP總線、FibreChannd總線或者串行連接(Serial Attached)小型計(jì)算機(jī)系統(tǒng)接口總線。
(43) 圖IB和1C中所示類(lèi)型的計(jì)算裝置100通常在操作系統(tǒng)的控制下 運(yùn)行,該控制系統(tǒng)控制任務(wù)的調(diào)度和對(duì)系統(tǒng)資源的訪問(wèn)。裝置100可以運(yùn)行任意 操作系統(tǒng),例如任意版本的MICROSOFT WINDOWS操作系統(tǒng),不同發(fā)行版本 的Unix和Linux操作系統(tǒng),用于Macintosh計(jì)算機(jī)的任意版本的MAC OS,任 意^A式操作系統(tǒng),任意實(shí)時(shí)操作系統(tǒng),任意開(kāi)源操作系統(tǒng),任意專有操作系統(tǒng), 任意用于移動(dòng)計(jì)算裝置的操作系統(tǒng),或者任意其它能夠在計(jì)算裝置上運(yùn)行并完成 這里所述操作的操作系統(tǒng)。典型的操作系統(tǒng)包括WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS 200, WINDOWS NT 3.51, WINDOWS NT 4.0, WINDOWS CE禾卩WINDOWS XP, 所有這些都由位于Redmond, Washington的微軟公司開(kāi)發(fā);由位于Cupertino, California的蘋(píng)果計(jì)算機(jī)公司開(kāi)發(fā) 的MAC OS;由位于Armond, New York的國(guó)際商用機(jī)器公司幵發(fā)的OS/2;以及 Linux,由位于Salt Lake City, Utah的Caldera公司發(fā)布的可自由獲得的操作系統(tǒng), 或者除此之外任意類(lèi)型和/或形式的Unix操作系統(tǒng)。
(44) 在有些實(shí)施例中,計(jì)算裝置100可以有與該裝置相容的不同的處理 器、操作系統(tǒng)以及輸入裝置。例如,在一個(gè)實(shí)施例中,計(jì)算裝置100是由Palm Inc. 公司生產(chǎn)的Treo 180、 270、 600、 650、 680、 700p或700w智能手機(jī)。在其中 一些實(shí)施例中,Treo智能手機(jī)在PalmOS操作系統(tǒng)的控制下運(yùn)行,并且包,刮鵬十 輸入裝置以及五向?qū)Ш窖b置。
(45) 在其它實(shí)施例中,計(jì)算裝置100是移動(dòng)裝置,例如啟用了JAVA的 蜂窩電話或個(gè)人數(shù)字助理(PDA),例如由位于Schaumburg, Illinois的Motorola 公司生產(chǎn)的i55sr, i58sr, i85s, i88s, i90c, i95cl或iml 1000,由位于Kyoto, Japan的 Kyocera生產(chǎn)的6035或7135,或者由位于Seoul, Korea的Samsung電子有限公 司生產(chǎn)的i300或i330。(46) 在另外其它實(shí)施例中,計(jì)算裝置100是黑莓掌中寶(Blackberry handheld)或智能手機(jī),例如由Research In Motion有限公司生產(chǎn)的裝置,包括黑 莓7100系列、8700系列、7700系列、7200系列、黑莓7520或黑莓珍珠(Blackbeny Pearl) 8100。在其它實(shí)施例中,計(jì)算裝置100是智能手機(jī)、掌上電腦、掌上電腦 電話或者支持Microsoft Windows Mobile軟件的其它手持移動(dòng)裝置。此外,計(jì)算 裝置100可以是任意工作站、桌面計(jì)t^幾、膝上或筆記本型計(jì)算機(jī)、服務(wù)器、 手持計(jì)算機(jī)、移動(dòng)電話、任意其它計(jì)算機(jī)或者能夠通信并且有足夠的處理器能 力和存儲(chǔ)器容量來(lái)完成這里所述操作的其它形式的計(jì)算或電信裝置。
(47) 現(xiàn)在參看圖2,其中的框圖描述了在其中實(shí)現(xiàn)了本發(fā)明的網(wǎng)絡(luò)200 的一個(gè)實(shí)施例,網(wǎng)絡(luò)200包括第一裝置202、遠(yuǎn)程表示助、議服務(wù)器引擎204、記 錄器206、協(xié)、議數(shù)據(jù)流208、記錄的協(xié)議數(shù)據(jù)流210、第二裝置212、遠(yuǎn)程表示協(xié) 議客戶端引擎214、顯示器216、存儲(chǔ)元件218以及記錄的幼議數(shù)據(jù)流220。簡(jiǎn) 單地說(shuō),記錄器206攔截協(xié)議數(shù)據(jù)流208。記錄器206從協(xié)議數(shù)據(jù)流復(fù)制至少一 個(gè)分組并用該至少一個(gè)復(fù)制的分組創(chuàng)建協(xié)議數(shù)據(jù)流210的記錄。
(48) 現(xiàn)在更詳細(xì)地參看圖2,第一裝置202將協(xié)議數(shù)據(jù)流208發(fā)送到第 二裝置212。在一個(gè)實(shí)施例中,第一裝置202使用遠(yuǎn)程表示協(xié)議服務(wù)器引擎204 將協(xié)議數(shù)據(jù)流208發(fā)送到第二裝置212。在有些實(shí)施例中,第二裝置212使用遠(yuǎn) 程表示協(xié)議客戶端弓摩214從第一裝置202接收協(xié)議數(shù)據(jù)流208。在有些實(shí)施例 中,遠(yuǎn)程表示助、議包括瘦客戶端助、議,例如由位于Ft. Lauderdale, Florida的Citrix Systems Inc.開(kāi)發(fā)的ICA協(xié)議,由X.org幼、會(huì)開(kāi)發(fā)的X協(xié)議,AT&T公司的虛擬 網(wǎng)絡(luò)計(jì)算助、議,或由位于Redmond, Washington的微軟公司開(kāi)發(fā)的RDP協(xié)議。
(49) 協(xié)議數(shù)據(jù)流208包括多個(gè)分組,其中至少有一些表示顯示數(shù)據(jù)。在 有些實(shí)施例中,協(xié)議數(shù)據(jù)流208包括與記錄會(huì)話有關(guān)的信息。在一個(gè)實(shí)施例中, 協(xié)議數(shù)據(jù)流208包括元數(shù)據(jù)。在另一實(shí)施例中,協(xié)議數(shù)據(jù)流208包括與記錄會(huì)話 中的用戶有關(guān)的信息。在又一實(shí)施例中,協(xié)議數(shù)據(jù)流208包括與產(chǎn)生所記錄的數(shù) 據(jù)的服務(wù)器有關(guān)的信息。在又另一實(shí)施例中,助、議數(shù)據(jù)流208包括時(shí)間戳。
(50) 在一個(gè)實(shí)施例中,協(xié)議數(shù)據(jù)流208包括多個(gè)信道。在這個(gè)實(shí)施例中, 一個(gè)信道包括端到端連接,數(shù)據(jù)在該連接上被傳輸。在另一實(shí)施例中,協(xié)議數(shù)據(jù) 流208包括多個(gè)虛擬信道。在這個(gè)實(shí)施例中,虛擬信道是被包在另一信道中的信 道。第二裝置212接收協(xié)議數(shù)據(jù)流208并且在有些實(shí)施例中4柳遠(yuǎn)程表示協(xié)議客 戶端引擎214再生顯示數(shù)據(jù)。處理協(xié)議數(shù)據(jù)流208使得第二裝置212能夠通過(guò) 顯示器216將顯示呈現(xiàn)給用戶。第二裝置212可以使用遠(yuǎn)程表示協(xié)議客戶端引擎214處理顯示數(shù)據(jù)。該顯示包括但不限于聽(tīng)覺(jué)、視覺(jué)、觸覺(jué)或嗅覺(jué)的演示,或者 它們的組合。
(51) 記錄器206攔截從第一裝置202發(fā)送到第二裝置212的協(xié)議數(shù)據(jù)流 208。在一個(gè)實(shí)施例中,記錄器206通過(guò)攔截一個(gè)或多個(gè)信道而攔截協(xié)議數(shù)據(jù)流 208。在另一個(gè)實(shí)施例中,記錄器206通過(guò)攔截一個(gè)或多個(gè)虛擬信道而攔截協(xié)議 數(shù)據(jù)流208。在有些實(shí)施例中,記錄器206監(jiān)控其中第一裝置202用來(lái)傳 俞協(xié)議 數(shù)據(jù)流208到第二裝置212的一個(gè)或多個(gè)虛擬信道。記錄器206從協(xié)議數(shù)據(jù)流復(fù) 制至少一個(gè)分組。在一個(gè)實(shí)施例中,記錄器206根據(jù)策略決定復(fù)制協(xié)議數(shù)據(jù)流的 特定分組。在有些實(shí)施例中,策略定義分組為記錄器206根據(jù)分組中包含的數(shù)據(jù) 的類(lèi)型進(jìn)行記錄。在其它實(shí)施例中,記錄器206根據(jù)該分組是否包含數(shù)據(jù)的決定 來(lái)決定復(fù)制協(xié)議數(shù)據(jù)流中的分組。在其中一些實(shí)施例中,當(dāng)在其它實(shí)施例中記錄 器206記錄空分組時(shí),記錄器206不記錄空分組。在有些實(shí)施例中,記錄器206 記錄助、議數(shù)據(jù)流208中的每個(gè)分組。
(52) 記錄器206使用至少一個(gè)復(fù)制的分組創(chuàng)建記錄的協(xié)議數(shù)據(jù)流210。 在一個(gè)實(shí)施例中,記錄器206將信息和該至少一個(gè)被復(fù)制的分組關(guān)聯(lián)在一起。在 一個(gè)實(shí)施例中,記錄器206將時(shí)間戳和該至少一個(gè)被復(fù)制的分組關(guān)聯(lián)在一起。在 另一個(gè)實(shí)施例中,記錄器206將數(shù)據(jù)長(zhǎng)度指示符和該分組關(guān)聯(lián)在一起。對(duì)于記錄 器206將信息(例如時(shí)間戳或數(shù)據(jù)長(zhǎng)度指示符)與該至少一個(gè)被復(fù)制的分組關(guān)聯(lián) 一起的實(shí)施例來(lái)說(shuō),除分組之外,記錄器206可以將這個(gè)信息^A戶;fi己錄的協(xié)議 數(shù)據(jù)流210,或者記錄器206可以將這個(gè)信息直接嵌入分組中,或者記錄器206 可以將該關(guān)聯(lián)存儲(chǔ)在獨(dú)立于分組和所記錄的協(xié)議數(shù)據(jù)流210的位置。
(53) 如圖2中所示,記錄器206可以位于第一裝置202上。圖3所示的 實(shí)施例中記錄器206位于第二裝置上,其中位于第二裝置212上。圖4所示的實(shí) 施例中記錄器206位于第三裝置上??稍O(shè)置記錄器206的裝置包括客戶端計(jì)算系 統(tǒng)、服務(wù)器計(jì)算系統(tǒng)、代理服務(wù)器計(jì)算系統(tǒng)、網(wǎng)絡(luò)分組監(jiān)聽(tīng)計(jì)算系統(tǒng)、協(xié)議分析 器計(jì)算系統(tǒng)、以及直通服務(wù)器(passthrough server)計(jì)算系統(tǒng)。
(54) 記錄器206使用該至少一個(gè)被復(fù)制的分組(在有些實(shí)施例中,還使 用與該至少一個(gè)被復(fù)制的分組相關(guān)聯(lián)的信息)創(chuàng)建記錄的協(xié)議數(shù)據(jù)流210。在有 些實(shí)施例中,記錄器206在創(chuàng)建協(xié)議數(shù)據(jù)流210的記錄之后將,儲(chǔ)下來(lái)。在其 中一些實(shí)施例中,記錄器206將助、議數(shù)據(jù)流的記錄210存儲(chǔ)到存儲(chǔ)元件218。存 儲(chǔ)元件218可以包括持久存儲(chǔ)器,例如硬盤(pán)驅(qū)動(dòng)器、軟驅(qū)、CD-RW、 DVD-RW 或在斷電時(shí)仍然維持?jǐn)?shù)據(jù)狀態(tài)的任意其它裝置。在其它實(shí)施例中,存儲(chǔ)元件可以包括一個(gè)或多個(gè)易失存儲(chǔ)器元件,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、突發(fā)
(Burst) SRAM或同步突發(fā)(SynchBurst) SRAM (BSRAM)、動(dòng)態(tài)隨機(jī)存取 存儲(chǔ)器(DRAM)、快速頁(yè)模式DRAM(FPM DRAM)、增強(qiáng)型DRAM(EDRAM)、 擴(kuò)展數(shù)據(jù)輸出RAM (EDO RAM)、擴(kuò)展數(shù)據(jù)輸出DRAM (EDO DRAM)、 突發(fā)擴(kuò)展數(shù)據(jù)輸出DRAM (BEDODRAM)、增強(qiáng)型DRAM (EDRAM)、同 步DRAM (SDRAM)、正DEC SRAM、 PC100 SDRAM、雙數(shù)據(jù)率SDRAM (DDR SDRAM)、增強(qiáng)型SDRAM (ESDRAM)、同步鏈接DRAM (SLDRAM)、 直接內(nèi)存總線DRAM (DRDRAM)或鐵電RAM (FRAM)。
(55) 在一個(gè)實(shí)施例中,存儲(chǔ)元件包括網(wǎng)絡(luò)存儲(chǔ)裝置。存儲(chǔ)元件218可以 位于第一裝置202或第二裝置212上。在其它實(shí)施例中,存儲(chǔ)元件218位于第 三裝置上,例如代理月艮務(wù)器計(jì)算裝置或直通服務(wù)器計(jì)算裝置。在另其它實(shí)施例中, 存儲(chǔ)元件218位于網(wǎng)絡(luò)上,并且記錄器206通過(guò)網(wǎng)絡(luò)訪問(wèn)存儲(chǔ)元件218以存儲(chǔ)協(xié) 議數(shù)據(jù)流220的記錄。在其它實(shí)施例中,記錄器206將協(xié)議數(shù)據(jù)流的記錄存儲(chǔ)在 記錄器206所在的相同裝置上。
(56) 現(xiàn)在參看圖5,圖中框圖描述了從協(xié)議數(shù)據(jù)流506的記錄讀取至少 一個(gè)復(fù)制的分組并使用與該至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生由協(xié)議數(shù)據(jù) 流506表示的顯示數(shù)據(jù)的協(xié)議引擎502。協(xié)議引擎502接收協(xié)議數(shù)據(jù)流506。在 有些實(shí)施例中,協(xié)議引擎502從存儲(chǔ)元件504檢索(retrieve)協(xié)議數(shù)據(jù)流506。 在其它實(shí)施例中,協(xié)議引擎502從記錄器206檢索協(xié)議數(shù)據(jù)流506。在另其它實(shí) 施例中,協(xié)議弓l擎502從另一計(jì)算裝置檢索協(xié)議數(shù)據(jù)流506。
(57) 在有些實(shí)施例中,協(xié)議引擎502包括分組讀取器508和顯示數(shù)據(jù)再 生單元510。在這些實(shí)施例中,分組讀取器508從協(xié)議數(shù)據(jù)流506的記錄讀取至 少一個(gè)復(fù)制的分組。在有些實(shí)施例中,分組讀取器508從協(xié)議數(shù)據(jù)流506的記錄 順序讀取該至少一個(gè)復(fù)制的分組。
(58) 協(xié)議弓|擎502處理至少一個(gè)復(fù)制的分組以及與該至少一個(gè)復(fù)制的分 組相關(guān)聯(lián)的任何信息。在有些實(shí)施例中,協(xié)議引擎502使用顯示數(shù)據(jù)再生單元 510進(jìn)行處理。該分組包含能夠再生呈現(xiàn)給用戶的可感知顯示的數(shù)據(jù)。在有些實(shí) 施例中,第二裝置212處理這個(gè)數(shù)據(jù),如圖2中所示。在一個(gè)實(shí)施例中,處理 包括將該至少一個(gè)復(fù)制的分組中的內(nèi)容呈送到緩沖區(qū)。在另一個(gè)實(shí)施例中,處理 包括以可感知的方式呈送該至少一個(gè)復(fù)制的分組的內(nèi)容。再生的顯示可以包括但 不限于聽(tīng)覺(jué)、視覺(jué)、觸覺(jué)或嗅覺(jué)的演示或者它們的組合。
(59) 在有些實(shí)施例中,協(xié)議引擎502位于第一裝置202上。在其它實(shí)施例中,協(xié)議引擎502位于第二裝置212上。在另其它實(shí)施例中,協(xié)議引擎位于第 三裝置上,例如代理服務(wù)器計(jì)算裝置或直通服務(wù)器計(jì)算裝置。
(60) 現(xiàn)在向前看圖7,圖中框圖更詳細(xì)地描述了最初在圖2中被描述為 記錄器206的記錄器702。簡(jiǎn)單地說(shuō),記錄器702通ii)(tt辦議數(shù)據(jù)流710的攔截 并通i!Xtt辦議數(shù)據(jù)流710的記錄712的創(chuàng)建而記錄服務(wù)器產(chǎn)生的數(shù)據(jù)。
(61) 在一個(gè)實(shí)施例中,記錄器702包括協(xié)議數(shù)據(jù)流攔截器704、分組復(fù) 制器706和記錄發(fā)生器708。在一個(gè)實(shí)施例中,記錄器702使用協(xié)議數(shù)據(jù)流攔截 器704監(jiān)控協(xié)議數(shù)據(jù)流710。在另一實(shí)施例中,記錄器702使用協(xié)議數(shù)據(jù)流攔截 器704攔截包括多個(gè)從第一裝置202發(fā)送到第二裝置212的分組的協(xié)議數(shù)據(jù)流 710。分組復(fù)制器706復(fù)制協(xié)議數(shù)據(jù)流的至少一個(gè)分組。分組復(fù)制器706決定是 否復(fù)制幼、議數(shù)據(jù)流中的分組。在有些實(shí)施例中,分組復(fù)制器706根據(jù)策略進(jìn)纟m 個(gè)判斷。在這些實(shí)施例中,分組復(fù)制器706可以根據(jù)分組是否包含任意數(shù)據(jù)或者 根據(jù)分組中包含的數(shù)據(jù)類(lèi)型決定是否復(fù)制該分組。
(62) 在一個(gè)實(shí)施例中,記錄器702利用記錄發(fā)生器708并使用至少一個(gè) 復(fù)制的分組創(chuàng)建協(xié)議數(shù)據(jù)流的記錄。記錄發(fā)生器將該至少一個(gè)復(fù)制的分組組裝成 協(xié)議數(shù)據(jù)流710的記錄712。在有些實(shí)施例中,記錄發(fā)生器708將信息嵌入?yún)f(xié)議 數(shù)據(jù)流的記錄中。這個(gè)信息可以包括但不限于表示何時(shí)再生由分組中包含的數(shù)據(jù) 表示的顯示數(shù)據(jù)的時(shí)間基準(zhǔn),描述分組中包含的數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度指示符,或者用 來(lái)再生由協(xié)議數(shù)據(jù)流710中包含的數(shù)據(jù)所表示的顯示數(shù)據(jù)的其它類(lèi)型的信息。
(63) 圖8描述了幼、議數(shù)據(jù)流710的記錄712的一個(gè)實(shí)施例。在所示實(shí)施 例中,記錄發(fā)生器708將至少一個(gè)復(fù)制的分組組成遠(yuǎn)程表示協(xié)議數(shù)據(jù)塊。記錄發(fā) 生器708將時(shí)間基準(zhǔn)和數(shù)據(jù)長(zhǎng)度與各怖程表莉辦議數(shù)據(jù)i央關(guān)聯(lián)在一起荊每信 息和分組一起組合成助、議數(shù)據(jù)流710的記錄712。
(64) 現(xiàn)在回過(guò)去看圖7,在一個(gè)實(shí)施例中,記錄器702將幼、議數(shù)據(jù)流710 的完整記錄712存儲(chǔ)到存儲(chǔ)元件714中。在有些實(shí)施例中,存儲(chǔ)元側(cè)立于網(wǎng)絡(luò)上, 記錄器702在網(wǎng)絡(luò)上將記錄712發(fā)送到存儲(chǔ)元件714。在其它實(shí)施例中,存儲(chǔ)元
件位于代理服務(wù)器計(jì)算裝置上。在另其它實(shí)施例中,存儲(chǔ)元fH立于直通服務(wù)器計(jì) 算裝置上。在有些實(shí)施例中,存儲(chǔ)元件714位于和記錄器702相同的裝置上。
(65) 在一個(gè)實(shí)施例中,如圖7所示,用于協(xié)議數(shù)據(jù)流的記錄和回放的系 統(tǒng)包 封己錄器702以及圖5中所述的回放裝置514?;胤叛b置514包括幼、議引擎 502,它使用分組讀取器508從分組數(shù)據(jù)流的記錄712接收和讀取至少一個(gè)復(fù)制 的分組并使用內(nèi)嵌的信息再生由協(xié)議數(shù)據(jù)流的記錄712表示的顯示數(shù)據(jù)。在有些實(shí)施例中,協(xié)議弓l擎502在再生顯示數(shù)據(jù)中順序讀取分組。
(66) 在圖7所示另一實(shí)施例中,用于記錄和m^文服務(wù)器產(chǎn)生的數(shù)據(jù)的系 統(tǒng)包銜己錄器702、存儲(chǔ)元件714和協(xié)議引擎502。記錄器702產(chǎn)生協(xié)議數(shù)據(jù)流 的記錄并將記錄712存儲(chǔ)在存儲(chǔ)元件714中。記錄器從協(xié)議數(shù)據(jù)流復(fù)制至少一個(gè) 分組并將信息(包括但不限于時(shí)間基準(zhǔn)或描述分組中數(shù)據(jù)長(zhǎng)度的數(shù)據(jù)長(zhǎng)度指示 符)與至少一個(gè)分組關(guān)聯(lián)在一起。協(xié)議引擎502與存儲(chǔ)元件714通信,從協(xié)議數(shù) 據(jù)流的記錄讀取至少一個(gè)分組并使用與至少一個(gè)分組相關(guān)聯(lián)的信息再生由協(xié)議 數(shù)據(jù)流710的記錄712表示的顯示數(shù)據(jù)。
(67) 在一個(gè)實(shí)施例中,記錄器702、協(xié)議弓|擎502或存儲(chǔ)元件714可以 一起或分開(kāi)位于第一裝置202上。在其它實(shí)施例中,它們可以一起或分開(kāi)位于 第二裝置212上。在另其它實(shí)施例中,它們可以一起或分開(kāi)位于第;置上, 例如代理服務(wù)器計(jì)算裝置,網(wǎng)絡(luò)分組監(jiān)聽(tīng)器或直通服務(wù)器計(jì)算裝置。在另其它實(shí) 施例中,存儲(chǔ)元件714可以獨(dú)立于記錄器702和協(xié)議弓|擎502位于存儲(chǔ)區(qū)網(wǎng)絡(luò)上。
(68) 現(xiàn)在參看圖6,所示流程圖概述了用于記錄和重放服務(wù)器產(chǎn)生的數(shù) 據(jù)的方法。簡(jiǎn)單地說(shuō),記錄器206攔截包括從第一裝置202發(fā)送到第二裝置212 的多個(gè)分組的協(xié)議數(shù)據(jù)流208 (步驟602)。記錄器206從協(xié)議數(shù)據(jù)流208復(fù)制 至少一個(gè)分組(步驟604)并創(chuàng)建協(xié)議數(shù)據(jù)流210的記錄(步驟606),隨后協(xié) 議引擎502在再生由所記錄的協(xié)議數(shù)據(jù)流210表示的顯示數(shù)據(jù)時(shí)使用它(步驟 608、 610)。
(69) 記錄器206攔截包括多個(gè)分組的、表示自第一裝置202發(fā)送到第二 裝置212的顯示數(shù)據(jù)的協(xié)議數(shù)據(jù)流208。記錄器206復(fù)制協(xié)、議數(shù)據(jù)流208的至少 一個(gè)分組。記錄器206使用至少一個(gè)復(fù)制的分組創(chuàng)建協(xié)議數(shù)據(jù)流的記錄。記錄器 206在有些實(shí)施例中將信息與至少一個(gè)復(fù)制的分組關(guān)聯(lián)在一起。該信息可以包括 時(shí)間戳或數(shù)據(jù)長(zhǎng)度指示符。在其中一些實(shí)施例中,記錄器206將與分組相關(guān)聯(lián)的 信息^A助、議數(shù)據(jù)流210的記錄中。在其中的其它實(shí)施例中,記錄器206將與分 組相關(guān)的信息存儲(chǔ)在單獨(dú)的幼、議數(shù)據(jù)流中。在其中另一些實(shí)施例中,記錄器將與 分組相關(guān)聯(lián)的信息存儲(chǔ)在數(shù)據(jù)存儲(chǔ)中。協(xié)議引擎502從協(xié)議 流210的記錄讀 取至少一個(gè)復(fù)制的分組并使用與該至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生由協(xié) 議數(shù)據(jù)流210表示的顯示數(shù)據(jù)。
(70) 現(xiàn)在向前參看圖ll,其中的框圖描述了用于在有狀態(tài)的遠(yuǎn)程表示協(xié) 議的回放中進(jìn)行實(shí)時(shí)搜索的系統(tǒng)。簡(jiǎn)單地說(shuō),該圖描述了回放裝置514 (見(jiàn)上面 的圖5)的一個(gè)實(shí)施例,包括兩個(gè)協(xié)議引擎502、后臺(tái)助、議引擎1102、前臺(tái)協(xié)議引擎1106、以及狀態(tài)快照1104和顯示器1108。后臺(tái)協(xié)議引擎1102接收協(xié)議數(shù) 據(jù)流1110的記錄并讀取協(xié)議數(shù)據(jù)流1110的記錄,其包括多個(gè)分組并表示顯示數(shù) 據(jù)。在一個(gè)實(shí)施例中,該回放裝置514M:呈送助、議數(shù)據(jù)流1110中的至少一個(gè) 分組的內(nèi)容并使用顯示器1108顯示結(jié)果來(lái)再生顯示數(shù)據(jù)。該結(jié)果包括但不限于 可以感知的聽(tīng)覺(jué)、視覺(jué)、觸覺(jué)或嗅覺(jué)的演示。
(71) 現(xiàn)在更詳細(xì)地參看圖11 ,后臺(tái)協(xié)議弓摩1102啟動(dòng)對(duì)所呈送的顯示 數(shù)據(jù)的接收者以在協(xié)議數(shù)據(jù)流1110的表示期間實(shí)時(shí)搜索內(nèi)容。后臺(tái)協(xié)議引擎 1102在從協(xié)議數(shù)據(jù)流1110讀取至少一個(gè)分組時(shí)產(chǎn)生至少一個(gè)狀態(tài)快照1104。在 一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎1102將至少一個(gè)分組的內(nèi)容呈送到緩沖區(qū)。在這 個(gè)實(shí)施例中,該緩沖區(qū)可以包括離屏緩沖區(qū)。在這個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎 1102在它呈送該至少一個(gè)分組的內(nèi)容時(shí)產(chǎn)生至少一個(gè)狀態(tài)快照1104。后臺(tái)協(xié)議 引擎1102使?fàn)顟B(tài)快照1104對(duì)前臺(tái)協(xié)議弓摩1106可用。
(72) 狀態(tài)快照1104使得能夠再生顯示數(shù)據(jù),因?yàn)樗鎯?chǔ)了呈送協(xié)議數(shù) 據(jù)流1110的助、議弓l擎在記錄器206從協(xié)議數(shù)據(jù)流208復(fù)制至少一個(gè)分組到協(xié)議 數(shù)據(jù)流1110的記錄的時(shí)間點(diǎn)的狀態(tài)。在一個(gè)實(shí)施例中,狀態(tài)快照1104包括描述 某一時(shí)間點(diǎn)上的屏幕狀態(tài)的數(shù)據(jù)結(jié)構(gòu)。在另一實(shí)施例中,狀態(tài)快照1104描繪所 有變量、圖像以及構(gòu)成協(xié)議弓l擎在協(xié)議數(shù)據(jù)流1110中的參考點(diǎn)上的狀態(tài)的數(shù)據(jù) 組件。前臺(tái)協(xié)議引擎1106還接收協(xié)議數(shù)據(jù)流1110的記錄并且通過(guò)重新創(chuàng)建最初 呈送協(xié)、議數(shù)據(jù)流1110的切、議弓l擎的狀態(tài)來(lái)呈送助、議數(shù)據(jù)流1110中的至少一個(gè)分 組的內(nèi)容。在一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎1106使用狀態(tài)快照1104的內(nèi)容呈送 該至少一個(gè)分組的內(nèi)容。
(73) 在一個(gè)實(shí)施例中,狀態(tài)快照1104包括數(shù)據(jù)結(jié)構(gòu)。在其它實(shí)施例中, 狀態(tài)快照1104包括數(shù)據(jù)庫(kù)。在一個(gè)實(shí)施例中,狀態(tài)快照1104的內(nèi)容包括與可視 表面的狀態(tài)有關(guān)的顯示數(shù)據(jù)。在另一實(shí)施例中,狀態(tài)快照1104的內(nèi)容包括與離 屏表面的狀態(tài)有關(guān)的顯示數(shù)據(jù)。在又一實(shí)施例中,狀態(tài)快照1104的內(nèi)容包括與 圖形對(duì)象的狀態(tài)有關(guān)的顯示數(shù)據(jù)。在有些實(shí)施例中,狀態(tài)快照1104的內(nèi)容包括 與調(diào)色板的狀態(tài)有關(guān)的顯示數(shù)據(jù)。在其它實(shí)施例中,狀態(tài)快照1104的內(nèi)容包括 與緩存對(duì)象的狀態(tài)有關(guān)的顯示數(shù)據(jù)。在另其它實(shí)施例中,狀態(tài)快照1104的內(nèi)容 包括與緩沖區(qū)的狀態(tài)有關(guān)的顯示數(shù)據(jù)。
(74) 前臺(tái)協(xié)議引擎1106接收協(xié)議數(shù)據(jù)流1110的記錄并使用狀態(tài)快照
1104識(shí)別包含戶;f請(qǐng)求的數(shù)字?jǐn)?shù)據(jù)的表示的分組并呈送該分組。在有些實(shí)施例,
前臺(tái)協(xié)議弓l擎1106產(chǎn)生協(xié)議數(shù)據(jù)流1110的記錄的實(shí)時(shí)可感知表示以表示給使用顯示器1108的觀眾。在有些實(shí)施例中,前臺(tái)協(xié)議引擎1106通過(guò)呈送協(xié)議數(shù)據(jù)流 1110中的至少一個(gè)分組的內(nèi)容來(lái)產(chǎn)生實(shí)時(shí)可感知表示??筛兄硎究梢苑謩e包 括或一起包括但不限于聽(tīng)覺(jué)、視覺(jué)、觸覺(jué)或嗅覺(jué)的演示。
(75) 在其中一個(gè)前臺(tái)協(xié)議引擎1106呈送協(xié)議數(shù)據(jù)流1110中的至少一個(gè) 分組的內(nèi)容的實(shí)施例中,前臺(tái)協(xié)議引擎1106在由后臺(tái)協(xié)議引擎1102呈送的同時(shí) 啟動(dòng)對(duì)協(xié)議數(shù)據(jù)流1110中的至少一個(gè)分組的內(nèi)容的呈送。但是,后臺(tái)協(xié)議弓摩 1102只呈送到緩沖區(qū)并在由前臺(tái)協(xié)議弓摩1106開(kāi)始的實(shí)時(shí)可感知呈現(xiàn)完成之前 完成呈現(xiàn)和對(duì)至少一個(gè)狀態(tài)快照1104的生成,前臺(tái)協(xié)議弓摩1106在一個(gè)實(shí)施例 中不僅呈送到緩沖區(qū)而且以可感知方式呈現(xiàn)。在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎 1102以最大的可會(huì)腿度呈現(xiàn)協(xié)議數(shù)據(jù)流1110而不管與記錄(將以其它方式指定 呈現(xiàn)時(shí)間)相關(guān)的ftf可時(shí)間戳。因此,在其協(xié)議數(shù)據(jù)流1110的記錄的實(shí)時(shí)可感 知表示的產(chǎn)生期間,至少一個(gè)有狀態(tài)快照1104對(duì)前臺(tái)助議引擎1106可用。
(76) 在一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎1106以順序方式呈現(xiàn)協(xié)議數(shù)據(jù)流 1110的記錄中多個(gè)分組的內(nèi)容。在這個(gè)實(shí)施例中,呈現(xiàn)并表示給用戶的顯示數(shù) 據(jù)以記錄協(xié)議數(shù)據(jù)流時(shí)發(fā)生的順序表示這些顯示。協(xié)議數(shù)據(jù)流1110的記錄可以 包括信息,例如由前臺(tái)幼議引擎1106拍頓序呈現(xiàn)顯示數(shù)據(jù)中使用的時(shí)間戳。在 有些實(shí)施例中,前臺(tái)幼、議引擎1106實(shí)時(shí)呈現(xiàn)顯示數(shù)據(jù)。當(dāng)前臺(tái)助、議引擎1106 接收再生由協(xié)議數(shù)據(jù)流1110的記錄中的特定分組表示的特定顯示數(shù)據(jù)的請(qǐng)求 時(shí),前臺(tái)協(xié)議引擎1106使用識(shí)別出的狀態(tài)快照1104的內(nèi)容呈現(xiàn)所請(qǐng)求的顯示數(shù) 據(jù)。
(77) 在有些實(shí)施例中,后臺(tái)協(xié)議引擎1102和前臺(tái)協(xié)議引擎1106位于相 同裝置上。在其它實(shí)施例中,后臺(tái)協(xié)議弓摩1102和前臺(tái)協(xié)議弓摩1106位于不同 裝置上。
(78) 現(xiàn)在回過(guò)去參看圖9,其中的流程圖描述了用于在有狀態(tài)遠(yuǎn)程表示 協(xié)議的回放期間進(jìn)行實(shí)時(shí)搜索的方法中采取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),先 請(qǐng)求呈現(xiàn)由協(xié)議數(shù)據(jù)流的記錄中的分組內(nèi)容表示的數(shù)據(jù)顯示(步驟902)。通過(guò) 具有不遲于與所請(qǐng)求的分組相關(guān)聯(lián)的時(shí)間戳的相關(guān)時(shí)間戳的狀態(tài)快照的第一識(shí) 別(步驟904)和根據(jù)該識(shí)別出的狀態(tài)快照呈現(xiàn)所請(qǐng)求的內(nèi)容(步驟906),呈 現(xiàn)適當(dāng)分組的內(nèi)容。
(79) 在一個(gè)實(shí)施例中,前臺(tái)協(xié)議弓|擎1106接收呈現(xiàn)協(xié)、議數(shù)據(jù)流1110的 記錄中分組的內(nèi)容的請(qǐng)求。協(xié)議數(shù)據(jù)流1110包括多個(gè)其內(nèi)容表示顯示數(shù)據(jù)的分 組。在有些實(shí)施例中,在前臺(tái)協(xié)議引擎1106通過(guò)向使用顯示器1108的觀眾(且該觀眾希望搜索特定顯示數(shù)據(jù))呈現(xiàn)協(xié)議數(shù)據(jù)流1110的記錄中的分組內(nèi)容而再 生顯示數(shù)據(jù)時(shí),產(chǎn)生請(qǐng)求。
(80) 前臺(tái)協(xié)議引擎1106識(shí)別出具有不遲于與所^i青求的分組相關(guān)聯(lián)的時(shí) 間戳的相關(guān)時(shí)間戳的狀態(tài)快照1104。前臺(tái)協(xié)議引擎1106根據(jù)識(shí)別出的狀態(tài)快照 1104顯示由所i青求的分組的內(nèi)容表示的顯示數(shù)據(jù)。在一個(gè)實(shí)施例中,識(shí)別出的 狀態(tài)快照1104從協(xié)議數(shù)據(jù)流1110指示出正確的分組,前臺(tái)協(xié)議弓|擎1106可以
呈現(xiàn)其內(nèi)容以向用戶提供戶;fi青求的顯示數(shù)據(jù)。
(81) 在其它實(shí)施例中,識(shí)別出的狀態(tài)快照1104包括呈現(xiàn)助議數(shù)據(jù)流的 協(xié)議引擎在記錄器從協(xié)議數(shù)據(jù)流1110復(fù)制分組但所復(fù)制的分組的內(nèi)容表示的顯 示數(shù)據(jù)在觀眾請(qǐng)求的顯示數(shù)據(jù)之前時(shí)的某一時(shí)間點(diǎn)的狀態(tài)。在其中一些實(shí)施例 中,在狀態(tài)快照和包含所請(qǐng)求的顯示數(shù)據(jù)的表示的分組之間有多個(gè)分組。在其中 一些實(shí)施例中,前臺(tái)幼、議引擎1106將中間分組的內(nèi)容或只將分組呈送到離屏緩 沖區(qū)。前臺(tái)協(xié)議弓摩1106接著將其內(nèi)容表示顯示數(shù)據(jù)的分組不僅呈送到離屏緩 沖區(qū),還以可感知的方式呈現(xiàn)給用戶。在一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎1106在 附青求分組的內(nèi)容所表示的顯示數(shù)據(jù)之前,提供以可感知的方式由中間分組的內(nèi) 容所表示的顯示數(shù)據(jù)。
(82) 現(xiàn)在參看圖10,所示流程圖描述了為產(chǎn)生能夠在遠(yuǎn)程表示協(xié)議的回 放期間進(jìn)行實(shí)時(shí)搜索的狀態(tài)快照所采取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),后臺(tái)協(xié) 議引擎1102接收助、議數(shù)據(jù)流1110的記錄,并在再生由助、議數(shù)據(jù)流1110中的多 個(gè)分組的內(nèi)容所表示的顯示數(shù)據(jù)時(shí)產(chǎn)生至少一個(gè)狀態(tài)快照。
(83) 后臺(tái)協(xié)議弓|擎1102接收包括多個(gè)分組的協(xié)議數(shù)據(jù)流1110的記錄(步 驟1002)。后臺(tái)協(xié)議引擎1102產(chǎn)生協(xié)議數(shù)據(jù)流的記錄的表示。在一個(gè)實(shí)施例中, 后臺(tái)協(xié)議弓摩1102通過(guò)將多個(gè)分組的內(nèi)容呈送給緩沖區(qū)來(lái)產(chǎn)生表示。在有些實(shí) 施例中,該緩沖區(qū)是離屏緩沖區(qū)。
(84) 在有些實(shí)施例中,前臺(tái)協(xié)議弓摩1106也接收協(xié)議數(shù)據(jù)流1110的記 錄。在這些實(shí)施例中,前臺(tái)協(xié)議引擎1106產(chǎn)生助、議數(shù)據(jù)流記錄的可由人感知的 表示,盡管如上戶,前臺(tái)協(xié)議引擎1106不僅呈送到離屏緩沖區(qū),也以可感知方 式呈現(xiàn)(步驟1004)。在其中一個(gè)實(shí)施例中,前臺(tái)助、議引擎1106通過(guò)基本與后 臺(tái)協(xié)議引擎1102在它讀取協(xié)議數(shù)據(jù)流的記錄期間產(chǎn)生至少一個(gè)狀態(tài)快照同時(shí)呈 現(xiàn)多個(gè)分組的內(nèi)容,來(lái)產(chǎn)生協(xié)議數(shù)據(jù)流1110的記錄的可由人感知的表示。
(85) 在讀取了協(xié)議數(shù)據(jù)流1110的記錄中的至少一個(gè)分組后,后臺(tái)協(xié)議 引擎1102產(chǎn)生至少一個(gè)狀態(tài)快照(步驟1006)。在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎1102招頃序讀取協(xié)議數(shù)據(jù)流1110的記錄期間產(chǎn)生至少一個(gè)狀態(tài)快照。在另一 實(shí)施例中,后臺(tái)協(xié)議引擎1102基本與呈送分組的內(nèi)容到緩沖區(qū)同時(shí)讀取協(xié)議數(shù)
據(jù)流1110的記錄中的至少一個(gè)分組。在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎1102隨后 將所產(chǎn)生的狀態(tài)快照1104存儲(chǔ)下來(lái)(步驟1008)。在后臺(tái)協(xié)議引擎1102周期 性產(chǎn)生多個(gè)狀態(tài)快照的實(shí)施例中,狀態(tài)快照可以充當(dāng)貫穿幼、議數(shù)據(jù)流1110的記 錄的標(biāo)記,幫助定位協(xié)議數(shù)據(jù)流1110中特定時(shí)間點(diǎn)以及在狀態(tài)快照1104之前或 之后到來(lái)的分組。
(86) 向前參看圖12,其中的流程圖描述了為狀態(tài)快照的自適應(yīng)產(chǎn)生而采 取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),后臺(tái)協(xié)議引擎1102監(jiān)控觀眾的活動(dòng)并根據(jù) 觀眾的活動(dòng)級(jí)別產(chǎn)生一個(gè)或多個(gè)狀態(tài)快照1104。
(87) 在將協(xié)議數(shù)據(jù)流1110的記錄的表示呈現(xiàn)給用戶(步驟1202)期間, 后臺(tái)協(xié)議引擎1102監(jiān)控用戶的活動(dòng)(步驟1204)。在一個(gè)實(shí)施例中,前臺(tái)協(xié)議 引擎1106產(chǎn)生協(xié)議數(shù)據(jù)流1110的記錄的表示并且用顯示器1108將其呈現(xiàn)給用 戶。在其它實(shí)施例中,后臺(tái)協(xié)議引擎1102產(chǎn)生該表示。在另其它實(shí)施例中,第 三裝置產(chǎn)生該表示。(88) 后臺(tái)協(xié)議引擎1102在表示期間監(jiān)控用戶的活動(dòng)(步驟1204)。通 過(guò)監(jiān)控用戶的活動(dòng),后臺(tái)助、議引擎1102根據(jù)對(duì)活動(dòng)的監(jiān)控開(kāi)發(fā)出活動(dòng)特征(步 驟1206)。后臺(tái)協(xié)議引擎根據(jù)開(kāi)發(fā)出的活動(dòng)特征產(chǎn)生至少一個(gè)狀態(tài)快照1104 (步 驟函)。
(89) 在有些實(shí)施例中,后臺(tái)協(xié)議引擎1102識(shí)別出用戶的活動(dòng)級(jí)別。在 有些實(shí)施例中,后臺(tái)協(xié)議引擎1102識(shí)別出不活動(dòng)期間。在其它實(shí)施例中,后臺(tái) 協(xié)議引擎1102在顯示數(shù)據(jù)中識(shí)別出用戶的興趣區(qū)域?;顒?dòng)特征反映了這些識(shí)別。
(90) 后臺(tái)協(xié)議引擎1102根據(jù)活動(dòng)特征產(chǎn)生至少一個(gè)狀態(tài)快照。在有些 實(shí)施例中,后臺(tái)協(xié)議引擎1102決定在一個(gè)或多個(gè)狀態(tài)快照之間擴(kuò)展間隔。在其 它實(shí)施例中,后臺(tái)助議引擎1102決定在一個(gè)或多個(gè)狀態(tài)快照之間縮減間隔。在 另其它實(shí)施例中,后臺(tái)協(xié)議引擎1102根據(jù)活動(dòng)特征決定移除至少一個(gè)狀態(tài)快照。 在另其它實(shí)施例中,后臺(tái)協(xié)議弓l擎1102根據(jù)活動(dòng)特征決定增加至少一個(gè)狀態(tài)快 昭。
乂 、、、 o
(91) 在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎1102識(shí)別出搜索概率的預(yù)測(cè)統(tǒng)計(jì) 分布。圖13是描述了一個(gè)實(shí)施例的三種類(lèi)型的搜索概率分布圖。在這個(gè)實(shí)施例 中,后臺(tái)協(xié)議引擎1102收集并存儲(chǔ)與用戶所做的搜索請(qǐng)求有關(guān)的數(shù)據(jù)。在一個(gè) 實(shí)施例中,該數(shù)據(jù)包括用戶如何定期做出搜索請(qǐng)求。在一個(gè)實(shí)施例中,該數(shù)據(jù)包M^搜索請(qǐng)求的范圍""戶斥請(qǐng)求的顯示數(shù)據(jù)和通過(guò)呈現(xiàn)協(xié)議數(shù)據(jù)流iiio的記錄 中的分組的內(nèi)容而表示給用戶的當(dāng)前顯示數(shù)據(jù)之間的距離。該范圍可以用時(shí)間單 位描述或者相對(duì)于協(xié)議數(shù)據(jù)流1110的整個(gè)記錄的長(zhǎng)度進(jìn)行描述。在一個(gè)實(shí)施例 中,做出搜索請(qǐng)求的時(shí)間戳被記錄下來(lái)。
(92) 圖14是描述了根據(jù)確定的搜索概率分布產(chǎn)生狀態(tài)快照的一個(gè)實(shí)施
例的圖。后臺(tái)協(xié)議引擎1102使用收集的搜索請(qǐng)求數(shù)據(jù)產(chǎn)生圍繞當(dāng)前表示的顯示 數(shù)據(jù)的搜索概率分布圖表。后臺(tái)協(xié)議引擎1102為流中的每個(gè)位置分配一個(gè)值,
該值表示用戶將請(qǐng)求搜索與該位置相關(guān)聯(lián)的顯示數(shù)據(jù)的估計(jì)概率。使用這個(gè)數(shù)
據(jù),后臺(tái)協(xié)議弓摩1102決定將產(chǎn)生的狀態(tài)快照1104放在何處并根據(jù)搜索概率的 統(tǒng)計(jì)分布產(chǎn)生至少一個(gè)狀態(tài)快照1104。
(93) 圖15描述了用戶使用模式的一個(gè)實(shí)施例。在一個(gè)實(shí)施例中,后臺(tái) 協(xié)議弓摩1102根據(jù)用戶的4頓模式為用戶開(kāi)發(fā)出活動(dòng)特征。使用模式反映識(shí)別 出的搜索概率。具有較高搜索概率的區(qū)i劍每被Jil共較高的狀態(tài)快照密度,具有較 低搜索概率的區(qū)i顯每被提供較低的狀態(tài)快照密度。在有些實(shí)施例中,任意一對(duì)狀 態(tài)快照之間的距離與它們之間的平均搜索概率成反比。后臺(tái)協(xié)議弓摩1102期望 用戶搜索較高概率區(qū)域,因此大部分搜索將很快,因?yàn)楫a(chǎn)生的狀態(tài)快照1104之 間的間距相對(duì)較短。為了確保沒(méi)有個(gè)別搜索請(qǐng)求過(guò)慢,在一個(gè)實(shí)施例中,即使搜 索概率非常低,后臺(tái)坊、議弓摩1102將為產(chǎn)生的狀態(tài)快照的間距強(qiáng)加一個(gè)上限。 同樣,在另一個(gè)實(shí)施例中,下限防止?fàn)顟B(tài)快照在很高概率區(qū)域布置得過(guò)于接近。 在有些實(shí)施例中,在決定狀態(tài)快照布置時(shí),相鄰狀態(tài)快照之間的呈現(xiàn)量被考慮以 最小化延遲。
(94) 對(duì)于具有新用戶或沒(méi)有可區(qū)別的使用模式的用戶的實(shí)施例,后臺(tái)協(xié) 議弓l擎1102應(yīng)用缺省狀態(tài)快照產(chǎn)生模式。這個(gè)模式假定大多數(shù)搜索將靠近任一 方向的當(dāng)前幀發(fā)生,但長(zhǎng)距離搜索性能必須最佳。典型的用戶會(huì)期望在當(dāng)前幀周 圍來(lái)回小幅移動(dòng)時(shí)有好的性能,因?yàn)楹芏嘈〉乃阉鞑襟E可以用轉(zhuǎn)輪輸入裝置實(shí) 現(xiàn)。搜索長(zhǎng)距離不太常見(jiàn),而且明顯的延遲也是可接受的權(quán)衡。
(95) 如果用戶偏離他們被認(rèn)可的4頓模式,后臺(tái)幼、議引擎1102在對(duì)用 戶無(wú)了解的實(shí)況回放期間調(diào)節(jié)狀態(tài)快照產(chǎn)生模式。后臺(tái)協(xié)議弓l擎1102移動(dòng)狀態(tài) 快照位置以調(diào)整為新使用模式。例如,如果通常使用鼠標(biāo)滾輪小步搜索的用戶開(kāi) 始較大范圍搜索,后臺(tái)協(xié)議弓摩1102減少當(dāng)前幀附近的狀態(tài)快照的數(shù)量以釋放 資源從而在較大范圍的區(qū)域中增加狀態(tài)快照。
(96) 圖16推,了在用于狀態(tài)快照的自適應(yīng)產(chǎn)生的系統(tǒng)中的上述方法的一個(gè)實(shí)施例,該系統(tǒng)包括后臺(tái)協(xié)議引擎1602、前臺(tái)幼、議引擎1608、協(xié)議數(shù)據(jù)流 1612、活動(dòng)特征1604以及狀態(tài)快照1606。前臺(tái)助、議引擎1608將協(xié)議i^居流記 錄的表示呈現(xiàn)給觀眾。后臺(tái)協(xié)議引擎1602在表示期間監(jiān)控觀眾的活動(dòng),根據(jù)監(jiān) 控開(kāi)發(fā)出活動(dòng)特征1604并根據(jù)活動(dòng)特征生成和維護(hù)狀態(tài)快照1606。
(97) 現(xiàn)在參看圖18,所示流程圖描述了為產(chǎn)生用于戶/H己錄的計(jì)算機(jī)會(huì)話 的回放的回放指令而采取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),在第一裝置上執(zhí)行的 協(xié)議引擎接收記錄^i舌(步驟1802)。記錄的流包括表示在第二裝置上執(zhí)行的 應(yīng)用,聘產(chǎn)生的顯示數(shù)據(jù)的多個(gè)分組。助議弓摩為記錄的流中的分組決定以人可 感知的方式呈現(xiàn)該分組的內(nèi)容(步驟1804)。隨后助、議引擎將該決定存儲(chǔ)在回 放數(shù)據(jù)結(jié)構(gòu)中(步驟1806)。
(98) 在一個(gè)實(shí)施例中,協(xié)議引擎包括上面圖5中所述的協(xié)議引擎502。 在其它實(shí)施例中,助、議引擎包括如圖11中所述的后臺(tái)協(xié)議引擎1102。在又其它 實(shí)施例中,協(xié)議引擎包括如圖11中所述的前臺(tái)協(xié)議引擎1106。在助、議引擎包括 后臺(tái)協(xié)議引擎1102的一些實(shí)施例中,該協(xié)議引擎可以中斷執(zhí)行后臺(tái)協(xié)議引擎 1102的功能并開(kāi)始執(zhí)行前臺(tái)協(xié)議引擎1106的功能。在協(xié)議引,括前臺(tái)協(xié)議引 擎1106的一些實(shí)施例中,該協(xié)議引擎可以中斷執(zhí)行前臺(tái)協(xié)議引擎1106的功能并 開(kāi)始執(zhí)行后臺(tái)協(xié)議引擎1102的功能。在其它實(shí)施例中,該助、議引擎包括后臺(tái)協(xié) 議引擎1102和前臺(tái)幼議引擎1106。在其中一些實(shí)施例中,后臺(tái)協(xié)議引擎1102 和前臺(tái)協(xié)議引擎1106位于相同裝置上。在其它實(shí)施例中,后臺(tái)幼、議引擎1102 和前臺(tái)協(xié)議弓l擎1106位于不同裝置上。
(99) 在一個(gè)實(shí)施例中,協(xié)議引擎為記錄流中的分組決定以可以被人感知 的方式顯示該分組(步驟1804)。該顯示包括但不限于聽(tīng)覺(jué)、視覺(jué)、觸覺(jué)或嗅 覺(jué)的演示,或者它們的組合。在有些實(shí)施例中,幼、議引擎根據(jù)分組的內(nèi)容決定顯 示該分組。在其中一個(gè)實(shí)施例中,協(xié)議弓摩根據(jù)具有輸入焦點(diǎn)的應(yīng)用,歸的指示 做出決定。在其中另一個(gè)實(shí)施例中,協(xié)議弓摩根據(jù)對(duì)該分組中存儲(chǔ)的用戶輸入 的類(lèi)型的評(píng)估做出決定。在其中一些實(shí)施例中,協(xié)議引擎根據(jù)對(duì)該分組中存儲(chǔ)的 圖形更新的類(lèi)型的評(píng)估做出決定。在其中其它實(shí)施例中,協(xié)議引擎根據(jù)對(duì)該分組 中存儲(chǔ)的交互順序的類(lèi)型的評(píng)估做出決定。
(100) 在一個(gè)實(shí)施例中,協(xié)議引擎將該決定存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中 (1806)。在有些實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)描述如何再生記錄流中包含的顯示數(shù)
據(jù)。在一個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)的指令控制呈現(xiàn)顯示數(shù)據(jù)的過(guò)程。在 一個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)包括用于呈現(xiàn)記錄流中分組的內(nèi)容的時(shí)間。在這個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)中包含的時(shí)間被用于呈現(xiàn)分組的內(nèi)容,而且不是與記錄 的分組相關(guān)聯(lián)的呈現(xiàn)時(shí)間(如果有的話)。在一個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)接收 改變呈現(xiàn)時(shí)間的用戶輸入。
(101) 在有些實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)包括說(shuō)明如何進(jìn)行對(duì)所記錄會(huì)話 的一次或多次回放的元數(shù)據(jù)。在一個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)由記錄流中的^ 分組的記錄組成,表示在回放期間分組的內(nèi)容應(yīng)該在什么相對(duì)時(shí)間點(diǎn)被呈現(xiàn)。在 有些實(shí)施例中,元數(shù)據(jù)還包含分組開(kāi)始文件中的偏移。
(102) 現(xiàn)在回過(guò)去參看圖17,其中的框圖描述了用于呈現(xiàn)記錄會(huì)話的系
統(tǒng)的一個(gè)實(shí)施例,該系統(tǒng)包括第一裝置1702、后臺(tái)協(xié)議引擎1704、回放數(shù)據(jù)結(jié) 構(gòu)1706、前臺(tái)幼議引擎1708、顯示器1710、第二裝置1712和記錄流1714。后 臺(tái)協(xié)議引擎1704在第一裝置1702上執(zhí)行并響應(yīng)接收記錄流1714而產(chǎn)生回放數(shù) 據(jù)結(jié)構(gòu)1706,所述記錄流1714表示由在第二裝置1712 ,三裝置上執(zhí)行的應(yīng) 用程序產(chǎn)生的顯示數(shù)據(jù)。前臺(tái)協(xié)議引擎1708接收記錄流1714并根據(jù)后臺(tái)幼、議引 擎1704產(chǎn)生的回放數(shù)據(jù)結(jié)構(gòu)1706而呈現(xiàn)記錄流1714。
(103) 在一個(gè)實(shí)施例中,后臺(tái)協(xié)議弓摩1704和前臺(tái)協(xié)議弓摩1708各自 接收記錄流1714。在這個(gè)實(shí)施例中,后臺(tái)協(xié)議弓摩1704基本與前臺(tái)協(xié)議弓摩1708 呈現(xiàn)記錄流同時(shí)產(chǎn)生回放數(shù)據(jù)結(jié)構(gòu)。
(104) 在一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎1708位于第一裝置1702上。在 另一個(gè)實(shí)施例上,如圖17中的陰影所示,前臺(tái)協(xié)議引擎1708既不位于第一裝置 1702上也不位于第二裝置1712上。在又一實(shí)施例中,前臺(tái)協(xié)議引擎1708位于 第H^置上。在有些實(shí)施例中,前臺(tái)協(xié)議引擎1708包括后臺(tái)切、議引擎1704。在 其中一些實(shí)施例,后臺(tái)協(xié)議弓摩1102和前臺(tái)協(xié)議弓摩1106位于相同裝置上。在 其中其它實(shí)施例中,后臺(tái)協(xié)議引擎1102和前臺(tái)協(xié)議引擎1106位于不同裝置上。
(105) 在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎在回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)了用于呈 現(xiàn)記錄流中至少一個(gè)分組的至少一條指令。在另一實(shí)施例中,后臺(tái)協(xié)議引擎將元 數(shù)據(jù)存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。在又另一實(shí)施例中,后臺(tái)協(xié)議引擎在回放數(shù)據(jù)結(jié)構(gòu) 中存儲(chǔ)指示呈現(xiàn)記錄會(huì)話中至少一個(gè)分組的時(shí)間的記錄。
(106) 前臺(tái)協(xié)、議引擎1708根據(jù)回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)記錄會(huì)話中的至少一個(gè) 分組。在一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎以可以被人感知的方式將記錄會(huì)話中的至 少一個(gè)分組呈送給一個(gè)緩沖區(qū)。在另一個(gè)實(shí)施例中,前臺(tái)幼議引擎將記錄會(huì)話中 的至少一個(gè)分組呈送給緩沖區(qū)。
(107) 向前參看圖19,所示流程圖描述了在用于所記錄的計(jì)算機(jī)會(huì)話的回放的方法中所采取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),后臺(tái)協(xié)議引擎接收包括多 個(gè)分組的記錄流(步驟1902),這些分組表示由在第二裝置上執(zhí)行的應(yīng)用禾旨 產(chǎn)生的顯示數(shù)據(jù)。后臺(tái)助、議引擎為記錄流中的至少一個(gè)分組決定以可以被人感知
的方式呈現(xiàn)該分組(步驟1904)。后臺(tái)協(xié)議引擎將該決定存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu) 中(步驟1906)。前臺(tái)協(xié)議引擎從記錄流中檢索至少一個(gè)分組(步驟1908), 訪問(wèn)回放數(shù)據(jù)結(jié)構(gòu)(步驟1910),并根據(jù)回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)該至少一個(gè)分組(步 驟1912)。
(108) 在一個(gè)實(shí)施例中,協(xié)議引擎為記錄流中的一個(gè)分組決定以可以被 人感知的方式顯示該分組(步驟1904)。該顯示包括但不限于聽(tīng)覺(jué)、視覺(jué)、觸 覺(jué)或嗅覺(jué)的演示,或者它們的組合。在有些實(shí)施例中,協(xié)議引擎根據(jù)分組的內(nèi)容 決定顯示該分組。在其中一個(gè)實(shí)施例中,協(xié)議引擎根據(jù)具有輸入焦點(diǎn)的應(yīng)用禾, 的指示做決定。在其中另一個(gè)實(shí)施例中,幼、議引擎根據(jù)對(duì)分組中存儲(chǔ)的用戶輸 入類(lèi)型的評(píng)估做決定。在其中一些實(shí)施例中,協(xié)議引擎根據(jù)對(duì)分組中存儲(chǔ)的圖形 更新類(lèi)型的評(píng)估做決定。在其中其它實(shí)施例中,幼議引擎根據(jù)對(duì)分組中存儲(chǔ)的交 互序列類(lèi)型的評(píng)估做決定。在一個(gè)實(shí)施例中,協(xié)議引擎將決定存儲(chǔ)在回放數(shù)據(jù)結(jié) 構(gòu)中(步驟1906)。
(109) 在一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎接收記錄會(huì)話。在其它實(shí)施例中, 前臺(tái)助議引擎檢索會(huì)話。在其中一些實(shí)施例中,前臺(tái)助、議引擎從存儲(chǔ)元件檢索記 錄會(huì)話。
(110) 在一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎從記錄流中檢索至少一個(gè)分組(步
驟190S)。在這個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎隨后訪問(wèn)回放數(shù)據(jù)結(jié)構(gòu)(步驟1910)
并根據(jù)回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)該分組的內(nèi)容(步驟1912)。在有些實(shí)施例中,回放
數(shù)據(jù)結(jié)構(gòu)包含以可感知方式呈現(xiàn)該分組的內(nèi)容的指令。在其中一個(gè)實(shí)施例中,前
臺(tái)協(xié)議引擎將該分組的內(nèi)容呈現(xiàn)在屏幕上。在有些實(shí)施例中,前臺(tái)協(xié)議引擎總是
將該至少一個(gè)分組的內(nèi)容呈送給緩沖區(qū)。在很多實(shí)施例中,當(dāng)前臺(tái)助、議引擎將分
組的內(nèi)容呈送給一個(gè)緩沖區(qū)時(shí),該緩沖區(qū)是離屏緩沖區(qū)。在其中一個(gè)實(shí)施例中,
前臺(tái)協(xié)議引擎按照回放數(shù)據(jù)結(jié)構(gòu)的指引將分組的內(nèi)容呈送給離屏緩沖區(qū)并將分 組內(nèi)容呈現(xiàn)在屏幕上。
(111) 在其它實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)包括不以可感知方式呈現(xiàn)分組內(nèi) 容的指令。在其中一個(gè)實(shí)施例中,在訪問(wèn)回放數(shù)據(jù)結(jié)構(gòu)時(shí),前臺(tái)協(xié)議弓摩不以可 感知方式呈現(xiàn)分組的內(nèi)容,而是將分組內(nèi)容呈送到緩沖區(qū)。
(112) 對(duì)于前臺(tái)協(xié)議弓l擎根據(jù)回放數(shù)據(jù)結(jié)構(gòu)將分組內(nèi)容只呈送到離屏緩沖區(qū)的實(shí)施例,前臺(tái)助議引擎可感知地再生不同于記錄流的顯示數(shù)據(jù)。在一個(gè)實(shí) 施例中,這導(dǎo)致顯示數(shù)據(jù)的表示比原始記錄流要短。在有些實(shí)施例中,所呈現(xiàn)的 分組內(nèi)容提供了原始顯示數(shù)據(jù)的流式再生。在其它實(shí)施例中,所呈現(xiàn)的分組內(nèi)容 提供了顯示數(shù)據(jù)的定制版本。在一個(gè)實(shí)施例中,是否以可感知方式呈現(xiàn)分組內(nèi)容 的決定是基于策略或用戶請(qǐng)求做出的。這些實(shí)施例向用戶提供了對(duì)記錄封舌回放 的控制。
(113) 向前參看圖21,描述了以不包含被去除活動(dòng)的可感知時(shí)間間隔呈 現(xiàn)記錄會(huì)話的一個(gè)實(shí)施例。在這個(gè)圖中,黑框代表包含用戶輸入的分組,虛線框 代表包含圖形命令的分組。由"用戶輸入"和"圖形"箭頭中的白框代表的時(shí)間 間隔沒(méi)有分組也因此根本沒(méi)有活動(dòng)。
(114) 去除沒(méi)有任何活動(dòng)的可感知時(shí)間間隔的方法的一個(gè)實(shí)施例如下。 記錄會(huì)話中的第一分組被識(shí)別出。該記錄會(huì)話包括多個(gè)表示顯示數(shù)據(jù)的分組。與 記錄會(huì)話中的第一分組最近的之前分組作為第二分組被識(shí)別出。確定第一時(shí)間間 隔,該時(shí)間間隔發(fā)生在所述第一分組和所述第二分組。第一時(shí)間間隔超出閾值的 決定被做出。以所述第一分組和所述第二分組之間的第二時(shí)間間隔短于第一時(shí)間 間隔呈現(xiàn)分組的內(nèi)容。
(115) 在一個(gè)實(shí)施例中,協(xié)議引擎做出該決定。在有些實(shí)施例中,協(xié)議
引擎將該決定存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。在一個(gè)實(shí)施例中,相同協(xié)議引擎根據(jù)回放 數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)記錄會(huì)話。在另一實(shí)施例中,做決定的協(xié)議弓i擎包括后臺(tái)協(xié)議弓l擎, 呈現(xiàn)記錄會(huì)話的協(xié)議弓l擎包括前臺(tái)協(xié)議弓摩。
(116) 在一個(gè)實(shí)施例中,當(dāng)協(xié)議弓摩確定該時(shí)間間隔超出閾值時(shí),幼、議
引擎將該時(shí)間間隔歸為可感知的時(shí)間間隔。如果再生的記錄^i刮勺用戶能夠感知 到過(guò)去了一段沒(méi)有活動(dòng)的時(shí)間,該時(shí)間間隔就是可感知的。在有些實(shí)施例中,閾 值由策略決定。在其它實(shí)施例中,助議引擎是用預(yù)定的閾值硬編碼的。在這種 實(shí)施例中,幼議引擎在回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)了指令以呈現(xiàn)第一和第二分組之間的 更短的時(shí)間間隔而不是原始時(shí)間間隔。在另一個(gè)實(shí)施例中,確定時(shí)間間隔超出閾 值的助、議引擎也呈現(xiàn)記錄會(huì)話的內(nèi)容。在這種實(shí)施例中,助、議引擎在回放數(shù)據(jù)結(jié) 構(gòu)中不存儲(chǔ)呈現(xiàn)更短時(shí)間間隔的指令。對(duì)于沒(méi)有被歸類(lèi)為可感知的時(shí)間間隔,不 需要縮短的時(shí)間間隔,原始的時(shí)間間隔被呈現(xiàn)在第一和第二分組之間。
(117) 回過(guò)去看圖20,所示流程圖描述了為產(chǎn)生用于呈現(xiàn)記錄會(huì)話的回 放指令所采取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),識(shí)別出記錄會(huì)話中的分組中存儲(chǔ) 的輸入類(lèi)型(步驟2002),根據(jù)該輸入類(lèi)型標(biāo)記該分組(步驟2004)。隨后根據(jù)該*斜己將呈現(xiàn)該分組內(nèi)容的目的地存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。
(118) 在一個(gè)實(shí)施例中,分組所存儲(chǔ)的輸入類(lèi)型決定了該分組是否將被 呈現(xiàn)。在一個(gè)實(shí)施例中,該分組不包含內(nèi)容。在有些實(shí)施例中,至少一個(gè)分組不 包含內(nèi)容。在這些實(shí)施例中,識(shí)別出包括至少一個(gè)不包含內(nèi)容的分組的時(shí)間間隔。 在其中一些實(shí)施例中,該時(shí)間間隔將不會(huì)被呈現(xiàn)。
(119) 在有些實(shí)施例中,輸入類(lèi)型是指來(lái)自特定類(lèi)型的輸入裝置的輸入, 包括但不限于鍵盤(pán)、鼠標(biāo)、麥克風(fēng)、或攝像頭。在一個(gè)實(shí)施例中,識(shí)別出輸入類(lèi) 型的步驟還包括將輸入類(lèi)型識(shí)別為來(lái)自某種輸入裝置的輸入。在另一個(gè)實(shí)施例 中,識(shí)另咄輸入類(lèi)型的步驟還包括將輸入類(lèi)型識(shí)別為鍵盤(pán)輸入。在其它實(shí)施例中, 輸入類(lèi)型與輸A^置無(wú)關(guān)。在其中一個(gè)實(shí)施例中,輸入類(lèi)型被識(shí)別為命令。
(120) 根據(jù)分組包含的輸入類(lèi)型,^H己包含輸入的該分組(步驟2004)。 在一個(gè)實(shí)施例中,分組被根據(jù)策略進(jìn)行^H己。在這種實(shí)施例中,策略決定導(dǎo)致分 組被標(biāo)己的輸入類(lèi)型。在另一個(gè)實(shí)施例中,不需要任何標(biāo)己。
(121) 根據(jù)標(biāo)記將用于呈現(xiàn)分組的目的地存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中(步驟 2006)。在有些實(shí)施例中,該目的地包括緩沖區(qū)。在一個(gè)實(shí)施例中,指令被存儲(chǔ) 在回放數(shù)據(jù)結(jié)構(gòu)中,指引分組的呈送至緩沖區(qū)。在一個(gè)實(shí)施例中,該緩沖區(qū)是離 屏緩沖區(qū),當(dāng)分組的內(nèi)容被呈送到該緩沖區(qū)時(shí),這些內(nèi)容未能被呈現(xiàn)的用戶所感 知。在一個(gè)實(shí)施例中,指令被存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中,指引被標(biāo)記的分組以可感 知的方式呈現(xiàn)或呈送到緩沖區(qū)。
(122) 在一個(gè)實(shí)施例中,該方法去除了不包含任何有意義活動(dòng)的可感知時(shí) 間間隔。在這個(gè)實(shí)施例中,由策略識(shí)別出特定類(lèi)型的輸入為有意義或無(wú)意義。在 有些實(shí)施例中,該策略可以被硬編碼到協(xié)議引擎中。在其它實(shí)施例中,由管理員 配置該策略。
(123) 在有些實(shí)施例中,如果分組不包含內(nèi)容,協(xié)議引擎就將其識(shí)別為 無(wú)意義的分組。在其中一些實(shí)施例中,這樣的分組表示沒(méi)有要被記錄到記錄流 1714的用戶活動(dòng)發(fā)生的時(shí)間間隔。在這些實(shí)施例中,協(xié)議引擎將目的地存儲(chǔ)在 回放數(shù)據(jù)結(jié)構(gòu)中,該目的地用于以如下方式呈現(xiàn)記錄流中多個(gè)分組中的每一個(gè)分 組,其中任何無(wú)意義分組不會(huì)以可感知的方式呈現(xiàn)。圖22描述了根據(jù)回放數(shù)據(jù) 結(jié)構(gòu)呈現(xiàn)其內(nèi)容的再生的記錄流的一個(gè)實(shí)施例。在這個(gè)實(shí)施例中,根據(jù)回放數(shù)據(jù) 結(jié)構(gòu)的呈現(xiàn)使得能夠去除不包含有意義活動(dòng)的時(shí)間間隔(由圖22中的白色框和 條紋框表示),這些時(shí)間間隔包括那些根本不包含任何活動(dòng)的時(shí)間間隔。這個(gè)呈 現(xiàn)將記錄會(huì)話的更有意義的再生提供給用戶,其中由策略決定何時(shí)其內(nèi)容表示有意義的活動(dòng)。在一個(gè)實(shí)施例中,表示有意義活動(dòng)的內(nèi)容包括用戶輸入的類(lèi)型。
(124) 在有些實(shí)施例中,協(xié)議引擎根據(jù)先前定義的輸入類(lèi)型(包括可證 明的無(wú)意義時(shí)間)識(shí)別出輸入類(lèi)型。在有些實(shí)施例中,無(wú)意義時(shí)間包括其中的分 組不包含任何內(nèi)容的時(shí)間間隔。在其它實(shí)施例中,策略定義輸入類(lèi)型,而輸入類(lèi) 型構(gòu)成無(wú)意義時(shí)間。在又其它實(shí)施例中,包括可證明的無(wú)意義時(shí)間的輸入類(lèi)型的 定義被硬編碼到幼、議引擎中。
(125) 在有些實(shí)施例中,分組的內(nèi)容表示用戶活動(dòng),但策略將該活動(dòng)識(shí) 別為無(wú)意義活動(dòng)。在其中一個(gè)實(shí)施例中,策略將無(wú)意義活動(dòng)定義為再生的記錄會(huì) 話的用戶不感興趣的活動(dòng)。在其中另一個(gè)實(shí)施例中,由策略決定,有意義的分組 包含再生的記錄會(huì)話的用戶感興趣的內(nèi)容。在一個(gè)實(shí)施例中,無(wú)意義分組不具有 有意義地表示與應(yīng)用交互作用的輸入的內(nèi)容。在另一實(shí)施例中,在協(xié)議數(shù)據(jù)流(記 錄流由此創(chuàng)建)中發(fā)送應(yīng)用數(shù)據(jù)的裝置不發(fā)送有意義的屏幕更新。
(126) 在一個(gè)實(shí)施例中,協(xié)議引擎為記錄會(huì)話中的至少一個(gè)分組決定該
分組的內(nèi)容是否包括但不限于如鍵盤(pán)輸入、鼠標(biāo)輸入或命令消息等輸入類(lèi)型。如 果該分組包含例如鍵盤(pán)輸入的輸入類(lèi)型,協(xié)議弓l擎就將該分組標(biāo)記為有意義分 組。如果該分組不包含這樣的輸入類(lèi)型,協(xié)議引擎就將該分組*射己為無(wú)意義的。 在一個(gè)實(shí)施例中,只有在其所有內(nèi)容都無(wú)意義時(shí)該分組才被認(rèn)為是無(wú)意義的。在 另一實(shí)施例中,分組包含多種輸入類(lèi)型,而其中每一種可能被標(biāo)記為有意義或無(wú) 意義。
(127) 在一個(gè)實(shí)施例中,當(dāng)協(xié)議引擎將分組標(biāo)記為無(wú)意義時(shí),協(xié)議引擎 決定該分組的內(nèi)容不應(yīng)該以可感知的方式呈現(xiàn)。在有些實(shí)施例中,協(xié)議引擎反而 決定該分組的內(nèi)容應(yīng)該呈送到緩沖區(qū)。在其中一個(gè)實(shí)施例中,緩沖區(qū)是離屏緩沖 區(qū)。如果分組被標(biāo)記為有意義分組,在一個(gè)實(shí)施例中,協(xié)議引擎決定該分組的內(nèi) 容應(yīng)該以可感知方式呈現(xiàn)。在有些實(shí)施例中,可感知方式包括呈現(xiàn)在屏幕上。在 一個(gè)實(shí)施例中,協(xié)議引擎決定該分組應(yīng)該不僅以可感知方式呈現(xiàn),而且要呈送到 緩沖區(qū)。在這個(gè)實(shí)施例中,該分組的內(nèi)容不僅呈現(xiàn)到屏幕上顯示而且呈送到離屏 緩沖區(qū)。協(xié)議引擎將決定存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。
(128) 在圖22所示的一個(gè)實(shí)施例中,記錄流中的特定分組中具有表示有 意義用戶活動(dòng)的內(nèi)容,在這個(gè)實(shí)施例中指示活動(dòng)鼠標(biāo)按鈕狀態(tài)的鼠標(biāo)輸入由圖 22中的黑框表示。記錄流中的其它分組具有表示指示活動(dòng)鼠標(biāo)按鈕狀態(tài)的鼠標(biāo) 輸入的內(nèi)容,由圖22的條紋框表示。協(xié)議引擎識(shí)別出只包含無(wú)意義活動(dòng)的至少 一個(gè)分組(例如指示不活動(dòng)鼠標(biāo)按鈕狀態(tài)的鼠標(biāo)輸入),并將該分組的內(nèi)容不應(yīng)以可感知方式呈現(xiàn)的決定存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。通過(guò)做出這種決定,根據(jù)回放 數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)記錄流的內(nèi)容的協(xié)議弓l擎只再生與再生的記錄會(huì)話的用戶有關(guān)的 顯示數(shù)據(jù),其中由策略定義相關(guān)性或者協(xié)議弓im括相關(guān)內(nèi)容的定義。
(129) 現(xiàn)在參看圖23,所示流程圖描述了在呈現(xiàn)記錄會(huì)話中為消除沒(méi)有 有意義活動(dòng)的周期而采取的步驟的一個(gè)實(shí)施例。確定第一時(shí)間間隔,該時(shí)間間隔
發(fā)生在記錄會(huì)話中^i己的分組與最近的前一個(gè)^H己的分組之間(步驟2302)。 該記錄會(huì)話包括表示顯示數(shù)據(jù)的多個(gè)分組。做出決定,其中該第一時(shí)間間隔是否 超出閥值(步驟2304)。采用該fei己的分組和最近的前一個(gè)^i己的分組之間的、 短于第一時(shí)間間隔的第二時(shí)間間隔,呈現(xiàn)記錄會(huì)話中的分組的內(nèi)容(步驟2306)。
(130) 在一個(gè)實(shí)施例中,協(xié)議引擎做出決定。在有些實(shí)施例中,協(xié)議引 擎將決定存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。在一個(gè)實(shí)施例中,相同協(xié)議弓摩根據(jù)回放數(shù)據(jù) 結(jié)構(gòu)呈現(xiàn)記錄會(huì)話。在另一實(shí)施例中,做決定的協(xié)議引,括后臺(tái)協(xié)議引擎,而 呈現(xiàn)記錄會(huì)話的協(xié)議弓l擎包括前臺(tái)協(xié)議弓l擎。
(131) 在有些實(shí)施例中,協(xié)議引擎在分組根據(jù)該分組所包含的輸入類(lèi)型 被標(biāo)記為有意義分組之后,做出第一時(shí)間間隔的決定(步驟2302)和第一時(shí)間 間隔是否超過(guò)閥值的決定(步驟2304)。在其中一個(gè)實(shí)施例中,該分組中包含 的輸出類(lèi)型影響著^H己該分組的決定。在一個(gè)實(shí)施例中,幼議引擎確定被標(biāo)記為 有意義的分組和其最近的前一個(gè)有意義的分組之間的時(shí)間間隔,或者如果沒(méi)有前 一個(gè)有意義的分組則確定記錄的開(kāi)始。在另一實(shí)施例中,協(xié)議引擎以標(biāo)記的分組 和前一個(gè)分組之間的第二時(shí)間間隔呈現(xiàn)記錄會(huì)話的內(nèi)容,所述第二時(shí)間間隔包括 短于第一時(shí)間間隔的時(shí)間間隔。在另一實(shí)施例中,協(xié)議引擎以標(biāo)記的分組和跟隨 該豐射己的分組的分組之間的第二時(shí)間間隔呈現(xiàn)記錄會(huì)話的內(nèi)容,所述第二時(shí)間間 隔包括比第一時(shí)間間隔更短的時(shí)間間隔。
(132) 在一個(gè)實(shí)施例中,當(dāng)幼、議引擎確定為時(shí)間間隔超出閥值時(shí)(步驟 2304),協(xié)議引擎將該時(shí)間間隔歸類(lèi)為可感知的時(shí)間間隔。如果再生的記錄會(huì)話 的用戶能夠感知已經(jīng)過(guò)去了一段沒(méi)有活動(dòng)的時(shí)間,則該時(shí)間間隔就是可感知的。 在有些實(shí)施例中,策略決定閥值。在其它實(shí)施例中,助議引擎以預(yù)定閥值被硬編 碼。在這個(gè)實(shí)施例中,協(xié)議引擎在回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)指令以呈現(xiàn)兩個(gè)有意義分 組之間的更短的時(shí)間間隔而不是原始時(shí)間間隔。在另一實(shí)施例中,確定時(shí)間間隔 超出閥值的坊、議引擎還呈現(xiàn)記錄會(huì)話的內(nèi)容。在這個(gè)實(shí)施例中,坊、議引擎不在回 放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)指令以呈現(xiàn)更短的時(shí)間間隔。對(duì)于沒(méi)有被歸為可感知類(lèi)的時(shí)間 間隔,不需要縮短的時(shí)間間隔,在兩個(gè)有意義的分組之間呈現(xiàn)原始的時(shí)間間隔。(133) 在有些實(shí)施例中,記錄流中分組的內(nèi)容表示影響屏幕區(qū)域的圖形 更新。在一個(gè)實(shí)施例中,圖形更新包括但不限于閃爍系統(tǒng)托盤(pán)圖標(biāo)、標(biāo)題欄或任 務(wù)欄項(xiàng)目、閃亮web頁(yè)面或應(yīng)用中的文本、時(shí)間顯示、系統(tǒng)動(dòng)畫(huà)、應(yīng)用動(dòng)畫(huà)和 證券報(bào)價(jià)機(jī)以及其它周期性更新的信息顯示。在有些實(shí)施例中,像這樣的圖形更
新都被確定為x寸記錄流再生的用戶無(wú)意義。在其中一個(gè)實(shí)施例中,協(xié)、議引,括
這個(gè)確定。在其中另一個(gè)實(shí)施例中,策略定義至少一個(gè)圖形更新為無(wú)意義。在這 個(gè)實(shí)施例中,管理員產(chǎn)生策略。在另一實(shí)施例中,記錄流的再生的用戶產(chǎn)生該策 略。
(134) 現(xiàn)在參看圖24,所示流程圖描述了在呈現(xiàn)記錄會(huì)i舌中為消除圖形 更新而采取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),識(shí)別出圖形更新(步驟2402), 確定該圖形更新影響的屏幕區(qū)域(步驟2404)。存儲(chǔ)受影響屏幕區(qū)域的位置和 狀態(tài)指示(步驟2406),識(shí)別出影響該屏幕區(qū)域的狀態(tài)的第二圖形更新(步驟 2408)。然后根據(jù)第二圖形更新是否改變受第一圖形更新影響的區(qū)域而指示呈現(xiàn) 的目的地和用于呈5見(jiàn)的時(shí)間間隔(步驟2410和步驟2412)。
(135) 在一個(gè)實(shí)施例中,協(xié)議引擎完成圖24所示步驟。在這個(gè)實(shí)施例中, 協(xié)議弓l擎識(shí)別出記錄會(huì)話中的分組,所述記錄會(huì)話表示由應(yīng)用程序產(chǎn)生的顯示數(shù) 據(jù),所述分組包含第一圖形更新。協(xié)議引擎確定受該第一圖形更新影響的屏幕區(qū) 域。在一個(gè)實(shí)施例中,圖形更新通過(guò)改,示在部分屏幕上的數(shù)據(jù)而影響該屏幕 區(qū)域。協(xié)議弓l擎在第一圖形更新和該屏幕區(qū)域的位置之后存儲(chǔ)該屏幕區(qū)域的狀態(tài) 指示。在一個(gè)實(shí)施例中,協(xié)議引擎存儲(chǔ)更新后的屏幕區(qū)域的副本。在另一實(shí)施例 中,協(xié)議弓摩存儲(chǔ)更新后的屏幕區(qū)域的散歹値。
(136) 在一個(gè)實(shí)施例中,協(xié)議引擎識(shí)別出在時(shí)間間隔內(nèi)影響屏幕區(qū)域的 第二圖形更新。在有些實(shí)施例中,由策略決定該時(shí)間間隔的長(zhǎng)度。在其中一個(gè)實(shí) 施例中,該策略確定接近由應(yīng)用和操作系統(tǒng)使用的人類(lèi)級(jí)別循環(huán)周期(human scale cyclic period)的上限的時(shí)間間隔。在一個(gè)實(shí)施例中,當(dāng)屏幕的一個(gè)區(qū)ite 被設(shè)計(jì)為由用戶觀看的期間(例如,從有效的幾分之一秒到幾秒)進(jìn)行循環(huán)顯示 時(shí),該顯示包括人類(lèi)級(jí)別循環(huán)周期。在有些實(shí)施例中,協(xié)議引^括對(duì)時(shí)間間隔 長(zhǎng)度的定義。
(137) 在協(xié)議引擎識(shí)別出影響由第一圖形更新影響的屏幕區(qū)域的第二圖 形更新的實(shí)施例中,協(xié)議弓l擎決定該屏幕區(qū)域在第二圖形更新之后的狀態(tài)是否不 同于在第一圖形更新之后的狀態(tài)。如果該屏幕區(qū)域在第二圖形更新之后沒(méi)有變 化,第二圖形更新就不需要在再生的記錄會(huì)話中呈現(xiàn)。這個(gè)實(shí)施例中的屏幕圖形更新不需要呈現(xiàn)是因?yàn)閰f(xié)議引擎決定圖形更新正在進(jìn)行以人類(lèi)級(jí)別速度的繪畫(huà) 命令周期,使得該更新可以由再生的記錄會(huì)i舌的用戶觀察到,但該圖形更新為用 戶帶來(lái)了無(wú)意義的信息。在有些實(shí)施例中,該圖形更新通過(guò)如下但不限于繪畫(huà)、 插入符閃爍、閃爍的任務(wù)欄項(xiàng)目、網(wǎng)絡(luò)活動(dòng)指示符或滾動(dòng)的文本來(lái)影響屏幕區(qū)域。 在有些實(shí)施例中,由策略決定用那種類(lèi)型的圖形更新影響屏幕區(qū)域不構(gòu)成有意義 的活動(dòng)并且不應(yīng)該為用戶呈現(xiàn)在記錄會(huì)話的再生中。在其它實(shí)施例中,協(xié)議引擎 包跪個(gè)決定。
(138) 在一個(gè)實(shí)施例中,根據(jù)屏幕區(qū)域在第二屏幕更新后是否有所變化, 用于呈現(xiàn)包含影響該屏幕區(qū)域的第二圖形更新的第二分組的目的地的指示被存 儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。在另一實(shí)施例中,根據(jù)屏幕區(qū)域的狀態(tài)在第二圖形更新之 后是否不同于該屏幕區(qū)域在第一圖形更新之后的狀態(tài),與包含了影響該屏幕區(qū)士或 的第二圖形更新的第二分組相關(guān)聯(lián)的用于呈現(xiàn)的時(shí)間間隔的指示被存儲(chǔ)在回放 數(shù)據(jù)結(jié)構(gòu)中。
(139) 根據(jù)屏幕區(qū)域的狀態(tài)在第二圖形更新之后是否不同于該屏幕區(qū)域
在第一圖形更新后的狀態(tài),圖25描述了根據(jù)回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)的指示呈現(xiàn)再
生的記錄會(huì)話的一個(gè)實(shí)施例。在一個(gè)實(shí)施例中,受第一圖形更新影響的屏幕區(qū)土或 在第二圖形更新之后沒(méi)有變化。在這個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)了不以可 感知方式呈現(xiàn)第二圖形更新的指示。在一個(gè)實(shí)施例中,不以可感知方式呈現(xiàn)第二
圖形更新包括將第二圖形更新呈現(xiàn)于離屏(off-screen)而不是在屏幕上 (on-screen)。在有些實(shí)施例中,不以可感知方式呈現(xiàn)第二圖形更新包括將第二 圖形更新呈送到離屏緩沖區(qū)。在一個(gè)實(shí)施例中,不以可感知方式呈現(xiàn)第二圖形更 新包括包括不呈現(xiàn)第二圖形更新。在有些實(shí)施例中,不以可感知方式呈現(xiàn)第二圖 形更新的決定包括呈現(xiàn)圖形更新未被呈現(xiàn)的可感知的指示。在其中一個(gè)實(shí)施例 中,再生的記錄會(huì)話的用戶可以請(qǐng)求以可感知的方式呈現(xiàn)第二圖形更新。
(140) 圖25描述了一個(gè)實(shí)施例,其中通過(guò)確定第二圖形更新之后的屏幕 區(qū)域的狀態(tài)相對(duì)于第一圖形更新之后的屏幕區(qū)域的狀態(tài)沒(méi)有變化來(lái)檢測(cè)循環(huán)更 新,并根據(jù)該循環(huán)更新的檢測(cè)而確定沒(méi)有呈現(xiàn)第二圖形更新。在受第二圖形更新 影響的屏幕區(qū)域的狀態(tài)不同于第一圖形更新之后的屏幕區(qū)域的狀態(tài)的實(shí)施例中, 做出決定以用可感知方式呈現(xiàn)分組的內(nèi)容并將其呈送到緩沖區(qū)。
(141) 在有些實(shí)施例中,多個(gè)分組的內(nèi)容表示圖形更新。在其中一個(gè)實(shí) 施例中,根據(jù)屏幕區(qū)域上的超過(guò)兩個(gè)圖形更新的效果做出以可感知方式呈現(xiàn)圖形 更新的決定。在一個(gè)實(shí)施例中,用于呈現(xiàn)圖形更新的目的地的決定響應(yīng)于所識(shí)別的多個(gè)分組中的各個(gè)分組的內(nèi)容所表示的圖形更新。
(142) 在有些實(shí)施例中,記錄流中的分組內(nèi)容表示交互序列。在一個(gè)實(shí)施例中,交互序列包括但不限于登錄序列、注銷(xiāo)序列或者憑證輸入。在有些實(shí)施例中,像這樣的交互序列被確定為對(duì)記錄流再生的用戶沒(méi)有意義。在其中一個(gè)實(shí)
施例中,協(xié)議引ms^個(gè)決定。在另一個(gè)實(shí)施例中,由策略定義至少一個(gè)^S
序列為無(wú)意義。在這個(gè)實(shí)施例中,管理員產(chǎn)生該策略。在另一個(gè)實(shí)施例中,記錄流再生的用戶產(chǎn)生該策略。
(143) 現(xiàn)在參看圖26,所示流程圖描述了在呈現(xiàn)記錄會(huì)話中為了消除交
互序列而采取的步驟的一個(gè)實(shí)施例。根據(jù)策略識(shí)別出至少一個(gè)分組的交互序列的
開(kāi)始(步驟2602)。在回放數(shù)據(jù)結(jié)構(gòu)中有該交互序列應(yīng)該呈現(xiàn)到緩沖區(qū)的指示(步驟2604)。識(shí)別出至少一個(gè)分組的交互序列的結(jié)束(步驟2606)。識(shí)別出在所識(shí)別出的交互序列開(kāi)始之前的分組和識(shí)別出的交互序列結(jié)束之后的分組之間的第一時(shí)間間隔(步驟2608)?;胤轿臄?shù)據(jù)結(jié)構(gòu)包含呈現(xiàn)比第一時(shí)間間隔更短的第二時(shí)間間隔的指令(步驟2610)。
(144) 在一個(gè)實(shí)施例中,協(xié)議引擎做出識(shí)別和指示以消除交互序歹(J。識(shí)別出交互序列的開(kāi)始(步驟2602)。在一個(gè)實(shí)施例中,通過(guò)識(shí)別出可視*射己,識(shí)別出交互序列的開(kāi)始。在一個(gè)實(shí)施例中,可視^i己包括以相同方式顯示給所有會(huì)話的憑證窗口。在另一個(gè)實(shí)施例中,可視t射己包括由空白屏幕接著是桌面背景對(duì)憑證窗口的替換。在一個(gè)實(shí)施例中,可視標(biāo)記包括對(duì)可識(shí)別圖標(biāo)的顯示。
(145) 在有些實(shí)施例中,通過(guò)確定交互序列的開(kāi)始時(shí)間識(shí)別出交互序列的開(kāi)始。在其中一個(gè)實(shí)施例中,由組件檢測(cè)交互序列中事件的開(kāi)始時(shí)間。在其中另一個(gè)實(shí)施例中,該組件檢領(lǐng)噔錄序列的開(kāi)始時(shí)間。在其中其它實(shí)施例中,該組件檢測(cè)注銷(xiāo)序列的開(kāi)始時(shí)間。在一個(gè)實(shí)施例中,對(duì)交互序列的開(kāi)始的識(shí)別,響應(yīng)于以輸入焦點(diǎn)識(shí)別窗口。
(146) 在回放數(shù)據(jù)結(jié)構(gòu)中做出該交互序列應(yīng)該呈送到緩沖區(qū)的指示(步驟2604)。在這個(gè)實(shí)施例中,識(shí)別出的交互序列不應(yīng)以可感知方式呈現(xiàn),該交互序列MM送到緩沖區(qū)。將該^5序列呈送到緩沖區(qū)導(dǎo)致交互序列未能被所要呈現(xiàn)的用戶感知。對(duì)于由策略或用戶將交互序列歸類(lèi)為無(wú)意義的實(shí)施例,這個(gè)呈送導(dǎo)致了無(wú)意義交互序列被去除。
(147) 另外還識(shí)別出交互序列的結(jié)束(步驟2606)。在有些實(shí)施例中,通過(guò)識(shí)另何視標(biāo)記而識(shí)別出交互序列的結(jié)束。在其它實(shí)施例中,通過(guò)確定^S序列的結(jié)束時(shí)間而識(shí)別出交互序列的結(jié)束。在其中一個(gè)實(shí)施例中,某個(gè)組件檢測(cè)出交互序列中事件的結(jié)束時(shí)間。在其中另一個(gè)實(shí)施例中,該組件檢測(cè)出登錄序列的結(jié)束時(shí)間。在其中其它實(shí)施例中,該組件檢測(cè)出注銷(xiāo)序列的結(jié)束時(shí)間。在另一個(gè)實(shí)施例中,對(duì)于交互序列結(jié)束的識(shí)別響應(yīng)于以輸入焦點(diǎn)識(shí)別窗體。
(148) 在有些實(shí)施例中,交互序列包括對(duì)應(yīng)用的使用。在其中一個(gè)實(shí)施例中,由策略識(shí)別出包括對(duì)不應(yīng)以可感知方式呈現(xiàn)的應(yīng)用的i頓的交互序列。在一個(gè)實(shí)施例中,這樣的應(yīng)用包括但不限于word處理文檔。
(149) 在其中一個(gè)實(shí)施例中,通過(guò)識(shí)別出具有輸入焦點(diǎn)的應(yīng)用而識(shí)別出
^i:序列的刑臺(tái)。當(dāng)分組的內(nèi)容表示具有焦點(diǎn)的窗口時(shí),根據(jù)可靠創(chuàng)建該窗口的進(jìn)程的應(yīng)用做出決定。在一個(gè)實(shí)施例中,表示具有焦點(diǎn)的窗口的分組的內(nèi)容包括指示輸入焦點(diǎn)中的變化的窗口通知消息。如果可靠的應(yīng)用識(shí)別出不應(yīng)以可感知方式呈現(xiàn)的交互序列的開(kāi)始,就在回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)將該交互序列呈送到緩沖區(qū)的指示。通過(guò)識(shí)別出與交互序列的應(yīng)用不相關(guān)的進(jìn)程所擁有的窗口對(duì)焦點(diǎn)的捕獲而識(shí)別該M序列的結(jié)束。
(150) 在一個(gè)實(shí)施例中,第一時(shí)間間隔與交互序列相關(guān)聯(lián)。在某種實(shí)施例中以可感知方式呈現(xiàn)與交互序列相關(guān)聯(lián)的時(shí)間間隔而該交互序列自身不進(jìn)行呈現(xiàn),這將導(dǎo)致2寸所要呈現(xiàn)的用戶可感知的一段時(shí)間,在該時(shí)間段內(nèi)沒(méi)有顯示數(shù)據(jù)呈現(xiàn)并且用戶在該交互序列之后呈現(xiàn)分組的內(nèi)容之前等待該時(shí)間間隔的經(jīng)過(guò)。一個(gè)實(shí)施例通過(guò)呈現(xiàn)較短的時(shí)間間隔代替原始的時(shí)間間隔而消除與交互序列相關(guān)聯(lián)的時(shí)間間隔。在這個(gè)實(shí)施例中,識(shí)別出在識(shí)別出的該交互序列的開(kāi)始之前的分組和識(shí)別出的該交互序列的結(jié)束之后的分組之間的第一時(shí)間間隔(步驟2608)?;胤艛?shù)據(jù)結(jié)構(gòu)包含呈現(xiàn)比第一時(shí)間間隔更短的第二時(shí)間間隔的指示(步驟2610)。
(151) 在有些實(shí)施例中,協(xié)議引擎呈現(xiàn)記錄會(huì)話中的分組內(nèi)容,向用戶$|{共記錄會(huì)話的再生。在其中一些實(shí)施例中,協(xié)議引擎自動(dòng)更改呈現(xiàn)至少一個(gè)分組的內(nèi)容之間的時(shí)間間隔,導(dǎo)致了上下文相關(guān)的時(shí)間巻曲的回放。在這些實(shí)施例中,呈現(xiàn)J魏于用戶理解表琉合用戶的顯示數(shù)據(jù)的能力。在一個(gè)實(shí)施例中,當(dāng)被策略所定義時(shí),當(dāng)協(xié)議弓l擎確定分組內(nèi)容所表示的顯示數(shù)據(jù)具有被增加級(jí)別的復(fù)雜度或重要性時(shí),呈現(xiàn)這些分組內(nèi)容之間的時(shí)間間隔增大。在另一個(gè)實(shí)施例中,當(dāng)被策略所定義時(shí),當(dāng)協(xié)議弓l擎確定分組內(nèi)容所表示的顯示數(shù)據(jù)具有被降低級(jí)別的復(fù)雜度或重要性時(shí),呈現(xiàn)這些分組內(nèi)容之間的時(shí)間間隔減小。在這些實(shí)施例中,協(xié)議引擎接近于用戶理解顯示數(shù)據(jù)的能力并且呈現(xiàn)內(nèi)容以或者用更慢的速度給用戶時(shí)間去理解該呈現(xiàn),或者在用戶需要較少的理解時(shí)間時(shí)以更快的速度呈現(xiàn)該內(nèi)容。
(152) 現(xiàn)在參看圖7,所示流程圖描述了在呈現(xiàn)記錄的計(jì)算機(jī)會(huì)話中的自動(dòng)時(shí)間巻曲回放中所采取的步驟的一個(gè)實(shí)施例。協(xié)議引擎接收記錄會(huì)話(步驟2702),該記錄會(huì)話包括多個(gè)分組并表示顯示數(shù)據(jù),該協(xié)議引擎確定對(duì)該記錄會(huì)話中的多個(gè)分組中的至少一些分組所表示的復(fù)雜度的量度(步驟2704)。協(xié)議弓I擎識(shí)別出記錄會(huì)話中的多個(gè)分組中的至少一些分組之間的時(shí)間間隔(步驟2706)并且根據(jù)記錄會(huì)話中的多個(gè)分組中的至少一些分組所表示的復(fù)雜度的量度而修改該時(shí)間間隔(步驟2708)。協(xié)議弓l擎將修改后的時(shí)間間隔存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中(步驟2710),記錄數(shù)據(jù)流根據(jù)該回放數(shù)據(jù)結(jié)構(gòu)而被呈現(xiàn)(步驟2712)。
(153) 在有些實(shí)施例中,確定復(fù)雜度量度、識(shí)別時(shí)間間隔、修改時(shí)間間隔并存儲(chǔ)該修改的坊議引擎是后臺(tái)協(xié)議引擎。在其中一個(gè)實(shí)施例中,后臺(tái)幼、議引擎也呈現(xiàn)記錄流。在其中另一個(gè)實(shí)施例中,前臺(tái)協(xié)議引對(duì)艮據(jù)回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)記錄流。在有些實(shí)施例中,后臺(tái)協(xié)議引擎和前臺(tái)協(xié)議引擎位于相同裝置上。在其它實(shí)施例中,后臺(tái)助議弓l擎和前臺(tái)協(xié)議弓l擎位于不同裝置上。
(154) 在有些實(shí)施例中,協(xié)議引擎確定記錄會(huì)話中多個(gè)分組中的至少一些分組所表示的復(fù)雜度的量度(步驟2704)。在其中一些實(shí)施例中,協(xié)議引擎通過(guò)識(shí)別鍵盤(pán)輸入中的可能的鍵入序列確定復(fù)雜度的量度。在一個(gè)實(shí)施例中,協(xié)議引擎檢查所涉及的至少一種類(lèi)型的鍵以識(shí)別鍵盤(pán)輸入中可能的鍵入序列。在另一個(gè)實(shí)施例中,協(xié)議弓l擎檢査所呈現(xiàn)的至少一個(gè)符號(hào)的序列以完成對(duì)鍵盤(pán)輸入中可能的鍵入序列的啟發(fā)式近似。
(155) 在其中一些實(shí)施例中,協(xié)議引擎存儲(chǔ)由鍵特征確定的鍵分類(lèi)。鍵特征包括但不限于可打印或不可打印字符、空格、導(dǎo)航鍵或功能鍵,并包括特征的組合。在一個(gè)實(shí)施例中,助議引擎確定包括可打印字符和偶爾出現(xiàn)的導(dǎo)航鍵的輸入段構(gòu)成普通輸入,而大部分是不可視鍵的段不構(gòu)成普通輸入。在一個(gè)實(shí)施例中,協(xié)議引擎根據(jù)識(shí)別出的空格數(shù)量確定復(fù)雜度的量度。在這個(gè)實(shí)施例中,協(xié)議弓l,括對(duì)字處理的定義,該定義指示空格鍵在典型鍵入模式中平均大約每5-8個(gè)字符出現(xiàn)一次。
(156) 在一個(gè)實(shí)施例中,協(xié)議引擎使用不可打印字符的出現(xiàn)確定復(fù)雜度的量度。在另一個(gè)實(shí)施例中,協(xié)議引擎訪問(wèn)擊鍵序列以識(shí)別在時(shí)間上緊密出現(xiàn)的
非空格可打印字符的序列。在這個(gè)實(shí)施例中,幼、議引擎包括比較擊鍵序歹訴n字典
以識(shí)別有效單詞并確定與用戶理解有效單詞對(duì)比無(wú)效單詞的能力有關(guān)的復(fù)雜度,的能力。(157) 在另一個(gè)實(shí)施例中,協(xié)議引擎確定分組的內(nèi)容包含命令以呈現(xiàn)字 符。在這種實(shí)施例中,協(xié)議引擎4頓字符確定顯示數(shù)據(jù)是否表^A的用戶活動(dòng)。 在這個(gè)實(shí)施例中,如果字符呈J腿率接近帶有小延遲的鍵盤(pán)輸入速率,有可能是 擊鍵直接導(dǎo)致字符,由此判斷艮可能是用戶正在歡。在一個(gè)實(shí)施例中,幼議引 擎使輸入的鍵與產(chǎn)生的字符相關(guān)聯(lián)。在另一個(gè)實(shí)施例中,助議引擎確定呈現(xiàn)的字 符的空間序列(左至右,右至左)等。在一個(gè)實(shí)施例中,協(xié)議引擎根據(jù)分析多個(gè) 分組內(nèi)容的結(jié)果以及識(shí)別出由這些內(nèi)容表示的模式和活動(dòng)而確定復(fù)雜度的量度。
(158) 在其它實(shí)施例中,協(xié)議弓l擎根據(jù)對(duì)鼠標(biāo)輸入類(lèi)型的識(shí)別確定復(fù)雜 度量度。在一個(gè)實(shí)施例中,協(xié)議引擎確定表示鼠標(biāo)點(diǎn)擊的鼠標(biāo)輸入導(dǎo)致可能需要 更慢的呈現(xiàn)速率以讓用戶理解,尤其是如果該點(diǎn)擊跟在一系列鍵入后面。在另一 個(gè)實(shí)施例中,協(xié)議引擎確定不表示鼠標(biāo)點(diǎn)擊的鼠標(biāo)輸入不會(huì)影響用戶理解顯示 數(shù)據(jù)的能力,因而不會(huì)影響復(fù)雜度的量度。
(159) 在其它實(shí)施例中,協(xié)議引擎根據(jù)識(shí)別出圖形更新復(fù)雜度的啟發(fā)式
近似而確定復(fù)雜度的量度。在一個(gè)實(shí)施例中,協(xié)議引擎確定圖形更新復(fù)雜度的啟 發(fā)式近似根據(jù)(包括但不限于)正在更新的區(qū)域的大小、由圖形命令改變的區(qū)域 面積大小、對(duì)單獨(dú)區(qū)域的更新的歷史頻率、循環(huán)圖形命令、圖形命令的數(shù)量、圖 形命令的頻率、其內(nèi)容中包含圖形命令的相鄰分組之間的時(shí)間間隔或者圖形更新 的類(lèi)型。在協(xié)議引擎識(shí)別出圖形更新的低復(fù)雜度量度的實(shí)施例中,協(xié)議引擎確定 包含該圖形更新的分組所表示的低復(fù)雜度的量度。在另一種協(xié)議引擎識(shí)別出圖形 更新的高復(fù)雜度量度的實(shí)施例中,協(xié)議弓l擎確定包含該圖形更新的分組所表示的
低復(fù)雜度的量度。
(160) 在一個(gè)實(shí)施例中,協(xié)議引擎識(shí)別出記錄會(huì)話中的多個(gè)分組的至少 一些分組之間的時(shí)間間隔(步驟2706)。在這個(gè)實(shí)施例中,協(xié)議引擎根據(jù)確定 的復(fù)雜度量度修改該時(shí)間間隔(步驟2708)。在記錄會(huì)話的多個(gè)分組中至少有 一些分組包含表示與高復(fù)雜度量度相關(guān)聯(lián)的顯示數(shù)據(jù)的內(nèi)容的實(shí)施例中,協(xié)議弓I 擎增加這些分組之間的時(shí)間間隔以讓用戶有增加的呈現(xiàn)時(shí)間理解所呈現(xiàn)的顯示 數(shù)據(jù)。在另一種記錄會(huì)話的多個(gè)分組中至少有一些分組包含表示與低復(fù)雜度量度 相關(guān)聯(lián)的顯示數(shù)據(jù)的實(shí)施例中,幼、議引擎縮短這些分組之間的時(shí)間間隔以反映用 戶理解所呈現(xiàn)的顯示數(shù)據(jù)所需時(shí)間的減少。在一個(gè)實(shí)施例中,用戶需要呈現(xiàn)的分
組內(nèi)容之間與助議弓摩呈現(xiàn)的量不同的時(shí)間量。在這個(gè)實(shí)施例中,用戶修改時(shí)間 間隔以反映用戶理解呈現(xiàn)的顯示數(shù)據(jù)所需的時(shí)間量。在有些實(shí)施例中,協(xié)議引擎 還識(shí)別出多個(gè)分組中的至少一些分組與多個(gè)分組中的其它:5>組之間的時(shí)間間隔,修改在那些分組組之間識(shí)別出的時(shí)間間隔。
(161) 在有些實(shí)施例中,協(xié)議引擎識(shí)別出與記錄會(huì)話中的分組相關(guān)聯(lián)的 第一^H己。在一個(gè)實(shí)施例中,分組包括t^i己。在另一個(gè)實(shí)施例中,記錄^i舌包括 標(biāo)己。
(162) 在一個(gè)實(shí)施例中,呈現(xiàn)顯示數(shù)據(jù)的用戶定義標(biāo)記。在另一個(gè)實(shí)施 例中,協(xié)議引擎定義標(biāo)記。在協(xié)議引擎定義t射己的實(shí)施例中,協(xié)議引擎根據(jù)第一 fei己修改時(shí)間間隔。在一個(gè)實(shí)施例中,幼議引擎增加時(shí)間間隔,該時(shí)間間隔向所 要呈現(xiàn)的用戶掛共更多顯示數(shù)據(jù)時(shí)間以働軍與第一標(biāo)記相關(guān)聯(lián)的分組的內(nèi)容。在 其它實(shí)施例中,協(xié)議引擎識(shí)別出第二個(gè)分組中的第二標(biāo)記。在這個(gè)實(shí)施例中,協(xié) 議弓摩根據(jù)第一t射己和第二^H己之間的距離修改時(shí)間間隔。在這個(gè)實(shí)施例中,協(xié) 議弓摩為理解由^H己的分組的內(nèi)容所表示的顯示數(shù)據(jù)衛(wèi)共更多的時(shí)間,為理解由 未標(biāo)記的分組的內(nèi)容所表示的數(shù)據(jù)提供更少的時(shí)間。在一個(gè)實(shí)施例中,用戶為用 戶感興趣的顯示數(shù)據(jù)定義標(biāo)記,并且協(xié)議弓l擎為用戶感興趣的顯示數(shù)據(jù)呈現(xiàn)客頁(yè)外 的時(shí)間并減少用戶不感興趣的顯示數(shù)據(jù)的呈現(xiàn)時(shí)間,如同由fei己所決定。
(163) 在一個(gè)實(shí)施例中,協(xié)議引擎識(shí)別出記錄會(huì)話中的多個(gè)分組中的至 少一些分組中的第一標(biāo)記,所述^H己指新己錄會(huì)話中的多個(gè)分組中的至少一些分 組中的起始分組。協(xié)議引擎根據(jù)第一標(biāo)記修改時(shí)間間隔。協(xié)議弓摩識(shí)別出記錄會(huì) 話的多個(gè)分組中的至少一些分組中的第二分組中的第二標(biāo)記,所述第二標(biāo)記指示 記錄會(huì)話的多個(gè)分組中至少一些分組中的最后分組,并根據(jù)第一纟示記和第二t示記 之間的時(shí)間間隔修改時(shí)間間隔。
(164) 在一個(gè)實(shí)施例中,協(xié)議弓摩將修改后的時(shí)間間隔存儲(chǔ)在回放數(shù)據(jù) 結(jié)構(gòu)中(步驟2710)并且記錄流根據(jù)回放數(shù)據(jù)結(jié)構(gòu)的內(nèi)容而被呈現(xiàn)(步驟2712)。 在一個(gè)實(shí)施例中,協(xié)議弓l擎還根據(jù)與修改后的時(shí)間間隔有關(guān)的回放數(shù)據(jù)結(jié)構(gòu)指令 呈現(xiàn)記錄流。在另一個(gè)實(shí)施例中,由不同的前臺(tái)協(xié)議弓摩呈現(xiàn)記錄流。
(165) 在有些實(shí)施例中,確定了有應(yīng)用的記錄交互需要增加的呈現(xiàn)時(shí)間 以向所要呈現(xiàn)的用戶提供增加的時(shí)間理解所呈現(xiàn)的顯示數(shù)據(jù)。在其中一些實(shí)施例 中,確定了需要增加的時(shí)間的應(yīng)用包括比不需要增加的時(shí)間的應(yīng)用更重要的應(yīng) 用。在其中一個(gè)實(shí)施例中,用戶做出該決定。在其中另一個(gè)實(shí)施例中,由策略做 出該決定。在其中又另一個(gè)實(shí)施例中,助議引,括對(duì)需要增加的時(shí)間的應(yīng)用的 定義。
(166) 現(xiàn)在參看圖28,所示流程圖描述了在呈現(xiàn)記錄的計(jì)算機(jī)會(huì)話中為 根據(jù)識(shí)別出的應(yīng)用進(jìn)行自動(dòng)時(shí)間巻曲回放而采取的步驟的一個(gè)實(shí)施例。接收包括多個(gè)分組并表示顯示數(shù)據(jù)的記錄會(huì)話(步驟2802)。識(shí)另咄包含表示擁有焦點(diǎn)
的窗口的內(nèi)容的第一分組,所述窗口指示應(yīng)用(步驟2804)。識(shí)別出其內(nèi)容在
呈現(xiàn)第一分組的內(nèi)容之前呈現(xiàn)的第二分組和第三分組(其內(nèi)容在呈現(xiàn)第一分組的
內(nèi)容之后呈現(xiàn))之間的時(shí)間間隔(步驟2806)。根據(jù)戶/f指示的應(yīng)用修改識(shí)別出 的時(shí)間間隔(步驟2808)。根據(jù)該修改呈現(xiàn)記錄流中的至少一個(gè)分組(步驟2810)。
(167) 在一個(gè)實(shí)施例中,協(xié)議引擎接收記錄會(huì)話(步驟2802)。在這個(gè) 實(shí)施例中,協(xié)議引擎還識(shí)別出具有表示擁有焦點(diǎn)的窗口的內(nèi)容的第一分組,戶腿 窗口指示應(yīng)用(步驟2804)。在一個(gè)實(shí)施例中,表示擁有焦點(diǎn)的窗口的分組的 內(nèi)容包括指示輸入焦點(diǎn)中的變化的窗口通知消息。在一個(gè)實(shí)施例中,識(shí)別出其內(nèi) 容在呈現(xiàn)第一分組的內(nèi)容之前呈現(xiàn)的第二分組和第三分組(其內(nèi)容在呈現(xiàn)第一分 組的內(nèi)容之后呈現(xiàn))之間的時(shí)間間隔(步驟2806)。在這個(gè)實(shí)施例中,幼議引 擎識(shí)別出其內(nèi)容在呈現(xiàn)表示擁有焦點(diǎn)的應(yīng)用窗口的內(nèi)容之前呈現(xiàn)的分組,其內(nèi)容 表示擁有焦點(diǎn)的應(yīng)用窗口的分組以及其內(nèi)容表示不再擁有焦點(diǎn)的應(yīng)用窗口的分 組。
(168) 在有些實(shí)施例中,協(xié)議引擎修改擁有焦點(diǎn)的應(yīng)用之前的時(shí)間間隔。 在其它實(shí)施例中,協(xié)議引擎修改擁有焦點(diǎn)的應(yīng)用之后的時(shí)間間隔。在一個(gè)實(shí)施例 中,協(xié)議弓l擎接著確定應(yīng)用窗口在其中擁有焦點(diǎn)的時(shí)間間隔并根據(jù)應(yīng)用類(lèi)型修改 該時(shí)間間隔。在一個(gè)實(shí)施例中,協(xié)議引擎增大識(shí)另咄的時(shí)間間隔。在這個(gè)實(shí)施例 中,協(xié)議弓摩向所要呈現(xiàn)的用戶提供更多時(shí)間以查看該應(yīng)用。在另一個(gè)實(shí)施例中, 助議引擎縮短識(shí)別出的時(shí)間間隔。在這個(gè)實(shí)施例中,協(xié)議引擎向所要呈現(xiàn)的用戶 ^f共更少的時(shí)間以査看該應(yīng)用,以反映對(duì),該應(yīng)用的興趣較少。
(169) 在一個(gè)實(shí)施例中,協(xié)議弓l擎根據(jù)修改呈現(xiàn)記錄流中的至少一個(gè)分 組。在一個(gè)實(shí)施例中,協(xié)議弓I擎將記錄流中的至少一個(gè)分組的內(nèi)容呈送到緩沖區(qū)。 在一個(gè)實(shí)施例中,呈送到緩沖區(qū)并不以可感知的方式呈現(xiàn)分組的內(nèi)容。在另一個(gè) 實(shí)施例中,協(xié)議弓摩不僅將記錄流中至少一個(gè)分組的內(nèi)容呈送到緩沖區(qū),還以可 感知方式呈現(xiàn)。在有些實(shí)施例中,協(xié)議引擎在回放數(shù)據(jù)結(jié)構(gòu)中指示修改后的時(shí)間 娜鬲,不同的協(xié)議弓摩根據(jù)存儲(chǔ)在回放娜結(jié)構(gòu)中的信息呈現(xiàn)記錄射舌。
(170) 現(xiàn)在參看圖29,所示框圖描述了在呈現(xiàn)記錄的計(jì)^m會(huì)話中用于 自動(dòng)時(shí)間巻曲回放的系統(tǒng)的一個(gè)實(shí)施例,該系統(tǒng)包括協(xié)議引擎2902、記錄流 2910、回放數(shù)據(jù)結(jié)構(gòu)2904和顯示器2908。簡(jiǎn)單地說(shuō),協(xié)議引擎2902響應(yīng)接收 記錄流2910而產(chǎn)生回放數(shù)據(jù)結(jié)構(gòu)2904,所述記錄流2910包括多個(gè)分組,所述 協(xié)議引擎2902根據(jù)產(chǎn)生的回放數(shù)據(jù)結(jié)構(gòu)2904呈現(xiàn)記錄流中的至少一個(gè)分組。(171) 在一個(gè)實(shí)施例中,協(xié)議引擎2902包括后臺(tái)協(xié)議引擎和前臺(tái)協(xié)議引
擎。在這個(gè)實(shí)施例中,后臺(tái)協(xié)議弓l擎接收記錄流2910并產(chǎn)生回放數(shù)據(jù)結(jié)構(gòu)2904。 在這個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎接收記錄流2910并根據(jù)產(chǎn)生的回放數(shù)據(jù)結(jié)構(gòu) 2904呈現(xiàn)記錄流中的至少一個(gè)分組。在一個(gè)實(shí)施例中,后臺(tái)幼議引擎和前臺(tái)協(xié) 議引擎位于相同裝置上。在另一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎位于第一裝置上,前 臺(tái)協(xié)議引擎位于第二裝置上。
(172) 在另一個(gè)實(shí)施例中,該系統(tǒng)包括產(chǎn)生回放數(shù)據(jù)結(jié)構(gòu)2904并根據(jù)產(chǎn) 生的回放數(shù)據(jù)結(jié)構(gòu)2904呈現(xiàn)記錄流中的至少一個(gè)分組的單一協(xié)議弓摩2902。
(173) 在一個(gè)實(shí)施例中,協(xié)議引擎2902在回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)至少一個(gè) 用于呈現(xiàn)記錄會(huì)話的指令。在一個(gè)實(shí)施例中,該指令包括對(duì)識(shí)別出的用于呈現(xiàn)記 錄會(huì)話中分組內(nèi)容的時(shí)間間隔的修改。在另一個(gè)實(shí)施例中,協(xié)議引擎將元數(shù)據(jù)存 儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。在這個(gè)實(shí)施例中,元數(shù)據(jù)包括用于呈現(xiàn)分組內(nèi)容的更高級(jí) 的指令。
(174) 在一個(gè)實(shí)施例中,協(xié)議引擎根據(jù)回放數(shù)據(jù)結(jié)構(gòu)的內(nèi)容呈現(xiàn)記錄會(huì) 話中的至少一個(gè)分組的內(nèi)容。在一個(gè)實(shí)施例中,助、議弓摩不僅以可感知方式呈現(xiàn) 記錄會(huì)話中的至少一個(gè)分組而且將其呈送到緩沖區(qū),在另一個(gè)實(shí)施例中,協(xié)議引 擎將記錄會(huì)話中的至少一個(gè)分組呈送到緩沖區(qū)。
(175) 在有些實(shí)施例中,所呈現(xiàn)的分組內(nèi)容提供了原始顯示數(shù)據(jù)的流線 式再生。在其它實(shí)施例中,所呈現(xiàn)的分組內(nèi)容提供了顯示數(shù)據(jù)的定制版本。在一 個(gè)實(shí)施例中,以可感知方式呈現(xiàn)分組內(nèi)容的決定響應(yīng)于策略或用戶請(qǐng)求。這些實(shí) 施例向用戶掛共了對(duì)記錄會(huì)話的呈現(xiàn)的控制。
(176) 現(xiàn)在參看圖30A,所示框圖描述了用于表示層協(xié)議數(shù)據(jù)的記錄和 實(shí)時(shí)回放的系統(tǒng)的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),該系統(tǒng)包括記錄器3010、分發(fā)器3020 和協(xié)議弓l擎502。在表示層協(xié)議數(shù)據(jù)流208從第一裝置106傳輸?shù)降诙b置102 的過(guò)程中,記錄器3010攔截包括多個(gè)分組的表示層協(xié)議數(shù)據(jù)流208,表示層協(xié) 議數(shù)據(jù)流208表示顯示數(shù)據(jù)。分發(fā)器3020發(fā)送表示層協(xié)議數(shù)據(jù)流208的至少一 個(gè)分組的副本。協(xié)議弓l擎502使用與該至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生出 由該至少一個(gè)復(fù)制的分組表示的顯示數(shù)據(jù)。記錄器3010繼續(xù)攔i^表示層協(xié)議數(shù) 據(jù)流,分發(fā)器繼續(xù)發(fā)送來(lái)自表示層協(xié)議數(shù)據(jù)流的分組的副本,直到第一裝置完成 了協(xié)議數(shù)據(jù)流到第二裝置的傳輸。
(177) 現(xiàn)在更詳細(xì)地參看圖30A,在一個(gè)實(shí)施例中,記錄器3010從表示 層協(xié)議棧提取數(shù)據(jù)并緩沖這些數(shù)據(jù)。在另一個(gè)實(shí)施例中,第三裝置3050將數(shù)據(jù)記錄到盤(pán)并對(duì)這些數(shù)據(jù)進(jìn)行編目。在又一個(gè)實(shí)施例中,回放裝置514將會(huì)話記錄 完整或不完整地顯示給用戶。
(178) 在表示層協(xié)議數(shù)據(jù)流208從第一裝置106傳輸?shù)降诙b置102的 過(guò)程中,記錄器3010攔截包括多個(gè)分組的表示層協(xié)議數(shù)據(jù)流208,該表示層協(xié) 議數(shù)據(jù)流208表示顯示數(shù)據(jù)。在一個(gè)實(shí)施例中,第一裝置106是服務(wù)器106,例 如應(yīng)用服務(wù)器。在另一個(gè)實(shí)施例中,第二裝置102是客戶端102。在又一個(gè)實(shí)施 例中,第一裝置106如上結(jié)合圖2所述發(fā)送表示層協(xié)議數(shù)據(jù)流208。在又一個(gè)實(shí) 施例中,表示層協(xié)議數(shù)據(jù)流208是如上結(jié)合圖2所述的協(xié)議數(shù)據(jù)流208。在進(jìn)一 步的實(shí)施例中,記錄器3010是如上結(jié)合圖2所述的記錄器206。在有些實(shí)施例 中,表示層助、議數(shù)據(jù)流208包括一個(gè)或多個(gè)虛擬信道。在其中一個(gè)實(shí)施例中,記 錄器3010攔i^擬信道。
(179) 在一個(gè)實(shí)施例中,記錄器3010位于第一裝置106上。在另一個(gè)實(shí) 施例中,記錄器3010位于第二裝置102上。在又一個(gè)實(shí)施例中,記錄器3010 位于第三裝置3050上。在又一個(gè)實(shí)施例中,記錄器3010位于代理服務(wù)器上。
(180) 在一個(gè)實(shí)施例中,記錄器3010位于直通服務(wù)器上。在另一個(gè)實(shí)施 例中,記錄器3010位于網(wǎng)絡(luò)分組監(jiān)聽(tīng)器上。在又一個(gè)實(shí)施例中,記錄器3010 位于網(wǎng)絡(luò)設(shè)備、應(yīng)用網(wǎng)關(guān)、應(yīng)用加速設(shè)備或其它設(shè)備上。在有些實(shí)施例中,記錄 器3010 {立于與分發(fā)器3020相同的裝置上。
(181) 在結(jié)合圖2所述的記錄器206的有些實(shí)施例中,記錄器攔截協(xié)議 數(shù)據(jù)流208并使用復(fù)制的分組產(chǎn)生記錄的協(xié)議數(shù)據(jù)流。在一個(gè)實(shí)施例中,記錄器 包括用于從表示層協(xié)議數(shù)據(jù)流復(fù)制至少一個(gè)分組的裝置。在另一個(gè)實(shí)施例中,記
錄器包括用于攔i^擬信道的裝置。在又一個(gè)實(shí)施例中,記錄器包括用于基本與
第一裝置發(fā)送表示層協(xié)議數(shù)據(jù)流到第二裝置的同時(shí)攔截表示層t辦議數(shù)據(jù)流的裝 置。在又一個(gè)實(shí)施例中,記錄器包括用于存儲(chǔ)至少一個(gè)分組的緩沖區(qū)。在有些實(shí) 施例中,記錄器包括用于產(chǎn)生表示層幼、議數(shù)據(jù)流或其一部分的記錄的記錄發(fā)生 器。
(182) 在其它實(shí)施例中,如圖30A所示,記錄器3010在表示層協(xié)議數(shù)據(jù) 流208中的附加分組從服務(wù)器106到客戶端102的傳輸期間攔截表示層協(xié)議數(shù)據(jù) 流208并從表示層助、議數(shù)據(jù)流208復(fù)制分組。在其中一個(gè)實(shí)施例中,記錄器3010 在基本與服務(wù)器106發(fā)送表示層協(xié)議數(shù)據(jù)流208到服務(wù)器102的同時(shí)攔截表示層 協(xié)議數(shù)據(jù)流208。在另一個(gè)實(shí)施例中,記錄器3010接收實(shí)時(shí)回放表示層協(xié)議數(shù) 據(jù)流208的請(qǐng)求的指示。在又一個(gè)實(shí)施例中,記錄器3010根據(jù)所接收的實(shí)時(shí)回放的請(qǐng)求指示,從表示層協(xié)議數(shù)據(jù)流208復(fù)制分組并在完成對(duì)表示層協(xié)議數(shù)據(jù)流
208的攔截之前轉(zhuǎn)發(fā)該分組。在又一個(gè)實(shí)施例中,記錄器3010不將攔截到的分 組的傳輸延遲到對(duì)表示層協(xié)議數(shù)據(jù)流208的記錄完成。
(183 )在一個(gè)實(shí)施例中,記錄器3010還包括用于將表示層幼、議數(shù)據(jù)、流208 的至少一個(gè)分組的副本存儲(chǔ)妾瞎儲(chǔ)裝置中的裝置。在有些實(shí)施例中,記錄器3010 在繼續(xù)攔截來(lái)自表示層幼、議數(shù)據(jù)流208的后續(xù)分組的同時(shí)發(fā)送復(fù)制的、攔截的分 組到分發(fā)器3020。
(184)在有些實(shí)施例中,記錄器3010如上結(jié)合圖2所述確定是否復(fù)制分 組。在其它實(shí)施例中,在表示層協(xié)議數(shù)據(jù)流208從服務(wù)器106到客戶端102的傳 輸結(jié)束時(shí),記錄器3010如上結(jié)合圖2所述產(chǎn)生表示層協(xié)議數(shù)據(jù)流208的記錄。
(185 )分發(fā)器3020發(fā)送表示層協(xié)議數(shù)據(jù)流208的至少一個(gè)分組的副本。 在一個(gè)實(shí)施例中,分發(fā)器還包括用于檢索該至少一個(gè)分組的副本的收發(fā)器。在另 一個(gè)實(shí)施例中,分發(fā)器還包括用于將該至少一個(gè)分組的副本發(fā)送至(」協(xié)議引擎的收 發(fā)器。
(186) 現(xiàn)在參看圖30B,所示框圖描述了記錄器3010將多個(gè)分組3030存 儲(chǔ)在存儲(chǔ)裝置218上的一個(gè)實(shí)施例。在這種實(shí)施例中,分發(fā)器3020從存儲(chǔ)裝置 218檢索多個(gè)分組3030并將該多個(gè)分組3030轉(zhuǎn)發(fā)到回放裝置514上的協(xié)議弓摩 502。
(187) 現(xiàn)在參看圖30C,所示框圖描述了一個(gè)實(shí)施例,其中與分發(fā)器3020 通信的記錄器3010將多個(gè)分組3030發(fā)送到協(xié)議引擎502。在有些實(shí)施例中,記 錄器3010從分發(fā)器3020接ij婦寸表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放請(qǐng)求的指示。在其 中一個(gè)實(shí)施例中,根據(jù)接收的實(shí)時(shí)回放請(qǐng)求的指示,記錄器3010直接將多個(gè)分 組3030轉(zhuǎn)發(fā)到協(xié)議引擎502。
(188) 現(xiàn)在參看圖30D,所示框圖描述了記錄器3010將多個(gè)分組330存 儲(chǔ)在存儲(chǔ)裝置218上的一個(gè)實(shí)施例。在這種實(shí)施例中,記錄器3010從存儲(chǔ)裝置 218檢索多個(gè)分組3030并將該多個(gè)分組3030轉(zhuǎn)發(fā)到回放裝置514上的助議弓摩 502。
(189) 現(xiàn)在回過(guò)來(lái)看圖30A,在一個(gè)實(shí)施例中,分發(fā)器3020位于第一裝 置106上。在另一個(gè)實(shí)施例中,分發(fā)器3020位于第二裝置102上。在又一個(gè)實(shí) 施例中,分發(fā)器3020位于第三裝置3050上。在又一個(gè)實(shí)施例中,分發(fā)器3020 位于代理服務(wù)器上。
(190) 在一個(gè)實(shí)施例中,如上結(jié)合圖2所述,分發(fā)器3020是遠(yuǎn)程表示協(xié)、議服務(wù)器引擎204的一部分。在另一個(gè)實(shí)施例中,分發(fā)器3020位于記錄服務(wù)器 上,例如第三裝置3050。在又一個(gè)實(shí)施例中,分發(fā)器3020與記錄器3010通信。
(191) 在一個(gè)實(shí)施例中,分發(fā)器3020位于直通服務(wù)器上。在另一個(gè)實(shí)施 例中,分發(fā)器3020位于網(wǎng)絡(luò)分組監(jiān)聽(tīng)器上。在又一個(gè)實(shí)施例中,分發(fā)器3020 位于網(wǎng)絡(luò)設(shè)備、應(yīng)用網(wǎng)關(guān)、應(yīng)用加速設(shè)備或其它設(shè)備上。在有些實(shí)施例中,分發(fā) 器3020位于與記錄器3010相同的裝置上。
(192) 在有些實(shí)施例中,該系統(tǒng)包括第三裝置3050。在其中一個(gè)實(shí)方包例 中,第H^置3050被稱為日志服務(wù)器。在其中另一個(gè)實(shí)施例中,分發(fā)器3020 位于日志服務(wù)器上。在其中又一個(gè)實(shí)施例中,日志服務(wù)器存儲(chǔ)從攔截的表示層協(xié) 議數(shù)據(jù)流復(fù)制的多個(gè)分組以及表示層協(xié)議數(shù)據(jù)流的記錄。在其中又另一個(gè)實(shí)施例 中,日志服務(wù)器衛(wèi)共用于協(xié)調(diào)對(duì)從攔截的表示層協(xié)議數(shù)據(jù)流復(fù)制的多個(gè)分組的分 發(fā)以及對(duì)從記錄器3010至鵬放裝置的表示層協(xié)議數(shù)據(jù)流的記錄的分發(fā)的功能。
(193) 在有些實(shí)施例中,該系統(tǒng)包括回放裝置514,它提供了上面結(jié)合圖 5所說(shuō)明的回放裝置514的功能。在其它實(shí)施例中,回放裝置514和協(xié)議引擎502 ^f共上面結(jié)合圖5所述的功能,并且除了再生來(lái)自完成的表示層協(xié)議數(shù)據(jù)流的記 錄的顯示數(shù)據(jù)之外,還提供再生與不完整的表示層協(xié)議數(shù)據(jù)流的多個(gè)分組和部分 相關(guān)聯(lián)的顯示數(shù)據(jù)的功能。
(194) 在有些實(shí)施例中,分發(fā)器3020與回放裝置514通信。在其中一個(gè) 實(shí)施例中,分發(fā)器3020提供表示層助、議數(shù)據(jù)流的編目。在另一個(gè)實(shí)施例中,分 發(fā)器3020提供對(duì)可通過(guò)回放裝置514觀看的表示層協(xié)議數(shù)據(jù)流枚舉。在其中又 一個(gè)實(shí)施例中,分發(fā)器3020 ^f共搜索功能,允許回放裝置514搜索特定的表示 層協(xié)議數(shù)據(jù)流。在其中又另一個(gè)實(shí)施例中,分發(fā)器3020將記錄的表示層協(xié)、議數(shù) 據(jù)流發(fā)送到回放裝置514。
(195) 在一個(gè)實(shí)施例中,回放裝置514請(qǐng)求對(duì)可以顯示給回放裝置514 的用戶的表示層協(xié)議數(shù)據(jù)流的枚舉。在另一個(gè)實(shí)施例中,回放裝置514將該請(qǐng)求 發(fā)送到分發(fā)器3020。在又一個(gè)實(shí)施例中,回放裝置514將該請(qǐng)求發(fā)送到記錄服 務(wù)器,例如第三裝置3050。在又一個(gè)實(shí)施例中,回放裝置514包括協(xié)議引擎502。
(196) 在一個(gè)實(shí)施例中,分發(fā)器3020查詢可用表示層協(xié)議數(shù)據(jù)流的編目。 在另一個(gè)實(shí)施例中,分發(fā)器3020根據(jù)接收的請(qǐng)求產(chǎn)生可用表示層協(xié)議數(shù)據(jù)流的 枚舉。在又一個(gè)實(shí)施例中,分發(fā)器3020將可用表示層協(xié)議類(lèi)熝流的枚舉發(fā)送到 回放裝置514。
(197) 在有些實(shí)施例中,該枚舉識(shí)別出完整記錄的表示層協(xié)議數(shù)據(jù)流。在其它實(shí)施例中,該枚舉識(shí)別出記錄器3010尚未對(duì)其完成記錄過(guò)程的表示層協(xié)議 數(shù)據(jù)流。例如,記錄器3010在表示層協(xié)議數(shù)據(jù)流的標(biāo)識(shí)被掛共給回放裝置時(shí)可 能尚未完成向表示層協(xié)議數(shù)據(jù)流添加分組的過(guò)程。在其中一個(gè)實(shí)施例中,記錄器
3010可以在回放裝置514訪問(wèn)已經(jīng)復(fù)制到表示層協(xié)議數(shù)據(jù)流中的分組之后向表 示層協(xié)議數(shù)據(jù)流的多個(gè)復(fù)制的分組中添加額外的分組。在其它實(shí)施例中,在接收 枚舉后,回放裝置514請(qǐng)求仍然在被記錄過(guò)程中的枚舉的表示層協(xié)議數(shù)據(jù)流。
(198) 在一個(gè)實(shí)施例中,記錄器3010攔截包括多個(gè)分組的表示層助、議數(shù) 據(jù)流。在另一個(gè)實(shí)施例中,分發(fā)器3020將至少一個(gè)攔截的分組的副本從表示層 協(xié)議數(shù)據(jù)流發(fā)送到回放裝置514。在又一個(gè)實(shí)施例中,回放裝置514上的協(xié)議引 擎502使用與至少一個(gè)復(fù)制的分組相關(guān)的信息再生由表示層助、議數(shù)據(jù)流表示的 顯示數(shù)據(jù)。在又一個(gè)實(shí)施例中,記錄器3010攔截第二個(gè)分組并且分發(fā)器3020 將第二分組的副本發(fā)送至鵬放裝置514。在進(jìn)一步的實(shí)施例中,回放裝置514使 用與第二復(fù)制的分組相關(guān)的信息再生由協(xié)議數(shù)據(jù)流表示的附加顯示數(shù)據(jù)。在有些 實(shí)施例中,攔截分組并將所攔截分組的副本發(fā)送給回放裝置514顯示的步驟繼續(xù) 直到回放裝置514接收表示層助、議數(shù)據(jù)流中的所有分組。
(199) 在一個(gè)實(shí)施例中,第三裝置3050同時(shí)將很多并發(fā)的表示層幼、議會(huì) 話記錄寫(xiě)入盤(pán),更新目錄數(shù)據(jù)庫(kù)并將文件取出用于回放。在另一個(gè)實(shí)施例中,記 錄器3010位于第三裝置3050上。在又一個(gè)實(shí)施例中,第三裝置3050從記錄器 3010轉(zhuǎn)發(fā)到第H^置3050的表示層協(xié)議數(shù)據(jù)流接收復(fù)制的分組。在有些實(shí)施例 中,第三裝置3050被稱為"日志服務(wù)器"或"記錄服務(wù)器"。
(200) 在一個(gè)實(shí)施例中,為了支持對(duì)任意特定會(huì)話文件的并發(fā)記錄和回 放,文件格式必須支持能夠在文件不完整時(shí)對(duì)其進(jìn)行播放。在有些實(shí)施例中,不 完整的文件(可能由于數(shù)據(jù)丟失或因?yàn)閊i刮乃在進(jìn)行而不完整)總是能夠被播放。 但是,在其中一個(gè)實(shí)施例中,該文件不包含數(shù)字簽名。在其中另一個(gè)實(shí)施例中, 數(shù)字簽名由第三裝置3050在記錄完成時(shí)計(jì)算。在其中又一個(gè)實(shí)施例中,文件格 式被修改以支持下述對(duì)空分組的使用。在又一個(gè)實(shí)施例中,沒(méi)有文件格式修改發(fā) 生。
(201) 在一個(gè)實(shí)施例中,第三裝置3050提供根據(jù)目錄數(shù)據(jù)庫(kù)中包含的數(shù) 據(jù)定位文件的能力。在一個(gè)實(shí)施例中,目錄數(shù)據(jù)庫(kù)中用于*記錄的數(shù)據(jù)庫(kù)條目 被依次更新三次文件被創(chuàng)建時(shí),會(huì)話元數(shù)據(jù)變成已知時(shí)(例如當(dāng)終端用戶已經(jīng) 成功登錄時(shí))和記錄結(jié)束時(shí)。
(202) 在一個(gè)實(shí)施例中,當(dāng)表示層協(xié)議數(shù)據(jù)流開(kāi)始時(shí)文件被創(chuàng)建。在另一個(gè)實(shí)施例中,當(dāng)特權(quán)第三方(例如管理員)請(qǐng)求記錄開(kāi)始時(shí)文件被創(chuàng)建。在有些 實(shí)施例中,當(dāng)包含表示層協(xié)議數(shù)據(jù)流的記錄的第一部分的第一文件超出閥值時(shí), 第一文件關(guān)閉,第二文件被創(chuàng)建,第二文件包含表示層協(xié)議數(shù)據(jù)流的記錄的第二 部分。在其中一個(gè)實(shí)施例中,當(dāng)?shù)谝晃募龃笮∠拗茣r(shí),第一文件超出該閥值。 在其中另一個(gè)實(shí)施例中,當(dāng)?shù)谝晃募鎯?chǔ)了超出對(duì)記錄時(shí)間長(zhǎng)度上柳蹄啲記錄 的一部分時(shí),第一文件超出該閥值。在其中又一個(gè)實(shí)施例中,關(guān)閉存儲(chǔ)了記錄的 第一部分并超出閥值的第一文件以及創(chuàng)建第二文件以存儲(chǔ)記錄的第二部分的過(guò) 程被稱為"翻轉(zhuǎn)"。在其中又一個(gè)實(shí)施例中,正在被記錄的基礎(chǔ)會(huì)話仍然不受影 響,并且在文件轉(zhuǎn)換中記錄數(shù)據(jù)沒(méi)有被丟失。
(203) 在有些實(shí)施例中,當(dāng)其會(huì)話正在被記錄的用戶斷開(kāi)時(shí),記錄結(jié)束。 在其它實(shí)施例中,在"翻轉(zhuǎn)"過(guò)程期間記錄結(jié)束。在其它實(shí)施例中,當(dāng)特權(quán)第三 方(例如管理員)請(qǐng)求記錄結(jié)束時(shí)記錄終止。
(204) 在有些實(shí)施例中,只有已經(jīng)有過(guò)全部三次更新的數(shù)據(jù)庫(kù)記錄會(huì),被 搜索;文件必須是完整的才能被搜索。在其它實(shí)施例中,本發(fā)明的方法和系統(tǒng)允 許不夠所有更新次數(shù)的記錄的搜索。在其中一個(gè)實(shí)施例中,記錄只需要有前兩次 更新就能被搜索。這意味著當(dāng)元數(shù)據(jù)可知時(shí)該文件可用于搜索和在會(huì)話記錄早期 被下載。在其中一些實(shí)施例中,當(dāng)文件被創(chuàng)建時(shí)記錄就是可搜索的。但是,在其 中其它實(shí)施例中,被確定為文件在元數(shù)據(jù)被識(shí)別出之前不可用,因?yàn)榕c該記錄有 關(guān)的信息只有登錄的會(huì)話的值。
(205) 在一個(gè)實(shí)施例中,第三裝置3050足跟宗所有發(fā)送到回放裝置514的 實(shí)況會(huì)話記錄,并且隨著更多的數(shù)據(jù)可用而繼續(xù)將數(shù)據(jù)流傳輸?shù)交胤叛b置514。 在另一個(gè)實(shí)施例中,第三裝置3050掛共鵬宗功能,其也支持用于通知如下戶腿 實(shí)況播放器的表示服務(wù)器的"輪詢"消息。
(206) 在有些實(shí)施例中,在向表示層協(xié)議數(shù)據(jù)流的記錄添加分組的過(guò)程完 成之前發(fā)送表示層協(xié)議數(shù)據(jù)流中的分組的功能使得回放裝置514的用戶能夠在 對(duì)表示層助、議數(shù)據(jù)流的記錄期間觀看由該分組表示的顯示數(shù)據(jù)。在其中一個(gè)實(shí)施 例中,這個(gè)功能使得用戶能夠在顯示數(shù)據(jù)被創(chuàng)建和記錄的同時(shí)實(shí)況觀看顯示數(shù) 據(jù)。在其中另一個(gè)實(shí)施例中,在分組攔截時(shí)間和該分組表示的顯示數(shù)據(jù)的再生時(shí) 間之間可能有延遲。在其中又一個(gè)實(shí)施例中,被再生顯示數(shù)據(jù)的觀眾察覺(jué)不到該 延遲。
(207 )在有些實(shí)施例中,在對(duì)原始表示層助、議數(shù)據(jù)流208的發(fā)送完成之前 的被攔截的分組的發(fā)送使得回放裝置能夠在分組被產(chǎn)生時(shí)顯示它們。在其中一個(gè)實(shí)施例中,這為再生的攔截的分組的觀眾提供了實(shí)時(shí)觀看表示層協(xié)議數(shù)據(jù)流的功 能。在其中另一個(gè)實(shí)施例中,多個(gè)被攔截的分組可以在發(fā)粒前被緩沖。但是, 在其中一些實(shí)施例中,盡管多個(gè)分組被緩沖,它們?cè)诒硎緦佑?、議數(shù)據(jù)流被完全傳 輸之前仍然被發(fā)送到回放裝置,由此提供了實(shí)時(shí)或準(zhǔn)實(shí)時(shí)回放的印象。
(208) 協(xié)議弓摩502使用與至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生由該 至少一個(gè)復(fù)制的分組所表示的顯示數(shù)據(jù)。記錄器3010繼續(xù)攔截表示層協(xié)議數(shù)據(jù) 流,分發(fā)器繼續(xù)發(fā)送來(lái)自表示層協(xié)議數(shù)據(jù)流的分組的副本直至lj第一裝置完成協(xié)議 數(shù)據(jù)流到第二裝置的傳輸。
(209) 現(xiàn)在參看圖31,所示流程圖描述了在用于表示層協(xié)議數(shù)據(jù)流的記 錄和實(shí)時(shí)回放的方法中采取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),在表示層協(xié)議數(shù)據(jù) 流從第一裝置到第二裝置的傳輸期間,記錄器攔截包括多個(gè)分組的表示層助、議數(shù) 據(jù)流,表示層協(xié)議數(shù)據(jù)流表示顯示數(shù)據(jù)(步驟3102)。分發(fā)器發(fā)送表示層協(xié)議 數(shù)據(jù)流的至少一個(gè)分組的副本(步驟3104)。協(xié)議引擎使用與該至少一個(gè)復(fù)制 的分組相關(guān)聯(lián)的信息再生由該至少一個(gè)復(fù)制的分組表示的顯示數(shù)據(jù)(步驟 3106)。攔截表示層協(xié)議數(shù)據(jù)流并發(fā)送其中的至少一個(gè)分組的副本的步驟重復(fù)到 第一裝置完成協(xié)議數(shù)據(jù)流至第二裝置的傳輸(步驟3108)。
(210) 現(xiàn)在更詳細(xì)地參看圖31,在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二 裝置的傳輸期間,記錄器攔截包括多個(gè)分組的表示層協(xié)議數(shù)據(jù)流,表示層協(xié)議數(shù) 據(jù)流表示顯示數(shù)據(jù)(步驟3102)。在一個(gè)實(shí)施例中,記錄器3010在基本與第一 裝置向第二裝置發(fā)送表示層協(xié)議數(shù)據(jù)流的同時(shí)攔截表示層協(xié)議數(shù)據(jù)流。在另一個(gè) 實(shí)施例中,記錄器攔截虛擬信道。
(211) 在有些實(shí)施例中,記錄器3010確定是否如上結(jié)合圖2所述復(fù)制分 組。在其它實(shí)施例中,在表示層協(xié)議數(shù)據(jù)流208從服務(wù)器106到客戶端102的傳 輸結(jié)束時(shí),記錄器3010如上結(jié)合圖2所述產(chǎn)生表示層協(xié)、議數(shù)據(jù)流208的記錄。 在其中一個(gè)實(shí)施例中,記錄器3010存儲(chǔ)表示層協(xié)議數(shù)據(jù)流的記錄。在其它實(shí)施 例中,記錄器3010如上結(jié)合圖2所述將信息關(guān)聯(lián)到復(fù)制的分組或?qū)⑿畔A表 示層協(xié)議數(shù)據(jù)流的所復(fù)制的部分。
(212) 在一個(gè)實(shí)施例中,與第三裝置3050相關(guān)聯(lián)或位于其上的記錄器 3010可以捕獲在虛擬信道上傳輸?shù)母鞣N數(shù)據(jù),并在內(nèi)核模式下從表示層棧捕獲 表示層分組(包括優(yōu)化和加速元數(shù)據(jù)以及鼠標(biāo)和鍵盤(pán)分組)。為了減少發(fā)送很多 小消息到第三裝置3050的計(jì)算和網(wǎng)絡(luò)負(fù)擔(dān),在有些實(shí)施例中,記錄器3010可以 為^^會(huì)話局部緩沖這些數(shù)據(jù)。當(dāng)記錄器3010捕M夠的數(shù)據(jù)以形jt^夠大的消息時(shí),或者當(dāng)超時(shí)周期(分鐘級(jí))期滿時(shí),記錄器3010可以將數(shù)據(jù)轉(zhuǎn)發(fā)到存 儲(chǔ)組件。這種措施為系統(tǒng)衝共了對(duì)資源的高效禾擁。
(213) 盡管有些實(shí)施例因?yàn)樯鲜鲈蚨峁┝松鲜鼍彌_類(lèi)型,但在一個(gè)實(shí) 施例中,支持實(shí)況或時(shí)移回放的方法和系統(tǒng)需要立即將數(shù)據(jù)轉(zhuǎn)發(fā)到回放裝置
514。如果數(shù)據(jù)被攔阻的時(shí)間超出閥值,回放體驗(yàn)將會(huì)受損,因?yàn)榱魇遣贿B續(xù)的 或者不是最新的。l娥可以不規(guī)律的和不頻繁的剛高至噠回放裝置514。有些接 收的數(shù)據(jù)可能已經(jīng)是幾5K中前的。
(214) 在有些實(shí)施例中,系統(tǒng)為所有記錄會(huì)話去除了緩沖功能。但是,對(duì) 于不被實(shí)況或時(shí)移觀看的會(huì)話來(lái)說(shuō),這種做法降低了性能和可擴(kuò)展性并且可能極 大的浪費(fèi)資源,例如對(duì)可用網(wǎng)絡(luò)帶寬的使用。
(215) 在其它實(shí)施例中,對(duì)先前記錄的會(huì)話的回放提供了緩沖功能,但對(duì) 實(shí)際正在被實(shí)況觀看的會(huì)話則沒(méi)有提供。在其中一個(gè)實(shí)施例中,當(dāng)回放裝置514 開(kāi)始實(shí)況會(huì)話的回放時(shí),記錄器3010接收這個(gè)事件的通知并且相應(yīng)地關(guān)閉緩沖 機(jī)制。在其中另一個(gè)實(shí)施例中,當(dāng)回放完成時(shí),表示服務(wù)器上對(duì)后續(xù)會(huì)話的記錄 將回到普通緩沖模式。這種措施意味著可擴(kuò)展性只有在播放器實(shí)際正在播放記錄 時(shí)受影響。這個(gè)影響還只存在于提供會(huì)話的表示服務(wù)器上;群中的其它服務(wù)器不 受影響。
(216) 為了進(jìn)一步保護(hù)可擴(kuò)展性,在另其它實(shí)施例中,對(duì)實(shí)況會(huì)話數(shù)據(jù)的 流傳輸可以被輕微壓制。不是立即發(fā)送所有接收的數(shù)據(jù),而是將數(shù)據(jù)緩沖一段非 常短的時(shí)間。在其中一個(gè)實(shí)施例中,該時(shí)間是預(yù)定的。在其中另一個(gè)實(shí)施例中, 緩沖時(shí)間期間小于一秒。在其中又一個(gè)實(shí)施例中,選擇了 500毫秒,結(jié)果是每秒 只發(fā)送兩個(gè)網(wǎng)絡(luò)消息。
(217) 在一個(gè)實(shí)施例中,這里所說(shuō)明的方法和系統(tǒng)解決了表示層協(xié)議數(shù)據(jù) 會(huì)話的異步性以及會(huì)話中的空閑時(shí)間產(chǎn)生的問(wèn)題。在另一個(gè)實(shí)施例中,當(dāng)會(huì)話空 閑時(shí),沒(méi)有數(shù)據(jù)被/AI艮務(wù)器106流傳輸?shù)娇蛻舳?02,因此沒(méi)有數(shù)據(jù)被攔截、記 錄或轉(zhuǎn)發(fā)以進(jìn)行回放。在又一個(gè)實(shí)施例中,沒(méi)有規(guī)則的數(shù)據(jù)流,回放裝置514 不能確定它是否能夠擴(kuò)展它的時(shí)間線以反映這個(gè)時(shí)間已經(jīng)過(guò)去。當(dāng)過(guò)去某一時(shí)間 的會(huì)話活動(dòng)數(shù)據(jù)到達(dá)時(shí),就出現(xiàn)了一個(gè)通過(guò)斷定已經(jīng)過(guò)去的那段時(shí)間沒(méi)有任何活 動(dòng)并將其反映在對(duì)數(shù)據(jù)流的觀眾的指示中所產(chǎn)生的問(wèn)題。也就是說(shuō),回放裝置 514沒(méi)有接收數(shù)據(jù),斷定沒(méi)有活動(dòng)發(fā)生,向觀眾指示沒(méi)有活動(dòng)發(fā)生,然后在指示 在那個(gè)時(shí)間沒(méi)有活動(dòng)發(fā)生之后顯示反應(yīng)該活動(dòng)在過(guò)去的那個(gè)時(shí)間點(diǎn)沒(méi)有實(shí)際發(fā) 生的數(shù)據(jù)。實(shí)際上,回放裝置514已經(jīng)錯(cuò)誤地假定發(fā)生了 "什么都沒(méi)有"并且已經(jīng)將當(dāng)前播放器幀前進(jìn)得過(guò)遠(yuǎn)。這可能導(dǎo)致記錄會(huì)話的觀眾丟失過(guò)去發(fā)生的活動(dòng) 或者給其帶來(lái)困惑。
(218) 在一個(gè)實(shí)施例中,回放裝置514確定會(huì)話數(shù)據(jù)在過(guò)去的時(shí)間點(diǎn)已經(jīng)
到達(dá),將該瞎況指琉合觀眾,并迫lM眾返回到該^i舌活動(dòng)發(fā)生的時(shí)間點(diǎn)。在有
些實(shí)施例中,這個(gè)解決方案產(chǎn)生了另外的問(wèn)題,包括如果記錄段過(guò)長(zhǎng)時(shí)或者如果
會(huì)話活動(dòng)的類(lèi)型對(duì)觀眾無(wú)足輕重時(shí)的可用性問(wèn)題。
(219) 在另一個(gè)實(shí)施例中,分組被發(fā)送到回放裝置514表示在特定的時(shí)間 點(diǎn)沒(méi)有會(huì)話活動(dòng)發(fā)生并且沒(méi)有會(huì)話數(shù)據(jù)要發(fā)送到回放裝置514。在又一個(gè)實(shí)施例 中, 一種稱為"空分組"的分組類(lèi)型被倉(cāng)犍并發(fā)送到回放裝置514。在又一個(gè)實(shí) 施例中,空分組像所有其它分組一樣保存有時(shí)間戳但不包含ftf可有效載荷。如果 正在被記錄的會(huì)話在它的緩沖時(shí)間段(例如,前面提到的500毫秒的間隔)內(nèi)沒(méi) 有接收任何表示層協(xié)議數(shù)據(jù),記錄器3010將空分組插入流中。在有些實(shí)施例中, 和4頓數(shù)據(jù)緩沖方法一樣,空分組將只在時(shí)移回放有效時(shí)被注入。
(220) 在這些實(shí)施例中,回放裝置514現(xiàn)在接收空分組的穩(wěn)定流并且能夠 安全地?cái)U(kuò)展它的時(shí)間線并允許回放到"已知"空閑時(shí)段中。
(221) 在其中一些實(shí)施例中,空分組的傳輸導(dǎo)致額外的負(fù)擔(dān),例如記錄的 文件的大小會(huì)有少量增長(zhǎng),以及在會(huì)話空閑時(shí)的一些資源使用。但是,在其中一 個(gè)實(shí)施例中,空閑分組的長(zhǎng)度在4到6個(gè)字節(jié)之間(通常是5個(gè)字符)并且每秒 只有2個(gè)空閑分組被發(fā)送。假定為5字節(jié)分組,這等于旨會(huì)話每小時(shí)額外的 36KB。在有些實(shí)施例中,因?yàn)閷?shí)況回放很少發(fā)生,并且與每會(huì)話每小時(shí)2MB 的典型總體數(shù)據(jù)率相比,這個(gè)額外負(fù)擔(dān)可以認(rèn)為無(wú)足輕重。
(222) 在一個(gè)實(shí)施例中,記錄器3010執(zhí)行在表示服務(wù)器上以攔截和記錄 表示層協(xié)議數(shù)據(jù)。在另一個(gè)實(shí)施例中,記錄器3010接收用戶已經(jīng)請(qǐng)求記錄器3010 當(dāng)前正在記錄會(huì)話的時(shí)移回放的指示。在又一個(gè)實(shí)施例中,該指示的接收向記錄 器3010指示它應(yīng)該^ffi提供時(shí)移所需的功能。例如,記錄器3010可以先緩沖用 于發(fā)送的分組直到它接收實(shí)況觀看的通知,然后在接收該指示后切換到減少緩沖 分組的時(shí)間量的模式。在另一個(gè)例子中,記錄器3010不使用上述空分組直到它 接收用戶已經(jīng)請(qǐng)求時(shí)移會(huì)話回放的指示。
(223) 在有些實(shí)施例中,有各種方法可用于通知記錄器3010回放裝置514 正在為觀眾播放會(huì)話,而記錄器3010記錄該會(huì)話。從支持實(shí)況回放會(huì)話的通知 來(lái)說(shuō),它可以被看作不適合在記錄組件所在的旨服務(wù)器上打開(kāi)新的網(wǎng)絡(luò)端口以 支持這個(gè)需求。不是由第三裝置3050 (它知道所有正在被實(shí)況播放的會(huì)話)直接通知^表示服務(wù)器,在有些實(shí)施例中,本發(fā)明的方法和系統(tǒng)實(shí)現(xiàn)了反向輪詢 機(jī)制。^^示服務(wù)器將以統(tǒng)一間隔為當(dāng)前正在被實(shí)況播放的會(huì)i舌列表"豁旬" 第三裝置3050。在其中一些實(shí)施例中,即使l&i旬會(huì)有比異步通知更大的負(fù)擔(dān)和 更慢的響應(yīng),也優(yōu)選這種機(jī)制。
(224) 輪i旬不需要表示服務(wù)器上的監(jiān)聽(tīng)端口 ,但會(huì)產(chǎn)生多久輪i旬一次的問(wèn) 題。在有些實(shí)施例中,j頓較短的間隔以確保能夠及時(shí)切換實(shí)況會(huì)話的緩沖,盡 管該間隔可能影響可擴(kuò)展性。在其它實(shí)施例中,較長(zhǎng)的間隔有較低的資源影響, 但會(huì)導(dǎo)致切換緩沖模式中的延遲。在其它實(shí)施例中,預(yù)定時(shí)間間隔由管理員選擇。 在其它實(shí)施例中,10秒的輪詢間隔提供了短間隔和長(zhǎng)間隔之間的折衷。在其中 一個(gè)實(shí)施例中,輪詢間隔的影響很少能夠被察覺(jué)到,因?yàn)榇蠖鄶?shù)被記錄會(huì)話已經(jīng) 有現(xiàn)有的數(shù)據(jù)用于下載和立即回放。在其中一個(gè)實(shí)施例中,具有可用于立即回放 的現(xiàn)有數(shù)據(jù)給了用戶時(shí)間,以便根據(jù)用戶想要觀看的東西調(diào)整自己。在其中另一 個(gè)實(shí)施例中,輪詢間隔已經(jīng)經(jīng)過(guò)了用戶已經(jīng)完成對(duì)可用數(shù)據(jù)的觀看并請(qǐng)求新近記 錄內(nèi)容的時(shí)間。在其中又一個(gè)實(shí)施例中,用戶在輪詢間隔完成之前完成對(duì)可用內(nèi) 容的觀看,可以設(shè)置短裕旬間隔以4頓戶只需等待幾秒。例如,在裕旬間隔被設(shè) 為10秒的實(shí)施例中,如果用戶想要觀看最新幾分鐘的記錄,用戶只需要等待最 多10秒(平均為5秒)。
(225) 例如,擁有1000個(gè)全部都在有效記錄的表示服務(wù)器的系統(tǒng)等于每 秒鐘必須處理100個(gè)輪詢消息的單個(gè)第三裝置3050。在這樣的實(shí)施例中,考慮 消息較小而且處理^^輪詢消息的影響較低,從系統(tǒng)可擴(kuò)展性角度這是可行的。 在一個(gè)實(shí)施例中,對(duì)^輪詢消息的處理不涉及倒可1/0,復(fù)雜的計(jì)算,線程環(huán) 境切換或進(jìn)程間通信。在另一個(gè)實(shí)施例中,如果需要的話也可以通過(guò)配置提高輪 詢間隔。
(226) 在有些實(shí)施例中,包括"輪詢"消息有多個(gè)目的。在其中一個(gè)實(shí)施 例中,輪詢消息還被用作第三裝置3050的"保持有效"(keep-alive)消息。在 其中另一個(gè)實(shí)施例中,第三裝置3050現(xiàn)在能夠足毀劍那個(gè)表示服務(wù)器正在有效記 錄并且當(dāng)前有多少會(huì)話正在被記錄。
(227) 分發(fā)器發(fā)送表示層協(xié)議數(shù)據(jù)流的至少一個(gè)分組的副本(步驟 3104)。在一個(gè)實(shí)施例中,記錄器存儲(chǔ)表示層協(xié)議數(shù)據(jù)流208的至少一個(gè)分組的 副本。在另一個(gè)實(shí)施例中,記錄器3010發(fā)送至少一個(gè)復(fù)制的分組到分發(fā)器3020。 在又一個(gè)實(shí)施例中,記錄器3010將該至少一個(gè)分組的副本復(fù)制到緩沖區(qū)中。在 又一個(gè)實(shí)施例中,記錄器3010將緩沖區(qū)中存儲(chǔ)的多個(gè)分組發(fā)送到分發(fā)器。(228) 在一個(gè)實(shí)施例中,分發(fā)器3020從存^^置檢索表示層協(xié)議數(shù)據(jù)流 的至少一個(gè)分組的副本。在另一個(gè)實(shí)施例中,分發(fā)器3020從存儲(chǔ)裝置(例如上 面結(jié)合圖2所述存儲(chǔ)裝置218)檢索分組。在又一個(gè)實(shí)施例中,分發(fā)器從記錄器 3010檢索至少一個(gè)分組的副本。
(229) 協(xié)議弓l擎使用與至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生由該至少 一個(gè)復(fù)制的分組所表示的顯示數(shù)據(jù)(步驟3106)。在一個(gè)實(shí)施例中,該至少一 個(gè)復(fù)制的分組在協(xié)議引擎接收它時(shí)被使用。在另一個(gè)實(shí)施例中,該至少一個(gè)分組 在協(xié)議弓l擎接收再生被至少一個(gè)復(fù)制的分組所表示的顯示數(shù)據(jù)的請(qǐng)求時(shí)被使用。
(230) 攔截表示層協(xié)議數(shù)據(jù)流并發(fā)送表示層協(xié)議數(shù)據(jù)流的至少一個(gè)分組 的副本的步驟重復(fù)直到第一裝置完成至第二裝置的協(xié)議數(shù)據(jù)流傳輸(步驟 3108)。在一個(gè)實(shí)施例中,使用與該至少一個(gè)分組相關(guān)聯(lián)的信息的步驟重復(fù)直到 協(xié)議弓l擎已經(jīng)再生了由旨接收的復(fù)制分組表示的顯示數(shù)據(jù)。在其它實(shí)施例中, 協(xié)議引擎只為用戶已經(jīng)明確請(qǐng)求的分組再生顯示數(shù)據(jù)。在其它實(shí)施例中,協(xié)議引 擎在接收啟動(dòng)或停止再生的請(qǐng)求指示之后啟動(dòng)和停止顯示數(shù)據(jù)的再生。
(231) 在有些實(shí)施例中,確保終端用戶不能夠檢測(cè)到他們的會(huì)話正在被記 錄或者被實(shí)況觀看至關(guān)重要。在一個(gè)實(shí)施例中,提供時(shí)移回放特性的方法和系統(tǒng) 避免了檢測(cè)到表示層協(xié)議數(shù)據(jù)流的記錄的任何額外機(jī)會(huì)。
(232) 在一個(gè)實(shí)施例中,表示層協(xié)議會(huì)話的回放不影響表示層協(xié)議狀態(tài)機(jī) 的運(yùn)行。用戶接收的表示層協(xié)、議數(shù)據(jù)流在實(shí)況回放下相同。這也意味著在他們的 記錄中不會(huì)有可見(jiàn)的或者其他可感知的人工產(chǎn)物。
(233) 在終端用戶對(duì)提供其表示會(huì)話的服務(wù)器沒(méi)有管理員權(quán)限的另一個(gè) 實(shí)施例中,沒(méi)有進(jìn)程或可訪問(wèn)的系統(tǒng)對(duì)象向終端用戶指示他們正在被實(shí)況觀看
(甚至被記錄)。在又一個(gè)實(shí)施例中,終端用戶還被限制發(fā)出他或她自己的"輪 詢"消息到第三裝置3050以找出實(shí)況回放會(huì)話的列表。即使對(duì)于本地管理員用 戶,這也^t以做到的,因?yàn)閺倪@個(gè)輪詢消息返回的會(huì)話ID不是終端會(huì)話標(biāo)識(shí) 符。在一個(gè)實(shí)施例中,這包括了由于模糊處理(obfbscation)而帶來(lái)的安全性, 因?yàn)閷⑦@些內(nèi)部會(huì)話標(biāo)識(shí)符日劃頓j終端會(huì)話標(biāo)識(shí)符需要特殊的技能。
(234) 在其它實(shí)施例中,另一種檢觀仿、 跑括觀蔡性能下降的周肌但是, 在其中一個(gè)實(shí)施例中,即便對(duì)于專用于單一用戶的物理機(jī),也難于觀察到性能下 降,因?yàn)樾阅苡绊懛浅]p。在共享的應(yīng)用服務(wù)器上,這也是不可能的。在這些實(shí) 施例中,終端用戶被拒絕訪問(wèn)察看性能計(jì)數(shù)器或類(lèi)似的數(shù)據(jù)相關(guān)性能。
(235) 總之,在有些實(shí)施例中,用于時(shí)移回放的方法禾瞎統(tǒng)確保了只有具有普通用戶權(quán)限的終端用戶檢湖l度況回放的可行方式用于進(jìn)行社會(huì)工程攻擊。
(236) 在一個(gè)實(shí)施例中,回放裝置514發(fā)送搜索請(qǐng)求到第三裝置3050。 在另一個(gè)實(shí)施例中,回放裝置514組件搜索可以顯示給觀眾的會(huì)話枚舉。在有些 實(shí)施例中,該枚舉只包括那些其完整的會(huì)話記錄可用的會(huì)話。在其它實(shí)施例中, 該枚舉只包括其不完整的會(huì)話記錄可用的會(huì)話。在其它實(shí)施例中,枚舉包括被完 整記錄的會(huì)話和不完整記錄的會(huì)話。在其中一個(gè)實(shí)施例中,回放裝置514包括用 于區(qū)分"實(shí)況"記錄和"完整"記錄的功能,并將這個(gè)區(qū)別在搜索結(jié)果列表控件 中告知用戶。在其中另一個(gè)實(shí)施例中,回放裝置514可以周期性地向第三裝置 3050査詢列出的每個(gè)實(shí)況會(huì)話的狀態(tài)更新。在又一個(gè)實(shí)施例中,搜索列表保持 沒(méi)有用戶干預(yù)的更新?tīng)顟B(tài)。
(237) 在一個(gè)實(shí)施例中,回放裝置514的用戶可以選擇記錄數(shù)據(jù)箭邀行觀 看。在另一個(gè)實(shí)施例中,如果該記錄數(shù)據(jù)流包含與記錄器3010仍然正在從表示 層協(xié)議數(shù)據(jù)流記錄分組的會(huì)話相關(guān)的數(shù)據(jù),就創(chuàng)建信道并保持其在打開(kāi)狀態(tài)用于 在有額外的記錄數(shù)據(jù)從記錄器3010可用時(shí)接收它們。在又一個(gè)實(shí)施例中,在數(shù) 據(jù)被第三裝置3050接收時(shí),它將被轉(zhuǎn)發(fā)到回放裝置514以M該信道進(jìn)行處理。 在又一個(gè)實(shí)施例中,如果記錄器3010完成了記錄完整會(huì)話而該會(huì)話正在被實(shí)況 播放,回放裝置514將關(guān)閉該信道并且回放將不間斷地繼續(xù)。
(238) 在有些實(shí)施例中,從提供實(shí)況回放的功會(huì)g會(huì)產(chǎn)生安全相關(guān)的顧慮。 例如,在有些實(shí)施例中,實(shí)況會(huì)話文件不能被加密以保存數(shù)字權(quán)限管理(DRM, digital rights management),并且沒(méi)有任何數(shù)字簽名驗(yàn)i正。為了減輕DRM問(wèn)題, 在其中一些實(shí)施例中,回放裝置514將試圖只從私有存儲(chǔ)器處理實(shí)況記錄。在其 中一個(gè)實(shí)施例中,實(shí)況記錄不被寫(xiě)入本地文件高速緩存并且試圖阻止數(shù)據(jù)被換出 或者相反寫(xiě)入持久存儲(chǔ)裝置。在其中另一種實(shí)施例中,當(dāng)回放裝置514和第三裝 置3050之間的流量被使用強(qiáng)加密密鑰進(jìn)行SSL/TLS時(shí),對(duì)加密轉(zhuǎn)換中的數(shù)據(jù)丟 失不太關(guān)注。在其中其它實(shí)施例中,為了減輕數(shù)字簽名問(wèn)題,在回放開(kāi)始之前, 將向用戶顯示警告消息表明該文件的來(lái)源和內(nèi)容不能被驗(yàn)證。如果用戶想得到了 這個(gè)可靠性聲明,他們就能夠在會(huì)話完成時(shí)重新下載該會(huì)話記錄。在很多實(shí)施例 中,這提供了合理的折衷,因?yàn)閿?shù)字簽名為記錄提供了合法的或司法鑒定
(forensic)的價(jià)值。
(239) 在一個(gè)實(shí)施例中,當(dāng)播放器窗口處于活動(dòng)狀態(tài)時(shí),當(dāng)接收新數(shù)據(jù)時(shí) 拉動(dòng)進(jìn)度條時(shí)間線將被擴(kuò)展并且這個(gè)新內(nèi)容可以立即用于觀看。在有些實(shí)施例 中,回放裝置514特性仍然保留,包括為快速搜索生成關(guān)鍵幀的后臺(tái)處理引擎。掛共了用于圍繞實(shí)況記錄搜索的功能。
(240) 現(xiàn)在參看圖32,所示流程圖描述了用于在遠(yuǎn)程表示層協(xié)議數(shù)據(jù)的 實(shí)時(shí)回放期間進(jìn)行實(shí)時(shí)搜索的方法中所采取的步驟的一個(gè)實(shí)施例。簡(jiǎn)單地說(shuō),前 臺(tái)協(xié)議引擎接收呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分組
的表示層幼、議數(shù)據(jù)流中的分組內(nèi)容的請(qǐng)求(步驟3202)。前臺(tái)協(xié)議引擎識(shí)別出 其相關(guān)時(shí)間戳在所請(qǐng)求的分組的時(shí)間戳之前的狀態(tài)快照(步驟3204)。前臺(tái)幼、 議引擎在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間根據(jù)識(shí)別出的狀 態(tài)快照顯示戶;fi青求的分組(步驟3206)。
(241) 在有些實(shí)施例中,所接收的請(qǐng)求在前臺(tái)助議引擎1106通過(guò)向使用 顯示器的觀眾呈現(xiàn)第一多個(gè)分組中的分組內(nèi)容而再生顯示數(shù)據(jù)并且觀眾希望搜 索至腫寺定的顯示數(shù)據(jù)時(shí)產(chǎn)生。在其它實(shí)施例中,前臺(tái)協(xié)議引擎將狀態(tài)快照和船青 求的分組之間的中間分組的內(nèi)容呈送到緩沖區(qū)。
(242) 如前結(jié)合圖ll所述,在有些實(shí)施例中,呈現(xiàn)的顯示數(shù)據(jù)的接收者 可以實(shí)時(shí)搜索內(nèi)容。但是,在有些實(shí)施例中,如圖32所示,呈現(xiàn)的數(shù)據(jù)的接收 者可以在來(lái)自尚未被完整記錄的表示層協(xié)議數(shù)據(jù)流的分組的表示期間實(shí)時(shí)搜索 內(nèi)容。在其中一種實(shí)施例中,前臺(tái)協(xié)議引擎包括前臺(tái)協(xié)議引擎1106并且如結(jié)合 圖ll所述那樣提供實(shí)時(shí)搜索功能。在其中另一個(gè)實(shí)施例中,前臺(tái)協(xié)議引擎1106 還為部分表示層協(xié)議數(shù)據(jù)流(例如第一多個(gè)接收的分組,它包含了表示層幼、議數(shù) 據(jù)流的子集)的實(shí)時(shí)搜索提供上述功能。在有些實(shí)施例中,前臺(tái)協(xié)議引擎1106 在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間產(chǎn)生已經(jīng)接收的要用顯 示器1108呈現(xiàn)給觀眾的第一多個(gè)分組的實(shí)時(shí)可感知表示。在其它實(shí)施例中,前 臺(tái)幼、議引擎1106 M呈現(xiàn)助、議數(shù)據(jù)流1110中或者多個(gè)接收的分組中的至少一個(gè) 分組的內(nèi)容而產(chǎn)生實(shí)時(shí)可感知表示??筛兄硎究梢园ǖ幌抻讵?dú)立或組合的 聽(tīng)覺(jué)、視覺(jué)、觸覺(jué)或嗅覺(jué)的演示。在其它實(shí)施例中,前臺(tái)協(xié)議引擎1106為第一 多個(gè)分組中的實(shí)時(shí)搜索^iM似于前面結(jié)合圖9所說(shuō)明的在記錄的協(xié)議流中實(shí) 時(shí)搜索的功能。
(243) 如前結(jié)合圖ll所述,在有些實(shí)施例中,狀態(tài)快照通過(guò)存儲(chǔ)呈現(xiàn)表 示層協(xié)議數(shù)據(jù)的協(xié)議弓l擎在記錄器206從表示層協(xié)議數(shù)據(jù)流208復(fù)制至少一個(gè)分 組的時(shí)間點(diǎn)時(shí)的狀態(tài)而使得能夠再生顯示數(shù)據(jù)。在一個(gè)實(shí)施例中,狀態(tài)快照包括 描述那個(gè)時(shí)間點(diǎn)的屏幕狀態(tài)的數(shù)據(jù)結(jié)構(gòu)。
(244) 現(xiàn)在參看圖33,所示流程圖描述了用于產(chǎn)生能夠在包括由后臺(tái)協(xié) 議弓l擎已經(jīng)接收的第一多個(gè)分組和由后臺(tái)協(xié)議弓摩尚待接收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放期間進(jìn)行實(shí)時(shí)搜索的狀態(tài)快照的方法中采取的步 驟的一個(gè)實(shí)施例。后臺(tái)協(xié)議弓l擎在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳 輸期間接收第一多個(gè)分組(步驟3302)。后臺(tái)協(xié)議引擎再生由第一多個(gè)分組表
示的顯示數(shù)據(jù)(步驟3304)。后臺(tái)協(xié)議引擎在呈現(xiàn)第一多個(gè)分組中的至少一個(gè) 分組期間產(chǎn)生至少一個(gè)狀態(tài)快照(步驟3306)。后臺(tái)協(xié)議引擎存儲(chǔ)產(chǎn)生的狀態(tài) 快照(步驟3308)。根據(jù)接收第二多個(gè)分組中的至少一個(gè)分組修改顯示數(shù)據(jù)的 再生和至少一個(gè)狀態(tài)快照(步驟3310)。
(245) 后臺(tái)協(xié)議引擎在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸 期間接收第一多個(gè)分組(步驟3302)。后臺(tái)協(xié)議引擎產(chǎn)生第一多個(gè)分組的表示。 在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎1102 ilil將第一多個(gè)分組的內(nèi)容呈送到緩沖區(qū) 而產(chǎn)生第一多個(gè)分組的表示。在有些實(shí)施例中,該緩沖區(qū)是離屏緩沖區(qū)。
(246) 后臺(tái)協(xié)議引擎產(chǎn)生由第一多個(gè)分組所表示的顯示數(shù)據(jù)(步驟 3304)。在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎通過(guò)將第一多個(gè)分組的內(nèi)容呈送至螺沖 區(qū)而產(chǎn)生顯示數(shù)據(jù)。在有些實(shí)施例中,該緩沖區(qū)是離屏緩沖區(qū)。
(247) 在有些實(shí)施例中,前臺(tái)協(xié)議引擎產(chǎn)生顯示數(shù)據(jù)。在其中一個(gè)實(shí)施例 中,前臺(tái)助、議弓摩1106通過(guò)呈現(xiàn)第一多個(gè)分組的內(nèi)容,基本與后臺(tái)協(xié)議弓摩1102 在它讀取第一多個(gè)分組期間產(chǎn)生至少一個(gè)狀態(tài)快照的同時(shí)產(chǎn)生第一多個(gè)分組的 能夠讓人感知的表示。
(248) 后臺(tái)協(xié)議弓I擎在讀取第一多個(gè)分組中的至少一個(gè)分組期間產(chǎn)生至 少一個(gè)狀態(tài)快照(步驟3306)。在一個(gè)實(shí)施例中,該至少一個(gè)狀態(tài)快照的產(chǎn)生 和第一多個(gè)分組的表示基本上同時(shí)發(fā)生。在另一個(gè)實(shí)施例中,該至少一個(gè)狀態(tài)快 照的產(chǎn)生發(fā)生在后臺(tái)助、議弓l擎順序讀取第一多個(gè)分組期間。
(249) 后臺(tái)協(xié)議引擎存儲(chǔ)產(chǎn)生的狀態(tài)快照(步驟3308)。在后臺(tái)協(xié)議引 擎1102周斯性產(chǎn)生多個(gè)狀態(tài)快照的實(shí)施例中,狀態(tài)快照可以充當(dāng)貫穿第一多個(gè) 分組的^H己,幫助定位第一多個(gè)分組中的特定時(shí)間點(diǎn)以及在狀態(tài)快照1104之前 或之后到達(dá)的分組中的特定時(shí)間點(diǎn)。
(250) 根據(jù)接收第二多個(gè)分組中的至少一個(gè)分組,顯示數(shù)據(jù)的產(chǎn)生和至少 一個(gè)狀態(tài)快照被修改(步驟3310)。在有些實(shí)施例中,后臺(tái)協(xié)議引擎從第二多 個(gè)分組(先前未接收的分組)中檢索分組并將該來(lái)自第二多個(gè)分組的分組存儲(chǔ)在 第一多個(gè)分組中。在其中一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎將新接收的分組和先前接 收的分組一起存儲(chǔ)在緩沖區(qū)中。在其中另一個(gè)實(shí)施例中,對(duì)第一多個(gè)分組的修改 導(dǎo)im產(chǎn)生的顯示數(shù)據(jù)的修改或重新生成,或者附加顯示數(shù)據(jù)的重新生成。在其中又一個(gè)實(shí)施例中,從第二多個(gè)分組添力吩組至'燥一多個(gè)分組導(dǎo)^X寸狀態(tài)快照的 修改或者附加狀態(tài)快照的產(chǎn)生。
(251) 在有些實(shí)施例中,后臺(tái)協(xié)議引擎使用上述為記錄的協(xié)議數(shù)據(jù)流產(chǎn)生 狀態(tài)快照的方法為第一多個(gè)分組產(chǎn)生狀態(tài)快照。在其它實(shí)施例中,前臺(tái)協(xié)議引擎 使用上述再生由記錄的協(xié)議數(shù)據(jù)流中的分組表示的顯示數(shù)據(jù)的方法再生由第一 多個(gè)分組表示的顯示數(shù)據(jù)。
(252) 再來(lái)看圖11,用于在包括已經(jīng)被后臺(tái)協(xié)議弓摩接收的第一多個(gè)分
組和尚待被后臺(tái)幼議弓l擎接收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放
期間進(jìn)行實(shí)時(shí)搜索的系統(tǒng),包括后臺(tái)助、議引擎1102、狀態(tài)快照1104、前臺(tái)協(xié)議 引擎1106和協(xié)議數(shù)據(jù)流1110。
(253) 后臺(tái)協(xié)議引擎在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸 期間接收第一多個(gè)分組。由后臺(tái)協(xié)議引擎產(chǎn)生的狀態(tài)快照包括在記錄器(如記錄 器3010)從表示層協(xié)議數(shù)據(jù)流復(fù)制分組到第一多個(gè)分組中的時(shí)間點(diǎn)呈現(xiàn)該表示 層協(xié)議數(shù)據(jù)流的弓摩的狀態(tài)。前臺(tái)協(xié)議引擎接收第一多個(gè)分組,呈現(xiàn)第一多個(gè)分 組的內(nèi)容,接收搜索由第一多個(gè)分組中的分組內(nèi)容所表示的顯示數(shù)據(jù)的請(qǐng)求,然 后使用狀態(tài)快照呈現(xiàn)表示所請(qǐng)求的顯示數(shù)據(jù)的內(nèi)容。在一個(gè)實(shí)施例中,前臺(tái)協(xié)議 引擎在表示層協(xié)議數(shù)據(jù)流從第一裝置(例如服務(wù)器106)到第二裝置(例如客戶 端102)的傳輸期間,呈現(xiàn)被請(qǐng)求的顯示數(shù)據(jù)。前臺(tái)協(xié)議引擎根據(jù)接收第二多個(gè) 分組中的至少一個(gè)分組更新?tīng)顟B(tài)快照。
(254) 盡管已經(jīng)結(jié)合圖11被描述為完整記錄的協(xié)議數(shù)據(jù)流,但協(xié)議數(shù)據(jù) 流1110在有些實(shí)施例中包括第二協(xié)議數(shù)據(jù)流的一部分。在其中一個(gè)實(shí)施例中, 協(xié)議數(shù)據(jù)流1110是表示顯示數(shù)據(jù)、已經(jīng)有元數(shù)據(jù)與其相關(guān)聯(lián)且其中已經(jīng)嵌入了 附加信息的第一多個(gè)分組。在另一個(gè)實(shí)施例中,在從記錄器206或分發(fā)器3020 接收附加分組時(shí),后臺(tái)幼議引擎將那些分組添加到助、議數(shù)據(jù)流1110。在其中又 一個(gè)實(shí)施例中,圖ll中所述系統(tǒng)提供了在使用協(xié)議數(shù)據(jù)流的一部分實(shí)時(shí)回放期 間進(jìn)行實(shí)時(shí)搜索的功能,其方式基本與該系統(tǒng)在完整記錄的助議數(shù)據(jù)流的回放期 間掛共實(shí)時(shí)搜索功能的方式類(lèi)似。
(255) 現(xiàn)在看圖34,所示流程圖描述了用于狀態(tài)快照的自適應(yīng)生成的方 法中采取的步驟的一個(gè)實(shí)施例。在表示層協(xié)議數(shù)據(jù)流從第一裝置向第二裝置的傳 輸期間,包括被后臺(tái)協(xié)議引擎已經(jīng)接收的第一多個(gè)分組和被后臺(tái)幼、議弓l擎尚待接 收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流的表示被呈現(xiàn)給用戶(步驟3402)。后 臺(tái)協(xié)議引擎在表示期間監(jiān)控用戶的活動(dòng)(步驟3404)。后臺(tái)協(xié)議引擎根據(jù)對(duì)活動(dòng)的監(jiān)控開(kāi)發(fā)出活動(dòng)特征(步驟3406)。后臺(tái)助、議引擎根據(jù)活動(dòng)特征產(chǎn)生至少
一個(gè)狀態(tài)快照(步驟3408)。后臺(tái)協(xié)議引擎根據(jù)在第二多個(gè)分組中接收至少一 個(gè)分組而修改該至少一個(gè)狀態(tài)快照(步驟3410)。
(256) 在有些實(shí)施例中,X刊辦議數(shù)據(jù)的一部分(例如第一多個(gè)分組)^ffl 了前面結(jié)合圖12到15所述的為狀態(tài)快照的自適應(yīng)生成而采取的步驟。
(257) 在表示層幼、議數(shù)據(jù)流從第一裝置向第二裝置的傳輸期間,包括被后 臺(tái)協(xié)議引擎已經(jīng)接收的第一多個(gè)分組和被后臺(tái)協(xié)議弓i擎尚待接收的第二多個(gè)分 組的表示層協(xié)議數(shù)據(jù)流的表示被呈現(xiàn)給用戶(步驟3402)。在一個(gè)實(shí)施例中, 在后臺(tái)協(xié)議弓l擎從第二多個(gè)分組接收分組時(shí),后臺(tái)協(xié)議弓l擎將新接收的分組存儲(chǔ) 在第一多個(gè)分組中。在另一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎繼續(xù)從第二多個(gè)分組接收 分組直到服務(wù)器停止至客戶端的表示層協(xié)議數(shù)據(jù)流傳輸。
(258) 后臺(tái)協(xié)議引擎在表示期間監(jiān)控用戶的活動(dòng)(步驟3404)。在一個(gè) 實(shí)施例中,后臺(tái)協(xié)議引擎1106產(chǎn)生第一多個(gè)分組的表示并用顯示器1108將其呈 現(xiàn)給用戶。在其它實(shí)施例中,后臺(tái)協(xié)議引擎1102產(chǎn)生該表示。在其它實(shí)施例中, 第三裝置產(chǎn)生該表示。在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎在表示會(huì)話的一部分期間
(例如表示由第一多個(gè)分組表示的重新生成的顯示數(shù)據(jù)期間)監(jiān)控用戶的活動(dòng)。
(259) 后臺(tái)助議引擎根據(jù)對(duì)活動(dòng)的監(jiān)控開(kāi)發(fā)出活動(dòng)規(guī)律(步驟3406)。 在有些實(shí)施例中,后臺(tái)協(xié)議引擎1102識(shí)別出用戶的活動(dòng)級(jí)別。在有些實(shí)施例中, 后臺(tái)協(xié)議引擎1102識(shí)別出不活動(dòng)周期。在其它實(shí)施例中,后臺(tái)協(xié)議引擎1102 識(shí)別出顯示數(shù)據(jù)中用戶感興趣的區(qū)域?;顒?dòng)特征可以反映出這些標(biāo)識(shí)。
(260) 后臺(tái)協(xié)議引擎根據(jù)活動(dòng)特征產(chǎn)生至少一個(gè)狀態(tài)快照(步驟3408)。 在有些實(shí)施例中,后臺(tái)協(xié)議引擎1102決定延長(zhǎng)一個(gè)或多個(gè)狀態(tài)快照之間的間隔。 在其它實(shí)施例中,后臺(tái)協(xié)議引擎1102決定縮短一個(gè)或多個(gè)狀態(tài)快照之間的間隔。 在另其它實(shí)施例中,后臺(tái)幼、議弓l擎1102根據(jù)活動(dòng)特征決定去除至少一個(gè)狀態(tài)快 照。在另其它實(shí)施例中,根據(jù)活動(dòng)特征,后臺(tái)協(xié)議引擎1102決定添加至少一個(gè) 狀態(tài)快照。
(261) 后臺(tái)協(xié)議引擎根據(jù)接收第二多個(gè)分組中的至少一個(gè)分組修改至少 一個(gè)狀態(tài)快照(步驟3410)。在有些實(shí)施例中,后臺(tái)協(xié)議引擎根據(jù)接收第二多 個(gè)分組中的至少一個(gè)分組而修改活動(dòng)級(jí)別的標(biāo)識(shí)。在其中一個(gè)實(shí)施例中,第一部 分表示層協(xié)議數(shù)據(jù)流的觀眾在觀看表示層協(xié)議數(shù)據(jù)流的不同部分時(shí)修改他或她 的活動(dòng)級(jí)別。在其中另一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎觀察活動(dòng)級(jí)別中的修改并且 相應(yīng)地修改或者重新生成狀態(tài)快照。(262) 如上所述,圖16概述了上述在用于狀態(tài)快照的自適應(yīng)生成的系統(tǒng)
中所使用的方法的一個(gè)實(shí)施例,該系統(tǒng)包括后臺(tái)協(xié)議引擎1602、前臺(tái)協(xié)議弓摩 1608、協(xié)議數(shù)據(jù)流1612、活動(dòng)特征1604和狀態(tài)快照1606。在另一個(gè)實(shí)施例中, 上述系統(tǒng)還衝共了在表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放期間狀態(tài)快照的自適應(yīng)產(chǎn)生。
(263) 前臺(tái)協(xié)議弓l擎在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸 期間將包括已經(jīng)被后臺(tái)協(xié)議弓l擎接收的第一多個(gè)分組和尚待被后臺(tái)協(xié)議弓摩接 收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流的表示呈現(xiàn)給用戶。后臺(tái)協(xié)議弓l擎在呈現(xiàn) 期間監(jiān)控用戶的活動(dòng)并產(chǎn)生狀態(tài)快照。后臺(tái)助議弓摩決定活動(dòng)特征。后臺(tái)協(xié)議引 擎根據(jù)接收第二多個(gè)分組中的至少一個(gè)分組修改狀態(tài)快照和活動(dòng)特征。
(264) 在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎根據(jù)監(jiān)控決定活動(dòng)特征。在另一個(gè) 實(shí)施例中,后臺(tái)協(xié)議引擎根據(jù)活動(dòng)特征維護(hù)狀態(tài)快照。在又一個(gè)實(shí)施例中,后臺(tái) 協(xié)議引擎根據(jù)觀察至啲活動(dòng)特征變化而更新?tīng)顟B(tài)快照。
(265) 在有些實(shí)施例中,后臺(tái)協(xié)議引擎觀察到對(duì)活動(dòng)特征的修改。在其中 一個(gè)實(shí)施例中,活動(dòng)特征在觀看表示層助議數(shù)據(jù)流的第一部分和觀看表示層協(xié)議 數(shù)據(jù)流的第二部分之間有所變化。在其中另一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎維護(hù)更 新的活動(dòng)特征并相應(yīng)產(chǎn)生新的狀態(tài)快照或者修改已有的狀態(tài)快照。
(266) 如前結(jié)合圖17和18所述,在有些實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)可以用 在記錄的助、議數(shù)據(jù)流的回放中。另外,在有些實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)可以用在 表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放中。在表示層協(xié)議數(shù)據(jù)流的傳輸期間產(chǎn)生用于包括 已經(jīng)被協(xié)議引擎接收的第一多個(gè)分組和尚待被協(xié)議弓l擎接收的第二多個(gè)分組的 表示層協(xié)議數(shù)據(jù)流的回放的回放指令的方法,包括由執(zhí)行在回放裝置上的助、議弓I 擎接收表示由執(zhí)行在服務(wù)器上的應(yīng)用f旨產(chǎn)生的顯示數(shù)據(jù)的第一多個(gè)分組。協(xié)議 引擎為第一多個(gè)分組中的分組進(jìn)行決定以用人可感知的方式呈現(xiàn)該分組的內(nèi)容。 協(xié)議弓l擎將該決定存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。
(267) 在有些實(shí)施例中,協(xié)議引擎根據(jù)該分組的內(nèi)容決定顯示第一多個(gè)分 組中的分組。在其中一個(gè)實(shí)施例中,助議引擎根據(jù)擁有輸入焦點(diǎn)的應(yīng)用程序的指 示做出該決定。在其中另一個(gè)實(shí)施例中,協(xié)議引擎根據(jù)對(duì)該分組中存儲(chǔ)的用戶輸 入類(lèi)型的評(píng)估做出該決定。在其中一些實(shí)施例中,協(xié)議引擎根據(jù)對(duì)由該分組存儲(chǔ) 的圖形更新類(lèi)型的評(píng)估做出該決定。在其中其它實(shí)施例中,助、議引擎根據(jù)對(duì)由該 分組存儲(chǔ)的交互序列類(lèi)型的評(píng)估做出該決定。
(268) 在有些實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)描述了如何再生第一多個(gè)分組中包 含的顯示數(shù)據(jù)。在一個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)的指令控制著呈現(xiàn)顯示數(shù)據(jù)的過(guò)程。在一個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)包括用于呈現(xiàn)第一多個(gè)分組中的分組 內(nèi)容的時(shí)間。在這個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)中包含的時(shí)間被用于呈現(xiàn)分組內(nèi)容, 而不是與第一多個(gè)分組中的分組相關(guān)聯(lián)的呈現(xiàn)時(shí)間(如果有的話)。在一個(gè)實(shí)施 例中,回放數(shù)據(jù)結(jié)構(gòu)在改變呈現(xiàn)時(shí)間中接受用戶輸入。
(269) 在其它實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)包含描述如何進(jìn)行第一多個(gè)分組的 一次或多次回放的元數(shù)據(jù)。在一個(gè)實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)包括針對(duì)第一多個(gè)分 組中的每個(gè)分組的記錄,表示相應(yīng)分組的內(nèi)容在回放期間應(yīng)該在什么相對(duì)時(shí)間點(diǎn) 被呈現(xiàn)。在有些實(shí)施例中,元數(shù)據(jù)還包含分組開(kāi)始在文件中的偏移量。
(270) 在有些實(shí)施例中,隨著后臺(tái)協(xié)議引擎接收表示層協(xié)議數(shù)據(jù)流中的附
加分組,后臺(tái)協(xié)議弓l擎產(chǎn)生附加回放數(shù)據(jù)結(jié)構(gòu)或修改已有的回放數(shù)據(jù)結(jié)構(gòu)。
(271) 在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎執(zhí)行在回放裝置上,并響應(yīng)于接收
第一多個(gè)分組產(chǎn)生回放數(shù)據(jù)結(jié)構(gòu),所述第一多個(gè)分組表示由執(zhí)行在服務(wù)器上的應(yīng) 用程序產(chǎn)生的顯示數(shù)據(jù)。前臺(tái)協(xié)議引擎接收第一多個(gè)分組,并且根據(jù)后臺(tái)協(xié)議引 擎基本上在接收第二多個(gè)分組中的至少一個(gè)分組并根據(jù)接收的第二多個(gè)分組中 的至少一個(gè)分組產(chǎn)生回放數(shù)據(jù)結(jié)構(gòu)的同時(shí)產(chǎn)生的回放數(shù)據(jù)結(jié)構(gòu),呈現(xiàn)第一多個(gè)分 組。另一方面,前臺(tái)協(xié)議引擎接收第一多個(gè)分組,并且根據(jù)后臺(tái)協(xié)議引擎基本上 在接收第一多個(gè)分組中的第二分組并根據(jù)接收的第一多個(gè)分組中的第二分組產(chǎn) 生回放數(shù)據(jù)結(jié)構(gòu)的同時(shí)產(chǎn)生的回放數(shù)據(jù)結(jié)構(gòu),呈現(xiàn)第一多個(gè)分組。
(272) 在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎和前臺(tái)助議引擎各自接收第一多個(gè) 分組。在另一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎基本與前臺(tái)協(xié)議弓l擎呈現(xiàn)第一多個(gè)分組 的同時(shí)產(chǎn)生回放數(shù)據(jù)結(jié)構(gòu)。
(273) 在一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎在回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)至少一條用 于呈現(xiàn)第一多個(gè)分組中的至少一個(gè)分組的指令。在另一個(gè)實(shí)施例中,后臺(tái)協(xié)議引 擎將元數(shù)據(jù)存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。在又一個(gè)實(shí)施例中,后臺(tái)協(xié)議引擎在回放數(shù) 據(jù)結(jié)構(gòu)中存儲(chǔ)表示呈現(xiàn)第一多個(gè)分組中的至少一個(gè)分組的時(shí)間的記錄。
(274) 前臺(tái)協(xié)議引擎根據(jù)回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)第一多個(gè)分組中的至少一個(gè) 分組。在一個(gè)實(shí)施例中,前臺(tái)協(xié)議弓摩不僅以可以為人感知的方式呈現(xiàn)第一多個(gè) 分組中的至少一個(gè)分組,而且還將其呈送到緩沖區(qū)。在另一個(gè)實(shí)施例中,前臺(tái)協(xié) 議引擎將第一多個(gè)分組中的至少一個(gè)分組呈送到緩沖區(qū)。
(275) 在一個(gè)實(shí)施例中,后臺(tái)助、議引擎在由服務(wù)器將表示層幼、議數(shù)據(jù)流傳 輸?shù)娇蛻舳说钠陂g,接收表示由執(zhí)行在服務(wù)器上的應(yīng)用禾ii^產(chǎn)生的顯示數(shù)據(jù)的第 一多個(gè)分組。后臺(tái)協(xié)議弓摩為第一多個(gè)分組中的至少一個(gè)分組進(jìn)行決定以用人可感知的方式呈現(xiàn)該分組。后臺(tái)協(xié)議引擎將該決定存儲(chǔ)在回方夂數(shù)據(jù)結(jié)構(gòu)中。前臺(tái)協(xié) 議引擎從第一多個(gè)分組中檢索至少一個(gè)分組,訪問(wèn)回放數(shù)據(jù)結(jié)構(gòu),并根據(jù)回放數(shù)
據(jù)結(jié)構(gòu)呈現(xiàn)該至少一個(gè)分組。這些步驟重d:到服務(wù)器完成了表示層協(xié)議數(shù)據(jù)流
的傳輸。在一個(gè)實(shí)施例中,服務(wù)器在表示層協(xié)議數(shù)據(jù)流的傳輸完成之前停止表示 層協(xié)議數(shù)據(jù)流的傳輸。在另一個(gè)實(shí)施例中,當(dāng)表示層協(xié)議數(shù)據(jù)流中的第二多個(gè)分 組l則艮務(wù)器產(chǎn)生和發(fā)送時(shí),表示層協(xié)議數(shù)據(jù)流中的第一多個(gè)分組被攔截并且第一 多個(gè)分組的實(shí)時(shí)回放發(fā)生。
(276) 在有些實(shí)施例中,后臺(tái)協(xié)議引擎決定顯示第一多個(gè)分組中的分組并 如前結(jié)合圖19所述產(chǎn)生相應(yīng)的回放數(shù)據(jù)結(jié)構(gòu)。在其它實(shí)施例中,前臺(tái)協(xié)議引擎 根據(jù)如前結(jié)合圖19所述的回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)第一多個(gè)分組中的分組內(nèi)容。
(277) 回過(guò)去看圖21,表示層協(xié)議數(shù)據(jù)流可以被呈現(xiàn)而沒(méi)有不包含任何 活動(dòng)的可感知的時(shí)間間隔。在有些實(shí)施例中,如前結(jié)合圖21所述,表示層協(xié)議 數(shù)據(jù)流的完整記錄MM現(xiàn)。但是,在其它實(shí)施例中,上述方法可以用來(lái)呈現(xiàn)未完 整記錄的表示層協(xié)議數(shù)據(jù)流的一部分。
(278) 在呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分組 的表示層協(xié)議數(shù)據(jù)流中消除不活動(dòng)期間的方法,包括識(shí)別第一多個(gè)分組中的第一 分組的步驟,所述第一多個(gè)分組表示顯示數(shù)據(jù)。第一多個(gè)分組中的第二分組被識(shí) 別出,戶萬(wàn)述第二分組緊接在第一分組之前。決定第一分組和第二分組之間的第一 時(shí)間間隔。第一時(shí)間間隔超出閥值被決定。在協(xié)議數(shù)據(jù)流從服務(wù)器到客戶端的傳 輸過(guò)程中,第一多個(gè)分組的內(nèi)容被以第一分組和第二分組之間的第二時(shí)間間隔呈 現(xiàn),所述第二時(shí)間間隔包含比第一時(shí)間間隔短的時(shí)間間隔。接收第二多個(gè)分組中 的至少一個(gè)分組。
(279) 在一個(gè)實(shí)施例中,第二多個(gè)分組中的至少一個(gè)分組在被接收時(shí)被添 加到第一多個(gè)分組。為所接收的第二多個(gè)分組中的至少一個(gè)分組,重復(fù)識(shí)別第一 分組和第一分組之前的第二分組和決定它們兩個(gè)之間的時(shí)間間隔是否超出閥值 的步驟。在另一個(gè)實(shí)施例中,為第一多個(gè)分組中的第二分組,重復(fù)識(shí)別第一分組 和第一分組之前的第二分組和決定它們兩個(gè)之間的時(shí)間間隔是否超出閥值的步 驟。在有些實(shí)施例中,前面結(jié)合圖21所述的方法被用來(lái)從表示層協(xié)議數(shù)據(jù)流的 一部分(例如第一多個(gè)分組)消除沒(méi)有活動(dòng)的可感知的時(shí)間間隔。
(280) 產(chǎn)生用于呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多 個(gè)分組的表示層協(xié)議數(shù)據(jù)流的回放的回放指令的方法,包括識(shí)別由表示應(yīng)用程序 產(chǎn)生的顯示數(shù)據(jù)的第一多個(gè)分組中的分組存儲(chǔ)的輸入類(lèi)型的步驟。響應(yīng)于該輸入類(lèi)型,分組被^"i己。回放數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)了根據(jù)標(biāo)記呈現(xiàn)分組內(nèi)容的目的地。第二 多個(gè)分組中的至少一個(gè)分組被接收。在一個(gè)實(shí)施例中,第二多個(gè)分組中的至少一 個(gè)分組在接收之后被添加到第一多個(gè)分組。第一多個(gè)分組中的第二分組被接收。 重復(fù)識(shí)別由分組存儲(chǔ)的輸入類(lèi)型、根據(jù)輸入類(lèi)型標(biāo)記分組、在回放數(shù)據(jù)結(jié)構(gòu)中存 儲(chǔ)呈現(xiàn)目的地并接收附加分組的步驟作為新分組被接收,直到服務(wù)器完成對(duì)表示 層協(xié)議數(shù)據(jù)流的傳輸。
(281) 在一個(gè)實(shí)施例中,由分組存儲(chǔ)的輸入類(lèi)型決定該分組是否將被呈 現(xiàn)。在一個(gè)實(shí)施例中,分組不包含任何內(nèi)容。在有些實(shí)施例中,至少一個(gè)分組不 包含任何內(nèi)容。在這些實(shí)施例中,包括至少一個(gè)不包含任何內(nèi)容的分組的時(shí)間間 隔被識(shí)別出。在其中一些實(shí)施例中,該時(shí)間間隔將不會(huì)被呈現(xiàn)。在其中一個(gè)實(shí)施
例中,如前結(jié)合圖30A-D和圖31所說(shuō)明的空分組類(lèi)型被接收并被標(biāo)識(shí)為不包含
{封可數(shù)據(jù)的分組。
(282) 在有些實(shí)施例中,輸入類(lèi)型指來(lái)自特定類(lèi)型的輸A^置的輸入,包 括但不限 盤(pán)、鼠標(biāo)、麥克風(fēng)或攝像頭。在一個(gè)實(shí)施例中,識(shí)別輸入類(lèi)型的步 驟還包括將輸入類(lèi)型識(shí)別為來(lái)自輸A^置的輸入。在另一個(gè)實(shí)施例中,識(shí)別輸入 類(lèi)型的步驟還包括將輸入類(lèi)型識(shí)別為鍵盤(pán)輸入。在其它實(shí)施例中,輸入類(lèi)型與輸 入裝置無(wú)關(guān)。在其中一種實(shí)施例中,輸入類(lèi)型被識(shí)別為命令。
(283) 在一個(gè)實(shí)施例中,該方法消除了不包含ftj可有意義活動(dòng)的可感知的 時(shí)間間隔。在這個(gè)實(shí)施例中,由策略將特定類(lèi)型的輸入識(shí)別為有意義或無(wú)意義。 在有些實(shí)施例中,策略可以被硬編碼到協(xié)議引擎。在其它實(shí)施例中,管理員配置 該朿略°
(284) 在有些實(shí)施例中,如果分組不包含ftj可內(nèi)容,幼、議引擎就將該分組 識(shí)別為無(wú)意義。在其中一些實(shí)施例中,該分組表示沒(méi)有任何用戶活動(dòng)發(fā)生而要被 記錄至U第一多個(gè)分組中的分組中的時(shí)間間隔。在其中一個(gè)實(shí)施例中,協(xié)議引擎在 回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)以任何無(wú)意義分組不以可感知方式呈現(xiàn)的方式呈現(xiàn)第一多 個(gè)分組中的各個(gè)分組的目的地。在另一個(gè)實(shí)施例中,協(xié)議引擎可以產(chǎn)生過(guò)去的時(shí) 間沒(méi)有活動(dòng)的指示。例如,表示給觀眾的表示層協(xié)議數(shù)據(jù)流的時(shí)間線可以被更新 以反映那段時(shí)間已經(jīng)過(guò)去而顯示數(shù)據(jù)沒(méi)有發(fā)生變化。在其中又一個(gè)實(shí)施例中,協(xié) 議弓l擎使用上述空分組類(lèi)型將分組識(shí)別為無(wú)意義。
(285) 在有些實(shí)施例中,±3^用于消除所記錄的表示層協(xié)議數(shù)據(jù)流中的不 包含任何有意義活動(dòng)的時(shí)間周期的方法還被用來(lái)消除在表示層協(xié)議數(shù)據(jù)流的一 部分(例如,第一多個(gè)分組)中不包含{對(duì)可有意義活動(dòng)的時(shí)間周期。如圖22所示,其中描述了其內(nèi)容根據(jù)回放數(shù)據(jù)結(jié)構(gòu)被呈現(xiàn)的重新生成的記錄流的一個(gè)實(shí)施 例,在這個(gè)實(shí)施例中根據(jù)回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)部分協(xié)議數(shù)據(jù)流,允許去除不包含任 何有意義活動(dòng)的時(shí)間間隔(如圖22中的白框和條紋框所示),它包括不包含任 何活動(dòng)的時(shí)間間隔。這個(gè)呈現(xiàn)向用戶提供了表示層協(xié)議數(shù)據(jù)流中的第一多個(gè)分組 的更有意義的再生。
(286) 在呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分組
的表示層協(xié)議數(shù)據(jù)流中去除不包含任何有意義活動(dòng)的期間的方法,包括決定第一 多個(gè)分組中標(biāo)記的分組和其前面最接近的標(biāo)記的分組之間的第一時(shí)間間隔的步 驟,所述第一多個(gè)分組表示顯示數(shù)據(jù)。做出決定為該第一時(shí)間間隔超出閥值。在 協(xié)議數(shù)據(jù)流從服務(wù)器到客戶端的傳輸期間,用標(biāo)記的分組和它前面最接近的標(biāo)記 的分組之間的第二時(shí)間間隔呈現(xiàn)第一多個(gè)分組的內(nèi)容,所述第二時(shí)間間隔包括比 第一時(shí)間間隔短的時(shí)間間隔??赡芙邮盏诙鄠€(gè)分組中的至少一個(gè)分組??赡芙?收第一多個(gè)分組中的第二個(gè)分組。新接收的分組可以被添加到第一多個(gè)分組。決 定第一時(shí)間間隔超出閾值和用第二時(shí)間間隔呈現(xiàn)第一多個(gè)分組的內(nèi)容的步驟被 重復(fù),直到服務(wù)器完成表示層協(xié)議數(shù)據(jù)流的傳輸。
(287) 在一個(gè)實(shí)施例中,第一多個(gè)分組的內(nèi)容被以標(biāo)記的分組和其前面的 分組之間的第二時(shí)間間隔呈現(xiàn),所述第二時(shí)間間隔包括比第一時(shí)間間隔短的時(shí)間 間隔。在另一個(gè)實(shí)施例中,第一多個(gè)分組的內(nèi)容被以*射己的分組和該標(biāo)記的分組 后面的分組之間的第二時(shí)間間隔呈現(xiàn),戶皿第二時(shí)間間隔包括短于第一時(shí)間間隔 的時(shí)間間隔。在有些實(shí)施例中,第一多個(gè)分組的內(nèi)容被使用如上結(jié)合圖28所述 方法呈現(xiàn)。
(288) 如前結(jié)合圖24所述,用于在呈現(xiàn)記錄會(huì)i舌中去除圖形更新的方法 在呈現(xiàn)會(huì)話的一部分時(shí)也去除圖形更新,例如通過(guò)去除包括表示層協(xié)議數(shù)據(jù)流的 子集的第一多個(gè)分組中的圖形更新。如同結(jié)合圖25所述,可以識(shí)別出循環(huán)更新 并做出決定不以人可感知的方式呈現(xiàn)循環(huán)更新。同樣,這些方法可以識(shí)別出部分 表示層協(xié)議數(shù)據(jù)流中的循環(huán)更新。
(289) 在呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分組 的表示層協(xié)議數(shù)據(jù)流中去除圖形更新的方法,包括識(shí)別出表示由應(yīng)用禾,產(chǎn)生的 顯示數(shù)據(jù)的第一多個(gè)分組中包含第一圖形更新的分組的步驟。受該第一圖形更新 影響的屏幕區(qū)域被確定。屏幕區(qū)域在第一圖形更新之后的狀態(tài)指示以及該屏幕區(qū) 域的位置被存儲(chǔ)。識(shí)別出在時(shí)間間隔內(nèi)影響該屏幕區(qū)域的第二圖形更新。根據(jù)屏 幕區(qū)域在第二圖形更新之后的狀態(tài)是否不同于該屏幕區(qū)域在第一圖形更新之后的狀態(tài),回放數(shù)據(jù)結(jié)構(gòu)指示用于呈現(xiàn)包括影響該屏幕區(qū)域的第二圖形更新的第一 多個(gè)分組中第二分組的目的地?;胤艛?shù)據(jù)結(jié)構(gòu)根據(jù)屏幕區(qū)域在第二圖形更新后的 狀態(tài)是否不同于該屏幕區(qū)域在第一圖形更新后的狀態(tài),指示用于與包括影響該屏 幕區(qū)域的第二圖形更新的第一多個(gè)分組中第二分組有關(guān)地呈現(xiàn)的時(shí)間間隔。
(290) 在一個(gè)實(shí)施例中,識(shí)別出多個(gè)分組中包含的圖形更新。在另一個(gè)實(shí) 施例中,根據(jù)由識(shí)別出的多個(gè)分組中的各個(gè)分組存儲(chǔ)的圖形更新受影響的屏幕區(qū) 域被確定。在又一實(shí)施例中,存儲(chǔ)受該圖形更新影響的屏幕區(qū)域的副本。在又一 實(shí)施例中,時(shí)間間隔被定義以接近人類(lèi)級(jí)別循環(huán)周期的用戶上限。在進(jìn)一步的實(shí) 施例中,回放數(shù)據(jù)結(jié)構(gòu)表明以可感知方式呈現(xiàn)分組內(nèi)容并將其呈送到緩沖區(qū)。在 又另一實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)表明將分組內(nèi)容呈送到緩沖區(qū)。在有些實(shí)施例中, 后臺(tái)協(xié)議弓摩將這些指示存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。
(291) 在呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分組
的表示層助、議數(shù)據(jù)流中去除圖形更新的方法,包括識(shí)別第一多個(gè)分組中包含第一 圖形更新的分組的步驟,第一多個(gè)分組表示由應(yīng)用,,產(chǎn)生的的顯示數(shù)據(jù)。受第
一圖形更新影響的屏幕區(qū)i或被決定。存儲(chǔ)屏幕區(qū)域在第一圖形更新之后的狀態(tài)指
示和該屏幕區(qū)域的位置。識(shí)別出在時(shí)間間隔內(nèi)影響該屏幕區(qū)域的第二圖形更新。 根據(jù)屏幕區(qū)±或在第二圖形更新之后的狀態(tài)是否不同于該屏幕區(qū)域在第一圖形更 新之后的狀態(tài),回放數(shù)據(jù)結(jié)構(gòu)指示用于呈現(xiàn)包括影響該屏幕區(qū)域的第二圖形更新 的第二多個(gè)分組中分組的目的地。根據(jù)屏幕區(qū)域在第二圖形更新后的狀態(tài)是否不 同于該屏幕區(qū)±或在第一圖形更新后的狀態(tài),回放數(shù)據(jù)結(jié)構(gòu)指示用于與包括影響該 屏幕區(qū)域的第二圖形更新的第二多個(gè)分組中分組有關(guān)地呈現(xiàn)的時(shí)間間隔。
(292) 在一個(gè)實(shí)施例中,識(shí)別出第一多個(gè)分組中包含的圖形更新。在另一 個(gè)實(shí)施例中,根據(jù)由識(shí)別出的多個(gè)分組中的各個(gè)分組存儲(chǔ)的圖形更新受影響的屏 幕區(qū)域被確定。在又一實(shí)施例中,存儲(chǔ)受該圖形更新影響的屏幕區(qū)域的副本。在 又一實(shí)施例中,時(shí)間間隔被定義以接近人類(lèi)級(jí)別循環(huán)周期的用戶上限。在進(jìn)一步 的實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)表明以可感知方式呈現(xiàn)分組內(nèi)容并將其呈送到緩沖 區(qū)。在又另一實(shí)施例中,回放數(shù)據(jù)結(jié)構(gòu)表明將分組內(nèi)容呈送到緩沖區(qū)。在有些實(shí) 施例中,后臺(tái)協(xié)議弓l擎將這些指示存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。
(293) 如圖26所示,用于去除交互序列的方法可以用于表示層協(xié)議數(shù)據(jù) 流。在有些實(shí)施例中,如上所述,該方法被用于表示層協(xié)議數(shù)據(jù)流的完整記錄。 但在其它實(shí)施例中,該方法被用于表示層協(xié)議數(shù)據(jù)流的一部分,例如包括表示層 協(xié)議數(shù)據(jù)流的分組子集的第一多個(gè)分組。(294) 在呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分組 的表示層助、議數(shù)據(jù)流中去除交互序列的方法,包掛艮據(jù)策略識(shí)別出由第一多個(gè)分 組中的至少一個(gè)分組表示的^S序列的開(kāi)始的步驟?;胤艛?shù)據(jù)結(jié)構(gòu)表明該^S序 列應(yīng)該呈現(xiàn)到緩沖區(qū)。識(shí)別出交互序列的結(jié)束。交互序列的被識(shí)別的開(kāi)始之前的 分組和交互序列的被識(shí)另啲結(jié)束之后的分組之間的第一時(shí)間間隔被識(shí)別出?;胤?數(shù)據(jù)結(jié)構(gòu)指示呈現(xiàn)比第一時(shí)間間隔短的第二時(shí)間間隔。
(295) 在呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分組
的表示層協(xié)議數(shù)據(jù)流中去除交互序列的另一種方法,包括根據(jù)策略識(shí)別出由第一 多個(gè)分組中的至少一個(gè)分組表示的交互序列的開(kāi)始的步驟。回放數(shù)據(jù)結(jié)構(gòu)表明該 妊序列應(yīng)該呈現(xiàn)至蟓沖區(qū)。接收第二多個(gè)分組中的分組。識(shí)別出由第二多個(gè)分
組中接收的分組所表示的交互序列的結(jié)束。^S序列的被識(shí)另啲開(kāi)始之前的分組 和交互序列的被識(shí)另啲結(jié)束之后的分組之間的第一時(shí)間間隔被識(shí)別出?;胤艛?shù)據(jù) 結(jié)構(gòu)指示呈現(xiàn)比第一時(shí)間間隔要短的第二時(shí)間間隔。
(296) 在一個(gè)實(shí)施例中,ilil識(shí)別可視標(biāo)記,識(shí)另咄交互序列的開(kāi)始。在 一個(gè)實(shí)施例中,可視標(biāo)記包括以相同方式顯示給所有會(huì)話的憑證窗口。在另一個(gè) 實(shí)施例中,可視標(biāo)記包括由空白屏幕然后是由桌面背景對(duì)憑證窗口的代替。在一 個(gè)實(shí)施例中,可視^i己包括可識(shí)別圖標(biāo)的顯示。
(297) 在有些實(shí)施例中,M確定交互序列的開(kāi)始時(shí)間而識(shí)別出交互序列 的開(kāi)始。在其中一個(gè)實(shí)施例中,由組件來(lái)檢測(cè)交互序列中事件的開(kāi)始時(shí)間。在其 中另一個(gè)實(shí)施例中,該組件檢狽噔錄序列的開(kāi)始時(shí)間。在其中其它實(shí)施例中,該 組件檢領(lǐng)i勝銷(xiāo)序列的開(kāi)始時(shí)間。在一個(gè)實(shí)施例中,對(duì)交互序列的開(kāi)始的識(shí)別響應(yīng) 于以輸入焦點(diǎn)識(shí)別窗口。
(298) 在識(shí)別出的交互序列不應(yīng)以可感知方式呈現(xiàn)的實(shí)施例中,交互序列 被呈送到緩沖區(qū)。將交互序列呈送到緩沖區(qū)導(dǎo)致所要呈現(xiàn)的用戶不能感知交互序 列。對(duì)于由策略或用戶將交互序列歸為無(wú)意義的實(shí)施例來(lái)說(shuō),這個(gè)呈現(xiàn)導(dǎo)致了無(wú) 意義交互序列的消除。
(299) 在有些實(shí)施例中,通過(guò)識(shí)別可視^i己識(shí)別出交互序列的結(jié)束。在其 它實(shí)施例中,M確定交互序列的結(jié)束時(shí)間識(shí)別出交互序列的結(jié)束。在其中一個(gè) 實(shí)施例中,由組件檢測(cè)出交互序列中事件的結(jié)束時(shí)間。在另一個(gè)實(shí)施例中,該組 件檢測(cè)出登錄序列的結(jié)束時(shí)間。在其中其它實(shí)施例中,該組件檢測(cè)出注銷(xiāo)序列的 結(jié)束時(shí)間。在另一個(gè)實(shí)施例中,識(shí)別交互序列的結(jié)束響應(yīng)于以輸入焦點(diǎn)識(shí)別窗口。
(300) 在有些實(shí)施例中,^5序列包括對(duì)應(yīng)用的使用。在其中一個(gè)實(shí)施例中,由策略識(shí)別出包括應(yīng)用的使用的^5序列不應(yīng)以可感知方式呈現(xiàn)。在一個(gè)實(shí)
施例中,這些應(yīng)用包括但不限于word處理文檔。
(301) 在其中一個(gè)實(shí)施例中,通過(guò)識(shí)別出有輸入焦點(diǎn)的應(yīng)用而識(shí)別出交互 序列的開(kāi)始。當(dāng)分組的內(nèi)容表示有焦點(diǎn)的窗口時(shí),就確定了可靠創(chuàng)建該窗口的進(jìn) 程的應(yīng)用。在一個(gè)實(shí)施例中,表示有輸入焦點(diǎn)的窗口的分組的內(nèi)容包括表示輸入 焦點(diǎn)的變化的窗口通知消息。如果可靠的應(yīng)用識(shí)別出不應(yīng)以可感知方式呈現(xiàn)的交 互序列的開(kāi)始,就在回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)指示以將該交互序列呈送到緩沖區(qū)。通 過(guò)識(shí)別出不與交互序列的應(yīng)用相關(guān)聯(lián)的進(jìn)程所擁有的窗口獲得輸入焦點(diǎn)而識(shí)別 出^S序列的結(jié)束。
(302) 在一個(gè)實(shí)施例中,第一時(shí)間間隔與交互序列相關(guān)聯(lián)。在交互序列自
身不呈現(xiàn)的實(shí)施例中以可感知方式呈現(xiàn)與交互序列相關(guān)聯(lián)的時(shí)間間隔導(dǎo)致用戶 能夠感知到在一段時(shí)間內(nèi)沒(méi)有顯示數(shù)據(jù)呈現(xiàn)并且用戶在交互序列之后的分組的 內(nèi)容呈現(xiàn)之前要等待該段時(shí)間間隔。一個(gè)實(shí)施例通過(guò)呈現(xiàn)較短的時(shí)間間隔代替原 始時(shí)間間隔而去除與交互序列相關(guān)聯(lián)的時(shí)間間隔。
(303) 在有些實(shí)施例中,協(xié)議引擎呈現(xiàn)第一多個(gè)分組中的至少一個(gè)分組的 內(nèi)容,向用戶提供第一多個(gè)分組的再生。在其中一些實(shí)施例中,協(xié)議引擎自動(dòng)更 改呈現(xiàn)至少一個(gè)分組的內(nèi)容之間的時(shí)間間隔,導(dǎo)致上下文相關(guān)的時(shí)間巻曲的回 放。在這些實(shí)施例中,呈現(xiàn)接近于用戶理解呈現(xiàn)給用戶的顯示數(shù)據(jù)的能力。在一 個(gè)實(shí)施例中,當(dāng)被策略所定義時(shí),當(dāng)助、議弓摩確定分組內(nèi)容表示的顯示數(shù)據(jù)具有 被增加級(jí)別的復(fù)雜度或重要性時(shí),呈現(xiàn)分組內(nèi)容之間的時(shí)間間隔增達(dá)。在另一個(gè) 實(shí)施例中,當(dāng)被策略所定義時(shí),當(dāng)協(xié)議引擎確定分組內(nèi)容表示的顯示數(shù)據(jù)具有被 降低級(jí)別的復(fù)雜度或重要性時(shí),呈現(xiàn)分組內(nèi)容之間的時(shí)間間隔減小。在這些實(shí)施 例中,協(xié)議引擎接近用戶理解顯示數(shù)據(jù)的能力,并且呈現(xiàn)內(nèi)容以或者用更慢地給 用戶時(shí)間去理解該呈現(xiàn),或者在用戶需要較少的理解時(shí)間時(shí)更快地呈現(xiàn)該內(nèi)容。
(304) 在有些實(shí)施例中,如前結(jié)合圖27所述,用于呈現(xiàn)記錄的計(jì)t^幾會(huì) 話的方法提供自動(dòng)的時(shí)間巻曲回放。這些方法還在實(shí)時(shí)表示層協(xié)議數(shù)據(jù)流的呈現(xiàn) 期間提供自動(dòng)的時(shí)間巻曲回放,在實(shí)時(shí)表示層協(xié)議數(shù)據(jù)流中數(shù)據(jù)流所表示的會(huì)話 的記錄是不完整的。
(305) 實(shí)時(shí)呈現(xiàn)包括已經(jīng)由后臺(tái)協(xié)議弓摩接收的第一多個(gè)分組和由后臺(tái) 協(xié)議弓摩尚待接收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流中進(jìn)行自動(dòng)時(shí)間巻曲回 放的方法,包括由后臺(tái)協(xié)議引擎接收表示顯示數(shù)據(jù)的第一多個(gè)分組的步驟。后臺(tái) 協(xié)議引擎決定第一多個(gè)分組中的至少一些分組表示的復(fù)雜度的量度。后臺(tái)協(xié)議引擎識(shí)別出第一多個(gè)分組中至少一些分組之間的時(shí)間間隔。后臺(tái)協(xié)議弓l擎根據(jù)記錄 會(huì)話中的第一多個(gè)分組中的至少一些分組所表示的復(fù)雜度量度修改時(shí)間間隔。后 臺(tái)協(xié)議弓l擎將修改后的時(shí)間間隔存儲(chǔ)在回放數(shù)據(jù)結(jié)構(gòu)中。前臺(tái)協(xié)議弓l擎在表示層 協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間根據(jù)回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)第一多個(gè) 分組。
(306) 在有些實(shí)施例中,圖27中所述方法的步驟也被用來(lái)在表示層協(xié)議
數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間根據(jù)回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)第一多個(gè)分組。
(307) 在其中一些實(shí)施例中,協(xié)議引擎通過(guò)識(shí)別出鍵盤(pán)輸入中可能的m 序列而決定復(fù)雜度的難。在一個(gè)實(shí)施例中,協(xié)議引擎檢查涉及的至少一種類(lèi)型 的鍵以識(shí)別鍵盤(pán)輸入中可能的鍵入序列。在另一個(gè)實(shí)施例中,助、議引擎檢查呈現(xiàn) 的至少一個(gè)符號(hào)的序列以完成對(duì)鍵盤(pán)輸入中可能的鍵入序列的啟發(fā)式搏ffi。
(308) 在其中一些實(shí)施例中,協(xié)議引擎存儲(chǔ)由鍵特征確定的鍵歸類(lèi)。鍵特 征包括但不限于可打印或不可打印字符、空格、導(dǎo)航鍵或功會(huì)織,并且它們這些 特征的組合。在一個(gè)實(shí)施例中,協(xié)議引擎決定包括可打印字符和偶爾出現(xiàn)的導(dǎo)航 鍵的輸入段構(gòu)成常規(guī)輸入,而主要包括不可見(jiàn)鍵的輸入段不構(gòu)成常規(guī)輸入。在一 個(gè)實(shí)施例中,幼議引擎根據(jù)識(shí)別出的空格數(shù)量確定復(fù)雜度的量度。在這個(gè)實(shí)施例 中,協(xié)議引飽括對(duì)word處理的定義,該定義表示在典型鍵入模式中平均約每 5-8個(gè)字符出現(xiàn)空格鍵。
(309) 在一個(gè)實(shí)施例中,幼議引擎使用不可打印字符的出現(xiàn)來(lái)決定復(fù)雜度 的量度。在另一個(gè)實(shí)施例中,協(xié)議引擎訪問(wèn)擊鍵序列以識(shí)別在時(shí)間上一起出現(xiàn)的 非空格可打印字符的序列。在這個(gè)實(shí)施例中,助、議引擎包括比較擊鍵序歹,字典 以識(shí)別有效單詞并確定與用戶理解有效單詞相對(duì)無(wú)效單詞的能力有關(guān)的復(fù)雜度 量度的功能。
(310) 在另一個(gè)實(shí)施例中,協(xié)議引擎決定分組內(nèi)容包含呈現(xiàn)字符的命令。 在這個(gè)實(shí)施例中,協(xié)議引擎使用字符決定顯示用戶是否表,入的用戶活動(dòng)。在 這個(gè)實(shí)施例中,如果字符呈現(xiàn)速率接近鍵盤(pán)輸AiI度但帶有一個(gè)小小的延遲,很 可能是擊鍵正在直接產(chǎn)生字符,因而極可能是用戶正在輸入。在一個(gè)實(shí)施例中, 協(xié)、議引擎將輸入的鍵和產(chǎn)生的字符關(guān)聯(lián)在一起。在另一個(gè)實(shí)施例中,幼、議引擎確 定呈現(xiàn)的字符的空間序列(從左至后,從右至左)以確定用戶正在鍵入。在一個(gè) 實(shí)施例中,助、議引擎根據(jù)分析該多個(gè)分組的內(nèi)容的結(jié)果并識(shí)別這些內(nèi)容所表示的 模式和活動(dòng)而決定復(fù)雜度的量度。
(311) 在其它實(shí)施例中,協(xié)議引擎根據(jù)對(duì)鼠標(biāo)輸入類(lèi)型的識(shí)別而決定復(fù)雜度的量度。在一個(gè)實(shí)施例中,協(xié)議引擎決定表示鼠標(biāo)點(diǎn)擊的鼠標(biāo)輸入導(dǎo)致需要較 慢的呈現(xiàn)速率以讓用戶理解,尤其題艮隨在一系列鍵A^后的點(diǎn)擊。在另一個(gè)實(shí) 施例中,助議引擎決定不表示鼠標(biāo)點(diǎn)擊的鼠標(biāo)輸入不影響用戶理解顯示數(shù)據(jù)的能 力,因而不影響復(fù)雜度的雖。
(312) 在其它實(shí)施例中,協(xié)議引擎根據(jù)識(shí)別圖形更新復(fù)雜度的啟發(fā)式祥ffi 決定復(fù)雜度的量度。在一個(gè)實(shí)施例中,協(xié)議引擎根據(jù)(但不限于)正在被更新的 區(qū)域大小、由圖形命令改變的區(qū)域的面積大小、對(duì)單獨(dú)區(qū)域的更新的歷史頻率、 循環(huán)圖形命令、圖形命令的數(shù)量、圖形命令的頻率、其內(nèi)容包含圖形命令的相鄰 分組之間的時(shí)間間隔或者圖形更新的類(lèi)型識(shí)別出圖形更新復(fù)雜度的啟發(fā)式漸近。 在一種協(xié)議弓l擎識(shí)別出圖形更新的低復(fù)雜度的實(shí)施例中,協(xié)議引擎確定包含圖形 更新的分組所表示的低復(fù)雜度的量度。在協(xié)議引擎識(shí)別出圖形更新的高復(fù)雜度量 度的實(shí)施例中,協(xié)議弓l擎確定包含圖形更新的分組表示的高復(fù)雜度的量度。
(313) 在多個(gè)分組中至少有一些分組的內(nèi)容表示與高復(fù)雜度量度相關(guān)聯(lián) 的顯示數(shù)據(jù)的實(shí)施例中,協(xié)議引擎增加分組間的時(shí)間間隔以允許用戶有增加的呈 現(xiàn)時(shí)間理解呈現(xiàn)的顯示數(shù)據(jù)。在多個(gè)分組中至少有一些分組的內(nèi)容表示與低復(fù)雜 度量度相關(guān)聯(lián)的顯示數(shù)據(jù)的實(shí)施例中,協(xié)議弓l擎縮短分組間的時(shí)間間隔以反映用 戶需要減少的時(shí)間來(lái)理解所呈現(xiàn)的顯示數(shù)據(jù)。在一個(gè)實(shí)施例中,用戶需要所呈現(xiàn) 的分組內(nèi)容之間具有不同于由幼議弓摩所呈現(xiàn)的時(shí)間量。在這個(gè)實(shí)施例中,用戶 修改時(shí)間間隔以反映用戶理解呈現(xiàn)的顯示數(shù)據(jù)所需的時(shí)間量。在有些實(shí)施例中, 協(xié)議弓l擎還識(shí)別出多個(gè)分組中至少一些分組與該多個(gè)分組中其它分組之間的時(shí) 間間隔,修改在那些分組集合之間識(shí)別的時(shí)間間隔。
(314) 在有些實(shí)施例中,協(xié)議引擎識(shí)別出與第一多個(gè)分組中的分組相關(guān)聯(lián)
的第一*射己。在一個(gè)實(shí)施例中,分組包括^H己。在另一個(gè)實(shí)施例中,戶;n己錄的會(huì)
話包括標(biāo)記。
(315) 在一個(gè)實(shí)施例中,顯示數(shù)據(jù)的呈現(xiàn)的用戶定義標(biāo)記。在另一個(gè)實(shí)施 例中,協(xié)議引擎定義標(biāo)記。在協(xié)議弓摩識(shí)別出標(biāo)己的實(shí)施例中,協(xié)議引擎根據(jù)第 Hfi己修改時(shí)間間隔。在一個(gè)實(shí)施例中,協(xié)議弓摩增加時(shí)間間隔,該時(shí)間間隔以 向顯示數(shù)據(jù)的呈現(xiàn)的用戶提供更多時(shí)間以理解與第一^i己相關(guān)聯(lián)的分組的內(nèi)容。 在其它實(shí)施例中,助議弓摩識(shí)別出第二分組中的第二標(biāo)記。在這個(gè)實(shí)施例中,協(xié) 議弓摩根據(jù)第一*射己和第二標(biāo)記之間的距離修改時(shí)間間隔。在這個(gè)實(shí)施例中,協(xié) 議弓摩為理解所標(biāo)記的分組的內(nèi)容表示的顯示數(shù)據(jù)掛共增加的時(shí)間,并為理解未 標(biāo)記的分組的內(nèi)容表示的顯示數(shù)據(jù)掛共減少的時(shí)間。在一個(gè)實(shí)施例中,用戶為用戶感興趣的顯示數(shù)據(jù)定義標(biāo)記,當(dāng)被*射己所決定時(shí),協(xié)議引擎為用戶感興趣的顯 示數(shù)據(jù)呈現(xiàn)額外的時(shí)間,而為用戶不感興趣的顯示數(shù)據(jù)呈現(xiàn)減少的時(shí)間。
(316) 在一個(gè)實(shí)施例中,協(xié)議引擎識(shí)別多個(gè)分組中至少一些分組中的第一 標(biāo)己,所述標(biāo)記表示該多個(gè)分組中至少一些分組中的起始分組。協(xié)議引擎根據(jù)第 一標(biāo)己修改時(shí)間間隔。協(xié)議弓摩識(shí)另咄多個(gè)分組中至少一些分組中的第二分組的 第二iH己,所述第二fei己表示該多個(gè)分組中至少一些分組中的結(jié)束分組,協(xié)議引
擎還根據(jù)第一^i己和第二^H己之間的時(shí)間間隔修改時(shí)間間隔。
(317) 在一個(gè)實(shí)施例中,協(xié)議引擎還根據(jù)與修改后的時(shí)間間隔有關(guān)的回放
數(shù)據(jù)結(jié)構(gòu)指令呈現(xiàn)多個(gè)分組。在另一個(gè)實(shí)施例中,由各自的前臺(tái)協(xié)議弓摩呈現(xiàn)多 個(gè)分組。
(318) 在有些實(shí)施例中,確定了有應(yīng)用的記錄交互需要增加的呈現(xiàn)時(shí)間以 向所要呈現(xiàn)的用戶提供增加的時(shí)間理解所呈現(xiàn)的顯示數(shù)據(jù)。在其中一些實(shí)施例 中,確定了需要增加的時(shí)間的應(yīng)用包括比不需要增加的時(shí)間的應(yīng)用更重要的應(yīng) 用。在其中一個(gè)實(shí)施例中,用戶做出該決定。在其中另一個(gè)實(shí)施例中,由策略做 出該決定。在其中又另一個(gè)實(shí)施例中,助、議引,括對(duì)需要增加的時(shí)間的應(yīng)用的 定義。
(319) 如結(jié)合圖28所述,在呈現(xiàn)記錄的計(jì)算機(jī)會(huì)話中, 一種方法可以根 據(jù)識(shí)另咄的應(yīng)用掛共自動(dòng)的時(shí)間巻曲回放。同樣,該方法在呈現(xiàn)一部分未完全記 錄的表示層幼、議數(shù)據(jù)會(huì)話或者正在被記錄中的表示層協(xié)議數(shù)據(jù)會(huì)話中根據(jù)識(shí)別 出的應(yīng)用提供自動(dòng)的時(shí)間巻曲回放。
(320) 實(shí)時(shí)呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分 組的表示層協(xié)議數(shù)據(jù)流中的自動(dòng)時(shí)間巻曲回放的方法包括接收表示顯示數(shù)據(jù)的 第一多個(gè)分組的步驟。識(shí)別出第一多個(gè)分組中其內(nèi)容表示擁有焦點(diǎn)的窗口的第一
分組,戶;M窗口表示應(yīng)用。識(shí)別出第一多個(gè)分組中的第二分組(其內(nèi)容在第一分
組內(nèi)容的呈現(xiàn)之前呈現(xiàn))和第一多個(gè)分組中的第三分組(其內(nèi)容在第一分組內(nèi)容 的呈現(xiàn)之后呈現(xiàn))之間的時(shí)間間隔。根據(jù)所表示的應(yīng)用修改識(shí)別出的時(shí)間間隔。 在表示層協(xié)議流從第一裝置到第二裝置的傳輸期間,根據(jù)該修改呈現(xiàn)第一多個(gè)分 組中的至少一個(gè)分組。
(321) 在一個(gè)實(shí)施例中,對(duì)識(shí)別出的時(shí)間間隔的修改包括對(duì)識(shí)別出的時(shí)間 間隔的增力[]。在另一個(gè)實(shí)施例中,對(duì)識(shí)別出的時(shí)間間隔的修改包括對(duì)識(shí)別出的時(shí) 間間隔的減少。在又一個(gè)實(shí)施例中,第一多個(gè)分組中的至少一個(gè)分組被呈送到緩 沖區(qū)。在又一個(gè)實(shí)施例中,第一多個(gè)分組中的至少一個(gè)分組不僅被呈送到緩沖區(qū)而且還被以可感知方式呈現(xiàn)。
(322) 如前結(jié)合圖29所述,系統(tǒng)可以在呈現(xiàn)記錄的計(jì)tm會(huì)話中提供自
動(dòng)的時(shí)間巻曲回放。這些系統(tǒng)還可以在呈現(xiàn)包括己經(jīng)被幼議引擎接收的第一多個(gè) 分組和尚待被協(xié)議弓l擎接收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流中提供自動(dòng)的 時(shí)間巻曲回放。根據(jù)接收第一多個(gè)分組產(chǎn)生回放數(shù)據(jù)結(jié)構(gòu)的協(xié)議引擎,在表示層 協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間根據(jù)產(chǎn)生的回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)第 一多個(gè)分組中的至少一個(gè)分組。
(323) 在一個(gè)實(shí)施例中,協(xié)議引擎在回放數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)至少一個(gè)用于呈 現(xiàn)第一多個(gè)分組附旨令。在另一實(shí)施例中,協(xié)議引擎將元數(shù)據(jù)存儲(chǔ)在回放數(shù)據(jù)結(jié) 構(gòu)中。在又一實(shí)施例中,協(xié)議弓l擎不僅以可感知方式呈現(xiàn)第一多個(gè)分組中的至少 一個(gè)分組,而且還將其呈送到緩沖區(qū)。在又一個(gè)實(shí)施例中,幼議引擎將第一多個(gè) 分組中的至少一個(gè)分組呈送到緩沖區(qū)。在進(jìn)一步的實(shí)施例中,第二協(xié)議引擎根據(jù) 產(chǎn)生的回放數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)第一多個(gè)分組中的至少一個(gè)分組。
(324) 在有些實(shí)施例中,表示涉及向客戶端或另一服務(wù)器掛共表示層協(xié)議 數(shù)據(jù)的服務(wù)器。在其中一個(gè)實(shí)施例中,該服務(wù)器執(zhí)行應(yīng)用并向客戶端或另一服務(wù) 器提供產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。在其中另一個(gè)實(shí)施例中,服務(wù)器掛共對(duì)與資源(例 如多個(gè)應(yīng)用、桌面環(huán)境或其它計(jì)算環(huán)境)相關(guān)或由該資源產(chǎn)生的表示層協(xié)議數(shù)據(jù) 的訪問(wèn)。在其中又一個(gè)實(shí)施例中,服務(wù)器^j共會(huì)話(例如資源的執(zhí)行)的表示層 協(xié)議數(shù)據(jù),會(huì)話執(zhí)行在虛擬機(jī)中,該虛擬機(jī)執(zhí)行在管理程序中,該管理fii^m行 在終端服務(wù)會(huì)話中,該終端服M話執(zhí)行在服務(wù)器上。在其中又一個(gè)實(shí)施例中, 執(zhí)行掛共對(duì)會(huì)話的訪問(wèn)的虛擬機(jī)的服務(wù)器將表示層幼、議數(shù)據(jù)發(fā)送到第二服務(wù)器, 該第二服務(wù)器執(zhí)行終端服務(wù)會(huì)話并將接收的數(shù)據(jù)轉(zhuǎn)發(fā)到客戶端。在其中又一個(gè)實(shí) 施例中,該服務(wù)器將執(zhí)行在虛擬機(jī)中的會(huì)話的表示層協(xié)議數(shù)據(jù)樹(shù)共給擁有表示層 協(xié)議棧并將數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端的第二服務(wù)器。
(325) 在表示層協(xié)議會(huì)話記錄正在被記錄時(shí)觀看它的能力增強(qiáng)了用于先 前記錄的會(huì)話的回放的系統(tǒng)和方法。它增強(qiáng)了這樣的系統(tǒng)和方法作為市場(chǎng)領(lǐng)導(dǎo)監(jiān) 控和監(jiān)視解決方案的地位,并提供了進(jìn)入支持/幫助市場(chǎng)的重要途徑。
(326) 上述系統(tǒng)和方法可以被提供為實(shí)體化在一種或多種制造物品之上 或之內(nèi)的一個(gè)或多個(gè)計(jì)算機(jī)可讀程序。制造物品可以是軟盤(pán)、硬盤(pán)、光盤(pán)、數(shù)字 多功能光盤(pán)、閃存卡、PROM、 RAM、 ROM或磁帶。 一般來(lái)說(shuō),該計(jì)算機(jī)可讀 程序可以用任何編程語(yǔ)言實(shí)現(xiàn)??梢允褂玫恼Z(yǔ)言的一些例子有C、 C抖、C弁或 JAVA。該軟件程序可以作為目標(biāo)代碼被存儲(chǔ)在一個(gè)或多個(gè)制造物品之上或之內(nèi)。
(327)已經(jīng)說(shuō)明了用于表示層協(xié)議數(shù)據(jù)的記錄和實(shí)時(shí)回放的方法和系統(tǒng) 的特定實(shí)施例,現(xiàn)在本領(lǐng)域的技術(shù)人員將明了也可以使用弓l入了本發(fā)明的概念的 其它實(shí)施例。因此,本發(fā)明不應(yīng)受限于特定實(shí)施例,而是僅受下面的權(quán)利要求的 精神和范圍限制。
權(quán)利要求
1.一種用于表示層協(xié)議數(shù)據(jù)的記錄和實(shí)時(shí)回放的方法,該方法包括下列步驟(a)在表示顯示數(shù)據(jù)的表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間由記錄器攔截包括多個(gè)分組的表示層協(xié)議數(shù)據(jù)流;(b)由分發(fā)器發(fā)送所述表示層協(xié)議數(shù)據(jù)流中的至少一個(gè)分組的副本;(c)由協(xié)議引擎使用與該至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生由該至少一個(gè)復(fù)制的分組表示的顯示數(shù)據(jù);(d)重復(fù)步驟(a)和(b)直到所述第一裝置完成至所述第二裝置的協(xié)議數(shù)據(jù)流的傳輸。
2. 權(quán)利要求1的方法,其中步驟(a)還包括由所述記錄器在基本與所述第一裝aa送表示層協(xié)議數(shù)據(jù)流到所述第二裝置的同時(shí)攔截表示層協(xié)議數(shù)據(jù)流。
3. 權(quán)利要求1的方法,其中步驟(a)還包括攔截虛擬信道。
4. 權(quán)利要求1的方法,其中步驟(b)還包括由所述記錄器存儲(chǔ)表示層協(xié)議數(shù)據(jù) 流中至少一個(gè)分組的副本。
5. 權(quán)利要求1的方法,其中步驟(b)還包括由所述記錄器將該至少一個(gè)復(fù)制的 分組發(fā)送到分發(fā)器。
6. 權(quán)利要求1的方法,其中步驟(b)還包括由所述記錄器將該至少一個(gè)復(fù)制的 分組存儲(chǔ)在緩沖區(qū)中。
7. 權(quán)禾腰求6的方法,其中步驟(b)還包括由所述記錄器將緩沖區(qū)中存儲(chǔ)的多 個(gè)分組發(fā)送到分發(fā)器。
8. 權(quán)利要求1的方法,其中步驟(b)還包括由所述分發(fā)器從存儲(chǔ)裝置檢索表示 層協(xié)議數(shù)據(jù)流的至少一個(gè)分組的副本。
9. 權(quán)利要求1的方法,其中步驟(b)還包括當(dāng)所述表示層助、議數(shù)據(jù)流的分組包 含數(shù)據(jù)時(shí)決定復(fù)制該分組。
10. 權(quán)利要求1的方法,其中步驟(b)還包括根據(jù)策略決定復(fù)制表示層協(xié)議數(shù)據(jù) 流的分組。
11. 權(quán)利要求l的方法,還包括存儲(chǔ)所述表示層協(xié)議數(shù)據(jù)流的記錄的步驟。
12. 權(quán)禾腰求1的方法,其中步驟(b)還包括將時(shí)間戳與該至少一個(gè)復(fù)制的分組 相關(guān)聯(lián)。
13.權(quán)利要求12的方法,其中步驟(b)還包括將相關(guān)聯(lián)的時(shí)間戳^A戶腿表示 層助議數(shù)據(jù)流的記錄中。
14. 權(quán)利要求1的方法,其中步驟(b)還包括將數(shù)據(jù)長(zhǎng)度指示符^A戶,表示層 協(xié)議數(shù)據(jù)流的記錄中。
15. 權(quán)禾腰求1的方法,其中步驟(c)還包括在接收該至少一個(gè)復(fù)制的分組時(shí)使用該至少一個(gè)復(fù)制的分組。
16. 權(quán)利要求1的方法,其中步驟(c)還包括在接收再生由該至少一個(gè)復(fù)制的分組表示的顯示數(shù)據(jù)的請(qǐng)求時(shí)使用該至少一個(gè)復(fù)制的分組。
17. 權(quán)利要求1的方法,其中步驟(d)還包括由所述記錄器使用多個(gè)復(fù)制的分組 創(chuàng)建表示層協(xié)議數(shù)據(jù)流的記錄。
18. 權(quán)利要求1的方法,其中步驟(d)還包括重復(fù)步驟(c)直到戶腐協(xié)議弓摩 已經(jīng)再生由接收的復(fù)制的分組表示的顯示數(shù)據(jù)。
19. 一種用于表示層協(xié)議數(shù)據(jù)的記錄和實(shí)時(shí)回放的系統(tǒng),包括記錄器,用于在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間攔截表示層協(xié)議數(shù)據(jù)流,所述表示層協(xié)議數(shù)據(jù)流表示顯示數(shù)據(jù)并且包括多個(gè)分組; 分發(fā)器,用于發(fā)送戶脫表示層協(xié)議數(shù)據(jù)流的至少一個(gè)分組的副本;禾口 協(xié)議引擎,用于與所述分發(fā)器通信,使用與該至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生由該至少一個(gè)分組表示的顯示數(shù)據(jù);其中所述記錄器繼續(xù)攔截表示層協(xié)議數(shù)據(jù),所述分發(fā)器繼續(xù)發(fā)送所述表示層協(xié)議數(shù)據(jù)流的至少一個(gè)分組的副本,直到所述第一裝置完成至所述第二裝置的協(xié)議數(shù)據(jù)流的傳輸。
20. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于從所述表示層幼、議數(shù)據(jù)流復(fù) 制至少一個(gè)分組的裝置。
21. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于攔截虛擬信道的裝置。
22. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于由戶腐記錄驗(yàn)基本與所述 第一裝置傳輸所述表示層協(xié)議數(shù)據(jù)流到所述第二裝置的同時(shí)攔截表示層協(xié)議數(shù) 據(jù)流的裝置。
23. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于存儲(chǔ)該至少一個(gè)分組的緩沖 區(qū)。
24. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于將該至少一個(gè)分組存儲(chǔ)到存 儲(chǔ)裝置的裝置。
25. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于將該至少一個(gè)分組和時(shí)間基 準(zhǔn)關(guān)聯(lián)在一起的裝置。
26. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于將該至少一個(gè)分組和數(shù)據(jù)長(zhǎng)度指示符關(guān)聯(lián)在一起的裝置。
27. 權(quán)利要求26的系統(tǒng),其中數(shù)據(jù)長(zhǎng)度表示分組中數(shù)據(jù)的長(zhǎng)度。
28. 權(quán)利要求19的系統(tǒng),其中所述記錄器位于所述第一裝置上。
29. 權(quán)利要求19的系統(tǒng),其中戶艦記錄器位于所述第二裝置上。
30. 權(quán)利要求19的系統(tǒng),其中所述記錄器位于第三裝置上。
31. 權(quán)利要求19的系統(tǒng),其中戶脫記錄器位于代理服務(wù)器上。
32. 權(quán)利要求19的系統(tǒng),其中戶脫記錄淛立于直通服務(wù)器上。
33. 權(quán)利要求19的系統(tǒng),其中所述記錄器位于網(wǎng)絡(luò)分組監(jiān)聽(tīng)器上。
34. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于創(chuàng)建表示層協(xié)議數(shù)據(jù)流的記 錄的記錄發(fā)生器。
35. 權(quán)利要求19的系統(tǒng),其中所述記錄器還包括用于獲取該至少一個(gè)分組的副本 的收發(fā)器。
36. 權(quán)利要求19的系統(tǒng),其中所述分發(fā)器還包括用于將該至少一個(gè)分組的副本發(fā) 送到戶脫協(xié)議弓摩的收發(fā)器。
37. —種用于在表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放期間實(shí)時(shí)搜索的方法,該方法包括 下列步驟(a) 由前臺(tái)協(xié)議弓l擎接收用于呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和待要接 收的第二多個(gè)分組的表示層助、議數(shù)據(jù)流中的分組內(nèi)容的請(qǐng)求;(b) 由所述前臺(tái)協(xié)議弓l擎識(shí)別出其相關(guān)時(shí)間戳在船青求的分組之前的狀態(tài) 快照;和(c) 由所述前臺(tái)助、議弓l擎在所述表示層助、議數(shù)據(jù)流從第一裝置至U第二裝置 的傳輸期間根據(jù)識(shí)別出的狀態(tài)快照顯示戶斥請(qǐng)求的分組。
38. 權(quán)禾腰求37的方法,其中步驟(c)還包括將該狀態(tài)快照和附青求的分組之 間的中間分組的內(nèi)容呈送到緩沖區(qū)。
39. —種用于產(chǎn)生能夠在表示層幼議數(shù)據(jù)流的實(shí)時(shí)回放期間進(jìn)行實(shí)時(shí)搜索的狀態(tài) 快照的方法,所述表示層助、議數(shù)據(jù)流包括已經(jīng)被后臺(tái)協(xié)議弓l擎接收的第一多個(gè)分 組和尚待被所述后臺(tái)幼、議弓l擎接收的第二多個(gè)分組,該方、法包括下列步驟(d) 由所述后臺(tái)協(xié)議弓l擎在所述表示層協(xié)議數(shù)據(jù)流從第一裝置至U第二裝置 的傳輸期間接收所述第一多個(gè)分組;(e) 由所述后臺(tái)幼、議弓l擎產(chǎn)生由所述第一多個(gè)分組表示的顯示數(shù)據(jù);(f) 由所述后臺(tái)協(xié)議弓l擎在讀取所述第一多個(gè)分組中的至少一個(gè)分組期間 產(chǎn)生至少一個(gè)狀態(tài)快照;(g) 由戶滿后臺(tái)助議引擎存儲(chǔ)戶腿產(chǎn)生的狀態(tài)快照;(h) 由所述后臺(tái)協(xié)議弓l擎根據(jù)接收戶/M第二多個(gè)分組中的至少一個(gè)分組修 ,示數(shù)據(jù)的再生和該至少一個(gè)狀態(tài)快照。
40. 權(quán)禾腰求39的方法,其中步驟(c)還包括在基本與所述第一多個(gè)分組的表示同時(shí)產(chǎn)生戶; ^至少一個(gè)狀態(tài)快照。
41. 權(quán)利要求39的方法,其中步驟(c)還包括由所述后臺(tái)協(xié)議引擎在戶皿第一 多個(gè)分組的順序讀取期間產(chǎn)生至少一個(gè)狀態(tài)快照。
42. —種用于在包括已經(jīng)被后臺(tái)協(xié)議弓l擎接收的第一多個(gè)分組和尚待被所述后臺(tái) 協(xié)議引擎接收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流的實(shí)時(shí)回放期間進(jìn)行實(shí)時(shí)搜 索的系統(tǒng),包括后臺(tái)協(xié)議弓l擎,用于在所述表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳 輸期間接收所述第一多個(gè)分組;狀態(tài)快照,其由所述后臺(tái)協(xié)議引擎產(chǎn)生,包括在記錄器從所述表示層協(xié)議 數(shù)據(jù)流復(fù)制分組到所述第一多個(gè)分組中的時(shí)間點(diǎn)時(shí)呈現(xiàn)所述表示層協(xié)議數(shù)據(jù)流 的協(xié)議引擎的狀態(tài);前臺(tái)助、議引擎,用于接收所述第一多個(gè)分組,呈現(xiàn)所述第一多個(gè)分組的內(nèi) 容,接收搜索由所述第一多個(gè)分組中的分組內(nèi)容表示的顯示數(shù)據(jù)的請(qǐng)求,并使用戶;M狀態(tài)快照呈現(xiàn)表示戶;fi青求的顯示數(shù)據(jù)的內(nèi)容;其中所述后臺(tái)協(xié)議引擎根據(jù)接收所述第二多個(gè)分組中的至少一個(gè)分組更新 所述狀態(tài)快照。
43. 權(quán)利要求42的系統(tǒng),其中所述狀態(tài)快照還包括描述某個(gè)時(shí)間點(diǎn)上屏皿態(tài)的 數(shù)據(jù)結(jié)構(gòu)。
44. 權(quán)利要求42的系統(tǒng),其中所述狀態(tài)快照還包括維護(hù)可視界面的狀態(tài)。
45. 權(quán)利要求42的系統(tǒng),其中戶脫狀態(tài)快照還包括維護(hù)離屏界面的狀態(tài)。
46. 權(quán)利要求42的系統(tǒng),其中所述狀態(tài)快照還包括維護(hù)繪畫(huà)對(duì)象的狀態(tài)。
47. 權(quán)利要求42的系統(tǒng),其中戶脫狀態(tài)快照還包括維護(hù)調(diào)色板的狀態(tài)。
48. 權(quán)利要求42的系統(tǒng),其中所述狀態(tài)快照還包括維護(hù)緩存7豫的狀態(tài)。
49. 權(quán)利要求42的系統(tǒng),其中所述狀態(tài)快照還包括維護(hù)緩沖區(qū)的狀態(tài)。
50. 權(quán)利要求42的系統(tǒng),其中所述前臺(tái)協(xié)議弓i擎還包括產(chǎn)生所述第一多個(gè)分組的 以呈現(xiàn)給用戶的實(shí)時(shí)可感知表示。
51. 權(quán)利要求42的系統(tǒng),其中所述前臺(tái)協(xié)議弓l擎還包括產(chǎn)生所述第一多個(gè)分組的 以呈現(xiàn)給用戶的實(shí)時(shí)可視表示。
52. 權(quán)利要求42的系統(tǒng),其中所述前臺(tái)協(xié)議弓l擎還包括產(chǎn)生戶;M第一多個(gè)分組的以呈現(xiàn)給用戶的實(shí)時(shí)可聽(tīng)表示。
53. —種用于狀態(tài)快照的自適應(yīng)產(chǎn)生的方法,該方法包括下列步驟(a) 在表示層幼、議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間,將包括已經(jīng) 被后臺(tái)協(xié)議弓l擎接收的第一多個(gè)分組和尚待被所述后臺(tái)協(xié)議弓l擎接收的第二多 個(gè)分組的所述表示層協(xié)議數(shù)據(jù)流的表示呈現(xiàn)給用戶;(b) 由所述后臺(tái)協(xié)議弓l擎在呈現(xiàn)期間監(jiān)控所述用戶的活動(dòng);(c) 由戶脫后臺(tái)幼議弓摩根據(jù)對(duì)戶腿$薛力的監(jiān)控開(kāi)發(fā)出活動(dòng)特征;(d) 由所述后臺(tái)協(xié)議弓摩根據(jù)戶皿活動(dòng)特征產(chǎn)生至少一個(gè)狀態(tài)快照;(e) 由所述后臺(tái)協(xié)議弓l擎根據(jù)接收所述第二多個(gè)分組中的至少一個(gè)分組修 ^^ra至少一個(gè)狀態(tài)快照。
54. 權(quán)利要求53的方法,其中步驟(b)還包括由所述用戶識(shí)別不活動(dòng)期間。
55. 權(quán)利要求53的方法,其中步驟(c)還包括識(shí)別搜索概率的統(tǒng)計(jì)分布。
56. 權(quán)利要求55的方法,其中步驟(d)還包括根據(jù)所述搜索概率的統(tǒng)計(jì)分布產(chǎn)生戶;M至少一個(gè)狀態(tài)快照的步驟。
57. 權(quán)利要求53的方法,其中步驟(c)還包括為所述用戶的使用模式開(kāi)發(fā)出活 動(dòng)特征。
58. 權(quán)利要求53的方法,其中步驟(d)還包括決定延長(zhǎng)一個(gè)或多個(gè)狀態(tài)快照之 間的間隔。
59. 權(quán)利要求53的方法,其中步驟(d)還包括決定縮短一個(gè)或多個(gè)狀態(tài)快照之 間的間隔。
60. 權(quán)利要求53的方法,其中還包括由所述后臺(tái)協(xié)議弓摩根據(jù)戶/M活動(dòng)特征決定 去除戶,至少一個(gè)狀態(tài)快照的步驟。
61. 權(quán)利要求53的方法,其中還包括由所述后臺(tái)協(xié)議弓摩根據(jù)所述活動(dòng)特征決定 添加至少一個(gè)狀態(tài)快照的步驟。
62. —種用于狀態(tài)快照的自適應(yīng)產(chǎn)生的系統(tǒng),包括后臺(tái)協(xié)議引擎,用于在表示層協(xié)議數(shù)據(jù)流從第一裝置至'j第二裝置的傳輸期 間,將包括已經(jīng)被后臺(tái)協(xié)議弓l擎接收的第一多個(gè)分組和尚待被所述后臺(tái)協(xié)議弓l擎 接收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流的表示呈現(xiàn)給用戶;后臺(tái)協(xié)議引擎,用于在表示期間監(jiān)控所述用戶的活動(dòng)并產(chǎn)生狀態(tài)快照;以及活動(dòng)特征,其由所述后臺(tái)幼、議引擎決定;其中所述后臺(tái)協(xié)議引擎根據(jù)接收所述第二多個(gè)分組中的至少一個(gè)分組修改 所述狀態(tài)快照和所述活動(dòng)特征。
63. 權(quán)利要求62的系統(tǒng),其中所述后臺(tái)協(xié)議引擎根據(jù)戶,監(jiān)控決定所述活動(dòng)特征。
64. 權(quán)利要求62的系統(tǒng),其中所述后臺(tái)協(xié)議引對(duì)艮據(jù)所述活動(dòng)特征維護(hù)所述狀 態(tài)快照。
65. 權(quán)利要求62的系統(tǒng),其中所述活動(dòng)特征識(shí)別使用模式。
全文摘要
一種方法包括由記錄器在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間攔截包括多個(gè)分組并表示顯示數(shù)據(jù)的上述表示層協(xié)議數(shù)據(jù)流的步驟。協(xié)議引擎使用與至少一個(gè)復(fù)制的分組相關(guān)聯(lián)的信息再生由至少一個(gè)復(fù)制的分組表示的顯示數(shù)據(jù)。另一方面,前臺(tái)協(xié)議引擎接收用于呈現(xiàn)包括已經(jīng)接收的第一多個(gè)分組和尚待接收的第二多個(gè)分組的表示層協(xié)議數(shù)據(jù)流中的分組內(nèi)容的請(qǐng)求。前臺(tái)協(xié)議引擎在表示層協(xié)議數(shù)據(jù)流從第一裝置到第二裝置的傳輸期間,根據(jù)識(shí)別出的其相關(guān)時(shí)間戳在所請(qǐng)求的分組的時(shí)間戳之前的狀態(tài)快照顯示請(qǐng)求的分組。
文檔編號(hào)H04L12/26GK101563907SQ200780047081
公開(kāi)日2009年10月21日 申請(qǐng)日期2007年10月18日 優(yōu)先權(quán)日2006年10月20日
發(fā)明者P·賴曼 申請(qǐng)人:思杰系統(tǒng)有限公司