• Nenhum resultado encontrado

WebServices[JorgeDias]

N/A
N/A
Protected

Academic year: 2021

Share "WebServices[JorgeDias]"

Copied!
19
0
0

Texto

(1)

Web Services

Jorge Dias Jr.

2

Parte 1

• Definição

• Arquitetura

• XML

• XML-RPC

• SOAP

• WSDL

• UDDI

• Desvantagens

Web Services

Conceito:

• “Web services são aplicações modulares auto-descritivas e auto-contidas, que podem ser conectadas e acopladas a outros web services” [IBM].

• “Web services são componentes de software com baixo fator de acoplamento, utilizados por meio de padrões de tecnologia Internet. Um Web service representa uma função de negocio ou um serviço que pode ser acessado por uma outra aplicação.” [Gartner].

Web Services

Características

• Conjunto de tecnologias padronizadas.

- Formato de dados

- Comunicação

• Descrições baseadas em XML.

• Middleware independente de plataforma e

de linguagem de programação.

• Se comunicam facilmente através de

firewalls.

(2)

5

Web Services

Utilização

• Construção de aplicações distribuídas

baseadas na Web.

• Disponibilização de serviços pela Web.

• Integração de sistemas: PCs, dispositivos

móveis, servidores de banco de dados,

etc.

• Gerenciamento de transações distribuídas

em aplicações Web.

6

Web Services

7

Arquitetura dos Web

Services

Arquitetura baseada nos papéis:

- Service provider: Fornecedor do web service, quem implementa e disponibiliza os serviços. - Service requestor: Consumidor do web service,

que utiliza uma conexão de rede e envia um XML Request.

- Service registry: Diretório de serviços

centralizado, onde os fornecedores publicam os serviços.

8

WEB

WEB

Arquitetura dos Web

Services

Arquitetura baseada nas regras

Service Requestor Service Registry Service Provider 1 2 Invoca o serviço Descobre o serviço

(3)

9

Arquitetura dos Web

Services

Arquitetura baseada na pilha de protocolos

- Serviço de transporte: HTTP, SMTP, FTP, JMS. - Mensagem XML: Camada responsável por codificar

as mensagens num formato de XML comum. Ex: XML-RPC e SOAP.

- Descrição do serviço: Responsável por descrever as interfaces públicas de um web service. Ex: WSDL

- Descobrimento do serviço: Centraliza os serviços num domínio de registro comum e fornece facilidade para busca e publicação dos serviços. Ex: UDDI

10

Arquitetura dos Web

Services

Arquitetura baseada na pilha de protocolos

Discovery (UDDI) Description (WSDL) XML Messaging (XML-RPC, SOAP, XML)

Transport (HTTP, SMTP, FTP, BEEP)

XML

(eXtended Markup Language)

XML

• É usada para intercambiar dados - Permite trocar dados facilmente entre aplicações Web.

- Facilita a análise de dados por programas. - É independente de sistemas operacionais ou formatos proprietários usados por aplicações. - Permite a definição de elementos pelo usuário (ou aplicação) para estruturar dados.

(4)

13

XML

• Documentos estruturados em formato

texto.

• Compostos por tags XML e valores dos

dados.

• Legíveis para humanos e máquinas.

• Dados em XML podem ser facilmente

interpretados pelas aplicações através de

parsers (independente de linguagem e

plataforma).

14

XML

XML vs. HTML

• XML é visto erroneamente como um

formato alternativo ao HTML.

• XML não possui tags para formatação de

documentos como o HTML.

• XML se preocupa apenas com o conteúdo

e não com a apresentação.

15

XML

• Tags: <tag> </tag>

• Valores de dados entre tags de abertura e

fechamento: <tag> dado </tag>

• Tags podem possuir atributos:

<tag atributo = “valor” />

16

XML

• Exemplo <?xml version=“1.0”?> <alunos> <aluno id=“1”>

<nome> Jose Jorge </nome> <matricula> 10211013 </matricula> </aluno>

<aluno id=“2”>

<nome> Fulano </nome> <matricula> 111111 </matricula> </aluno>

(5)

17

XML

• Esquemas XML

- Especificam o formato que deve ser respeitado por um documento XML.

- Definem tags, atributos e os tipos de dados aceitos para cada elemento.

- Um documento XML é válido se estiver em conformidade com um esquema.

- Tipos de esquema:

DTD (Document Type Definition) XSD (XML Schema Definition) 18

XML

• Exemplo de XSD <?xml version=“1.0” encoding=“ISO-8859-1” ?> <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema> <xs:element name=“alunos”>

<xs:attribute name=“id” type=“xs:integer” use=“required”/>

<xs:complexType>

XML-RPC

(XML Remote Procedure Call)

XML-RPC

• Utiliza XML sob HTTP para comunicação.

• Três principais partes:

- Modelo de dados XML-RPC

- Estruturas request XML-RPC

- Estruturas response XML-RPC

(6)

21

XML-RPC

Modelo de dados XML-RPC

• XML-RPC define 6 tipos de dados básicos

e 2 tipos de dados composto.

• Tipos básicos são representados

