国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)在構(gòu)建校園防私接系統(tǒng)中的應(yīng)用研究

2022-05-27 16:10:08黨嘉楠
科技與創(chuàng)新 2022年10期
關(guān)鍵詞:開(kāi)發(fā)人員客戶端驅(qū)動(dòng)

黨嘉楠

(西安交通大學(xué)軟件學(xué)院,陜西 西安 710049)

1 研究背景

在互聯(lián)網(wǎng)開(kāi)發(fā)“小步快跑,迭代試錯(cuò)”的大環(huán)境下,DDD(領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))似乎是一種比較“古老而緩慢”的思想。然而,隨著互聯(lián)網(wǎng)公司逐漸深入實(shí)體經(jīng)濟(jì),業(yè)務(wù)日益復(fù)雜,在開(kāi)發(fā)中也越來(lái)越多地遇到傳統(tǒng)行業(yè)軟件開(kāi)發(fā)中所面臨的問(wèn)題,如過(guò)度耦合、貧血癥(貧血領(lǐng)域?qū)ο?,Anemic Domain Object,是指僅用作數(shù)據(jù)載體而沒(méi)有行為和動(dòng)作的領(lǐng)域?qū)ο螅┖褪洶Y。而使用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想可以很好地解決這些問(wèn)題。為了降低系統(tǒng)耦合程度,在軟件的設(shè)計(jì)階段,基于領(lǐng)域驅(qū)動(dòng)的建模需要軟件開(kāi)發(fā)人員和相關(guān)領(lǐng)域?qū)<医Y(jié)合軟件開(kāi)發(fā)人員的專(zhuān)業(yè)技能和領(lǐng)域?qū)<业膶?zhuān)業(yè)知識(shí),建立準(zhǔn)確的領(lǐng)域模型,以更好地響應(yīng)需求變更,并縮短軟件開(kāi)發(fā)周期。為了解決貧血癥和失憶癥問(wèn)題,建立的多個(gè)領(lǐng)域模型都應(yīng)闡述現(xiàn)實(shí)中的實(shí)際問(wèn)題,使相關(guān)軟件開(kāi)發(fā)人員易于理解業(yè)務(wù),對(duì)系統(tǒng)進(jìn)行快速的維護(hù)和迭代。

2 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(Domain-Driven Design,簡(jiǎn)稱(chēng)DDD)是一種在軟件設(shè)計(jì)中應(yīng)該遵循的思維方式,其目標(biāo)在于加快具有復(fù)雜需求的軟件項(xiàng)目的研發(fā)速度[1]。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)可以實(shí)現(xiàn)對(duì)應(yīng)到持續(xù)進(jìn)化的模型。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中最重要的理念是通過(guò)構(gòu)建領(lǐng)域模型來(lái)解決軟件開(kāi)發(fā)的復(fù)雜性問(wèn)題[1],因?yàn)樵诖蠖鄶?shù)軟件項(xiàng)目中,最困難的往往是解決業(yè)務(wù)領(lǐng)域復(fù)雜性,而非技術(shù)復(fù)雜性。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的一個(gè)顯著特征就是設(shè)計(jì)與開(kāi)發(fā)的綁定,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)強(qiáng)調(diào)軟件設(shè)計(jì)概念必須在開(kāi)發(fā)過(guò)程中得以成功實(shí)現(xiàn)[2]。

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的前提是把項(xiàng)目的主要重點(diǎn)放在核心領(lǐng)域(Core Domain)和領(lǐng)域邏輯中;以領(lǐng)域中的模型為基礎(chǔ),進(jìn)行復(fù)雜的設(shè)計(jì);讓軟件開(kāi)發(fā)人員與領(lǐng)域?qū)<液献鳎缘绞絹?lái)完善特定領(lǐng)域問(wèn)題的概念模型。

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的核心原則是模型設(shè)計(jì)概念必須在代碼中成功實(shí)現(xiàn),否則,它們將會(huì)變成抽象的討論。將模型與實(shí)現(xiàn)相綁定意味著在設(shè)計(jì)模型時(shí)既要反映業(yè)務(wù)概念又要考慮程序的實(shí)現(xiàn),這使得我們?cè)谶x擇模型要做更多的考量,并且通常會(huì)經(jīng)歷多次反復(fù)修改和重新設(shè)計(jì)的過(guò)程。但是這樣的過(guò)程帶來(lái)的價(jià)值也是巨大的。將模型與實(shí)現(xiàn)相綁定,保證了程序代碼忠實(shí)地反映了領(lǐng)域知識(shí)的要求,有助于確保軟件正確地滿足用戶的需求。另一方面,由于代碼是嚴(yán)格按照領(lǐng)域模型來(lái)實(shí)現(xiàn)的,意味著開(kāi)發(fā)人員與業(yè)務(wù)專(zhuān)家們有了共同的語(yǔ)言,這有助于他們之間展開(kāi)高效的協(xié)作。

3 業(yè)界流行防私接系統(tǒng)設(shè)計(jì)

3.1 客戶端防私接技術(shù)

3.2 非客戶端防私接技術(shù)

由于客戶端防私接技術(shù)需要強(qiáng)制學(xué)生用戶安裝客戶端,易引起學(xué)生的反感而遇到較大推行阻力,由此產(chǎn)生了非客戶端的防私接技術(shù),在不要求學(xué)生安裝任何客戶端的情況,通過(guò)對(duì)學(xué)生上網(wǎng)的數(shù)據(jù)進(jìn)行應(yīng)用特征的分析從而發(fā)現(xiàn)用戶的私接行為[3]。非客戶端防私接技術(shù)主要是對(duì)學(xué)生上網(wǎng)的流量報(bào)文進(jìn)行監(jiān)控,基于深度包檢測(cè)(DPI)技術(shù)、通過(guò)識(shí)別用戶接入設(shè)備類(lèi)型和接入數(shù)量,確定用戶是否存在私接行為的監(jiān)控手段。與基于客戶端檢測(cè)的方法相比,流量防私接部署相對(duì)簡(jiǎn)單,用戶無(wú)感知,但是實(shí)現(xiàn)技術(shù)比較復(fù)雜,準(zhǔn)確性和識(shí)別率存在問(wèn)題。

4 基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的校園防私接系統(tǒng)的設(shè)計(jì)

在分析業(yè)界主流防私接系統(tǒng)的基礎(chǔ)上,發(fā)現(xiàn)不管是客戶端防私接系統(tǒng)還是非客戶端防私接系統(tǒng),系統(tǒng)耦合情況非常嚴(yán)重,軟件開(kāi)發(fā)人員難以維護(hù)和迭代。因此基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想和校園防私接的需求基礎(chǔ)上,創(chuàng)新地提出了校園寬帶防私接整體方案。

4.1 校園防私接系統(tǒng)頂層設(shè)計(jì)

將整個(gè)系統(tǒng)分為5個(gè)大模塊,將業(yè)務(wù)架構(gòu)映射到系統(tǒng)架構(gòu)上,實(shí)現(xiàn)高內(nèi)聚低耦合。

Horus Manager模塊:防私接平臺(tái)中的管理節(jié)點(diǎn),它可以在Site模式和Controller模式下運(yùn)行(相同的應(yīng)用程序在不同的模式下運(yùn)行)。Site和Controller使用RabbitMQ相互通信。在Controller模式下運(yùn)行的Horus Manager也是一個(gè)Site,但提供了一組REST API來(lái)定義/控制和管理集群。

Console模塊:防私接平臺(tái)前端Web控制中心,直接與Horus Manager進(jìn)行交互。

Client模塊:一款帶防共享功能的撥號(hào)管理客戶端,包含Windows、MacOS、iOS、Android下的一系列客戶端。

