Las especificaciones describen cómo crear aplicaciones compuestas. Una aplicación compuesta se crea combinando uno o más componentes que conjuntamente implementan la lógica empresarial de la nueva aplicación. Un componente consta de un programa de aplicación que implementa la lógica empresarial e información de configuración. Un desarrollador de aplicaciones puede utilizar el mismo programa de aplicación con distintas configuraciones para formar distintos componentes. Un componente ofrece un servicio a otros componentes y, a su vez, consume funciones ofrecidas por otros servicios utilizando interfaces orientadas a servicios.
Un desarrollador de aplicaciones puede ensamblar componentes para crear una solución para una necesidad empresarial específica. Una aplicación compuesta puede contener componentes nuevos que se creen específicamente para la aplicación de empresa y componentes existentes que se reutilicen de otras aplicaciones.
CICS da soporte a la especificación SCA Assembly Model 1.0, que describe cómo pueden ensamblarse los componentes de servicios para formar compuestos. Un compuesto es la unidad de despliegue en SCA y se describe en un lenguaje de XML denominado SCDL. Los compuestos pueden contener componentes, servicios, referencias, declaraciones de propiedades y la conexión que describe las conexiones entre estos elementos. También pueden utilizarse compuestos en componentes con otros compuestos, permitiendo una construcción jerárquica de aplicaciones compuestas, donde se implementan servicios de alto nivel internamente mediante conjuntos de servicios de nivel inferior.
Un tipo simple de componente tiene un servicio y una referencia. Un servicio es una interfaz direccionable para el componente que puede contener una o más operaciones. Una referencia es una dependencia de un servicio que otro componente proporciona. Los enlaces para el componente pueden definirse tanto en el servicio como en la referencia:
Los servicios y referencias de componentes son internos y se utilizan solamente para la comunicación de componente a componente. Para crear una interfaz externa, el componente debe desplegarse dentro de un compuesto. Un compuesto muy simple tiene un servicio externo y una referencia externa:
Los servicios y referencias de compuestos no forman parte del propio componente, si no que son un límite entre el componente y otros clientes o servicios externos.
El siguiente diagrama muestra un compuesto que contiene un componente simple con servicios y referencias internos y externos.
