web services da introdução à prática americo do nascimento penna
TRANSCRIPT
Web ServicesDa 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
Modelo de Aplicação RMC
Programa 1 Programa 2
XML XMLHTTP
Dado 1
Dado 2
Dado 3
Dado A
Dado B
Dado C
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í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
Definição
ArquiteturasMainFrames
[ Dados + Lógica + Interface ]
Mainframe
TerminalTerminal
Terminal
Terminal
Arquiteturas
Arquitetura Cliente-Servidor
Servidor c/ SGBD
[ Lógica + Interface ]
[ Dados ]PC
Cliente
PC
Cliente
PC
Cliente
PC
Cliente
Arquiteturas
Arquitetura em n-camadas
Browser Web
Browser Web
Internet
Servidor WebServidor de
Aplicação
SGBD
[ Interface ] [ Dados ][ Lógica ]
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
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”.
SOAPSOAP é uma forma de fazer
Remote Procedure Call (RPC) usando documentos XML
SOAPO binding sobre HTTP, SMTP, etc.
permite driblar firewalls com mais facilidade
Qualquer outro protocolo de transporte pode ser usado
SOAP
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.
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
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.
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
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;
}}
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.