620 likes | 736 Views
Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com. EJB WebService. Evolução da Computação em Rede. Things - 10 14. Embedded Computers 10 11. Computers 10 8. Clients. Functions. IP Layer. Protocols. Organization. Waves of Network Computing. Thermostats. Cars.
E N D
Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com EJB WebService
Things - 1014 Embedded Computers 1011 Computers 108 Clients Functions IP Layer Protocols Organization Waves of Network Computing Thermostats Cars Switches TVs Packages Phones Clothes Games Desktops TransfersTransactionsContent Telemetry Control IP v4 IP v6
Things - 1014 Embedded Computers 1011 Computers 108 Clients Functions IP Layer Protocols Organization Waves of Network Computing Thermostats Cars Switches TVs Packages Phones Clothes Games Desktops TransfersTransactionsContentTelemetry Control IP v4 IP v6 FTP X SMTP RMI/IIOP Telnet RPC/XDR Identity LDAP SOAP HTTP Jini Client/Server UDDI JXTA N-tier Web Applications Web Services Polyarchical Fractal
O novo software Payment X1 Developer Locater X106 NewService User’sDevice X106 Calendar Authentication Software como serviço Software
Evolução da Plataforma The NetworkIs the Computer The Computer Is theNetwork Network of Embedded Things CatchPhrase Legacy to the Web Networkof Things Objects Scale 100s 1,000s 1,000,000s 10,000,000s 100,000,000s 100,000,000s When/Peak 1984/1987 1990/1993 1996/1999 2001/2003 1998/2004 2004/2009 LeafProtocol(s) +HTTP (+JVM) +XML Portal X X +RM Unknown Directory(s) NS, NS+ +CDS +LDAP(*) +UDDI +Jini +? +CORBA, RM +SOAP, XML Session RPC, XDR +CORBA +RM/Jini +? Schematic
Padrões de comunicação Client-Server Web Application Web Services Hybrid P2P 3-Tier Fractal
Communication Patterns: Java 2 Business Systems DB Server App Server J2EE Web Server J2SE/J2ME BrowserClient Web Application
Padrão de comunicação: Sun ONE Bus.Sys. XML (UDDI, SOAP) DB App J2EE Web J2SE/J2ME Browser Context and Identity (LDAP, Policy, Liberty) Web Service
Conceito • A ideia atrás de Serviços Web é expor uma aplicação como um serviço para clientes na Web, independentemente da aplicação do cliente e seu ambiente de execução. • A interoperabilidade é o mais importante característica de um Serviço Web e todos os provedores de tecnologias disponíveis, incluindo Microsoft, estão aderentes aos padrões. • Por exemplo, um cliente C# sendo executado em .NET pode chamar um serviço implementado em Java EJB em um contêiner J2EE. • A interoperabilidade significa que estes serviços são fracamente acoplados que EJB.
Padronização • Existem duas organizações que trabalham na padronização de Serviços Web. • World Wide Web Consortium (W3C) • Organization for the Advancement of Structured Information Standards (OASIS) • Eles trabalham na padronização: • SOAP e WSDL – W3C • UDDI - OASIS
Web Services / W3C • Um WebService é uma aplicação de software • Identificado por uma URI, cuja interface e atribuição são definidas, descritas e descobertas através de artefatos XML e suporta interação direta com outras aplicações de software utilizando mensagens XML via protocolos internet
Evolução da Computação Distribuída Servers Servers Clients Internet Cell Phone PDA Cliente Servidor Clients Web-based computing Server Workstation Laptop Kiosk Web Services/Peer-to-Peer
Cliente/Serivdor x. Web Services Web Service Cliente / Servidor • Dentro da Empresa • Dependente de um conjunto de linguagem • Procedural • Geralmente limitado por um protocolo de transporte • Fortemente Acoplado • Processamento Eficiente (tempo / espaço) • Entre Empresas • Independente de Linguagem de Programação • Baseado em Mensagem • Facilmente adaptado em diferentes protocolos de transporte • Fracamente Acoplado • Processamento não eficiente
Ajuda • Fracamente acoplados • permitem que máquinas e usuários de um sistema distribuído sejam fundamentalmente independentes e ainda interagir de forma limitada quando isto for necessário, compartilhando discos, impressoras e outros recursos. • Fortemente acoplados • provê um nível de integração e compartilhamento de recursos mais intenso e transparente ao usuário caracterizando sistemas operacionais distribuídos. Fonte:http://pt.wikipedia.org/wiki/Computação_distribuída
Aplicação Web x Web Services Web Service Aplicação Web • Interação Usuário - Programa • Componentes de Integração Estática • Serviço Monolítico • InteraçãoPrograma-Programa • Possibilidade de integração de componentes (no futuro) • Possibilidade de agregação de serviço (no futuro)
Web Services Service Grid Chamada do Serviço Descoberta do Serviço Entrega de Serviço Registro Registro do Serviço
Montagem do Serviço Macro Serviço Micro Serviço Business Process Management Micro Serviço Micro Serviço
Agregação do Serviço Nasdaq Entrada: Codigo Saída: Preço Agência Notícias 1 Entrada: Codigo Saída: Notícias Portal de Serviço de Ações Entrada: Codigo Saída: Preço, Notícia, Comércio Usuário Agência Notícias n Entrada: Codigo Saída: Notícias Corretor 1 Entrada: Codigo, Preço, Qtde Corretor n Entrada: Codigo, Preço, Qtde
Web Services? • Plataforma Neutra • É acessível de forma padrão • Acessível de forma interoperacional • Uso simplificado e ubíquo • “Barato” – não caro • Integração simplificada
Web Services? Interoperável – conecta em redes heterogêneas utilizando padrão baseado na web ubíquo. Econômico – recicla componentes, não requer instalação e forte integração de software. Automático – Não requer interação humana para transação complexa. Acessível – Sistemas legados e aplicações internas podem ser expostas e acessíveis via Web. Disponibilidade – Serviço em qualquer dispositivo, em qualquer lugar e quando desejar. Escalável – Sem limite para o escopo e heterogeniedade das aplicações.
Web Services Exemplo de uso Distribuidor XML XML Fábrica Fornecedor XML XML Logistica Internet “Crescimento baseado em uma infraestrutura leve e padronizada para troca de informações em aplicações de negócio”
Impacto do Web Services nas aplicações Serviço Apl Serviço Apl Serviço Apl Applicação Programa Serviço Sistema Serviço Sistema Serviço Sistema Computador “Des integraçãodaaplicação” Web Services Programa Monolítico Internet/Intranet/Extranet
Um web service é acessível através de aplicações ou outros serviços. Macro web services – Sistemas Virtuais Finanças Portfolio Informação Estoque Notícias Web Services Balanço Contas Fluxo de Caixa CNN “Portfolio” pode ser uma aplicação, um portal ou um webservice UOL
Um web service é acessível através de aplicações ou outros serviços. Micro web services – Sistemas Virtuais Bank balance Gramática Editor de Texto Mídia Publicação Web Services Ortografia Dicionário Sinônimos c:\... “Editor de Texto” pode ser aplicação, uma funcionalidade ou um web service http://...
Três leis da computação Lei de Moore O poder da computação dobra cada 18 meses. Lei de Gilder A largura de banda dobra a cada 12 meses. Lei de Metcalfe (Efeito da Rede) O valor da rede cresce exponencialmente a medida que cresce o número de usuários
Impacto da Integração Gatilho do efeito da rede Integração customizada Web Services Lei de Metcalfe: O valor da rede é proporcional ao quadrado do número de participantes.
Mitos: Web Services novo Conceito • Web services é uma computação distribuída
Webservice requer somente: SOAP, WSDL, UDDI Necessita de uma semântica de alto nível Webservice é baseado no paradigma RPC Modelo de comunicação baseado em documentos será mais popular. Webservices deve ser baseado em HTTP: Outros protocolos de transporte podem ser utilizados. Mitos: Web Services novo Conceito
Web Services O quefaltaalém dos serviços: SOAP, WSDL, UDDI Deficiências: Qualidade de serviço Gerenciamento Segurança Transação Contexto de usuário Gerenciamento de Identidade Workflow
Web Services - Receita 1a fase Implantar uma aplicação internamente da organização procurando interoperabilidade. SOAP sobre HTTP/S 2a fase (1 a 2 anos) Implantação com um parceiro confiável. Registro privado. 3a fase (pelo menos 3 a 4 anos) Implantar para todos. Registro público.
Web Services Fases 1a Fase –Web Services Simples Focado no cliente, stateless, SOAP over HTTP/S 2a Fase –Web Services EAI (enterprise application integration) Implantado dentro da organização para permitir a integração interna. 3a Fase – Business Web Services Implantado em extranet para transações comerciais com parceiros de negócio, fornecedores e clientes, ebXML & UBL
Business Web Services J2EE Plataformapadrãoparaimplementação do serviço ebXMLe UBL Electronic Business using eXtensible Markup Language (ebXML) Universal Business Language (UBL) Padrões business web services Mais de 16 fornecedores e muitoprojetos Open Source http://ebxml.xml.org/ Liberty Project Padronizaçãoparasistema de identificação
Business Web Services (B2B) x (ebXML) Colaboração B2B Entrega de mensagem segura e confiável Perfil do Parceiro Repositório dos dados de objetos de negócio.
Colaboração B2B Web Services Simples Colaboração B2B • Interação Simples • Orientado para cliente • Processos curtos • Sem necessidade de colaboração de negócio • Sem perfil do parceiro • Não confiável, não seguro • Sem repositório • Não suporta atribuição legal • Interação Complexa • Orientado a negócio • Processos longos • Suporta colaboração de negócio • Suporta perfil do parceiro • Seguro e confiável • Registro e repositório • Suporta atribuição legal
Colaboração B2B Colaboração B2B EAI • Entre empresas • Controle Distribuído • Contrato Explícito • Grande número de processos de negócio e participantes • Dentro de uma organização • Controle centralizado • Contrato implícito • Pequeno número de processos de negócio e participantes
Tendências Orientadas à Serviço Evolução da EAI para padrão do WebService XML RPC => Mensagem XML Assíncrono Através da Centralização Serviço componentizados Serviços componentizável e composto Dados encapsulados com o componente Proprietário dos dados com os componentes Corretor de WebServices Relações Flexíveis – Componentes Adaptativos
Arquitetura do WS - Componentes Serviço de Descrição Serviço de Registro (Publicação) e Descoberta Serviço de Invocação
Arquitetura Web Service (simplificada) 2. Client Request Service Location PROCURAR 1. Service Registers PUBLICAR 3. Client calls Service LIGAR Registro Serviço Cliente Web Service
SOAP SimpleObjectAccess Protocol Protocolo similar IIOP for CORBA Internet Inter-OrbProtocol para CommonObjectRequestBrokerArchitecture JRMP for RMI Java RemoteMethodProtocol para RemoteMethodInvocation XML é utilizado para codificar dados Protocolo baseado em texto x protocolo binário Suporta XML-based RPC (Remoteprocedurecall)
SOAP não é Não é um modelo de componente Não substitui objetos e componentes – EJB, JavaBeans Não é uma linguagem de programação Não substitui Java Não é solução para tudo Não substitui outras soluções de computação distrubuída como RMI.
SOAP • Simple Object Access Protocol (SOAP) • Esta definição foi abandonada pela W3C na versão 1.2, pois SOAP não acessa objetos em particular. • SOAP é um protocolo para trocar mensagens XML entre computadores, geralmente utilizando o protocolo HTTP ou HTTPS. • Um cliente Web Service envia uma requisição XML na Internet utilizando os protocolos disponibilizados pelo provedor de serviços.
O que SOAP define? Envelope – Mensagem Regras de codificação Convenção RPC Informação sobre o protocolo de comunicação
Formato da Mensagem SOAP SOAP Mensagem SOAP Envelope Parte Principal MIME (text/xml) SOAP Cabeçalho Cabeçalho 1 Cabeçalho n Anexos SOAP Corpo Anexos Corpo Corpo Anexos t
SOAP Mensagem Envelope Informação de Codificação Cabeçalho Pode conter informações gerenciais Segurança Transação Corpo RPC Métodos e parâmetros Dados de Aplicações
SOAP Encoding Rules of expressing application-defined data types in XML Based on W3C XML Schema Simple values Built-in types from XML Schema, Part 2 (simple types, enumerations, arrays of bytes) Compound values Structs, arrays, complex types
SOAP Request <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S= "http://schemas.xmlsoap.org/soap/envelope/"> <S:Header/> <S:Body> <ns2:qtde xmlns:ns2="http://pacoteEstado/"> <arg0>AM</arg0> </ns2:qtde> </S:Body> </S:Envelope>
SOAP Response <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S= "http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:qtdeResponse xmlns:ns2="http://pacoteEstado/"> <return> Estado: Amazonas IBGE: 13 Area:1570745.6 Quantidade de Municipios:62 </return> </ns2:qtdeResponse> </S:Body> </S:Envelope>