# Future Airborne Capability Environment

Future Airborne Capability Environment (FACE Consortium) es un consorcio creado en 2010 por The Open Group para definir un entorno de aviónica abierto para todo tipo de plataforma militar aerotransportada. El consorcio está compuesto principalmente por profesionales y académicos del campo de sistemas en tiempo real software en aeronáutica. El estándar fomenta la innovación y propone un sistema asequible centrado en la rapidez y facilidad de integración de componentes software. El Consorcio FACE proporciona un foro neutral para que proveedores y el gobierno de Estados Unidos trabajen juntos con el fin de desarrollar y consolidar los estándares, mejores prácticas, documentación y estrategias comerciales necesarios para dar como resultado:
* Guías para usar estándares abiertos en entornos de aviónica
* Costes de implementación más bajos en sistemas FACE
* Estándares que proveen una arquitectura robusta para desarrollar software de calidad
* Uso de interfaces estándar que permite reutilizar componentes software
* Portabilidad de aplicaciones entre proveedores y sistemas FACE
* Disponibilidad de sistemas FACE
* Aplicaciones que llegan a los clientes más rápido
* Innovación y competición dentro de la industria aviónica
El estándar técnico de FACE es un estándar abierto para sistemas de tiempo real críticos cuyo objetivo principal es hacer el software más robusto, interoperable, portable y seguro. Aunque originalmente FACE se enfocaba en aviónica, su versatilidad ha hecho que se adopte en otro tipo de sistemas. El estándar permite a los desarrolladores de software crear y desplegar un amplio catálogo de aplicaciones para uso en sistemas de tiempo real a través de un sistema operativo común. La última edición del estándar promueve la interoperabilidad y portabilidad de aplicaciones con énfasis en los requisitos para el intercambio de datos entre los diferentes componentes de un sistema FACE. Dichos requisitos incluyen especificaciones formales del modelo de datos y los lenguajes soportados por el estándar.

## Orígenes

FACE nace del programa de Arquitectura Abierta de la Armada Estadounidense, para mejorar la interoperabilidad y portabilidad del software para aviónica usando por el Departamento de Defensa de los Estados Unidos de América. Tanto la Armada como la Fuerza Aérea Estadounidense participan en el consorcio.
El Consorcio FACE fue formado por The Open Group como "Voluntary Consensus Standards Body", tal y como se define en el Acta de Transferencia de Tecnología Nacional en la circular A-119 de la Oficina de Administración y Presupuesto Estadounidense. Esto facilita la participación del gobierno en el consorcio. Uno de los objetivo de FACE es reducir el tiempo necesario para el desarrollo y despliegue de software en plataformas militares, habiendo reducido dicho tiempo de hasta seis años a tan solo seis meses.
FACE incluye sistemas y procesos de validación y verificación para certificación de sistemas software. En octubre de 2016, un sistema de control aéreo se certificó como el primer sistema FACE. El consorcio FACE dispone de un registro de todos los productos certificados.

## Aspectos técnicos

El estándar FACE trata de resolver barreras que dificultan obtener software modular, portable e interoperable definiendo una arquitectura de referencia y empleando principios de diseño que mejoran la portabilidad del software.
La arquitectura propuesta por FACE describe un desglose de funcionalidades que fomenta la reutilización de componentes software que compartan funcionalidades comunes en diferentes sistemas. Esto se consigue mediante la definición de interfaces estándar que permiten que diferentes componentes software se intercambien y se muevan entre sistemas, independientemente de si han sido desarrollados por diferentes proveedores. Así mismo, estas interfaces estándar siguen una arquitectura de datos que permite que el tipo y flujo de datos entre componentes software este debidamente descrito, de forma que la integración en nuevos sistemas sea más sencillo.
El estándar de referencia de FACE está compuesto por diferentes segmentos lógicos donde la estructura creada al conectar dichos segmentos es la base de este estándar. Hay cinco (5) segmentos: El Segmento de Sistema Operativo (Operating System Segment; OSS por sus siglas en inglés), el Segmento de Servicios de Entrada y Salida (Input/Output Services Segment; IOSS), el Segmento de Servicios Específicos de Plataforma (Platform-Specific Services Segment; PSSS), el Segmento de Servicios de Transporte de datos (Transport Services Segment; TSS), y el segmento de componentes portables (Portable Components Segment; PCS).
La Arquitectura de Referencia de FACE define un conjunto de interfaces estándar que permiten la conexión entre los segmentos descritos anteriormente. Estas son: La Interfaz del Segmento de Sistema Operativo (OSS Interface), la Interfaz de Servicios de Entrada y Salida (IOS Interface), la Interfaz de Servicio de Transporte de datos, y la Interfaz orientada al soporte de componentes.
El estándar describe tres perfiles para el segmento OSS que limitan, a diferentes niveles de criticalidad, la API del sistema operativo, las características de los lenguajes de programación utilizados, y capacidades gráficas. Estos tres perfiles son: Security, Safety y General Purpose (Propósito General).
El perfil Security limita la API del sistema operativo al conjunto mínimo de funcionalidades necesarias, de manera que se permite la evaluación del software en un marco de alta fidelidad, mono-proceso y determinista.
El perfil Safety es menos restrictivo que el perfil Security, reduciendo la API del Sistema Operativo a aquellas APIs que suelen ser usadas en sistemas certificados, es decir aquellas APIs que son deterministas.
El perfil de Propósito General (General Purpose) es el perfil menos restrictivo, permitiendo el uso tanto de APIs deterministas como no deterministas del Sistema Operativo en función del sistema o subsistema que se implementa.
La Arquitectura de Datos de FACE define: un lenguaje para modelado de datos, otro para consultas y plantillas, el modelo de datos compartidos (Shared Data Model; SDM por sus siglas en inglés), y un conjunto de reglas para las construcción de Unidades Portables (Unit of Portability; UoP) y modelos suministrados (Unit of Supplied Model; USM).
Cada pieza que satisface el estándar de FACE (Unit of Conformance; UoC) en el segmento TSS (TSS UoC) y el segmento PSSS (PSSS UoC), debe ir acompañada de un USM que satisfaga el SDM y definir sus interfaces de acuerdo con el lenguaje de modelo de datos de FACE.
Por otro lado, se pueden definir modelos de datos de dominio específico (Domain-Specific Data Model; DSDM) que capturan información relevante a un dominio de interés, y sirven de base para definir USMs.