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

一種網(wǎng)絡(luò)環(huán)境下根據(jù)用戶需求生成軟件服務(wù)的方法

文檔序號:6554832閱讀:214來源:國知局
專利名稱:一種網(wǎng)絡(luò)環(huán)境下根據(jù)用戶需求生成軟件服務(wù)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種為用戶提供軟件服務(wù)的方法,尤其是在網(wǎng)絡(luò)環(huán)境中,根據(jù)用戶需求,利用軟件構(gòu)件,動態(tài)地生成服務(wù)程序,完成用戶服務(wù)按需定制的方法。
背景技術(shù)
在傳統(tǒng)的軟件行業(yè)中,一套軟件經(jīng)過軟件開發(fā)者的設(shè)計(jì)、開發(fā)和測試后,以統(tǒng)一的版本向全社會發(fā)布。一套軟件的用戶可能很多,每個(gè)人的需求不盡相同,但是軟件開發(fā)者不可能考慮到用戶的個(gè)人需求而為每個(gè)用戶都提供不同的軟件版本。于是,有的用戶可能只為使用其中一個(gè)很小的功能而不得不去購買包含此功能的龐大軟件系統(tǒng),從而造成資金和資源的浪費(fèi);還有一些用戶難于找到包含所需功能集合及相應(yīng)處理流程的軟件,只能利用不同的軟件完成不同的功能,然后手動按照流程進(jìn)行處理,從而難以有效地利用軟件達(dá)成工作的高效。這種情況還有很多,概括來說就是軟件用戶難以根據(jù)自己的需求來獲得定制的軟件服務(wù),在本發(fā)明中,凡是能夠獨(dú)立完成某項(xiàng)功能的應(yīng)用程序邏輯單元統(tǒng)稱為軟件服務(wù)。
隨著Internet(英特網(wǎng))及其相關(guān)技術(shù)的發(fā)展,到了今天,網(wǎng)絡(luò)已經(jīng)成為人們生活中重要的工具,通過網(wǎng)絡(luò)按需獲取信息和網(wǎng)絡(luò)服務(wù)成為人們工作、學(xué)習(xí)的一部分,于是人們也渴望能夠通過網(wǎng)絡(luò)獲取按需定制的軟件服務(wù)。同時(shí),現(xiàn)代社會工作節(jié)奏的加快也進(jìn)一步加劇了對按需化軟件服務(wù)的需求。于是,網(wǎng)絡(luò)成為按需軟件服務(wù)的最合適的提供途徑。
在網(wǎng)絡(luò)上,現(xiàn)在已經(jīng)有一些服務(wù)提供商開始嘗試為用戶提供軟件服務(wù),現(xiàn)有的方式主要有兩種。一.直接為用戶提供軟件模塊的下載服務(wù),用戶可以將下載到的模塊集成到自己的程序中去。像ComponentSource(http//www.componentsource.com)就是這其中比較具有代表性的網(wǎng)站之一,它將軟件模塊進(jìn)行分類組織,然后提供給用戶下載。二.為用戶提供調(diào)用軟件服務(wù)的接口,從而使用戶可以通過Internet來直接使用軟件服務(wù)或者將其集成到客戶端軟件中。例如搜索引擎Google(http//www.google.com)為用戶提供了搜索服務(wù)的Web API,用戶可以通過注冊來直接使用或進(jìn)行軟件集成。這幾種軟件服務(wù)在不同的時(shí)間、面向不同的用戶時(shí),提供的是同樣的功能和接口,并沒有根據(jù)用戶的需求進(jìn)行軟件服務(wù)的個(gè)性化和按需化定制。
面對用戶的這種需求,軟件開發(fā)技術(shù)有了相應(yīng)的發(fā)展。軟件構(gòu)件和軟件復(fù)用技術(shù)的出現(xiàn),為軟件開發(fā)提供了一種新的模式。軟件構(gòu)件是指具有相對獨(dú)立功能的可復(fù)用的軟件模塊,是軟件復(fù)用中常用的模塊形式,通過軟件構(gòu)件可以實(shí)現(xiàn)靈活的功能組合,同時(shí)達(dá)到軟件復(fù)用的目的。為了支持軟件復(fù)用,一些組織和公司紛紛推出自己的構(gòu)件技術(shù)標(biāo)準(zhǔn)。目前,有影響的構(gòu)件標(biāo)準(zhǔn)有SUN公司提出的Java構(gòu)件標(biāo)準(zhǔn)JavaBeans、EJB,微軟公司提出的COM、DCOM標(biāo)準(zhǔn)以及對象管理組織(OMG)CORBA3.0規(guī)范中的CCM標(biāo)準(zhǔn)。Internet上出現(xiàn)了很多遵循上述構(gòu)件技術(shù)標(biāo)準(zhǔn)的專門的構(gòu)件庫。
目前業(yè)界對構(gòu)件的研究主要集中在構(gòu)件的描述、建模以及構(gòu)件的組裝技術(shù)上。清華大學(xué)網(wǎng)絡(luò)系統(tǒng)組提出了一種基于多種異構(gòu)構(gòu)件的統(tǒng)一封裝和組裝技術(shù)(參見本申請人的專利ZL200410030654.5和CN200510105239.6),該技術(shù)將各種類型構(gòu)件以統(tǒng)一構(gòu)件封裝件結(jié)構(gòu)(簡稱UCDL)進(jìn)行封裝,通過設(shè)置構(gòu)件庫計(jì)算機(jī)、構(gòu)件目錄庫計(jì)算機(jī)以及構(gòu)件組裝計(jì)算機(jī)來完成構(gòu)件組裝。其中,構(gòu)件庫計(jì)算機(jī)存儲的是各種軟件構(gòu)件,構(gòu)件目錄庫計(jì)算機(jī)存儲的是構(gòu)件庫計(jì)算機(jī)中每個(gè)構(gòu)件的UCDL封裝件,構(gòu)件組裝計(jì)算機(jī)提供構(gòu)件組裝平臺。構(gòu)件目錄庫計(jì)算機(jī)提供根據(jù)構(gòu)件ID進(jìn)行構(gòu)件信息提取和構(gòu)件封裝件下載的服務(wù)。當(dāng)進(jìn)行構(gòu)件組裝時(shí),首先需要從構(gòu)件目錄庫計(jì)算機(jī)上提取構(gòu)件封裝件并下載到構(gòu)件組裝計(jì)算機(jī)上,然后在構(gòu)件組裝計(jì)算機(jī)上完成構(gòu)件組裝。利用這種技術(shù),我們可以更為靈活地對各種類型的構(gòu)件進(jìn)行組裝。
在目前的實(shí)際應(yīng)用中,軟件構(gòu)件主要被軟件開發(fā)人員用在軟件開發(fā)過程中來完成軟件系統(tǒng)的開發(fā),并沒有面向終端用戶需求的軟件定制技術(shù)方案出現(xiàn)。

發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)不能提供面向終端用戶的按需軟件服務(wù)的問題,本發(fā)明基于UCDL封裝件及其組裝技術(shù),提出了一種在網(wǎng)絡(luò)環(huán)境下,根據(jù)用戶需求生成軟件服務(wù)的方法。
本發(fā)明的特征在于,所述方法依次含有以下步驟步驟(1)服務(wù)器端的需求分析計(jì)算機(jī)上定義一個(gè)構(gòu)件領(lǐng)域信息表,其中,構(gòu)件是指具有相對獨(dú)立功能的可復(fù)用的軟件模塊;構(gòu)件領(lǐng)域是指共享某種功能的軟件系統(tǒng)或應(yīng)用程序的集合,以下簡稱領(lǐng)域,每個(gè)構(gòu)件都有自己所屬的構(gòu)件領(lǐng)域;所述的構(gòu)件領(lǐng)域信息表包括領(lǐng)域ID、功能關(guān)鍵詞表、領(lǐng)域功能描述和領(lǐng)域構(gòu)件信息,其中,領(lǐng)域ID是構(gòu)件領(lǐng)域的唯一標(biāo)識,用于組織、存儲和提取構(gòu)件領(lǐng)域,功能關(guān)鍵詞表存放的是代表該領(lǐng)域所具有的功能的關(guān)鍵詞,其中包括了一個(gè)功能近義詞表,存放的是與功能關(guān)鍵詞意思相近的近義詞;領(lǐng)域功能描述用于提供該領(lǐng)域功能特性和描述;領(lǐng)域構(gòu)件信息則存放屬于該領(lǐng)域的構(gòu)件的ID,用于提取屬于該領(lǐng)域的構(gòu)件的信息及構(gòu)件封裝件;步驟(2)客戶端啟動,用戶以功能關(guān)鍵詞為首選,功能近義詞為次選的文字形式向客戶端輸入對所需要的軟件服務(wù)的描述,客戶端把該軟件服務(wù)的描述發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī);步驟(3)需求分析計(jì)算機(jī)按以下步驟對接收到的用戶軟件需求的文本進(jìn)行領(lǐng)域分析,提取出與用戶需要的功能相關(guān)的構(gòu)件領(lǐng)域步驟(3.1)若用戶需求文本已經(jīng)為空,轉(zhuǎn)步驟(3.7);否則,找出構(gòu)件領(lǐng)域信息表中功能關(guān)鍵詞和功能近義詞中最長的一個(gè)詞的字長;步驟(3.2)比較步驟(3)中所述的用戶需求文本字長與步驟(3.1)中所述的功能關(guān)鍵詞和功能近義詞中最長的一個(gè)詞的字長若整個(gè)用戶需求文本的字長大,則從用戶需求文本中從開頭順序按步驟(3.1)中所述的字長取出一個(gè)字符串;若整個(gè)用戶需求文本的字長等于或小于功能關(guān)鍵詞和功能近義詞中最長的一個(gè)詞的字長,則把整個(gè)用戶需求文本作為字符串取出;步驟(3.3)遍歷構(gòu)件領(lǐng)域信息,把當(dāng)前取出的字符串與功能關(guān)鍵詞比較,當(dāng)與某一功能關(guān)鍵詞匹配時(shí),則結(jié)束遍歷,轉(zhuǎn)到步驟(3.5);否則,轉(zhuǎn)下一步驟;步驟(3.4)遍歷構(gòu)件領(lǐng)域信息,把當(dāng)前取出的字符串與功能近義詞比較,當(dāng)與某一功能近義詞匹配時(shí),則結(jié)束遍歷,轉(zhuǎn)入下一步驟;否則轉(zhuǎn)步驟(3.6);步驟(3.5)把匹配成功的功能關(guān)鍵詞或功能近義詞所在的構(gòu)件領(lǐng)域的標(biāo)識ID作為用戶需求構(gòu)件領(lǐng)域之一,選入一個(gè)保存領(lǐng)域ID的詞表記錄下來,然后,從用戶需求文本開頭去掉匹配成功的字符串,轉(zhuǎn)入步驟(3.1);步驟(3.6)步驟(3.4)中所述的匹配不成功,則判斷步驟(3.1)中所述字長是否為1若為1則把用戶需求文本中的開頭第一個(gè)字去掉,轉(zhuǎn)入步驟(3.1);若非1則把當(dāng)前取出的字符串的末尾一個(gè)字去掉,轉(zhuǎn)步驟(3.3);步驟(3.7)用戶需求文本為空,得到了用戶軟件服務(wù)的所需領(lǐng)域的ID,領(lǐng)域分析結(jié)束;步驟(4)如果提取到的構(gòu)件領(lǐng)域?yàn)榭眨瑒t說明沒有與用戶軟件服務(wù)需求相關(guān)的構(gòu)件領(lǐng)域,這時(shí)需求分析計(jì)算機(jī)向客戶端的用戶發(fā)送失敗信息,用戶需要重新輸入軟件服務(wù)的需求描述;如果構(gòu)件領(lǐng)域提取成功,需求分析計(jì)算機(jī)根據(jù)步驟(3)得到的用戶需求相關(guān)的領(lǐng)域ID,提取各個(gè)領(lǐng)域包含的領(lǐng)域構(gòu)件ID,并從所述服務(wù)器端的構(gòu)件目錄庫計(jì)算機(jī)中提取對應(yīng)的至少包括構(gòu)件功能描述和構(gòu)件接口信息在內(nèi)的構(gòu)件封裝件信息,并把這些信息以所在領(lǐng)域分類組織后,作為備選的構(gòu)件信息發(fā)送給客戶端;
步驟(5)客戶端在接收到步驟(4)所述的備選的構(gòu)件封裝件信息后,以領(lǐng)域?yàn)槟夸洶迅髯灶I(lǐng)域的構(gòu)件封裝件信息展現(xiàn)給用戶,以使用戶據(jù)此選擇自己所需要的構(gòu)件封裝件;步驟(6)在用戶對構(gòu)件進(jìn)行了選擇之后,客戶端把用戶選擇的構(gòu)件以圖形化的方式顯示出來,對構(gòu)件的調(diào)用接口和被調(diào)用接口以不同的圖標(biāo)來表示;在用戶根據(jù)需要對構(gòu)件的接口進(jìn)行連接之后,客戶端再對用戶的方案進(jìn)行連接的有效性驗(yàn)證,形成XML格式的構(gòu)件連接方案發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī);步驟(7)需求分析計(jì)算機(jī)把步驟(6)所述的構(gòu)件連接方案發(fā)送給所述服務(wù)器端的構(gòu)件組裝計(jì)算機(jī);步驟(8)該構(gòu)件組裝計(jì)算機(jī)對收到的用戶構(gòu)件連接方案進(jìn)行分析,從所述服務(wù)器端的構(gòu)件目錄庫計(jì)算機(jī)中提取相關(guān)的組裝用的構(gòu)件封裝件,生成XML文檔格式的組裝運(yùn)行腳本,解釋該運(yùn)行腳本,再利用提取到的構(gòu)件封裝件進(jìn)行構(gòu)件組裝,生成用戶需要的服務(wù)程序;步驟(9)該構(gòu)件組裝計(jì)算機(jī)再把組裝好的程序通過所述需求分析計(jì)算機(jī)發(fā)送給客戶端的用戶;采用本發(fā)明中從用戶需求到軟件構(gòu)件的映射,進(jìn)而生成軟件服務(wù)的方法,用戶可以根據(jù)自己需要的程序功能來進(jìn)行軟件服務(wù)的定制,與傳統(tǒng)的軟件發(fā)布和使用方式相比,提高了軟件服務(wù)的靈活性和面向用戶的個(gè)性化程度,方便了用戶的使用。


