web services apresentação para a febraban. apresentação objetivos da apresentação...

31
Web Services Apresentação para a Febraban

Upload: internet

Post on 17-Apr-2015

124 views

Category:

Documents


0 download

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