企業軟體中的模式
近年來,描述企業系統開發模式的內容有所增加,雖然數量不多,但很有用。在此頁面中,我列出這些模式中最著名的目錄,並對它們之間的廣泛相互關係提出一些想法。
這些作者之間沒有正式的組織聯繫,但我們有強烈的非正式聯繫,經常審閱彼此的作品。我們經常想是否應該成立一個更有組織的團體,但實際上並沒有真正召集到足夠的精力來採取行動。光是撰寫我們自己的作品就已經夠困難了!
不同的人對模式的用途和有趣之處有不同的期望。我在 IEEE Software 的專欄 中描述了我的觀點。
我在此列出這些目錄,因為這些是我至少相當熟悉且感到自在的目錄。我無意將其作為此領域中模式目錄的完整清單。
目錄
以下是我發現有用的主要目錄清單。
企業應用程式架構模式 | 專注於分層架構中的企業應用程式架構。主要部分涵蓋網域邏輯、網頁簡報、資料庫互動、離線並行處理(由 David Rice 撰寫)和分發。資料庫互動是最大的部分,包含許多關於物件關係對應問題的模式。 |
(Fowler) | |
核心 J2EE 模式 | Java J2EE 平台中的企業應用程式架構模式。儘管這些模式專注於 J2EE 平台,但這些模式通常也適用於其他企業應用程式平台(儘管有些微調整)。 |
(Alur、Crupi 和 Malks) | |
企業整合模式 | 我越來越認為透過非同步訊息傳遞進行整合是整合不同企業應用程式最有效的方法之一。EIP 是此方法的基礎模式集合。 |
(Hohpe 和 Woolf) | |
Microsoft 企業解決方案模式 | Microsoft 的第一個企業軟體模式集合。章節包括 Web 呈現、部署和分散式系統的模式。 |
(Trowbridge、Mancini、Quick、Hohpe、Newkirk 和 Lavigne) | |
Microsoft 資料模式 | 資料移動模式的集合:複製和同步。 |
(Teale、Etx、Kiel 和 Zeitz) | |
Microsoft 整合模式 | Microsoft 對整合模式的看法。章節涵蓋整合層的策略、系統連線方法和整合拓撲。 |
(Trowbridge、Roxburgh、Hohpe、Manolescu 和 Nadhan) | |
領域驅動設計 | 建立物件導向領域模型是組織領域邏輯的熱門方法。它特別適用於複雜的領域。它的缺點是難以做好。這些模式描述如何思考建立和建構豐富的領域模型,以及如何辨識和克服現實世界的障礙,這些障礙經常阻止人們採用他們所知的建模原則。 |
(Evans) | |
分析模式 | 看過足夠多的領域模型,你會看到某些類型的結構重複出現。這本書是我嘗試以模式的形式捕捉這些共性的嘗試。在很多方面,它非常需要更新,但基本概念仍然相當健全。如果你發現這些資料有用,請務必查看我放在網站上的較新的補充資料。 |
(Fowler) | |
資料模型模式 | 資料模型中的常見模式。由於這些模式是從非常概念性的方法發展而來的,因此這些模式對於物件建模和資料建模都很有用。 |
(Hay) | |
四人幫 | 第一本,也是最常用的模式書。這些主要是基本模式,並不特別針對企業軟體開發,但企業模式廣泛地參考它們。 |
(Gamma、Helm、Johnson 和 Vlissides) | |
POSA | 特別影響其在架構模式方面的工作。層(適用於企業應用程式)和管道和篩選器(適用於訊息傳遞)是許多企業模式工作的基礎。 |
(Buschmann、Meunier、Rohnert、Sommerlad 和 Stal) |
企業軟體的各個面向
這些目錄涵蓋企業軟體開發的各種不同面向。以下是從這些不同面向開始的目錄另一種檢視方式。
企業應用程式架構
企業應用程式是我給予特定類別軟體系統的名稱:資料密集型軟體系統,許多企業都仰賴它運作。另一個對它們來說或許更好的名稱是資訊系統,因為這些系統處理和操作資訊。
大多數關於 EAA 的書籍都從將企業應用程式分解成邏輯層開始。此分層結構接著驅動層與層之間和其他設計決策。因此,模式傾向於以類似方式透過層來組織,這不足為奇。每個作者都有自己的分層結構,但分層結構之間有明顯的相似性。
令人驚訝的是,人們常將企業架構這個術語與企業應用程式架構混淆。第二個 A 字非常重要。EAA 關於建立單一應用程式。企業架構是一種截然不同的概念。
企業應用程式架構模式 |
從技術獨立的觀點檢視 EAA。 |
核心 J2EE 模式 |
這是第一本專注於 EAA 的書,並從 J2EE 平台的背景進行探討。 |
Microsoft 企業解決方案模式 |
從 .NET 的角度檢視 EAA。 |
企業整合
企業應用程式是相當獨立的個體,但它們需要協同作業才能發揮功能。將獨立開發的 EA 整合在一起就是整合的工作。您經常需要整合未考慮任何整合(更不用說您正在使用的特定整合)的應用程式,或者它們期望使用您未使用的技術進行整合。
企業整合模式 |
訊息傳遞模式,作者(和我)認為這是執行整合最有希望的方式。 |
Microsoft 整合模式 |
使用 Microsoft 技術執行整合的策略。 |
Microsoft 資料模式 |
資料複製和同步模式,這是兩種有價值的整合技術。 |
網域邏輯
網域邏輯是企業應用程式最重要的面向之一,但經常被遺忘。這些是業務規則、驗證和計算,它們在資料被帶入資訊系統或由資訊系統顯示時對其執行操作。對於簡單的資料庫歸檔系統,通常幾乎沒有網域邏輯。然而,許多系統通常有相當複雜的網域邏輯,而且此邏輯會隨著業務條件的改變而定期變更。
企業應用程式架構模式 |
其中一個區段概述組織網域邏輯的主要模式。 |
領域驅動設計 |
詳細說明如何使用網域模型:最精密的網域邏輯模式,也是最適合複雜邏輯的模式。 |
分析模式 |
顯示領域模型範例的模式。 |
資料模型模式 |
更多顯示領域範例的模式,從資料建模方法著手。 |