999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

項目式DDD實現的移動端航油加注系統設計

2023-11-22 02:57:00孫景榮王健凱
物聯網技術 2023年11期
關鍵詞:模型系統設計

孫景榮,王健凱,吳 科

(西安電子科技大學 空間科學與技術學院,陜西 西安 710071)

0 引 言

經濟全球化的發展趨勢日益加快,人們在參加各種經濟交流活動時也逐漸傾向于選擇飛機等方便且快速的交通方式。這將促進我國航空產業的發展,航空燃油(簡稱“航油”)的需求也隨之增加,民用機場的航油加注業務也因此高速增加[1]。為了提高民航系統航油業務的整體信息化,實現數據和信息共享,促進航油加注系統的智能化,本文以項目的方式設計了一個基于領域驅動設計(Domain-Driven Design,DDD)[2]的移動端航油加注系統。該系統基于DDD思想,采用C/S架構設計并實現了靈活可擴展的平板終端航油加注系統APP,改變了傳統加油模式,提高了加油作業效率,使油單能夠電子化,對機場的信息化、智能化管理以及推動民航產業的發展都具有重要意義。

1 系統總體流程

機場航油加注的總體作業流程如圖1所示。具體步驟如下:(1)航空公司和空管中心的相關負責人生成加注航油的任務表;(2)機場的調度員在收到加油的任務表后,將任務下達給加油員;(3)加油員選擇任務進行接收,并開始航油加注作業;(4)在進行加注作業的同時生成油單并簽字;(5)將油單等信息同步至服務器。系統總體的業務功能要求能夠實現自動接入、讀取、整合油單相關數據;自動生成電子油單,自動上傳、存儲、打印油單。該系統能夠提升開單效率與準確率;同時,油單的簽字主要是電子簽名的方式,以減少紙質方式造成的浪費。

圖1 機場航油加注總體流程

2 系統領域建模及功能模塊設計

2.1 系統離線業務模型設計

終端設備的網絡信號會受到機場塔臺無線電、飛機和塔臺的雷達、乘客手機等設備連接基站等干擾,隨時會出現斷網離線情況。因此本系統在開發時考慮了離線業務模型。針對離線需求,航油加注系統需要在網絡干擾較多或者無網絡的情況下支持離線操作,在網絡異常、通信干擾等不可抗因素造成的網絡斷開狀態下完成加油任務,如能夠進行離線生成任務表、離線修改油單、離線持久化油單等操作。在網絡恢復后,再將保障進度數據與電子油單數據上傳到系統后臺。為此,本文提出了一種離線的加油方案用以解決離線斷網情況下的加油問題。首先,系統在網絡正常連接期間,可以緩存航班表和任務表到本地數據庫。因此PAD(移動設備)在執行任務時因網絡異常而斷開連接,而又不得不進行離線作業之前,有過一次及以上的成功聯網,就可以通過緩存的航班表及任務表進行離線作業。若在聯網時沒有需要緩存的任務,離線狀態下任務表中沒有任務,則進行離線的任務申請;若緩存了任務,并且任務表中有任務則接受離線任務,同時在本地Realm數據庫中持久化任務表,在上述的作業過程均不斷嘗試與服務器進行連接。

如果PAD在進行加油作業之前無法成功聯網,并且沒有將任務表緩存至本地,則進行對航班的離線創建,通過PAD將航班信息持久化到本地的航班表,同時嘗試與服務器連接并上傳這些數據。如果要執行該航班的任務,在航班信息持久化后接受任務,否則在離線狀態下申請創建任務,然后再將任務表持久化至本地,在此期間不斷嘗試連接服務器并將本地任務表同步至服務器。創建了加注任務,可以繼續進行操作,如生成離線油單、離線錄入油料、離線修改油單等操作,打印油單操作所需要的數據也能夠生成,然后將油單信息持久化至本地。

最后在本地Realm數據庫保存油單所需相關信息,如油料、油井等信息;并等待網絡的恢復,在網絡恢復后與服務器進行連接,在服務器的系統后臺同步油單數據以及加油保障進度等信息。

