<?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>Se hace camino al andar... &#187; javaone</title>
	<atom:link href="http://blog.jmbeas.es/tag/javaone/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jmbeas.es</link>
	<description>Experiencias de un informático vocacional buscando la calidad y sus efectos colaterales.</description>
	<lastBuildDate>Mon, 16 Jan 2012 07:25:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>

   <image>
    <title>Se hace camino al andar...</title>
    <url>http://0.gravatar.com/avatar/8c024022cec721aaa11dc3b092e2c29c.png?s=48</url>
    <link>http://blog.jmbeas.es</link>
   </image>
		<item>
		<title>TS-3559</title>
		<link>http://blog.jmbeas.es/2007/06/11/ts-3559/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ts-3559</link>
		<comments>http://blog.jmbeas.es/2007/06/11/ts-3559/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 22:26:00 +0000</pubDate>
		<dc:creator>jmbeas</dc:creator>
				<category><![CDATA[Del viejo blog]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javaone]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[soa]]></category>

		<guid isPermaLink="false">http://jmbeas.iexpertos.com/ts-3559/</guid>
		<description><![CDATA[Este fin de semana, mi colega Stephane me ha enseñado la presentación que Adam Bien ha expuesto en la última JavaOne titulada (ahí va el título) :Java 6 Platform, Java DB, Swing, JNLP / Java Web Start, Java Persistence API (JPA) / Enterprise JavaBeans (EJB) 3 : The New &#8220;Operating System&#8221; for Rich Internet Applications. [...]]]></description>
			<content:encoded><![CDATA[<div xmlns='http://www.w3.org/1999/xhtml'>Este fin de semana, mi colega Stephane me ha enseñado la presentación que <a href='http://www.adam-bien.com/'>Adam Bien</a> ha expuesto en la última JavaOne titulada (ahí va el título) :<br /><a href='http://developers.sun.com/learning/javaoneonline/2007/pdf/TS-3559.pdf'><b>Java 6 Platform, Java DB, Swing, JNLP / Java Web Start, Java Persistence API (JPA) / Enterprise JavaBeans (EJB) 3 : The New &#8220;Operating System&#8221; for Rich Internet Applications</b></a>.</p>
<p>En esta presentación, el autor (que es un miembro de la comunidad de <a href='https://java-champions.dev.java.net/'>Java Champions</a>) explica una arquitectura para aplicaciones basada en los siguientes principios:<br /></br>
<ul>
<li>Domain Driven Design (Diseño guiado por el dominio): se refiere a que los objetos que modelan el negocio (<a href='http://www.corej2eepatterns.com/Patterns2ndEd/BusinessObject.htm'>patrón Business Object</a>) representan el estado del negocio e incluye cierto comportamiento (auto-validaciones, manejo de relaciones con otros objetos de dominio dependientes, <a href='http://es.wikipedia.org/wiki/CRUD'>CRUD</a>). No sé si tiene algo que ver con los libros de igual título (&#8220;<a href='http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215'>Domain-Driven Design</a>&#8221; y &#8220;<a href='http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202'>Applying Domain-Driven Design and Patterns</a>&#8220;).</li>
<li>Implementación de los objetos de dominio como entidades <a href='http://java.sun.com/javaee/overview/faq/persistence.jsp'>JPA</a>.</li>
<li>Otra lógica más allá de la que un objeto de dominio sea capaz de resolver por si mismo se debe implementar como una fachada (POJOs o stateless/stateful session beans). Estamos hablando del acceso al EntityManager de JPA, de la transaccionalidad, seguridad, trazas de auditoría&#8230;</li>
<li>No se usan DTOs (<a href='http://www.corej2eepatterns.com/Patterns2ndEd/TransferObject.htm'>patrón Transfer Object</a>) sino que los objetos de dominio viajan desde la capa de negocio hasta la capa de presentación sin el sobrecoste de las transformaciones o las copias de valores.</li>
</ul>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_QhcG1I9XuzE/Rm3NFidOVaI/AAAAAAAAAAs/GIDScW7DgoY/s1600-h/DomainDrivenDesign.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_QhcG1I9XuzE/Rm3NFidOVaI/AAAAAAAAAAs/GIDScW7DgoY/s400/DomainDrivenDesign.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5074937850148836770" /></a><br />La diapositiva 18 es especialmente clarificadora. Sin embargo, <a href='http://www.adam-bien.com/roller/page/abien?entry=update_my_javaone_session_ts'>le he preguntado directamente a Adam Bien</a> cómo encaja esta propuesta en una arquitectura orientada a servicios (SOA). Su respuesta ha sido que los servicios deben implementar lógica no relacionada con los objetos de dominio, mientras que las fachadas (o gateways, implementadas como <a href='http://acronyms.thefreedictionary.com/SFSB'>SFSB</a>) se encargan de lógica independiente de la instancia (como el CRUD) y exponen directamente entidades JPA (los objetos de dominio), que se almacenan localmente.<br /></br><br /></br>Me queda pendiente preguntarle cómo resolveríamos los problemas de concurrencia que provocaría un webservice que modificara registros en la base de datos que, a su vez, correspondieran a objetos de dominio presentes en la sesión de una de esas SFSB.<br /></br></div>
<div class="blogger-post-footer">http://jmbeas.blogspot.com</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.jmbeas.es/2007/06/11/ts-3559/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

