web-services - Web 服务与 Web 应用程序

标签 web-services web web-applications architecture

我知道这是一个老问题,肯定已经被回答了数百次,但我还无法找到令人满意的答案。

我正在创建一个应用程序,其他应用程序(移动/网络)将使用该应用程序来获取数据。现在我有两个选择:

  1. 将我的应用程序创建为简单的 Web 应用程序。
  2. 创建网络服务。

Web 服务看起来更复杂,任何客户端都将以指定格式(SOAP/REST)提供数据,而我的应用程序将解析请求并返回客户端请求的数据。如何使用数据不是我的应用程序的问题。

我的问题是,通过一个简单的 Web 应用程序接受 XML 格式的请求并使用 XML 响应进行响应也可以实现同样的目的。直觉是,网络服务将是这种服务的更好方式,因为我们不确定谁会使用它。但是,与简单的 Web 应用程序相比,使用 Web 服务有什么具体优势吗?

最佳答案

如果我们考虑术语,我认为这是这里的主要问题。

Web 服务是指通过某种 Web 接口(interface)提供任何格式(XML/JSON 等)数据的软件。该接口(interface)可以称为API(应用程序编程接口(interface))。 REST 和 SOAP 是设计 API 的方法。

应用程序是使用网络服务提供的 API 的软件。

换句话说,Web 服务是“服务器”,应用程序是“客户端”。通常服务器为机器服务,客户端为用户服务。

因此,无论您选择以何种方式构建系统,我都会将提供数据的部分称为“Web 服务”,将使用数据的部分称为“应用程序”(或“Web 应用程序”,如果是这样的话)。

听起来,在您的例子中,您正在构建一个为多个应用程序提供 XML 格式数据的 Web 服务。所以我的答案是:构建您已经构建的东西并将其称为网络服务

关于web-services - Web 服务与 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111243/

相关文章:

node.js - Codeigniter 对于仅 REST 服务来说太多了,有更好的选择吗?

web-services - 用于数据处理和方法链接的 REST API

spring - Jersey ExceptionMapper 不映射异常

c# - 从 Windows 客户端应用程序管理远程 *UNIX 服务器上的文件的方法

ios - 调试 ios 独立 webapp 时,Safari web 检查器不工作

css - 如何将百分比值分配给 div 以将整个页面分成 3 个部分,主体高度 = 窗口高度

javascript - window.open 打开一个新标签而不是一个新窗口(在 chrome 中)

algorithm - Facebook 是怎么做到的?

java - 有没有办法只在tomcat中部署一个项目而保留其他项目

java - @XmlElementWrapper 用于使用 JAX-WS 的 Web 方法