system interface description language
DESCRIPTION
Achieving a high level of interoperability between software and hardware systems involved in distributed simulations requires formal interface descriptions. Such interface descriptions need to capture a broad range of design and implementation decisions involving a wide variety of technologies. Moreover, the tasks involved in achieving system interoperability, such as data serialization or protocol handling, need to be formalized to remove ambiguity or misinterpretation. Furthermore, being formalized as a machine-readable language enables the automation of such tasks. Even if XML can address such features, not only does it lack the vocabulary richness and expressiveness of a dedicated language to describe system interfaces, it also fails to provide the adequate mechanisms to validate them. This presentation describes the System Interface Description Language (SIDL), a domain-specific language (DSL) used for describing the information required to enable system interoperability within distributed simulation environments. It defines the core language which can be used to describe system interfaces based on an abstract model of the contract to be met by systems in order to achieve data interoperability. As a DSL, SIDL enables easier validation, evolution and governance of system interfaces. SIDL is inspired by the Web Services Description Language (WSDL) which is used for describing service contracts. To this end, SIDL provides the means to establish data-centric system contracts. The primary use cases of the presentation cover traditional entity-level systems, such as RPR-FOM and DIS, as well as avionics system interface descriptions. The intent of this presentation is to provide the M&S community, particularly the Future Airborne Capability Environment (FACE), SISO Architecture Neutral Data Exchange Model (ANDEM ) and Base Object Model (BOM ) ones, a formal language baseline that can describe system interfaces from a conceptual, platform-independent, point-of-view down to a platform-specific one dealing with middlewares, such as HLA and DDS, and encodings. From paper http://www.sisostds.org/conference/download.cfm?Phase_ID=2&FileName=13F-SIW-021.pdfTRANSCRIPT
2013 Fall SIW
System Interface Description Language Presented by Martin Tapp
1
2013 Fall SIW
System Integration
Multi-Architecture Environments | Heterogeneous Systems
– Distributed simulation: HLA, DIS, DDS
– Avionics: A429, AFDX
2
2013 Fall SIW
Integration Problems
Data Incompatibilities
– Units: Radians vs Degrees
– Frame of Reference: Geodetic vs Geocentric
Meta-Model Incompatibilities (i.e. ways of representing exchanged data)
– Structure: HLA Object vs DIS PDU
Data Model Evolution and Governance
– How did it evolve?
– What changed?
– Does the change occur in each architecture? Where?
– How are each architecture representation related to one another?
3
2013 Fall SIW
Facilitating System Integration
SIDL: System Interface Description Language
– Dedicated language to describe system interfaces focusing on data
exchanges and their multiple facets
– i.e. Domain-Specific Language (DSL)
Why SIDL?
– Architecture Neutrality
• Top-Down: from SIDL to specific architectures (e.g. HLA, DIS, DDS)
– Automation
• Code generation: data serialization, transformation (e.g. unit conversion)
– Governance
• Clutter-free view of system interfaces
• Strong semantics and validation
4
2013 Fall SIW
System Interoperability Facets
5
2013 Fall SIW
Facets Example
6
Interface Connection
Transport | Data
2013 Fall SIW
Radar System Example
7
Let’s express this in SIDL
(RCS = Radar Cross Section)
2013 Fall SIW
Port: input or output data
Defining Systems Interfaces Interface Facet
8
// Extracts RCS info from entities which // are processable by the radar processor system RadarSensor: input Entities output RadarCrossSections // Transforms RCSs into detections which // can be displayed by the radar display system RadarProcessor: input State input RadarCrossSections output Detections // Displays the radar detections system RadarDisplay: input Detections output State
2013 Fall SIW
Port’s data type specified with of
Specifying Port Data Types Interface Facet
9
system RadarSensor: input Entities of Entity output RadarCrossSections of RcsList system RadarProcessor: input State of RadarState input RadarCrossSections of RcsList output Detections of DetectionList system RadarDisplay: input Detections of DetectionList output State of RadarState
Entities port inputs
Entity messages
2013 Fall SIW
entity: structure with fields
Defining Data Types Data Facet
10
entity Entity: EntityIdentifier as EntityIdentifier RcsSignatureIndex as short AcousticSignatureIndex as short entity RadarCrossSection: EntityIdentifier as EntityIdentifier SignatureIndex as short entity RcsList: Items as (RadarCrossSection)
Field’s representation
specified with as
Value types:
• integers, floating points
• chars, strings
• booleans
• enumerations
Unbounded array
Entity composition
2013 Fall SIW
Defining Data Types (cont.) Data Facet
11
entity Detection: EntityIdentifier as EntityIdentifier entity DetectionList: Items as (Detection, 20) enum RadarStateEnum: Off On entity RadarState: State as RadarStateEnum
Bounded array
2013 Fall SIW
Abstract Level Data Facet
Could define EntityIdentifier this way
Context: Multi-Architecture | Heterogeneous Systems
– How do we relate EntityIdentifier to other kinds of identity?
• Object identity (e.g. RPR’s RTIobjectId)
• Emitter beam identity (e.g. RPR’s BeamIdentifier)
– What if identity is represented in other ways?
• Different size (8bit, 64bit, 128bit)
• Different structure (UUID, GUID, 4 integers)
12
entity EntityIdentifier: Site as ushort AppId as ushort EntId as ushort
2013 Fall SIW
Abstract Level (cont.) Data Facet
Let’s raise the abstract level
– info: something descriptive in nature
– fact: concrete info representation
13
info Name info Description info UniqueIdentity info PartialIdentity // Simple fact: info as single evidence fact IdPart of PartialIdentity as ushort // Composite fact: info as evidence set fact EntityIdentifier of UniqueIdentity Site as IdPart AppId as IdPart EntId as IdPart
Links all identity
representations together
Specific identity
representation
2013 Fall SIW
Abstract Level (cont.) Data Facet
Going further
– observable: something quantified through physical world measurement
– measure: concrete observable representation with frame | unit
14
observable Orientation observable Angle unit Radian frame TrueNorth // Simple measure: observable as single quantity measure AngleRadian of Angle as single: units Radian frame TrueNorth precision 0.000001 // Composite measure: observable as quantity set measure OrientationMeasure of Orientation: Psi as AngleRadian Theta as AngleRadian Phi as AngleRadian
Links all angle
representations together
Specific angle
representation
2013 Fall SIW
Abstract Level (cont.) Data Facet
What if a system’s interface is not aligned with a reference data model?
– view: window on one or more entity
15
entity BeamAntennaStruct: AzimuthWidth as AngleRadian ElevationWidth as AngleRadian unit Degree measure AngleDegree of Angle as single: units Degree view BeamAntennaDegrees: select BeamAntennaStruct.AzimuthWidth as AngleDegree select BeamAntennaStruct.ElevationWidth as AngleDegree view EntityIdentifierWide: select EntityIdentifier.Site select EntityIdentifier.AppId select EntityIdentifier.EntId as uint: alias EntityNumber
Adapt unit
Adapt name Adapt data
representation
Specific
interest
2013 Fall SIW
Connecting Systems Together Connection Facet
How do system interfaces CONNECT to one another?
16
bus RadarSystemBus: channel Entities of Entity: connect RadarSensor.Entities channel RadarCrossSections of RcsList: connect RadarSensor.RadarCrossSections connect RadarProcessor.RadarCrossSections channel Detections of DetectionList: connect RadarProcessor.Detections connect RadarDisplay.Detections channel RadarState of RadarState: connect RadarDisplay.State connect RadarProcessor.State
Channels connect
system ports together
2013 Fall SIW
Is the Radar System Description Complete?
INTERFACE | CONNECTION | DATA
– Fully capture system relationships
What about protocol? Encoding?
– We know where data goes, but not how
We need to capture TRANSPORT
17
2013 Fall SIW
Specifying Protocol Details Transport Facet
binding: captures bus protocol details
18
binding HlaBinding of RadarSystemBus as HLA.Protocol1516_2010: channels: encode DetectionList as HLA.objectClass encode DetectionList.Items as HLA.HLAfixedArray encode EntityIdentifier as HLA.HLAfixedRecord encode RadarStateEnum as byte qos: Reliability = BestEffort channel Detections: qos DetectionList.Items: Reliability = Reliable Order = Receive Sharing = PublishSubscribe
Describe
encoding
Describe
quality of service
(QoS)
Specify
protocol
Specific
channel
details
Common
channel
details
bus RadarSystemBus: ... channel Detections of DetectionList: connect RadarProcessor.Detections connect RadarDisplay.Detections
2013 Fall SIW
Specifying How to Access a Bus Transport Facet
network: provides bus access through endpoints
– binding concretely describes how data is exchanged
– network describes where to access it
19
network RadarSystemNetwork of RadarSystemBus: endpoint Hla of HlaBinding: address: FederationName = 'Radar System'
Optional
protocol-specific
address
2013 Fall SIW
How do we use the Radar System Description?
System implementations refer to specific system | endpoint
– E.g. an HLA Radar Sensor requires
– These definitions encompass all the system's data exchange details
We fully captured all aspects of the radar system data exchanges
20
system RadarSensor: input Entities of Entity output RadarCrossSections of RcsList
network RadarSystemNetwork of RadarSystemBus: endpoint Hla of HlaBinding: address: FederationName = 'Radar System'
2013 Fall SIW
Experimental Results
Test applications
– Entity Collision over DDS and HLA
– DDS-DIS gateway
– Ownership Control over DDS and Web Service
Fully generated data exchange software from SIDL
– System Interface | Data Model | Data Serialization
• C++ | C#
– Meta-Model
• HLA FOM | DDS IDL
– Protocol
• HLA | DDS | DIS
21
2013 Fall SIW
Experimental Results (cont.)
Many refactorings occurred to share more data definitions
– Reference data model emerged converging basic definitions
• observable | measure | unit
• info | fact
Breaking change introduction efficiently handled
– Meaningful validation errors | Strong semantics
Characterized data exchanges down to Transport details
– network and binding aimed at integrators, not system experts
22
2013 Fall SIW
SIDL Conceptual Model
23
2013 Fall SIW
Why all these Possibilities?
Enable reuse
– Higher levels of abstraction enable better reuse
Better governance | evolution | validation | automation
– Capture top-down system interface details
Simplify integration
– Express existing system interfaces in SIDL
It’s about enabling interoperability
24
2013 Fall SIW
Way Forward
SISO communities feedback, particularly
– ANDEM | BOM | GDACL | LSA | HLA | DIS | RPR-FOM
25
2013 Fall SIW
SIDL Data Model Data Facet
26
2013 Fall SIW
Variants Data Facet
variant: represents a value which has
finite set of varying forms
– E.g. uniform array of different items
27
variant AntennaPatternType of AntennaPatternEnum: case AntennaPatternEnum.Beam: // Active when AntennaPatternType is Beam BeamAntenna as BeamAntennaType otherwise: SphericalAntenna as SphericalAntennaType
2013 Fall SIW
Conceptual Data Transport Connection Facet
28
2013 Fall SIW
SIDL Modeling Stage
29
2013 Fall SIW
SIDL Code Generation Stage
30