<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Qué hago y cómo lo hice.</title>
	<atom:link href="http://tutorialesprincipiantes.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tutorialesprincipiantes.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Thu, 07 Jan 2010 21:43:43 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='tutorialesprincipiantes.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Qué hago y cómo lo hice.</title>
		<link>http://tutorialesprincipiantes.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://tutorialesprincipiantes.wordpress.com/osd.xml" title="Qué hago y cómo lo hice." />
	<atom:link rel='hub' href='http://tutorialesprincipiantes.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Estudio de mercado de monitores y televisores</title>
		<link>http://tutorialesprincipiantes.wordpress.com/2010/01/06/22/</link>
		<comments>http://tutorialesprincipiantes.wordpress.com/2010/01/06/22/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 14:42:42 +0000</pubDate>
		<dc:creator>fallotonto</dc:creator>
				<category><![CDATA[Periféricos]]></category>

		<guid isPermaLink="false">http://tutorialesprincipiantes.wordpress.com/?p=22</guid>
		<description><![CDATA[Somos estudiantes de la universidad de Zaragoza y hemos realizado con datos de encuestas y públicos localizados por internet un estudio de mercado de monitores LCD y Televisiones LED, plasma y LCD. ¡ Invitamos a colaborar comentando los datos de tus monitores ! El estudio recoge un pequeño análisis no muy formal de los datos, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tutorialesprincipiantes.wordpress.com&amp;blog=10901390&amp;post=22&amp;subd=tutorialesprincipiantes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Somos estudiantes de la universidad de Zaragoza y hemos realizado con datos de encuestas y públicos localizados por internet un estudio de mercado de monitores LCD y Televisiones LED, plasma y LCD.</p>
<p>¡ Invitamos a colaborar comentando los datos de tus monitores !</p>
<p>El estudio recoge un pequeño análisis no muy formal de los datos, se muestran en gráficos la evolución de los precios y tamaños de monitores.</p>
<p><span id="more-22"></span></p>
<p><strong>Monitores LCD</strong><br />
Los datos recogidos para este estudio han sido la fecha y precio de compra y datos técnicos del monitor como son la resolución máxima, las tecnologías de video (VGA, DVI, HDMI) y el tamaño de la pantalla en pulgadas.</p>
<p>Dejamos los datos aquí, para que puedan realizar futuros estudios más fácilmente.</p>
<table border="0" cellspacing="0" cellpadding="0" width="444">
<tbody>
<tr>
<td width="95" valign="bottom"><strong>Fecha</strong></td>
<td width="104" valign="bottom"><strong>Nombre</strong></td>
<td width="64" valign="bottom"><strong>Pulgadas</strong></td>
<td width="87" valign="bottom"><strong>Precio (€)</strong></td>
<td width="94" valign="bottom"><strong> Res Max.</strong></td>
</tr>
<tr>
<td width="95" valign="bottom">01/06/2006</td>
<td width="104" valign="bottom">ACER</td>
<td width="64" valign="bottom">17</td>
<td width="87" valign="bottom">190</td>
<td width="94" valign="bottom">1280</td>
</tr>
<tr>
<td width="95" valign="bottom">dic-06</td>
<td width="104" valign="bottom">SyncMaster</td>
<td width="64" valign="bottom">15</td>
<td width="87" valign="bottom">132</td>
<td width="94" valign="bottom">1280</td>
</tr>
<tr>
<td width="95" valign="bottom">dic-06</td>
<td width="104" valign="bottom">SyncMaster</td>
<td width="64" valign="bottom">17</td>
<td width="87" valign="bottom">171</td>
<td width="94" valign="bottom">1280</td>
</tr>
<tr>
<td width="95" valign="bottom">ene-07</td>
<td width="104" valign="bottom">SyncMaster</td>
<td width="64" valign="bottom">19</td>
<td width="87" valign="bottom">200,75</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">06/06/2007</td>
<td width="104" valign="bottom">ACER</td>
<td width="64" valign="bottom">19</td>
<td width="87" valign="bottom">134,95</td>
<td width="94" valign="bottom">1280</td>
</tr>
<tr>
<td width="95" valign="bottom">ene-08</td>
<td width="104" valign="bottom">Asus</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">220</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">06/11/2008</td>
<td width="104" valign="bottom">SAMSUNG</td>
<td width="64" valign="bottom">19</td>
<td width="87" valign="bottom">136</td>
<td width="94" valign="bottom">1280</td>
</tr>
<tr>
<td width="95" valign="bottom">dic-08</td>
<td width="104" valign="bottom">LG</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">200</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">29/12/2008</td>
<td width="104" valign="bottom">ACER</td>
<td width="64" valign="bottom">20</td>
<td width="87" valign="bottom">150</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">01/04/2007</td>
<td width="104" valign="bottom">Dell</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">300</td>
<td width="94" valign="bottom">1440</td>
</tr>
<tr>
<td width="95" valign="bottom">nov-07</td>
<td width="104" valign="bottom">LG</td>
<td width="64" valign="bottom">19</td>
<td width="87" valign="bottom">140</td>
<td width="94" valign="bottom">1440</td>
</tr>
<tr>
<td width="95" valign="bottom">01/07/2008</td>
<td width="104" valign="bottom">LG</td>
<td width="64" valign="bottom">20</td>
<td width="87" valign="bottom">200</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">feb-09</td>
<td width="104" valign="bottom">SAMSUNG</td>
<td width="64" valign="bottom">20</td>
<td width="87" valign="bottom">189</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">mar-09</td>
<td width="104" valign="bottom">Samsung</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">200</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">jun-09</td>
<td width="104" valign="bottom">LG</td>
<td width="64" valign="bottom">19</td>
<td width="87" valign="bottom">275</td>
<td width="94" valign="bottom">1440</td>
</tr>
<tr>
<td width="95" valign="bottom">jul-09</td>
<td width="104" valign="bottom">SAMSUNG</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">119</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">dic-09</td>
<td width="104" valign="bottom">Viewsonic</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">245</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">ene-10</td>
<td width="104" valign="bottom">Samsung</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">179,9</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom"></td>
<td width="104" valign="bottom"></td>
<td width="64" valign="bottom"></td>
<td width="87" valign="bottom"></td>
<td width="94" valign="bottom"></td>
</tr>
<tr>
<td width="95" valign="bottom">feb-08</td>
<td width="104" valign="bottom">LG</td>
<td width="64" valign="bottom">19</td>
<td width="87" valign="bottom">175</td>
<td width="94" valign="bottom">1440</td>
</tr>
<tr>
<td width="95" valign="bottom">ene-09</td>
<td width="104" valign="bottom">Samsung</td>
<td width="64" valign="bottom">24</td>
<td width="87" valign="bottom">249</td>
<td width="94" valign="bottom">1920</td>
</tr>
<tr>
<td width="95" valign="bottom">01/03/2009</td>
<td width="104" valign="bottom">Samsung</td>
<td width="64" valign="bottom">19</td>
<td width="87" valign="bottom">180</td>
<td width="94" valign="bottom">1368</td>
</tr>
<tr>
<td width="95" valign="bottom">abr-09</td>
<td width="104" valign="bottom">LG</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">230</td>
<td width="94" valign="bottom">1920</td>
</tr>
<tr>
<td width="95" valign="bottom">mar-09</td>
<td width="104" valign="bottom">SAMSUNG</td>
<td width="64" valign="bottom">22</td>
<td width="87" valign="bottom">270</td>
<td width="94" valign="bottom">1680</td>
</tr>
<tr>
<td width="95" valign="bottom">jun-09</td>
<td width="104" valign="bottom">ASUS</td>
<td width="64" valign="bottom">24</td>
<td width="87" valign="bottom">176</td>
<td width="94" valign="bottom">1920</td>
</tr>
<tr>
<td width="95" valign="bottom">oct-09</td>
<td width="104" valign="bottom">ASUS</td>
<td width="64" valign="bottom">24</td>
<td width="87" valign="bottom">209</td>
<td width="94" valign="bottom">1920</td>
</tr>
<tr>
<td width="95" valign="bottom">01/12/2009</td>
<td width="104" valign="bottom">Benq</td>
<td width="64" valign="bottom">24</td>
<td width="87" valign="bottom">199</td>
<td width="94" valign="bottom">1920</td>
</tr>
</tbody>
</table>
<p>Evolución del tamaño según la fecha de compra:</p>
<p style="text-align:center;"><a href="../files/2010/01/ev-tamano.jpg"></a><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-tamano.jpg"><img class="aligncenter size-full wp-image-21" title="Evolución tamaño" src="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-tamano.jpg?w=480" alt=""   /></a></p>
<p>Podemos observar que la tendencia es creciente, aumentando de 15-17 pulgadas en 2006 a 22-24 pulgadas a finales de 2009 aumentando en un 53% el tamaño en 4 años, esta tendencia se cumple también para televisiones , cuando hace no mucho era normal comprarse televisiones de 20” a 32”, ahora lo más común es comprarse una de 42” , siguiendo la tendencia que se muestra en la gráfica para el 2012-2013 en nuestras casas empezara a haber de forma más habitual monitores de 36”, aunque si bien es cierto resultaría incomodo para según qué tareas.</p>
<p>Así mismo el precio para monitores del mismo tamaño ha ido decreciendo a lo largo del tiempo como podemos ver para los monitores de 22”, bajando un 30% su precio en 3 años.</p>
<p style="text-align:center;"><a href="../files/2010/01/ev-precio-22.jpg"></a><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-precio-22.jpg"><img class="aligncenter size-full wp-image-24" title="ev precio 22" src="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-precio-22.jpg?w=480&#038;h=241" alt="" width="480" height="241" /></a></p>
<p>Así mismo el precio general de los monitores sigue una línea decreciente pero casi recta, aumentando la calidad del producto, de esta forma podemos ver en la siguiente gráfica, esta vez dividida según tecnologías; hay que tener en cuenta que no se tienen consideración algunos aspectos importantes de las prestaciones del monitor como son el tamaño, la resolución y otras características técnicas no recogidas. Como podemos observar la tendencia plana es común para los tres tipos de tecnologías que hay actualmente en el mercado, si bien es cierto que más o menos se cumple por lo general que un monitor que solo dispone de salida VGA es más económico que uno con DVI y éste a su vez que uno con HDMI, aunque siempre hay excepciones que como ya hemos dicho se deben principalmente a un mejor rendimiento en otras características.</p>
<p><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-precio-normal-monitor-general.jpg"><img class="aligncenter size-full wp-image-25" title="ev precio normal monitor general" src="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-precio-normal-monitor-general.jpg?w=480&#038;h=203" alt="" width="480" height="203" /></a><br />
Hemos realizado una puntuación de cada monitor según los tres datos recogidos de 0 a 10, obteniendo una puntuación, más o menos subjetiva , de la “calidad” de cada monitor, y de esta forma obtener una gráfica donde comprobar la relación calidad-precio de los monitores con el paso del tiempo, si bien es cierto que la añadidura de tecnología hace forzoso el incremento en calidad, vemos los datos separados por tecnologías en la segunda gráfica, mientras que en la primera se han juntado para ver una perspectiva más general.</p>
<p><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/calidad-precio-lcd.jpg"><img class="aligncenter size-full wp-image-26" title="calidad precio lcd" src="http://tutorialesprincipiantes.files.wordpress.com/2010/01/calidad-precio-lcd.jpg?w=480&#038;h=243" alt="" width="480" height="243" /></a><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/calidad-precio-general.jpg"></a></p>
<p><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/calidad-precio-general.jpg"><img class="aligncenter size-full wp-image-28" title="calidad precio general" src="http://tutorialesprincipiantes.files.wordpress.com/2010/01/calidad-precio-general.jpg?w=480&#038;h=230" alt="" width="480" height="230" /></a><br />
<strong>Monitores CRT</strong></p>
<p>Para monitores CRT disponemos de muy pocos datos para poder realizar un estudio, aun así compartimos los pocos datos que tenemos e intentamos mostrar alguna tendencia, si bien es cierto que estos monitores están obsoletos actualmente, no se fabrican muchos CRT, solo se venden de segunda mano a precios más económicos.</p>
<table style="height:84px;" border="0" cellspacing="0" cellpadding="0" width="439">
<tbody>
<tr>
<td width="81" valign="bottom">Fecha</td>
<td width="161" valign="bottom">Nombre</td>
<td width="81" valign="bottom">Tamaño</td>
<td width="81" valign="bottom">Precio</td>
<td width="81" valign="bottom">Res.Max</td>
</tr>
<tr>
<td width="81" valign="bottom">jun-02</td>
<td width="161" valign="bottom">Samtron</td>
<td width="81" valign="bottom">19</td>
<td width="81" valign="bottom">300</td>
<td width="81" valign="bottom">1280</td>
</tr>
<tr>
<td width="81" valign="bottom">jul-06</td>
<td width="161" valign="bottom">LG</td>
<td width="81" valign="bottom">15</td>
<td width="81" valign="bottom">62,31</td>
<td width="81" valign="bottom">1024</td>
</tr>
<tr>
<td width="81" valign="bottom">jul-06</td>
<td width="161" valign="bottom">LG</td>
<td width="81" valign="bottom">17</td>
<td width="81" valign="bottom">77,18</td>
<td width="81" valign="bottom">1280</td>
</tr>
<tr>
<td width="81" valign="bottom">jul-06</td>
<td width="161" valign="bottom">LG</td>
<td width="81" valign="bottom">19</td>
<td width="81" valign="bottom">136,66</td>
<td width="81" valign="bottom">1600</td>
</tr>
<tr>
<td width="81" valign="bottom">ene-10</td>
<td width="161" valign="bottom">AOC</td>
<td width="81" valign="bottom">17</td>
<td width="81" valign="bottom">94,22</td>
<td width="81" valign="bottom">1280</td>
</tr>
</tbody>
</table>
<p>Podemos observar una tendencia creciente en el precio por pulgada decrece a un ritmo similar al que lo hace el precio del monitor, en general los tamaños rondan entre 15 y 19 pulgadas, en sus principios los monitores CRT eran más pequeños y con resoluciones mucho más bajas.</p>
<p><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/crt.jpg"><img class="aligncenter size-full wp-image-29" title="CRT" src="http://tutorialesprincipiantes.files.wordpress.com/2010/01/crt.jpg?w=480&#038;h=562" alt="" width="480" height="562" /></a></p>
<p><strong>Televisores</strong></p>
<p>Los datos de los televisores los hemos dividido por tamaños, dado que ha resultado ser un factor primordial en la determinación del precio del producto.</p>
<p><strong>Televisores LCD</strong></p>
<table border="0" cellspacing="0" cellpadding="0" width="320">
<tbody>
<tr>
<td width="80" valign="bottom"><strong>Fecha</strong></td>
<td width="80" valign="bottom"><strong>Nombre</strong></td>
<td width="80" valign="bottom"><strong>Precio</strong></td>
<td width="80" valign="bottom"><strong>Pulgadas</strong></td>
</tr>
<tr>
<td width="80" valign="bottom">dic-06</td>
<td width="80" valign="bottom">LA20S51</td>
<td width="80" valign="bottom">1100</td>
<td width="80" valign="bottom">32</td>
</tr>
<tr>
<td width="80" valign="bottom">jun-07</td>
<td width="80" valign="bottom">Philips</td>
<td width="80" valign="bottom">800</td>
<td width="80" valign="bottom">32</td>
</tr>
<tr>
<td width="80" valign="bottom">22-ene-08</td>
<td width="80" valign="bottom">Samsung</td>
<td width="80" valign="bottom">700</td>
<td width="80" valign="bottom">32</td>
</tr>
<tr>
<td width="80" valign="bottom">29-dic</td>
<td width="80" valign="bottom">LG</td>
<td width="80" valign="bottom">499</td>
<td width="80" valign="bottom">32</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">Samsung</td>
<td width="80" valign="bottom">399</td>
<td width="80" valign="bottom">32</td>
</tr>
<tr>
<td width="80" valign="bottom">dic-06</td>
<td width="80" valign="bottom">LA37S71</td>
<td width="80" valign="bottom">1300</td>
<td width="80" valign="bottom">37</td>
</tr>
<tr>
<td width="80" valign="bottom">29-dic</td>
<td width="80" valign="bottom">LG</td>
<td width="80" valign="bottom">629</td>
<td width="80" valign="bottom">37</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">Samsung</td>
<td width="80" valign="bottom">549</td>
<td width="80" valign="bottom">37</td>
</tr>
<tr>
<td width="80" valign="bottom">dic-06</td>
<td width="80" valign="bottom">LA40R71</td>
<td width="80" valign="bottom">450</td>
<td width="80" valign="bottom">20</td>
</tr>
<tr>
<td width="80" valign="bottom">29-dic</td>
<td width="80" valign="bottom">LG</td>
<td width="80" valign="bottom">249</td>
<td width="80" valign="bottom">22</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">OKI</td>
<td width="80" valign="bottom">199</td>
<td width="80" valign="bottom">22</td>
</tr>
<tr>
<td width="80" valign="bottom">dic-06</td>
<td width="80" valign="bottom">LA46</td>
<td width="80" valign="bottom">2600</td>
<td width="80" valign="bottom">46</td>
</tr>
<tr>
<td width="80" valign="bottom">29-dic</td>
<td width="80" valign="bottom"></td>
<td width="80" valign="bottom">799</td>
<td width="80" valign="bottom">46</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">Samsung</td>
<td width="80" valign="bottom">799</td>
<td width="80" valign="bottom">46</td>
</tr>
</tbody>
</table>
<p>Observamos una tendencia decreciente para los precios de los televisores, divididos por tamaños, si bien es cierto que tenemos muy poquitos datos para poder comprobarlo.</p>
<p><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/televisores-precio.jpg"><img class="aligncenter size-full wp-image-31" title="Televisores precio" src="http://tutorialesprincipiantes.files.wordpress.com/2010/01/televisores-precio.jpg?w=480&#038;h=157" alt="" width="480" height="157" /></a></p>
<p><strong>Televisores LED</strong></p>
<table border="0" cellspacing="0" cellpadding="0" width="427">
<tbody>
<tr>
<td width="80" valign="bottom"><strong>Fecha</strong></td>
<td width="80" valign="bottom"><strong>Nombre</strong></td>
<td width="80" valign="bottom"><strong>Precio</strong></td>
<td width="80" valign="bottom"><strong>Tamaño</strong></td>
<td width="107" valign="bottom"><strong>Precio/pulgada</strong></td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">SAMSUNG</td>
<td width="80" valign="bottom">799</td>
<td width="80" valign="bottom">32</td>
<td width="107" valign="bottom">24,96875</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">SAMSUNG</td>
<td width="80" valign="bottom">999</td>
<td width="80" valign="bottom">40</td>
<td width="107" valign="bottom">24,975</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">LG</td>
<td width="80" valign="bottom">1299</td>
<td width="80" valign="bottom">42</td>
<td width="107" valign="bottom">30,92857143</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">SAMSUNG</td>
<td width="80" valign="bottom">2199</td>
<td width="80" valign="bottom">46</td>
<td width="107" valign="bottom">47,80434783</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">SAMSUNG</td>
<td width="80" valign="bottom">2999</td>
<td width="80" valign="bottom">55</td>
<td width="107" valign="bottom">54,52727273</td>
</tr>
</tbody>
</table>
<p><strong>Televisores de plasma</strong></p>
<table border="0" cellspacing="0" cellpadding="0" width="347">
<tbody>
<tr>
<td width="80" valign="bottom"><strong>Fecha</strong></td>
<td width="80" valign="bottom"><strong>Precio</strong></td>
<td width="80" valign="bottom"><strong>Tamaño</strong></td>
<td width="107" valign="bottom"><strong>Precio/pulgada</strong></td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">499</td>
<td width="80" valign="bottom">42</td>
<td width="107" valign="bottom">11,88095238</td>
</tr>
<tr>
<td width="80" valign="bottom">ene-10</td>
<td width="80" valign="bottom">749</td>
<td width="80" valign="bottom">50</td>
<td width="107" valign="bottom">14,98</td>
</tr>
<tr>
<td width="80" valign="bottom">oct-07</td>
<td width="80" valign="bottom">1000</td>
<td width="80" valign="bottom">32</td>
<td width="107" valign="bottom">31,25</td>
</tr>
</tbody>
</table>
<p>Con los datos de los televisores actuales (Diciembre 2009 y Enero 2010) hemos visto una tendencia muy marcada en el precio con el cambio de tamaño del televisor, podemos observar para las distintas tecnologías de televisores una tendencia creciente que afecta a todos en mayor o menor medida, notar que en el eje X está colocado el tamaño.</p>
<p><a href="http://tutorialesprincipiantes.files.wordpress.com/2010/01/televisor-precio-pulgada.jpg"><img class="aligncenter size-full wp-image-30" title="televisor precio pulgada" src="http://tutorialesprincipiantes.files.wordpress.com/2010/01/televisor-precio-pulgada.jpg?w=480&#038;h=292" alt="" width="480" height="292" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tutorialesprincipiantes.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tutorialesprincipiantes.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tutorialesprincipiantes.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tutorialesprincipiantes.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tutorialesprincipiantes.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tutorialesprincipiantes.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tutorialesprincipiantes.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tutorialesprincipiantes.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tutorialesprincipiantes.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tutorialesprincipiantes.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tutorialesprincipiantes.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tutorialesprincipiantes.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tutorialesprincipiantes.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tutorialesprincipiantes.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tutorialesprincipiantes.wordpress.com&amp;blog=10901390&amp;post=22&amp;subd=tutorialesprincipiantes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tutorialesprincipiantes.wordpress.com/2010/01/06/22/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ad493d9bb1be3c0c8cb7c65934b95744?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">fallotonto</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-tamano.jpg" medium="image">
			<media:title type="html">Evolución tamaño</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-precio-22.jpg" medium="image">
			<media:title type="html">ev precio 22</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2010/01/ev-precio-normal-monitor-general.jpg" medium="image">
			<media:title type="html">ev precio normal monitor general</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2010/01/calidad-precio-lcd.jpg" medium="image">
			<media:title type="html">calidad precio lcd</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2010/01/calidad-precio-general.jpg" medium="image">
			<media:title type="html">calidad precio general</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2010/01/crt.jpg" medium="image">
			<media:title type="html">CRT</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2010/01/televisores-precio.jpg" medium="image">
			<media:title type="html">Televisores precio</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2010/01/televisor-precio-pulgada.jpg" medium="image">
			<media:title type="html">televisor precio pulgada</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle Net Services – Breve orientación</title>
		<link>http://tutorialesprincipiantes.wordpress.com/2009/12/20/19/</link>
		<comments>http://tutorialesprincipiantes.wordpress.com/2009/12/20/19/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 23:34:04 +0000</pubDate>
		<dc:creator>fallotonto</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://tutorialesprincipiantes.wordpress.com/?p=19</guid>
		<description><![CDATA[¡Buenas noches amigos y amigas! (Aunque aun no tengo lectores… :&#60;) Hoy les hablare de esta herramienta que está disponible para Oracle 9 en adelante, seré muy breve e intentare explicar lo que yo entendí sobre esta herramienta,  y un ejemplo de uso. Se trata de una herramienta que permite crear conexiones a otras Bases [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tutorialesprincipiantes.wordpress.com&amp;blog=10901390&amp;post=19&amp;subd=tutorialesprincipiantes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="Section1">
<p class="MsoNormal"><span style="font-family:&amp;">¡Buenas noches amigos y amigas! (Aunque aun no tengo lectores… :&lt;)</span></p>
<p class="MsoNormal"><span style="font-family:&amp;">Hoy les hablare de esta herramienta que está disponible para Oracle 9 en adelante, seré muy breve e intentare explicar lo que yo entendí sobre esta herramienta,  y un ejemplo de uso.</span></p>
<p class="MsoNormal"><span style="font-family:&amp;"> </span></p>
<p>Se trata de una herramienta que permite crear conexiones a otras Bases de Datos desde la que se definan los “links”, es por ello que resulta de gran utilidad cuando queremos diseñar (o implantar) una arquitectura distribuida de base de datos, esto es conocido como Bases de datos distribuidas, o DDB (Distributed Data Base en inglés).</p>
<p><span id="more-19"></span><br />
En la siguiente dirección encontrarán mucha información al respecto:</p>
<p class="MsoNormal"><span style="font-family:&amp;"><a href="http://download-uk.oracle.com/docs/cd/A64702_01/doc/server.805/a58247.pdf">http://download-uk.oracle.com/docs/cd/A64702_01/doc/server.805/a58247.pdf</a><br />
</span></p>
<p class="MsoNormal"><span style="font-family:&amp;">El primer paso es instalar Oracle Net, y para esto hay muchos tutoriales en la red, nosotros partiremos de que ya lo tenemos instalado. (Más que nada porque yo no lo instalé y podría decir  bastantes más burradas de las que ya digo).</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><strong><span style="font-family:&amp;">¿Para qué?</span></strong></p>
<p><strong> </strong><span style="font-family:&amp;">Sencillo, para poder<br />
acceder a otras bases de datos estando conectado solo a una.</span></p>
<p class="MsoNormal"><strong><span style="font-family:&amp;">¿Cómo?</span></strong><span style="font-family:&amp;"> </span></p>
<p>Creando Links en tu base de datos a otras bases de datos</p>
<p><strong>-&gt; ¿ Y cómo se crean los links ?</strong></p>
<p>Los links pueden tener más o menos información, un Database link básico podría ser algo tal que así:</p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;" lang="EN-US">CREATE<br />
DATABASE LINK &lt;nombreLink&gt;</span></p>
<p>CONNECT TO &lt;user&gt; IDENTIFIED BY &lt;password&gt;</p>
<p>USING &#8216;(description =</p>
<p>(address =</p>
<p>(protocol = TCP)</p>
<p>(HOST = &lt;host&gt;)</p>
<p>(PORT = &lt;port&gt;)</p>
<p>)</p>
<p>(connect_data =</p>
<p>(SID = &lt;sid&gt;)</p>
<p>)</p>
<p>)&#8217;;</p>
</div>
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-family:&amp;">Cambiando todo lo que está entre &lt;&gt; por los datos, por ejemplo imaginemos que :</span></p>
<p>&lt;nombreLink&gt; = VentasBD<br />
&lt;user&gt; = adminVentas<br />
&lt;password&gt; = 1234<br />
&lt;host&gt; = ventasEmpresa.bdhosting.com<br />
&lt;port&gt; = 1521<br />
&lt;sid&gt; = ursula</p>
<p class="MsoNormal"><span style="font-family:&amp;">Entonces el DB Link quedaría tal que así</span></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;" lang="EN-US">CREATE<br />
DATABASE LINK VentasBD</span></p>
<p>CONNECT TO adminVentas IDENTIFIED BY 1234</p>
<p>USING &#8216;(description =</p>
<p>(address =</p>
<p>(protocol = TCP)</p>
<p>(HOST = ventasEmpresa.bdhosting.com )</p>
<p>(PORT = 1521)</p>
<p>)</p>
<p>(connect_data =</p>
<p>(SID = ursula)</p>
<p>)</p>
<p>)&#8217;;</p>
</div>
<p class="MsoNormal">
<p class="MsoNormal"><strong><span style="font-family:&amp;">¿Y ahora esto cómo lo uso?</span></strong></p>
<p class="MsoNormal"><span style="font-family:&amp;">Muy fácil, basta con conectarte a tu BD con tu usuario y contraseña que es distinta de la de VentasBD, y puedes acceder a ella mediante “@VentasBD”, es decir:</span></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;">SELECT *<br />
FROM tabla@VentasBD;</span></p>
</div>
<p class="MsoNormal"><strong><span style="font-family:&amp;">¿Hay alguna forma de abstraerse más? ¡No quiero arrobas!<br />
</span></strong><span style="font-family:&amp;"><br />
Si, por ejemplo con vistas.</span></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;" lang="EN-US">CREATE<br />
VIEW NOMBREVISTA AS<br />
SELECT * FROM TABLA@VENTASBD;</span></p>
<p>SELECT * FROM NOMBREVISTA;</p>
</div>
<p class="MsoNormal"><span style="font-family:&amp;" lang="EN-US"> </span></p>
<p><span style="font-family:&amp;">Además ésta vista es modificable, es decir se le pueden hacer INSERTS,DELETES, etc.</span></p>
<p>Para que una vista pueda ser modificable RECUERDA que no puede tener ninguno de los siguientes operadores:</p>
<p><strong><span style="font-size:10pt;line-height:115%;font-family:&amp;">Note: </span></strong><span style="font-size:10pt;line-height:115%;font-family:&amp;">Updateable views can not include:</span></p>
<ul type="disc">
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;">Set Operators (INTERS</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">ECT, MINUS, UNION, UNION ALL)</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;">DISTINCT</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US">Group<br />
Aggregate Functions (AVG, COUNT, MAX, MIN, SUM, etc.)</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;">GROUP BY Clause</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;">ORDER BY Clause</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;">CONNECT BY Clause</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;">START WITH Clause</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US">Collection<br />
Expression In A Select List</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;">Subquery In A Select List</span></li>
<li class="MsoNormal" style="line-height:normal;"><span style="font-size:10pt;font-family:&amp;">Join Query</span></li>
</ul>
<p class="MsoNormal"><span style="font-family:&amp;"><br />
<strong>Particiones típicas de distribución</strong></span></p>
<p><strong> </strong></p>
<p class="MsoNormal"><span style="font-family:&amp;">Como ejemplo de uso pondremos casos sencillos con soluciones rápidas y sencillas, por lo que tampoco será la mejor solución, al menos en principio, se pueden pensar mil y una formas de hacer las cosas, Oracle ya se encargara de optimizar lo que tenga que optimizar.</span></p>
<p>No sabría decir hasta que punto sería conveniente crear las vistas en el Nodo donde se van a usar, ya que no se cómo lo hará Oracle, pero imagino que se tendrá que traer la vista o sino enviarle la petición al nodo donde seencuentre la vista y dejarle a él que optimice, por lo que sería conveniente tener la vista definida allí donde se use, cosa que no cuesta mucho y es altamente recomendable; y así de paso, te abstraes y te ahorras arrobas.</p>
<p class="MsoNormal"><span style="font-family:&amp;"> </span></p>
<p><strong>Horizontal</strong></p>
<p class="MsoNormal"><span style="font-family:&amp;">Imaginemos que tenemos distribución horizontal de los datos por ejemplo de clientes, en 2 BD ( Compras y Ventas ) , puede ser alguna local o ninguna de ellas, y querríamos tener una visión global de todos los clientes, sin embargo el campo1 (por ejemplo : Moroso ) solo está en la BD Ventas, podríamos crear una vista (no modificable) de los clientes, tanto para localizarlos como para tenerlos todos en una sola “tabla”, abstrayéndonos de la distribución de los datos.</span></p>
<p><span style="font-family:&amp;"> Podemos incluso crearnos una columna ficticia que nos localice el dato, para que en futuras preguntas (tempranas) sepamos en que BD está.</span></p>
<p>Por ejemplo podríamos crear una vista del siguiente estilo:</p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;">CREATE VIEW<br />
CLIENTES (localizador, campo1, campo2, … campoN ) AS</span></p>
<p>(</p>
<p>SELECT ‘ventas’, col1 campo1, col2 campo2, …. colN campoN FROM  TABLA@VentasBD</p>
<p>UNION</p>
<p>SELECT ‘compras’, null campo1, col2 campo2, … colN campoN FROM<br />
TABLALOCAL@ComprasBD</p>
<p>);</p>
</div>
<p class="MsoNormal"><span style="font-family:&amp;"> </span></p>
<p><strong>Vertical</strong></p>
<p class="MsoNormal"><span style="font-family:&amp;">Nuestros datos  de los clientes están distribuidos y partidos verticalmente, esto es por ejemplo tenemos Nombre, Apellidos en la BD de Ventas mientras que en Compras tenemos la Edad, Dirección y Teléfono. Imaginemos que para nuestro  bien ambos están identificados por el DNI.</span></p>
<p class="MsoNormal"><span style="font-family:&amp;"><br />
</span></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;">CREATE VIEW<br />
CLIENTES_COMPLETOS (DNI, Nombre, Apellidos, Edad, Direccion, Telefono) AS</span></p>
<p>(</p>
<p>SELECT V.Nombre Nombre, V.Apellidos Apellidos, C.Edad Edad, C.Direccion<br />
Direccion, C.Telefono Telefono FROM  TABLA@VentasBD V, TABLALOCAL@ComprasBD C</p>
<p>);</p>
</div>
<p class="MsoNormal"><span style="font-family:&amp;"> </span></p>
<p class="MsoNormal"><span style="font-family:&amp;">Y así tenemos una vista con las columnas DNI, Nombre, Apellidos, Edad, Dirección, Teléfono, en una vista (no modificable).</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-family:&amp;">Un saludo y espero que le haya servido a alguien.<br />
</span></p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tutorialesprincipiantes.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tutorialesprincipiantes.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tutorialesprincipiantes.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tutorialesprincipiantes.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tutorialesprincipiantes.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tutorialesprincipiantes.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tutorialesprincipiantes.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tutorialesprincipiantes.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tutorialesprincipiantes.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tutorialesprincipiantes.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tutorialesprincipiantes.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tutorialesprincipiantes.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tutorialesprincipiantes.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tutorialesprincipiantes.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tutorialesprincipiantes.wordpress.com&amp;blog=10901390&amp;post=19&amp;subd=tutorialesprincipiantes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tutorialesprincipiantes.wordpress.com/2009/12/20/19/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ad493d9bb1be3c0c8cb7c65934b95744?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">fallotonto</media:title>
		</media:content>
	</item>
		<item>
		<title>Amazon Advertising Services &#8211; JAVA</title>
		<link>http://tutorialesprincipiantes.wordpress.com/2009/12/10/amazon-advertising-api-java/</link>
		<comments>http://tutorialesprincipiantes.wordpress.com/2009/12/10/amazon-advertising-api-java/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 23:04:46 +0000</pubDate>
		<dc:creator>fallotonto</dc:creator>
				<category><![CDATA[Amazon Services]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Amazon Advertising Services]]></category>

		<guid isPermaLink="false">http://tutorialesprincipiantes.wordpress.com/?p=5</guid>
		<description><![CDATA[Hola buenas noches, Este tutorial es cosecha propia, debido a que he tenido que hacer una práctica con esto en la universidad, por lo que puede estar mejor/peor, pero funcionar funciona. Soy nuevo en WP y no tengo ni idea como poner trocitos de código incrustados. En octubre de este año 2009, Amazon cambió ligeramente [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tutorialesprincipiantes.wordpress.com&amp;blog=10901390&amp;post=5&amp;subd=tutorialesprincipiantes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="Section1">
<p><span style="font-size:11pt;font-family:&amp;">Hola buenas noches,</span></p>
<p><span style="font-size:11pt;font-family:&amp;">Este tutorial es cosecha propia, debido a que he tenido que hacer una práctica con esto en la universidad, por lo que puede estar mejor/peor, pero funcionar funciona. Soy nuevo en WP y no tengo ni idea como poner trocitos de código incrustados.</span></p>
<p><span style="font-size:11pt;font-family:&amp;">En octubre de este año 2009, Amazon cambió ligeramente la forma de acceder a los servicios web de Ecommerce, que ahora se llama Amazon Advertising Service (A2S), pues este tutorial intentará mostraros cómo conseguir realizar la firma (signature) que ahora requiere.</span></p>
<p>Documentación sobre el A2S : <a href="http://docs.amazonwebservices.com/AWSECommerceService/2009-10-01/DG/">http://docs.amazonwebservices.com/AWSECommerceService/2009-10-01/DG/</a></p>
<p>Este tutorial es de la revisión 2009-10-01 y usa el siguiente WSDL (uno de estos US,UK,FR,DE): <a href="http://docs.amazonwebservices.com/AWSECommerceService/2009-10-01/DG/index.html?WSDLLocation.html">http://docs.amazonwebservices.com/AWSECommerceService/2009-10-01/DG/index.html?WSDLLocation.html</a></p>
<p><span style="font-size:11pt;font-family:&amp;">El lenguaje de programación empleado es JAVA, paso a explicar las 3 clases que he implementado, en parte buscando información y otros tutoriales en otras webs, etc..</span></p>
<p><span style="font-size:11pt;font-family:&amp;"><span id="more-5"></span><br />
</span></p>
<p><span style="font-size:11pt;font-family:&amp;" lang="EN-US">Vamos a implementar las siguientes clases </span></p>
<p><span style="font-size:11pt;font-family:&amp;" lang="EN-US">AmazonConfiguration.java</span></p>
<p>AmazonSOAPHeaderData.java</p>
<p>AmazonSOAPHandler.java</p>
<p><strong><span style="font-size:11pt;font-family:&amp;">AmazonConfiguration</span></strong></p>
<p><strong><em>AmazonConfiguration</em></strong><span style="font-size:11pt;font-family:&amp;"> es una clase que simplifica en cierto modo la obtención de distintos tipos de servicios generando para todos ellos firmas digitales.</span></p>
<p><span style="font-size:11pt;font-family:&amp;" lang="EN-US">El constructor:</span></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">Public<br />
class</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> A</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">mazonConfiguration </span>{</p>
<p><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">static</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
AWSECommerceService </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">awsecommerceservice</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">static</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
AWSECommerceServicePortType </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">service</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">=</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">null</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">static</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
HandlerResolver </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">handler</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US">[...]</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
AmazonConfiguration(</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">final</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String accion){</span></p>
<p><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">awsecommerceservice</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
AWSECommerceService(); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">handler</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
HandlerResolver() {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">@Override</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
List&lt;Handler&gt; getHandlerChain(PortInfo portInfo)  {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> List&lt;Handler&gt;<br />
handlerList = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> ArrayList&lt;Handler&gt;();</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> handlerList.add((Handler)<br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> AmazonSOAPHandler(accion));</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
handlerList;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> };</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">awsecommerceservice</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">.setHandlerResolver(</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">handler</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;" lang="EN-US"> </span><em><span style="font-size:10pt;line-height:115%;font-family:&amp;">service</span></em><span style="font-size:10pt;line-height:115%;font-family:&amp;"><br />
= </span><em><span style="font-size:10pt;line-height:115%;font-family:&amp;">awsecommerceservice</span></em><span style="font-size:10pt;line-height:115%;font-family:&amp;">.getAWSECommerceServicePort();</span></p>
<p style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;">}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
AWSECommerceServicePortType getService(){</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">service</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">;</span></p>
<p style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><span style="font-size:10pt;font-family:&amp;">}</span></p>
</div>
<p><span style="font-size:11pt;font-family:&amp;">Para cada acción necesitaremos una Configuración diferente, con un handler diferente, es por ello recomendable tener una instancia de Configuración distinta por cada <strong>tipo </strong>de acción que deseemos realizar. Es decir, la primera vez que hagamos un &#8220;itemSearch&#8221; por ejmplo, deberemos crearnos una instancia de configuración con accion=&#8221;itemSearch&#8221; , pero para las siguientes no será necesario, bastará con llamar a laConfiguracion.getService();</span></p>
<p><span style="font-size:11pt;font-family:&amp;">Esta clase simplifica mucho las clases donde usemos algún servicio de Amazon, por ejemplo ahora para hacer un itemSearch bastara con hacer:</span></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;"> </span></strong></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">if</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">(ConfiguracionItemSearch<br />
== null) {</span></em></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">Configuracion</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
AmazonConfiguration(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;ItemLookup&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p>AWSECommerceServicePortType service = <em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">Configuracion</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">.getService();</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;">/* &#8230;. preparar objetos<br />
para llamar a la funcion: request, items. Si hay tiempo, ganas y lo solicita<br />
alguien, se hara un ejemplo de ItemSearch/ItemLookup, aunque no es dificil. </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">*/</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p><span style="color:black;">service.itemSearch(</span><strong><span style="color:#7f0055;">null</span></strong><span style="color:black;">, </span><span style="color:#3f7f5f;">// marketplaceDomain</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">AWS_ACCESS_KEY_ID,</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> // awsAccessKeyId</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">null</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">// subscriptionId</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;">null</span></strong><span style="font-size:10pt;font-family:&amp;">, </span><span style="font-size:10pt;font-family:&amp;">// associateTag</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;"> </span><strong><span style="font-size:10pt;font-family:&amp;">null</span></strong><span style="font-size:10pt;font-family:&amp;">, </span><span style="font-size:10pt;font-family:&amp;">// xmlEscaping</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;"> </span><strong><span style="font-size:10pt;font-family:&amp;">null</span></strong><span style="font-size:10pt;font-family:&amp;">, </span><span style="font-size:10pt;font-family:&amp;">// validate</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;"> </span><strong><span style="font-size:10pt;font-family:&amp;">null</span></strong><span style="font-size:10pt;font-family:&amp;">, </span><span style="font-size:10pt;font-family:&amp;">// shared</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;"> req,</span><span style="font-size:10pt;font-family:&amp;"> // request</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;"> </span><strong><span style="font-size:10pt;font-family:&amp;">null</span></strong><span style="font-size:10pt;font-family:&amp;">, </span><span style="font-size:10pt;font-family:&amp;">// Salida</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;"> items);</span><span style="font-size:10pt;font-family:&amp;"> // Salida</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;"> </span></p>
</div>
<p><span style="font-size:11pt;font-family:&amp;">Bien una vez tenemos nuestra Interfaz con el exterior, faltan por hacer 2 clases importantes, las que tienen que ver con la Firma digital, estas son : AmazonSOAPHandler y AmazonSOAPHeaderData.</span></p>
<p><span style="font-size:11pt;font-family:&amp;">Estas dos<br />
son algo tediosas de explicar, ya que simplemente tratan de meter los datos en el mensaje (los que Amazon pide), cifrarlos y demás.</span></p>
<p><strong><span style="font-size:11pt;font-family:&amp;">AmazonSOAPHandler</span></strong></p>
<p><strong><em>AmazonSOAPHandler </em></strong><span style="font-size:11pt;font-family:&amp;">es una clase concreta que implementa una clase abstracta  SOAPHandler&lt;SOAPMessageContext&gt; que tiene distintos métodos que se muestran a continuación.</span></p>
<p>Tanto esta clase como AmazonSOAPHeaderData han sido desarrolladas a partir de este otro tutorial en ingles y alemán. <a href="http://blog.whitehorses.nl/2009/10/18/amazons-product-advertising-api/">http://blog.whitehorses.nl/2009/10/18/amazons-product-advertising-api/</a></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">boolean</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
handleMessage(SOAPMessageContext context){</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
Boolean outboundProperty =  (Boolean) context.get(MessageContext.</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">MESSAGE_OUTBOUND_PROPERTY</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">if</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> (outboundProperty.booleanValue()) {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">try</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
AmazonSOAPHeaderData factory = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> AmazonSOAPHeaderData();</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
factory.setAction(</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">accion</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
SOAPEnvelope envelope = context.getMessage().getSOAPPart().getEnvelope();</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
SOAPHeader header = envelope.addHeader();</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
factory.addInformationToSOAPHeader(header);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
} </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">catch</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> (Exception ex) {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
Logger.<em>getLogger</em>(AmazonSOAPHandler.</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">class</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">.getName()).log(Level.</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">SEVERE</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">null</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">,<br />
ex);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">true</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">;</span></p>
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;" lang="EN-US"> }</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;text-indent:35.4pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">void</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
close(</span>MessageContext <span style="font-size:10pt;font-family:&amp;" lang="EN-US">messagecontext) {}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
Set&lt;QName&gt; getHeaders() {</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">null</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">;}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">boolean</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
handleFault(SOAPMessageContext messagecontext) { </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">true</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">;}</span></p>
</div>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;"><span style="font-family:&amp;">Estos métodos son obligatorios implementarlos aunque en realidad no hagan mucho, el único importante es handleMessage y el siguiente getSignature():</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;"><span style="font-family:&amp;"> </span></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:0 4pt 1pt;">
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;">
<p><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String getSignature(String operation,<br />
String timeStamp, </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">byte</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">[] secretBytes)<br />
{</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">try</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String<br />
toSign = operation + timeStamp;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">byte</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">[]<br />
toSignBytes = stringToUtf8(toSign);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> Mac<br />
signer = Mac.<em>getInstance</em>(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;HmacSHA256&#8243;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> SecretKeySpec<br />
keySpec = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> SecretKeySpec(secretBytes, </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;HmacSHA256&#8243;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> signer.init(keySpec);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> signer.update(toSignBytes);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">byte</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">[]<br />
signBytes = signer.doFinal();</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String<br />
signature = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String(Base64.<em>encode</em>(signBytes));</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
signature;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> }<br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">catch</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">(NoSuchAlgorithmException nsae) {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">throw</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
RuntimeException(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;NoSuchAlgorithmException was thrown.&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">,<br />
nsae);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> }<br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">catch</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">(InvalidKeyException ike) {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">throw</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
RuntimeException(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;InvalidKeyException was thrown.&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">,<br />
ike);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><span style="font-size:10pt;font-family:&amp;">}</span></p>
<p class="MsoNormal" style="background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:&amp;"><br />
}</span></p>
</div>
<p><span style="font-size:11pt;font-family:&amp;">Resto de métodos que debe implementar la clase para uso personal:</span></p>
<div style="border:solid windowtext 1pt;background:#DBE5F1;padding:1pt 4pt;">
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String getTimestamp() {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> Calendar<br />
calendar = Calendar.<em>getInstance</em>();</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> SimpleDateFormat<br />
dateFormat = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> SimpleDateFormat(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;yyyy-MM-dd&#8217;T'HH:mm:ss&#8217;Z'&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> dateFormat.setTimeZone(TimeZone.<em>getTimeZone</em>(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;UTC&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">));</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
dateFormat.format(calendar.getTime());</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> }</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">byte</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">[]<br />
stringToUtf8(String source) {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">try</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
source.getBytes(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;UTF-8&#8243;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> }<br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">catch</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> (UnsupportedEncodingException e) {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">//<br />
This will never happen.  UTF-8 is always available.</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">throw</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
RuntimeException(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;getBytes threw an<br />
UnsupportedEncodingException&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, e);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> }</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US">}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">void</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
appendTextElement(Node node, String elementName, String elementText) {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> Element<br />
element = node.getOwnerDocument().createElement(elementName);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> element.setTextContent(elementText);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> node.appendChild(element);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#DBE5F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;">}</span></p>
</div>
<p class="MsoNormal">
<p class="MsoNormal"><strong><span style="font-family:&amp;">AmazonSOAPHeaderData</span></strong></p>
<p class="MsoNormal"><span style="font-family:&amp;">Esta clase es la encargada de añadirle al mensaje información de la firma digital. Debeis que poner vuestro par de claves Access Key ID y Secrete Key (Esta oculta en Amazon, tendréis que pulsar para verla) en los dos atributos marcados con asteriscos, una es más corta que la otra.</span></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;line-height:115%;font-family:&amp;">Obtener las claves</span></strong></p>
<p><strong> </strong><span style="font-family:&amp;">Vas a Amazon Web Services ( <a href="http://aws.amazon.com/">http://aws.amazon.com/</a> ), te registras/identificas, y vas a esta sección arriba a la izquierda: <strong>Your Account&gt; Security Credentials</strong></span><br />
<a href="http://tutorialesprincipiantes.files.wordpress.com/2009/12/image002.gif"><img class="alignnone size-full wp-image-11" title="image002" src="http://tutorialesprincipiantes.files.wordpress.com/2009/12/image002.gif?w=480" alt=""   /></a></p>
<p class="MsoNormal"><span style="font-family:&amp;">Una vez allí vamos a Access Credentials, lo verás sin pulsar nada, y nos aparecerá las claves que tenemos en el panel (Access Keys), por defecto y al registrarnos nos dan una (suficiente).</span></p>
<p>Si le damos a “Show” nos saldrá el panel con la pintura granate ( la pintura granate esta tachando la clave secreta (Secret Key) y la pintura verde tapa la clave de acceso (Access Key).</p>
<p><a href="http://tutorialesprincipiantes.files.wordpress.com/2009/12/image003.gif"><img class="alignnone size-medium wp-image-12" title="image003" src="http://tutorialesprincipiantes.files.wordpress.com/2009/12/image003.gif?w=614&#038;h=307" alt="" width="614" height="307" /></a></p>
<div style="border:solid windowtext 1pt;background:#C6D9F1;padding:1pt;">
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">class</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
AmazonSOAPHeaderData { </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">static</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">final</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">UTF8_CHARSET</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;UTF-8&#8243;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">static</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">final</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">HMAC_SHA256_ALGORITHM</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;HmacSHA256&#8243;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">awsAccessKeyId</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;****************&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">awsSecretKey</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;***************************************&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">action</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;ItemLookup&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">static</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">final</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">prefix</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;aws&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">static</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">final</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">uri</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;http://security.amazonaws.com/doc/2007-01-01/&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> SecretKeySpec </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">secretKeySpec</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">null</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> Mac </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">mac</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">null</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">; </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">void</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
setAction(String accion){</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">action</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = accion;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> AmazonSOAPHeaderData() { </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">try</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> { </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">byte</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">[] secretyKeyBytes = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">awsSecretKey</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">.getBytes(</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">UTF8_CHARSET</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">secretKeySpec</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
SecretKeySpec(secretyKeyBytes, </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">HMAC_SHA256_ALGORITHM</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">mac</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> = Mac.<em>getInstance</em>(</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">HMAC_SHA256_ALGORITHM</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">mac</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">.init(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">secretKeySpec</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
} </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">catch</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> (Exception e) { </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">throw</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
RuntimeException(</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">HMAC_SHA256_ALGORITHM</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> + </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;<br />
is unsupported!&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, e); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
} </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
} </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">@SuppressWarnings</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;static-access&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">)</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String hmac(String stringToSign) {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String sig = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">byte</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">[] data;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">byte</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">[] rawHmac;</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">try</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> {</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
data = stringToSign.getBytes(</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">UTF8_CHARSET</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
rawHmac = </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">mac</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">.doFinal(data);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
Base64 encoder = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> Base64();</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
sig = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String(encoder.<em>encode</em>(rawHmac));</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
} </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">catch</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> (UnsupportedEncodingException e)<br />
{</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">throw</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
RuntimeException(</span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">UTF8_CHARSET</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> + </span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;<br />
is unsupported!&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, e);</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> sig.trim();</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
}</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">private</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> String createTimestamp() { </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
Calendar cal = Calendar.<em>getInstance</em>(); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
DateFormat dfm = </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">new</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> SimpleDateFormat(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;yyyy-MM-dd&#8217;T'HH:mm:ss&#8217;Z'&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
dfm.setTimeZone(TimeZone.<em>getTimeZone</em>(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;GMT&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">)); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">return</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> dfm.format(cal.getTime()); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
} </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">public</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">void</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
addInformationToSOAPHeader(SOAPHeader header) </span><strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US">throws</span></strong><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
SOAPException { </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
SOAPFactory factory = SOAPFactory.<em>newInstance</em>(); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String timestamp = createTimestamp(); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
String signature = hmac(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">action</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US"> + timestamp); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
SOAPElement accessKeyElem = </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
factory.createElement(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;AWSAccessKeyId&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">prefix</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">uri</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
accessKeyElem.addTextNode(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">awsAccessKeyId</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
SOAPElement timestampElem = </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
factory.createElement(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;Timestamp&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">prefix</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">uri</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
timestampElem.addTextNode(timestamp); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
SOAPElement signatureElem = </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
factory.createElement(</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">&#8220;Signature&#8221;</span><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">prefix</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">, </span><em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">uri</span></em><span style="font-size:10pt;font-family:&amp;" lang="EN-US">); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
signatureElem.addTextNode(signature); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
header.addChildElement(accessKeyElem); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
header.addChildElement(timestampElem); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
header.addChildElement(signatureElem); </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:#C6D9F1;border:none;padding:0;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><br />
</span><span style="font-size:10pt;font-family:&amp;">} </span></p>
</div>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:white;"><span style="font-size:10pt;font-family:&amp;"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:white;"><span style="font-size:10pt;font-family:&amp;"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:white;">
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:white;"><span style="font-family:&amp;">¡ Y con esto ya tenemos suficiente para empezar a toquitear con Amazon Web Services ! </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:white;"><span style="font-size:10pt;font-family:&amp;"> </span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;background:white;"><span style="font-size:10pt;font-family:&amp;"> </span></p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tutorialesprincipiantes.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tutorialesprincipiantes.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tutorialesprincipiantes.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tutorialesprincipiantes.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tutorialesprincipiantes.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tutorialesprincipiantes.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tutorialesprincipiantes.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tutorialesprincipiantes.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tutorialesprincipiantes.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tutorialesprincipiantes.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tutorialesprincipiantes.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tutorialesprincipiantes.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tutorialesprincipiantes.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tutorialesprincipiantes.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tutorialesprincipiantes.wordpress.com&amp;blog=10901390&amp;post=5&amp;subd=tutorialesprincipiantes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tutorialesprincipiantes.wordpress.com/2009/12/10/amazon-advertising-api-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ad493d9bb1be3c0c8cb7c65934b95744?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">fallotonto</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2009/12/image002.gif" medium="image">
			<media:title type="html">image002</media:title>
		</media:content>

		<media:content url="http://tutorialesprincipiantes.files.wordpress.com/2009/12/image003.gif?w=300" medium="image">
			<media:title type="html">image003</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://tutorialesprincipiantes.wordpress.com/2009/12/10/hello-world/</link>
		<comments>http://tutorialesprincipiantes.wordpress.com/2009/12/10/hello-world/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 21:32:05 +0000</pubDate>
		<dc:creator>fallotonto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[¡ Hola mundo !<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tutorialesprincipiantes.wordpress.com&amp;blog=10901390&amp;post=1&amp;subd=tutorialesprincipiantes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>¡ Hola mundo !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tutorialesprincipiantes.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tutorialesprincipiantes.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tutorialesprincipiantes.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tutorialesprincipiantes.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tutorialesprincipiantes.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tutorialesprincipiantes.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tutorialesprincipiantes.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tutorialesprincipiantes.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tutorialesprincipiantes.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tutorialesprincipiantes.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tutorialesprincipiantes.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tutorialesprincipiantes.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tutorialesprincipiantes.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tutorialesprincipiantes.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tutorialesprincipiantes.wordpress.com&amp;blog=10901390&amp;post=1&amp;subd=tutorialesprincipiantes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tutorialesprincipiantes.wordpress.com/2009/12/10/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ad493d9bb1be3c0c8cb7c65934b95744?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">fallotonto</media:title>
		</media:content>
	</item>
	</channel>
</rss>
