Professional Documents
Culture Documents
Apresentao
Objetivos da apresentao
Demonstrar para stakeholders (particularmente da Febraban) as caractersticas tcnicas da primeira gerao de web services do BC; Contedo essencialmente tcnico.
Objetivos
Portabilidade:
O padro escolhido dever garantir a portabilidade dos projetos sem afetar a independncia de plataforma cliente;
RAD:
O consumo de web services dever ser possvel sem que as equipes de TI das IFs tenham que se aprofundar nos meandros de uma nova tecnologia.
Objetivos (cont.)
Independncia de IDE:
O auxlio de uma IDE pode ser desejvel, mas no necessrio;
Interoperabilidade:
Os web services devem poder ser consumidos em outras plataformas (ex: .NET).
Fatores decisivos
Maturidade da soluo open-source (Axis); Integrao com IDEs; Reutilizao da segurana J2EE (rolebased); Escalabilidade (implementao serverside e stateless);
Passo 2: Implementao
Implementao do servio:
O servio a ser fornecido via web service deve ser identificado e isolado em uma API tipicamente stateless; Normalmente este servio j est implementado no legado, bastando definir e implementar uma API para seu acesso na plataforma original.
Passo 4: Criao do WS
Definies de interesse pblico:
Definio da API (e value objects); Gerao da definio formal do web service (WSDL); Se VOs forem compatveis, o WSDL conter uma descrio completa das estruturas de dados (mesmo as complexas); O WS , na prtica, implementado por uma aplicao web comum (HTTP/HTTPS), sem o uso de qualquer extenso proprietria.
Passo 5: Segurana
Segurana em web services
No h padro de facto segurana delegada camada de transporte (HTTP/HTTPS);
Criptografia:
Acesso ao web service pode estar disponvel apenas via HTTPS;
Segurana declarativa:
URLs de acesso a web services podem exigir autenticao (padro J2EE); Mtodos de negcio podem estar autorizados a roles especficas (padro J2EE);
Passo 6: Publicao do WS
Publicao:
A publicao do web service , fisicamente, como a publicao de uma aplicao web comum; A definio pblica do web service (WSDL) estar disponvel para download pela prpria aplicao web que o implementa; API de web services ser estvel modificaes e atualizaes sero divulgadas com antecedncia (a exemplo do Catlogo de Mensagens do SPB);
Passo 7: Consumo do WS
Gerao do cliente:
Acesso definio do web service (WSDL) tudo que basta; IDEs tm a capacidade de gerar stub cliente a partir do WSDL;
Exemplos
Exemplos de consumo
Sero apresentados dois exemplos (.NET e Java) de criao de aplicaes que consomem web services.
Cliente .NET
Criando um Cliente Web Services utilizando Visual Studio
Classes geradas
Ao criar uma Web reference, o Visual Studio, de posse das informaes contidas no WSDL, cria todas as classes necessrias. Neste exemplo, so criadas:
ControleCliente ResumoDoCliente ResumoDaOperacao ResumoDoVencimento
Cdigo C# (1/3)
using WindowsApplication1.WSControleCliente; ... private void btnConsultar_Click( object sender, System.EventArgs e) {
Cdigo C# (2/3)
... ResumoDoCliente resCliente = controle.getResumoDoCliente( txtCodCliente.Text, txtTipoCliente.Text, dtpData.Value); ResumoDaOperacao[] listaResOperacao = resCliente. listaDeResumoDasOperacoes; ...
Cdigo C# (3/3)
... 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}; ...
Resultado da consulta
Cliente JAVA
Criando um Cliente Web Services utilizando o JBuilder X (Axis)
Classes geradas
Aps a importao, durante o build do projeto o Jbuilder (utilizando se do Axis) cria cria todas as classes necessrias para o acesso aos mtodos expostos. Alm disso ele tambm cria um esqueleto de uma classe de teste para o servio. So criadas (entre outras) :
ControleClienteService ResumoDoCliente ResumoDoVencimento ResumoDaOperacao ControleClienteServiceTestCase
Resultado
Concluses
Simplicidade
Todo o processo de desenvolvimento de web services (e de seus clientes) se d sem que seja necessrio conhecer a sintaxe WSDL nem tampouco o protocolo SOAP; Soluo de segurana est nivelada ao protocolo de transporte (SSL + autenticao com usurios virtuais).