Web Services
Da Introdução à Prática
Americo do Nascimento Penna
Introdução






Devido aos avanços
tecnológicos, a popularização
da Internet e a evolução das
redes de computadores,
resultando no surgimento de
aplicações distribuídas.
Cada vez mais aumenta a
necessidade de
Compartilhamento de
informações,
Interoperabilidade de sistemas
Independência de plataforma
Independência de linguagem
O papel dos Middlewares:
Independência e portabilidade
(CORBA, DCOM, RMC, RMI).
Introdução
Programa 2
Programa 1
Dado 1
Dado 2
Dado A
XML HTTP
XML
Dado 3
Dado B
Dado C
Modelo de Aplicação RMC
Introdução

Web Service é a tecnologia ideal para
comunicação entre sistemas.

A comunicação entre os serviços é
padronizada, possibilitando a
independência de plataforma e de
linguagem de programação.
Definição

Segundo Menéndez, há uma definição bastante simples
para um Web Services: É uma aplicação que aceita
solicitações de outros sistemas através da Internet.

Segundo James Snell, Web Services são interfaces
acessíveis de rede, para as funcionalidades da
aplicação, que utilizam em sua construção tecnologias
padrões da Internet.

Web Services são serviços que visam facilitar o
processamento distribuído em sistemas heterogêneos.

Estes serviços são baseados em um conjunto de
padrões da Internet definidos pelo W3C
Definição
São sistemas distribuídos
 Funcionam na Internet
 Vários envolvem achar (navegar) o que se quer
antes de usar


Muitos envolvem organizações diferentes
◦ Não temos controle sobre a plataforma, linguagem, etc.
do outro lado
◦ O outro lado é essencialmente um sistema legado no
qual não podemos mexer
Definição
Arquiteturas

MainFrames
Terminal
Mainframe
Terminal
[ Dados + Lógica + Interface ]
Terminal
Arquiteturas

Arquitetura Cliente-Servidor
[ Dados ]
PC
Cliente
PC
Cliente
PC
Cliente
[ Lógica + Interface ]
Servidor c/ SGBD
Arquiteturas

Browser Web
Browser Web
Arquitetura em n-camadas
Internet
Servidor Web
[ Interface ]
SGBD
Servidor de
Aplicação
[ Lógica ] [ Dados ]
Arquitetura SOA
• SOA – Service Oriented Architecture
– Um serviço é uma função bem definida, autocontida e que não depende do estado ou
contexto de outros serviços;
• Os Web Services podem ser utilizados para
implementar arquiteturas orientadas a serviços, as
Service-Oriented Architectures (SOA).
• Neste modelo de arquitetura os principais
requisitos viram serviços e são acessados por
outros serviços, modularizando e aumentando a
coesão dos componentes da aplicação
XML

Oferece um formato ASCII
para trocar qualquer tipo de
informação estruturada

Usa o “estilo” HTML de
markup com tags
◦ <pessoa nome=”João”>
<frutasFavoritas>
<fruta>Manga</fruta>
<fruta>Maçã</fruta>
<fruta>Uva</fruta>
</frutasFavoritas>
</pessoa>

Os tags podem ser definidos
para criar uma “Aplicação
XML”.
SOAP

SOAP é uma forma de fazer Remote
Procedure Call (RPC) usando
documentos XML
SOAP
O binding sobre HTTP, SMTP, etc. permite
driblar firewalls com mais facilidade
 Qualquer outro protocolo de transporte
pode ser usado

SOAP
WSDL

WSDL é a sigla de (Web Service Description
Language), padrão baseado em XML para
descrever o serviço, onde ele traz os métodos
do Web Service.
WSDL

Descrição/formato de mensagens que podem
ser passadas
◦ Elementos <types>, <message>

Semântica da passagem de mensagens (Requestonly, request-response, response-only)
◦ Dentro do elemento <portType>

Uma codificação usando um transporte
particular
◦ Elemento <binding>

O endpoint do serviço (uma URL)
◦ Dentro do elemento <service>

Veremos um exemplo logo
WSDL
<!– Exemplo de um WSDL XML -->
<!– Serviço disponibilizado pela classe Somador-->
<wsdl:definitions targetNamespace=“Somador">
<wsdl:documentation>
Comentários sobre o serviço
</wsdl:documentation>
...
<!– Descritor da chamada do método Soma -->
<wsdl:message name="somaRequest">
<!– Parâmetros do método-->
<wsdl:part name="valor1" type="xsd:int"/>
<wsdl:part name="valor2" type="xsd:int"/>
</wsdl:message>
<!– Descritor do retorno do método Soma-->
<wsdl:message name="somaResponse">
<!– Retorno do método-->
<wsdl:part name="somaReturn" type="xsd:int"/>
</wsdl:message>
UDDI

Universal Description,
Discovery and
Integration (UDDI)
disponibiliza um
registro (baseado em
XML’s).

A partir deste registro,
os sistemas podem
divulgar seus serviços.
UDDI

A especificação UDDI define:
◦ APIs SOAP utilizadas para publicar e obter
informações de um registro UDDI
◦ Esquemas XML do modelo de dados do registro e
do formato das mensagens SOAP
◦ Definições WSDL das APIs SOAP
◦ Definições de registro UDDI (modelos técnicos tModels) de diversos sistemas de identificação e
categorização, que podem ser utilizados para
identificar e categorizar registros UDDI
Caso de Estudo

Construiremos uma calculadora usando um Web Service.
Ferramentas utilizadas:

Apache Tomcat 7.0.14
◦ Web Server
 Infra-estrutura que oferece suporte a pedidos e respostas HTTP.
◦ Web Container
 Componente que oferece suporte ao ciclo de vida de um
servlet.

AXIS (Apache eXtensible Interaction System)
◦ É um framework de código aberto, baseado em
linguagem Java, utilizado para construção de web
services através do protocolo SOAP.
◦ Com as ferramentas do Axis, a criação e publicação de
web services, além da criação de clientes de acesso se
torna simplificada.
Caso de Estudo

public class Calculadora
{
public int somar(int numA, int numB)
{
return numA + numB;
}
public int subtrair(int numA, int numB)
{
return numA - numB;
}
public int multiplicar(int numA, int numB)
{
return numA * numB;
}
}
public int dividir(int numA, int numB)
{
if(numB != 0) return numA / numB;
return 0;
}
Bibliografia






Robert Richards - Pro PHP XML and Web Services,
2006
Nicolescu Matthieu – Web Services,2003
James Snell – Programming Web Services with
SOAP
Pablo Dal´Oglio – PHP5 e Web services, 2006
DEITEL, H. M. et al. XML: Como Programar, 2003.
Andrés Ignácio Martínez Menéndez. Uma
ferramenta de apoio ao desenvolvimento de Web
Services. Dissertação de Mestrado, Universidade
Federal de Campina Grande, curso de PósGraduação em Informática, 2002.
Download

Web Services