Introducción a la arquitectura orientada a servicios
SOA es un paradigma de arquitectura de software moderno para desarrollar aplicaciones como un conjunto de unidades de software modulares denominadas servicios. En SOA, los servicios son autónomos, modulares y relativamente independientes. Este enfoque permite desarrollar aplicaciones complejas y distribuidas en las que puede actualizar componentes individuales, en lugar de aplicaciones monolíticas completas. Una pila de software SOA típica incluye software de aplicación que consta de servicios, middleware y servicios de plataforma. Estos servicios se ejecutan en hardware de alto rendimiento o equipos virtuales.
Comunicación orientada a servicios (SOC)
Las aplicaciones basadas en SOA emplean interfaces orientadas a servicios para SOC, y proporcionan y utilizan funcionalidades para intercambiar información a través de mensajes. En una arquitectura SOA, los servicios desempeñan el papel de clientes o servidores. Cada servicio de cliente o servidor se implementa en software como un componente. Los puntos de conexión entre los componentes de cliente y servidor se denominan puertos cliente/servidor, y conforman las interfaces orientadas a servicios.
Para facilitar el intercambio de información, los componentes de cliente y servidor utilizan diversos patrones de comunicación orientada a servicios, como publicar-suscribir, solicitud-respuesta y enviar-olvidar. Estos patrones pueden ser síncronos o asíncronos, que es una característica clave de SOC. El modelado basado en eventos se puede realizar con Stateflow® y SimEvents®. Además, la librería Messages & Events de Simulink® permite modelar, simular y generar código C++ para aplicaciones con comunicación basada en mensajes.
Flujo de trabajo de SOA
Puede crear aplicaciones orientadas a servicios con un flujo de trabajo de MBD que incluye estas actividades:
- Especificar requisitos con Requirements Toolbox™
- Desarrollar arquitecturas SOA con System Composer™
- Modelar y simular servicios y componentes en Simulink
- Importar servicios y componentes existentes para reutilizarlos
- Generar código de producción C++ con Embedded Coder®
- Integrar la aplicación SOA completa
- Desplegar aplicaciones SOA en dispositivos edge y la nube
Extensibilidad de SOA
Los servicios se pueden reutilizar y actualizar. Permiten crear aplicaciones escalables orientadas a servicios empleando principios de desarrollo ágil de software, tales como sistemas que admiten actualizaciones inalámbricas (OTA) para mantenerse siempre actualizados.
Casos prácticos de SOA
En sistemas definidos por software que incorporan autonomía, conectividad y electrificación, SOA desempeña un papel fundamental como marco elemental. También se utilizan arquitecturas SOA para crear sistemas de sistemas, sistemas de eventos discretos, sistemas multiagente y sistemas distribuidos en los sectores aeroespacial, automoción, automatización industrial e IoT, dispositivos médicos y robótica.
Marcos de arquitectura de software, estándares de middleware, y protocolos de comunicación basados en SOA y SOC han surgido para respaldar estas industrias. Algunos ejemplos de estos marcos y estándares son AUTOSAR Adaptive, DDS, ROS/ROS2, FACE, SOME/IP, MOSA, MQTT y OPC UA.
SOA en automoción
SOA ha estado presente en el sector de automoción desde la introducción de vehículos definidos por software (SDV). Los SDV integran aplicaciones basadas en señales y orientadas a servicios en arquitecturas EE más recientes con controladores zonales y computadores de vehículos. Con System Composer y Simulink, se pueden modelar arquitecturas SOA, simularlas y generar código de producción C++ antes de desplegarlas como servicios modulares en dispositivos edge y la nube. En el sector de la automoción, AUTOSAR es un estándar popular que utiliza metodología SOA en las plataformas Adaptive. Con AUTOSAR Blockset, puede modelar y simular aplicaciones de AUTOSAR Classic y Adaptive, y luego generar código C/C++ y realizar verificación con Embedded Coder. Además, estos servicios se pueden actualizar a través de actualizaciones de software inalámbricas durante todo el ciclo de vida del vehículo para mejorar la experiencia de usuario. SOA se ha incorporado en los estándares de la industria mencionados anteriormente, así como en marcos internos.
SOA en aeroespacio y defensa
En los sectores de aeroespacio y defensa, SOA integra el estándar Future Airborne Capability Environment (FACE™), que forma parte de la iniciativa de estandarización Modular Open Systems Approach (MOSA). FACE utiliza segmentos de servicios de transporte (TSS) para comunicación orientada a servicios. Con Simulink y DDS Blockset, puede modelar y simular aplicaciones para el estándar FACE, importar IDL de FACE para TSS de DDS, simular comunicación TSS de FACE, y generar código de producción C++ y desplegarlo en aplicaciones FACE.
Ejemplos y procedimientos
Vídeos de presentaciones
Referencias de software
También puede consultar estos temas: System Composer, Simulink, Stateflow, Embedded Coder, AUTOSAR Blockset, DDS Blockset