Você está na página 1de 3

REST e SOAP: Usar um dos dois ou

ambos?
Desenvolvedores web tm uma grande quantidade de tecnologias que podem escolher,
de ferramentas para acesso simples a bancos de dados, integrao com servios em
middleware, a softwares do lado do cliente. A quantidade de opes em si j ! um
desafio, e escolher uma abordagem espec"fica para construir partes de um aplicativo
web e#acerba o problema.
$este breve artigo, vamos nos concentrar em uma dessas escolhas% &'A( ou )*&+.
Ambas possuem vantagens e desvantagens e fica na mo do desenvolvedor determinar a
melhor abordagem para cada caso em particular.
A maioria dos desenvolvedores tem e#posto seus servios utili,ando )*&+, que fa, uso
de um padro de -). /-niform )esource .dentifier0, fa,endo uma chamada para um
servio web como em%
http%11www.minhaempresa.com.br1programa1metodo2(ar3metros4##
' )*&+ ! simples de entender e pode ser adotado em praticamente qualquer cliente ou
servidor com suporte a 5++(15++(&. 's desenvolvedores que o utili,am citam, como
principais vantagens a facilidade no desenvolvimento, o aproveitamento da
infraestrutura web e#istente e um esforo de aprendi,ado pequeno.
(or outro lado, o &'A(, av6 das interfaces de servios web, no dei#ar de ser usado
to cedo. 7om o &'A( v 8.9, muitas das deficincias percebidas nessa tecnologia foram
corrigidas e aumentou a facilidade de uso. Al!m disso, a sigla &'A( dei#ou de
representar :&imple 'bject Access (rotocol:. $a especificao 8.9 da ;<7, &'A( !
apenas o nome da especificao.
-tili,ar o &'A( 8.9 tra, uma carga adicional no encontrada ao usar )*&+, mas h
tamb!m vantagens. (rimeiramente o &'A( ! baseado em =>?, de trs formas% o
envelope, que define o conte@do da mensagem e informa como processAlaB um
conjunto de regras de codificao para os tipos de dadosB e o laCout para os
procedimentos de chamadas e respostas. *sse :envelope: ! enviado por meio de /por
e#emplo0 5++(15++(&. * uma )(7 /)emote (rocedure 7all0 ! e#ecutada, e o
envelope retorna com as informaes do documento =>? formatado.
-ma das vantagens do &'A( ! o uso de um m!todo de transporte :gen!rico:. *nquanto
que o )*&+ fa, uso de 5++(15++(&, o &'A( pode usar qualquer meio de transporte
e#istente para enviar sua requisio, desde &>+( at! mesmo D>& /Dava >essaging
&ervice0. $o entanto, uma desvantagem percebida no uso de =>? ! a sua nature,a
proli#a e o tempo necessrio para analisar o resultado apresentado.
A boa not"cia para os desenvolvedores web ! que ambas as tecnologias so muito
viveis no mercado atual. Ambos )*&+ e o &'A( conseguem resolver um grande
n@mero de problemas e desafios na web, e em muitos casos tanto um como o outro
podem ser utili,ados para fa,er o que querem os desenvolvedores.
>as uma histEria no contada ! que ambas as tecnologias podem ser misturadas e
combinadas. ' )*&+ ! fcil de entender e e#tremamente acess"vel por!m faltam
padres, e a tecnologia ! considerada apenas uma abordagem arquitetural. *m
comparao, o &'A( ! um padro da ind@stria, com protocolos bem definidos e um
conjunto de regras bem estabelecidas.
(odeAse afirmar, ento, que casos onde o )*&+ funciona bem so%
Situaes em que h limitao de recursos e de largura de banda: A
estrutura de retorno em qualquer formato defnido pelo
desenvolvedor e qualquer navegador pode ser usado. sso porque a
abordagem !"S# usa o padro de chamadas $"#% &'#% &(S# e
)"*"#". ( !"S# tambm pode usar ob+etos ,-*.ttp!equest /a base
do velho A0A,1 que a maioria dos navegadores modernos suporta.
(peraes totalmente sem2estado: se uma operao precisa ser
continuada% o !"S# no ser a melhor opo. 3o entanto% se forem
necessrias operaes de 4!') stateless /4riar% *er% Atuali5ar e
"6cluir1% o !"S# seria a melhor alternativa.
Situaes que e6igem cache: se a informao pode ser arma5enada
em cache% devido 7 nature5a da operao stateless do !"S#% esse
seria um cenrio adequado para a tecnologia.
*ssas trs situaes abrangem muitas solues. *nto por que ainda precisamos
considerar o uso do &'A(2 >ais uma ve,, o &'A( ! bastante maduro e bem definido e
vem com uma especificao completa. D a abordagem )*&+ ! apenas isso% uma
abordagem. *st totalmente aberta. (or isso ao se encontrar uma das situaes abai#o, o
&'A( pode ser uma Etima soluo%
&rocessamento e chamada ass8ncronos: se o aplicativo precisa de um
n8vel garantido de confabilidade e segurana para a troca de
mensagens% ento o S(A& 9.: oferece padres adicionais para esse
tipo de operao como por e6emplo o ;S!- /;S2!eliable
-essaging1.
4ontratos formais: se ambos os lados /fornecedor e consumidor1 t<m
que concordar com o formato de interc=mbio de dados% ento o S(A&
9.: fornece especifcaes r8gidas para esse tipo de interao.
(peraes stateful: para o caso de o aplicativo precisar de
informao conte6tual e gerenciamento de estado com coordenao
e segurana% o S(A& 9.: possui uma especifcao adicional em sua
estrutura que apoia essa necessidade /segurana% transaes%
coordenao etc.1. 4omparativamente% usar o !"S# e6igiria que os
desenvolvedores constru8ssem uma soluo personali5ada.
7omo se v, cada uma das abordagens tem sua utilidade. Ambas tm problemas nos
quesitos de segurana, camadas de transporte etc.B mas ambas podem reali,ar o trabalho
necessrio e tra,em sua contribuio para o desenvolvimento de aplicaes web.
(ortanto, a melhor abordagem ! a fle#ibilidade, pois no importa qual seja o problema,
no mundo de hoje do desenvolvimento web, contaAse com e#celentes resultados ao fa,er
uso de um desses padres.
Sobre o autor
>iFe )o,log ! o diretor snior de produtos para a *mbarcadero +echnologies,
dedicandoAse a discutir e e#plicar os aspectos t!cnicos e de negEcios de produtos e
servios da empresa. >iFe fe, parte da antiga 7odeGear e passou mais de oito anos
trabalhando para a Horland, inclusive como 7hief +echnical Architect.

Você também pode gostar