<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Benja Sostaric's Weblog</title>
	<atom:link href="http://benjasostaric.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://benjasostaric.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Fri, 12 Jun 2009 23:37:28 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='benjasostaric.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Benja Sostaric's Weblog</title>
		<link>http://benjasostaric.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://benjasostaric.wordpress.com/osd.xml" title="Benja Sostaric&#039;s Weblog" />
	<atom:link rel='hub' href='http://benjasostaric.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Web Services y Transacciones</title>
		<link>http://benjasostaric.wordpress.com/2009/05/05/web-services-y-transacciones/</link>
		<comments>http://benjasostaric.wordpress.com/2009/05/05/web-services-y-transacciones/#comments</comments>
		<pubDate>Tue, 05 May 2009 16:49:21 +0000</pubDate>
		<dc:creator>benjasostaric</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[jbug]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[Transacciones]]></category>

		<guid isPermaLink="false">http://benjasostaric.wordpress.com/?p=13</guid>
		<description><![CDATA[Para todos aquellos que estamos mas alla del speech marketinero de que la &#8220;integracion de web services&#8221; es algo simple y feliz, quiero plantear la discusión sobre:  Qué es lo que pasa con las trasacciones en este contexto? Si bien muchas veces, adoptar el uso de Web Services es la opción mas viable a la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=benjasostaric.wordpress.com&amp;blog=4968069&amp;post=13&amp;subd=benjasostaric&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para todos aquellos que estamos mas alla del speech marketinero de que la &#8220;integracion de web services&#8221; es algo simple y feliz, quiero plantear la discusión sobre:  Qué es lo que pasa con las trasacciones en este contexto?</p>
<p>Si bien muchas veces, adoptar el uso de Web Services es la opción mas viable a la hora de integrar los tan diversos componentes de negocios. Tenemos que tener noción de una gran falencia en esta tecnología, <strong>las transacciones</strong>.</p>
<p>Parecería ser que muchos acostumbrados al mundo de los EJB, familiarizados con conceptos como: <strong>CMT</strong> (Container Managed Transactions) o <strong>User Transactions</strong>, que olvidan la importancia de las transacciones a la hora de migrar funcionalidad a Web Services.</p>
<p>Ahora bien&#8230;volvamos un poco a las bases:</p>
<h2 style="font-size:1.5em;">Caracteristicas de una Transacción</h2>
<ul>
<li><strong>Atomicidad </strong>(<strong>A</strong>tomicity): Todos los participantes de la transaccion deben &#8220;confimar&#8221; o &#8220;cancelar&#8221;.</li>
<li><strong>Cosistencia</strong> (<strong>C</strong>onsistency): Se obtiene un resultado consistente.</li>
<li><strong>Aislamiento</strong> (<strong>I</strong>solation): No hay percepción de cambios hasta que todos los participantes hayan &#8220;confirmado&#8221; o &#8220;cancelado&#8221;.</li>
<li><strong>Durabilidad</strong> (<strong>D</strong>urability): Los cambios producidos por la transacción deben ser persistidos.</li>
</ul>
<address>Nota: A esta concepto se lo conoce como ACID y su autor es Jim Gray </address>
<address>http://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist)</address>
<p>Viendo la definición nos damos cuenta que las operaciones entre WS distan mucho en su naturaleza de ser transacciones &#8220;per se&#8221;.</p>
<h2>Caso Práctico</h2>
<p>De que estoy hablando? Bueno, supongamos estos casos:</p>
<p>&#8220;<em>Se dispone de un sistema de stock, un online-store y un sistema de pagos-online, los tres implementados con web services. El online-store actua como integrador entre el sistemas de pagos-online y el sistema de stock.<br />
Caso 1: Si se ingresa un pedido, y el online-store realiza una baja de item en el sistema de stock y luego intenta realizar el pago-online el cual falla. Hay una inconsistencia en el sistema de Stock (falla el aislamiento y consistencia).<br />
Caso 2: Si se ingresa un pedido, y el  online-store  realiza el pago pero resulta que no hay stock (falla la consistencia y aislamiento) &#8221; </em></p>
<p><em> </em></p>
<p>Si bien es debatible que es lo que falla en cada una las actividades del ejemplo, la realidad es que no se llega el resultado esperado. Para salvar estos inconvenientes  la solución más común, es implementar lo que se denominan &#8220;<strong>Transacciones de Compensación</strong>&#8220;, lo cual basicamente es desarrollar rutinas para el manejo de errores que busquen deshacer los cambios realizados a partir de nuevas transacciones. Con lo cual no hace falta tener 2 dedos de frente para notar que algo no cierra en este enfoque.</p>
<p>Ejemplo:</p>
<p>&#8220;<em>Caso 1: Se genera una transacción de compensación que vuelva el stock al valor correcto.<br />
Caso 2:  Se genera una transacción de acreditación de dinero para compensar el debito anterior.&#8221;</em></p>
<p><strong>Conclusión:</strong> las transacciones de compensación, son soluciones de negocio a problemas de infraestructura tecnologíca.</p>
<h2>Entonces&#8230;</h2>
<p>El debate que busco plantear es sobre las <strong>WSTx</strong>:</p>
<ul>
<li><strong>WS-Coordination</strong></li>
<li><strong>WS-AtomicTransaction</strong></li>
<li><strong>WS-BusinessActivity</strong></li>
</ul>
<p>Las cuales son un set de especificaciones para anotaciones XML, que permitan el uso de protocolos estandar, abiertos y seguros para transacciones a travez de la Web.</p>
<p>A grandes terminos los escenarios al cual estan enfocados son:</p>
<ol>
<li>Transacciones atomicas individuales que representa bloques logicos para transacciones complejas entre pares.</li>
<li>Interacciones de soluciones Web que resultan actividades de negocio (intercambio de bienes, informacion, servicios, etc)</li>
</ol>
<p>En resumen, el uso de <strong>WSTx</strong> puede llegar a ser la solución al manejo de transacciones en Web Services, asi como tambien ser uno de los tantos estandar que quedan en la nada debido a su complejida o falta de integración entre implementaciones.<br />
La realidad es que su uso y aceptacion en el mercado, lo definiran. Por lo pronto voy a empezar a trabajar en algunos ejemplos para ver sus pros y contras.</p>
<p>Slds.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/benjasostaric.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/benjasostaric.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/benjasostaric.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/benjasostaric.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/benjasostaric.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/benjasostaric.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/benjasostaric.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/benjasostaric.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/benjasostaric.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/benjasostaric.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/benjasostaric.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/benjasostaric.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/benjasostaric.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/benjasostaric.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=benjasostaric.wordpress.com&amp;blog=4968069&amp;post=13&amp;subd=benjasostaric&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://benjasostaric.wordpress.com/2009/05/05/web-services-y-transacciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b50cfe322270fb88f23445e710633d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">benjasostaric</media:title>
		</media:content>
	</item>
		<item>
		<title>Mantenimiento de Mac OS X</title>
		<link>http://benjasostaric.wordpress.com/2009/04/16/mantenimiento-en-mac-os-x/</link>
		<comments>http://benjasostaric.wordpress.com/2009/04/16/mantenimiento-en-mac-os-x/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 13:59:22 +0000</pubDate>
		<dc:creator>benjasostaric</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://benjasostaric.wordpress.com/?p=3</guid>
		<description><![CDATA[Como buena practica sobre cualquier sistema operativo, tiene onda que se apliquen politicas de mantenimiento de vez en cuando.   Para hacerla corta y no andar con teoria, hacer lo siguiente: Abrir Terminal  Macintosh HD -&#62; Applications -&#62; Utilities -&#62; Terminal Correr los scripts de mantenimiento: $ sudo periodic daily weekly monthly   Que es lo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=benjasostaric.wordpress.com&amp;blog=4968069&amp;post=3&amp;subd=benjasostaric&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Como buena practica sobre cualquier sistema operativo, tiene onda que se apliquen politicas de mantenimiento de vez en cuando.  </p>
<p>Para hacerla corta y no andar con teoria, hacer lo siguiente:</p>
<ol>
<li>Abrir <strong>Terminal</strong> <br />
<em>Macintosh HD -&gt; Applications -&gt; Utilities -&gt; Terminal</em></li>
<li>Correr los scripts de mantenimiento:</li>
<pre>$<strong> </strong>sudo periodic daily weekly monthly  </pre>
</ol>
<h2>Que es lo que acabamos de hacer?</h2>
<p>Mac OS X viene con scripts de mantenimiento, cuya funcionalidad esta discriminada por la necesidad de ser ejecutados en un determinado periodo de tiempo. Es decir:</p>
<ul>
<li><strong>daily: </strong>Realiza limpieza de logs. Remueve los archivos log viejos, &#8220;scratch&#8221; y &#8220;junk&#8221;, realiza backs-ups de la NetInfo DB, etc.<br />
 </li>
<li><strong>weekly: </strong>Rebuilds de las bases <a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/locate.1.html" target="_blank">locate</a> y <a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/whatis.1.html" target="_blank">whatis</a>. Rotacion de logs:<br />
ftp.log<br />
lookupd.log<br />
lpr.log<br />
mail.log<br />
netinfo.log<br />
ipfw.log<br />
secure.log</li>
</ul>
<ul>
<li class="list-none"><strong>monthly:  </strong>Reporta por uso de cuentas. Rotacion de logs:<br />
wtmp.install.log<br />
cu.modem.log</li>
</ul>
<p>Si queremos ver cuando se ejecutaron por ultima vez estos logs:</p>
<pre style="padding-left:30px;">$ ls -l /var/log/*out</pre>
<p>Para cambiar los valores por defecto de cada cuanto se corren estas acciones podemos modificar dentro <em>/System/Library/LaunchDaemons </em>los siguientes archivos para cada script:</p>
<ul>
<li><strong>daily</strong> -&gt; com.apple.periodic-daily.plist</li>
<li><strong>weekly</strong> -&gt; com.apple.periodic-weekly.plist</li>
<li><strong>monthly</strong> -&gt; com.apple.periodic-monthly.plist</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/benjasostaric.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/benjasostaric.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/benjasostaric.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/benjasostaric.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/benjasostaric.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/benjasostaric.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/benjasostaric.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/benjasostaric.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/benjasostaric.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/benjasostaric.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/benjasostaric.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/benjasostaric.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/benjasostaric.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/benjasostaric.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=benjasostaric.wordpress.com&amp;blog=4968069&amp;post=3&amp;subd=benjasostaric&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://benjasostaric.wordpress.com/2009/04/16/mantenimiento-en-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b50cfe322270fb88f23445e710633d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">benjasostaric</media:title>
		</media:content>
	</item>
	</channel>
</rss>
