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


Top Related