專利名稱:管理文件轉換的技術的制作方法
技術領域:
本發(fā)明涉及管理文件轉換的技術。
背景技術:
文件轉換系統(tǒng)可將計算機文件在各文件格式之間轉換。當將文件從一種文件格式轉換為另一種文件格式時,存在用戶感興趣的兩種主要情形(I)能夠以異步方式一次轉換許多文件的高吞吐量轉換操作;以及(2)能夠以同步方式立即轉換一個文件的低等待時間轉換操作。高吞吐量轉換操作是為需要轉換許多文件的情形設計的,其中用戶不需要轉換立即發(fā)生。低等待時間轉換操作適合于其中需要轉換一個文件的情形,其中用戶需要到轉換操作的某種立即性(immediacy)。具有能適應兩種情形的系統(tǒng)需要跨兩種類型的轉換請求的資源分配的特殊考慮。除了處理不同轉換情形之外,文件轉換系統(tǒng)需要計入跨相同服務器資源內(nèi)的多個承租人的資源分配。換言之,如果公司A和公司B均使用相同的服務 器資源,則文件轉換系統(tǒng)需要以不導致一個公司壟斷所有資源的方式適應來自兩個公司的請求。本發(fā)明的改進正是針對這些和其他考慮事項而需要的。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下具體實施方式
中進一步描述的一些概念。本發(fā)明內(nèi)容并非旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。實施例一般涉及文件轉換系統(tǒng)。一些實施例尤其涉及被安排為使用相同組服務器資源來執(zhí)行從一種文件格式到另一種文件格式的高吞吐量和低等待時間的文件轉換的文件轉換系統(tǒng)。此外,該文件轉換服務能夠使用該相同組服務器資源來適應來自多個客戶端的多個文件轉換請求,包括高吞吐量和低等待時間請求。對其他實施例也予以描述并要求保護。通過閱讀下面的詳細描述并參考相關聯(lián)的附圖
,這些及其它特點和優(yōu)點將變得顯而易見。應該理解,前面的概括說明和下面的詳細描述只是說明性的,不會對所要求保護的各方面形成限制。附圖簡述圖I示出第一文件轉換系統(tǒng)的一實施例。圖2A示出第二文件轉換系統(tǒng)的一實施例。圖2B示出具有負載平衡器的第二文件轉換系統(tǒng)的一實施例。圖3不出適于實現(xiàn)第一和第二轉換系統(tǒng)的分布式系統(tǒng)的一實施例。圖4示出文件轉換的邏輯流程的一實施例。圖5示出了計算架構的一實施例。圖6示出通信架構的一實施例。
具體實施例方式實施例涉及被安排為實現(xiàn)增強的文件轉換技術的文件轉換系統(tǒng)、服務或應用,該技術被安排為基于一組給定轉換參數(shù)來處理不同類型的文件轉換。文件轉換系統(tǒng)通常是為不同使用情形而設計的,范圍從大量文件的批量處理到單一文件。文件轉換參數(shù)的示例可包括而不限于文件的數(shù)量、轉換時間或等待時間、資源分配、文件優(yōu)先級、安全性、文件類型、請求類型等等。在一個實施例中,文件轉換系統(tǒng)可被安排為使用相同組服務器資源來執(zhí)行從一種文件格式到另一種文件格式的高吞吐量和低等待時間的文件轉換。此外,該文件轉換服務能夠使用該相同組服務器資源來適應來自多個客戶端的多個文件轉換請求,包括高吞吐量和低等待時間請求。在各實施例中,文件轉換系統(tǒng)可被安排為基于文件轉換請求類型來分配文件轉換資源。此外,該文件轉換系統(tǒng)可被安排為跨多個客戶端(有時被稱為“承租人”)分配文件轉換資源。此外,該文件轉換系統(tǒng)可被安排為用適應多個承租人的系統(tǒng)來確保對承租人資 源的保護和隱私。最終,該文件轉換系統(tǒng)可被安排為基于被分配給文件轉換請求的優(yōu)先級水平來處理這些請求。各實施例具有超越常規(guī)文件轉換技術的若干優(yōu)點。例如,常規(guī)文件轉換服務通常需要實現(xiàn)該文件轉換技術的特定產(chǎn)品或平臺所使用的對象模型的底層知識。這是因為大多數(shù)文件轉換服務與底層產(chǎn)品或平臺緊密集成。這種要求意味著開發(fā)者被限制為在利用給定服務時總是在該底層平臺的上下文中工作。處理給定產(chǎn)品或平臺之外的文件的唯一方式是首先使所述文件與該產(chǎn)品或平臺集成,這增加了額外的復雜度和性能考慮。與物理文件一起使用的當前模型的另一個問題在于存在其中服務的輸出不是解決方案的最終輸出的若干服務情形。在這些特定情況下,開發(fā)者被迫人工清潔該服務所創(chuàng)建的中間文件。這意味著當前設計的性能損失,因為比必要的更多地訪問內(nèi)容數(shù)據(jù)庫。使異步服務的情況更糟糕的是沒有關于何時服務操作已被完成的事件或指示。這種限制使得創(chuàng)建事件或觸發(fā)器非常困難。另一個問題是文件轉換服務通常是為特定類型的服務而設計的,該服務要么是異步服務要么是同步服務。異步服務依賴計時器來啟動文件轉換,使得處理立即理解處理的同步文件服務請求很困難或不可能。相反,同步請求必須等待計時器指示服務操作何時被觸發(fā)。在一些異步系統(tǒng)中,等待時間可以是從數(shù)分鐘到數(shù)小時的任何值。盡管計時器基于作業(yè)的設計和行為對于批量操作情形工作得很好,然而這種設計對于涉及更小數(shù)量的文檔的操作情形無法工作。各實施例詳述了增強的文件轉換技術,以解決這些以及其他問題,以使得文件轉換服務在更多端到端情形中更加穩(wěn)健并且可用。該增強的文件轉換技術可適用于許多使用情形。例如,假定打印機公司期望添加將允許文檔的“云打印”的新服務。此服務將允許打印機具有其自己的電子郵件地址。然后用戶將能夠經(jīng)由附件將文檔通過電子郵件發(fā)送給打印機,然后該文檔可被打印。打印操作需要跟從應用的人工打印操作一樣快。然而由于對無人值守自動化特征的不支持性,該打印機公司不想要為他們的服務器上的文檔而使應用客戶端自動化以執(zhí)行打印操作。相反,該打印機公司可實現(xiàn)該增強的文件轉換技術以在服務器上執(zhí)行從源文件格式到目標文件格式的快速文件轉換操作,然后可使用該目標文件格式來完成打印操作。在另一示例中,假定數(shù)字出版公司期望添加將允許用戶在專有數(shù)字“電子書”閱讀器設備上閱讀某些文檔的新服務。此服務將允許用戶經(jīng)由附件將文檔通過電子郵件發(fā)送到電子書服務,然后該電子書服務能夠將該文檔轉換為該數(shù)字電子書閱讀器設備所支持的格式。該電子書服務需要盡量快以便用戶不需等待閱讀他們所請求的文檔。該數(shù)字出版公司可實現(xiàn)該增強的文件轉換技術以創(chuàng)建適當?shù)碾娮訒袷?。在又一示例中,假定一公司期望在不同語言之間翻譯文檔。翻譯服務將能夠翻譯整個庫或一次性文檔。對于一次性文檔的情況,該翻譯服務需要是按需式(on demand)的,S卩,立即完成。該增強的文件轉換技術能夠執(zhí)行任何必要的文件格式轉換以便于語言翻譯。這些僅是幾個示例性的使用情形,也存在其他使用情形。
圖I示出文件轉換系統(tǒng)100的框圖。在一個實施例中,例如,文件轉換系統(tǒng)100可包括具有多個組件的計算機實現(xiàn)的文件轉換系統(tǒng)。如此處所使用的,術語“系統(tǒng)”和“組件”旨在指代與計算機相關的實體,包括硬件、硬件和軟件的組合、軟件、或執(zhí)行中的軟件。例如,組件可被實現(xiàn)為在處理器上運行的進程、處理器、硬盤驅動器、多個(光和/或磁存儲介質的)存儲驅動器、對象、可執(zhí)行代碼、執(zhí)行的線程、程序、和/或計算機。作為說明,在服務器上運行的應用和該服務器兩者都可以是組件。一個或多個組件可以駐留在進程和/或執(zhí)行的線程內(nèi),且組件可以視給定實現(xiàn)所需而位于一臺計算機上和/或分布在兩臺或更多的計算機之間。各實施例不限于該上下文。在圖I中示出的所示實施例中,文件轉換系統(tǒng)100可被實現(xiàn)成集中式或分布式架構中的一個或多個電子設備的一部分。電子設備的示例可包括但不限于,移動設備、個人數(shù)字助理、移動計算設備、智能電話、蜂窩電話、手機、單向尋呼機、雙向尋呼機、消息收發(fā)設備、計算機、個人計算機(PC)、臺式計算機、膝上型計算機、筆記本計算機、手持式計算機、平板計算機、服務器、服務器陣列或服務器場、web服務器、網(wǎng)絡服務器、因特網(wǎng)服務器、工作站、小型計算機、大型計算機、超級計算機、網(wǎng)絡設備、web設備、游戲設備、分布式計算系統(tǒng)、多處理器系統(tǒng)、基于處理器的系統(tǒng)、消費電子產(chǎn)品、可編程消費電子產(chǎn)品、電視機、數(shù)字電視機、機頂盒、無線接入點、基站、用戶站、移動用戶中心、無線電網(wǎng)絡控制器、路由器、集線器、網(wǎng)關、網(wǎng)橋、交換機、機器、或其組合。雖然圖I中示出的文件轉換系統(tǒng)100具有按照某種拓撲結構的有限數(shù)量的元素,但可以理解,文件轉換系統(tǒng)100可以視給定實現(xiàn)的需要而包括按照替代拓撲結構的更多或更少元素。在各實施例中,文件轉換系統(tǒng)100可在任何計算設備或平臺(諸如服務器)上執(zhí)行。貫穿本說明書,術語“平臺”可以是用于結合客戶端設備(諸如個人計算機或移動設備)管理映射操作的軟件和硬件組件的組合。平臺的示例包括但不限于,在多個服務器上執(zhí)行的托管服務或“云計算服務”、在單個服務器上執(zhí)行的應用以及類似系統(tǒng)。術語“服務器”一般指通常在聯(lián)網(wǎng)環(huán)境中執(zhí)行一個或多個軟件程序的計算設備。然而,服務器還可以被實現(xiàn)為在被視作網(wǎng)絡上的服務器的一個或多個計算設備上執(zhí)行的虛擬服務器(軟件程序)。附加地或替代地,文件轉換系統(tǒng)100可以在移動設備上執(zhí)行,移動設備諸如智能電話、手持計算機、無線個人數(shù)字助理(PDA)、支持映射應用的蜂窩電話、車載計算設備和提供適于如前所述的文件轉換系統(tǒng)100的環(huán)境的其他電子設備。各實施例不限于該上下文。在圖I中示出的所示實施例中,文件轉換系統(tǒng)100可包括文件轉換系統(tǒng)200,該文件轉換系統(tǒng)200接受一個或多個文件110作為輸入,并提供一個或多個相應的經(jīng)轉換的文件130作為輸出。換言之,每個文件110通常具有相應的經(jīng)轉換的文件130。文件110可以是根據(jù)第一數(shù)據(jù)格式或數(shù)據(jù)模式(data schema)生成和/或存儲的計算機文件。經(jīng)轉換的文件130可以是根據(jù)第二數(shù)據(jù)格式或數(shù)據(jù)模式生成和/或存儲的計算機文件。在一個實施例中,例如,文件110、130共享相同或類似的內(nèi)容,而第一和第二數(shù)據(jù)格式彼此不同。在一個實施例中,例如,文件110、130共享相同或類似的數(shù)據(jù)格式和不同的媒體內(nèi)容(例如,語言翻譯)。在一個實施例中,例如,文件110、130具有不同的內(nèi)容和不同的數(shù)據(jù)格式。各實施例不限于該上下文。文件轉換系統(tǒng)100響應于至少兩種類型的文件轉換請求而執(zhí)行文件轉換(I)異步請求;以及(2)同步請求。文件轉換系統(tǒng)100能夠使用一組共享的文件轉換資源來處理這兩種類型的請求。文件轉換資源可包括一個或多個設備、設備組件(例如,處理器、存儲器單元、接口等)、網(wǎng)絡、網(wǎng)絡組件等等。異步文件轉換請求是在定義的時間間隔對文件轉換的請求。換言之,異步請求的文件轉換操作被延遲到某個未來時間段。異步請求非常適合于在定義的時間間隔啟動的、較高吞吐量的文件轉換操作。異步請求通常被設計為一次轉換許多文件。同步文件轉換請求是對立即文件轉換的請求。換言之,同步請求的文件轉換操作是一接收到請求就立即啟動的。同步請求非常適合于通常一接收到請求就立即啟動的、較低等待時間的文件轉換操作。這些請求還可具有較高的優(yōu)先級并優(yōu)先于已有請求。此外,文件轉換系統(tǒng)100將每次具有超過一個文件轉換請求的可能性計入。例如,在存在相同類型的(例如,異步的或同步的)多個文件轉換請求的情況下,文件轉換系統(tǒng)100可按照請求被做出的次序來處理這些請求,諸如以先進先出(FIFO)為基礎。對于存在不同類型的(例如,異步的或同步的)多個文件轉換請求的情況,文件轉換系統(tǒng)100可根據(jù) 所需的優(yōu)先化(prioritization)算法來確保同步請求優(yōu)先于異步請求。此外,文件轉換系統(tǒng)100還將具有單一承租人的超過一個文件轉換請求的可能性計入,并且按照確保該承租人不相對于其他承租人壟斷系統(tǒng)資源的方式來處理單一承租人的多個文件轉換請求。例如,這可以使用各種負載平衡技術來實現(xiàn)。圖2A、2B示出文件轉換系統(tǒng)200的框圖。文件轉換系統(tǒng)200可包括文件轉換系統(tǒng)100的更詳細版本,包括多個組件和各種數(shù)據(jù)庫。這些組件和數(shù)據(jù)庫可以經(jīng)由各種類型的通信介質來通信地耦合。此外,各種組件可以協(xié)調(diào)彼此之間的操作。該協(xié)調(diào)可以涉及單向或雙向信息交換。例如,組件可以傳遞通過通信介質傳遞的信號形式的信息。該信息可被實現(xiàn)成分配給各條信號線的信號。在這些分配中,每一個消息都是信號。然而,其他實施方式可替代地采用數(shù)據(jù)消息。這些數(shù)據(jù)消息可以跨各個連接發(fā)送。示例性連接包括并行接口、串行接口和總線接口。在圖2A、2B中示出的所示實施例中,web組件210包括對象模型212。web組件210通信地耦合于應用服務器管理器組件220。應用服務器管理器組件220包括調(diào)度組件222和計時器作業(yè)組件224。應用服務器管理器組件220通信地耦合于文檔隊列數(shù)據(jù)庫226。應用服務器管理器組件220還通信地耦合于應用服務器工作器組件230。應用服務器工作器組件230包括文件轉換組件232以管理多個作業(yè)隊列,包括同步作業(yè)隊列234和異步作業(yè)隊列236。應用服務器工作器組件230通信地耦合于內(nèi)容數(shù)據(jù)庫238。可以理解,文件轉換系統(tǒng)200可具有替代在一個實施例中,應用服務器管理器組件220可被安排為接收將文件110在不同文件格式間轉換的不同類型的文件轉換請求,當接收到同步文件轉換請求202時將該同步文件轉換請求202發(fā)送到同步作業(yè)隊列234,以及在定義的時間間隔將異步文件轉換請求204發(fā)送到異步作業(yè)隊列236。一個或多個應用服務器工作器組件230可管理隊列234、236,并在應用服務器管理器組件220的控制下執(zhí)行實際的文件轉換操作。如圖2中所示,web組件210可包括對象模型212。對象模型212允許開發(fā)者創(chuàng)建異步文件轉換請求并監(jiān)視進行中的文件轉換。web組件220可被安排為經(jīng)由對象模型212從客戶端系統(tǒng)接收文件轉換請求202、204。web組件210可以通信地耦合于應用服務器管理器組件220。應用服務器管理器組件220可為同步文件轉換請求202和異步文件轉換請求204執(zhí)行后端服務器操作。這兩種類型的請求202、204可按照與每種類型的請 求相一致的方式被調(diào)度以進行文件轉換操作。應用服務器管理器組件220可接收不同類型的文件轉換請求202、204以將文件110在不同文件格式間轉換以從web組件210形成相應的經(jīng)轉換的文件130。輸入文件110可具有源文件格式,而經(jīng)轉換的文件130可具有目標文件格式。源文件格式和目標文件格式可以是適合于給定應用、服務或機器的任何已知文件格式。此外,源文件格式和目標文件格式可以是用于由相同公司或不同公司制作的軟件的。在一個實施例中,源文件格式和目標文件格式可在數(shù)據(jù)模式或邏輯數(shù)據(jù)存儲結構上不同,同時保持相同或類似的文件內(nèi)容。在一個實施例中,源文件格式和目標文件格式可在文件內(nèi)容上不同,而保持相同或類似的數(shù)據(jù)模式。在一個實施例中,源文件格式和目標文件格式可在文件內(nèi)容和數(shù)據(jù)模式上均不同。各實施例不限于該上下文。作為示例而非限制,文件系統(tǒng)110、130可具有為特定操作系統(tǒng)設計的互相關的客戶端應用、服務器應用和web服務的生產(chǎn)力套件(諸如由華盛頓州雷蒙德市的微軟公司制作的用于MICROSOFT WINDOWS 的MICROSOFT OFFICE生產(chǎn)力套件)的內(nèi)容文件的源文件格式和目標文件格式。客戶端應用的示例可包括但不限于MICROSOFTWORD、MICROSOFT EXCEL 、MICROSOFT POWERPOINT 、MICROSOFT OUTLOOK 、MICROSOFT ACCESS 、MICROSOFT INFOPATH 、MICROSOFT ONENOTE 、MICROSOFT PROJECT 、MICROSOFT PUBLISHER、MICROSOFT SHAREPOINT WORKSPACE、MICROSOFT VISI〇 、MICROSOFT 0FFICEINTERC0NNECT、MICROSOFT OFFICE PICTUREMANAGER.MICR0S0FTSHAREP0INT DESIGNER、MICR0S0FTLYNC 及其它??梢岳斫猓次募袷胶湍繕宋募袷揭部梢允怯糜诓煌牟幌嚓P的軟件應用的。作為不同數(shù)據(jù)模式的示例,假定打印機公司期望添加將允許文檔的“云打印”的新服務。此服務將允許打印機具有其自己的電子郵件地址。然后用戶將能夠經(jīng)由附件將文檔通過電子郵件發(fā)送以進行打印操作,然后該文檔可被打印。打印操作需要跟從應用的人工打印操作一樣快。然而由于對無人值守自動化特征的不支持性,該打印機公司不想要為他們的服務器上的文檔而使應用客戶端自動化以執(zhí)行打印操作。相反,該打印機公司可實現(xiàn)該增強的文件轉換技術以在服務器上執(zhí)行從源文件格式到目標文件格式的快速文件轉換操作,然后可使用該目標文件格式來完成打印操作。在此情況下,源文件格式的示例可以是由MICROSOFT EXCEL生成的xls”文件格式,而目標文件格式的示例可以是可移植文檔格式(PDF)。在不同數(shù)據(jù)模式的另一示例中,假定數(shù)字出版公司期望添加將允許用戶在專有數(shù)字“電子書”閱讀器設備上閱讀某些文檔的新服務。此服務將允許用戶經(jīng)由附件將文檔通過電子郵件發(fā)送到電子書服務,然后該電子書服務能夠將該文檔轉換為該數(shù)字電子書閱讀器設備所支持的格式。該電子書服務需要盡量快以便用戶不需等待閱讀他們所請求的文檔。該數(shù)字出版公司可實現(xiàn)該增強的文件轉換技術以創(chuàng)建適當?shù)碾娮訒袷健T诖耸褂们樾沃?,源文件格式的示例可以是由MICROSOFT WORD生成的doc”文件格式,而目標文件格式的示例可以是多用途因特網(wǎng)郵件擴展(MME)超文本標記語言(HTML)(共同稱為“MMEHTMLHHT”)。作為不同文件內(nèi)容的示例,假定公司期望在不同語言間翻譯文檔。翻譯服務將能夠翻譯整個庫或一次性文檔。對于一次性文檔的情況,該翻譯服務需要是按需式的,即,立即完成。該增強的文件轉換技術能夠執(zhí)行任何必要的文件格式轉換以便于語言翻譯。在此情況下,輸入文件110可具有第一人類語言(例如,英語)的文件格式,而經(jīng)轉換的文件130可具有第二人類語言(例如,漢語)的文件格式。作為不同文件內(nèi)容和文件格式的示例,假定文件110包括第一人類語言的被發(fā)送到云傳真服務的MICROSOFT WORD文檔。該云傳真服務可將第一人類語言(例如,英語)轉換為第二人類語言(例如,韓語),并將doc”應用文件格式轉換為PDF文件格式,然后將 文件110的經(jīng)轉換的文件130作為第二人類語言的PDF傳真。應用服務器管理器組件220可包括調(diào)度組件222。調(diào)度組件222負責將傳入的請求移動到文檔隊列數(shù)據(jù)庫226,并將某些類型的請求發(fā)送到文件轉換組件232以進行處理。文檔隊列數(shù)據(jù)庫226存儲已請求的、當前的以及已完成的轉換的持久隊列。在中央數(shù)據(jù)庫服務器上存儲轉換的隊列賦予該隊列改進的可縮放性、可靠性、以及跟蹤大組轉換較長時間段的能力。在一個實施例中,調(diào)度組件222可基于與文件轉換請求相關聯(lián)的一個或多個文件轉換參數(shù)260-a來確定該文件轉換請求是同步文件轉換請求202還是異步文件轉換請求204。值得指出的是,本文所使用的“a”、“b”、“c”以及類似的標志符是表示任何正整數(shù)的變量。因此,例如,如果一實現(xiàn)設置值為a = 5,則文件轉換參數(shù)260-a的完整集合可包括文件轉換參數(shù)260-1、260-2、260-3、260-4以及260-5。各實施例不限于該上下文。文件轉換系統(tǒng)100、200通常是為不同使用情形而設計的,范圍從大量文件的批量處理到單一文件。文件轉換參數(shù)260-a可用于定義給定文件轉換請求202、204的某些屬性或特性。文件轉換參數(shù)260-a的示例可包括而不限于文件的數(shù)量、轉換時間或等待時間、資源分配、文件優(yōu)先級、安全性、文件類型、請求類型等等。例如,文件轉換參數(shù)260-1可包括表示要轉換到經(jīng)轉換的文件130的文件110的數(shù)量的數(shù)字值。文件轉換參數(shù)260-2可包括表示要將多個文件110轉換為經(jīng)轉換的文件130的時間量的等待時間值。文件轉換參數(shù)260-3可包括表示將多個文件110轉換為經(jīng)轉換的文件130的所需的多個資源(例如,應用服務器工作器組件130、存儲器單元、處理器、帶寬等)的資源值。文件轉換參數(shù)260-4可包括表示一個或多個文件110的優(yōu)先級水平的優(yōu)先級值。文件轉換參數(shù)260-5可包括表示與一個或多個文件110相關聯(lián)的密碼技術或安全憑證的安全值。文件轉換參數(shù)260-6可包括表示一個或多個文件110和/或經(jīng)轉換的文件130的文件格式或內(nèi)容格式的文件類型值。文件轉換參數(shù)260-7可包括表示同步文件轉換請求202或異步文件轉換請求204的顯式設定的請求值。這些僅是幾個示例,可以為給定實現(xiàn)定義其他文件轉換參數(shù)260-a。各實施例不限于該上下文。
調(diào)度組件222可確定經(jīng)由web組件210接收的文件轉換請求的請求類型。例如,調(diào)度組件222可基于與所接收的文件轉換請求相關聯(lián)的一組文件轉換參數(shù)260-a來確定所接收的文件轉換請求是同步文件轉換請求202還是異步文件轉換請求204。在一個實施例中,例如,當?shù)谝晃募D換參數(shù)260-1指示文件的數(shù)量為I而第二文件轉換參數(shù)260-2指示等待時間值小于閾值值時,調(diào)度組件222可確定文件轉換請求為同步文件轉換請求202。例如,假定數(shù)量值被設定為1,等待時間值被設定為5分鐘,而閾值值是被設定在10分鐘的默認值。在這種情況下,調(diào)度組件222可確定傳入的文件轉換請求是對單個文件的同步文件轉換請求202,其需要文件轉換操作的較低的等待時間。
在一個實施例中,例如,當?shù)谝晃募D換參數(shù)260-1指示文件的數(shù)量大于I而第二文件轉換參數(shù)260-2指示等待時間值大于閾值值時,調(diào)度組件222可確定文件轉換請求為異步文件轉換請求204。例如,假定數(shù)量值被設定為5,等待時間值被設定為I天,而閾值值是被設定在10分鐘的默認值。在這種情況下,調(diào)度組件222可確定傳入的文件轉換請求是容忍文件轉換操作的較高的等待時間的對多個文檔的異步文件轉換請求204。附加地或替代地,調(diào)度組件222可通過檢查顯式文件轉換參數(shù)260-a來確定文件轉換請求的請求類型。例如,調(diào)度組件222可檢索與所接收的文件轉換請求相關聯(lián)的文件轉換參數(shù)260-7。文件轉換參數(shù)260-7可包括表示對同步文件轉換請求202、異步文件轉換請求204、或某種其他請求類型的顯式設定的請求值。文件轉換參數(shù)260-7可與文件轉換請求一起被接收,諸如被嵌入在用于傳輸該文件轉換請求的數(shù)據(jù)分組的頭部或有效載荷部分。替代地,文件轉換參數(shù)260-7可被先驗地存儲在文檔隊列數(shù)據(jù)庫226中。文件轉換參數(shù)260-7可由用戶設定,或由文件轉換系統(tǒng)200分配(例如,基于過去的歷史)。各實施例不限于該上下文?!┐_定了文件轉換請求的請求類型,調(diào)度組件222就可在接收到同步文件轉換請求202時將該同步文件轉換請求202發(fā)送到同步作業(yè)隊列234。例如,調(diào)度組件222可確定所接收的文件轉換請求是同步文件轉換請求202,并在做出該確定后立即將該同步文件轉換請求202直接發(fā)送到同步作業(yè)隊列234以由應用服務器工作器組件230立即處理。這有助于確保同步文件轉換請求202以較低等待時間被處理。盡管同步文件轉換請求202的副本可被存儲在文檔隊列數(shù)據(jù)庫226中,然而此副本是用于跟蹤目的而不是用于調(diào)度作業(yè)請求來進行未來處理。作為對比,調(diào)度組件222可在定義的時間間隔將異步文件轉換請求204發(fā)送到異步作業(yè)隊列236。例如,調(diào)度組件222可確定所接收的文件轉換請求是異步文件轉換請求204,并將該異步文件轉換請求204存儲在文檔隊列數(shù)據(jù)庫庫226中以由應用服務器工作器組件230在未來處理。這通常是因為同步文件轉換請求204是針對容許較高等待時間程度的較大數(shù)量的文件的,諸如用于在低資源利用時間段期間(例如,給定時區(qū)的夜晚時分)執(zhí)行的“批處理”操作。應用服務器管理器組件220可包括計時器作業(yè)組件224。計時器作業(yè)組件224可包括計時器和相關聯(lián)的邏輯以控制轉換的頻率和被活動地轉換的文件的數(shù)量。計時器作業(yè)組件224可被安排為在定義的時間間隔周期性地從文檔隊列數(shù)據(jù)庫226檢索異步文件轉換請求204,并將該異步文件轉換請求204發(fā)送到異步作業(yè)隊列236。應用服務器管理器組件220可以通信地耦合于應用服務器工作器組件230。盡管組件220、230可被示出為分開的組件,然而可以理解,組件220、230可以在視給定實現(xiàn)的需要而在相同服務器或不同服務器上實現(xiàn)。各實施例不限于該上下文。應用服務器工作器組件220可為文件轉換系統(tǒng)200執(zhí)行實際的文件轉換操作,并且通信地耦合于內(nèi)容數(shù)據(jù)庫238以協(xié)助文件轉換操作。在一個實施例中,例如,文件轉換系統(tǒng)200可進一步包括應用服務器工作器組件230,該應用服務器工作器組件230被安排為接收同步文件轉換請求202和異步文件轉換請求204,并且將所接收的同步文件轉換請求202和所接收的異步文件轉換請求204分別存儲在同步作業(yè)隊列234和異步作業(yè)隊列236中。應用服務器工作器組件220可包括文件轉換組件232。文件轉換組件232執(zhí)行實際的文件轉換服務操作。文件轉換組件232維護含有需要被轉換的項的一個或多個內(nèi)部隊列。如圖所示,文件轉換組件232含有同步作業(yè)隊列234和異步作業(yè)隊列236。在一個實施例中,例如,應用服務器工作器組件230可包括文件轉換組件232,該文件轉換器組件232被安排為在處理異步作業(yè)隊列236中所存儲的異步文件轉換請求204之前處理同步作業(yè)隊列234中所存儲的任何同步文件轉換請求202,直到該同步文件隊列234為空。
在一般操作中,調(diào)度組件222可經(jīng)由對象模型212通過web組件210接收同步文件轉換請求202。因為同步文件轉換請求202使更低的等待時間優(yōu)先于更高的量,所以調(diào)度組件222立即將同步文件轉換請求202存儲在同步作業(yè)隊列234中以進行立即處理。同步作業(yè)隊列234被安排為僅存儲同步文件轉換請求202。在一個實施例中,只有調(diào)度組件222能夠將同步文件轉換隊列202添加到同步作業(yè)隊列234。文件轉換組件232被安排為將來自同步作業(yè)隊列234的請求優(yōu)先于異步作業(yè)隊列236中存儲的請求來處理。應用服務器管理器組件220的調(diào)度組件222跟蹤易失性或非易失性存儲器中的同步文件轉換請求202。調(diào)度組件222檢查以查看當前同步文件轉換請求202是否超過了這種請求的N+1限制集合,其中N是任何正整數(shù)。如果超過,則當前同步文件轉換請求202的狀態(tài)被設定為“已取消”而web組件210被告知在稍后重試。如果沒有超過,則調(diào)度組件222繼續(xù)處理請求。調(diào)度組件222將同步文件轉換請求202直接發(fā)送到應用服務器工作器組件230的文件轉換組件232的同步作業(yè)隊列234。如果同步文件轉換請求202是基于流的請求,則調(diào)度組件222可將輸入流存儲為應用服務器工作器組件230的文件系統(tǒng)內(nèi)的臨時文件。調(diào)度組件222還可經(jīng)由對象模型212通過web組件210接收異步文件轉換請求204。因為異步文件轉換請求204使更高的量優(yōu)先于更低的等待時間,所以調(diào)度組件222將異步文件轉換請求204存儲在文檔隊列數(shù)據(jù)庫226中以進行延遲的處理。計時器作業(yè)組件224在與異步文件轉換請求204相關聯(lián)的定義的時間間隔檢索異步文件轉換請求204,并在該定義的時間間隔將該異步文件轉換請求204發(fā)送到異步作業(yè)隊列236。調(diào)度組件222用關于請求202、204的信息來更新文檔隊列數(shù)據(jù)庫226。在某些定義的時間間隔,計時器作業(yè)組件224檢查文檔隊列數(shù)據(jù)庫226以尋找需要為異步文件轉換請求204運行的作業(yè)。文件轉換組件232被安排為將來自異步作業(yè)隊列236的請求在同步作業(yè)隊列234中存儲的請求之后來處理。如圖2B所示,計時器作業(yè)組件224推動作業(yè)以進入負載平衡器250中來執(zhí)行。負載平衡器250(或計時器作業(yè)組件224)將作業(yè)發(fā)送到適當?shù)膽梅掌鞴ぷ髌鹘M件230-b (例如,可存在超過一個應用服務器工作器組件)以進行處理(例如,文件轉換操作)。計時器作業(yè)組件224為各個作業(yè)用新狀態(tài)更新文檔隊列數(shù)據(jù)庫226。計時器作業(yè)組件224還尋找在最大允許時間內(nèi)還沒有完成的作業(yè)并檢查處理它們的應用服務器工作器組件230是否已失敗。應用服務器工作器組件230從應用服務器管理器組件220接收請求202、204。同步文件轉換請求202被放入同步作業(yè)隊列234。異步文件轉換請求被放入異步作業(yè)隊列236。文件轉換組件232處理來自同步作業(yè)隊列234的請求直到其為空。然后文件轉換組件232處理來自異步作業(yè)隊列236的請求。來自異步作業(yè)隊列236的請求不必在單一連續(xù)時間段內(nèi)完全處理。例如,異步文件轉換請求204的處理可被臨時暫?;虼驍嘁蕴幚硗阶鳂I(yè)隊列234中存儲的新同步文件轉換請求202,而一旦同步作業(yè)隊列又一次為空,則文件轉換組件232可恢復處理被打斷的異步文件轉換請求204。錯誤情況(諸如無法檢索文件110)被記錄而適當?shù)臓顟B(tài)消息被發(fā)送到應用服務器管理器組件220。被取消的請求被丟棄。如果同步文件轉換請求202是基于流的,則應用服務器工作器組件230可以從它的文件系統(tǒng)上的臨時文件讀取輸入文件。然后應用服務器工作器組件230將得到的文件作為臨時文件寫出到其自己的文件系統(tǒng)中。應用服務器工作器組件230將能夠訪問該文件系·統(tǒng)以處理表示基于流的請求的輸入和輸出文件的臨時文件。一旦文件轉換組件232完成請求202、204的文件轉換操作(不管成功/失敗),啟動請求完成應用編程接口(API)。如果成功,文件轉換組件232嘗試將經(jīng)轉換的文件130保存到指定輸出位置或流,并基于成功或失敗來設定文件轉換狀態(tài)。如果請求202、204是非基于流的,則應用服務器工作器組件230將結果放入內(nèi)容數(shù)據(jù)庫238。如果請求202、204是基于流的,則應用服務器管理器組件220可將存儲在應用服務器工作器組件230的文件系統(tǒng)上的所得到的臨時文件作為流來讀取。web組件210能夠從應用服務器管理器組件220檢索所得到的流。一旦完成基于流的請求,在垃圾收集操作期間,所有相關聯(lián)的臨時文件被從該文件系統(tǒng)移除(例如,破壞文件轉換會話,釋放資源,刪除臨時文件等等)。應用服務器管理器組件220可跟蹤存儲器中正由文件轉換系統(tǒng)200并行處理的多個同步文件轉換請求202。調(diào)度組件222可以能夠訪問進行中的同步文件轉換請求202的存儲器內(nèi)跟蹤。調(diào)度組件222可選擇適當?shù)膽梅掌鞴ぷ髌鹘M件230來完成所批準的同步文件轉換請求202。調(diào)度組件222可將同步文件轉換請求202直接添加到所選擇的應用服務器工作器組件230內(nèi)的同步作業(yè)隊列234。對于基于流的同步文件轉換請求202,調(diào)度組件222會將輸入流作為臨時文件存儲在適當?shù)膽梅掌鞴ぷ髌鹘M件230的文件系統(tǒng)上。調(diào)度組件222可進一步將應用服務器工作器組件230文件系統(tǒng)上的所得到的臨時文件作為存儲在存儲器中的流而讀取??蔀槲募D換系統(tǒng)200設定各文件轉換參數(shù)。文件轉換參數(shù)的示例在表I中示出如下表I
權利要求
1.一種裝置,包括 邏輯設備;以及 應用服務器管理器組件,所述應用服務器管理器組件在所述邏輯設備上操作以接收將文件在不同文件格式間轉換的不同類型的文件轉換請求,在接收到同步文件轉換請求時將所述同步文件轉換請求發(fā)送到同步作業(yè)隊列,以及在定義的時間間隔將異步文件轉換請求發(fā)送到異步作業(yè)隊列。
2.如權利要求I所述的裝置,其特征在于,包括操作以經(jīng)由對象模型從客戶端系統(tǒng)接收所述文件轉換請求的web組件。
3.如權利要求I或2所述的裝置,其特征在于,所述應用服務器管理器組件包括調(diào)度組件,所述調(diào)度組件在所述邏輯設備上操作以基于與文件轉換請求相關聯(lián)的一個或多個文件轉換參數(shù)來確定所述文件轉換請求是同步文件轉換請求還是異步文件轉換請求。
4.如權利要求I到3中任一項所述的裝置,其特征在于,所述應用服務器管理器組件包括計時器作業(yè)組件,所述計時器作業(yè)組件在所述邏輯設備上操作以在所述定義的時間間隔從文檔隊列數(shù)據(jù)庫檢索異步文件轉換請求,并將所述異步文件轉換請求發(fā)送到所述異步作業(yè)隊列。
5.一種計算機實現(xiàn)的方法,包括 接收將文件在不同文件格式間進行轉換的文件轉換請求; 確定所述文件轉換請求是同步文件轉換請求還是異步文件轉換請求; 將同步文件轉換請求存儲在同步作業(yè)隊列中; 將異步文件轉換請求存儲在異步作業(yè)隊列中;以及 在所述異步作業(yè)隊列中所存儲的所述異步文件轉換請求之前,處理所述同步作業(yè)隊列中所存儲的所述同步文件轉換請求。
6.如權利要求5所述的計算機實現(xiàn)的方法,其特征在于,包括當文件轉換請求是對低等待時間轉換操作的請求時確定所述文件轉換請求是同步文件轉換請求,其中所述低等待時間轉換操作能夠一接收到文件請求就立即以同步方式轉換所述文件。
7.如權利要求5或6所述的計算機實現(xiàn)的方法,其特征在于,包括當文件轉換請求是對高吞吐量轉換操作的請求時確定所述文件轉換請求是異步文件轉換請求,其中所述高吞吐量轉換操作能夠以異步方式每次轉換多個文件。
8.如權利要求5到7中任一項所述的計算機實現(xiàn)的方法,其特征在于,包括 將文件在與所述同步作業(yè)隊列中所存儲的每個同步文件轉換請求相關聯(lián)的不同文件格式間進行轉換,直到所述同步文件隊列為空;以及 一旦所述同步文件隊列為空,則將文件在與所述異步作業(yè)隊列中所存儲的異步文件轉換請求相關聯(lián)的不同文件格式間進行轉換。
9.如權利要求5到8中任一項所述的計算機實現(xiàn)的方法,其特征在于,包括 確定一個或多個新的同步文件轉換請求已被所述同步作業(yè)隊列接收; 暫停對所述異步作業(yè)隊列中所存儲的異步文件轉換請求的處理; 處理來自所述同步作業(yè)隊列的所述一個或多個新的同步文件轉換請求,直到所述同步作業(yè)隊列為空;以及 當所述同步作業(yè)隊列為空時,恢復對所述異步作業(yè)隊列中所存儲的異步文件轉換請求的處理。
10.一種包括包含指令的存儲介質的制品,所述指令在被執(zhí)行時使得一種系統(tǒng)執(zhí)行如權利要求5到9中任一項所述的方法。
全文摘要
描述了管理文件轉換的技術。接收將文件在不同文件格式間進行轉換的文件轉換請求。確定所述文件轉換請求是同步文件轉換請求還是異步文件轉換請求。將同步文件轉換請求存儲在同步作業(yè)隊列中。將異步文件轉換請求存儲在異步作業(yè)隊列中。在異步作業(yè)隊列中所存儲的異步文件轉換請求之前,將文件在與同步作業(yè)隊列中所存儲的同步文件轉換請求相關聯(lián)的不同文件格式間進行轉換。對其他實施例也予以描述并要求保護。
文檔編號G06F17/22GK102750266SQ20121008352
公開日2012年10月24日 申請日期2012年3月27日 優(yōu)先權日2011年3月28日
發(fā)明者A·塔勒甘尼, A·普拉耶-米勒, J·里昂, Z·拉杰彼 申請人:微軟公司