Introdução aos serviços Web
Este documento fornece uma visão geral dos conceitos e tecnologias de um serviço Web aceito pelo NetBeans IDE. Ele se destina a ajudar os iniciantes em serviços Web antes de eles usarem quaisquer tutoriais.
Os serviços Web são componentes de aplicativo distribuídos que estão disponíveis externamente. Você pode usá-los para integrar aplicativos de computador que são escritos em linguagens diferentes e executados em plataformas diferentes. Os serviços Web são independentes de linguagem e de plataforma porque os fornecedores concordaram em oferecer padrões de serviço Web comuns.
A Sun Microsystems está desenvolvendo um projeto java.net chamado Metro. O Metro é uma pilha de serviços Web completa, que cobre todas as necessidades de um desenvolvedor do simples "Hello, World!" demonstrações para serviços Web confiáveis, seguros e transacionados. Para obter mais informações, consulte a página inicial do Metro.
O Metro inclui Web Services Interoperability Technologies (WSIT). O WSIT dá suporte a recursos comerciais tais como segurança, confiabilidade e otimização de mensagem. O WSIT garante que os serviços Metro com esses recursos sejam interoperáveis com os serviços Microsoft .NET. No Metro, o Project Tango desenvolve e aprimora a base de código do WSIT. Para ver como o WSIT funciona, use o tutorial Interoperabilidade avançada de serviço Web.
Vários modelos de programação estão disponíveis para desenvolvedores de serviços Web. Esses modelos estão em duas categorias, ambas aceitas pelo IDE:
- Baseado em REST. REpresentational State Transfer é uma forma nova de criar e se comunicar com os serviços Web. Em REST, os recursos possuem URIs e são manipulados através de operações do cabeçalho HTTP. Para obter mais informações, consulte Serviços Web RESTful.
- Baseado em SOAP/WSDL. Em modelos de serviço Web tradicionais, as interfaces do serviço Web são expostas por meio de documentos WSDL (um tipo de XML), que possui URLs. A troca de mensagens subseqüente é em SOAP, outro tipo de documento XML. Para obter mais detalhes, consulte Serviços Web baseados em SOAP.
Serviços Web RESTful
Os serviços Web baseados em REST ("RESTful") são coleções de recursos Web identificados por URIs. Cada documento e cada processo é modelado como um recurso da WEb com uma URI única. Esses recursos Web são manipulados pelas ações que podem ser especificadas em um cabeçalho HTTP. Não são usados padrões SOAP, nem WSDL, nem WS-*. Em vez disso, a troca de mensagens pode ser conduzida em qualquer formato — XML, JSON, HTML, etc. Em muitos casos, um navegador da Web pode servir como o cliente.
HTTP é o protocolo em REST. Apenas quatro métodos estão disponíveis: GET, PUT, POST e DELETE. As solicitações podem ser indicadas e as respostas podem ser armazenadas em cache. Um administrador de rede pode facilmente descobrir o que está acontecendo com o serviço RESTful, apenas observando os cabeçalhos HTTP.
REST é uma tecnologia adequada para aplicativos que não requerem segurança além da que está disponível na infra-estrutura HTTP e em que o HTTP é o protocolo apropriado. Os serviços REST ainda podem oferecer funcionalidade sofisticada. Flickr, Google Maps e Amazon fornecem serviços Web RESTful.
Project Jersey é a implementação de referência de código-fonte aberto para construir serviços Web RESTful. As APIs Jersey estão disponíveis como o plug-in "Serviços Web RESTful" para NetBeans IDE.
Os tutoriais seguintes envolvem a criação e o consumo de serviços REST:
Serviços baseados em SOAP
Em serviços Web baseados em SOAP, os utilitários Java criam um arquivo WSDL baseado no código Java no serviço Web. O WSDL é exposto na rede. As partes interessadas em usar o serviço Web criam um cliente Java baseado no WSDL. As mensagens são trocadas no formato SOAP. A série de operações que podem ser passadas em SOAP é muito mais ampla do que a que está disponível em REST, especialmente em termos de segurança.
Os serviços Web baseados em SOAP são adequados para aplicativos pesados que usam operações complicadas e para aplicativos que requerem segurança sofisticada, confiabilidade ou outros recursos aceitos pelos padrões WS-*. Eles também são adequados quando um protocolo de transporte diferente de HTTP tem que ser usado. Muitos dos serviços Web da Amazon, particularmente aqueles que envolvem transações comerciais, e os serviços da Web usados por bancos e agências governamentais são baseados em SOAP.
A API Java para serviços Web XML (JAX-WS) é o modelo atual para serviços Web baseados em SOAP no Metro. O JAX-WS é incluído no modelo anterior JAX-RPC mas usa cursos específicos do Java EE 5, tais como anotações, para simplificar a tarefa de desenvolver serviços Web. Como usa SOAP para mensagem, o JAX-WS é de transporte neutro. Ele também oferece suporte a uma ampla gama de especificações WS-* modulares, tais como WS-Security e WS-ReliableMessaging.
Observação: Embora recomendemos fortemente o uso do modelo JAX-WS para criar serviços SOAP, o IDE continua a aceitar serviços Web JAX-RPC por motivos de hereança. Instale o plug-in "Serviços Web JAX-RPC" para desenvolvê-los.
Os tutoriais seguintes envolvem a criação e o consumo de serviços Web JAX-WS baseados em SOAP: