48
AUTOMATING SYSTEM-LEVEL DATA-INTERCHANGE SOFTWARE THROUGH A SYSTEM INTERFACE DESCRIPTION LANGUAGE PRESENTED BY MARTIN TAPP DEPARTMENT OF COMPUTER ENGINEERING DECEMBER 2, 2013 Ph.D. Thesis Defense

Automating System-Level Data-Interchange Software through a System Interface Description Language

Embed Size (px)

DESCRIPTION

PhD Thesis Defense http://publications.polymtl.ca/1256/1/2013_MartinTapp.pdf

Citation preview

Page 1: Automating System-Level Data-Interchange Software through a System Interface Description Language

AUTOMATING SYSTEM-LEVEL

DATA-INTERCHANGE SOFTWARE

THROUGH A SYSTEM INTERFACE

DESCRIPTION LANGUAGE

PRESENTED BY MARTIN TAPP DEPARTMENT OF COMPUTER ENGINEERING

DECEMBER 2, 2013

Ph.D. Thesis Defense

Page 2: Automating System-Level Data-Interchange Software through a System Interface Description Language

2

Full Mission Simulator Platforms Context

Enable Better System: Integration | Interoperability

Focus: System Interfaces | Data Exchanges

Page 3: Automating System-Level Data-Interchange Software through a System Interface Description Language

3

Multi-Architecture Environment Background

Page 4: Automating System-Level Data-Interchange Software through a System Interface Description Language

4

Problem Statement System Integration | Interoperability Challenges

Data Compatibility

Units: Radians vs. Degrees

Frame of Reference: Geodetic vs. Geocentric

Data Representation Compatibility

Structure: Protocol peculiarities (e.g. Objects vs. Messages)

Duplicated Definitions: Copy in each architecture

Page 5: Automating System-Level Data-Interchange Software through a System Interface Description Language

5

Problem Statement (cont.) System Integration | Interoperability Challenges

System Interface: Evolution | Governance

Change Introduction:

Complex Impact Prediction + Validation

What changed?

Change occurs in which architecture?

Link between each architecture representation?

Common Language:

Common Understanding between Stakeholders

Unambiguously Capture:

System Interfaces | Data Exchanges

Machine-Processable System Interface Descriptions

Page 6: Automating System-Level Data-Interchange Software through a System Interface Description Language

6

Research Questions

Q1

What should be Formally Described in Order to Capture

System Interfaces and the Various Aspects Surrounding their

Data Exchanges, and How?

Q2

How should Multi-Architecture Considerations be Captured?

Q3

How should System Interface Descriptions be Used to

Automate Some of the Tasks Involved in

System Integration and Interoperability?

Page 7: Automating System-Level Data-Interchange Software through a System Interface Description Language

7

Proposal

System Interface Description Language (SIDL)

Addresses

Q1 (What + How)

What: Relevant language elements identified

How: Domain-Specific Language

Q2 (Multi-Architecture Considerations)

Architecture-Agnostic: From SIDL to specific architectures

Page 8: Automating System-Level Data-Interchange Software through a System Interface Description Language

8

Proposal (cont.)

Method to Automate the System-Level Data-Interchange

Software from System Interface Descriptions

Addresses

Q3 (Automate)

SIDL Model Compiler + Code Generation

Data Model

Data Serialization

Communication Interface

Page 9: Automating System-Level Data-Interchange Software through a System Interface Description Language

9

Why a Domain-Specific Language (DSL)? Hiding Software Complexity

In the language of its stakeholders

Can treat model as source code [Llorente]

Scales better than UML [Eysholdt]

Simplifies Change Identification [Eysholdt]

Compiler enables: Strong Semantics + Validation + Code Generation [Wang]

Page 10: Automating System-Level Data-Interchange Software through a System Interface Description Language

10

System Interoperability Facets Taxonomy Basis

Page 11: Automating System-Level Data-Interchange Software through a System Interface Description Language

11

SIDL Conceptual Model Language Elements

Page 12: Automating System-Level Data-Interchange Software through a System Interface Description Language

12

Capturing System Interface Descriptions Related Work

WSDL: Similarity between Services and Systems

HLA

OMT WSDL IDL AADL FACE SIDL

Interface

Data

Connection

Transport

Multi-Architecture Considerations

Complex Validation Rules

Change Identification

