in

El camino hacia la integración de aplicaciones empresariales (EAI)

soa find bind execute paradigm

La mayoría de las empresas han realizado grandes inversiones en recursos del sistema a lo largo de muchos años. Estas empresas tienen una enorme cantidad de datos almacenados en sistemas de información empresarial heredados (EIS), por lo que no es práctico descartar los sistemas existentes. Es más rentable evolucionar y mejorar EIS. Pero, ¿cómo se puede hacer esto? La Arquitectura Orientada a Servicios (SOA) proporciona una solución rentable.

SOA no es un concepto nuevo. Sun definió SOA a finales de la década de 1990 para describir a Jini, que es un entorno para el descubrimiento dinámico y el uso de servicios a través de una red. Los servicios web han tomado el concepto de servicios introducido por la tecnología Jini y lo han implementado como servicios entregados a través de la web utilizando tecnologías como XML, Lenguaje de descripción de servicios web (WSDL), Protocolo simple de acceso a objetos (SOAP) y Descripción universal, descubrimiento y Integración (UDDI). SOA está emergiendo como el principal marco de integración y arquitectura en el complejo y heterogéneo entorno informático actual. Los intentos anteriores no permitían soluciones interoperables abiertas, pero dependían de API patentadas y requerían un alto grado de coordinación entre grupos. SOA puede ayudar a las organizaciones a optimizar los procesos para que puedan hacer negocios de manera más eficiente y adaptarse a las necesidades cambiantes y la competencia, lo que permite software como servicio concepto. eBay, por ejemplo, está abriendo su API de servicios web para su subasta en línea. El objetivo es impulsar a los desarrolladores a ganar dinero con la plataforma de eBay. A través de las nuevas API, los desarrolladores pueden crear aplicaciones personalizadas que se vinculan al sitio de subastas en línea y permiten que las aplicaciones envíen artículos para la venta. Estas aplicaciones suelen estar dirigidas a los vendedores, ya que los compradores deben dirigirse a ebay.com para pujar por los artículos. Sin embargo, este tipo de estrategia aumentará la base de clientes de eBay.

SOA y los servicios web son dos cosas diferentes, pero los servicios web son la forma preferida basada en estándares para realizar SOA. Este artículo proporciona una descripción general de SOA y el papel de los servicios web en su realización. El artículo proporciona:

  • Una descripción general del software como servicio
  • Un tutorial sobre SOA
  • Una descripción general de las plataformas de Sun para crear servicios web
  • Directrices para diseñar servicios web interoperables
  • Desafíos al migrar a SOA
  • Una descripción general de Java Business Integration (JSR 208)
  • Una discusión sobre los servicios web para la integración de aplicaciones empresariales

Arquitectura orientada a Servicios

SOA es un estilo arquitectónico para crear aplicaciones de software que utilizan servicios disponibles en una red como la web. Promueve el acoplamiento flexible entre los componentes de software para que puedan reutilizarse. Las aplicaciones en SOA se crean en función de los servicios. Un servicio es una implementación de una funcionalidad comercial bien definida, y dichos servicios pueden ser consumidos por los clientes en diferentes aplicaciones o procesos comerciales.

SOA permite la reutilización de activos existentes donde se pueden crear nuevos servicios a partir de una infraestructura de sistemas de TI existente. En otras palabras, permite a las empresas aprovechar las inversiones existentes permitiéndoles reutilizar aplicaciones existentes y promete interoperabilidad entre aplicaciones y tecnologías heterogéneas. SOA proporciona un nivel de flexibilidad que antes no era posible en el sentido de que:

  • Los servicios son componentes de software con interfaces bien definidas que son independientes de la implementación. Un aspecto importante de SOA es la separación de la interfaz de servicio (el qué) de su implementación (el cómo). Dichos servicios son consumidos por clientes que no están preocupados por cómo estos servicios ejecutarán sus solicitudes.
  • Los servicios son autónomos (realizan tareas predeterminadas) y están débilmente acoplados (para la independencia)
  • Los servicios se pueden descubrir de forma dinámica
  • Los servicios compuestos se pueden construir a partir de agregados de otros servicios.

