WSIT: Extensão de uma ferramenta de busca federada para Web Services
Emanuel Müller Ramos
Orientador: Cláudio Fernando Resin Geyer
26/10/2006 Web Service Integration Toolkit
2/34
Sumário Introdução ECIS Web Services O projeto Conclusão
26/10/2006 Web Service Integration Toolkit
3/34
Introdução WSIT: Web Service Integration Toolkit;
Trabalho baseado nos resultados obtidos durante PFE;
Envolveu as seguintes instituições: UFRGS
Orientação do Professor Geyer; EMC Documentum
Empresa onde o trabalho foi desenvolvido; INPG/ENSIMAG
Escola francesa responsável pelo projeto.
26/10/2006 Web Service Integration Toolkit
4/34
Sumário Introdução ECIS Web Services O projeto Conclusão
26/10/2006 Web Service Integration Toolkit
5/34
O controle de informação Organizações possuem diferentes tipos de informação
espalhados por diferentes lugares (fontes de informação): Documentos (XML, PDF, etc.); Bancos de dados; Páginas HTML; Imagens; Sistemas diversos;
O controle dessa informação é muito importante: Redução de custos; Aumento de produtividade; Maior lucro;
Problemas do controle de informação [EMC 04]: Localização; Heterogeneidade; Documentos não estruturados.
26/10/2006 Web Service Integration Toolkit
6/34
ECIS (Enterprise Content Integration Services)
Ferramenta de busca federada criada pela Xerox Research Center Europe;
Comprada em 16 de março de 2004 pela EMC;
Permite ao usuário realizar pesquisas sobre diferentes fontes de informação através de uma única consulta;
Faz a integração de dados internos e externos da empresa;
Usuário tem uma abstração que todos os dados são homogêneos e localizados em um só lugar.
26/10/2006 Web Service Integration Toolkit
7/34
ECIS: Arquitetura Possui três componentes principais:
Cliente; Servidor ECI; Adapters;
Desenvolvido em Java.
26/10/2006 Web Service Integration Toolkit
8/34
Adapters São os responsáveis por acessar
as fontes de informação; Escondem características
específicas de uma fonte de informação
ADK API;
Adaptam as pesquisas enviadas pelo servidor ECI para linguagem destino;
Existem Adapters para diferentes tipos de dados;
As pesquisas do usuário e as respostas dos Adapters são descritas usando metadados.
26/10/2006 Web Service Integration Toolkit
9/34
Pesquisa Resposta
26/10/2006 Web Service Integration Toolkit
10/34
1 2 34
56
26/10/2006 Web Service Integration Toolkit
11/34
Sumário Introdução ECIS Web Services O projeto Conclusão
26/10/2006 Web Service Integration Toolkit
12/34
Web Services Objetivo: permitir uma comunicação fácil entre aplicações
utilizando a estrutura da Web já existente;
Determinam um conjunto de mecanismos que permitem expandir a Internet (Web) para aceitar a troca de informações entre aplicações;
Um Web Service é uma aplicação que ([CER 02] e [NEW 02]): Está disponível através da Internet; Utiliza padrões baseados em XML para descrever as mensagens
enviadas e recebidas, bem como seus dados; É independente de hardware, sistema operacional e linguagem de
programação; Pode ser descrita utilizando XML; Pode ser encontrada facilmente.
26/10/2006 Web Service Integration Toolkit
13/34
Arquitetura Componentes: Pilha de protocolos:
Conjunto mais utilizado: HTTP + SOAP + WSDL + UDDI
26/10/2006 Web Service Integration Toolkit
14/34
Como acessar um Web Service?
Existem várias ferramentas disponíveis em Java para criar e acessar um Web Service;
Bibliotecas estudadas: Apache Axis 1 e Axis 2; JWSDP; Apache SOAP; Apache WSIF; WSDL4J;
Quatro formas principais de acessar um Web Service Criar tudo manualmente; Utilizar uma ferramenta para criação das mensagens enviadas e
recebidas; Utilizar uma ferramenta para acessar o Web Service dinâmicamente; Criar Stubs para acessar o Web Service estaticamente utilizando
uma das ferramentas disponíveis.
26/10/2006 Web Service Integration Toolkit
15/34
Sumário Introdução ECIS Web Services O projeto
Objetivos Decisões importantes Implementação
Conclusão
26/10/2006 Web Service Integration Toolkit
16/34
Objetivos: motivação Web Services têm se tornado importantes nos
últimos anos Várias empresas oferecem formas de acessar seus
sistemas através de Web Services;
Desta forma, EMC também gostaria que o ECIS realizasse pesquisas em fontes de informação disponibilizadas como Web Services;
Entretanto, cada Web Service adicionado implica a criação de um novo Adapter
Muito custoso: é necessário aproximadamente duas semanas para fazer um Adapter para Web Service manualmente.
26/10/2006 Web Service Integration Toolkit
17/34
Objetivos do Projeto Desenvolver uma ferramenta que permita criar semi-
automaticamente Adapters para Web Services Necessita implementar todos os métodos da API dos Adapters;
O desenvolvedor deve informar somente dados essenciais A geração de código deve ser feita automaticamente;
A ferramenta deve também permitir testar e debugar o Adapter gerado;
Adicionalmente, a ferramenta deve facilitar ao desenvolvedor modificar o Adapter gerado
Utilização de arquivos de configuração;
Se possível, reutilizar as funcionalidades existentes no HTML Adapter Builder.
26/10/2006 Web Service Integration Toolkit
18/34
Sumário Introdução ECIS Web Services O projeto
Objetivos Decisões importantes Implementação
Conclusão
26/10/2006 Web Service Integration Toolkit
19/34
Como associar os Metadados do Servidor ECI à Chamada de um Web Service?
Utilizar a geração estática de Stubs Usuário informa o mapeamento entre cada
parâmetro do Web Service e cada metadado do Servidor ECI;
Ele deve fazer o mesmo para os resultados do Web Service.
26/10/2006 Web Service Integration Toolkit
20/34
Representação em Árvore Argumentos e
resultados do Web Service são representados como uma árvore;
Cada folha da árvore pode ser mapeada para um metadado.
26/10/2006 Web Service Integration Toolkit
21/34
Transformando Árvores em Código Basicamente: caminhamento em
árvores à esquerda por profundidade.
26/10/2006 Web Service Integration Toolkit
22/34
Qual biblioteca utilizar? A biblioteca precisa suportar a criação estática de Stubs
Apache SOAP não suporta Substituído pelo Axis;
Axis 2 ainda estava em versão beta; WSIF – nenhuma atualização a mais de três anos;
Axis 1 e JWSDP Características similares; JWSDP implementa JAX-WS, uma especificação mais nova que JAX-RPC
(implementado pelo Axis); Axis é um software Open Source;
Por que não JWSDP? Axis era utilizado anteriormente pelos desenvolvedores do ECIS para gerar os
Adapters manualmente Compatibilidade com os Adapters antigos;
WSDL4J foi utilizado para analizar os arquivos WSDL do Web Service.
26/10/2006 Web Service Integration Toolkit
23/34
Sumário Introdução ECIS Web Services O projeto
Objetivos Decisões importantes Implementação
Conclusão
26/10/2006 Web Service Integration Toolkit
24/34
A janela principal
26/10/2006 Web Service Integration Toolkit
25/34
Nomear o Adapter, Escolher o Arquivo WSDL e Escolher as Operações
26/10/2006 Web Service Integration Toolkit
26/34
26/10/2006 Web Service Integration Toolkit
27/34
Definir filtragem e tradutor
26/10/2006 Web Service Integration Toolkit
28/34
As Informações Locais e os Casos de Teste
26/10/2006 Web Service Integration Toolkit
29/34
Javadoc
Axis Stubs
Adapter Files
Packaged Stubs
26/10/2006 Web Service Integration Toolkit
30/34
Teste a ser executado
Informação de Debug
26/10/2006 Web Service Integration Toolkit
31/34
Sumário Introdução ECIS Web Services O projeto Conclusão
26/10/2006 Web Service Integration Toolkit
32/34
Conclusão Projeto terminado com sucesso
Produto aprovado pela equipe de qualidade da EMC; Nome oficial: Web Service Adapter Builder;
Superação das expectativas iniciais;
Tempo de desenvolvimento de um Adapter: 1 hora;
Axis mostrou ser uma boa escolha; Problemas facilmente resolvidos
Projeto bem especificado; Boa arquitetura do sistema.
26/10/2006 Web Service Integration Toolkit
33/34
Trabalhos futuros Axis 2;
WSDL com anotações semânticas;
Web Services que retornam XML;
REST.
26/10/2006 Web Service Integration Toolkit
34/34
Referências [CER 02] CERAMI Ethan. Web Services Essentials -
Distributed Applications with XML-RPC, SOAP, UDDI & WSDL. O'Reilly, Outubro de 2002.
[EMC 04] EMC. Enterprise Content Integration Services – Reaching out to Content Beyond Documentum Repository. EMC Documentum Technical Whitepaper, Agosto de 2004. Disponível em: http://software.emc.com/collateral/content_management/documentum_family/wp_tech_ecis.pdf . Acessado em: fev 2006.
[NEW 02] NEWCOMER Eric. Understanding Web Services: XML, WSDL, SOAP, and UDDI. 1st edition. Addison-Wesley Professional, Maio de 2002.
WSIT: Extensão de uma ferramenta de busca federada para Web Services
Emanuel Müller Ramos
Orientador: Cláudio Fernando Resin Geyer