【问题标题】:Generic method from client to db in 3-tier-architecture三层架构中从客户端到数据库的通用方法
【发布时间】:2011-07-30 00:03:47
【问题描述】:

业务应用程序是否应该依赖从远程客户端到休眠持久层的名为“saveOrUpdate”的通用方法?

背景:我们的架构师认为,如果应用程序中的用例数量太多或无法真正确定,那么总体上通用是可以的。正如你所说,我不和他在一起。你好吗?

【问题讨论】:

    标签: java generics architecture methods


    【解决方案1】:

    如果您这样做,您就是将业务逻辑迁移到客户端,简单明了。这不一定是坏事。例如,查看 REST 的 HATEOAS 要求以了解适合的情况。然而,如果你试图这样做,你就打破了服务器必须是无状态的范式;如果客户端指定“saveOrUpdate”,那么您假设服务器在当前会话之外保持状态,如果您想要水平扩展服务器,这在架构上是一个问题。本质上,如果您正确地从客户端驱动状态(如在 HATEOAS 情况下),您的保存将在发出请求时发生,并且您不需要“saveOrUpdate”;如果你真的需要你的客户,这表明你已经不正确地将你的业务逻辑迁移到了客户。

    【讨论】:

    • 我们确实有一个无状态服务器,正如我们的架构师所说,这是一项法律,如果我们更改为有状态服务器,他将不再参与项目。
    【解决方案2】:

    如果你走那条路,你真的是一个 3 层架构,还是只是一个中间有一个单分子透明“业务”层的 2 层架构?

    【讨论】:

    • Rich-Client with swing、Spring remoting with httpinvoker、spring container、Tomcat、hibernate、oracle。业务层被定义为从客户端传播到数据库。
    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2012-11-14
    • 2015-06-17
    • 2015-02-23
    • 1970-01-01
    • 2020-01-14
    • 2014-02-19
    相关资源
    最近更新 更多