Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação...
Transcript of Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação...
![Page 1: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/1.jpg)
Web Services
Apresentação para a Febraban
![Page 2: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/2.jpg)
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.
![Page 3: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/3.jpg)
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.
![Page 4: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/4.jpg)
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).
![Page 5: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/5.jpg)
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);
![Page 6: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/6.jpg)
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;
![Page 7: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/7.jpg)
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.
![Page 8: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/8.jpg)
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.
![Page 9: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/9.jpg)
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.
![Page 10: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/10.jpg)
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);
![Page 11: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/11.jpg)
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);
![Page 12: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/12.jpg)
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;
![Page 13: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/13.jpg)
Exemplos
• Exemplos de consumo– Serão apresentados dois exemplos (.NET
e Java) de criação de aplicações que consomem web services.
![Page 14: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/14.jpg)
Cliente .NET
Criando um Cliente Web Services utilizando Visual Studio
![Page 15: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/15.jpg)
Criando uma Web reference
- botão direito, opção add web reference
![Page 16: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/16.jpg)
Informando o endereço do WSDL
![Page 17: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/17.jpg)
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
![Page 18: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/18.jpg)
Formulário usado nos testes
![Page 19: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/19.jpg)
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)
![Page 20: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/20.jpg)
...
ResumoDoCliente resCliente = controle.getResumoDoCliente(
txtCodCliente.Text,
txtTipoCliente.Text,
dtpData.Value);
ResumoDaOperacao[] listaResOperacao = resCliente.
listaDeResumoDasOperacoes;
...
Código C# (2/3)
![Page 21: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/21.jpg)
...
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)
![Page 22: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/22.jpg)
Resultado da consulta
![Page 23: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/23.jpg)
Cliente JAVA
Criando um Cliente Web Services utilizando o JBuilder X (Axis)
![Page 24: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/24.jpg)
Adicionando um Web Service designer ao projeto
![Page 25: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/25.jpg)
Importando um serviço, através de uma URL
![Page 26: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/26.jpg)
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
![Page 27: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/27.jpg)
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)
![Page 28: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/28.jpg)
ResumoDoCliente resCliente = null;
resCliente = controleCliente.getResumoDoCliente(
codCliente, tipoCliente, data);
ResumoDaOperacao[] listaResumoDaOperacao = resCliente.getListaDeResumoDasOperacoes();
ResumoDoVencimento[] listaResumoDoVencimento = listaResumoDaOperacao[1].getListaDeVencimentos();
Código JAVA (2/3)
![Page 29: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/29.jpg)
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)
![Page 30: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/30.jpg)
Resultado
![Page 31: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.](https://reader036.fdocumentos.tips/reader036/viewer/2022081502/552fc10b497959413d8c150e/html5/thumbnails/31.jpg)
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).