【发布时间】:2012-07-19 11:30:23
【问题描述】:
我目前正在重构一个应用程序。这是一家租赁公司的申请。该应用程序通过 Web 服务与外部系统通信。状态的某些变化或某些事件需要调用外部系统。我们有两种类型的调用:
- 同步 - 例如,当我将对象添加到租赁应用程序时,对象的编号是从外部系统获取的(我等待响应)。
- 异步 - 当我更改应用程序上的数据时,更改也会发送到外部系统(消息存储在我们的自定义队列中,我不需要来自外部系统的响应)
应用程序的设计并没有为不断增长的外部系统做好准备(在每个版本中,我们至少添加一个系统)。我们有一层(逻辑),它处理所有业务逻辑并与外部系统通信(包括构建请求、验证请求、发送消息、验证响应、处理响应)。
我想将通信部分与业务逻辑部分分开。在这种情况下,哪些设计模式是好的?我已经阅读了Design patterns @ sourcemaking.com 和Catalog of Patterns of Enterprise Application Architecture @ Martin Fowler's,但要么没有什么我可以使用,要么我看不到我可以使用它的方式(很可能是后者:-))。
【问题讨论】:
标签: web-services design-patterns integration