Service Component Architecture ( SCA ) es una tecnología de software diseñada para proporcionar un modelo para aplicaciones que siguen principios de arquitectura orientada a servicios . [1] La tecnología, creada por los principales proveedores de software, incluidos IBM , Oracle Corporation y TIBCO Software , abarca una amplia gama de tecnologías y, como tal, se especifica en especificaciones independientes para mantener el lenguaje de programación y la neutralidad del entorno de aplicaciones. [1] Muchas veces utiliza un bus de servicio empresarial (ESB).
Historia
Los socios originales anunciados el 30 de noviembre de 2005 fueron: BEA Systems , IBM , IONA Technologies , Oracle Corporation , SAP AG , Sybase , Xcalia y Zend Technologies . [2] Los miembros adicionales anunciados el 26 de julio de 2006 fueron Cape Clear , Interface21 , Primeton Technologies , Progress Software , Red Hat , Rogue Wave Software , Software AG , Sun Microsystems y TIBCO Software . [3] Siemens AG se unió a la colaboración de empresas que trabajan en la tecnología el 18 de septiembre de 2006.
Además de los socios, la comunidad de SCA tenía algunos partidarios formales. [4]
Definición
El 21 de marzo de 2007, OSOA Collaboration lanzó la primera versión de la especificación. [5] Las especificaciones decían que una aplicación diseñada con SCA debería tener:
- Desacoplamiento de la lógica empresarial de la aplicación de los detalles de sus llamadas de servicio invocadas
- Servicios de destino en una multitud de lenguajes, incluidos C ++ , Java , COBOL y PHP , así como XML , BPEL y XSLT
- La capacidad de trabajar con varias construcciones de comunicaciones, incluidas unidireccional, asincrónica, devolución de llamada y notificación.
- La capacidad de "vincularse" a componentes o servicios heredados, a los que se accede normalmente mediante tecnologías como Web Services , EJB , JMS , JCA , RMI , RPC , CORBA y otras.
- La capacidad de declarar (fuera de la lógica empresarial) los requisitos de calidad del servicio , como la seguridad, las transacciones y el uso de mensajería confiable.
- Los datos se pueden representar en objetos de datos de servicio
Por lo tanto, se promovió SCA para ofrecer flexibilidad para aplicaciones compuestas , incorporando de manera flexible componentes reutilizables en un estilo de programación SOA.
La empresa de marketing Gartner Group publicó un breve resumen que promovía el SCA y su tecnología incluida de Service Data Objects (SDO) en diciembre de 2005. [2]
Ventajas:
- se adapta a todas las tecnologías de plataforma Java existentes y C ++
- menor dependencia de la tecnología: no tiene que depender del lenguaje de programación Java o XML
- Service Data Objects es una especificación tecnológica para el acceso a datos
Desventajas:
- La especificación no aborda el rendimiento de las aplicaciones SOA, que sigue siendo un detractor de la adopción.
- Centrándose en la portabilidad (en lugar de la interoperabilidad), [6] haciéndolo vulnerable a repetir los errores de CORBA . [7]
Se dijo que SCA proporcionaba interoperabilidad a través de un enfoque llamado "Activación". Es el método que proporciona el mayor grado de autonomía de los componentes, en comparación con el método anterior de "mediación" (por ejemplo, JBI ) o "Invocación" utilizado en JCA , como lo explicó un arquitecto de SAP. [8]
Artefactos
El modelo de ensamblaje SCA consta de una serie de artefactos, que se definen mediante elementos contenidos en archivos XML. Un tiempo de ejecución SCA puede tener otras representaciones no estándar de los artefactos representados por estos archivos XML y puede permitir que la configuración de los sistemas se modifique dinámicamente. Sin embargo, los archivos XML definen la representación portátil de los artefactos SCA.
El artefacto básico es el compuesto , que es la unidad de implementación de SCA y que contiene servicios a los que se puede acceder de forma remota. Un compuesto contiene uno o más componentes , [9] que contienen la función empresarial proporcionada por el módulo. Los componentes ofrecen su función como servicios, que pueden ser utilizados por otros componentes dentro del mismo módulo o que pueden estar disponibles para su uso fuera del módulo a través de puntos de entrada . Los componentes también pueden depender de los servicios proporcionados por otros componentes; estas dependencias se denominan referencias . Las referencias pueden estar vinculadas a servicios proporcionados por otros componentes en el mismo módulo, o las referencias pueden vincularse a servicios proporcionados fuera del módulo, que pueden ser proporcionados por otros módulos. Las referencias a los servicios prestados fuera del módulo, incluidos los servicios prestados por otros módulos, son definidos por Servicios Externos en el módulo. También se incluyen en el módulo los vínculos entre referencias y servicios, representados por cables .
Un componente consta de una implementación configurada , donde una implementación es la parte del código del programa que implementa funciones comerciales. El componente configura la implementación con valores específicos para propiedades configurables declaradas por la implementación. El componente también puede configurar la implementación con cableado de referencias declaradas por la implementación a servicios objetivo específicos.
Los compuestos se implementan dentro de un sistema SCA . Un sistema SCA representa un conjunto de servicios que proporcionan un área de funcionalidad empresarial que está controlada por una sola organización. Por ejemplo, para el departamento de cuentas de una empresa, el sistema SCA podría cubrir todas las funciones relacionadas con las finanzas y podría contener una serie de módulos que se ocupan de áreas específicas de la contabilidad, uno para las cuentas de los clientes y otro para las cuentas por pagar. Para ayudar a construir y configurar el sistema SCA, los compuestos se pueden usar como implementaciones de componentes, de la misma manera que las clases Java o los procesos BPEL . En otras palabras, SCA permite una jerarquía de compuestos que es arbitrariamente profunda; este modelo anidado se denomina recursivo.
La captura y expresión de requisitos no funcionales, como la seguridad, es un aspecto importante de la definición del servicio y afecta a SCA durante todo el ciclo de vida de los componentes y las composiciones. SCA proporciona el marco de políticas para respaldar la especificación de restricciones, capacidades y expectativas de calidad de servicio (QoS), desde el diseño de componentes hasta la implementación concreta.
Transición a un organismo de normalización
Después de varios años de incubación bajo una colaboración informal de la industria, las primeras implementaciones (V1.0) de la especificación ahora están llegando al mercado. Los socios de colaboración indicaron que la estandarización formal de la industria sería el siguiente paso apropiado y anunciaron sus intenciones en marzo de 2007. La Organización de Desarrollo de Estándares elegida es la organización OASIS , y se ha establecido una nueva Sección de Miembros Open CSA de OASIS . [10] Se han presentado a OASIS los estatutos de seis nuevos Comités Técnicos (CT) [11] y se ha emitido una Convocatoria de Participación para los miembros del Comité Técnico dentro de la organización OASIS. Los Comités Técnicos planearon comenzar su trabajo en septiembre de 2007. La participación en estas CTs de OASIS SCA permanece abierta a todas las empresas, grupos sin fines de lucro, gobiernos, instituciones académicas e individuos. Los archivos del trabajo serán accesibles tanto para miembros como para no miembros, y OASIS ofrecerá un mecanismo para comentarios públicos. [12]
Ver también
- Apache ServiceMix
- Modelo y notación de procesos de negocio (BPMN)
- Docker (software)
- Integración de aplicaciones empresariales (EAI)
- Mule (software)
- ESB abierto
- Programación reactiva
- Arquitectura semántica orientada a servicios (SSOA)
- Modelado orientado a servicios
- Windows Communication Foundation (WCF)
Referencias
- ^ a b Edwards, Mike. "Arquitectura de componentes de servicio" . OASIS . Consultado el 7 de abril de 2011 .
- ^ a b Daniel Sholler, David Mitchell Smith (5 de diciembre de 2005). "La nueva especificación SOA ocupará un lugar entre los usuarios de Java" (PDF) . Grupo Gartner . Consultado el 29 de abril de 2017 .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Los proveedores de tecnología srinivas amplían su colaboración en tecnologías SOA http://www.hoise.com/primeur/06/articles/monthly/AE-PR-08-06-92.html Archivado el 12 de julio de 2011 en Wayback Machine.
- ^ Partidarios de la tecnología OSOA http://www.osoa.org/display/Main/Current+OSOA+Supporters+Community
- ^ "Especificaciones de la arquitectura de los componentes del servicio" . Abrir el sitio web de SOA Collaboration . Archivado desde el original el 12 de octubre de 2007 . Consultado el 29 de abril de 2017 .
- ^ [1] Archivado 2008-07-05 en Wayback Machine SCA & SDO, ¿el próximo Corba?
- ^ "Copia archivada" . Archivado desde el original el 2 de diciembre de 2008 . Consultado el 8 de abril de 2011 .CS1 maint: copia archivada como título ( enlace ) El ascenso y la caída de CORBA
- ^ "community.user: Comparando SCA, Java EE y JBI | SCN" . Sdn.sap.com. 2005-12-12. Archivado desde el original el 17 de diciembre de 2012 . Consultado el 16 de junio de 2013 .
- ^ Bell, Michael (2008). "Conceptualización Orientada a Servicios" . Modelado orientado a servicios: análisis, diseño y arquitectura de servicios . Wiley & Sons. pag. 3. ISBN 978-0-470-14111-3.
- ^ "OASIS Open CSA Member Section for SCA" .
- ^ "Seis Comités Técnicos propuestos para la Sección de Miembros Open CSA de OASIS" .
- ^ "Formulario de seis comités OASIS para estandarizar la arquitectura de componentes de servicios (SCA) para SOA" .
Otras lecturas
- Comprensión de SCA de los expertos Jim Marino y Michael Rowley [2]
- SOA para el desarrollador de negocios: conceptos, BPEL y SCA— ISBN 978-158347-065-7
- Apache Tuscany en acción, ISBN 978-1-933988-89-4
- SOA de código abierto, ISBN 1-933988-54-1
enlaces externos
- Correo del 19 de febrero de 2013 con la muerte del comité técnico de la Asamblea de OASIS SCA, en ese correo murió el increíble SCA
- Correo del 20/02/2015 con el líder Jim Marino contando sobre Oracle matando a SCA
- Inicio del proyecto de aplicaciones compuestas NetBeans SOA
- camello
- Ejecutando Apache Camel en OpenESB
- Introducción a la programación para SCA Dr. Dobb's
- Apache Tuscany: implementación de código abierto de la especificación SCA
- SALT: tiempo de ejecución SCA preparado para empresas para C ++, Python, Ruby y PHP
- PocoCapsule para WS y SCA Un contenedor C ++ SCA de código abierto basado en inversión de control (IoC) y modelado específico de dominio (DSM)
- Tiempo de ejecución SCA y OSGi distribuido de código abierto de Newton
- Un proyecto de investigación público francés, que incluye un tiempo de ejecución de SCA llamado FraSCati
- Página de inicio de SCA en el sitio web de OASIS
- Recursos y garantías actuales de la SCA
- Últimas noticias de SCA y SDO
- Presentación de SCA: un tutorial de David Chappell, Chappell & Associates
- Subproyecto Eclipse STP / SCA Un proyecto Eclipse de código abierto que proporciona un conjunto de herramientas para SCA
- Patrones de arquitectura de microservicio y mejores prácticas
- sitio de arquitectura de microservicio martinfowler
- Terminales inteligentes y tuberías tontas - martinfowler