專利名稱::分發軟件所用的集成管理系統和方法
技術領域:
:一般說來,本發明涉及軟件提交領域,尤其是涉及一種集成的系統和一種方法,全面管理一種從頭到尾的軟件提交過程,它適于沿著一種軟件產品的整個生命周期進行管理,從開發直至安裝在生產中。
背景技術:
:目前大多數公司的商務過程都在很大程度上由一大批軟件應用程序進行支持。由于商務過程需要不斷地發展以適應新的商務需求,所以支持公司商務過程所用的軟件系統和應用程序,其組件必須頻繁地改變,必須動態地發展,以便滿足新的需求。在這種變化的、動態的環境中,不僅是在軟件應用程序的開發領域中,而且也在任何公司的許多不同的領域、活動和商務過程中,軟件提交過程都起到了一種關鍵的作用。結果,軟件提交管理已經發展成企業系統管理之內的一門軟件工程學科,它專注于控制軟件的發展以及實施軟件系統的改變。軟件提交管理的主要目的,是使新的軟件應用程序能夠在不同的環境(比如測試、培訓、生產環境)中正確地安裝,以及能夠控制對已經安裝的軟件應用程序進行的改變和調整。實際上,軟件提交使得以下行為能夠實現部署(即安裝和運行)新釋放的或新版本的軟件應用程序,分發和安裝若干調整和補丁以便消除現有應用程序中遇到的錯誤和問題,以及從一個管理中心來改變軟件系統的配置。軟件提交也使得在系統崩潰后,無須抵達現場而能夠再次安裝和再次配置系統。在實踐中,軟件提交的任務復雜、細致而且耗時,其范圍能夠從分發單一的文件直至更換整個軟件系統。安裝過程中出錯或者與已經安裝的軟件不兼容的可能性,與軟件系統進行改變的程度成正比。由于軟件提交允許同時對眾多的系統進行改變,確保這些改變不會對這些系統產生負面的沖擊極為重要;否則,它們可能會導致大量的用戶中斷,甚至商業損失。一般說來,軟件提交的過程包括幾種行為。這些行為包括例如識別將要提交之軟件產品的多種組件(如源代碼模塊、二進制和可執行文件、配置文件、界面、數據模型、數據結構、實體、過程比如安裝和配置腳本、文檔比如用戶指南等等),管理軟件產品中不同釋放或版本的組件;對于要向其提交軟件產品的軟件系統,識別其組成要素之間的依賴關系;產生在目標系統中即目標環境和平臺中運行軟件產品所需的數據項;創建軟件包,其中包含著在目標平臺中安裝軟件產品所需的文件、數據、腳本和實用程序;向目標系統分發軟件包;以及在目標系統中安裝所分發的軟件包。對于以上概述的完整提交過程,為了實施其特定的部分或者說子過程,已經提出了幾種不同的方法。本文在下面會報告已知方法的某些實例。Davis等人的、標題為“Automaticsoftwareinstallationonheterogeneousnetworkedclientcomputersystems”的5,742,829號美國專利提供了一種方法,用于在多機種的客戶計算機系統中自動安裝軟件。Collins三世等人的、標題為“Systemforsoftwaredistributioninadigitalcomputernetwork”的5,845,090號美國專利公開了在一個網絡中分發軟件和數據的一個過程,把軟件和數據結合起來(程序和數據在一起通稱方法),放入稱為數據包的若干單一實體中,然后使用特定的技術,把數據包從一臺計算機傳送到另一臺計算機。這份文檔中公開的過程涵蓋的子過程用于傳輸分發數據包(安裝程序和數據)、采集數據包(采集數據所用的方法)以及命令數據包(系統管理任務所用的方法)。Glowny的、標題為“Systemandmethodforremotesoftwareconfigurationanddistribution”的5,805,897號美國專利涉及一種系統和方法,用于遠程軟件安裝和維護。Neal的、標題為“Methodfordistributingsoftwareovernetworklinksviaelectronicmail”的6,192,518號美國專利公開了一種方法、裝置和制成品,用于通過一個網絡由電子郵件來分發一個軟件應用程序。Holmes的、標題為“Reliableandrepeatableprocessforspecifying,developing,distributingandmonitoringasoftwaresysteminadynamicenvironment”的6,226,784號美國專利介紹了一種通用的過程,用于項目管理。該過程局限于僅僅在實驗室環境中在軟件的開發期間管理軟件的生命周期。以上提名的美國專利,其全部內容在此引用作為參考。作為現有技術中已經介紹之若干系統和方法的另一個實例,1999年9月IBM公司國際技術支持機構印發的、標題為“TheSoftwareDistributionProcess”的出版物SG24.5504.00,介紹了軟件分發和安裝的若干子過程。每一個步驟都進行了詳細介紹,講解了如何以及何時實施。不過,軟件提交過程作為一個整體涉及的任何其它子過程均未涵蓋。大多數已知的方法都局限于僅僅涵蓋了完整軟件提交過程中具體的子過程,比如分發子過程和/或無人值守安裝子過程。其它的已知方法局限于涵蓋軟件項目管理的特定需求,而且不能應用于在商業環境中,沿著軟件產品從開發直至生產的整個生命周期實施軟件提交過程。作為現有技術中系統和方法的實際實施結果,大多數公司的信息技術(IT)機構已經安裝了多種單獨的、多機種的、隔離的子系統,以便實施整個軟件提交過程中的特定子過程。例如,一個特定的配置管理系統(或應用程序)可能用于控制代碼的不同版本,一個與它無關的系統(或應用程序)用于管理改變,另一個系統用于跟蹤軟件產品中的問題及其解決結果,再一個單獨的工具向不同的環境分發軟件產品。由于缺乏從頭到尾的軟件提交過程,或者利用隔離的、獨立的系統來實施該過程,頻繁地造成了產生低質量的軟件產品、推遲提交計劃、成本超支或者不能滿足客戶的需求。本申請人已經看到,當前的方法本質上不能包含軟件應用程序不同組件的變化、它們之間的依賴關系、運行它們的多種平臺、它們的多種版本以及它們在不同的環境(比如開發、連編、單元測試、功能測試、集成測試、回歸測試、系統測試和生產)中的發展。因此,需要有一種從頭到尾的軟件提交過程,它能夠沿著軟件系統的整個生命周期進行管理,從開發直至安裝在生產中。為了成功地滿足這種需求,構成從頭到尾的完整軟件提交過程的多種行為,既不應當相互獨立,也不應當相互隔離。相反,它們如果不是全部都應當相互聯系,大多數也應當相互聯系。同樣,從頭到尾的軟件提交過程應當覆蓋一種新軟件產品(如一種新的應用程序)的完整生命周期,把它作為一個整體來管理,在整個過程中從頭到尾都要保持其完整性。另外,軟件提交過程必須考慮到,組成軟件產品的若干部分雖然不同,但是相互有聯系,而且它們也與同一系統或其它目標系統上運行的其它組件和軟件產品有關。因此,還是需要有一個涵蓋以上給出的全部需求的全局解決方案,還是需要有一種基于集成管理系統的從頭到尾的軟件提交過程,它覆蓋著一個軟件產品的整個生命周期,把它作為一個整體來管理并且保持其完整性,同時考慮到軟件產品是由不同的相互聯系的部分組成的。
發明內容本發明致力于解決上述問題。確切地說,本發明的一個目的是改善當前軟件產品提交所用的系統和方法,覆蓋應當滿足的主要需求。按照本發明的第一方面,提出了一種集成的數據處理系統,用于管理在一個網絡環境中把軟件產品提交到目標軟件產品執行單元的提交過程,而目標單元可以屬于該網絡環境之內的一個軟件產品測試環境、一個軟件產品用戶培訓環境或者一個生產環境。集成的數據處理系統包括一個中心儲存庫,用于存放至少一種軟件產品的軟件組件;一個第一子系統,用于在中心儲存庫之內識別將要提交之軟件產品的軟件組件;一個第二子系統,用于根據第一子系統識別的軟件組件,創建至少一個軟件產品數據包;以及一個第三子系統,用于向目標軟件產品執行單元分發第二子系統創建的至少一個軟件產品數據包。對于第二子系統分配給這至少一個軟件產品數據包的角色,按照其標志確定要向其分發軟件產品數據包的執行目標單元。在一個優選實施例中,集成的數據處理系統包括一個軟件包分發儲存庫,用于存放第二子系統根據已識別的軟件組件創建的至少一個軟件產品數據包,它將要由第三子系統分發。第一子系統也管理著中心儲存庫中的一個存儲器,其中存放著要提交之軟件產品的軟件組件。優選情況下,集成的數據處理系統進一步包括一個第四子系統,用于在要提交之軟件產品的已識別軟件組件之間,執行軟件代碼組件的一個連編過程。第四子系統在中心儲存庫中存放著連編過程的結果。在一個優選實施例中,集成的數據處理系統進一步包括一個第五子系統和一個第六子系統,前者用于管理對已經提交的軟件產品施加改變和/或調整的一個過程,后者用于記錄在軟件產品的提交期間,集成數據處理系統的其它子系統提供的信息。本發明的另一個方面是一種方法,用于在一個網絡環境中把軟件產品提交到目標軟件產品執行單元。該方法包括以下步驟在中心儲存庫中存放這至少一種軟件產品的軟件組件;在中心儲存庫中存放的軟件組件中,識別要提交之軟件產品的軟件組件;根據已識別的軟件組件,創建至少一個可分發的軟件產品數據包;向目標軟件產品執行單元發軟件產品數據包,并在該處安裝軟件產品數據包。附圖簡要說明參考附圖,通過本發明一個優選實施例(僅僅是作為非限制性的實例而提供)的以下詳細說明,本發明的特性和優點將會顯而易見,其中圖1是一個普通公司信息基礎設施的簡圖;圖2是一幅框圖,展示了依據本發明一個優選實施例的軟件提交集成管理系統;圖3是一幅流程圖,示意性地顯示了依據本發明一個優選實施例的一種方法中的主要步驟,用于利用圖2的集成管理系統實施從頭到尾的提交過程;圖4示意性地顯示了集成管理系統實施之軟件提交過程的若干子過程與圖2中集成管理系統的跟蹤子系統之間的信息交換。具體實施例方式本發明提供了一種集成管理系統和一種方法,用于在具有信息基礎設施的一個普通公司之內,實施一種完整的、從頭到尾的軟件提交過程。圖1中示意性地展示了一個普通公司的信息基礎設施。該基礎設施由引用號101整體標識,包括不同性質的多個平臺103,比如個人計算機、工作站、服務器等,利用一個網絡105聯網,例如一個局域網(LAN)、一個廣域網(WAN)或其組合,或者任何其它種類的網絡。平臺103可以屬于許多不同的環境,比如測試軟件產品的測試環境TEST,培訓軟件產品的預期終端用戶使用軟件產品的培訓環境TRAIN,軟件產品以其在公司的日常商務管理中預期使用而運行的生產環境PROD。該公司也具有一個信息技術(IT)機構IT_ORG,它具有管理公司的信息基礎設施的功能。該IT機構通常包括幾個團隊,比如一個軟件產品開發團隊DEV,負責開發新的軟件產品,或者已有軟件產品的新釋放或新版本;一個軟件產品連編團隊BUILD,負責從軟件代碼開始的連編過程,連編在一種目標環境中運行一個軟件產品所需的所有數據項;一個軟件包創建團隊PACK,負責創建軟件包,它們要分發到指定環境中的目標平臺103;以及一個軟件包分發團隊DISTR,負責把軟件產品分發和安裝到指定環境中的指定目標平臺上。多種團隊的成員在平臺107上操作,它與集成服務器109聯網,再連接到公司網絡105。依據本發明,一個恰當的和完整的從頭到尾的軟件提交過程可能包括以下子過程配置管理和版本控制、改變和問題管理、連編、打包、分發和安裝。配置管理和版本控制子過程使得軟件產品的組件能夠識別,比如源代碼模塊、二進制和可執行文件、配置文件、界面、數據模型、數據結構、實體、過程(安裝和配置腳本)以及文檔。這個子過程也在開發生命周期中管理著軟件產品組件的不同釋放和版本,并且對它們的發展保持跟蹤。對于可能要向其提交軟件產品之目標軟件系統的要素(比如平臺、操作系統、中間件、網絡因素等),這個子過程也使得它們之間可能的依賴性能夠標識,而且能夠把所有這些要素集中起來,把它們作為一個整體來管理。因此,這個子過程在任何時間都能夠確定一個目標軟件系統在特定環境和階段中的狀態。改變和問題管理子過程使得為了增強代碼而實施的改變和為了解決遇到的問題而開發的調整能夠受到控制。由于開發團隊為了實施一種改變或者改正一個錯誤而產生或修改的軟件組件應當受到標識和控制,所以這個子過程的操作可以與配置管理和版本控制子過程完全整合。連編子過程產生在特定目標系統中(如在特定的目標環境和平臺中)運行軟件產品所需的數據項。這個子過程的成功實施需要配置管理和版本控制子過程的正確實施。為了達到這個目的,連編子過程應當知曉什么需要改變,在何處找到在連編過程中要使用的要素,以及應當切換到什么過程以便成功地生產新版本的軟件產品。打包子過程以可安裝的格式產生軟件包,包含著所需的文件、數據、腳本以及支持安裝子過程需要的實用程序。為了確保安裝子過程正確無誤,需要(盡管不是強求)安裝是無人值守的(即無須終端用戶的干預)。為了達到這個目的,產生的軟件包也應當包含必要的響應文件,上面可以正確地記錄著安裝子過程期間請求的參數值、選項或可能的回答。分發子過程使打包子過程中產生的軟件包可立即安裝到目標系統。最后,安裝子過程把分發的軟件包安裝在目標系統中,即在對應的環境(如測試、生產、培訓等)中的指定目標平臺上。這個子過程也創建若干日志文件,記載著軟件包的安裝結果中施加在目標系統上的改變。安裝子過程也可以告知分發管理團隊一個成功的和正確的安裝已經完成,如果安裝失敗就觸發一個動作。依據本發明一個優選實施例的集成管理系統包括多個不同的子系統,實施不同的子過程,它們組成了軟件提交過程。確切地說,依據本發明一個優選實施例的集成管理系統包括一個配置管理子系統,實施配置管理和版本控制子過程;一個改變和問題管理子系統,實施改變和問題管理子過程;一個連編子系統,實施連編子過程,一個打包子系統,實施打包子過程,以及一個分發子系統,實施分發和安裝子過程。每個子系統執行軟件提交過程中的一個或多個特定的子過程。這些子系統不是相互隔離的,而是相互整合及關聯的,以便沿著一種軟件產品的整個生命周期進行管理,從開發直至安裝在生產中。此外,依據本發明一個優選實施例的集成管理系統還包括一個跟蹤子系統,與其它子系統整合及互動。沿著軟件提交過程的不同階段,跟蹤子系統從其它子系統獲取和匯總軟件提交狀態有關的信息。跟蹤子系統可以記錄該過程的若干階段以及在這些階段之內探測到的結果。同時,對于IT機構之內不同團隊的成員,跟蹤子系統也按照他們在這樣一種機構之內的角色和責任,使他們保持知曉軟件提交過程。圖2是一幅示意框圖,展示了依據本發明一個優選實施例的從頭到尾的軟件提交集成管理系統。該集成管理系統由引用號201整體標識,構成它的子系統示意性地表示為功能區塊。確切地說,配置管理子系統由區塊203(CMss)標識,連編子系統由區塊205(Bss)標識,打包子系統由區塊207(Pss)標識,分發子系統由區塊209(Dss)標識,改變和問題管理子系統由區塊211(C&PMss)標識。此外,跟蹤子系統由區塊213(Tss)標識。由公司IT機構的開發團隊DEV交互操作的配置管理子系統203,具有一個相關聯的安全中心儲存庫(CR)215,而且與連編子系統205、打包子系統207以及改變和問題管理子系統211互動。打包子系統207又與分發子系統209互動。在本發明的一個優選實施例中,分發子系統209具有一個相關聯的軟件分發儲存庫(DR)217。打包子系統207能夠訪問軟件分發儲存庫217。為了隨后的安裝,分發子系統209能夠把軟件產品分發到指定環境的指定目標平臺103,例如生產環境PROD和測試環境TEST。改變和問題管理子系統211從已經安裝了軟件產品的不同環境的目標平臺接收反饋。在對已安裝軟件產品的的問題進行改變或調整階段,IT機構的開發團隊DEV對改變和問題管理子系統211進行交互操作。改變和問題管理子系統通知開發團隊,一種已安裝的軟件產品需要一種改變或者一種調整。配置管理子系統203、連編子系統205、打包子系統207、分發子系統209以及改變和問題管理子系統211都可以與跟蹤子系統213互動。在圖2中,子系統、儲存庫、目標環境與開發團隊之間的功能互動,示意性地表示為簡單的線條。按照一個項目的需求,為了實施和相互整合上述子系統,以形成集成的管理系統,可以使用現有的軟件產品和工具,也可以使用為此目的而專門開發的其它軟件組件。現在將更詳細地介紹不同子系統的特定功能。一般說來,配置管理子系統203實施軟件提交過程中的配置管理和版本控制子過程。確切地說,這個子系統執行識別、組織和控制一個軟件產品的若干組件的任務,比如源代碼模塊、連編腳本(即make程序的描述文件)、二進制和可執行文件、界面、數據模型、數據結構、實體、配置文件、安裝腳本和響應文件、配置腳本以及文檔編制組件,例如提交信息、連編指南、操作指南和用戶指南。例如,軟件產品的以上組件可以由開發團隊開發,或者從一個軟件賣方購買,并且可以由開發團隊向配置管理子系統203提供。配置管理子系統203把軟件組件存放在相關聯的安全中心儲存庫215中。此外,配置管理子系統203在軟件組件的整個開發生命周期中,控制和管理著軟件組件的版本,并且對它們的發展保持跟蹤,能夠隨時確定一種特定環境中代碼的狀態或版本。不僅如此,對于構成軟件產品的軟件組件,配置管理子系統203還能夠記錄它們之間的依賴關系,而且能夠把它們集中起來,所以可以把它們作為一個整體來管理。因此,配置管理子系統203不僅確保了軟件產品的完整性,而且確保了整個系統的完整性。所有這些功能降低了復雜程度,而且節省了實施時間,改善了軟件生產過程的質量和生產率,簡化了過去軟件版本的可重用性。改變和問題管理子系統211實施軟件提交過程的改變和問題管理子過程。確切地說,這個子系統執行以下功能對軟件產品的改變方案和改正錯誤的解決方案進行控制;支持改變和問題管理子過程的若干步驟,這些步驟包括例如探測在測試、培訓或生產的任一種環境中已經安裝之軟件產品中的問題,批準一種改變,證實輸出,實施改變或糾正錯誤等;對改變和問題保持跟蹤,確保改變和問題管理子過程成功地實現以及改變經過適當授權;評估改變和問題的沖擊,因此能夠作出判斷、節省成本、精力和時間;根據子系統之內記錄和管理的類似錯誤,促進問題確定過程;識別哪些代碼要素是應用程序問題的根源,或者說哪些代碼要素必須修改以實施改變;以及連編已經作出之改變和調整與在軟件產品的新版本中解決之問題的聯系,使得它們在多種版本和環境中脫離特定的軟件要素。為了完成一種正確的問題和改變管理,需要一種穩健的和適當的配置管理,也需要一種有效的版本控制。為了達到這個目的,改變和問題管理子系統211可以與配置管理子系統203全面整合。全面整合意味著終端用戶能夠確定中心儲存庫215中要改變之軟件組件的版本和釋放以及其它特征。配置管理子系統203與改變和問題管理子系統211可以視為一個單一的子系統,實施配置、版本控制以及改變和問題管理的功能。連編子系統205實施軟件提交過程的連編子過程。確切地說,這個子系統具有以下功能確保中心儲存庫215中存放的源代碼正確地連編,以及產生在目標系統中運行軟件產品所需的二進制文件。這個子系統也能夠識別產生二進制文件所用之源代碼的版本。更詳細地說,在配置管理子系統203的控制下,連編子系統205自動地從中心儲存庫215中提取所需的源代碼組件,并且連編腳本和任何其它要素,以用于連編軟件產品。然后,這個子系統把這些組件傳遞到適當的連編系統。根據源代碼的類型,連編子系統205啟動適當的連編腳本、連編系統和目標執行平臺和環境,以獲得軟件的對應版本。隨后,子系統205自動地把已經產生的二進制文件存放在中心儲存庫215中,以便對產生它們的源代碼保持跟蹤。如果軟件系統不是由IT機構自行開發,而是從一個軟件賣方購買的,在大多數情況下二進制文件是專門提交的,而不是要產生的。在這種情況下,就不必執行連編子過程。公司IT機構的開發團隊把軟件賣方提供的二進制文件供應給配置管理子系統,它把它們與軟件產品的其它組件一起,存放在中心儲存庫215中。打包子系統207實施軟件提交過程的打包子過程,并且產生軟件產品的數據包,使它們能夠向指定環境的目標平臺分發和安裝。更具體地說,打包子系統207產生壓縮的軟件包,用于分發。這些軟件包包含著軟件產品的二進制文件(或者是在連編子過程中產生的,或者是由軟件賣方提供的),以及所需的所有其它文件,比如配置文件、初始化文件、在目標平臺上進行無人值守安裝所需的響應文件或者終端用戶的文檔。在配置管理子系統203的控制下,這些文件由打包子系統自動地從中心儲存庫215中提取,配置管理子系統203在中心儲存庫215中存放的組件中,識別構成軟件產品的組件。軟件包的內容取決于應用程序代碼和目標執行平臺(硬件、操作系統、中間件)的類型,而打包子過程和軟件包的格式可以與軟件包的內容無關。然后,根據IT機構的打包團隊提供的以及跟蹤子系統中記錄的信息,打包子系統207為產生的軟件包分配一個角色,它必須符合該軟件產品最終將要安裝的目標系統。例如,一個目標系統角色可以是WindowsNTSQL服務器,MQSeries客戶,SAPNT服務器,等等。優選情況下,打包子系統207把產生的軟件包存放在軟件分發子系統209的軟件分發儲存庫217中。多虧如此,使用跟蹤子系統213提供的信息,在每個平臺上軟件產品的每一個組件都很容易識別,因此就能夠從軟件分發儲存庫217中,獲得包含著這些組件中每一個之正確版本的對應可安裝軟件包。此外,由于軟件包存放在軟件分發子系統209的軟件分發儲存庫217中,軟件應用程序的每個版本可以僅僅連編和打包一次,隨后再修改,也能夠確保最終的安裝是相同的,與目標環境(比如單元測試環境、功能測試環境、集成測試環境、回歸測試環境、系統測試環境或生產)無關。軟件分發子系統209實施軟件提交過程的分發和安裝子過程,并且在指定環境的正確目標平臺上執行軟件包的分發和安裝。可以存放在軟件分發儲存庫217中的將要分發的軟件包,包含著軟件產品的二進制文件及所需的任何其它文件,比如配置文件、初始化文件和無人值守安裝所需的響應文件,所以,一旦軟件包的安裝已經初始化之后,或者由集成管理系統請求,或者由一個目標平臺強制,不需要用戶干預,因此確保了安裝過程的正確性。軟件包的分發和安裝可以按照任何一種常規的分發方式來進行,比如直接存取分發、流式分發、改道分發、級聯分發、網絡服務器出版分發或者通過電子郵件發送來分發。所有這些方式,雖然相互有別,但是都使用或者是一種“拉”分發技術,或者是一種“推”分發技術,或者兼而有之(“推-拉”分發方式)。在拉分發技術中,軟件包的分發是由試圖在一個目標平臺上安裝軟件包的終端用戶觸發的。在推分發技術中,分發是由軟件分發子系統209啟動的,它強制軟件包從軟件分發儲存庫217下傳至目標平臺。在推-拉分發技術中,軟件包的分發是由推拉技術的一種組合來進行的。取決于不同的情況,這些技術中的任何一種都可以實施和應用。如果按照項目的指示,軟件包的安裝已經授權,跟蹤子系統213就可以通知測試團隊、終端用戶或者所涉及的任何專業人員。分發子系統209按照打包子系統207為其分配的角色,分發軟件包。嚴格說來,跟蹤子系統213無須實施軟件提交過程的任何特定子過程。更確切地說,在一個普通軟件產品沿著其整個生命周期的提交過程中,這個子系統對于其它子系統收集的提交過程狀態有關的信息進行匯編。跟蹤子系統213可以連編已執行的每一個過程步驟、每一個細節以及集成管理系統探測到的每一個事件。例如,作為一種信息工具,這個子系統提供了不同的軟件產品提交以及軟件級別、連編結果、分發或安裝結果和提交狀態有關的信息。在本發明的一個優選實施例中,跟蹤子系統213包括一個電子郵件(e-mail)工具,當某些指定事件發生時,例如提交的狀態有轉換時,它就以電子郵件消息的形式,向提交過程中涉及的專業人員自動提交通知。電子郵件消息形式的自動通知使這些團隊的成員及時知曉提交的狀態;確切地說,這個子系統使負責分發的團隊知曉軟件包的提交。以上概述的集成管理系統實現了一種從頭到尾的軟件提交方式,它包括以下步驟在配置管理子系統203的控制下,由IT機構的一個團隊(如配置管理團隊)加載中心儲存庫215中源代碼的若干片段,在跟蹤子系統213中記錄軟件產品的若干版本,包括相關的細節,比如版本號、平臺、語言、開發團隊等等;在配置管理子系統203之內管理源代碼,它分配版本號,存放代碼,控制伴隨的文檔,等等;如果軟件賣方未提供,就利用連編子系統205并且在配置管理子系統203的控制下,從中心儲存庫215中存放的源代碼,連編二進制文件;在配置管理子系統203的控制下,在中心儲存庫215中加載已產生的二進制文件和軟件產品的其它組件,比如配置和安裝腳本;在配置管理子系統203的控制下,從中心儲存庫215中提取二進制文件、文檔和配置和安裝腳本,并且利用打包子系統207,產生將要分發的一個軟件包;把產生的軟件包發送到分發子系統209,以便把軟件包分發到指定目標環境中的指定目標平臺;在分發子系統209的控制下,在指定環境的目標平臺上分發和安裝軟件包;以及在本過程期間更新跟蹤子系統,記錄本過程中的步驟和結果。此外,本方法能夠在改變和問題管理子系統211的控制下,管理已經提交之軟件產品的軟件改變和調整。現在參考圖3,它利用一幅簡化的流程圖,顯示了依據本發明之方法的一個優選實施例,用于利用前面介紹的集成軟件提交系統實施從頭到尾的提交過程。現在將要介紹之方法的示范性實施例涉及以下情況一個新的軟件產品完全由公司IT機構的開發團隊自行開發。不過,依據本發明的方法適于實施的從頭到尾的整個軟件提交過程,與軟件產品是自行開發還是由軟件賣方提供無關。在后一種情況下,就不必執行本方法的某些步驟(涉及連編過程的若干步驟)。一旦公司IT機構的開發團隊決定開發一個新的軟件產品,或者為了改正一個錯誤或作出某些改變而開發已有軟件產品的一個新釋放或新版本,本方法就開始了。首先,開發團隊在跟蹤子系統213中記錄已開發軟件產品的相關細節(301框)。記錄的信息可能包括例如軟件產品的名稱、釋放/版本號、開發團隊領導的姓名、目標執行平臺的名稱、語言代碼、產品文檔參考資料、已經改正的問題、已經實施的改變,諸如此類。然后,在配置管理子系統203的控制下,開發團隊把連編和運行軟件產品所需的軟件產品組件加載到中心儲存庫215中(303框)。這些要素包括例如源代碼模塊、連編腳本(即make程序的描述文件)、連編文檔、界面、數據模型、數據結構、實體、配置腳本或文件、安裝腳本以及無人值守安裝和文檔編制所用的響應文件,比如舉例來說提交信息(應用程序、數據、改正的問題、施加的改變等等)、連編指南、管理指南、操作指南和用戶指南。正如305框所表示的,配置管理子系統203控制著中心儲存庫215中存放的軟件產品組件及其版本。為了達到這個目的,開發團隊在跟蹤子系統213中記錄了配置管理子系統203進行控制所用的信息,包括其中包含源代碼之儲存庫組件的名稱。一旦開發階段完成了,開發團隊就使用跟蹤子系統,向IT機構中負責提交軟件的功能部門報告軟件產品的可用性(307框)。然后,連編團隊檢驗已產生的連編腳本和文檔正確無誤(309框)。如果在這項檢驗期間,遇到了已產生的連編腳本和/或文檔中的錯誤,連編團隊就把這個事件記錄在跟蹤子系統213中,它通知開發團隊需要改正這些錯誤。開發團隊改正了這些錯誤之后,要重復前面的步驟,至少對于已經改變的軟件組件是如此。然后就連編軟件產品,以便產生使軟件產品恰當運行所需的二進制文件。正如311框所表示的,這些二進制文件是在配置管理子系統203的控制下,由連編子系統205從中心儲存庫215中存放的源代碼產生的。然后連編子系統205就把前一步驟中產生的二進制文件存放在中心儲存庫215中(313框)。作為下一個步驟(315框),連編團隊在跟蹤子系統213中,記錄309框、311框和313框中步驟的執行所涉及的信息或結果(是否可應用)(如完成時成功或失敗、相關的結果、缺失所需的文檔等等)。跟蹤子系統213在需要時會向連編團隊的成員發送自動通知,例如以電子郵件消息的形式。至此,軟件應用程序已經連編。打包團隊利用打包子系統207,產生對應的可安裝軟件包(317框)。在配置管理和版本控制子系統203的控制下,打包子系統207從中心儲存庫215中,提取在一個指定的目標平臺上部署(即安裝和運行)該軟件產品所需的軟件組件。這些組件可能包括以下數據項如二進制和可執行文件、安裝腳本(如果需要的話)、無人值守安裝所用的響應文件、配置腳本(如果需要的話)、配置文檔(如果需要的話)、終端用戶文檔(即用戶指南)、管理和操作文檔以及在指定的環境中指定的目標平臺上部署該軟件產品可能需要的其它軟件產品組件。由于連編子過程期間產生的每一個要素都應當包括在軟件包中,所以連編子系統205的輸出存放在配置管理子系統203的中心儲存庫215中,并且供應給打包子系統207作為一個輸入。一般說來,每個軟件包都應當整裝的,但是取決于應用程序和安裝需求的特定設計,每個要安裝的軟件產品也可以有不止一個軟件包。一旦軟件包已經產生,它就可以用于分發。所以,產生的軟件包即可供應給軟件分發子系統209。為了達到這個目的,打包子系統207把軟件包存放在分發子系統209的軟件分發儲存庫217中(319框),使其分發能夠進行。然后,打包團隊把317框和319框中步驟有關的信息和結果記錄在跟蹤子系統213中(321框)。需要時后者向該團隊的成員發送和分配自動通知。分發和安裝團隊使用分發子系統209,在目標環境的目標平臺上分發和安裝軟件包(323框)。分發和安裝團隊也把這個步驟有關的信息或結果記錄在跟蹤子系統213中,需要時它向該團隊的成員發送自動通知。優選情況下,按照公司IT機構的策略,在目標環境中安裝應用程序軟件包可能要受到一個管理團隊的批準。正如325框所表示的,已安裝軟件產品的增強以及解決應用程序錯誤所需的調整,是由改變和問題管理子系統211管理,它可以與配置管理子系統203完全整合。軟件改變和問題改正應當遵循IT機構規定的手續。與應用程序改變和錯誤有關的信息,記錄在改變和問題管理子系統211中。如果是一項改變,這項改變的申請者執行這項任務,如果是一個錯誤,由發現它的機構記錄這個事件。對一個已安裝的軟件產品提交一個代碼版本以實施一項改變或改正一個錯誤,其過程和方法基本上與任何其它提交的項目相同。實際上,一旦一個新代碼版本的開發開始了,它就記錄在跟蹤子系統213中。同樣,在配置管理子系統203中一項改變或一個錯誤的標識符也應當記錄為提交信息的一部分。如果一個軟件產品不是由公司IT機構自行開發的,而是由一個軟件賣方提供的,那么從賣方收到軟件時就開始軟件提交過程。負責軟件提交過程的人員得到通知,他在跟蹤子系統213中記載這次提交。在這種情況下,由于僅僅應當提交可安裝格式的二進制文件,在配置管理子系統之內既不應當存放也不應當管理源代碼,所以就跳過連編子過程。圖4是一幅示意圖,顯示了軟件提交過程的主要步驟如何提供提交狀態有關的信息——在跟蹤子系統213中記錄的信息。跟蹤子系統213作為集成提交過程產生之信息以及跟蹤提交狀態的中心點。在這些步驟中記錄的信息匯總如下。對于一個軟件產品的一個新釋放或新版本,或者一個現有的軟件產品的一項調整或一項改變,當開發(411框)開始時,開發團隊在跟蹤子系統213中記錄相關的細節,如產品名稱、版本號、開發團隊標識符、目標執行平臺、語言代碼、軟件產品文檔參考資料、配置管理子系統203有關的信息(包含著源代碼的中心儲存庫組件的名稱)、改正的問題或實施的改變。如果該軟件產品不是自行開發,而是從一個軟件賣方購買,如上所述,通常僅僅應當提交二進制文件;即使在這種情況下,供應的軟件也應當遵循提交流程,負責軟件提交過程的功能部門應當把賣方提交的信息記錄在跟蹤子系統213中。當開發階段結束時,就連編(413框)了應用程序以產生運行它所需的二進制文件。然后,負責連編代碼的連編團隊(或者開發團隊本身,如果IT機構中沒有這種責任劃分的話)就在跟蹤子系統213中,記錄該過程的這個步驟有關的信息。要記錄之信息的種類實例為配置管理子系統信息,比如包含著源代碼(從它產生對應的二進制文件)的中心儲存庫215組件的名稱、包含著已產生的二進制文件之中心儲存庫215組件的名稱、包含著連編腳本和文檔(由開發團隊提供)之中心儲存庫215組件的名稱、依賴關系或前提條件(版本間的、代碼集版本的等)有關的信息;連編日期和連編結果(如果有的話)。一旦軟件產品已經連編,就由打包子系統207產生(415框)對應的可安裝軟件包。然后,負責軟件打包的打包團隊就在跟蹤子系統213中,記錄這個步驟有關的信息。要記錄之信息的種類實例為配置管理子系統信息,比如包含著能夠安裝所需腳本和響應文件的軟件分發儲存庫217組件的名稱、以及包含著應用程序軟件包的軟件分發儲存庫217組件的名稱;軟件包名稱;目標執行平臺的角色;打包日期;以及打包結果(如果可應用的話)。一旦軟件包已經產生,它就能夠用于分發(417框)。然后,打包團隊就在跟蹤子系統213中,記錄軟件包的新狀態(軟件包已為分發準備就緒)。當請求分發軟件包(可能是批準之后)時,為了分發和安裝(419框),軟件包必須按照其角色或功能,分配給正確的目標系統。軟件分發子系統209把軟件包提交到目標平臺,負責分發和安裝軟件包的分發團隊在跟蹤子系統中,記錄已安裝軟件包的新狀態(已安裝狀態)。依據本發明的從頭到尾的軟件提交集成管理系統和方法,最顯著和最優越的特性如下。一個軟件產品的整個生命周期作為一個單一的過程來管理,而不是像現有技術中那樣作為一組不相關的、獨立的過程來管理。本發明的集成管理軟件系統是一種獨特的和全局的管理系統,它支持整個軟件提交過程。集成管理系統的子系統相互整合,它們中的每一個都實施軟件提交過程中的一個特定子過程。依據本發明的集成管理系統與特定實施方案中采用的平臺、操作系統、儲存庫或數據庫無關。此外,集成管理系統確保了軟件系統的完整性及其準確性能,跟蹤和控制著不同軟件組件和文檔之間的依賴關系,因此避免了冗余并且確保了全部組件能夠聯在一起按照需要而工作。新的軟件產品或者已有軟件產品的新釋放或版本,比如對已安裝之應用程序的調整或修改,在配置管理子系統的控制下,從中心儲存庫連編。產生和分發可安裝的軟件包時,獨立于軟件包的內容和目標系統,而且能夠由一個無人值守過程來安裝。優越之處在于,新的軟件版本(完全的或增補的)可以連編和打包一次,并存放在分發子系統的軟件分發儲存庫中,使得在不同環境中能夠重復使用安裝軟件包。此外,集成管理系統使得無人值守安裝時能夠自動提取軟件包,堅持了正確的軟件包按照其角色安裝在正確的目標系統中,使得在任何時間對于任何特定環境和階段都能夠檢索軟件系統的全部狀態信息。不僅如此,集成管理系統確保了在不同的平臺上,同一軟件的不同版本或級別能夠同步,而且在不同環境(即開發、連編、單元測試、集成測試、回歸測試、系統測試、生產)中并行運行的并發應用程序之間能夠同步,這些環境往往是由專業人員在遠程位置擁有和管理的。本系統也可以允許保持軟件狀態的審核蹤跡。必須強調,任何商業、公司或IT機構,面對一個管理系統支持的軟件提交過程的實施問題時,都可以應用本文介紹的軟件提交過程,以及為了實施它而公開的系統和方法。實際上,在本發明中介紹的系統的需求和主要特性是通用的,獨立于特定的實施例。也必須理解,按照一個給定機構或公司的特定需求,可以采用其它的實施例,可以作出結構改變而不脫離本發明的范圍,正如附帶的權利要求書的規定。權利要求1.一種集成的數據處理系統,用于管理在一個網絡環境中把軟件產品提交到目標軟件產品執行單元的提交過程,包括一個中心儲存庫,用于存放至少一種軟件產品的軟件組件;一個第一子系統,用于在中心儲存庫之內識別將要提交的軟件產品的軟件組件;一個第二子系統,用于根據由第一子系統識別的所識別的軟件組件,創建至少一個軟件產品包;以及一個第三子系統,用于向目標軟件產品執行單元分發第二子系統創建的至少一個軟件產品數據包。2.根據權利要求1的集成數據處理系統,進一步包括一個軟件包分發儲存庫,用于存放第二子系統根據已識別的軟件組件創建的至少一個軟件產品數據包。3.根據權利要求1的集成數據處理系統,其特征在于,第三子系統按照第二子系統分配給這至少一個軟件產品數據包的至少一個角色,把這至少一個軟件產品數據包分發到目標軟件產品執行單元,這些單元屬于至少一個環境。4.根據權利要求1的集成數據處理系統,其特征在于,第一子系統管理著中心儲存庫中的一個存儲器,其中存放著要提交的軟件產品的軟件組件。5.根據權利要求1的集成數據處理系統,進一步包括一個第四子系統,用于在要提交的軟件產品的所識別軟件組件之間,執行軟件代碼組件的一個連編過程,第四子系統在中心儲存庫中存放著連編過程的結果。6.根據權利要求1的集成數據處理系統,進一步包括一個第五子系統,用于管理對已經提交的軟件產品施加改變的一個過程。7.根據權利要求1的集成數據處理系統,進一步包括一個第六子系統,用于記錄在軟件產品的提交期間,集成數據處理系統的第一至第五子系統中至少一個提供的信息。8.一種方法,用于在一個網絡環境中把軟件產品提交到目標軟件產品執行單元,包括以下步驟在中心儲存庫中存放至少一種軟件產品的軟件組件;在中心儲存庫中存放的軟件組件中,識別要提交的軟件產品的軟件組件;創建至少一個軟件產品數據包,它包括至少一個已識別的軟件組件;向目標軟件產品執行單元分發軟件產品數據包,并在該處安裝軟件產品數據包。9.根據權利要求8的方法,其特征在于,創建至少一個軟件產品數據包的步驟,包括把一種角色標志分配給至少一個軟件產品數據包,該角色標志用于標識將要向其分發軟件產品的目標軟件產品執行單元,以及按照角色標志分發這至少一個軟件產品數據包。10.根據權利要求8的方法,進一步包括在軟件分發儲存庫中存放至少一個軟件產品數據包的步驟。11.根據權利要求10的方法,進一步包括一個步驟對中心儲存庫中存儲的將要提交的軟件產品的已識別源代碼組件進行連編,并且把連編結果存放在中心儲存庫中。全文摘要一種軟件提交過程包括以下子過程配置管理和版本控制、改變和問題管理、連編、打包以及分發和安裝。該過程由一個集成管理系統實施,它包括一個配置管理子系統、一個改變和問題管理子系統、一個連編子系統、一個打包子系統、一個分發子系統以及一個跟蹤子系統。這些子系統經過了整合,以便在軟件的整個生命周期中進行管理,從開發直至安裝在生產中。跟蹤子系統沿著該過程的所有步驟,從其它子系統對提交狀態有關的信息進行獲取和匯總。文檔編號G06F9/445GK1547700SQ02816743公開日2004年11月17日申請日期2002年8月13日優先權日2001年8月30日發明者瑪麗亞-瓊斯·阿布魯·巴圖瑞恩,馬里亞諾·戴澤·佛納德茲,伊格納斯奧·佛納德茲·岡薩雷茲,伊利薩·馬丁·嘉里卓,馬丁嘉里卓,斯奧佛納德茲岡薩雷茲,瑪麗亞-瓊斯阿布魯巴圖瑞恩,諾戴澤佛納德茲申請人:國際商業機器公司