Exploración de WebSphere Application Server Feature Pack for SCA: Parte 1: generalidades del paquete de funciones Service Component Architecture

Introducción a los conceptos de Open Service Component Architecture (SCA), objetivos de la tecnología y aspectos destacados de algunos puntos de integración claves que proporcionan importante valor a IBM WebSphere Application Server V7

Chao M Beck, Software Engineer, IBM

Chao Beck es Technical Lead del paquete de funciones para el programa inicial de SCA (Service Component Architecture). Desde hace tiempo es miembro del equipo de programas iniciales de Application Integration Middleware, responsable de la ejecución de programas iniciales para los productos IBM WebSphere Application Server. Chao se dedica a desarrollar y dar capacitación en nuevas funciones de productos y brindar soporte al cliente en programas previos a la disponibilidad general (pre-GA o iniciales) y programas posteriores a la disponibilidad general (post-GA o aceleración del cliente).



Stephen Kinder, Senior Technical Staff Member, IBM

Stephen Kinder es Senior Technical Staff Member y Lead Architect de la prestación de Service Component Architecture en WebSphere Application Server. Trabaja en IBM desde hace 20 años y participa en productos WebSphere desde hace 10 años.



28-07-2011

Introducción

IBM se ha referido en varias oportunidades a los atributos de la Arquitectura Orientada a servicios (SOA). Uno de los principios clave de una SOA en pleno funcionamiento consiste en que los procesos de negocios (compuestos por servicios de negocios) sean modelados , descompuestos en servicios que están montados a partir de varios servicios existentes y nuevos, implementados en un entorno de tiempo de ejecución y finalmente gestionados no sólo desde la perspectiva de TI, sino desde una perspectiva de rendimiento de negocios.

La Figura 1 muestra el ciclo de vida de una SOA. El ciclo se repite mientras los procesos se van modificando debido a presiones de negocios externas y a mejoras internas que se realizan a partir de la observación del proceso en funcionamiento. La naturaleza simbiótica de los negocios y la TI que se unen para llevar a cabo la ingeniería de una SOA empresarial entrega aplicaciones ágiles y relevantes de negocios, que resuelven problemas tangibles y relevantes de negocios.

Figura 1. Ciclo de vida de una SOA
Ciclo de vida de una SOA

En muchas empresas, el catálogo de servicios de negocios de granularidad gruesa que existen dentro de una SOA, en realidad están alojados por una gran variedad de tecnologías, como aplicaciones COBOL CICS®, aplicaciones WebSphere Application Server J2EE™, SAP, .NET®y otras. De hecho, aún en empresas pequeñas, el "catálogo de negocios" comprende servicios alojados por terceros y de disponibilidad general a través de Internet. En una SOA ágil, la empresa debe ser capaz de conectar y componer estos servicios en conjunto a lo largo de la evolución de la aplicación de negocios; sin embargo, la cantidad de tecnologías que puede manejar un programador es limitada. Las empresas necesitan incorporar mejor sus activos de negocios fundamentales, que pueden estar alojados de diferentes formas, para sumarlos a nuevos servicios de negocios. También necesitan reducir la cantidad de tecnologías con las que debe lidiar el programador de negocios.

Las empresas buscan una forma de separar el conocimiento que deben adquirir para usar un servicio, mientras que los desarrolladores buscan la forma de descomponer servicios de granularidad gruesa sin tener que manejar los detalles de la implementación de servicios. Service Component Architecture (SCA) se diseñó para proporcionar estas capacidades. SCA extrae los detalles de la conectividad de servicios sin intervención de los desarrolladores, captura el diseño de servicios relevante (como las interfaces y los contratos semánticos) en un formato de metadatos abiertos y portables que pueden comprender casi todo los proveedores y aísla la lógica de negocios de los eventuales cambios de infraestructura que se realizan sobre todas las aplicaciones.

La posibilidad de extraer estos detalles de una aplicación en formato de metadatos consumible genera a una serie de situaciones interesantes:

  • Las interfaces de servicios y sus semánticas se ponen en primer plano, como debe ser en una SOA: la aplicación declara los servicios que provee, los servicios que consume y las semánticas de las que depende de manera tal que no se mezclan con su propia tecnología de implementación (y no se confunden con los detalles de otras implementaciones).
  • La lógica de negocios se aísla de los cambios en la composición de los servicios al tiempo que las rutas de acceso se separan por servicios y sus correspondientes consumidores.
  • Esto permite visualizar las relaciones entre servicios mediante un paradigma de circuito impreso, que proporciona una representación visual del diseño de servicios altamente intuitiva.

