Download - Profrª Everlin Marques Profrª Cinara Menegazzo filePrograma “Conhecendo Padrões Abertos para Interoperabilidade” Oficina I: Curso de Web Services Profrª Everlin Marques Profrª

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)

18

Web Service - Estabelecimento

Figura 3 - Estabelecimento da primeira plataforma WS, (Erl,2004)

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)

21

Figura 5 – Processo geral de um WS (W3C,2007)

Web Service – Componentes

22

SOA

Web Services – Componentes

Figura 7 -Modelo Teórico da SOA para WS (Erl,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

25

Web Service - Arquitetura

Figura 6 – Arquitetura dos Web Services (Dall’Oglio, 2003)

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

30

Web Services – SOAP Gramática

Corpo SOAP

Envelope SOAP

Cabeçalho SOAP

Figura 10 - Gramática 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>

52

Web Services - WSDL-Elementos XML

Figura 12 - Elementos WSDL (Erl,2004)

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