Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAndré Barbosa Alterado mais de 10 anos atrás
1
Web Services Apresentação para a Febraban
2
Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características técnicas da primeira geração de web services do BC; –Conteúdo essencialmente técnico.
3
Objetivos Portabilidade: –O padrão escolhido deverá garantir a portabilidade dos projetos sem afetar a independência de plataforma cliente; RAD: –O consumo de web services deverá ser possível sem que as equipes de TI das IFs tenham que se aprofundar nos meandros de uma nova tecnologia.
4
Objetivos (cont.) Independência de IDE: –O auxílio de uma IDE pode ser desejável, mas não necessário; Interoperabilidade: –Os web services devem poder ser consumidos em outras plataformas (ex:.NET).
5
Fatores decisivos Maturidade da solução open-source (Axis); Integração com IDEs; Reutilização da segurança J2EE (role- based); Escalabilidade (implementação server- side e stateless);
6
Passo 1: Definição do serviço SOA – Service Oriented Architecture –Um serviço é uma função bem definida, auto-contida e que não depende do estado ou contexto de outros serviços;
7
Passo 2: Implementação Implementação do serviço: –O serviço a ser fornecido via web service deve ser identificado e isolado em uma API tipicamente stateless; –Normalmente este serviço já está implementado no legado, bastando definir e implementar uma API para seu acesso na plataforma original.
8
Passo 3: Value Objects Parâmetros de entrada e saída: –A API de um serviço deverá conter apenas tipos compatíveis com web services (tipos básicos, strings, arrays tipados ou estruturas – VOs – destes tipos.
9
Passo 4: Criação do WS Definições de interesse público: –Definição da API (e value objects); –Geração da definição formal do web service (WSDL); –Se VOs forem compatíveis, o WSDL conterá uma descrição completa das estruturas de dados (mesmo as complexas); –O WS é, na prática, implementado por uma aplicação web comum (HTTP/HTTPS), sem o uso de qualquer extensão proprietária.
10
Passo 5: Segurança Segurança em web services –Não há padrão de facto – segurança delegada à camada de transporte (HTTP/HTTPS); Criptografia: –Acesso ao web service pode estar disponível apenas via HTTPS; Segurança declarativa: –URLs de acesso a web services podem exigir autenticação (padrão J2EE); –Métodos de negócio podem estar autorizados a roles específicas (padrão J2EE);
11
Passo 6: Publicação do WS Publicação: –A publicação do web service é, fisicamente, como a publicação de uma aplicação web comum; –A definição pública do web service (WSDL) estará disponível para download pela própria aplicação web que o implementa; –API de web services será estável – modificações e atualizações serão divulgadas com antecedência (a exemplo do Catálogo de Mensagens do SPB);
12
Passo 7: Consumo do WS Geração do cliente: –Acesso à definição do web service (WSDL) é tudo que basta; –IDEs têm a capacidade de gerar stub cliente a partir do WSDL;
13
Exemplos Exemplos de consumo –Serão apresentados dois exemplos (.NET e Java) de criação de aplicações que consomem web services.
14
Cliente.NET Criando um Cliente Web Services utilizando Visual Studio
15
Criando uma Web reference - botão direito, opção add web reference
16
Informando o endereço do WSDL
17
Classes geradas Ao criar uma Web reference, o Visual Studio, de posse das informações contidas no WSDL, cria todas as classes necessárias. Neste exemplo, são criadas: -ControleCliente -ResumoDoCliente -ResumoDaOperacao -ResumoDoVencimento
18
Formulário usado nos testes
19
using WindowsApplication1.WSControleCliente;... private void btnConsultar_Click( object sender, System.EventArgs e) { ControleClienteService controle = new ControleClienteService(); controle.Credentials = new System.Net.NetworkCredential( txtUsuario.Text, txtSenha.Text);... Código C# (1/3)
20
... ResumoDoCliente resCliente = controle.getResumoDoCliente( txtCodCliente.Text, txtTipoCliente.Text, dtpData.Value); ResumoDaOperacao[] listaResOperacao = resCliente. listaDeResumoDasOperacoes;... Código C# (2/3)
21
... txtResposta.Lines = new String[] { "Cod. Cliente: " + resCliente.codigoDoCliente, "Tipo Cliente: " +resCliente.tipoDoCliente, "Modalidade da 1a operacao: " + listaResOperacao[1].modalidade, "CodVenc. do 1o venc. da 1a operacao: " + listaResOperacao[1].listaDeVencimentos[1]. codigoVencimento};... Código C# (3/3)
22
Resultado da consulta
23
Cliente JAVA Criando um Cliente Web Services utilizando o JBuilder X (Axis)
24
Adicionando um Web Service designer ao projeto
25
Importando um serviço, através de uma URL
26
Classes geradas Após a importação, durante o build do projeto o Jbuilder (utilizando se do Axis) cria cria todas as classes necessárias para o acesso aos métodos expostos. Além disso ele também cria um esqueleto de uma classe de teste para o serviço. São criadas (entre outras) : -ControleClienteService -ResumoDoCliente -ResumoDoVencimento -ResumoDaOperacao -ControleClienteServiceTestCase
27
controleCliente.setUsername(USUARIO); controleCliente.setPassword(SENHA); String codCliente = "45988110"; String tipoCliente = "2"; Calendar data = Calendar.getInstance(); data.setTime(new Date("11/01/2002")); ResumoDoCliente resCliente = null; resCliente = controleCliente.getResumoDoCliente( codCliente, tipoCliente, data); Código JAVA (1/3)
28
ResumoDoCliente resCliente = null; resCliente = controleCliente.getResumoDoCliente( codCliente, tipoCliente, data); ResumoDaOperacao[] listaResumoDaOperacao = resCliente.getListaDeResumoDasOperacoes(); ResumoDoVencimento[] listaResumoDoVencimento = listaResumoDaOperacao[1].getListaDeVencimentos( ); Código JAVA (2/3)
29
System.out.println("Cod. Cliente: " + resCliente.getCodigoDoCliente()); System.out.println("Tipo Cliente: " + resCliente.getTipoDoCliente()); System.out.println("Modalidade da 1a operacao: " + listaResumoDaOperacao[1].getModalidade()); System.out.println("CodVenc. do 1o venc. da 1a operacao: " + listaResumoDaOperacao[1].getListaDeVencimentos( )[1].getCodigoVencimento()); Código JAVA (3/3)
30
Resultado
31
Conclusões Simplicidade –Todo o processo de desenvolvimento de web services (e de seus clientes) se dá sem que seja necessário conhecer a sintaxe WSDL nem tampouco o protocolo SOAP; –Solução de segurança está nivelada ao protocolo de transporte (SSL + autenticação com usuários virtuais).
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.