La Arquitectura de alto nivel ( HLA ) es un estándar para la simulación distribuida, que se utiliza cuando se crea una simulación para un propósito mayor mediante la combinación (federación) de varias simulaciones. [1] El estándar se desarrolló en los años 90 bajo el liderazgo del Departamento de Defensa de EE. UU. [2] y luego se transformó para convertirse en un estándar IEEE internacional abierto. Es un estándar recomendado dentro de la OTAN a través de STANAG 4603. [3] Hoy en día, el HLA se utiliza en varios dominios, incluidas aplicaciones de defensa y seguridad y civiles.
El propósito de HLA es permitir la interoperabilidad y la reutilización. Las propiedades clave de HLA son:
HLA constituye la base para el desarrollo de FOM estandarizados y ampliables en diferentes comunidades, por ejemplo, en la industria aeroespacial y de defensa.
La arquitectura especifica los siguientes componentes.
Juntos, los componentes anteriores forman una Federación .
El estándar HLA consta de tres partes:
El HLA se inició a principios de la década de 1990 cuando la Dra. Anita K. Jones , Directora de Investigación e Ingeniería de Defensa del Departamento de Defensa de EE. UU., Asignó a la Oficina de Simulación y Modelado de Defensa (DMSO) la tarea de “asegurar la interoperabilidad y la reutilización de los modelos de defensa y simulaciones ”. [1] En 1995, DMSO formuló una visión para el modelado y la simulación y estableció un plan maestro de modelado y simulación, que incluía la Arquitectura de alto nivel.
Ya existían dos protocolos para la interoperabilidad de M&S: Simulación interactiva distribuida (DIS), que se enfoca en la simulación de nivel de plataforma en tiempo real con un modelo de objeto fijo, y Protocolo de simulación de nivel agregado (ALSP) que se enfoca en la simulación de agregado con administración del tiempo, administración de propiedad y flexibilidad modelos de objetos, llamados modelos de confederación. El propósito de HLA era proporcionar un estándar unificado que cumpliera con los requisitos de interoperabilidad de simulación de todos los componentes del Departamento de Defensa de EE. UU. [2]
El desarrollo de HLA se basó en cuatro federaciones prototípicas: la Platform Prototype Federation, la Joint Training Protofederation, la Analysis Protofederation y la Engineering Prototype Federation. La especificación HLA se diseñó y perfeccionó hasta que finalmente se lanzó HLA 1.3. Para facilitar el uso fuera de la comunidad de defensa, HLA se transformó en un estándar IEEE, mantenido por la Organización de Estándares de Interoperabilidad de Simulación (SISO). Para facilitar la migración para los usuarios de DIS, también se desarrolló un modelo de objetos de federación correspondiente al modelo de objetos fijos de DIS como FOM de referencia de plataforma en tiempo real ( RPR FOM ).
Existen las siguientes versiones de HLA:
HLA 1.3 fue publicado en marzo de 1998 por DMSO. Consiste en:
El Departamento de Defensa de EE. UU. También publicó interpretaciones para HLA 1.3:
HLA IEEE 1516-2000 fue publicado en 2000 por IEEE. Consiste en:
Las principales mejoras en IEEE 1516-2000 incluyeron un FOM basado en XML con especificaciones detalladas de tipo de datos, así como un diseño DDM mejorado.
El estándar IEEE 1516-2000 también se complementó con un proceso de desarrollo recomendado, así como con un proceso VV&A recomendado:
Pronto se descubrió que el estándar 1516-2000 tenía API que eran ligeramente diferentes para cada implementación de RTI. SISO produjo un estándar con API alternativas de Java y C ++ compatibles con enlaces dinámicos (DLC):
Las API de DLC se fusionaron más tarde en el estándar principal.
El estándar IEEE 1516-2010 fue publicado en agosto de 2010 por IEEE y se conoce comúnmente como HLA Evolved. [7] Consiste en:
Las principales mejoras en IEEE 1516-2010 incluyen Modular FOM, [8] incorporación de las API de DLC en C ++ y Java, una API de servicios web [9] y Fault Tolerance. [10]
Las partes legibles por máquina de esta versión de HLA, como los esquemas XML, C ++, Java y las API WSDL , así como las muestras de FOM / SOM, se pueden descargar del área de descarga de IEEE 1516 del sitio web de IEEE . Los textos completos de los estándares están disponibles sin costo para los miembros de SISO o se pueden comprar en la tienda IEEE .
El desarrollo de una nueva versión de HLA comenzó en enero de 2016 por SISO y actualmente está en curso.
El estándar HLA consta de tres partes:
Los servicios RTI se definen en la especificación de interfaz HLA. Están agrupados en siete grupos de servicios. Además de estos servicios, el Modelo de objetos de administración (MOM) proporciona servicios que permiten inspeccionar y ajustar el estado de la federación mediante programación.
La mayoría de los RTI constan de un componente RTI central (CRC), que es un ejecutable, y componentes RTI locales (LRC), que son bibliotecas que utilizan los federados. Los servicios se proporcionan a través de una API de C ++ o Java y también mediante servicios web. En las API de C ++ y Java, los servicios se invocan mediante llamadas a una instancia de la clase RTI Ambassador. El RTI entrega información a una federación mediante devoluciones de llamada, que se entregan mediante llamadas a una instancia de la clase Federate Ambassador. En la API de servicios web, definida mediante WSDL , la federación realiza llamadas y recupera las devoluciones de llamada mediante solicitudes y respuestas de servicios web.
Las descripciones de los grupos de servicios a continuación se centran en los servicios clave. No se incluyen excepciones ni advertencias.
El propósito de los servicios de administración de la federación, descritos en el capítulo 4 de la Especificación de interfaz HLA, [5] es administrar las ejecuciones de la federación, así como las operaciones de toda la federación, como los puntos de sincronización y guardar / restaurar.
Un conjunto de servicios de administración de la federación administra la conexión a la RTI, la ejecución de la federación y el conjunto de federaciones unidas. Los servicios clave son:
Otro conjunto de servicios se relaciona con los puntos de sincronización. Estos son eventos de toda la federación en los que todos o los federados seleccionados deben completar una operación, como inicializar un escenario, antes de que la ejecución pueda continuar. Los servicios clave son:
Otro conjunto de servicios más se relaciona con guardar y restaurar la ejecución de una federación. Una operación de guardado requiere que tanto el RTI como cada federado realicen un guardado de su estado interno. Una operación de restauración requiere que tanto el RTI como cada federación realicen una restauración de su estado interno. Los servicios clave son:
Ahorrar:
Restaurar:
El propósito de los servicios de Gestión de Declaraciones, descritos en el capítulo 5 de la Especificación de Interfaz HLA, [5] es permitir que los federados declaren qué información desean publicar (enviar) y suscribirse (recibir) basándose en clases de objeto e interacción en la FOM. . El RTI utiliza esta información para enrutar actualizaciones e interacciones a los federados suscriptores. Para una clase de objeto, la publicación y la suscripción se realizan para un conjunto específico de atributos. Para las clases de interacción, toda la interacción, incluidos todos los parámetros, se publica y se suscribe. Los servicios clave son:
El propósito de los servicios de gestión de objetos, descritos en el capítulo 6 de la especificación de interfaz HLA, [5] es permitir a las federaciones compartir información sobre instancias de objetos e intercambiar interacciones.
Los nombres de instancia de objeto se pueden reservar o generar automáticamente. Las federaciones pueden registrar instancias de objetos de clases de objetos especificadas, que luego se descubren mediante las federaciones suscritas. Los atributos de estas instancias de objetos se pueden actualizar. Estas actualizaciones se reflejarán en los federados que se suscriban. Se pueden enviar interacciones. Estas interacciones se entregarán a los federados que se suscriban. Los servicios clave son:
Objetos:
Atributos:
Interacciones:
El propósito de los servicios de administración de propiedad, descritos en el capítulo 7 de la especificación de interfaz HLA, [5] es administrar dinámicamente qué federación simula qué aspecto de una instancia de objeto. En HLA, solo un federado puede actualizar un atributo determinado de una instancia de objeto determinada. Ese federado se considera el propietario del atributo. Una federación que registre una nueva instancia de objeto será automáticamente el propietario de todos los atributos que publique. En algunos casos, los atributos de una instancia de objeto pueden dejar de ser propietarios, es decir, no ser propiedad de ninguna federación.
La gestión de propiedad proporciona servicios para transferir la propiedad de uno o varios atributos en tiempo de ejecución, lo que puede incluir un federado que se deshaga del atributo y otro federado que adquiera el atributo. Hay dos patrones principales: "tirar" que son iniciados por la federación adquirente y "empujar" que son iniciados por la federación que desinvierte.
Los servicios clave para iniciar la propiedad "pull" son:
Los servicios clave para iniciar la propiedad "push" son:
Todas las instancias de objeto tienen un atributo predefinido llamado HLAPrivilegeToDeleteObject. Solo el propietario de este atributo para una instancia de objeto puede eliminar la instancia de objeto. La propiedad de este atributo se puede transferir en tiempo de ejecución mediante las operaciones anteriores.
El intercambio de información en una federación de HLA tiene lugar en tiempo real con la entrega inmediata de mensajes (orden de recepción, RO), a menos que se haya habilitado la gestión de tiempo de HLA. El propósito de HLA Time Management, descrito en el capítulo 8 de la Especificación de interfaz HLA, [5] es garantizar la causalidad y un intercambio correcto y consistente de mensajes con sello de tiempo (actualizaciones e interacciones) en Time Stamp Order (TSO), sin importar si la federación se ejecuta en tiempo real, más rápido que en tiempo real, más lento que el tiempo real o tan rápido como sea posible.
Algunos conceptos importantes en HLA Time Management son:
Tiempo lógico : un eje de tiempo en HLA, que comienza en cero. El tiempo lógico se utiliza para las operaciones y las marcas de tiempo de la gestión del tiempo. El eje de tiempo lógico se puede asignar al tiempo del escenario de la federación. Un ejemplo de tal mapeo es dejar que cero represente la hora del escenario a las 8:00 del 1 de enero de 1066 y dejar que un incremento de uno represente un segundo del escenario.
Lookahead : un intervalo de tiempo que especifica el tiempo más bajo en el futuro para el cual una federación producirá mensajes. Para una federación con un intervalo de tiempo fijo, suele ser la duración del intervalo de tiempo.
Concedido : El RTI concede (permite avanzar) a un federado a un tiempo lógico particular, cuando se han entregado todos los mensajes con marca de tiempo hasta ese momento. Luego, la federación puede comenzar a calcular de manera segura los mensajes con una marca de tiempo en el futuro. Esta marca de tiempo no puede ser anterior al tiempo otorgado más la anticipación de los federados.
Avanzando : cuando un federado ha terminado de producir datos para el tiempo otorgado más la anticipación, puede solicitar que se avance a un tiempo posterior, lo que también significa que se compromete a no producir más mensajes con una marca de tiempo menor que el tiempo solicitado más el lookahead. La federación se encuentra ahora en un estado avanzado.
Regulación de tiempo : Una federación que envía eventos con marca de tiempo se considera Reguladora de tiempo ya que el avance de tiempo por parte de otras federaciones puede estar regulado por esto.
Con restricción de tiempo : una federación que recibe eventos administrados por tiempo se considera con restricción de tiempo ya que la recepción de mensajes con marca de tiempo restringe su avance de tiempo.
Los principios fundamentales de HLA Time Management son los siguientes:
Ejemplo de Lookahead, concedido y avanzado:
Si al menos un federado en la federación realiza el ritmo, es decir, correlaciona sus solicitudes de avance de tiempo con un reloj en tiempo real, la federación puede funcionar en tiempo real o en tiempo real escalado. Sin ritmo, la federación se ejecutará lo más rápido posible, lo que se utiliza, por ejemplo, en la simulación de Monte Carlo.
Los servicios clave incluyen:
Para la simulación impulsada por eventos, también es posible que una federación solicite avanzar al siguiente evento utilizando el siguiente servicio:
Otro concepto importante es el tiempo lógico más grande disponible (GALT). El tiempo máximo que se le puede otorgar a cada federación depende del tiempo que se haya otorgado a otros federados, así como de su anticipación. El GALT para una federación especifica hasta qué punto se puede otorgar una federación, sin tener que esperar a que se otorguen otras federaciones. Esto es particularmente interesante para una federación que se une tarde a una federación administrada por tiempo.
Los servicios clave para GALT son:
Los servicios más avanzados incluyen:
El propósito de DDM, descrito en el capítulo 9 de la Especificación de interfaz HLA, [5] es aumentar la escalabilidad de las federaciones realizando un filtrado adicional de los datos suscritos más allá de las suscripciones de clase y atributo. [11] El filtrado puede basarse en valores continuos (como latitud y longitud) o valores discretos (como marca de automóvil).
Los conceptos clave de DDM son:
Dimensión : un intervalo con nombre (0..n) utilizado para el filtrado, con valores que comienzan con 0 y terminan con un límite superior n. Los datos del dominio de simulación se asignan a una o más dimensiones. Por ejemplo, las dimensiones para el filtrado geográfico podrían ser LatitudeDimension y LongitudeDimension. Una dimensión para el filtrado basada en la marca del automóvil podría ser CarBrandDimension.
Función de normalización : una función que asigna valores de entrada a valores enteros que se utilizarán en una dimensión. Un ejemplo es que una función de normalización para LatitudeDimension podría asignar un valor de latitud que va desde -90.0 a +90.0 a un número entero en el rango 0..179. Una función de normalización para CarBrandDimension podría asignar un conjunto de marcas de automóviles Kia, Ford, BMW y Peugeot a un número entero en el rango 0..3.
Rango : un intervalo en una dimensión, especificado por un límite inferior (inclusive) y un límite superior (exclusivo).
Región : un conjunto de rangos, cada uno relacionado con una dimensión particular. En el ejemplo anterior, una región podría consistir en el rango (3..5) para LatitudeDimension (55..65) para LongitudeDimension y (0..1) para CarBrandDimension. En tiempo de ejecución, se crean instancias de Realizaciones de Región (objetos) para representar regiones. Los rangos de una región se pueden modificar con el tiempo.
Superposición de regiones: dos regiones se superponen si, para todas las dimensiones que tienen en común, sus rangos se superponen.
En tiempo de ejecución, una federación puede proporcionar Regiones cuando se suscribe a atributos e interacciones de clase de objeto. Las regiones también se utilizan al enviar interacciones y actualizaciones de atributos. Cuando se utiliza DDM, las actualizaciones de atributos y las interacciones solo se entregarán si hay una superposición de regiones.
Los servicios clave para las regiones son:
Los servicios clave para intercambiar actualizaciones de atributos con DDM son:
Los servicios clave para intercambiar interacciones con DDM son:
Los servicios de soporte de HLA, descritos en el capítulo 10 de la especificación de interfaz de HLA, [5] proporcionan una serie de servicios de soporte. Éstos incluyen:
El propósito del modelo de objetos de gestión, descrito en el capítulo 11 de la especificación de interfaz HLA, [5] es proporcionar servicios para gestionar una federación. Esto se realiza mediante el objeto MOM y las clases de interacción. Los objetos MOM se definen en un módulo FOM especial llamado MIM, que el RTI carga automáticamente. Las características clave de MOM incluyen:
El OMT es una plantilla que se utiliza para describir los modelos de objetos de federación (FOM) y los modelos de objetos de simulación (SOM). Los FOM y SOM se pueden representar en formato tabular o mediante XML. El último formato se utiliza cuando se carga un FOM en el RTI.
En versiones anteriores de HLA, los FOM eran monolíticos, pero la versión actual del estándar admite FOM modulares, es decir, se pueden proporcionar al RTI varios módulos que cubren diferentes aspectos del intercambio de información.
El estándar proporciona una serie de clases, tipos de datos, dimensiones y tipos de transporte predefinidos. Estos se proporcionan en el módulo FOM HLAstandardMIM.xml. Los conceptos predefinidos tienen el prefijo HLA, por ejemplo, HLAobjectRoot y HLAunicodeString.
Hay tres esquemas XML diferentes para OMT:
El propósito de la tabla de identificación es proporcionar metadatos sobre el modelo, para facilitar la reutilización de FOM / SOM o federaciones.
Se especifican los siguientes campos:
El propósito de la tabla de estructura de clases de objetos es especificar la jerarquía de clases (subclase / superclase) de las clases de objetos que se utilizan para crear instancias de objetos en una federación HLA. Los atributos de las clases de objetos se heredan de las superclases a las subclases según esta jerarquía. La raíz del árbol de clases de objetos se conoce como HLAobjectRoot. Un ejemplo de un nombre completo de una clase de objeto es HLAobjectRoot.Car.ElectricCar
Los siguientes campos se especifican para una clase de objeto en la jerarquía:
El propósito de la tabla de atributos es especificar los atributos que están disponibles para una clase de objeto determinada. Dado que los atributos se heredan, una clase de objeto tendrá la unión de todos los atributos que están definidos localmente en la clase de objeto o especificados en cualquier superclase directa o indirecta.
Los siguientes campos se especifican para un atributo
El propósito de la tabla de estructura de clases de interacción es especificar la jerarquía de clases (subclase / superclase) de las clases de interacción que se utilizan para intercambiar interacciones en una federación HLA. Los parámetros de la clase de interacción se heredan de las superclases a las subclases según esta jerarquía. La raíz del árbol de clases de interacción se conoce como HLAinteractionRoot. Un ejemplo de un nombre completo de una clase de interacción es HLAinteractionRoot.CarCommand.Start.
Los siguientes campos se especifican para una clase de interacción en la jerarquía:
El propósito de la tabla de parámetros es especificar los parámetros que están disponibles para una determinada clase de interacción. Dado que los parámetros se heredan, una clase de interacción tendrá la unión de todos los parámetros que están definidos localmente en la clase de interacción o especificados en cualquier superclase directa o indirecta.
El propósito de la tabla de dimensiones es especificar las dimensiones de DDM, utilizadas para atributos y clases de interacción.
El propósito de la tabla de representación del tiempo es especificar los tipos de datos utilizados por los servicios de gestión del tiempo.
Se puede proporcionar una etiqueta proporcionada por el usuario al llamar a determinados servicios HLA. El propósito de la tabla de etiquetas proporcionada por el usuario es especificar los tipos de datos de estas etiquetas.
El propósito de la tabla de sincronización es especificar los puntos de sincronización usados en una federación.
El propósito de la tabla de tipos de transporte es especificar los tipos de transporte disponibles. Hay dos tipos de transporte predefinidos: HLAreliable y HLAbestEffort.
El propósito de la tabla de tasas de actualización es especificar las tasas de actualización máximas disponibles.
El comportamiento en tiempo de ejecución del RTI se puede controlar mediante varios conmutadores predefinidos. El propósito de la tabla de interruptores es proporcionar valores iniciales para estos interruptores. Algunos de los conmutadores también se pueden actualizar en tiempo de ejecución.
El propósito de las tablas de tipos de datos es proporcionar especificaciones de los tipos de datos utilizados para atributos, parámetros, dimensiones, representación de tiempo, etiqueta proporcionada por el usuario y puntos de sincronización. Hay seis categorías de tipos de datos, con un formato tabular separado para cada uno de ellos.
El propósito de la tabla de representación de datos básica es proporcionar representaciones binarias para su uso en otras tablas. Se proporcionan varios tipos de datos básicos predefinidos en el estándar HLA: HLAinteger16BE, HLAinteger32BE, HLAinteger64BE, HLAfloat32BE, HLAfloat64BE, HLAoctetPairBE, HLAinteger16LE, HLAinteger32LE, HLAinteger64LE, HLAfloat32LEPair, HLAfloatLA El conjunto de tipos de datos básicos generalmente no se amplía con los tipos de datos básicos definidos por el usuario.
El propósito de la tabla de tipos de datos simples es describir elementos de datos escalares simples. En el estándar HLA se proporcionan varios tipos de datos simples predefinidos: HLAASCIIchar, HLAunicodeChar, HLAbyte, HLAinteger64time y HLAfloat64time. Es común incluir tipos de datos simples definidos por el usuario en un FOM.
El propósito de la tabla de tipos de datos enumerados es describir elementos de datos que pueden tomar un conjunto de valores finito y discreto. En el estándar se proporciona un tipo de datos enumerado predefinido: HLAboolean. Es común incluir tipos de datos enumerados definidos por el usuario en una FOM.
El propósito de la tabla de tipos de datos enumerados es describir matrices de elementos de datos (simples, enumerados, matrices, registros fijos o registros variantes). En el estándar HLA se proporcionan varios tipos de datos simples predefinidos: HLAASCIIstring, HLAunicodeString, HLAopaqueData y HLAtoken. Es común incluir tipos de datos de matriz definidos por el usuario en un FOM.
El propósito de la tabla de tipos de datos de registros fijos es describir registros con un conjunto fijo de elementos de datos (simples, enumerados, matrices, registros fijos o registros variantes). Es común incluir tipos de datos simples definidos por el usuario en un FOM. No se proporcionan tipos de datos simples predefinidos en el estándar HLA.
El propósito de las notas de la tabla es proporcionar anotaciones y descripciones adicionales de elementos en otras tablas.
Las reglas de HLA describen las responsabilidades de las federaciones y los federados que se unen. [12]
El estándar IEEE 1516 ha sido revisado bajo el Grupo de Desarrollo de Productos SISO HLA-Evolved y fue aprobado el 25 de marzo de 2010 por la Junta de Actividades de Estándares de IEEE. El estándar IEEE 1516-2010 revisado incluye interpretaciones del estándar actual del Departamento de Defensa y la API de EDLC, una versión extendida de la API de DLC de SISO. Otras mejoras importantes incluyen:
Para asegurar la interacción adecuada entre simulaciones, se define una forma de probar la conformidad federada. Esto implica asegurarse de que todas las clases e interacciones enumeradas en el SOM para un federado en particular se utilicen de acuerdo con el uso descrito, "PublicarSuscribir", "Publicar", "Suscribir" o "Ninguno".
HLA (tanto en la versión actual IEEE 1516 como en su antecesora "1.3") es el tema del acuerdo de estandarización de la OTAN (STANAG 4603) para modelado y simulación: Estándares de arquitectura de modelado y simulación para interoperabilidad técnica: Arquitectura de alto nivel (HLA) . [13]
El modelo de objeto base (BOM), SISO-STD-003-2006 es un estándar relacionado de SISO para proporcionar una mejor reutilización y componibilidad para las simulaciones de HLA. Proporciona una forma de especificar modelos conceptuales y cómo asignarlos a una FOM HLA. [14]
En lo que respecta a la industria de simulación y modelado distribuido (DM&S), la alternativa más utilizada al HLA, para la simulación en tiempo real de plataformas militares, es la simulación interactiva distribuida (DIS), IEEE 1278.1-2012, un protocolo de simulación. La mayoría de los proveedores de HLA RTI también incluyen DIS en sus productos. En cuanto a las aplicaciones de middleware que más se acercan a las características de HLA, como la función de publicación y suscripción (P&S), consulte el Servicio de distribución de datos (DDS), que comparte muchas de las mismas características pero tiene un protocolo abierto en el cable para la interoperabilidad del sistema. [15]
HLA es un middleware orientado a mensajes que se define como un conjunto de servicios, proporcionado por una API de C ++ o Java . No existe un protocolo en línea estandarizado. Los participantes de una federación deben utilizar bibliotecas RTI del mismo proveedor y, por lo general, también de la misma versión, lo que en algunos casos se percibe como un inconveniente. [16] La mayoría de las herramientas actuales también proporcionan interconectividad a través de sockets.
|journal=
( ayuda )