欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

演示軟件自動化服務(wù)的制作方法

文檔序號:6495569閱讀:381來源:國知局
演示軟件自動化服務(wù)的制作方法
【專利摘要】本發(fā)明公開了用于執(zhí)行自動化服務(wù)的實施例。在各實施例中,自動化服務(wù)是能夠把初始文件轉(zhuǎn)換成與初始文件具有不同文件類型的經(jīng)轉(zhuǎn)換的文件的應(yīng)用、過程或系統(tǒng)。在實施例中,請求者生成轉(zhuǎn)換請求消息。轉(zhuǎn)換請求消息可以包含與期望的轉(zhuǎn)換、轉(zhuǎn)換期間要執(zhí)行的選項和要轉(zhuǎn)換的初始文件有關(guān)的信息??梢杂米鳛檎埱笙⒁徊糠值臄?shù)據(jù)流來表示初始文件。請求消息被發(fā)送到文件轉(zhuǎn)換器,該文件轉(zhuǎn)換器對數(shù)據(jù)流執(zhí)行期望的請求以創(chuàng)建經(jīng)轉(zhuǎn)換的文件。
【專利說明】演示軟件自動化服務(wù)
[0001]背景
[0002]一些演示應(yīng)用向用戶提供了把演示文件類型轉(zhuǎn)換成不同文件類型的選項。為了使用這個選項,用戶不得不使用演示應(yīng)用單獨地打開并轉(zhuǎn)換每個文件。但是,存在用戶期望把大量演示文件轉(zhuǎn)換成不同文件格式的情形。這在其中公司想要把大量存儲的演示轉(zhuǎn)換成不同文件格式的商業(yè)環(huán)境中尤其成立。在這些情形中,使用由演示應(yīng)用提供的轉(zhuǎn)換選項來轉(zhuǎn)換大量的演示文件是沒有效率的。本發(fā)明的各實施例正是對于這一一般環(huán)境而構(gòu)想的。
[0003]雖然本【背景技術(shù)】中著眼于特定的問題,但本發(fā)明決不旨在限于解決那些特定問題。
[0004]概述
[0005]公開了用于執(zhí)行自動化服務(wù)的實施例。在各實施例中,自動化服務(wù)是能夠把初始文件轉(zhuǎn)換成與初始文件具有不同文件類型的經(jīng)轉(zhuǎn)換的文件的應(yīng)用、過程或系統(tǒng)。例如,可以采用自動化服務(wù)把諸如POWERPOINT ΤΜ(.PPt)文件或/和開放辦公室(Open Office) XML演示文件(.PPtx)的演示文件轉(zhuǎn)換成經(jīng)轉(zhuǎn)換的文件(例如,PDF文件,XPS文件,JPEG文件,PNG文件,或者任何其他類型的文件)。
[0006]在實施例中,請求者生成轉(zhuǎn)換請求消息。轉(zhuǎn)換請求消息可以包含與期望的轉(zhuǎn)換、轉(zhuǎn)換期間要執(zhí)行的選項和要轉(zhuǎn)換的初始文件有關(guān)的信息??梢杂米鳛檎埱笙⒁徊糠值臄?shù)據(jù)流來表示初始文件。請求消息被發(fā)送到文件轉(zhuǎn)換器,該文件轉(zhuǎn)換器對數(shù)據(jù)流執(zhí)行期望的請求以創(chuàng)建經(jīng)轉(zhuǎn)換的文件。經(jīng)轉(zhuǎn)換的文件隨后被返回給請求者。在附加實施例中,文件轉(zhuǎn)換器可以排定各請求的優(yōu)先級。例如,文件轉(zhuǎn)換器可以將單個文件轉(zhuǎn)換請求的優(yōu)先級排定在轉(zhuǎn)換批處理文件的請求之上。
[0007]提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護的主題的范圍。
【專利附圖】

