專利名稱:構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件技術(shù)領(lǐng)域中的一種構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,尤其是一種通過可視化工具在線訪問軟件體系結(jié)構(gòu)來直觀、真實(shí)地反映系統(tǒng)運(yùn)行狀態(tài)的方法。
背景技術(shù):
軟件維護(hù)是指在軟件產(chǎn)品已經(jīng)交付使用之后,對軟件進(jìn)行修改的過程,從而改正軟件中的錯(cuò)誤,提高軟件的性能,或是保證軟件系統(tǒng)能持續(xù)地與用戶環(huán)境相適應(yīng)。軟件的一些本質(zhì)特性,如軟件需求的變化性和不斷增加的復(fù)雜性等,決定了在軟件生命周期中,軟件維護(hù)是不可避免的重要階段。特別是在Internet成為主流軟件運(yùn)行環(huán)境之后,網(wǎng)絡(luò)的開放性和動態(tài)性使得客戶需求與硬件資源不斷地變化,其結(jié)果是不可預(yù)測的軟件維護(hù)不斷增多。據(jù)統(tǒng)計(jì),軟件維護(hù)的成本占到整個(gè)軟件成本的50%-80%,并且該成本還在不斷增大。軟件維護(hù)高成本的主要原因之一在于維護(hù)人員難以理解被維護(hù)的軟件。因此,如何提供一種直觀、易于理解的手段描述或表示軟件系統(tǒng),成為簡化軟件維護(hù)、降低維護(hù)成本的關(guān)鍵。進(jìn)一步地,軟件開始被看作一種服務(wù)(Software As Service),這意味著軟件系統(tǒng)24(小時(shí))×7(天)的不間斷運(yùn)行成為重要需求,因此,軟件系統(tǒng)的描述或表示還應(yīng)該準(zhǔn)確、真實(shí)地反映系統(tǒng)運(yùn)行狀態(tài)。軟件體系結(jié)構(gòu)是對軟件總體結(jié)構(gòu)的描述,即對其計(jì)算元素和它們之間交互的高層組織的描述。其主要目標(biāo)就是幫助開發(fā)人員更好地理解軟件系統(tǒng),顯然,軟件體系結(jié)構(gòu)是一種描述被維護(hù)系統(tǒng)的有效手段。但目前的軟件體系結(jié)構(gòu)主要作用于軟件開發(fā)階段。而在維護(hù)階段,主要利用程序理解技術(shù)來分析源代碼然后構(gòu)造軟件體系結(jié)構(gòu)。這種軟件體系結(jié)構(gòu)無法捕捉系統(tǒng)的運(yùn)行狀態(tài)和行為。對于構(gòu)件化軟件系統(tǒng)而言,構(gòu)件往往在市場上購得,無法獲取源代碼,因此,現(xiàn)有的利用軟件體系結(jié)構(gòu)描述被維護(hù)系統(tǒng)的方法能力不足,適用性較差。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的不足,提出一種構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,在軟件系統(tǒng)運(yùn)行時(shí)將軟件體系結(jié)構(gòu)可視化,直觀、真實(shí)地反映系統(tǒng)的結(jié)構(gòu)及當(dāng)前的運(yùn)行狀態(tài),輔助維護(hù)人員理解系統(tǒng),利用軟件的維護(hù),降低成本。
該發(fā)明的核心思想就是將開發(fā)階段構(gòu)造的軟件體系結(jié)構(gòu)在運(yùn)行階段予以實(shí)例化,通過構(gòu)件運(yùn)行支撐平臺建立與構(gòu)件化軟件系統(tǒng)的映射,從而真實(shí)、直觀地反映系統(tǒng)的結(jié)構(gòu)及當(dāng)前的運(yùn)行狀態(tài)。
本發(fā)明通過以下的技術(shù)方案實(shí)現(xiàn)一種構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,其特征在于,包括如下步驟步驟一、構(gòu)件運(yùn)行支撐平臺裝載構(gòu)件化軟件系統(tǒng),獲取并實(shí)例化構(gòu)件化軟件系統(tǒng)的軟件體系結(jié)構(gòu);步驟二、建立軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射關(guān)系;步驟三、實(shí)時(shí)訪問與顯示軟件體系結(jié)構(gòu)。
所述步驟一中構(gòu)件運(yùn)行支撐平臺裝載構(gòu)件化軟件系統(tǒng)的過程為將應(yīng)用以軟件包的形式部署到構(gòu)件運(yùn)行支撐平臺,然后實(shí)例化構(gòu)件,為構(gòu)件分配互操作資源,建立構(gòu)件與系統(tǒng)服務(wù)之間的關(guān)聯(lián)。
所述步驟一中獲取并實(shí)例化構(gòu)件化軟件系統(tǒng)運(yùn)行狀態(tài)的軟件體系結(jié)構(gòu)的過程為根據(jù)當(dāng)前系統(tǒng)中的構(gòu)件實(shí)例及其之間的關(guān)系對現(xiàn)有的軟件體系結(jié)構(gòu)描述語言元素進(jìn)行擴(kuò)展,增加構(gòu)件運(yùn)行實(shí)例Component元素、連接子運(yùn)行實(shí)例Connector元素和系統(tǒng)服務(wù)Constraint元素,其中,所述的Constraint元素用于表示作用于體系結(jié)構(gòu)、構(gòu)件以及連接子的一組約束,Component元素包括其類型ComponentType元素與實(shí)現(xiàn)體ComponentImplementation元素,Connector元素包括客戶端代理ClientSideProxy元素、服務(wù)端代理ServerSideProxy元素以及與上述代理之間建立的連接Connection元素,然后實(shí)例化上述所述的元素。
構(gòu)件化軟件系統(tǒng)的構(gòu)件往往運(yùn)行在構(gòu)件運(yùn)行支撐平臺提供的容器中。該平臺同時(shí)還提供構(gòu)件之間互操作機(jī)制以及其它公共服務(wù),如安全、事務(wù)、命名、持久、日志等等。容器利用這些機(jī)制將各個(gè)構(gòu)件連接起來并保障作用于構(gòu)件的各種系統(tǒng)約束。因此,構(gòu)件化軟件系統(tǒng)運(yùn)行狀態(tài)的軟件體系結(jié)構(gòu)表示的關(guān)鍵在于與容器建立緊密關(guān)聯(lián)。步驟二中建立軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射關(guān)系的過程為步驟21、掃描應(yīng)用中的所有構(gòu)件實(shí)例,同時(shí)記錄每個(gè)構(gòu)件的依賴關(guān)系,創(chuàng)建相應(yīng)構(gòu)件實(shí)例的Component描述對象;所述的Component描述對象用于實(shí)時(shí)收集運(yùn)行構(gòu)件的容器的運(yùn)行狀態(tài);步驟22、獲取每個(gè)構(gòu)件實(shí)例的接口信息,創(chuàng)建ComponentType描述對象;獲取每個(gè)構(gòu)件實(shí)例的實(shí)現(xiàn)體信息,創(chuàng)建ComponentImplementation描述對象;獲取每個(gè)構(gòu)件實(shí)例使用的系統(tǒng)服務(wù)信息,創(chuàng)建Constraint描述對象;所述的ComponentType描述對象、ComponentImplementation描述對象用于實(shí)時(shí)收集構(gòu)件的運(yùn)行狀態(tài);所述的Constraint描述對象用于實(shí)時(shí)收集每個(gè)構(gòu)件實(shí)例使用的系統(tǒng)服務(wù)信息;步驟23、根據(jù)所有構(gòu)件之間的依賴關(guān)系創(chuàng)建Connector描述對象,判斷構(gòu)件之間是否存在一到多個(gè)的依賴關(guān)系,如果存在,創(chuàng)建一個(gè)Connector描述對象以及相應(yīng)的C1ientSideProxy描述對象和ServersideProxy,并根據(jù)作為客戶端的構(gòu)件采用的互操作機(jī)制創(chuàng)建Connection描述對象;所述的Connector描述對象、ClientSideProxy和ServerSideProxy描述對象、Connection描述對象用于實(shí)時(shí)收集互操作機(jī)制的運(yùn)行狀態(tài)。
所述的在線訪問和顯示通過可視化工具完成,可視化工具通過應(yīng)用編程接口在線訪問軟件體系結(jié)構(gòu),實(shí)時(shí)顯示運(yùn)行系統(tǒng)的軟件體系結(jié)構(gòu)。
本發(fā)明所述的方法可以實(shí)時(shí)地顯示運(yùn)行系統(tǒng)的軟件體系結(jié)構(gòu),通過軟件體系結(jié)構(gòu)表示處于運(yùn)行狀態(tài)的構(gòu)件化軟件系統(tǒng),為維護(hù)人員提供了一個(gè)直觀、易于理解的系統(tǒng)視圖,基于該視圖,不僅能夠獲取被維護(hù)系統(tǒng)設(shè)計(jì)時(shí)的信息,準(zhǔn)確把握設(shè)計(jì)人員的意圖,還能利用現(xiàn)有的軟件體系結(jié)構(gòu)相關(guān)技術(shù)完成系統(tǒng)的推理和驗(yàn)證,從而降低軟件維護(hù)的復(fù)雜度和難度,節(jié)省軟件維護(hù)的成本。
圖1為本發(fā)明的流程圖;圖2為本發(fā)明一實(shí)施例的實(shí)現(xiàn)流程圖;圖3為本發(fā)明建立的構(gòu)件化軟件系統(tǒng)運(yùn)行狀態(tài)的軟件體系結(jié)構(gòu)的描述語言示意圖。
具體實(shí)施例方式
以下通過具體的實(shí)施例和附圖對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)的說明。
該發(fā)明的核心思想就是將開發(fā)階段構(gòu)造的軟件體系結(jié)構(gòu)在運(yùn)行階段予以實(shí)例化,通過構(gòu)件運(yùn)行支撐平臺建立與構(gòu)件化軟件系統(tǒng)的映射,從而真實(shí)、直觀地反映系統(tǒng)的結(jié)構(gòu)及當(dāng)前的運(yùn)行狀態(tài)。
參見圖1,首先,構(gòu)件運(yùn)行支撐平臺裝載構(gòu)件化軟件系統(tǒng),獲取并實(shí)例化構(gòu)件化軟件系統(tǒng)運(yùn)行狀態(tài)的軟件體系結(jié)構(gòu);然后,建立軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射關(guān)系,實(shí)時(shí)訪問與顯示軟件體系結(jié)構(gòu)。
以下參照圖2以基于J2EE應(yīng)用服務(wù)器的實(shí)現(xiàn)為例,進(jìn)行詳細(xì)的說明。
應(yīng)用服務(wù)器是目前典型的構(gòu)件運(yùn)行支撐平臺,被認(rèn)為是繼操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)之后,隨著計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境的發(fā)展而出現(xiàn)的里程碑式的系統(tǒng)軟件。J2EE應(yīng)用以軟件包的形式部署到應(yīng)用服務(wù)器,設(shè)計(jì)階段的軟件體系結(jié)構(gòu)可隨軟件包一起發(fā)布,供應(yīng)用服務(wù)器在實(shí)例化運(yùn)行系統(tǒng)的軟件體系結(jié)構(gòu)時(shí)使用。在應(yīng)用服務(wù)器內(nèi)部,部署的應(yīng)用和系統(tǒng)服務(wù)都是構(gòu)件,由應(yīng)用服務(wù)器統(tǒng)一創(chuàng)建與維護(hù)。
當(dāng)一個(gè)應(yīng)用部署到應(yīng)用服務(wù)器時(shí),應(yīng)用服務(wù)器根據(jù)軟件包中的部署描述符裝載并實(shí)例化構(gòu)件,為構(gòu)件分配所需的互操作資源,然后建立構(gòu)件與系統(tǒng)服務(wù)之間的關(guān)聯(lián)以滿足指定的約束。在完成這些應(yīng)用服務(wù)器部署應(yīng)用的標(biāo)準(zhǔn)步驟后,獲取應(yīng)用的軟件體系結(jié)構(gòu)并實(shí)例化。
如果無法直接從應(yīng)用服務(wù)器中獲取軟件體系結(jié)構(gòu),則根據(jù)當(dāng)前系統(tǒng)中的構(gòu)件實(shí)例及其之間的關(guān)系得到軟件體系結(jié)構(gòu)描述語言(ArchitectureDescription Language,簡稱ADL)元素,所述的軟件體系結(jié)構(gòu)描述語言元素如圖3所示,包括構(gòu)件類型ComponentType元素、連接子類型ConnectorType元素,配置信息Configuration元素,同配置信息Configuration元素相關(guān)的構(gòu)件實(shí)例componentInstance元素,連接子實(shí)例ConnectorInstance元素,并在上述元素的基礎(chǔ)上擴(kuò)展以下的元素構(gòu)件運(yùn)行實(shí)例Component元素、連接子運(yùn)行實(shí)例Connector元素和系統(tǒng)服務(wù)Constraint元素,其中,所述的Constraint元素用于表示作用于體系結(jié)構(gòu)、構(gòu)件以及連接子的一組約束,Component元素包括其類型ComponentType元素與實(shí)現(xiàn)體ComponentImplementation元素,Connector元素包括客戶端代理ClientSideProxy元素、服務(wù)端代理ServerSideProxy元素以及與上述代理之間建立的連接Connection元素。
其中,所述的構(gòu)件類型ComponentType元素、連接子類型ConnectorType元素,配置信息Configuration元素,同配置信息Configuration元素相關(guān)的構(gòu)件實(shí)例componentInstance元素,連接子實(shí)例ConnectorInstance元素為設(shè)計(jì)階段的軟件結(jié)構(gòu)體系的描述語言元素,構(gòu)件運(yùn)行實(shí)例Component元素、連接子運(yùn)行實(shí)例Connector元素和用于表示作用于體系結(jié)構(gòu)、構(gòu)件以及連接子的一組約束——系統(tǒng)服務(wù)Constraint元素及實(shí)現(xiàn)體ComponentImplementation元素,客戶端代理ClientSideproxy元素、服務(wù)端代理ServerSideProxy元素以及與這些代理之間建立的連接Connection元素為特定于運(yùn)行系統(tǒng)軟件結(jié)構(gòu)的描述語言元素。
某些特定于運(yùn)行系統(tǒng)軟件結(jié)構(gòu)的描述語言元素與設(shè)計(jì)階段的軟件結(jié)構(gòu)體系的描述語言元素具有繼承關(guān)系,如Component元素繼承自ComponentInstance、Connector元素繼承自ConnectorInstance、RuntimeSoftwareArchitecture繼承自Configuration,因?yàn)榍罢咝枰獙笳哌M(jìn)行更詳細(xì)的描述,而沒有繼承關(guān)系的擴(kuò)展元素,如Constraint、ComponentImplementation、ClientSideProxy、ServerSideProxy、Connection,則是描述那些系統(tǒng)運(yùn)行階段特有的狀態(tài),以確保真實(shí)、準(zhǔn)確反映系統(tǒng)的運(yùn)行狀態(tài)。本質(zhì)上,運(yùn)行系統(tǒng)的軟件體系結(jié)構(gòu)是對設(shè)計(jì)階段軟件體系結(jié)構(gòu)的精化。
而后建立軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射關(guān)系,通過可視化工具進(jìn)行在線訪問與顯示。
需要說明的是,如果設(shè)計(jì)階段的軟件體系結(jié)構(gòu)隨同應(yīng)用軟件包一起部署到構(gòu)件運(yùn)行支撐平臺,則可直接利用設(shè)計(jì)階段的軟件體系結(jié)構(gòu)實(shí)例化上述的各個(gè)元素;如果無法獲取設(shè)計(jì)階段的軟件體系結(jié)構(gòu),則根據(jù)當(dāng)前系統(tǒng)中的構(gòu)件實(shí)例及其之間的關(guān)系在線重建軟件體系結(jié)構(gòu)并實(shí)例化上述的各個(gè)元素。其中,前者簡單快捷,后者相對復(fù)雜耗時(shí),主要適用于設(shè)計(jì)階段軟件體系結(jié)構(gòu)無法獲得的情況。
軟件體系結(jié)構(gòu)實(shí)例化之后,進(jìn)行軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射。首先,掃描應(yīng)用中的所有構(gòu)件實(shí)例,并創(chuàng)建相應(yīng)的Component描述對象,對于每個(gè)構(gòu)件實(shí)例,獲取其接口信息以創(chuàng)建ComponentType描述對象,獲取其實(shí)現(xiàn)體信息以創(chuàng)建ComponentImplementation描述對象,獲取其使用的系統(tǒng)服務(wù)的信息以創(chuàng)建Constraint描述對象,此時(shí),還要記錄每個(gè)構(gòu)件依賴的其它構(gòu)件;接下來,根據(jù)所有構(gòu)件之間的依賴關(guān)系創(chuàng)建Connector描述對象,若兩個(gè)構(gòu)件之間存在一到多個(gè)依賴,則創(chuàng)建一個(gè)Connector描述對象以及相應(yīng)的ClientSideProxy和ServerSideProxy描述對象,并根據(jù)作為客戶端的構(gòu)件采用的互操作機(jī)制創(chuàng)建Connection描述對象。至此,完整建立了軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射。最后,將該軟件體系結(jié)構(gòu)與軟件包中保留的設(shè)計(jì)階段的軟件體系結(jié)構(gòu)進(jìn)行一致性檢查,并將后者記錄的語義信息轉(zhuǎn)存到前者的相應(yīng)元素中。如果利用設(shè)計(jì)階段的軟件體系結(jié)構(gòu)直接實(shí)例化運(yùn)行系統(tǒng)的軟件體系結(jié)構(gòu),則只需將前者描述的各個(gè)元素實(shí)例化成對象,然后查找到相應(yīng)的運(yùn)行實(shí)體并建立關(guān)聯(lián)即可。
完成運(yùn)行系統(tǒng)軟件體系結(jié)構(gòu)的映射后,即可通過編程接口和圖形界面在線察看系統(tǒng)的運(yùn)行狀態(tài),并進(jìn)行軟件維護(hù)。其中的圖形界面與開發(fā)階段使用的軟件體系結(jié)構(gòu)建模工具類似,往往采用簡單的方框和連線等圖元表示。
由于現(xiàn)有的軟件系統(tǒng)在運(yùn)行時(shí),人們無法看到用于描述軟件總體結(jié)構(gòu)的軟件體系結(jié)構(gòu),而是通過分析構(gòu)件的源代碼后構(gòu)造軟件體系結(jié)構(gòu),而且,這種軟件體系結(jié)構(gòu)表示的是一種靜態(tài)的軟件結(jié)構(gòu),無法動態(tài)的表現(xiàn)出系統(tǒng)運(yùn)行的狀態(tài)和行為,本發(fā)明通過擴(kuò)展軟件體系結(jié)構(gòu)的描述語言,在系統(tǒng)運(yùn)行時(shí)構(gòu)造特定于運(yùn)行系統(tǒng)的軟件體系結(jié)構(gòu),該軟件體系結(jié)構(gòu)實(shí)例化后通過可視化工具以視圖的方式顯示,不但直觀、真實(shí)地反映系統(tǒng)的結(jié)構(gòu),還可以反映系統(tǒng)當(dāng)前的運(yùn)行狀態(tài),便于輔助維護(hù)人員理解系統(tǒng),利于軟件的維護(hù),降低成本。
最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,其特征在于,包括如下步驟步驟一、構(gòu)件運(yùn)行支撐平臺裝載構(gòu)件化軟件系統(tǒng),獲取并實(shí)例化構(gòu)件化軟件系統(tǒng)的軟件體系結(jié)構(gòu);步驟二、建立軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射關(guān)系;步驟三、實(shí)時(shí)訪問與顯示軟件體系結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,其特征在于,所述步驟一中構(gòu)件運(yùn)行支撐平臺裝載構(gòu)件化軟件系統(tǒng)的過程為將應(yīng)用以軟件包的形式部署到構(gòu)件運(yùn)行支撐平臺,然后實(shí)例化構(gòu)件,為構(gòu)件分配互操作資源,建立構(gòu)件與系統(tǒng)服務(wù)之間的關(guān)聯(lián)。
3.根據(jù)權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,其特征在于,所述步驟一中獲取并實(shí)例化構(gòu)件化軟件系統(tǒng)的軟件體系結(jié)構(gòu)的過程為根據(jù)當(dāng)前系統(tǒng)中的構(gòu)件實(shí)例及其之間的關(guān)系對現(xiàn)有的軟件體系結(jié)構(gòu)描述語言元素進(jìn)行擴(kuò)展,增加構(gòu)件運(yùn)行實(shí)例(Component)元素、連接子運(yùn)行實(shí)例(Connector)元素和系統(tǒng)服務(wù)(Constraint)元素,其中,所述的系統(tǒng)服務(wù)(Constraint)元素用于表示作用于體系結(jié)構(gòu)、構(gòu)件以及連接子的一組約束,構(gòu)件運(yùn)行實(shí)例(Component)元素包括構(gòu)件運(yùn)行實(shí)例類型(ComponentType)元素與實(shí)現(xiàn)體(ComponentImplementation)元素,連接子運(yùn)行實(shí)例(Connector)元素包括客戶端代理(ClientSideProxy)元素、服務(wù)端代理(ServerSideProxy)元素以及與上述代理之間建立的連接(Connection)元素,然后實(shí)例化上述所述的元素。
4.根據(jù)權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,其特征在于步驟二中建立軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射關(guān)系的過程為步驟21、掃描應(yīng)用中的所有構(gòu)件實(shí)例,同時(shí)記錄每個(gè)構(gòu)件的依賴關(guān)系,創(chuàng)建相應(yīng)構(gòu)件實(shí)例的構(gòu)件運(yùn)行實(shí)例(Component)描述對象;所述的構(gòu)件運(yùn)行實(shí)例(Component)描述對象用于實(shí)時(shí)收集運(yùn)行構(gòu)件的容器的運(yùn)行狀態(tài);步驟22、獲取每個(gè)構(gòu)件實(shí)例的接口信息,創(chuàng)建構(gòu)件運(yùn)行實(shí)例類型(ComponentType)描述對象;獲取每個(gè)構(gòu)件實(shí)例的實(shí)現(xiàn)體信息,創(chuàng)建實(shí)現(xiàn)體(ComponentImplementation)描述對象;獲取每個(gè)構(gòu)件實(shí)例使用的系統(tǒng)服務(wù)信息,創(chuàng)建系統(tǒng)服務(wù)(Constraint)描述對象;所述的構(gòu)件運(yùn)行實(shí)例類型(ComponentType)描述對象、實(shí)現(xiàn)體(ComponentImplementation)描述對象用于實(shí)時(shí)收集構(gòu)件的運(yùn)行狀態(tài);所述的系統(tǒng)服務(wù)(Constraint)描述對象用于實(shí)時(shí)收集每個(gè)構(gòu)件實(shí)例使用的系統(tǒng)服務(wù)信息;步驟23、根據(jù)所有構(gòu)件之間的依賴關(guān)系創(chuàng)建連接子運(yùn)行實(shí)例(Connector)描述對象,判斷構(gòu)件之間是否存在一到多個(gè)的依賴關(guān)系,如果存在,創(chuàng)建一個(gè)接子運(yùn)行實(shí)例(Connector)描述對象以及相應(yīng)的客戶端代理(ClientSideProxy)描述對象和服務(wù)端代理(ServerSideProxy)描述對象,并根據(jù)作為客戶端的構(gòu)件采用的互操作機(jī)制創(chuàng)建連接(Connection)描述對象;所述的連接子運(yùn)行實(shí)例(Connector)描述對象、客戶端代理(ClientSideProxy)和服務(wù)端代理(ServerSideProxy)描述對象、連接(Connection)描述對象用于實(shí)時(shí)收集互操作機(jī)制的運(yùn)行狀態(tài)。
5.根據(jù)權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,其特征在于,所述的實(shí)時(shí)訪問和顯示通過可視化工具完成,可視化工具通過應(yīng)用編程接口在線訪問軟件體系結(jié)構(gòu),實(shí)時(shí)顯示運(yùn)行系統(tǒng)的軟件體系結(jié)構(gòu)。
全文摘要
本發(fā)明公開了一種構(gòu)件化軟件系統(tǒng)的運(yùn)行狀態(tài)結(jié)構(gòu)化顯示方法,首先,構(gòu)件運(yùn)行支撐平臺裝載構(gòu)件化軟件系統(tǒng),獲取并實(shí)例化構(gòu)件化軟件系統(tǒng)的軟件體系結(jié)構(gòu);建立軟件體系結(jié)構(gòu)與運(yùn)行系統(tǒng)之間的映射關(guān)系;實(shí)時(shí)訪問與顯示軟件體系結(jié)構(gòu)。本發(fā)明通過軟件體系結(jié)構(gòu)表示處于運(yùn)行狀態(tài)的構(gòu)件化軟件系統(tǒng),為維護(hù)人員提供了一個(gè)直觀的、易于理解的系統(tǒng)視圖,基于該視圖,不僅能夠獲取被維護(hù)系統(tǒng)設(shè)計(jì)時(shí)的信息,準(zhǔn)確把握設(shè)計(jì)人員的意圖,還能利用現(xiàn)有的軟件體系結(jié)構(gòu)相關(guān)技術(shù)完成系統(tǒng)的推理和驗(yàn)證,從而降低軟件維護(hù)的復(fù)雜度和難度,節(jié)省軟件維護(hù)的成本。
文檔編號G06F9/44GK1588309SQ20041006241
公開日2005年3月2日 申請日期2004年7月2日 優(yōu)先權(quán)日2004年7月2日
發(fā)明者梅宏, 黃罡, 曹東剛, 劉天成 申請人:北京大學(xué)