Web服务在Web站点中应该扮演什么角色?

时间:2010-09-05 13:51:46

标签: web-services web

我正在构建一个网站,其中包含一个将使用大量数据的控件。 所以我想通过网络服务来做到这一点,以便改善可伸缩性 - 这样我就可以为此目的使用不同的服务器。这是一个好主意吗?如果是这样,它会在哪里停止?为什么不在周围提供网络服务,以及一个非常“瘦”的网站?有什么优点。和利弊。那个?我没有达到网络服务的目的吗?

2 个答案:

答案 0 :(得分:1)

富浏览器/ Intranet应用程序,在浏览器中运行,具有漂亮的演示文件小部件,现在非常普遍。我所处理的最严肃的公司至少需要在他们的网站上有一定程度的RIA。

因此,AJAX,Flash等被广泛使用。这些应用程序需要从某个地方获取它们正在显示的数据,并且通常这是一个背景(异步是一个经常使用的术语)服务调用。通常是REST服务调用,但它也可以是传统的基于WSDL的服务调用。

所以我会说:

  1. 表示逻辑和业务逻辑的逻辑分离是一件好事。
  2. 在RIA的情况下,将业务逻辑分离到与演示文稿不同的层是完全自然的,当后者在浏览器中时。
  3. 您所做的可伸缩性参数是这种架构的一个好处。在Java EE世界中,App Servers非常自然地进行这种扩展。
  4. 如果演示文稿登录与业务逻辑在同一层运行,您可能会发现Web服务的序列化成本非常明显,因此您可能更喜欢使用简单的过程调用。

答案 1 :(得分:0)

我的理解是,Web服务的主要目的是能够以松散耦合的方式向外部应用程序公开应用程序功能。

为了提高可扩展性,通常重要的是应用程序中的分层方法 - 您的图层可以根据需要独立扩展/缩小。现在,是的,从实现的角度来看,您可以将此层实现为Web服务,但这几乎不是高性能选项。

如果不需要外部集成,那么通常可以更好地使用跨TCP /命名管道等层的通信方式。如果您使用的是.NET平台并使用WCF来创建服务,则TCP / MSMQ /命名管道是比常规Web服务(HTTP)更高效的选项。在.NET的早期版本中,通常使用.NET远程处理来跨层进行通信,并且它也比Web服务更高效。

至于周围都有网络服务,有一个与它们相关的成本,这就是性能所以你不想要它们,除非你真正从中受益的地方。在大多数情况下,通过业务层顶层的服务层将业务逻辑暴露给外部应用程序 - 通常是提供服务的常见位置之一。