Está en la página 1de 54

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

ESCOLA AGRÍCOLA DE JUNDIAÍ

Serviços Web

Taniro Rodrigues
tanirocr@gmail.com
Agenda
• Computação Orientada a Serviços
• SOA (Service-Oriented Architecture)
• Serviços Web
– SOAP, WSDL e UDDI
– REST

11/04/2018 UFRN 2
Computação Orientada a Serviços
• A Computação Orientada a Serviços
(SOC – Service-Oriented Computing) é um
paradigma que utiliza serviços como elementos
fundamentais para o desenvolvimento de
aplicações/soluções
• Serviços são elementos computacionais
– autônomos
– autodescritivos
– reusáveis
– altamente portáveis
– e diferem de artefatos de software tradicionais

11/04/2018 UFRN 3
Computação Orientada a Serviços
• De maneira rápida e com um baixo custo,
serviços podem ser
– descritos
– publicados
– descobertos
– dinamicamente agregados
• Objetivo:
– Desenvolver sistemas distribuídos, interoperáveis e
capazes de evoluir

11/04/2018 UFRN 4
Computação Orientada a Serviços
• Qualquer pedaço de código e qualquer
componente de aplicação implantado em um
sistema pode ser reusado e transformado em
um serviço disponível na rede
– Redução da necessidade de desenvolver novos
componentes de software toda vez que um novo
processo de negócio surge

11/04/2018 UFRN 5
Computação Orientada a Serviços
• Serviços refletem uma abordagem de
programação orientada a serviços
• A ideia é compor aplicações descobrindo-se e
invocando-se serviços disponíveis através da
rede
– Não queremos construir novas aplicações para
realizar alguma tarefa já implementada

11/04/2018 UFRN 6
Computação Orientada a Serviços
• Serviços, em linhas gerais, são construídos de
maneira a serem
– Independentes do contexto no qual eles são
utilizados
– Independentes de linguagens de programação ou
sistemas operacionais específicos
• Fraco acoplamento entre o provedor do
serviço e o cliente, que o consome

11/04/2018 UFRN 7
SOA (Service-Oriented Architecture)

• Dentro da Computação Orientada a Serviços


temos o paradigma SOA (Service-Oriented
Architecture)
– Estabelece que as aplicações sejam construídas e
reorganizadas através de serviços (ou operações)
específicos e bem definidos, disponibilizados por
um ou mais provedores de serviço.

11/04/2018 UFRN 8
SOA (Service-Oriented Architecture)

• Essa abordagem arquitetural é conveniente


quando múltiplas aplicações que são
executadas em diferentes tecnologias e
plataformas precisam comunicar-se umas
com as outras.
– Uma estratégia para lidar com heterogeneidade.

11/04/2018 UFRN 9
SOA (Service-Oriented Architecture)

• Promove a interoperabilidade entre esses


elementos de software fundamentais para o
desenvolvimento de aplicações
– Como?
• Utilização de tecnologias e protocolos padronizados.
• SOAP, REST

11/04/2018 UFRN 10
SOA (Service-Oriented Architecture)

• Faz com que o acoplamento seja mínimo entre


tais elementos
– Cada elemento responsável por uma unidade
lógica de software define sua própria interface de
acesso
– A implementação é isolada da interface, ficando
assim transparente aos clientes

11/04/2018 UFRN 11
SOA (Service-Oriented Architecture)

• Permite que serviços individuais sejam


combinados para fornecer funcionalidades
agregadas e de mais alto nível de abstração.
• Mas cuidado, é importante manter o fraco
acoplamento entre serviços para que um
serviço que depende de N outros não fique
indisponível se um dos N falhar.

11/04/2018 UFRN 12
SOA (Service-Oriented Architecture)

flight booking a
flight booking
b

Travel Agent
Client
Service hire car booking a

hire car booking b


hotel booking a hotel booking b

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012

11/04/2018 UFRN 13
SOA (Service-Oriented Architecture)

• Em SOA, agentes de software trocam


mensagens entre si
– Provedores
– Clientes

11/04/2018 UFRN 14
SOA (Service-Oriented Architecture)

• Os provedores são os agentes que proveem os


serviços
– Um provedor de serviços é responsável por
publicar a descrição de todos os serviços que
provê:
– Descrições de serviços são utilizadas para publicar
funcionalidades, interface, comportamento e qualidade dos
mesmos
– A publicação de tais informações acerca dos serviços
disponíveis provê os meios necessários para a descoberta,
seleção, ligação (binding) e composição de serviços

11/04/2018 UFRN 15
SOA (Service-Oriented Architecture)

• Os clientes são os agentes que requisitam a


execução de um serviço
• clientes devem ser aptos a encontrar a descrição dos
serviços que precisam requisitar esses serviços e
receber as respostas

11/04/2018 UFRN 16
SOA (Service-Oriented Architecture)

• Serviços são publicados pelos provedores de


