面向服務(wù)的計(jì)算和web數(shù)據(jù)管理 面向服務(wù)軟件開發(fā)的模擬練習(xí)_第1頁
面向服務(wù)的計(jì)算和web數(shù)據(jù)管理 面向服務(wù)軟件開發(fā)的模擬練習(xí)_第2頁
面向服務(wù)的計(jì)算和web數(shù)據(jù)管理 面向服務(wù)軟件開發(fā)的模擬練習(xí)_第3頁
面向服務(wù)的計(jì)算和web數(shù)據(jù)管理 面向服務(wù)軟件開發(fā)的模擬練習(xí)_第4頁
面向服務(wù)的計(jì)算和web數(shù)據(jù)管理 面向服務(wù)軟件開發(fā)的模擬練習(xí)_第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

面向服務(wù)的計(jì)算和web數(shù)據(jù)管理第13章面向服務(wù)軟件開發(fā)的模擬練習(xí)本章使用前面幾章介紹的概念,給出了一個從需求到編碼的SOA軟件開發(fā)的例子。該例子規(guī)模適中,已用于課堂教學(xué),且學(xué)生可以在三個星期內(nèi)完成。例子展示了SOA軟件開發(fā)中的許多核心概念,包括:

(1)面向服務(wù)的需求分析。

(2)面向服務(wù)應(yīng)用的體系結(jié)構(gòu)。

(3)服務(wù)的認(rèn)證和發(fā)布。

(4)工作流的認(rèn)證和發(fā)布。

(5)領(lǐng)域本體。

(6)服務(wù)和工作流發(fā)現(xiàn)。

(7)應(yīng)用組合。

(8)用C#構(gòu)建并發(fā)的面向服務(wù)代碼。

換句話說,SOA軟件開發(fā)中的許多核心概念都將被使用。因此,本章對學(xué)生來說很重要,可幫助學(xué)生實(shí)踐他們所學(xué)的東西。

該項(xiàng)目是一個物流公司在線狀態(tài)檢查軟件的SOA開發(fā)例子。首先,給出了運(yùn)輸領(lǐng)域的本體系統(tǒng),它具有物流軟件可用的公共服務(wù)和工作流,并且這些服務(wù)和工作流的規(guī)格和實(shí)現(xiàn)也都是可用的。

13.1引言然后把某一物流公司的需求給學(xué)生,并要求他們用某一SOA應(yīng)用體系結(jié)構(gòu)開發(fā)一個面向服務(wù)的程序。鼓勵學(xué)生查找存儲在信息庫中的服務(wù)和工作流,必要的時候進(jìn)行修改以適應(yīng)特殊需求。由于學(xué)生可以定義新的服務(wù)或修改已有的服務(wù)或工作流,所以也要求他們更新提供的本體。這樣按照Web2.0的精神,將來的學(xué)生可以分享或享用他們成果,也就是說,用戶也可以成為貢獻(xiàn)者。正如前面章節(jié)討論的,SOA軟件開發(fā)具有不同的生命周期模型。例如,IBM基礎(chǔ)生命周期有一個模型驅(qū)動的循環(huán)過程,它包括了開發(fā)和運(yùn)行的特征,有四個階段:建模、組裝、部署和管理。

其它SOA開發(fā)過程類似,如PESOI包括明確的工程活動,SAP提出了把測試和驗(yàn)證作為一個明確階段的循環(huán)過程。不管怎樣,一般情況下,SOA開發(fā)包含以下活動。

(1)建模:它包括軟件需求到面向服務(wù)模型的轉(zhuǎn)換。面向服務(wù)模型通常包含一個具有相關(guān)服務(wù)和指定工作流的SOAA。這個轉(zhuǎn)換過程可能要用本體去發(fā)現(xiàn)和識別一個合適的應(yīng)用體系結(jié)構(gòu)(見第12章),以及需要的服務(wù)和工作流規(guī)范。我們也應(yīng)采用各種技術(shù)包括仿真、模型檢查、完整性和一致性檢查等對構(gòu)建的模型進(jìn)行驗(yàn)證和確認(rèn)。通常情況下,由于過程的其余部分將遵循這一階段構(gòu)建的模型,因此應(yīng)用的重大決策將在這一階段完成。

(2)組裝:它包括使用本體、服務(wù)規(guī)范和選擇標(biāo)準(zhǔn)確定實(shí)際的服務(wù)來組合應(yīng)用。如果沒有合適的服務(wù)可用,就必須創(chuàng)建新的服務(wù)或修改已有的服務(wù)。在執(zhí)行前,組合應(yīng)用需要確認(rèn)。在部署前,對應(yīng)用和發(fā)現(xiàn)的服務(wù)應(yīng)進(jìn)行測試和仿真。

