企业软件中的模式
近年来,描述企业系统开发模式的书籍数量虽然不多,但一直在稳步增长。在这个页面上,我列出了这些模式中最值得注意的目录,以及我对它们之间广泛相互关系的一些想法。
这些作者之间没有正式的组织联系,但我们确实有牢固的非正式联系——经常互相审阅彼此的作品。我们经常想知道是否应该建立一个更正式的组织,但还没有真正集中足够的精力来实现它。仅仅写我们自己的作品就够难的了!
不同的人对模式的用途和有趣之处有不同的期望。我在一篇IEEE 软件专栏中描述了我的观点。
我在这里列出这些目录,因为这些是我至少比较了解的,并且我对此感到满意。我不打算将其作为此领域模式目录的完整列表。
目录
以下是我认为有用的主要目录列表。
企业应用程序架构模式 | 专注于分层架构背景下的企业应用程序架构。主要部分涵盖领域逻辑、Web 展示、数据库交互、脱机并发(由 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 数据模式 |
用于数据复制和同步的模式,这是两种有价值的集成技术。 |
领域逻辑
企业应用程序最重要的,但经常被遗忘的方面之一是领域逻辑。这些是业务规则、验证和计算,它们在数据被带入信息系统或由信息系统显示时对其进行操作。对于简单的数据库文件系统,通常很少或没有领域逻辑。但是,对于许多系统来说,通常存在相当复杂的领域逻辑,并且随着业务条件的变化,这种逻辑会定期发生变化。
企业应用程序架构模式 |
一部分概述了组织领域逻辑的主要模式。 |
领域驱动设计 |
详细介绍了使用领域模型:最复杂的领域逻辑模式,也是最适合复杂逻辑的模式。 |
分析模式 |
展示领域模型示例的模式。 |
数据模型模式 |
更多展示领域示例的模式,从数据建模方法出发。 |