system interface description language

30
2013 Fall SIW System Interface Description Language Presented by Martin Tapp 1

Upload: martin-tapp

Post on 27-Jun-2015

439 views

Category:

Technology


2 download

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.pdf

TRANSCRIPT

Page 1: System Interface Description Language

2013 Fall SIW

System Interface Description Language Presented by Martin Tapp

1

Page 2: System Interface Description Language

2013 Fall SIW

System Integration

Multi-Architecture Environments | Heterogeneous Systems

– Distributed simulation: HLA, DIS, DDS

– Avionics: A429, AFDX

2

Page 3: System Interface Description Language

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

Page 4: System Interface Description Language

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

Page 5: System Interface Description Language

2013 Fall SIW

System Interoperability Facets

5

Page 6: System Interface Description Language

2013 Fall SIW

Facets Example

6

Interface Connection

Transport | Data

Page 7: System Interface Description Language

2013 Fall SIW

Radar System Example

7

Let’s express this in SIDL

(RCS = Radar Cross Section)

Page 8: System Interface Description Language

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

Page 9: System Interface Description Language

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

Page 10: System Interface Description Language

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

Page 11: System Interface Description Language

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

Page 12: System Interface Description Language

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

Page 13: System Interface Description Language

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

Page 14: System Interface Description Language

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

Page 15: System Interface Description Language

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

Page 16: System Interface Description Language

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

Page 17: System Interface Description Language

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

Page 18: System Interface Description Language

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

Page 19: System Interface Description Language

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

Page 20: System Interface Description Language

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'

Page 21: System Interface Description Language

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

Page 22: System Interface Description Language

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

Page 23: System Interface Description Language

2013 Fall SIW

SIDL Conceptual Model

23

Page 24: System Interface Description Language

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

Page 25: System Interface Description Language

2013 Fall SIW

Way Forward

SISO communities feedback, particularly

– ANDEM | BOM | GDACL | LSA | HLA | DIS | RPR-FOM

25

Page 26: System Interface Description Language

2013 Fall SIW

SIDL Data Model Data Facet

26

Page 27: System Interface Description Language

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

Page 28: System Interface Description Language

2013 Fall SIW

Conceptual Data Transport Connection Facet

28

Page 29: System Interface Description Language

2013 Fall SIW

SIDL Modeling Stage

29

Page 30: System Interface Description Language

2013 Fall SIW

SIDL Code Generation Stage

30