simplesmente por tags XML.

Ex: <string> Oiiii </string>

22

XML-RPC

Modelo de dados XML-RPC

23

XML-RPC

Modelo de dados XML-RPC - Estruturas

24

XML-RPC

(7)

25

XML-RPC

XML-RPC Response

26

SOAP

(Simple Object Access Protocol)

SOAP

• Protocolo de comunicação entre Web Services (padrão W3C).

• Define o formato das mensagens trocadas entre WS.

• Baseado em XML-RPC, com várias evoluções. • Independente de plataforma e linguagem de

programação.

• A comunicação pode ser feita em vários protocolos como HTTP, SMTP, FTP, JMS, etc.

SOAP

Funcionamento:

• Cliente cria um envelope SOAP especificando o nome da operação requisitada e os nomes e valores dos parâmetros da operação.

• Requisição é enviada pela rede ao provedor de serviço.

• Requisição é recebida e interpretada. • A operação requisitada é executada.

• A resposta obtida é colocada em um envelope SOAP e enviada ao cliente onde este irá processar o envelope.

(8)

29

SOAP

Formato do SOAP

Mensagem SOAP Envelope (obrigatório) Header (opcional) Body (obrigatório) Fault (opcional) 30

SOAP

• SOAP Request

31

SOAP

• SOAP Response

32

SOAP

• Envelope

- SOAP-ENV:Envelope

- Versão controlada com o namespace.

Versão 1.1 <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/> Versão 1.2 <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://www.w3.org/2001/09/soap-envelope>

(9)

33

SOAP

• Header

- SOAP-ENV:Header

- O formato do header não é definido na especificação para possibilitar flexibilidade para as aplicações. - Pode ser implementado autenticação, autorização de pagamento, etc.

- Dois atributos no Header podem ser usados: - SOAP-ENV:mustUnderstand quando tem o valor “1” obriga ao outro lado tratar cabeçalhos, caso contrário um erro é gerado.

- SOAP-ENV:actor é usado para encadear outros WS para finalizar o processamento.

34

SOAP

• Header <SOAP-ENV:Header> <myNS:authentication xmlns:myNS=http://www.stevepotts.com/auth SOAP-ENV:mustUnderstand=“1”>

<login> admin </login>

<password> 123456 </password> </myNS:authentication> </SOAP-ENV:Header>

SOAP

• Body

- SOAP-ENV:Body

- Aqui onde o payload da mensagem

SOAP é colocado.

- Pode ser uma chamada de método, um

documento XML ou apenas uma resposta

contendo uma informação qualquer.

SOAP

• Fault

- SOAP-ENV:fault

- Indica que um problema ocorreu na

tentativa do processamento da requisição

enviada ao Web service.

(10)

37

SOAP

• Fault

Descrição Nome do Elemento

Este elemento deve conter o máximo de informações possível sobre o estado do servidor no momento da falha.

detail

Este elemento opcional informa que serviço gerou a falha.

faultActor

Este elemento é uma versão legível para o homem do faultcode.

faultString

Este elemento é exigido pela especificação. Ele deve ter algum código indicando qual é o problema. faultcode

38

SOAP

• Fault

Erro gerado quando um elemento no cabeçalho não pode ser processado e esse elemento é marcado como obrigatório

SOAP-ENV:mustUnderstand

Ocorre quando versões dos processadores SOAP do cliente e do servidor são diferentes.

SOAP-ENV:versionMismatch

Indica que algo de errado aconteceu com a mensagem do cliente.

SOAP-ENV:Client

Um erro ocorreu no servidor ao tratar a requisição do cliente. SOAP-ENV:Server Descrição Tipo do faultcode 39

SOAP

• Tipos de dados

-

<nMat xsi:type=“xsd:string”> 10211013 </nMat>

- Tipos de dados permitidos:

- Tipos escalares: int, double, string,...

- Tipos compostos: array, elementos

compostos, JavaBeans.

40

SOAP

(11)

41

SOAP

• SOAP via HTTP: Response

42

SOAP

• Implementações

- Apache SOAP

- Microsoft SOAP toolkit

- SOAP::Lite for Perl

- GLUE

WSDL

(Web Services Description Language)

WSDL

• Representa o contrato entre o fornecedor e o cliente do serviço.

• Descreve os serviços do WS através de uma especificação XML.

• Equivalente à especificação de interface IDL de um objeto CORBA ou DCOM.

• Descreve:

- Informação da interface.

- Informação do tipo de dados para as mensagens de requisição e resposta.

- Protocolo de transporte a ser usado.

(12)

45

WSDL

Especificação do WSDL

• definitions

• types

• message

• portType

• binding

• service

46

WSDL

definitions: deve ser o elemento raiz de todos os

documentos WSDL. Define nome do web service, declara um namespace, e contém descrito todos os elementos do serviço.

types: descreve todos os tipos de dados usados

entre o servidor e o cliente do serviço.

message:especifica as mensagens aceitas por

um Web Service.

47

WSDL

portType: define um conjunto de operações

fornecidas por um Web Service.

Binding: especifica os protocolos de

