專利名稱:以透明方式公開計算機生成文檔中嵌套數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明一般涉及跨不同的計算機生成的文檔管理數(shù)據(jù),尤其涉及用于以透明的方式公開計算機生成的文檔中的嵌套數(shù)據(jù)的方法和系統(tǒng)。
背景技術:
隨著計算機時代的到來,計算機和軟件用于已變得習慣于幫助他們寫作、計算、組織、準備演示、發(fā)送和接收電子郵件、制作音樂等的用戶友好軟件應用程序。例如,現(xiàn)代的電子文字處理應用程序允許用戶準備各種有用的文檔?,F(xiàn)代的電子表格應用程序允許用戶輸入、處理和組織數(shù)據(jù)?,F(xiàn)代的電子幻燈片演示應用程序允許用戶創(chuàng)建包含文本、圖片、數(shù)據(jù)或其它有用對象的各種幻燈片演示。
由這些應用程序生成的文檔、電子表格、演示等通常是從諸如其它文檔、電子表格、演示、數(shù)據(jù)庫、圖像等各種現(xiàn)有內容創(chuàng)建的。由此,這些所謂的復合文檔通常具有嵌入內容,這些嵌入內容可能會通過在否則是透明的文件中創(chuàng)建不透明區(qū)域來造成文檔中的問題。在許多嵌入情形中,在包含或接收應用程序(客戶機應用程序)和生成嵌入內容的應用程序(服務器應用程序)之間存在通信。
當這類復合文檔被保存和/或轉作他用(例如,用電子郵件發(fā)送給另一用戶、對其運行工具、由另一應用程序使用)時,會造成各種問題。與這類復合文檔相關聯(lián)的一種類型的問題包括意外的信息泄露。例如,當文檔包含文檔或其它文檔的部分(嵌入對象)時,通常難以精確地確定在該嵌入對象內包括了什么內容。例如,幻燈片演示文檔可包括嵌入的電子表格圖表,該電子表格圖片是公司的工資信息的視圖。從該演示內,它可如同它僅是對目標觀眾合適的工資信息的匯總那樣出現(xiàn)。實際上,嵌入的對象可包括提供與主要工資信息相關聯(lián)的所有細節(jié)的底層信息。在這一情形下,不加懷疑的經(jīng)理可能將該演示發(fā)送到目標觀眾,而沒有意識到到他/她已公開了公司中的每一員工的詳細的工資信息。
與這類復合文檔相關聯(lián)的另一問題包括軟件代碼和/或病毒的意外或甚至是故意的分發(fā)。盡管大多數(shù)反病毒掃描程序知道如何檢查與已知病毒相關聯(lián)的特定文件類型,然而這類掃描程序不一定支持對所有嵌入內容的掃描以確定嵌入的內容是否包含不可接受的代碼或病毒。
與這類復合文檔相關聯(lián)的另一問題包括與將這類文檔集成到現(xiàn)有應用程序解決方案相關聯(lián)的困難。一般而言,將嵌入內容儲存在文檔文件格式中的方式不同于原始的文檔格式。例如,演示中的嵌入圖表可能使用由演示格式所定義的用于具有某一類型包裝的圖表的圖表句法。即使給定的解決方案能夠與該演示句法集成,該解決方案也可能無法與該圖表句法集成。這一集成問題的后果可以是解決方案提供者/集成者可能需要對每一類型的嵌入內容構建自定義的應用程序解決方案,并且在大型組織或政府中,這可能是令人望而卻步的工作量,尤其是給定文檔的生存周期以及文檔解決方案和工具改變的速度的時候。
本發(fā)明正是相對于這些和其它考慮事項而做出的。
發(fā)明內容
本發(fā)明的實施例通過提供用于以透明的方式公開計算機生成的文檔中的嵌套數(shù)據(jù)的方法和系統(tǒng)解決上述和其它問題。依照一個實施例,提供了一種客戶機應用程序用于在向服務器應用程序文檔請求了用于嵌入到客戶機應用程序文檔中的對象之后,向服務器應用程序查詢可用文件格式的列表的機制。依照另一實施例,提供了一種客戶機應用程序用于向服務器應用程序文檔請求與嵌入對象相關聯(lián)的特定格式的機制。依照這些實施例,也提供了將一個透明的容器(文檔或對象)嵌套到另一透明的容器中的能力。例如,將一個文檔或文檔對象嵌套在另一文檔或文檔對象內允許可用于包含文檔或對象的文件格式可用于嵌入的文檔或文檔對象。一旦客戶機應用程序獲取了對服務器應用程序可用或與特定對象相關聯(lián)的文件格式信息,客戶機應用程序就可使用所獲取的文件格式,依照與嵌入對象相關聯(lián)的本機文件格式利用或操作嵌入對象。
當閱讀以下詳細描述并觀察附圖時,可以明白特性化本發(fā)明的這些和各種其它特征以及優(yōu)點??梢岳斫猓陨细攀龊鸵韵略敿毭枋鰞H是示例性和說明性的,并非局限所要求保護的本發(fā)明。
圖1是示出為本發(fā)明的實施例提供說明性操作環(huán)境的個人計算機的體系結構的框圖。
圖2是示出客戶機應用程序和服務器應用程序之間的交互的簡化框圖,用于從服務器應用程序文檔獲取關于嵌入到客戶機應用程序文檔中的嵌入對象的格式和其它信息。
圖3是依照本發(fā)明的實施例示出由本發(fā)明的方法和系統(tǒng)執(zhí)行的步驟的流程圖,用于公開與來自服務器應用程序文檔的、被嵌入到客戶機應用程序文檔的嵌入對象相關聯(lián)的嵌套數(shù)據(jù)。
具體實施例方式
如上文簡要描述的,本發(fā)明的實施例針對這樣的方法和系統(tǒng),該方法和系統(tǒng)用于公開與來自服務器應用程序文檔的、被嵌入到客戶機應用程序文檔中的對象相關聯(lián)的嵌套數(shù)據(jù),使得客戶機應用程序可理解并利用與嵌入的對象相關聯(lián)的格式、方法、機制和過程,以使嵌入的對象不會變?yōu)榭蛻魴C應用程序文檔中處于對客戶機應用程序的功能所及范圍或理解之外的不透明區(qū)域。這些實施例可被組合、可使用其它實施例、以及可做出結構上的變化,而不脫離本發(fā)明的精神或范圍。因此,以下詳細描述不應當在限制的意義上考慮,并且本發(fā)明的范圍由所附權利要求書及其等效技術方案來定義。
現(xiàn)在參考附圖,將描述本發(fā)明和示例性操作環(huán)境的各方面,貫穿若干附圖,相同的標號表示相同的元素。具體地,圖1和以下討論旨在提供對其中可實現(xiàn)本發(fā)明的合適的計算環(huán)境的簡要概括描述。盡管本發(fā)明將在個人計算機的操作系統(tǒng)上執(zhí)行的程序模塊的通用上下文中描述,然而本領域的技術人員可以認識到,本發(fā)明也可結合其它程序模塊來實現(xiàn)。
一般而言,程序模塊包括例程、程序、組件、數(shù)據(jù)結構以及其它類型的結構,它們執(zhí)行特定的任務或實現(xiàn)特定的抽象數(shù)據(jù)類型。此外,本領域的技術人員將理解,本發(fā)明可以用其它計算機系統(tǒng)配置來實施,包括手持式設備、多處理器系統(tǒng)、基于微處理器或可編程的消費者電子產(chǎn)品、小型機、大型機等等。本發(fā)明也可在分布式計算環(huán)境中實施,其中任務由通過通信網(wǎng)絡鏈接的遠程處理設備來執(zhí)行。在分布式計算環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設備中。
現(xiàn)在參考圖1,將描述用于實施本發(fā)明的各實施例的個人計算機2的說明性體系結構。圖1所示的計算機體系結構示出了常規(guī)個人計算機,包括中央處理單元4(“CPU”)、系統(tǒng)存儲器6(包括隨機存取存儲器8(“RAM”)和只讀存儲器(“ROM”)10)、以及將存儲器耦合至CPU 4的系統(tǒng)總線12。包含例如在啟動時有助于在計算機內的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)儲存在ROM 10中。個人計算機2還包括大容量存儲設備14,用于儲存操作系統(tǒng)16、諸如應用程序205等應用程序以及數(shù)據(jù)。
大容量存儲設備14通過連接至總線12的大容量存儲控制器(未示出)連接到CPU 4。大容量存儲設備14及其相關聯(lián)的計算機可讀介質為個人計算機2提供了非易失性存儲。盡管此處包含的計算機可讀介質的描述指的是大容量存儲設備,如硬盤或CD-ROM驅動器,然而本領域的技術人員應當理解,計算機可讀介質可以是可由個人計算機2訪問的任何可用介質。
作為示例而非局限,計算機可讀介質可包括計算機存儲介質和通信介質。計算機存儲介質包括以用于儲存諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術實現(xiàn)的易失性和非易失性,可移動和不可移動介質。計算機存儲介質包括但不限于,RAM、ROM、EPROM、EEPROM、閃存或其它存儲器技術、CD-ROM、DVD或其它光學存儲、盒式磁帶、磁帶、磁盤存儲或其它磁存儲設備、或可以用來儲存所期望的信息并可由計算機訪問的任一其它介質。
依照本發(fā)明的各實施例,個人計算機2可以使用通過諸如因特網(wǎng)等TCP/IP網(wǎng)絡18到遠程計算機的邏輯連接在網(wǎng)絡化環(huán)境中操作。個人計算機2可以通過連接到總線12的網(wǎng)絡接口單元20連接到TCP/IP網(wǎng)絡18。應當理解,網(wǎng)絡接口單元20也可用于連接到其它類型的網(wǎng)絡和遠程計算機系統(tǒng)。個人計算機2也可包括用于接收和處理來自包括鍵盤或鼠標(未示出)的多個設備的輸入的輸入/輸出控制器22。類似地,輸入/輸出控制器22可向顯示屏、打印機或其它類型的輸出設備提供輸出。
如上所述,多個程序模塊和數(shù)據(jù)文件可儲存在個人計算機2的大容量存儲設備14和RAM 8中,包括適用于控制網(wǎng)絡化個人計算機的操作的操作系統(tǒng)16,如來自華盛頓州雷蒙德市微軟公司的WINDOWS操作系統(tǒng)。大容量存儲設備14和RAM 8也可儲存一個或多個應用程序。具體地,大容量存儲設備14和RAM 8可儲存用于向用戶提供各種功能的應用程序205。例如,應用程序205可包括多種類型的程序,諸如文字處理應用程序、電子表格應用程序、桌面出版應用程序等等。依照本發(fā)明的一個實施例,應用程序205包括用于提供來自多個不同軟件應用程序的功能的多功能軟件應用程序套件??蓸嫵蓱贸绦蛱准?05的某些個別的程序模塊包括文字處理應用程序125、幻燈片演示應用程序135、電子表格應用程序140和數(shù)據(jù)庫應用程序145。這一多功能應用程序套件205的一個示例是由微軟公司生產(chǎn)的OFFICE。圖1中所示的其它軟件應用程序包括電子郵件應用程序130。
圖2是示出客戶機應用程序(客戶機)和服務器應用程序(服務器)之間的交互的簡化框圖,該交互用于獲取關于來自服務器應用程序文檔的、被嵌入到客戶機應用程序文檔中的對象的格式和其它信息。參考圖2,表示頂層容器的客戶機應用程序文檔215接收來自表示內部容器的服務器應用程序文檔的嵌入對象230。嵌入對象225表示被復制或移動到客戶機應用程序215,或由客戶機應用程序文檔215所指向的文本、數(shù)據(jù)、圖片、圖像、圖表等等。
客戶機應用程序205表示用于生成或編輯客戶機應用程序文檔的軟件應用程序。服務器應用程序210表示用于生成或編輯服務器應用程序文檔的軟件應用程序。客戶機應用程序205和服務器應用程序210可表示包含多個軟件應用程序的多應用程序套件,這多個軟件應用程序例如文字處理應用程序、電子表格應用程序、幻燈片演示應用程序、數(shù)據(jù)庫應用程序等等。另外,應當理解,客戶機應用程序205和服務器應用程序210可以是屬于單個應用程序套件的這多個應用程序中的兩個。另一方面,客戶機應用程序205和服務器應用程序210可以是由分布式計算網(wǎng)絡中的不同用戶或實體操作的單獨的應用程序,在分布式計算網(wǎng)絡中,客戶機應用程序205能夠如此處所描述的與服務器應用程序通信。
如圖2所示,嵌入對象225被嵌入到客戶機應用程序文檔215中,以將與嵌入對象225相關聯(lián)的數(shù)據(jù)、代碼或其它信息作為嵌入對象230插入到客戶機應用程序文檔215中。例如,客戶機應用程序205可以是文字處理應用程序,使用該文字處理應用程序可生成或編輯例如備忘錄等客戶機應用程序文檔215。為提供例如給定組織的所有銷售員工的工資信息等數(shù)據(jù)的圖表,客戶機應用程序文檔215的作者/編者可能期望嵌入來自例如電子表格文檔等由例如電子表格應用程序等服務器應用程序210生成或編輯的服務器應用程序文檔220的圖表對象225。如上文簡要描述的,用于將對象嵌入到客戶機應用程序文檔中的方法和系統(tǒng)的一個問題源于客戶機應用程序205不能夠負責生成和/或編輯客戶機應用程序文檔215來理解或讀取與嵌入對象相關聯(lián)的格式信息、屬性、方法、機制等,這些是由負責生成和/或編輯嵌入對象的服務器應用程序210給予嵌入對象的。
例如,以下是示例文字處理文檔的簡化可擴展標記語言(XML)表示,在該示例文字處理文檔中具有嵌入的幻燈片演示應用程序對象。本領域的技術人員應當理解,下文所示并描述的示例XML表示是簡化的,僅用于示例的目的,并非在任何方面局限此處所描述的本發(fā)明的實施例的應用或操作。參考以下的示例XML表示,包含在以下表示中在XML標記“<wbinData wname=″oledata.mso″”之后且在XML標記</wbinDaga>之前的信息表示嵌入到示例文字處理文檔中的幻燈片演示對象。如可以見到的,與嵌入對象相關聯(lián)的信息可能是生成或編輯例如文字處理文檔等相關聯(lián)的客戶機應用程序文檔的客戶機應用程序非常難以理解的(如果不是完全不能理解的話)。
<?xml version=″1.0″encoding=″UTF-8″standalone=″yes″?>
<?mso-application progid=″Word.Document″?>
<wwotdDocumentxmlnsw=http//schemas.microsoft.com/office/word/2003/wordml>
<wdocOleData>
<wbinData wname=″oledata.mso″>
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////DEANQAzADEANAAxADUAOQA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAgH///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAo9RcjOS6a7TCVdc9sz2e+UeMivhf3rqQ16rKUv5C1/GrIg50C2abLymb5dtQ0193p4PwRNzkJ+3vazrk5e5zmsU24+e1V75Pznd8785xzBOQBLAJUIHYhKSfq0nDgmiGYAM4ELgVnARcDFwHuACmA2YAFzgLnAe4F5wPuAS4BLgfnAZcD7gQXAQmARsBi4HKgErgA+AFQBHwQ+BFwJfBhYAlwFXA1cA3wE+Cjx2kZ0LVADLAU+BtQCdcB1wDLg48By4Hpl+w2obwRWAJ8E6oEg8CnVf64WxKLuHxEf6U1zzhxEqmiw3pgqY3/k3OcxXxFujscSsVDSCsY67HgwFo4mrYZIuMUWIbSiIRi3E3Y02ZQMx6IiinJ0iwXd4iV0/Koff3FcDQwRk2dfTpgcbxy7a/rvPbbB5Pg+bhj018qG1qaOqHVzOBJpi
sei7KUGaqUm6sBctehmCiNzRfAcx7yNnqX005ixXk0f9Z5zxNBXd73+Vn1r4Pv3+mnBpQ8/w/H+b5LzkftvIbkHawQ497aRnLObSM7b3STn5g/UN4Mk1/AjJOcxJ+</wbinData>
</wdocOleData>
<wp>
<wr>
<wt>
This is some text</wt>
</wr>
</wp>
依照本發(fā)明的各實施例,當客戶機應用程序文檔215請求嵌入對象以作為嵌入對象230嵌入到客戶機應用程序文檔中時,客戶機應用程序205查詢負責生成和/或編輯服務器應用程序文檔的服務器應用程序210,向該服務器應用程序文檔請求與所請求的對象相關聯(lián)的格式信息、屬性、方法、機制和/或其類似物??蛻魴C應用程序205向服務器應用程序210請求關于所請求的對象的信息,以允許客戶機應用程序205理解與所請求的對象相關聯(lián)的格式、代碼和其它屬性,并使客戶機應用程序205能夠依照由服務器應用程序給予嵌入對象的屬性來對所請求的對象進行操作,使得嵌入對象的代碼、格式和屬性變得對客戶機應用程序是透明且可用的。
如上所述,客戶機應用程序請求關于所請求的對象的信息,以使客戶機能夠更好地利用所請求的對象。依照現(xiàn)有且公知的OLE對象嵌入原理,嵌入對象可包括對客戶機應用程序205可用的各種信息。例如,元文件信息可被傳遞到客戶機應用程序,該信息是服務器應用程序從服務應用程序返回的圖像。但是,由于客戶機應用程序不理解嵌入對象的文件格式,因此依照現(xiàn)有方法,是由服務器應用程序給予客戶機應用程序用于顯示該對象的圖像。例如,如果電子表格對象被嵌入在文字處理文檔中,則該電子表格對象在文字處理文檔中顯示的視圖是電子表格對象的圖像。只要激活嵌入的對象,就更新該圖像,并且這通常是在用戶雙擊嵌入對象時發(fā)生的。其它信息可包括標識應當被調用來呈現(xiàn)嵌入對象的服務器應用程序的classID。即,classID映射到服務器應用程序。其它信息可包括關于文件的實際持久性的信息。依照一個實施例,該信息是IStorage格式的形式。例如,文字處理文檔內的電子表格對象如當它由電子表格應用程序(服務器)保存時所儲存的那樣類似地儲存。
依照本發(fā)明的實施例,元文件信息被儲存為任何客戶機應用程序可在需要時訪問的單獨圖像。例如,當保存圖像時,調查注冊表以確定與所請求的對象的classID相匹配的應用程序是否指示了該對象的內容類型,而非將信息作為簡單的二進制數(shù)據(jù)文件寫出。依照各實施例,內容類型標識了對象。例如,對于服務器文檔的圖像對象,與該對象相關聯(lián)的內容類型可以是“JPEG”或“GIF”。如果服務器應用程序標識了對象的內容類型,則確定與所標識的內容類型相關聯(lián)的文件擴展名是什么。如果確定了內容類型和文件擴展名,則客戶機應用程序可調出該內容類型并將正確的擴展名應用于該文件(對象)。客戶機應用程序然后可從服務器應用程序文檔中取出所請求的對象,并將所請求的對象作為客戶機應用程序的本機對象來處理,因為客戶機應用程序理解內容類型和文件擴展名。另外,可調查注冊表以確定該文件(請求的對象)的持久格式是否為IStorage格式。如公知的“.doc”格式等某些文件格式是IStorage格式的。依照本發(fā)明的實施例,對象數(shù)據(jù)流可被包裝在IStorage格式中,使得它也能由客戶機應用程序如此處所描述的那樣來操作。
依照一個實施例,對象可被嵌入在嵌入對象中。例如,嵌入在文字處理文檔中的圖表對象可進而包括來自幻燈片演示應用程序的、嵌入到圖表對象中的幻燈片演示對象。因此,幻燈片演示對象可以被嵌入在圖表對象中,圖表對象然后作為嵌入對象230被嵌入在客戶機應用程序文檔215中。依照本發(fā)明的各實施例,服務器應用程序210可請求和接收與嵌入到圖表對象中的幻燈片演示對象相關聯(lián)的格式信息、屬性、方法和機制,并且,例如文字處理應用程序等客戶機應用程序205最終可接收與來自示例電子表格應用程序以及與嵌入到圖表對象中的幻燈片演示應用程序對象相關聯(lián)的示例幻燈片演示應用兩者的嵌入對象相關聯(lián)的格式信息、屬性、方法和機制。
以下是示出一個容器(文檔或對象)嵌套在另一容器(文檔或對象)中的簡化XML表示。對于以下示例,考慮第一對象包括部件列表,并考慮嵌入對象包括部件標識信息。
<container>
<partslist>
<part id=”1”/>
<container>
<partslist>
<part id=1/>
<part id=”2”/>
</partslist>
</container>
<part id=”n”/>
</partslist>
</container>
依照一個特定的示例,可向“parts(部件)”分配實現(xiàn)類型,并且可用<pan id=″#″type=″item″/>來替換<part id=″#″>句法,用<part id=″#″type=″container″/>來替換嵌套的<container>。另外,可創(chuàng)建具有嵌套容器的繼承模型。例如,元數(shù)據(jù)可與容器(文檔或對象)相關聯(lián),該元數(shù)據(jù)與描述是否可在嵌入文檔或對象的部件中找到代碼。如下所示,該元數(shù)據(jù)關聯(lián)可通過使用<container>元素上的屬性來做出。
<container containscode=”false”>
<partslist>
<part id=”1”/>
…<part id=”n”/>
</partslist>
</container>
通過創(chuàng)建嵌套對象之間的層次結構,可解決與上述嵌套對象相關聯(lián)的許多問題。例如,給定上述示例,如果嵌入對象被添加到包含代碼(例如,潛在病毒)的容器,而沒有嵌入對象和接收文檔或對象之間的分層關系,則可得到如以下表示那樣的表示。
<container containscode=”false”>
<partslist>
<part id=”1”/>
<container containscode=”true”>
<partslist>
<part id=1/>
<part id=”2”/>
</partslist>
</container>
<part id=”n”/>
</partslist>
</container>
另一方面,如果有嵌入對象和包含文檔或對象(容器)之間的關系,則可生成諸如以下的改進的表示。
<container containscode=”true”>
<partslist>
<part id=”1”/>
<container containscode=”true”>
<partslist>
<part id=1/>
<part id=”2”/>
</partslist>
</container>
<part id=”n”/>
</partslist>
</container>
如此處所描述的,當向服務器應用程序文檔220請求嵌入對象225,以作為嵌入對象230嵌入到客戶機應用程序215時,格式查詢240從客戶機應用程序205傳遞到服務器應用程序110,以查詢關于與所請求對象相關聯(lián)的文件格式的信息。如此處所描述的,術語“文件格式”旨在包括例如超文本標記語言(HTML)、多信息文本格式(RTF)等格式類型、格式屬性以及由服務器應用程序用于生成或編輯所請求對象的方法和/或機制(編碼)。
依照本發(fā)明的一個實施例,客戶機應用程序205將對所請求信息的應用程序接口(API)調用傳遞到服務器應用程序210。依照該實施例,客戶機應用程序205可傳遞用于獲取可從服務器應用程序獲得的所有文件格式的第一API調用,這些文件格式可由服務器應用程序用于所請求對象或與所請求的對象相關聯(lián)地使用。第一API調用可以是“EnumerateFileFormats()”的形式,用于獲取可從服務器應用程序210獲得的所有文件格式,這些文件格式可由服務器應用程序用于格式化所請求對象或向所請求對象應用屬性。如果服務器應用程序是與客戶機應用程序不同的類型(例如,電子表格應用程序與文字處理應用程序),則客戶機應用程序可能需要用于依照對從服務器應用程序文檔接收的對象本機的文件格式來操作嵌入對象的所有可用文件格式的列表。
或者,可將第二API調用傳遞到服務器應用程序,以僅獲取與所請求對象相關聯(lián)的文件格式信息。例如,第二API調用可以是“GetFileData(fileformat)”的形式,并且可以從客戶機應用程序205傳遞到服務器應用程序210,用于獲取應用于該特定的所請求對象的特定格式信息。一旦客戶機應用程序205獲得了應用于所請求對象的可用文件格式和/或特定文件格式的清單,當客戶機應用程序205利用或操作包含在客戶機應用程序文檔215中的其它數(shù)據(jù)或信息時,客戶機應用程序205可以用透明的方式在客戶機應用程序文檔215中利用所請求的對象。
依照替換實施例,客戶機應用程序205和服務器應用程序210之間的格式查詢240可采用如圖2所示的web服務250的形式,用于從服務器應用程序210獲取文件格式信息。應當理解,服務器應用程序210可以通過諸如因特網(wǎng)245等分布式計算網(wǎng)絡與客戶機應用程序205分開地定位。依照本發(fā)明的該實施例,web服務250可用于從客戶機應用程序205接收查詢,并用于從服務器應用程序210獲取所請求的文件格式信息。依照web服務應用程序250,客戶機應用程序205不必生成依照服務器應用程序210的已知語言或協(xié)議的API調用或其它請求。即,web服務250可作為用于從服務器應用程序接收與所請求的服務器應用程序文檔相關聯(lián)的請求信息的請求客戶機應用程序205與所請求的嵌入對象225之間的接口或層來操作。
依照另一實施例,可由服務器應用程序210生成文件格式清單,用于枚舉可從服務器應用程序獲得的或與來自服務器應用程序文檔的特定對象相關聯(lián)的文件格式。依照該實施例,當向服務器應用程序文檔220請求用于嵌入到客戶機應用程序215的嵌入對象225時,從客戶機應用程序205到服務器應用程序210的格式查詢240向服務器應用程序210請求與服務器應用程序文檔和嵌入對象225相關聯(lián)的文件格式清單260。一旦客戶機應用程序205接收到文件格式清單260,客戶機應用程序205可剖析文件格式清單260,以獲取與服務器應用程序210相關聯(lián)的文件格式信息,或獲取與所請求的嵌入對象225相關聯(lián)的特定文件格式信息。
在參考以上圖1和2描述了本發(fā)明的實施例之后,圖3是示出由本發(fā)明的方法和系統(tǒng)執(zhí)行的步驟的流程圖,用于公開與來自服務器應用程序文檔的、被嵌入到客戶機應用程序文檔的嵌入對象相關聯(lián)的嵌套數(shù)據(jù)。例程300在起始框305開始,并前進到框310,其中在客戶機應用程序205處接收到對客戶機應用程序文檔215中的嵌入對象的請求。例如,請求可以是將圖表對象從包含員工工資信息的電子表格文檔220復制到用文字處理客戶機應用程序205生成的備忘錄文檔215的形式。
在框215,響應于對客戶機應用程序文檔215中的嵌入對象230的請求,客戶機應用程序205向服務器應用程序210發(fā)送對可從例如電子表格應用程序等服務器應用程序210獲得的應用程序文件格式的清單的格式查詢240。如上所述,格式查詢240可以是對服務器應用程序210的API調用的形式,或者格式查詢240可以是對web服務250的調用的形式,或者格式查詢240可以是對文件格式清單260的請求的形式,以供客戶機應用程序205審閱。在框320,客戶機應用程序205向服務器應用程序210查詢與所請求對象225相關聯(lián)的特定文件格式信息。應當理解,從客戶機應用程序到服務器應用程序的對可用文件格式清單和對與所請求對象相關聯(lián)的特定文件格式兩者的查詢可以是單個格式查詢240的形式。
在框325,客戶機應用程序205接收所請求的文件格式信息,并且在框330,客戶機應用程序205接收所請求的對象225并將其作為嵌入對象230嵌入到客戶機應用程序文檔215中。在框345,客戶機應用程序205利用所接收的文件格式信息,來透明地處理和呈現(xiàn)嵌入對象230。例如,如果嵌入對象230是來自包含員工工資信息匯總的電子表格應用程序文檔的圖表對象,由于客戶機應用程序205能夠訪問與嵌入對象相關聯(lián)的文件格式信息,因此與嵌入對象相關聯(lián)的所有其它信息變得對客戶機應用程序205透明。例如,如果嵌入對象還包括與匯總工資信息相關聯(lián)的詳細員工信息,則客戶機應用程序205可訪問詳細員工信息,并且可處理與嵌入對象相關聯(lián)的詳細信息或用其它方式對其進行操作,因為客戶機應用程序205能夠訪問應用于或關聯(lián)于包含在嵌入對象中或與其相關聯(lián)的所有數(shù)據(jù)的文件格式、方法、機制或其它屬性,它們是從服務器應用程序220處接收的,并且是由服務器應用程序210給予嵌入對象的。該方法在框395結束。
如此處所描述的,該方法和系統(tǒng)能夠公開包含在嵌入對象中的嵌套數(shù)據(jù),使得接收該嵌入對象的客戶機應用程序可理解與嵌入對象相關聯(lián)的文件格式和其它屬性,以允許嵌入對象及其相關聯(lián)的文件格式和屬性對接收客戶機應用程序而言是透明的。本領域的技術人員可以理解,可以在本發(fā)明中做出各種修改或變化,而不脫離本發(fā)明的范圍或精神。在考慮了此處所描述的本發(fā)明的說明書和實踐之后,本領域的技術人員可以明白其它實施例。
權利要求
1.一種用于向接收軟件應用程序公開關于嵌入對象的格式信息的方法,包括接收將來自第二文檔的對象嵌入到第一文檔中的請求;向從其中生成所述第二文檔的服務器應用程序查詢與所請求的對象相關聯(lián)的任何文件格式;在從其中生成所述第一文檔的客戶機應用程序處接收與所請求的對象相關聯(lián)的任何文件格式;將所請求的對象嵌入到所述第一文檔中;以及向所述客戶機應用程序公開與所請求的對象相關聯(lián)的任何文件格式,以允許所述客戶機應用程序依照與所述嵌入對象相關聯(lián)的任何文件格式來操作所述嵌入對象。
2.如權利要求1所述的方法,其特征在于,向所述服務器應用程序查詢與所請求的對象相關聯(lián)的任何文件格式包括將請求與所請求的對象相關聯(lián)的任何文件格式的API調用從所述客戶機應用程序傳遞到所述服務器應用程序。
3.如權利要求2所述的方法,其特征在于,將請求與所請求的對象相關聯(lián)的任何文件格式的API調用從所述客戶機應用程序傳遞到所述服務器應用程序包括將GetFileData(fileformat)格式的API調用傳遞到所述服務器應用程序。
4.如權利要求1所述的方法,其特征在于在從其中生成所述第一文檔的客戶機應用程序處接收與所請求的對象相關聯(lián)的任何文件格式包括從所述服務器應用程序接收標識與所請求的對象相關聯(lián)的任何文件格式的文件格式清單;以及向所述客戶機應用程序公開與所請求的對象相關聯(lián)的任何文件格式包括向所述客戶機應用程序提供對所述文件格式清單中標識的、與所請求的對象相關聯(lián)的任何文件格式的訪問。
5.如權利要求1所述的方法,其特征在于,還包括向所述服務器應用程序查詢可從所述服務器應用程序獲得的所有文件格式的列表;在所述客戶機應用程序處接收可從所述服務器應用程序獲得的所有文件格式的列表;以及其中,向所述客戶機應用程序公開與所請求的對象相關聯(lián)的任何文件格式以允許所述客戶機應用程序依照與所述嵌入對象相關聯(lián)的任何文件格式來操作所述嵌入對象包括向所述客戶機應用程序公開可從所述服務器應用程序獲得的所有文件格式的列表,以允許所述客戶機應用程序依照可從所述服務器應用程序獲得的所有文件格式來操作所述嵌入對象。
6.如權利要求5所述的方法,其特征在于,向服務器應用程序查詢可從所述服務器應用程序獲得的所有文件格式的列表包括將請求可從所述服務器應用程序獲得的所有文件格式的列表的API調用從所述客戶機應用程序傳遞到所述服務器應用程序。
7.如權利要求6所述的方法,其特征在于,將請求可從所述服務器應用程序獲得的所有文件格式的列表的API調用從所述客戶機應用程序傳遞到所述服務器應用程序包括將EnumerateFileFormats()形式的API調用傳遞到所述服務器應用程序。
8.如權利要求5所述的方法,其特征在于在所述客戶機應用程序處接收可從所述服務器應用程序獲得的所有文件格式的列表包括從所述服務器應用程序接收標識可從所述服務器應用程序獲得的所有文件格式的文件格式清單;以及向所述客戶機應用程序公開可從所述服務器應用程序獲得的所有文件格式的列表以允許所述客戶機應用程序依照可從所述服務器應用程序獲得的所有文件格式來操作所述嵌入對象包括向所述客戶機應用程序提供對所述文件格式清單中所標識的、可從所述服務器應用程序獲得的所有文件格式的訪問。
9.如權利要求1所述的方法,其特征在于接收將來自第二文檔的對象嵌入到第一文檔中的請求包括接收嵌入對象的請求,其中,所請求的對象包括嵌入在所請求對象中的第二嵌入對象;在從其中生成所述第一文檔的客戶機應用程序處接收與所請求的對象相關聯(lián)的任何文件格式包括在所述客戶機應用程序處接收與所述第二嵌入對象相關聯(lián)的任何文件格式;以及向所述客戶機應用程序公開與所請求的對象相關聯(lián)的任何文件格式以允許所述客戶機應用程序依照與所述嵌入對象相關聯(lián)的任何文件格式來操作所述嵌入對象包括向所述客戶機應用程序公開與所述第二嵌入對象相關聯(lián)的任何文件格式,以允許所述客戶機應用程序依照與所述第二嵌入對象相關聯(lián)的任何文件格式來操作所述第二嵌入對象。
10.一種用于跨不同的計算機生成的文檔管理數(shù)據(jù)的方法,包括接收將來自第二文檔的對象嵌入到第一文檔中的請求;向從其中生成所述第二文檔的服務器應用程序查詢可從所述服務器應用程序獲得的文件格式的列表;向所述服務器應用程序查詢與所請求的對象相關聯(lián)的任何特定文件格式;在從其中生成所述第一文檔的客戶機應用程序處接收可從所述服務器應用程序獲得的文件格式的列表;在所述客戶機應用程序處接收與所請求的對象相關聯(lián)的任何特定文件格式;將所請求的對象嵌入到所述第一文檔中;以及向所述客戶機應用程序公開與所請求的對象相關聯(lián)的任何文件格式,以允許所述客戶機應用程序依照與所述嵌入對象相關聯(lián)的任何文件格式來操作所述嵌入對象。
11.如權利要求10所述的方法,其特征在于,在接收了可從所述服務器應用程序獲得的文件格式的列表以及與所請求的對象相關聯(lián)的任何特定文件格式之后,審閱可從所述服務器應用程序獲得的文件格式的列表并審閱與所請求的對象相關聯(lián)的特定文件格式,以允許所述客戶機應用程序理解與所請求的對象相關聯(lián)的任何文件格式,并允許所述客戶機應用程序依照與所請求的對象相關聯(lián)的任何文件格式來操作所述嵌入對象。
12.如權利要求11所述的方法,其特征在于,還包括在所述客戶機應用程序處確定如何將所請求的對象嵌入在所述第一文檔中,以與關聯(lián)于所請求對象的任何文件格式相符合。
13.如權利要求10所述的方法,其特征在于,向從其中生成所述第二文檔的服務器應用程序查詢可從所述服務器應用程序獲得的文件格式的列表包括將請求可從所述服務器應用程序獲得的文件格式的列表的API調用從所述客戶機應用程序傳遞到所述服務器應用程序。
14.如權利要求13所述的方法,其特征在于,將請求可從所述服務器應用程序獲得的文件格式的列表的API調用從所述客戶機應用程序傳遞到所述服務器應用程序包括將EnumerateFileFormats()形式的API調用傳遞到所述服務器應用程序。
15.如權利要求10所述的方法,其特征在于,向所述服務器應用程序查詢與所請求的對象相關聯(lián)的任何特定文件格式包括將請求與所請求對象相關聯(lián)的任何特定文件格式的API調用從所述客戶機應用程序傳遞到所述服務器應用程序。
16.如權利要求15所述的方法,其特征在于,將請求與所請求的對象相關聯(lián)的任何特定文件格式的API調用從所述客戶機應用程序傳遞到所述服務器應用程序包括將GetFileData(fileformat)形式的API傳遞到所述服務器應用程序。
17.一種其上儲存有計算機可執(zhí)行指令的計算機可讀介質,當所述指令由計算機執(zhí)行時,執(zhí)行一種用于向接收軟件應用程序公開關于嵌入對象的格式信息的方法,包括接收將來自第二文檔的對象嵌入到第一文檔中的請求;向從其中生成所述第二文檔的服務器應用程序查詢與所請求的對象相關聯(lián)的任何文件格式;在從其中生成所述第一文檔的客戶機應用程序處接收與所請求的對象相關聯(lián)的任何文件格式;將所請求的對象嵌入到所述第一文檔中;以及向所述客戶機應用程序公開與所請求的對象相關聯(lián)的任何文件格式,以允許所述客戶機應用程序依照與所述嵌入對象相關聯(lián)的任何文件格式來操作所述嵌入對象。
18.如權利要求17所述的計算機可讀介質,其特征在于,還包括向所述服務器應用程序查詢可從所述服務器應用程序獲得的所有文件格式的列表;在所述客戶機應用程序處接收可從所述服務器應用程序獲得的所有文件格式的列表;以及其中,向所述客戶機應用程序公開與所請求的對象相關聯(lián)的任何文件格式以允許所述客戶機應用程序依照與所述嵌入對象相關聯(lián)的任何文件格式來操作所述嵌入對象包括向所述客戶機應用程序公開可從所述服務器應用程序獲得的所有文件格式的列表,以允許所述客戶機應用程序依照可從所述服務器應用程序獲得的所有文件格式來操作所述嵌入對象。
19.如權利要求18所述的計算機可讀介質,其特征在于,向所述服務器應用程序查詢與所請求的對象相關聯(lián)的任何文件格式包括將請求與所請求的對象相關聯(lián)的任何文件格式的API調用從所述客戶機應用程序傳遞到所述服務器應用程序。
20.如權利要求19所述的計算機可讀介質,其特征在于,向服務器應用程序查詢可從所述服務器應用程序獲得的所有文件格式的列表包括將請求可從所述服務器應用程序獲得的所有文件格式的列表的API調用從所述客戶機應用程序傳遞到所述服務器應用程序。
全文摘要
提供了用于以透明的方式公開計算機生成的文檔中的嵌套數(shù)據(jù)的方法和系統(tǒng)。提供了客戶機應用程序用于在向服務器應用程序文檔請求了用于嵌入到客戶機應用程序文檔的對象之后,向服務器應用程序查詢可用文件格式的列表的機制。提供了客戶機應用程序用于向服務器應用程序文檔請求與嵌入對象相關聯(lián)的特定格式的另一種機制。一旦客戶機應用程序獲取了可用于服務器應用程序或與特定對象相關聯(lián)的文件格式信息,客戶機應用程序就可利用所獲取的文件格式,以依照與嵌入對象相關聯(lián)的本機文件格式利用或操作嵌入對象。
文檔編號G06F17/30GK1794230SQ200510126798
公開日2006年6月28日 申請日期2005年11月21日 優(yōu)先權日2004年12月21日
發(fā)明者S·A·威拉隆, B·瓊斯, C·羅斯切勒 申請人:微軟公司