專利名稱:構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件領(lǐng)域,特別涉及構(gòu)件化軟件系統(tǒng)領(lǐng)域,具體是指一種構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法。
背景技術(shù):
隨著現(xiàn)代社會科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)系統(tǒng)已經(jīng)成為各行各業(yè)所不可缺少的工具,而在其中起著核心作用的,則是計(jì)算機(jī)軟件系統(tǒng)。隨著軟件系統(tǒng)在各行各業(yè)的日益滲透,商業(yè)系統(tǒng)的日益龐大,其自身的問題也是越來越嚴(yán)重?,F(xiàn)在的一個(gè)企業(yè)應(yīng)用,常常會涉及企業(yè)的每一個(gè)部分,會由幾十人編寫幾十萬到幾百萬行代碼來完成。另一方面,現(xiàn)代企業(yè)是在一個(gè)不斷變化的動(dòng)態(tài)環(huán)境中生存和發(fā)展的,因此,企業(yè)應(yīng)用就需要不斷地維護(hù)——即部分地改寫一些現(xiàn)有軟件。由幾十萬上百萬的代碼式變化因子,組成的不斷變化的系統(tǒng),其復(fù)雜度是人類歷史上沒有見過的。軟件的安全性和質(zhì)量可靠性,常常成為現(xiàn)代無所不在、無所不能的信息化系統(tǒng)的一個(gè)嚴(yán)重問題。
而現(xiàn)有技術(shù)中,雖然已經(jīng)出現(xiàn)了一些構(gòu)件化的軟件和相應(yīng)的建模工具,但是無法形成一個(gè)完整而易于擴(kuò)展的強(qiáng)大體系,尤其是在常規(guī)的程序編碼過程中,程序員通常所面對的就是一堆抽象難懂的代碼,雖然這些代碼是高級語言,但是對于程序中紛繁復(fù)雜的邏輯關(guān)系和動(dòng)態(tài)行為機(jī)制,卻無法直觀的表現(xiàn),從而使得錯(cuò)誤和缺陷經(jīng)常發(fā)生,軟件整體的開發(fā)效率無法得到根本的改善,同時(shí)現(xiàn)有的完全基于代碼的軟件開發(fā)中存在著開發(fā)、實(shí)施、維護(hù)成本過高,管理不便的問題。在這種情況下,便給現(xiàn)代計(jì)算機(jī)軟件程序設(shè)計(jì)技術(shù)的發(fā)展帶來了一定的阻礙。
發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種能夠直觀有效的表現(xiàn)系統(tǒng)各部分的關(guān)系和內(nèi)部運(yùn)作流程、提高開發(fā)效率和運(yùn)行性能、降低開發(fā)維護(hù)成本、系統(tǒng)可移植性和可擴(kuò)展性較強(qiáng)、適用范圍較為廣泛的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法。
為了實(shí)現(xiàn)上述的目的,本發(fā)明的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法如下
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其主要特點(diǎn)是,所述的方法包括開發(fā)時(shí)構(gòu)建過程和運(yùn)行時(shí)構(gòu)建過程,所述的開發(fā)時(shí)構(gòu)建過程包括以下步驟(1)建立包含流程節(jié)點(diǎn)元素的根節(jié)點(diǎn);(2)在流程節(jié)點(diǎn)元素中建立包含數(shù)個(gè)頂點(diǎn)元素的頂點(diǎn)列表節(jié)點(diǎn)和數(shù)個(gè)邊元素的邊列表節(jié)點(diǎn);(3)在各個(gè)頂點(diǎn)元素中建立相應(yīng)的頂點(diǎn)特性信息;(4)在各個(gè)邊元素中建立相應(yīng)的邊特性信息;所述的運(yùn)行時(shí)構(gòu)建過程包括以下步驟(1)建立包含過程節(jié)點(diǎn)、附加信息節(jié)點(diǎn)元素和數(shù)個(gè)參數(shù)節(jié)點(diǎn)元素的根節(jié)點(diǎn);(2)在過程節(jié)點(diǎn)中建立數(shù)個(gè)邏輯節(jié)點(diǎn)元素;(3)在每個(gè)邏輯節(jié)點(diǎn)元素中建立相應(yīng)的邏輯特性信息。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的在頂點(diǎn)元素中建立相應(yīng)的頂點(diǎn)特性信息包括以下步驟(1)在頂點(diǎn)元素中建立名稱節(jié)點(diǎn)和包含數(shù)個(gè)特性元素的特性列表節(jié)點(diǎn);(2)在各個(gè)特性元素中建立特性值節(jié)點(diǎn)和包含數(shù)個(gè)列表列節(jié)點(diǎn)元素的列表行節(jié)點(diǎn)元素。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的頂點(diǎn)元素中包含有標(biāo)識屬性、類型名稱屬性和顯示屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的顯示屬性包括橫縱坐標(biāo)值屬性、高度屬性和寬度屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的特性元素中包含有名稱屬性和類型屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的列表行節(jié)點(diǎn)元素包含有序列屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的列表列節(jié)點(diǎn)元素包含有序列屬性和名稱屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的在邊元素中建立相應(yīng)的邊特性信息包括以下步驟(1)在邊元素中建立起始點(diǎn)節(jié)點(diǎn)、終止點(diǎn)節(jié)點(diǎn)和包含數(shù)個(gè)特性元素的特性列表節(jié)點(diǎn);(2)在各個(gè)特性元素中建立特性值節(jié)點(diǎn)和包含數(shù)個(gè)列表列節(jié)點(diǎn)元素的列表行節(jié)點(diǎn)元素。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的邊元素中包含有標(biāo)識屬性、顯示名稱屬性和顏色屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的特性元素中包含有名稱屬性和類型屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的列表行節(jié)點(diǎn)元素包含有序列屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的列表列節(jié)點(diǎn)元素包含有序列屬性和名稱屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的流程節(jié)點(diǎn)元素包含有名稱屬性和類型屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的在邏輯節(jié)點(diǎn)元素中建立相應(yīng)的邏輯特性信息為在邏輯節(jié)點(diǎn)元素中建立操作節(jié)點(diǎn)元素、操作參數(shù)節(jié)點(diǎn)元素、包含數(shù)個(gè)后繼項(xiàng)節(jié)點(diǎn)的后繼列表節(jié)點(diǎn)元素、包含數(shù)個(gè)異常項(xiàng)節(jié)點(diǎn)的異常列表節(jié)點(diǎn)和返回值節(jié)點(diǎn)。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的操作節(jié)點(diǎn)元素包含有類型屬性和值屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的操作參數(shù)節(jié)點(diǎn)元素包含有類型屬性和值屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的后繼列表節(jié)點(diǎn)元素包含有默認(rèn)后繼項(xiàng)屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的參數(shù)節(jié)點(diǎn)元素包含有標(biāo)識屬性、名稱屬性、輸入路徑屬性、輸入/輸出類型屬性,類型屬性、值屬性和說明屬性。
該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法的附加信息節(jié)點(diǎn)元素包含有顯示名稱屬性、模塊名稱屬性、作者屬性、版本屬性、創(chuàng)建時(shí)間屬性、部門屬性、說明屬性和返回值屬性。
采用了該發(fā)明的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,由于使用了擴(kuò)展標(biāo)記語言或者其它標(biāo)準(zhǔn)元語機(jī)制,并結(jié)合了可視化的開發(fā)工具對構(gòu)件接口和構(gòu)件本身的內(nèi)部運(yùn)行邏輯按照一定的標(biāo)準(zhǔn)格式進(jìn)行分層構(gòu)建,并具體分為業(yè)務(wù)邏輯構(gòu)建和展現(xiàn)邏輯構(gòu)建兩個(gè)部分,同時(shí)針對于開發(fā)時(shí)和運(yùn)行時(shí)兩個(gè)不同階段的不同需求特點(diǎn)分別進(jìn)行構(gòu)建,從而使其不僅能夠直觀有效的表現(xiàn)系統(tǒng)各部分的關(guān)系和內(nèi)部運(yùn)作流程,而且提高了開發(fā)效率和運(yùn)行性能,降低了開發(fā)維護(hù)的成本;同時(shí)增強(qiáng)了系統(tǒng)可移植性和可擴(kuò)展性;不僅如此,該方法還能夠快速回應(yīng)業(yè)務(wù)需求的變化和技術(shù)變化,能夠支撐建立高度模塊化而且又高度整合的軟件系統(tǒng),適用范圍較為廣泛,為計(jì)算機(jī)軟件技術(shù)的進(jìn)一步發(fā)展打下了堅(jiān)實(shí)的基礎(chǔ)。
圖1為本發(fā)明的構(gòu)件化軟件系統(tǒng)中在開發(fā)時(shí)進(jìn)行構(gòu)件接口和運(yùn)行邏輯的構(gòu)建結(jié)構(gòu)示意圖。
圖2為本發(fā)明的構(gòu)件化軟件系統(tǒng)中在運(yùn)行時(shí)進(jìn)行構(gòu)件接口和運(yùn)行邏輯的構(gòu)建結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實(shí)施例詳細(xì)說明。
請參閱圖1所示,該構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其主要特點(diǎn)是,所述的方法包括開發(fā)時(shí)構(gòu)建過程和運(yùn)行時(shí)構(gòu)建過程,所述的開發(fā)時(shí)構(gòu)建過程包括以下步驟(1)建立包含流程節(jié)點(diǎn)元素的根節(jié)點(diǎn),該流程節(jié)點(diǎn)元素包含有名稱屬性和類型屬性;(2)在流程節(jié)點(diǎn)元素中建立包含數(shù)個(gè)頂點(diǎn)元素的頂點(diǎn)列表節(jié)點(diǎn)和數(shù)個(gè)邊元素的邊列表節(jié)點(diǎn),該頂點(diǎn)元素中包含有標(biāo)識屬性、類型名稱屬性和顯示屬性,該顯示屬性包括橫縱坐標(biāo)值屬性、高度屬性和寬度屬性;該邊元素中包含有標(biāo)識屬性、顯示名稱屬性和顏色屬性;(3)在各個(gè)頂點(diǎn)元素中建立相應(yīng)的頂點(diǎn)特性信息,包括以下步驟(a)在頂點(diǎn)元素中建立名稱節(jié)點(diǎn)和包含數(shù)個(gè)特性元素的特性列表節(jié)點(diǎn),該特性元素中包含有名稱屬性和類型屬性;(b)在各個(gè)特性元素中建立特性值節(jié)點(diǎn)和包含數(shù)個(gè)列表列節(jié)點(diǎn)元素的列表行節(jié)點(diǎn)元素,該列表行節(jié)點(diǎn)元素包含有序列屬性,該列表列節(jié)點(diǎn)元素包含有序列屬性和名稱屬性;(4)在各個(gè)邊元素中建立相應(yīng)的邊特性信息,包括以下步驟(1)在邊元素中建立起始點(diǎn)節(jié)點(diǎn)、終止點(diǎn)節(jié)點(diǎn)和包含特性元素列表的特性節(jié)點(diǎn),該特性元素中包含有名稱屬性和類型屬性;(2)在特性元素列表中的各個(gè)特性元素中建立特性值節(jié)點(diǎn)和包含數(shù)個(gè)列表列節(jié)點(diǎn)元素的列表行節(jié)點(diǎn)元素,該列表行節(jié)點(diǎn)元素包含有序列屬性,該列表列節(jié)點(diǎn)元素包含有序列屬性和名稱屬性;在實(shí)際應(yīng)用當(dāng)中,在開發(fā)階段,構(gòu)件的接口和運(yùn)行邏輯被抽象為帶參數(shù)的流程圖,各種層次的邏輯具有相同的結(jié)構(gòu)。
其構(gòu)建中的各個(gè)節(jié)點(diǎn)名稱如下●autoGraphics節(jié)點(diǎn)為文件的根節(jié)點(diǎn);●graphic節(jié)點(diǎn)為流程節(jié)點(diǎn),包含name和type屬性,標(biāo)識流程的名稱和類型;●states節(jié)點(diǎn)為流程圖的頂點(diǎn)節(jié)點(diǎn),它的子結(jié)點(diǎn)為圖的頂點(diǎn)列表;●connects節(jié)點(diǎn)為流程圖的邊節(jié)點(diǎn),它的子結(jié)點(diǎn)為圖的邊列表;●state節(jié)點(diǎn)表示流程圖的一個(gè)頂點(diǎn),包含id、typename、x、y、height、width等屬性,分別表示頂點(diǎn)的標(biāo)識、名稱和顯示屬性;●connect節(jié)點(diǎn)表示流程圖的一條邊,包含id、type、color等屬性,分別表示邊的標(biāo)識、顯示名稱和顏色等屬性。
對于流程圖的頂點(diǎn),不同層次的邏輯表達(dá)中,它們同樣具有相同的結(jié)構(gòu),相互之間的區(qū)別,通過具體的特性來表現(xiàn)。
其構(gòu)建中的各個(gè)節(jié)點(diǎn)名稱如下●Name節(jié)點(diǎn)表示頂點(diǎn)的名稱;●propertyList節(jié)點(diǎn)為頂點(diǎn)的特性節(jié)點(diǎn),它的子結(jié)點(diǎn)為頂點(diǎn)的特性列表;●property節(jié)點(diǎn)表示頂點(diǎn)的一個(gè)特性,包含name和type屬性,分別表示特性的名稱和類型;●value節(jié)點(diǎn)表示頂點(diǎn)特性的值;●row節(jié)點(diǎn)表示列表類特性的一行,包含num屬性,表示行的序列;●column節(jié)點(diǎn)表示列表類特性的一列,包含num和name屬性,分別表示列的序列和列的名稱。
與流程圖的頂點(diǎn)相似,在不同層次的邏輯表達(dá)中,邊的表示也同樣具有相同的結(jié)構(gòu),相互之間的區(qū)別,也通過具體的特性來表現(xiàn)。
其構(gòu)建中的各個(gè)節(jié)點(diǎn)名稱如下●from表示邊的開始頂點(diǎn);●to表示邊的終止頂點(diǎn);●propertyList節(jié)點(diǎn)為邊的特性節(jié)點(diǎn),它的子結(jié)點(diǎn)為邊的特性列表;●property節(jié)點(diǎn)表示邊的一個(gè)特性,包含name和type屬性,分別表示特性的名稱和類型;●value節(jié)點(diǎn)表示邊特性的值;●row節(jié)點(diǎn)表示列表類特性的一行,包含num屬性,表示行的序列;
●column節(jié)點(diǎn)表示列表類特性的一列,包含num和name屬性,分別表示列的序列和列的名稱。
以下是使用上述結(jié)構(gòu)的邏輯表達(dá)示例<?xml version="1.0"encoding="GB2312"standalone="no" ><autoGraphics>
<graphic name="bizFile"type="bzg"router="0">
<states>
<state color="16777215"id="1"typeName="Start"height="48"width="48"x="38"y="56">
<name>流程開始</name>
<propertyList>
<property name="id"type="0">
<value/>
</property>
<property name="display_text"type="0">
<value>開始</value>
</property>
<property name="return_value"type="0">
<value/>
</property>
<property name="author"type="0">
<value>Administrator</value>
</property>
<property name="department"type="0">
<value></value>
</property>
<property name="date"type="0">
<value>Sat Jan 14 17:20:05 CST 2006</value>
</property>
<property name="productVersion"type="0">
<value>5.0</value>
</property>
<property name="automationVersion"type="0">
<value/>
</property>
<property name="deseription"type="0">
<value/>
</property>
<property name="graphicRef"type="0">
<value/>
</property>
<property name="ModelName"type="0">
<value>Product</value>
<property>
<property name="type"type="1">
<value>pi</value>
</property>
<property name="parameter"type="5">
<row num="0">
<column num="0"name="passing"type="1">in</column>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">CUSTOMER</column>
<column num="3"name="name"type="0"/>
<column num="4"name="inPath"type="0">/</column>
<column num="5"name="description"type="0"/>
</row>
<row num="1">
<column num="0"name="passing"type="1">out</column>
<column num="1"name="type"type="1">EOSEntityList</column>
<column num="2"name="value"type="0">list[@type="CUSTOMER"]</column>
<column num="3"name="name"type="0"/>
<column num="4"name="inPath"type="0">/</column>
<column num="5"name="description"type="0"/>
</row>
<row num="2">
<column num="0"name="passing" type="1">in</column>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">PageCond</column>
<column num="3"name="name"type="0"/>
<column num="4"name="inPath"type="0">/</column>
<column num="5"name="description"type="0"/>
</row>
<row num="3">
<column num="0"name="passing"type="1">out</columa>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">PageCond</column>
<column num="3"name="name"type="0"/>
<column num="4"name="inPath"type="0">/</column>
<column num="5"name="description"type="0"/>
</row>
</property>
</propertyList>
<description/></state><state color="16777215"id="2"typeName="End"height="48"width="48"x="300"y="56">
<name>流程結(jié)束</name>
<propertyList>
<property name="display_text"type="0">
<value>結(jié)束</value>
</property>
<property name="action"type="2">
<row num="0">
<column num="0"name="action">end</column>
<column num="1"name="type"/>
</row>
</property>
<property name="description"type="0">
<value/>
</property>
</propertyList>
<description/></state><state color="16777215"id="3"typeName="BL"height="48"width="48"x="176"y="56">
<name>businessLogic</name>
<propertyList>
<property name="display_text"type="0">
<value>查詢(BL_queryEntityAllWithPageExt)</value>
</property>
<property name="action"type="2">
<row num="0">
<column num="0"name="action">
com.primeton.eos.DataQueryExt.BL_queryEntityAllWithPageExt</column>
<column num="1"name="type">constant</column>
</row>
</property>
<property name="description"type="0">
<value/>
</property>
<property name="parameter"type="5">
<row num="0">
<column num="0"name="passing"type="1">in_out</column>
<column num="1"name="type"type="1">EOSEntityList</column>
<column num="2"name="value"type="0">list[@type="CUSTOMER"]</column>
<column num="3"name="paraType"type="0">{Node}</column>
<column num="4"name="name"type="0"/>
<column num="5"name="description"type="0">輸出結(jié)果list</column>
</row>
<row num="1">
<column num="0"name="passing"type="1">in_out</column>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">CUSTOMER</column>
<column num="3"name="paraType"type="0">{Node}</column>
<column num="4"name="name"type="0"/>
<column num="5"name="description"type="0">結(jié)果的EOSEntity</column>
</row>
<row num="2">
<column num="0"name="passing"type="1">in_out</column>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">PageCond</column>
<column num="3"name="paraType"type="0">{Node}</column>
<column num="4"name="name"type="0"/>
<column num="5"name="description"type="0">PageCond</column>
</row>
</property>
</propertyList>
<description/>
</state></states><connectors>
<connector color="0"description=""id="-2"type="connection">
<from>Shape.Start.1</from>
<to>Shape.businessLogic.3</to>
<propertyList>
<property name="isSimpleExpression"type="0">
<value>true</value>
</property>
<property name="display_text"type="0">
<value/>
</property>
<property name="type"type="0">
<value/>
</property>
<property name="valueType"type="0">
<value/>
</property>
<property name="default"type="0">
<value>true</value>
</property>
<property name="refPath"type="3">
<row num="0">
<column num="0"name="leftValue"/>
<column num="1"name="compType"/>
<column num="2"name="rightValue"/>
</row>
</property>
<property name="expression"type="0">
<value/>
</property>
</propertyList>
<bendpoints/>
</connector>
<connector color="0"description=""id="-2"type="connection">
<from>Shape.businessLogic.3</from>
<to>Shape.End.2</to>
<propertyList>
<property name="isSimpleExpression"type="0">
<value>true</value>
</property>
<property name="display_text"type="0">
<value/>
</property>
<property name="type"type="0">
<value>retCode</value>
</property>
<property name="valueType"type="0">
<value>constant</value>
</property>
<property name="default"type="0">
<value>true</value>
</property>
<property name="refPath"type="3">
<row num="0">
<column num="0"name="leftValue"/>
<column num="1"name="compType">EQ</column>
<column num="2"name="rightValue"/>
</row>
</property>
<property name="expression"type="0">
<value/>
</property>
</propertyList>
<bendpoints/>
</connector>
</connectors>
<groups/></graphic></autoGraphics>
再請參閱圖2所示,所述的運(yùn)行時(shí)構(gòu)建過程包括以下步驟(1)建立包含過程節(jié)點(diǎn)、附加信息節(jié)點(diǎn)元素和數(shù)個(gè)參數(shù)節(jié)點(diǎn)元素的根節(jié)點(diǎn),該附加信息節(jié)點(diǎn)元素包含有顯示名稱屬性、模塊名稱屬性、作者屬性、版本屬性、創(chuàng)建時(shí)間屬性、部門屬性、說明屬性和返回值屬性,該參數(shù)節(jié)點(diǎn)元素包含有標(biāo)識屬性、名稱屬性、輸入路徑屬性、輸入/輸出類型屬性,類型屬性、值屬性和說明屬性;
(2)在過程節(jié)點(diǎn)中建立數(shù)個(gè)邏輯節(jié)點(diǎn)元素;(3)在每個(gè)邏輯節(jié)點(diǎn)元素中建立相應(yīng)的邏輯特性信息,具體為在邏輯節(jié)點(diǎn)元素中建立操作節(jié)點(diǎn)元素、操作參數(shù)節(jié)點(diǎn)元素、包含數(shù)個(gè)后繼項(xiàng)節(jié)點(diǎn)的后繼列表節(jié)點(diǎn)元素、包含數(shù)個(gè)異常項(xiàng)節(jié)點(diǎn)的異常列表節(jié)點(diǎn)和返回值節(jié)點(diǎn),該操作節(jié)點(diǎn)元素包含有類型屬性和值屬性,該操作參數(shù)節(jié)點(diǎn)元素包含有類型屬性和值屬性,該后繼列表節(jié)點(diǎn)元素包含有默認(rèn)后繼項(xiàng)屬性。
在實(shí)際應(yīng)用當(dāng)中,在運(yùn)行期,構(gòu)件被部署在特定的上下文環(huán)境中,可以稱為構(gòu)件運(yùn)行平臺。構(gòu)件運(yùn)行平臺管理構(gòu)件的生命周期,包括構(gòu)件的創(chuàng)建、維持和銷毀,并負(fù)責(zé)為構(gòu)件運(yùn)行提供所需的上下文數(shù)據(jù)填充。在構(gòu)件運(yùn)行平臺上,多個(gè)構(gòu)件之間進(jìn)行通訊協(xié)作,共同完成特定的業(yè)務(wù)操作。
同開發(fā)期的結(jié)構(gòu)不同,在運(yùn)行期,構(gòu)件的接口和內(nèi)部邏輯描述不再包含和表現(xiàn)相關(guān)的數(shù)據(jù),如流程圖中頂點(diǎn)和邊的位置、形狀、顏色等屬性,而且,要根據(jù)構(gòu)件運(yùn)行平臺的要求,重新組織構(gòu)件的接口說明、邏輯過程及相關(guān)參數(shù)等。從開發(fā)期的結(jié)構(gòu)到運(yùn)行期結(jié)構(gòu)的轉(zhuǎn)換過程,類似于高級程序設(shè)計(jì)語言中“編譯”的概念。更加直觀的講,開發(fā)期的結(jié)構(gòu)適應(yīng)可視化構(gòu)件開發(fā)的要求,運(yùn)行期的結(jié)構(gòu)適應(yīng)構(gòu)件運(yùn)行平臺的要求,在兩者之間關(guān)注的重點(diǎn)發(fā)生了變化。
同傳統(tǒng)的J2EE應(yīng)用平臺類似,構(gòu)件運(yùn)行平臺在應(yīng)用的縱深維度上對應(yīng)用進(jìn)行分層,運(yùn)行于不同層次的構(gòu)件具有不同的接口特征和內(nèi)部邏輯描述規(guī)范在運(yùn)行期,構(gòu)件的接口和內(nèi)部運(yùn)行邏輯通過圖2所示的結(jié)構(gòu)進(jìn)行表示。
其構(gòu)建中的各個(gè)節(jié)點(diǎn)名稱如下●eosAutomation節(jié)點(diǎn)表示文件的根結(jié)點(diǎn),包含id、produceVersion、type等屬性,分別表示標(biāo)識、產(chǎn)品版本和類型;●info節(jié)點(diǎn)包含文本信息,包括作者、描述、創(chuàng)建時(shí)間和文件版本等信息;●parameter節(jié)點(diǎn)表示所描述的邏輯的參數(shù),包含id、name、inpath、passing、type、value和description等屬性,分別表示參數(shù)的標(biāo)識、名稱、輸入路徑、輸入/輸出類型,類型、值和說明,parameter節(jié)點(diǎn)可能有并列的多個(gè);●process節(jié)點(diǎn)是邏輯過程的根結(jié)點(diǎn),根據(jù)邏輯類型的不同,它包含不同的某種特定類型的子結(jié)點(diǎn)或者是hciState,或者是piState,或者是wfState。
在J2EE應(yīng)用的縱向維度中,參考傳統(tǒng)的體系架構(gòu),構(gòu)件內(nèi)部邏輯的表達(dá)可分為展現(xiàn)邏輯、業(yè)務(wù)邏輯和流程邏輯,分別對應(yīng)原有的展現(xiàn)層、業(yè)務(wù)層和工作流體系。其中展現(xiàn)邏輯、業(yè)務(wù)邏輯具有相同的頂點(diǎn)結(jié)構(gòu)。
其構(gòu)建中的各個(gè)節(jié)點(diǎn)名稱如下●piState/hciState節(jié)點(diǎn)表示相應(yīng)邏輯中的一個(gè)頂點(diǎn),包含id、isStart、isEnd、name、type等屬性,分別表示頂點(diǎn)的標(biāo)識、是否為開始節(jié)點(diǎn)、是否為結(jié)束節(jié)點(diǎn)、名稱、類型等;●action節(jié)點(diǎn)表示該頂點(diǎn)要執(zhí)行的操作,包含type和value屬性,分別表示操作的類型和值,在不同的邏輯中,action的類型不同;●parameter節(jié)點(diǎn)表示該頂點(diǎn)執(zhí)行操作時(shí)所需的參數(shù),包含type和value屬性,分別表示參數(shù)的類型和值;●next節(jié)點(diǎn)包含頂點(diǎn)的后繼列表,用于指出流程的流向,它包含default屬性,表示該頂點(diǎn)的默認(rèn)后繼;●case節(jié)點(diǎn)包含該頂點(diǎn)的一個(gè)后繼;●exception頂點(diǎn)表示對該頂點(diǎn)的異常處理,用于指出異常情況下的流程流向。
對應(yīng)于上面描述的結(jié)構(gòu),本文示例中開發(fā)階段的流程經(jīng)過轉(zhuǎn)換的結(jié)果如下<?xml version="1.0"encoding="GB2312"standalone="no" ><eosAutomation id="bizCUSTOMERQuery"productVersion="5.0"type="pi">
<info displayName=""ModelName=""author="Administrator"automationVersion=""date=""department=""description=""return_value="">
</info>
<parameter id="0"name=""inPath="/"description=""passing="in"type="EOSEntity"value="CUSTOMER"/>
<parameter id="1"name=""inPath="/"description=""passing="out"type="EOSEntityList"value="list[@type=&quot;CUSTOMER&quot;]"/>
<parameter id="2"name=""inPath="/"description=""passing=""type="EOSEntity"value="PageCond"/>
<parameter id="3"name=""inPath="/"description=""passing="out"type="EOSEntity"value="PageCond"/>
<process>
<piState description=""id="2"isFinal="true"isStart="false"name="流程結(jié)束"type="End">
<action type=""value="end"/>
</piState>
<piState description=""id="3"isFinal="false"isStart="true"name="businessLogic"type="businessLogic">
<action type="constant"value="com.primeton.eos.bizlets.database.DataQueryExt.BL_queryEntityAllWithPageExt"/>
<parameter id="0"name=""passing="in_out"type="EOSEntityList"value="list[@type=&quot;CUSTOMER&quot;]"paraType="{Node}"/>
<parameter id="1"name=""passing="in_out"type="EOSEntity"value="CUSTOMER"paraType="{Nodee}"/>
<parameter id="2"name=""passing="in_out"type="EOSEntity"value="PageCond"paraType="{Node}"/>
<next defaultTarget="2"/>
</piState>
</process>
</eosAutomation>
在上述實(shí)施例中,使用的是結(jié)構(gòu)的擴(kuò)展標(biāo)記語言描述,當(dāng)然也可以根據(jù)需要采用其它的標(biāo)準(zhǔn)元語機(jī)制,無論采用何種描述機(jī)制,本發(fā)明的構(gòu)建方法始終能夠很好的支持開發(fā)過程的可視化。在集成開發(fā)環(huán)境中,構(gòu)件的內(nèi)部邏輯和接口定義能夠更加直觀的得以表現(xiàn),從而大大提高開發(fā)、調(diào)試、部署、管理的效率。
在現(xiàn)代計(jì)算機(jī)軟件開發(fā)領(lǐng)域,面向構(gòu)件技術(shù)整合了傳統(tǒng)的構(gòu)件技術(shù)、模型驅(qū)動(dòng)技術(shù)和面向服務(wù)技術(shù),是解決現(xiàn)有軟件系統(tǒng)結(jié)構(gòu)弊端的一種有效手段。所謂構(gòu)件,是指某種自成一體、并有一個(gè)(或一組)清晰接口的軟件。同時(shí),構(gòu)件應(yīng)具有清晰的運(yùn)行時(shí)和上線內(nèi)涵。也就是說,該構(gòu)件具備可供運(yùn)行時(shí)訪問的接口;并且,在軟件開發(fā)生命周期的某個(gè)時(shí)間點(diǎn),該構(gòu)件可獨(dú)立交付和安裝。另外,還必須要求一個(gè)構(gòu)件能方便地跟其他構(gòu)件合并或組合,從而提供各種有用的功能,而且在通常情況下,單個(gè)構(gòu)件只有跟其它的構(gòu)件協(xié)同工作才能達(dá)到其功效。
基于面向構(gòu)件的體系架構(gòu),面向構(gòu)件的開發(fā)是一種先進(jìn)的軟件開發(fā)手段,在開發(fā)周期的不同階段和不同方面——包括需求分析、結(jié)構(gòu)、設(shè)計(jì)、建立、測試、上線、支撐性技術(shù)架構(gòu)、項(xiàng)目管理等,都以構(gòu)件為基礎(chǔ)。該定義把面向構(gòu)件開發(fā)的外延,從運(yùn)用面向構(gòu)件的思路建立軟件,擴(kuò)展到了整個(gè)軟件開發(fā)周期——它的所有階段和所有方面都以構(gòu)件為中心。如果希望構(gòu)件可隨時(shí)用于組裝,這些構(gòu)件必須作為項(xiàng)目的零件來建造,此時(shí)面向構(gòu)件顯得特別有優(yōu)勢。因此,用構(gòu)件法來構(gòu)思信息系統(tǒng),是目前控制大型分布式系統(tǒng)開發(fā)復(fù)雜度的最佳方法。
通過實(shí)施本發(fā)明的構(gòu)建方法,能夠有效的執(zhí)行構(gòu)件化的軟件開發(fā),同時(shí)具有以下優(yōu)勢(1)大大降低了開發(fā)、上線、個(gè)性化成本,容易向大型的高性能和可擴(kuò)展系統(tǒng)演變,從而來降低軟件開發(fā)方面的“制造成本”。換句話說,本發(fā)明的構(gòu)建方法所關(guān)注的不僅是分析——設(shè)計(jì)——開發(fā)這個(gè)生命周期,而是軟件產(chǎn)品的整個(gè)壽命;(2)能夠快速回應(yīng)“業(yè)務(wù)需求”的變化和“技術(shù)變化”。本發(fā)明的構(gòu)建方法能以“訂單生產(chǎn)”的方式,來應(yīng)對某個(gè)垂直領(lǐng)域或某個(gè)特定客戶的具體需求,從而能夠交付出“高度個(gè)性化”和“可配置”的產(chǎn)品和流程;(3)能夠支撐建立既“高度模塊化”又“高度整合”的軟件。本發(fā)明的構(gòu)建方法能夠使軟件構(gòu)件不僅具有精確定義的邊界,同時(shí)又歸屬于一個(gè)明確的結(jié)構(gòu);(4)本發(fā)明的構(gòu)建方法是一種事實(shí)上的軟件構(gòu)件“標(biāo)準(zhǔn)”,能夠?qū)?gòu)件規(guī)格和互動(dòng),起到技術(shù)和功能的雙方面指導(dǎo)作用。
在此說明書中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
權(quán)利要求
1.一種構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的方法包括開發(fā)時(shí)構(gòu)建過程和運(yùn)行時(shí)構(gòu)建過程,所述的開發(fā)時(shí)構(gòu)建過程包括以下步驟(1)建立包含流程節(jié)點(diǎn)元素的根節(jié)點(diǎn);(2)在流程節(jié)點(diǎn)元素中建立包含數(shù)個(gè)頂點(diǎn)元素的頂點(diǎn)列表節(jié)點(diǎn)和數(shù)個(gè)邊元素的邊列表節(jié)點(diǎn);(3)在各個(gè)頂點(diǎn)元素中建立相應(yīng)的頂點(diǎn)特性信息;(4)在各個(gè)邊元素中建立相應(yīng)的邊特性信息;所述的運(yùn)行時(shí)構(gòu)建過程包括以下步驟(1)建立包含過程節(jié)點(diǎn)、附加信息節(jié)點(diǎn)元素和數(shù)個(gè)參數(shù)節(jié)點(diǎn)元素的根節(jié)點(diǎn);(2)在過程節(jié)點(diǎn)中建立數(shù)個(gè)邏輯節(jié)點(diǎn)元素;(3)在每個(gè)邏輯節(jié)點(diǎn)元素中建立相應(yīng)的邏輯特性信息。
2.根據(jù)權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的在頂點(diǎn)元素中建立相應(yīng)的頂點(diǎn)特性信息包括以下步驟(1)在頂點(diǎn)元素中建立名稱節(jié)點(diǎn)和包含數(shù)個(gè)特性元素的特性列表節(jié)點(diǎn);(2)在各個(gè)特性元素中建立特性值節(jié)點(diǎn)和包含數(shù)個(gè)列表列節(jié)點(diǎn)元素的列表行節(jié)點(diǎn)元素。
3.根據(jù)權(quán)利要求2所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的頂點(diǎn)元素中包含有標(biāo)識屬性、類型名稱屬性和顯示屬性。
4.根據(jù)權(quán)利要求3所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的顯示屬性包括橫縱坐標(biāo)值屬性、高度屬性和寬度屬性。
5.根據(jù)權(quán)利要求2所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的特性元素中包含有名稱屬性和類型屬性。
6.根據(jù)權(quán)利要求2所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的列表行節(jié)點(diǎn)元素包含有序列屬性。
7.根據(jù)權(quán)利要求2所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的列表列節(jié)點(diǎn)元素包含有序列屬性和名稱屬性。
8.根據(jù)權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的在邊元素中建立相應(yīng)的邊特性信息包括以下步驟(1)在邊元素中建立起始點(diǎn)節(jié)點(diǎn)、終止點(diǎn)節(jié)點(diǎn)和包含數(shù)個(gè)特性元素的特性列表節(jié)點(diǎn);(2)在各個(gè)特性元素中建立特性值節(jié)點(diǎn)和包含數(shù)個(gè)列表列節(jié)點(diǎn)元素的列表行節(jié)點(diǎn)元素。
9.根據(jù)權(quán)利要求8所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的邊元素中包含有標(biāo)識屬性、顯示名稱屬性和顏色屬性。
10.根據(jù)權(quán)利要求8所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的特性元素中包含有名稱屬性和類型屬性。
11.根據(jù)權(quán)利要求8所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的列表行節(jié)點(diǎn)元素包含有序列屬性。
12.根據(jù)權(quán)利要求8所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的列表列節(jié)點(diǎn)元素包含有序列屬性和名稱屬性。
13.根據(jù)權(quán)利要求1至12中任一項(xiàng)所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的流程節(jié)點(diǎn)元素包含有名稱屬性和類型屬性。
14.根據(jù)權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的在邏輯節(jié)點(diǎn)元素中建立相應(yīng)的邏輯特性信息為在邏輯節(jié)點(diǎn)元素中建立操作節(jié)點(diǎn)元素、操作參數(shù)節(jié)點(diǎn)元素、包含數(shù)個(gè)后繼項(xiàng)節(jié)點(diǎn)的后繼列表節(jié)點(diǎn)元素、包含數(shù)個(gè)異常項(xiàng)節(jié)點(diǎn)的異常列表節(jié)點(diǎn)和返回值節(jié)點(diǎn)。
15.根據(jù)權(quán)利要求14所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的操作節(jié)點(diǎn)元素包含有類型屬性和值屬性。
16.根據(jù)權(quán)利要求14所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的操作參數(shù)節(jié)點(diǎn)元素包含有類型屬性和值屬性。
17.根據(jù)權(quán)利要求14所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的后繼列表節(jié)點(diǎn)元素包含有默認(rèn)后繼項(xiàng)屬性。
18.根據(jù)權(quán)利要求1、14、15、16或者17所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的參數(shù)節(jié)點(diǎn)元素包含有標(biāo)識屬性、名稱屬性、輸入路徑屬性、輸入/輸出類型屬性,類型屬性、值屬性和說明屬性。
19.根據(jù)權(quán)利要求1、14、15、16或者17所述的構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其特征在于,所述的附加信息節(jié)點(diǎn)元素包含有顯示名稱屬性、模塊名稱屬性、作者屬性、版本屬性、創(chuàng)建時(shí)間屬性、部門屬性、說明屬性和返回值屬性。
全文摘要
本發(fā)明涉及一種構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,其中開發(fā)時(shí)構(gòu)建過程包括建立包含流程節(jié)點(diǎn)元素的根節(jié)點(diǎn)、在流程節(jié)點(diǎn)元素中建立包含數(shù)個(gè)頂點(diǎn)元素的頂點(diǎn)列表節(jié)點(diǎn)和數(shù)個(gè)邊元素的邊列表節(jié)點(diǎn)、在各個(gè)頂點(diǎn)元素中建立相應(yīng)的頂點(diǎn)特性信息、在各個(gè)邊元素中建立相應(yīng)的邊特性信息;運(yùn)行時(shí)構(gòu)建過程包括建立包含過程節(jié)點(diǎn)、附加信息節(jié)點(diǎn)元素和數(shù)個(gè)參數(shù)節(jié)點(diǎn)元素的根節(jié)點(diǎn)、在過程節(jié)點(diǎn)中建立數(shù)個(gè)邏輯節(jié)點(diǎn)元素、在每個(gè)邏輯節(jié)點(diǎn)元素中建立相應(yīng)的邏輯特性信息。采用該種構(gòu)件化軟件系統(tǒng)中構(gòu)件接口和運(yùn)行邏輯的構(gòu)建方法,能夠直觀有效的表現(xiàn)系統(tǒng)各部分的關(guān)系和內(nèi)部運(yùn)作流程,開發(fā)效率和運(yùn)行性能高,開發(fā)維護(hù)成本低系統(tǒng)移植性和擴(kuò)展性強(qiáng),適用范圍較廣泛。
文檔編號G06F9/44GK1828531SQ20061002405
公開日2006年9月6日 申請日期2006年2月22日 優(yōu)先權(quán)日2006年2月22日
發(fā)明者黃柳青, 王滿紅, 焦列焱 申請人:上海普元信息技術(shù)有限責(zé)任公司