<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-24610915</id><updated>2011-12-15T03:38:35.523+01:00</updated><title type='text'>Arquitectura Orientada a Servicios (SOA)</title><subtitle type='html'>Blog destinado a todo lo relacionado con las arquitecturas orientadas a servicios (SOA) tanto a nivel de tecnología, como a nivel de metodología.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24610915.post-2037585557325721681</id><published>2007-06-22T18:24:00.000+02:00</published><updated>2007-06-22T18:26:15.054+02:00</updated><title type='text'>Aviso Importante</title><content type='html'>Hola a todos.&lt;br /&gt;&lt;br /&gt;Por problemas familiares hacía mucho tiempo que no publicaba en el blog. Ahora parece que se han solucionado, y por tanto aprovecho este post para comunicaros que próximamente seguiré publicando, y resolviendo cualquier duda que me queráis plantear.&lt;br /&gt;&lt;br /&gt;Muchas gracias a todos y un saludo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-2037585557325721681?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/2037585557325721681/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=2037585557325721681&amp;isPopup=true' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/2037585557325721681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/2037585557325721681'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2007/06/aviso-importante.html' title='Aviso Importante'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-116591464509319658</id><published>2006-12-12T08:39:00.000+01:00</published><updated>2006-12-12T10:13:14.506+01:00</updated><title type='text'>Artículo Tecnológico: "WSDL: El contrato de un Servicio"</title><content type='html'>Ahí va una pequeña historia.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"Pablo es un desarrollador que está realizando un portal corporativo para una empresa farmacéutica. Una de las funcionalidades del portal es incluir un buscador de internet. Como Pablo es muy listo, sabe que el mejor buscador que existe es Google, y por tanto decide navegar por la web para ver si encuentra alguna información sobre el algoritmo de búsqueda que utiliza este famoso buscador.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Después de interminables horas de búsqueda, descubre que Google ofrece su buscador en forma de Servicio Web. En ese momento Pablo piensa... ¿Por qué construir algo que ya existe, es bueno, y puedo utlizarlo aunque mi portal esté desarrollado en Java?&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Por lo tanto Pablo decide utilizar el Servicio Web de Google. Pero ¿Cómo utilizarlo? ¿Qué datos debe enviar? ¿Qué datos va a recibir? ¿Cuales son las funcionalidades que ofrece el Servicio de Google?&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Toda esta información que necesita Pablo debería estar en algún lugar, ya que es imprescindible para acceder al Servicio."&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;Desde el punto de vista de los negocios, todas las respuestas a las preguntas de Pablo definen el contrato entre el cliente (el que usa el Servicio) y el proveedor (quien lo implementa), ya que indica las pautas a seguir por cada una de las partes.&lt;br /&gt;&lt;br /&gt;Pues bien, WSDL (Web Service Description Language) es el lenguaje estándar definido por el W3C para describir un Servicio Web y crear ese contrato. No es un documento obligatorio, pero es muy importante que sea estándar ya que así se podrá acceder de manera dinámica a los Servicios.&lt;br /&gt;&lt;br /&gt;Es muy importante entender WSDL porque es la parte fundamental para desarrollar Servicios. No es necesario saber construir un documento WSDL (ya que lo construyen automáticamente las herramientas de desarrollo), pero sí entenderlo. Este es el objetivo de este artículo.&lt;br /&gt;&lt;br /&gt;La versión actual de WSDL es la 2.0, pero en este artículo se describirá la 1.1, ya que no todos los servidores soportan la última versión.&lt;br /&gt;&lt;br /&gt;WSDL es un lenguaje basado en XML creado para definir el interfaz de los servicios. Un documento WSDL está divido en dos partes claramente diferenciadas:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Parte concreta:&lt;/strong&gt; Es la parte que define el "como" y "donde".&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Parte abstracta:&lt;/strong&gt; Es la parte que define qué hace el servicio a través de los mensajes que envía y recibe.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;El esquema simplificado de un documento WSDL es el siguiente:&lt;/p&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/x/blogger/6879/2553/1600/884814/WSDL%20Estructura.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger/6879/2553/400/923927/WSDL%20Estructura.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://photos1.blogger.com/x/blogger/6879/2553/1600/665721/WSDL%20Estructura.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;A continuación se detalla brevemente cada una de las partes que componen un documento WSDL. En la parte abstracta tenemos:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;types:&lt;/strong&gt; Esta etiqueta define las estructuras de datos que se utilizarán para construir los mensajes de petición como de respuesta. Estas estructuras de datos pueden construirse con cualquier lenguaje, pero lo más normal es hacerlo con XML Schema. Este apartado es el más complicado sobre todo cuando tengamos que construir estructuras de datos muy complejas.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;message:&lt;/strong&gt; Describe los mensajes que se van a intercambiar entre el cliente y el Servicio Web. Un mensaje puede estar dividido en varias partes, por ejemplo, si en un mensaje queremos enviar datos y una imagen.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;portType:&lt;/strong&gt; Define el conjunto de operaciones que soporta el Servicio Web. Una operación no es más que un grupo de mensajes que serán intercambiados. Cada operación puede enviar o recibir al menos un mensaje cada vez.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;En WSDL 1.1 existen 4 tipos de operaciones:&lt;/p&gt;&lt;p&gt;               + Unidireccional: El Servicio recibe un mensaje y no genera ninguna respuesta.&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;/operation&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;               + Petición / Respuesta: El Servicio recibe un mensaje y responde con otro.&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;output message="y:m2"&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;/operation&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;operation name=""&gt;&lt;/p&gt;&lt;p&gt;               + Solicitud / Respuesta: El Servicio envía un mensaje y recibe una respuesta.&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;/operation&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;               + Notificación: El Servicio envía un mensaje, y no recibe respuesta.&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;operation name="op1"&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;output message="x:m1"&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;/operation&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;operation name="op1"&gt;&lt;/p&gt;&lt;p&gt;&lt;output message="x:m1"&gt;&lt;/p&gt;&lt;p&gt;&lt;/operation&gt;&lt;/p&gt;&lt;p&gt;Aunque WSDL 1.1 define los 4 tipos de operaciones, sólo soporta las 2 primeras.&lt;/p&gt;&lt;p&gt;En la parte concreta tenemos:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;binding:&lt;/strong&gt; Describe como formatear los mensajes para interactuar con un Servicio determinado. WSDL no define un estándar para formatear mensajes. Para ello utilizar la extensibilidad para definir como intercambiar los mensajes usando SOAP, HTTP, MIME, etc...&lt;/li&gt;&lt;li&gt;&lt;strong&gt;services:&lt;/strong&gt; Este elemento indica donde se encuentra el Servicio usando la etiqueta &lt;em&gt;&lt;port&gt;&lt;/em&gt;. Cada etiqueta &lt;em&gt;&lt;port&gt;&lt;/em&gt;define el formato de los mensajes, y la dirección donde se encuentra el servicio que acepta mensajes en ese formato.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Como conclusión, el interfaz de un Servicio es el componente fundamental ya que define lo que ofrece el Servicio. Es muy importante dedicarle todo el tiempo necesario, ya que cualquier modificación provocará cambios en el resto de nuestras aplicaciones.&lt;operation name="op1"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-116591464509319658?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/116591464509319658/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=116591464509319658&amp;isPopup=true' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/116591464509319658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/116591464509319658'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/12/artculo-tecnolgico-wsdl-el-contrato-de.html' title='Artículo Tecnológico: &quot;WSDL: El contrato de un Servicio&quot;'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-115687200807607045</id><published>2006-08-29T18:09:00.000+02:00</published><updated>2006-12-01T09:45:02.930+01:00</updated><title type='text'>Artículo Tecnológico: "El IDE ha muerto, viva el ISE"</title><content type='html'>IDE son las siglas de Integrated Development Environment, es decir entorno de desarrollo integrado. Estamos hartos de oir esta palabra, y de asociarla a la típica herramienta de desarrollo como el famoso Websphere Studio Application Developer. Pero, ¿Estas herramientas son capaces de soportar el desarrollo de aplicaciones SOA? Rotundamente no.&lt;br /&gt;&lt;br /&gt;Para que una herramienta sea capaz de soportar el desarrollo de aplicaciones SOA, es necesario que cumpla con una serie de características principales:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ofrecer la posibilidad de desarrollar código en un lenguaje determinado.&lt;/li&gt;&lt;li&gt;Ofrecer todas las capacidades necesarias para construir servicios.&lt;/li&gt;&lt;li&gt;Ofrecer la capacidad necesaria para diseñar procesos de negocio.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Actualmente los IDE sólo ofrecen la primera característica y un sucedaneo de la segunda. Por esta razón, las grandes empresas que ofrecen herramientas, han tomado la decisión de evolucionar las herramientas de desarrollo que ofrecen, y crear así los ISE (Integrated Service Environment). Un ISE no es más que un IDE, pero con las funcionalidades necesarias para permitir diseñar y desarrollar servicios (sobre todo servicios web) y procesos de negocio. Por lo tanto, si estás pensando desarrollar una aplicación SOA, te recomiendo que sigas leyendo este artículo.&lt;/p&gt;&lt;p&gt;En este artículo no se pretende indicar cual es la mejor herramienta, si no proporcionar un rango de herramientas disponibles para que así podais seleccionar la que mejor se adapte a vuestras necesidades. La primera toma de decisión será si deseamos una herramienta de pago o bien una herramienta de software libre.&lt;/p&gt;&lt;p&gt;En cuanto a software libre, la herramienta por excelencia es Eclipse. Como muchos sabreis esta herramienta permite el desarrollo de aplicaciones Java, con lo cual para que soporte servicios es necesario añadir algún plug-in. En este sentido hay dos posibilidades:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Utilizar un plug-in de pago. El más utilizado es MyEclipse IDE.&lt;/li&gt;&lt;li&gt;Utilizar un plug-in libre. Se puede utilizar las web tools de eclipse group, pero son menos potentes que las anteriores.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La otra posibilidad al software libre son las herramientas de pago. las tres herramientas de pago más utilizadas son las siguientes:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;WebSphere Studio Application Developer Integration Edition:&lt;/strong&gt; Es la herramienta de IBM y como su nombre indica es una evolución del famoso WebSphere Studio Application Developer. Es muy importante reseñar aquí que IBM ha decidido cambiar el nombre a su herramienta de desarrollo, y por tanto el WSADIE se llama ahora Rational Application Developer for WebSphere Software o RAD. Esta herramienta tiene las siguientes características:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Editores visuales basados en Eclipse.&lt;/li&gt;&lt;li&gt;Soporte para el diseño y desarrollo de servicios web (Compatible con WS-I).&lt;/li&gt;&lt;li&gt;Diseñador de WorkFlows compatible con WS-BPEL.&lt;/li&gt;&lt;li&gt;Posee un depurador de procesos.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La característica de esta herramienta es que todas sus funcionalidades están integradas en el mismo entorno, lo que es bastante útil al no tener que instalar otras aplicaciones extra.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;WebLogic Integration:&lt;/strong&gt; Herramienta de desarrollo de Bea. Sus características son:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Editores visuales propios.&lt;/li&gt;&lt;li&gt;Soporte para servicios web.&lt;/li&gt;&lt;li&gt;Diseñador de workFlow propietario aunque en breve será compatible con WS-BPEL.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Esta herramienta también es muy utilizada. Posee la misma característica que RAD, es decir, tiene absolutamente todo integrado en la misma herramienta. Para mí el gran defecto de esta herramienta es que abusa del uso de asistentes, haciendo que la persona que utiliza la herramienta a veces no se entere de lo que está haciendo.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Oracle SOA Tools:&lt;/strong&gt; Conjunto de herramientas para el desarrollo SOA de Oracle. Posee las siguientes características:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Editores visuales (incluidos en la herramienta JDeveloper).&lt;/li&gt;&lt;li&gt;Soporte para el diseño y desarrollo de servicios web (incluido en la herramienta JDveloper), además posee compatibilidad WS-I.&lt;/li&gt;&lt;li&gt;Herramienta para diseñar WorkFlows compatible con WS-BPEL.&lt;/li&gt;&lt;li&gt;Posee un potente monitor de procesos de negocio.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;El inconveniente de Oracle SOA Tools es que todas las funcionalidades no están incluidas en una sola herramienta, si no que son un conjunto de herramientas. Eso sí, Oracle SOA Tools es la más potente.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Como conclusión a este artículo, indicar que si estáis probando herramientas, no desestimeis las de pago, porque tanto IBM como Bea como Oracle ofrecen versiones de prueba completas en su web (en la sección "Enlaces de Herramientas" teneis los links para descargarlas). Aprovechaos porque es muy interesante probarlas todas y construid vuestras aplicaciones SOA.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-115687200807607045?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/115687200807607045/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=115687200807607045&amp;isPopup=true' title='8 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/115687200807607045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/115687200807607045'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/08/artculo-tecnolgico-el-ide-ha-muerto.html' title='Artículo Tecnológico: &quot;El IDE ha muerto, viva el ISE&quot;'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-115624465250170429</id><published>2006-08-22T12:59:00.000+02:00</published><updated>2006-08-22T13:04:12.513+02:00</updated><title type='text'>Aviso Importante</title><content type='html'>Hola a todos. Quiero informaros que a partir de ahora, los artículos del blog serán de tres tipos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Artículos metodológicos:&lt;/strong&gt; Son aquellos referentes a metodología de desarrollo de aplicaciones SOA. Los artículos recogerán las diferentes fases y entregables de una aplicación SOA mediante un ejemplo.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Artículos tecnológicos:&lt;/strong&gt; Son los artículos que tratarán sobre todas las tecnologías existentes alrededor de los Servicios Web. Se hará todo mediante casos prácticos, y se implementará el ejemplo utilizado en los artículos metodológicos.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Referencias a otra documentación:&lt;/strong&gt; Son artículos donde se comentará y proporcionará documentación extra para que la podais consultar.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Saludos&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-115624465250170429?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/115624465250170429/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=115624465250170429&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/115624465250170429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/115624465250170429'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/08/aviso-importante.html' title='Aviso Importante'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-115589884337362344</id><published>2006-08-18T12:36:00.000+02:00</published><updated>2006-12-26T11:41:23.990+01:00</updated><title type='text'>Modelado de servicios</title><content type='html'>Después de todos los artículos del blog, una cosa ha quedado clara: "&lt;em&gt;una aplicación SOA está formada por un conjunto de servicios interconectados cuyo objetivo es automatizar uno o varios procesos de negocio&lt;/em&gt;".&lt;br /&gt;&lt;br /&gt;Por tanto, a la hora de construir una aplicación SOA, el elemento sobre el que debemos enfocar nuestros esfuerzos es el concepto de servicio. En este punto surgen una serie de preguntas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;¿Cómo puedo saber cuántos servicios se deben crear?&lt;/li&gt;&lt;li&gt;¿Qué tipos de servicios existen?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La primera pregunta es demasiado compleja para contestarla en un solo artículo. Por tanto, me centraré en la última.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;¿Qué tipos de servicios existen?&lt;/strong&gt;. Esta pregunta se la hace todo desarrollador a la hora de enfrentarse a una aplicación SOA. Existen varias clasificaciones dependiendo de su autor. A mí me gusta la más simple, porque a la vez me parece la más práctica para tener una visión general de una aplicación SOA.&lt;/p&gt;&lt;p&gt;Existen básicamente tres tipos de servicios, dividos en base a sus funcionalidades:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Servicios controladores:&lt;/strong&gt; Son los encargados de recibir las peticiones de los clientes y realizar las llamadas necesarias a otros servicios (en la secuencia adecuada) para devolver una respuesta. Es decir, son los servicios encargados de coordinar al resto de servicios. Si analizamos bien este tipo de servicios, nos daremos cuenta de que representan a los procesos de negocio que queremos implementar, ya que un proceso de negocio no es más que un conjunto de tareas ejecutadas en una determinada secuencia para obtener un objetivo.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Servicios de negocio:&lt;/strong&gt; Son los servicios que representan una tarea de negocio, y que forman parte de un proceso de negocio. Este tipo de servicios suelen ser poco reutilizables porque están orientados a resolver una tarea muy puntual.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Servicios de utilidad: &lt;/strong&gt;Son aquellos servicios que se caracterizan por representar una tarea altamente reutilizable. Existen dos tipos, los servicios orientados al negocio que representan una tarea de negocio altamente reutilizable entre aplicaciones y los servicios tecnológicos encargados de encapsular una determinada tecnología y por tanto altamente reutilizables (ej: servicio de acceso a bases de datos relacionales).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;con lo cual, una aplicación SOA la podemos dividir en tres capas. La capa de recepción de peticiones (servicios controladores), la capa de tareas (servicios de negocio) la capa de lógica reutilizables (servicios de utilidad).&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/6879/2553/400/ModeladodeServicios.jpg" border="0" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-115589884337362344?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/115589884337362344/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=115589884337362344&amp;isPopup=true' title='8 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/115589884337362344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/115589884337362344'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/08/modelado-de-servicios.html' title='Modelado de servicios'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-115098509764240424</id><published>2006-06-22T16:04:00.000+02:00</published><updated>2006-06-29T19:58:56.460+02:00</updated><title type='text'>Principios de la orientación a servicios</title><content type='html'>Un problema con el que nos podemos encontrar a la hora de construir una aplicación SOA es si la aplicación construida realmente es una aplicación "SOA Compliant". Para comprobar si una aplicación lo es, la mejor forma de hacerlo es chequeando que la aplicación cumpla con los &lt;strong&gt;Principios de la Orientación a Servicios&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;No existe una definición estándar de cuales son los Principios de la Orientación a Servicios, por lo tanto, lo único que se puede proporcionar es un conjunto de Principios que estén muy asociados con la Orientación a Servicios. Estos Principios según Thomas Erl son:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Los Servicios deben ser reusables:&lt;/strong&gt; Todo servicio debe ser diseñado y construido pensando en su reutilización dentro de la misma aplicación, dentro del dominio de aplicaciones de la empresa o incluso dentro del dominio público para su uso masivo.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Los Servicios deben proporcionar un contrato formal:&lt;/strong&gt; Todo servicio desarrollado, debe proporcionar un contrato en el cual figuren: el nombre del servicio, su forma de acceso, las funcionales que ofrece, los datos de entrada de cada una de las funcionalidades y los datos de salida. De esta manera, todo consumidor del servicio, accederá a este mediante el contrato, logrando así la indepencia entre el consumidor y la implementación del propio servicio. En el caso de los Servicios Web, esto se logrará medienta la definición de interfaces con WSDL.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Los Servicios deben tener bajo acoplamiento:&lt;/strong&gt; Es decir, que los servicios tienen que ser independientes los unos de los otros. Para lograr ese bajo acoplamiento, lo que se hará es que cada vez que se vaya a ejecutar un servicio, se accederá a él a través del contrato, logrando así la independencia entre el servicio que se va a ejecutar y el que lo llama. Si conseguimos este bajo acoplamiento, entonces los servicios podrán ser totalmente reutilizables.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Los Servicios deben permitir la composición:&lt;/strong&gt; Todo servicio debe ser construido de tal manera que pueda ser utilizado para construir servicios genéricos de más alto nivel, el cual estará compuesto de servicios de más bajo nivel. En el caso de los Servicios Web, esto se logrará mediante el uso de los protocolos para orquestación(WS-BPEL) y coreografía (WS-CDL).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Los Servicios deben de ser autónomos:&lt;/strong&gt; Todo Servicio debe tener su propio entorno de ejecución. De esta manera el servicio es totalmente independiente y nos podemos asegurar que así podrá ser reutilizable desde el punto de vista de la plataforma de ejecución.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Los Servicios no deben tener estado:&lt;/strong&gt; Un servicio no debe guardar ningún tipo de información. Esto es así porque una aplicación está formada por un conjunto de servicios, lo que implica que si un servicio almacena algún tipo de información, se pueden producir problemas de inconsistencia de datos. La solución, es que un servicio sólo contenga lógica, y que toda información esté almacenada en algún sistema de información sea del tipo que sea.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Los Servicios deben poder ser descubiertos:&lt;/strong&gt; Todo servicio debe poder ser descubierto de alguna forma para que pueda ser utilizado, consiguiendo así evitar la creación accidental de servicios que proporcionen las mismas funcionalidades. En el caso de los Servicios Web, el descubrimiento se logrará publicando los interfaces de los servicios en registros UDDI.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Cuando se desarrollan aplicaciones SOA es muy útil y necesario tener en cuenta siempre estos principios, ya que nos van a dar las pautas necesarias para tomar ciertas decisiones de diseño complejas. &lt;/p&gt;&lt;p&gt;Como se habrá podido observar, una característica muy importante de los &lt;strong&gt;Principios de la Orientación a Servicios&lt;/strong&gt;, es que todos ellos se inter-relacionan. El siguiente gráfico muestra la inter-relación de los diferentes principios:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 397px; CURSOR: hand; HEIGHT: 222px; TEXT-ALIGN: center" height="227" alt="" src="http://photos1.blogger.com/blogger/6879/2553/400/Principios%20OS.jpg" width="410" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Como se puede observar en el gráfico, el objetivo de la Orientación a Servicios es obtener software totalmente reutilizable a través de un conjunto de técnicas y principios como los descritos anteriormente.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-115098509764240424?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/115098509764240424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=115098509764240424&amp;isPopup=true' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/115098509764240424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/115098509764240424'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/06/principios-de-la-orientacin-servicios.html' title='Principios de la orientación a servicios'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-114985144018429791</id><published>2006-06-09T12:46:00.000+02:00</published><updated>2006-06-09T13:10:40.203+02:00</updated><title type='text'>SOA y los Servicios Web (II)</title><content type='html'>&lt;p&gt;Este artículo se centra en el segundo tipo de Arquitecturas Orientadas a Servicios, que yo he denominado SOA de segunda generación.&lt;br /&gt;&lt;br /&gt;Es el tipo utilizado actualmente, porque está basado en el SOA tradicional, añadiendo lo necesario para cubrir sus carencias. Es decir, proporciona los elementos necesarios para cumplir con todos los principios de la orientación a objetos.&lt;br /&gt;&lt;br /&gt;El esquema básico de una SOA de segunda generación es el mostrado en el siguiente gráfico:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/6879/2553/320/SOA%202%20Generacion.jpg" border="0" /&gt;&lt;p&gt;Como se puede observar, una SOA de segunda generación está formada por un conjunto de Funciones y por la Calidad del Servicio.&lt;br /&gt;&lt;br /&gt;La Funciones están formadas por: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Transporte:&lt;/strong&gt; Mecanismo utilizado para trasladar las peticiones desde el cliente, hasta el proveedor del servicio, y viceversa. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Protocolo de comunicación:&lt;/strong&gt; Es el sistema de comunicación entre el cliente y el proveedor de servicios. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Descripción del servicio:&lt;/strong&gt; Es un esquema utilizado para describir qué servicio es, como se le puede invocar, y cuales son los datos necesarios para realizar su invocación. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Servicio:&lt;/strong&gt; Es la implementación del servicio. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Proceso de negocio:&lt;/strong&gt; Es una colección de servicios, invocados en una determinada secuencia, con un conjunto particular de reglas para satisfaces un requisito de negocio. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Registro de servicios:&lt;/strong&gt; Es un repositorio de servicios y datos, usado por los proveedores de servicio y publicar los servicios, y para los clientes, donde buscarlos. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La calidad del servicio por: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Política:&lt;/strong&gt; Son un conjunto de reglas bajo las cuales, un proveedor de servicio hace que el servicio esté disponible para los clientes (&lt;em&gt;WS-Policy&lt;/em&gt;). &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Seguridad:&lt;/strong&gt; Son un conjunto de reglas que podrían ser aplicadas en la identificación, autorización y control de acceso a los servicios, por parte del cliente (&lt;em&gt;WS-Security&lt;/em&gt;). &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Transacción:&lt;/strong&gt; Conjunto de atributos que podrían ser aplicados sobre un grupo de servicios para devolver un conjunto de datos consistentes (&lt;em&gt;WS-Transaction, WS-Coordination&lt;/em&gt;). &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Gestión:&lt;/strong&gt; Conjunto de atributos que podrían ser aplicados para gestionar los servicios proporcionados (&lt;em&gt;WS-Manageability&lt;/em&gt;). &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Es decir, las SOA de segunda generación se basan en ampliar su funcionalidad mediante el uso de los estándares WS, que proporcionan funcionalidades como gestión de transacciones, seguridad, etc..&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-114985144018429791?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/114985144018429791/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=114985144018429791&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114985144018429791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114985144018429791'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/06/soa-y-los-servicios-web-ii.html' title='SOA y los Servicios Web (II)'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-114959902025337662</id><published>2006-06-06T14:51:00.000+02:00</published><updated>2006-06-06T18:07:28.666+02:00</updated><title type='text'>SOA y los Servicios Web (I)</title><content type='html'>En la actualidad el concepto de SOA ha resurgido, gracias al auge y madurez de una nueva tecnología: &lt;strong&gt;los Servicios Web.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Los Servicios Web se han convertido en el estandarte de SOA, ya que esta tecnología posee un conjunto de características que permiten cubrir todos los principios de la orientación a servicios, no como otras posibles tecnologías de implementación como colas de mensajes o CORBA.&lt;br /&gt;&lt;br /&gt;Centrándonos en los Servicios Web, podemos decir que con ellos se pueden generar dos tipos de Arquitecturas Orientadas a Servicios:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Arquitectura Orientada a Servicios Tradicional.&lt;/li&gt;&lt;li&gt;Arquitectura Orientada a Servicios de segunda generación.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;En el presente artículo describiré la primera de ellas.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;La SOA Tradicional es aquella que utiliza los principios y tecnologías básicos de los Servicios Web. Esto significa utilizar &lt;strong&gt;SOAP&lt;/strong&gt; como lenguaje de intercambio, &lt;strong&gt;WSDL&lt;/strong&gt; como lenguaje para la descripción de los servicios y &lt;strong&gt;UDDI&lt;/strong&gt; para la publicación o registro de los mismos. En el dibujo que se muestra a continuación, se puede ver la estructura básica de funcionamiento de una SOA tradicional.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/6879/2553/320/SOA%20Tradicional.0.jpg" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;En el gráfico anterior, se puede observar la existencia de tres roles claramente diferenciados:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Cliente del servicio:&lt;/strong&gt; Es el que solicita la ejecución del servicio web, y por lo tanto el que lo consume.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Proveedor del servicio:&lt;/strong&gt; Es el encargado de implementar el servicio web y ofrecerlo a los clientes.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Registro del servicio:&lt;/strong&gt; Es un repositorio donde se almacenan las descripciones de los servicios, para que así los clientes puedan buscar el servicio web que mejor se adapte a sus necesidades.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;La secuencia de ejecución es la siguiente:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; El proveedor del servicio da de alta el servicio web en el registro. Para realizar esto, el proveedor almacena en el registro el documento de descripción de este.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; El solicitante del servicio busca en el registro un servicio web que pueda adaptarse a sus necesidades.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Una vez seleccionado el servicio, el solicitante lo invoca mediante el envío de un mensaje SOAP, en el cual se indica la acción a realizar y los datos de entrada.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; El servicio web recibe la petición y ejecuta la funcionalidad. Para finalizar envía un mensaje SOAP al solicitante con los resultados obtenidos.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Por lo tanto, una SOA tradicional estará compuesta por un conjunto de servicios que reciben y envían mensajes SOAP en base a una descripción WSDL. Este tipo de arquitecturas hoy en día es muy utilizado, pero no es el más óptimo debido a que no porpociona una serie de características esenciales a la hora de crear una Arquitectura profesional. Estas características son:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Seguridad&lt;/li&gt;&lt;li&gt;Transaccionabilidad&lt;/li&gt;&lt;li&gt;Garantía de entrega&lt;/li&gt;&lt;li&gt;Orquestación&lt;/li&gt;&lt;li&gt;Coreografía&lt;/li&gt;&lt;li&gt;Direccionamiento&lt;/li&gt;&lt;li&gt;etc...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Estas características las ofrecen las SOA de segunda generación, que serán el tema central de otro artículo.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-114959902025337662?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/114959902025337662/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=114959902025337662&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114959902025337662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114959902025337662'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/06/soa-y-los-servicios-web-i.html' title='SOA y los Servicios Web (I)'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-114717079500750488</id><published>2006-05-09T12:32:00.000+02:00</published><updated>2006-05-20T20:32:55.226+02:00</updated><title type='text'>Elementos esenciales de una Arquitectura Orientada a Servicios</title><content type='html'>En las Arquitecturas Orientadas a Servicios, el elemento básico es el servicio. Pero únicamente con este concepto, no podríamos diseñar una arquitectura SOA.&lt;br /&gt;&lt;br /&gt;Cuatro son los elementos esenciales necesarios para la construcción de una Arquitectura Orientada a Servicios:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Operación:&lt;/strong&gt; Es la unidad de trabajo o procesamiento en una arquitectura SOA.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Servicio:&lt;/strong&gt; Es un contenedor de lógica. Estará compuesto por un conjunto de operaciones, las cuales las ofrecerá a sus usuarios.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Mensaje:&lt;/strong&gt; Para poder ejecutar una determinada operación, es necesario un conjunto de datos de entrada. A su vez, una vez ejecutada la operación, esta devolverá un resultado. Los mensajes son los encargados de encapsular esos datos de entrada y de salida.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Proceso de negocio:&lt;/strong&gt; Son un conjunto de operaciones ejecutadas en una determinada secuencia (intercambiando mensajes entre ellas) con el objetivo de realizar una determinada tarea.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="255" alt="" src="http://photos1.blogger.com/blogger/6879/2553/320/Elementos%20SOA.jpg" width="327" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Por lo tanto, una aplicación SOA estará formada por un conjunto de procesos de negocio. A su vez esos procesos de negocio estarán compuestos por aquellos que servicios que proporcionan las operaciones que se necesitan ejecutar para que el proceso de negocio llegue a buen término. Por último para ejecutar esas operaciones es necesario el envío de los datos necesarios mediante los correspondientes mensajes.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-114717079500750488?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/114717079500750488/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=114717079500750488&amp;isPopup=true' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114717079500750488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114717079500750488'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/05/elementos-esenciales-de-una.html' title='Elementos esenciales de una Arquitectura Orientada a Servicios'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-114652127605452319</id><published>2006-05-02T00:07:00.000+02:00</published><updated>2006-05-09T11:32:17.996+02:00</updated><title type='text'>12 pasos para migrar a un entorno SOA</title><content type='html'>En la gran mayoría de los casos, el desarrollo de una Arquitectura Orientada a Servicios, suele ser la solución adoptada a la horas de migrar aplicaciones antiguas a nuevos entornos.&lt;br /&gt;&lt;br /&gt;Esto se debe a que una arquitectura SOA, aporta ventajas como escalabilidad, flexibilidad, reutilización, etc... (ya sabeis que opino yo de esto. Es verdad siempre y cuando se haya destinado un gran esfuerzo [tiempo+ dinero] a desarrollar esa arquitectura SOA).&lt;br /&gt;&lt;br /&gt;Para realizar una migración, es necesario diseñar un plan de ejecución. Pues bien, &lt;strong&gt;David S. Linthicum&lt;/strong&gt;, gurú en el campo de SOA, ha definido en &lt;a href="http://www.integrationconsortium.org/docs/12_steps_to_SOA.pdf"&gt;este documento&lt;/a&gt; los 12 pasos que deberían seguirse para realizar una migración con plenas garantías de éxito.&lt;br /&gt;&lt;br /&gt;Es un documento muy recomendable, puesto que nos puede proporcionar una visión global de la complejidad a la hora de migrar a SOA. Ahora bien, no penseis que el documento va a solucionar vuestros problemas y dudas trascendentales, puesto que en él se indican cuales son los pasos en un plan de migración, pero no se centra en las técnicas y herramientas para acometer ese plan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-114652127605452319?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/114652127605452319/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=114652127605452319&amp;isPopup=true' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114652127605452319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114652127605452319'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/05/12-pasos-para-migrar-un-entorno-soa.html' title='12 pasos para migrar a un entorno SOA'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-114452161471161644</id><published>2006-04-08T20:18:00.000+02:00</published><updated>2006-09-27T13:57:49.096+02:00</updated><title type='text'>¿Quién define las pautas de SOA?</title><content type='html'>Mucha gente se pregunta qué organismo es el encargado de estandarizar o por lo menos gestionar SOA. La respuesta es muy sencilla puesto que no hay ningún organismo que pueda hacerlo, ya que SOA es un concepto abstracto, el cual se rige única y exclusivamente por los principios de la Orientación a Servicios.&lt;br /&gt;&lt;br /&gt;Pero entonces, ¿No hay manera de controlar la evolución de SOA? ?Cada fabricante podrá hacer lo que quiera?. Estas preguntas tienen una respuesta sencilla. Para comenzar, es necesario dejar un aspecto muy claro. Los Servicios Web, CORBA, MQSERIES, etc... son posibles tecnologías que se pueden utilizar a la hora de implementar una Arquitectura Orientada a Servicios y estas tecnologías si que están estandarizadas y gestionadas por diversas organizaciones. Por lo tanto, las organizaciones que dirigen el rumbo de SOA, son aquellas que estandarizan las diferentes tecnologías utilizadas para implementar una Arquitectura Orientada a Servicios.&lt;br /&gt;&lt;br /&gt;Como ejemplo, voy a poner el caso de los Servicios Web. Realmente los Servicios Web están formados por diferentes tecnologías, y por ello son varias las organizaciones que participan en su gestión. Concretamente son tres las organizaciones involucradas:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6879/2553/1600/images.2.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6879/2553/320/images.2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;World Wide Web Consortium&lt;/strong&gt;: Organismo muy conocido porque es el encargado de la estandarización de HTML y XML ( y tecnologías relacionadas). Referente a los Servicios Web, es el encargado de gestionar el protocolo de comunicación de los Servicios Web (SOAP), y el lenguaje de descripción de interfaces (WSDL). Más recientemente, W3C también se ha dedicado a estandarizar algunas de las extensiones WS-* de los Servicios Web. Concretamente se encarga de WS-CDL (Web Services Choreography Description Language) y de WS-Addresing.&lt;br /&gt;&lt;br /&gt;El W3C se caracteriza por ser muy formales y rigurosos a la hora de definir y gestionar tecnologías y protocolos, ofreciendo siempre las mejores garantías.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6879/2553/1600/Dibujo.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6879/2553/320/Dibujo.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;OASIS&lt;/strong&gt;: Anteriormente conocida como SGML Open, cambió su nombre para redirigir sus acciones de SGML hacia XML. Esta organización es bastante conocida por gestionar dos tecnologías muy conocidas. Es el encargado de desarrollar el estándar UDDI para el registro de Servicios Web, y también se encarga de gestionar la especificación ebXML es cual es un estandar para el intercambio de datos entre aplicaciones B2B. Actualmente también se encarga de desarrollar extensiones WS-* para los Servicios Web. Estas extensiones son WS-BPEL creada para la orquestación de Servicios Web y WS-Security para todos los aspectos relacionados con la seguridad.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6879/2553/1600/Dibujo.0.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="81" alt="" src="http://photos1.blogger.com/blogger/6879/2553/320/Dibujo.0.jpg" width="104" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Web Services Interoperability&lt;/strong&gt;: Este organismo es reciente (apareció en 2002), y su principal objetivo es asegurar que se utilizan los estándares adecuados y &lt;strong&gt;no &lt;/strong&gt;definirlos ni desarrollarlos. Por ello, este organismo ha definido un documento llamado perfíl básico (Basic Profile), en el cual se indican cuales son los estándares que se deberían utilizar para diseñar arquitecturas interoperables. Es decir, este documento es utilizado como mecanismo para generar arquitecturas SOA "compliant". Actualmente también se han preocupado por un aspecto tan importante como la seguridad, y han publicado un perfíl de seguridad básico (Security Basic Profile) cuya finalidad es la misma que el anterior perfíl, pero relacionado con la seguridad. Además esta organización ha prometido seguir publicando perfiles para distintos aspectos relevantes de las arquitecturas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Como resumen, indicar que es necesario tener en cuenta las directrices y evolución de estas tres organizaciones a la hora de diseñar Arquitecturas Orientadas a Servicios mediante Servicios Web.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-114452161471161644?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/114452161471161644/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=114452161471161644&amp;isPopup=true' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114452161471161644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114452161471161644'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/04/quin-define-las-pautas-de-soa.html' title='¿Quién define las pautas de SOA?'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24610915.post-114364548595004895</id><published>2006-03-29T17:17:00.000+02:00</published><updated>2006-09-27T13:54:02.170+02:00</updated><title type='text'>pero, ¿Qué es realmente SOA?</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/6879/2553/1600/images.1.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6879/2553/320/images.1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;"SOA son las siglas de Arquitectura Orientada a Servicios..." &lt;/em&gt;Muchos libros comienzan con la frase anterior, y para mí es un error tremendo. En la actualidad, el mundo de las Tecnologías de la Información se ha convertido en&lt;a href="http://photos1.blogger.com/blogger/6879/2553/1600/images.0.jpg"&gt;&lt;/a&gt; un gran monstruo que mueve millones de euros. Este monstruo para sobrevivir y evolucionar tiene que utilizar técnicas publicitarias para introducir nuevas tecnologías que van a revolucionar la industria, pero que al final se quedan en meras anécdotas tecnológicas que no aportan nada especial ni revolucionario.&lt;br /&gt;&lt;br /&gt;Mucha gente piensa que SOA va por este camino, y que únicamente es un conjunto de siglas creadas por la industria, no existiendo nada por detrás. Este pensamiento lo ha creado sobre todo esos movimientos publicitarios de marketing y la explotación comercial por parte de las empresas del concepto de SOA.&lt;br /&gt;&lt;br /&gt;Siento decepcionar a algunos excépticos, pero SOA sí significa algo y es lo que pretendo demostrar con este pequeño artículo. Para comenzar a explicar el término SOA, lo primero no es indicar lo que significan las siglas (para mí lo menos importante), si no determinar lo que SOA no es, para así desasociar esta palabra con conceptos totalmente erroneos. A continuación relato afirmaciones erroneas acerca de SOA:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;"SOA es un término publicitario"&lt;/em&gt;: Esta afirmación en parte es cierta debido a que muchas empresas están utilizando este concepto como mera publicidad de sus actividades. Pero hay que tener clara una cosa, y es que la Orientación a Ser&lt;a href="http://photos1.blogger.com/blogger/6879/2553/1600/images.jpg"&gt;&lt;/a&gt;vicios no es un concepto abstracto y sin sustancia. La Orientación a Servicios define un paradigma de desarrollo de aplicaciones basado en una serie de principios como la reutilización, abstracción, independencia tecnológica, etc...&lt;/li&gt;&lt;li&gt;&lt;em&gt;"SOA es el nuevo nombre de los Servicios Web"&lt;/em&gt;: &lt;strong&gt;Esto es rotundamente falso&lt;/strong&gt;. La Orientación a Servicios existe desde hace aproximadamente 15 años (en esa época ni se pensaba en los Servicios Web) y por supuesto se puede implementar con distintas tecnologías como Colas de Mensajes y CORBA. Actualmente debido a la aparición de los Servicios Web, la Orientación a Servicios ha resurgido, ya que la mejor implementación de los principios de Orientación a Servicios es mediante los Servicios Web, y sobre todo a partir de la aparición de las extensiones de estos (WS-*).&lt;/li&gt;&lt;li&gt;&lt;em&gt;"Con SOA el desarrollo de aplicaciones es rápido y flexible"&lt;/em&gt;: Es una afirmación cierta si a continuación añadiéramos un "pero". Ese pero es que esa rapidez y flexibilidad no es instantánea. Es necesario un proceso lento en el que la empresa que aplique SOA sea capaz de asimilar los nuevos comportamientos que implica el utilizar un nuevo paradigma para el desarrollo de aplicaciones. Es decir, que SOA aporta muchas ventajas, pero a su vez aplicar todos los principios de la Orientación a Servicios es complejo y se necesita tiempo y expertos en el tema.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Con esta reflexión paso a definir según mi criterio qué es una Arquitectura Orientada a Servicios. Para mí SOA son un conjunto de servicios tanto de negocio como tecnológicos que interactuando entre ellos, proporcionan la lógica necesaria para construir aplicaciones de una manera rápida y cumpliendo siempre con los principios de la Orientación a Servicios (los cuales definiremos en otro artículo). Además SOA proporciona una serie de guías y recomendaciones para conseguir los objetivos que se impone una organización a la hora de desarrollar aplicaciones.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24610915-114364548595004895?l=arquitecturaorientadaaservicios.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arquitecturaorientadaaservicios.blogspot.com/feeds/114364548595004895/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24610915&amp;postID=114364548595004895&amp;isPopup=true' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114364548595004895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24610915/posts/default/114364548595004895'/><link rel='alternate' type='text/html' href='http://arquitecturaorientadaaservicios.blogspot.com/2006/03/pero-qu-es-realmente-soa.html' title='pero, ¿Qué es realmente SOA?'/><author><name>Antonio Barco</name><uri>http://www.blogger.com/profile/02103670937034988488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry></feed>