Historia resumida de SCA

Aunque pueda sorprenderle, la SCA no es nueva; IBM WebSphere Process Server fue pionero en SCA y, en su Versión 6.0, se convirtió en el precursor de la versión abierta. Esta tecnología de vanguardia, que aquí denominaremos "SCA clásica", fue empleada por IBM para generar las especificaciones SCA abiertas patrocinadas por varios proveedores de la organización Open Service Oriented Architecture (OSOA). SCA representa el modelo de programación SOA de la IBM SOA Foundation y es una tecnología estratégica de las carteras de software de gestión del servidor de aplicaciones y de procesos de negocios de IBM.

La misión de la organización OSOA consiste en definir un conjunto central de especificaciones que describan un modelo de lenguaje neutro para la construcción de aplicaciones y sistemas usando Service Oriented Architecture. OSOA también definió un conjunto de especificaciones con lenguaje de programación específico que amplían y complementan otros enfoques de implementación de servicios como Java™, BPEL, C++ y tecnologías Java EE como los componentes EJB™. SCA también se basa en otros estándares abiertos como los servicios web.

SCA no compite con otros lenguajes y marcos de implementación de servicios de granularidad fina, sino que es una tecnología complementaria e inclusiva.

Paralelamente al trabajo en la especificación, se están conformando una serie de comunidades de código abierto que han desarrollado implementaciones de las especificaciones. WebSphere Application Sever V7 aplica el proyectoTuscany de Apache de código abierto para la prestación del núcleo del tiempo de ejecución SCA e integra dicho soporte a las funciones de servidor de aplicaciones empresariales de alto nivel inherentes a WebSphere Application Server.

A fines del año 2007, los proveedores de OSOA volcaron sus especificaciones, conocimientos y pasión en OASIS, lo que enriqueció a SCA con el aporte de un proceso de estandarización formal y la creación de una suite de pruebas de cumplimiento de disponibilidad pública. Se calcula que este esfuerzo de estandarización estará terminado durante 2009.


Generalidades de la tecnología SCA

El compuesto SCA

Como su nombre lo indica, Service Component Architecture es un modelo de componentes. Las partes de granularidad gruesa orientadas a servicios se representan como componentes . Dichos componentes describen los servicios que proporcionan y los servicios de los que dependen o a los que hacen referencia . Estos también señalan el segmento de código que brinda la implementación del servicio. Los componentes se interconectan a través de cables y es posible personalizar su comportamiento a través de la exposición de propiedades configurables. Los propósitos de políticas y de calidad de servicio se emplean para decorar servicios o referencias (llamados propósitos de interacción ) y componentes (llamados propósitos de implementación ) y así configurar las semánticas adicionales que proporciona el tiempo de ejecución SCA.

Figura 2. El compuesto SCA
El compuesto SCA

Los montajes de componentes se componen formalmente como compuestos . Un compuesto es un conjunto de componentes y cables; es el montaje de los servicios. El compuesto proporciona un mecanismo de delimitación que define el límite local de los componentes y además puede ocultar servicios provistos en componentes que no están dirigidos a otras aplicaciones SOA. Una vez definido, un compuesto se puede reutilizar y proporcionar la implementación para otros componentes de forma anidada. Los componentes, montajes, cables internos y las definiciones de servicios y referencias se escriben en un lenguaje XML abierto llamado Service Component Definition Language (SCDL). Los servicios y las referencias se vinculan a protocolos específicos (como, por ejemplo, servicios web) mediante el uso de enlaces . Los enlaces forman parte de la definición SCDL y, de esta manera, la lógica de negocios (implementación) no se contamina con este detalle.

Cabe destacar que SCA abarca un conjunto de especificaciones de lenguaje neutral que permiten que esta se desarrolle en una variedad de entornos de aplicaciones. Cada entorno de aplicaciones ofrecerá un conjunto de características de implementación, un enlace y políticas que resultan adecuadas para ese ambiente en particular. Por ejemplo, WebSphere Application Server Feature Pack for Service Component Architecture V1.0 ofrece soporte de componentes de implementaciones Java o de otros compuestos SCA y expresamente no soporta la implementaciones C o C++.