IVS(Identity Verification Service)模塊:與客戶端進(jìn)行心跳機(jī)制驗(yàn)證的后端模塊。客戶端撥號(hào)后,與心跳服務(wù)器之間按預(yù)定或協(xié)商的算法通訊;服務(wù)器通過(guò)檢查數(shù)據(jù)是否按時(shí)到來(lái)、是否有效,來(lái)判斷客戶端是否還在線,是否偽造的客戶端。

主題學(xué)習(xí)模式 20世紀(jì)60年代,美國(guó)教育者熱衷于將學(xué)習(xí)目標(biāo)進(jìn)行分類(lèi)研究,如布盧姆把教學(xué)目標(biāo)分為三個(gè)領(lǐng)域,但在實(shí)踐過(guò)程中發(fā)現(xiàn)這三個(gè)領(lǐng)域?qū)嶋H是一個(gè)整體,這種分類(lèi)方法造成它們之間相互分離。所以,20世紀(jì)90年代中期,整合課程研究的熱潮在美國(guó)興起,主題學(xué)習(xí)作為整合教學(xué)目標(biāo)的有效方式,開(kāi)始被廣泛應(yīng)用。

Trafficam(Network Traffic Monitor)模塊:是防私接平臺(tái)的一個(gè)流量監(jiān)控應(yīng)用模塊。它接受傳入的網(wǎng)絡(luò)流量對(duì)象(例如pcap、suricata-eve等)并嘗試從中提取信息并以持久的方式保留這些信息。

系統(tǒng)架構(gòu)關(guān)系如圖1所示。

圖1 系統(tǒng)架構(gòu)關(guān)系圖

4.2 Horus Manager模塊架構(gòu)設(shè)計(jì)

Horus Manager模塊是整個(gè)系統(tǒng)中的核心,也是業(yè)務(wù)邏輯最復(fù)雜的一部分。使用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想設(shè)計(jì)該模塊,可以有效降低系統(tǒng)復(fù)雜度,有利于軟件開(kāi)發(fā)人員快速開(kāi)發(fā)和維護(hù)。

將一個(gè)復(fù)雜的程序切分成層。開(kāi)發(fā)每一個(gè)層中內(nèi)聚的設(shè)計(jì),讓每個(gè)層僅依賴于它底下的那層。遵照標(biāo)準(zhǔn)的架構(gòu)模式以提供層的低耦合。將領(lǐng)域模型相關(guān)的代碼集中到一個(gè)層中,把它從用戶界面、應(yīng)用和基礎(chǔ)設(shè)施代碼中分隔開(kāi)來(lái)。

因此,Horus Manager模塊的總體框架基于領(lǐng)域驅(qū)動(dòng)進(jìn)行設(shè)計(jì),分為4層,具體如下。

API層(用戶接口層):本層的主要功能是提供接口使后端與前端進(jìn)行交互。在實(shí)現(xiàn)過(guò)程中,要先確認(rèn)與前端進(jìn)行交互的各種DTO,用于滿足系統(tǒng)前后端交互數(shù)據(jù)的安全性。其次,使用外觀模式(Facade Pattern)隱藏系統(tǒng)的復(fù)雜性,給前端提供一個(gè)統(tǒng)一入口,并對(duì)外屏蔽內(nèi)部子系統(tǒng)的調(diào)用細(xì)節(jié)。

Application層(應(yīng)用層):本層是很薄的一層,本層的主要功能是是用于協(xié)調(diào)各種應(yīng)用情況。本層主要負(fù)責(zé)DTO和實(shí)體值對(duì)象的數(shù)據(jù)轉(zhuǎn)換,對(duì)于簡(jiǎn)單的業(yè)務(wù),也可以在本層直接加載實(shí)體,執(zhí)行實(shí)體行為方法。本層不包含業(yè)務(wù)邏輯,注意本層可以包含查詢邏輯,但核心業(yè)務(wù)邏輯必須下沉到Domain層。本層不保留業(yè)務(wù)對(duì)象的狀態(tài),只保有應(yīng)用任務(wù)的進(jìn)度狀態(tài)。