2.2 系統領域模型設計

DDD是一種面向對象的軟件開發方法論,強調將開發的重點放在解決業務領域問題上。這個方法論的思想首先是在進行開發時,需要領域專家的參與,將其經驗和專業知識納入進來,工作人員與專家將面向同一模型進行討論,彼此共享知識與信息,防止需求走樣,從而建立正確的領域模型;其次,通過領域模型作為軟件開發的核心來進行指導,再通過代碼來實現模型。因此,領域驅動設計的核心是建立正確的領域模型[3]。

根據對加油系統需求的分析,發現加油系統較為復雜,后期需要進行維護擴展,可以使用領域模型進行系統設計。建立領域模型,區分領域對象和領域對象之間的邏輯關系,分析系統中哪些實體是對象,哪些是值對象。由于系統邏輯較為復雜,給出部分領域模型如圖2所示。

圖2 系統領域模型類圖

2.3 系統功能模塊設計

根據前面的需求分析以及領域模型設計,系統整體的功能模塊包括:人員登錄、任務信息、航班信息、油單信息、人車綁定、導航欄信息等六大模塊。功能框圖如圖3所示。

圖3 系統功能框圖

(1)人員登錄模塊:此模塊可以注冊加油員的賬號,加油員可以使用賬號和密碼進行登錄,在登錄后也可退出系統,同時此模塊有注銷加油員賬號的功能。

(2)任務信息模塊:主要用于管理任務信息,包含任務列表、任務檢索、任務詳情、創建航班四部分,可以執行添加和取消任務、接受任務、結束任務等功能。

(3)航班信息模塊:此模塊用于管理航班信息,可以執行新增航班、查詢航班、檢索航班、訂閱和取消航班等功能。

(4)油單信息模塊:對油單進行編輯、修改,修改油單類型、加油油量等參數;具有對油單進行簽名、錄入油料信息等功能,并能夠在有網絡或者藍牙連接時,連接至打印機,調用接口對打印機進行控制。

(5)人車綁定模塊:在加油作業時,加油員需要綁定一輛加油車才能使用此加油車正常地給飛機加油,所以此模塊用于加油員與加油車輛的綁定。加油員可以通過輸入車牌號,專有的車輛識別號或者掃描加油車上面的二維碼與車輛綁定。在任務結束后,加油員可以進行解綁操作,與加油車解除綁定。

(6)導航欄信息模塊:該模塊即為系統APP的導航欄,包含常用且重要的按鈕供加油員快速查看所需信息,如警告、消息通知、個人信息等,設置了應急的通信窗口供加油員在發現緊急情況時快速聯系相關人員。

3 系統分層架構設計

3.1 領域驅動設計的分層原則

DDD分層的基本原則是:(1)需要分離關注點,隔離地設計軟件的不同部分;(2)某一層中元素不依賴其上層元素,而是與同層中的元素或者其相鄰的下層元素有較高的耦合性;(3)向上的信息傳遞必須經過一些間接機制。分層是為了使系統分成幾個部分,各個部分分工明確,只負責系統中的某個功能。這樣有利于降低系統各功能之間的耦合性,提高功能內部的內聚性,且會使得軟件的架構更加清晰,更有利于解釋其設計的內容和目的。大多數成功的分層設計都可以使用DDD的經典分層架構來實現[4-8]。

3.2 React+Redux中的MVC設計模式

React和Redux都是前端框架,React是一個負責View層渲染的框架,其采用的Diff算法和虛擬DOM思想使得操作DOM時耗費效率方面的問題得到了有效的解決[9]。React Native框架是在React的基礎上衍生出來的,可以兼顧優良的用戶體驗[10]。Redux是一個輕量級的數據層框架,可以使存儲數據方式更為清晰,而且能夠使應用更易調試[11];同時,使用Redux框架可以在系統變得錯綜復雜時解決諸如重現問題或添加新功能困難的問題[12]。

React+Redux中的Model View Controller(MVC)模式是對傳統MVC框架的細化,在Redux中Controller分為action和reducer,通過action去派發一個事件,然后在reducer里定義這個事件,對store中的state進行修改。Redux中store里的state表示Model,而React主要負責UI層的顯示,里面的各個Component表示View。

