專利名稱:瘦客戶機軟件開發環境的制作方法
瘦客戶機軟件開發環境
背景
現今的軟件開發環境,如微軟@ Visual Studio、 Eclipse等,都是基于厚 客戶機原理的。在這種環境中,常常具有在該開發環境變得可用之前,可 能花幾小時來安裝的數千兆字節軟件安裝。在其中安裝該軟件開發應用程 序的機器必須具有足夠的資源來處理通常可能需要大量的RAM和其它系 統資源的編譯。這對本地開發機器造成沉重的負擔。
此外,這種軟件開發環境的用戶在不使用某種第三方代碼共享機制(諸 如用電子郵件向某人發送項目或使用管理源代碼的版本控制系統等)的情 況下,不能夠容易地與朋友和/或同事共享他們的工作。用電子郵件發送項 目的一個問題是通常可能有大量的相關源代碼文件,且該電子郵件的收件 人也必須在其計算機上安裝了該軟件開發應用程序。版本控制系統的一個 問題是它們通常也受限于厚客戶機安裝,且通常由于公司安全限制而可能 只可由同 一特定公司的同事訪問。
概述
公開了用于提供瘦客戶機軟件開發環境的各種技術和方法。提供了可 在客戶機計算機上的痩客戶機用戶界面中顯示的基于服務器的軟件開發應 用程序。該基于服務器的開發應用程序具有處理編譯任務的基于服務器的 編譯程序,該編譯任務通常可能是資源密集型的。從客戶機計算機接收輸 入以使用該基于服務器的軟件開發應用程序來與軟件開發項目交互。將該 軟件開發項目存儲在可以從該軟件開發應用程序訪問的位置中。從客戶機 計算機接收編譯選擇來使用該基于服務器的軟件開發應用程序編譯該軟件 開發項目。響應于來自該客戶機計算機的編譯選擇,用該基于服務器的軟 件開發應用程序來生成經編譯的應用程序,并使用如文件下載特征之類的 方法來將該經編譯的應用程序提供給該客戶機計算機。在一實現中,在該瘦客戶機用戶界面中向用戶提供各種開發特征,僅 舉幾個非限制性的示例,如命令填充、句法著色、和參數幫助。在另一實 現中,共享特征允許來自不同的客戶機計算機的多個用戶訪問(如審閱、 修訂和/或對該項目注釋)該軟件開發項目。 一個或多個安全設置可以控制 一個或多個用戶對該項目的訪問。在一實現中,創建該項目的用戶控制誰 可以訪問該項目。
提供本概述以便以簡化形式介紹將在以下詳細描述中進一步描述的一 些概念。該概述不旨在標識所要求保護的主題的關鍵特征或必要特征,也 不旨在用于幫助確定所要求保護的主題的范圍。
附圖簡述
圖1是一個實現的計算機系統的圖示。
圖2是在圖1的計算機系統上操作的一個實現的基于服務器的軟件開
發應用程序的圖示。
圖3是圖1的系統的一個實現的處理流程圖,其示出在提供可以在瘦 客戶機用戶界面中訪問的基于服務器的軟件開發應用程序時所涉及的各階 段。
圖4是圖1的系統的一個實現的處理流程圖,其示出在使用瘦客戶機 軟件開發項目共享特征時所涉及的各階段。
圖5是圖1的系統的一個實現的邏輯圖,其示出在提供可以在瘦客戶 機用戶界面中訪問的基于服務器的軟件開發應用程序時所涉及的各組件。
圖6是圖1的系統的一個實現的模擬屏幕,其示出用于基于服務器的 軟件開發應用程序的、允許用戶創建項目或繼續現有項目的痩客戶機用戶 界面。
圖7是圖1的系統的一個實現的模擬屏幕,其示出用于基于服務器的 軟件開發應用程序的、允許用戶編寫源代碼、編譯該源代碼并査看結果的 瘦客戶機用戶界面。
詳細描述為促進對本發明的原理的理解,現將對圖中所示的各實施方式加以參 考,同時也將用具體語言描述它們。不過,需要理解的是,并無意由此作
范圍上的限制。在所述實施方式中的任何改變和進一步更改,以及在此所 述的原理的進一步應用都可以預期將是本領域技術人員通常能想到的。
該系統可以在軟件開發應用程序的一般上下文中描述,但是該系統還 用于除此之外的其它目的。在一實現中,此處所描述的一種或多種技術可
作為諸如微軟⑧Visual Studio、 Eclipse等軟件開發程序中的特征來實現,或 可以來自允許用戶創建用于一個或多個操作系統平臺的軟件的任何其它類 型的程序或服務。在一實現中,提供了可由用戶在瘦客戶機用戶界面中訪 問的基于服務器的軟件開發應用程序。基于服務器的編譯程序執行編譯和 其它資源密集型任務,這樣用戶的計算機將不必執行這些任務。 一個特定 用戶的軟件開發項目文件可以任選地在多個用戶之間共享。
如圖1所示,用于實現該系統的一個或多個部分的示例性計算機系統 包括諸如計算設備100和/或130等的一個或多個計算設備。在其最基本的 配置中,計算設備100和/或130通常包括至少一個處理單元(分別是102 和132)和存儲器(分別是104和134)。取決于計算設備的確切配置和類 型,存儲器104或134可以是易失性的(如RAM)、非易失性的(如ROM、 閃存等)或是兩者的某種組合。該最基本配置在圖1中由線106和136來 例示。
另外,設備100和/或130還可具有附加的特征/功能。例如,設備IOO
和/或130還可包含附加存儲(可移動和/或不可移動),其中包括但不限于
磁盤、光盤或磁帶。這樣的附加存儲在圖1中由可移動存儲(分別是108
和138)和不可移動存儲(分別是110和140)示出。計算機存儲介質包括
以用于存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據等信息
的任何方法或技術來實現的易失性和非易失性、可移動和不可移動介質。 存儲器104和134、可移動存儲108和138以及不可移動存儲110和140
都是計算機存儲介質的示例。計算機存儲介質包括但不限于RAM、 ROM、 EEPROM、閃存或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或 其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲設備、或者可用于存儲所需信息并且可由設備100和/或130訪問的任何其它介質。任何這樣的 計算機存儲介質都可以是設備100和/或130的一部分。
計算設備100和/或130包括允許計算設備100和/或130通過網絡116 彼此通信和/或與一個或多個其它計算設備(分別是150、 160和170)通信 的一個或多個通信連接。通信連接114和144是通信介質的示例。通信介 質通常以諸如載波或其它傳輸機制等已調制數據信號來體現計算機可讀指 令、數據結構、程序模塊或其它數據,并包括任意信息傳送介質。術語"已 調制數據信號"指的是其一個或多個特征以在信號中編碼信息的方式被設 定或更改的信號。作為示例而非限制,通信介質包括諸如有線網絡或直接 線纜連接之類的有線介質,以及諸如聲學、RF、紅外線和其它無線介質之 類的無線介質。如此處所使用的術語計算機可讀介質包括存儲介質和通信 介質兩者。
在一實現中,計算設備100是使用通信連接114和144通過網絡116 與服務器計算機130通信的客戶機計算機。在這一實現中,客戶機計算設 備100的瘦客戶機(例如,瀏覽器)用戶界面118訪問用戶軟件開發項目 數據150 (如果有),和服務器計算設備130上的用于執行一個或多個軟件 開發任務的基于服務器的軟件開發應用程序200。可以理解,用戶軟件開發 項目數據150和/或基于服務器的軟件開發應用程序200可以存儲在同一計 算機或不同的計算機上,但為簡明起見將它們示出在同一服務器計算設備 130上。在一實現中,客戶機計算設備100的瘦客戶機用戶界面118是基于 瀏覽器的用戶界面,而服務器計算設備130是web服務器。
計算設備100和130還可以具有諸如鍵盤、鼠標、筆、語音輸入設備、 觸摸輸入設備等輸入設備(分別是114和134)。還可以包括諸如顯示器、 揚聲器、打印機等輸出設備(分別是116和136)。這些設備在本領域中公 知且無需在此處詳細討論。
現在轉向圖2并繼續參考圖1,示出了在計算設備100上操作的基于 服務器的軟件開發應用程序200。基于服務器的軟件開發應用程序200是駐 留在計算設備100上的應用程序之一。然而,可以理解,基于服務器的軟 件開發應用程序200可另選地或另外地被具體化為一個或多個計算機上的計算機可執行指令和/或與圖l所示不同的變型。另選地或另外地,基于服
務器的軟件開發應用程序200的一個或多個部分可以是系統存儲器104的 一部分、可以在其它計算機和/或應用程序115上、或可以是計算機軟件領 域的技術人員能想到的其它此類變型。
基于服務器的軟件開發應用程序200包括程序邏輯204,其負責執行 在此描述的一些或全部技術。程序邏輯204包括用于提供可在至少一個 客戶機計算機上的瘦客戶機用戶界面中顯示的基于服務器的軟件開發應用 程序的邏輯206;用于提供作為該開發應用程序的一部分的基于服務器的編 譯程序的邏輯208,該編譯程序可用于基于客戶機計算機請求編譯而向特定 目的地提供一個或多個經編譯的文件;用于從至少一個客戶機計算機接收 輸入以使用瘦客戶機用戶界面訪問該開發應用程序的邏輯210;用于存儲在 客戶機計算機訪問基于服務器的軟件開發應用程序時該客戶機計算機所創 建的至少一個用戶項目的邏輯212;用于基于該項目的一組安全設置來使該 用戶項目對一個或多個用戶可用(例如,審閱、修訂和/或注釋)的邏輯214; 用于提供諸如命令填充、句法著色和參數幫助等多個開發特征的邏輯216; 以及用于操作該應用程序的其它邏輯220。
現轉向圖3-4并繼續參照圖1-2,其更詳細地描述了用于實現基于服務 器的軟件開發應用程序200的一個或多個實現的各個階段。圖3是示出在 提供可以在瘦客戶機用戶界面中訪問的基于服務器的軟件開發應用程序 200時所涉及的各階段的處理流程圖。在一種形式中,圖3的過程至少部分 地被實現在計算設備100的操作邏輯中。該過程在開始點240處開始,提 供可在客戶機計算機上的瘦客戶機用戶界面中顯示的基于服務器的軟件開 發應用程序(階段242)。在一實現中,瘦客戶機用戶界面可在來自各種操 作系統平臺的使用某些基于AJAX或另一技術的命令的web瀏覽器中訪問 (階段242)。在一實現中,提供了多種開發特征,僅舉幾個非限制性的示 例如命令填充、句法著色和參數幫助等(階段242)。另選地或另外地, 在瘦客戶機用戶界面正確運作之前,首先從基于服務器的開發應用程序將 一個或多個web組件下載到該特定客戶機計算機。基于服務器的軟件開發 應用程序可能占據多于或少于l千兆字節的服務器存儲空間(階段242)。從客戶機計算機接收輸入以使用該軟件開發應用程序來與一軟件開發
項目交互(階段244)。該軟件開發項目由該軟件開發應用程序存儲(例如, 在服務器計算機上、在客戶機計算機上等)并且可由其訪問(階段246)。 該軟件開發項目可以任選地具有用于指定一個或多個用戶可以擁有對該項 目的什么訪問權限——如只讀、只寫、復制保護等——的一個或多個安全 設置(階段248)。在一個實現中,創建該項目的用戶可修改控制所述訪問 權限的安全設置(階段248)。另選地或另外地,其他用戶(如項目經理或 網絡管理員)可被授予修改一個或多個項目的安全設置的許可。
從客戶機計算機接收編譯選擇來使用該軟件開發應用程序編譯該軟件 開發項目(階段250)。用該軟件開發應用程序由基于服務器的編譯程序來 生成經編譯的應用程序(或一個或多個組件)(階段252)。此處所使用的 術語"編譯"被定義為源代碼到諸如可執行(EXE)文件、動態鏈接庫(DLL)、 控件、插件等可執行格式的轉換。如通過使一個或多個文件(可執行文件、 DLL、插件、控件等)可用于下載,來向目的地計算機(如客戶機計算機 或另一計算機)提供該經編譯的應用程序(階段254)。另選地或另外地, 舉一非限制性的示例,如在涉及web部件或web應用程序擴展開發時,編 譯程序所生成的文件可以由服務器來自動地部署。如軟件領域普通技術人 員可理解的,用于該經編譯的一個或多個文件的其它文件下載和/或文件部 署場景也是可能的。該過程在結束點256處結束。
圖4示出在使用瘦客戶機軟件開發項目共享特征時所涉及的各階段的 一個實現。在一種形式中,圖4的過程至少部分地被實現在計算設備100 的操作邏輯中。該過程在開始點270處開始,提供具有基于服務器的編譯 程序的基于服務器的軟件開發應用程序(階段272)。該軟件開發應用程序 可由多個客戶機計算機通過瘦客戶機用戶界面(如在接收到正確的登錄憑 證后允許客戶機計算機訪問的一個瘦客戶機用戶界面)來訪問(階段272)。 從第一客戶機計算機接收輸入以使用該基于服務器的軟件開發應用程序來
創建軟件開發項目(且可任選地,接收指定哪些用戶可以訪問該項目的安 全設置)(階段274)。將該軟件開發項目存儲在可以從該基于服務器的軟 件開發應用程序訪問的存儲位置中(例如,在同一或不同的計算機上)(階段276)。從第二客戶機計算機接收訪問該軟件開發項目的輸入(階段278)。 向該第二客戶機計算機提供該軟件開發項目(階段280)。該軟件開發應用 程序可任選地從該第二客戶機計算機接收與該項目一起存儲的注釋和/或修 訂(階段280)。該過程結束于結束點282。
圖5是圖1的系統的一個實現的邏輯圖,其示出在提供可以在痩客戶 機用戶界面中訪問的基于服務器的軟件開發應用程序400(圖1和圖2上的 200)時所涉及的各組件。示出了客戶機組件402和服務器組件404。客戶 機組件包括如在諸如微軟⑧Internet Explorer、 Firefox等瀏覽器中的那些之 類的瘦客戶機用戶界面406。瘦客戶機用戶界面406可以使用Atlas或另一 AJAX庫等來實現某些功能。服務器組件404包括句法著色408、命令填充 410、參數幫助412、 web服務層414、和開發環境后端416。句法著色408、 命令填充410、和參數幫助412都只是基于服務器的軟件開發應用程序所提 供的各類型的開發特征的非限制性示例。web服務層指的是允許在開發環 境后端416和瘦客戶機406之間發生通信的功能。開發環境后端416負責 提供諸如項目上下文、語義上下文、句法著色等應用程序的功能。
圖6是圖1的系統的一個實現的模擬屏幕430,其示出用于基于服務 器的軟件開發應用程序的、允許用戶創建項目434或繼續現有項目432的 瘦客戶機用戶界面。圖7是圖1的系統的一個實現的模擬屏幕450,其示出 用于基于服務器的軟件開發應用程序的,允許用戶編寫源代碼458、使用連 編(BUILD)特征452編譯該源代碼并在編譯窗口 460中査看編譯結果的 瘦客戶機用戶界面。該項目可以使用保存(SAVE)選項452來保存,并可 任選地使用共享(SHARE)選項456來與其他用戶共享。在鍵入短語 "CONSOLE"后命令填充特征462被示出,以顯示用于填充該命令的各個 選項。盡管為保持簡潔而未示出,但還可以使用句法著色來改變不同類型 的句法的顏色以使用戶更容易區分。 一個非限制性示例是以與實際命令不 同的顏色來提供注釋。還可以提供參數幫助,如向用戶示出給定過程調用 接受哪些參數,以幫助用戶完成對該過程的調用的編寫。
盡管用對結構特征和/或方法動作專用的語言描述了本主題,但可以理 解,所附權利要求書中定義的主題不必限于上述具體特征或動作。相反,上述具體特征和動作是作為實現權利要求的示例形式公開的。落入在此所 述和/或所附權利要求所描述的實現的精神的范圍內的所有等效方案、更改 和修正都期望受到保護。
例如,計算機軟件領域普通技術人員會認識到客戶機和/或服務器布 置、用戶界面屏幕內容、和/或在此討論的示例中所述的數據布局可在一臺 或多臺計算機上不同地組織,以包括比示例中所描繪的更少或更多的選項 或特征。
權利要求
1.一種用于提供瘦客戶機開發環境的方法,所述方法包括以下步驟提供能在客戶機計算機上的瘦客戶機用戶界面中顯示的基于服務器的軟件開發應用程序(242)從所述客戶機計算機接收輸入以使用所述基于服務器的軟件開發應用程序來與軟件開發項目交互(244)從所述客戶機計算機接收編譯選擇以使用所述基于服務器的軟件開發應用程序來編譯所述軟件開發項目(250);用所述基于服務器的軟件開發應用程序生成經編譯的應用程序(252);以及向目的地計算機提供所述經編譯的應用程序(254)。
2. 如權利要求1所述的方法,其特征在于,所述經編譯的應用程序是 通過使至少一個文件能用于下載來提供給所述目的地計算機的。
3. 如權利要求1所述的方法,其特征在于,所述至少一個文件包括可 執行程序(254)。
4. 如權利要求1所述的方法,其特征在于,所述目的地計算機是所述 客戶機計算機(254)。
5. 如權利要求1所述的方法,其特征在于,所述基于服務器的軟件開 發應用程序支持對多個操作系統平臺的開發(242)。
6. 如權利要求1所述的方法,其特征在于,所述軟件開發項目能由多 個用戶訪問(272)。
7. 如權利要求1所述的方法,其特征在于,所述基于服務器的軟件開 發應用程序能用于允許創建所述軟件開發項目的用戶指定多個用戶的任一 個是否具有一個或多個訪問權限(248)。
8. 如權利要求1所述的方法,其特征在于,所述軟件開發項目能被存 儲在服務器計算機上(246)。
9. 如權利要求1所述的方法,其特征在于,所述軟件開發項目能被存 儲在所述客戶機計算機上(246)。
10. 如權利要求1所述的方法,其特征在于,所述基于服務器的軟件開發應用程序占據服務器上的至少1千兆字節的存儲空間以提供多個軟件開發特征(242)。
11. 如權利要求1所述的方法,其特征在于,所述基于服務器的軟件 開發應用程序能用于向所述客戶機計算機提供從包括命令填充、句法著色 和參數幫助的組中選擇的開發特征(242)。
12. 如權利要求1所述的方法,其特征在于,所述基于服務器的軟件 開發應用程序能用于使用至少一些基于AJAX技術的命令來提供所述瘦客 戶機用戶界面(242)。
13. —種具有用于使得計算機執行如權利要求1所述的步驟的計算 機可執行指令的計算機可讀介質(200)。
14. 一種具有用于使得計算機執行以下步驟的計算機可執行指令的 計算機可讀介質,所述步驟包括提供能在至少一個客戶機計算機上的瘦客戶機用戶界面中顯示的基于 服務器的軟件開發應用程序(206),所述基于服務器的軟件開發應用程序 包括基于服務器的編譯程序(208);從所述至少一個客戶機計算機接收輸入,以使用所述痩客戶機用戶界 面訪問所述基于服務器的軟件開發應用程序(210);以及存儲在所述客戶機計算機訪問所述基于服務器的軟件開發應用程序時 所述客戶機計算機所創建的至少一個用戶項目(212)。
15. 如權利要求14所述的計算機可讀介質,其特征在于,所述基于 服務器的軟件開發應用程序還能用于提供從包括命令填充、句法著色和參 數幫助的組中選擇的開發特征(216)。
16. —種用于基于服務器的軟件開發項目共享的方法,所述方法包括 以下步驟提供具有基于服務器的編譯程序的基于服務器的軟件開發應用程序, 所述軟件開發應用程序能由多個客戶機計算機通過瘦客戶機用戶界面來訪 問(272);從所述多個客戶機計算機的第一客戶機計算機接收輸入,以使用所述基于服務器的軟件開發應用程序創建軟件開發項目(274);將所述軟件開發項目存儲在能從所述基于服務器的軟件開發應用程序 訪問的存儲位置中(276);從所述多個客戶機計算機的第二客戶機計算機接收輸入,以訪問所述 軟件開發項目(278);以及向所述第二客戶機計算機提供所述軟件開發項目(280)。
17. 如權利要求16所述的方法,其特征在于,從所述第二客戶機計 算機接收關于所述軟件開發項目的注釋,并且其中所述注釋與所述軟件開 發項目存儲在一起(280)。
18. 如權利要求16所述的方法,其特征在于,在所述第一客戶機計 算機和第二客戶機計算機訪問所述基于服務器的軟件開發應用程序之前,要求所述第一客戶機計算機和第二客戶機計算機提供正確的登錄憑證 (272)。
19. 如權利要求16所述的方法,其特征在于,所述基于服務器的軟 件開發應用程序允許第一用戶指定多個用戶的任一個是否能具有對所述項 目的一個或多個訪問權限(274)。
20. —種具有用于使得計算機執行如權利要求16所述的步驟的計算 機可執行指令的計算機可讀介質(200)。
全文摘要
公開了用于提供瘦客戶機軟件開發環境的各種技術和方法。提供了可在客戶機計算機上的瘦客戶機用戶界面中顯示的基于服務器的軟件開發應用程序。該基于服務器的開發應用程序具有基于服務器的編譯程序。從客戶機計算機接收輸入以使用該基于服務器的軟件開發應用程序來與軟件開發項目交互。將該軟件開發項目存儲在可以從該軟件開發應用程序訪問的位置中。從客戶機計算機接收編譯選擇來使用該基于服務器的軟件開發應用程序編譯該軟件開發項目。用該基于服務器的軟件開發應用程序來生成經編譯的應用程序,并將該經編譯的應用程序提供給該客戶機計算機。共享特征允許來自不同的客戶機計算機的多個用戶訪問該軟件開發項目。
文檔編號G06F17/00GK101529414SQ200780040104
公開日2009年9月9日 申請日期2007年10月5日 優先權日2006年10月27日
發明者L·A·伯格斯特龍, V·G·拉吉 申請人:微軟公司