Domin層(領(lǐng)域?qū)樱罕緦邮穷I(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想中最重要的一層,包含關(guān)于系統(tǒng)領(lǐng)域的信息。本層是業(yè)務(wù)軟件的核心所在,在本層實(shí)現(xiàn)核心的業(yè)務(wù)邏輯。只有在本層可以保留業(yè)務(wù)對(duì)象的狀態(tài),對(duì)業(yè)務(wù)對(duì)象和它們狀態(tài)的持久化被委托給了Infrastructure層。

Infrastructure層(基礎(chǔ)設(shè)施層):本層主要功能是對(duì)Domin模塊進(jìn)行持久化。本層可以把領(lǐng)域?qū)ο笮蛄谢街付ǖ脑?,如?shù)據(jù)庫(kù)、文件或者內(nèi)存對(duì)象,當(dāng)然也提供從物理元件取出數(shù)據(jù)到領(lǐng)域?qū)ο蟮墓δ?。本層作為其他層的支撐?kù)存在,提供了層間的通信,實(shí)現(xiàn)了對(duì)業(yè)務(wù)對(duì)象的持久化。

4.3 Horus Manager模塊核心功能設(shè)計(jì)

Horus Manager模塊最重要的功能就是接收IVS模塊與Trafficam模塊傳來(lái)的信息,分析并判斷該用戶是否私接。對(duì)此,當(dāng)然可以使用復(fù)雜的業(yè)務(wù)邏輯對(duì)此進(jìn)行判斷。但當(dāng)開(kāi)發(fā)此功能的軟件開(kāi)發(fā)人員離職后,其他軟件開(kāi)發(fā)人員接手此系統(tǒng)時(shí),會(huì)發(fā)現(xiàn)此業(yè)務(wù)邏輯非常難以理解,需要花費(fèi)大量時(shí)間讀懂這些業(yè)務(wù)邏輯。于是需要基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想解決該問(wèn)題,我們發(fā)現(xiàn)判斷一個(gè)人是否私接與現(xiàn)實(shí)生活中司法系統(tǒng)判斷一個(gè)人是否有罪有異曲同工之妙,因此基于現(xiàn)實(shí)中的司法系統(tǒng)對(duì)解決該問(wèn)題進(jìn)行建模,可以使沒(méi)有開(kāi)發(fā)此系統(tǒng)的軟件開(kāi)發(fā)人員易于理解復(fù)雜的業(yè)務(wù)邏輯。

現(xiàn)實(shí)中的司法系統(tǒng)判斷一個(gè)人是否有罪需要經(jīng)過(guò)搜集證據(jù)、訴訟、定罪、執(zhí)法4步。因此,基于司法系統(tǒng)對(duì)判斷該用戶是否私接進(jìn)行建模,建立CaseInstance、Prosecution、Conviction、Enforcement這4個(gè)主要實(shí)體。CaseInstance表示會(huì)話,其中保存著會(huì)話的私接證據(jù)、身份信息、網(wǎng)絡(luò)信息等;Prosecution表示訴訟過(guò)程;Conviction表示定罪過(guò)程;Enforcement表示執(zhí)法過(guò)程。這樣建模將原本復(fù)雜的判斷私接過(guò)程拆分開(kāi)來(lái),使相關(guān)軟件開(kāi)發(fā)人員易于理解,因?yàn)樗痉ㄏ到y(tǒng)本就是現(xiàn)實(shí)中存在的東西,就此實(shí)現(xiàn)和維護(hù)功能將變得非常簡(jiǎn)單。4個(gè)核心實(shí)體的類(lèi)圖如圖2所示。

圖2 核心功能類(lèi)圖

