<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Chrisrod's Weblog</title>
	<atom:link href="http://chrisrod.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://chrisrod.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Fri, 07 Aug 2009 13:26:04 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='chrisrod.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/eacf9f3157e3d760a05720911ffc1dfe?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Chrisrod's Weblog</title>
		<link>http://chrisrod.wordpress.com</link>
	</image>
			<item>
		<title>A brief overview of EC2 and GigaSpaces</title>
		<link>http://chrisrod.wordpress.com/2009/08/07/a-brief-overview-of-ec2-and-gigaspaces/</link>
		<comments>http://chrisrod.wordpress.com/2009/08/07/a-brief-overview-of-ec2-and-gigaspaces/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 13:21:44 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[GigaSpaces]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2009/08/07/a-brief-overview-of-ec2-and-gigaspaces/</guid>
		<description><![CDATA[
Elastic Compute Cloud

Elastic Compute Cloud (EC2) is an Amazon’s web service that provides resizable compute capacity in a cloud. One of the main characteristics of EC2, and at the same time one of its great advantage, is that it was designed to make web-scale computing easier for developers.

Amazon EC2’s simple web service interface allows to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=106&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><!--[if !mso]&gt;  v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}  &lt;![endif]--><!--[if gte mso 9]&gt;   Normal  0      false  false  false                     MicrosoftInternetExplorer4  &lt;![endif]--><!--[if gte mso 9]&gt;   &lt;![endif]--></p>
<p class="MsoNormal" style="text-align:justify;"><strong><span style="font-size:14pt;">Elastic Compute Cloud</span></strong></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;"><strong>Elastic Compute Cloud (<span class="caps">EC2</span>)</strong> is an Amazon’s web service that provides <strong>resizable compute capacity</strong> in a cloud. One of the main characteristics of EC2, and at the same time one of its great advantage, is that it was designed to make <strong>web-scale computing easier</strong> for developers.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">Amazon <span class="caps">EC2</span>’s simple web service interface allows to obtain and configure capacity with minimal friction. It provides as well a complete control of the computing resources and lets run on an Amazon’s computing environment.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">Between the advantages that one can find using EC2, we could mention the reduction of time required to obtain and boot new server instances to minutes, allowing a quickly scale capacity, both up and down, as the change<span> </span>of computing requirements. Other advantages are the possibility to count with a diversity of Operating Systems, the possibility of run on multiple locations or utilize static IP endpoints.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">To use EC2, it is necessary to sign up to the Amazon’s web page, and with this, get the two keys to use the web service; on of them is the <strong>Access Key ID</strong>, and the other one is the <strong>Secret Access Key</strong>, that can be generated as many times as one desire, depending on the security requirements that one has.<span> </span>With these two keys it is possible to access to all the web service’s facilities, depending on the type of account created.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">To see EC2 in action, first it is needed to create an Amazon Machine Image (AMI) that will contain the application, libraries and the configuration settings. It is also possible to use one of the image templates to achieve the same objective, and one can do this using a firefox extension called “<strong>ElasticFox</strong>”, that can be download clicking on the next link: <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609">http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609</a>, once it is installed, you will see a GUI like the one is showed on the figure 01; once this extension is launched in firefox, it is possible to create the AMI, using the keys obtained on the Amazon web page, as it was explained on the previous paragraph. A really helpful tutorial to create a simple AMI can be found on the next link: <a href="http://www.youtube.com/watch?v=9QKnORsJKt4&amp;annotation_id=annotation_297897&amp;feature=iv">http://www.youtube.com/watch?v=9QKnORsJKt4&amp;annotation_id=annotation_297897&amp;feature=iv</a>, that explains how to create an Amazon account, the installation of the ElasticFox extension, and finally the creation and test of the new AMI. Once the AMI is created, the next step is to upload the web application to the Amazon Simple Storage Service (S3); between the tools used to accomplish this task, there is a firefox extension that can be smoothly installed on it, that is called “<strong>S3 Fox</strong>”, this extension can be downloaded clicking on the next link: <a href="https://addons.mozilla.org/en-US/firefox/addon/3247">https://addons.mozilla.org/en-US/firefox/addon/3247</a>. Finally, it is possible to configure the security and network access, with the <strong>ElasticFox</strong> tool.</p>
<p class="MsoNormal" style="text-align:center;" align="justify"><!--[if !mso]&gt;  v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}  &lt;![endif]--><!--[if gte mso 9]&gt;   Normal  0      false  false  false                     MicrosoftInternetExplorer4  &lt;![endif]--><!--[if gte mso 9]&gt;   &lt;![endif]--> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> <!--[if gte mso 10]&gt;  /* Style Definitions */ table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;}  &lt;![endif]--><strong><span style="font-size:12pt;font-family:&quot;"><!--[if gte vml 1]&gt;                                &lt;![endif]--><!--[if !vml]--></span><span style="font-size:11pt;"><br />
<img style="max-width:800px;" src="http://chrisrod.files.wordpress.com/2009/08/11.jpg" alt="" /></span></strong></p>
<p class="MsoNormal" style="text-align:center;" align="justify"><strong><span style="font-size:11pt;">Figure 01. The ElasticFox extension</span></strong></p>
<p class="MsoNormal" style="text-align:justify;"><strong> </strong></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;"><strong><span style="font-size:14pt;">GigaSpaces XAP<span> </span></span></strong></p>
<p class="MsoNormal" style="text-align:justify;">
<p style="text-align:justify;"><strong>GigaSpaces XAP (eXtreme Application Platform)</strong> is a <strong>scale-out application server</strong>. Among the advantages that one can find working with GigaSpaces, we can mention:</p>
<p style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->High-throughput</p>
<p style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->Low-latency</p>
<p style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]--><strong>Scalability</strong></p>
<p style="text-align:justify;">and these advantages give the possibility to use GigaSpaces to build the next generation class of applications.</p>
<p style="text-align:justify;">It can be said that a usual Web-Application that stores its data within the IMDG (In-Memory Data Grid) would basically have the next machines:</p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->GSM Machine</p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->Load-Balancer Machine</p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->Database and Mirror Machines</p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>-<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->GSC Machines – Running Web Application, IMDG and Services</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:center;" align="center"><strong><span style="font-size:11pt;"><img style="max-width:800px;" src="http://chrisrod.files.wordpress.com/2009/08/2.jpg" alt="" /><br />
</span></strong></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:center;" align="center"><strong><span style="font-size:11pt;">Figura 02. A basic Web Application running on a cloud.</span></strong></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">As can be seen in the last figure, the whole cloud is composed for many machines that can be created very easily editing a XML file and uploading it, with the aid of the <strong>GigaSpaces Cloud Console</strong> that can be found at the GigaSpaces web page (<a href="http://www.gigaspaces.com/mycloud">http://www.gigaspaces.com/mycloud</a>), this console has many tools to create and manage all the clouds that one needs or have already been deployed. Comparing this tool, with the one that creates an Amazon’s AMI using the <strong>ElasticFirefox</strong>, this console is specially oriented to the creation and management of <strong>GigaSpaces </strong>clouds.</p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">About the XML file that has to be edited for the creation of all the machines that one needs in a cloud, a basic template can be checked on the lines below this paragraph.</p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;cloud-config&gt;</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;cloud-name&gt;my-data-grid&lt;/cloud-name&gt;</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;license&gt;</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em><span style="font-size:8pt;">Nov 16, 2009~CloudTestUser@bPS8NOufjXOuPNSYMWPO#PREMIUM^7.0XAPPremium%UNBOUND+UNLIMITED</span></em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;/license&gt;</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;gigaspaces-build-location&gt;</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>gigaspacesversions/gigaspaces-xap-premium-7.0.0-m9-b3496-87.zip</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;/gigaspaces-build-location&gt;</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;ami-id&gt;ami-91db3cf8&lt;/ami-id&gt;</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em><span style="background:yellow none repeat scroll 0 0;">&lt;machines&gt;</span></em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em><span style="background:yellow none repeat scroll 0 0;">&lt;!&#8211; Insert here &#8211;&gt;</span></em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em><span style="background:yellow none repeat scroll 0 0;">&lt;/machines&gt;</span></em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;start-ui&gt;admin-application&lt;/start-ui&gt;</em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em>&lt;/cloud-config&gt; <span> </span></em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><em> </em></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">Between the “<strong>machine</strong>” tags one can create all the machines required for the Web Application; referring to the example of the figure 02, the XML file can be downloaded from the next link: <a href="http://cloud.gigaspaces.com/cloudtools/session-resources/demo/files/petclinic-mysql-example.xml">http://cloud.gigaspaces.com/cloudtools/session-resources/demo/files/petclinic-mysql-example.xml</a> <span> </span></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">To upload this file, and by this way create the required machines, follow the next procedure:</p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>01.<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->Log into the <strong>Cloud Console</strong> using your GigaSpaces and Amazon Web Service (AWS) <strong>keys</strong> on this web page: <a href="http://www.gigaspaces.com/mycloud">http://www.gigaspaces.com/mycloud</a></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><!--[if gte vml 1]&gt;  &lt;![endif]--><!--[if !vml]--><br />
<!--[endif]--></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:center;" align="center"><strong><span style="font-size:11pt;"><img style="max-width:800px;" src="http://chrisrod.files.wordpress.com/2009/08/3.jpg" alt="" /><br />
</span></strong></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:center;" align="center"><strong><span style="font-size:11pt;">Figure 03. Log into the Cloud Console</span></strong></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>02.<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->Upload the XML file that has all the information of the machines to be used in the cloud,<span> </span>filling the “<strong>Deployment Descriptor</strong>” field and clicking in the button “<strong>Deploy</strong>”</p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><!--[if gte vml 1]&gt;  &lt;![endif]--><!--[if !vml]--><br />
<!--[endif]--></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:center;" align="center"><strong><span style="font-size:11pt;"><img style="max-width:800px;" src="http://chrisrod.files.wordpress.com/2009/08/4.jpg" alt="" /><br />
</span></strong></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:center;" align="center"><strong><span style="font-size:11pt;">Figure 04. Deploying the machines with the Cloud Console</span></strong>.</p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">Now to upload the Web Application to the Amazon’s S3, an easy way to do this task is using the “<strong>S3Fox</strong>” extension, following the next procedure:</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>01.<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->Start the <strong>S3Fox</strong> extension signing up with the Amazon’s Access Keys.</p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;">
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><!--[if gte vml 1]&gt;  &lt;![endif]--><!--[if !vml]--><br />
<!--[endif]--></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:center;" align="center"><strong><span style="font-size:11pt;"><img style="max-width:800px;" src="http://chrisrod.files.wordpress.com/2009/08/5.jpg" alt="" /><br />
</span></strong></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:center;" align="center"><strong><span style="font-size:11pt;">Figure 05. Signing up to the S3 through the S3Fox</span></strong></p>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><strong><span style="font-size:11pt;"> </span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>02.<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->Create a test folder at the root level of the S3 account by clicking the button at the right side panel.</p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span>03.<span style="font-family:&quot;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span><!--[endif]-->Upload all the necessary files from the left side of the panel to the right side that, by the way, corresponds to the S3.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">Finally for testing the web application, observe the link next to the “<strong>Load_Balancer</strong>” field in the <strong>Cloud Console</strong> and click on it, the application that you upload on the S3 should be displayed on the web browser.</p>
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&gt;  &lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="text-align:center;" align="center"><strong><span style="font-size:11pt;"><img style="max-width:800px;" src="http://chrisrod.files.wordpress.com/2009/08/6.jpg" alt="" /><br />
</span></strong></p>
<p class="MsoNormal" style="text-align:center;" align="center"><strong><span style="font-size:11pt;">Figure 06. Checking the Web Application deployed in the S3.</span></strong></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;"><strong><span style="font-size:16pt;">Conclusions</span></strong></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">After reviewing the documentation found in the internet about GigaSpaces, I think that is a technology very promising for the future developments of applications that will need to be reliable and at the same time very flexible.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">Talking about the service given by Amazon EC2, I think that the price they offer to have a cloud deployed on its servers is very reasonable, knowing that taking care of a Data Center needs people specialized on its maintenance and management.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=e27b6736-6f74-8e19-b899-ec1fb729b5a7" alt="" /></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=106&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2009/08/07/a-brief-overview-of-ec2-and-gigaspaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/08/11.jpg" medium="image" />

		<media:content url="http://chrisrod.files.wordpress.com/2009/08/2.jpg" medium="image" />

		<media:content url="http://chrisrod.files.wordpress.com/2009/08/3.jpg" medium="image" />

		<media:content url="http://chrisrod.files.wordpress.com/2009/08/4.jpg" medium="image" />

		<media:content url="http://chrisrod.files.wordpress.com/2009/08/5.jpg" medium="image" />

		<media:content url="http://chrisrod.files.wordpress.com/2009/08/6.jpg" medium="image" />

		<media:content url="http://img.zemanta.com/pixy.gif?x-id=e27b6736-6f74-8e19-b899-ec1fb729b5a7" medium="image" />
	</item>
		<item>
		<title>Uso del nodo Process State en jBPM</title>
		<link>http://chrisrod.wordpress.com/2008/10/10/uso-del-nodo-process-state-en-jbpm/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/10/uso-del-nodo-process-state-en-jbpm/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 16:54:51 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[JBPM]]></category>
		<category><![CDATA[JBoss]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/10/uso-del-nodo-process-state-en-jbpm/</guid>
		<description><![CDATA[
Este nodo es especialmente util para ir a un sub-flujo y luego volver al flujo original.

Figura 01.Nodo Process State&#160;
El uso de este nodo se puede apreciar mejor en un flujo de ejemplo:

Figura 02. Flujo principal

Figura 03. Sub-flujo &#8220;Apellido&#8221;

Figura 04. Sub-flujo &#8220;Edad&#8221;
Como se puede apreciar en las anteriores figuras, el flujo principal escala a dos sub-flujos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=44&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img alt="Jbpm-logo" src="http://chrisrod.files.wordpress.com/2009/01/jbpm-2dlogo.png" border="0" /></p>
<p>Este nodo es especialmente util para ir a un sub-flujo y luego volver al flujo original.</p>
<p><img alt="Dibujo-small" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall.jpg" border="0" /></p>
<p><strong><em>Figura 01.Nodo Process State&nbsp;</em></strong></p>
<p>El uso de este nodo se puede apreciar mejor en un flujo de ejemplo:</p>
<p><img alt="Dibujo-small1" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall1.jpg" border="0" /></p>
<p><strong><em>Figura 02. Flujo principal</em></strong></p>
<p><img alt="Dibujo-small2" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall2.jpg" border="0" /></p>
<p><strong><em>Figura 03. Sub-flujo &ldquo;Apellido&rdquo;</em></strong></p>
<p><img alt="Dibujo-small3" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall3.jpg" border="0" /></p>
<p><strong><em>Figura 04. Sub-flujo &ldquo;Edad&rdquo;</em></strong></p>
<p>Como se puede apreciar en las anteriores figuras, el flujo principal escala a dos sub-flujos en paralelo, los cuales pueden tener una estructura totalmente diferente del original, y una vez que ambos flujos terminen se procede a la impresion de las variables seteadas en ambos sub-flujos.</p>
<p><strong>PASO DE VARIABLES ENTRE FLUJOS</strong></p>
<p><strong></strong>&nbsp;Para el paso de variables entre flujos realizar lo siguiente desde el IDE apuntandio al nodo &ldquo;Sub Process&rdquo;:</p>
<p><img alt="Dibujo-small4" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall4.jpg" border="0" /></p>
<p>&nbsp;<strong><em>Figura 05. Paso de variables de un Flujo a un Sub-flujo</em></strong></p>
<p>Donde:</p>
<blockquote>
<p><strong>01. Nombre del Sub-flujo</strong></p>
<p><strong>02. Version del sub-flujo</strong></p>
<p><strong>03. Variables de ida</strong></p>
<p><strong>04. Variables de vuelta</strong></p>
</blockquote>
<p>&nbsp;</p>
<p>Como se puede ver en este pequenio tutorial del nodo &ldquo;Process Sate&rdquo;, no es necesario el uso de ningun codigo java, y los escalamientos y el paso de variables&nbsp;son transparentes para el usuario final.</p>
<p><strong>Christian</strong></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=44&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/10/uso-del-nodo-process-state-en-jbpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/jbpm-2dlogo.png" medium="image">
			<media:title type="html">Jbpm-logo</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall.jpg" medium="image">
			<media:title type="html">Dibujo-small</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall1.jpg" medium="image">
			<media:title type="html">Dibujo-small1</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall2.jpg" medium="image">
			<media:title type="html">Dibujo-small2</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall3.jpg" medium="image">
			<media:title type="html">Dibujo-small3</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall4.jpg" medium="image">
			<media:title type="html">Dibujo-small4</media:title>
		</media:content>
	</item>
		<item>
		<title>Uso del LDAP para el modulo de autenticaciones en SEAM</title>
		<link>http://chrisrod.wordpress.com/2008/10/06/uso-del-ldap-para-el-modulo-de-autenticaciones-en-seam/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/06/uso-del-ldap-para-el-modulo-de-autenticaciones-en-seam/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 19:46:17 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[SEAM]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/06/uso-del-ldap-para-el-modulo-de-autenticaciones-en-seam-2/</guid>
		<description><![CDATA[&#160; 


LDAP (Lightweight Directory Access Protocol), (Protocolo Ligero de Acceso a Directorios) es un protocolo a nivel de aplicacion que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. LDAP también es considerado una base de datos(aunque su sistema de almacenamiento puede ser diferente) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=40&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><b></b>&nbsp;<img alt="Untitled" src="http://chrisrod.files.wordpress.com/2009/01/untitled-small.jpg" border="0" /> </p>
<p><b></b></p>
<p><b></b></p>
<p><b>LDAP</b> (<i>Lightweight Directory Access Protocol</i>), (Protocolo Ligero de Acceso a Directorios) es un protocolo a nivel de aplicacion que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. LDAP también es considerado una base de datos(aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas. </p>
<p>Habitualmente, almacena la información de login (usuario y contrasenia) y es utilizado para autenticarse aunque es posible almacenar otra información (datos de contacto del usuario, ubicación de diversos recursos de la red, permisos, certificados, etc).</p>
<p>En conclusión, LDAP es un protocolo de acceso unificado a un conjunto de información sobre una red.</p>
<p><em><strong>Fuente: Wikipedia</strong></em></p>
<p>Una ves dada esta pequenia introduccion&nbsp;de lo que es LDAP, ahora procedo a explicar como podemos aprovechar un servidor LDAP para el modulo de autenticacion en SEAM&nbsp;<img src="http://noc/blog/christian.roman/wp-content/uploads/2008/08/smile32.gif" /></p>
<p>&nbsp;Primeramente se necesitara realizar unas cuantas modificaciones al codigo de autenticacion &ldquo;Authenticator.java&rdquo; que viene por defecto cuando creamos un proyecto SEAM.</p>
<p><img alt="Dibujo-small5" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall5.jpg" border="0" /></p>
<p><img alt="Dibujo-small13" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall13.jpg" border="0" /></p>
<p><strong><em>Figura 01. Codigo modificado del &ldquo;Authenticator.java&rdquo;</em></strong></p>
<p>&nbsp;</p>
<p>Una ves realizadas dichas &ldquo;modificaciones&rdquo; al codigo de autenticacion, se procede a la utilizacion de la pagina &ldquo;login.xhtml&rdquo; que ya viene por defecto cuando creamos un proyecto en SEAM:</p>
<p><img alt="Dibujo-small5" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall5.jpg" border="0" /></p>
<p><strong><em>Figura 02. Pagina de autenticacion &ldquo;login.xhtml&rdquo;</em></strong></p>
<p>Y listo <img src="http://noc/blog/christian.roman/wp-content/uploads/2008/08/smile32.gif" /></p>
<p>Una ves que hayas deployado tu proyecto y hayas seguido mis indicaciones al pie de la letra, veras lo siguiente cuando la autenticacion sea erronea:</p>
<p><img alt="Dibujo-small31" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall31.jpg" border="0" /></p>
<p><strong><em>Figura 03. Contrasenia Incorrecta</em></strong></p>
<p>Caso contrario podras ver lo siguiente </p>
<p><img alt="Dibujo-small41" src="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall41.jpg" border="0" /></p>
<p><strong><em>Figura 04. Contrasenia Correcta</em></strong></p>
<p>&nbsp;</p>
<p>Espero que les haya servido</p>
<p>&nbsp;</p>
<p><strong>Christian</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="bjtags">Tags:  <a rel="tag" href="http://technorati.com/tag/LDAP">LDAP</a></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=40&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/06/uso-del-ldap-para-el-modulo-de-autenticaciones-en-seam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/untitled-small.jpg" medium="image">
			<media:title type="html">Untitled</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/08/smile32.gif" medium="image" />

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall5.jpg" medium="image">
			<media:title type="html">Dibujo-small5</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall13.jpg" medium="image">
			<media:title type="html">Dibujo-small13</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall5.jpg" medium="image">
			<media:title type="html">Dibujo-small5</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/08/smile32.gif" medium="image" />

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall31.jpg" medium="image">
			<media:title type="html">Dibujo-small31</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/dibujo-2dsmall41.jpg" medium="image">
			<media:title type="html">Dibujo-small41</media:title>
		</media:content>
	</item>
		<item>
		<title>Uso de programas java para la asignacion de usuarios en jBPM</title>
		<link>http://chrisrod.wordpress.com/2008/10/06/uso-de-programas-java-para-la-asignacion-de-usuarios-en-jbpm-2/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/06/uso-de-programas-java-para-la-asignacion-de-usuarios-en-jbpm-2/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 19:45:36 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[JBPM]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/06/uso-de-programas-java-para-la-asignacion-de-usuarios-en-jbpm-2/</guid>
		<description><![CDATA[&#160;

Utilizando la interfaz &#8220;org.jbpm.taskmgmt.def.AssignmentHandler&#8221; es posible asignar un usuario o un grupo de usuarios a una tarea especifica del jBPM.
Lo unico que se tiene que hacer en la opcion de &#8220;Assignment&#8221; de cada tarea, escoger la opcion &#8220;Handler&#8221;, tal como se puede apreciar en la siguiente figura:

Figura 01. Task Assignment
El codigo java que ha de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=38&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>&nbsp;</p>
<p><img alt="Jbpm+users" src="http://noc/blog/christian.roman/wp-content/uploads/2008/08/jbpm-2busers.gif" border="0" /></p>
<p>Utilizando la interfaz &ldquo;<font size="2">org.jbpm.taskmgmt.def.AssignmentHandler</font>&rdquo; es posible asignar un usuario o un grupo de usuarios a una tarea especifica del jBPM.</p>
<p>Lo unico que se tiene que hacer en la opcion de &ldquo;Assignment&rdquo; de cada tarea, escoger la opcion &ldquo;Handler&rdquo;, tal como se puede apreciar en la siguiente figura:</p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/08/dibujo-small2.jpg" border="0" /></p>
<p><strong>Figura 01. Task Assignment</strong></p>
<p>El codigo java que ha de asignar&nbsp;un usuario en funcion de una variable&nbsp;es el siguiente:</p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/08/dibujo-small11.jpg" border="0" /></p>
<p><strong>Figura 02. Codigo java que asigna un solo usuario a una tarea</strong></p>
<p>El codigo java que ha de asignar un grupo de usuarios, es el siguiente:</p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/08/dibujo-small21.jpg" border="0" /></p>
<p><strong>Figura 03. Codigo java que asigna un grupo de usuarios</strong></p>
<p>Como pueden apreciar, el anterior codigo asigna una tarea a un grupo de usuarios en funcion del grupo al&nbsp;que pertenecen, el cual es extraido de una Base de Datos.</p>
<p>De esta forma es posible asignar usuarios de forma dinamica y lo mas importante la actualizacion de los actores a los cuales es asignada una determinada tarea solo necesita ser actualizada desde una Base de Datos <img src="http://noc/blog/christian.roman/wp-content/uploads/2008/08/smile31.gif" />&nbsp;sin variar el codigo.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=38&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/06/uso-de-programas-java-para-la-asignacion-de-usuarios-en-jbpm-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/08/jbpm-2busers.gif" medium="image">
			<media:title type="html">Jbpm+users</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/08/dibujo-small2.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/08/dibujo-small11.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/08/dibujo-small21.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/08/smile31.gif" medium="image" />
	</item>
		<item>
		<title>Instanciacion de WorkFlows del jBPM mediante Web Services</title>
		<link>http://chrisrod.wordpress.com/2008/10/06/instanciacion-de-workflows-del-jbpm-mediante-web-services-2/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/06/instanciacion-de-workflows-del-jbpm-mediante-web-services-2/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 19:44:35 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[JBPM]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/06/instanciacion-de-workflows-del-jbpm-mediante-web-services-2/</guid>
		<description><![CDATA[Como mucho de ustedes sabran, los Servicios Web son un conjunto de protocolos y&#160;estandares que permiten intercambiar datos&#160;entre aplicaciones, es de esta&#160;manera que de forma estandar podemos realizar la interconexion de diferentes equipos sin tener que preocuparnos de su tecnologia o su procedencia.
En pocas palabras, la definicion de &#8220;Web Services&#8221; segun la Wikipedia es la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=36&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Como mucho de ustedes sabran, los Servicios Web son un conjunto de protocolos y&nbsp;estandares que permiten intercambiar datos&nbsp;entre aplicaciones, es de esta&nbsp;manera que de forma estandar podemos realizar la interconexion de diferentes equipos sin tener que preocuparnos de su tecnologia o su procedencia.</p>
<p>En pocas palabras, la definicion de &ldquo;Web Services&rdquo; segun la Wikipedia es la siguiente:</p>
<blockquote>
<p>Un <b>servicio web</b> (en inglés <i>Web service</i>) es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estandares abiertos. Las organizaciones&nbsp;<a title="OASIS (organización)" href="http://es.wikipedia.org/wiki/OASIS_%28organizaci%C3%B3n%29">OASIS</a> y <a title="World Wide Web Consortium" href="http://es.wikipedia.org/wiki/World_Wide_Web_Consortium">W3C</a> son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares.</p>
</blockquote>
<p>&nbsp;</p>
<p>Una ves dado el breve marco teorico, procedere a explicar la solucion de un problema que me tuvo pensando e investigando por mucho tiempo (al rededor de un mes aproximadamente), mediante el cual es posible instanciar flujos del jBPM desde una aplicacion externa simplemente utlizando Web Services.</p>
<p>Los IDEs que utilice para estas tareas fueron: NetBeans 6.1 (mi preferido) y Eclipse (al cual le estoy empezando a hallar el gustito).</p>
<p>Utilice Eclipse para la elaboracion de mi flujo jBPM y utilice NetBeans 6.1 para la elaboracion del EJB Module el cual sera el que alvergara el Web Services que escuchara nuestros requerimientos.</p>
<p>Este pequeño tutorial se enfocara principalmente en la elaboracion del EJB Module con el cual crearemos el Web Service que podra instanciar flujos de una manera externa al jBPM.</p>
<p><strong>Creacion del EJB Module</strong></p>
<p>En el NetBeans crea un nuevo proyecto de la categoria enterprise tal como se aprecia en la figura:</p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small1.jpg" border="0" /></p>
<p><strong><em>Figura 01. Creacion del EJB Module</em></strong></p>
<p>Sigue los mismos pasos descritos en el libro &ldquo;<strong>Building SOA-Based Composite Applications Using NetBeans IDE 6</strong>&rdquo; acerca de la creacion de un&nbsp;&ldquo;EJB Module&rdquo;. Este libro es muy bueno si uno quiere meterse en el mundo de SOA tal como lo comente hace un tiempo atras en este mismo Blog.</p>
<p>Pienso que dos partes son muy importantes para que este Servicio Web funcione correctamente:</p>
<p>01) La configuracion correcta de los archivos xml: <strong>jbpm.cfg.xml</strong> y <strong>hibernate.cfg.xml</strong></p>
<p>02) El codigo que instanciara remotamente el flujo</p>
<p>Empecemos por lo primero, es decir los archivos xml.</p>
<p><strong>Los archivos XML</strong></p>
<p>Tu archivo <strong>jbpm.cfg.xml</strong> debe tener la siguiente estructura:</p>
<blockquote>
<p>&lt;jbpm-configuration&gt;</p>
<p>&nbsp; &lt;jbpm-context&gt;<br />&nbsp;&nbsp;&nbsp; &lt;service name=&#8221;persistence&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;factory&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean class=&#8221;org.jbpm.persistence.db.DbPersistenceServiceFactory&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;field name=&#8221;isTransactionEnabled&#8221;&gt;&lt;false/&gt;&lt;/field&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/factory&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/service&gt;<br />&nbsp;&nbsp;&nbsp; &lt;service name=&#8221;tx&#8221; factory=&#8221;org.jbpm.tx.TxServiceFactory&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;service name=&#8221;message&#8221; factory=&#8221;org.jbpm.msg.db.DbMessageServiceFactory&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;service name=&#8221;scheduler&#8221; factory=&#8221;org.jbpm.scheduler.db.DbSchedulerServiceFactory&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;service name=&#8221;logging&#8221; factory=&#8221;org.jbpm.logging.db.DbLoggingServiceFactory&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;service name=&#8221;authentication&#8221; factory=&#8221;org.jbpm.security.authentication.DefaultAuthenticationServiceFactory&#8221; /&gt;<br />&nbsp; &lt;/jbpm-context&gt;</p>
<p>&lt;/jbpm-configuration&gt;</p>
</blockquote>
<p>&nbsp;y el archivo <strong>hibernate.cfg.xml</strong> la siguiente:</p>
<blockquote>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />&lt;!DOCTYPE hibernate-configuration PUBLIC &#8220;-//Hibernate/Hibernate Configuration DTD 3.0//EN&#8221;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<A href="http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd</A>&#8220;&gt;<br />&lt;hibernate-configuration&gt;<br />&nbsp;&lt;session-factory name=&#8221;Acceso&#8221;&gt;<br />&nbsp; &lt;property name=&#8221;show_sql&#8221;&gt;false&lt;/property&gt;<br />&nbsp; &lt;property name=&#8221;connection.datasource&#8221;&gt;java:/dvdDatasource&lt;/property&gt;<br />&nbsp; &lt;property name=&#8221;transaction.factory_class&#8221;&gt;org.hibernate.transaction.JTATransactionFactory&lt;/property&gt;<br />&nbsp; &lt;property name=&#8221;transaction.manager_lookup_class&#8221;&gt;org.hibernate.transaction.JBossTransactionManagerLookup&lt;/property&gt;<br />&nbsp; &lt;property name=&#8221;cache.provider_class&#8221;&gt;org.hibernate.cache.HashtableCacheProvider&lt;/property&gt;<br />&nbsp; &lt;property name=&#8221;hbm2ddl.auto&#8221;&gt;create-drop&lt;/property&gt;<br />&nbsp; &lt;!&#8211;property name=&#8221;transaction.flush_before_completion&#8221;&gt;true&lt;/property<br />&nbsp;############################################ <br />&nbsp;# mapping files with external dependencies # <br />&nbsp;############################################ <br />&nbsp;following mapping file has a dependendy on&nbsp;&nbsp; <br />&nbsp;&#8217;bsh-{version}.jar&#8217;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;uncomment this if you don&#8217;t have bsh on your <br />&nbsp;classpath.&nbsp; you won&#8217;t be able to use the&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;script element in process definition files&nbsp;&nbsp; &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/action/Script.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; following mapping files have a dependendy on&nbsp; <br />&nbsp;&#8217;jbpm-identity.jar&#8217;, mapping files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;of the pluggable jbpm identity component.&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;Uncomment the following 3 lines if you&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;want to use the jBPM identity mgmgt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;component.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;identity mappings (begin) ===<br />&nbsp;&nbsp;&nbsp; &lt;mapping resource=&#8221;org/jbpm/identity/User.hbm.xml&#8221;/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;mapping resource=&#8221;org/jbpm/identity/Group.hbm.xml&#8221;/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;mapping resource=&#8221;org/jbpm/identity/Membership.hbm.xml&#8221;/&gt;<br />&nbsp;&nbsp;&nbsp; ==== identity mappings (end) <br />&nbsp;following mapping files have a dependendy on&nbsp; <br />&nbsp;the JCR API&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;jcr mappings (begin) ===<br />&nbsp;&nbsp;&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml&#8221;/&gt;<br />&nbsp;&nbsp;&nbsp; ==== jcr mappings (end) <br />&nbsp;###################### <br />&nbsp;# jbpm mapping files # <br />&nbsp;###################### <br />&nbsp;hql queries and type defs &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/db/hibernate.queries.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; graph.action mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/action/MailAction.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; graph.def mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/def/ProcessDefinition.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/def/Node.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/def/Transition.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/def/Event.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/def/Action.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/def/SuperState.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/def/ExceptionHandler.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/instantiation/Delegation.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; graph.node mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/StartState.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/EndState.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/ProcessState.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/Decision.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/Fork.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/Join.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/MailNode.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/State.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/node/TaskNode.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; context.def mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/def/ContextDefinition.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/def/VariableAccess.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; taskmgmt.def mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/def/Swimlane.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/def/Task.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/def/TaskController.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; module.def mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/module/def/ModuleDefinition.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; bytes mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/bytes/ByteArray.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; file.def mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/file/def/FileDefinition.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; scheduler.def mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/scheduler/def/CreateTimerAction.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/scheduler/def/CancelTimerAction.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; graph.exe mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/exe/Comment.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/exe/ProcessInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/exe/Token.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/exe/RuntimeAction.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; module.exe mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/module/exe/ModuleInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; context.exe mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/ContextInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/TokenVariableMap.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/VariableInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/exe/variableinstance/ StringInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; job mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/job/Job.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/job/Timer.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/job/ExecuteNodeJob.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/job/ExecuteActionJob.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; taskmgmt.exe mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/exe/PooledActor.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;!&#8211; logging mapping files &#8211;&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/logging/log/ProcessLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/logging/log/MessageLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/logging/log/CompositeLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/ActionLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/NodeLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/ProcessStateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/SignalLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/TokenCreateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/TokenEndLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/graph/log/TransitionLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/VariableLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/VariableCreateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/VariableDeleteLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/VariableUpdateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/log/TaskLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml&#8221;/&gt;<br />&nbsp; &lt;mapping resource=&#8221;org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml&#8221;/&gt;<br />&nbsp;&lt;/session-factory&gt;<br />&lt;/hibernate-configuration&gt;</p>
</blockquote>
<p>&nbsp;</p>
<p>Ambos archivos debes localizarlos en el directorio &ldquo;Source Packages&rdquo; de tu EJB Module</p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small11.jpg" border="0" /></p>
<p><strong><em>Figura 02. Ubicacion de los archivos xml</em></strong></p>
<p><strong>El Codigo</strong></p>
<p>El codigo que permitira que tu Servicio Web instancie un flujo remotamente es el siguiente:</p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small2.jpg" border="0" /></p>
<p><strong><em>Figura 03. Codigo que instancia flujos remotamente</em></strong></p>
<p>&nbsp;</p>
<p>Para concluir en el anterior codigo utilice el exelente Tutorial &ldquo;<strong>jbpm3.2.2-handsontutorial</strong>&rdquo; el cual te lo puedes descargar de la Wiki de jBoss, el cual es tremendamente recomendable si quieres entender la logica de funcionamiento de jBPM.</p>
<p>Y listo, deploya este EJB Module en tu servidor jBoss, y testea el Servicio Web con cualquier programa que realice esto, el que YO utlizo es: &ldquo;<strong>SOAP UI</strong>&rdquo; el cual tambien te lo puedes descargar de la red <img src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile33.gif" /></p>
<p>El resultado que obtuve fue el siguiente:</p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small3.jpg" border="0" /></p>
<p><strong><em>Figura 04. Web Service deployado (</em></strong><a href="http://127.0.0.1:8080/jbossws/services"><strong><em>http://127.0.0.1:8080/jbossws/services</em></strong></a><strong><em>)</em></strong></p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small4.jpg" border="0" /></p>
<p><strong><em>Figura 05. Resultado del Servicio Web consumido</em></strong></p>
<p>&nbsp;</p>
<p>Espero que les haya servido </p>
<p>&nbsp;</p>
<p><strong>Christian</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="bjtags">Tags:  <a rel="tag" href="http://technorati.com/tag/jbpm">jbpm</a>, <a rel="tag" href="http://technorati.com/tag/soa">soa</a>, <a rel="tag" href="http://technorati.com/tag/instanciar+flujos">instanciar+flujos</a>, <a rel="tag" href="http://technorati.com/tag/jboss">jboss</a></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=36&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/06/instanciacion-de-workflows-del-jbpm-mediante-web-services-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small1.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small11.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small2.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile33.gif" medium="image" />

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small3.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small4.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>
	</item>
		<item>
		<title>Importante TIP para utilizar variables de los beans del SEAM con las clases del jBPM</title>
		<link>http://chrisrod.wordpress.com/2008/10/06/importante-tip-para-utilizar-variables-de-los-beans-del-seam-con-las-clases-del-jbpm-3/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/06/importante-tip-para-utilizar-variables-de-los-beans-del-seam-con-las-clases-del-jbpm-3/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 16:49:10 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[JBPM]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[SEAM]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/06/importante-tip-para-utilizar-variables-de-los-beans-del-seam-con-las-clases-del-jbpm-3/</guid>
		<description><![CDATA[
&#160;
Uno de las grandes posibilidades que nos da SEAM es la posibilidad de integrarlo con el jBPM, es de esta forma que&#160;encotre un camino para utilizar las variables seteadas en un Bean del SEAM dentro de una clase del jBPM.
La forma es la siguiente:
01. Seteamos una variable del SEAM a traves de un bean utilizando [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=34&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img alt="Jbpm_logo9" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/jbpm-logo9.gif" border="0" /></p>
<p>&nbsp;</p>
<p>Uno de las grandes posibilidades que nos da SEAM es la posibilidad de integrarlo con el jBPM, es de esta forma que&nbsp;encotre un camino para utilizar las variables seteadas en un Bean del SEAM dentro de una clase del jBPM.</p>
<p>La forma es la siguiente:</p>
<p><strong>01.</strong> Seteamos una variable del SEAM a traves de un bean utilizando la siguiente notacion:</p>
<p><font color="#646464" size="2"></p>
<p align="left">@Out</font><font size="2">(value=</font><font color="#2a00ff" size="2"><font color="#000000">&#8220;</FONT>variableX&#8221;</font><font size="2">,scope=ScopeType.</font><i><font color="#0000c0" size="2">BUSINESS_PROCESS</i></font><font size="2">)</p>
<p></font><b><font color="#7f0055" size="2">private</b></font><font size="2"> </font><b><font color="#7f0055" size="2">boolean</b></font><font size="2"> valorDeVariableX</font><font size="2">;</font></p>
<p><font size="2">De esta forma &ldquo;variableX&rdquo; a de ser el nombre de la variable a ser almacenada en la base de datos del jBPM (Especificamente hablando, esta variable es almacenada en la tabla &ldquo;<strong>jbpm_variableinstance</strong>&rdquo;) y &ldquo;valorDeVariableX&rdquo; ha de ser el valor de esa variable.</font></p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small.jpg" border="0" /></p>
<p><strong><em>Figura 01. Tabla de almacenamiento de variables del jBPM</em></strong></p>
<p><strong><em></em></strong>&nbsp;</p>
<p><strong>02.&nbsp; </strong>Obtener &ldquo;variableX&rdquo; utilizando clases del jBPM. </p>
<p>Estas clases pueden ser &ldquo;<font size="2">DecisionHandler (que en realidad es una interfaz utilizada en el nodo de toma de decisiones)</font>&rdquo; o la clase &ldquo;<font size="2">ActionHandler&rdquo; (que tambien es otra interfaz utlizada para ejecutar una accion en cualquier nodo del jBBPM)</font></p>
<p>La forma de obtener esta &ldquo;variableX&rdquo; sera la siguiente:</p>
<p><b><font color="#7f0055" size="2">boolean</b></font><font size="2"> decide=(Boolean)Contexts.<i>getBusinessProcessContext</i>().get(</font><font color="#0000c0" size="2">&#8220;<FONT color="#2a00ff">variableX</FONT><FONT color="#0000c0">&#8220;</font></font><font size="2"><font color="#0000c0">);</font></font></p>
<p><font size="2"></font>&nbsp;</p>
<p><font size="2">Como pueden apreciar esta no es una forma muy elegante de darle uso al SEAM, pero puesto que soy un Ingeniero Electronico al que principalmente le importa que las cosas funcionen, para mi es una solucion que me quita un problema de la cabeza <img src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile32.gif" />.</font></p>
<p><strong><font size="2">Espero que les sirva </font></strong></p>
<p><strong></strong>&nbsp;</p>
<p><strong>Christian <font size="2"></p>
<p></font></strong></p>
<p>&nbsp;</p>
<div class="bjtags">Tags:  <a rel="tag" href="http://technorati.com/tag/jbpm">jbpm</a>, <a rel="tag" href="http://technorati.com/tag/seam">seam</a>, <a rel="tag" href="http://technorati.com/tag/flujos">flujos</a>, <a rel="tag" href="http://technorati.com/tag/variableinstance">variableinstance</a></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=34&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/06/importante-tip-para-utilizar-variables-de-los-beans-del-seam-con-las-clases-del-jbpm-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/jbpm-logo9.gif" medium="image">
			<media:title type="html">Jbpm_logo9</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile32.gif" medium="image" />
	</item>
		<item>
		<title>Importante TIP para utilizar variables de los beans del SEAM con las clases del jBPM</title>
		<link>http://chrisrod.wordpress.com/2008/10/06/importante-tip-para-utilizar-variables-de-los-beans-del-seam-con-las-clases-del-jbpm-2/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/06/importante-tip-para-utilizar-variables-de-los-beans-del-seam-con-las-clases-del-jbpm-2/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 16:46:34 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[JBPM]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[SEAM]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/06/importante-tip-para-utilizar-variables-de-los-beans-del-seam-con-las-clases-del-jbpm-2/</guid>
		<description><![CDATA[
&#160;
Uno de las grandes posibilidades que nos da SEAM es la posibilidad de integrarlo con el jBPM, es de esta forma que&#160;encotre un camino para utilizar las variables seteadas en un Bean del SEAM dentro de una clase del jBPM.
La forma es la siguiente:
01. Seteamos una variable del SEAM a traves de un bean utilizando [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=32&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img alt="Jbpm_logo9" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/jbpm-logo9.gif" border="0" /></p>
<p>&nbsp;</p>
<p>Uno de las grandes posibilidades que nos da SEAM es la posibilidad de integrarlo con el jBPM, es de esta forma que&nbsp;encotre un camino para utilizar las variables seteadas en un Bean del SEAM dentro de una clase del jBPM.</p>
<p>La forma es la siguiente:</p>
<p><strong>01.</strong> Seteamos una variable del SEAM a traves de un bean utilizando la siguiente notacion:</p>
<p><font color="#646464" size="2"></p>
<p align="left">@Out</font><font size="2">(value=</font><font color="#2a00ff" size="2"><font color="#000000">&#8220;</FONT>variableX&#8221;</font><font size="2">,scope=ScopeType.</font><i><font color="#0000c0" size="2">BUSINESS_PROCESS</i></font><font size="2">)</p>
<p></font><b><font color="#7f0055" size="2">private</b></font><font size="2"> </font><b><font color="#7f0055" size="2">boolean</b></font><font size="2"> valorDeVariableX</font><font size="2">;</font></p>
<p><font size="2">De esta forma &ldquo;variableX&rdquo; a de ser el nombre de la variable a ser almacenada en la base de datos del jBPM (Especificamente hablando, esta variable es almacenada en la tabla &ldquo;<strong>jbpm_variableinstance</strong>&rdquo;) y &ldquo;valorDeVariableX&rdquo; ha de ser el valor de esa variable.</font></p>
<p><img alt="Dibujo" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small.jpg" border="0" /></p>
<p><strong><em>Figura 01. Tabla de almacenamiento de variables del jBPM</em></strong></p>
<p><strong><em></em></strong>&nbsp;</p>
<p><strong>02.&nbsp; </strong>Obtener &ldquo;variableX&rdquo; utilizando clases del jBPM. </p>
<p>Estas clases pueden ser &ldquo;<font size="2">DecisionHandler (que en realidad es una interfaz utilizada en el nodo de toma de decisiones)</font>&rdquo; o la clase &ldquo;<font size="2">ActionHandler&rdquo; (que tambien es otra interfaz utlizada para ejecutar una accion en cualquier nodo del jBBPM)</font></p>
<p>La forma de obtener esta &ldquo;variableX&rdquo; sera la siguiente:</p>
<p><b><font color="#7f0055" size="2">boolean</b></font><font size="2"> decide=(Boolean)Contexts.<i>getBusinessProcessContext</i>().get(</font><font color="#0000c0" size="2">&#8220;<FONT color="#2a00ff">variableX</FONT><FONT color="#0000c0">&#8220;</font></font><font size="2"><font color="#0000c0">);</font></font></p>
<p><font size="2"></font>&nbsp;</p>
<p><font size="2">Como pueden apreciar esta no es una forma muy elegante de darle uso al SEAM, pero puesto que soy un Ingeniero Electronico al que principalmente le importa que las cosas funcionen, para mi es una solucion que me quita un problema de la cabeza <img src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile32.gif" />.</font></p>
<p><strong><font size="2">Espero que les sirva </font></strong></p>
<p><strong></strong>&nbsp;</p>
<p><strong>Christian <font size="2"></p>
<p></font></strong></p>
<p>&nbsp;</p>
<div class="bjtags">Tags:  <a rel="tag" href="http://technorati.com/tag/jbpm">jbpm</a>, <a rel="tag" href="http://technorati.com/tag/seam">seam</a>, <a rel="tag" href="http://technorati.com/tag/flujos">flujos</a>, <a rel="tag" href="http://technorati.com/tag/variableinstance">variableinstance</a></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=32&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/06/importante-tip-para-utilizar-variables-de-los-beans-del-seam-con-las-clases-del-jbpm-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/jbpm-logo9.gif" medium="image">
			<media:title type="html">Jbpm_logo9</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/dibujo-small.jpg" medium="image">
			<media:title type="html">Dibujo</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile32.gif" medium="image" />
	</item>
		<item>
		<title>Sugerencia SEAM</title>
		<link>http://chrisrod.wordpress.com/2008/10/06/sugerencia-seam-2/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/06/sugerencia-seam-2/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 16:45:41 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[JBPM]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[SEAM]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/06/sugerencia-seam-2/</guid>
		<description><![CDATA[
&#160;
Cuando utilicen un Bean para iniciar una tarea del JBPM, es mejor que utilicen la anotacion :




@BeginTask




De esta forma las tareas ya iniciadas (con @BeginTask o @StartTask), pueden ser continuadas 
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=30&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img alt="Seam_logo_blue" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/seam-logo-blue.png" border="0" /></p>
<p>&nbsp;</p>
<p>Cuando utilicen un Bean para iniciar una tarea del JBPM, es mejor que utilicen la anotacion :</p>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p>@BeginTask</p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<p>De esta forma las tareas ya iniciadas (con @BeginTask o @StartTask), pueden ser continuadas <img src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile31.gif" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=30&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/06/sugerencia-seam-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/seam-logo-blue.png" medium="image">
			<media:title type="html">Seam_logo_blue</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile31.gif" medium="image" />
	</item>
		<item>
		<title>jBPM + SEAM en 07 pasos (Un simple tutorial para ver la integracion del JBpm en SEAM)</title>
		<link>http://chrisrod.wordpress.com/2008/10/06/jbpm-seam-en-07-pasos-un-simple-tutorial-para-ver-la-integracion-del-jbpm-en-seam/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/06/jbpm-seam-en-07-pasos-un-simple-tutorial-para-ver-la-integracion-del-jbpm-en-seam/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 16:44:51 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[JBPM]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[SEAM]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/06/jbpm-seam-en-07-pasos-un-simple-tutorial-para-ver-la-integracion-del-jbpm-en-seam-2/</guid>
		<description><![CDATA[Como mucho de ustedes saben, SEAM es un framework que integra Java EE standards para que trabajen de una forma integrada y armoniosa. Dentro del nucleo de SEAM se encuentran el Enterprise JavaBeans 3 (EJB3), el Java Server Faces (JSF) y una de las mas importantes integraciones (la cual es la razon de este pequeño [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=28&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Como mucho de ustedes saben, SEAM es un framework que integra Java EE standards para que trabajen de una forma integrada y armoniosa. Dentro del nucleo de SEAM se encuentran el Enterprise JavaBeans 3 (EJB3), el Java Server Faces (JSF) y una de las mas importantes integraciones (la cual es la razon de este pequeño articulo) es la integracion del JBOSS jBPM. Empezando este pequeño tutorial, primeramente se pasa a explicar la instalación del Eclipse (Un IDE que solo lo utilizo para mis desarrollos relacionados al jBPM, pues no me agrada mucho) con los plugins necesarios para el desarrollo en SEAM <strong>01. Instalacion del IDE</strong> &ndash; Primero es necesario descargar el IDE (eclipse-jee-europa-winter-win32.zip) y el paquete JBossTools-2.1.1.GA-ALL-win32.zip &ndash; Descomprime el Eclipse y copia el contenido del JBossTools en el IDE descompreso, es decir: </p>
<p><img alt="Eclipse-small" src="http://chrisrod.files.wordpress.com/2009/01/eclipse-2dsmall1.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 01. Copiado del JBoss-Tools al Eclipse</em></strong> </p>
<p>&ndash; Finalmente desde el command pad teclea en la carpeta donde descomprimiste el IDE: &gt;eclipese -clean&nbsp;&nbsp; &ndash; Listo, ya tienes el IDE funcionando <img alt="" src="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile3.gif" /> <strong>02. Desarrollando el proyecto SEAM</strong> </p>
<p>&ndash; Primero crea un nuevo proyecto SEAM&nbsp; </p>
<p><strong><em></em></strong></p>
<p><strong><em><img alt="Newseam-small" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall.jpg" border="0" /></em></strong></p>
<p><strong><em>Figura 02. Desarrollo de un proyecto SEAM</em></strong> </p>
<p>&ndash; Setea el &ldquo;Target Runtime&rdquo; y el &ldquo;Target Server&rdquo; en funcion del lugar en el que descomprimiste tu JBoss AS y en configuraciones apunta a SEAM 2.0 </p>
<p>&nbsp;<img alt="Newseam-small1" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall1.jpg" border="0" /></p>
<p><strong><em>Figura 03. Seteo del JBoss AS</em></strong> </p>
<p>&ndash; Haz click en &ldquo;Next&rdquo; hasta llegar a la ventana de &ldquo;Seam Facet&rdquo; en donde etableces el tipo de DB con la cual a de funcionar tu proyecto. Como solo estamos probando como funciona SEAM dejalo con la DB HSQL e instala su driver (que te lo tienes que descargar) &ndash; Tambien es necesario que descargues &ldquo;jboss-seam-2.0.2.SP1&rdquo;, lo descomprimas y establece su ubicacion&nbsp; en &ldquo;Seam Runtime&rdquo; como se parecia en la figura. </p>
<p>&nbsp;<img alt="Newseam-small2" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall2.jpg" border="0" /></p>
<p><strong><em>Figura 04. Seteo del jboss-seam y la Base de Datos</em></strong> </p>
<p>&ndash;&nbsp;Ahora ya tienes el proyecto listo para ser utilizado</p>
<p>&nbsp;<img alt="Newseam-small3" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall3.jpg" border="0" /> </p>
<p><strong><em>Figura 05. Estructura del nuevo proyecto</em></strong> <strong>03. Creacion del flujo jBPM</strong> </p>
<p>&ndash; En la carpeta &ldquo;resources&rdquo; crea un jBPM &ldquo;Process Definition&rdquo; </p>
<p>&nbsp;<img alt="Newseam-small4" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall4.jpg" border="0" /></p>
<p><strong><em>Figura 06. Creacion de un nuevo flujo jbpm</em></strong> </p>
<p>&nbsp;</p>
<p><img alt="Newseam-small5" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall5.jpg" border="0" /></p>
<p>&nbsp;&nbsp; <strong><em>Figura 07. Flujo jbpm</em></strong></p>
<p>&ndash; Crea tu flujo<strong><em></em></strong></p>
<p>&nbsp;<img alt="Newseam-small6" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall6.jpg" border="0" /></p>
<p>&nbsp;<strong><em>Figura 08. Ubicacion del flujo jbpm</em></strong> </p>
<p>Como pueden apreciar, el mio se llama &ldquo;Tareas&rdquo; &ndash; Copia y luego pega &ldquo;processdefinition.xml&rdquo; a la carpeta &ldquo;src/model&rdquo; </p>
<p>&nbsp;<img alt="Newseam-small7" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall7.jpg" border="0" /></p>
<p><strong><em>Figura 09. Traslado del archivo &ldquo;processdefinition.xml&rdquo;</em></strong> &nbsp;</p>
<p>&nbsp;</p>
<p><strong>04. Configuracion del archivo &ldquo;components.xml&rdquo;</strong> </p>
<p>&ndash; Ubicacion&nbsp; </p>
<p><img alt="Newseam-small8" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall8.jpg" border="0" /></p>
<p><strong><em>Figura 10. Ubicacion del archivo &ldquo;components.xml&rdquo;</em></strong></p>
<p>&nbsp;&ndash; Edicion: Descomenta esta seccion del codigo</p>
<p>&nbsp;<img alt="Newseam-small9" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall9.jpg" border="0" /> </p>
<p><strong><em>Figura 11. Edicion del archivo &ldquo;components.xml&rdquo;</em></strong> </p>
<p>&ndash; Adiciona el nombre del archivo jpdl de tu flujo, en este caso &ldquo;processdefinition.xml&rdquo;&nbsp;</p>
<p><img alt="Newseam-small10" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall10.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 12. Agregacion de &ldquo;processdefinition.xml&rdquo; en &ldquo;components.xml&rdquo;</em></strong> <strong>05. Creacion de los archivos &ldquo;hibernate.cfg.xml &ldquo; y &ldquo;jbpm.cfg.xml&rdquo;</strong> </p>
<p>&ndash; La forma mas simple es copiar y pegar ambos archivos de uno de los ejemplos que vienen en &ldquo;jboss-seam-2.0.2.SP1&rdquo;. El mas completo es el &ldquo;dvdStore&rdquo;. &ndash; Una vez ubicados ambos archivos, procede a editar el &ldquo;hibernate.cfg.xml&rdquo; de la siguiente forma: Primero escribe el nombre de tu proyecto&nbsp;</p>
<p>&nbsp;<img alt="Newseam-small11" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall11.jpg" border="0" /></p>
<p><strong><em>Figura 13. Edicion del archivo &ldquo;hibernate.cfg.xml&rdquo;</em></strong> </p>
<p>Escribe el valor del Datasource en funcion del nombre de tu proyecto, asi si tu proyecto se llama Test, el valor de tu DS sera: java:/TestDatasource&nbsp;</p>
<p><img alt="Newseam-small12" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall12.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 14. Edicion del &ldquo;connection.datasource&rdquo;</em></strong></p>
<p>&nbsp;&ndash; El archivo &ldquo;jbpm.cfg.xml&rdquo; dejalo sin modificiaciones. Deberia presentar la siguiente extructura:&nbsp;</p>
<p><img alt="Newseam-small13" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall13.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 15. El archivo &ldquo;jbpm.cfg.xml&rdquo;</em></strong> <strong>06. Desarrollo de&nbsp;Beans&nbsp; y paginas XHTML</strong> </p>
<p>&ndash; Login: El codigo del login es:</p>
<p>&nbsp; <img alt="Newseam-small14" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall14.jpg" border="0" /></p>
<p><strong><em>Figura 16. Codigo del bean&nbsp;Login.class</em></strong> </p>
<p>Como se puede apreciar es muy simple y la unica funcion que&nbsp;tiene&nbsp;es setear el actorId en&nbsp;jBPM mediante la clase Actor del SEAM. Una vez invocada la accion &ldquo;setLog()&rdquo; la pagina que sera desplegada&nbsp;ha de ser: &ldquo;TaskPage.xml&rdquo;&nbsp; </p>
<p><img alt="Newseam-small15" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall15.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 17.&nbsp;Vista de login.xhtml</em></strong> &nbsp; </p>
<p>&ndash; TaskPage: </p>
<p>Esta pagina tiene la funcion de desplegar todas las tareas del actor que se haya logeado en la pagina &ldquo;login&rdquo;&nbsp;</p>
<p><img alt="Newseam-small16" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall16.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 18. Vista de&nbsp;TaskPage.xhtml&nbsp;</em></strong></p>
<p>El bean correspondiente a esta pagina es:&nbsp;</p>
<p><img alt="Newseam-small17" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall17.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 19. Codigo del bean TaskRouter.class</em></strong> </p>
<p>Este codigo es muy simple tambien, y las acciones utilizadas iniciaran cada uno de los nodos de tu flujo.&nbsp;</p>
<p><img alt="Newseam-small18" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall18.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 20. Vista de la accion &ldquo;Aceptar Importancia&rdquo;</em></strong> </p>
<p>&ndash; Inicio del flujo </p>
<p>&nbsp;<img alt="Newseam-small22" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall22.jpg" border="0" /></p>
<p><strong><em>Figura 21. Vista de la accion &ldquo;Esperar respuesta&rdquo; de &ldquo;inicio.xhtml&rdquo;</em></strong>&nbsp;&nbsp;&nbsp;</p>
<p><img alt="Newseam-small23" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall23.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 22. Codigo del bean Inicio.class</em></strong> </p>
<p>El inicio del flujo es invocado cuando el metodo create() es instanciado. Como se puede apreciar esto es posible gracias a la utilizacion de la anotacion @CreateProcess cuyo argumento es el nombre del flujo anteriormente desarrollado. &ndash; ConfirmDate y ConfirmTask Las dos paginas y codigos son similares asi que solo explicare uno de ellos. &ndash; ConfrimDate&nbsp; </p>
<p><strong><em>Figura 23. Vista de la accion &ldquo;Confirmar Fecha&rdquo; en &ldquo;confirmDate.xhtml&rdquo;</em></strong>&nbsp;</p>
<p><img alt="Newseam-small20" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall20.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 24. Codigo del bean ConfirmDate.class</em></strong> </p>
<p>Como se puede apreciar en las anteriores figuras, aca no se presenta nada novedoso, con la exepcion de las anotaciones de biyeccion @In y @Out, que cumplen la funcion de introducir variables en el jBPM o extraerlas del mismo. La unica accion que utilizamos aca es la finalizacion del nodo &ldquo;Fecha&rdquo; mediante el metodo &ldquo;endDate()&rdquo; Como se habran dado cuenta, siempre que iniciamos una tarea en un nodo utilizamos la anotacion @StartTak y cuando la queremos finalizar utilizamos @EndTask, esto es muy importante, pues si falta alguna de ellas el flujo no funciona. &ndash; Resultado Finalmente tenemos las pagina que es desplegado cuando estamos en el ultimo nodo de nuestro flujo jBPM, la cual simplemente desplegara toda la informacion apuntada en los anteriores nodos&nbsp; </p>
<p><strong><em>Figura 25. Vista de la accion &ldquo;Aceptar!&rdquo; en &ldquo;resultado.xhtml&rdquo;</em></strong>&nbsp;&nbsp;</p>
<p>El bean asociado a esta pagina es Resultado.class </p>
<p><img alt="Newseam-small25" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall25.jpg" border="0" /></p>
<p>&nbsp;<strong><em>Figura 26. Codigo del bean Resultado.class</em></strong> </p>
<p>Como se puede apreciar, este codigo lo unico que hace es culminar la terea y finalizar el nodo. <strong>07. Probar el proyecto</strong> Una vez concluido todas las paginas, configuraciones y beans, inicia el servidor JBoss desde el Eclipse y notaras que tu proyecto ya se encuentra deployado en el mismo&nbsp;</p>
<p><img alt="Newseam-small26" src="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall26.jpg" border="0" />&nbsp;</p>
<p><strong><em>Figura 27. El proyecto SEAM en el servidor JBoss</em></strong> </p>
<p>Despues de haber iniciado el servidor, con un browser entra a la siguiente direccion: <a href="http://127.0.0.1:8080/Test01">http://127.0.0.1:8080/Test01</a> y listo, se tiene que desplegar la pagina &ldquo;home.seam&rdquo; mediante la cual puedes dirigirte a la pagina de &ldquo;login.seam&rdquo; para empezar el flujo Para un mayor entendimiento de lo explicado anteriormente, les dejo el codigo del proyecto desarrollado en su totalidad: <a href="http://rapidshare.com/files/167365568/Test01.rar.html">NUEVO LINK!!! </a></p>
<p><strong>Espero que les sea de utlidad </strong>&nbsp;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=28&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/06/jbpm-seam-en-07-pasos-un-simple-tutorial-para-ver-la-integracion-del-jbpm-en-seam/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/eclipse-2dsmall1.jpg" medium="image">
			<media:title type="html">Eclipse-small</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/07/smile3.gif" medium="image" />

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall.jpg" medium="image">
			<media:title type="html">Newseam-small</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall1.jpg" medium="image">
			<media:title type="html">Newseam-small1</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall2.jpg" medium="image">
			<media:title type="html">Newseam-small2</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall3.jpg" medium="image">
			<media:title type="html">Newseam-small3</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall4.jpg" medium="image">
			<media:title type="html">Newseam-small4</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall5.jpg" medium="image">
			<media:title type="html">Newseam-small5</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall6.jpg" medium="image">
			<media:title type="html">Newseam-small6</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall7.jpg" medium="image">
			<media:title type="html">Newseam-small7</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall8.jpg" medium="image">
			<media:title type="html">Newseam-small8</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall9.jpg" medium="image">
			<media:title type="html">Newseam-small9</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall10.jpg" medium="image">
			<media:title type="html">Newseam-small10</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall11.jpg" medium="image">
			<media:title type="html">Newseam-small11</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall12.jpg" medium="image">
			<media:title type="html">Newseam-small12</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall13.jpg" medium="image">
			<media:title type="html">Newseam-small13</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall14.jpg" medium="image">
			<media:title type="html">Newseam-small14</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall15.jpg" medium="image">
			<media:title type="html">Newseam-small15</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall16.jpg" medium="image">
			<media:title type="html">Newseam-small16</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall17.jpg" medium="image">
			<media:title type="html">Newseam-small17</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall18.jpg" medium="image">
			<media:title type="html">Newseam-small18</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall22.jpg" medium="image">
			<media:title type="html">Newseam-small22</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall23.jpg" medium="image">
			<media:title type="html">Newseam-small23</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall20.jpg" medium="image">
			<media:title type="html">Newseam-small20</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall25.jpg" medium="image">
			<media:title type="html">Newseam-small25</media:title>
		</media:content>

		<media:content url="http://chrisrod.files.wordpress.com/2009/01/newseam-2dsmall26.jpg" medium="image">
			<media:title type="html">Newseam-small26</media:title>
		</media:content>
	</item>
		<item>
		<title>Exelente libro sobre el desarrollo de SOA con netbeans</title>
		<link>http://chrisrod.wordpress.com/2008/10/06/exelente-libro-sobre-el-desarrollo-de-soa-con-netbeans/</link>
		<comments>http://chrisrod.wordpress.com/2008/10/06/exelente-libro-sobre-el-desarrollo-de-soa-con-netbeans/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 16:39:54 +0000</pubDate>
		<dc:creator>chrisrod</dc:creator>
				<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://chrisrod.wordpress.com/2008/10/06/exelente-libro-sobre-el-desarrollo-de-soa-con-netbeans/</guid>
		<description><![CDATA[&#160;

Este libro es muy bueno para comprender mejor todo lo referente a SOA y el uso que se les puede dar al BPEL y al JBI.
PD: Lo más importante es que sus ejemplos Sí funcionan 
&#160;
Tags:  netbeans, soa, jbi, bpel
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=25&subd=chrisrod&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>&nbsp;</p>
<p><img alt="Soa+netbeans" src="http://noc/blog/christian.roman/wp-content/uploads/2008/05/soa-2bnetbeans.jpg" border="0" /></p>
<p>Este libro es muy bueno para comprender mejor todo lo referente a SOA y el uso que se les puede dar al BPEL y al JBI.</p>
<p>PD: Lo más importante es que sus ejemplos Sí funcionan <img src="http://noc/blog/christian.roman/wp-content/uploads/2008/05/smile3.gif" /></p>
<p>&nbsp;</p>
<div class="bjtags">Tags:  <a rel="tag" href="http://technorati.com/tag/netbeans">netbeans</a>, <a rel="tag" href="http://technorati.com/tag/soa">soa</a>, <a rel="tag" href="http://technorati.com/tag/jbi">jbi</a>, <a rel="tag" href="http://technorati.com/tag/bpel">bpel</a></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisrod.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisrod.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisrod.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisrod.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisrod.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisrod.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisrod.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisrod.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisrod.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisrod.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chrisrod.wordpress.com&blog=3967017&post=25&subd=chrisrod&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://chrisrod.wordpress.com/2008/10/06/exelente-libro-sobre-el-desarrollo-de-soa-con-netbeans/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d394bd162b4b3df7e65c9bc52572c09?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chrisrod</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/05/soa-2bnetbeans.jpg" medium="image">
			<media:title type="html">Soa+netbeans</media:title>
		</media:content>

		<media:content url="http://noc/blog/christian.roman/wp-content/uploads/2008/05/smile3.gif" medium="image" />
	</item>
	</channel>
</rss>