• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于領(lǐng)域驅(qū)動(dòng)的企業(yè)中臺設(shè)計(jì)研究

    2019-10-21 06:52:08周紅林曾春生常歡歡
    現(xiàn)代信息科技 2019年20期

    周紅林 曾春生 常歡歡

    摘? 要:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)是國外IT圈享有盛譽(yù)并行之有效的設(shè)計(jì)法學(xué),國內(nèi)大多數(shù)的技術(shù)人員卻并不了解,也未曾運(yùn)用到項(xiàng)目實(shí)踐中,可以說是知之稀少。然而微服務(wù)設(shè)計(jì)和企業(yè)中臺設(shè)計(jì),似乎讓人們又重新認(rèn)識和發(fā)現(xiàn)了領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的價(jià)值,本文基于企業(yè)業(yè)務(wù)中臺的特性,研究領(lǐng)域建模與信息系統(tǒng)設(shè)計(jì)的內(nèi)在關(guān)聯(lián),梳理并編制了基于領(lǐng)域驅(qū)動(dòng)企業(yè)業(yè)務(wù)中臺設(shè)計(jì)的方法,并在項(xiàng)目實(shí)踐中初步引用,為下一步企業(yè)中臺設(shè)計(jì)提供理論基礎(chǔ)和實(shí)踐指導(dǎo)。

    關(guān)鍵詞:領(lǐng)域模型;企業(yè)中臺;領(lǐng)域設(shè)計(jì)

    中圖分類號:TP311.52? ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)20-0079-03

    Abstract:Domain-driven design is an effective design law that is well-known in foreign IT circles. Most domestic technicians do not understand it and have not applied it to project practice. It can be said that it is rare. However,the micro-service design and enterprise mid-plane design seem to let people re-recognize and discover the value of domain-driven design. Based on the characteristics of enterprise business mid-plane,the intrinsic relationship between research area modeling and information system design,this paper combs and compiles the method of domain-driven enterprise business mid-plane design,and preliminarily quotes it in project practice to provide theoretical basis and practical guidance for the next stage of enterprise business mid-plane design.

    Keywords:domain model;enterprise mid-plane;domain design

    0? 引? 言

    傳統(tǒng)軟件系統(tǒng)設(shè)計(jì)通常采用的是聚焦在以數(shù)據(jù)及數(shù)據(jù)樣式為核心的系統(tǒng)建模方法。面向數(shù)據(jù)的建模方法是關(guān)系數(shù)據(jù)庫理論的延續(xù),關(guān)注的是數(shù)據(jù)表及數(shù)據(jù)表之間關(guān)系的設(shè)計(jì),這是典型的面向技術(shù)實(shí)現(xiàn)的建模方法。面對日漸復(fù)雜的業(yè)務(wù)邏輯,這種設(shè)計(jì)方法欠缺靈活性與可擴(kuò)展性,也無法更好地利用面向?qū)ο笤O(shè)計(jì)思想及設(shè)計(jì)模式,建立可重用的、可擴(kuò)展的代碼單元。

    領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(Domain-Driven Design,DDD)是由著名建模專家Eric Evans最早提出的綜合軟件系統(tǒng)分析和設(shè)計(jì)的面向?qū)ο蠼7椒?,如今已?jīng)發(fā)展成為了一種針對大型復(fù)雜系統(tǒng)的領(lǐng)域建模與分析方法。它完全改變了傳統(tǒng)軟件開發(fā)工程師針對數(shù)據(jù)庫進(jìn)行的建模方法,從而將要解決的業(yè)務(wù)概念和業(yè)務(wù)規(guī)則轉(zhuǎn)換為軟件系統(tǒng)中的類型以及類型的屬性與行為,通過合理運(yùn)用面向?qū)ο蟮姆庋b、繼承和多態(tài)等設(shè)計(jì)要素,降低或隱藏整個(gè)系統(tǒng)的業(yè)務(wù)復(fù)雜性,并使得系統(tǒng)具有更好的擴(kuò)展性,以應(yīng)對紛繁多變的現(xiàn)實(shí)業(yè)務(wù)問題。

    企業(yè)中臺支撐了企業(yè)業(yè)務(wù)的數(shù)字化和企業(yè)數(shù)據(jù)的業(yè)務(wù)化,提升了企業(yè)的數(shù)字化運(yùn)營能力,支撐了企業(yè)業(yè)務(wù)的靈活迭代。業(yè)務(wù)中臺就是通過制定企業(yè)級的標(biāo)準(zhǔn)和機(jī)制,把企業(yè)內(nèi)不確定的業(yè)務(wù)規(guī)則和流程通過工業(yè)化、市場化和IT化的手段確定下來,有效降低企業(yè)內(nèi)各組織主體的溝通成本,通過中心化能力的垂直化自主發(fā)展和水平化的服務(wù)延伸,最大程度提升企業(yè)內(nèi)個(gè)人、各組織主體的協(xié)作效率。其核心原則為集中管控、分布式執(zhí)行,打造強(qiáng)大基礎(chǔ)支撐,靈活前端觸角,敏捷接受市場化的需求和變化,將企業(yè)業(yè)務(wù)能力根植到社會大環(huán)境中,增強(qiáng)企業(yè)核心競爭力。業(yè)務(wù)中臺的核心價(jià)值在于將傳統(tǒng)IT把業(yè)務(wù)能力IT化的模式轉(zhuǎn)變?yōu)閷I(yè)務(wù)能力資產(chǎn)化的模式,從而提高業(yè)務(wù)敏捷性及響應(yīng)市場的速度,進(jìn)而達(dá)到企業(yè)提質(zhì)轉(zhuǎn)型、降本增效的目標(biāo)。

    1? 企業(yè)中臺設(shè)計(jì)方法研究

    通過對領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的方法研究,并結(jié)合企業(yè)業(yè)務(wù)中臺的特性,研究發(fā)現(xiàn)中臺的設(shè)計(jì)過程可以分為四個(gè)步驟:首先開展業(yè)務(wù)域建模,其次基于業(yè)務(wù)建模成果開展中臺規(guī)劃,再次根據(jù)業(yè)務(wù)流程及功能開展服務(wù)識別與服務(wù)設(shè)計(jì),最后則是服務(wù)實(shí)現(xiàn)。中臺設(shè)計(jì)過程示意圖如圖1所示。

    1.1? 業(yè)務(wù)域建模

    “業(yè)務(wù)域建模”是通過對業(yè)務(wù)中臺所涉及到的需求業(yè)務(wù)進(jìn)行業(yè)務(wù)分解及業(yè)務(wù)邊界劃分,形成“高內(nèi)聚低耦合”的業(yè)務(wù)子域的過程。業(yè)務(wù)域的建模采用了以下幾個(gè)步驟:

    首先,采用用例建模進(jìn)行業(yè)務(wù)需求的收集及分析,用例建模的最主要功能就是用來表達(dá)系統(tǒng)的共性需求或行為。該階段產(chǎn)出“用例模型”,包括“用例”及“用例描述”。

    其次,基于“用例模型”同時(shí)結(jié)合領(lǐng)域建模分析方法,來挖掘和分析重要的業(yè)務(wù)實(shí)體,并建立業(yè)務(wù)實(shí)體之間的關(guān)系,最終形成領(lǐng)域模型。領(lǐng)域模型包括業(yè)務(wù)實(shí)體及業(yè)務(wù)實(shí)體之間的關(guān)系。

    最后,按職責(zé)對“領(lǐng)域模型”進(jìn)行歸納,讓相近的職責(zé)模型聚攏在一起從而保證職責(zé)的高內(nèi)聚從而形成“業(yè)務(wù)子域”,同時(shí)明確兩個(gè)子域的邊界,保證域之間的低耦合,最后形成業(yè)務(wù)域模型。

    經(jīng)過歸納之后的效果示意圖如圖2所示。

    如圖2所示,通過業(yè)務(wù)域的劃分形成了A、B、C、D、E、F域,每個(gè)域包含相應(yīng)的業(yè)務(wù)實(shí)體,比如A域包含A1、A2、A3、A4等業(yè)務(wù)實(shí)體。

    另外,針對特別復(fù)雜的業(yè)務(wù)域分析,業(yè)務(wù)域還可以有層次,業(yè)務(wù)域可以再次進(jìn)行向上高級別歸納,形成父級的域,也能向下細(xì)化形成業(yè)務(wù)子域。但是,無論哪個(gè)層次的業(yè)務(wù)域分析,其分析歸納方法是一樣的。通常,粒度越大的域,一般都對應(yīng)的組織越大,越存在跨團(tuán)隊(duì)溝通,所以對劃清域邊界的要求就越高。

    1.2? 中臺規(guī)劃

    當(dāng)業(yè)務(wù)域架構(gòu)產(chǎn)出之后,中臺架構(gòu)的骨架初步形成,業(yè)務(wù)域基本上可以對應(yīng)到相應(yīng)的中臺,接下來就是在這個(gè)框架上去填充內(nèi)容。先根據(jù)業(yè)務(wù)流程開始對服務(wù)進(jìn)行識別,從而進(jìn)行服務(wù)化的架構(gòu)建模,同時(shí)把服務(wù)所在的業(yè)務(wù)范圍歸屬到相應(yīng)的中臺。

    另外中臺還可以從技術(shù)維度橫向縱向抽象各個(gè)中臺共同依賴的技術(shù)能力,形成技術(shù)視角的中臺。比如,多個(gè)中臺都需要內(nèi)容發(fā)布能力,如果我們希望能提供統(tǒng)一的內(nèi)容管理、發(fā)布、存儲及挖掘的能力平臺,可以形成內(nèi)容發(fā)布中心。

    中臺架構(gòu)如圖3所示。

    1.3? 服務(wù)識別與服務(wù)設(shè)計(jì)

    服務(wù)化是將企業(yè)資源以業(yè)務(wù)能力的形式組織起來,通過一定的技術(shù)架構(gòu)對這些業(yè)務(wù)能力進(jìn)行封裝形成易于消費(fèi)的服務(wù),從而實(shí)現(xiàn)業(yè)務(wù)能力粒度上的重用、組裝、維護(hù)和管理,靈活迅捷構(gòu)筑實(shí)現(xiàn)特定業(yè)務(wù)目的的企業(yè)應(yīng)用,服務(wù)識別與服務(wù)設(shè)計(jì)方法如圖4所示。服務(wù)化降低了新業(yè)務(wù)應(yīng)用的建設(shè)成本周期和風(fēng)險(xiǎn),并使得大規(guī)模分布式架構(gòu)的采用成為可能:

    (1)業(yè)務(wù)能力的提供和消費(fèi)方式標(biāo)準(zhǔn)化;

    (2)業(yè)務(wù)能力之間的組裝更靈活;

    (3)應(yīng)用實(shí)現(xiàn)更關(guān)注于業(yè)務(wù)能力粒度的重用。

    重用不再限于單一系統(tǒng)應(yīng)用內(nèi)部,跨系統(tǒng)、跨部署的業(yè)務(wù)能力重用不再是障礙。

    服務(wù)識別的主要方法是業(yè)務(wù)解析和利舊分析,識別出無狀態(tài)的“高內(nèi)聚松耦合”的業(yè)務(wù)能力形成服務(wù)目錄。

    業(yè)務(wù)解析對預(yù)設(shè)的業(yè)務(wù)目標(biāo)和業(yè)務(wù)模型,從頂級業(yè)務(wù)流開始,自頂向下,從流程、數(shù)據(jù)和規(guī)則三個(gè)方面層層解析。

    輸入:項(xiàng)目業(yè)務(wù)目標(biāo)、業(yè)務(wù)流程模型、業(yè)務(wù)域定義、系統(tǒng)上下文。

    利舊分析對需要全部或部分重用的,要接入改造甚至重新建設(shè)的內(nèi)外應(yīng)用和系統(tǒng),針對其已有設(shè)計(jì)自底向上逐步歸納。

    輸入:系統(tǒng)上下文、已有系統(tǒng)的流程定義、接口規(guī)范、數(shù)據(jù)模型、業(yè)務(wù)規(guī)則。

    服務(wù)識別是一個(gè)漸進(jìn)過程,將業(yè)務(wù)能力梳理成按業(yè)務(wù)域組織的有層次的服務(wù)目錄。在此過程中會逐步調(diào)整業(yè)務(wù)流程定 義、業(yè)務(wù)規(guī)則、數(shù)據(jù)模型(主要在粗粒度的概念模型、邏輯模型層次上),甚至業(yè)務(wù)域定義和系統(tǒng)上下文都可能做調(diào)整,所有這些調(diào)整都是以更有效地支撐企業(yè)業(yè)務(wù)目標(biāo)和愿景(如簡化業(yè)務(wù)流程、提高執(zhí)行力等)為根本原則,以消除冗余(識別共同活動(dòng))和增強(qiáng)靈活性(識別易變活動(dòng))為基本方法。

    以上述過程識別出的服務(wù),還只是備選服務(wù),不過已經(jīng)可以初步滿足服務(wù)化的以下原則:

    (1)無狀態(tài)原則:先從業(yè)務(wù)意義業(yè)務(wù)邊界上保證這一點(diǎn),以支持可伸縮高可用部署,會在服務(wù)設(shè)計(jì)階段進(jìn)一步加強(qiáng);

    (2)高內(nèi)聚松耦合:以業(yè)務(wù)能力為基本粒度,業(yè)務(wù)含義和邊界清晰完整,更容易精準(zhǔn)地描述和定義服務(wù);

    (3)業(yè)務(wù)契約先行:清晰的服務(wù)功能提供了初步的服務(wù)提供者和消費(fèi)者間的契約基礎(chǔ),會在服務(wù)設(shè)計(jì)階段進(jìn)一步加強(qiáng);

    (4)業(yè)務(wù)歸屬清晰:按業(yè)務(wù)域的層次組織方式,易于垂直劃分方便組織開發(fā)和維護(hù),且便于以節(jié)點(diǎn)為單位分析調(diào)整;

    (5)系統(tǒng)層次清晰:按業(yè)務(wù)域的層次組織方式以及服務(wù)分類,對橫向的系統(tǒng)層次架構(gòu)的設(shè)計(jì)考量提供了強(qiáng)力支持。

    1.4? 服務(wù)實(shí)現(xiàn)

    經(jīng)過服務(wù)設(shè)計(jì),整理好了服務(wù)模型(服務(wù)目錄+服務(wù)關(guān)聯(lián)+服務(wù)定義),并且在對系統(tǒng)整體架構(gòu)的逐步完善中明確了這些服務(wù)的分組分類,以及不同的服務(wù)暴露、交互場景等?,F(xiàn)在到了真正“實(shí)現(xiàn)”這些服務(wù)的時(shí)候了,服務(wù)的實(shí)現(xiàn)要經(jīng)過以下幾個(gè)主要的步驟:

    (1)確定服務(wù)實(shí)現(xiàn)技術(shù)規(guī)格。涉及一系列的技術(shù)架構(gòu)主題的分析、選型之后得到的通用和特例決策。

    (2)確定服務(wù)化框架。用什么產(chǎn)品來封裝業(yè)務(wù)能力的實(shí)現(xiàn),形成服務(wù)。

    (3)確定實(shí)現(xiàn)業(yè)務(wù)能力依賴的技術(shù)產(chǎn)品。如使用什么規(guī)則、搜索、消息、緩存引擎,工作流和數(shù)據(jù)持久化框架等。

    (4)編寫、集成、組裝、測試,形成應(yīng)用部署交付件。要求之前服務(wù)設(shè)計(jì)階段提出的實(shí)現(xiàn)指導(dǎo)原則能夠切實(shí)落實(shí)。

    (5)部署服務(wù)。要求服務(wù)應(yīng)用能夠便捷甚至自動(dòng)地適應(yīng)不同的部署目標(biāo)環(huán)境之間的切換。

    2? 結(jié)? 論

    本文在研究領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法的基礎(chǔ)之上,結(jié)合企業(yè)中臺特性,首先通過業(yè)務(wù)域建模方法完成業(yè)務(wù)域的架構(gòu)梳理和設(shè)計(jì),然后基于業(yè)務(wù)域架構(gòu)完成中臺規(guī)劃,并對中臺的能力范圍進(jìn)行定義和規(guī)范,最后根據(jù)業(yè)務(wù)流程和業(yè)務(wù)內(nèi)容完成服務(wù)識別和服務(wù)設(shè)計(jì),并對照中臺的范圍和規(guī)范納入中臺管理。

    參考文獻(xiàn):

    [1] Vernon V.實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) [M].滕云,譯.北京:電子工業(yè)出版社,2014.

    [2] 云棲社區(qū).關(guān)于DDD領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的理論知識收集匯總 [EB/OL].(2016-05-27).https://yq.aliyun.com/articles/53436.

    [3] 王磊.微服務(wù)架構(gòu)與實(shí)踐 [M].北京:電子工業(yè)出版社,2015.

    [4] Newman S.Building Microservices [M].America:OReilly Media,2014.

    [5] Richards M.Software Architecture Patterns [M].America:OReilly Media,2015.

    [6] Newman S.微服務(wù)設(shè)計(jì) [M].崔力強(qiáng),張駿,譯.北京:人民郵電出版社,2016.

    [7] 李勇.分布式Web服務(wù)發(fā)現(xiàn)機(jī)制研究 [D].北京:北京郵電大學(xué),2008.

    [8] 李林峰.分布式服框架原理與實(shí)踐 [M].北京:電子工業(yè)出版社,2016.

    作者簡介:周紅林(1978.02-),男,漢族,江蘇泰興人,項(xiàng)目經(jīng)理,助理工程師,學(xué)士學(xué)位,研究方向:軟件項(xiàng)目管理、系統(tǒng)架構(gòu)設(shè)計(jì);曾春生(1985.02-),男,漢族,福建莆田人,需求分析師,學(xué)士學(xué)位,研究方向:軟件需求分析、系統(tǒng)架構(gòu)設(shè)計(jì);常歡歡(1989.10-),男,漢族,安徽宿州人,架構(gòu)師,學(xué)士學(xué)位,研究方向:系統(tǒng)架構(gòu)設(shè)計(jì)、領(lǐng)域建模設(shè)計(jì)。

    湟中县| 河东区| 卓尼县| 安康市| 安福县| 九寨沟县| 乌兰县| 青岛市| 金湖县| 房产| 新乐市| 抚顺市| 当涂县| 孟津县| 安义县| 黄山市| 鱼台县| 武城县| 兴安盟| 会泽县| 韩城市| 乐业县| 桐柏县| 图们市| 静海县| 鄂州市| 安溪县| 济源市| 贡山| 盐源县| 济宁市| 汨罗市| 黎城县| 余江县| 绥滨县| 定南县| 阳信县| 晋城| 石狮市| 塘沽区| 甘德县|