SOA utiliza el buscar-vincular-ejecutar paradigma como se muestra en la Figura 1. En este paradigma, los proveedores de servicios registran su servicio en un registro público. Los consumidores utilizan este registro para encontrar servicios que coincidan con ciertos criterios. Si el registro tiene un servicio de este tipo, proporciona al consumidor un contrato y una dirección de punto final para ese servicio.

soa find bind execute paradigm

Figura 1: Paradigma Buscar-Bind-Ejecutar de SOA

Las aplicaciones basadas en SOA son aplicaciones distribuidas de varios niveles que tienen capas de presentación, lógica empresarial y persistencia. Los servicios son los componentes básicos de las aplicaciones SOA. Si bien cualquier funcionalidad se puede convertir en un servicio, el desafío es definir una interfaz de servicio que se encuentre en el nivel correcto de abstracción. Los servicios deben proporcionar una funcionalidad de grano grueso.

Realización de SOA con servicios web

Los servicios web son sistemas de software diseñados para admitir la interacción interoperable de máquina a máquina a través de una red. Esta interoperabilidad se obtiene a través de un conjunto de estándares abiertos basados ​​en XML, como WSDL, SOAP y UDDI. Estos estándares proporcionan un enfoque común para definir, publicar y utilizar servicios web.

Java Web Services Developer Pack 1.5 (Java WSDP 1.5) y Java 2 Platform, Enterprise Edition (J2EE) 1.4 de Sun se pueden utilizar para desarrollar servicios web de última generación para implementar SOA. La plataforma J2EE 1.4 le permite crear e implementar servicios web en su infraestructura de TI en la plataforma del servidor de aplicaciones. Proporciona las herramientas que necesita para crear, probar e implementar rápidamente servicios web y clientes que interoperan con otros servicios web y clientes que se ejecutan en plataformas basadas o no basadas en Java. Además, permite a las empresas exponer sus aplicaciones J2EE existentes como servicios web. Los servlets y los componentes de Enterprise JavaBeans (EJB) se pueden exponer como servicios web a los que pueden acceder clientes de servicios web basados ​​o no en Java. Las aplicaciones J2EE pueden actuar como clientes de servicios web por sí mismas y pueden comunicarse con otros servicios web, independientemente de cómo se implementen.

API de servicios web

Las plataformas Java WSDP 1.5 y J2EE 1.4 proporcionan las API de Java para XML (JAX) que se muestran en la Tabla 1.

Tabla 1: API de Java para XML (JAX) proporcionadas por J2EE 1.4

Nota: JAX-RPC 1.1 y SAAJ 1.2 incluyen soporte para Web Services Interoperability (WS-I) y Web Services Interoperability Basic Profile (WSI-BP), actualmente desarrollado por http://www.ws-i.org, que proporciona un conjunto de directrices sobre cómo desarrollar servicios web interoperables.

Con las API descritas en la Tabla 1, puede concentrarse en tareas de programación de alto nivel, en lugar de problemas de bajo nivel de XML y servicios web. En otras palabras, puede comenzar a desarrollar y utilizar servicios web Java WSDP 1.5 y J2EE 1.4 sin saber mucho sobre XML y los estándares de servicios web. Solo necesita lidiar con la semántica de Java, como la invocación de métodos y los tipos de datos. El trabajo sucio se hace entre bastidores, como se explica más adelante en la siguiente sección.

La Figura 2 ilustra cómo las API JAXR y JAX-RPC desempeñan un papel en la publicación, el descubrimiento y el uso de servicios web y, por lo tanto, en la realización de SOA.

publish discover invoke model

Figura 2: Modelo Publicar-Descubrir-Invocar de servicios web

Puntos finales de servicios web en J2EE 1.4

La plataforma J2EE 1.4 proporciona un mecanismo estandarizado para exponer servlets y EJB como servicios web. Dichos servicios se consideran puntos finales de servicios web (o puertos de servicios web) y pueden describirse mediante WSDL y publicarse en un registro UDDI para que los clientes de servicios web puedan descubrirlos y utilizarlos.

