![Page 1: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/1.jpg)
Web ServicesDa Introdução à Prática
Americo do Nascimento Penna
![Page 2: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/2.jpg)
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).
![Page 3: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/3.jpg)
Introdução
Modelo de Aplicação RMC
Programa 1 Programa 2
XML XMLHTTP
Dado 1
Dado 2
Dado 3
Dado A
Dado B
Dado C
![Page 4: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/4.jpg)
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.
![Page 5: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/5.jpg)
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
![Page 6: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/6.jpg)
Definição
São sistemas distribuídosFuncionam na InternetVá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
![Page 7: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/7.jpg)
Definição
![Page 8: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/8.jpg)
ArquiteturasMainFrames
[ Dados + Lógica + Interface ]
Mainframe
TerminalTerminal
Terminal
Terminal
![Page 9: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/9.jpg)
Arquiteturas
Arquitetura Cliente-Servidor
Servidor c/ SGBD
[ Lógica + Interface ]
[ Dados ]PC
Cliente
PC
Cliente
PC
Cliente
PC
Cliente
![Page 10: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/10.jpg)
Arquiteturas
Arquitetura em n-camadas
Browser Web
Browser Web
Internet
Servidor WebServidor de
Aplicação
SGBD
[ Interface ] [ Dados ][ Lógica ]
![Page 11: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/11.jpg)
Arquitetura SOA• SOA – Service Oriented Architecture
– Um serviço é uma função bem definida, auto-contida 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
![Page 12: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/12.jpg)
XMLOferece 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”.
![Page 13: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/13.jpg)
SOAPSOAP é uma forma de fazer
Remote Procedure Call (RPC) usando documentos XML
![Page 14: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/14.jpg)
SOAPO binding sobre HTTP, SMTP, etc.
permite driblar firewalls com mais facilidade
Qualquer outro protocolo de transporte pode ser usado
![Page 15: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/15.jpg)
SOAP
![Page 16: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/16.jpg)
WSDLWSDL é 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.
![Page 17: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/17.jpg)
WSDLDescrição/formato de mensagens que
podem ser passadas◦ Elementos <types>, <message>
Semântica da passagem de mensagens (Request-only, 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
![Page 18: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/18.jpg)
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>
![Page 19: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/19.jpg)
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.
![Page 20: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/20.jpg)
UDDIA 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
![Page 21: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/21.jpg)
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.
![Page 22: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/22.jpg)
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;
}}
![Page 23: Web Services Da Introdução à Prática Americo do Nascimento Penna](https://reader036.vdocuments.pub/reader036/viewer/2022062701/552fc171497959413d8ee36d/html5/thumbnails/23.jpg)
BibliografiaRobert Richards - Pro PHP XML and Web
Services, 2006Nicolescu Matthieu – Web Services,2003James Snell – Programming Web Services with
SOAPPablo Dal´Oglio – PHP5 e Web services, 2006DEITEL, 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ós-Graduação em Informática, 2002.