3.3 基于DDD思想的MVC分層架構

DDD適合業務邏輯復雜的應用。其以系統業務建模為中心,可擴展性強,可以按照需求靈活地對軟件進行設計,同時如果后續對系統的需求有所改動,可以較容易地進行修改或重構。基于React和Redux框架的MVC設計模式,與DDD相結合時可以結合它們的優點,規避缺點,比如MVC架構雖然有良好的可測試性,但在具有復雜業務邏輯的情況下表現不佳,二者結合既能保證有復雜業務邏輯的程序穩定運行,也能保留可測試性,為系統的測試提供了便利。二者的有機結合,使各層之間的功能劃分明確,每一層能夠單獨測試,進一步提高了系統的可維護性和可擴展性[13-16]。系統的架構如圖4所示。

圖4 基于DDD思想的MVC分層架構

從MVC的角度上進行設計,系統被設計為User Interface(用戶接口層)和Model(模型層)兩層的架構。其中User Interface層細分為View(視圖層)和Controller(控制層)。而Model又按照DDD思想進一步細化,分為Application(應用層)、Domain(領域層)和Infrastructure(基礎結構層)。

(1)User Interface(用戶接口層)

用戶接口層面向用戶,為了加油的工作人員而設計,加油員直接使用的視圖層操作簡單、功能齊全、界面簡潔、響應快速。視圖層在本系統中主要表現為頁面的各個Component(組件)。控制層基于REST風格接口,用于前端APP與后端的對接,負責將用戶的各種操作轉換成針對后端的操作,將操作發送至Model層。

(2)Application(應用層)

應用層不含任何的業務邏輯操作,本身也沒有業務邏輯代碼,用于將用戶接口層傳遞的業務進行封裝、組合等,定義要完成的業務,將這些業務傳遞給領域層,并協調指揮領域層中各領域對象之間的操作,以及領域層與基礎結構層之間的動作,以完成用戶交給系統的任務。

(3)Domain(領域層)

領域層不僅是Model層的核心,也是整個系統的核心,系統在這一層完成幾乎全部的業務邏輯;系統要準確地完成復雜的業務,需要對這一層的元素進行清晰明確的設計。Domain層包含Entity(實體)、Value Object(值對象)、Domain Event(領域事件)和Repository(倉儲)等多種重要的領域組件。

(4)Infrastructure(基礎結構層)

基礎結構層為其他三層提供底層依賴操作。這一層與業務邏輯無關,包含著數據庫、中間件等工具,由于系統數據持久化的需要,在該層下又分出了持久化層,系統在持久化層使用了Realm數據庫、React-native-storage插件庫等工具,將領域模型的狀態存儲至這一層,目的是保證領域層業務邏輯的純凈。

4 系統實現

根據前面系統需求分析和領域模型設計,移動端航油加注系統實現的主要業務功能有航班獲取、任務獲取、申請任務、油單生成、電子簽名、同步數據、油單上傳打印、離線創建航班、離線生成任務、接受任務、離線生成油單等核心業務功能。系統核心功能頁面實現及功能測試如下:

(1)加油員在平板作業終端打開系統APP,根據后臺提供的賬號和密碼進行登錄,如圖5所示;后臺驗證通過進入任務列表首頁。

圖5 系統登錄頁

(2)點擊一條任務進行加油操作,圖6為航班MU777的加油任務的詳情頁;加油員在確認任務信息無誤后,可點擊【接受任務】按鈕,點擊后任務狀態變為到位確認,按鈕狀態即變為【到位確認】。

圖6 MU777任務詳情頁

(3)點擊【到位確認】后進入的頁面為油單詳情頁,此時會讀取加油數據,并顯示出來,如圖7所示。點擊【生成油單】按鈕,任務狀態會變為上傳油單,加油員在上傳油單之前需要點擊【簽名】按鈕,彈出電子簽名窗口,加油員在此窗口簽名,如圖8所示。簽名確認后點擊【上傳油單】,任務狀態變為打印油單,點擊【打印油單】后,PAD向車載主機和打印機發送打印指令,打印此油單。至此,一條完整的加油任務執行完畢。

