Академический Документы
Профессиональный Документы
Культура Документы
SO PAULO
2012
SO PAULO
2012
RESUMO
Este trabalho tem como objetivo, demonstrar a tecnologia Web Services, sua importncia e
popularidade. Demonstrando assim as tecnologias que so utilizadas dentro do cenrio dos
Web Services, assim como as novas tendncias que surgiram com o amadurecimento dos
sistemas distribudos. Dentre as tecnologias que sero abordadas neste trabalho, temos: XML,
SOAP ,WSDL e UDDI. Por fim, analisaremos a abordagem REST em oposio ao protocolo
SOAP de forma a demonstrar vantagens e desvantagens na utilizao de ambas as
abordagens.
ABSTRACT
This paper aims to demonstrate the Web Services technology, its importance and popularity.
Thus demonstrating the technologies that are used within the scenario of Web services, as
well as new trends that have emerged with the maturation of distributed systems. Among the
technologies that will be addressed in this work, we have: XML, SOAP, WSDL and UDDI.
Finally, we analyze the REST approach as opposed to the SOAP protocol in order to
demonstrate advantages and disadvantages in the use of both approaches.
REST
ROA
CORBA
WSDL
W3C
UDDI
RPC
SOAP
XML
URI
XSD
SUMRIO
INTRODUO ............................................................................................................................................... 7
I WEB SERVICES ......................................................................................................................................... 8
I.1 ORIGEM ....................................................................................................................................................... 8
I.2 DEFINIO ................................................................................................................................................... 8
I.3 PAPIS ....................................................................................................................................................... 11
II RPC........................................................................................................................................................... 13
II.1
II.2
II.3
II.4
CONCEITO ............................................................................................................................................... 17
CARACTERSTICAS ................................................................................................................................... 18
FORMATO DE MENSAGEM ........................................................................................................................ 18
ENVELOPE SOAP ..................................................................................................................................... 19
CABEALHO SOAP .................................................................................................................................. 20
ATRIBUTOS SOAP .................................................................................................................................. 21
CORPO SOAP .......................................................................................................................................... 22
TRATAMENTO DE EXCEES SOAP ......................................................................................................... 24
IV REST ....................................................................................................................................................... 25
IV.1
IV.2
IV.3
IV.4
CLIENTE/ SERVIDOR................................................................................................................................. 26
CAMADAS ............................................................................................................................................... 27
CACHE .................................................................................................................................................... 28
SEM ESTADO ........................................................................................................................................... 28
INTRODUO
A utilizao da tecnologia de Web Services vem se popularizando nos ltimos anos. Com o
aumento da confiana do consumidor para realizar transaes pela INTERNET, as empresas
esto utilizando cada vez mais essa tecnologia.
Os Web Services so bastante utilizados em aplicaes de comrcio eletrnico. Um bom
exemplo a integrao do comrcio eletrnico com o servio dos correios, o qual possibilita
que o usurio informe o nmero do CEP e o servio dos correios se encarrega de retornar o
respectivo endereo para o CEP informado.
O XML a tecnologia responsvel por essa interoperabilidade, conectando programas e
aplicaes desenvolvidas em diferentes linguagens ou plataformas. (EXTENSIBLE, 2011)
O objetivo deste trabalho demonstrar a integrao da tecnologia de Web Services em
sistemas heterogneos nas suas diferentes abordagens: SOAP E REST.
I Web Services
I.1 Origem
Com a evoluo das redes de computadores surgiram as aplicaes distribudas.
Inicialmente todo o processamento era centralizado em apenas um servidor. Com o
surgimento dos middlewares o processamento comeou a ser distribudo entre vrios
servidores. Com o avano da internet e dos protocolos de comunicao baseados em XML,
surgiram os Web Services com a misso de integrar sistemas heterogneos. (GOMES, 2010)
I.2 Definio
Segundo definio do W3C, os Web Services so aplicaes autocontidas, que possuem
interface baseadas em XML e que descrevem uma coleo de operaes acessveis atravs da
rede, independente da tecnologia usada na implementao do servio. (WEB, 2011)
O XML o formato de mensagem adotado pelo W3C para troca de informaes entre
aplicaes distribudas atravs do protocolo HTTP. O SOAP por ser uma tecnologia sem
caractersticas proprietrias tornou-se uma alternativa aos protocolos tradicionais, tais como:
CORBA e DCOM. (GOMES, 2010)
Os Webs Services devem ser definidos de forma consistente para que possam ser
descobertos e interfaceados com outros servios e aplicaes. A WSDL uma especificao
W3C que fornece a linguagem mais avanada para a descrio de definies de Web Services.
A figura 1 abaixo mostra a definio de um documento WSDL.
10
UDDI o responsvel pela publicao e descoberta dinmica dos servios Web Services.
Para fazer uma chamada a um Web Service necessrio localiz-lo e em seguida descobrir
sua interface e a semntica da sua chamada e escrever e configurar o software local que
realizar a chamada ao Web Service. (UNIVERSAL, 2011)
UDDI so as pginas amarelas dos Web Services. Assim como nas pginas amarelas
tradicionais, voc pode procurar por uma companhia que oferea os servios que voc precisa
ler sobre o servio oferecido e contatar algum para obter mais informaes sobre o servio
disponibilizado. Voc pode naturalmente oferecer um servio sem registr-lo na UDDI, assim
como voc pode abrir um negcio no poro de sua casa e contar com a propaganda boca a
boca, mas se voc quiser alcanar um mercado significativo, voc precisar do UDDI, assim
seus clientes podero encontr-lo.
Um diretrio UDDI um arquivo XML que descreve o negcio e os servios. O mesmo
possui trs partes:
Pginas brancas: Descrevem a empresa (Nome, Endereo, Contatos).
Pginas amarelas: Incluem as categorias, baseadas em taxonomias padres.
Pginas verdes: Descreve a interface para o servio, em nvel de detalhe suficiente
para escrever uma aplicao que use Web Service.
O diretrio UDDI tambm inclui vrias maneiras de procurar os servios. Por exemplo,
pode se procurar fornecedores de um determinado servio em uma regio especfica.
11
I.3 Papis
H trs papis importantes dentro da arquitetura de Web Services: Provedor de Servios,
Consumidor de servios e o Registro dos servios. A interao destes papis envolve as
operaes de publicar, pesquisar e fazer a ligao dos servios. Abaixo definida a funo
para cada um destes papis:
Provedor de servios: o responsvel pela implementao e disponibilizao dos
Web Services na INTERNET. Para que algum possa utiliz-lo, preciso descrever o
servio em um formato padro, compreensvel para qualquer um que precise usar
esse servio e tambm publicar as caractersticas sobre o servio em um registro
central disponvel.
Consumidor de servios: o usurio de um servio disponvel na INTERNET que foi
implementado por um provedor de servio.
Registro do servio: Refere-se localizao do servio. Ele contm as informaes
tcnica dos servios e os detalhes da empresa.
A figura 2 ilustra a interao entre os elementos da arquitetura Web Services.
12
13
II RPC
14
15
16
Para que uma aplicao RPC funcione necessrio que o servio portmapper
esteja em execuo.
5. Executar os programas.
17
III SOAP
III.1 Conceito
O SOAP um protocolo projetado para invocar aplicaes remotas atravs de RPC ou
trocas de mensagens, em um ambiente independente de plataforma e linguagem de
programao. (SIMPLE, 2011)
fcil de implementar, testar e usar o protocolo SOAP. Ele um padro da indstria e foi
adotado pelo W3C. A mensagem transportada atravs do protocolo HTTP por meio de
pacotes virtualmente idnticos .Os protocolos de autenticao e encriptao so os mesmos.
O SOAP beneficia-se da infraestrutura criada para o HTTP para atravessar firewalls e
roteadores, o que facilita a comunicao entre os Web Services envolvidos.
Inicialmente o SOAP foi construdo como um veculo genrico para troca de mensagens
entre computadores atravs da INTERNET. O formato de mensagem refere-se ao estilo
utilizado entre as aplicaes Web Services. O estilo de comunicao a ser utilizado entre um
cliente (Web Services) e um servio vai depender da forma que o servio foi implementado.
Os Web Services oferecem dois tipos de modelos:
RPC
Document.
O RPC permite modelar chamadas de mtodos com parmetros e receber valores de retorno.
Uma mensagem SOAP leva em seu corpo (elemento Body), o nome do mtodo a ser
executado e os parmetros de entrada da chamada. Na mensagem RPC de resposta, um valor
de retorno ou uma falha do mtodo invocado retornado.
No Document, o corpo da mensagem SOAP contm um fragmento de documento XML que
enviado ao servio em vez de um conjunto de valores de parmetros.
18
O modelo utilizado para a comunicao SOAP nos Web Services, influi diretamente em seu
desempenho e em sua confiabilidade. Web Services implementados no estilo RPC necessita
somente da elaborao da interface de suas operaes, enquanto que no estilo Document exige
mais esforo de implementao, pois requer a criao de um XML Schema, o qual necessita
da descrio dos elementos que correspondem s operaes do servio e os respectivos tipos
de dados utilizados nos parmetros das operaes.
III.2 Caractersticas
Definido pelo consorcio W3C.
Protocolo baseado em XML para troca de informaes em ambientes distribudos
Padro de utilizao para Web Services.
Normalmente utiliza HTTP como protocolo de transporte.
19
20
envelope precisa destas informaes do protocolo de transporte que est ligado a ele, com o
propsito de garantir o envio da mensagem para o local correto. O Envelope pode possuir um
cabealho que se chama SOAP ACTION que indica o endereo de entrega da mensagem. Um
dos principais motivos para inserir o cabealho para que os administradores de sistemas
possam configurar seus firewalls para filtrar as mensagens baseadas nas informaes dos
cabealhos.
A figura 5 tem um exemplo de formatao do Envelope SOAP
21
22
Atributo mustUnderstand : Este atributo pode ser utilizado para indicar se uma
entrada do cabealho obrigatria ou opcional para o receptor processar.
23
A especificao SOAP define os tipos de dados baseados no XSD. Esta especificao define
os tipos primitivos de dados, assim como estruturas mais complexas. Uma grande vantagem
do uso do protocolo SOAP que ele aceita qualquer tipo de dado que possa ser representado
por um XSD Schema. Na tabela 1 temos os tipos aceitos pelo XSD.
24
25
IV REST
Foi idealizado por Roy Fielding no ano de 2000, na sua dissertao de doutorado, na qual
buscou as melhores prticas nos estilos de arquiteturas existentes para compor um novo estilo
que as reunissem em apenas um estilo, o qual ficou conhecido como REST.
REST um estilo de arquitetura direcionado para sistemas de hipermdia distribudos.
Basicamente esse estilo composto por dois papis: Cliente e Servidor. Conforme figura
abaixo.
26
Cliente / Servidor.
Sistema em Camadas
Cache
Sem estado
27
IV.2 Camadas
No sistema em camadas, o mesmo divido em camadas, onde cada camada conhece apenas
a interface da camada superior. As camadas intermedirias podem ser utilizadas para melhorar
a escalabilidade do sistema, permitindo o balanceamento de carga de servios, atravs de
mltiplas redes. (FIELDING,2000)
28
IV.3 Cache
A arquitetura cache evita desperdcio de banda, pois evita que dados que j tenham sido
enviados anteriormente ao cliente sejam reenviados. Na primeira vez que uma pgina
solicitada pelo cliente a mesma armazenada num Proxy HTTP.( (FIELDING,2000)
A vantagem de se utilizar cache a eliminao parcial ou total de algumas interaes entre
cliente e servidor, o que melhora a eficincia ( menos trafego de rede) , escalabilidade (
menos processamento) e performance , j que o servidor fica menos carregado.
29
V.1 Conceito
Recursos
URIs
Representaes
Links entre elas
e quatro propriedades:
Endereamento
Falta de Estado
Encadeamento
Interface Uniforme
30
V.2 Recursos
Um recurso algo que pode ser armazenado em um computador e representado por uma
sequncia de bits, por exemplo, um documento, uma imagem, um registro de uma tabela ou o
resultado da execuo de um algoritmo.( RICHARDSON,2007)
Exemplos de recursos disponveis na web:
Informaes sobre REST
Um mapa rodovirio
ltima verso de um determinado software
A relao entre dois conhecidos: Joo e Maria
Um diretrio de recursos sobre Web Services
Nmero de Vendas para o Q2-2012
V.3 URIs
O que torna um recurso um recurso? Ele tem que ter pelo menos uma URI. A URI
representa o nome e o endereo de um recurso. Se uma parte das informaes no tiver uma
URI, no ser um recurso e , portanto no estar na web. .( RICHARDSON,2007)
A URI a tecnologia fundamental da web. Existiam sistemas de hipertexto antes do HTTP,
mas eles no se comunicavam. A URI interconectou todos estes protocolos da INTERNET
em uma web, da mesma forma como o TCP/IP interconectou redes como Usenet, Bitnet e
CompuServe em uma nica INTERNET.
Hoje navegamos na web, fazemos download de arquivos na web( no em sites FTP),
pesquisamos publicaes na web ( no no WAIS) e conversamos na web ( no nos
31
As URI e seus recursos devem possuir uma correspondncia clara. Abaixo esto algumas
URIs ideais para os recursos listados acima:
http://www.exemplo.com/wiki/rest;
http://www.exemplo.com/mapa/rodoviario/nome_do_mapa;
http://www.exemplo.com/software/versao/1.0.3.tar.gz;
http://www.exemplo.com/relacionamento/joao;maria;
http:/www.exemplo.com/search/webservices;
http://www.exemplo.com/vendas/2012/02;
As URIS devem ser intuitivas para o usurio, de modo que os mesmos possam l-las e
interpret-las com facilidade. (UNIFORM, 2011)
32
http://www.exemplo.com/software/versao/ultimaversao.tar.gz
http://www.exemplo.com/software/versao/1.03.tar.gz;
Um recurso pode ter uma ou vrias URIs. Se um recurso tiver diversas URIs , ser mais
fcil para os clientes referirem-se a ele. Em contrapartida alguns clientes podem utilizar uma
URI ou outra perdendo-se assim o controle automtico de qual URI est sendo utilizada.
Toda URI est associada a apenas um recurso. Porm, quando voc recupera uma URI, o
servidor pode enviar-lhe informaes sobre diversos recursos: o solicitado e o relacionado a
outros. Ao realizar uma pesquisa em um site de busca, o servidor disponibiliza alm do
recurso que estamos pesquisando, todas as informaes que esto associadas a ele.
V.6 Endereamento
O recurso enderevel quando um usurio pode acessar os seus dados atravs de uma
determinada URI.
O endereamento o aspecto mais importante de qualquer site ou aplicao web. Seno
fossem pelo endereamento os sites mais conhecidos, aqueles que utilizamos diariamente, no
33
34
Em uma aplicao com estado, o cliente deve seguir uma ordem. Para chegar pgina 2, ele
necessariamente deve passar pela pgina 1.
35
Uma das vantagens da aplicao sem estado que voc capaz de recuperar um diretrio
sobre REST at uma determinada pgina, por exemplo, a pgina 10 do diretrio e voltar
outras vezes na ltima pgina, objeto de sua pesquisa sem ter que passar pelas pginas
anteriores, conforme URI:
http://www.google.com/search?q=rest&start=10
V.8 Representaes
Quando o servidor web envia uma informao de um recurso, esta informao o resultado
de uma srie de bytes em uma linguagem especfica, ou seja, no possvel enviar um recurso
pela web, o que transportado uma representao do recurso. ( RICHARDSON,2007)
Uma representao composta de alguns dados sobre o estado atual de um determinado
recurso. Um recurso apenas um conceito abstrato de algo real, j a representao so os
itens de dados que informam algo sobre o recurso. O nmero de vendas do ltimo semestre de
uma empresa poderia ser representado numericamente ou em um grfico. Ambas as
representaes informam algo sobre o mesmo recurso.
As livrarias online costumam fornecer duas representaes para seus clientes de um mesmo
livro:
36
Uma contendo apenas metadados, como uma imagem e as crticas do livro, usadas
para fazer propaganda do mesmo.
Uma cpia eletrnica dos dados do livro, disponibilizada para download mediante
pagamento.
Se um recurso pode ter uma ou mais representaes, como o servidor pode identificar qual
representao do recurso, o cliente est solicitando?
Uma soluo simples adotada pela ROA seria a utilizao de uma URI distinta para cada
representao de um recurso. Por exemplo, uma notcia publicada no idioma ingls e espanhol
poderia possuir as seguintes URIs:
http://www.exemplo.com/versao/1.04.em
http://www.exemplo.com/versao/1.04.es
A desvantagem dessa prtica que voc exibiria vrias URIs para o mesmo recurso, dando
a impresso que as vrias URIs esto falando de coisas distintas. Para amenizar esse problema
poderia ser criado uma URI ideal, independente da lngua, conforme abaixo:
http://www.exemplo.com/versao/1.04
Esse modo alternativo chamado de negociao de contedo, onde apenas a URI ideal
exibida. Quando um cliente faz uma solicitao para esta URI, fornece cabealhos
de
solicitao HTTP especiais que indicam qual tipo de representao o cliente deseja acessar.
Isso possvel, pois os navegadores web tem uma definio de preferncia de lngua, onde
pode se optar pelo idioma que a representao deve ser exibida.
O mecanismo de pesquisa Google uma boa opo para obter o resultado de uma pesquisa
em praticamente todos os idiomas. Para isso basta apenas alterar a varivel de definio h1na
37
URI (por exemplo, h1=tr para a lngua turca). O mecanismo de pesquisa suporta a negociao
do contedo de um recurso que possui vrias representaes.
V.10 Encadeamento
Quando realizamos uma pesquisa num site de busca, o servidor disponibiliza uma srie de
representaes para o assunto pesquisado. Algumas representaes possuem, alm dos dados,
links com outros recursos. Essas representaes so conhecidas por hipermdia.
Peguemos novamente a URI:
http://www.google.com/search?q=rest
Alm do diretrio de documentos do Google sobre REST, a pgina recupera um conjunto de
links internos com outras pginas do diretrio. A figura abaixo demonstra um encadeamento
resultante da pesquisa.
38
Na figura temos dados e ligaes. Os dados dizem que em algum lugar na web foi
encontrado um diretrio e links internos que fornecem acesso para outros recursos que
informam algo sobre o assunto pesquisado: REST.
Os mtodos do HTTP podem ser classificados quanto a sua segurana e idempotncia Uma
solicitao considerada segura, quando o mtodo utilizado no altera o estado do recurso.
Quando uma mesma solicitao ao ser executada vrias vezes no altera o estado do recurso
a denominamos idempotente.Todo mtodo seguro tambm idempotente. (RICHARDSON,
2007)
Os mtodos GET, HEAD e OPTIONS so seguros e idempotentes, pois no alteram o estado
do recurso.
PUT e Delete no so seguros, mas so idempotentes. O mtodo POST o nico mtodo
que no seguro nem idempotente.
39
VI REST X SOAP
40
VII Concluso
preciso ter cuidado ao apontar uma tecnologia como sendo superior a outra. Geralmente
somos levados pelo modismo e seguimos a tendncia, sem ter um embasamento que justifique
a nossa escolha. O intuito desse trabalho foi demonstrar a funcionalidade das abordagens que
so mais utilizadas nos servios web. claro que dentro do contexto em que estamos
inseridos, uma tecnologia pode levar vantagens em relao a outra, conforme foi demonstrado
no captulo anterior.
Podemos concluir que a melhor escolha estar atrelada ao cenrio em que estamos inseridos.
Talvez a nossa escolha dentro de um contexto no seja a mais adequada em outro.
41
REFERNCIAS BIBLIOGRFICAS