El aporte de SCA

Una vez definido, un compuesto debe implementarse en el tiempo de ejecución junto con los artefactos de implementación de componentes relacionados. El aporte de SCA consiste en un paquete que contiene todos estos artefactos. Se incluye un documento XML especial denominado “documento de aportes de SCA” (sca-contribution.xml) que explica cómo implementar los compuestos y define dependencias (es decir, otros aportes) que contienen artefactos que deben ejecutar los aportes (como esquemas XML compartidos o clases de utilidades Java).

Figura 3. El aporte de SCA
El aporte de SCA

Los aportes se implementan dentro de un dominio SCA. Además de ser un mecanismo de delimitación administrativa, el dominio SCA proporciona un catálogo de servicios que puede usar el tiempo de ejecución SCA para simplificar el cableado de los componentes SCA. Los servicios implementados en el dominio SCA están disponibles a través del enlace predeterminado SCA, el cual permite especificar las metas de referencia mediante un nombre de dominio lógico delimitado, sin tener que especificar los detalles de configuración del punto final (como lo requieren otros enlaces) y defiriendo al tiempo de ejecución SCA el encontrar la mejor ruta de acceso posible hacia el servicio. A efectos del Feature Pack for SCA, el dominio y la célula SCA poseen una misma delimitación y los servicios implementados en el dominio SCA están disponibles en toda la célula WebSphere a través del enlace predeterminado.


Modelo de programación SCA Java

SCA adopta las mejoras de simplificación de uso proporcionadas por las anotaciones Java EE 5 y el diseño contenedor moderno que soporta la inversión del control o la inyección de dependencias. Las implementaciones SCA Java brindan la ventaja de declarar definiciones de componentes usando anotaciones, mediante la inyección de políticas, propiedades y referencias de servicios SCA dentro del código a través del contenedor SCA. Las implementaciones que utilizan este patrón no sólo se mantienen aisladas de los elementos específicos de las API contenedoras o marco, sino que además permanecen separadas de la configuración del punto final. La arquitectura SCA posibilita a los montadores de aplicaciones a invalidar las anotaciones proporcionadas con metadatos formales en el código, lo que permite mantener un desarrollo simple y, al mismo tiempo, proporcionar un riguroso control de la configuración y de las políticas de servicios a la implementación empresarial.


Por qué utilizar SCA

Los principales casos de uso del modelo de programación SCA giran en torno a la capacidad de abstraer las funciones de negocios en servicios libremente acoplados, los cuales se implementan a través de componentes de granularidad gruesa, composiciones de componentes de granularidad fina y composiciones de componentes de granularidad gruesa. SCA proporciona composición en dos ejes: composición por referencia y composición por implementación. Los componentes SCA pueden componer servicios mediante la orquestación del patrón de invocación de dichos servicios a través de un único modelo de programación de invocaciones independientemente de dónde y cómo se implementen los servicios. SCA también proporciona composición con la implementación del uso de un montaje de componentes de granularidad más fina como si se tratara de la implementación de un componente de granularidad gruesa. Los componentes de granularidad fina se encuentran en las hojas de composición por implementación, mientras que los componentes de granularidad gruesa se encuentran en el root.

La Tabla 1 clasifica de manera general a las distintas tecnologías de componentes en base a su utilización comomodelos de componentes de granularidad fina o gruesa . Esta tabla se centra en los aspectos que más inciden sobre la granularidad; a saber: la abstracción, el formato de datos, la independencia del transporte, el patrón de interacción y la mediación.

Tabla 1. Comparación de los modelos de componentes
Modelo de componentesGranularidad finaGranularidad gruesa
POJO
  • Semántica local sólida
  • Abstracción limitada
  • Composición limitada
  • Datos de gráficos de objetos
  • Patrón captador/establecedor común
  • Sin capacidad remota
  • Sin mediación
EJB 3
  • Semántica local sólida pero las anotaciones son poco consistentes
  • Abstracción limitada
  • Datos de gráficos de objetos
  • Independencia del transporte limitada
  • Datos de estilo de documentos no prohibidos
  • Calidad de servicio declarativa
  • Sin mediación
Spring
  • Ídem EJB 3
  • Sin capacidad remota
  • Datos de estilo de documentos no prohibidos