(3)部署:它把一個可能含有遠(yuǎn)程服務(wù)的應(yīng)用軟件配置放在一個適當(dāng)?shù)膱?zhí)行平臺上。(4)管理:執(zhí)行時的監(jiān)管和運(yùn)行支持。它對收集到的數(shù)據(jù)進(jìn)行分析,分析結(jié)果將用于指導(dǎo)下一循環(huán)過程的建模。

SOA的另一個重要特征是一旦一個制品(不管是服務(wù)或工作流)被確定是有用的,它就被保存起來以供將來重用。隨著時間的推移,在一個特定領(lǐng)域內(nèi),許多服務(wù)和工作流都成為可用的,應(yīng)用這些服務(wù)和工作流構(gòu)建該領(lǐng)域的新應(yīng)用時可以有效的節(jié)省時間和精力。換句話說,面向服務(wù)的需求開發(fā)是領(lǐng)域相關(guān)和可重用的,服務(wù)和工作流等可重用項(xiàng)的集合可以在相同領(lǐng)域的應(yīng)用開發(fā)中重用。每一個應(yīng)用領(lǐng)域都有自己的可重用的公共服務(wù)、工作流和應(yīng)用模板?;叵朐赟OA中,可重用的項(xiàng)包括服務(wù)、工作流、協(xié)作模板、應(yīng)用模板、用戶接口、應(yīng)用體系結(jié)構(gòu)和本體。因此,一個新的SOA開發(fā)生命周期如圖13.1所示。圖13.1模型驅(qū)動的面向服務(wù)的應(yīng)用開發(fā)過程在MSOP(模型驅(qū)動的面向服務(wù)的應(yīng)用開發(fā)過程)模型中,像服務(wù)和工作流這些可重用項(xiàng)被存儲在信息庫中并由本體信息注解。該過程是一個循環(huán)過程,有以下幾個階段:

(1)面向服務(wù)的需求和設(shè)計(jì)階段:本階段包括兩個子過程:

第一個子過程研究給出的需求,確定合適的應(yīng)用體系結(jié)構(gòu)、潛在的服務(wù)和工作流。此外,在這個階段,通常只用到服務(wù)或工作流規(guī)范。這個子過程產(chǎn)生SOAA中的應(yīng)用模型,它包括必需的服務(wù)和工作流規(guī)范,并且假設(shè)該應(yīng)用模型能執(zhí)行給定需求的預(yù)期功能。

第二個子過程從現(xiàn)有的信息庫中發(fā)現(xiàn)需要的服務(wù)和工作流,如果需要的服務(wù)或工作流不可用,或者開發(fā)它們,或者其源碼或設(shè)計(jì)可用的話,就修改現(xiàn)有的服務(wù)或工作流。修改的或新的項(xiàng)將在各種信息庫發(fā)布以使它們能重用。

這兩個子過程不同但又反復(fù)同時執(zhí)行,因此被放在一起構(gòu)成一個完整階段。整句改為該階段不同于傳統(tǒng)的軟件開發(fā)中的分析設(shè)計(jì)階段,因?yàn)椋?/p>

①當(dāng)假設(shè)一個應(yīng)用以面向服務(wù)的方法開發(fā),并使用SOAA、服務(wù)和工作流時才啟動它。

②它構(gòu)建了一個試圖執(zhí)行特定功能的應(yīng)用模型,該應(yīng)用模型以面向服務(wù)的方式構(gòu)造。

③模型如果以形式化語言或BPEL、PSML這樣的可執(zhí)行的SOA語言說明,就可以立即執(zhí)行。

④要求工程師檢查可重用項(xiàng),例如信息庫中的服務(wù)和工作流。⑤它是領(lǐng)域相關(guān)和不斷積累的。換句話說,當(dāng)工程師開發(fā)某一領(lǐng)域的應(yīng)用時,將檢查該領(lǐng)域的信息庫,當(dāng)該領(lǐng)域有新的項(xiàng)可用時,將這些項(xiàng)發(fā)布到相關(guān)信息庫中并更新相關(guān)本體。

(2)模型評估階段:本階段評估前一階段開發(fā)的應(yīng)用模型,包括仿真、模型檢查、完整性和一致性檢查在內(nèi)的一系列靜態(tài)和動態(tài)評估技術(shù)都可以采用。如果模型評估失敗,將返回到前一階段。許多形式化的SOA規(guī)范語言都支持分析和仿真,例如BPEL和PSML,因此這一過程的許多步驟可自動化。

(3)代碼生成階段:通過識別或開發(fā)的服務(wù)和工作流,本階段根據(jù)前面階段開發(fā)的應(yīng)用模型生成代碼。如果采用形式化的SOA語言,則可自動生成代碼。(4)執(zhí)行和監(jiān)控階段:本階段執(zhí)行應(yīng)用代碼,包括發(fā)送信息給參與執(zhí)行的位于遠(yuǎn)程站點(diǎn)的服務(wù)。此外,執(zhí)行監(jiān)控并收集數(shù)據(jù)進(jìn)行分析。

