www.vertisnet.com.br * Mauricio Di Bonifacio .Net e WebServices A Nova Geração de Aplicações Web José Maurício Di Bonifácio Jr. Diretor de Tecnologia [email protected] Vertis Tecnologia www.vertisnet.com.br www.vertisnet.com.br Conteúdo Visão geral da Palestra Web Services do ponto de vista de: Tecnologia Negócios Aplicabilidade * Mauricio Di Bonifacio www.vertisnet.com.br * Mauricio Di Bonifacio Situações Reais Correios: cálculo de frete e base de CEPs Fedex: cálculo de frete, tracking e restrições alfandegárias Implementar lógica e dados no site Disponibiliza componentes Implementa lógica no site Bradesco: geração de boleto e pagamentos on-line Disponibiliza componentes www.vertisnet.com.br * Mauricio Di Bonifacio Dificuldades Encontradas Lado Cliente Implementar e manter lógica de terceiros Importar e atualizar bases de dados Implantar e atualizar componentes externos Gerenciar versões, bugs e incompatibilidades dos componentes www.vertisnet.com.br * Mauricio Di Bonifacio Dificuldades Encontradas Lado Servidor Divulgar e dar suporte a lógica de negócios e bancos de dados para os clientes Geração de componentes para várias plataformas Controle de versão e atualização dos componentes instalados Manter múltiplas versões do serviço em fases de migração www.vertisnet.com.br * Mauricio Di Bonifacio Visão Tecnológica Web Services é uma tecnologia de chamada remota de objetos Permite a infra-estrutura para criação de aplicações distribuídas (web ou não) Permitem a criação de pequenos módulos de código reutilizáveis e disponibilizados para construção de aplicações “LEGO” Utiliza protocolos Web como meio de transporte e comunicação Alto grau de abstração em relação a linguagens de programação e plataformas de hardware / software www.vertisnet.com.br * Mauricio Di Bonifacio Padronização NÃO é uma tecnologia Microsoft! Composto por linguagens e protocolos abertos e largamente adotados pelo mercado: HTTP XML SOAP WSDL UDDI O .Net tem suporte nativo a todos estes protocolos e linguagens www.vertisnet.com.br * Mauricio Di Bonifacio Evolução RSH Executar comandos de shell em máquinas remotas RPC (Remote Procedure Call) Executar funções em máquinas remotas RMI (Remote Shell) (Remote Method Invocation) API Java para acesso remoto de métodos www.vertisnet.com.br * Mauricio Di Bonifacio Evolução COM+ / DCOM (Distributed COM) CORBA (Common Object Request Broker Architecture) Padrão para distribuir componentes COM Padrão Microsoft Baseada em ORBs Acesso transparente Padrão aberto de mercado (OMG) IIOP (Internet Inter-ORB Protocol) Permite ao CORBA passar por gateways e ter interoperabilidade entre fabricantes www.vertisnet.com.br * Mauricio Di Bonifacio Deficiências do Mercado Muitos padrões! “a vantagem de se ter muitos padrões é que você pode escolher qual usar” Diferenças entre linguagens IDL?!? Compra de produtos (CORBA) Interoperabilidade entre plataformas Problemas com firewalls que barram portas TCP/IP Dificuldade em descobrir e distribuir objetos para terceiros www.vertisnet.com.br * Mauricio Di Bonifacio Web Services - Soluções Utiliza HTTP para transporte de dados Chamadas SOAP são chamadas HTTP GET ou POST Utiliza porta 80, permitida pelos firewalls Padrão entre plataformas Mensagens SOAP são formatadas em XML (texto puro) Não gera problemas de incompatibilidade binária Padrão entre linguagens www.vertisnet.com.br * Mauricio Di Bonifacio Criando Web Services Armazenados em um arquivo .asmx com a diretiva Web Service <%@ WebService Language="VB" Class="Calculadora " %> Classe é derivada da classe System.Web.Services.WebService Class calculadora : Inherits WebService Métodos declarados com a diretiva WebMethod <WebMethod ()> Public Function Soma (n1 As Integer, n2 As Integer) As Integer www.vertisnet.com.br * Mauricio Di Bonifacio Consumindo Web Services É possível testar um webservice com um browser Para acessar um WebService, uma aplicação precisa de uma classe proxy, que irá esconder os detalhes de comunicação e fazer parecer uma chamada local de método O proxy é criado a partir do WSDL (Web Service Description Language) No .Net é utilizado o utilitário wsdl.exe Após ser compilado, o proxy é utilizado como um componente normal www.vertisnet.com.br * Mauricio Di Bonifacio Chamada SOAP www.vertisnet.com.br * Mauricio Di Bonifacio SOAP em Outras Plataformas Atualmente Java tem APIs para SOAP Para aplicações Windows não .Net, a Microsoft disponibiliza o MS SOAP Toolkit 2.0 para download, permitindo aplicações ASP ou VB6 acessarem Web Services Também é possível encapsular um componente COM dentro de um Web Service www.vertisnet.com.br * Mauricio Di Bonifacio Encontrando Web Services UDDI (Universal Description, Discovery and Integration) Permite publicar detalhes de Web Services que são coletados e publicados em servidores centrais “Páginas amarelas” de Web Services http://uddi.microsoft.com www.vertisnet.com.br * Mauricio Di Bonifacio Arquitetura 3-Tier Lógica de Lógica de Acesso a Apresentação Negócios Dados www.vertisnet.com.br * Mauricio Di Bonifacio 3-Tier (.Net) Lógica de Apresentação C O M Lógica de Negócios A D O . N E T Acesso a Dados HTML COM+ RDBMS ASP .Net WebServices Mainframe XML S O A P FileSystem Email www.vertisnet.com.br * Mauricio Di Bonifacio Visão de Negócios Permite exportar, compartilhar, distribuir, integrar, vender, alugar: Lógica de negócios Transações Serviços Consultas Conteúdo ... www.vertisnet.com.br * Mauricio Di Bonifacio Modelos de Negócio I Situações onde disponibilizar sua lógica de negócio gratuitamente implica em: Vantagem competitiva em relação a concorrestes Diminuição de custos de operação, integração e manutenção Exemplos: Courrier: cálculo de frete, tracking, pedido online e restrições alfandegárias Bancos: pagamentos on-line, geração de boletos e tracking www.vertisnet.com.br * Mauricio Di Bonifacio Modelos de Negócio II Situações em que é necessária a integração com parceiros e clientes: Diminuição dos custos da operação Redução no tempo da operação Possibilidade de integração com plataformas heterogêneas Agilidade nas transações Exemplo: E-Procurement B2B Sistemas de franquias Supply Chain www.vertisnet.com.br * Mauricio Di Bonifacio Modelos de Negócio III Situações em que é possível cobrar pela utilização de um Web Service: Venda de conteúdo jornalístico Venda de indicadores de mercado Venda de informações coletadas em tempo real Exemplos: Agência Estado: conteúdo Site Dinheiro Vivo: indicadores de mercado Bovespa: status em tempo real da bolsa www.vertisnet.com.br * Mauricio Di Bonifacio Segurança em Web Services O protocolo SOAP não faz referência a questões sobre segurança: Confidencialidade dos dados (conexão) Autenticação de usuários Autorização de acesso www.vertisnet.com.br * Mauricio Di Bonifacio Adicionando Segurança A segurança deverá ser prevista em protocolos e servidores: Pode ser utilizado SSL para a comunicação. Ao invés de HTTP, HTTPS. Permite: Confidencialidade da conexão Confirmação das pontas através de certificados (Verisign) Garantia de não violação dos dados trafegados www.vertisnet.com.br * Mauricio Di Bonifacio Adicionando Segurança Firewalls, VPNs, IIS, NTFS, ACLs, produtos de single sign-in, etc podem oferecer: Autenticação de usuário A chamada SOAP/HTTP pode levar consigo informações de login/senha Autorização de acesso De acordo com o login fornecido ou origem da requisição, determinados recursos podem ser liberados ou negados www.vertisnet.com.br * Mauricio Di Bonifacio Usabilidade de Web Services A utilização de Web Services implica em overheads de: Transformações XML Mensagens SOAP Comunicação via HTTP Para sistemas locais, chamadas COM/DCOM ou CORBA são muito mais eficientes www.vertisnet.com.br * Mauricio Di Bonifacio Quando Utilizar É válido utilizar WebServices para: Integrar sistemas heterogêneos dentro da empresa Integrar sistemas remotos através da Internet Integrar diferentes plataformas de hardware / software / SO Fornecer serviços a terceiros www.vertisnet.com.br * Mauricio Di Bonifacio Obrigado/Dúvidas ? José Maurício Di Bonifácio Jr. Diretor de Tecnologia [email protected] Vertis Tecnologia www.vertisnet.com.br