一个很大的网络服务或许多小网站?

col*_*der 7 .net web-services

我正在构建一组方法来为许多不同的Web应用程序提供功能,这些方法基本上从SQL获取一些数据,然后将其传递回调用应用程序.它们必须通过Web服务实现.

所以我的问题是用大量方法创建一个大规模的Web服务或者将这些方法分成逻辑组并将每个方法包含在他们自己的Web服务中之间的优缺点是什么.我认为在第一个版本之后会有很多后续方法实现,所以无论我做什么都必须易于维护.

如果它对我使用.Net 3.5,C#的答案有任何影响,目前不能使用WCF.

Chr*_*Rea 5

一些值得思考的东西:粒度有助于更多控制,但它确实有相关的性能损失.如果你过于细化,你最终可能会得到一个API,需要多次网络往返才能做任何非平凡的事情.因此,在设计服务时,我会考虑网络往返和延迟.如果服务可能位于WAN上,我会避免使用"聊天"界面并寻找返回更多数据的方法.

作为举例来说,喜欢检索整个用户以及他们的订单历史记录,而不是一个不同的呼叫用户的数据,另一个截然不同的呼吁,如果大部分时间的用户和订单历史记录都将被调用者所需要的订单历史记录.您需要考虑如何使用该服务,并相应地考虑您的接口.


cwa*_*wap 4

一大
优点:

  • 无需维护大量服务引用。
  • 可以更轻松地找到您要查找的内容并获得概览。

缺点:

  • 如果您更新了 1 个签名,客户将需要添加巨大的 (?) 引用并重新读取 WSDL。
  • 如果有很多客户在场,就更难委派工作。

很多小的
优点:

  • 更容易维护。对于客户来说,签名的一项更改是一个很小的更改。

  • 更容易使用不同的主机。

缺点:

  • 很容易变得一团糟。

我的建议是查看您的服务的逻辑包。客户可能会使用您的部分服务还是全部服务?是否存在需要使用服务 #1 的一半和服务 #2 的一半的情况?尝试找出常见的场景,并设计您的服务,以便它们只需要创建一个代理即可工作。