版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于WebGIS物流信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)作者姓名: 張三一指引教師: 李四二專家單位名稱: 信息科學(xué)與工程學(xué)院專業(yè)名稱: 計(jì)算機(jī)科學(xué)與技術(shù)東北大學(xué)6月DesignandImplementationofWebGIS-BasedLogisticsInformationSystembyZHANGSanyiSupervisor:ProfessorLISierNortheasternUniversityJune畢業(yè)設(shè)計(jì)(論文)任務(wù)書畢業(yè)設(shè)計(jì)(論文)題目:基于WebGIS物流信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)設(shè)計(jì)(論文)基本內(nèi)容:(1)理解項(xiàng)目開發(fā)背景,分析項(xiàng)目進(jìn)度管理系統(tǒng)功能需求,研究其設(shè)計(jì)及實(shí)現(xiàn)技術(shù)。(2)設(shè)計(jì)基于WebGIS物流信息系統(tǒng)總體構(gòu)造,實(shí)現(xiàn)物流公司中業(yè)務(wù)流程所有必須功能。作為物流公司管理軟件,系統(tǒng)必須可以實(shí)現(xiàn)諸如發(fā)送貨品、運(yùn)送貨品、裝載貨品、卸載貨品、車輛線路編輯等功能。(3)總結(jié)歸納所完畢任務(wù),彌補(bǔ)局限性,以最短時(shí)間用至少投入實(shí)現(xiàn)項(xiàng)目開發(fā)。畢業(yè)設(shè)計(jì)(論文)專項(xiàng)某些:題目:設(shè)計(jì)或論文專項(xiàng)基本內(nèi)容:學(xué)生接受畢業(yè)設(shè)計(jì)(論文)題目日期第1周指引教師簽字:3月5日基于WebGIS物流信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要隨著經(jīng)濟(jì)發(fā)展和通信技術(shù)提高,物流作為一種先進(jìn)組織方式和管理技術(shù),被廣泛以為是公司在減少消耗和提高勞動(dòng)生產(chǎn)率以外重要利潤源泉,在國民經(jīng)濟(jì)和社會(huì)發(fā)展中發(fā)揮著重要作用。本文在物流公司正常運(yùn)營中,基于GIS信息系統(tǒng)已經(jīng)成為不可或缺管理工具。在對(duì)WebGIS技術(shù)和物流公司需求進(jìn)行分析基本上,結(jié)合不同公司業(yè)務(wù)流程詳細(xì)特點(diǎn),設(shè)計(jì)了一套擴(kuò)展性較強(qiáng)基于WebGIS物流信息系統(tǒng)。系統(tǒng)重要功能是將公司管理人員與運(yùn)送車輛之間通過服務(wù)器連接起來,實(shí)現(xiàn)物流系統(tǒng)監(jiān)控和管理。系統(tǒng)采用B/S架構(gòu),服務(wù)器端通過網(wǎng)絡(luò)與車輛終端通信,向車輛發(fā)送控制信息并獲取車輛當(dāng)前狀態(tài)。同步它還和Web客戶端進(jìn)行交互,向客戶端提供地圖服務(wù),并執(zhí)行Web客戶端祈求。Web客戶端采用Ajax技術(shù)與服務(wù)器端進(jìn)行通信,通過動(dòng)態(tài)地圖監(jiān)控車輛。它還實(shí)現(xiàn)了發(fā)送貨品、編輯線路、發(fā)送消息等功能??紤]到可擴(kuò)展性,系統(tǒng)重點(diǎn)實(shí)現(xiàn)了服務(wù)器端進(jìn)行消息中轉(zhuǎn)消息隊(duì)列,建立了Web客戶端到車輛終端之間消息通路,并可以隨時(shí)更新消息隊(duì)列中消息解決方式。本系統(tǒng)實(shí)現(xiàn)了物流系統(tǒng)重要功能,極大提高了公司管理水平。本文一方面進(jìn)行了系統(tǒng)需求獲取和業(yè)務(wù)分析。然后,采用分層辦法對(duì)系統(tǒng)進(jìn)行設(shè)計(jì),論述了消息隊(duì)列框架詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),并論述了服務(wù)器端和客戶端功能模塊設(shè)計(jì)和實(shí)現(xiàn)。并通過對(duì)系統(tǒng)測試,對(duì)其功能和性能進(jìn)行評(píng)估。最后,進(jìn)行了總結(jié),簡介了系統(tǒng)特點(diǎn)和局限性之處,指出了下一步工作方向。核心詞:物流;WebGIS;消息隊(duì)列DesignandImplementationofWebGIS-BasedLogisticsInformationSystemAbstractWithdevelopmentofeconomyandimprovementofcommunicationtechnology,asanadvancedmodeoforganizationandmanagementskill,logisticsiswidelyconsideredtobethemajorsourceofprofitsintheenterprisebesidesreducingconsumptionandraisinglaborproductivity.Itplaysanimportantroleinthenationaleconomyandsocialdevelopment.TheGIS-basedinformationsystemhasbecomeanindispensablemanagementtoolintheregularbusinessoflogisticsenterprise.BasedontheanalysisoftheWebGIStechnologyandrequirementsoflogisticsenterprise,aWebGIS-basedlogisticsinformationsystemwithhighexpansibilityisdesigned,accordingtospecificbusinessprocessesofvariouslogisticsenterprises.Themajorfunctionofthesystemistomakemanagercommunicatedwithvehiclesviatheserver,andtorealizemonitoringandmanagementoflogisticssystem.TheB/Sarchitectureisadoptedinthesystem.Theservercommunicateswithvehiclesthroughnetwork,sendingthemcontroldataandreceivingstatusdatafromthem.Atthesametime,serverinteractswithWebclients,providingwebmapserviceandexecutingclientrequests.WebclientcommunicateswithserverwithAjaxtechnology,monitoringvehiclesbywatchingdynamicmaps.Italsoimplementsfunctionssuchassendingcargo,editingroute,sendingmessage,etc.Aimingathighexpansibilityofthesystem,messagequeuekeptinserverisseriouslyimplemented.ItmeansthatamessagechannelbetweentheWebclientandvehiclesisestablished,andthehandlingmethodsofthemessagesinmessagequeuecanbeupdatedatanytime.Thesystemmeetsprimaryrequirementsandenhancesmanagementqualityofcustomer.Firstly,inthisthesistherequirementelicitationandthebusinessanalysisarecompleted.Thensystemisdesignedintomulti-layerarchitecture.Theparticulardesignandimplementationofmessagequeueframeworkaredescribed.Designandimplementationofthefunctionalmodulesofserverandclientarepresented.Functionandcapabilityofthesystemareevaluatedthroughtest.Atlast,systemtraitsanddeficienciesaresummarized,andnexttasksarepointedout.Keywords:Logistics;WebGIS;MessageQueue目錄畢業(yè)設(shè)計(jì)(論文)任務(wù)書 I摘要 IIAbstract III第1章引言 51.1課題研究背景和來源 51.2課題研究成果應(yīng)用實(shí)際意義 51.3本文內(nèi)容及重要工作 5第2章有關(guān)技術(shù)簡介 52.1GIS技術(shù) 52.2WebGIS技術(shù) 52.2.1WebGIS簡介 52.2.2WebGIS合同簡介 52.2.3WebGIS開源平臺(tái) 52.3Ajax架構(gòu) 52.4Spring架構(gòu) 52.5本章小結(jié) 5第3章需求分析 53.1系統(tǒng)實(shí)現(xiàn)目的 53.2系統(tǒng)運(yùn)營環(huán)境 53.3系統(tǒng)開發(fā)環(huán)境 53.4功能性需求描述 53.4.1發(fā)送貨品 53.4.2查詢貨品狀態(tài) 53.4.3提貨 53.4.4查詢系統(tǒng)信息 53.4.5配備車輛線路 53.4.6實(shí)時(shí)顯示系統(tǒng)信息 53.4.7傳遞消息 53.4.8發(fā)送實(shí)時(shí)狀態(tài)信息 53.4.9車輛完畢運(yùn)送段 53.4.10操作貨品 53.4.11補(bǔ)充需求 53.5非功能性需求描述 53.6系統(tǒng)術(shù)語表 53.7本章小結(jié) 5第4章系統(tǒng)設(shè)計(jì) 54.1系統(tǒng)設(shè)計(jì)原則 54.2系統(tǒng)總體設(shè)計(jì) 54.3數(shù)據(jù)訪問層設(shè)計(jì) 54.4服務(wù)層設(shè)計(jì) 54.5Web服務(wù)層設(shè)計(jì) 54.6消息解決某些設(shè)計(jì) 54.6.1消息隊(duì)列設(shè)計(jì) 54.6.2消息解決詳細(xì)功能設(shè)計(jì) 54.6.3Socket控制層詳細(xì)設(shè)計(jì) 54.7系統(tǒng)業(yè)務(wù)功能設(shè)計(jì) 54.7.1貨品發(fā)送功能設(shè)計(jì) 54.7.2線路編輯功能設(shè)計(jì) 54.7.3貨品運(yùn)送功能設(shè)計(jì) 54.7.4權(quán)限操作功能設(shè)計(jì) 54.8數(shù)據(jù)庫設(shè)計(jì) 54.8.1發(fā)貨操作模塊表設(shè)計(jì) 54.8.2線路編輯模塊表設(shè)計(jì) 54.8.3貨品運(yùn)送模塊表設(shè)計(jì) 54.8.4權(quán)限控制模塊表設(shè)計(jì) 54.8.5消息解決模塊表設(shè)計(jì) 54.9本章小結(jié) 5第5章系統(tǒng)實(shí)現(xiàn) 55.1地圖數(shù)據(jù)傳播與顯示 55.2客戶端設(shè)計(jì)與實(shí)現(xiàn) 55.2.1JavaScript語言面向?qū)ο缶幊?55.2.2客戶端祈求合同和祈求流程實(shí)現(xiàn) 55.2.3客戶端框架實(shí)現(xiàn) 55.3系統(tǒng)安全控制實(shí)現(xiàn) 55.4貨品解決模塊實(shí)現(xiàn) 55.5消息解決模塊實(shí)現(xiàn) 55.6本章小結(jié) 5第6章系統(tǒng)測試 56.1單元測試 56.2集成測試 56.3系統(tǒng)測試 56.4本章小結(jié) 5第7章結(jié)論 57.1本文工作總結(jié) 57.2進(jìn)一步展望 5參照文獻(xiàn) 5致謝 5引言課題研究背景和來源隨著當(dāng)代科學(xué)技術(shù)迅猛發(fā)展,全球經(jīng)濟(jì)一體化趨勢加強(qiáng),各國都面臨著前所未有機(jī)遇和挑戰(zhàn)。物流作為一種先進(jìn)組織方式和管理技術(shù),被廣泛以為是公司在減少物資消耗,提高勞動(dòng)生產(chǎn)率以外重要利潤源泉,在國民經(jīng)濟(jì)和社會(huì)發(fā)展中發(fā)揮著重要作用。物流業(yè)產(chǎn)生于20世紀(jì)60年代,發(fā)展到90年代,是以滿足客戶規(guī)定為目,對(duì)貨品、服務(wù)和有關(guān)信息在產(chǎn)出地和銷售之間實(shí)現(xiàn)高效率和低成本正向和逆向流動(dòng)和存儲(chǔ)所進(jìn)行籌劃執(zhí)行和控制過程。由于當(dāng)代生產(chǎn)技術(shù)發(fā)展,產(chǎn)品生命周期越來越短,在社會(huì)生產(chǎn)開始由單一品種大批量生產(chǎn)向小批量、多品種定制化生產(chǎn)同步,物流業(yè)開始由大批量、長周期物流向小批量、多頻次方向發(fā)展,使物流控制越來越復(fù)雜。隨著科學(xué)技術(shù)特別是信息技術(shù)發(fā)展,信息化物流使公司可以在全球范疇內(nèi)進(jìn)行超時(shí)空交易,又增進(jìn)了物流業(yè)進(jìn)一步發(fā)展與繁華。在整個(gè)物流決策中,運(yùn)送成本占到物流總成本35%~50%左右。因此,物流信息化重點(diǎn)在于物流運(yùn)送系統(tǒng)信息化[1]。物流信息化技術(shù)重要涉及:全球定位系統(tǒng)(GPS)、地理信息系統(tǒng)(GeographicInformationSystem,GIS)、射頻(RF)、條形碼和電子數(shù)據(jù)互換技術(shù)等。其中GIS技術(shù)起到一種非常重要作用。GIS是一種以采集、貯存、管理、分析和描述整個(gè)或某些地球表面與空間地理分布關(guān)于數(shù)據(jù)空間信息系統(tǒng)。在當(dāng)代信息社會(huì)里,GIS作為一種集地理空間特性和各種記錄信息為一體特殊信息系統(tǒng),是信息高速公路上節(jié)點(diǎn)和基本設(shè)施,受到全社會(huì)廣泛關(guān)注,成為當(dāng)前國內(nèi)熱門研究課題。GPRS,GPS技術(shù)發(fā)展又為GIS數(shù)據(jù)實(shí)時(shí)獲取和實(shí)時(shí)傳播奠定了堅(jiān)實(shí)基本?;贕IS系統(tǒng)已經(jīng)開始在各個(gè)領(lǐng)域浮現(xiàn)。特別以交通運(yùn)送、物流、森林?jǐn)?shù)據(jù)分布等與地理數(shù)據(jù)關(guān)系最為緊密領(lǐng)域?yàn)樯?。在物流系統(tǒng)中,GIS技術(shù)可以在模型參照數(shù)據(jù)、車輛監(jiān)控和實(shí)時(shí)調(diào)度、監(jiān)控車輛位置與狀態(tài)、車輛導(dǎo)航以及選取最佳途徑等大量涉及空間數(shù)據(jù)和屬性數(shù)據(jù)世紀(jì)應(yīng)用中,提供有效管理和科學(xué)決策根據(jù)[2]。對(duì)于基于C/S架構(gòu)GIS系統(tǒng)來說,服務(wù)器負(fù)責(zé)收集實(shí)時(shí)地理數(shù)據(jù),客戶端負(fù)責(zé)訪問。這種架構(gòu)雖然可以充分運(yùn)用客戶端計(jì)算機(jī)計(jì)算能力,減少服務(wù)器所承受到壓力。但是弊端也是很明顯,客戶端過度臃腫,數(shù)據(jù)完整性不可控,不能適應(yīng)復(fù)雜網(wǎng)絡(luò)環(huán)境,安全性得不到保障,功能可擴(kuò)展性低,代碼維護(hù)困難重重和服務(wù)器資源揮霍等。無法勝任分布式應(yīng)用系統(tǒng)復(fù)雜性,客戶端軟件系統(tǒng)只能運(yùn)營在單一操作系統(tǒng)平臺(tái)上,采用相似網(wǎng)絡(luò)傳播合同等局限都大大影響了軟件系統(tǒng)可布置環(huán)境,這樣就增長了公司在硬件及網(wǎng)絡(luò)資源重復(fù)性投入成本??蓴U(kuò)展性受到限制,軟件系統(tǒng)被安裝在客戶端,一旦軟件發(fā)現(xiàn)Bug,軟件需要升級(jí),對(duì)軟件修改將是公司一筆不小開支。對(duì)于GIS系統(tǒng)來說,數(shù)據(jù)源也許分布在各種不同地點(diǎn),客戶端也分布在不同地點(diǎn),那么整個(gè)系統(tǒng)在物理架構(gòu)上來說就是一種分布式系統(tǒng)。對(duì)于這種系統(tǒng)來說,要提高系統(tǒng)運(yùn)營效率、適應(yīng)復(fù)雜網(wǎng)絡(luò)環(huán)境、減少維護(hù)費(fèi)用,那么B/S架構(gòu)相對(duì)于C/S架構(gòu)有更大潛力。隨著Web技術(shù)發(fā)展,Web技術(shù)與GIS相結(jié)合產(chǎn)生WebGIS成為GIS技術(shù)發(fā)展必然趨勢。相對(duì)于老式C/S架構(gòu)GIS系統(tǒng)。WebGIS系統(tǒng)采用B/S架構(gòu)。布置和升級(jí)時(shí)只需要對(duì)服務(wù)器進(jìn)行操作,節(jié)約了公司資源。當(dāng)前Web軟件架構(gòu)發(fā)展,使得B/S架構(gòu)已經(jīng)向多層架構(gòu)方向發(fā)展,普通由客戶端、Web服務(wù)層、應(yīng)用服務(wù)層、數(shù)據(jù)層等構(gòu)成??蛻舳思礊g覽器,負(fù)責(zé)顧客輸入和成果顯示;Web服務(wù)層提供JSP或者Servlet等開發(fā)、布置和運(yùn)營,為客戶端準(zhǔn)備前端顯示頁面代碼;應(yīng)用服務(wù)層實(shí)現(xiàn)公司業(yè)務(wù)邏輯和業(yè)務(wù)實(shí)體,并提供開發(fā)、布置和運(yùn)營環(huán)境,同步該層也提供對(duì)分布式網(wǎng)絡(luò)環(huán)境支持,使得Web軟件架構(gòu)具備跨操作系統(tǒng)平臺(tái)和跨網(wǎng)絡(luò)傳播合同等優(yōu)勢;數(shù)據(jù)層封裝了數(shù)據(jù)庫底層操作,涉及添加、查詢、修改和刪除等。B/S可分布式架構(gòu)可以明顯減輕各個(gè)服務(wù)器負(fù)載,提高系統(tǒng)整體運(yùn)營速度。通過B/S架構(gòu)提供WebService服務(wù),客戶端可以運(yùn)用JavaScript代碼控制對(duì)各個(gè)WebService訪問順序,從而輕松地修改業(yè)務(wù)操作實(shí)現(xiàn)流程,這對(duì)于業(yè)務(wù)流程比較相似物流公司來說,意味著開發(fā)出來系統(tǒng)通過簡樸配備可以以便地運(yùn)用到其她公司運(yùn)營管理中,大大提高了可系統(tǒng)擴(kuò)展性和復(fù)用性。綜上所述,需要一套基于WebGIS物流信息系統(tǒng)來優(yōu)化物流系統(tǒng)流程,提高公司運(yùn)營效率,減少運(yùn)營成本。課題研究成果應(yīng)用實(shí)際意義本文研究重要目是實(shí)現(xiàn)一種Web客戶端到GIS數(shù)據(jù)源之間進(jìn)行消息傳播通用框架,并在此基本上實(shí)現(xiàn)物流系統(tǒng)需求功能。由于各個(gè)公司有各自業(yè)務(wù)流程和數(shù)據(jù)表達(dá)辦法,平時(shí)開發(fā)過程中需要對(duì)不同公司實(shí)現(xiàn)不同數(shù)據(jù)構(gòu)造和業(yè)務(wù)流程。而在系統(tǒng)開發(fā)時(shí)候往往針對(duì)一種公司進(jìn)行數(shù)據(jù)定義和建模開發(fā)。這種開發(fā)方式偏重于應(yīng)用,沒有過多考慮系統(tǒng)復(fù)用。如果需求有了變化,往往要大面積地修改代碼,甚至是重新開發(fā)。這樣就揮霍了大量人力物力。要達(dá)到減少開發(fā)成本目,最直接辦法就是復(fù)用此前系統(tǒng)。但是公司之間業(yè)務(wù)流程和數(shù)據(jù)表達(dá)方式差別提高了系統(tǒng)復(fù)用門檻,減少了不同公司之間軟件復(fù)用也許性。但是對(duì)于物流系統(tǒng)來說,它們解決貨品業(yè)務(wù)流程過程中數(shù)據(jù)流向和解決解決方式是相似,只是存在不多差別。而在基于WebGIS系統(tǒng)中,由于GIS數(shù)據(jù)源和Web客戶端抽象化,使得它們與服務(wù)器之間數(shù)據(jù)流動(dòng)更加清晰。最后可以整頓出一份關(guān)于Web客戶端和服務(wù)器進(jìn)行交互通用需求和一份物流系統(tǒng)貨品解決流程通用需求。在軟件復(fù)用中,如果一系列系統(tǒng)共享特定領(lǐng)域中明確需求,那么這一系列系統(tǒng)構(gòu)成軟件產(chǎn)品線。它們之間可以共享架構(gòu),從而縮短類似系統(tǒng)開發(fā)時(shí)間,提高開發(fā)效率[3]。因此本系統(tǒng)可以側(cè)重架構(gòu)設(shè)計(jì),從而產(chǎn)生一種可以復(fù)用,支持GIS數(shù)據(jù)源、服務(wù)器、Web客戶端之間進(jìn)行數(shù)據(jù)流動(dòng)和數(shù)據(jù)解決架構(gòu)。架構(gòu)擬定了系統(tǒng)整體構(gòu)造、層次劃分、不同某些之間協(xié)作關(guān)系后來,所形成詳細(xì)實(shí)現(xiàn)構(gòu)成了可復(fù)用框架??蚣茏饔?,在于擬定公司各種業(yè)務(wù)詳細(xì)技術(shù)實(shí)現(xiàn),并規(guī)定它們在系統(tǒng)中組織方式和協(xié)作方式,從而構(gòu)成完整公司應(yīng)用解決方案,迅速完畢系統(tǒng)開發(fā)[4]。在框架基本上,實(shí)現(xiàn)物流系統(tǒng)解決貨品流程通用需求,提供盡量小WebService接口。這樣,Web客戶端可以運(yùn)用Ajax技術(shù)和服務(wù)器交互,將WebService提供服務(wù)連接起來,構(gòu)成詳細(xì)業(yè)務(wù)流程。本課題研究系統(tǒng),就是要通過Web服務(wù)器在公司不同GIS數(shù)據(jù)源和Web客戶單管理人員之間搭建一種實(shí)時(shí)數(shù)據(jù)傳播和解決架構(gòu),產(chǎn)生合用于WebGIS系統(tǒng)通用模板。并在此基本上添加數(shù)據(jù)構(gòu)造和業(yè)務(wù)解決流程,實(shí)現(xiàn)物流公司中貨品輸入、線路定義、車輛監(jiān)控、實(shí)時(shí)消息傳播等功能。考慮到物流公司需求之間相似性,本系統(tǒng)構(gòu)建框架可以通過簡樸配備并添加恰當(dāng)數(shù)據(jù)構(gòu)造,直接應(yīng)用到其她公司中。本文內(nèi)容及重要工作本文在分析簡介了WebGIS技術(shù),WMS/WMF合同、WebGIS有關(guān)組件基本上,基于物流系統(tǒng)需求特點(diǎn),簡介了GIS數(shù)據(jù)轉(zhuǎn)發(fā)傳播和解決架構(gòu),并且實(shí)現(xiàn)了物流系統(tǒng)基本功能。各章內(nèi)容組織如下:第2章簡介了GIS技術(shù)、WebGIS技術(shù)合同和開源平臺(tái)、Ajax技術(shù)以及Spring框架技術(shù);第3章分析了系統(tǒng)開發(fā)環(huán)境,運(yùn)用用例建模分析系統(tǒng)功能需求,并且依照實(shí)際狀況補(bǔ)充了某些需求,提出了非功能性需求,并描述了系統(tǒng)術(shù)語表;第4章對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì),并對(duì)服務(wù)層、Web服務(wù)層、數(shù)據(jù)訪問層、消息解決某些、socket控制層等進(jìn)行詳細(xì)設(shè)計(jì),對(duì)系統(tǒng)中貨品運(yùn)送、線路編輯、權(quán)限控制、發(fā)送貨品等功能進(jìn)行了詳細(xì)設(shè)計(jì),對(duì)簡介了系統(tǒng)中數(shù)據(jù)庫表;第5章重要簡介了JavaScript語言面向?qū)ο蠛褪录?qū)動(dòng)實(shí)現(xiàn),展示了Web客戶端依照有關(guān)合同與服務(wù)器交互流程,并簡介了客戶端框架實(shí)現(xiàn)以及定期更新機(jī)制實(shí)現(xiàn)。最后是服務(wù)器端詳細(xì)實(shí)現(xiàn),展示了安全控制機(jī)制下顧客訪問服務(wù)器流程、貨品從發(fā)貨到最后提貨整個(gè)解決流程,重點(diǎn)簡介了消息在管理人員、服務(wù)器端、車輛終端之間進(jìn)行交互傳播和解決流程;第6章簡介了運(yùn)用工具進(jìn)行測試狀況,并對(duì)浮現(xiàn)錯(cuò)誤進(jìn)行了分析解決;第7章結(jié)論某些是對(duì)整個(gè)論文工作總結(jié)以及下一步工作展望,指出咱們工作中有待改進(jìn)地方,同步指明了下一步研究方向。有關(guān)技術(shù)簡介GIS技術(shù)GIS是以采集、存儲(chǔ)、管理、分析、描述和應(yīng)用整個(gè)或某些地球表面(涉及大氣層在內(nèi))與空間和地理分布關(guān)于數(shù)據(jù)計(jì)算機(jī)系統(tǒng)。它由硬件、軟件、數(shù)據(jù)和顧客有機(jī)結(jié)合而構(gòu)成。GIS要實(shí)現(xiàn)五個(gè)基本功能為:數(shù)據(jù)輸入、數(shù)據(jù)編輯、數(shù)據(jù)存儲(chǔ)與管理、空間查詢與空間分析以及圖形輸出與交互操作。GIS始于60年代加拿大與美國,爾后各國相繼投入了大量研究工作,自80年代末以來,隨著計(jì)算機(jī)技術(shù)飛速發(fā)展,地理信息解決、分析手段日趨先進(jìn),GIS技術(shù)日臻成熟,已廣泛地應(yīng)用于環(huán)境、資源、石油、電力、土地、交通、公安、急救、航空、市政治理、都市規(guī)劃、經(jīng)濟(jì)征詢、劫難損失猜測、投資評(píng)價(jià)、政府治理和軍事等與地理坐標(biāo)有關(guān)幾乎所有領(lǐng)域。GIS技術(shù)依托重要工具和平臺(tái)是計(jì)算機(jī)及其有關(guān)設(shè)備。進(jìn)入90年代以來,隨著計(jì)算機(jī)技術(shù)發(fā)展,計(jì)算機(jī)微解決器解決速度愈來愈快,性能價(jià)格比更高;其存儲(chǔ)器能實(shí)現(xiàn)將大型文獻(xiàn)映射至內(nèi)存能力,并且能存儲(chǔ)海量數(shù)據(jù)。此外,隨著多媒體技術(shù)、空間技術(shù)、虛擬實(shí)景、數(shù)字測繪技術(shù)、數(shù)據(jù)倉庫技術(shù)、計(jì)算機(jī)圖形技術(shù)、三維圖形芯片、大容量光盤技術(shù)及寬頻光纖通訊技術(shù)突破性進(jìn)展,消除數(shù)據(jù)通訊瓶頸衛(wèi)星互聯(lián)網(wǎng)建立,以及可以提供接近實(shí)時(shí)對(duì)地觀測圖像高辨別、高光譜、短周期遙感衛(wèi)星大量發(fā)射,這些為GIS技術(shù)廣泛、進(jìn)一步應(yīng)用展示了更加光明前景。同步,也使當(dāng)前GIS已不能滿足信息時(shí)代、數(shù)字時(shí)代規(guī)定,當(dāng)前GIS總體上呈現(xiàn)網(wǎng)絡(luò)化、開放性、虛擬現(xiàn)實(shí)、集成化、空間多維性等發(fā)展趨勢。WebGIS技術(shù)WebGIS簡介WebGIS是GIS技術(shù)與WWW技術(shù)結(jié)合,是在Internet網(wǎng)絡(luò)環(huán)境下一種傳播、存儲(chǔ)、解決、分析和顯示與應(yīng)用地理信息計(jì)算機(jī)系統(tǒng)。稱之為WebGIS因素是大多數(shù)客戶端應(yīng)用采用了WWW合同。在Internet支持下,依照TCP/IP和HTTP合同,WebGIS把支持原則HTML瀏覽器作為統(tǒng)一客戶端,因此狹義地講WebGIS是一種在Internet上發(fā)展起來新技術(shù),其核心是將GIS功能嵌入到滿足HTTP和TCP/IP原則Internet應(yīng)用體系中,實(shí)現(xiàn)Internet環(huán)境下地理信息有效管理和解決。與老式地理信息系統(tǒng)相比較,WebGIS有如下特點(diǎn):(1)更廣泛客戶訪問范疇。客戶可以同步訪問各種位于不同地方服務(wù)器上最新數(shù)據(jù),而Internet所特有優(yōu)勢大大擴(kuò)展了GIS數(shù)據(jù)解決能力,增強(qiáng)了空間數(shù)據(jù)時(shí)效性。(2)客戶端平臺(tái)獨(dú)立性。無論客戶機(jī)是何種操作系統(tǒng),只要支持通用Web瀏覽器,顧客就可以訪問GIS數(shù)據(jù)及服務(wù)器所提供服務(wù)。(3)更簡樸操作。要推廣GIS,使GIS系統(tǒng)為廣大普通顧客所接受,而不但僅局限于少數(shù)受過專業(yè)培訓(xùn)顧客,就要減少對(duì)系統(tǒng)操作難度。通過Web瀏覽器提供和諧顧客界面無疑是一種較好選取。(4)更高效計(jì)算負(fù)載平衡。老式GIS大都使用文獻(xiàn)服務(wù)器構(gòu)造解決方式,其解決能力完全依賴客戶端,效率較低。而當(dāng)今某些高檔WebGIS能充分運(yùn)用網(wǎng)絡(luò)資源,將復(fù)雜解決交由服務(wù)器解決,而簡樸操作則由客戶端直接完畢。這種計(jì)算能靈活地在服務(wù)器端和客戶端之間合理地分派解決任務(wù),提高網(wǎng)絡(luò)資源運(yùn)用效率,提高了系統(tǒng)性能。(5)分布式系統(tǒng)。Internet一種特點(diǎn)就是它可以訪問分布式數(shù)據(jù)庫和執(zhí)行分布式解決,即信息和應(yīng)用可以布置在跨越整個(gè)Internet不同計(jì)算機(jī)上。GIS數(shù)據(jù)和分析工具是獨(dú)立組件和模塊,WebGIS運(yùn)用Internet這種分布式系統(tǒng)把GIS數(shù)據(jù)和分析工具布置在網(wǎng)絡(luò)不同計(jì)算機(jī)上,顧客可以從網(wǎng)絡(luò)任何地方訪問這些數(shù)據(jù)和應(yīng)用程序,不需要在本地計(jì)算機(jī)上安裝GIS數(shù)據(jù)和應(yīng)用程序,只要把祈求發(fā)送到服務(wù)器,服務(wù)器就會(huì)把數(shù)據(jù)和分析工具模塊傳送給顧客,達(dá)到實(shí)時(shí)布置性能。(6)動(dòng)態(tài)性。由于WebGIS是分布式系統(tǒng),數(shù)據(jù)與應(yīng)用程序布置在不同計(jì)算機(jī)上,隨時(shí)也許被管理員更新,對(duì)于Internet上每一種顧客來說,都能得到最新數(shù)據(jù)和應(yīng)用程序最新版本,只要數(shù)據(jù)源發(fā)生變化,和數(shù)據(jù)源動(dòng)態(tài)連接將保持?jǐn)?shù)據(jù)實(shí)時(shí)性。(7)交互性。WebGIS可使顧客在Internet上操作GIS地圖和數(shù)據(jù),用Web瀏覽器(IE,Netscape等)執(zhí)行某些基本GIS功能:如縮放,漫游,查詢和標(biāo)注,甚至可以執(zhí)行空間查詢:如“離你近來旅館或飯店在哪兒”,或者更先進(jìn)空間分析:例如緩沖分析和網(wǎng)絡(luò)分析等。在Web上使用WebGIS就和在本地計(jì)算機(jī)上使用桌面GIS軟件同樣。(8)經(jīng)濟(jì)性。普通專業(yè)GIS軟件非常昂貴,而對(duì)于普通顧客來說,只使用某些最基本功能,想購買專業(yè)軟件顯得不太也許,也不經(jīng)濟(jì)。WebGIS在客戶端只需要瀏覽器,GIS數(shù)據(jù)和GIS軟件管理與維護(hù)基本上由服務(wù)器完畢,因而系統(tǒng)成本比以往全套GIS軟件平臺(tái)要少得多,客戶端軟件簡樸化節(jié)約維護(hù)費(fèi)用也是很可觀。WebGIS合同簡介開放式地理信息系統(tǒng)協(xié)會(huì)(OpenGISConsortium,OGC)是非營利、國際自發(fā)性、研究地理信息系統(tǒng)原則國際組織。OGC所提供規(guī)范是協(xié)助GIS開發(fā)者創(chuàng)造一種高效、無隔閡和透明地理信息系統(tǒng)使用、分析、解決環(huán)境[5]。開放式地理信息系統(tǒng)(OpenGIS)正是由OGC提出一種為了實(shí)現(xiàn)開放式地理信息系統(tǒng)而提出開放式地理空間數(shù)據(jù)互操作規(guī)范。按照OpenGIS規(guī)范,可以構(gòu)造一種能獲取分布式地理空間數(shù)據(jù)和空間服務(wù)資源軟件框架。OpenGIS給全世界軟件開發(fā)商一種詳細(xì)通用界面模板,使得不同開發(fā)商依照OpenGIS開發(fā)出來不同GIS軟件可以進(jìn)行互操作。OpenGIS環(huán)繞著地理空間信息共享和提供地理空間解決服務(wù)兩個(gè)技術(shù)目的,重要涉及三某些內(nèi)容:開放式地理空間數(shù)據(jù)模型、OpenGIS服務(wù)模型和信息團(tuán)隊(duì)模型。其中與WebGIS關(guān)于合同重要有:GML(GeographyMarkupLanguage),WFS(WebFeatureService),WMS(WebMapService),SLD(StyledLayerDescriptor),WCS(WebCoverageService)和WSCS(WebServicesCommonSpecification)等規(guī)范[6]。其中GML、WMS、WFS和WCS可以作為Web服務(wù)空間數(shù)據(jù)服務(wù)規(guī)范,又可以作為空間數(shù)據(jù)互操作實(shí)現(xiàn)。只要某一種GIS軟件支持這個(gè)接口,布置在本地服務(wù)器上,其她GIS軟件就可以通過這個(gè)接口得到所需要數(shù)據(jù)。GML合同GML是一種用于建模、傳播和存儲(chǔ)地理及與地理有關(guān)信息XML編碼語言,它涉及了地理要素(Feature)與層(Coverage)空間與非空間特性。GML建立在W3C系列原則之上,以一種互聯(lián)網(wǎng)上容易共享方式來描述、表達(dá)地理信息,是第一種被GIS界廣泛接受元標(biāo)記語言。在這之前開發(fā)各種用于存儲(chǔ)和互換地理信息文獻(xiàn)格式或原則,由于缺少相應(yīng)支持工具,而沒有被廣泛接受。GML一種重要優(yōu)勢就是它可以讓開發(fā)者或顧客非常靈活地使用已被廣泛接受XML技術(shù),它建立在XML、XMLSchema、XLink和XPointer基本之上,GML數(shù)據(jù)可以很容易地與非空間數(shù)據(jù)集成使用。GML使用XML對(duì)地理數(shù)據(jù)進(jìn)行編碼,為開發(fā)商和顧客提供了一種開放、中立于任何廠商地理數(shù)據(jù)建模框架,使地理信息可以在不同領(lǐng)域、不同部門進(jìn)行語義共享。GML采用要素來描述地理實(shí)體和地理現(xiàn)象,GML要素是通過其屬性(property)來描述,這些屬性涉及:空間屬性、時(shí)態(tài)屬性及其她非空間時(shí)態(tài)屬性。OGC先后推出了3個(gè)版本GML,GML1.0版本于4月正式推出,GML2.0版本于2月推出,GML2.12版本于9月推出,年1月推出GML3.0版本。3.0版增長了對(duì)復(fù)雜幾何實(shí)體、拓?fù)洹⒖臻g參照系統(tǒng)、元數(shù)據(jù)、時(shí)間特性和動(dòng)態(tài)要素等支持,使其更加適合描述現(xiàn)實(shí)世界問題。GML作為一種空間數(shù)據(jù)編碼規(guī)范,它并沒有強(qiáng)制采用它顧客使用規(guī)定XML標(biāo)記,而是提供了一套基本標(biāo)簽、公共數(shù)據(jù)模型,以及顧客構(gòu)建應(yīng)用模式(GMLApplicationSchemas)機(jī)制[7]。WMS合同WMS從動(dòng)態(tài)地理信息中位置數(shù)據(jù),產(chǎn)生空間參照數(shù)據(jù)地圖。地圖格式可覺得PNG/GIF/JPEG/SVG/WebCGM中任意一種。這個(gè)規(guī)范定義了三個(gè)操作:GetCapabilities操作返回XML格式服務(wù)級(jí)元數(shù)據(jù),它是對(duì)服務(wù)信息內(nèi)容和可接受祈求參數(shù)一種描述;GetMap用來從地圖服務(wù)器得到一副具備特定地理位置坐標(biāo)范疇地圖圖像,在構(gòu)造祈求時(shí)需要設(shè)立圖層名稱、坐標(biāo)范疇、返回圖像高寬和格式等;GetFeatureInfo是WMS可選服務(wù),用來提供進(jìn)一步查詢地圖上某些特殊要素信息接口[8]。WFS合同WFS向顧客提供使用GML編碼地理空間要素?cái)?shù)據(jù),并支持在HTTP合同分布式計(jì)算機(jī)平臺(tái)上對(duì)地理要素進(jìn)行查詢、插入、更新和刪除操作等。這個(gè)規(guī)范定義了五個(gè)操作:GetCapabilities返回WFS性能描述文檔(用XML描述);DescribeFeatureType向顧客提供一種列表,表達(dá)WFS服務(wù)器能提供服務(wù)要素類型。列表還定義了祈求詳細(xì)要素實(shí)例時(shí)祈求格式以及輸出時(shí)生成要素實(shí)例辦法。;GetFeature為一種獲取要素實(shí)例祈求提供服務(wù);Transaction為事務(wù)祈求提供服務(wù);LockFeature解決在一種事務(wù)期間對(duì)一種或各種要素類型實(shí)例上鎖祈求[9]。在詳細(xì)GIS應(yīng)用當(dāng)中,WFS經(jīng)慣用來實(shí)現(xiàn)對(duì)地圖上數(shù)據(jù)查詢與修改,并經(jīng)常與系統(tǒng)領(lǐng)域?qū)又心P瓦M(jìn)行交互。WCS合同WCS合同是面向空間影像數(shù)據(jù),它將包括地理位置值地理空間數(shù)據(jù)作為“覆蓋(coverage)”在網(wǎng)上互相互換。WCS規(guī)范由三種操作構(gòu)成:GetCapabilities,GetCoverage和DescribeCoverageType。GetCapabilities操作返回描述服務(wù)和數(shù)據(jù)集XML文檔。WCS中GetCoverage操作是在GetCapabilities擬定什么樣查詢可以執(zhí)行、什么樣數(shù)據(jù)可以獲取之后執(zhí)行,它使用通用覆蓋格式返回地理位置值或?qū)傩?。客戶端可以指定獲取哪些覆蓋,以及對(duì)空間和非空間查詢進(jìn)行約束。DescribeCoverageType操作容許客戶端祈求由詳細(xì)WCS服務(wù)器提供任一覆蓋層完全描述[10]。在MapBuilder庫文獻(xiàn)中,運(yùn)用WCS進(jìn)行地理空間數(shù)據(jù)數(shù)據(jù)互換。WebGIS開源平臺(tái)GeoServer地圖服務(wù)器GeoServer是全面遵循OGC開放原則J2EE實(shí)現(xiàn),可以以便地發(fā)布地圖數(shù)據(jù),并且容許顧客對(duì)特性數(shù)據(jù)進(jìn)行更新、刪除、插入等操作,通過GeoServer可以比較容易地在顧客之間迅速共享空間地理信息。GeoServer支持PostGIS、oracle,mysql等數(shù)據(jù)庫數(shù)據(jù)源以及shapefile,mapinfo等格式文獻(xiàn)數(shù)據(jù)源;可以運(yùn)營在任何基于J2EE/Servlet容器上;可以通過WMS將數(shù)據(jù)采用maps/images方式發(fā)布,也可以通過WFS合同直接發(fā)布實(shí)際數(shù)據(jù)。GeoServer集成了GeoTools工具。GeoTools是一款基于Java開源GIS工具集,容許顧客對(duì)地理數(shù)據(jù)進(jìn)行基本操作。通過GeoTools各種接口和helper類,可以寫入新數(shù)據(jù)格式,通過GeoTools為GeoServer提供插件,在不進(jìn)行重新編譯狀況下,可以讓GeoServer支持更多數(shù)據(jù)格式,甚至只需要通過GUIoption設(shè)立即可。PostGIS數(shù)據(jù)庫管理系統(tǒng)PostGIS是由RefractionsResearchInc開發(fā),它是對(duì)象關(guān)系型數(shù)據(jù)庫系統(tǒng)PostgreSQL一種擴(kuò)展,容許數(shù)據(jù)庫存儲(chǔ)解決GIS對(duì)象。PostGIS提供了基于WKT和WKB格式EWKT和EWKB格式,存儲(chǔ)與訪問Geometry對(duì)象功能;同步,也提供了豐富維護(hù)、檢索和空間運(yùn)算函數(shù),保證能對(duì)矢量格式空間數(shù)據(jù)及其屬性數(shù)據(jù)進(jìn)行有效地組織、索引,并能依照顧客需求進(jìn)行自定義函數(shù)擴(kuò)充。PostGIS旨在支持開發(fā)PostGIS以支持重要GIS功能,涉及對(duì)OpenGIS完整支持,高檔拓?fù)錁?gòu)建,用于顯示和編輯GIS數(shù)據(jù)左面顧客界面工具和基于網(wǎng)絡(luò)訪問工具。與單純使用PostgreSQL相比,開發(fā)人員應(yīng)用PostGIS更易于實(shí)現(xiàn)空間幾何對(duì)象,PostGIS重要長處有:(1)在3D擴(kuò)展下支持OpenGISWKT空間數(shù)據(jù)對(duì)象,支持3DZ、3DM、4D坐標(biāo)表達(dá)。(2)支持SQL及空間查詢解決空間數(shù)據(jù)對(duì)象。(3)提供大量空間算子進(jìn)行空間操作,并提供了支持各種原則投影類型開源投影庫(Proj4)。PostGIS支持GIS對(duì)象是OGC定義“簡樸要素”超集[11]。MapBuilderMapBuilder是一種基于Ajax(AsynchronousJavaScriptandXML)技術(shù)地圖解決顯示W(wǎng)eb開源客戶端。它支持InternetExplorer6+、Mozilla1.3+、Netscape6+等瀏覽器。支持WMS和WFS-T服務(wù)。它依照WMS合同實(shí)現(xiàn)了地圖顯示、縮放、移動(dòng)等操作,并且可以運(yùn)用WFS-T合同修改服務(wù)器上地圖數(shù)據(jù)。通過簡樸配備,MapBuilder中組件可以輕松嵌入到網(wǎng)頁文獻(xiàn)中。在詳細(xì)實(shí)現(xiàn)上采用MVC模式,MVC是ModelViewController(模型,視圖,控制器)縮寫。這個(gè)模式目是為了簡化應(yīng)用程式實(shí)現(xiàn)。此模式涉及三個(gè)獨(dú)立組件。Model表達(dá)數(shù)據(jù),顧客期待看到數(shù)據(jù)。View負(fù)責(zé)展示模型。視圖在文本編輯器中也許按照恰當(dāng)格式顯示一段文本,在多數(shù)狀況下,試圖在Web應(yīng)用中生成HTML,以便客戶端瀏覽器解釋瀏覽。Controller是一段邏輯,負(fù)責(zé)解決祈求和按照客戶祈求行動(dòng),創(chuàng)立恰當(dāng)模型,并將其傳遞到視圖以供顯示。在MapBuilder中分別相應(yīng)于模式(Model)、飾件(Widget)、工具(Tool)三種類型JavaScript對(duì)象,實(shí)現(xiàn)了數(shù)據(jù)管理、信息表達(dá)和交互操作模塊化。MVC模式中一種重要問題是數(shù)據(jù)組織管理,對(duì)于MapBuilder而言就是數(shù)據(jù)模型。MapBuilder不提供普通點(diǎn)、線、面等幾何對(duì)象封裝,整個(gè)數(shù)據(jù)流完全通過XML配備與解析進(jìn)行管理,其長處是原則化限度高、客戶端使用便捷、無需編碼。這些數(shù)據(jù)流涉及系統(tǒng)配備、地圖配備以及服務(wù)器端交互所產(chǎn)生各種GML數(shù)據(jù)。其中系統(tǒng)配備文獻(xiàn)按照資源描述框架(ResourceDescriptionFramework,RDF)語法以O(shè)bject-Property-Value格式定義所需對(duì)象,每個(gè)對(duì)象被賦予一種唯一標(biāo)記ID,通過ID在全局域中可直接以config.objects.id來應(yīng)用指定對(duì)象實(shí)例。地圖配備文獻(xiàn)則按照OGCWMC(WebMapContext)規(guī)范定義地圖所需各參數(shù),所有配備文獻(xiàn)都將在頁面加載時(shí)被自動(dòng)解析,映射成為所定義對(duì)象實(shí)例。系統(tǒng)配備自身被映射為模型對(duì)象Config,所有模型對(duì)象都派生自抽象類ModelBase,統(tǒng)一調(diào)用GET辦法獲取數(shù)據(jù)信息,并以SET辦法設(shè)立、修改模型信息和狀態(tài)。GML數(shù)據(jù)僅作為中間互換數(shù)據(jù)存在,普通需要進(jìn)行XPath或XSLT轉(zhuǎn)換解決。MVC模式另一種重要問題就是消息傳遞和相應(yīng)。MapBuilder中由兩種消息類型:一種是瀏覽器定義各類系統(tǒng)消息,如鼠標(biāo)按下事件等;另一種是自定義消息,如加載模型事件loadModel等。系統(tǒng)消息由派生自ToolBase類工具對(duì)象解決,如響應(yīng)鼠標(biāo)點(diǎn)擊事件。這些工具對(duì)象常作為飾件對(duì)象一種屬性配備在系統(tǒng)文獻(xiàn)。事件對(duì)象則通過DIV等標(biāo)記與網(wǎng)頁建立關(guān)聯(lián)來呈現(xiàn)模型信息,普通派生自WidgetBase類。WidgetBase類與ModelBase類擁有共同父類Listener,因而飾件對(duì)象注冊給一種模型對(duì)象即可通過調(diào)用事件監(jiān)聽器互通自定義信息。模型修改會(huì)影響飾件狀態(tài),飾件同樣可以將系統(tǒng)事件影響傳遞給模型解決[12]。Ajax架構(gòu) Ajax是一種創(chuàng)立交互網(wǎng)頁技術(shù),由AdaptivePath征詢顧問JesseJamesGarrett一方面提出。它不是單一技術(shù),而是JavaScript、CSS、DOM、XMLHttpRequest對(duì)象集合。其中JavaScript是通用腳本語言,Web瀏覽器中嵌入JavaScript解釋器容許通過程序與瀏覽器諸多內(nèi)建功能進(jìn)行交互。CSS(層疊樣式表)為Web頁面元素提供了一種可重用可視化樣式定義辦法。它提供了簡樸而強(qiáng)大辦法,以一致方式定義和使用可視化式樣。DOM(文檔對(duì)象模型)以一組可以使用JavaScript操作可編程對(duì)象展示出Web頁面構(gòu)造。XMLHttpRequest對(duì)象容許Web程序從Web服務(wù)器后來臺(tái)活動(dòng)方式獲取數(shù)據(jù)。在Ajax使用當(dāng)中,JavaScript定義了業(yè)務(wù)規(guī)則和程序流程。應(yīng)用程序使用XMLHttpRequest對(duì)象后來臺(tái)方式從服務(wù)器獲得數(shù)據(jù)。DOM對(duì)象依照服務(wù)器得到數(shù)據(jù)修改客戶端Web頁面中元素值。CSS運(yùn)用規(guī)定好樣式將DOM對(duì)象顯示到瀏覽器中[13]。Spring架構(gòu)Spring是一種開源架構(gòu),由RodJohnson開發(fā)并在她著作ExpertOne-on-One:J2EEDesignandDevelopment中進(jìn)行描述。它用來簡化公司應(yīng)用程序開發(fā),使得程序僅僅運(yùn)用JavaBean就可以完畢此前只能由EJB來完畢工作。任何Java應(yīng)用程序都能從Spring框架簡樸、可測試性和松耦合中得到好處,而不但僅限定為服務(wù)器端程序。在J2EE中,EJB原意是為理解決諸如分布式對(duì)象和遠(yuǎn)程事務(wù)等問題而設(shè)計(jì)復(fù)雜組件。對(duì)于復(fù)雜度不高公司項(xiàng)目,在開發(fā)時(shí)也必要要承擔(dān)EJB眾多Java源文獻(xiàn)、繁雜布置描述以及重型容器等不便。雖然要解決問題很簡樸,EJB使用也會(huì)使得公司系統(tǒng)復(fù)雜度大大增長。因此使用Spring來代替EJB,它使得系統(tǒng)復(fù)雜度依賴于要解決問題,減少了容器對(duì)設(shè)計(jì)侵蝕。在簡化開發(fā)同步,它盡量提供了和EJB相似功能。Spring信條是:J2EE應(yīng)當(dāng)是易于使用。簡樸來說,Spring是一種輕型、控制反轉(zhuǎn)并且支持面向方面容器框架[14]。輕量級(jí)容器意味著對(duì)程序代碼做至少改動(dòng),就可以獲得Spring核心帶來好處。Spring框架核心基于依賴注入(DependencyInjection,DI)技術(shù)。在Spring中,所有類資源都被應(yīng)用為Bean,只需要遵循JavaBean命名規(guī)則,DI機(jī)制就可以類屬性配備操作與代碼相分離。對(duì)于基于接口編程程序,通過采用DI,為基于接口設(shè)計(jì)而編寫輔助代碼大大減少,接近于零。Spring框架中DI帶來好處重要有:(1)減少“粘合”代碼。DI可以消除為了連接應(yīng)用程序各個(gè)某些而編寫大量代碼。(2)依賴外置化。Spring中DI通過外置配備文獻(xiàn)來實(shí)現(xiàn),因此可以將依賴外置化。要變化依賴只需要修改配備文獻(xiàn)而不需要修改代碼。(3)在統(tǒng)一地方管理依賴。采用老式方式管理依賴時(shí),依賴關(guān)系會(huì)在代碼中散布開,變化它們普通會(huì)帶來問題。當(dāng)時(shí)用DI時(shí)候,所關(guān)于于依賴信息都通過一種簡樸庫進(jìn)行管理,使得管理依賴變得既簡樸又不容易出錯(cuò)。(4)提高可測試性。當(dāng)面向DI設(shè)計(jì)類時(shí),類之間依賴可以以便進(jìn)行變化。這一點(diǎn)在系統(tǒng)進(jìn)行測試時(shí)特別以便[15]。除了DI之外,Spring框架還提供:面向方面(AOP)編程機(jī)制、對(duì)數(shù)據(jù)訪問優(yōu)化、事務(wù)管理、Web層MVC架構(gòu)、簡化整合J2EE功能、遠(yuǎn)程訪問(Demoting)支持、Mail支持、籌劃任務(wù)支持以及源代碼級(jí)Metadata(元數(shù)據(jù))等功能。本章小結(jié)本章一方面對(duì)GIS技術(shù)進(jìn)行了簡介,涉及GIS技術(shù)基本功能、應(yīng)用范疇、以及將來發(fā)展趨勢等。然后簡介了WebGIS,闡明了WebGIS概念和長處;簡介了OGC組織以及它所提出來GML、WMS、WFS、WCS等WebGIS所用到OpenGIS合同,分析了每個(gè)合同作用和互有關(guān)系;同步簡介了支持WebGIS開發(fā)開源平臺(tái),涉及WebGIS服務(wù)器軟件GeoServer、支持GIS操作數(shù)據(jù)庫PostGIS以及實(shí)現(xiàn)了WMS/WFS合同采用MVC模式架構(gòu)MapBuilder地圖操作組件。最后對(duì)用于Web2.0開發(fā)Ajax架構(gòu),以及用于簡化J2EE開發(fā)Spring做了簡介。由本章分析可知,J2EE平臺(tái)下WebGIS開發(fā)合同已經(jīng)徐徐規(guī)范,有助于GIS系統(tǒng)開發(fā)和不同系統(tǒng)互相訪問;支持軟件也日漸增多,功能越發(fā)強(qiáng)大。其中Spring框架浮現(xiàn)更使得J2EE服務(wù)器編程變得愈發(fā)簡樸化和自動(dòng)化。需求分析需求分析是軟件開發(fā)流程中重要一種環(huán)節(jié),需求分析基本任務(wù)是依照顧客需求,準(zhǔn)擬定義要完畢系統(tǒng)目的,回答系統(tǒng)必要“做什么”問題。它重要用途是明確系統(tǒng)需求,是顧客和開發(fā)人員之間進(jìn)行討論基本,并作為系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)以及測試根據(jù)。只有精確全面需求獲取與分析才干保證系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)順利進(jìn)行,為后期測試提供必要支持。在參照了既有GIS物流監(jiān)控系統(tǒng)功能,并且考慮到了系統(tǒng)擴(kuò)展性和成本基本上,最后制定了本系統(tǒng)詳細(xì)需求。系統(tǒng)實(shí)現(xiàn)目的物流公司中,一方面要對(duì)貨品從發(fā)貨人發(fā)送貨品到收貨人提取貨品整個(gè)過程進(jìn)行管理和記錄,規(guī)定可以隨時(shí)理解貨品位置、狀態(tài)等屬性。同步管理人員通過系統(tǒng)可以獲取公司里運(yùn)送車輛位置、速度、方向、所載貨品等參數(shù),并可以發(fā)送命令給車輛,實(shí)時(shí)監(jiān)控和管理整個(gè)貨品運(yùn)送流程。為保證物流系統(tǒng)可以有效地為物流公司管理人員服務(wù),從功能上必要達(dá)到如下目的:(1)必要實(shí)現(xiàn)物流公司中業(yè)務(wù)流程所有必須功能。作為物流公司管理軟件,系統(tǒng)必須可以實(shí)現(xiàn)諸如發(fā)送貨品、運(yùn)送貨品、裝載貨品、卸載貨品、車輛線路編輯等功能。保證系統(tǒng)實(shí)現(xiàn)功能有效性。(2)必要保證管理人員得到信息及時(shí)性和真實(shí)性。管理人員作為整個(gè)系統(tǒng)調(diào)度者,系統(tǒng)信息必要及時(shí)地顯示給管理人員。對(duì)于重要信息,系統(tǒng)應(yīng)當(dāng)使用彈出警告窗口、修改顯示信息字體顏色等手段引起管理人員注意,保證系統(tǒng)調(diào)度及時(shí)性。(3)必要保證管理人員和運(yùn)送車輛之間進(jìn)行有效地、及時(shí)地通信。對(duì)于物流系統(tǒng)來說,系統(tǒng)實(shí)時(shí)調(diào)度和管理是十分重要,其中對(duì)車輛調(diào)度特別重要。因此,要保證管理人員和運(yùn)送車輛之間通信及時(shí)性,提高系統(tǒng)調(diào)度效率。系統(tǒng)運(yùn)營環(huán)境為了充分使用物流公司既有軟硬件資源,在保障物流信息系統(tǒng)穩(wěn)定、高效運(yùn)營前提下,達(dá)到減少成本目。依照系統(tǒng)需求,設(shè)定了物流信息系統(tǒng)運(yùn)營環(huán)境。網(wǎng)絡(luò)環(huán)境:服務(wù)器和操作主機(jī)都需要采用Internet,車輛終端通過GPRS-Internet網(wǎng)關(guān)最后連接到Internet。硬件環(huán)境:(1)服務(wù)器主機(jī)配備:CPU使用IntelP4Xeon,雙CPU,內(nèi)存為2GB,選用2塊120GBSCSI硬盤進(jìn)行同步讀寫。(2)客戶端機(jī)器配備:CPU最低IntelP=3\*ROMANIII800MHz以上,內(nèi)存128MB以上。(3)車輛終端配備:每個(gè)車輛配備GPS數(shù)據(jù)收發(fā)器一種,用來獲取GPS數(shù)據(jù),通過GPRS網(wǎng)絡(luò)和服務(wù)器進(jìn)行通信。(4)其她配備:GPRS-Internet數(shù)據(jù)轉(zhuǎn)換網(wǎng)關(guān)若干,用來將GPRS網(wǎng)絡(luò)中車輛數(shù)據(jù)轉(zhuǎn)換為Internet網(wǎng)絡(luò)中數(shù)據(jù)。軟件環(huán)境:服務(wù)器:Windows服務(wù)器版操作系統(tǒng),Tomcat5.5服務(wù)器,GeoServer1.5.0地圖服務(wù)器,PostGIS1.2.1數(shù)據(jù)庫??蛻舳耍篧indows操作系統(tǒng)以上,IE6.0以上、Mozilla1.3以上或者Netscape6以上。系統(tǒng)開發(fā)環(huán)境考慮到系統(tǒng)成本問題,所有采用開源軟件和框架來構(gòu)建此系統(tǒng)。相對(duì)來說,開源軟件成本低,功能相對(duì)簡樸。服務(wù)器端軟件環(huán)境:Web服務(wù)器采用Tomcat5.5,它布置和使用起來都很以便,支持功能對(duì)本系統(tǒng)來說已經(jīng)足夠。地圖服務(wù)器采用GeoServer1.5.0,它是一種全面支持OGC開放性合同開源地圖服務(wù)器,可以分別以圖片和實(shí)際數(shù)據(jù)方式發(fā)布地圖數(shù)據(jù)。數(shù)據(jù)庫服務(wù)器采用PostGIS1.2.1,它是對(duì)PostgreSQL8.2補(bǔ)充,有豐富數(shù)據(jù)類型和解決地理數(shù)據(jù)函數(shù),并且GeoServer與PostGIS之間操作通過一定優(yōu)化。客戶端環(huán)境搭建:地圖顯示采用MapBuilder地圖操作組件,它是由Javascript語言實(shí)現(xiàn)一種庫文獻(xiàn),可以以便嵌入到網(wǎng)頁中去。系統(tǒng)信息實(shí)時(shí)顯示與實(shí)時(shí)更新實(shí)現(xiàn),需要采用Ajax技術(shù)支持。開發(fā)工具與支持環(huán)境:系統(tǒng)開發(fā)采用Eclipse??紤]到系統(tǒng)擴(kuò)展性和實(shí)體類獨(dú)立性,采用Spring作為J2EE實(shí)現(xiàn)服務(wù)器端容器,數(shù)據(jù)庫訪問則采用Ibatis組件實(shí)現(xiàn)。這些開源軟件采用,減少了系統(tǒng)開發(fā)難度,提高了軟件可復(fù)用性。功能性需求描述在面向?qū)ο笙到y(tǒng)分析中,獲取功能需求最慣用技術(shù)就是用例建模技術(shù)。它可以直觀地向客戶展示系統(tǒng)功能,以便技術(shù)人員精確地獲取需求。在項(xiàng)目開發(fā)前期,它協(xié)助開發(fā)人員理解系統(tǒng)需求而不考慮詳細(xì)實(shí)現(xiàn)辦法。用例,表達(dá)系統(tǒng)一種行為或者某個(gè)功能。它是在特定條件下,為了達(dá)到某種目,系統(tǒng)和顧客之間進(jìn)行交互一種序列。用例模型由參加者和用例構(gòu)成。參加者是與系統(tǒng)進(jìn)行交互外部實(shí)體,也許是某個(gè)人或者是某個(gè)事物[16]。圖3.1顯示就是本系統(tǒng)用例圖。本系統(tǒng)中,參加者有五個(gè),管理人員、發(fā)貨人、收貨人、車輛和定期器。對(duì)于用例分析來說,只有用例圖和用例描述相結(jié)合才干表達(dá)系統(tǒng)需求,有關(guān)用例描述如下。圖3.SEQ圖_3.\*ARABIC1物流信息系統(tǒng)用例圖發(fā)送貨品用例標(biāo)記:1.0 參加者:發(fā)貨人簡要闡明:發(fā)貨人在系統(tǒng)規(guī)定下提供發(fā)送貨品所需信息,實(shí)現(xiàn)發(fā)貨操作?;绢I(lǐng)件流:(1)發(fā)貨人提供貨品基本信息,涉及貨品類別、大小、目地、發(fā)貨人信息、收貨人信息等。(2)經(jīng)有關(guān)人員檢查貨品狀態(tài),貨品可以運(yùn)送。(3)系統(tǒng)記錄發(fā)貨人和收貨人信息,分派貨品編號(hào),計(jì)算貨品運(yùn)送費(fèi)用,配備貨品運(yùn)送路經(jīng),將有關(guān)記錄存儲(chǔ)到系統(tǒng)中。(4)打印發(fā)貨回執(zhí)給發(fā)貨人。查詢貨品狀態(tài)用例標(biāo)記:2.0 參加者:管理人員,發(fā)貨人簡要闡明:此用例中操作者也許為管理人員或者發(fā)貨人。操作者向系統(tǒng)提供貨品編號(hào),系統(tǒng)以列表方式顯示貨品當(dāng)前狀態(tài)以及其她基本信息。基本領(lǐng)件流:(1)操作者提供貨品編號(hào)進(jìn)行查詢。(2)系統(tǒng)進(jìn)行查詢,顯示當(dāng)前貨品狀態(tài)、位置等信息。提貨用例標(biāo)記:3.0 參加者:收貨人簡要闡明:貨品到達(dá)站點(diǎn)后來,由收貨人將貨品提走。基本領(lǐng)件流:(1)貨品在卸貨操作后來檢測當(dāng)前位置,若當(dāng)前站點(diǎn)和目站點(diǎn)相似,則提示有關(guān)人員貨品已經(jīng)到達(dá)目地。(2)管理人員聯(lián)系收貨人完畢提貨操作。系統(tǒng)修改貨品狀態(tài)。查詢系統(tǒng)信息用例標(biāo)記:4.0 參加者:管理人員簡要闡明:管理人員通過輸入要查詢項(xiàng)和查詢條件,來完畢對(duì)系統(tǒng)中某類信息查詢,成果采用列表方式顯示。基本領(lǐng)件流:(1)管理人員選取要查詢信息項(xiàng),一共分為公司,站點(diǎn),員工,車輛,貨品,收發(fā)貨人等幾項(xiàng)。(2)管理人員從系統(tǒng)返回可以選取查詢條件中選取一種,填寫查詢參數(shù),進(jìn)行查詢。(3)管理人員得到最后要查詢項(xiàng)詳細(xì)信息列表。配備車輛線路用例標(biāo)記:5.0 參加者:管理人員簡要闡明:線路是若干站點(diǎn)之間有序一種組合,是車輛運(yùn)營重要依照。管理人員依照公司運(yùn)營狀況來編輯線路,并設(shè)立車輛運(yùn)營線路?;绢I(lǐng)件流:(1)管理人員依照當(dāng)前公司運(yùn)營狀況來添加、刪除線路。(2)管理人員選定一條線路。(3)管理人員更新線路上所運(yùn)營車輛列表。實(shí)時(shí)顯示系統(tǒng)信息用例標(biāo)記:6.0 參加者:管理人員,定期器簡要闡明:管理人員登錄系統(tǒng)后,定期器會(huì)定期更新管理員看到系統(tǒng)信息,涉及地圖信息、實(shí)時(shí)消息、其她信息等?;绢I(lǐng)件流:(1)管理人員登錄系統(tǒng),系統(tǒng)初始化,定期器開始運(yùn)營。(2)定期器觸發(fā),向系統(tǒng)發(fā)出更新信息祈求。(3)Web客戶端發(fā)送祈求信息到服務(wù)器,將獲取成果顯示給管理人員。(4)為下一次更新信息設(shè)立定期器。傳遞消息用例標(biāo)記:7.0 參加者:管理人員,車輛簡要闡明:管理人員和車輛通過消息進(jìn)行溝通,系統(tǒng)運(yùn)用傳遞消息通道可以對(duì)車輛進(jìn)行實(shí)時(shí)調(diào)度,傳遞實(shí)時(shí)線路等。此用例中消息發(fā)送者也許為管理人員或車輛?;绢I(lǐng)件流:(1)消息發(fā)送者編輯消息并發(fā)送到系統(tǒng)中。(2)系統(tǒng)依照消息目地對(duì)消息進(jìn)行解決。(3)如果消息目地為有關(guān)管理人員,則在Web客戶端獲取最新消息時(shí),將消息顯示給管理人員。如果消息目地為車輛,直接通過系統(tǒng)發(fā)送到車輛上接受裝置。發(fā)送實(shí)時(shí)狀態(tài)信息用例標(biāo)記:8.0 參加者:車輛簡要闡明:車輛定期將自己狀態(tài)發(fā)送給系統(tǒng)。系統(tǒng)運(yùn)用車輛傳回信息進(jìn)行車輛實(shí)時(shí)控制和調(diào)度?;绢I(lǐng)件流:(1)車輛依照通信裝置設(shè)立每個(gè)一段時(shí)間將自己狀態(tài),涉及經(jīng)緯度、方向、速度、油量等發(fā)送給系統(tǒng)。(2)系統(tǒng)將有關(guān)信息存儲(chǔ)到指定位置。車輛完畢運(yùn)送段用例標(biāo)記:9.0 參加者:車輛簡要闡明:車輛在兩個(gè)站點(diǎn)之間運(yùn)營稱為一種運(yùn)送段,車輛在運(yùn)營線路上運(yùn)營時(shí),會(huì)完畢若干個(gè)運(yùn)送段?;绢I(lǐng)件流:(1)車輛在出發(fā)站點(diǎn)裝載可以用此車輛進(jìn)行運(yùn)送貨品。(2)車輛出發(fā),駛往下一種站點(diǎn)。(3)車輛到達(dá)運(yùn)送段目站點(diǎn),卸載車輛上需要在此站點(diǎn)卸載貨品。操作貨品用例標(biāo)記:10.0 參加者:車輛簡要闡明:操作貨品表達(dá)在貨品運(yùn)送過程中裝貨和卸貨操作。基本領(lǐng)件流:(1)車輛到達(dá)站點(diǎn),依照貨品運(yùn)送路線和車輛運(yùn)營線路,列出可以在此車輛上進(jìn)行裝載貨品信息。(2)按照貨品快慢速度將貨品進(jìn)行排序,優(yōu)先裝載“特快”級(jí)別貨品。(3)車輛離開站點(diǎn),開始一種運(yùn)送段。(4)車輛到達(dá)另一種站點(diǎn),依照貨品運(yùn)送線路和車輛線路,列出要在此站點(diǎn)進(jìn)行卸載貨品信息。(5)對(duì)于所有需要進(jìn)行卸載貨品,所有完畢卸載。補(bǔ)充需求在車輛上設(shè)備發(fā)生故障狀況下,會(huì)失去與系統(tǒng)地聯(lián)系。在這種狀況下系統(tǒng)要判斷出哪輛車失去了聯(lián)系,發(fā)送告知短消息到客戶端,并且在客戶端地圖上顯示出來。提示管理人員采用其她方式與車輛獲得聯(lián)系,理解車輛當(dāng)前狀態(tài),保證系統(tǒng)正常運(yùn)營??蛻舳艘梢燥@示如下信息:總公司以及各個(gè)分公司信息,公司站點(diǎn)信息,車輛信息,公司員工信息以及其她信息等等。客戶端采用瀏覽器操作,需要定期向服務(wù)器發(fā)送各種祈求才干保持當(dāng)前信息對(duì)的性。然而,考慮到服務(wù)器負(fù)載狀況,客戶端沒必要每一次都申請所有信息。像車輛位置、實(shí)時(shí)消息等信息需要在10秒之內(nèi)就要更新一次,而像公司簡介、車輛運(yùn)營線路等信息普通幾種小時(shí)更新就可以了。因此規(guī)定客戶端可以設(shè)立不同信息項(xiàng)更新時(shí)間間隔。非功能性需求描述非功能性需求在整個(gè)系統(tǒng)中占有非常重要位置,對(duì)系統(tǒng)非功能性需求滿足是系統(tǒng)成功基本,下面列出本系統(tǒng)非功能性需求:(1)系統(tǒng)可以長時(shí)間持續(xù)工作。對(duì)于公司應(yīng)用級(jí)系統(tǒng)來說,軟件穩(wěn)定性與對(duì)的性同樣重要。考慮到本系統(tǒng)實(shí)際狀況,服務(wù)器端軟件必要可以在24*7小時(shí)內(nèi)不間斷地穩(wěn)定運(yùn)營。(2)客戶端信息更新更新等待時(shí)間不能不不大于5秒??蛻舳藢?duì)系統(tǒng)響應(yīng)是有時(shí)間限制,普通查詢等待時(shí)間不能超過2秒,地圖數(shù)據(jù)更新不能超過5秒。(3)系統(tǒng)要采用B/S架構(gòu)進(jìn)行構(gòu)建。考慮到B/S架構(gòu)布置以及升級(jí)簡樸化,因此規(guī)定采用B/S架構(gòu)進(jìn)行構(gòu)建。系統(tǒng)術(shù)語表系統(tǒng)開發(fā)過程中使用某些名詞也許和平時(shí)代表意義不同或者是表達(dá)范疇不同,系統(tǒng)中還會(huì)依照實(shí)際狀況創(chuàng)造某些專有名詞表達(dá)系統(tǒng)中某些概念。為了不導(dǎo)致誤解,加快系統(tǒng)開發(fā)進(jìn)度,因此有必要列舉系統(tǒng)術(shù)語表,聲明系統(tǒng)開發(fā)過程中可以遇到重要概念和容易誤解概念。下面是本系統(tǒng)術(shù)語表:貨品:物流系統(tǒng)中進(jìn)行運(yùn)送單位,普通是若干需要運(yùn)送物品集合。它們在系統(tǒng)中使用一種編號(hào),作為一種物品解決??蛻簦喊l(fā)貨人和收貨人在系統(tǒng)中都稱為客戶。消息:本系統(tǒng)中消息表達(dá)車輛與所屬公司、車輛與車輛之間、不同公司管理人員之間互相聯(lián)系文本消息、對(duì)車輛進(jìn)行控制命令消息以及車輛發(fā)送到系統(tǒng)中狀態(tài)消息等。車輛:也叫做車輛終端,系統(tǒng)中用來運(yùn)送貨品車輛,但是在與管理人員進(jìn)行實(shí)時(shí)短消息交互時(shí)候,表達(dá)是車輛駕駛員與管理人員交互。站點(diǎn):系統(tǒng)中用來進(jìn)行車輛??亢拓浧分修D(zhuǎn)站點(diǎn)。線路段:任意兩個(gè)站點(diǎn)之間都可以形成兩個(gè)運(yùn)送有向序列,這種序列在系統(tǒng)中被稱為線路段。車輛運(yùn)營線路就是由若干線路段構(gòu)成??蛻舳耍阂步凶鯳eb客戶端,表達(dá)管理人員登錄遠(yuǎn)程Web瀏覽器進(jìn)程,與系統(tǒng)進(jìn)行交互。運(yùn)送段:車輛在一種站點(diǎn)裝貨,出發(fā)到達(dá)下一種站點(diǎn),卸貨。這個(gè)過程被稱為一種車輛運(yùn)送過程,運(yùn)送段表達(dá)車輛實(shí)際運(yùn)送過程中產(chǎn)生成果。管理人員:也叫做顧客,在系統(tǒng)中指登錄到Web客戶端進(jìn)行系統(tǒng)進(jìn)行操作員工。運(yùn)營線路:車輛進(jìn)行行駛所要遵從線路,表達(dá)車輛應(yīng)當(dāng)在哪幾種站點(diǎn)??俊?蛻舳俗酉到y(tǒng):實(shí)現(xiàn)客戶端系統(tǒng)架構(gòu)和有關(guān)代碼等,和客戶端概念比較起來,更側(cè)重與系統(tǒng)設(shè)計(jì)和代碼實(shí)現(xiàn)。貨品運(yùn)送線路:貨品要從起始站點(diǎn)到達(dá)目站點(diǎn),需要在系統(tǒng)中站點(diǎn)之間中轉(zhuǎn),而中轉(zhuǎn)站點(diǎn)之間形成線路即為貨品運(yùn)送線路,屬于籌劃線路。本章小結(jié)本章一方面簡介了系統(tǒng)實(shí)現(xiàn)目的、運(yùn)營環(huán)境和開發(fā)環(huán)境。然后通過用例分析方式獲取和分析了系統(tǒng)功能性需求,對(duì)需求進(jìn)行了補(bǔ)充,提出了系統(tǒng)非功能性需求。從而對(duì)系統(tǒng)整體需求有了完整頓解。最后依照對(duì)需求分析中專有名詞解釋,得出了系統(tǒng)術(shù)語表。從本章需求分析中可以得出,系統(tǒng)功能性需求相對(duì)來說比較易于實(shí)現(xiàn),而非功能性需求比較嚴(yán)格。對(duì)于非功能性需求影響最大就是系統(tǒng)架構(gòu),因此在設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)時(shí),要在對(duì)系統(tǒng)架構(gòu)予以充分注重前提下,實(shí)現(xiàn)功能性需求。系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)原則(1)低成本。隨著技術(shù)進(jìn)步和系統(tǒng)復(fù)雜性增長,軟件成本在整個(gè)系統(tǒng)中所占比重越來越大,公司應(yīng)用中已經(jīng)達(dá)到25%左右,并且有繼續(xù)增長趨勢。為了減少系統(tǒng)成本,系統(tǒng)中各個(gè)模塊都采用開源項(xiàng)目中組件完畢。它們不但可以提供比較完善功能,并且還能依照系統(tǒng)需求進(jìn)行恰當(dāng)擴(kuò)展。(2)規(guī)范性。從軟件周期上來考慮,軟件維護(hù)階段在軟件生命周期或生存期中占較大比重,有可達(dá)軟件生存周期50-70%。因此需要軟件在設(shè)計(jì)過程中積極遵循各種規(guī)范,保證后期維護(hù)和開發(fā)人員可以迅速理解系統(tǒng)。本系統(tǒng)在各個(gè)方面都要遵從有關(guān)規(guī)范:客戶端與服務(wù)器之間交互合同要使用HTML/XML規(guī)定、系統(tǒng)內(nèi)部交互采用Message類和其她接口、傳播Map數(shù)據(jù)采用OGCWMS/WFS開放合同、與車輛交互采用有關(guān)UDP包構(gòu)造規(guī)定。(3)易擴(kuò)展。系統(tǒng)設(shè)計(jì)直接決定可擴(kuò)展性??蓴U(kuò)展性是軟件工程追求目的,可以大大提高軟件復(fù)用限度,較低開發(fā)成本。本系統(tǒng)中采用SpringFramework作為服務(wù)器端容器,其DI機(jī)制可以最大限度保持類獨(dú)立性。此外系統(tǒng)采用面向接口編程,這在很大限度上增長了系統(tǒng)擴(kuò)展性。系統(tǒng)采用分層機(jī)制設(shè)計(jì),建立專門數(shù)據(jù)訪問層、服務(wù)層、消息隊(duì)列控制層等,采用設(shè)計(jì)模式中思想優(yōu)化設(shè)計(jì),從而最大限度上提高系統(tǒng)可擴(kuò)展性。系統(tǒng)總體設(shè)計(jì)在分解復(fù)雜軟件系統(tǒng)時(shí),用最多技術(shù)之一就是分層。分層設(shè)計(jì)好處有:在無需過多理解其她層基本上,可以將某一層作為一種有機(jī)整體來理解;只要先后提供服務(wù)相似,可以替代某一種層詳細(xì)實(shí)現(xiàn);可以將層次間依賴降到最低,有助于原則化;一旦建設(shè)好了某一種層次,就可以用它為諸多上層服務(wù)提供支持[17]。在本系統(tǒng)中,一方面要完畢工作就是設(shè)計(jì)系統(tǒng)總體架構(gòu),將系統(tǒng)分解為幾種層,規(guī)定每個(gè)層功能、互相之間依賴關(guān)系和調(diào)用接口。通過對(duì)系統(tǒng)分析與設(shè)計(jì),得到圖4.1所示系統(tǒng)總體設(shè)計(jì)圖。本系統(tǒng)重要由客戶端子系統(tǒng)、Web服務(wù)層、服務(wù)層、數(shù)據(jù)訪問層、實(shí)體類層、消息隊(duì)列控制層和Socket控制層等構(gòu)成??蛻糇酉到y(tǒng)位于客戶端Web瀏覽器,用來向管理人員提供人機(jī)接口。在本系統(tǒng)中調(diào)用MapBuilder庫操作地圖信息,運(yùn)用JavaScript語言動(dòng)態(tài)更新客戶端信息,通過Web瀏覽器顯示信息。實(shí)體類層是由實(shí)體類與值對(duì)象構(gòu)成,是系統(tǒng)中最基本概念集合。涉及:貨品類、車輛類、站點(diǎn)類、公司類等,實(shí)體類設(shè)計(jì)過程在功能設(shè)計(jì)時(shí)進(jìn)行描述。圖4.SEQ圖_4.\*ARABIC1系統(tǒng)總體設(shè)計(jì)圖數(shù)據(jù)訪問層由倉儲(chǔ)(Repository)和數(shù)據(jù)訪問對(duì)象(DAO)兩個(gè)模塊構(gòu)成。其中DAO通過Spring接口調(diào)用Ibatis組件來實(shí)現(xiàn)各個(gè)實(shí)體類數(shù)據(jù)庫操作。倉儲(chǔ)模塊依賴于DAO,向服務(wù)層提供透明對(duì)象訪問和修改接口,將對(duì)象保存、修改、重建等操作徹底與表達(dá)業(yè)務(wù)邏輯服務(wù)層分離。服務(wù)層(Service)用來實(shí)現(xiàn)系統(tǒng)中各項(xiàng)業(yè)務(wù)功能類集合,在系統(tǒng)業(yè)務(wù)流程中處在核心地位。其她層與實(shí)體層交互完全通過服務(wù)層,就好像應(yīng)用程序API同樣。在提供一種清晰API同步,服務(wù)層也是放置事務(wù)控制和安全等功能好場合。這樣做可以是獲得一種簡樸、包括了服務(wù)層中所有辦法并描述了其事務(wù)和安全特性模型[17]。Web服務(wù)層(WebService)是直接和客戶子系統(tǒng)進(jìn)行交互Servlet接口集合。Web服務(wù)層中詳細(xì)類被布置為Web服務(wù)器上Servlet,通過HTTP祈求接受客戶端祈求,調(diào)用服務(wù)層有關(guān)服務(wù)完畢操作,并將成果轉(zhuǎn)換為XML/HTTP格式返回給客戶端子系統(tǒng)。消息隊(duì)列控制層參照觀測者模型實(shí)現(xiàn)一種消息隊(duì)列,用來控制系統(tǒng)與車輛之間消息解決。Socket控制層用來控制與車輛之間Socket通信,并且提供車輛與否掉線監(jiān)控功能。數(shù)據(jù)訪問層設(shè)計(jì)數(shù)據(jù)訪問層是面向?qū)ο笤O(shè)計(jì)中重要一種模塊,它將對(duì)數(shù)據(jù)庫操作邏輯封裝到指定對(duì)象中,從而將對(duì)關(guān)系型數(shù)據(jù)庫操作轉(zhuǎn)換為對(duì)數(shù)據(jù)訪問層對(duì)象操作,提高了系統(tǒng)可擴(kuò)展性和可移植性。本系統(tǒng)數(shù)據(jù)訪問層采用倉儲(chǔ)設(shè)計(jì)思想,全面地封裝了對(duì)數(shù)據(jù)庫各種操作,提供對(duì)數(shù)據(jù)操作統(tǒng)一接口,其中大某些操作都直接被服務(wù)層用來獲取系統(tǒng)對(duì)象以及操作對(duì)象。圖4.2所示為貨品有關(guān)數(shù)據(jù)訪問設(shè)計(jì)圖。SqlMapClientDaoSupport類是Spring框架為支持Ibatis提供數(shù)據(jù)庫訪問類,它通過讀取XML文檔為指定類提供數(shù)據(jù)庫訪問操作,詳細(xì)實(shí)現(xiàn)由XML文檔中SQL語句決定。CargoDAO接口提供了從數(shù)據(jù)庫中訪問貨品與貨品運(yùn)送線路段基本訪問辦法。因此實(shí)現(xiàn)接口CargoDAO并繼承SqlMapClientDaoSupport類SqlMapCargoDao類用來提供貨品數(shù)據(jù)庫訪問操作詳細(xì)實(shí)現(xiàn)。CargoRepositoryI接口提供了服務(wù)層訪問貨品實(shí)體類時(shí)用到接口。實(shí)現(xiàn)此接口RealCargoRepository類運(yùn)用CargoDAO接口實(shí)現(xiàn),向服務(wù)層提供了操作Cargo對(duì)象操作辦法。它內(nèi)部維持一種cargoList列表,將經(jīng)常訪問貨品信息保存在內(nèi)存中,不經(jīng)常訪問信息存儲(chǔ)到數(shù)據(jù)庫中,可以大大提高系統(tǒng)運(yùn)營速度。同步系統(tǒng)為車輛、站點(diǎn)、員工、公司等其她實(shí)體類也設(shè)計(jì)了類似數(shù)據(jù)訪問模塊,從而保證了數(shù)據(jù)訪問層對(duì)內(nèi)存中和數(shù)據(jù)庫中對(duì)象操作能力,保證了調(diào)用層功能實(shí)現(xiàn)。圖4.SEQ圖_4.\*ARABIC2貨品數(shù)據(jù)庫訪問設(shè)計(jì)圖服務(wù)層設(shè)計(jì)面向?qū)ο笤O(shè)計(jì)過程中,領(lǐng)域中某些概念不能作為模型中對(duì)象來解決。將領(lǐng)域需要功能強(qiáng)加給實(shí)體和值對(duì)象,不但會(huì)破壞模型中對(duì)象定義,并且還會(huì)人為地添加沒故意義對(duì)象。當(dāng)領(lǐng)域中一種重要進(jìn)程或轉(zhuǎn)換操作不是實(shí)體和值對(duì)象自身職責(zé)時(shí),把操作作為一種獨(dú)立接口加入模型,并聲明為服務(wù)。依照模型中使用語言來定義接口,保證操作名是通用語言中一某些。使這個(gè)服務(wù)變?yōu)闊o狀態(tài)[18]。這個(gè)時(shí)候,所定義服務(wù)接口負(fù)責(zé)和外界進(jìn)行交互,由于它還會(huì)與實(shí)體類進(jìn)行交互,會(huì)變化實(shí)體類屬性和狀態(tài),因此相稱于控制類一種。在本系統(tǒng)中,這些類都被放置到服務(wù)層中,繼承ServiceI接口,實(shí)現(xiàn)詳細(xì)業(yè)務(wù)流程。服務(wù)層定義了應(yīng)用邊界和從接口客戶層角度能看到可用操作集。它封裝了應(yīng)用業(yè)務(wù)邏輯、事務(wù)控制及其操作實(shí)現(xiàn)中響應(yīng)協(xié)調(diào)。服務(wù)層是由一組相對(duì)復(fù)雜類構(gòu)成,這些類直接實(shí)現(xiàn)應(yīng)用邏輯,但將領(lǐng)域邏輯委托給封裝好領(lǐng)域?qū)ο箢?,在本系統(tǒng)中指數(shù)據(jù)訪問層中倉儲(chǔ)模塊。服務(wù)層客戶所能使用操作以腳本方式實(shí)現(xiàn),數(shù)個(gè)腳本構(gòu)成一種類,一種類定義與某一種主題有關(guān)邏輯。每一種類構(gòu)成一種應(yīng)用程序“服務(wù)”,類繼承統(tǒng)一接口,以”XXService”命名[17]。圖4.3所示為服務(wù)層設(shè)計(jì)圖。服務(wù)層中所有服務(wù)類所有實(shí)現(xiàn)自ServiceI接口,提供execute()辦法執(zhí)行此服務(wù)類要實(shí)現(xiàn)業(yè)務(wù)流程。同步聲明執(zhí)行器接口Runner,它以ServiceI為參數(shù),并運(yùn)用run()辦法調(diào)用服務(wù)類中execute()辦法實(shí)現(xiàn)詳細(xì)解決流程。服務(wù)類普通狀況下會(huì)涉及到數(shù)據(jù)檢索、更改以及保存等。因此服務(wù)類中都保持?jǐn)?shù)據(jù)訪問層中倉儲(chǔ)類引用,來對(duì)數(shù)據(jù)庫以及內(nèi)存中對(duì)象實(shí)例屬性進(jìn)行修改。圖4.SEQ圖_4.\*ARABIC3服務(wù)層設(shè)計(jì)圖服務(wù)層所實(shí)現(xiàn)業(yè)務(wù)操作如下所示:(1)貨品有關(guān)操作:添加貨品,刪除貨品,編輯貨品位置,編輯貨品狀態(tài),編輯貨品運(yùn)送路線,添加客戶。(2)線路有關(guān):添加線路段,添加線路,添加線路段聯(lián)系,刪除線路段,刪除線路。(3)車輛有關(guān):設(shè)立車輛駕駛員,添加車輛移動(dòng)段,設(shè)立車輛移動(dòng)段,設(shè)立車輛移動(dòng)段貨品,設(shè)立車輛位置,設(shè)立車輛狀態(tài),設(shè)立車輛線路。(4)其她:添加車輛裝卸記錄,查詢貨品運(yùn)送途徑,添加消息,解決接受到消息,存儲(chǔ)消息等。Web服務(wù)層設(shè)計(jì)對(duì)于一種Web應(yīng)用來說,Web層是十分核心。SpringWeb框架很自然采用了“控制反轉(zhuǎn)”來管理控制器依賴。整個(gè)Web框架采用MVC模式進(jìn)行設(shè)計(jì)。圖4.4所示是Web應(yīng)用范疇內(nèi)MVC架構(gòu)一種實(shí)現(xiàn)模式??刂破髫?fù)責(zé)解釋顧客祈求,準(zhǔn)備模型,并將其傳遞到視圖以供展示。JSP頁面不包括解決祈求邏輯,僅展示由控制器準(zhǔn)備好模型。圖4.SEQ圖_4.\*ARABIC4MVC架構(gòu)圖SpringMVC架構(gòu)采用就是圖4.4中所示架構(gòu),環(huán)繞著DispatcherServlet。該Servlet解決祈求,并調(diào)用恰當(dāng)控制器以執(zhí)行祈求。DiapatcherServlet攔截顧客祈求,判斷哪一種Controller來執(zhí)行該祈求。Spring控制器辦法執(zhí)行后返回ModelAndView類。ModelAndView實(shí)例包括一種對(duì)視圖和模型引用。模型就是一種簡樸Map實(shí)例,包括了試圖用以展示JavaBean。視圖是一種接口,實(shí)現(xiàn)它時(shí)候,指定一種展示辦法。事實(shí)上,只要客戶端可以解釋,視圖實(shí)現(xiàn)可以是任何形式[15]。圖4.5所示為Web服務(wù)層控制器設(shè)計(jì)圖。繼承自Spring中AbstractController控制器類重寫handleRequestInternal(request,response)辦法,接受HTTP祈求,分析祈求內(nèi)容與祈求參數(shù)??刂破骺梢酝ㄟ^返回ModelAndView形式,將特定JSP頁面返回給顧客,同步還可以通過直接向response中寫入內(nèi)容進(jìn)行返回。在本系統(tǒng)中登錄頁面和主頁面祈求采用返回JSP頁面方式返回,其她祈求采用將XML文檔寫入response實(shí)例辦法返回給客戶端??刂破鲀?nèi)部包括一種繼承自Runner接口實(shí)例,此實(shí)例控制實(shí)現(xiàn)流程并引用服務(wù)類實(shí)例完畢操作。圖4.SEQ圖_4.\*ARABIC5控制器設(shè)計(jì)圖消息解決某些設(shè)計(jì)消息解決某些設(shè)計(jì)目是用來解決管理人員、車輛以及定期器等外部參加者與系統(tǒng)交互數(shù)據(jù)。系統(tǒng)可以依照傳遞入數(shù)據(jù)進(jìn)行解決,實(shí)現(xiàn)功能為:解決車輛傳遞回來狀態(tài)數(shù)據(jù)、使管理人員與車輛之間可以進(jìn)行雙向通信。不同參加者輸入數(shù)據(jù)在系統(tǒng)中采用統(tǒng)一Message類進(jìn)行表達(dá),它定義了direct屬性,表達(dá)消息傳遞方向。out值表達(dá)消息要傳遞給車輛數(shù)據(jù)收發(fā)終端,in值表達(dá)消息要傳播到系統(tǒng)內(nèi)部進(jìn)行解決,系統(tǒng)中除非要發(fā)送到車輛終端消息,方向都設(shè)立為in。由于Web客戶端也是由本系統(tǒng)負(fù)責(zé)實(shí)現(xiàn),因此以各個(gè)公司為目Message實(shí)例方向也定義為in。服務(wù)器與Web客戶端采用XML格式合同進(jìn)行通信,服務(wù)器與車輛之間采用合用于UDP傳播數(shù)據(jù)表達(dá)辦法。如圖4.6所示,為了Message類格式和其她格式進(jìn)行轉(zhuǎn)換,定義MessageSwitchI接口,switchToMessage()辦法實(shí)現(xiàn)其她格式信息轉(zhuǎn)換到消息格式,switchFromMessage()辦法將消息格式信息轉(zhuǎn)換為其她格式。實(shí)現(xiàn)MessageSwitchI接口兩個(gè)類分別負(fù)責(zé)消息與XML格式數(shù)據(jù)、消息與UDP報(bào)文格式數(shù)據(jù)之間進(jìn)行轉(zhuǎn)換,同步為了調(diào)用以便,采用單態(tài)模式來保證有關(guān)實(shí)例唯一性。圖4.SEQ圖_4.\*ARABIC6消息格式轉(zhuǎn)換設(shè)計(jì)圖消息隊(duì)列設(shè)計(jì)設(shè)計(jì)模式中觀測者模式,定義了對(duì)象間一種一對(duì)多依賴關(guān)系,當(dāng)一種對(duì)象狀態(tài)變化時(shí),所有依賴于它對(duì)象都得到告知并被自動(dòng)更新。它合用一種狀況為:當(dāng)一種對(duì)象變化需要同步變化其她對(duì)象,而不懂得詳細(xì)有多少對(duì)象有待變化狀況[19]。物流系統(tǒng)中對(duì)消息解決被封裝為消息解決類,它數(shù)量會(huì)隨著業(yè)務(wù)復(fù)雜性而增長。因此消息隊(duì)列定義為觀測者模式中目的對(duì)象是使用。在Java語言中,有專門支持觀測者模式類和接口存在。java.util包內(nèi)Observable類是一種基類,從此類繼承而來派生類都可以記錄并管理所有但愿得到告知觀測者。在Observable類中,辦法addObserver()可以被其她對(duì)象調(diào)用,以注冊新觀測者。如果一種類想成為一種被觀測者,它必要是Observable類派生類,當(dāng)這個(gè)類告知所有觀測者時(shí),一方面調(diào)用setChanged()辦法表白被觀測者狀態(tài)已經(jīng)發(fā)生變化,然后調(diào)用基類notifyObservers()辦法即可。java.util包內(nèi)接口Observer是所有觀測者必備接口。但愿成為觀測者類可直接實(shí)現(xiàn)該接口,并在update()辦法中,填寫接受消息及有關(guān)解決代碼[20]。圖4.7所示為系統(tǒng)中消息隊(duì)列設(shè)計(jì)圖。RealObservableObject繼承自O(shè)bservable基類,它notifyObservers(Objecto)辦法重寫了基類中辦法,一方面調(diào)用setChanged()辦法表達(dá)被觀測者已經(jīng)變化,然后調(diào)用基類中notifyObservers(Objecto)。從而在繼承類中直接調(diào)用notifyObservers(Objecto)辦法,就可以將傳入對(duì)象發(fā)送給所有觀測者。在消息隊(duì)列設(shè)計(jì)中,RealObservableObject負(fù)責(zé)對(duì)觀測者注冊和喚醒,當(dāng)新消息進(jìn)入系統(tǒng)時(shí)告知相應(yīng)觀測者進(jìn)行解決。圖4.SEQ圖_4.\*ARABIC7消息隊(duì)列設(shè)計(jì)圖MessageMediatorI接口提供了消息隊(duì)列正常工作所需要接口。pushMsg()辦法將新消息加入到消息隊(duì)列中。regInObserver()辦法用來注冊對(duì)方向?yàn)閕nMessage感興趣觀測者,regOutObserver()用來注冊對(duì)方向?yàn)閛utMessage進(jìn)行監(jiān)控觀測者。詳細(xì)消息隊(duì)列實(shí)現(xiàn)類為RealMessageM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年預(yù)拌混凝土訂購條款
- 銀行助學(xué)貸款管理辦法
- 2024年高端墻紙施工質(zhì)量保證協(xié)議版B版
- 2024年餐館后廚員工合同范本
- 2024年版房地產(chǎn)項(xiàng)目合作開發(fā)委托合同版B版
- 2024完整辦公樓轉(zhuǎn)讓居間業(yè)務(wù)合同(帶裝修)3篇
- 網(wǎng)絡(luò)與新媒體概論說課稿
- 2025年度碼頭集裝箱清洗消毒服務(wù)合同范本2篇
- 醫(yī)院年會(huì)主持詞
- 2025年度體育設(shè)施場地使用權(quán)出讓合同范本3篇
- 超短波操作流程圖
- 小學(xué)2022 年國家義務(wù)教育質(zhì)量監(jiān)測工作方案
- 化學(xué)品安全技術(shù)說明(膠水)
- 南寧市中小學(xué)學(xué)籍管理系統(tǒng)數(shù)據(jù)采集表
- 中空吹塑成型課件
- 領(lǐng)先閱讀X計(jì)劃第四級(jí)Bug Hunt 教學(xué)設(shè)計(jì)
- 《詩詞格律》word版
- 預(yù)算第二十三講
- 高中體育與健康人教版全一冊 6.2田徑—短跑 課件(共11張PPT)
- 蔬菜供貨服務(wù)保障方案
- WordA4信紙(A4橫條直接打印版)
評(píng)論
0/150
提交評(píng)論