REST vs SOAP al servicio de la web Las La s
últi úl tima mas s
sema se mana nas s
estu es tuvi vimo mos s
invo in volu lucr crad ado os
en un pr pro oye yect cto o
inte in tere resa sant nte e qu que e me hi hizo zo vi vivi virr de ce cerc rca a la ma mate teri rial aliz izac ació ión n de la evolución de la WEB. Es imposible hablar de la WEB moderna sin mencio men cionar nar a los We Web b Se Servi rvice ces, s, y no ent entra rarr en el deb debate ate RE RES S vs S!"#. RES $Representational State rans%er& es una arquitectura sencilla que se e'ecuta sobre sobre (#). En su disertación, disertación, Roy *ieldin+ *ieldin+ describe a RES como un estilo de arquitectura- que eplora de una %orma b/sica la tecnolo+0a eistente y los protocolos de la Web, incluyendo 12L y (#. #or su vez, S!"#, Simple !b'ect "ccess #rotocol es una especi%icación de pr prot otoc ocol olo o pa para ra in inte terc rcam ambi biar ar in in%o %orm rmac ació ión n es estr truc uctu tura rada da en la implementación de Web Services. Sien Si endo do RE RES S un es esti tilo lo de ar arqu quit itec ectu tura ra qu que e de desc scri ribe be el ac acto to de trans%erir un estado por sus representaciones, el si+uiente e'emplo permite ilustrar el proceso3 4uan tiene tienda de ropa y entre otras cosas, en la tienda tiene 5 pantalones, 67 camisas y 8 camisetas. Supon+amos que yo soy su client cli ente e y 4ua 4uan n es est/ t/ uti utiliz lizand ando o la "# "#99 de RE RES S.. Si qu quier iero o sab saber er el estado actual de su tienda, lo único que ten+o que hacer es pedir3 :Estado-; 4uan 4u an me co cont ntes esta tar0 r0a3 a3 5 pa pant ntal alon ones es,, 67 ca cami misa sas, s, 8 ca cami mise seta tass-.. Sencillo, :no; 4uan acaba de trans%erirme el estado de su tienda por med me dio de un una a repr pre ese sen nta taci ció ón3 5 pa pan nta talo lon nes, 67 cami mis sas, 8 camisetas-. Si quisiera utilizar la %orma RES para decirle a 4uan que a
au? quieres decir;- #ues intentamos nuevamente. :@ómo har0amos con la %orma RES; :@u/l era la representación; Era 3 5 pantalones, 67 camisas, camisetas-. 9ntentamos trans%erir la representaciónA o3 C4uan, A 5 pantalones, 67 camisas, D camisetas A por %avor- 4uan3 Fe acuerdo- o3 4uan, A :cu/l es tu estado;-. 4uan3 5 pantalones, 67 camisas, D camisetas-. o3 "hh, de acuerdo- #or el e'emplo, podemos ver que el RES simpli%ica la comunicación y no
le
parece
necesario
discutir
temas
como
a
unas
camisetas de que marca- o remover todos los pantalones- o duplicar la cantidad de camisas-. odo lo que tenemos que discutir es la representación, y utilizar esta representación para conse+uir lo que queremos. ¿Por qué escoger REST o escoger SOAP? RES utiliza (#, entonces es mucho m/s sencillo. Fesarrollar "#9s, crear clientes y la documentación es m/s %/cil de entender. RES permite inúmeros %ormatos de datos, dando por e'emplo al desarrollador la posibilidad de utilizar 4S!G que normalmente es m/s r/pido y como permite la utilización de 4S!G, permite tambi?n un me'or soporte a los clientes del eplorador. S!"# solamente permite 12L, RES tiene me'or escalabilidad y rendimiento. Las lecturas del RES se pueden cachear, las lecturas basadas en S!"# no se pueden. S!"# es interesante a la hora de hablar de se+uridad, pues si RES soporta SSL, S!"# tambi?n lo hace, pero tambi?n soporta WSH Security lo que a
S!"# #roporciona una implementación est/ndar de inte+ridad de datos y privacidad de datos. RES no tiene un sistema de mensa'er0a est/ndar y no puede lidiar con la comunicación de %allos. S!"# proporciona %iabilidad en este sentido, incluso a trav?s de intermediaros S!"#. !bviamente la decisión, como siempre depende del tipo de aplicación que se quiere desarrollar y de la inversión que se pueda hacer sobre la misma. Si lo importante es desarrollar al+o sencillo y pr/ctico, RES puede ser la solución. #ero si la se+uridad es prioritaria, S!"# puede ser útil e importante.