1

在企业应用架构模式中,Martin Fowler 写道:

因此,本书是关于如何将企业应用程序分解为层以及这些层如何协同工作的。大多数重要的企业应用程序使用某种形式的分层架构,但在某些情况下,其他方法(例如管道和过滤器)很有价值。我不会进入这些情况,而是关注分层架构的上下文,因为它是最有用的。

构建非分层应用程序/应用程序部分存在哪些模式?以金融机构的统计建模引擎为例。可能有一个数据访问层,但我希望大部分代码都在一个层中。您是否还会期望在这样的层中看到“四人帮”模式?域模型怎么样?您会完全使用 OO,还是纯粹是功能性的?

引用提到管道和过滤器作为层的替代模型。我可以很容易地想象一个这样的引擎使用管道作为分解数据处理的一种方式。还存在哪些其他模式?任务调度、结果聚合或工作分配等领域是否有共同的模式?MapReduce 有哪些替代方案?

4

1 回答 1

1

我认为 Fowler 的意思是,在分层应用程序中,重点是组织层之间的“垂直”解耦通信。

另一种架构是 SOA(面向服务),其重点是组织组件之间的“水平”解耦通信。(在一个组件内,实现可以使用任一模型)。这不是什么新鲜事。这种水平模式的其他实例是 COM/COM+、CORBA、工作流,以及现在的“消息传递”或 ESB 体系结构。

于 2010-03-11T18:10:44.297 回答