專利名稱:在網絡內傳送嵌入式應用的系統的制作方法
技術領域:
本發明一般涉及客戶機和服務器的網絡,尤其涉及允許客戶機對某些服務器的操作進行控制的網絡。
本發明是對當前網絡提供的復合文檔(compound document)傳送能力的改善。
對這一文檔來說,“網絡”被理解為具有協同的相互作用的多個互連的計算機控制設備。在大多數網絡(例如Internet(互連網))中,被連網的設備不是客戶機(client文檔的使用者))就是服務器(server文檔的提供者))。在這種網絡結構中,客戶機能夠下裝文檔并通過向負責執行服務或存儲所需文檔的某一(些)“服務器”傳送恰當的信息來使服務被遠程地執行。當然,為了使客戶機能夠對下裝的文檔進行處理,必需以能允許客戶機顯示或執行這些文檔的格式來提供這些文檔。
在Internet的開頭,這種兼容性沒有提出大的挑戰。存儲在服務器中的許多文檔是簡單的平面文本(flat text即ASCII))文件,在利用例如TCP/IP這樣的標準協議被下裝之后,可以利用公用文本編輯程序或查看程序(viewer)將它們顯示在客戶機上。后來,在Internet服務器上可得到各種格式(TIFF、GIF、JPEG等)的平面圖象文件,它們要求在客戶機上應有專門的圖形查看程序。隨著存儲在Internet上的文檔的數量和文檔格式的類型的增多,顯然需要使用戶能夠無痛苦地瀏覽各種Internet文檔、甚至混合格式(例如包含ASCII文本和格式化不同的圖形的復合文檔)的Internet文檔和容易地找出并觀看與剛下裝的文檔有關的其它文檔。“全球網(World-Wide Web)”滿足了這種需要。
“全球網”(world wide web(“WWW”))鏈接組成了Internet的許多服務器,每一服務器存儲由唯一的全球資源定位符(URL)標識的文檔。存儲在Web服務器上的許多文檔是用稱為HTML(超級正文標記語言)的標準文檔描述語言來書寫的。利用HTML,Web文檔的設計者能夠使超級正文鏈接或注釋而與文檔中特定的字或短語相連系(這些超級正文鏈接識別其它Web文檔的URL或提供與字或短語有關的信息的同一文檔的其它部分)并規定可視狀況和Web頁(pages)的內容。
用戶利用運行在與Internet連接的Web客戶機上的Web瀏覽程序(Webbrower用來顯示HTML文檔并與Web服務器通信的計算機程序))來存取文檔。一般來說,這是由用戶進入所需文檔的URL或在由利用該Web瀏覽程序觀看的文檔內選擇(由該Web瀏覽程序作為強亮度的字或短語進行顯示的)超級正文鏈接來實現的。Web瀏覽程序然后將該被請求文檔的HTTP(超級正文傳送協議)請求發送給由被請求文檔的URL標識的Web服務器。作為響應,被指定的Web服務器也利用HTTP向Web瀏覽程序返回被請求的文檔,Web瀏覽程序局部地顯示該文檔,包括與該文檔相關的任何文本和圖象。Web和Web瀏覽程序所提供的文檔輸送能力和易于使用的特點是非常寶貴的。但是,如果HTML和Web能為HTML文檔中的嵌入式應用提供支持,則它們將更加有用。
目前沒有辦法在HTML Web頁內嵌入可執行代碼段或與可執行代碼段的鏈接,以使該代碼段在Web客戶機上可執行。由于被嵌入的代碼段的范圍從交互地運行在Web頁內的模擬、聲音剪輯或圖象剪輯到可由嵌入復合文檔的Web瀏覽程序的用戶進行觸發的通信例行程序或應用程序,所以這種功能將是非常有用的。此外,這些功能可用來使用戶能夠從Web服務器下裝數據,不必考慮使合適類型的處理程序駐留在它們的Web客戶機上。即嵌入某一類數據的Web文檔還可以包括用于該數據的合適的處理程序的地址,所以如果需要的話,用戶的Web瀏覽程序能夠找出、下裝并執行該數據所需的處理程序。
除了Web頁(page)中嵌入式應用(embedded applications)的使用外,在計算機控制設備的網絡內被嵌入文檔的其它使用也是顯而易見的。例如,在家庭娛樂系統中,在這種系統中有多個部件,每一部件有唯一的命令集(有時非常復雜)和唯一的用戶接口(通常是非直觀的),可以用具有嵌入應用能力的文檔來提供非常適用的通用遙控。這種系統將使用戶能夠利用與視覺有關的遙控設備來與各種部件相互作用,與視覺有關的遙控設備顯示用戶控制任選項(遠程方對此一無所知)和其它信息,例如從被控的部件下裝的上下文有助于感受信息和圖形。即這種通用遙控將能夠對沒有關于其功能的預編程知識的設備進行控制。
因此,需要有一種通過網絡在計算機控制的網絡設備之間傳送的文檔中嵌入應用或代碼段的系統和方法。這種系統和方法應當允許客戶機請求和從服務器接收可執行程序,客戶機然后能夠在被嵌入了應用的文檔的范圍內執行該可執行的程序。可執行程序應當至少有四種類型(1)輸出代碼,一旦被執行就產生可視或可聞的表示(例如圖形或聲音模擬),(2)元知識(meta-knowledge)代碼,能夠勸告用戶考慮與被嵌入了代碼段的文檔合法地相互作用,(3)上下文代碼,能夠檢測和顯示被嵌入了代碼段的復合文檔的上下文處理,以及(4)用于被嵌入數據的處理程序。
總而言之,本發明的在計算機網絡內傳送嵌入文檔的系統和方法滿足了以上所提出的要求。
具體來說,本發明是在包括至少一臺服務器和至少一臺客戶機的網絡內傳送嵌入文檔的系統,各服務器和客戶機包括一計算機控制器和一存儲器,并具有唯一的網絡ID(標識)。系統包括了在客戶機的計算機控制器上可執行的請求程序(requestor),它被配置來控制該客戶機利用網絡發送的信息。這些信息之一是指示某一服務器向該客戶機傳送特定復合文檔的文檔請求信息,復合文檔是引用或包括可以是可執行的代碼段、平面文檔或其它復合文檔的多個嵌入文檔的文檔。
本發明的另一個方面是在服務器的計算機控制器上可執行的一供給程序(provider)。該供給程序對傳送給該服務器的信息作出響應。例如,該供給程序被配置來對文檔請求信息作出響應,使服務器向客戶機傳送特定的被請求復合文檔。一旦接收到特定的復合文檔,請求程序就被配置來檢索至少被該特定的復合文檔引用的、沒有存儲在客戶機的存儲器內的嵌入文檔的一子集,并產生包括平面文檔和可執行代碼段的組合的復合文檔。
本發明還提供在網絡內傳送嵌入文檔的方法,該網絡包括與之連接的至少一臺服務器和至少一臺客戶機,各服務器和客戶機包括一計算機控制器和一存儲器,并具有唯一的網絡ID。作為該方法的第一個步驟,一客戶機通過網絡向特定服務器發送文檔請求信息,該文檔請求信息指定將由該特定服務器返回給該客戶機的特定復合文檔。然后,響應該文檔請求信息,該特定服務器將該特定的復合文檔返回給該客戶機。該復合文檔包括對多個嵌入文檔(embedded document)的引用,每一嵌入文檔具有選自可執行代碼段、平面文檔和其它復合文檔的類型。一旦從服務器接收到復合文檔,客戶機就發出多條文檔請求信息,以便通過網絡檢索被該復合文檔引用的、沒有存儲在客戶機的存儲器內的任何平面文檔和可執行代碼段。最后,客戶機產生包括檢索的平面文檔和可執行代碼段的組合的復合文檔。
通過參考附圖結合實施例對本發明進行的詳細描述,將使本發明的其它目的及特點更加清楚。
圖1是最佳實施例的方框圖;圖2是圖1最佳實施例的更詳細的方框圖;圖3是表示最佳實施例如何響應用戶的設備控制選擇和來自顯示缺省文檔的初始化任選項的數據流的圖示;圖4是表示最佳實施例如何將復合文檔變換為組合文檔,然后變換為具有嵌入應用的輸出文檔的數據流的圖示;圖5是表示最佳實施例的步驟的流程圖;圖6是一另一實施例的表示,在該實施例中,圖1的客戶機、服務器和網絡分別是Web客戶機、Web服務器和Internet。
參看圖1,該圖表示最佳實施例的方框圖,圖1中多個設備外殼110a-c(enclosoure-110a-c(此后稱為“外殼”))利用通過設置在各相應外殼110a-c和遙控設備120中的射頻(RF)接收器/發射器118a-c、128接收和發送的RF傳輸與遙控設備120連網。在該最佳實施例中,遙控設備120起網絡客戶機(即文檔的使用者)的作用,而外殼110a-c起網絡服務器(即文檔的供給者)的作用,每一個都具有唯一的網絡地址。
每一外殼相當于家庭娛樂系統中的一臺典型設備。例如,外殼110a、110b分別相當于一臺TV(電視機)和一臺VCR(錄像機)。其它類型的外殼在圖1中用一般外殼110c來表示。除RF接收器/發射器118外,每一外殼110a-c還包括計算機控制器112a-c、特性設備114a-c和存儲器116a-c(它們中的一些是非易失的),它們全都與控制器112連接。
每一特性設備執行人們利用外殼標識的功能。例如,在外殼110a、110b分別是電視機外殼和錄像機外殼的場合中,相應特性設備就是電視機調諧器/顯示器114a和錄像機調諧器/記錄器/播放器114b。一般來說,可以利用設置在外殼110中的前面板手動地控制這些設備。或者在最佳實施例所討論的遙控模式中,根據遙控設備120通過RF網絡發送的正確控制信息利用設備的本地控制器112來控制各特性設備114。本發明的關鍵之一是這些控制信息以及如何控制一特定設備的知識沒有預先存儲在遙控設備120內。相反地,遙控設備120要動態地從被控制的外殼110中下裝其所需的任何信息,包括可執行代碼段和平面文件。對于每一外殼110a-c,這一控制信息和控制器112a-c的操作系統被非易失地存儲在存儲器116a-c中。
遙控設備120(此后稱為“遠程”(“remote”)或“遙控”(“remote control”))是能夠控制任一外殼110a-c并利用程序引導用戶控制外殼110a-c的適應性強的通用遠程。遙控設備120的主要部件包括RF發射器/接收器128、計算機控制器122、存儲器126(它們中的一些是非易失的)、多重模態(multimode)輸出設備130、用戶輸入設備132和名字服務器(name sever)134,它是一段在控制器122中運行的軟件,所有這些部件相互連接。計算機控制器122會同存儲器126協調遙控設備120的部件的所有操作,存儲器126存儲了控制器122的操作系統、初始化程序及文件以及從外殼110a-c下裝的信息。用戶利用能夠顯示靜止圖象或視頻圖象和能夠輸出聲音的用戶輸入設備132和輸出設備130與遠程120相互作用。用戶輸入設備132可以與輸出設備130不同(例如鍵盤),或者它可以是覆蓋了輸出設備130的顯示及圖象部分的觸敏(touch sensitive)矩陣,它使用戶能夠與該輸出設備上的圖象相互作用。在用戶輸入的基礎上,控制器122發送不同的控制信息給外殼,在先遙控設備120已從正在被控制的外殼下裝了這些信息和確定要發送哪一條信息的步驟。
現在參看圖2討論外殼110、遙控120以及它們之間交換的信息的其它詳情。
參看圖2,該圖是表示遙控設備120正在與一個設備外殼110相互作用的最佳實施例的詳細方框圖。它表示了現在被描述的輸出設備130和存儲器126、116的其它詳情。
輸出設備130包括兩個不同的部分,能夠顯示視頻或靜止圖象的顯示部分130a和能夠播放聲音剪輯(clips)的音頻部分130b。這兩種不同的輸出方式由輸出設備130來提供,以便能夠完全實現由控制器122提供的輸出文檔170的所有特性。
遙控設備120的存儲器126提供非易失和易失存儲能力,非易失存儲能力被提供來存儲在初始化時遙控設備120所需的程序和數據項目。這些非易失地存儲的項目包括初始化程序126.1、缺省文檔(default document)126.2、名字服務器登記(name sever registry)126.3(即設備110a-c的網絡地址)和操作系統126.5,操作系統126.5包含實時操作系統內核(kernel)126.4。操作系統126.5是每當遙控設備120被加電和正在工作時在控制器122中執行的程序。它的任務包括處理控制器122與外部設備、例如用戶輸入設備132、顯示器130和RF發射器/接收器128的相互作用,管理正在由控制器122執行的程序(例如將程序裝入存儲器126用于執行和處理對外部設備存取的程序請求)。操作系統126.5能夠按照兩種方式中的至少一種進行工作。當操作系統126.5按照單任務模式起作用時,就一次完成一個地執行軟件作業,不考慮外界時間約束。操作系統126.5也能夠按照在外界施加的時間約束下同時執行多個作業的多任務實時模式進行工作。這些實時能力由實時內核126.4提供,實時內核126.4確定操作系統如何在多個作業之間分配控制器122的處理時間,以便各個作業實時地運行。如以后將要說明的那樣,這些實時能力是最佳實施例所必需的,在最佳實施例中,多個代碼段、它們中的一些提供了用戶的交互性,能夠同時在控制器122上運行。現在來說明控制器122如何被初始化,這一處理由初始化程序126.1來驅動。
參看圖3,所示的數據流的圖示表示控制器112和122響應某些典型的用戶與初始化程序126.1的相互作用而執行的數據變換/傳輸動作。該圖示把數據對象表示為矩形,把對數據對象起作用的部件表示為菱形。某些菱形出現多次,代表執行多次動作的部件,例如遠程控制器122。每當遠程120被加電就由操作系統126.5執行初始化程序126.1,在把遠程120的控制交給用戶之前執行某些內務處理(housekeeping)例行程序。在這些內務處理任務中,初始化程序126.1使控制器122向多模態輸出設備130輸出缺省文檔126.2,使用戶能夠獲得一組可選擇的遠程任選項(option)。這個缺省文檔126.2定義了不必首先在網絡上發送信息就可被控制器122執行的一組用戶可選擇的外殼控制任選項210(被鏈接到顯示的控制任選項210′)和遠程設置任選項(被連接到顯示的設置任選項212′)。在該最佳實施例中,每一外殼控制任選項210包括規定要被控制的設備110的本地名字的第一字段,該本地名字與在名字服務器登記126.3中注冊的設備的名字相關,還包括當用戶從顯示器130選擇該控制任選項時規定給在第一字段中被命名的設備發送信息的名字的第二字段。例如,參看圖3,缺省文檔項目210a的兩個字段是device=TV_enclosure;andmessage=req_doc(control TV)。
這一特定的項目被鏈接到由控制器122顯示為“control_TV”210a′的用戶可選擇的外殼控制任選項。
當用戶從顯示器130選擇控制任選項210′之一時,控制器122通過查詢名字服務器登記126.3確定合適設備的網絡ID,然后向該被指定設備發送相關的信息。例如,如圖3所示,當用戶選擇被顯示任選項210a′(“control_TV”)時,控制器122就確定TV外殼具有網絡地址110a,然后向該地址發送要求“control_TV”文檔的文檔請求信息150。一旦接收到文檔請求信息,控制器112就在其操作系統116.1的控制下處理該信息并相應地作出響應。這一響應可以是實施如在TV信道中進行調諧這樣的動作或將復合文檔140返回給遙控120。例如,在圖3的情況下,TV控制器112a簡單地將復合文檔“control_TV”140a的內容返回給控制器122,該內容規定了控制器122在多重模態顯示器130上顯示用于控制TV114a的一組基本操作。
如上所述,缺省文檔126.1還提供用戶可從用戶輸入設備132選擇系統配置任選項212(被鏈接到被顯示系統任選項212′)的表。注意這些任選項不包括允許用戶“安裝新網絡設備”的任選項。這是因為最佳實施例自動地執行網絡安裝的緣故。在這一自動安裝過程中,只要用戶插入新的外殼110,該新外殼的控制器112就“喚醒”,在其操作系統161.1的控制下開始工作。因為識別了其“新”狀態,所以操作系統116.1要求其相關的名字服務器119登記該外殼。作為響應,該名字服務器119通過網絡向與網絡鏈接的其它外殼通報該新外殼的名字和地址。一旦接收到這一信息,在其它外殼的控制器112和122上運行的名字服務器就通過以該新設備的網絡地址和名字更新它們的名字服務器登記來記錄該新外殼。例如,如果用戶將激光盤播放機110c、調諧器110d和CD播放機110e加入至網絡,則在控制器122上運行的名字服務器就將如圖3所示地把激光盤播放機、調諧器和CD播放機的項目加入到名字服務器登記126.3。在記錄了新外殼110c-e之后,控制器122從每一外殼下裝初始信息的名字(例如control_TV信息)和控制器122把這些引用加到缺省文檔126.2作為控制任選項210c′-e′。
如果遠程120丟失其存儲器(包括名字服務器登記126.4)或如果一新的遠程120被加入到網絡,就編程該空白區或新的遠程120來通投要求外殼110進行自我登記的請求信息,如果這樣做合適的話(某些外殼可能不與該遠程兼容)。作為響應,外殼將如上所述地進行自我登記。在網絡領域中眾所周知的防沖突程序保證了每一進行了登記的外殼都被允許對網絡進行存取。
除存儲在網絡上的所有外殼的地址外,每一名字服務器119、134列出存儲在其存儲器116、126中的所有文檔(包括復合文檔、平面文件和代碼段)以及存儲在其它網絡節點上的其它可能相關文檔的名字及內部地址。這一信息使控制器122能夠容易地定位文件(以進行傳送或顯示)。Sanjay Radia、Michael N.Nelson和Michael L. Powell發表于1994年9月的SunSoft公司的關于Spring Distributed Object-Oriented Operating System的論文匯編“SpringCollection”上的論文“The Spring Name Service”描述了名字服務器的這些及其它方面的其它信息,該論文在此作為參考文獻。
再參看圖2,設備110的存儲器116包括復合文檔140、平面文件142、代碼段144和每當設備110被加電操作系統116.1就控制控制器112的操作。這些對象140、142和144封裝了遠程120控制存儲這些對象的設備110的操作所需的所有信息。在最佳實施例中,每一復合文檔140包含要被控制器122以坐標的方式、通常在顯示器130的一個窗口中進行顯示/執行的平面文件引用(FF_refs)、代碼段引用(CF_refs)和其它復合文檔(CD_refs)引用。例如,根(root)復合文檔、例如上述control_TV文檔,包含了對當被控制器122將其一起進行顯示時呈現TV的基本控制任選項的頂層列表的對象140、142、144的引用。在這一方法中,平面文件引用(FF_refs)涉及將要被控制器122輸出的文本、圖形或聲音文件,代碼段引用(CF_refs)涉及將要被控制器在顯示復合文檔140時執行的嵌入式應用或涉及在復合文檔140中被引用的平面文件142的處理程序。
在最佳實施例中,每一CD_ref、FF_ref或CF_ref包括兩個字段“addr”(文檔地址);和“posn”(顯示位置,不用于聲音文件)。
除一般把正在被引用的對象存儲在與引用文檔相同的網絡節點上的最佳實施例外,“addr”字段按照WWW超鏈接的方式規定被引用對象的唯一地址。“posn”字段向控制器122指出當控制器122顯示復合文檔140時該對象將位于何處。
平面文件142封裝了兩類信息,內容和屬性。內容是相當于平面文件表示什么的數據,例如文本、聲音或圖象數據。屬性定義關于內容的元知識(meta-knowledge),包括如何格式化數據(這隱含有其處理程序的類型的意思)和應如何顯示/發聲。例如,一般的平面文件屬性可以指出內容是ASCII、HTML或Postscript格式化的文本、MIDI或WAV格式化的聲音或JPEG格式化的圖形。由于這種屬性信息向控制器122指出了在內容被輸出給多重模態輸出設備130之前應如何對其進行處理,所以它是必不可少的。
代碼段144也封裝了兩類信息,在控制器122上是可執行的嵌入式應用的二進制代碼和與該二進制代碼相關的屬性。例如,假如代碼段144a是在視覺上模擬某些設備控制處理的程序,則該代碼段的屬性就可以在代碼段144a應當運行時以引用的復合文檔定義窗口的屬性。在最佳實施例中,嵌入式應用可以包括運行仿真序列的程序表示用戶如何利用被顯示在顯示器130上的任選項選擇復雜設備的功能、確定當用戶選定一具體任選項時要被發出的一系列文檔請求信息的程序、或者甚至能夠回答用戶關于編程設備110的問題的專家系統。
但是,通常在公用復合文檔140的上下文情況下,大多數從外殼110傳送至遠程120的一般的嵌入式應用144都是與從同一外殼110傳送至遠程120的平面文件142兼容的處理程序。這是因為為了實現真正的通用性(遠程120能夠顯示/執行由任何外殼110提供的任何信息的概念),最佳實施例假定了控制器122對關于顯示由不同外殼110提供的任何類型的平面文件一無所知的緣故。在這一假定下進行操作,則對于要在遠程顯示器130上顯示的被引用平面文件142,控制器122必需能夠存取到與該被引用平面文件142兼容的處理程序的代碼段。它一旦被控制器122裝入,該處理程序就將顯示/處理該被引用平面文件142并管理在該平面文件將要被顯示的顯示器130上的實時狀態。
例如,按鈕型(button-type)的平面文件可以包括小說《戰爭與和平》的封面的數字化的JPEG圖象以及包含該小說全部正文的平面文件的網絡地址。并需要該平面文件的相關處理程序以使在顯示器130上按照合適的大小和在合適的屏幕位置處顯示該封面。該平面文件的處理程序還可以包括每當用戶選定了顯示器130上的顯示該封面的區域就被觸發的方法,使控制器122利用該平面文件內包含的地址發送請求《戰爭與和平》的正文的網絡信息。
在最佳實施例中,處理程序的可執行代碼不要與被處理的平面文件一道被封裝(packaged),而是通過引用其相關平面文件的復合文檔中的CF_ref被經常引用。或者,當僅利用被引用平面文件的屬性就能夠明確地表明處理程序的標識時(例如,如果該文件是MIDI聲音,為了播放該文件,控制器122將簡單地請求網絡上的MIDI設備驅動器),就不需要該處理程序的CF_ref。這樣做(數據和處理程序的可執行代碼分離)的一個優點是由于數據文件被典型地構成(即數據文件、例如WAV文件通常不與它們的處理程序一道被封裝),所以遠程控制器120保持與數據文件的后向(backward)兼容,同時能夠無縫隙地處理未知數據文件的所有樣式。這樣做還避免了需要遠程120不必要地多次下裝同一處理程序的低效。
在最佳實施例中,即使平面文件的最簡單的類型(例如卷動ASCII文本)也需要在遠程120上運行的相應的處理程序代碼段。在引用許多不同格式的平面文件的復雜復合文檔的情況下,假定沒有相應的處理程序在局部上可為控制器122所用,則這種狀況將導致處理程序代碼段的大量下裝。最佳實施例通過在存儲器126中預先存儲用于公用平面文件的數據格式、例如WAV和MIDI聲音、ASCII文本和JPEG圖形的處理程序代碼段而大大地減少了這種危險。
參看圖4,它是說明被控制器請求的一特定復合文檔140a在正被輸出給多重模態顯示器130之前如何被處理的數據流圖示。如圖3所示,該圖示把數據對象表示為矩形而把對這些數據對象起作用的部件表示為菱形。某些菱形出現多次,代表在數據流中執行多次動作的部件,例如遠程控制器122。
如以前參看圖3所進行的描述那樣,假定用戶已選定了觸發控制器122以請求TV外殼110a的“control_TV”文檔140a的例如“control_TV”這樣的任選項,作為響應,TV設備已返回圖4所示的復合文檔140a。這一文檔140a包括對兩個平面文件142a、142b的引用140.1,第一個平面文件要被放置在相應于被顯示復合文檔的窗口上的位置P1處(注意由于文檔142b是聲音文件,所以它沒有相關的位置)。文檔140a還包括對代碼段144a和144b(分別具有各自的顯示位置P3和P4)以及對代碼段144c和144d(它們分別是平面文件142a、142b的處理程序)的引用140.2。最后,文檔140a包括對復合文檔140b的引用140.3,該復合文檔140b將要被放置在顯示器130上的位置P5處。復合文檔140b包括對平面文件142c的引用和用于該文件的處理程序144c,該處理程序144c與在復合文檔140a中已經被引用的處理程序相同。
控制器122根據復合文檔140a建立組合文檔160,組合文檔160由控制器122存儲在存儲器126的易失部分中作為被存儲的組合文檔126.7(圖2)。一般來說,組合文檔160是已遞歸地求解了對代碼段或對平面文件/處理程序的所有引用的復合文檔140的內部表示。例如,在圖1的復合文檔140a的情況下,組合文檔160包括平面文件142a、142b、142c的組合版本(version)142a′、142b′、142c′,以及代碼段144a-d的組合版本144a′-d′。注意一對象的組合版本組合了實際對象的信息(例如,在平面文件的情形中,內容和屬性)和該對象的輸出位置,如果相關的話。這一信息使控制器122能夠(利用合適的處理程序)將組合的復合文檔160變換成為格式化的輸出文檔170,該格式化的輸出文檔170能夠按照由正在被控制的具體設備110的設計人員設想的方式在多模態輸出設備130上被直接輸出。
例如,在圖4中,相應于能在顯示部分130a上被輸出的圖象的輸出文檔170b定義了位于位置P1、P3、P4和P5的窗口,輸出的平面文件142a″、142c″和執行代碼段144a″、144b″在這些窗口中由控制器122同時輸出。這些窗口的每一個都在代碼段144a″-c″的控制下,例如,被顯示平面文件142a″、142c″都在可執行代碼段/文本處理程序144c″的控制下被顯示。執行代碼段144a′-d″可以是四種類型中的一種(1)輸出代碼,一旦被執行就產生可視或可聞的表示(例如圖形或聲音模擬),(2)元知識代碼,能夠勸告用戶考慮與被嵌入了代碼段的文檔合法地相互作用,(3)上下文代碼,能夠檢測和指示被嵌入了代碼段的復合文檔的上下文處理,以及(4)處理程序用于被嵌入數據(如上所述)。第一種可執行代碼段的一個例子是說明用戶如何把他們的電纜與TV外殼110a的后部連接的模擬。第二種代碼段的例子是靈巧求助應用程序能夠告訴用戶如何選擇顯示平面文件142a″的功能。最后,第三種代碼段的例子是監測流向和流出遠程控制器120的控制器通信量、然后例如通過擺動仿真手來向用戶指出傳輸正在進行的靈巧圖符或卡通。
因為多個代碼段和平面文件也許需要被同時地輸出給輸出設備130,所以需要實時內核126.5來在感覺上實現實時輸出和避免用戶的失望。最后,因為平面文件142b″是聲音文件(例如WAV文件),所以控制器122利用合適的處理程序144d″對其進行處理并將所獲得的實時聲音170b輸出給多模態輸出設備的聲音部分130a。
控制器建立組合文檔的方法如圖5所示,該圖是最佳實施例的方法的流程圖。
如以上參看圖3所描述的那樣,最佳實施例的方法的第一步是顯示缺省文檔126.2,用戶可從缺省文檔中選擇一些基本任選項(250)。一旦用戶選定了這些任選項中的一個,控制器122就從網絡取出合適的文檔(252)。例如,如上所述,當用戶選定了control_TV任選項時,控制器122就向TV110a發送要求control_TV文檔的文檔請求信息。一旦接收到復合文檔140,控制器122就確定在當地是否能存取處理該第一個復合文檔所需的所有文檔(254)。如果不能夠(254,否),控制器122就從網絡取出在當地得不到的所有所需文檔(256)。例如,在圖4所示的情況下,在顯示control_TV文檔之前,控制器122從TV外殼110a下裝被引用的平面文件142a-c和代碼段144a-d。這些對象的每一個都被暫存在存儲器126中(258)作為被暫存的下裝對象126.6。
在最佳實施例中,參看圖5討論的所需文檔可以包含兩種不同類型的信息。首先,所需文檔可以是在被下裝的復合文檔中被明顯地引用的對象(平面文件、代碼段或其它復合文檔)。這些明顯地被引用的對象被包括在組合文檔160中。這種包含處理是遞歸的,可以進行下去,直到葉層(leaf level)對象(即沒有被引用的復合文檔對象的對象)最后被控制器122檢索到為止。
其次,所需文檔可以是剛被檢索的某一類文件的未被引用的處理程序,所需處理程序的標識由被嵌入文檔的屬性字段確定。例如,如果平面文件142b是WAV聲音文件,而控制器122當前在當地得不到WAV聲音文件處理程序并且該處理程序沒有在復合文檔140a中被引用,則控制器122就將向所有被連網的設備110發送要求合適的聲音處理器的請求。一旦接收到該處理程序,控制器122將安裝該處理程序并根據相關的平面文件142的內容開始執行該處理程序。或者,控制器122能夠把該處理程序與相關的平面文件一道暫存在存儲器空間126.7中,并在組合文檔160的余下部分做好了輸出準備時播放該平面文件。
在所有嵌入復合文檔已被遞歸地檢索之后(即在建立了組合文檔160之后),控制器122就產生完整的輸出文檔170,控制器122把該完整的輸出文檔輸出給多重模態輸出設備130(260)。在文件類型的基礎上,輸出文檔170的不同部分被傳送給輸出設備的不同部分。例如,在平面文件是聲音文件的情況下,其相應的輸出文檔170b被傳送給輸出設備130的聲音部分130b。文檔140a的其它被嵌入文檔,所有這些被嵌入文檔都是與圖形有關的被包括在輸出給輸出設備130的顯示部分130a的輸出文檔170a中。在某些平面文件142和/或可執行代碼段144涉及到視頻數據的產生的情況下,這些對象也被輸出給顯示部分130a。或者,控制器122能夠當組合文檔160的完整部分一做好準備就把它們輸出給輸出設備。
一旦完整的組合文檔已輸出給輸出設備130,控制器122就為用戶的交互作用提供保證,在這種用戶交互作用中,用戶能夠從用戶輸入設備132選擇各種任選項(260)。如果用戶選擇需要控制器通過網絡取出文檔的任選項,就重復該方法的所有上述步驟。當然,在某些情況下,例如在圖3所示的情況下,用戶能夠選擇遙控設備120本身的任選項,例如“設定時間”212a′、“設定顯示參數”212b′或“設定聲音參數”212c′。
最佳實施例涉及被連網的、計算機控制的家庭娛樂設備和可被用來根據下裝的復合文檔控制各個部件的兼容的計算機控制的遙控設備。但是,該最佳實施例的系統和方法也適用于計算機網絡。
例如,在圖6所示的一替代的實施例中,設備外殼110被Web服務器310代替,而遙控120被Web客戶機代替。在Web客戶機上運行的Web瀏覽程序322執行以上對于控制器122所描述的各種復合文檔文件檢索、處理以及輸出操作。某些控制器的動作,例如因用戶選擇引用而下裝唯一指定的文檔已經由許多Web瀏覽程序執行。但是,前述與該替代實施例不同,沒有配置Web瀏覽程序以下裝然后運行(可任選地以實時方式)在Web文檔中被引用或被嵌入的可執行代碼段。這些能力由該替代實施例按照三種不同范圍進行提供。
首先,對代碼段的引用可被嵌入HTML(復合)文檔中,以便該引用由Web瀏覽程序作為超連接進行顯示,這種選擇使瀏覽程序下裝并運行該代碼段。其次,對代碼段的引用可被嵌入HTML文檔中,以便一旦接收到包括該代碼段的Web頁,Web瀏覽程序就自動地檢索并運行該代碼段。這種被包括的代碼段在提供動態知識方面是有用的,不管使用什么樣的瀏覽程序總是與某一頁面相關。例如,利用了本發明的這一特點的Web頁可以提供嵌入式應用,該嵌入式應用根據(為該嵌入式程序)所知道的網絡活動模型和時刻從若干可供選擇的服務器中為引用文檔選擇最好的(即最不忙的)服務器。最后,如在上述聲音文件的情況下,根據該可替換實施例操作的Web瀏覽程序能夠在以前接收的數據文件的屬性的基礎上或當處理程序的URL在引用兼容的平面文件的似同一HTML的文檔中被規定時下裝合適的處理程序。
在WWW環境中將起不同作用的最佳實施例的一個特點是服務器登記,這是服務器使客戶機知道它們的存在的過程。在WWW環境中,服務器和客戶機的連接不是直接的。因此,新的Web服務器的名字服務器不能夠利用Web客戶機的名字服務器來簡單地登記它們的名字和地址。但是,可以實現另一簡單的登記過程,在這一過程中,一旦進行聯機或改變它們的Internet地址,Web服務器就利用合適的目錄、例如Yahoo自動地進行登記。客戶機的名字服務器然后可以沿該目錄周期性地登記新的服務器。
總之,圖6的替代實施例是實施本發明方法和系統的Web瀏覽程序和一組兼容的似HTML的復合文檔。具體來說,該替代的Web瀏覽程序322能夠處理似HTML的文檔可執行代碼段的顯式引用或在與數據文件相關的屬性字段中被暗指的引用。在該替代實施例中,幾乎不需要對已有Web服務器310進行改動,在Web服務器側的僅有的真正的變化是被存儲在各個服務器上的HTML文檔的形式。就是說,在該替代實施例中,給HTML文檔增加新的字段來嵌入可執行代碼段和提供可能為要被Web瀏覽程序322下裝的合適的處理程序所需的任何附加文件屬性,由此使Web瀏覽程序在沒有關于文件格式的任何先驗知識或者在當地得不到合適的處理程序的情況下也能夠顯示/處理任何類型的平面文件。
雖然相對于一些具體實施例描述了本發明,但這些描述都是作為本發明的例證,不應被看作是對本發明的限制。在不脫離本發明權利要求所限定的本發明的構思和范圍,本領域的技術人員可以作出各種改進。
權利要求
1.用于網絡中客戶機的存儲器,該網絡包括與所說網絡連接的至少一個服務器和至少一個客戶機,所述服務器和所述客戶機各包括一計算機控制器和一存儲器并具有唯一的網絡ID,所述客戶機的所述存儲器包括一復合文檔,其含有至少一個對嵌入式應用的引用,所述引用選自顯式引用或隱式引用,使得一旦通過所述網絡從所述服務器接收到所述復合文檔,所述客戶機就被配置,以便借助于所述客戶機的計算機控制器來下裝并執行所述被引用的嵌入式應用。
2.如權利要求1的存儲器,其中,所述復合文檔包括對平面文件的引用,其中對嵌入式應用的一種所述顯式引用是對所述平面文件處理程序的引用,使得一旦通過所述網絡從所述服務器接收到所述復合文檔,所述客戶機就被配置來下裝所述平面文件和所述處理程序、然后利用所述處理程序處理所述平面文件,如果所述處理程序未駐留在所述客戶機上,所述客戶機就不能夠處理所述平面文件。
3.如權利要求1的存儲器,其中,所述復合文檔包括對可確定類型的平面文件的引用,其中一種所述隱式引用是對由所述可確定類型的所述隱平面文件處理程序的引用,使得一旦通過所述網絡從所述服務器接收到所述復合文檔,所述客戶機就被配置來下裝所述平面文件并根據所述可確定的類型從所述服務器之一下裝所述處理程序、然后利用所述下裝的處理程序處理所述平面文件,如果所述處理程序未駐留在所述客戶機上,所述客戶機就不能夠處理所述平面文件。
4.如權利要求1的存儲器,其中,所述復合文檔具有對包括所述嵌入式應用的多個嵌入式文檔的引用,所述存儲器包括被配置來將沒有存儲在所述客戶機的存儲器中的所述多個嵌入式文檔下裝到所述客戶機的請求程序模塊。
5.一種通過網絡傳送嵌入式文檔的系統,該網絡包括與所說網絡連接的至少一個服務器和至少一個客戶機,所述服務器和所述客戶機各包括一計算機控制器和一存儲器并具有唯一的網絡ID,所述系統包括在客戶機的計算機控制器上可執行的請求程序,所述請求程序被配置來控制由所述客戶機在所述網絡上發送的信息,所述信息包括指令特定的一個所述服務器向所述客戶機傳送特定復合文檔的文檔請求信息,其中復合文檔包括對多個所述嵌入文檔的引用,所述嵌入文檔具有選自可執行代碼段、平面文檔和其它復合文檔的類型;以及在服務器的計算機控制器上可執行的供給程序,所述供給程序被配置來對提供給所述服務器的所述信息作出響應,所述供給程序被配置來通過使所述服務器向所述客戶機傳送所述特定復合文檔來響應所述文檔請求信息;使得一旦接收到所述特定復合文檔,所述請求程序就被配置來利用文檔請求信息對未存儲在所述客戶機的存儲器中的所述特定復合文檔引用的所述嵌入文檔的至少一個子集進行檢索然后產生包括所述平面文檔和所述可執行代碼段的組合復合文檔。
6.如權利要求5的系統,其中,所述客戶機還包括由所述請求程序控制的多重模態輸出設備;所述請求程序被配置來向所述輸出設備輸出一個輸出復合文檔,其中所述輸出復合文檔包括相應于所述組合復合文檔中所包括的所述平面文檔的正文圖象;以及所述可執行代碼段的表示,所述表示由所述請求程序執行的所述代碼段中產生。
7.如權利要求5的系統,其中,所述請求程序是多任務操作系統;所述客戶機還包括被所述請求程序控制的多模態輸出設備;所述請求程序被配置來向所述輸出設備輸出一個輸出復合文檔,其中所述輸出復合文檔包括相應于所述組合復合文檔中所包括的所述平面文檔的正文圖象;以及所述可執行代碼段的表示,所述表示由所述請求程序從執行的所述代碼段中而產生;使得所述請求程序被配置來在輸出所述正文圖象的時候還同時以實時執行多個所述代碼段。
8.如權利要求5的系統,其中,被檢索的可執行代碼段封裝為其執行所需的所有數據和例行程序并被編碼,以使其可由所述客戶機執行。
9.如權利要求6的系統,其中,所述可執行代碼段的至少一個子集選自以下構成的組可執行的聲音剪輯;可執行的模擬;可執行的電影剪輯;可執行的自動收報機紙帶形式的信息;以及用于所述平面文檔的處理程序;所述客戶機被配置來執行所述可執行的代碼段。
10.如權利要求5的系統,其中,還包括與所述客戶機連接的名字服務器,所述名字服務器保持有對來自所述客戶機的信息作出響應的所述網絡上的所術服務器的至少一個子集的表,所述名字服務器被配置來每當由所述客戶機請求時就將來自所述表的信息返回給所述客戶機。
11.如權利要求5的系統,其中,所述服務器是Web服務器,所述客戶機是Web客戶機,所述網絡是Internet。
12.一種通過網絡傳送嵌入文檔的方法,該網絡包括與所述網絡連接的至少一個服務器和至少一個客戶機,所述服務器和所述客戶機各包括一計算機控制器和一存儲器并具有唯一的網絡ID,所述方法包括以下步驟(1)所述客戶機通過所述網絡向一特定的服務器發送文檔請求信息,所述文檔請求信息指定由所述特定服務器返回給所述客戶機的特定復合文檔;(2)響應所述文檔請求信息,所述特定服務器將所述特定復合文檔返回給所述客戶機,其中復合文檔包括對多個嵌入文檔的引用,每一所述嵌入文檔具有選自可執行代碼段、平面文檔和其它復合文檔的類型;(3)一旦從所述服務器接收到所述復合文檔,所述客戶機就發送多個document_request信息,以便通過所述網絡檢索沒有被存儲在所述客戶機的存儲器中的所述復合文檔引用的任何平面文檔和所述可執行代碼段;以及(4)產生包括所述平面文檔和所述可執行代碼段的組合復合文檔。
13.如權利要求12的方法,其中,所述方法還包括以下步驟所述客戶機向所述多模態輸出設備輸出所述組合的輸出復合文檔,所述輸出步驟包括在所述多模態輸出設備上顯示相應于所述組合復合文檔中所包括的所述平面文檔的正文圖象;以及執行所述可執行的代碼段并向所述多模態輸出設備輸出所述代碼段執行的表示。
14.如權利要求13的方法,其中,顯示所述平面文檔的所述步驟由所述執行代碼段的至少一個子集來執行,所述每一個子集是與至少一個所述平面文檔兼容的數據處理程序。
15.如權利要求12的方法,其中,所述方法還包括以下步驟所述客戶機向多模態輸出設備輸出所述組合的輸出復合文檔,所述輸出步驟包括在所述多模態輸出設備上顯示相應于所述組合復合文檔中所包括的所述平面文檔的正文圖象;以及執行所述可執行的代碼段并向所述多模態輸出設備輸出所述代碼段執行的表示;使得所述執行步驟被實時地和與所述顯示步驟同時地被執行。
16.如權利要求15的方法,其中,顯示所述平面文檔的所述步驟由所述執行代碼段的至少一個子集來執行,所述子集的每一個是與至少一個所述平面文檔兼容的數據處理程序。
全文摘要
在網絡中傳送嵌入式應用的系統和方法,計算機控制的網絡客戶機用戶,能夠請求和接收包括嵌入式應用和/或數據文件的復合文檔,它只能夠被沒有駐留在該客戶機上的處理程序進行處理(即成像或放音),每當客戶機接收到復合文檔,就確定它是否能獲得其中被引用的所有文檔,如果不,就請求得不到的文檔,請求程序包括一多任務實時內核,客戶機用戶能夠從包括嵌入式應用的服務器中下裝文檔,當其在該客戶機上被執行時,允許該客戶機利用從服務器下裝的命令控制服務器。
文檔編號H04L12/28GK1154514SQ9612201
公開日1997年7月16日 申請日期1996年10月22日 優先權日1995年10月23日
發明者詹姆斯·A·戈斯林 申請人:太陽微系統有限公司