Una vez que se descubre un servicio web, el cliente realiza una solicitud a un servicio web. El servicio web procesa la solicitud y envía la respuesta al cliente. Para tener una idea de lo que sucede detrás de escena, considere la Figura 2, que muestra cómo un cliente Java se comunica con un servicio web Java en la plataforma J2EE 1.4. Tenga en cuenta que las aplicaciones J2EE pueden utilizar servicios web publicados por otros proveedores, independientemente de cómo se implementen. Sin embargo, en el caso de los clientes y servicios no basados ​​en Java, la cifra cambiaría ligeramente. Como se mencionó anteriormente, todos los detalles entre la solicitud y la respuesta ocurren detrás de escena. Solo se ocupa de la semántica típica del lenguaje de programación Java, como las llamadas a métodos Java, los tipos de datos Java, etc. No necesita preocuparse por mapear Java a XML y viceversa, o construir mensajes SOAP. Todo este trabajo de bajo nivel se realiza entre bastidores, lo que le permite concentrarse en los problemas de alto nivel.

client calling j2ee

Figura 3: Un cliente Java que llama a una web J2EE

Nota: J2EE 1.4 y Java WSDP 1.5 admiten servicios web basados ​​en RPC y orientados a documentos. En otras palabras, una vez que se descubre un servicio, el cliente puede invocar llamadas a procedimientos remotos en los métodos ofrecidos por el servicio, o enviar un documento XML al servicio web para su procesamiento.

Interoperabilidad

La interoperabilidad es el principio más importante de SOA. Esto se puede lograr mediante el uso de servicios web, ya que uno de los beneficios clave de los servicios web es la interoperabilidad, que permite que diferentes servicios web distribuidos se ejecuten en una variedad de plataformas de software y arquitecturas de hardware. El lenguaje de programación Java ya es un campeón en lo que respecta a la independencia de la plataforma y, en consecuencia, las plataformas J2EE 1.4 y Java WSDP 1.5 representan las plataformas ideales para desarrollar servicios web portátiles e interoperables.

La interoperabilidad y la portabilidad comienzan con las propias especificaciones estándar. Las plataformas J2EE 1.4 y Java WSDP 1.5 incluyen las tecnologías que admiten SOAP, WSDL, UDDI y ebXML. Este conjunto básico de especificaciones, que se utilizan para describir, publicar, habilitar el descubrimiento e invocar servicios web, se basa en XML y XML Schema. Si se ha mantenido al día con estas especificaciones básicas, sabe que es difícil determinar qué productos admiten qué niveles (o versiones) de las especificaciones. Esta tarea se vuelve más difícil cuando desea asegurarse de que sus servicios web sean interoperables.

los Organización de interoperabilidad de servicios web (WS-I) es una organización industrial abierta comprometida con la promoción de la interoperabilidad entre servicios web basada en definiciones comunes aceptadas por la industria y soporte de estándares XML relacionados. WS-I crea pautas y herramientas para ayudar a los desarrolladores a crear servicios web interoperables.

WS-I aborda la necesidad de interoperabilidad a través de perfiles. El primer perfil, WS-I Basic Profile 1.0 (que incluye XML Schema 1.0, SOAP 1.1, WSDL 1.1 y UDDI 2.0), intenta mejorar la interoperabilidad dentro de su alcance, que está limitado por la especificación a la que hace referencia.

Dado que las plataformas J2EE 1.4 y Java WSDP 1.5 se adhieren al WS-I Basic Profile 1.0, garantizan no solo que las aplicaciones sean portátiles en las implementaciones J2EE, sino también que los servicios web sean interoperables con cualquier servicio web implementado en cualquier otra plataforma que cumpla con Estándares WS-I como .Net.

Desafíos al migrar a SOA

SOA generalmente se realiza a través de servicios web. Las especificaciones de los servicios web pueden aumentar la confusión sobre cómo utilizar mejor SOA para resolver problemas comerciales. Para una transición sin problemas a SOA, los gerentes y desarrolladores de las organizaciones deben saber que:

  • SOA es un estilo arquitectónico que existe desde hace años. Los servicios web son la forma preferida de realizar SOA.
  • SOA es más que implementar software. Las organizaciones necesitan analizar sus técnicas de diseño y metodología de desarrollo y socio / cliente / proveedor …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

1uCk IDvDtDjFgoCy0vLkPw

Los Simpson se encuentra con la visualización de datos

Python – Variables globales