在企业应用程序体系结构的模式中,Martin Fowler写道:
因此,
这本书是关于如何将企业应用程序分解成层以及这些层是如何协同工作的。大多数重要的企业应用程序使用某种形式的分层体系结构,但在某些情况下,其他方法(如管道和过滤器)是有价值的。我不讨论这些情况,而是将重点放在分层体系结构的上下文上,因为它是最广泛有用的。
构建应用程序的非分层应用程序/部分存在哪些模式?以一个金融机构的统计建模引擎为例。可能会有一个数据访问层,但我希望大部分代码都在一个层中。你还会期望看到“四人帮”这样的图层吗?域模型怎么样?你会使用OO吗,还是它纯粹是功能性的?
引用提到管道和过滤器作为层的备用模型。我可以很容易地想象出这样一个引擎,它使用管道来分解数据处理。还有什么其他的模式?是否存在任务调度、结果聚合或工作分配等领域的常见模式?MapReduce的一些替代方案是什么?
发布于 2010-03-11 18:10:44
我认为Fowler的意思是,在分层应用程序中,重点是组织层间的“垂直”解耦合通信。
另一种架构是SOA (面向服务的),它的重点是组织组件之间的“水平”解耦合通信。(在组件中,实现可以使用任何一种模型)。这不是什么新鲜事。这种水平模式的其他实例包括COM/ COM+、CORBA、工作流,以及现在的“消息传递”或ESB体系结构。
https://stackoverflow.com/questions/1054603
复制相似问题