Page 13: Automating System-Level Data-Interchange Software through a System Interface Description Language

13

Port: input or output data

Data type specified with of

Defining Systems Interfaces Interface Facet

system RadarSensor: input Entities of Entity output RadarCrossSections of RcsList ...

Entities port inputs

Entity messages

RCS: Radar Cross Section

Page 14: Automating System-Level Data-Interchange Software through a System Interface Description Language

14

entity: structure with fields

Defining Data Types Data Facet

entity Entity: EntityIdentifier as EntityIdentifier RcsSignatureIndex as short ...

Value types:

• integers, floating points

• chars, strings

• booleans

• enumerations

Field’s representation

specified with as

Page 15: Automating System-Level Data-Interchange Software through a System Interface Description Language

15

Abstract Level Data Facet

Could define EntityIdentifier this way

Context: Multi-Architecture | Heterogeneous Systems

How do we relate EntityIdentifier to other kinds of identity?

Data models contain many

What if identity is represented in other ways?

Different size (8bit, 64bit, 128bit)

Different structure (UUID, GUID, 4 integers)

entity EntityIdentifier: Site as ushort AppId as ushort EntId as ushort

Page 16: Automating System-Level Data-Interchange Software through a System Interface Description Language

16

Abstract Level (cont.) Data Facet

Let’s raise the abstract level

info: something descriptive in nature

fact: concrete info representation

info Name info Description info UniqueIdentity fact EntityIdentifier of UniqueIdentity Site as ushort AppId as ushort EntId as ushort fact OtherIdentity of UniqueIdentity Id as uint

Links all identity

representations

together Specific identity

representation

Page 17: Automating System-Level Data-Interchange Software through a System Interface Description Language

17

Abstract Level (cont.) Data Facet

Going further

observable: something quantified through physical world measurement

measure: concrete observable representation with frame | unit

observable Orientation observable Angle unit Radian frame TrueNorth measure AngleRadian of Angle as single: units Radian frame TrueNorth precision 0.000001

Links all angle

representations

together Specific angle

representation

Page 18: Automating System-Level Data-Interchange Software through a System Interface Description Language

18

Abstract Level (cont.) Data Facet

What if a system’s interface is not aligned

with a reference data model?

view: window over one or more entity

Enables System Interface Adaptation

view BeamAntennaDegrees: select BeamAntennaStruct.AzimuthWidth as AngleDegree select BeamAntennaStruct.ElevationWidth as AngleDegree view AppAndWideEntityNumber: select EntityIdentifier.AppId select EntityIdentifier.EntId as uint: alias EntityNumber

Adapt unit

Adapt

name

Adapt data

representation

Specific

interest

Page 19: Automating System-Level Data-Interchange Software through a System Interface Description Language

19

Connecting Systems Together Connection Facet

bus RadarSystemBus: ... channel Detections of DetectionList: connect RadarProcessor.Detections connect RadarDisplay.Detections

Channels connect

system ports

together

Page 20: Automating System-Level Data-Interchange Software through a System Interface Description Language

20

Specifying Protocol Details Transport Facet

binding: captures bus protocol details

Captures architecture-specific considerations (Q2)

binding HlaBinding of RadarSystemBus as HLA.Protocol1516_2010: channels: encode DetectionList as HLA.objectClass qos: Reliability = BestEffort channel Detections: qos DetectionList.Items: Reliability = Reliable

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 21: Automating System-Level Data-Interchange Software through a System Interface Description Language

21

Specifying How to Access a Bus Transport Facet

network: provides bus access through endpoints

binding describes how data is exchanged

network describes where to access it

network RadarSystemNetwork of RadarSystemBus: endpoint Hla of HlaBinding

Page 22: Automating System-Level Data-Interchange Software through a System Interface Description Language

22

Using SIDL Descriptions

System implementations refer to specific system | endpoint

Unambiguously Captures

System Interfaces | Data Exchanges

system: Covers Interface | Data

endpoint: Covers Transport | Connection

Can completely derive the data-interchange software

Page 23: Automating System-Level Data-Interchange Software through a System Interface Description Language

23

Data-Interchange Software Automation

Two-Stage Workflow

Modeling

Code Generation

Why not One-Stage?

Prevents reusing SIDL descriptions directly

i.e. reuse library vs. share source code

Page 24: Automating System-Level Data-Interchange Software through a System Interface Description Language

24