圖1是本發(fā)明的系統(tǒng)示意2是本發(fā)明中構(gòu)件領(lǐng)域信息表示結(jié)構(gòu)3是本發(fā)明中用戶需求領(lǐng)域分析流程4是本發(fā)明中客戶端和服務(wù)器端的交互流程5是本發(fā)明中構(gòu)件圖形化示意6是本發(fā)明中構(gòu)件連接方案XML文檔結(jié)構(gòu)圖7是本發(fā)明中組裝運(yùn)行腳本的文檔結(jié)構(gòu)圖具體實(shí)施方式
下面參照圖示對本發(fā)明進(jìn)行詳細(xì)說明。
圖1描述了本發(fā)明的系統(tǒng)示意圖,有多個(gè)客戶端102和提供按需軟件服務(wù)的服務(wù)器端103共同位于一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)101上。其中,服務(wù)器端包括需求分析計(jì)算機(jī)104和組裝系統(tǒng)105,組裝系統(tǒng)又分為構(gòu)件組裝計(jì)算機(jī)106、構(gòu)件目錄庫計(jì)算機(jī)107和構(gòu)件庫計(jì)算機(jī)108。用戶通過客戶端和服務(wù)器端的需求分析計(jì)算機(jī)進(jìn)行交互109來獲取按需的軟件服務(wù)(詳見圖4說明)。在這個(gè)過程中,需求分析計(jì)算機(jī)104根據(jù)對用戶需求的分析向構(gòu)件目錄庫計(jì)算機(jī)107發(fā)送相關(guān)構(gòu)件信息請求110,在收到構(gòu)件信息111后將其作為備選構(gòu)件信息返回給用戶進(jìn)行選擇。用戶對構(gòu)件選擇后,在客戶端上以圖形化的方式對選擇的構(gòu)件進(jìn)行連接,將結(jié)果發(fā)回給需求分析計(jì)算機(jī)104,需求分析計(jì)算機(jī)將用戶構(gòu)件選擇和連接方案112發(fā)送給構(gòu)件組裝計(jì)算機(jī)106,構(gòu)件組裝計(jì)算機(jī)106向構(gòu)件目錄庫計(jì)算機(jī)107發(fā)送構(gòu)件封裝件提取請求113,構(gòu)件目錄庫計(jì)算機(jī)107將請求的構(gòu)件封裝件集合114返回給構(gòu)件組裝計(jì)算機(jī)106進(jìn)行組裝,組裝完成后將組裝結(jié)果115返回給需求分析計(jì)算機(jī)104,然后通過交互109將組裝結(jié)果返回給用戶。其中構(gòu)件目錄庫中的封裝件集合是通過向構(gòu)件庫計(jì)算機(jī)提取構(gòu)件信息116并進(jìn)行UCDL封裝后組織形成的。
本發(fā)明根據(jù)用戶需求生成軟件服務(wù)的方法主要包括以下步驟1.客戶端啟動,用戶以文字的形式輸入對所需要的軟件服務(wù)的描述,客戶端將其發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī);2.需求分析計(jì)算機(jī)對接收到的用戶需求進(jìn)行分析,確定與用戶需求相關(guān)的構(gòu)件領(lǐng)域;3.需求分析計(jì)算機(jī)從構(gòu)件領(lǐng)域信息表中提取上一步確定的構(gòu)件領(lǐng)域中包含的構(gòu)件信息,從目錄庫計(jì)算機(jī)中提取這些構(gòu)件的構(gòu)件封裝件信息,和構(gòu)件領(lǐng)域信息一起發(fā)送給客戶端;4.客戶端將構(gòu)件封裝件信息以所屬的構(gòu)件領(lǐng)域分類呈現(xiàn)給用戶,用戶根據(jù)相關(guān)信息對自己需要的構(gòu)件進(jìn)行選擇;5.客戶端將用戶選擇的構(gòu)件以圖形化方式顯示出來,對構(gòu)件的調(diào)用接口和被調(diào)用接口以不同的圖標(biāo)表示;用戶根據(jù)需要對構(gòu)件的接口進(jìn)行連接;客戶端對用戶的連接方案進(jìn)行連接的有效性驗(yàn)證后,形成XML格式的連接方案發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī);6.需求分析計(jì)算機(jī)將用戶的構(gòu)件連接方案發(fā)送給構(gòu)件組裝計(jì)算機(jī);構(gòu)件組裝計(jì)算機(jī)對用戶連接方案進(jìn)行分析,從構(gòu)件目錄庫計(jì)算機(jī)提取相關(guān)的構(gòu)件封裝件,生成組裝的運(yùn)行腳本,此處的運(yùn)行腳本采用XML文檔的格式;構(gòu)件組裝計(jì)算機(jī)解釋執(zhí)行運(yùn)行腳本,利用提取到的構(gòu)件封裝件進(jìn)行構(gòu)件組裝,生成用戶需要的服務(wù)程序;7.構(gòu)件組裝計(jì)算機(jī)將組裝好的程序通過需求分析計(jì)算機(jī)發(fā)送給客戶端用戶;上述根據(jù)用戶需求生成軟件服務(wù)的步驟1中,用戶以文字的形式輸入自己的服務(wù)需求時(shí),盡量圍繞需求的功能描述展開,用功能上的關(guān)鍵詞來表述需求可以使得服務(wù)器端對需求的分析更為準(zhǔn)確;用戶需求輸入確認(rèn)之后,客戶端將用戶的需求文本以明文的方式、基于TCP/IP協(xié)議發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī)。
上述根據(jù)用戶需求生成軟件服務(wù)的方法中,步驟2-3完成了用戶需求與軟件構(gòu)件的映射。本發(fā)明中使用構(gòu)件領(lǐng)域作為用戶需求和軟件構(gòu)件之間的橋梁,這里的領(lǐng)域是指共享某種功能特性的系統(tǒng)或應(yīng)用程序的集合,每個(gè)構(gòu)件都有一個(gè)適用的領(lǐng)域,我們稱之為構(gòu)件領(lǐng)域。在本發(fā)明中,通過對用戶需求的分析,首先提取出用戶功能需求相關(guān)的領(lǐng)域,然后根據(jù)領(lǐng)域信息來提取對應(yīng)的軟件構(gòu)件。
下面介紹用戶需求到軟件構(gòu)件映射的具體實(shí)施方法。
如圖2,本發(fā)明定義了一個(gè)構(gòu)件領(lǐng)域信息表示結(jié)構(gòu)圖,構(gòu)件領(lǐng)域信息用來輔助完成用戶需求領(lǐng)域的分析。每個(gè)構(gòu)件領(lǐng)域描述201包括領(lǐng)域ID 202,功能關(guān)鍵詞表203,領(lǐng)域功能描述204和領(lǐng)域構(gòu)件信息205三部分。領(lǐng)域ID是每個(gè)構(gòu)件領(lǐng)域的唯一標(biāo)識,用來組織、存儲和提取構(gòu)件領(lǐng)域。功能關(guān)鍵詞表中存放的是代表該領(lǐng)域具有功能的關(guān)鍵詞,其中包括一個(gè)功能近義詞表205,存放的是與功能關(guān)鍵詞意義相近的那些詞,通常來說,每個(gè)領(lǐng)域的功能關(guān)鍵詞有3-5個(gè),而每個(gè)功能關(guān)鍵詞又有多個(gè)近義詞。領(lǐng)域功能描述用來提供該領(lǐng)域功能特性的描述。領(lǐng)域構(gòu)件信息存放屬于該領(lǐng)域的構(gòu)件的ID,主要用來提取屬于該領(lǐng)域的構(gòu)件的信息及構(gòu)件封裝件。每個(gè)構(gòu)件領(lǐng)域都通過圖2中的結(jié)構(gòu)進(jìn)行描述,所有構(gòu)件領(lǐng)域的領(lǐng)域信息形成一個(gè)領(lǐng)域信息表存放在服務(wù)器端的需求分析計(jì)算機(jī)上。
領(lǐng)域信息表是隨著構(gòu)件的增多而逐步建立起來的,最初只是一個(gè)空的表,每當(dāng)構(gòu)件目錄庫計(jì)算機(jī)中增加一個(gè)構(gòu)件封裝件時(shí),就需要根據(jù)構(gòu)件的功能在需求分析計(jì)算機(jī)上其所屬的領(lǐng)域信息中將構(gòu)件ID添加到領(lǐng)域構(gòu)件信息,并根據(jù)需要添加功能關(guān)鍵詞和功能近義詞;如果需求分析計(jì)算機(jī)上沒有相關(guān)的領(lǐng)域,則需要在領(lǐng)域信息表中新建相關(guān)領(lǐng)域,并設(shè)置領(lǐng)域描述中的各項(xiàng)值。
利用構(gòu)件領(lǐng)域信息表,我們就可以進(jìn)行用戶需求的領(lǐng)域分析,圖3給出了步驟2中用戶需求領(lǐng)域分析流程圖,主要包括如下步驟2.1.接收到用戶需求301后,設(shè)置一個(gè)字符串變量String來保存用戶需求,并新建一個(gè)詞表Domain來記錄要提取的構(gòu)件領(lǐng)域(用領(lǐng)域ID表示)302;2.2.設(shè)置一個(gè)整數(shù)Len,將其賦值為領(lǐng)域信息表里所有領(lǐng)域的功能關(guān)鍵詞和功能近義詞中長度最長的詞的字長303;2.3.從String中順序(從左到右)取出長度為Len的字符串賦給Str,如果String的長度小于或等于Len,則將String賦給Str 304;這時(shí)判斷Str是否為空305,如果Str為空,則完成了對用戶需求字符串的領(lǐng)域分析,所得到的領(lǐng)域詞表Domain即為用戶需求的領(lǐng)域分析結(jié)果306,分析結(jié)束;如果Str不為空,則進(jìn)入下一步;
2.4.遍歷構(gòu)件領(lǐng)域信息表,將Str與每個(gè)領(lǐng)域的功能關(guān)鍵詞進(jìn)行匹配,如果Str與某個(gè)功能關(guān)鍵詞相同則遍歷終止,否則就要遍歷完所有領(lǐng)域才能終止307,遍歷終止時(shí)的情況決定下一步的動作308;如果Str與功能關(guān)鍵詞匹配成功,則認(rèn)為Str所代表的功能的構(gòu)件領(lǐng)域已經(jīng)找到,轉(zhuǎn)步驟6;如果匹配不成功,則進(jìn)入下一步;2.5.重新遍歷構(gòu)件領(lǐng)域信息表,進(jìn)一步將Str與各領(lǐng)域的功能近義詞進(jìn)行匹配,與第一次遍歷類似,當(dāng)匹配成功或遍歷完所有領(lǐng)域后遍歷終止310;然后根據(jù)遍歷終止時(shí)的情況來進(jìn)行下一步動作311,如果Str與功能近義詞匹配不成功則轉(zhuǎn)步驟7;如果匹配成功則進(jìn)入下一步;2.6.將匹配成功的功能關(guān)鍵詞或功能近義詞對應(yīng)的構(gòu)件領(lǐng)域的領(lǐng)域ID添加到Domain中,將String中的Str部分去掉,然后將Str置為空309,轉(zhuǎn)步驟2;2.7.步驟312判斷當(dāng)前的Len值是否等于1,如果Len值為1,則將String開頭第一個(gè)字去掉,置Str為空313,轉(zhuǎn)步驟2;如果Len值不是1,則將Len值減去1314,這里減1是為了縮短字長,與更小字長的功能關(guān)鍵詞或功能近義詞進(jìn)行匹配,轉(zhuǎn)步驟3;經(jīng)過上面的分析過程,Domain里就保存了一系列構(gòu)件領(lǐng)域的領(lǐng)域ID,這些領(lǐng)域ID代表的就是與用戶需求相對應(yīng)的構(gòu)件領(lǐng)域。
用戶領(lǐng)域分析主要是一個(gè)將用戶需求字符串中順序預(yù)取的可能的功能詞匯與領(lǐng)域功能關(guān)鍵詞和功能近義詞進(jìn)行匹配的過程。由于每個(gè)領(lǐng)域的功能關(guān)鍵詞比較少,而功能近義詞比較多,所以我們設(shè)計(jì)的是一個(gè)兩層匹配的方法,當(dāng)與功能關(guān)鍵詞匹配成功時(shí)就可退出當(dāng)前的匹配過程,如果不成功則需要進(jìn)行與功能近義詞的匹配。功能關(guān)鍵詞是表示構(gòu)件領(lǐng)域功能的最準(zhǔn)確和通用的詞,多數(shù)情況下,用戶都是用功能關(guān)鍵詞來表述自己的需求,通過兩層匹配的方法,可以減少與功能近義詞的不必要的比較,從而提高分析的效率。
通過用戶需求領(lǐng)域分析我們得到了用戶功能相關(guān)的構(gòu)件領(lǐng)域,然后對這些構(gòu)件領(lǐng)域的領(lǐng)域描述進(jìn)行遍歷,就可以提取到這些構(gòu)件領(lǐng)域中的領(lǐng)域構(gòu)件信息,這里的構(gòu)件信息指的是構(gòu)件ID。構(gòu)件ID可以唯一地對構(gòu)件進(jìn)行標(biāo)識,從而我們可以根據(jù)構(gòu)件ID提取出相關(guān)的構(gòu)件封裝件信息,實(shí)現(xiàn)用戶需求到軟件構(gòu)件的映射,完成了上述根據(jù)用戶需求生成軟件服務(wù)方法的步驟2-3的任務(wù)。
上述根據(jù)用戶需求生成軟件服務(wù)方法的步驟4-7中,通過和用戶交互完成了利用提取到的構(gòu)件生成用戶需要的軟件服務(wù)的過程,下面結(jié)合圖4中描述的本發(fā)明的整個(gè)工作流程介紹一下生成軟件服務(wù)的具體實(shí)施方法。
用戶通過客戶端410和服務(wù)器端420的交互來獲取按需軟件服務(wù)的。用戶啟動客戶端411,開始進(jìn)行按需軟件服務(wù)的定制。
首先,在客戶端上,用戶以文字形式輸入所需要的軟件服務(wù)的描述,客戶端將其發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī)412。需求分析計(jì)算機(jī)對用戶需求進(jìn)行領(lǐng)域分析,提取出與用戶功能需求相關(guān)的構(gòu)件領(lǐng)域421;如果提取到的構(gòu)件領(lǐng)域?yàn)榭?,則說明沒有與用戶需求相關(guān)的領(lǐng)域,向客戶端的用戶發(fā)送失敗信息,用戶需要重新輸入自己的服務(wù)需求;如果提取成功,則從這些領(lǐng)域中得到相關(guān)構(gòu)件的構(gòu)件ID。
需求分析計(jì)算機(jī)利用獲取到的構(gòu)件ID從構(gòu)件目錄庫計(jì)算機(jī)中提取對應(yīng)的構(gòu)件封裝件信息,這里的構(gòu)件封裝件信息主要包括構(gòu)件功能描述、構(gòu)件接口信息等,需求分析計(jì)算機(jī)將這些構(gòu)件封裝件信息以所屬的領(lǐng)域進(jìn)行分類組織后,作為被選構(gòu)件信息發(fā)送給客戶端423。
客戶端在接收到備選的構(gòu)件封裝件信息后,以領(lǐng)域?yàn)槟夸泴⒏髯灶I(lǐng)域內(nèi)的構(gòu)件封裝件信息展現(xiàn)給用戶,其中每個(gè)構(gòu)件都有一個(gè)選擇框,從而使用戶可以根據(jù)構(gòu)件功能描述和接口信息來選擇自己需要的構(gòu)件封裝件413,如果用戶對構(gòu)件提取結(jié)果不滿意,則可以返回到上一步重新進(jìn)行服務(wù)需求的輸入412。
在用戶對構(gòu)件進(jìn)行了選擇之后,客戶端將用戶選擇的構(gòu)件以圖形化的方式顯示出來,并給用戶提供手動連接構(gòu)件的功能。這里,客戶端根據(jù)用戶選擇的構(gòu)件封裝件的信息,特別是構(gòu)件封裝件的接口信息,將所要組裝的構(gòu)件及其外部接口以圖形化的方式顯示出來,如圖5所示,一個(gè)構(gòu)件501可以用一個(gè)圖標(biāo)來顯示,圖標(biāo)上標(biāo)有構(gòu)件名稱,圖標(biāo)內(nèi)部從上到下順序列出構(gòu)件的各個(gè)接口,并根據(jù)接口信息并在各個(gè)接口旁標(biāo)上連接線和連接點(diǎn),入口(即被其它構(gòu)件調(diào)用的接口)502和出口(即調(diào)用其它構(gòu)件的接口)503的連接線和連接點(diǎn)采用不同的標(biāo)注方式。
當(dāng)把用戶選擇的各個(gè)構(gòu)件圖形化顯示出來之后,用戶就可以根據(jù)自己的需要,通過查看相關(guān)構(gòu)件的接口信息來連接各個(gè)構(gòu)件,連接的起點(diǎn)必須是某構(gòu)件出口的連接點(diǎn),終點(diǎn)是另一構(gòu)件入口的連接點(diǎn),用戶通過拖拽的方式進(jìn)行連接,客戶端根據(jù)用戶的操作自動為用戶生成連接線。
當(dāng)用戶完成所有連接后,客戶端對用戶的連接方式進(jìn)行有效性驗(yàn)證,這里的驗(yàn)證主要是根據(jù)構(gòu)件的接口信息來判斷接口之間的調(diào)用交互關(guān)系是否正確,如果不正確則向用戶提示錯誤,用戶需要重新進(jìn)行連接的調(diào)整,如果驗(yàn)證通過,客戶端則將用戶連接的方案發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī)414。
用戶的構(gòu)件連接方案是一個(gè)描述各個(gè)構(gòu)件接口之間連接關(guān)系的XML文檔,圖6給出了這個(gè)XML文檔的結(jié)構(gòu),文檔以<Scheme>為起始的根元素601,每個(gè)連接方案涉及多個(gè)構(gòu)件元素<Component>602,每個(gè)構(gòu)件有標(biāo)識自己ID的元素<Id>603和各接口信息的元素<Interface>604,接口信息元素包括若干個(gè)構(gòu)件接口元素<Unit>605,接口元素中包括了各構(gòu)件接口的描述和連接關(guān)系,其中,<UnitId>是接口的ID,用來標(biāo)識一個(gè)構(gòu)件的接口606,<UnitType>表示一個(gè)接口的類型(包括只是出口、只是入口和既是出口又是入口三種類型)607,<PreCom_Unit>表示與這個(gè)入口相連的構(gòu)件和接口(出口)608,用“構(gòu)件ID接口ID”來表示,當(dāng)此接口不是入口時(shí),此項(xiàng)為空,<PostCom_Unit>表示與這個(gè)出口相連的構(gòu)件和接口(入口)609,同樣用“構(gòu)件ID接口ID”來表示,當(dāng)此接口不是出口時(shí),此項(xiàng)為空。通過上面的XML文檔,服務(wù)器端可以很清楚地了解用戶的連接方案。
需求分析計(jì)算機(jī)在收到用戶的構(gòu)件連接方案后轉(zhuǎn)交給構(gòu)件組裝計(jì)算機(jī)424,構(gòu)件組裝計(jì)算機(jī)對用戶的構(gòu)件連接方案進(jìn)行分析,從中提取連接方案中涉及的構(gòu)件信息以及各個(gè)構(gòu)件之間連接調(diào)用的關(guān)系,并根據(jù)需要向構(gòu)件目錄庫計(jì)算機(jī)提取構(gòu)件封裝件和相關(guān)信息,生成本連接方案的組裝運(yùn)行腳本。
組裝運(yùn)行腳本采用XML文檔的方式,結(jié)構(gòu)如圖7所示,<RunningScript>701是文檔的根元素,腳本由構(gòu)件聲明<Components>部分702、接口連接關(guān)系定義<Links>部分707和構(gòu)件組裝控制流程定義<Process>部分711組成,每一部分的內(nèi)容如下1.構(gòu)件聲明<Components>部分描述所要組裝的構(gòu)件,包括對構(gòu)件ID、構(gòu)件名以及構(gòu)件接口的描述,由一個(gè)或者多個(gè)<Component>元素703組成,每個(gè)<Component>元素標(biāo)識一個(gè)構(gòu)件的聲明,它包括id和name兩個(gè)屬性,前者是構(gòu)件的唯一標(biāo)識符,后者是構(gòu)件的名稱,在整個(gè)運(yùn)行腳本中可以使用該名稱引用此構(gòu)件,<Component>元素包含一個(gè)或者多個(gè)<Interface>元素704,<Interface>元素用來標(biāo)識該構(gòu)件在組裝過程中要使用的接口聲明,其子元素<InputMessage>705和<OutputMessage>706則分別標(biāo)識了該接口的輸入輸出消息;2.接口連接關(guān)系定義<Links>部分定義在組裝過程中不同構(gòu)件接口之間的連接關(guān)系,包含一個(gè)或者多個(gè)<Link>元素708,每個(gè)<Link>元素定義了兩個(gè)構(gòu)件之間接口的連接關(guān)系,<Link>元素的name屬性是組裝腳本中對該Link引用的唯一標(biāo)識符,每個(gè)<Link>元素下,進(jìn)一步包含<From>709和<To>710兩個(gè)子元素,分別代表該連接的源接口(出口)和目的接口(入口),每個(gè)接口用“構(gòu)件ID接口ID”形式表示。
3.構(gòu)件組裝控制流程定義<Process>部分定義構(gòu)件的執(zhí)行流程,描述構(gòu)件之間的組裝關(guān)系,包括對構(gòu)件調(diào)用順序以及構(gòu)件之間的消息傳遞的定義,<Process>包括了表示各種基本活動的子元素,其中,<Sequence>元素712定義一組構(gòu)件之間的順序執(zhí)行關(guān)系,一個(gè)Sequence控制流包含一個(gè)或多個(gè)按順序執(zhí)行的活動,在組裝過程中,腳本解釋程序?qū)凑者@些活動在<Sequence>元素中被列出的先后次序,順序執(zhí)行這些活動;<Invoke>元素713調(diào)用某個(gè)構(gòu)件的接口,<Invoke>元素的兩個(gè)屬性Component和Interface,進(jìn)一步指明所要調(diào)用的構(gòu)件ID和該構(gòu)件的接口ID;<Switch>元素714定義一組構(gòu)件之間的分支執(zhí)行關(guān)系,一個(gè)Switch控制流包含一個(gè)或多個(gè)Case元素組成的有序列表和最后可選的Otherwise分支,每個(gè)Case元素定義了一個(gè)條件分支,執(zhí)行時(shí)以Case分支的出現(xiàn)順序來測試其條件,被滿足的第一個(gè)分支被執(zhí)行,如果所有Case分支的條件都未被滿足,那么Otherwise分支將被執(zhí)行,當(dāng)被選的分支中的活動完成后,該Switch控制流結(jié)束;<While>元素715定義一組構(gòu)件之間的循環(huán)執(zhí)行關(guān)系,While控制流實(shí)現(xiàn)循環(huán),它執(zhí)行重復(fù)的活動直到給出的While循環(huán)條件不再被滿足;<Flow>元素716定義一組構(gòu)件之間的并發(fā)執(zhí)行關(guān)系,F(xiàn)low控制流中所包含的一組活動在運(yùn)行腳本解釋執(zhí)行中將被并發(fā)地執(zhí)行,當(dāng)Flow中的所有活動完成時(shí),F(xiàn)low控制流結(jié)束;從用戶的構(gòu)件連接方案到組裝運(yùn)行腳本轉(zhuǎn)化過程如下1.寫入運(yùn)行腳本文件的頭信息。
2.遍歷用戶構(gòu)件連接方案文檔,根據(jù)構(gòu)件ID從構(gòu)件目錄庫計(jì)算機(jī)上提取每個(gè)需要的構(gòu)件封裝件信息;3.從提取到的封裝件信息中抽取構(gòu)件名和接口類型描述等信息,按照運(yùn)行腳本所定義的結(jié)構(gòu),填入到運(yùn)行腳本中構(gòu)件聲明所對應(yīng)的文檔結(jié)構(gòu)<Components>元素中;4.根據(jù)用戶構(gòu)件組裝方案中構(gòu)件接口的連接關(guān)系,將有連接的構(gòu)件接口之間的連接方式按照運(yùn)行腳本所定義的結(jié)構(gòu),填入到對應(yīng)<Links>元素中;5.對所有構(gòu)件之間的連接關(guān)系進(jìn)行分析,將每個(gè)并行執(zhí)行的構(gòu)件組合作為并發(fā)活動獨(dú)立出來,將它們分別填入<Flow>元素中,將每個(gè)并行的構(gòu)件組合在用戶組裝方案中分別作為獨(dú)立的構(gòu)件模塊對待;6.對經(jīng)過上述步驟處理過的構(gòu)件連接方案進(jìn)行分析,將每個(gè)分支執(zhí)行的構(gòu)件組合作為分支選擇執(zhí)行活動獨(dú)立出來,將它們分別填入<Switch>元素中,并根據(jù)提取到的詳細(xì)的接口信息確定其中每個(gè)分支活動對應(yīng)的條件,將每個(gè)分支選擇的構(gòu)件組合在用戶組裝方案中分別作為獨(dú)立的構(gòu)件模塊對待;7.對經(jīng)過上述步驟處理過的構(gòu)件連接方案進(jìn)行分析,將每個(gè)循環(huán)執(zhí)行的構(gòu)件組合作為循環(huán)執(zhí)行活動獨(dú)立出來,將它們分別填入<While>元素中,并根據(jù)提取到的詳細(xì)的接口信息確定循環(huán)的條件,將每個(gè)循環(huán)的構(gòu)件組合在用戶組裝方案中分別作為獨(dú)立的構(gòu)件模塊對待;8.經(jīng)過上述步驟處理之后,用戶方案中剩下的應(yīng)該就是一組順序執(zhí)行的序列,將序列中每個(gè)構(gòu)件相應(yīng)接口的調(diào)用都轉(zhuǎn)化為一個(gè)invoke活動,將它們填入<Sequence>元素中;通過上面的步驟生成了進(jìn)行構(gòu)件組裝的運(yùn)行腳本,接下來就可以對運(yùn)行腳本進(jìn)行解釋執(zhí)行,來完成構(gòu)件的組裝,運(yùn)行腳本的解釋執(zhí)行過程如下1.解釋執(zhí)行構(gòu)件聲明部分。通過<Component>元素中指定的構(gòu)件id和name屬性,將每個(gè)涉及到的構(gòu)件封裝件進(jìn)行初始和實(shí)例化,根據(jù)<Interface>元素中定義的構(gòu)件接口描述對相關(guān)的接口函數(shù)進(jìn)行聲明和初始化,并寫入相關(guān)的程序文件。
2.解釋執(zhí)行構(gòu)件接口連接關(guān)系部分。<Link>標(biāo)簽中定義了構(gòu)件之間接口的連接關(guān)系,解釋程序首先檢查接口連接關(guān)系是否匹配,接口之間的消息定義是否一致等。如果檢查通過,運(yùn)行腳本解釋程序?qū)⒚總€(gè)連接關(guān)系記錄為一個(gè)調(diào)用,轉(zhuǎn)入下一步解釋。否則,運(yùn)行腳本的解釋過程中斷,返回組裝錯誤信息。
3.解釋執(zhí)行構(gòu)件組裝控制流程部分。<Process>元素通過定義構(gòu)件的執(zhí)行流程來定義構(gòu)件連接執(zhí)行的順序關(guān)系,在解釋過程中,對不同的執(zhí)行順序采用不同的程序語句來組織,每個(gè)連接關(guān)系用上一步中的相應(yīng)調(diào)用來表示,在這個(gè)過程中,要根據(jù)構(gòu)件接口信息為不同類型的接口參數(shù)生成相應(yīng)的變量,用變量在接口之間傳遞消息。
4.對生成的程序文件進(jìn)行編譯和鏈接,生成用戶需要的程序。在這個(gè)過程中如果發(fā)生錯誤,則組裝過程中斷,返回組裝錯誤信息。
通過用戶構(gòu)件連接方案的分析以及運(yùn)行腳本的生成和解釋執(zhí)行就完成了用戶所需服務(wù)的組裝過程425,上述的組裝腳本生成、解釋執(zhí)行的技術(shù)細(xì)節(jié)參見本申請人的專利ZL200410030654.5和CN200510105239.6。
如果用戶服務(wù)組裝成功,則構(gòu)件組裝計(jì)算機(jī)將組裝好的程序發(fā)送給需求分析計(jì)算機(jī),如果組裝失敗,則向其發(fā)送組裝失敗信息426。相應(yīng)地,需求分析計(jì)算機(jī)將收到的程序或組裝失敗信息發(fā)送給客戶端427。
用戶通過客戶端來查看從需求分析計(jì)算機(jī)返回的組裝結(jié)果,如果組裝失敗,則用戶可以返回上一步重新進(jìn)行構(gòu)件的連接,也可以選擇退出;如果組裝成功,用戶可以對獲取到的程序進(jìn)行試用,如果需要對程序進(jìn)行調(diào)整則可以返回上一步調(diào)整構(gòu)件的連接方案,如果對獲取到的程序滿意,則可以成功退出415。
以上描述的具體實(shí)施方式
只是對本發(fā)明進(jìn)行示例,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明實(shí)質(zhì)性思想的基礎(chǔ)上進(jìn)行各種修改和改進(jìn)后得到的技術(shù)方案,均視為在本發(fā)明的范圍之內(nèi)。本發(fā)明適當(dāng)?shù)姆秶詸?quán)利要求書為準(zhǔn)進(jìn)行確定。
權(quán)利要求
1.一種網(wǎng)絡(luò)環(huán)境下根據(jù)用戶需求生成軟件服務(wù)的方法,其特征在于,所述方法依次含有以下步驟步驟(1)服務(wù)器端的需求分析計(jì)算機(jī)上定義一個(gè)構(gòu)件領(lǐng)域信息表,其中,構(gòu)件是指具有相對獨(dú)立功能的可復(fù)用的軟件模塊;構(gòu)件領(lǐng)域是指共享某種功能的軟件系統(tǒng)或應(yīng)用程序的集合,以下簡稱領(lǐng)域,每個(gè)構(gòu)件都有自己所屬的構(gòu)件領(lǐng)域;所述的構(gòu)件領(lǐng)域信息表包括領(lǐng)域ID、功能關(guān)鍵詞表、領(lǐng)域功能描述和領(lǐng)域構(gòu)件信息,其中,領(lǐng)域ID是構(gòu)件領(lǐng)域的唯一標(biāo)識,用于組織、存儲和提取構(gòu)件領(lǐng)域,功能關(guān)鍵詞表存放的是代表該領(lǐng)域所具有的功能的關(guān)鍵詞,其中包括了一個(gè)功能近義詞表,存放的是與功能關(guān)鍵詞意思相近的近義詞;領(lǐng)域功能描述用于提供該領(lǐng)域功能特性和描述;領(lǐng)域構(gòu)件信息則存放屬于該領(lǐng)域的構(gòu)件的ID,用于提取屬于該領(lǐng)域的構(gòu)件的信息及構(gòu)件封裝件;步驟(2)客戶端啟動,用戶以功能關(guān)鍵詞為首選,功能近義詞為次選的文字形式向客戶端輸入對所需要的軟件服務(wù)的描述,客戶端把該軟件服務(wù)的描述發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī);步驟(3)需求分析計(jì)算機(jī)按以下步驟對接收到的用戶軟件需求的文本進(jìn)行領(lǐng)域分析,提取出與用戶需要的功能相關(guān)的構(gòu)件領(lǐng)域步驟(3.1)若用戶需求文本已經(jīng)為空,轉(zhuǎn)步驟(3.7);否則,找出構(gòu)件領(lǐng)域信息表中功能關(guān)鍵詞和功能近義詞中最長的一個(gè)詞的字長;步驟(3.2)比較步驟(3)中所述的用戶需求文本字長與步驟(3.1)中所述的功能關(guān)鍵詞和功能近義詞中最長的一個(gè)詞的字長若整個(gè)用戶需求文本的字長大,則從用戶需求文本中從開頭順序按步驟(3.1)中所述的字長取出一個(gè)字符串;若整個(gè)用戶需求文本的字長等于或小于功能關(guān)鍵詞和功能近義詞中最長的一個(gè)詞的字長,則把整個(gè)用戶需求文本作為字符串取出;步驟(3.3)遍歷構(gòu)件領(lǐng)域信息,把當(dāng)前取出的字符串與功能關(guān)鍵詞比較,當(dāng)與某一功能關(guān)鍵詞匹配時(shí),則結(jié)束遍歷,轉(zhuǎn)到步驟(3.5);否則,轉(zhuǎn)下一步驟;步驟(3.4)遍歷構(gòu)件領(lǐng)域信息,把當(dāng)前取出的字符串與功能近義詞比較,當(dāng)與某一功能近義詞匹配時(shí),則結(jié)束遍歷,轉(zhuǎn)入下一步驟;否則轉(zhuǎn)步驟(3.6);步驟(3.5)把匹配成功的功能關(guān)鍵詞或功能近義詞所在的構(gòu)件領(lǐng)域的標(biāo)識ID作為用戶需求構(gòu)件領(lǐng)域之一,選入一個(gè)保存領(lǐng)域ID的詞表記錄下來,然后,從用戶需求文本開頭去掉匹配成功的字符串,轉(zhuǎn)入步驟(3.1);步驟(3.6)步驟(3.4)中所述的匹配不成功,則判斷步驟(3.1)中所述的字長是否為1若為1則把用戶需求文本中的開頭第一個(gè)字去掉,轉(zhuǎn)入步驟(3.1);若非1則把當(dāng)前取出的字符串的末尾一個(gè)字去掉,轉(zhuǎn)步驟(3.3);步驟(3.7)用戶需求文本為空,得到了用戶軟件服務(wù)的所需領(lǐng)域的ID,領(lǐng)域分析結(jié)束;步驟(4)如果提取到的構(gòu)件領(lǐng)域?yàn)榭?,則說明沒有與用戶軟件服務(wù)需求相關(guān)的構(gòu)件領(lǐng)域,這時(shí)需求分析計(jì)算機(jī)向客戶端的用戶發(fā)送失敗信息,用戶需要重新輸入軟件服務(wù)的需求描述;如果構(gòu)件領(lǐng)域提取成功,需求分析計(jì)算機(jī)根據(jù)步驟(3)得到的用戶需求相關(guān)的領(lǐng)域ID,提取各個(gè)領(lǐng)域包含的領(lǐng)域構(gòu)件ID,并從所述服務(wù)器端的構(gòu)件目錄庫計(jì)算機(jī)中提取對應(yīng)的至少包括構(gòu)件功能描述和構(gòu)件接口信息在內(nèi)的構(gòu)件封裝件信息,并把這些信息以所在領(lǐng)域分類組織后,作為備選的構(gòu)件信息發(fā)送給客戶端;步驟(5)客戶端在接收到步驟(4)所述的備選的構(gòu)件封裝件信息后,以領(lǐng)域?yàn)槟夸洶迅髯灶I(lǐng)域的構(gòu)件封裝件信息展現(xiàn)給用戶,以使用戶據(jù)此選擇自己所需要的構(gòu)件封裝件;步驟(6)在用戶對構(gòu)件進(jìn)行了選擇之后,客戶端把用戶選擇的構(gòu)件以圖形化的方式顯示出來,對構(gòu)件的調(diào)用接口和被調(diào)用接口以不同的圖標(biāo)來表示;在用戶根據(jù)需要對構(gòu)件的接口進(jìn)行連接之后,客戶端再對用戶的方案進(jìn)行連接的有效性驗(yàn)證,形成XML格式的構(gòu)件連接方案發(fā)送給服務(wù)器端的需求分析計(jì)算機(jī);步驟(7)需求分析計(jì)算機(jī)把步驟(6)所述的構(gòu)件連接方案發(fā)送給所述服務(wù)器端的構(gòu)件組裝計(jì)算機(jī);步驟(8)該構(gòu)件組裝計(jì)算機(jī)對收到的用戶構(gòu)件連接方案進(jìn)行分析,從所述服務(wù)器端的構(gòu)件目錄庫計(jì)算機(jī)中提取相關(guān)的組裝用的構(gòu)件封裝件,生成XML文檔格式的組裝運(yùn)行腳本,解釋該運(yùn)行腳本,再利用提取到的構(gòu)件封裝件進(jìn)行構(gòu)件組裝,生成用戶需要的服務(wù)程序;步驟(9)該構(gòu)件組裝計(jì)算機(jī)再把組裝好的程序通過所述需求分析計(jì)算機(jī)發(fā)送給客戶端的用戶。
全文摘要
本發(fā)明涉及一種在網(wǎng)絡(luò)環(huán)境下根據(jù)用戶需求生成軟件服務(wù)的方法,其特征在于,包括以下步驟用戶通過客戶端提交服務(wù)需求;服務(wù)器端分析用戶需求,提取用戶需要的功能及相關(guān)軟件構(gòu)件領(lǐng)域,獲取這些領(lǐng)域中所有構(gòu)件的信息并發(fā)送到客戶端;用戶查看返回的構(gòu)件信息,選擇自己所需的構(gòu)件,利用客戶端提供的圖形化工具對這些構(gòu)件的接口按需進(jìn)行連接;客戶端將用戶的連接方案形成XML文檔發(fā)送到服務(wù)器端;服務(wù)器端根據(jù)用戶的連接方案生成組裝運(yùn)行腳本、提取構(gòu)件統(tǒng)一封裝件,然后解釋執(zhí)行運(yùn)行腳本完成軟件服務(wù)組裝,最后將生成的服務(wù)程序返回給客戶端用戶。本發(fā)明可實(shí)現(xiàn)從用戶需求到軟件構(gòu)件的映射,進(jìn)一步生成相應(yīng)的軟件,從而實(shí)現(xiàn)按需的軟件服務(wù)。
文檔編號G06F17/30GK1845069SQ200610011940
公開日2006年10月11日 申請日期2006年5月19日 優(yōu)先權(quán)日2006年5月19日
發(fā)明者張堯?qū)W, 田鵬偉, 方存好, 鐘鳴, 徐廣斌 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
恩平市| 微山县| 尼木县| 武义县| 尉氏县| 治多县| 章丘市| 同德县| 沁水县| 托克托县| 方城县| 克什克腾旗| 达孜县| 万山特区| 庐江县| 新建县| 噶尔县| 阿坝县| 鸡东县| 鸡西市| 德令哈市| 明光市| 江达县| 平潭县| 井冈山市| 金川县| 双流县| 喜德县| 武平县| 湘潭市| 明溪县| 晋城| 古蔺县| 阿鲁科尔沁旗| 永仁县| 威宁| 修武县| 田阳县| 兴安盟| 大埔区| 墨脱县|