<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Espacio SOA &#187; Estándares</title>
	<atom:link href="http://www.espaciosoa.net/category/estandares/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.espaciosoa.net</link>
	<description>Un Espacio para el Mundo SOA y BPM</description>
	<lastBuildDate>Tue, 26 May 2009 11:29:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Referencia de Arquitectura SOA (Comité OASIS)</title>
		<link>http://www.espaciosoa.net/2008/05/19/referencia-de-arquitectura-soa-comite-oasis/</link>
		<comments>http://www.espaciosoa.net/2008/05/19/referencia-de-arquitectura-soa-comite-oasis/#comments</comments>
		<pubDate>Mon, 19 May 2008 11:52:34 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[Documentos]]></category>
		<category><![CDATA[Estándares]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2008/05/19/referencia-de-arquitectura-soa-comite-oasis/</guid>
		<description><![CDATA[Me llega por correo a trav&#233;s de la lista [webservices-latinos], la publicaci&#243;n del primer borrador p&#250;blico de la Arquitectura de Referencia SOA de Oasis.
Seg&#250;n la descripci&#243;n del propio documento, pretende ser abstracta en naturaleza, describiendo una posible plantilla o modelo sobre la cual construir una arquitectura concreta de SOA desde tres puntos de vista:

El Negocio [...]]]></description>
			<content:encoded><![CDATA[<p>Me llega por correo a trav&eacute;s de la lista <a href="http://es.groups.yahoo.com/group/webservices-latinos" target="_blank">[webservices-latinos]</a>, la publicaci&oacute;n del <a href="http://docs.oasis-open.org/soa-rm/soa-ra/v1.0/soa-ra-pr-01.html" target="_blank">primer borrador p&uacute;blico de la Arquitectura de Referencia SOA de Oasis</a>.</p>
<p>Seg&uacute;n la descripci&oacute;n del propio documento, pretende ser abstracta en naturaleza, describiendo una posible plantilla o modelo sobre la cual construir una arquitectura concreta de SOA desde tres puntos de vista:</p>
<ol>
<li>El Negocio a trav&eacute;s de los Servicios : como conducir el negocio al contexto de SOA.</li>
<li>La Realizaci&oacute;n de los Servicios : los requisitos para construir una arquitectura SOA.</li>
<li>El Propietario de la Arquitectura SOA : la Gobernabilidad y Gesti&oacute;n de los sistemas implicados en la arquitectura.</li>
</ol>
<p>Ser&aacute; interesante su lectura&#8230;</p>
<p>M&aacute;s informaci&oacute;n en la <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm" target="_blank">p&aacute;gina oficial del Comit&eacute; Oasis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2008/05/19/referencia-de-arquitectura-soa-comite-oasis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SOA, SaaS y otros menesteres&#8230;</title>
		<link>http://www.espaciosoa.net/2008/03/03/soa-saas-y-otros-menesteres/</link>
		<comments>http://www.espaciosoa.net/2008/03/03/soa-saas-y-otros-menesteres/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 15:47:17 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[Estándares]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2008/03/03/soa-saas-y-otros-menesteres/</guid>
		<description><![CDATA[Se habla mucho ultimamente en Internet de SaaS (Software as a Service) y las posibles implicaciones que tendr&#225; de aqu&#237; a un tiempo (algunos predicen que el futuro pasa por este tipo de servicios empresariales).
SaaS tiene sus origenes en ASP (Application Service Provider), cuya misi&#243;n era almacenar paquetes de software de manera centralizada que luego [...]]]></description>
			<content:encoded><![CDATA[<p>Se habla mucho ultimamente en Internet de <a href="http://es.wikipedia.org/wiki/SaaS" target="_blank">SaaS</a> (Software as a Service) y las posibles implicaciones que tendr&aacute; de aqu&iacute; a un tiempo (algunos predicen que el futuro pasa por este tipo de servicios empresariales).</p>
<p>SaaS tiene sus origenes en <a href="http://es.wikipedia.org/wiki/Application_Service_Provider" target="_blank">ASP</a> (Application Service Provider), cuya misi&oacute;n era almacenar paquetes de software de manera centralizada que luego se instalaban en diversos clientes (los cuales pagaban por ello a distintos niveles: departamental, unipersonal, etc&#8230;). La idea, era que la tediosa tarea de mantener actualizados los paquetes de software y en perfecto funcionamiento recayera en gente propietaria del ASP y no en los distintos clientes que pudieran utilizarlo.</p>
<p>Quiz&aacute; por evoluci&oacute;n, quiz&aacute; por los inconvenientes de esta soluciones (imagina actualizar software por medio de una red con velocidades de hace 15 a&ntilde;os: podr&iacute;a llegar a ser una tarea insufrible), surgi&oacute; SaaS como una nueva manera suministrar aplicaciones a los distintos clientes.<br />
La principal diferencia de SaaS con respecto a ASP radica en que en el caso de SaaS el acceso es por medio de un navegador de internet (son clientes ligeros), tanto en el uso de los paquetes como la administraci&oacute;n de los mismos. Adem&aacute;s, el concepto de SaaS se basa en los Servicios Web y la soluci&oacute;n de API por medio de WSDL&#8217;s para su reutilizaci&oacute;n.</p>
<p>Despu&eacute;s de esta peque&ntilde;a introducci&oacute;n, est&aacute; claro porque SaaS es realmente un gran amigo de SOA. Aqu&iacute;, entran en uso nuevamente conceptos como <a href="http://webservices.sys-con.com/read/164532.htm" target="_blank">SOA Global</a>: imaginemos cientos y miles de servicios web con distintas funcionalidades que se expongan siempre bajo un mismo formato (WSDL) y se permita su reutilizaci&oacute;n sin importar donde est&eacute;n o quien los gobierne.</p>
<p>Otro concepto bastante usado en los mismos terminos que SaaS y SOA juntos, ser&iacute;a el de <a href="http://en.wikipedia.org/wiki/Composite_application" target="_blank">Composici&oacute;n de Aplicaciones</a> o tambi&eacute;n llamados <a href="http://www.programmableweb.com/matrix" target="_blank">Mashups</a>: ahora se han puesto de moda, servicios como <a target="_blank" href="http://www.dapper.net/">Dapper</a>, <a target="_blank" href="http://openkapow.com/">Kapow</a> o <a target="_blank" href="http://pipes.yahoo.com/pipes/">Yahoo Pipes</a>; que nos permiten juntar en cuesti&oacute;n de minutos y en un mismo contexto fuentes de informaci&oacute;n totalmente diversas y de distintos tipos. Todo ello, nuevamente, gracias al uso de est&aacute;ndares e interfaces de uso com&uacute;n.</p>
<p>Es decir, tenemos SaaS como una forma de proveer servicios web; tenemos mashups como una forma de componerlos en aplicaciones compuestas; la pregunta es: &iquest;y donde cae SOA en este saco?</p>
<p>Yo creo que la respuesta es bastante f&aacute;cil: tradicionalmente se ha pensado en SOA como una forma de crear arquitecturas en un entorno empresarial para organizaciones de diversas indoles. Pero creo, que hay que ir un paso m&aacute;s alla, y es precisamente ah&iacute; donde las grandes empresas pueden ofrecer servicios de cara al exterior como una nueva fuente de ingresos. Los servicios web de la SOA Global, una SOA no empresarial, sino de Internet; donde poco importe la empresa que los suministre sino la posibilidad de tenerlos accesibles a cualquier nivel y cualquier prop&oacute;sito.<br />
Imagina que la omnipotente Telef&oacute;nica expusiera servicios para uso p&uacute;blico que permitieran consultar el saldo de una persona o alguna forma de enviar sms con cargo al usuario. O que alguno de los grandes bancos espa&ntilde;oles expusiera servicios para consulta de cuentas bancarias.<br />
Vale, se que en algunos casos m&aacute;s de uno me dir&iacute;a que eso no son servicios que un banco o una empresa de telecomunicaciones deber&iacute;a dejar usar de cualquier manera, ya que las implicaciones de seguridad que tienen son enormes.<br />
Pero la realidad es que la tecnolog&iacute;a est&aacute; ah&iacute;, y realmente es algo factible y que permitir&iacute;a la creaci&oacute;n de aplicaciones de cualquier tipo y totalmente orientadas al usuario final.</p>
<p>Creo que a medida que SOA se vaya introduciendo m&aacute;s y m&aacute;s en las empresas, se empezar&aacute; a dar soluciones orientadas al publico general (ya no vale solo un megaportal empresarial para los usuarios de la empresa, hay que expandirse m&aacute;s alla, dar la posibilidad a terceros de usar la tecnolog&iacute;a existente para construir nuevas aplicaciones). &iquest;Por qu&eacute; no utilizar todos los medios disponibles a nuestro alcance para ofrecer servicios mucho m&aacute;s abiertos y con muchas m&aacute;s posibilidades?</p>
<p>En los &uacute;ltimos meses, en <a href="http://www.travenjoy.com/">el proyecto personal en que ando metido</a> me he dado cuenta de que las empresas son muy reticentes a dejarte usar sus servicios y sus sistemas. Vaya, encima de que estoy d&aacute;ndoles un nuevo canal de ingresos, ponen pegas. S&iacute;, vale, yo tambi&eacute;n lo hago por el inter&eacute;s, pero, &iquest;no repercute de manera beneficiosa para ambos?. Yo creo firmemente que es as&iacute; y por ello voy a seguir evolucionando mi idea en ese sentido&#8230;</p>
<p><strong>Links interesantes:</p>
<p></strong><a href="http://web2.socialcomputingmagazine.com/is_web_20_the_global_soa.htm" target="_blank">Is Web 2.0 The Global SOA?</a><br />
<a href="http://www.soa4all.org/" target="_blank">Soa4All</a><br />
<a target="_blank" href="http://www.soamag.com/I9/0707-2.asp"> SaaS, Composite Applications, and SOA: Understanding their Differences and Making Them Work Together</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2008/03/03/soa-saas-y-otros-menesteres/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSGi, un Futuro para SOA?</title>
		<link>http://www.espaciosoa.net/2008/02/11/osgi-un-futuro-para-soa/</link>
		<comments>http://www.espaciosoa.net/2008/02/11/osgi-un-futuro-para-soa/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 20:33:23 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[Estándares]]></category>
		<category><![CDATA[SCA]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2008/02/11/osgi-un-futuro-para-soa/</guid>
		<description><![CDATA[En 1999 se creo la Alianza OSGi (Open Services Gateway Initiative) en un intento de crear un modelo de componentes din&#225;micos para sistemas embebidos de red; orientado principalmente a la plataforma JAVA y que permit&#237;a la gesti&#243;n de la carga din&#225;mica, el versionado y los ciclos de vida de servicios en forma de paquetes (o [...]]]></description>
			<content:encoded><![CDATA[<p>En 1999 se creo la <a target="_blank" href="http://www.osgi.org/Main/HomePage">Alianza OSGi</a> (Open Services Gateway Initiative) en un intento de crear un modelo de componentes din&aacute;micos para sistemas embebidos de red; orientado principalmente a la plataforma JAVA y que permit&iacute;a la gesti&oacute;n de la carga din&aacute;mica, el versionado y los ciclos de vida de servicios en forma de paquetes (o componentes).</p>
<p>Con el tiempo, OSGi ha evolucionado m&aacute;s all&aacute; de un simple uso para redes dom&eacute;sticas (como fue concebido inicialmente) a un modelo de contenedor capaz de solucionar muchos de los problemas que existen actualmente en los servidores de aplicaciones (empaquetado, abstracci&oacute;n de los paquetes, carga din&aacute;mica de los mismos, dependencias, gesti&oacute;n del ciclo de vida, versionados, etc&#8230;).</p>
<p>En OSGi, un paquete o componente es poco m&aacute;s que un jar tradicional de Java, con sus interfaces, implementaciones y un fichero manifiesto. Dicho componente se podr&aacute; definir por cierta meta-informaci&oacute;n de su fichero manifiesto que especificar&aacute; los servicios exportados y los permisos necesarios para poder ser reutilizados por otros componentes.<br />
Adem&aacute;s, OSGi nos permitir&aacute; la gesti&oacute;n del ciclo de vida del software (tales como instalaci&oacute;n, parada, redespliegue, arranque o desinstalaci&oacute;n de paquetes) chequeando las dependencias existentes para el paquete tratado y evitando conflictos de ejecuci&oacute;n.<br />
Nos permite tambi&eacute;n la gesti&oacute;n de versiones de los paquetes, permitiendo la coexistencia de distintas versiones seg&uacute;n necesidades y dependencias establecidas.<br />
Por &uacute;ltimo, OSGi nos permite un modelo de Programaci&oacute;n Orientado a Servicios (aqu&iacute; basa su modelo en SOA), ya que (al contrario de EJB o RMI que necesita definir interfaces remotas) los servicios son publicados y registrados en el contenedor autom&aacute;ticamente durante la carga de los mismos.</p>
<p>Actualmente, todos los que usamos el framework de Eclipse 3.0, estamos usando OSGi de manera indirecta (Eclipse lo adopt&oacute; y de hecho fue uno de los mayores propulsores de OSGi en su momento; ahora evolucionado al <a target="_blank" href="http://www.eclipse.org/equinox/">Proyecto Equinox</a>).<br />
Lo importante, es la adopci&oacute;n de este modelo como parte de las estrategias para los productos de diversos fabricantes (<a target="_blank" href="http://cwiki.apache.org/FELIX/index.html">Apache Felix</a>, <a target="_blank" href="http://newton.codecauldron.org/">Newton</a>, <a target="_blank" href="http://www.bea.com/framework.jsp?CNT=msa.jsp&amp;FP=/content/">BEA mSA</a>, etc&#8230;) y principalmente en el lado del servidor (que es donde OSGi puede sacar su mayor potencial a relucir como parte de los servidores de aplicaciones).</p>
<p>Algunos hablan de OSGi como el pr&oacute;ximo middleware universal, las posibilidades de descubrimiento y reutilizaci&oacute;n de servicios y las posibles alianzas entre<a target="_blank" href="http://www.infoq.com/news/spring-osgi"> OSGi y Spring</a> (suma todas las caracter&iacute;sticas enunciadas sobre OSGi a la facilidad de uso de Spring a base de inyecci&oacute;n de dependencias y la programaci&oacute;n orientada a aspectos) o entre <a target="_blank" href="http://www.osoa.org/download/attachments/250/Power_Combination_SCA_Spring_OSGi.pdf?version=3">OSGi y SCA</a> (en este sentido OASIS tiene pendiente la <a target="_blank" href="http://www.theserverside.com/news/thread.tss?thread_id=46739">estandarizaci&oacute;n de SCA</a>).</p>
<p><strong>Links interesantes:</p>
<p></strong> <a href="http://www.osgi.org/Main/HomePage" target="_blank">OSGi Alliance</a><br />
<a href="http://dev2dev.bea.com/pub/a/2007/12/osgi-introduction.html" target="_blank"> An Introduction to OSGi on the Server Side</a><br />
<a href="http://underlap.blogspot.com/2007/02/is-osgi-soa.html" target="_blank">Interesante discusi&oacute;n sobre si OSGi es SOA</a><br />
<a target="_blank" href="http://www.osoa.org/download/attachments/250/Power_Combination_SCA_Spring_OSGi.pdf?version=3">Power Combination: SCA, OSGi and Spring</a><br />
<a href="http://www.oreillynet.com/onjava/blog/2008/02/on_soa_osgi_and_more.html" target="_blank">On SOA, OSGi and More</a><br />
<a href="http://soa.sys-con.com/read/492519.htm" target="_blank">Universal Middleware: What&#8217;s Happening With OSGi and Why You Should Care</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2008/02/11/osgi-un-futuro-para-soa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BPEL4People, o como humanizar procesos</title>
		<link>http://www.espaciosoa.net/2007/08/17/bpel4people-o-como-humanizar-procesos/</link>
		<comments>http://www.espaciosoa.net/2007/08/17/bpel4people-o-como-humanizar-procesos/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 09:36:24 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[Estándares]]></category>
		<category><![CDATA[WS-BPEL]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2007/08/17/bpel4people-o-como-humanizar-procesos/</guid>
		<description><![CDATA[Ahora que la especificaci&#243;n WS-BPEL 2.0 se puede considerar un est&#225;ndar por parte del Comit&#233; OASIS, varios vendedores (BEA, IBM, Oracle, SAP, etc&#8230;) est&#225;n trabajando en 2 especificaciones que extiendan la actual e incluyan actividades humanas. 
Dichas especificaciones son BPEL4People y WS-HumanTask (WS-HT). El primer borrador ya est&#225; publicado; ahora queda que pueda estandarizarse por [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora que la <a href="http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html">especificaci&oacute;n WS-BPEL 2.0</a> se puede considerar un est&aacute;ndar por parte del <a href="http://www.oasis-open.org/">Comit&eacute; OASIS</a>, varios vendedores (BEA, IBM, Oracle, SAP, etc&#8230;) est&aacute;n trabajando en 2 especificaciones que extiendan la actual e incluyan actividades humanas. <br />
Dichas especificaciones son BPEL4People y WS-HumanTask (WS-HT). El <a href="http://www.ibm.com/developerworks/webservices/library/specification/ws-bpel4people/">primer borrador ya est&aacute; publicado</a>; ahora queda que pueda estandarizarse por medio de Oasis.</p>
<p>La especificaci&oacute;n BPEL4People fue creada para modelar a gente dentro de la definici&oacute;n de procesos BPEL. Espec&iacute;ficamente, podr&aacute; visualizarse una actividad denominada &quot;Actividad de Persona&quot;; igual que una est&aacute;ndar de invocaci&oacute;n de servicio web; pero con un contexto adicional asociado.</p>
<p>Por su parte, WS-HumanTask suministra el API y el motor de ejecuci&oacute;n para BPEL4People. Se encargar&aacute; de definir c&oacute;mo debe ser la tarea, la manera de crearla y de dar un conjunto de API&#8217;s para su interacci&oacute;n.</p>
<p>El est&aacute;ndar BPEL no incluye definiciones para incorporar tareas humanas. No obstante, todos los proveedores de herramientas BPM que soportan BPEL; incorporan desarrollos propios que soportan las interacciones humanas (normalmente como &quot;worklists&quot; que permiten reclamar, reasignar o ejecutar tareas por medio de personas). El problema es que dichos desarrollos son propietarios y en ning&uacute;n caso estandarizados; por lo que aparece un problema de portabilidad entre fabricantes; dificilmente salvable sin una estandarizaci&oacute;n como la que </p>
<p>BPEL4People propone un patr&oacute;n de interacci&oacute;n de 5 tareas de proceso distintas:</p>
<div align="center"><img src="http://farm2.static.flickr.com/1256/1146330877_051983fb7c.jpg" alt="" />
</div>
<p>
En el primer patr&oacute;n, la tarea se especifica dentro de la actividad humana. En el segundo, se especifica dentro del Proceso BPEL, por lo que puede ser reutilizada por numerosas actividades dentro de dicho proceso.<br />
En el tercer patr&oacute;n, la tarea es externa al proceso BPEL, por lo que puede ser llamada por varios procesos. Este modelo permite que una tarea pueda ser llamada por varios motores de procesos, incluso de diversos fabricantes (por lo que se da soluci&oacute;n al problema de la portabilidad).<br />
El patr&oacute;n cuatro, es como el tercero, salvo porque la exposici&oacute;n de la tarea se define a trav&eacute;s de un interfaz WSDL (de esta manera, implementaciones tales como la transaccionalidad, requerir&aacute;n de implementaciones estandarizadas como WS-Transaction; mientras que en el anterior patr&oacute;n, dichas caracter&iacute;sticas quedan a merced de la implementaci&oacute;n que haga cada propietario).<br />
Por &uacute;ltimo, el patr&oacute;n quinto, es como el cuarto, salvo porque la tarea es llamada desde una Actividad de Invocaci&oacute;n est&aacute;ndar, en lugar de una actividad humana</p>
<p><strong>Links interesantes:</p>
<p></strong><a href="http://www.ibm.com/developerworks/webservices/library/specification/ws-bpel4people/"> WS-BPEL Extension for People</a><br />
<a href="http://sourceforge.net/projects/bpel4people">Proyecto BPEL4People en SourceForge.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2007/08/17/bpel4people-o-como-humanizar-procesos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>REST, ¿Futuro de SOA?</title>
		<link>http://www.espaciosoa.net/2007/06/13/rest-%c2%bffuturo-de-soa/</link>
		<comments>http://www.espaciosoa.net/2007/06/13/rest-%c2%bffuturo-de-soa/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 19:31:56 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[Estándares]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2007/06/13/rest-%c2%bffuturo-de-soa/</guid>
		<description><![CDATA[REST (Representational State Transfer) puede ser considerado seg&#250;n algunos expertos como algo importante para el futuro de SOA en muchos aspectos.
Vamos a explicar un poco que es REST, como funciona y porqu&#233; podr&#237;a convertirse en algo cotidiano (en un futuro no muy lejano) para los Arquitectos SOA si las previsiones son ciertas.
El t&#233;rmino se origin&#243; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://es.wikipedia.org/wiki/Representational_State_Transfer">REST</a> (Representational State Transfer) puede ser considerado seg&uacute;n algunos expertos como algo importante para el futuro de SOA en muchos aspectos.</p>
<p>Vamos a explicar un poco que es REST, como funciona y porqu&eacute; podr&iacute;a convertirse en algo cotidiano (en un futuro no muy lejano) para los Arquitectos SOA si las previsiones son ciertas.</p>
<p>El t&eacute;rmino se origin&oacute; en el a&ntilde;o 2000, en una <a href="http://roy.gbiv.com/pubs/dissertation/rest_arch_style.htm">tesis doctoral</a> sobre la web escrita por <a href="http://www.ics.uci.edu/~fielding/">Roy Fielding</a>, uno de los principales autores de la especificaci&oacute;n del protocolo <a href="http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol">HTTP</a> y ha pasado a ser ampliamente utilizado por la comunidad de desarrollo.</p>
<p>REST es, seg&uacute;n algunos, la mejor manera de crear interfaces para servicios web que promulguen ante todo el d&eacute;bil acoplamiento (como una de las m&aacute;ximas y prioritarias definiciones de un servicio web).<br />
REST depende directamente del protocolo HTTP (Hypertext Transfer Protocol) en un sentido de petici&oacute;n-respuesta (request-response) utilizando un conjunto<br />
simple y peque&ntilde;o de operaciones bien definidas: POST, GET, PUT y DELETE.<br />
En REST, un recurso es expuesto a trav&eacute;s de una <a href="http://es.wikipedia.org/wiki/Uniform_Resource_Identifier">URI</a> (Uniform Resource Identifier); y la idea es que REST permita cambiar el estado de un recurso a trav&eacute;s de una de las 4 operaciones antes descritas.</p>
<p>Es importante diferenciar REST de <a href="http://es.wikipedia.org/wiki/RPC">RPC</a> (Remote Procedure Call); ya que &eacute;ste &uacute;ltimo lo que hace es invocar un procedimiento en un sistema remoto.</p>
<p>Pongamos un ejemplo para verlo mejor:</p>
<ol>
<li>REST nos permite llamar a un recurso &quot;Libro&quot; que puede tener expuesto cientos de URI&#8217;s. Por ejemplo, http://miweb/libro/ciencia-ficcion/viaje-a-la-luna se refiere a un registro o recurso concreto de Libro dentro de la categor&iacute;a de ciencia ficci&oacute;n.</li>
<li>Para modificar la informaci&oacute;n en dicho registro, REST utiliza POST o PUT para enviar un XML en dicha URI y posteriormente conseguir la informaci&oacute;n a trav&eacute;s de GET.
    </li>
</ol>
<p>Lo primordial en este ejemplo, es darse cuenta de que lo importante es el &quot;nombre&quot;, no el &quot;verbo&quot; (como es el caso de RPC o servicios web tradicionales). Si utilizaramos RPC, lo m&aacute;s parecido al ejemplo de REST, ser&iacute;a llamar a una funci&oacute;n getLibro() al que se la pasar&iacute;a un identificador de dicho libro. El hecho de utilizar REST simplifica mucho la forma de hacerlo.</p>
<p>Los servicios web no est&aacute;n focalizados en recursos, sino en operaciones. Podemos disponer de un servicio web con cientos de operaciones, cada una de las cuales especifica la manera en que se comportar&aacute; ante una petici&oacute;n y como manejar&aacute; el XML entrante para dar una respuesta concreta.</p>
<p>Es importante diferenciar un servicio web con multitud de operaciones (para borrado, modificaci&oacute;n, petici&oacute;n, etc&#8230;) de multiples servicios web para implementar todas las operaciones posibles. Esta ser&iacute;a la diferencia m&aacute;s palpable entre estilo RPC y estilo documento (<a href="http://searchwebservices.techtarget.com/ateQuestionNResponse/0,289625,sid26_cid494324_tax289201,00.html">RPC-style vs. Document-style</a>). <br />
El caso de REST ser&iacute;a m&aacute;s pr&oacute;ximo al estilo documento, ya que &uacute;nicamente nos tenemos que encargar de enviar un XML a una URI definida para un conjunto m&iacute;nimo de 4 operaciones. Aqu&iacute;, la utilizaci&oacute;n de REST es mucho menos acoplada que la utilizaci&oacute;n de RPC, ya que se minimiza el impacto por cambios en la interfaz de datos intercambiados.</p>
<p>REST implica el cambio de estado de un recurso, pero sin definir la operaci&oacute;n (son siempre 4 fijas). Pero lo que haga cada una de esas operaciones depende de la implementaci&oacute;n final para cada recurso que se haga.</p>
<p>No obstante, REST no es la panacea: en ocasiones <a href="http://es.wikipedia.org/wiki/SOAP">SOAP</a> se antoja mejor que REST para dependiendo que implementaci&oacute;n sea necesaria. </p>
<p>SOAP lleva siempre asociado la definici&oacute;n de servicio web. Y como tal, su definici&oacute;n a trav&eacute;s de un <a href="http://es.wikipedia.org/wiki/WSDL">WSDL</a>. <br />
REST por el contrario no ofrece esta posibilidad. REST es mucho m&aacute;s sencillo, es lo m&aacute;s optimo para simplificar una interfaz a utilizar por<br />
consumidores externos (el ejemplo m&aacute;s claro lo tenemos con Google, que expone sus servicios web via REST y da como respuesta un xml con formato de<br />
sindicaci&oacute;n <a href="http://es.wikipedia.org/wiki/RSS">RSS </a>o <a href="http://es.wikipedia.org/wiki/Atom">ATOM</a>) o cachear resultados a nivel de recursos. <br />
Pero si queremos implementar cosas m&aacute;s complejas necesitaremos SOAP: Por ejemplo, REST lleva asociado HTTP como &uacute;nico protocolo de transporte. Si tenemos necesidad de utilizar otro tipo de transporte como JMS, SOAP si es v&aacute;lido, pero no as&iacute; el caso de REST. <br />
Adem&aacute;s, en niveles de seguridad, la pila <a href="http://roadmap.cbdiforum.com/reports/protocols/">WS-*</a> (concretamente con su definici&oacute;n de <a href="http://es.wikipedia.org/wiki/WS-Security">WS-Security</a> a nivel de mensaje) permite un mayor nivel de<br />
securizaci&oacute;n que REST (que se implementa en caso de necesidad a nivel de HTTP como transporte).</p>
<p>REST, SOAP&#8230;. SOAP y REST. No creo que sean incompatibles ni que uno vaya a ser el ganador. Creo que ambos tienen su hueco y dependiendo de la necesidad ser&aacute; m&aacute;s recomendado utilizar uno u otro. Lo que si es claro, es que REST va a dar mucho que hablar de aqu&iacute; a poco tiempo, de hecho se est&aacute; utilizando ya ampliamente (la sindicaci&oacute;n de blogs por RSS o ATOM utilizan REST; Google expone sus servicios web como REST, eBay y Amazon ofrece una interfaz REST para sus desarrolladores, etc&#8230;)</p>
<p><strong>Links interesantes:</p>
<p></strong><a href="http://searchwebservices.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid26_gci1189497,00.html">The benefits and limitations of REST</a><br />
<a href="http://es.wikipedia.org/wiki/Representational_State_Transfer"> REST seg&uacute;n Wikipedia</a><br />
<a href="http://rest.blueoxen.net/cgi-bin/wiki.pl?FrontPage">RestWiki</a><br />
<a href="http://tomayko.com/articles/2004/12/12/rest-to-my-wife"> How I Explained REST to My Wife</a><br />
<a href="http://www.xfront.com/REST-Web-Services.html"> Building Web Services the REST Way</a><br />
<a href="http://doc.opengarden.org/Articles/REST_for_the_Rest_of_Us"> REST for the Rest of Us</a><br />
<a href="http://roy.gbiv.com/pubs/dissertation/rest_arch_style.htm"> &quot;Representational State Transfer (REST)&quot; PhD dissertation by Roy T. Fielding</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2007/06/13/rest-%c2%bffuturo-de-soa/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
