Arquitectura de integración de servicios
Upcoming SlideShare
Loading in...5
×
 

Arquitectura de integración de servicios

on

  • 798 views

 

Statistics

Views

Total Views
798
Views on SlideShare
796
Embed Views
2

Actions

Likes
0
Downloads
18
Comments
0

2 Embeds 2

http://www.slideshare.net 1
http://sioeq12010.blogspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Arquitectura de integración de servicios Arquitectura de integración de servicios Document Transcript

  • 4625340-671195H. Veracruz, Ver. 27 de marzo de 2011Experiencia Educativa:Soluciones Integrales en las OrganizacionesTema:“Arquitectura de Integración de Servicios”Catedrático:Dr. Carlos A. Torres Gastelú Equipo 1:Carbajal Sardá Pablo de JesúsMoreno Coatzozón GustavoUniversidad VeracruzanaFacultad de AdministraciónLSCA<br />Contenido TOC o "1-3" h z u Introducción PAGEREF _Toc289681180 h 3Historia de SOA PAGEREF _Toc289681181 h 4Arquitectura Orientada a Sevicios (SOA) PAGEREF _Toc289681182 h 4Terminología PAGEREF _Toc289681183 h 5Diseño y desarrollo de SOA PAGEREF _Toc289681184 h 6Lenguajes de alto nivel PAGEREF _Toc289681185 h 8Diferencias con otras arquitecturas PAGEREF _Toc289681186 h 8Ambiente de Computo Distribuido (DCE) PAGEREF _Toc289681187 h 8CORBA PAGEREF _Toc289681188 h 8J2EE Y .NET PAGEREF _Toc289681189 h 8Beneficios PAGEREF _Toc289681190 h 9Conclusiones PAGEREF _Toc289681191 h 11Bibliografía PAGEREF _Toc289681192 h 12<br />Introducción<br />La Arquitectura de Integración de Servicios define las aplicaciones de negocios como reutilizables, componentes fáciles de cambiar en las funcionalidades del negocio y cómo estos componentes se interrelacionan. Este es el concepto de una arquitectura orientada a servicios (SOA). Mientras SOA ha sido considerado como mejor práctica en las últimas dos décadas, hasta la actualidad, muy pocas compañías estaban interesadas en ella. Ahora, de repente SOA es un tema de moda en las TI, y al centro de muchas iniciativas, esperando el incremento de la agilidad del negocio. En este punto, si su compañía no está al menos investigando SOA, debería hacerlo.<br />En una SOA, las discretas funciones o procesos de negocios son creados como componentes independientes con interfaces estándar que pueden ser accedidas por otras aplicaciones, servicios y procesos de negocios, sin importar la plataforma o lenguaje de programación. Estos servicios pueden ser combinados flexiblemente para soportar diferentes o cambiantes funciones y procesos de negocio. Soporta la creación de aplicaciones modulares, las cuales son rápidamente ensambladas desde servicios nuevos o existentes.<br />Pero los servicios Web han alterado significativamente la ecuación de valor de los SOAs, Los servicios Web son finalmente universalmente el estándar aceptado porque todos los principales vendedores pueden, en teoría, soportarla. <br />Trabajan en .NET, J2EE, y CORBA (mientras que todos se apeguen a la misma versión del estándar). A pesar de que algunas áreas del estándar siguen inmaduras, los servicios Web y XML han eliminado significativamente las barreras de riesgo de adoptar SOA, haciendo los beneficios mucho mayores que los riesgos.<br />Este trabajo tiene como objetivos:<br />Describir la historia de la arquitectura orientada a servicios (SOA).<br />Explicar la estructura de SOA.<br />Puntualizar los beneficios de SOA.<br />Arquitectura de Integración de Servicios<br />Historia de SOA<br />El concepto de SOA comenzó a principio de los 80s y fue tomada por las comunidades de redes y programación orientada a objetos. En 1983 el Modelo de Referencia OSI fue adoptado por la Organización Internacional de Estándares (ISO) como una referencia común para el desarrollo de estándares de comunicación de datos. Este define las funciones de comunicación de datos en siete capas. <br />Cada capa define servicios de comunicación y cada servicio tiene un intercambio claro y definido con la capa superior e inferior. Este SOA ha pasado la prueba del tiempo. Mientras la tecnología y capacidades de cada capa han cambiado automáticamente, la arquitectura en sí se mantiene. Mientras las interfaces entre servicios continúen igual, los servicios mismos podrán ser cambiados.<br />La Fundación de Software Abierto (OSF), el grupo responsable por los estándares de UNIX, desarrollaron el Ambiente Computacional Distribuido (DCE) basado en una arquitectura orientada a servicios. La DCE provee una infraestructura de servicios para computación distribuida, incluyendo la autentificación de los servicios de seguridad (Kerberos), directorio de servicios, procedimientos remotos y servicios de archivos y administración.<br />Arquitectura Orientada a Sevicios (SOA)<br />La Arquitectura Orientada a Servicios de cliente (en inglés Service Oriented Architecture), es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio.<br />Permite la creación de sistemas altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma bien definida de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros.<br />SOA define las siguientes capas de software:<br />Aplicaciones básicas. Sistemas desarrollados bajo cualquier arquitectura o tecnología, geográficamente dispersos y bajo cualquier figura de propiedad.<br />De exposición de funcionalidades. Donde las funcionalidades de la capa aplicativa son expuestas en forma de servicios (generalmente como servicios web).<br />De integración de servicios. Facilitan el intercambio de datos entre elementos de la capa aplicativa orientada a procesos empresariales internos o en colaboración.<br />De composición de procesos. Que define el proceso en términos del negocio y sus necesidades, y que varía en función del negocio.<br />De entrega. Donde los servicios son desplegados a los usuarios finales.<br />SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de negocio y puede dar soporte a las actividades de integración y consolidación.<br />Terminología<br />TérminoDefinición ServicioUna 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. Existen servicios asíncronos en los que una solicitud a un servicio crea, por ejemplo, un archivo, y en una segunda solicitud se obtiene ese archivoOrquestaciónSecuenciar los servicios y proveer la lógica adicional para procesar datos. No incluye la presentación de los datos. Coordinación.Sin estadoNo 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 o pipelines) para realizar la lógica del negocio.ProveedorLa función que brinda un servicio en respuesta a una llamada o petición desde un consumidor.ConsumidorLa función que consume el resultado del servicio provisto por un proveedor<br />Diseño y desarrollo de SOA<br />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 implementació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.<br />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. Existen diversos estándares relacionados a los servicios web. Incluyen los siguientes:<br />XML. Por sus siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.<br />HTTP. Hypertext Transfer Protocol o HTTP (en español protocolo de transferencia de hipertexto) es el protocolo usado en cada transacción de la World Wide Web. HTTP fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, el más importante de ellos es el RFC 2616 que especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse.<br />SOAP. (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y otros y está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web.<br />WSDL. Son las siglas de Web Services Description Language, un formato XML que se utiliza para describir servicios Web (algunas personas lo leen como wisdel). describe la interfaz pública a los servicios Web. Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan después al protocolo concreto de red y al formato del mensaje.<br />UDDI. Son las siglas del catálogo de negocios de Internet denominado Universal Description, Discovery and Integration. El registro en el catálogo se hace en XML. UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. El registro de un negocio en UDDI tiene tres partes:<br />Páginas blancas - dirección, contacto y otros identificadores conocidos.<br />Páginas amarillas - categorización industrial basada en taxonomías.<br />Páginas verdes - información técnica sobre los servicios que aportan las propias empresas.<br />Hay que considerar, sin embargo, que un sistema SOA no necesariamente necesita utilizar estos estándares para ser "orientado a servicios" pero es altamente recomendable su uso.<br />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. La mayoría de las definiciones de SOA identifican la utilización de Servicios Web (empleando SOAP y WSDL) en su implementación, no obstante se puede implementar SOA utilizando cualquier tecnología basada en servicios.<br />386715-337820<br />Lenguajes de alto nivel<br />Los lenguajes de alto nivel como BPEL 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.<br />Diferencias con otras arquitecturas<br />Al contrario de las arquitecturas orientado a objetos, las 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 Plataforma Java o Microsoft .NET). Con esta arquitectura, se pretende que los componentes de software desarrollados sean muy reutilizables, ya que la interfaz se define siguiendo un estándar; así, un servicio C# podría ser usado por una aplicación Java. En este sentido, ciertos autores definen SOA como una Súper-Abstracción.<br />Ambiente de Computo Distribuido (DCE)<br />La Fundación de Software Abierto (OSF), el grupo responsable por los estándares de UNIX, desarrollaron el Ambiente Computacional Distribuido (DCE) basado en una arquitectura orientada a servicios. La DCE provee una infraestructura de servicios para computación distribuida, incluyendo la autentificación de los servicios de seguridad (Kerberos), directorio de servicios, procedimientos remotos y servicios de archivos y administración.<br />CORBA<br />CORBA es una arquitectura e infraestructura de vendedor independiente definida por el Object Management Group (OMG) que permite conectar aplicaciones para que trabajen juntas entre la red, utilizando protocolos de estándares IIOP. CORBA permite la interoperabilidad entre plataformas. Las aplicaciones de CORBA son basadas en componentes.<br />J2EE Y .NET<br />Las tecnologías de componentes más actuales son J2EE y .NET, que son plataformas basadas en componentes que administran infraestructuras distribuidas y soportan los servicios Web para permitir aplicaciones de negocios interoperables. Es actualmente el modelo de componentes más desplegado.<br />.NET es la implementación de la arquitectura de servicios Web de Microsoft, la cual permite a las legiones de programadores de Microsoft, crear servicios Web en los lenguajes de programación con que están más familiarizados. Esto preserva una gran inversión en el conjunto de habilidades existentes. Los programadores de J2EE son usualmente más costosos que los programadores de Microsoft.<br />Beneficios<br />Los beneficios que puede obtener una organización que adopte SOA son:<br />Permitir agilidad del negocio. SOA es la mejor manera de permitir la agilidad del negocio. Maximiza el encaminamiento de recursos existentes mientras minimiza el tiempo y costo de desarrollar nuevas aplicaciones. En lugar de desarrollar aplicaciones de la nada, las compañías pueden utilizar las funciones existentes y crear nuevas soluciones mediante en ensamble de componentes de las aplicaciones de funcionalidades existentes o nuevas. Esto permite el rápido desarrollo de nuevas soluciones.<br />Proveer mayor retorno de inversión. Las compañías que definen servicios de reutilización en el negocio y crean o empaquetan funcionalidades de negocios como servicios estándar, maximizarán sus inversiones de TI mediante la reutilización y encaminamiento de características existentes.<br />Permitir agilidad de las TI. Las definiciones de servicios estándar pueden proveer una capa de abstracción para los servicios del negocio. Un servicio pude correr y ser accesado desde cualquier lugar. Por lo tanto las compañías pueden fácilmente cambiar la localización o tecnología del código resaltado.<br />Reducir costos de entrenamiento. Los servicios de negocio pueden ser encapsulados y abstraídos de forma que sean fáciles de utilizar y ensamblar a componentes de aplicaciones con la mínima programación. Las compañías pueden utilizar programadores con más habilidades para crear la funcionalidad resaltada y las definiciones de servicios, lo que puede ser reutilizado por programadores menos técnicos y aplicaciones visuales de ensamble.<br />Reducir el costo de pruebas y corrección de gusanos. Cada servicio es como una caja negra que realiza una función específica y tiene una interface publicada que acepta entradas definidas y produce salidas definidas. Cada servicio puede ser probado individualmente, y luego reutilizado una y otra vez. Las pruebas de interfaces son muy directas y pueden ser automatizadas utilizando herramientas de prueba.<br />Soporte de múltiples tipos de clientes y plataformas. La SOA ofrece una capa de abstracción de determinadas plataformas. Esto hace posible tener muchos dispositivos de usuario final, incluyendo buscadores y dispositivos móviles como celulares, PDAs y otros dispositivos especializados para utilizar las mimas funcionalidades del negocio y tienen información comunicada a diferentes dispositivos. Esta independencia de plataformas provee un gran ahorro para las grandes compañías que tienen millones de tecnologías en uso.<br />Rápido tiempo de desarrollo a través de desarrollo paralelo. Los diferentes programadores pueden trabajar independientemente en diferentes servicios, porque cada uno de éstos, está contenido en sí mismo y no depende del estado de otro servicio.<br />Aumento de escalabilidad y disponibilidad. Gracias a que SOA ofrece transparencia de localización, está el potencial de aumentar escalabilidad al añadir múltiples instancias de un servicio. La tecnología de balanceo podría dinámicamente encontrar y enrutar los pedidos de las instancias de servicios apropiadas.<br />Mejora en los tiempos de realización de cambios en procesos.<br />Facilidad para evolucionar a modelos de negocios basados en tercerización.<br />Facilidad para abordar modelos de negocios basados en colaboración con otros entes (socios, proveedores).<br />Poder para reemplazar elementos de la capa aplicativa SOA sin disrupción en el proceso de negocio<br />Facilidad para la integración de tecnologías disímiles<br />Conclusiones <br />Los servicios están construyendo bloques para aplicaciones modulares e integración por procesos. Definir servicios empresariales reutilizables, así como administrar y medir la reutilización, requieren una inversión y compromiso continuo. EL éxito con SOA es un asunto de administración como lo es la tecnología. Las compañías interesadas en lograr agilidad del negocio a largo plazo invertirán en todos los aspectos de la arquitectura de integración empresarial, incluyendo una arquitectura de integración de información y procesos. Las compañías enfocadas en resolver necesidades tácticas, definirán solo lo que es absolutamente necesario para moverse hacia la implementación.<br />La implementación de una Arquitectura de integración de Servicios, comúnmente (SOA), puede traer grandes beneficios para la empresa que la implemente.<br />Proveer estructura organizacional y soporte de alto nivel.<br />Implementar arquitectura basada en estándares.<br />Implementar un enfoque basado en estándares.<br />Pensar en grande, comenzar en pequeño.<br />Invertir en entrenamiento.<br />Uso de herramientas para ahorrar tiempo y dinero.<br />Bibliografía <br />Integración Empresarial<br />Gold – Bernstein & Ruth<br />Cap. 7 “Arquitectura de Integración de Servicios”<br />Wikipedia<br />“Arquitectura orientada a servicios”<br />http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios <br />Recuperado el 25 de marzo de 2011<br />“XML”<br />http://es.wikipedia.org/wiki/XML<br />Recuperado el 25 de marzo de 2011<br />“HTML”<br />http://es.wikipedia.org/wiki/HTTP<br />Recuperado el 25 de marzo de 2011<br />“SOAP”<br />http://es.wikipedia.org/wiki/SOAP <br />Recuperado el 25 de marzo de 2011<br />“WSDL”<br />http://es.wikipedia.org/wiki/WSDL <br />Recuperado el 25 de marzo de 2011<br />“UDDI”<br />http://es.wikipedia.org/wiki/UDDI <br />Recuperado el 25 de marzo de 2011<br />