comunicação usados por um Web

Service.

Service: define um endereço para invocar

um serviço específico (comumente com

URL).

48

WSDL

<types>: Que tipo de dados serão transmitidos <message>: Que mensagens serão transmitidas <portType>: Que operações serão suportadas <binding>: Como as mensagens serão transmitidas <service>: Onde os serviços estarão localizados <Definition>: elemento root do WSDL

(13)

49

WSDL

Definition of data types

Definition of messages

Definition of port type

50

WSDL

Definition of the bindings

Definition of the service

WSDL

• definitions

• message

WSDL

• portType

– 4 tipos de operações são permitidas:

• One-way • Request-response • Solicit-response • Notification

(14)

53

WSDL

• portType

54

WSDL

• binding

• service

55

UDDI

(Universal Description, Discovery and Integration)

56

UDDI

• Especificação técnica para descrever, descobrir e integrar web services.

• Criado por Ariba, IBM e Microsoft em set/2000. • É o provedor de registros de Web services. • Armazena as especificações WSDL dos

provedores de serviços.

• Permite que os clientes encontrem os

provedores de serviços dos quais necessitam e descubram como solicitar tais serviços.

• Faz o papel do registro do RMI e dos serviços de nomes e trading do CORBA.

(15)

57

UDDI

Características

• Se enfoca no processo de descobrimento em SOA (Service-Oriented Architecture).

• Interfaces registradas são descritas em WSDL. • Registros são armazenados em XML.

• Recebe requisições de registro e descoberta utilizando o protocolo SOAP.

• Empresas podem ter seus servidores UDDI privados para registro de serviços internos.

58

UDDI

• Consulta de Registros

Páginas Brancas: Fornecem o endereço para

contato do provedor de serviço.

Páginas Amarelas: Classificam os provedores em

categorias de acordo com seu ramo de negócio.

Páginas Verdes: Fornecem informações técnicas

sobre os serviços executados pelos provedores.

UDDI

Arquitetura do UDDI:

• UDDI Data model: XML esquema para

descrever os negócios e Web services.

• UDDI API: API baseada no SOAP para

publicação e pesquisa de dados UDDI.

• UDDI cloud services: sites que fornecem

implementações de especificações UDDI.

Ex: IBM e Microsoft.

UDDI

• UDDI Data Model

– Descreve 4 tipos de informação:

• businessEntity • businessService • bindingTemplate • tModel

(16)

61

UDDI

• businessEntity

62

UDDI

• businessService

63

UDDI

• bindingTemplate

64

UDDI

• tModel

(17)

65

UDDI

• UDDI inquiry API

66

UDDI

• UDDI

Publishing

API

UDDI

Implementações

• Java

- UDDI4J

- jUDDI

• Microsoft COM

- UDDI SDK

• Pearl

- SOAP::Lite

Cliente do Web Service

public class Calculator {

public int somar(int numA, int numB) {

return numA+numB; }

public int subtrair(int numA, int numB {

return numA-numB; }

(18)

69

Cliente do Web Service

70

Cliente do Web Service

71

Desvantagens do Web

Service

• Aumento de overhead para abrir as

mensagens e empacotá-las.

• Baixa performance, inclusive em intranets.

• Fragilidade de interface, após ter sido

usada a interface em um cliente, sua

semântica não pode ser alterada, pois

implica em mudanças no cliente.

• Ausência de encriptação na comunicação.

72

Ferramentas

• AXIS

• GLUE

• JWSDP

(19)

73

FIM

Assuntos relacionados:

• Segurança em Web Services

(WS-Security)

• Coordenação e transação em Web

Services (Coordination e

WS-Transaction)

Referências

Documentos relacionados

Para o isolamento de culturas de bactérias produtoras de biofilme foram realizadas quatro coletas de amostras ambientais sendo duas em um abatedouro de aves e duas em uma planta de

técnicas de alta resolução não são disponibilizadas em nenhum banco de dados de estruturas. De acordo com a dificuldade em achar uma estrutura já resolvida com base na sequência

Também é possível criar um novo Item no Catálogo Geral e utilizado como atributo de uma classe. Por exemplo, podemos criar um

Dentro deste contexto, este artigo apresenta uma abordagem desenvolvida para a modelagem colaborativa dos processos de software de micro e pequenas empresas de software (MPEs)..

Graduação em Letras; grau mínimo de Doutor, Experiência no trabalho com o CELPE-Bras (pesquisa, aplicação, preparação de estudantes para o exame do Certificado

Para trazer as PMEs e para que elas cresçam é preciso simplifi car as exigências regulatórias e incentivar o mercado investidor para criar liquidez para as ações dessas

SÁBADO 22/05 9h às 12h FUNDAMENTOS TÉORICOS E PESQUISA APLICADA COMUNICAÇÃO E PROCESSO CRIATIVO SÁBADO 22/05 14h às 17h FUNDAMENTOS TÉORICOS E PESQUISA APLICADA

Dando-lhe o meu assenso e louvando-a como obra literária, acho que não só pode, mas deve ser representada e assim outras desta força que traduzam para o público a verdadeira