Web服务是一种可以通过Web(Http)由其他程序访问的功能。为了澄清一点,当您在PHP中创建一个输出HTML的网站时,其目标是浏览器,并且通过扩展,人们在浏览器中阅读该页面。 Web服务不是针对人类,而是针对其他程序。
答案 0 :(得分:4)
答案 1 :(得分:0)
我认为要了解什么是完全RESTful服务,您必须了解RESTful服务和标准Web服务之间的区别。它在甲骨文的JEE6教程中表现得非常好:
NonRESTful WebServices(在Java中称为JAX-WS):大型Web服务使用XML消息 遵循简单对象访问协议(SOAP)标准,这是一种定义的XML语言 消息体系结构和消息格式。这种系统通常包含机器可读的 服务提供的操作的描述,写在Web服务描述中 语言(WSDL),一种用于语法定义接口的XML语言。 SOAP消息格式和WSDL接口定义语言已经获得 广泛采用。许多开发工具(如NetBeans IDE)都可以减少 开发Web服务应用程序的复杂性。 基于SOAP的设计必须包含以下元素。
■必须建立正式合同来描述Web服务提供的接口。 WSDL可用于描述合同的细节,其中可能包括消息, 操作,绑定和Web服务的位置。您也可以处理SOAP JAX-WS服务中的消息,而不发布WSDL。
■体系结构必须满足复杂的非功能需求。很多网络服务 规范解决了这些要求并为它们建立了一个共同的词汇表。 示例包括交易,安全性,寻址,信任,协调等。
■体系结构需要处理异步处理和调用。在这种情况下, 标准提供的基础架构,例如Web Services Reliable Messaging (WSRM)和API,例如JAX-WS,以及它们的客户端异步调用 支持,可以开箱即用。
RESTful Web服务(在Java中作为JAX-RS) 在Java EE 6中,JAX-RS提供了Representational State Transfer(RESTful)的功能 网页服务。 REST非常适合基本的即席集成方案。 RESTful Web服务, 通常比基于SOAP的服务更好地与HTTP集成,不需要XML消息 或WSDL服务-API定义。 Project Jersey是JAX-RS规范的生产就绪参考实现。 Jersey实现了对JAX-RS规范中定义的注释的支持 开发人员可以轻松地使用Java和Java虚拟机构建RESTful Web服务 (JVM)。
Web服务的类型 因为RESTful Web服务使用现有的着名W3C和Internet工程任务 Force(IETF)标准(HTTP,XML,URI,MIME)并具有轻量级基础架构 允许使用最少的工具构建服务,开发RESTful Web服务是便宜的 因此采用的障碍非常低。您可以使用NetBeans等开发工具 IDE进一步降低了开发RESTful Web服务的复杂性。 当满足以下条件时,RESTful设计可能是合适的。
■Web服务完全是无状态的。一个好的测试是考虑是否互动 可以在重启服务器后继续存在。
■可以利用缓存基础架构来提高性能。如果是web服务的数据 返回不是动态生成的,可以缓存,即Web的缓存基础结构 可以利用服务器和其他中介本身提供的改进 性能。但是,开发人员必须小心,因为这样的缓存仅限于 大多数服务器的HTTP GET方法。
■服务生产者和服务使用者对上下文有相互理解 内容被传递。因为没有正式的方式来描述Web服务 接口,双方必须在描述数据的模式上进行带外协议 交换和有意义地处理它的方法。在现实世界中,大多数商业广告 将服务公开为RESTful实现的应用程序也会分发所谓的 增值工具包,描述流行编程中开发人员的接口 语言。
■带宽特别重要,需要加以限制。 REST特别有用 有限配置文件的设备,如PDA和移动电话,其头部开销 并且必须限制XML有效负载上的其他SOAP元素层。
■可以使用a轻松启用Web服务交付或现有网站的聚合 RESTful风格。开发人员可以使用JAX-RS和Asynchronous等技术 带XML的JavaScript(AJAX)和Direct Web Remoting(DWR)等工具包 他们的Web应用程序中的服务。服务可以是,而不是从头开始 使用XML公开并被HTML页面使用而不会显着重构 现有的网站架构。现有的开发人员会因此而更有效率 添加他们已经熟悉的东西,而不是从头开始 用新技术。
决定使用哪种类型的Web服务
基本上,您可能希望使用RESTful Web服务在Web上进行集成并使用big 具有高级质量的企业应用程序集成方案中的Web服务 服务(QoS)要求。
■WebServices:满足企业中常见的高级QoS要求 计算。 [..]
■RESTfull:可以更轻松地编写应用REST样式的部分或全部约束的Web应用程序,以在应用程序中引入所需的属性,例如松散耦合 (在不破坏现有客户端的情况下,发展服务器更容易),可扩展性(从小而小 增长)和架构简单性(使用现成的组件,如代理或HTTP 路由器)。您可以选择将JAX-RS用于Web应用程序,因为它更容易使用 许多类型的客户端在启用服务器端的同时使用RESTful Web服务 进化和扩展。客户可以选择使用服务的某些或所有方面并进行混搭 与其他基于网络的服务一起使用。