Design patterns 将第三方web服务安装到应用程序设计中

Design patterns 将第三方web服务安装到应用程序设计中,design-patterns,Design Patterns,我们有一个每天运行几次的进程(通过Windows服务),管理员级别的用户(通过web应用程序)也可以随时调用该进程。这个过程通过web服务从合作伙伴获取数据集,然后我们以自己的格式将这些数据与本地副本合并。很简单 我的问题是这如何适合我们的应用程序设计。我们有一个相当直接的应用程序服务层,它与我们的存储库交互以处理我们的域对象。域是持久性的 此过程应如何适应此体系结构?是吗? 将大多数逻辑放在应用程序服务中?只需让它调用第三方服务,从存储库中获取本地对象,进行更新/添加/等等,然后保存回存储库。

我们有一个每天运行几次的进程(通过Windows服务),管理员级别的用户(通过web应用程序)也可以随时调用该进程。这个过程通过web服务从合作伙伴获取数据集,然后我们以自己的格式将这些数据与本地副本合并。很简单

我的问题是这如何适合我们的应用程序设计。我们有一个相当直接的应用程序服务层,它与我们的存储库交互以处理我们的域对象。域是持久性的

此过程应如何适应此体系结构?是吗?

  • 将大多数逻辑放在应用程序服务中?只需让它调用第三方服务,从存储库中获取本地对象,进行更新/添加/等等,然后保存回存储库。基本上只是将第三方服务视为另一个存储库
  • 让应用程序服务获取我们的本地数据(暂时不要担心数据量),将其传递到域级服务,该服务将调用第三方服务,根据需要合并数据,然后将新数据集返回到应用程序服务以提交到存储库中
  • 其他选择

  • 我将尝试远程服务网关“模式”。
    下面是一个链接,从Ajax的角度来看,这是一个概念,而不是一个过程。然而,当我在2006年第一次在Dobbs Architecture and Design world上看到这个概念时,这个例子更像是您的案例——一个偶尔发出一次呼叫的服务

    链接中的示例提供了基础知识。在这种情况下,它不必做翻译。但是,网关可以分为不同的部分,以便包括转换层或数据合并层

    我用这种方法取得了成功