serviços em um mecanismo de descoberta de
serviços
• Registro (registry), que gerencia as descrições
de serviços
– clientes buscam pelos serviços nesse registro
– ocorre a ligação entre o cliente e o provedor do
serviço escolhido

11/04/2018 UFRN 17
SOA (Service-Oriented Architecture)

Relacionamentos entre os elementos envolvidos em SOA

11/04/2018 UFRN 18
Serviço Web
• Qualquer tecnologia padronizada baseada na
Web pode ser usada para implementar SOA.
• A mais largamente utilizada pela comunidade
é a tecnologia de serviços Web.

11/04/2018 UFRN 19
Serviço Web
• Um serviço Web é
– Sistema de software identificado por um URI
(Uniform Resource Identifier) cujas interfaces e
ligações são definidas, descritas, publicadas e
descobertas via um contrato de uso e que interage
com outros sistemas usando mensagens
transportadas por protocolos de Internet
[W3C – World Wide Web Consortium]

11/04/2018 UFRN 20
Serviço Web
• A tecnologia de serviços Web surgiu como
uma nova forma de desenvolver aplicações
distribuídas baseadas em SOA
• Tecnologia totalmente baseada em padrões
abertos
– Serviços Web possibilitaram a integração de
aplicações heterogêneas
– Interoperabilidade entre via Internet

11/04/2018 UFRN 21
Serviço Web
• Qualquer parte de código ou componente de
um sistema pode ser transformado em um
serviço Web
– simples funcionalidades, como a conversão de
temperaturas
– funcionalidades mais complexas e que envolvem a
interação e composição com outros serviços

11/04/2018 UFRN 22
Serviço Web
• Por que serviços Web são amplamente utilizados?
– ... pelo fato de utilizarem padrões e protocolos
consolidados da Internet
– ... pelo fato de se ter grandes corporações nos grupos de
trabalho do W3C para a especificação das tecnologias
envolvidas
– ... pelo fato de serem ubíquos e de fácil uso
– ... pelo fato de permitirem interoperabilidade
• neutralidade em relação a sistema operacional e linguagem de
programação
– ... pelo fato de complementarem tecnologias já existentes
• serviços Web são complementares a J2EE/EJB, CORBA,
etc.
Eles não as substituem!

11/04/2018 UFRN 23
Serviço Web - SOAP
• Com o objetivo de garantir interoperabilidade,
a tecnologia de serviços Web apoia-se em três
padrões derivados de XML (eXtended Markup
Language):
– SOAP (Simple Object Access Protocol)
– WSDL (Web Services Description Language)
– UDDI (Universal Description, Discovery and
Integration)

11/04/2018 UFRN 24
Serviço Web - SOAP
• SOAP é um “envelope” que contém dados XML e é
utilizado nas requisições e respostas entre os
métodos.
• XML é a linguagem padronizada para troca de dados
multiplataforma.
• WSDL é gerada a partir de um WS em particular, a
WSDL é uma interface padronizada que permite os
programas clientes encontrarem os métodos
remotos.
• UDDI é responsável pelo registro, gerenciamento e
descoberta de serviços.

11/04/2018 UFRN 25
Serviço Web - SOAP
• SOAP
• É um protocolo para o envio de mensagens e fazer
chamadas remotas de procedimentos (RPCs) que
funciona sobre um protocolo de transporte da
Internet (por exemplo, HTTP)
– Especificação:
https://www.w3.org/TR/soap12-part1/

11/04/2018 UFRN 26
Serviço Web - SOAP
• Uma mensagem SOAP é um documento XML que contém
– Envelope, que identifica o XML como uma mensagem SOAP
– Header, que contém informações de cabeçalho
– Body, que contém informações de chamadas e respostas dos
pares envolvidos na comunicação, ou seja, o cliente e o serviço
– Fault, que pode conter informações de erros e status

11/04/2018 UFRN 27
Serviço Web - SOAP

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012

11/04/2018 UFRN 28
Serviço Web - SOAP

http://www.w3schools.com/xml/xml_soap.asp

11/04/2018 UFRN 29
Serviço Web - SOAP

http://www.w3schools.com/xml/xml_soap.asp

11/04/2018 UFRN 30
Serviço Web - SOAP
• WSDL (Web Services Description Language)
• É uma linguagem utilizada para:
– Descrever serviços Web
– Especificar algumas de suas propriedades, como o que ele
faz, onde está localizado e como deve ser invocado
– Especificação:
https://www.w3.org/TR/wsdl

11/04/2018 UFRN 31
Serviço Web - SOAP
• WSDL descreve basicamente quatro aspectos do
serviço Web
– Interface, que são informações que descrevem as
funções/operações do serviço
– Data type, que são informações que descrevem os tipos
de dados para todas as mensagens de requisição ou
resposta
– Binding, que descreve o tipo de protocolo de transporte
utilizado
– Address, que contém informações para localizar o serviço

