// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Web 服务简介
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Web 服务简介 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Web 服务简介

本文档概述了 NetBeans IDE 支持的 Web 服务的概念和技术。旨在帮助新手在使用任何教程之前先熟悉 Web 服务。

Web 服务是可供外部使用的分布式应用程序组件。您可以使用这些服务来集成用不同语言编写并在不同平台上运行的计算机应用程序。Web 服务与语言和平台无关，这是因为供应商已遵循通用的 Web 服务标准。

Oracle 正在开发一个叫做 Metro 的 java.net 项目。Metro 是完整的 Web 服务堆栈，涵盖了开发者需要的从简单的 "Hello, World!" 演示到安全可靠并能够进行处理的 Web 服务的所有内容。有关详细信息，请参见 link:https://metro.java.net/[+Metro 主页+]。

Metro 包括 Web 服务互操作性技术 (WSIT)。WSIT 支持多种企业功能，如安全性、可靠性和消息优化。WSIT 可确保具有这些功能的 Metro 服务能够与 Microsoft .NET 服务交互使用。在 Metro 内部，项目 Tango 开发并发展了 WSIT 的代码基。要了解 WSIT 的工作方式，请使用link:wsit.html[+高级 Web 服务互操作性+]教程。

为 Web 服务开发者提供了多个编程模型。这些模型分为两类，IDE 都提供支持：

* *基于 REST*。代表性状态传输（*RE**S**T*）是一种创建并与 Web 服务通信的新方法。在 REST 中，资源具有 URI 并通过 HTTP 头操作进行处理。有关详细信息，请参见 <<rest,REST 风格的 Web 服务>>。
* *基于 SOAP/WSDL*。在传统 Web 服务模型中，Web 服务接口通过 WSDL 文档（一种 XML 类型）公开，这些文档中包含 URL。后续消息交换以 SOAP 格式进行，SOAP 是另一种类型的 XML 文档。有关详细信息，请参见<<jaxws,基于 SOAP 的 Web 服务>>。


== REST 风格的 Web 服务

基于 REST（REST 风格）的 Web 服务是由 URI 标识的 Web 资源集合。每个文档和每个流程都通过唯一的 URI 建模为 Web 资源。这些 Web 资源由可以在 HTTP 头中指定的操作处理。既没有使用 SOAP，也没有使用 WSDL 或 WS-* 标准。不过，可以使用任何格式（XML、JSON、HTML 等）进行消息交换。在许多情况下，Web 浏览器可以用作客户端。

HTTP 是 REST 中的协议。仅有四种方法可用：GET、PUT、POST 和 DELETE。可以对请求标记书签并可以缓存响应。网络管理员只需通过查看 HTTP 头，就可以方便地跟踪 REST 风格的服务。

对于不需要 HTTP 基础结构之外的安全性并且适合使用 HTTP 协议的应用程序而言，REST 是一种合适的技术。REST 服务仍可以提供复杂的功能。Flickr、Google Maps 和 Amazon 均提供 REST 风格的 Web 服务。NetBeans IDE 的服务型软件 (SaaS) 功能使您可以在自己的应用程序中使用 Facebook、Zillow 和其他第三方提供的服务。

link:https://jersey.java.net/[+项目 Jersey+] 是用于构建 REST 风格的 Web 服务的开源引用实现。Jersey API 作为 NetBeans IDE 的“REST 风格的 Web 服务”插件提供。

以下教程涉及创建和使用 REST 服务：

* link:../../docs/websvc/rest.html[+REST 风格的 Web 服务入门指南+]
* link:../../docs/websvc/zillow.html[+SaaS：Zillow+]


==  基于 SOAP 的 Web 服务

在基于 SOAP 的 Web 服务中，Java 实用程序基于 Web 服务中的 Java 代码创建 WSDL 文件。WSDL 可以在网络上公开。对使用 Web 服务感兴趣的各方可以基于 WSDL 创建 Java 客户端。消息以 SOAP 格式进行交换。可以传入 SOAP 的操作范围比 REST 中提供的要宽得多，特别是在安全性方面。

基于 SOAP 的 Web 服务适用以下应用程序：使用复杂操作的重量级应用程序，以及需要较高安全性、可靠性或其他支持 WS-* 标准的功能的应用程序。在必须使用 HTTP 之外的传输协议时，这些服务也适用。Amazon 的许多 Web 服务，特别是那些涉及商业事务的 Web 服务，以及由银行和政府机构使用的 Web 服务都是基于 SOAP 的。

Java API for XML Web Services (JAX-WS) 是 Metro 中当前基于 SOAP 的 Web 服务的模型。JAX-WS 构建于早期的 JAX-RPC 模型基础之上，但使用特定的 Java EE 功能（例如标注）来简化开发 Web 服务的任务。由于 JAX-WS 使用 SOAP 进行消息传送，因此它是独立于传输的。它也支持很多模块化的 WS-* 规范，比如 WS-Security 和 WS-ReliableMessaging。

当您创建一个 Web 服务客户端时，您可以选择使用 JAX-WS 或 JAX-RPC 模型。这是因为有些旧的 JAX-RPC 服务使用 JAX-WS 不支持的绑定类型。这些服务只能通过 JAX-RPC 客户端来使用。

以下教程涉及创建和使用基于 SOAP 的 JAX-WS Web 服务：

* link:./jax-ws.html[+JAX-WS Web 服务入门指南+]
* link:./client.html[+开发 JAX-WS Web 服务客户端+]
* link:./flower_overview.html[+通过 Web 服务传递二进制数据+] - 一个单独的学习教程，内容是如何使用 Web 服务传递在使用 Swing 组件的客户端中显示的二进制数据
* link:./wsit.html[+高级 Web 服务互操作性+]（演示 WSIT）