(5)數(shù)據(jù)分析和評估階段:本階段將分析前一階段收集到的數(shù)據(jù),評估結(jié)果用于指導(dǎo)下一周期應(yīng)用模型的修改。完成這一步后,過程返回到面向服務(wù)的需求和設(shè)計(jì)階段。

即使各信息庫中沒有可重用的項(xiàng),該過程模型也可以啟動,但隨著使用該過程模型進(jìn)行各種項(xiàng)目的開發(fā),這些信息庫將逐步成為一個良好的可重用項(xiàng)的信息庫。隨著可用重用項(xiàng)的增多,應(yīng)用開發(fā)的速度也會加快。傳統(tǒng)上,本體用于分類、導(dǎo)航、內(nèi)容識別、查詢和推理。由于SOA軟件有各種不同類型的結(jié)構(gòu),如應(yīng)用體系結(jié)構(gòu)、協(xié)作、服務(wù)和工作流等,所以將本體系統(tǒng)劃分為不同類型的本體系統(tǒng)是很有用的,每一種本體系統(tǒng)對應(yīng)一類軟件制品,也就是,面向軟件的本體。每個本體系統(tǒng)關(guān)注SOA軟件開發(fā)的一個方面,它們可以相互參考。例如,我們可以有以下本體系統(tǒng):

①應(yīng)用本體(AO):定義了與應(yīng)用相關(guān)的概念和關(guān)系。

②協(xié)作本體(CO):定義了與工作流和服務(wù)相關(guān)的各種協(xié)作模板,并且為了容易識別服務(wù)和工作流,CO會參考AO、WO和SO。

③工作流本體(WO):定義了工作流的概念和關(guān)系。在WO中,對不同領(lǐng)域的工作流進(jìn)行分類,并且為了協(xié)作,對工作流的關(guān)系也進(jìn)行了說明。

④服務(wù)本體(SO):定義了服務(wù)的概念和關(guān)系。

節(jié)將通過一個領(lǐng)域具體說明這些本體。

這些本體系統(tǒng)之間的交叉引用將有助于發(fā)現(xiàn)和匹配。例如:AO中一個給定的應(yīng)用可能會引用CO中的幾個協(xié)作模板,而每個協(xié)作模板可能會引用SO和WO中的服務(wù)和工作流。通過這種方式,用戶可以從SO和WO追蹤到CO、最終到AO,從而找出給定的服務(wù)或工作流的上下文。同樣,用戶也可以從應(yīng)用開始,追蹤其中的各種協(xié)作、工作流和服務(wù)。圖13.1給出的開發(fā)過程模型和軟件工程中的領(lǐng)域工程類似,但它有獨(dú)特的特征:

①在傳統(tǒng)的領(lǐng)域工程中,往往使用領(lǐng)域相關(guān)的建模語言。但該過程采用一種面向服務(wù)的建模方法。因此,雖然存儲在面向服務(wù)領(lǐng)域的數(shù)據(jù)是領(lǐng)域相關(guān)的,但建模語言和方法卻不是領(lǐng)域相關(guān)的。

②通常傳統(tǒng)的領(lǐng)域模型也有一個領(lǐng)域相關(guān)的應(yīng)用過程,通過組合或編譯方法生成軟件設(shè)計(jì)和代碼。例如,它們可能有一個領(lǐng)域相關(guān)的編譯器從應(yīng)用模型生成可執(zhí)行代碼。而MSOP模型中的代碼生成技術(shù)只依賴于采用的面向服務(wù)的建模語言,因此它是領(lǐng)域無關(guān)的。本章的剩余部分將回顧該過程的第一階段以說明這些概念。選擇的領(lǐng)域是物流領(lǐng)域,需要通過追蹤客戶、貨主、承運(yùn)人和包裹接收者來追蹤物流。

節(jié)將用本體系統(tǒng)、可用的服務(wù)、工作流和應(yīng)用模板展示一個已有的面向服務(wù)的領(lǐng)域模型,或許它們很早就被開發(fā)和發(fā)布了。簡單起見,本體系統(tǒng)將使用圖形表示并顯示分類關(guān)系和屬性,服務(wù)將用英文注解,工作流將用流程圖表示。13.3節(jié)將描述一個具有特定需求的物流公司的新需求。

13.4節(jié)將說明給定需求的應(yīng)用模型的開發(fā),這些需求包括了相關(guān)的服務(wù)、工作流和應(yīng)用模板。

領(lǐng)域模型舉例

物流領(lǐng)域的一個追蹤系統(tǒng)記錄了貨物在不同階段的狀態(tài)和異常,方便客戶和工作人員跟蹤貨物。

13.2.1本體系統(tǒng)

本體系統(tǒng)包括以下內(nèi)容:

(1)領(lǐng)域本體:由于領(lǐng)域比較大,我們將其分為狀態(tài)、異常、個人、貨物、物流形式等子系統(tǒng)。

