Top Banner
Web Services Apresentação para a Febraban
31

Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.

Apr 17, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Web Services Apresentação para a Febraban. Apresentação Objetivos da apresentação –Demonstrar para stakeholders (particularmente da Febraban) as características.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

...

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.

...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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).