Modeling Stage Data-Interchange Software Automation

SIDL

Description(s)

SIDL Model Compiler

SIDL Library

Know-How

What

How

Element definitions

used in SIDL

libraries

SIDL

Libraries

Page 25: Automating System-Level Data-Interchange Software through a System Interface Description Language

25

Code Generation Stage Data-Interchange Software Automation

SIDL

Libraries

SIDL Code Generator

System-Level Data-Interchange

Software

Know-How

How

System + Endpoint + Settings

What

Target language

e.g. C++, C#

Shared with

Modeling Stage

Protocol support +

code gen.

simplification

Page 26: Automating System-Level Data-Interchange Software through a System Interface Description Language

26

Validation Strategy

Identify use cases with Subject Matter Experts (SMEs)

Implement test cases composed of test systems

Define language with SMEs

Prototype language implementation

Model test systems in SIDL

Generate data-interchange software

Refactor test systems accordingly

Validate test cases

Improve language from SME feedback

Iterate again if

Use cases not achieved

Data-interchange software requires manual intervention

Page 27: Automating System-Level Data-Interchange Software through a System Interface Description Language

27

Discussion

Introduced System Interoperability Facets

Prior: Levels of Conceptual Interoperability Model [Tolk]

Characterized attainable levels of interoperability between systems

Proposed New Taxonomy

Common language shared by stakeholders

Page 28: Automating System-Level Data-Interchange Software through a System Interface Description Language

28

Discussion (cont.)

Simplified Validation | Evolution | Governance

Dedicated language to describing system interfaces

Captured Multi-Architecture Considerations

Architecture-Agnostic Format

Specific details captured with binding | network | endpoint

Page 29: Automating System-Level Data-Interchange Software through a System Interface Description Language

29

Discussion (cont.)

Automated the System-Level Data-Interchange Software

Generated test cases entirely from SIDL descriptions

System Interface, Data Model, Serialization, Architecture-Specific Artifacts

Architecture-agnostic code generator

Multi-architecture considerations natively captured in SIDL

Enabled System Interface Reuse

Modeled system interface variability with views

Enable system reuse across multiple platforms in support of product

lines

Page 30: Automating System-Level Data-Interchange Software through a System Interface Description Language

30

Limitations

More than Semantic

SIDL covers up to Semantic Level of Conceptual Interop. Model [Tolk]

Higher levels would enable further System Interoperability | Automation

Conversion Modeling

view support limited to language side

Requires new language elements to cover conversions

Configuration in Support of Modeling

Information not captured by SIDL left as configuration data

E.g. communication middleware configuration

What to capture in SIDL?

Derive new elements only when

Standardized

Impact system interoperability in uniform way

Page 31: Automating System-Level Data-Interchange Software through a System Interface Description Language

31

Conclusion

Problem of formally describing system interfaces

Can be generalized to other domains

Operational systems: e.g. Aerospace, Automotive

Enabled Better System: Integration | Interoperability

Page 32: Automating System-Level Data-Interchange Software through a System Interface Description Language

32

Capturing Data Model Mappings Future Work

Simplify Gateway Creation

Provide architecture-agnostic way of specifying

mappings (i.e. Interoperability logic)

Page 33: Automating System-Level Data-Interchange Software through a System Interface Description Language

33

Workflow-Driven Development Future Work

Know-How

What

How

-Hardware-Aware Software

-Legacy Assets Integration

-Multi-Language Integration -Debugging at the DSL Level

Page 34: Automating System-Level Data-Interchange Software through a System Interface Description Language

34

Questions?

Thank You!

Page 35: Automating System-Level Data-Interchange Software through a System Interface Description Language

35

References

Llorente

César de la Torre Llorente, "Model-Driven SOA with Oslo," The Architecture Journal, vol. 21, pp. 10-15, 2009.

Eysholdt

Moritz Eysholdt and Johannes Rupprecht, "Migrating a large modeling environment from XML/UML to Xtext/GMF," in Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, 2010, pp. 97-104.

Wang

Wenguang Wang, Andreas Tolk, and Weiping Wang, "The levels of conceptual interoperability model: Applying systems engineering principles to M&S," in Proceedings of the 2009 Spring Simulation Multiconference, San Diego, 2009.

Tolk

Andreas Tolk, Charles Turnitsa, and Saikou Diallo, "Implied ontological representation within the levels of conceptual interoperability model," Intelligent Decision Technologies, vol. 2, no. 1, pp. 3-19, February 2008.

