專利名稱::從部署服務器內為目標系統運行時優化應用的方法和系統的制作方法
技術領域:
:本發明涉及實時軟件部署,更具體地說,涉及用于從部署服務器內部為目標系統運行時優化應用的技術。
背景技術:
:平臺無關的軟件語言(例如來自加利福尼亞圣克萊拉的SunMicrosystems的JAVA編程語言)的革新代表了顯著的技術進步,其允許以平臺無關的語言編寫軟件,我們稱這為一次編寫、隨處運行(WORA)的語言。平臺無關的語言可以減少軟件開發時間和系統維護時間(因為僅有一個版本的軟件應用需要被開發和維護),可以緩解許多“鎖定”情況,并且通常允許以平臺中立(platformagnostic)方式發生應用的Web部署。但是,目前在系統和應用程序中經常需要和/或希望進行優化以改善性能并最小化由平臺中立軟件所消耗的資源。這些優化在存儲器和計算資源非常珍貴的系統中尤為重要,許多移動計算設備、普適計算系統、嵌入式計算系統等屬于這種情況。示例性資源保存優化可以包括,例如,從包中刪除未使用的類、執行提前(AOT)編譯、刪除或修改代碼路徑、優化應用中的存儲器利用等。在某些情況下,優化和設備特定的定制變得不只是奢侈,在通用軟件可以在設備上運行之前提供必要的預報。應當理解,在全球市場中的設備的類型和用途是極其瑣碎和種類繁多的。也就是說,即使軟件開發人員使用WORA語言來構建軟件,設備的細微問題常常會導致生成的應用運行不佳或者甚至出現故障。例如,盡管個人數字助理(PDA)可以執行JAVA代碼,但是PDA的存儲器或處理器局限會導致代碼執行期間的運行時錯誤。在硬件方面的快速技術進步加劇了異類設備市場中固有的問題。由于市場壓力和快速進步,同一制造商可以支持同等設備或設備線的多種配置,每種配置都具有不同的存儲器和處理器規范。更成問題的是,相同設備類型的不同制造商可以在大致相同的設備中使用不同的技術。結果,商用市場中設備硬件和配置差異可以相對較大,由此負面地影響了平臺無關的軟件的生存能力。在異類設備空間內實現軟件的現有解決方案存在缺陷。一種初步的解決方案是,在軟件開發生命周期的設計階段期間,在每個設備的基礎上定制和優化軟件。但是,此解決方案很昂貴并且很大程度地消除了通過WORA技術獲得的收益。進而,因為創建了新的設備,需要用于新設備的軟件的新版本和/或優化,這導致支持和維護軟件應用的持續成本。另一種解決方案是在應用的運行時編譯器中執行自適應優化。這樣的解決方案可以在應用執行期間采集反饋信息,可以將反饋傳送給編譯器,并且可以根據反饋重新編譯代碼。缺點是需要大量的監視開銷以運行地捕獲反饋并連續地重新編譯代碼。開銷的水平會超過從該解決方案得到的性能收益。進而,資源受限的設備通常沒有足夠的可分配資源來執行基礎代碼,更不用說自適應優化客戶端中的基礎代碼所需的額外開銷代碼。還有另一種跨不同基礎部署代碼的解決方案是建立客戶端-服務器聯系,其中執行的一部分發生在服務器處。可以為不同的設備開發不同的客戶端,每個客戶端均能夠在其主機設備的資源約束內運行。客戶端-服務器系統可以被進一步增強以包括負載平衡系統、內容緩存、并行計算、冗余服務器,以及其它用于消除客戶端-服務器架構中常見的瓶頸和通信中斷的網絡技術。雖然此解決方案可以減輕對資源受限設備某些擔心,但是其不能解決不同設備空間的根本問題。進而,此解決方案需要客戶端與服務器之間的相對恒定的通信鏈接,在許多情況下,這是成本昂貴的和/或不利的。此外,客戶端-服務器解決方案仍需要為不同設備構建不同的客戶端,其中構建不同的客戶端涉及上述的問題,這未被現有技術充分地解決。還有一種類型的自適應設備解決方案通過譯碼解決了呈現和輸入問題。例如,移動設備通常具有較小的屏幕和不同于限制較少的設備的默認輸入模式(例如,與鍵盤輸入相反的語音識別輸入或手寫識別輸入)。譯碼試圖將為一種類型的設備設計的輸入和輸出修改為不同類型設備的特性,以便例如為臺式機瀏覽器設計的網頁可以在啟用Web的PDA設備中被清晰地呈現。譯碼解決方案解決不同設備之間的輸入/輸出差異(deltas),并且不優化目標平臺的代碼以便最小化資源消耗。因此,譯碼作為補充解決方案在此提出并且在其它方面與本發明無關。
發明內容本發明詳述了一種用于從部署服務器內部為目標系統運行時優化應用的系統、方法和裝置。本發明可以被用在即需環境中,其中客戶端可以從服務器請求應用或應用部分,服務器響應地提供所請求的應用。例如,JAVA運行時環境(JRE)是此類即需環境的一個實例,雖然本發明并不限于此方面。根據本發明,可以開發并且在部署服務器內部署未針對特定設備或平臺優化的稱為通用應用的應用版本。所述部署服務器可以包括多個設備簡檔,其定義了可以請求應用交付的設備的屬性。具有關聯簡檔的設備可以將應用請求提交給所述部署服務器,所述服務器可以使用所述簡檔為發出請求的設備動態地優化所述通用應用。當所述簡檔如此指示時,所述部署服務器可以為接收設備以適當格式將所交付的應用與適合的運行時執行庫以及例程一起打包。本發明可以以各個方面和實施例來表達并且可以被解釋為具有由此處包括的權利要求部分所定義的范圍。根據本發明的一個方面,部署服務器可以包括簡檔數據存儲、通用應用數據存儲以及優化器。所述簡檔數據存儲可以包含多個設備屬性,并可以將不同的優化參數或優化例程與每個存儲的屬性關聯。所述通用應用數據存儲可以包含至少一個以設備無關的方式編寫的通用應用。所述優化器可以從一類不同的請求設備接收應用請求,并且可以響應于接受到的請求動態地生成設備特定的應用。對于每個發出請求的設備,所述優化器可以確定發出請求的設備的屬性,使用所述簡檔數據存儲來標識所述發出請求的設備的優化參數或優化例程,并且根據來自所述簡檔數據存儲的數據和根據從所述通用應用數據存儲檢索的通用應用來生成設備特定的應用。本發明的另一個方面可以包括一種用于優化應用的計算機化方法。所述方法可以包括從客戶端接收對應用的請求的步驟。所述方法可以將所述客戶端與至少一個先前存儲的簡檔相匹配,可以根據所述簡檔確定特定于所述客戶端的屬性,并且可以根據所確定的屬性和所述應用的通用版本來動態地生成客戶端優化的應用。所述客戶端優化的應用可以被傳送給所述客戶端。應當指出,本發明可以被實現為使控制計算機實現此處所述的功能的程序,或者被實現為使得計算機能夠執行與此處公開的步驟對應的過程的程序。可以通過在磁盤、光盤、半導體存儲器以及任何其它記錄介質中存儲所述程序來提供所述程序,或者通過網絡分發所述程序。附圖中示出了當前優選的實施例,但是可以理解,本發明并不限于此處所示的精確布置和工具圖1是示出了根據此處公開的發明布置的實施例的用于部署為目標客戶端優化的應用的系統的示意圖;圖2是示出了根據此處公開的發明布置的實施例的優化應用的方法的流程圖。具體實施例方式圖1是示出了根據此處公開的發明布置的實施例的用于部署為目標客戶端優化的應用的系統100的示意圖。在系統100中,可以在軟件開發計算機105中開發通用應用120。通用應用120是任何未針對特定客戶端115優化的應用。在一個實施例中,可以以平臺無關的方式來編寫通用應用120,以便最大化其中可以部署通用應用120的系統的數目。例如,可以以JAVA編程語言或者任何其它平臺無關的語言來編寫通用應用120。在開發之后,通用應用120可以通過網絡140被傳送給部署服務器110,其可以被配置為響應客戶端115的請求而部署應用和/或應用組件。當客戶端115請求應用時,部署服務器110可以確定與該請求對應的先前存儲的通用應用120,可以確定客戶端115的能力,并且可以響應地生成客戶端優化的應用122。可以通過網絡142將生成的客戶端優化的應用122傳送給發出請求客戶端115。因此,軟件開發人員可以專注于編寫設備無關的軟件,并且軟件消費者可以接收為他們的個人設備定制的軟件。軟件開發服務器105可以代表設計、構建、測試、維護和/或管理通用應用120的軟件開發環境內所使用的任何計算機或通信地鏈接并且互操作的計算設備的網絡。客戶端115可以包括在主機設備上執行的機器可讀的代碼,所述主機設備能夠從部署服務器110請求應用,接收應用122并執行應用122。客戶端115可以在執行應用122時以自主的方式運行,或者在執行該應用122時要求與一個或多個位于遠程的服務器進行操作上的通信交換。客戶端115不限于特定設備上主持的任何特定類型的軟件,但是其旨在被廣泛地解釋為包括由瑣碎和異類設備空間內的不同設備所主持的大量可能的客戶端。客戶端115可以駐留于其上的設備可以包括,但不限于,嵌入式設備、普適計算設備、移動設備、臺式計算設備、筆記本計算設備等。例如,主持客戶端115的設備可以是資源受限的設備,例如個人數字助理(PDA)、移動電話、平板計算機、機頂盒、嵌入交通工具的設備和/或普遍存在的計算設備。在另一個實例中,主持設備可以包括如臺式計算機、筆記本計算機或內聯網服務器這樣的傳統計算設備。主持客戶端115的設備可以是物理設備或軟件定義的虛擬設備。所述設備可以包括地理上為本地的硬件以及分布式聯網的部件。類似地,可以由集中式或分布式組件形成部署服務器110,所述組件以這樣的方式互操作可以生成客戶端優化的應用122并將其傳送給客戶端115。在一個實施例中,部署服務器110可以是用于創建、測試電子商務應用并將其部署到移動和無線設備的集成開發環境的組件。在這樣的實施例中,部署服務器110可以使用可從市場上購買的工具,例如MICROANALYZER和SMARTLINKER,它們都是來自紐約阿蒙克的國際商業機器公司(IBM)的WEBSPHERESTUDIODEVICEDEVELOPER(WSDD)的組件。但是,部署服務器110并不限于此方面,其可以使用多種方法和組件來實現,如本領域技術人員應容易地理解的,因為在計算機科學領域存在許多部署服務器技術,它們可以與此處詳述的發明布置結合使用。部署服務器110可以在接收到通用應用120時為大量定義的客戶端配置生成客戶端優化的應用122,可以在接收到客戶端請求時動態地生成客戶端優化的應用122,或者是二者的組合。例如,部署服務器110可以(只要資源允許)在請求之前為普及的客戶端配置生成客戶端優化的應用122,并且可以即需地動態生成不十分普及的優化。在另一個實例中,部署服務器110可以以重復的方式執行優化腳本,使得從通用應用120生成優化的應用122所需的某些優化在接收到請求之前被執行,而其他優化在接收到請求之后被執行。部署服務器110可以包括分析器150、優化器152以及捆綁器154,并且可以使用在簡檔存儲130、參數存儲132、通用應用存儲134以及庫存儲136中保存的信息。每個數據存儲130、132、134和136可以是部署服務器110的本地存儲或者是可以通過網絡144訪問的位于遠程的存儲。簡檔數據130可以存儲設備的多個屬性,并且可以將不同的優化參數或優化例程與每個存儲的屬性相關聯。參數存儲132可以存儲客戶端特定的參數、優化器特定的參數以及在優化過程中使用的腳本。通用應用數據存儲134可以存儲多個通用應用120,提前(在接收到請求之前)構建的客戶端優化的應用122,以及在構建客戶端優化的應用122中使用的通用應用120的部分優化。庫存儲136可以包括運行時庫、模塊、相關性表等,它們可以被用于確保客戶端被傳送客戶端優化的應用122在客戶端115上運行所需的任何或全部軟件例程。分析器150可以動態地分析其上駐留了客戶端115的設備的能力。這些能力可以被轉換成一個或多個屬性,其可以遵循規定的標準。因此,盡管不同的客戶端115可以以客戶端特定或設備特定的方式來定義它們的能力,但是可以依照標準化的術語來存儲設備簡檔(稱為客戶端屬性)。例如,不同的中央處理單元(CPU)制造商使用不同的參考框架來定義CPU能力。不同的優化腳本和參數可以與不同的屬性相關,其中的關系在參數存儲132的表或者文件內指定。優化器152可以從一類不同的客戶端115接收應用請求,并且可以使用簡檔存儲130、參數存儲132以及通用應用存儲134中的信息來生成客戶端優化的應用122。例如,當生成客戶端優化的應用122時,優化器152可以從通用應用120中刪除不需要的類、方法和字段。在一個實施例中,優化器152可以包括來自IBM的SMARTLINKER或者由其它提供商提供的類似軟件。捆綁器154可以標識將被與設備特定的應用捆綁的機器可讀的代碼,以便使客戶端優化的應用122在主持客戶端115的設備上可以被執行。一旦標識了必要的庫和軟件例程,捆綁器154就可以從庫存儲136檢索例程,并且可以將標識的機器可讀的代碼與客戶端優化的應用122進行捆綁。捆綁器154還可以遵循任何由客戶端115施加的格式限制。例如,捆綁器154可以根據需要將軟件按客戶端特定的格式(例如JAVA檔案(JAR)格式)分組。客戶端特定的格式和軟件配置可以通過直接詢問客戶端115來確定,可以從來自客戶端115的應用請求來分析,或者可以從簡檔存儲130中存儲的簡檔數據來確定。為了說明運行中的系統100,客戶端115可以發出請求,該請求在過程160中被解析。解析請求可以確定主持客戶端115的發出請求的設備的細節。使用分析器150以及簡檔存儲130和參數存儲132中的信息也可以確定客戶端細節。因此,如過程162所示,可以確定簡檔和優化參數。在過程164中,可以建立由優化器152使用的腳本。優化器152可以對照通用應用數據存儲134中包含的文件來運行這些腳本,以便最終根據客戶端特定的參數來生成優化的應用。在一個實施例中,可以以模塊化或逐步的方式來建立和執行所述腳本。因此,優化過程可以作為一系列分離的步驟發生。可替代地,優化過程可以包括直接生成客戶端優化的應用122的單個步驟。無論何種方式,如過程166所示,優化器都可以產生優化的應用。在過程168中,優化的應用可以被傳送給捆綁器154,以使得所有來自庫存儲136的必要例程和庫可以與優化的應用一起被分組并被適當地格式化,以便創建交付給客戶端115的客戶端優化的應用122。應當指出,只要使用編碼的電磁信號來傳送內容,網絡140、142以及144可以以任何方式被實現。進而,任何通信設備(例如用戶終端設備(CPE)、計算機、調制解調器、路由器、交換機、接入點等)都可以被包括在網絡140、142以及144中。網絡140、142和144中的每個網絡都可以以基于分組或基于電路的方式來傳送內容。此外,網絡140、142和144中的每個網絡都可以通過陸上線路或無線數據通信方法來傳送內容。例如,網絡140、142和144中的每個網絡都可以分別包括內聯網、局域網、廣域網或者其組合。在另一個實例中,網絡140、142和144中的每個網絡都可以包括電話網絡,例如移動無線網絡或者公共交換電話網絡(PSTN)。數據存儲130、132和134可以將信息存儲在任何記錄介質(例如磁盤、光盤、半導體存儲器等)中。進而,數據存儲130、132和134中的每一個數據存儲都可以使用任何信息保存技術,包括基于文件的存儲技術或數據庫存儲技術。此外,數據存儲130、132和134中的每一個數據存儲都可以是固定到地理位置的存儲區域或者是跨網絡空間分布的存儲區域。此外,數據存儲130、132和134中的每一個數據存儲都可以代表一個永久性存儲區域(例如硬盤驅動存儲空間)以及易失性存儲區域(例如隨機存取存儲器(RAM)存儲空間)。應當理解,圖1所示的布置只是為了說明目的并且本發明并不限于此方面。可歸屬于各種組件的功能可以以不同于此處說明的方式被組合或分離。例如,數據存儲130、132和134可以被實現為單個數據存儲。在本發明的另一個實施例中,軟件開發計算機105和部署服務器110可以在單個軟件開發和部署服務器內實現。圖2是示出了根據此處公開的發明布置的實施例的優化應用的方法200的流程圖。方法200可以在其中應用可以被即需地部署到客戶端的任何應用部署環境中執行。優化可以發生在部署階段也可以發生在部署服務器內。例如,方法200可以在用于創建、測試電子商務應用并將其部署到移動和無線設備的集成開發環境(例如WebSphereStudioDeviceDeveloper(WSDD))中執行。在一個構想的布置中,方法200可以在系統100或其它此類系統中實現。方法200可以在步驟205開始,在步驟205,在軟件開發環境中編寫的軟件應用可以被發送給軟件部署服務器。在一個實施例中,可以以平臺中立的方式和語言來編寫軟件應用。例如,可以以JAVA編程語言或任何其它一次編寫、隨處運行(WORA)語言來編寫軟件應用。來自開發環境的軟件版本可以是通用版本,該版本并沒有針對任何特定的設備或平臺進行優化。在步驟210中,可以接收來自客戶端的對應用的請求。在步驟215中,可以分析所述客戶端以確定該客戶端的能力。例如,可以使用諸如來自IBM的MicroAnalyzer之類的分析程序來即需地動態執行分析。在另一個實例中,客戶端可以向部署服務器登記,此時可以接收和存儲有關能力的信息以便在需要時使用。在步驟220中,可以根據客戶端標識和/或確定的客戶端能力來查詢簡檔數據存儲。在步驟225中,查詢可以返回一個或多個簡檔。每個簡檔都可以被與參數和腳本關聯。還可以根據一個或多個為特定于客戶端、設備、簡檔、應用及其組合的信息選擇和/或修改的通用腳本來為特定的客戶端或應用動態地生成腳本。在步驟230中,可以由優化器引擎或一個或多個優化例程來處理所述參數和腳本。在步驟235中,所述處理可以得到客戶端優化的應用。例如,在一個實施例中,所述客戶端優化的應用可以是通用應用的這樣的版本從包中刪除了未使用的類并且應用處理細節適合于所述客戶端的存儲器和處理能力。所述客戶端優化的應用還可以使用提前(AOT)和內聯編譯技術。例如,當以JAVA編程語言編寫通用應用時,所述客戶端優化的應用可以包括在鏈接時構建的預檢驗的字節碼可執行文件(executables)。在步驟240中,所述方法可以檢查客戶端執行所請求的應用所需的相關性、庫、軟件例程等。當找到了必須被捆綁到所請求的應用的項目時,可以將發現的項目與客戶端優化的應用進行捆綁。此外,在可選的步驟245中,判定所述應用是否將按照特定的交付格式被提供給客戶端。例如,某些客戶端可能首選或甚至要求關聯的軟件例程、文件等為指定的格式,例如JAVA檔案(JAR)格式。當指定了特定的格式時,交付的項目的捆綁可以按照指定的格式發生。在步驟250中,可以將所述客戶端優化的應用和/或包括所述客戶端優化的應用的捆綁包傳送給客戶端。本發明可以以硬件、軟件或硬件和軟件的組合來實現。本發明可以以集中的方式在一個計算機系統中實現或者以分布的方式實現,在所述分布方式中,不同部件可以跨多個互連的計算機系統分布。任何種類的計算機系統或其它適于執行此處所述的方法的裝置都是適合的。典型的硬件和軟件的組合可以是具有計算機程序的通用計算機系統,當所述程序被加載和執行時,所述程序控制所述計算機系統以使得其執行此處所述的方法。本發明還可以被嵌入計算機程序產品,其包括允許實現此處所述的方法的所有特征,并且當被加載到計算機系統中時,其能夠執行這些方法。當前上下文中的計算機程序是指一組指令的以任何語言、代碼或符號表示的任何表達,旨在使具有信息處理能力的系統直接執行特定的功能,或者執行以下兩者之一或全部后執行特定的功能a)轉換為另一種語言、代碼或符號;b)以不同的材料形式再現。在不偏離本發明的精神或本質屬性的情況下,可以以其它形式來實施本發明。因此,應當參考以下權利要求,而不是上述說明書,以此作為本權利要求1.一種用于優化應用的計算機化方法,所述方法包括以下步驟接收來自客戶端的對應用的請求;將所述客戶端與至少一個先前存儲的簡檔相匹配;根據所述簡檔確定所述客戶端特有的屬性;根據所述確定的屬性和所述應用的通用版本動態地生成客戶端優化的應用;以及將所述客戶端優化的應用傳送給所述客戶端。2.根據權利要求1的計算機化方法,包括以下步驟根據所述確定的屬性建立至少一個腳本;以及在用于從所述應用的所述通用版本中刪除不需要的類、方法以及字段的優化器引擎內處理所述至少一個腳本,其中所述客戶端優化的應用由所述優化器引擎來生成。3.根據權利要求1的計算機化方法,其中所述應用是JAVA編程語言應用,并且以字節碼來編寫所述客戶端優化的應用,其中所述生成步驟在鏈接時預檢驗所述生成的字節碼可執行文件。4.根據權利要求1的計算機化方法,還包括以下步驟標識其上主持所述客戶端的設備的硬件配置,其中所述匹配步驟基于所述硬件配置。5.根據權利要求1的計算機化方法,還包括以下步驟響應于所述接收步驟,動態地分析所述客戶端以確定所述客戶端的能力,其中所述匹配步驟利用所述確定的能力。6.根據權利要求1的計算機化方法,還包括以下步驟標識至少一個將被與所述客戶端優化的應用一起捆綁的軟件例程,以使得所述客戶端能夠執行所述客戶端優化的應用;以及將所述標識的至少一個軟件例程與所述客戶端優化的應用一起捆綁,其中所述傳送步驟將包括所述標識的至少一個軟件例程和所述客戶端優化的應用的捆綁包傳送給所述客戶端。7.根據權利要求6的計算機化方法,還包括以下步驟根據所述請求和所述簡檔中的至少一個,確定交付的應用將按照指定的交付格式被提供,其中所述捆綁步驟遵循所述指定的交付格式。8.根據權利要求7的計算機化方法,其中所述指定的交付格式是JAVA檔案(JAR)格式。9.根據權利要求1的計算機化方法,還包括以下步驟從軟件開發計算機將所述應用的所述通用版本發送給部署服務器,其中所述部署服務器執行所述接收、匹配、確定、生成以及所述傳送步驟。10.根據權利要求1的計算機化方法,其中所述計算機化方法是在用于創建、測試電子商務應用并將所述電子商務應用部署到移動和無線設備的集成開發環境中執行的即需軟件部署方法。11.一種機器可讀的存儲裝置,其上存儲有具有多個代碼部分的計算機程序,所述代碼部分可由機器執行以使得所述機器執行以下步驟接收來自客戶端的對應用的請求;將所述客戶端與至少一個先前存儲的簡檔相匹配;根據所述簡檔確定所述客戶端特有的屬性;根據所述確定的屬性和所述應用的通用版本動態地生成客戶端優化的應用;以及將所述客戶端優化的應用傳送給所述客戶端。12.根據權利要求11的機器可讀的存儲裝置,包括以下步驟根據所述確定的屬性建立至少一個腳本;以及在用于從所述應用的所述通用版本中刪除不需要的類、方法以及字段的優化器引擎內處理所述至少一個腳本,其中所述客戶端優化的應用由所述優化器引擎來生成。13.根據權利要求11的機器可讀的存儲裝置,還包括以下步驟響應于所述接收步驟,動態地分析所述客戶端以確定所述客戶端的能力,其中所述匹配步驟利用所述確定的能力。14.根據權利要求11的機器可讀的存儲裝置,還包括以下步驟標識至少一個將被與所述客戶端優化的應用一起捆綁的軟件例程,以使得所述客戶端能夠執行所述客戶端優化的應用;以及將所述標識的至少一個軟件例程與所述客戶端優化的應用一起捆綁,其中所述傳送步驟將包括所述標識的至少一個軟件例程和所述客戶端優化的應用的捆綁包傳送給所述客戶端。15.根據權利要求11的機器可讀的存儲裝置,其中所述計算機化方法是在用于創建、測試電子商務應用并將所述電子商務應用部署到移動和無線設備的集成開發環境中執行的即需軟件部署方法。16.一種部署服務器,所述部署服務器包括簡檔數據存儲,所述簡檔數據存儲存儲設備的多個屬性并將不同的優化參數或優化例程與每個所述存儲的屬性相關聯;通用應用數據存儲,所述通用應用數據存儲存儲至少一個以設備無關的方式編寫的通用應用;以及優化器,所述優化器被配置成從一類不同的發出請求的設備接收應用請求,并響應于接收的請求動態地生成設備特定的應用,對于每個發出請求的設備,所述優化器被配置成確定發出請求的設備的屬性,利用所述簡檔數據存儲來標識用于所述發出請求的設備的優化參數或優化例程,以及根據來自所述簡檔數據存儲的數據和根據從所述通用應用數據存儲檢索的通用應用來生成設備特定的應用。17.根據權利要求16的部署服務器,其中所述部署服務器是用于創建、測試電子商務應用并將所述電子商務應用部署到移動和無線設備的集成開發環境的組件。18.根據權利要求16的部署服務器,其中所述優化器被配置成當生成所述設備特定的應用時從所述通用應用中刪除不需要的類、方法和字段。19.根據權利要求16的部署服務器,還包括分析器,所述分析器被配置成在接收到請求時動態地分析請求發出設備的能力,其中分析的能力確定了所述發出請求的設備的所述屬性。20.根據權利要求16的部署服務器,還包括捆綁器,所述捆綁器被配置成標識將被與所述設備特定的應用一起捆綁的機器可讀的代碼以便可以在所述設備上執行所述設備特定的應用,并且隨后將所述標識的機器可讀的代碼與所述設備特定的應用一起捆綁,其中得到的捆綁包被提供給所述設備以響應發出的應用請求。全文摘要一種部署服務器,所述服務器可以包括簡檔數據存儲、通用應用數據存儲以及優化器。所述簡檔數據存儲可以包含設備的多個屬性并將不同的優化參數或優化例程與每個所述存儲的屬性相關聯。所述通用應用數據存儲可以包含至少一個以設備無關的方式編寫的通用應用。所述優化器可以從一類不同的發出請求的設備接收應用請求,并響應于接收的請求動態地生成設備特定的應用。對于每個發出請求的設備,所述優化器可以確定發出請求的設備的屬性,利用所述簡檔數據存儲來標識用于所述發出請求的設備的優化參數或優化例程,以及根據來自所述簡檔數據存儲的數據和根據從所述通用應用數據存儲檢索的通用應用來生成設備特定的應用。文檔編號G06F17/30GK1798153SQ200510129149公開日2006年7月5日申請日期2005年11月14日優先權日2004年12月28日發明者F·孔查,D·賴克申請人:國際商業機器公司