(2)面向軟件的本體:包括服務(wù)、工作流、協(xié)作和應(yīng)用本體系統(tǒng)。

1.狀態(tài)本體

狀態(tài)本體描述了貨物的狀態(tài)。包裹可以處于運(yùn)輸狀態(tài),也可以處于交付推遲的異常狀態(tài),如圖所示。13.2領(lǐng)域模型舉例

圖13.2狀態(tài)本體信息2.異常本體

異常本體描述了物流的各種異常情況,包括因天氣延誤和運(yùn)輸過程中丟失包裹,如圖13.3所示。

圖13.3異常本體信息3.個人本體

個人本體描述了各類客戶信息,包括他們的服務(wù)編號、手機(jī)號碼、Email地址、郵編地址、歷史記錄、貨物ID和備注??蛻暨€有客戶ID和貨物ID等額外屬性,如圖13.4所示。

圖13.4個人本體信息4.貨物本體

貨物本體描述了各種貨物信息,包括它們的ID、數(shù)量、重量、長度、高度和體積,如圖13.5所示。

圖13.5貨物本體信息5.物流形式本體

物流形式本體描述了運(yùn)貨過程中使用的各種形式的信息,如圖13.6所示。

圖13.6物流形式本體信息6.工作流本體

工作流本體描述了物流領(lǐng)域所使用的各種工作流,如圖13.7所示。

圖13.7物流領(lǐng)域通用的工作流7.協(xié)作本體

協(xié)作本體描述了物流領(lǐng)域的各類協(xié)作模板,如圖13.8所示。一個協(xié)作模板可以看做是一個包含多個服務(wù)相互合作實(shí)現(xiàn)系統(tǒng)特定功能的復(fù)雜的工作流。例如:注冊過程需要安全服務(wù)和貨物添加服務(wù)的協(xié)作。安全服務(wù)核查個人,貨物添加服務(wù)為個人注冊貨物。協(xié)作過程可被當(dāng)作組合服務(wù)進(jìn)行建模,這種方式下,該過程可以被其他服務(wù)重用。

在CCSOA中,如果必須適應(yīng)新的軟件需求,有服務(wù)參與的協(xié)作過程可被發(fā)布和修改。一旦協(xié)作過程發(fā)布了,服務(wù)提供者就可以提交新的服務(wù)參與協(xié)作。這樣,應(yīng)用工程師發(fā)布預(yù)期的協(xié)作過程,讓服務(wù)提供者發(fā)現(xiàn)必需的服務(wù)并提供它們。

圖13.8協(xié)作本體信息8.應(yīng)用本體

應(yīng)用本體描述了分類樹中的各種應(yīng)用,如圖13.9所示。應(yīng)用本體系統(tǒng)中的每一項(xiàng)表示一個完整的應(yīng)用,以及應(yīng)用與它的體系結(jié)構(gòu)、協(xié)作過程、服務(wù)和工作流的連接。這樣,不僅服務(wù)和工作流可以被重用,包括內(nèi)部架構(gòu)和模塊在內(nèi)的整個應(yīng)用都可以被重用或修改。

圖13.9應(yīng)用本體信息圖13.9顯示了應(yīng)用于電子商務(wù)系統(tǒng)的物流系統(tǒng),一個基于空運(yùn)的物流公司的組織可能不同于基于海運(yùn)的物流公司。應(yīng)用本體支持最高級別的抽象,應(yīng)用工程師在整個系統(tǒng)內(nèi)查詢可復(fù)用的制品。應(yīng)用本體系統(tǒng)可關(guān)聯(lián)協(xié)作本體,并且工程師可以用有服務(wù)和工作流參與的相似的協(xié)作模板組合新的應(yīng)用。9.服務(wù)本體

服務(wù)本體描述了分類樹中的各種服務(wù),如圖13.10所示。

圖13.10服務(wù)本體信息.2發(fā)布的服務(wù)

下面每個矩形框描述了一個服務(wù)。

NameofService:Add_shipment_informationservice

Description:Beforetheshipmentisreadyforshipping,thecustomershouldfillaformabouttheshipment.

Input:

a.Customername(string)

b.Thedescriptionoftheshipment(string)

c.Theshippingdata(stringmmddyyyy)

d.Thedepartureaddress(string)e.Thedeparturezip(int)

f.Thedestinationaddress(string)

g.Thedestinationzip(int)

h.Thereceivername(string)

i.Theweightoftheshipment(int)

j.Thevolumeoftheshipment(int)

k.Thepriceoftheshipment(int)

l.Thecustomeremailaddress(string)

Output:Thetrackingnumberoftheshipment

Exception:Iftheshippingtypeisincorrect,itwillnotbeenteredintothedatabase.SeeGetShippingTypeServiceformoreinformation.NameofService:Get_customer_informationservice

Description:Getthecustomerinformation