Bean de sesiones sin estado EJB 2.0 o posterior
  • Semántica local no óptima, transparencia local/remota
  • Abstracción limitada
  • Datos de gráficos de objetos
  • Independencia del transporte limitada
  • Difícil de mediar
  • Sin asincronía
SCA
  • Semántica local sólida en Java
  • Datos de gráficos de objetos a nivel local
  • Asincronía
  • Buena abstracción, independencia de lenguajes
  • Buena independencia del transporte
  • Asincronía
  • Basado en documentos remotamente
  • Montaje intermediable
Java API for XML Web services (JAX-WS)
  • Sin semántica local
  • Abstracción limitada
  • Independencia del transporte limitada
  • Asincronía
  • Basado en documentos
  • Intermediable

Valor de WebSphere Application Server

IBM WebSphere Application Server incluye código abierto de Apache para brindar la base del contenedor SCA. Tuscany proporciona mecanismos para conectar distintos aspectos de la arquitectura SCA, como enlaces de datos y protocolo e implementaciones. A excepción de los casos expresamente detallados en la documentación del producto WebSphere Application Server, no se soporta ninguna característica específica de Tuscany.

La implementación de los aportes de SCA se integra con la administración de aplicaciones de WebSphere Application Server aprovechando una característica V7 nueva denominada “soporte de aplicaciones de nivel de negocios”, la cual permite la implementación de los aportes de SCA sin la necesidad de paquetes Java EE. Los servicios implementados en estos aportes pueden agregarse al dominio SCA de nivel de célula de WebSphere Application Server, lo cual permite a otras aplicaciones usar el enlace predeterminado SCA dentro de la célula, simplificando así el cableado de los componentes SCA.

Los propósitos y políticas de calidad de servicio de los aportes SCA se integran con la seguridad, transacción y la gestión establecida de políticas de servicios web de WebSphere Application Server, brindando a las aplicaciones SCA calidad de servicios de nivel empresarial.

Los servicios SCA implementados en WebSphere Application Server se encuentran disponibles a través de configuraciones de alta disponibilidad Network Deployment y esto hace que los aportes SCA logren potenciar la tecnología de clustering que se espera de las aplicaciones WebSphere.

SCA como tecnología es además una tecnología habilitadora de productos de middleware, que proporciona soporte de componentes y montajes flexible directamente relacionado con sus particulares misiones de funcionalidad. Por ejemplo, WebSphere Application Server usará SCA para centrarse en proporcionar una solución robusta y de alcance empresarial para componer servicios y construir lógica de negocios para aplicaciones SOA, en cambio, WebSphere Enterprise Service Bus, por ejemplo, usa SCA para proporcionar un marco de mediación de alto nivel que exponga los puntos finales de servicios virtuales y brinde completa flexibilidad para la conexión de tecnologías dispares. Si bien estos productos usan una tecnología en común, la forma en que se utilizan las herramientas lo ayudará a determinar cuál producto es más adecuado para desarrollar soluciones SOA específicas.


Resumen

El Feature Pack for SCA proporciona una experiencia de programación SOA p simplificada a WebSphere Application Server V7. Esta entrega inicial de tecnología SCA brinda un marco para la composición de servicios de granularidad gruesa a través de un mecanismo orientado a metadatos ágil, flexible y abierto. Este paquete de funciones:

  • Ofrece un paradigma de montaje de circuito impreso orientado a servicios para la composición de aplicaciones SOA, el cual se centra en qué son los servicios en lugar de cómo se implementan los servicios.
  • Brinda a los desarrolladores una adecuada separación de los intereses de la lógica de negocios SOA al aislarlos de los detalles correspondientes a los servicios que se consumen o de las rutas de acceso mediante las cuales se ponen a disposición los servicios.
  • Le permite adoptar sus servicios existentes al brindar conectividad para sus activos existentes a través de servicios web y componentes EJB.
  • Proporciona una forma simple de crear servicios de granularidad gruesa usando inyecciones de dependencias y un enlace SCA de fácil utilización que simplifica el cableado.
  • Reutilización de los servicios de granularidad gruesa sin necesidad de conocer los detalles de sus entornos de implementación o alojamiento.

Este artículo es el primero de una serie que analiza los distintos aspectos de esta nueva e interesante tecnología.

Recursos

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere
ArticleID=458181
ArticleTitle=Exploración de WebSphere Application Server Feature Pack for SCA: Parte 1: generalidades del paquete de funciones Service Component Architecture
publish-date=07282011