You are on page 1of 3

SOA (Service Oriented Architecture)

Tercera entrega de la serie, en los posts anteriores se hizo mencion de cloud computing y de uno de los servicios que presta SAAS, en esta oportunidad haremos mension de la Arquitectura Orientada a Servicios (SOA por sus siglas en ingles), en donde veremos como esta arquitectura nos ayuda a integrar multiples sistemas de software segun las necesidades de un negocio. SOA (Service Oriented Architecture) es una arquitectura de sofware en donde las operaciones que realiza son denominados servicios, y as de dicha manera reflejar las reglas de negocio de una organizacin. Entre otros conceptos podemos encontrar: Es un marco de trabajo conceptual que permite a las organizaciones unir los objetivos de negocio con la infraestructura de TI. Es un concepto de arquitectura de software que define la utilizacin de servicios para dar soporte a los requisitos del negocio. Establece un marco para la integracin de aplicaciones independientes de manera que pueda accederse a sus funcionalidades, las cuales se ofrecen como servicios. Principios de la Orientacin a Servicios Todas las aplicaciones que son construidos mediante la arquitectura SOA, tienen que cumplir con los denominados principios de la orientacin a servicios, aqu no existen un listado definido de principios pero nos podemos basar en los que estn muy asociados a la orientacin a servicios. Los servicios deben ser reutilizables: Construccin de los servicios pensando en la reutilizacin de estos. Los servicios deben proporcionar un contrato formal: Estos deben de poseer una interfaz bien definida para con los otros servicios. Los servicios deben tener bajo acoplamiento: Esto va muy ligado a la reutilizacin ya que se tratan de definir servicios independientes. Los servicios deben permitir la composicin: Mediante la unin de varios servicios podemos construir servicios mas complejos. Los servicios deben de ser autnomos: Se podra considerar algo redundante con el principio de bajo acoplamiento, pero aqu se toma en cuenta el entorno de ejecucin del servicios el cual tiene que ser propio para cada uno. Los servicios no deben tener estado: Quiere decir que no tiene que guardar informacin, esto garantiza no tener resultados equivocados cuando un servicio es consumido por varios recursos. Elementos de una arquitectura orientada a servicios

Aqu es donde definimos que elementos forman parte de un software cuando se crea bajo esta arquitectura, uno de los elementos que ya se ha mencionado es el servicio que se podra considerar el fundamental para dicha arquitectura pero con el cual no abarcamos lo necesario, a continuacin se listan los elementos de forma general que componen esta arquitectura: 1. Operacin: Unidad de trabajo de un proceso. 2. Servicio: Conjunto de operaciones que se ofrece al usuario, estas manejan una lgica segn el servicio que se desea implementar. 3. Mensaje: Se refiere a la forma en que se encapsulan los datos de entrada y salida utilizados por los servicios. 4. Proceso de Negocio: Operaciones ejecutadas en una determinada secuencia, que resuelve una determinada tarea. Diseo y desarrollo Por lo regular para la implementacin de esta arquitectura se tiene que tomar en cuenta el anlisis y diseo de lo que se desea implementar y enfocndonos en la orientacin de servicios como marco de trabajo para la implementacin del software. Por lo regular la forma mas comn de la implementacin de una arquitectura SOA es por medio de servicios web, aunque no es la nica forma pero si la mas utilizada ya que por lo regular este tipo de aplicaciones son implementacin para entornos como internet o una Intranet de una compaa, entre algunas tecnologas utilizadas en los servicios web encontramos. XML HTTP SOAP WSDL UDDI Beneficios Mejora en los tiempos de realizacin de cambios en procesos: Al encontrarse los procesos divididos en mltiples servicios individuales en donde es mas fcil realizar cambios solo en los servicios que lo requieren, sin afectar a los dems. Facilidad para evolucionar a modelos de negocios basados en tercerizacin: En integrar sistemas y servicios desarrollados por otros. Facilidad para abordar modelos de negocios basados en colaboracin con otros entes (socios, proveedores): Comunicacin y uso de los servicios proporcionados por otros sistemas que no son los de nuestra empresa.

Poder para reemplazar elementos de la capa aplicativa SOA sin disrupcin en el proceso de negocio: Realizar cambios en los sistemas que se integran, sin alterar los servicios implementados con SOA. Facilidad para la integracin de tecnologas dismiles: Con SOA podemos integrar mltiples sistemas de distintas plataformas para que estn comunicados entre si, esto por medio de un lenguaje estndar de comunicacin entre ellos, si la implementacin es por medio de servicios web la comunicacin sera por medio de XML. Como se resuelven los retos de SOA Definir claramente los objetivos de negocio: Identificar los problemas o retos mas prioritarios, para as delimitar el alcance de la solucin que se implementara, mediante la definicin clara de dichos problemas, se puede considerar este punto como fundamental en el proceso de desarrollo de soluciones con SOA. Definir claramente el alcance del proyecto SOA: Debe responder a las necesidades concretas del negocio, ya que no es muy conveniente abarcar grandes implementaciones ya que con el tiempo tienden a cambiar la forma en que se realizan los procesos de negocio, con lo que se tienen que crear soluciones discretas, iterativas e incrementales.Evitar introducir SOA sin motives reales que lo justifiquen: La adopcin debe considerarse por una necesidad organizativa, NO tecnolgica, ya que se puede caer en la implementacin de servicios que no tienen ningn significado para el negocio con lo que generaria implementaciones costosas, complejas e inmajables. Gestionar el proceso: Asignar un propietario, para garantizar que responden adecuadamente a la necesidad que lo justifica. SOA y los Servicios Web En una arquitectura tradicional se suelen identificar roles definidos que interactan entre si los cuales son: cliente, proveedor y registro, los cuales se definen a continuacin: Cliente del servicio: Es el que solicita la ejecucin del servicio web, y por lo tanto el que lo consume. Proveedor del servicio: Es el encargado de implementar el servicio web y ofrecerlo a los clientes. Registro del servicio: Es un repositorio donde se almacenan las descripciones de los servicios.

You might also like