【附圖說明】
[0008]在所有的圖中,相同標號表示相同元素或相同類型的元素。
[0009]圖1示出了用于執(zhí)行自動化服務(wù)的系統(tǒng)100的實施例。
[0010]圖2是表示用于生成并發(fā)送自動化請求的方法200的實施例的流程圖。
[0011]圖3是表示對自動化請求作出響應(yīng)的方法300的實施例的流程圖。
[0012]圖4是表示用于處理多個自動化請求的方法400的實施例的流程圖。
[0013]圖5示出用于實現(xiàn)本文公開的各方法的計算機環(huán)境和計算機系統(tǒng)500的實施例。
【具體實施方式】
[0014]本發(fā)明現(xiàn)將參考其中示出了一些可能的實施例的附圖來更完整地描述各示例性實施例。然而,其他方面能以許多不同的形式來實現(xiàn),并且在本發(fā)明中包括各具體實施例不應(yīng)被解釋為將這些方面限于在此闡明的各實施例。相反,包括附圖中描繪的各實施例是為了提供全面和完整且將預(yù)期的范圍完全地傳達給本領(lǐng)域技術(shù)人員的公開。在參考附圖時,使用相同的附圖標記來指示所有附圖所示的相同的結(jié)構(gòu)和元素。
[0015]公開了用于執(zhí)行自動化服務(wù)的系統(tǒng)和方法的實施例。自動化服務(wù)是能夠把初始文件轉(zhuǎn)換成具有與初始文件不同文件類型的經(jīng)轉(zhuǎn)換的文件的應(yīng)用、過程或系統(tǒng)。例如,可以采用自動化服務(wù)把諸如POWERPOINT TM (.ppt)文件或/和開放辦公室(Open Office)XML演示文件(.PPtx)的演示文件轉(zhuǎn)換成經(jīng)轉(zhuǎn)換的文件(例如,PDF文件,XPS文件,JPEG文件,PNG文件,或者任何其他類型的不同文件)。
[0016]在實施例中,請求者生成轉(zhuǎn)換請求消息。轉(zhuǎn)換請求消息可以包含與期望的轉(zhuǎn)換、轉(zhuǎn)換期間要執(zhí)行的選項和要轉(zhuǎn)換的初始文件有關(guān)的信息。可以用作為請求消息一部分的數(shù)據(jù)流來表示初始文件。請求消息被發(fā)送到文件轉(zhuǎn)換器,該文件轉(zhuǎn)換器對數(shù)據(jù)流執(zhí)行轉(zhuǎn)換請求以創(chuàng)建經(jīng)轉(zhuǎn)換的文件。經(jīng)轉(zhuǎn)換的文件隨后被返回給請求者。在附加實施例中,文件轉(zhuǎn)換器排定各請求的優(yōu)先級。例如,文件轉(zhuǎn)換器可以將單個文件轉(zhuǎn)換請求的優(yōu)先級排定在轉(zhuǎn)換批處理文件的請求之上。
[0017]例如,本文公開的系統(tǒng)和方法可以被用來把演示文件(例如,開放辦公室XML演示(.pptx)文件,POWERPOINT TM演示(.ppt)文件或任何其他類型的演示文件)轉(zhuǎn)換成具有不同文件類型的經(jīng)轉(zhuǎn)換的文件。在實施例中,經(jīng)轉(zhuǎn)換的文件類型是除原始文件類型之外的文件類型。例如,經(jīng)轉(zhuǎn)換的文件類型可以是但不受限于是以下文件類型中的一種:開放辦公室XML演示(.pptx)文件、POWERPOINT TM演示(.ppt)文件、便攜文檔格式(.pdf)文件、XML頁面規(guī)范(.xps)文件、JPEG (.jpg)文件,和/或便攜網(wǎng)絡(luò)圖形(.png)文件。在某些實施例中,在把演示文件轉(zhuǎn)換成諸如.jpg文件或.png文件的圖像文件時,可以為該演示的每張幻燈片或頁面生成單獨圖像。在一些實施例中,這些單獨文件隨后可被一起分組在一個壓縮文件(例如,zip文件、tar文件、.gz文件、.7z文件或任何其他類型的壓縮文件)中。
[0018]現(xiàn)在參考附圖,圖1示出了用于執(zhí)行自動化服務(wù)的系統(tǒng)100的實施例。在實施例中,自動化服務(wù)是把初始文件轉(zhuǎn)換成具有不同文件類型的經(jīng)轉(zhuǎn)換的文件的服務(wù)。系統(tǒng)100可以是聯(lián)網(wǎng)系統(tǒng)、諸如但不限于諸如微軟TM SHAREP0INT TM的平臺的web服務(wù)平臺或者任何其他類型的計算機環(huán)境的一部分。在實施例中,系統(tǒng)包括前端服務(wù)器101和后端服務(wù)器108。前端服務(wù)器101可以包括公共對象模型(“公共0M”)102,該公共對象模型102提供用于生成文件轉(zhuǎn)換請求(諸如,舉例而言轉(zhuǎn)換演示文件的請求)的邏輯。在實施例中,公共0M102是請求者(例如,用戶、開發(fā)者、應(yīng)用、過程等)可用以創(chuàng)建文件轉(zhuǎn)換請求的應(yīng)用編程接口(“API”)。例如,在一個實施例中,公共0M102提供用于請求文件轉(zhuǎn)換的類屬方法。在此類實施例中,無論最終創(chuàng)建了什么類型的經(jīng)轉(zhuǎn)換的文件,都可調(diào)用該類屬方法。在其他實施例中,公共0M102可以為每一類型的期望的經(jīng)轉(zhuǎn)換的文件類型提供專用轉(zhuǎn)換方法。例如,公共0M102可以提供把演示文件轉(zhuǎn)換成.pdf文件的專用方法,把演示文件轉(zhuǎn)換成.jpg文件的不同方法,等等。在此類實施例中,公共0M102可以為每種文件類型轉(zhuǎn)換展示不同的方法。
[0019]在實施例中,所提供的生成文件轉(zhuǎn)換請求的各方法可以接受輸入?yún)?shù)。例如,各方法可以將諸如演示文件的文件作為輸入?yún)?shù)來接受。在一個實施例中,將該文件本身作為方法的輸入來提供。例如,可以向該方法提供到要轉(zhuǎn)換的初始文件的路徑。在這種情況下,該方法可以隨后使用路徑信息來訪問文件。在其他實施例中,該方法可以接收表示初始文件的數(shù)據(jù)流。使用數(shù)據(jù)流為文件轉(zhuǎn)換自動化服務(wù)提供額外效率。如果將初始文件作為流來提供,則允許自動化服務(wù)對該數(shù)據(jù)流執(zhí)行文件轉(zhuǎn)換,而不必分配存儲器來存儲初始文件和經(jīng)轉(zhuǎn)換的文件。在轉(zhuǎn)換該流后,自動化服務(wù)可把經(jīng)轉(zhuǎn)換的文件以數(shù)據(jù)流的形式傳遞回請求者。
[0020]在實施例中,公共0M102取決于輸入中所提供的文件數(shù)目來接受輸入路徑或流。例如,可以將單個文件作為輸入路徑或流來提供。但是,可以向整個文件夾或網(wǎng)絡(luò)列表(諸如但不限于SHAREP0INT TM列表)、這樣的對象分組提供路徑數(shù)據(jù),該路徑數(shù)據(jù)提供初始文件的位置和用以寫經(jīng)轉(zhuǎn)換的文件的位置。在其他實施例中,諸如在公共0M102提供如上所述的類屬轉(zhuǎn)換方法時,該方法還以例如指示請求者所期望的文件轉(zhuǎn)換類型的參數(shù)的形式接收信息。
[0021]在又一實施例中,公共0M102所提供的方法接收有關(guān)轉(zhuǎn)換選項的信息。例如,取決于所請求的經(jīng)轉(zhuǎn)換的文件的類型,請求者可以指示自動化服務(wù)可在轉(zhuǎn)換過程期間執(zhí)行附加動作。例如,在請求者請求將演示文件轉(zhuǎn)換成圖像或一系列圖像的實施例中,請求者可以指定圖像的尺寸、圖像的分辨率或任何數(shù)量的其他與圖像相關(guān)的選項。在請求者請求將演示文件轉(zhuǎn)換成.Pdf文件的另一實施例中,請求者可以請求每頁的幻燈片數(shù)目,是否將來自演示文件的注解包括在經(jīng)轉(zhuǎn)換的.Pdf文件或.xpS文件中,經(jīng)轉(zhuǎn)換的文件是否是PDF/A格式,所得到的經(jīng)轉(zhuǎn)換的文件是否是使用標準質(zhì)量或高質(zhì)量創(chuàng)建的,是否包括隱藏幻燈片,是否給幻燈片加框,或者在創(chuàng)建.Pdf文件時常采用的任何其他類型的說明或選項。在其他實施例中,方法可以接收有關(guān)包括或去除元數(shù)據(jù)的選項,有關(guān)經(jīng)轉(zhuǎn)換的文件是否被壓縮的選項,或者在創(chuàng)建某種類型的文件時所提供的任何其他類型的選項。
[0022]自動化服務(wù)還可以提供請求者可以使用來在文件轉(zhuǎn)換期間將某些數(shù)據(jù)從諸如演示文件的文件中去除的文檔檢查選項。在實施例中,自動化服務(wù)可以提供自動化去除信息的選項。例如,自動化服務(wù)可以提供請求者可以選擇來判定是否將某些信息包括在經(jīng)轉(zhuǎn)換的文件中的選項。這樣的信息可以包括:評論和注釋、文檔屬性和PI1、定制XML、不可見的幻燈片上內(nèi)容、幻燈片外內(nèi)容、和/或演示注解。
[0023]除了提供生成對文檔轉(zhuǎn)換的請求的方法以外,公共0M102還提供用來執(zhí)行用于文件轉(zhuǎn)換的自動化服務(wù)的附加方法。例如,公共0M102可以提供啟動方法(例如,“開始”或“開動”方法)以例如通過調(diào)用自動化服務(wù)或通過向另一過程發(fā)送執(zhí)行自動化服務(wù)的請求來開始自動化服務(wù)。由公共0M102提供的其他方法可以包括用以完成自動化服務(wù)的終止方法(例如,“結(jié)束”方法)。例如,在一個實施例中,終止方法可以通知請求者自動化服務(wù)已經(jīng)完成。在這些實施例中,終止方法還可以向請求者提供一個或多個經(jīng)轉(zhuǎn)換的文件。在另一個實施例中,如果自動化服務(wù)文件轉(zhuǎn)換失敗,終止服務(wù)例如可以通過把錯誤消息傳遞回請求者來將該失敗告知請求者。
[0024]在實施例中,公共0M102使用處理通知的異步模式方法。通過采用異步模式方法,請求者不必在轉(zhuǎn)換正進行時監(jiān)視文件轉(zhuǎn)換請求的狀態(tài)。這允許請求者在等待文件轉(zhuǎn)換時執(zhí)行其他任務(wù)。另外,異步模式方法允許請求者向自動化服務(wù)提出文件轉(zhuǎn)換請求而不阻塞資源。
[0025]在實施例中,在請求者能夠向自動化服務(wù)提供初始文件并使用公共0M102來生成請求之前,對請求者執(zhí)行確認和安全性檢查。例如,請求者可能不得不執(zhí)行認證和授權(quán)檢查以確保請求者具有訪問初始文件或目錄的合適許可集。在一個實施例中,在請求者訪問公共0M102之前執(zhí)行確認和安全性檢查。在另一個實施例中,公共0M102可以執(zhí)行確認和安全性檢查。
[0026]前端服務(wù)器101還可以包括請求管理器104。請求管理器104可以和公共0M102或使用公共0M102的任何應(yīng)用通信。請求管理器104向后端服務(wù)器108發(fā)送請求。在實施例中,雖然在圖1中未示出,但自動化服務(wù)可以是跨多個服務(wù)器的分布式服務(wù)。在這些實施例中,在系統(tǒng)100中可以采用多個后端服務(wù)器108。在分布式實施例中,請求管理器104可以通過執(zhí)行負載平衡來判定把請求發(fā)送到哪個后端服務(wù)器108。例如,請求管理器104可以使用一致性散列在后端服務(wù)器108間分配請求。在另外的實施例中,請求管理器104還可以在前端服務(wù)器101失去其到后端服務(wù)器108的連接的情形下或在后端服務(wù)器108停工的情況下執(zhí)行故障轉(zhuǎn)移方法。請求管理器104還可以在請求消息沒被正確地遞送到后端服務(wù)器108的情況下重試發(fā)送消息。
[0027]在實施例中,前端服務(wù)器101還可以包括自動化服務(wù)代理106,其被用來建立位于后端服務(wù)器108上的自動化服務(wù)110和前端服務(wù)器101間的通信。自動化服務(wù)代理106可以是Windows通信基礎(chǔ)(“WCF”)代理。WCF代理可以被用來訪問后端服務(wù)器108上的自動化服務(wù)110。在另一個實施例中,自動化服務(wù)代理106可以是能夠提供與遠程應(yīng)用的通信和/或訪問遠程應(yīng)用的任何其他類型的代理或API。
[0028]系統(tǒng)100還包括后端服務(wù)器108。在實施例中,后端服務(wù)器108包含執(zhí)行自動化服務(wù)文件轉(zhuǎn)換的應(yīng)用和/或過程。后端服務(wù)器108從前端服務(wù)器102接收請求并執(zhí)行自動化服務(wù)以把文件轉(zhuǎn)換成新文件類型。在實施例中,后端服務(wù)器108在數(shù)據(jù)流中接收供轉(zhuǎn)換的一個或多個初始文件。后端服務(wù)器108上的過程對數(shù)據(jù)流進行操作以創(chuàng)建經(jīng)轉(zhuǎn)換的文件并經(jīng)由前端服務(wù)器把經(jīng)轉(zhuǎn)換的文件作為經(jīng)轉(zhuǎn)換的文件數(shù)據(jù)流傳遞回請求者。對數(shù)據(jù)流進行操作通過使后端服務(wù)器108免于保存初始文件或經(jīng)轉(zhuǎn)換的文件而產(chǎn)生存儲效率。
[0029]在實施例中,后端服務(wù)器108包括自動化服務(wù)110。自動化服務(wù)110促成了經(jīng)由自動化服務(wù)代理106與web前端服務(wù)器101通信。例如,自動化服務(wù)110接收對文件轉(zhuǎn)換的請求,并且在成功轉(zhuǎn)換的情況下把經(jīng)轉(zhuǎn)換的文件返回給web前端服務(wù)器101。如果轉(zhuǎn)換不成功,自動化服務(wù)110可以把錯誤代碼傳送到前端服務(wù)器101。在一個實施例中,錯誤代碼可以是與所產(chǎn)生的錯誤類型相對應(yīng)的唯一錯誤代碼。錯誤代碼可以包括與文件轉(zhuǎn)換為什么不成功有關(guān)的信息。在另外的實施例中,自動化服務(wù)110可以是WCF端點。在這些實施例中,自動化服務(wù)110具有地址并且指定綁定和前端服務(wù)器101可用來聯(lián)系自動化服務(wù)的合同。在其他實施例中,自動化服務(wù)110可以是能夠接收請求并把響應(yīng)傳送回請求者的任何類型的遠程可訪問應(yīng)用。
[0030]后端服務(wù)器108還可以包括應(yīng)用管理器(AppManager) 112。該應(yīng)用管理器112可被用來選擇諸如轉(zhuǎn)換器116的合適過程來執(zhí)行所請求的文件轉(zhuǎn)換。如圖1所示,后端服務(wù)器108可以包括可被用來執(zhí)行所請求的文件轉(zhuǎn)換的多個轉(zhuǎn)換器116過程。另外,后端服務(wù)器108可以包括工作器114,諸如工作器I到工作器N。在實施例中,工作器114可以是促成應(yīng)用管理器112和一個或多個轉(zhuǎn)換器116過程之間的通信的對轉(zhuǎn)換器116過程的包裝。
[0031]在一個實施例中,后端服務(wù)器運行多個轉(zhuǎn)換器116過程以執(zhí)行文件轉(zhuǎn)換,諸如把演示文件轉(zhuǎn)換成不同的文件格式。每個轉(zhuǎn)換器116可能能夠一次執(zhí)行單個文件轉(zhuǎn)換。由此,后端服務(wù)器108提供用來同時處理大量文件請求的多個轉(zhuǎn)換器116。在這些實施例中,在接收到請求后,后端服務(wù)器108就利用應(yīng)用管理器112來判定是否存在不處于使用中的空閑轉(zhuǎn)換器116。如果存在空閑轉(zhuǎn)換器116,應(yīng)用管理器112把請求引導(dǎo)到該空閑過程。在一個實施例中,引導(dǎo)請求到空閑轉(zhuǎn)換器116可以包括提供請求、任何請求選項以及初始文件或數(shù)據(jù)流。
[0032]在一個實施例中,每個轉(zhuǎn)換器116能夠?qū)Τ跏嘉募?zhí)行任何支持類型的文件轉(zhuǎn)換。在另一個實施例中,不同的轉(zhuǎn)換器116可以被用來執(zhí)行不同類型的文件轉(zhuǎn)換。在這些實施例中,除了標識空閑轉(zhuǎn)換器116之外,應(yīng)用管理器112還標識要將請求發(fā)送到的正確的轉(zhuǎn)換器(例如,能夠執(zhí)行所請求的轉(zhuǎn)換類型的轉(zhuǎn)換器)。
[0033]在實施例中,由轉(zhuǎn)換器116執(zhí)行自動化服務(wù)提供的文件轉(zhuǎn)換。例如,轉(zhuǎn)換器116接收初始文件(或包含初始文件的數(shù)據(jù)流)及任何所請求的轉(zhuǎn)換選項,并生成經(jīng)轉(zhuǎn)換的文件。后端服務(wù)器108通過經(jīng)由自動化服務(wù)110把經(jīng)轉(zhuǎn)換的文件傳遞回前端服務(wù)器101來把經(jīng)轉(zhuǎn)換的文件返回給請求者。前端服務(wù)器101可以隨后為請求者存儲經(jīng)轉(zhuǎn)換的文件或把經(jīng)轉(zhuǎn)換的文件提供回請求者。
[0034]盡管圖1示出使用前端服務(wù)器101和后端服務(wù)器108來執(zhí)行用于文件轉(zhuǎn)換的自動化服務(wù)的系統(tǒng)100,本領(lǐng)域的技術(shù)人員將理解自動化服務(wù)可以在具有更少或更多服務(wù)器的系統(tǒng)中執(zhí)行。例如,可以由單個服務(wù)器或三個或更多個服務(wù)器來執(zhí)行圖1中所述的所有過程和/或模塊。在實施例中,過程可以由駐留在計算機存儲介質(zhì)中的軟件指令來執(zhí)行,當(dāng)這些指令被處理器執(zhí)行時執(zhí)行自動化服務(wù)。在另一個實施例中,圖1中所述的過程和/或方法可以用硬件實現(xiàn)。另外,當(dāng)圖1描述具體模塊(例如請求管理器104、應(yīng)用管理器112等)時,參考系統(tǒng)100來描述的功能可以使用比圖1中示出的更少或更多的模塊來執(zhí)行。
[0035]已經(jīng)描述了用于執(zhí)行自動化服務(wù)的系統(tǒng),圖2-4示出可被用來執(zhí)行自動化服務(wù)的方法的各種實施例。圖2示出表示用于生成并發(fā)送自動化請求的方法200的實施例的流程圖。方法200可以被系統(tǒng)、應(yīng)用或過程執(zhí)行來請求文件轉(zhuǎn)換。例如,方法200可以由諸如應(yīng)用或過程或作為網(wǎng)絡(luò)的一部分的服務(wù)器(諸如,前端服務(wù)器101)的請求生成器來執(zhí)行。流程開始于操作202,在操作202處,方法200從請求者接收請求數(shù)據(jù)。請求者可以是請求文件轉(zhuǎn)換的用戶、應(yīng)用或過程,該文件轉(zhuǎn)換諸如但不限于把演示文件轉(zhuǎn)換成另一種文件類型。在實施例中,請求數(shù)據(jù)可以包括與以下各項有關(guān)的信息:請求類型、初始文件數(shù)據(jù)、初始文件類型、期望的轉(zhuǎn)換文件類型、轉(zhuǎn)換文件數(shù)據(jù)(例如,轉(zhuǎn)換文件的名稱、位置、類型等)或?qū)ψ詣踊^程有用的其他任何類型的信息。
[0036]在接收所請求的數(shù)據(jù)之后,流程可選地行進到操作204,在操作204處,方法200可選地判定請求者的許可。例如,在可選的操作204,方法200可以驗證請求者的真實性,驗證請求者被授權(quán)訪問初始文件或創(chuàng)建經(jīng)轉(zhuǎn)換的文件、執(zhí)行確認功能、執(zhí)行安全性檢查等等。在另一個實施例中,在請求者能夠請求數(shù)據(jù)轉(zhuǎn)換之前檢查并確認請求者的許可。在這樣的實施例中,方法200不執(zhí)行可選步驟204。
[0037]如果在操作204處確認了請求者的許可或者在方法200開始以前確認了用戶的許可,流程繼續(xù)到操作206。在操作206處,方法準備請求消息的請求部分。在實施例中,自動化服務(wù)請求可以包含多個部分。請求消息的一部分可以是請求部分。在這些實施例中,消息的請求部分可以包括對新經(jīng)轉(zhuǎn)換的文件類型、轉(zhuǎn)換選項或任何其他類型的與請求相關(guān)信息的請求。
[0038]流程繼續(xù)到操作208,在操作208處,將請求數(shù)據(jù)與初始文件數(shù)據(jù)一起打包以創(chuàng)建請求消息。在實施例中,請求消息包括請求數(shù)據(jù)和要轉(zhuǎn)換的初始文件。在一個實施例中,初始文件可以通過在操作208處把到該文件的路徑包括在請求消息中來提供。在另一個實施例中,初始文件數(shù)據(jù)可以被表示為數(shù)據(jù)流,該數(shù)據(jù)流與要發(fā)送的請求數(shù)據(jù)一起打包成請求消息。在將請求數(shù)據(jù)和文件數(shù)據(jù)打包并由此生成請求消息之后,流程繼續(xù)到操作210,在操作210處,請求消息被發(fā)送到自動化服務(wù)。在一個實施例中,發(fā)送請求消息到自動化的服務(wù)包括發(fā)送消息到執(zhí)行自動化服務(wù)的任何數(shù)量的應(yīng)用或過程。在一個實施例中,自動化服務(wù)可以與請求者和/或請求應(yīng)用位于相同的機器上。在另一個實施例中,自動化的服務(wù)可以位于不同的服務(wù)器上。在這些實施例中,操作210處的發(fā)送請求消息可以利用諸如自動化服務(wù)代理106的通信模塊來促成與遠程機器的通信。
[0039]在發(fā)送請求消息之后,流程繼續(xù)到操作212,在操作212處,請求生成器接收對請求的響應(yīng)。在實施例中,自動化服務(wù)利用向請求生成器提供通知的異步模式方法。這使得請求生成器免于必須監(jiān)視轉(zhuǎn)換請求的狀態(tài)并且允許請求生成器在等待對請求的響應(yīng)時執(zhí)行其他任務(wù)。但是,在另一個實施例中,在操作212處,執(zhí)行方法200的請求生成器可以實際監(jiān)視請求的狀態(tài)。
[0040]對請求的響應(yīng)可以是經(jīng)轉(zhuǎn)換的文件或者其可以是錯誤代碼。如果響應(yīng)包括經(jīng)轉(zhuǎn)換的文件,在操作212處處理經(jīng)轉(zhuǎn)換的文件。處理經(jīng)轉(zhuǎn)換的文件可以包括向請求者發(fā)送文件、存儲文件、訪問文件并向用戶顯示文件、和/或修改文件。如果在操作212處響應(yīng)包括錯誤代碼而不是經(jīng)轉(zhuǎn)換的文件,處理響應(yīng)可以包括重新發(fā)送請求。在實施例中,錯誤代碼可以是提供包含失敗的轉(zhuǎn)換的原因的附加信息的唯一的錯誤代碼。如果請求生成器接收錯誤代碼,它可以在重新發(fā)送請求之前解決錯誤。解決錯誤可以包括修改請求或生成新請求及發(fā)送新請求。
[0041]盡管方法200已經(jīng)被描述為包括各分立操作,但本領(lǐng)域的技術(shù)人員將理解圖2中所述的各操作可以結(jié)合到一起或分離開,從而產(chǎn)生仍能執(zhí)行參考方法200所述的各實施例的更少或更多的操作。此外,本領(lǐng)域的技術(shù)人員將理解盡管按照特定次序描述了方法200,但這些操作的次序可以被重新排列,而仍執(zhí)行圖2中所述方法的各實施例。
[0042]圖3是表示對自動化請求作出響應(yīng)的方法300的實施例的流程圖。在實施例中,方法300可以由文件轉(zhuǎn)換器來實施。文件轉(zhuǎn)換器可以是能夠執(zhí)行圖3中所述操作的應(yīng)用、過程、機器或任何其他設(shè)備。例如,方法300可以由后端服務(wù)器108和/或之前參考圖1討論的模塊中的一個或多個來執(zhí)行。流程開始于操作302,在操作302處,方法300接收對文件轉(zhuǎn)換的請求。在實施例中,請求可以包含請求消息,該請求消息包括與請求和/或要轉(zhuǎn)換的初始文件相關(guān)的信息。在實施例中,在方法300可以對其執(zhí)行轉(zhuǎn)換的數(shù)據(jù)流中接收初始文件。這允許該方法轉(zhuǎn)換初始文件,而無需在本地保存初始文件的備份。
[0043]響應(yīng)于接收請求,流程繼續(xù)到操作304,在操作304處執(zhí)行文件轉(zhuǎn)換。例如,諸如但不限于.ppt和.pptx文件的演示文件被轉(zhuǎn)換成不同的文件類型(例如,.pdf文件,.xpS文件,.jpg文件,.png文件,或包括多個.jpg或.png文件的壓縮文件,或任何其他文件類型)。在另一個實施例中,文件轉(zhuǎn)換器還把.PPt文件轉(zhuǎn)換成.pptx或把.pptx文件轉(zhuǎn)換成.ppt文件。在另外的實施例中,文件轉(zhuǎn)換器還執(zhí)行轉(zhuǎn)換選項,這些轉(zhuǎn)換選項諸如但不限于設(shè)定圖像尺寸及分辨率,以及添加或去除信息。
[0044]在轉(zhuǎn)換過程之后,流程行進到判定操作306,在操作306處,方法300判定轉(zhuǎn)換是否成功。如果轉(zhuǎn)換成功,流程使“是”分支到操作308并且經(jīng)轉(zhuǎn)換的文件被發(fā)送到請求者。例如,在對數(shù)據(jù)流操作的轉(zhuǎn)換的實施例中,數(shù)據(jù)流可以被發(fā)送回請求者。在一個實施例中,如果轉(zhuǎn)換不成功,流程使“否”分支到操作310,并且方法300向請求者返回錯誤代碼。在實施例中,錯誤代碼告知請求者轉(zhuǎn)換失敗,并且錯誤代碼包括有關(guān)轉(zhuǎn)換為什么不成功的信息。
[0045]圖4是表示用于處理多個自動化請求的方法400的實施例的流程圖。在實施例中,方法400可以由文件轉(zhuǎn)換器來實施。文件轉(zhuǎn)換器可以是能夠執(zhí)行圖4中所述操作的應(yīng)用、過程、機器或任何其他設(shè)備。例如,方法400可以由后端服務(wù)器100和/或之前參考圖1討論的模塊中的一個或多個來執(zhí)行。
[0046]流程開始于操作402,在操作402處,文件轉(zhuǎn)換器從請求者接收第一請求。該請求可以包括請求消息,該請求消息包含與請求和/或要轉(zhuǎn)換的初始文件相關(guān)的信息。在實施例中,在方法400可以對其執(zhí)行轉(zhuǎn)換的數(shù)據(jù)流中接收初始文件。這允許該方法轉(zhuǎn)換初始文件,而無需在本地保存初始文件的備份。在另外的實施例中,請求可以包括需要轉(zhuǎn)換的文件的數(shù)目。例如,該請求可以包括轉(zhuǎn)換多個文件的批處理請求。流程行進到操作404,在操作404處,文件轉(zhuǎn)換器開始轉(zhuǎn)換在操作402中接收到的一個或多個文件。再一次作為示例,諸如但不限于.PPt和.pptx文件的一個或多個演示文件可被轉(zhuǎn)換成不同的文件類型(例如,.pdf文件,.xps文件,.jpg文件,.png文件,或包括多個.jpg或.png文件的壓縮文件,或任何其他文件類型)。在另一個實施例中,文件轉(zhuǎn)換器還可把.PPt文件轉(zhuǎn)換成.pptx或把.PPtx文件轉(zhuǎn)換成.ppt文件。在另外的實施例中,文件轉(zhuǎn)換器還執(zhí)行轉(zhuǎn)換選項,這些轉(zhuǎn)換選項諸如但不限于設(shè)定圖像尺寸及分辨率,以及添加或去除信息。
[0047]在稍后的時間點,文件轉(zhuǎn)換器從請求者接收對文件轉(zhuǎn)換的第二請求。該請求者可以是與生成在操作402處接收到的第一請求的那個請求者相同或不同的請求者。如參考圖1所討論的,諸如后端服務(wù)器100的文件轉(zhuǎn)換器可以包括多個文件轉(zhuǎn)換過程。但是,多個過程可以全部都參與到文件轉(zhuǎn)換過程,例如如果每一過程都參與到轉(zhuǎn)換一批文件中的話。一般而言,當(dāng)請求者請求批處理轉(zhuǎn)換時,請求者并不期望該轉(zhuǎn)換立即完成。在這種情況下,請求者可能并不期望訪問所有經(jīng)轉(zhuǎn)換的文件,直到所有文件被轉(zhuǎn)換完。另一方面,對單個文件轉(zhuǎn)換的請求可能需要立即訪問該經(jīng)轉(zhuǎn)換的文件。例如,請求者可以是需要對文件執(zhí)行諸如處理或顯示文件之類的任務(wù)但以當(dāng)前格式無法這樣做的應(yīng)用。請求者提出對文件格式轉(zhuǎn)換的請求,從而使其可以執(zhí)行其任務(wù)。在這種情況下,請求者對經(jīng)轉(zhuǎn)換的文件的需求可能是立即的。但是,對于不立即需要經(jīng)轉(zhuǎn)換的文件的請求者而言,文件轉(zhuǎn)換器可能會參與到批處理轉(zhuǎn)換中。這對于稍后的請求者而言會導(dǎo)致過度的延遲。
[0048]為了減輕該問題,文件轉(zhuǎn)換器可以將對單個文件的請求的優(yōu)先級排定在對一批文件的請求之上。為了實現(xiàn)優(yōu)先級排定,流程繼續(xù)到操作408,在操作408處,文件轉(zhuǎn)換器判定第一請求(或者多個較早的請求)是否仍在處理中或者在進行中。如果第一請求已經(jīng)完成,或者任何單獨文件轉(zhuǎn)換過程(例如,轉(zhuǎn)換器116)為空閑,流程使“否”分支到操作410并且第二請求被處理(例如,第二文件被轉(zhuǎn)換)。
[0049]如果第一請求仍在處理中,或者如果不存在空閑的轉(zhuǎn)換過程,流程使“是”分支到操作412。在操作412處,作出第二請求是否是針對一批文件的轉(zhuǎn)換的判定。如果第二請求針對批處理轉(zhuǎn)換,則所列出的問題很可能就不是問題了,因為請求者可能期望該轉(zhuǎn)換過一段時間再完成。在該情形中,流程使“是”分支到操作414。在這種情況下,第二請求(例如,在時間上稍后的請求)可以等待第一轉(zhuǎn)換在操作414處完成。在第一操作完成之后,或者轉(zhuǎn)換過程一變成空閑,流程就繼續(xù)到操作410,在操作410處,文件轉(zhuǎn)換器執(zhí)行第二請求的文件轉(zhuǎn)換并隨后方法完成。
[0050]如果第二轉(zhuǎn)換不是批處理請求,請求者可能正期望很快收到經(jīng)轉(zhuǎn)換的文件。在這種情況下,流程使“否”從判定操作412分支到判定操作416。在判定操作416,文件轉(zhuǎn)換器判定第一過程(或者所有在時間上較早的過程)是否針對批處理轉(zhuǎn)換。如果較早的請求都不針對批處理轉(zhuǎn)換,所有較早的請求者可能都期望快速收到其經(jīng)轉(zhuǎn)換的文件。在這種情況下,第二請求(例如,在時間上稍后的請求)可以等待它的時機。流程使“否”分支到操作414。在第一操作完成之后,或者轉(zhuǎn)換過程一變成空閑且在處理隊列上接下來是第二過程,流程就繼續(xù)到操作410,在操作410處,文件轉(zhuǎn)換器執(zhí)行第二請求的文件轉(zhuǎn)換并隨后方法完成。
[0051]如果第一過程是批處理過程,則流程使“是”分支到操作418且將第二過程的優(yōu)先級排定在第一過程之上。在一個實施例中,如果第一請求仍在等待可用的文件轉(zhuǎn)換器過程,優(yōu)先級排定可以包括在處理次序上把第二請求放置在第一請求之前。在另一個實施例中,如果第一過程當(dāng)前正被處理,可以暫停該過程以釋放文件轉(zhuǎn)換過程來處理第二請求。一完成第二請求就可繼續(xù)第一轉(zhuǎn)換。方法400通過在針對不期望快速遞送經(jīng)轉(zhuǎn)換的文件的請求者的請求進行轉(zhuǎn)換之前或在完成該轉(zhuǎn)換之前先處理來自期望快速響應(yīng)的請求者的請求,而減輕了過度延遲。
[0052]參考圖5,用于實現(xiàn)本文描述的各實施例的計算環(huán)境的一實施例包括計算機系統(tǒng),如計算機系統(tǒng)500。所描述的各實施例的任何和所有組件可以作為客戶機計算機系統(tǒng)、服務(wù)器計算機系統(tǒng)、客戶機和服務(wù)器計算機系統(tǒng)的組合、手持式設(shè)備、以及本文描述的其他可能的計算環(huán)境或系統(tǒng)來執(zhí)行或在它們之上執(zhí)行。如此,以下描述可應(yīng)用于所有這些環(huán)境的基本計算機系統(tǒng)。
[0053]在其最基本的配置中,計算機系統(tǒng)500包括至少一個處理單元或處理器504和系統(tǒng)存儲器506。計算機系統(tǒng)500的該最基本配置在圖5中由虛線502來示出。在各實施例中,所描述的系統(tǒng)的一個或多個組件被加載到系統(tǒng)存儲器506中,并由處理單元504從系統(tǒng)存儲器506中執(zhí)行。取決于計算機系統(tǒng)500的確切配置和類型,系統(tǒng)存儲器506可以是易失性(如RAM)、非易失性(諸如ROM、閃存等)或這兩者的某種組合。
[0054]另外,計算機系統(tǒng)500還可具有附加特征/功能。例如,系統(tǒng)500包括附加存儲介質(zhì)508,如可移動和/或不可移動存儲,包括但不限于磁盤、光盤或磁帶。在一些實施例中,軟件或可執(zhí)行碼以及用于所描述的系統(tǒng)的任何數(shù)據(jù)被持久存儲在存儲介質(zhì)508中。存儲介質(zhì)508包括以存儲如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。在實施例中,計算機可執(zhí)行指令用來執(zhí)行本文所述的方法,諸如但不限于對自動化請求作出響應(yīng)的方法300 (圖3)以及對自動化請求400作出響應(yīng)的方法400 (圖4)的方法被存儲在存儲介質(zhì)508中。
[0055]系統(tǒng)存儲器506和存儲介質(zhì)508都是計算機存儲介質(zhì)的示例。計算機存儲介質(zhì)包括,但不限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(“DVD”)或其他光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設(shè)備或能用于存儲所需信息且可以由計算機系統(tǒng)500和處理器504訪問的任何其他介質(zhì)。任何這樣的計算機存儲介質(zhì)都可以是計算機系統(tǒng)500的一部分。在各實施例中,系統(tǒng)存儲器506和/或存儲介質(zhì)508存儲用于執(zhí)行本文所公開的各方法和/或形成本文公開的系統(tǒng)的數(shù)據(jù),這些方法和系統(tǒng)諸如創(chuàng)建文件轉(zhuǎn)換請求或執(zhí)行自動化服務(wù)。參考圖1所述的各種模塊還可以存儲在系統(tǒng)存儲器506和/或存儲介質(zhì)508中。在實施例中,系統(tǒng)存儲器506存儲用于執(zhí)行本文中所述方法的指令,諸如請求生成指令514和自動化服務(wù)516。
[0056]計算機系統(tǒng)500還可包含允許該設(shè)備與其他設(shè)備通信的通信連接510。在各實施例中,通信連接510可被用來在發(fā)送者設(shè)備、中間設(shè)備、以及接收者設(shè)備之間傳送和接收消息。通信連接510是通信介質(zhì)的一個示例。通信介質(zhì)可包含諸如載波或其他傳輸機制等已調(diào)制數(shù)據(jù)信號并且包括任何信息傳遞介質(zhì),它能以已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)。術(shù)語“已調(diào)制數(shù)據(jù)信號”指的是其一個或多個特征以在數(shù)據(jù)信號中編碼信息或消息的方式被設(shè)定或更改的信號。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸如聲學(xué)、RF、紅外線和其他無線介質(zhì)。
[0057]在一些實施例中,計算機系統(tǒng)500還包括輸入和輸出連接512以及接口和外圍設(shè)備,如圖形用戶界面。輸入設(shè)備也被稱為用戶界面選擇設(shè)備并且包括但不限于,鍵盤、鼠標、筆、語音輸入設(shè)備、觸摸輸入設(shè)備等。輸出設(shè)備也被稱為顯示器,并且包括但不限于,陰極射線管顯示器、等離子屏顯示器、液晶屏顯示器、揚聲器、打印機等。或單獨地或組合地連接到輸入和輸出連接512的這些設(shè)備被用來顯示本文描述的信息。所有這些設(shè)備在本領(lǐng)域是眾知的并且不必在此詳細討論。
[0058]在一些實施例中,本文描述的組件包括可由計算機系統(tǒng)500執(zhí)行的、可以存儲在計算機存儲介質(zhì)中和其他有形介質(zhì)中并在通信介質(zhì)中傳送的模塊或指令。計算機存儲介質(zhì)包括以用于存儲如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。以上的任何組合也可包括在可讀介質(zhì)的范圍內(nèi)。在一些實施例中,計算機系統(tǒng)500是將數(shù)據(jù)存儲在遠程存儲介質(zhì)中以供計算機系統(tǒng)500使用的網(wǎng)絡(luò)的一部分。
[0059]本說明書參考附圖描述了一些實施例,附圖中只示出了可能的實施例中的一些。然而,其他方面可被實現(xiàn)為許多不同的形式并且不應(yīng)被解釋為被限于此處描述的各實施例。相反,提供這些實施例以使得本公開透徹和完整,并且將所有可能實施例的范圍完全傳達給本領(lǐng)域技術(shù)人員。
[0060]雖然已經(jīng)用對結(jié)構(gòu)特征、方法動作和包含這些動作的計算機可讀介質(zhì)專用的語言描述了各實施例,但是應(yīng)該理解,如在所附權(quán)利要求中定義的可能的實施例不必限于所描述的具體結(jié)構(gòu)、動作、或介質(zhì)。本領(lǐng)域技術(shù)人員將認識到本發(fā)明精神和范圍中的其他實施例或改進。因此,具體結(jié)構(gòu)、動作或介質(zhì)只是作為說明性實施例來公開的。本發(fā)明由所附權(quán)利要求書來限定。
【權(quán)利要求】
1.一種用于執(zhí)行自動化服務(wù)的方法,所述方法包括: 在后端服務(wù)器處從第一請求者接收對第一文件轉(zhuǎn)換的第一請求,其中所述第一請求包括表示至少一個初始文件的流數(shù)據(jù),并且其中所述至少一個初始文件包括初始文件類型;判定多個轉(zhuǎn)換過程中的至少一個轉(zhuǎn)換過程是空閑的; 基于所述判定,向所述至少一個空閑過程提供所述流數(shù)據(jù); 使用所述至少一個空閑過程從所述數(shù)據(jù)流生成至少一個經(jīng)轉(zhuǎn)換的文件; 判定所述至少一個空閑過程是否成功地生成了所述至少一個經(jīng)轉(zhuǎn)換的文件;以及在所述至少一個空閑過程成功地生成了所述至少一個經(jīng)轉(zhuǎn)換的文件時,將所述至少一個經(jīng)轉(zhuǎn)換的文件發(fā)送到所述請求者。
2.如權(quán)利要求1所述的方法,其特征在于,所述請求還包括請求數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述請求數(shù)據(jù)進一步包括轉(zhuǎn)換選項。
4.如權(quán)利要求1所述的方法,其特征在于,還包括: 在所述至少一個空閑過程沒有成功地生成所述至少一個經(jīng)轉(zhuǎn)換的文件時,向所述請求者發(fā)送錯誤消息。
5.如權(quán)利要求1所述的方法,其特征在于,所述第一請求是執(zhí)行批處理過程文件轉(zhuǎn)換的請求。
6.如權(quán)利要求5所述的方法,其特征在于,還包括: 在所述后端服務(wù)器處接收對第二文件轉(zhuǎn)換的第二請求; 判定對所述對第二文件轉(zhuǎn)換的所述第二請求是單個文件請求; 判定所述第一批處理過程文件轉(zhuǎn)換仍在進行中;以及 將所述單個文件請求的優(yōu)先級排定在所述批處理過程請求之上,其中將所述單個文件請求的優(yōu)先級排定在所述批處理過程請求之上為在所述第一文件轉(zhuǎn)換完成之前執(zhí)行所述第二文件轉(zhuǎn)換作準備。
7.一種用于請求演示文件自動化服務(wù)的方法,所述方法包括: 在前端服務(wù)器處由請求者生成文件轉(zhuǎn)換請求,所述請求包括文件轉(zhuǎn)換選項和表示至少一個初始文件的數(shù)據(jù),其中所述至少一個初始文件具有初始文件類型,并且其中生成對演示自動化服務(wù)的請求包括: 收集請求數(shù)據(jù),其中所述請求數(shù)據(jù)包括轉(zhuǎn)換選項; 判定所述請求者被授權(quán)訪問所述至少一個初始文件;以及 把所述請求和所述至少一個初始文件打包在請求消息中,其中所述至少一個初始文件被打包成數(shù)據(jù)流; 將所述請求消息發(fā)送給后端服務(wù)器進行文件轉(zhuǎn)換。
8.如權(quán)利要求7所述的方法,其特征在于,還包括在所述前端服務(wù)器處接收來自所述后端服務(wù)器的響應(yīng)。
9.如權(quán)利要求8所述的方法,其特征在于,所述響應(yīng)包括至少一個經(jīng)轉(zhuǎn)換的文件。
10.一種用于執(zhí)行自動化服務(wù)的系統(tǒng),所述系統(tǒng)包括: 前端服務(wù)器,所述前端服務(wù)器包括: 處理器;以及 與所述處理器電通信的存儲器,所述存儲器包括計算機可執(zhí)行指令,所述計算機可執(zhí)行指令在由所述處理器執(zhí)行時執(zhí)行一種方法,所述方法包括: 由請求者生成文件轉(zhuǎn)換請求,所述請求包括文件轉(zhuǎn)換選項和表示至少一個初始文件的數(shù)據(jù),其中所述至少一個初始文件具有初始文件類型,并且其中生成文件轉(zhuǎn)換請求包括:收集請求數(shù)據(jù),其中所述請求數(shù)據(jù)包括轉(zhuǎn)換選項; 判定所述請求者被授權(quán)訪問所述至少一個初始文件;以及 把所述請求和所述至少一個初始文件打包在請求消息中,其中所述至少一個初始文件被打包成數(shù)據(jù)流;以及 將所述請求消息發(fā)送給后端服務(wù)器進行文件轉(zhuǎn)換。
【文檔編號】G06F15/16GK103608801SQ201280029240
【公開日】2014年2月26日 申請日期:2012年6月10日 優(yōu)先權(quán)日:2011年6月15日
【發(fā)明者】H·因戈爾, R·洛, C·楊, C·基科恩 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
分宜县| 西丰县| 沾化县| 桃源县| 绥德县| 古田县| 盐源县| 静乐县| 邵阳县| 克拉玛依市| 昌乐县| 日喀则市| 温州市| 呼和浩特市| 岑溪市| 若尔盖县| 巧家县| 牡丹江市| 宕昌县| 克什克腾旗| 台江县| 铜陵市| 台山市| 都安| 六安市| 万安县| 象州县| 汪清县| 罗定市| 揭阳市| 天长市| 都匀市| 茌平县| 徐水县| 威宁| 海兴县| 霍邱县| 侯马市| 桐梓县| 大化| 洪洞县|