【问题标题】:web service for business logic or data access layer用于业务逻辑或数据访问层的 Web 服务
【发布时间】:2011-05-30 16:28:05
【问题描述】:

此帖http://www.theserverside.net/tt/articles/showarticle.tss?id=Top5WSMistakes 鼓励我为业务逻辑层创建 Web 服务,但很多人在数据访问层使用它。

我想创建一个项目,我想从桌面应用程序、网站和手机访问相同的数据存储库。你会推荐我什么?

在任何情况下,对两个层都实施 Web 服务可能是个好主意吗?

【问题讨论】:

    标签: web-services data-access-layer business-logic


    【解决方案1】:

    这个问题太开放了,所以答案是:这取决于

    您的应用程序对数据有什么需求?只是数据访问还是涉及一些业务逻辑?如果只是访问数据,您真的希望客户端直接控制它吗?这三个应用程序有多相似?它们共享功能还是仅共享数据?

    在我看来,您可以选择两条主要路径:

    1 - 为企业公开 Web 服务,将数据隐藏在 Web 服务后面。如果三个客户端(我称桌面应用程序、Web 应用程序和手机“客户端”,因为它们就是这样)共享功能(即它们是相同业务模型的不同视图),这是一个很好的设置。这样可以避免在所有客户端中重复类似的业务逻辑;

    2 - 直接使用网络服务公开数据。如果三个客户端没有任何共同之处,而只是将相同的数据用于不同的目的,那么这是一个很好的设置。但是在这种情况下,有了这三套业务逻辑,你要把逻辑放在哪里呢?在客户端?这对于桌面应用程序将如何工作(考虑到您安装此桌面应用程序 300 次左右)?您再次需要一些服务,并且客户端是 thin clients 而不是 thick

    如果您考虑 1) 和 2),您会发现通常最好在数据前面加上 service layer

    回到“视情况而定”,首先分析您的特殊需求,然后才能选择最适合您情况的解决方案

    3怎么样? 将您的数据访问层变成一个库(.jar、.dll 或您正在使用的任何技术)并将其提供给为您的客户服务的(1?2?3?)业务网络服务?

    【讨论】:

    • +1(如果可以的话,+2)在写得很好的答案中提供好的建议
    猜你喜欢
    • 2011-12-18
    • 1970-01-01
    • 2012-11-26
    • 2012-08-30
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 2012-11-26
    相关资源
    最近更新 更多