国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種領域驅動開發(fā)插件系統(tǒng)的制作方法

      文檔序號:8319145閱讀:160來源:國知局
      一種領域驅動開發(fā)插件系統(tǒng)的制作方法
      【技術領域】
      [0001]本發(fā)明屬于網(wǎng)絡通信領域,尤其涉及一種領域驅動開發(fā)插件系統(tǒng)。
      【背景技術】
      [0002]作為系統(tǒng)數(shù)據(jù)存儲和分析的核心,數(shù)據(jù)庫在信息系統(tǒng)中起著重要作用,目前的企業(yè)級應用平臺開發(fā)和設計必須依賴于關系數(shù)據(jù)庫,數(shù)據(jù)庫在發(fā)揮巨大作用的同時,其模式結構也與主流的面向對象系統(tǒng)分析理論產生了較大的縫隙,隨著系統(tǒng)規(guī)模不斷增大,基于過程和事務腳本的系統(tǒng)分析方法已經不能滿足業(yè)務需求。
      [0003]基于00技術構建的領域建模理論,為大規(guī)模業(yè)務系統(tǒng)分析提供了有力的理論指導,隨著這方面理論不斷地成熟,已經逐漸應用到各個領域的系統(tǒng)分析和構架中。領域建模(Domain Modeling-DM)的初期是基于對象關系映射的ORM (Object Relat1nshipMapping)技術,ORM通過數(shù)據(jù)庫與對象的數(shù)據(jù)映射,解決了關系與對象的不匹配問題,讓系統(tǒng)設計分析人員能夠用純粹的對象技術來解決領域問題。但是隨著業(yè)務分析的深入,ORM產生的貧血對象模型由于行為能力的缺失,讓系統(tǒng)又從對象模型退化為事務處理過程,與DM理論逐漸背離。隨后為了避免貧血模型的弊端而出現(xiàn)的充血模型,將業(yè)務與數(shù)據(jù)全部合并到領域模型中,有很多框架都是在充血模型的理論基礎上進行了大量實踐(如ROR, Grails, Spring Roo等),這些快速開發(fā)框架在小型項目上應用非常成功,因為其模板式的開發(fā)方式,強大的動態(tài)方法生成,以及快速腳手架(Scaffolding)等特性,讓充血領域模型有了強大的功能。但是隨著業(yè)務增長,領域對象急速膨脹,維護難度也在增加,使系統(tǒng)處于一個不可控的狀態(tài),并且業(yè)務和數(shù)據(jù)的領域整合使系統(tǒng)的結構變得模糊不清,所以這類框架始終沒有成功的應用到大型項目開發(fā)中。
      [0004]一種基于四色原型的領域開發(fā)模型Evans DDD,強調領域設計必須以業(yè)務為指導,Evans DDD不但彌補了 ORM的對象行為缺失和生命周期問題,也通過領域聚合和分解有效地解決了充血模型隨著領域的擴大而臃腫的缺陷,為大型系統(tǒng)設計和開發(fā)提供了一個合理的解決途徑。由于Evans DDD的設計理念比較靈活,系統(tǒng)開發(fā)和設計人員對該理論進行了很多的實踐并取得了較多成果,但是始終沒有一個統(tǒng)一的底層技術構架來支持該模型。這不但給該理論的推廣造成了極大的障礙,沒有統(tǒng)一的構架支持,系統(tǒng)開發(fā)人員也很難將系統(tǒng)分析轉換為編碼,大大降低了系統(tǒng)的實施效率。同時現(xiàn)有的框架體系基本是以數(shù)據(jù)庫為核心的分層結構,也為DDD的實踐造成了很大的障礙,一些全新的框架由于不能很好的兼容以前的遺留系統(tǒng),也很難得到推廣。
      [0005]DDD是完全基于內存的業(yè)務對象建模(In-Memory)方法,但是在項目實施過程中,目前的開發(fā)框架均依賴于關系數(shù)據(jù)庫系統(tǒng),ORM雖然在數(shù)據(jù)庫與業(yè)務系統(tǒng)之間進行了橋接,但只支持貧血模型且對象生命周期無法DDD匹配,造成系統(tǒng)實施過程與設計不相符;現(xiàn)有的DDD框架不能完全覆蓋系統(tǒng)業(yè)務,也不成熟穩(wěn)定,無法應用于實際項目的開發(fā)。

      【發(fā)明內容】

      [0006]本發(fā)明實施例提供一種領域驅動開發(fā)插件系統(tǒng),旨在解決現(xiàn)有技術中JavaEE的分層構架出現(xiàn)領域失配、性能低下及DDD理論與實踐不兼容的問題。
      [0007]本發(fā)明實施例是這樣實現(xiàn)的,一種領域驅動開發(fā)插件系統(tǒng),所述系統(tǒng)包括:
      [0008]命令查詢分離體系設計單元,用于分離領域模型中的業(yè)務過程與數(shù)據(jù)查詢;
      [0009]消息代理單元,用于使領域與外界通信,并支持本地消息,以及分布式消息;以及
      [0010]消息模型設計單元,用于通過領域消息實現(xiàn)領域組件的信息交互,采用并發(fā)的事件驅動模式及AOP編程模型。
      [0011]本發(fā)明實施例根據(jù)DDD理論及Spring框架,實現(xiàn)了一個基于領域消息驅動和內存建模的DDD插件Takia,使項目實施完全兼容DDD設計,同時基于消息的通信機制能有效的解耦系統(tǒng)模塊,提高系統(tǒng)并發(fā)性能,在項目實施中更加合理高效。
      【附圖說明】
      [0012]圖1是本發(fā)明實施例提供的領域驅動開發(fā)插件系統(tǒng)的結構圖;
      【具體實施方式】
      [0013]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0014]本發(fā)明實施例基于Spring框架,實現(xiàn)了一種基于領域消息驅動及內存建模的DDD插件Takia,使項目實施完全兼容DDD設計,同時基于消息的通信機制能有效解耦系統(tǒng)模塊。
      [0015]圖1示出了本發(fā)明實施例提供的領域驅動開發(fā)插件系統(tǒng)的結構,詳述如下:
      [0016]命令查詢分離體系設計單元12分離領域模型中的業(yè)務過程與數(shù)據(jù)查詢。
      [0017]在本發(fā)明的實施例中,基于Takia的業(yè)務過程由命令總線和查詢總線構成,該查詢分為模型查詢及組合查詢,均支持分頁查詢。
      [0018]在本發(fā)明的實施例中,命令查詢分離體系設計單元12包括:模型創(chuàng)建流程設計模塊121,模型更新流程設計模塊122,模型刪除流程設計模塊123以及模型查詢流程設計模塊 124。
      [0019]模型創(chuàng)建流程設計模塊121根據(jù)用戶數(shù)據(jù)創(chuàng)建模型對象和相關值對象。
      [0020]模型更新流程設計模塊122根據(jù)用戶數(shù)據(jù)修改已經存在的模型對象和相關值對象。
      [0021]模型刪除流程設計模塊123根據(jù)用戶數(shù)據(jù)刪除已經存在的模型對象和相關值對象。
      [0022]模型查詢流程設計模塊124根據(jù)查詢條件查詢模型數(shù)據(jù)列表。
      [0023]消息代理單元13使領域與外界通信,并支持本地消息,以及分布式消息。
      [0024]消息模型設計單元14通過領域消息實現(xiàn)領域組件的信息交互,采用并發(fā)的事件驅動模式及AOP編程模型。
      [0025]在本發(fā)明的實施例中,領域消息模型根據(jù)標準的生產者一消費者設計模式構架。
      [0026]在本發(fā)明的實施例中,消息模型設計單元14包括JDK-Future消息模型設計模塊141以及Disruptor消息模型設計模塊142。
      [0027]JDK-Future消息模型設計模塊141根據(jù)Future消息模型運行消息監(jiān)聽器。
      [0028]在本發(fā)明的實施例中,Future消息模型基于JDK的Concurrent包實現(xiàn),核心組件為ChannelExecutor,由線程池和同步組件組成,若使用異步模式,則線程池運行消息監(jiān)聽器,若使用同步模式,則同步組件將消息監(jiān)聽器放入當前線程中執(zhí)行。
      [0029]Disruptor消息模型設計模塊142根據(jù)Disruptor消息模型同時運行多個消息處理器,獨立設置處理結果。
      [0030]在本發(fā)明的實施例中,Disruptor消息模型基于并發(fā)編程框架Disruptor實現(xiàn),采用全異步模式且支持1:N消息模式,核心結構由輸入?yún)^(qū)域和輸出集合組成。
      [0031]作為本發(fā)明的一個優(yōu)選實施例,該領域驅動開發(fā)插件系統(tǒng)還包括衛(wèi)星結構模型設計單元11。
      [0032]衛(wèi)星結構模型設計單元11通過與核心領域的消息交換實現(xiàn)業(yè)務邏輯,且以實體領域為核心。
      [0033]在本發(fā)明的實施例中,領域驅動開發(fā)插件系統(tǒng)以實體對象、值對象、聚集以及領域事件為基礎,采用分布式緩存實現(xiàn)領域的In-Memory模型。
      [0034]在本發(fā)明的實施例中,該系統(tǒng)采用以領域容器為核心的輻射結構,對領域緩存及領域消息均采用SpringAOP及Auto-Proxy的透明機制實現(xiàn)。
      [0035]本發(fā)明實施例根據(jù)DDD理論及Spring框架,實現(xiàn)了一個基于領域消息驅動和內存建模的DDD插件Takia,使項目實施完全兼容DDD設計,同時基于消息的通信機制能有效的解耦系統(tǒng)模塊,提高系統(tǒng)并發(fā)性能,在項目實施中更加合理高效。
      [0036]以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
      【主權項】
      1.一種領域驅動開發(fā)插件系統(tǒng),其特征在于,所述系統(tǒng)包括: 命令查詢分離體系設計單元,用于分離領域模型中的業(yè)務過程與數(shù)據(jù)查詢; 消息代理單元,用于使領域與外界通信,并支持本地消息,以及分布式消息; 消息模型設計單元,用于通過領域消息實現(xiàn)領域組件的信息交互,采用并發(fā)的事件驅動模式及AOP編程模型。
      2.如權利要求1所述的系統(tǒng),其特征在于,所述分離領域模型中的業(yè)務過程由命令總線和查詢總線構成,所述分離領域模型中的數(shù)據(jù)查詢分為模型查詢及組合查詢,均支持分頁查詢。
      3.如權利要求1所述的系統(tǒng),其特征在于,所述命令查詢分離體系設計單元具體包括: 模型創(chuàng)建流程設計模塊,用于根據(jù)用戶數(shù)據(jù)創(chuàng)建模型對象和相關值對象; 模型更新流程設計模塊,用于根據(jù)用戶數(shù)據(jù)修改已經存在的模型對象和相關值對象; 模型刪除流程設計模塊,用于根據(jù)用戶數(shù)據(jù)刪除已經存在的模型對象和相關值對象; 模型查詢流程設計模塊,用于根據(jù)查詢條件查詢模型數(shù)據(jù)列表。
      4.如權利要求1所述的系統(tǒng),其特征在于,所述領域消息模型根據(jù)標準的生產者一消費者設計模式構架。
      5.如權利要求1所述的系統(tǒng),其特征在于,所述消息模型設計單元具體包括: JDK-Future消息模型設計模塊,用于根據(jù)Future消息模型運行消息監(jiān)聽器;以及 Disruptor消息模型設計模塊,用于根據(jù)Disruptor消息模型同時運行多個消息處理器,獨立設置處理結果。
      【專利摘要】本發(fā)明適用于網(wǎng)絡通信領域,提供了一種領域驅動開發(fā)插件系統(tǒng),所述系統(tǒng)包括:命令查詢分離體系設計單元,用于分離領域模型中的業(yè)務過程與數(shù)據(jù)查詢;消息代理單元,用于使領域與外界通信,并支持本地消息,以及分布式消息;消息模型設計單元,用于通過領域消息實現(xiàn)領域組件的信息交互,采用并發(fā)的事件驅動模式及AOP編程模型。本發(fā)明根據(jù)DDD理論及Spring框架,實現(xiàn)了一種基于領域消息驅動和內存建模的DDD插件Takia,使項目實施完全兼容DDD設計,同時基于消息的通信機制能有效的解耦系統(tǒng)模塊,提高系統(tǒng)并發(fā)性能,在項目實施中更加合理高效。
      【IPC分類】G06F17-30, G06F17-40, G06F9-44
      【公開號】CN104636333
      【申請?zhí)枴緾N201310544634
      【發(fā)明人】張飛
      【申請人】寧夏新航信息科技有限公司
      【公開日】2015年5月20日
      【申請日】2013年11月6日
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1