亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于GIS的船舶監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn)

        2009-01-05 06:21:38
        科技傳播 2009年21期

        歐 濤 程 論

        摘要 本文首先介紹了基于GIS的船舶監(jiān)控系統(tǒng)的需求和總體設(shè)計。系統(tǒng)的設(shè)計使用多層體系結(jié)構(gòu)將系統(tǒng)分為5層:包含傳統(tǒng)的表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫層,還包含了數(shù)據(jù)訪問層和表示選擇層,而且這兩層是以組件的方式實現(xiàn)具有很大的通用性;系統(tǒng)的體系結(jié)構(gòu)風(fēng)格是異構(gòu)體系風(fēng)格的“查改有別”模型即混合使用了C/S和B/S體系結(jié)構(gòu)風(fēng)格,然后在系統(tǒng)的實現(xiàn)部分詳細(xì)介紹了基于XML的子模塊插件化技術(shù)的實現(xiàn),最后簡單介紹了系統(tǒng)的特色子模塊的實現(xiàn)。

        關(guān)鍵詞 插件;GIS;異構(gòu)體系結(jié)系;Geomedia;船舶監(jiān)控;XML

        中圖分類號 TP273 文獻(xiàn)標(biāo)識碼 A 文章編號 1674-6708(2009)07-0051-03

        The Design and Development of Ship Monitoring System Base on GIS

        OU Tao1,CHENG Lun 2

        1.Shanghai Maritime University ,Engineering Training Center,Shanghai 201306,China

        2. Department of Electronic and Information Engineering,Tongji University ,Shanghai 200135,China

        Abstract This paper introduces the Design and Requirement of a ship monitoring System base on GIS at first. The design of our system is the multi-layer architecture that divides the system into five layers: UI layer, UI locator layer, business layer, data access layer and database layer. The UI locator layer and data access layer was implemented with component can be reused in other system or platform. The software architecture style of our system was designed as isomerous architecture style that uses the C/S style to query module and B/S style to modification module. In the last part of this paper we discuss the implement of plug-in technology base on XML and the implement of special module of our system in detail.

        KeyWords Plug-in;GIS;Isomerous architecture;Geomedia;Ship Monitoring;XML

        0 引言

        隨著海運業(yè)的發(fā)展,各港口進(jìn)出的船舶數(shù)目急劇增加,而傳統(tǒng)的船舶管理方式已不能滿足中大型港口的要求。隨著GIS的發(fā)展,GIS在各行業(yè)監(jiān)控系統(tǒng)的應(yīng)用也越來越廣泛,所以開發(fā)基于GIS的船舶監(jiān)控系統(tǒng),正是為了緩解港口船舶管理強(qiáng)度和提高港口工作效率?;贕IS的船舶監(jiān)控系統(tǒng)主要是利用GIS將港口的地貌電子地圖顯示于顯示設(shè)備,并通過港口的各種設(shè)備采集船舶的相關(guān)數(shù)據(jù),例如,船舶的航速,當(dāng)前坐標(biāo)信息等動態(tài)信息和船名、船的國籍等靜態(tài)信息,根據(jù)這些信息在電子地圖上顯示船舶的位置并預(yù)計船的航向,還有保存這些信息以供查詢。

        本文從設(shè)計和實現(xiàn)角度介紹筆者開發(fā)的系統(tǒng),首先,描述的是系統(tǒng)的設(shè)計:介紹本系統(tǒng)的的需求和實現(xiàn)的目標(biāo);然后介紹本系統(tǒng)使用的是多層體系結(jié)構(gòu),相對傳統(tǒng)的三層體系結(jié)構(gòu)中間添加了兩層,即表示選擇層和數(shù)據(jù)訪問層,而系統(tǒng)的體系結(jié)構(gòu)風(fēng)格是采用異構(gòu)體系風(fēng)格的“查改有別”模型,這種風(fēng)格混合使用了C/S和B/S結(jié)構(gòu)兼有兩種體系結(jié)構(gòu)的優(yōu)點。其次,描述的是系統(tǒng)的實現(xiàn):詳細(xì)介紹系統(tǒng)的子模塊的插件化技術(shù)。本系統(tǒng)的框架是一個用于存放統(tǒng)一接口插件的容器,而系統(tǒng)的所有子模塊是具有指定接口的插件并以相同的方式集成到系統(tǒng)中。最后簡單介紹了系統(tǒng)中的特色模塊——地圖顯示及操作模塊的實現(xiàn)。

        1 系統(tǒng)需求和結(jié)構(gòu)的設(shè)計

        1.1 系統(tǒng)需求

        大多數(shù)基于GIS的船舶監(jiān)控系統(tǒng)的需求比較相似,本系統(tǒng)基本實現(xiàn)了以下功能:

        1)數(shù)字地圖的顯示及操作:在數(shù)字地圖上顯示各船舶的實時位置及航行軌跡;

        2)設(shè)置和管理報警區(qū)域、報警策略,根據(jù)數(shù)字地圖中的船舶情況,對處于危險情況的船舶發(fā)送報警信息;

        3)航行軌跡回放及歷史數(shù)據(jù)調(diào)閱,以供事故分析或事故證明;

        4)接收并顯示業(yè)務(wù)統(tǒng)計結(jié)果和服務(wù)信息抽樣比對結(jié)果;

        5)統(tǒng)計用戶各類歷史使用情況;

        6)管理和配置本系統(tǒng)中系統(tǒng)管理員、監(jiān)控目標(biāo)、監(jiān)控員、GIS 管理員的基本信息、權(quán)限等。

        1.2系統(tǒng)結(jié)構(gòu)總體結(jié)構(gòu)設(shè)計

        本人所構(gòu)建的系統(tǒng)是基于Intergraph公司的Geomedia Professional Objects組件技術(shù),使用Microsoft C# 語言和ASP.Net,在Visual Studio.Net 編譯器下開發(fā)的。系統(tǒng)的總體結(jié)構(gòu)是多層體系結(jié)構(gòu),總共分為5層,詳見系統(tǒng)總體結(jié)構(gòu)圖(如圖1)。

        本系統(tǒng)的體系結(jié)構(gòu)風(fēng)格是使用異構(gòu)體系結(jié)構(gòu)風(fēng)格的“查改有別”模型。在C/S與B/S混合軟件體系結(jié)構(gòu)的“查改有別”模型中,不管用戶是通過什么方式(局域網(wǎng)或Internet)連接到系統(tǒng),凡是需要執(zhí)行維護(hù)和修改數(shù)據(jù)操作的,就使用C/S體系結(jié)構(gòu);如果只是執(zhí)行一般的查詢和瀏覽操作,則使用B/S體系結(jié)構(gòu)[2]。本系統(tǒng)使用C/S體系結(jié)構(gòu)的子模塊有:矢量圖形增刪模塊、系統(tǒng)安全維護(hù)模塊、系統(tǒng)配置模塊,而其他系統(tǒng)則使用了B/S體系結(jié)構(gòu)實現(xiàn)。

        圖1系統(tǒng)總體結(jié)構(gòu)圖

        在第一層表示層和第三層業(yè)務(wù)邏輯層之間有一層是表示選擇層,該層是實現(xiàn)異構(gòu)風(fēng)格的“查改有別”模型的關(guān)鍵點,通過這一層可以配置和修改系統(tǒng)業(yè)務(wù)子模塊的表示方式,該層的主要作用是根據(jù)下層模塊的特點和用戶的要求,選擇該模塊的表示方式。種種模塊的表示方式分為兩種:一種是Windows Form 風(fēng)格對應(yīng)于C/S結(jié)構(gòu);一種是Web Form 風(fēng)格對應(yīng)于B/S結(jié)構(gòu)。系統(tǒng)中的業(yè)務(wù)邏輯層的每個子模塊可以實現(xiàn)一種或兩種表示方式供用戶使用。如,對于一些遠(yuǎn)程用戶只是查詢和瀏覽的功能模塊,其表示層可以使用B/S或C/S結(jié)構(gòu);而需要維護(hù)和修改或數(shù)據(jù)交換量比較大的功能模塊,其表示層僅使用C/S結(jié)構(gòu),而且限于局域網(wǎng)內(nèi)擁有相應(yīng)權(quán)限的用戶使用,以提高系統(tǒng)的安全性。

        在第四層數(shù)據(jù)訪問層中,有兩種類型的數(shù)據(jù)訪問對象模型,一種是Geomedia Professional Objects 的GDO, GDO是Intergraph公司專門針對地圖數(shù)據(jù)庫操作而封裝的一系列數(shù)據(jù)操作類,提供了一系列的接口,通過這些接口簡化了對地圖數(shù)據(jù)庫的所有操作;另外一種是Microsoft 的ADO.Net,其功能是用于對事務(wù)數(shù)據(jù)庫的操作,包含數(shù)據(jù)庫中所有對象的創(chuàng)建、查詢和修改,提供對事務(wù)數(shù)據(jù)庫的訪問功能。

        最后一層數(shù)據(jù)庫層中,將 GIS的地圖數(shù)據(jù)庫與事務(wù)數(shù)據(jù)庫分離。這兩種數(shù)據(jù)庫甚至可以使用不同的數(shù)據(jù)庫管理系統(tǒng)。由于GIS數(shù)據(jù)庫中主要保存的是靜態(tài)的地圖矢量數(shù)據(jù),而且地圖數(shù)據(jù)庫一般不需修改,規(guī)模也不大;整個系統(tǒng)的其他模塊保存的數(shù)據(jù)是傳統(tǒng)的事務(wù)數(shù)據(jù),而且數(shù)據(jù)量也很大,對并發(fā)要求也比較高,所以將兩種數(shù)據(jù)庫分離,GIS數(shù)據(jù)庫可以使用較小的數(shù)據(jù)庫管理軟件以節(jié)約成本,事務(wù)數(shù)據(jù)庫可以使用較大型的數(shù)據(jù)庫以提高效率,如:SQL Server,Oracle等。

        2 子模塊的插件化技術(shù)的實現(xiàn)

        系統(tǒng)的擴(kuò)展性是任何系統(tǒng)設(shè)計必須考慮的重要因素。從本系統(tǒng)的模塊劃分中看到,系統(tǒng)擁有港口管理信息系統(tǒng)的基本信息:港口地貌信息,港口所有船舶的動靜態(tài)信息,而利用這些信息構(gòu)建新的功能模塊。例如,引航子系統(tǒng)正是基于上述兩個信息再根據(jù)港口的天氣信息,海洋的潮汐等信息而構(gòu)建的。所以,在本系統(tǒng)的設(shè)計過程中,使用了基于XML的插件框架來支持系統(tǒng)的擴(kuò)展性。

        所謂插件,是系統(tǒng)的擴(kuò)展功能模塊,這個模塊是以一個獨立文件的形式出現(xiàn)并與系統(tǒng)是相對獨立的。當(dāng)開發(fā)人員編譯發(fā)布系統(tǒng)之后,用戶有新的需求或不同用戶為滿足其特殊需求而需要不同的功能,在修改已有功能模塊或添加新的功能模塊時,需要重新編譯整個系統(tǒng),此時常常會因為某個模塊的錯誤而導(dǎo)致整個系統(tǒng)的編譯生成失敗,但是,使用插件技術(shù)構(gòu)建的系統(tǒng)可以達(dá)到上述要求而不需要重新編譯系統(tǒng),系統(tǒng)的后續(xù)開發(fā)能力大大增強(qiáng)。本系統(tǒng)所獲得的船舶的動靜態(tài)信息和港口的地貌信息是許多港口管理子系統(tǒng)的基礎(chǔ)信息,。如果將這些信息提供給引航子系統(tǒng),引航員利用這些信息引航時,可以選擇空閑的航道引航;也可以利用船舶的位置和航速信息預(yù)計船舶的航向,避免船只在航行過程中碰撞。所以本系統(tǒng)使用插件技術(shù)可以極大的提高了系統(tǒng)的擴(kuò)展性。

        插件系統(tǒng)的實現(xiàn)包含兩個部分:

        1)插件系統(tǒng)的初始化,功能是:在系統(tǒng)啟動時,搜索指定插件目錄的插件配置文件,然后按配置文件指定的插件代碼位置裝載代碼并運行插件代碼。所有的插件是統(tǒng)一的接口的子類,所以可以在系統(tǒng)初始化時遍歷運行收集的所有插件,激活所有插件。示例代碼如下:

        public void InitializeAddin(){

        ICommand [] commands = AddInSingleton.AddIns.GetItems(null);

        for(int i = 0; i < commands.Length; i++){

        commands[i].Run();

        }

        }

        系統(tǒng)在裝載所有系統(tǒng)的子模塊即系統(tǒng)的初始化時,顯示軟件系統(tǒng)的主界面是作為最后一個服務(wù)啟動的,所以顯示主界面ShowWindow()函數(shù)是在InitializeAddin()函數(shù)后被調(diào)用。

        2)插件的實現(xiàn):系統(tǒng)中的所有子模塊為一個插件,每個插件是由兩個文件構(gòu)成,一個是代碼文件(Assembly),另一個是插件的配置文件(XML文件)。本系統(tǒng)是基于windows操作系統(tǒng)的,每個功能模塊的代碼是存放在一個動態(tài)連接庫文件中,而且每個功能模塊的都繼承至一個接口(本系統(tǒng)中是ICommand接口),這個接口使模塊有一個唯一的運行入口點。以下是ICommand接口和地圖操作模塊的簡要代碼描述:

        public interface ICommand{

        void Run();

        }

        public class MapOperation : ICommand{

        public void Run(){

        ….

        }

        }

        系統(tǒng)的配置文件是使用XML編寫的,格式如下

        author = "Chenglun"

        copyright = "SMU-CS-CL"

        url = "-"

        description = "Operat the map module"

        version = "1.0.0">

        Label = "地圖操作"

        Class = "Addins.MapOperation"/>

        其中的DLLFile標(biāo)簽的字段內(nèi)的路徑是該模塊的代碼文件的相對于插件配置文件的相對位置,Module標(biāo)簽的path屬性是標(biāo)志下面的子標(biāo)簽MenuItem描述的項是在主界面中的位置,MenuItem的Label是在界面上顯示的文字。

        3 地圖顯示及操作模塊的實現(xiàn)

        本系統(tǒng)靜態(tài)地圖的顯示功能模塊主要是通過過濾器從地圖數(shù)據(jù)源(地圖數(shù)據(jù)庫或地圖數(shù)據(jù)文件)讀入所需數(shù)據(jù)至內(nèi)存,之后按照一定的坐標(biāo)系統(tǒng)顯示地圖若干或全部圖層。地圖顯示中的地圖數(shù)據(jù)是使用Geomedia的GDO組件將數(shù)據(jù)從地圖數(shù)據(jù)庫(Access 或者 SQL Server 等)中讀出,再通過過濾器OriginatingPipe類讀入所需數(shù)據(jù),送至MapView組件在屏幕顯示。在實現(xiàn)過程中,數(shù)據(jù)庫的連接使用了簡單工廠模式,編寫了GDataAccessFactory類,根據(jù)不同參數(shù)自動選擇創(chuàng)建相對應(yīng)的數(shù)據(jù)庫連接。

        靜態(tài)地圖的操作模塊的實現(xiàn)中使用Observer模式,Observer模式由主體類和觀察者類組成。主體類GOpEventHandler封裝了某種操作功能對應(yīng)的一個鼠標(biāo)事件的處理過程,觀察者類GEventControl封裝了事件捕獲組件并包含了一個主體對象的容器GEventContainer。觀察者從系統(tǒng)捕獲事件后,通知在主體對象容器中與該事件有關(guān)的所有主體對象,并把執(zhí)行權(quán)按順序交給主體對象來處理事件響應(yīng)。

        4 結(jié)論

        基于GIS的船舶監(jiān)控系統(tǒng)是港口管理系統(tǒng)中一個基本和重要的子系統(tǒng)。該子系統(tǒng)中獲取了港口所有船舶的動靜態(tài)信息,港口地貌信息。這些信息是很多港口管理系統(tǒng)其它子系統(tǒng)的必須信息,如引航子系統(tǒng),錨地管理子系統(tǒng),危險區(qū)域管理子系統(tǒng),還有航道管理子系統(tǒng)等等。系統(tǒng)的后續(xù)開發(fā)中可以將其他的子系統(tǒng)做為本系統(tǒng)的子模塊逐步添加到系統(tǒng)中,利用系統(tǒng)的插件框架,在系統(tǒng)部署運行后添加的新子模塊,既使得多個系統(tǒng)共享相同的數(shù)據(jù)源,減少數(shù)據(jù)在不同系統(tǒng)之間的交換,增加系統(tǒng)的實時性,又可以降低客戶對軟件成本的投入。

        系統(tǒng)中的動態(tài)船舶監(jiān)控模塊對信息的實時性要求比較高,特別是在大型和超大型港口中同時刻的船舶的數(shù)目很多時,數(shù)據(jù)的采集和采集后的實時顯示對系統(tǒng)的效率要求特別高。為避免顯示刷新時間太長,提高系統(tǒng)的實時性,可以通過暫時的系統(tǒng)硬件升級,而使用并行處理技術(shù)處理過濾顯示數(shù)據(jù)才是我們認(rèn)為的一個極有潛力的方向。

        參考文獻(xiàn)

        [1]Eric gamma,Richard helm,Ralph Johnson,John Vlissides.Design Patterns:The Element of Reusable Object-Oriented Software.Addison Wesley,Massachusetts, 1995.

        [2]張友生.軟件體系結(jié)構(gòu).北京:清華大學(xué)出版社,2004.

        [3]James Rumbaugh,et al.Object-Oriented Modeling and Design.北京:中國電力出版社,2004.

        [4]Sherif M.Yacoub,Hany H.Ammar.Pattern-Oriented Analysis and Design Composing Patterns to Design Software Systems(影印版).北京:中國電力出版社,2004.

        [5]Tom Archer,Andrew Whitechapel.馬朝暉,等譯.C# 技術(shù)揭密.北京:機(jī)械工業(yè)出版社,2003.

        [6]Christian Holm,Mike Kruger.Dissecting a C# Application Inside SharpDevelop.Apress L.P.Berkely,2003.

        日本免费一区精品推荐| 亚洲成色www久久网站夜月| 香蕉色香蕉在线视频| 色婷婷激情在线一区二区三区| 黄色国产精品福利刺激午夜片| 医院人妻闷声隔着帘子被中出| 亚洲中文字幕无码永久在线| 中文字幕亚洲无线码a| 国产黄色一区二区三区av| 久久精品国产亚洲av无码偷窥 | 亚洲日本va99在线| 国产亚洲精品视频在线| 国产一品二品三品精品在线| 成人免费777777被爆出| 亚洲国产美女精品久久| 亚洲色图在线视频观看| 91在线视频在线视频| 久久99久久99精品中文字幕| 国产91色在线|亚洲| 精品女同一区二区三区亚洲| 黑人大群体交免费视频| 欧美人与动牲交a欧美精品| 亚洲精品成人网线在线播放va| 成年人视频在线观看麻豆| 欧洲多毛裸体xxxxx| 精品国产制服丝袜高跟| 亚洲日本精品一区久久精品| av天堂最新在线播放| 国产精品伦一区二区三级视频| 亚洲AV无码国产永久播放蜜芽| 国产av精品久久一区二区| 性色av一二三天美传媒| 天天看片视频免费观看| 亚洲成AV人在线观看网址| 被灌醉的日本人妻中文字幕| s级爆乳玩具酱国产vip皮裤| 亚洲成人欧美| 日韩人妻一区二区中文字幕| 强开少妇嫩苞又嫩又紧九色| 奇米影视久久777中文字幕| 在线免费观看国产视频不卡|