La arquitectura de componentes de servicio ( SCA ) es una tecnología de software diseñada para proporcionar un modelo para aplicaciones que siguen los principios de la arquitectura orientada a servicios . [ 1 ] Esta tecnología, creada por importantes proveedores de software, como IBM , Oracle Corporation y TIBCO Software , abarca una amplia gama de tecnologías y, como tal, se especifica en especificaciones independientes para mantener la neutralidad del lenguaje de programación y del entorno de la aplicación. [ 1 ] Muchas veces utiliza un bus de servicios empresariales (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 SCA contaba con algunos partidarios formales. [ 4 ]
Definición
El 21 de marzo de 2007, la Colaboración OSOA publicó la primera versión de la especificación. [ 5 ] Las especificaciones indicaban que una aplicación diseñada con SCA debía tener:
- Desacoplamiento de la lógica de negocio de la aplicación de los detalles de las llamadas a los servicios que invoca.
- Servicios de destino en multitud de lenguajes, incluidos C++ , Java , COBOL y PHP , así como XML , BPEL y XSLT.
- La capacidad de trabajar con diversas estructuras de comunicación, incluidas la unidireccional, asíncrona, de devolución de llamada y de notificación.
- La capacidad de "vincularse" a componentes o servicios heredados, a los que normalmente se accede mediante tecnologías como Web Services , EJB , JMS , JCA , RMI , RPC , CORBA y otras.
- La capacidad de declarar (fuera de la lógica de negocio) los requisitos de calidad del servicio , como la seguridad, las transacciones y el uso de mensajería confiable.
- Los datos podrían representarse en objetos de datos de servicio.
Por lo tanto, se promovió SCA para ofrecer flexibilidad en aplicaciones compuestas , incorporando de forma flexible componentes reutilizables en un estilo de programación SOA.
La firma de marketing Gartner Group publicó un breve informe que promocionaba la SCA y su tecnología incluida de objetos de datos de servicio (SDO) en diciembre de 2005. [ 2 ]
Ventajas:
- Es compatible con todas las tecnologías de plataforma Java existentes y C++.
- Menor dependencia tecnológica: no tiene que depender del lenguaje de programación Java ni de XML.
- Service Data Objects es una especificación tecnológica para el acceso a los datos.
Desventajas:
- La especificación no aborda el rendimiento de las aplicaciones SOA, lo que sigue siendo un obstáculo para su adopción.
- Centrándose en la portabilidad (en lugar de la interoperabilidad), [ 6 ] lo hace vulnerable a repetir los errores de CORBA . [ 7 ]
Se decía que SCA proporcionaba interoperabilidad mediante un enfoque llamado "Activación". Es el método que ofrece el mayor grado de autonomía de los componentes, en comparación con los métodos anteriores de "mediación" (por ejemplo, JBI ) o "Invocación" utilizados en JCA , como explicó un arquitecto de SAP. [ 8 ]
Artefactos
El modelo de ensamblaje SCA consta de una serie de artefactos, definidos por elementos contenidos en archivos XML. Un entorno de ejecución SCA puede tener otras representaciones no estándar de los artefactos representados por estos archivos XML, y puede permitir la modificación dinámica de la configuración de los sistemas. Sin embargo, los archivos XML definen la representación portable de los artefactos SCA.
El artefacto básico es el compuesto , que es la unidad de despliegue para 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 de negocio 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 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 referencias pueden estar vinculadas a servicios proporcionados fuera del módulo, que pueden ser proporcionados por otros módulos. Las referencias a servicios proporcionados fuera del módulo, incluidos los servicios proporcionados por otros módulos, se definen mediante servicios externos en el módulo. También se encuentran en el módulo los enlaces entre referencias y servicios, representados por cables .
Un componente consta de una implementación configurada , donde la implementación es el fragmento de código del programa que implementa las funciones de negocio. El componente configura la implementación con valores específicos para las propiedades configurables declaradas por la implementación. El componente también puede configurar la implementación mediante la vinculación de las referencias declaradas por la implementación a servicios de destino específicos.
Los componentes compuestos se implementan dentro de un sistema SCA . Un sistema SCA representa un conjunto de servicios que abarcan un área de funcionalidad empresarial controlada por una única organización. Por ejemplo, para el departamento de contabilidad de una empresa, el sistema SCA podría cubrir todas las funciones financieras y contener una serie de módulos que gestionan áreas específicas de contabilidad, como las cuentas de clientes y las cuentas por pagar. Para facilitar la creación y configuración del sistema SCA, los componentes compuestos se pueden utilizar como implementaciones de componentes, al igual que las clases Java o los procesos BPEL . En otras palabras, SCA permite una jerarquía de componentes compuestos con una profundidad arbitraria; 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 a lo largo de todo el ciclo de vida de los componentes y 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 del componente hasta su implementación concreta.
Transición a un organismo de normalización
Tras varios años de incubación bajo una colaboración informal con la industria, las primeras implementaciones (V1.0) de la especificación están llegando al mercado. Los socios colaboradores 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 de OASIS Open CSA . [ 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 de los Comités Técnicos dentro de la organización OASIS. Los Comités Técnicos planearon comenzar su trabajo en septiembre de 2007. La participación en estos CT 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 ]
Véase también
- Apache ServiceMix
- Modelo y Notación de Procesos de Negocio (BPMN)
- Docker (software)
- Integración de aplicaciones empresariales (EAI)
- Mula (software)
- Programación reactiva
- Arquitectura orientada a servicios semánticos (SSOA)
- Modelado orientado a servicios
- Fundación de Comunicación de Windows (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 llenará un nicho entre los usuarios de Java" (PDF) . Gartner Group . Recuperado el 29 de abril de 2017 .
- ^ 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/07/2011 en Wayback Machine
- ^ Patrocinadores de tecnología de OSOA http://www.osoa.org/display/Main/Current+OSOA+Supporters+Community
- ^ "Especificaciones de la arquitectura de componentes de servicio" . Sitio web de Open SOA Collaboration . Archivado del original el 12 de octubre de 2007. Consultado el 29 de abril de 2017 .
- ^ [1] Archivado el 5 de julio de 2008 en Wayback Machine SCA y SDO, ¿el próximo Corba?
- ^ "ACM Queue - El auge y la caída de CORBA: La historia detrás de esta tecnología de computación distribuida que alguna vez fue prometedora: por qué fracasó y qué podemos aprender de ella" . Archivado del original el 2 de diciembre de 2008. Consultado el 8 de abril de 2011 .El auge y la caída de CORBA
- ^ "community.user: Comparación de SCA, Java EE y JBI | SCN" . Sdn.sap.com. 12 de diciembre de 2005. Consultado el 16 de junio de 2013 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ^ Bell, Michael (2008). «Conceptualización orientada al servicio» . Modelado orientado al servicio: análisis, diseño y arquitectura de servicios . Wiley & Sons. pág. 3. ISBN 978-0-470-14111-3.
- ^ "Sección abierta para miembros de OASIS CSA para SCA" .
- ^ "Se proponen seis comités técnicos para la sección de miembros de OASIS Open CSA" .
- ^ "Se forman seis comités de OASIS para estandarizar la arquitectura de componentes de servicio (SCA) para SOA" .
Lecturas adicionales
- Comprender la SCA según 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/02/2013 con la muerte del comité técnico de la Asamblea OASIS SCA, en ese correo murió el asombroso SCA
- Correo electrónico del 20 de febrero de 2015 con el líder Jim Marino hablando sobre Oracle matando a SCA
- Página principal del proyecto de aplicación compuesta SOA de NetBeans (archivado el 10 de febrero de 2015 en Wayback Machine) .
- camello
- Ejecutando Apache Camel en OpenESB
- Introducción a la programación para SCA del Dr. Dobb
- Apache Tuscany: implementación de código abierto de la especificación SCA.
- SALT: entorno de ejecución SCA listo para empresas para C++, Python, Ruby y PHP.
- PocoCapsule para WS y SCA Archivado el 19/11/2007 en Wayback Machine Un contenedor SCA de código abierto en C++ basado en inversión de control (IoC) y modelado específico de dominio (DSM)
- Newton, un entorno de ejecución distribuido de código abierto para SCA y OSGi.
- Un proyecto de investigación público francés, que incluye un entorno de ejecución SCA llamado FraSCati.
- Página principal de SCA en el sitio web de OASIS
- Recursos y material complementario actuales de SCA
- Últimas noticias de SCA y SDO
- Presentación de SCA: un tutorial de David Chappell, Chappell & Associates.
- Subproyecto Eclipse STP/SCA Un proyecto de código abierto de Eclipse que proporciona un conjunto de herramientas para SCA
- Patrones y mejores prácticas de arquitectura de microservicios
- Sitio web de arquitectura de microservicios de Martin Fowler
- Puntos finales inteligentes y canales tontos – martinfowler
- Integración de aplicaciones empresariales
- Orientado a servicios (informática empresarial)