圖7 MU777任務生成油單信息

圖8 對油單進行簽名確認

(4)側邊欄內的其他按鈕也能夠進行操作。如點擊側邊欄【航班】按鈕,當日在加油員工作的機場的所有航班信息都會顯示出來,提供航班檢索功能,方便加油員快速定位航班。點擊【新建航班】將離線創建航班,保存后成功添加到航班列表中。經測試,系統能夠正常完成核心功能的操作。

5 結 語

本文首先詳細分析了系統業務需求;其次通過需求設計系統功能,結合領域建模分析方法,更深層次地挖掘出項目核心需求,使得軟件的設計更符合實際的需求。然后,基于領域驅動設計的分層架構思想,與MVC框架相結合,利用ES6語法、React Native移動端框架、React和Redux框架以及Android數據庫框架Realm等新技術設計了系統的分層架構,有效地劃分軟件的層次設計,使系統各層之間的耦合程度得以下降,軟件的開發效率和可維護性也得以提高。最后,實現了加油員平板終端操作的航油加注系統,使得機場加油作業方式從傳統的人工操作到實現電子化、智能化控制成為了可能,對機場管理以及民航產業的現代化、信息化發展都具有重要意義。

猜你喜歡
模型系統設計
一半模型
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
主站蜘蛛池模板: 欧美亚洲激情| 911亚洲精品| 久久精品嫩草研究院| 国产成人区在线观看视频| 国产精品亚洲综合久久小说| 欧美国产菊爆免费观看| 亚洲综合婷婷激情| 91无码人妻精品一区二区蜜桃| 国产99精品久久| 欧美一级专区免费大片| 欧美成人一级| 亚洲成网777777国产精品| 国产高清自拍视频| 婷五月综合| 在线无码私拍| 91国内视频在线观看| 亚洲欧洲日韩综合| 成人a免费α片在线视频网站| 国产菊爆视频在线观看| 亚洲首页国产精品丝袜| 日韩欧美国产综合| 久久99这里精品8国产| 97国产精品视频人人做人人爱| 国产网站黄| 亚洲an第二区国产精品| 亚洲人在线| 亚洲区欧美区| 久久五月视频| 国国产a国产片免费麻豆| 99er精品视频| 欧洲日本亚洲中文字幕| 视频二区国产精品职场同事| 狠狠色综合久久狠狠色综合| 欧美激情视频一区二区三区免费| 亚洲国产成人精品一二区| 99视频全部免费| 欧美丝袜高跟鞋一区二区| 都市激情亚洲综合久久| 欧美成人手机在线观看网址| 日本成人福利视频| 国产视频自拍一区| 成人91在线| 久久亚洲天堂| 九九久久精品免费观看| 午夜视频免费试看| 99视频在线看| 91无码网站| 亚洲男人的天堂久久香蕉| 久久精品国产精品青草app| 久久青草免费91观看| 一本久道久久综合多人| 日本一本正道综合久久dvd| 国产一区二区三区在线观看视频| 国内精品91| 亚瑟天堂久久一区二区影院| 日本人妻丰满熟妇区| 久久久无码人妻精品无码| 日韩欧美中文字幕在线韩免费| 亚洲成a人片77777在线播放| 性视频一区| 成人va亚洲va欧美天堂| 国内丰满少妇猛烈精品播| 国产无码网站在线观看| 亚洲天堂网在线视频| 亚洲天堂免费| 亚洲免费毛片| 亚洲人成在线精品| 亚洲AV无码乱码在线观看裸奔| 色网在线视频| 久久永久视频| 多人乱p欧美在线观看| 精品国产成人国产在线| 亚洲全网成人资源在线观看| 中文字幕1区2区| 狠狠亚洲五月天| 国产精品久久精品| 狠狠亚洲五月天| 五月天在线网站| 日本人妻丰满熟妇区| 欧洲成人在线观看| 日本高清免费不卡视频| 色婷婷在线影院|