profrª everlin marques profrª cinara menegazzo fileprograma “conhecendo padrões abertos para...
TRANSCRIPT
Programa “Conhecendo Padrões Abertos para Interoperabilidade”
Oficina I: Curso de Web Services
Profrª Everlin Marques Profrª Cinara Menegazzo
2
• SOA;– Tecnologias SOA;
• WS;– Conceitos;– Funcionamento;– Arquitetura;– Componentes;
• SOAP;• XML;• WSDL;• UDDI;
– Exemplos de projetos;– Vantagens e Problemas (tecnologias relacionadas);
• Exemplos Práticos;• Referências Bibliográficas
Web Service - Sumário
3
Web Service (WS) – Interoperabilidade
Interoperabilidade: capacidade de comunicar, de maneira transparente, o usuário com qualquer software,hardware ou SO, de qualquer fabricante, em uma mesma rede.
Serviço: Blocos de construções independentes que unidos representam um ambiente de aplicação
Aplicação: ambiente de execução de seqüências de instruções para execução de uma atividade.São protocolos da camada sete OSI-ISO(HTTP, SMTP, FTP)
4
Web Service – Arquitetura SOA
SOA (Service Oriented Arquitecture)
Arquitetura para construir aplicações que encapsula seus processos e comunica seus componentes de
forma independente.
(ERL, 2004)
5
Web Service – Arquitetura SOA
Requisitos – Componentes independentes, multiplataforma, em rede e com alta disponibilidade.
Conseqüência – Comunicação mais lenta e menos segura do que apenas a invocação de código e compartilhamento de memória (local).
6
SOA é uma forma de arquitetura de sistema distribuído caracterizado por (W3C,2007):
•Visão lógica: o serviço é uma abstração( visão lógica do processo de negócio,banco de dados, programas);
•Orientado a mensagem – o serviço é definido em termos de mensagem, não interessa a implementação do agente provedor ou requisitor;
•Orientado a descrição – o serviço é descrito por metadados que são publicados naturalmente pela SOA, esta descrição deve conter uma referência semântica do serviço
Web Service – Arquitetura SOA- Características
7
•Granularidade – o serviço tende a usar um pequeno número de operações relativamente grandes e com mensagens complexas;
•Orientado a rede – o serviço tende a ser usado através da rede, mas não obrigado;
•Plataforma neutra – as mensagens são enviadas por plataformas neutras com formatação padrão determinadas pelas interfaces, XML é a mais utilizada.
Web Service – Arquitetura SOA- Características
SOA Sistemas distribuídos
8
•
Os sistemas distribuídos tem seus problemas, como:
Uso simultâneo de recursos;
Latência no transporte;
Compartilhamento de memória;
Falhas parciais, dentre outros.
Web Service – Arquitetura SOA
9
Programa Cliente Stub
Programa servidor Estrutura
Camada de comunicação de
interface, dedicada
Web Service – Arquitetura SOA
Figura 1 – Arquitetura Cliente Servidor stub/estrutura (RPC)
10
Web Service – Arquitetura SOA
Aplicação Cliente
Servidor Web
1) A conexão HTTP envia requisições de dados e quaisquer parâmetros
2) O serviço envia resposta como dados XML ou HTML
Dados recebidos pelo cliente, conexão fechada
Figura 2 – Processo de transação HTTP
11
Soluções com tecnologias baseados em SOA como:
•EDI (Eletronic Document Interchange)•CORBA (Common Object Request Broker Architecture)
•DCOM(Distributed Common Object Model) (M$)
•JavaRMI•RPC (Remote Procedure Call)
•Servlets,JSP,ASP, PHP transacionais (HTTP)
•Web Services (Ụ)
Web Service – Arquitetura SOA
Baseadas em stub/estrutura (RPC)
12
• Uso simultâneo de recursos;
• Necessidade de protocolos específicos;
• Plataformas proprietárias;
• Mensagens em padrões específicos;
• Dependentes de fornecedores;
• Implementação complexa;
• Disponibilidade;
• Independência dos componentes;
• Problemas com firewall.
Web Service – Arquitetura SOAPor que uma tecnologia alternativa:
13
Um consórcio de empresas (M$, IBM, Xerox e Sun) hoje chamado de WS-I (Web Services Interoperability Organization) para atender as necessidades de interoperabilidade entre aplicações, utilizou-se das características da SOA para propor uma estrutura de websites, alterando o foco de disponibilidade de informações para disponibilidade de dados.
Web Service - Evolução
Website+SOA+disponibilidade de dados = WS
14
2000 – W3C aceita a submissão do SOAP (Simple Object Access Protocol);
2001 – W3C publica a especificação WSDL (Webservices Description Language) (nova implementação do XML fornece uma linguagem para descrever a interface dos WS);
UDDI ( Universal Description, Discovery and Integration) mecanismo padrão para descoberta dinâmica de descrições de serviços.
Web Service - Evolução
15
Interoperabilidade;
Reaproveitamento de sistemas legados;
Encapsulamento de processos;
Modular;
Independência de plataforma.
Web Service – Características(vantagens)
16
Web Service – Conceitos (1/2)
• Arquitetura para criar interoperabilidade de aplicações de forma estruturada (Coulouris et al., 2003)
É um sistema planejado para suportar interoperabilidade na interação entre aplicações sobre uma rede (Erl,2004)
17
Web Service – Conceitos (2/2)
•”Uma aplicação de software identificada por uma URI (Uniform Resource Identifier), cuja interface e ligação são capazes de serem definidas, descritas e descobertas por artefatos do XML suportando interações diretas com outras aplicações de software utilizando mensagens baseadas em XML via protocolos baseados na Internet.”(W3C,2007)
19
Web Service – Componentes
•Interface (Web Services Description Language-WSDL) - descrição abstrata, contendo todas as propriedades de um WS;
•Mensagem (Simple Object Access Protocol- SOAP) – formalização de documentos em XML usado para troca de informações entre aplicações que usam qualquer padrão web;
•Registro (Universal Description Discovery and Intregration-UDDI) – permite a publicação de WS por provedores e a localização por consumidores.
20
Web Service – Componentes
Figura 4 – Protocolos de Comunicação de Web Services(Zavalik, et.al., 2004)
23
•
•WS-I – Fundação de especificações e padrões diferentes mas cooperantes. As especificações de software que compõe o WS são:
•HTTP/1.1;
•RFC 2965: HTTP State Management Mechanism(cookies);
•XML 1.0 (segunda edição);
•XML Schemas;
•SOAP 1.1 e 1.2 ;
•WSDL 1.1 e 2.0;
•UDDI 2.0 e 3.0.
Web Services – Componentes Tecnológicos
24
Computador Cliente
Web Services – Interações entre Componentes
WS de correção de CEP
Documento WSDL
Registro UDDI da Microsoft
Sistema de correção CEP (Java)
Apache Tomcat
Apache Axis
Dispatcher
Registro UDDI da IBM
Programa em PHP
Parser SOAP
GUI
Requisição SOAP
Consulta
DescobreRegistra
MSG Duplicação UDDI
Baixa o WSDL
Resposta SOAP em HTTPResposta
SOAP
Chamada de função
Retorno de função
CorpoSOAP
Pacote SOAP
26
W3C – Responde pelas especificações do SOAP, WSDL,XML, XML Schema e HTTP e, o documento WS-Architecture;
OASIS – Controla as especificações de UDDI, WS-Security;
WS-I – licenciada para promover interoperabilidade de WS com plataformas, SO e linguagens de programação.
Web Service – Controle das Especificações
27
Web Services – Fundamentos de comunicação
•Os WS se comunicam utilizando a pilha de protocolos TCP/IP, fazendo um handshake HTTP;
•Qualquer protocolo de aplicação poderia ser usado para comunicação entres as aplicações (HTTP,SMTP,FTP);
28
Web Services – SOAP Conceito
Descreve um padrão de especificação de mensagens em XML;
É um formato de mensagem que permite que, um documento com dados ou com chamadas de métodos, sejam enviadas, em um formato XML, de um computador para outro. (W3C,2007)
29
Web Services – SOAP Funcionamento
Programa clienteA
Camada do documento SOAP-Processador SOAP
Camada do documentoXML-Parser
Camada do documentode caractere-Apache
Camada HTTP - Internet
Programa do provedor de serviço - B
Camada do doc. SOAP-Processador
Camada do documentoXML-Parser
Camada do documentode caractere – Apache
Figura 9 - Funcionamento do SOAP
31
Web Services – SOAP Gramática
<SOAP-ENV:envelope><!— Elemento raiz do SOAP e define que essa é uma mensagem SOAP--><SOAP-ENV:header><!—Descreve informações especificas como autenticação (opcional)--></SOAP-ENV:header><SOAP-ENV:body><!—O elemento BODY contém o corpo da mensagem--><SOAP-ENV:fault><!—O elemento FAULT contém os erros que podem ocorrer--></SOAP-ENV:fault></SOAP-ENV:body></SOAP-ENV:envelope>
32
Web Services – SOAP Gramática -ENV
<SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”<!--Versão do SOAP !>SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”> <!—Como as informações devem ser codificadas !><xsd:schema xmlns:xsd=“http://wwm.w3.org/2001/XMLschema”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
</SOAP-ENV:Envelope>
33
Web Services – SOAP Gramática - Corpo
<SOAP-ENV:Body><!--Payload da mensagem !>
<checkAccountBalance> <!--método a ser chamado(RPC) !><accountnumber
xsi:type=“xsd:int”>123456780</accountNumber><!-- parâmetro enviado com o método !>
</checkAccountBalance><SOAP-ENV:faultstring> <!—faultcode | faultactor | detail !>
<!—Este código será gerado no servidor como faultstring !> </SOAP-ENV:faultstring>
</SOAP-ENV:Body>
Equivalente em java : int balance = checkAccountBalance(123456780)Equivalente em php: $balance=checkAccountBalance(123456780)
Fault:presente apenas nas respostas e 1x por msg.
34
Web Services – SOAP Gramática - Header<SOAP-ENV:Header>
<myNS:authentication xmlns:myNS=“http://www.stevepotts.com/auth”
SOAP-ENV:mustUndestand=“1”>
<SOAP-ENV:actor=” http://www.stevepotts.com/auth ”><loginID> admin </loginID>
<password>rover</password>
</SOAP-ENV:actor>
</myNS:authentication>
</SOAP-ENV:Header>
myNS: authentication = sem significado padrãomustUndestand=“1” gera erro se o parceiro não processa campos no headerActor:especifica quem deve processar o cabeçalho Header não suporta sessão, transação ou autenticação.
35
Web Services-WSDL(Webservices Description Language)
•Especificação em nível abstrato para uma infra-estrutura de computação distribuída baseada em XML.(ERL,2004)
•Proporciona um fácil entendimento, por ser metadados;
•Possibilita que se descubra qual serviço está sendo disponibilizado pelo WS (esquema), assim como, se o WS satisfaz um cliente;
•Descreve a interface do requisitor e do requerente e a localização dos serviços disponíveis;
•Descreve a instância de dados na resposta SOAP;
36
Web Services - WSDL
•WSDL basicamente é usado para localizar, vincular e publicar o ws (operações básicas do wsdl).
Diretório de ws Provedor de ws
Consumidor de ws (cliente)
Figura 11 – USO do WSDL
WSDL via SOAPWSDL via SOAP
WSDL via SOAP
37
Web Services – WSDL – Divisão lógica
•Descrições abstratas (funcionais) – são elementos orientados a descrever as capacidades do ws (funcionalidades).
Abstrata Servidor=funcionalidades do WS
•Descrições concretas(físicas) – são elementos que vinculam, fisicamente, o cliente ao serviço (conexão física);
Concreta=Cliente ∪ Servidor
38
Web Services – WSDL-Elementos XML Abstratos
<wsdl:types>
•declaração de tipos do wsdl
<wsdl:operation>
•chamada de método/função/sub-rotina
<wsdl:message>
•comunicação simplex(request/replay)
<wsdl:portType>
•porta de contato do ws para clientes
39
Web Services – WSDL-Elementos XML Abstratos
Instância de Customer<customer>
<customerID>1001</customer>
<nome>Cinara</nome>
<sobrenome>Menegazzo</sobrenome>
<endereco>Avelino Marcante </endereco>
<numero>Joinville</numero>
<cidade>Joinville</cidade>
<pais>Brazil</pais>
</customer>
40
<wsdl types>
<wsdl:part name=”endereco” type=”xsd:string” /><wsdl:part name=”numero” type=”xsd:int” />
</wsdl types>
Web Services – WSDL-Elementos XML Abstratos
41
•Uma operação pode ter apenas três mensagens e uma mensagem pode ter apenas uma entrada e uma saída;
• Mensagem de entrada (input) – define os dados que o WS/cliente espera receber;
• Mensagem de saída (output) – define os dados que o WS/cliente espera enviar em resposta;
• Mensagem de falha (fault)– Define as mensagens de erro que podem ser retornadas pelo WS;
Web Services – wsdl:operation (1/3)
Semelhante à:
Método em Java ou sub-rotina em Visual Basic ou função em PHP
42
Tipos de operações que podem ser declaradas em um documento WSDL:
– Requisição ← Resposta – cliente WS
– Solicitação ← Resposta – WS cliente
– Sentido único – um cliente envia uma mensagem ao WS mas não espera uma resposta.
– Notificação – o servidor WS envia uma notificação ao cliente
Web Services – wsdl:operation (2/3)
43
•
Requisição/Resposta
Web Services – wsdl:operation (3/3)
<wsdl: operation name=“createNewCustomer”>
<wsdl:input message=“addCustomer”>
<wsdl:output message=“confirmation”>
<wsdl:fault message=“exceptionMessage”>
<wsdl:/operation>
44
Mensagem do cliente WS<wsdl: message name=“addCustomer”>
<wsdl: part name=“customerInfo” element=“tns:customer”/>
<wsdl:/message>
<wsdl: message name=“confirmation”>
<wsdl: part name=“response” element=“xsd:integer”/>
<wsdl:/message>
Mensagem do WS cliente (sucesso)
Mensagem do WS cliente (falha)<wsdl: message name=“exceptionMessage”>
<wsdl: part name=“badResult” element=“xsd:integer”/>
<wsdl:/message>
Web Services – WSDL-Elementos XML Abstratos
45
<wsdl:portType> agrupamento de operações (conteiner) que o ws disponibiliza
Web Services – WSDL-Elementos XML Abstratos
<wsdl:portType name=“newCustomerPortType”>
<wsdl: operation name=“createNewCustomer”>
<wsdl:input message=“addCustomer”>
<wsdl:output message=“confirmation”>
<wsdl:fault message=“exceptionMessage”>
<wsdl:/operation>
</wsdl:portType>
46
Web Services - WSDL-Elementos XML concretos
<wsdl:binding>
•Vínculo entre abstrato e concreto
•Contêiner de informações (protocolo (http) e estilo da requisição(rpc) )
<wsdl:port>
•Localização da informação
<wsdl:service>
•Contêiner para todas as portas
47
Web Services - WSDL-Elementos XML concretos
<wsdl:binding>
O elemento binding mapeia os elementos operation em um elemento portType, para um protocolo especifico. Ele associa o elemento portType ao protocolo SOAP, utilizando-se de um elemento de extensão SOAP chamado <wsdlsoap:binding>, através de dois parâmentos: protocolo de transporte e o estilo da requisição (rpc ou document).
48
Web Services - WSDL-Elementos XML concretos <binding name=“newCustomerBinding" type=“newcostumerPortType">
<!—type=”tns: newcostumerPortType” !>
<soap:binding style="rpc"
<!—style=”document” !>
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:portType name=“newCustomerPortType”>
<wsdl: operation name=“createNewCustomer”>
<wsdl:input message=“addCustomer”>
<wsdl:output message=“confirmation”>
<wsdl:fault message=“exceptionMessage”>
<wsdl:/operation>
</wsdl:portType>
</binding>
49
Web Services - WSDL-Elementos XML concretos
<wsdl:port> - localização do serviço (IP, porta)
<wsdl:port binding=“newCustomerBinding” name=“newCustomerPort">
<wsdl:soap:address location="http://localhost/imasters2/nuSOAP/server2.php" />
</wsdl:port>
50
Web Services - WSDL-Elementos XML concretos
<wsdl:service> - contêiner de portas do ws físico
<wsdl:service name=“newCustomerService”>
<wsdl:port binding=“newCustomerBinding” name=“newCustomerPort">
<wsdl:soap:address location="http://localhost/imasters2/nuSOAP/server2.php" />
</wsdl:port>..........................
<wsdl:port>
</wsdl:port>
</wsdl:service>
51
Web Services - WSDL-Elementos XML
<wsdl:definitions> - elemento raiz do wsdl (especifica ns)<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:meuserver.hello" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:meuserver.hello"> <types> <!– São declarações !>
xsd:schema targetNamespace="urn:meuserver.hello"> <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" /> </xsd:schema> </types>
<!– Aqui viria os outros elementos !></definitions>
53
Web Services - UDDI
Registro universal de serviços na web que permite publicar e obter serviços;
Caixeiro viajante X Banco de dados de serviço X Google.
UDDI=Propaganda complexa;
54
Web Services - UDDI
Mecanismo padronizado e transparente para descrever serviços;
Descreve métodos simples para solicitar serviços;
Especifica um registro central dos serviços acessível;
Uma coleção duplicada de WS;
55
Web Services – UDDI - Arquitetura
•Páginas brancas – contém informações sobre o fornecedor, como nome e telefone, legíveis à humanos.
•Páginas amarelas – classificações taxonômicas como categorização interna (projeto,serviço) ou externa (comparações de entradas com listas de entradas válidas);
•Páginas verdes- como programar para um solicitante se transformar em um cliente do serviço (dicionário de dados do serviço);
56
Web Services – UDDI - Arquitetura
UBR - UDDI Business Registry
Figura 14 – Diagrama de integração dos registros UDDI v 3.0 (Reckziegel,2006)
57
Web Services - UDDI
<businessEntity>
<bussinessService>
<bindingTemplate>
Figura 13-Estrutura de publicação UDDI (Adaptado de Schoroeder,2004)
Registro UDDI
TModel
58
Web Services – UDDI - Exemplo<businessEntity businessKey=“uddi:C0E6D5A8-C446-4f01-99DA-70E212685A40” operator=“http:www.ibm.comauthorizedName=“John DOE”>
<name>Cia do Oi</name><description>descriçao do WS</description><contacts>
<contact useType=“general info”><description> Informações gerais de contato,categoria e
serviços oferecidos</ description><personNAme>Cinara</personName><fone>0123-45-67</fone><email>[email protected]</email>
</contact</contacts>
<businessService serviceKey=“uddi:F580E6ABA8-25AE-EEDD1-558A-340E212546B96” businessKey=“uddi:C0E6D5A8-C446-4f01-99DA-70E212685A40”
<name>Sirvo para descrever o servico</name><description>Indico as categorias de serviço deste ws</description>
<identifierBag><keyedReference TModelKey="UUID:8609D82E-FE1F-4E5B-B203"name="D-U-N-S" value="123456"/>
</identifierBag><categoryBag>
<keyedReference TModelKey="UUID:C0C9FEF3-173F-414D- 8A2B-5BB2“ name="NAICS" value="112343" />
</categoryBag>
59
Web Services – UDDI- Exemplo continuação
<bindingTemplates serviceKey=uddi:” F580E6ABA8-25AE-EEDD1-558A-340E212546B96” businessKey=“uddi:125CC7-0.C446-4f01-99DA-70E212685A40 bindingKey=uddi:1425AAC0-256ª-4455-78FF-1452AC45200”>
<description> Detalhes técnicos do serviço, interface ou API</description>
<accessPoint URLType=“http://localhost:8080</accessPoint>
<tModelInstanceDetails> <TModelInstanceInfo TModelKey=“uddi:EB1B645F-CF2F-
4868705F5904”><instanceDetails>
<overviewDoc><description>Descrição abstrata do WS,
como categoria, serviço</description> </overviewDoc>
</instanceDetails> </TModelInstanceInfo
</TModelInstanceDetails>
</bindingTemplate>
</businessService>
</businessEntity>
60
•A pesquisa pode ser por serviço ou fornecedor;
•Comunicação via SOAP;
•Após localizado o serviço são obtidas informações como:
URI, nome dos métodos e tipos de argumentos
Web Services - UDDI
61
Web Services – UDDI – Tipos de Descoberta
Descoberta em tempo de projeto •Mais programação, quase manual;
Descoberta em tempo de execuçãoAutomatizado, através de uma especificação de GUI;
Descoberta= bindingTemplate + tModel
62
Sistema de relatórios de conglomerado – Empresa XYZ
Site de comércio eletrônico – Cameras.com
Web Service – Exemplos de Projetos
63
•O volume de dados é relativamente pequeno;•A distância geográfica torna a Internet atraente;•Cada empresa usa uma arquitetura de desenvolvimento de sistemas;•Para casos de novas aquisições de empresas há a necessidade de integração rápida;•HTTP no firewall é contornável;
Web Service – Exemplo XYZ
Análise básica
64
Projetando logicamente a solução, sem formalismos (WS- Architecture)
Definir o servidor e os clientes;
Decidir sobre primitivas de transmissão;•Requisição/resposta = cliente servidor •Solicitação/resposta = servidor cliente •Sentido único = cliente servidor (no wait)
Web Service – Exemplo XYZ
WSDL
Começar a transmissão por quem deseja os resultados1:N Servidor:Cliente
65
Projetando logicamente a solução
Planejando as mensagens;Se o servidor está na matriz
Então solicitação/reposta »Então servidor cliente
MensagensServidor
•O relatório está pronto para ser enviado?•Por favor, envie-o.
ClienteSim/Não.Aqui está ele.
Web Service – Exemplo XYZ
WSDL
66
Web Service – Exemplo XYZCriando o projeto (programação)
•Escrever o documento WSDL/software servidor(manual ou autom.);
•WSDL deve ser conhecido por todos os clientes (guia);
•Testar o cliente respondendo ao servidor;
•Testar os dados enviados por todos os clientes.
67
Cliente de Web service da empresa ACliente de Web
service da empresa A
Web Service – Exemplo XYZ
Servidor de WS Corporativo
Relatório em nível da corporação
Sistema de contabilidade da
Empresa A
Cliente de Web service da empresa ACliente de Web
service da empresa A
Sistema de contabilidade da Empresa ASistema de
contabilidade da Empresa ASistema de
contabilidade da Empresa A
Nível Gerencial daCorporação
68
Vários nós:Site da Cameras.com trabalha com cartão de crédito;
•Usa um servidor de cartão de crédito;Poderão haver centenas de sites de atacadistas com
seus estoques publicados como WS;•Envolve descoberta e a interconexão de clientes a WS ou de WS a WS, sem intervenção humana;•Relacionamento comercial de partes desconhecidas;•As plataformas de desenvolvimento das partes são desconhecidas;•Posições geográficas desconhecidas; •HTTP no firewall é contornável.
Web Service – Exemplo Cameras.comAnálise básica
69
Definir servidores e clientes;Se atacadistas de câmeras tem seus WS
•Então os servidores já existem•Se cameras.com tem seu site
Então cameras.com será cliente
Decidir sobre primitivas de transmissão;Cameras.com deseja os resultados
•Então requisição/resposta (cs)•Site web (cliente) WS dos atacadistas (servidores)
Web Service – Exemplo Cameras.comProjeto lógico da solução
Começar a transmissão por quem deseja os resultados
70
Projetando logicamente a solução
Planejando as mensagens;Se site web é o cliente
Então mensagens serão enviadas aos atacadistas
MensagensCliente requisita ao WS atacadista
Quantas câmeras do modelo XXX estão disponíveis?Qual o preço da câmera de modelo número XXX?Por favor envie um câmera do modelo XXX para o
endereço YYY.Por favor, envie a lista de preços atual.
Web Service – Exemplo Cameras.com
WSDL
71
Projetando logicamente a solução
Servidor atacadista respondeNós temos n câmeras do modelo número XXX.A câmera de modelo XXX custa ZZZ.Confirmação de que n câmeras do modelo XXX foram
enviadas ao endereço YYYAqui está a lista de preços atuaisMensagem de erro indicando fim de estoque para a
câmera XXX
Web Service – Exemplo Cameras.com
WSDL
72
Projetando logicamente a solução
Cliente requisita ao WS da operadora cartão•Uma compra de $$$$ no cartão de crédito número 112233 é aprovada?
Servidor da operadora respondeUma compra de $$$$ no cartão de crédito número 112233
está aprovada/não está aprovada.O cartão de crédito 112233 é desconhecido.
Web Service – Exemplo Cameras.com
WSDL
73
Web Service – Exemplo Cameras.comCriando o projeto (programação)
Descobrir atacadistas com capacidade de WS (UDDI);Encontrando o WS encontra-se seu WSDL que deve ser
armazenado;Escrever o software do site cliente para ser um cliente dos WS
atacadistas para:• obter preços e enviar pedidos;•Descoberta dinâmica e configuração de novos atacadistas no site da Cameras.com (+ complicado);
•Escrever o software capaz de ser cliente do WS da operadora;•Escrever as telas do site web(site cliente) (jsp,asp,html,php);•Testar o sistema quando tudo finalizado.•Vantagem criação de sites mais dinâmicso
74
Web Service – Peculiaridades de ProjetoAo se projetar um WS deve-se considerar:
•Desempenho – considerar a latência da Internet;sistemas que o tempo é vital não são bons candidatos
•Rollback – não existente;
•Execução do processo comercial – inexistência de lógica if... then...else;
•Segurança sofisticada – SSL, UDDI 3.0 (WS-S)
•Sobrecarga para tratamento de documentos XML;
•Tratamento de transações;
75
Integrar sistemas legados;Diminuir custos operacionaisDiminuir custos de desenvolvimento de software;Diminuir distâncias geográficas;Desenvolver sistemas rapidamente;Agir como interface com os consumidores;Cada cliente pode utilizar sua plataforma de
desenvolvimento;Qualquer cliente pode, conhecendo o WSDL
comunicar-se;Integrar-se com parceiros comerciais externos;Gerar novos rendimentos;Suportar novos modelos empresariais.
Web Service – Vantagens
76
•Integrar aplicações; (não é a primeira tentativa)
•Foco na disponibilidade dos dados e não das informações;
•Suporte a transações síncronas(RPC) e assíncronas;
•Uso de esquemas XML para transação;
•São essencialmente interoperáveis;
•Cooperação entre todos os fornecedores de software;
•Qualquer um pode controlar a direção da tecnologia.
Web Services – Diferenças das Tecnologia
77
Referências Bibliográficas ERL, Thomas. Service-Oriented Architecture. A Field Guide to Integrating XML and Web Services. Prentice Hall. New Jersey, 2004.
MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO.e-PING: Padrões de Interoperabilidade de Governo Eletrônico.Disponível em:www.e-ping.e.gov.br Acesso em 9 de dezembro de 2007.
NEWCOMER, E., LOMOW,G.. Understanding SAO with Web Services. Addison Wesley Professional.December, 2004.
TIDWELL, D.,SNELL,J., KULCHENKO, P.. Programming Web Services with SOAP. O´Reilly. First Edition.December,2001.
XML, artigos (Copyright © OASIS Open 2005) Disponível em :http://www.xml.org Acesso em dezembro de 2007.
Web Services W3C (Copyright © 1996-2003 W3C®) Disponível em http://www.w3c.org/xml. Acesso em novembro de 2006.
W3C. World Wide Web Consortium. Disponível em: <http://www.w3.org/>. Acesso em: 01/09/2007.
WS-I. Web Services Interoperability Organization. Disponível em:<http://www.ws-1.org>. Acesso em: 01/09/2007