Input:TrackingnumberorShipmentID

Output:customername,customeremailstring[2]

Exception:returnnullifthegivenIDdoesnotmatchwithanyrecord.

NameofService:Cancel_shipping_orderservice

Description:Canceltheshippingorder

Input:TrackingnumberorShipmentID

Output:result(string)Exception:Iftheshipment’sstatusisnotprepared,itcannotbecancelled.

NameofService:Get_exception_listservice

Description:Thisreturnsthelistofexceptionsinashippingsystem

Input:None

Output:exceptionlist(string[])(none,misslabel,wrongaddress,trafficproblem,cannotfindthereceiver,misstheshipment,weather)

Exception:none.NameofService:Get_exceptionservice

Description:Thisreturnsthespecificexceptioncaseforthespecificshipment.

Input:TrackingnumberorShipmentID

Output:anexception(string)(none,misslabel,wrongaddress,trafficproblem,cannotfindthereceiver,misstheshipment,weather)

Exception:none.

NameofService:Get_shipping_typeservice

Description:ThisreturnstheshippingtypeusedintheshippingsystemInput:ShipmentID

Output:str……ing[]shippingtype(Regularshipping,Nextdayshipping,Twodaysshipping)

Exception:none.

NameofService:Getstatuslist

Description:Thisreturnsthelistofavailablestatusinashippingsystem

Input:None

Output:string[]statuslist(prepared,shipped,ontheway,delivered,exception)

Exception:none.

NameofService:Get_statusservice

Description:Getthespecifiedshipment’sstatus

Input:TrackingnumberorShipmentID

Output:status(string)

Exception:none.NameofService:Set_exceptionservice

Description:Whenanexceptionoccurs,thissetstheexceptionfortheshipment.

Input:TrackingnumberorShipmentID,exception

Output:result(string)

Exception:Onlyqualifiedexceptioncanbeset.SeeGetExceptionListService.

NameofService:Set_locationservice

Description:Settheshipment’slocationInput:TrackingnumberorShipmentID,location

Output:result(string)

Exception:none.

NameofService:Set_statusservice

Description:Whenstatusisupdated,setthestatusfortheshipment

Input:TrackingnumberorShipmentID,status

Output:result(string)

Exception:Onlyqualifiedstatuscanbeset.SeeGetStatusListServiceNameofService:Track_by_customer_nameservice

Description:ThisreturnsalltheshippingorderIDforthespecifiedcustomer

Input:Customername

Output:AlltheshipmentID(string[])

Exception:none.NameofService:Track_by_departureservice

Description:GettheshipmentIDwhichhassamethedepartureasspecified

Input:departure

Output:AlltheshipmentID(string[])

Exception:none.

NameofService:Track_by_destinationservice

Description:ThisreturnstheshipmentIDwhichhasthesamedestinationasspecified

Input:destination

Output:AlltheshipmentID(string[])

Exception:none.NameofService:Track_by_locationservice

Dsecription:GettheshipmentIDwhichhasthesamelocationasspecified

Input:location

Output:AlltheshipmentID(string[])

Exception:none.

NameofService:Track_by_tracking_numberservice

Description:GettherelatedinformationbythetrackingnumberInput:TrackingnumberorshipmentID

Output:result(string[])(Shippingdate,shippingtype,destination,departure,weight,location,status,exception)

Exception:none.13.2.3發(fā)布的工作流

工作流如圖13.11、圖13.12、圖13.13和圖13.14所示。

圖13.11顯示了一個客戶或公司員工檢查其貨物狀態(tài)的工作流程,包括調(diào)用服務(wù)、追蹤服務(wù)和查詢貨物狀態(tài)。

圖13.12顯示了一個狀態(tài)通知工作流,它包括兩個服務(wù):狀態(tài)監(jiān)控服務(wù)和通知服務(wù)。工作流將一直循環(huán)直到發(fā)生狀態(tài)改變并發(fā)出一個通知信號。通過把狀態(tài)通知工作流作為第2章中提出的并發(fā)線程(該線程一直處于睡眠狀態(tài)直到它接收到一個改變狀態(tài)的信號),可以進(jìn)一步改進(jìn)流程。

圖13.11追蹤客戶的工作流

圖13.12狀態(tài)通知工作流圖13.13顯示了一個包含兩個服務(wù)的簡單的異常通知工作流。該工作流持續(xù)調(diào)用異常監(jiān)控服務(wù)直到接收到一個異常通知,然后調(diào)用通知服務(wù)發(fā)出一個通知。該工作流也可以改進(jìn),例如,把它作為一個并發(fā)線程來實(shí)現(xiàn),該線程每30分鐘或當(dāng)一個異常事件到來時被激活。

圖13.14顯示了另外一個有3個服務(wù)參與的工作流。它首先收集某一物流的信息,然后調(diào)用三個服務(wù)向系統(tǒng)中添加貨物信息、初始化狀態(tài)、設(shè)置目的地信息。

