2011-01-14 62 views
5

好吧,这可能是一个相当蹩脚和基本的问题,但它卡在我的脑海,因为我从来没有机会从事网络服务。网络服务和基于文本的servlet之间的区别

我们可以通过非常基本的/简单的实现(可以说servlet)从我们的服务器获得相同的“文本库”响应(xml,json等),那么为什么有人必须开发Web服务。

web服务通过简单的http响应提供了什么异常?

+0

伟大的问题!今天网络上的术语如此混乱。 – Andrey 2011-01-14 21:02:25

+0

+1问一个通常令人困惑的问题 – Nishant 2011-01-14 21:53:17

回答

5

在基本层面上,从低级角度来看,您是非常正确的,它只是套接字上的文本(XML)。

对于简单的Web服务,一个servlet是足够的(我正在写这些当中的一个)。

然而,在谈论诸如SOAP和WSS- * Web服务之类的东西时,Web服务工具包公布的标准中提供了大量的锅炉板处理和功能作为更高级别的事务处理。

一个简单的例子是数据编组。如果您纯粹将其视为XML,那么您的服务基本上会手动处理XML - 解析它,评估它,填充内部模型等。

将此对比于Java EE中的类似内容:

@WebService 
public Person getPerson(String personId) { 
    Person p; 
    ... 
    return p; 
} 

Web服务堆栈将您的Person对象转换为符合SOAP的XML blob。它还将生成一个WSDL,您可以使用它来创建客户端代码(在许多平台上:.NET,PHP等)以制作Web服务代码。最后,你的客户端和服务器只有几行代码,而框架为你做了所有的分析,编组和发布工作。

所以,WS栈的价值在于它处理了编写符合WSS的Web服务的许多官僚作风。

它不是灵丹妙药,但对于许多现代实现来说,SOAP < - > SOAP远程处理可能是一个主要是跨平台的拖放事务。

0

这取决于。如果您的Web服务需要回答一个简单的是/否问题,例如“此用户名是否存在?”,则返回yes,no,0,1等可能就足够了。如果你有一个返回所有教师的属性,由于结构化的原因,XML或JSON可能是合适的。与试图解析纯文本相比,它不太容易解析错误。

相关问题