Lic. Julio C. Alcubilla B.
twitter:@editorglobal
Ya hemos descrito que Arquitectura Orientada a Servicios (en inglés Service-oriented architecture o SOA), es un concepto de arquitectura de software, el cual define la utilización de servicios para dar soporte a los requerimientos de software del usuario. Ahora bien...¿cómo opera una infraestructura SOA?...
En un ambiente SOA, los nodos de la red hacen disponibles sus recursos a otros participantes en la red, como servicios independientes a los que tienen acceso de un modo estandarizado. Al contrario de las arquitecturas orientadas a objetos, los desarrollos o soluciones SOAs están formadas por servicios de aplicación débilmente acoplados y altamente interoperables. Para comunicarse entre sí, estos servicios se basan en una definición formal independiente de la plataforma subyacente y del lenguaje de programación (p.ej., WSDL). La definición de la interfaz encapsula (oculta) las particularidades de una implementación, lo que la hace independiente del fabricante, del lenguaje de programación o de la tecnología de desarrollo (como Java o .NET). Con esta arquitectura, se pretende que los componentes software desarrollados sean muy reusables, ya que la interfaz se define siguiendo un estándar; así, un servicio podría ser usado por una aplicación Java.Los lenguajes de alto nivel como BPEL(enlace en inglés) o WS-coordination, llevan el concepto de servicio... un paso adelante al proporcionar métodos de definición y soporte para flujos de trabajo y procesos de negocio.
Componentes de una SOA
Servicio: Una función sin estado, auto-contenida, que acepta una(s) llamada(s) y devuelve una(s) respuesta(s), mediante una interfaz bien definida. Los servicios pueden también ejecutar unidades discretas de trabajo como serían editar y procesar una transacción. Los servicios no dependen del estado de otras funciones o procesos. La tecnología concreta utilizada para prestar el servicio no es parte de esta definición.
Orquestación: Secuenciar los servicios y proveer la lógica adicional para procesar datos. No incluye la presentación de los datos. Coordinación.
Estatus "sin estado": No mantiene ni depende de condición pre-existente alguna. En una SOA los servicios no son dependientes de la condición de ningún otro servicio. Reciben en la llamada toda la información que necesitan para dar una respuesta. Debido a que los servicios son "sin estado", pueden ser secuenciados (orquestados) en numerosas secuencias (algunas veces llamadas tuberías) para realizar la lógica del negocio.
Diseño y Desarrollo SOA
La metodología de modelado y diseño para aplicaciones SOA, se conoce como análisis y diseño orientado a servicios. La arquitectura orientada a servicios es tanto un marco de trabajo para el desarrollo de software, como un marco de trabajo de implantación. Para que un proyecto SOA tenga éxito los desarrolladores de software deben orientarse ellos mismos a esta mentalidad, de crear servicios comunes que son orquestados por clientes o middleware, para implementar los procesos de negocio. El desarrollo de sistemas usando SOA, requiere un compromiso con este modelo en términos de planificación, herramientas e infraestructura.
Cuando la mayoría de la gente habla de una arquitectura orientada a servicios están hablando de un juego de servicios residentes en Internet o en una intranet, usando servicios web. Hay un juego de estándares de los que se habla ligados a los servicios web. Incluyen los siguientes:
• XML
• HTTP
• SOAP
• WSDL
• UDDI
• XML
• HTTP
• SOAP
• WSDL
• UDDI
Hay que considerar, sin embargo, que un proyecto SOA, no necesariamente necesita utilizar estos estándares para ser "orientado a servicios" pero es altamente recomendable su uso.
SOA ¿En que nos ayuda? SOA no es una nueva tecnología sino evolución de conceptos y tecnologías existentes, soportadas por el uso de estándares abiertos. Esto impulsó a que las grandes empresas que desarrollan software, hayan volcado sus esfuerzos al desarrollo de productos que involucran todas las etapas que componen una arquitectura orientada a servicios, y ese es el factor clave que apalanca el crecimiento de esta tendencia en el mercado. A través de SOA, las empresas buscan la estandarización y automatización de los distintos procesos de negocio. Permite desarrollar nuevas soluciones en menor tiempo y a menor costo. Estas ventajas competitivas, son las que ayudan a una empresa a destacarse sobre la competencia y convertirla en una compañía de alta performance. Entre las ventajas, se cuenta un menor costo de integración, mayor flexibilidad, reutilización de los activos y servicios existentes, y un enfoque basado en estándares e interoperabilidad.
Para que SOA dé buenos resultados, deben estar involucrados todos los niveles de la empresa y un fuerte "sponsorship" gerencial. Y por otro lado encararlo como un camino de evolución (3-5 años), teniendo en cuenta que no es un fin en sí mismo sino un medio. En general, la evolución de las arquitecturas técnicas es liderada por los proyectos de negocio. Si se implementa SOA de la forma correcta, los resultados están garantizados. Implica no sólo definir la tecnología y productos sino también automatizar y modelar procesos, definir blueprints de arquitecturas de negocio, aplicativa, técnicas y de información, definir roadmaps.
No hay comentarios:
Publicar un comentario