Horus Manager模塊的核心功能如下。

對(duì)用戶會(huì)話進(jìn)行管理:案件管理、登記和結(jié)案。從RADIUS服務(wù)器接收RADIUS計(jì)費(fèi)數(shù)據(jù)包以創(chuàng)建和銷(xiāo)毀會(huì)話。

獲得私接證據(jù)過(guò)程:實(shí)施“身份驗(yàn)證”協(xié)議并處理來(lái)自已知客戶端應(yīng)用程序(IVS)的協(xié)商和通知,監(jiān)控網(wǎng)絡(luò)流量并從網(wǎng)絡(luò)流量中提取已知數(shù)據(jù)庫(kù)的信息(Trafficam)。接受來(lái)自IVS/Trafficam的案件調(diào)查。

進(jìn)行訴訟過(guò)程:案件調(diào)查適用條例。

進(jìn)行定罪過(guò)程:根據(jù)組織/用戶組和配置的策略定罪案例。

進(jìn)行執(zhí)法過(guò)程:執(zhí)行強(qiáng)制(斷開(kāi)連接、限速或阻止私接賬號(hào)使用操作),將判決結(jié)果發(fā)送給BAS(高校寬帶運(yùn)營(yíng)管理平臺(tái))進(jìn)行執(zhí)行。

5 結(jié)束語(yǔ)

校園防私接系統(tǒng)應(yīng)用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想進(jìn)行設(shè)計(jì)開(kāi)發(fā),降低了系統(tǒng)耦合度,使系統(tǒng)易于維護(hù)和迭代。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的最大優(yōu)勢(shì)是直接將核心業(yè)務(wù)邏輯與領(lǐng)域模型結(jié)合起來(lái),更好實(shí)現(xiàn)高內(nèi)聚、松耦合,這種優(yōu)勢(shì)逐漸使其成為軟件設(shè)計(jì)的主流思想,特別是面對(duì)大型復(fù)雜的互聯(lián)網(wǎng)系統(tǒng)。同時(shí)現(xiàn)如今的企業(yè)發(fā)展也越來(lái)越重視維護(hù)和迭代,所以領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)也會(huì)取得越來(lái)越廣泛的應(yīng)用。在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),需要按照需求合理設(shè)計(jì)模型。在進(jìn)行分層建設(shè)過(guò)程中,也需要充分考慮好各種不必要因素,及時(shí)調(diào)整,選擇合理框架以及開(kāi)發(fā)系統(tǒng),提高運(yùn)行效率。

猜你喜歡
開(kāi)發(fā)人員客戶端驅(qū)動(dòng)
基于模糊PI控制的驅(qū)動(dòng)防滑仿真系統(tǒng)分析
屈宏斌:未來(lái)五年,雙輪驅(qū)動(dòng),砥礪前行
軌旁ATC系統(tǒng)門(mén)控柜接收/驅(qū)動(dòng)板改造
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
孵化垂直頻道:新聞客戶端新策略
基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
基于S3C6410的Wi-Fi驅(qū)動(dòng)移植實(shí)現(xiàn)
讓W(xué)indows 10進(jìn)入開(kāi)發(fā)者模式
電腦迷(2015年12期)2015-04-29 23:22:51
后悔了?教你隱藏開(kāi)發(fā)人員選項(xiàng)
宁南县| 林芝县| 黑山县| 宜春市| 河西区| 堆龙德庆县| 永清县| 开阳县| 德惠市| 镇平县| 宝兴县| 凤翔县| 宽甸| 四子王旗| 高密市| 仪陇县| 海南省| 深圳市| 临沂市| 九江县| 定远县| 通辽市| 栾城县| 康保县| 峨眉山市| 贵溪市| 农安县| 称多县| 庆元县| 寿阳县| 钟祥市| 璧山县| 彩票| 新沂市| 鹤山市| 剑川县| 微博| 定结县| 双柏县| 周至县| 南川市|