圖13.13異常通知工作流圖13.14物流信息工作流13.2.4物流領(lǐng)域協(xié)作模板

樣本協(xié)作模板如圖13.15和圖13.16所示。

圖13.15檢查狀態(tài)并通知合適的個人模板

圖13.16登錄協(xié)作過程模板圖13.15顯示了一個有七個服務(wù)的協(xié)作模板:獲取貨物信息、設(shè)置狀態(tài)、設(shè)置地點(diǎn)、設(shè)置狀態(tài)、設(shè)置異常、異常監(jiān)控和通知服務(wù)。

圖13.16顯示了帶有兩個服務(wù)和一個工作流的登錄協(xié)作模板。它首先執(zhí)行安全檢查驗(yàn)證用戶。驗(yàn)證后,它會請求獲取貨物類型,一旦獲得貨物信息,它將使用圖13.14指定的工作流添加貨物信息。

一個新公司TEC(TempeExpressCarrier)想開發(fā)一個在線追蹤系統(tǒng)。TEC提供了如下所示的信息。

誰將使用該系統(tǒng):

A.客戶B.經(jīng)理(manager@)C.系統(tǒng)管理員(systemmanager@)

D.承運(yùn)者

TEC僅為以下城市提供送貨服務(wù)。

13.3項(xiàng)目的特定需求Ⅰ.TEC追蹤系統(tǒng)的特征

1.貨物注冊

1.1使用在線追蹤系統(tǒng)可以注冊任何貨物。

1.2如果是新客戶,客戶首先需要在系統(tǒng)中進(jìn)行注冊。

1.3如果發(fā)生異常,系統(tǒng)應(yīng)該向管理人員報告。

2.搜索和更改貨物狀態(tài)

2.1追蹤系統(tǒng)允許按貨物標(biāo)識號、客戶ID、航班號、源機(jī)場、目的機(jī)場和包括航班延誤、天氣惡劣、地址偏僻等異常核查貨物狀態(tài)。2.2如果系統(tǒng)無法識別貨物的當(dāng)前狀態(tài),系統(tǒng)應(yīng)通過Email向系統(tǒng)管理員報告。

2.3運(yùn)輸過程中貨物到達(dá)某些地點(diǎn),比如到達(dá)目的機(jī)場,承運(yùn)者應(yīng)更新貨物狀態(tài),并且只有承運(yùn)者才能更新貨物狀態(tài)。

3.收益報告

3.1追蹤系統(tǒng)能夠按日、月、年匯報總收益。

3.2如果某一天收益太高或太低(閾值給定),系統(tǒng)應(yīng)通過Email向管理人員報告這一情況。4.異常處理

系統(tǒng)應(yīng)能夠處理航運(yùn)過程中如貨物丟失或交付延遲這類異常。

(1)如果貨物因天氣惡劣或航班延誤而延遲,承運(yùn)者將更新狀態(tài)。

(2)如果貨物丟失,系統(tǒng)應(yīng)通過Email通知客戶并更新狀態(tài)。5.客戶反饋

追蹤系統(tǒng)提供客戶向TEC反饋的功能,客戶可以通過輸入貨物識別號碼和客戶ID提進(jìn)行反饋,這兩項(xiàng)是可選的,即客戶可以進(jìn)行匿名反饋。該反饋將被發(fā)送至TEC高級管理人員的郵箱Seniormanager@。

Ⅱ.應(yīng)用體系結(jié)構(gòu)

系統(tǒng)將使用四層的面向服務(wù)的體系結(jié)構(gòu),四個層次描述如下:圖形用戶界面(表示層)、工作流(應(yīng)用邏輯層)、服務(wù)集合(服務(wù)層)和數(shù)據(jù)管理(數(shù)據(jù)庫層),如圖13.17所示。圖13.17一個四層的應(yīng)用體系結(jié)構(gòu)1.表示層

表示層指引用戶使用網(wǎng)站發(fā)現(xiàn)具有他們需求資格的公司。它也允許用戶輸入信息完成查詢。

2.應(yīng)用邏輯層

實(shí)現(xiàn)應(yīng)用邏輯,也就是在線運(yùn)輸工作流如何引導(dǎo)和完成運(yùn)輸。該層連接服務(wù)層和表示層。

3.服務(wù)層

服務(wù)層包含服務(wù),該層連接數(shù)據(jù)管理層和應(yīng)用邏輯層。

4.數(shù)據(jù)管理層

項(xiàng)目中可以使用如數(shù)組、集合或數(shù)據(jù)集這些簡單的數(shù)據(jù)結(jié)構(gòu)。

這個可運(yùn)行的例子被分為5個部分,每部分對應(yīng)需求的一個特征。

1.貨物注冊

1)說明

(1)使用在線追蹤系統(tǒng)可以注冊任何貨物;