11/04/2018 UFRN 32
Serviço Web - SOAP

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012

11/04/2018 UFRN 33
Serviço Web - SOAP

http://www.w3schools.com/xml/xml_wsdl.asp

11/04/2018 UFRN 34
Serviço Web - SOAP
• UDDI
• É um diretório público que armazena as
especificações WSDL dos serviços Web disponíveis a
fim de permitir a descoberta dos mesmos via SOAP
– Especificação:
http://w3schools.sinsixx.com/wsdl/wsdl_uddi.asp.htm

11/04/2018 UFRN 35
Serviço Web - SOAP
• Tipicamente um serviço Web tem a sua
funcionalidade descrita em WSDL, publicada
em um repositório UDDI por um provedor de
serviço
• O cliente faz uma ou mais requisições
(queries) ao repositório UDDI para obter a
localização desse serviço Web utilizando como
critérios de busca o nome do provedor ou o
tipo de serviço desejado

11/04/2018 UFRN 36
Serviço Web - SOAP
• Esse repositório retorna a descrição WSDL do
serviço Web requisitado pelo cliente e
finalmente este realiza a chamada remota ao
serviço Web com base na descrição obtida
• Toda essa comunicação entre o cliente, o
provedor de serviço e o repositório UDDI é
realizada por meio de trocas de mensagens
SOAP

11/04/2018 UFRN 37
Serviço Web - SOAP

11/04/2018 UFRN 38
Serviço Web - SOAP

11/04/2018 UFRN 39
Atividade
• Implementar um serviço web utilizando SOAP
– Serviço local calculadora
• multiplicar (int a, int b);
• dividir (int a, int b);
• somar (int a, int b);
• subtrair (int a, int b);
– Serviço externo para conversão de temperatura
• http://www.w3schools.com/xml/tempconvert.asmx
• http://www.w3schools.com/xml/tempconvert.asmx?W
SDL

11/04/2018 UFRN 40
Serviço Web - REST
• Implementação de Web Services
– Ganhou força com a adesão de:
• Amazon
• Google
• Microsoft....

11/04/2018 UFRN 41
Serviço Web - REST
• Representational State Transfer
– Transferência de Estado Representacional
– 2000 por Roy Fielding, Tese de Doutorado
• Estilo arquitetural aplicado no
desenvolvimento de serviços Web
– Chamam-se de serviços RESTful as
implementações conforme o REST
• API RESTful

11/04/2018 UFRN 42
Serviço Web - REST
• Um recurso é utilizado para identificar de
forma única um objeto abstrato ou físico.
• Exemplos:
– /cliente/1
– /produto/1
– /cliente/1/notificação
• Uma URI deve ser visualizada como um
recurso

11/04/2018 UFRN 43
Serviço Web - REST
• O formato dos recursos pode variar de acordo
com a biblioteca usada para implementação
do serviço
• Exemplos de formatos:
– XML
– JSON

11/04/2018 UFRN 44
Serviço Web - REST

11/04/2018 UFRN 45
Serviço Web - REST
• A RFC 7231 3 especifica um conjunto de 8
métodos os quais podemos utilizar para a criação
de uma API RESTful.
• Dos 8 métodos os 4 mais conhecidos são:
– GET é utilizado quando existe a necessidade de se
obter um recurso.
– POST é utilizado para processamento de um recurso a
partir do uso de uma representação.
– PUT é utilizado como forma de atualizar ou inserir um
determinado recurso.
– DELETE tem como finalidade a remoção de um
determinado recurso
11/04/2018 UFRN 46
Recursos
• Métodos disponibilizarem uma interface
CRUD (Create, Read, Update e Delete) para
manipulação de recursos
– GET, POST, PUT, DELETE
• É importante lembrar que é possível fazer
processamentos a partir de métodos GET e
POST

11/04/2018 UFRN 47
48

Modelo tradicional

Premier
Customer
Representative

Clientes
Premier
Resposta
Reserva de Automática
Passagem

Regular
Clientes Customer
Regulares Representative
49

Modelo REST
Premier
1-800- Customer
Premier Representative
Clientes
Premier
F.F.
1-800- Customer
Frequent Representative
Clientes
Freqüentes
Regular
1-800- Customer
Reservation Representative
Clientes
Regulares
Modelo
• URIs REST devem ser modeladas com
substantivos
• Será o verbo HTTP que irá determinar a ação a
ser tomada

11/04/2018 UFRN 50
Modelo

11/04/2018 UFRN 51
Modelo

11/04/2018 UFRN 52
Referências
• BATISTA, Thais; CAVALCANTE, Everton. Notas
de aula. SOA e Serviços Web.
• COLOURIS. Sistemas Distribuídos. 5º ed.
Bookman. 2015.

11/04/2018 UFRN 53
Dúvidas?

Taniro Chacon Rodrigues


tanirocr@gmail.com