Diretrizes: Desenvolvendo Serviços
da Web
Tópicos
Introdução
O RAD 6.0 fornece um conjunto extensivo de ferramentas para suportar a descoberta, criação,
teste, implementação e publicação de serviços da Web. Eles permitem o desenvolvimento
de serviços da Web com base nos padrões mais recentes e suportam a implementação de múltiplos
ambientes do tempo de execução. As ferramentas também fornecem muitos assistentes para suportar e
facilitar diferentes abordagens de desenvolvimento. Este documento descreve as várias abordagens fornecidas
pelo RAD 6.0 para desenvolver um serviço da Web e discute as considerações de desenvolvimento
relacionadas à implementação do Serviço da Web e nível das opções de interoperabilidade.
Abordagens de Desenvolvimento
Os assistentes de Serviços da Web no RAD 6.0 permitem que você crie um serviço da Web
utilizando uma abordagem de cima para baixo ou de baixo para cima. De cima para baixo permite iniciar com
um documento WSDL (Web Services Description Language) e gera um Java bean de estrutura
ou um EJB (Enterprise JavaBean) de estrutura que pode ser utilizado para criar um serviço
da Web. A abordagem de Cima para baixo permite criar um serviço da Web a partir de
um Java bean, EJB, arquivo DADX (Document Access Definition Extender) existente,
URL (Uniform Resource Locator) ou arquivo ISD (Descritor de Implementação do serviço da Web).
A Figura 1 descreve as abordagens de criação de serviços da Web fornecidas pelo RAD 6.0.
Figura 1 - Abordagens de Criação de Serviços da Web do RAD 6.0
Durante a criação de um serviço da Web, o assistente opcionalmente permite que você:
- Teste o serviço da Web logo que é criado utilizando a ferramenta Web Services Explorer.
- Gere um proxy cliente que você pode utilizar nos aplicativos clientes para acessar um serviço
da Web.
- Teste um proxy cliente utilizando a ferramenta UTC (Universal Test Client) ou um aplicativo JSP
de amostra gerado pela ferramenta.
- Publique o serviço da Web para um registro de UDDI (Universal Description, Discovery and
Integration utilizando a ferramenta Web Services Explorer.
Os serviços da Web desenvolvidos no RAD 6.0 devem ser criados em um projeto da Web ou EJB e contêm
artefatos que estão em conformidade com os seguintes padrões:
- WSDL (Web Services Definition Language) versão 1.1
- SOAP (Simple Object Access Protocol) versão 1.1 (incluindo as implementações Apache
SOAP 2.2 e 2.3)
- UDDI (Universal Description, Discovery and Integration) versão 2.0
- WSIL (Web Services Inspection Language) versão 1.0
- Java API para Chamada de Procedimento Remoto com base em XML (JAX-RPC), também conhecida como JSR-101
- JSR-109 e JSR-921(Implementing Enterprise Web Services)
- Perfil Básico WS-I (Web Services Interoperability) 1.0 (conformidade opcional)
- WS-Security
Para obter informações adicionais sobre esses tópicos, consulte Conceitos: Serviços da Web para J2EE.
Desenvolvimento de Cima para Baixo
O desenvolvimento de cima para baixo permite pegar a definição abstrata de um serviço da Web
contido em um documento WSDL e gerar uma implementação concreta para ela.
(Nota: O RAD 6.0 também fornece um assistente para criar um documento WSDL).
As duas abordagens a seguir são suportadas:
- Criando um EJB de estrutura a partir de um documento WSDL
Semelhante à acima, essa abordagem permite criar um EJB de Sessão Sem Estado da
estrutura a partir de um documento WSDL e o expor a um serviço da Web.
Os métodos no EJB correspondem às operações descritas no documento WSDL e contêm
uma implementação comum que pode ser substituída. As seguintes considerações se aplicam a essa abordagem e seus artefatos gerados:
- Essa abordagem poderá ser utilizada somente se você selecionar o IBM WebSphere v6 como o
seu ambiente de tempo de execução de serviço da Web (consulte Dependências de Implementação)
- É possível digitar o URI de um documento WSDL, ou alternativamente, de um documento WSIL
ou HTML apontando para o arquivo WSDL como a origem para o serviço da Web.
- O arquivo WSDL deve conter um elemento de serviço. Opcionalmente, também é possível
gerar um documento (WSIL) de referência WSDL para o serviço da Web resultante.
- O serviço da Web gerado deve ser criado em um projeto EJB. Além disso, um projeto
Roteador é criado para ativar o serviço da Web para receber pedidos sobre o transporte
HTTP (Nota: O transporte JMS não é suportado nesta abordagem). O projeto Roteador pode ser um projeto da Web ou EJB e não pode ser o mesmo projeto contendo o serviço da Web, mas deve estar no mesmo contendo o arquivo EAR.
Desenvolvimento de Baixo para Cima
A meta de desenvolvimento de baixo para cima é expor um componente ou recurso de aplicativo existente
como um Serviço da Web. As variadas abordagens são discutidas a seguir.
- Criando um serviço da Web a partir de um Java bean
Essa abordagem permite que você selecione um Java bean existente e exponha seus
métodos como um serviço da Web. Os artefatos gerados incluem:
- Arquivo WSDL: Este arquivo descreve o serviço da Web e tem uma extensão de nome de arquivo .wsdl. Você pode escolher entre três estilos de WSDL (Documento/Literal,
RPC/Literal e RPC/Codificado). Para obter o impacto de interoperabilidade
de cada opção, consulte Conformidade Básica do Perfil WS-I.
- SEI (Service Endpoint Interface): Esta interface Java define os métodos do
serviço da Web. Seu nome de arquivo tem um sufixo _SEI.
- Descritor de Implementação de serviço da Web: O arquivo webservices.xml especifica
a implementação e os detalhes de implementação do serviço da Web.
- Arquivos de mapeamento JAX-RPC: Estes arquivos definem como os elementos Java
de serviço da Web são mapeados para e a partir do WSDL.
- Criando um serviço da Web a partir de um EJB
Você pode expor os métodos de um bean de Sessão Sem Preservação de Estado como um serviço da Web.
Os artefatos gerados são semelhantes aos que são gerados para um Java bean e incluem
um arquivo WSDL, SEI, Descritor de Implementação do serviço da Web e arquivos de Mapeamento
JAX-RPC. As seguintes considerações se aplicam a essa abordagem e seus artefatos gerados:
- O serviço da Web gerado deve ser criado em um projeto EJB.
- Um projeto Roteador deve ser criado para permitir que o serviço da Web receba
pedidos dos clientes. Se você estiver utilizando SOAP sobre HTTP como o seu método de
transporte, crie o projeto Roteador como um projeto da Web. Caso contrário, se o
cliente estiver utilizando SOAP sobre JMS, crie-o como um projeto EJB (neste caso, o
Roteador JMS é implementado como um Bean Orientado a Mensagens). Os projetos de Roteador e
Serviço da Web não podem ser os mesmos, mas deve estar contidos no mesmo arquivo EAR.
- Se você estiver utilizando o SOAP sobre o transporte JMS, você deve configurar um
provedor JMS no seu servidor. Também não será possível utilizar o Explorer do serviço da
Web para testar seu serviço da Web.
- Criando um serviço da Web a partir de um arquivo DADX
Essa abordagem permite que você agrupe dados do DB2 acessados por meio das instruções
do DB2 XML Extender ou SQL regular dentro de um serviço da Web. Os dados acessados por meio
do DB2 XML Extender consistem em documentos XML que são mapeados para um banco de dados do DB2
utilizando um documento DAD (Document Access Definition). O ponto inicial da abordagem
é um arquivo DADX que especifica como criar um serviço da Web utilizando o conjunto
de operações definido por instruções SQL regulares ou em um arquivo DAD. Os artefatos gerados incluem o arquivo WSDL padrão, SEI, Descritor de Implementação de serviço da Web e arquivos de Mapeamento JAX-RPC.
Deployment Descriptor and JAX-RPC Mapping files. As seguintes considerações se aplicam a essa abordagem e seus artefatos gerados:
- Essa abordagem pode ser utilizada apenas se selecionar IBM SOAP como seu ambiente de tempo de execução de serviço da Web (consulte Dependências da Implementação).
- Opcionalmente você pode gerar um arquivo DADX a partir de uma combinação de uma ou mais
instruções SQL, procedimentos armazenados e arquivos DAD.
- O arquivo DADX deve estar em um grupo DADX que define a conexão JDBC
e outras informações compartilhadas entre os arquivos DADX dentro do grupo.
- O serviço da Web gerado deve ser criado em um projeto Web.
- Criando um serviço da Web a partir de um URL
A partir do seu URL, é possível criar um serviço da Web que acesse diretamente um servlet
em execução em um servidor remoto. O assistente permite descrever a interface do servlet
em termos de portas, operações e parâmetros e gera um documento WSDL descrevendo
o serviço da Web resultante. As seguintes considerações se aplicam a essa abordagem e seus artefatos gerados:
- Essa abordagem pode ser utilizada apenas se selecionar IBM SOAP como seu ambiente de tempo de execução de serviço da Web (consulte Dependências da Implementação).
- Normalmente, a porta corresponde à peça do domínio/nome do host do URL, a operação para a raiz de contexto do servlet e peça da URI e os parâmetros para os parâmetros de entrada do servlet.
- O serviço da Web gerado deve ser criado em um projeto Web.
- Não há serviço da Web a ser implementado desde que já tenha sido implementado pela
URL ativa.
- Criando um serviço da Web a partir de um arquivo Descritor de Implementação (ISD)
Quando um serviço da Web é implementado, sua configuração e atributos de tempo de execução
são definidos em um arquivo descritor de implementação ISD. Esse arquivo fornece informações
sobre o serviço que deve ser disponibilizado para os clientes por um ambiente de tempo de execução SOAP,
por exemplo, URI, métodos, classes de implementação (JavaBeans
e EJBs), serializadores e desserializadores. É possível criar um serviço da Web a partir de
um arquivo ISD utilizando essas informações disponíveis. Isso permite agrupar as implementações
de serviço da Web e reimplementá-las como novos serviços da Web sem ter que reespecificar
suas informações de configuração e de mapeamento. As seguintes considerações se aplicam a essa abordagem e seus artefatos gerados:
- Essa abordagem pode ser utilizada apenas se selecionar IBM SOAP como seu ambiente de tempo de execução de serviço da Web (consulte Dependências da Implementação).
- O serviço da Web gerado deve ser criado em um projeto da Web
Diretrizes de Desenvolvimento
As seguintes seções abordam considerações importantes relevantes ao desenvolvimento de um
serviço da Web em RAD 6.0. Elas descrevem as opções de desenvolvimento disponíveis com base
na implementação e requisitos de conformidade WS-I do seu serviço da Web.
Dependências de Implementação
As abordagens (de cima para baixo e de baixo para cima) que estão disponíveis para criar um serviço da Web
dependem do ambiente do tempo de execução que você está destinando para implementação.
O RAD 6.0 suporta os seguintes ambientes de tempo de execução de serviços da Web:
- IBM WebSphere v6
Este é o ambiente de tempo de execução de serviços da Web padrão no RAD 6.0 e o recomendado
para utilização da produção. Ele suporta o protocolo de transporte JMS e HTTP, permitindo assim
que os clientes e os servidores do serviço da Web se comuniquem por conexões HTTP
ou filas e tópicos JMS. Observe que um serviço da Web deve ser implementado como um
EJB se estará acessível por meio do transporte JMS.
- IBM SOAP
O ambiente do tempo de execução IBM SOAP suporta os protocolos Apache SOAP versão 2.2
e 2.3 (consulte Recursos) e era o único ambiente de tempo de execução do serviço da Web
suportado no WebSphere Studio versão 5.0 e anterior. Deveria ser utilizado somente
para finalidades de compatibilidade de retrocesso.
- Apache Axis 1.0
Este ambiente de tempo de execução suporta a implementação SOAP Apache Axis versão 1.0
(consulte Recursos). Não é recomendado para a utilização da produção por causa dos potenciais problemas
de interoperabilidade do serviço da Web (consulte Problemas com a utilização do ambiente de tempo de execução
Apache Axis 1.0 no Conteúdo da Ajuda da ferramenta)
É recomendável que você escolha o ambiente de tempo de execução IBM WebSphere v5
a menos que o seu destino de implementação exija especificamente que você utilize uma implementação
Apache SOAP ou Apache Axis (se for assim, esteja ciente das limitações associadas descritas
nas Limitações do conteúdo da Ajuda dos Serviços da Web da ferramenta). A Tabela 1
resume as abordagens da criação de serviço da Web suportadas pelo RAD 6.0 para cada ambiente
do tempo de execução.
Abordagem
|
IBM WebSphere v6 |
IBM SOAP |
Apache Axis 1.0 |
Crie um JavaBean de estrutura a partir de um documento WSDL |
Sim
|
Sim
|
Sim
|
Crie um EJB de estrutura a partir de um documento WSDL |
Sim
|
Não
|
Não
|
Crie um Serviço da Web a partir de um JavaBean |
Sim
|
Sim
|
Sim
|
Crie um Serviço da Web a partir de um EJB |
Sim
|
Sim
|
Não
|
Crie um serviço da Web a partir de um DADX |
Não
|
Sim
|
Não
|
Crie um serviço da Web a partir de um URL |
Não
|
Sim
|
Não
|
Crie um serviço da Web a partir de um Descritor de Implementação de serviço da Web (ISD) |
Não
|
Sim
|
Não
|
Tabela 1 - Abordagem de Criação do Serviço da Web Suportado
pelo Ambiente do Tempo de Execução
Conformidade do Perfil Básico WS-I
O Perfil Básico WS-I (Web Services-Interoperability) é um conjunto de requisitos publicados
pela organização WS-I para promover a interoperabilidade dos serviços da Web em plataformas,
sistemas operacionais e linguagens de programação. Ele define os requisitos de tráfego
(SOAP/HTTP) do protocolo e WSDL que um serviço da Web deve satisfazer para que atenda
à conformidade WS-I. O RAD 6.0 inclui ferramentas de validação que podem ser utilizadas
para verificar uma conformidade do serviço da Web para os requisitos do Perfil Básico
WS-I. Você pode definir um nível de conformidade WS-I (Exigir, Sugerir ou Ignorar
(padrão)) para o espaço de trabalho ou projeto antes do desenvolvimento de um serviço da Web ou executar
as ferramentas de validação depois de ter sido desenvolvido.
É recomendável que você desenvolva serviços da Web que estejam em conformidade com o Perfil Básico
WS-I. As seguintes diretrizes devem ser seguidas para garantir isso:
- Utilize Documento/literal ou RPC/literal para o Estilo WSDL (RPC/codificado não está em conformidade com
WS-I)
- Utilize SOAP sobre HTTP como os protocolos de mensagem e de transporte (SOAP sobre JMS
não está em conformidade com WS-I)
- não utilize quaisquer opções de segurança para o serviço da Web (Assinatura Digital XML
e Criptografia XML não estão em conformidade com WS-I)
Considerações do Proxy Cliente
- Há dois tipos de proxies clientes que você pode, opcionalmente, gerar ao criar
um serviço da Web:
O proxy cliente do Java bean permite chamar os métodos do serviço da Web
via chamadas de procedimento remoto. Pode ser criado somente em um projeto da Web do cliente se o
IBM SOAP ou Apache Axis 1.0 estiver selecionado para o ambiente de tempo de execução do cliente.
Caso contrário, para um ambiente de tempo de execução do cliente IBM WebSphere v6,
ele poderá ser criado em um projeto de Web, Java, EJB ou Cliente Aplicativo.
- Função Definida pelo Usuário do Serviço da Web
Essa opção permite criar uma UDF (User-Defined Function) do DB2 para cada método
do serviço da Web que você deseja chamar. Ela exige que o pacote UDF do consumidor
de serviços da Web do DB2 e o DB2 XML Extender sejam instalados no banco de
dados. O UDF é criado e incluído na definição do banco de dados com todos os artefatos
do cliente relacionados, armazenados em um projeto da Web.
- Selecione um EAR diferente para o serviço da Web e o cliente de serviço da Web para
reduzir a chance de encontrar erros de tempo de execução. Lembre-se que um cliente
deve ser um aplicativo diferente do serviço da Web e os serviços da Web
não são planejados para comunicação entre aplicativos.
Recursos
Para obter informações adicionais sobre os tópicos a seguir, consulte o link correspondente.
| |
|