(2)第一次使用在線追蹤系統(tǒng)時用戶必須注冊;

(3)如果發(fā)生注冊異常,系統(tǒng)必須向貨物管理人員發(fā)送報告。13.4一個可運(yùn)行的例子2)需求分析

A.服務(wù)識別

(1)系統(tǒng)應(yīng)登記貨物信息,包括:

a.客戶姓名/客戶ID

b.貨物描述

c.發(fā)貨日期(月日年)

d.部門地址

e.部門郵編

f.目的地地址g.目的地郵編

h.收貨人姓名

i.貨物重量

j.貨物體積

k.貨物價格

l.客戶Email地址

m.貨物分類(如:文檔、玩具、制品)

(2)系統(tǒng)應(yīng)有異常處理服務(wù)以處理注冊過程中的異常。

(3)系統(tǒng)應(yīng)提供送貨服務(wù)。

(4)系統(tǒng)應(yīng)具有運(yùn)送費(fèi)用估計(jì)的能力。B.本體

(1)貨物本體(標(biāo)識號,金額,毛重,凈重,度量(長度,寬度,高度和體積),可傾斜);

(2)個人本體(服務(wù)號,手機(jī)號,Email地址,郵寄地址,貨物歷史記錄,貨物識別號,備注);

(3)貨物本體(貨物識別號,航班信息,貨物信息,代理信息,發(fā)貨港,目的港,貨物狀態(tài),運(yùn)送異常);

(4)異常本體(貨物丟失,貨物延遲(天氣,運(yùn)輸),地址錯誤);

(5)通知人本體(客戶姓名,Email地址,郵寄地址,手機(jī)號碼)。C.設(shè)計(jì)

C1.服務(wù)

信息庫中的以下服務(wù)是有用的:

(1)添加貨物信息服務(wù);

(2)獲取客戶服務(wù)。

以下是新開發(fā)的服務(wù):

(1)添加貨物異常處理服務(wù)。

說明:該服務(wù)用來處理追蹤系統(tǒng)中發(fā)生的所有異常;

輸入:追蹤系統(tǒng)中發(fā)生的異常;

輸出:異常處理的結(jié)果。(2)成本計(jì)算服務(wù)。

說明:該服務(wù)用來計(jì)算運(yùn)輸費(fèi)用的總金額;

輸入:貨物和運(yùn)輸信息(字符型);

輸出:運(yùn)輸成本金額。

(3)注冊客戶服務(wù)

說明:該服務(wù)用來保存追蹤系統(tǒng)中新注冊的客戶的信息;

輸入:客戶信息(字符型);

輸出:無。C2.工作流

可以通過添加異常處理對原有的添加貨物信息工作流進(jìn)行修改,如圖13.18所示。圖13.18修改的工作流C3.協(xié)作模板

該功能可通過修改現(xiàn)有的模板來實(shí)現(xiàn),留作練習(xí)。2.搜索和更改貨物狀態(tài)

1)說明

(1)追蹤系統(tǒng)應(yīng)允許通過貨物標(biāo)識號、客戶ID、航班號、起飛機(jī)場、目的機(jī)場和如航班延誤、天氣惡劣、郵寄地址錯誤等異常狀況來檢查貨物狀態(tài);

(2)如果系統(tǒng)不能識別貨物的當(dāng)前狀態(tài),系統(tǒng)應(yīng)通過Email向系統(tǒng)管理員報告;

(3)只有貨物承運(yùn)商能更新貨物狀態(tài)。狀態(tài)更新只能發(fā)生在運(yùn)輸過程中貨物到達(dá)某些地點(diǎn),如到達(dá)目的機(jī)場。2)需求分析

A.服務(wù)識別

(1)它提供貨物狀態(tài)搜索服務(wù);

(2)進(jìn)行貨物狀態(tài)查詢時,它需要接受所有有效的可查詢的貨物信息(客戶ID,航班號,源機(jī)場等);

(3)它需要一個異常處理服務(wù)來處理查詢貨物狀態(tài)過程中的異常;

(4)異常處理服務(wù)需要發(fā)現(xiàn)運(yùn)行過程中任何無效的貨物狀態(tài);

(5)只有客戶能核查他/她的貨物歷史記錄;(6)只有承運(yùn)商能更新貨物狀態(tài);

(7)承運(yùn)商只能在檢查地更新貨物狀態(tài)。

B.本體

(1)狀態(tài)本體(正常狀態(tài)(運(yùn)輸中,未啟動,啟動,已送達(dá)),異常狀態(tài)(參考異常本體))。

(2)異常本體(貨物丟失,貨物延遲(天氣,運(yùn)輸),地址錯誤)。

(3)個人本體(用戶ID,貨物識別號,角色類型(如:客戶,收貨人,公司))。

(4)通知人本體(客戶姓名,Email地址,郵寄地址,手機(jī)號碼)。(5)貨物本體(通知人,追蹤號,貨物識別號,航班號,狀態(tài),始發(fā)地和目的地)。

(6)工作流本體(登記貨物工作流,搜索狀態(tài)工作流,更新狀態(tài)工作流,取消貨物工作流,異常處理工作流)。

C.設(shè)計(jì)

C1.服務(wù)

信息庫中的以下服務(wù)是有用的:

(1)貨物狀態(tài)列表服務(wù)。(2)獲取狀態(tài)服務(wù)。

(3)設(shè)置狀態(tài)服務(wù)。

(4)按客戶姓名追蹤服務(wù)。

(5)按出發(fā)地追蹤服務(wù)。

(6)按目的地追蹤服務(wù)。

(7)按位置追蹤服務(wù)。

(8)按追蹤號碼追蹤服務(wù)。

(9)獲取異常列表服務(wù)。

(10)獲取異常服務(wù)。開發(fā)是新開發(fā)的服務(wù):

(1)按航班號追蹤

說明:該服務(wù)用來獲取指定航班號上裝載的所有貨物;

輸入:航班號(字符型;)

輸出:航班上的貨物列表。

(2)Email服務(wù)

說明:該服務(wù)用來發(fā)送Email;

輸入:收件人Email地址,Email信息,發(fā)件人Email地址;

輸出:無。C2.工作流

(1)原有的追蹤工作流可以修改為“按追蹤號碼追蹤服務(wù)”;

(2)原有的追蹤工作流可以修改為“按客戶姓名、始發(fā)地、目的地和位置追蹤服務(wù)”;

(3)如圖13.19所示,原有的狀態(tài)識別工作流可以和異常識別工作流(異常處理)集成在一起。

圖13.19修改的工作流異常處理是為了識別無效的貨物狀態(tài)。當(dāng)發(fā)現(xiàn)一個無效狀態(tài),異常處理應(yīng)通過Email報告給系統(tǒng)管理員。

C3.協(xié)作模板

修改/更新貨物狀態(tài)功能可以通過重用已有的協(xié)作模板實(shí)現(xiàn)。3.收益報告

1)說明

(1)追蹤系統(tǒng)有能力按日、月和年生成總收益報告;

(2)若給定的一天收益過低或過高,系統(tǒng)應(yīng)通過Email向管理人員通知這類不合常規(guī)的收益報告。

2)需求分析

A.服務(wù)識別

(1)它提供一個報告服務(wù);

(2)它需要使用日期/日期范圍信息為運(yùn)輸系統(tǒng)生成收益報表;(3)它需要一個異常處理服務(wù)來處理報告過程中發(fā)生的異常;

(4)當(dāng)收益過低或過高時它需要自動向管理人員發(fā)送Email。

B.本體

(1)貨物本體(貨物數(shù)量)。

(2)異常本體。(3)日期本體。

C.設(shè)計(jì)

C1.服務(wù)

以下是新開發(fā)的服務(wù):

(1)報告異常處理服務(wù)。

說明:該服務(wù)用來處理報告過程中發(fā)生的所有類型的異常;

輸入:該功能中發(fā)生的異常;

輸出:異常處理的結(jié)果。(2)報告服務(wù)。

說明:該服務(wù)用來生成收益報表;

輸入:任何有效的日期(日,月,年);

輸出:報表。

C2.工作流

這里應(yīng)開發(fā)一個工作流,把它留作練習(xí)。

C3.協(xié)作模板

針對該功能應(yīng)開發(fā)一個新的協(xié)作過程,這也留作練習(xí)。4.異常處理

1)說明

(1)追蹤系統(tǒng)能夠處理運(yùn)輸過程中所有類型的異常,如貨物丟失或延遲;

(2)如果貨物因天氣惡劣或航班延誤而延遲,承運(yùn)商將更新狀態(tài);

(3)如果貨物丟失了,系統(tǒng)應(yīng)更新貨物狀態(tài),然后通過Email通知客戶。2)需求分析

A.服務(wù)識別

(1)它需要提供異常處理服務(wù);

(2)如果需要,它必須具有更新貨物狀態(tài)的能力;

(3)當(dāng)貨物丟失時它需要向客戶發(fā)送Email。

B.本體

異常本體(貨物丟失,貨物延遲(天氣,交通),地址錯誤)。C.設(shè)計(jì)

C1.服務(wù)

信息庫中的以下服務(wù)是有用的:

(1)獲取異常列表服務(wù)。

(2)貨物異常服務(wù)。

(3)設(shè)置異常服務(wù)。

(4)獲取客戶服務(wù)——獲取客戶的Email地址。

以下是新開發(fā)的服務(wù):

郵件服務(wù)說明:該服務(wù)用來發(fā)送Email;

輸入:收件人Email地址,Email信息,發(fā)件人Email地址;

輸出:無。

C2.工作流

可以修改原有的異常通知工作流,留作練習(xí)。

C3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論