Page 36: Automating System-Level Data-Interchange Software through a System Interface Description Language

36

References (cont.)

HLA OMT

"IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA) Object Model Template (OMT) Specification," IEEE, IEEE Std 1516.2-2010, 2010.

WSDL

"Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language," W3C, wsdl20, 2007. [Online]. http://www.w3.org/TR/wsdl20

IDL

"Interface Definition Language (IDL) 3.5," Object Management Group, IDL35, 2013. [Online]. http://www.omg.org/spec/IDL35

AADL

"Architecture Analysis & Design Language (AADL)," SAE, AS5506, 2012. [Online]. http://standards.sae.org/as5506b

FACE

"Technical Standard for Future Airborne Capability Environment (FACE™), Edition 2.0," The Open Group, C137, 2013. [Online]. https://www2.opengroup.org/ogsys/catalog/c137

DDS

"Data Distribution Service for Real-time Systems Version 1.2," Object Management Group, formal/07-01-01, 2007.

DIS

"IEEE Standard for Distributed Interactive Simulation-Application Protocols," IEEE, IEEE Std 1278.1-2012, 2012.

Page 37: Automating System-Level Data-Interchange Software through a System Interface Description Language

37

Simulation Background

Aircraft

Behavior

Position

Velocity

Acceleration

Interaction

Aircraft object

Page 38: Automating System-Level Data-Interchange Software through a System Interface Description Language

38

Distributed Simulation Background

Page 39: Automating System-Level Data-Interchange Software through a System Interface Description Language

39

Stakeholder Perspectives System Integration | Interoperability Challenges

System Integrators

Heterogeneous System Interfaces

Multiple Suppliers

System Suppliers

Heterogeneous Platforms

Reuse System Across Multiple Platforms

(i.e. Enable Product Line Support)

Page 40: Automating System-Level Data-Interchange Software through a System Interface Description Language

40

System Interoperability Facets Taxonomy Basis

Interface Connection

Transport | Data

Page 41: Automating System-Level Data-Interchange Software through a System Interface Description Language

41

SIDL Data Model

Page 42: Automating System-Level Data-Interchange Software through a System Interface Description Language

42

Radar System Example

Let’s express this in SIDL (RCS = Radar Cross Section)

Page 43: Automating System-Level Data-Interchange Software through a System Interface Description Language

43

Modeling Stage Implementation

SIDL Description (SharpDevelop Editor)

SIDL Description Compiler (Boo)

SIDL Library (.NET)

Know-How

What

How

Page 44: Automating System-Level Data-Interchange Software through a System Interface Description Language

44

Code Generation Stage Implementation

SIDL Libraries (.NET)

SIDL Code Generator (C#)

System Interface (C++, C#)

Know-How

How

System + Endpoint + Settings

What

Page 45: Automating System-Level Data-Interchange Software through a System Interface Description Language

45

Test Cases Experimental Results

Colliding Balls

Representative distributed system

Ownership Transfer

Typical distributed sim. function

Gateway

Multi-architecture test case

Page 46: Automating System-Level Data-Interchange Software through a System Interface Description Language

46

Automating System-Level Data-Interchange Software Experimental Results

Fully generated data-interchange software from SIDL System Interface | Data Model | Data Serialization

C++ | C#

Architecture-Specific Artifacts

Data Model Representations: HLA OMT | DDS IDL

Protocol

HLA | DDS | DIS

Page 47: Automating System-Level Data-Interchange Software through a System Interface Description Language

47

SIDL Modeling – SME Feedback Experimental Results

Minus

Better code + SIDL integration: two development environments

Integrate SIDL in code development environment

No code completion + better syntax highlighting

Support present except not implemented

Array syntax

Some did not like it

Lacks lower bounds

Page 48: Automating System-Level Data-Interchange Software through a System Interface Description Language

48

SIDL Modeling – SME Feedback (cont.) Experimental Results

Plus

SIDL as source code

Easier understanding of model evolution

Same revision control system and comparison tool

Meaningful validation errors | Strong semantics

Breaking changes easily pinpointed (both for Modeling + Code Generation)

Code Generation

Increased efficiency as focus not on data-interchange software

Multi-architecture peculiarities dealt in uniform way

System experts could delegate network and binding to integrators