Upload
martin-tapp
View
492
Download
1
Embed Size (px)
DESCRIPTION
PhD Thesis Defense http://publications.polymtl.ca/1256/1/2013_MartinTapp.pdf
Citation preview
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
2
Full Mission Simulator Platforms Context
Enable Better System: Integration | Interoperability
Focus: System Interfaces | Data Exchanges
3
Multi-Architecture Environment Background
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
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
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?
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
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
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]
10
System Interoperability Facets Taxonomy Basis
11
SIDL Conceptual Model Language Elements
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
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
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
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
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
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
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
19
Connecting Systems Together Connection Facet
bus RadarSystemBus: ... channel Detections of DetectionList: connect RadarProcessor.Detections connect RadarDisplay.Detections
Channels connect
system ports
together
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
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
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
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
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
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
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
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
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
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
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
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
32
Capturing Data Model Mappings Future Work
Simplify Gateway Creation
Provide architecture-agnostic way of specifying
mappings (i.e. Interoperability logic)
33
Workflow-Driven Development Future Work
Know-How
What
How
-Hardware-Aware Software
-Legacy Assets Integration
-Multi-Language Integration -Debugging at the DSL Level
34
Questions?
Thank You!
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.
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.
37
Simulation Background
Aircraft
Behavior
Position
Velocity
Acceleration
Interaction
Aircraft object
38
Distributed Simulation Background
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)
40
System Interoperability Facets Taxonomy Basis
Interface Connection
Transport | Data
41
SIDL Data Model
42
Radar System Example
Let’s express this in SIDL (RCS = Radar Cross Section)
43
Modeling Stage Implementation
SIDL Description (SharpDevelop Editor)
SIDL Description Compiler (Boo)
SIDL Library (.NET)
Know-How
What
How
44
Code Generation Stage Implementation
SIDL Libraries (.NET)
SIDL Code Generator (C#)
System Interface (C++, C#)
Know-How
How
System + Endpoint + Settings
What
45
Test Cases Experimental Results
Colliding Balls
Representative distributed system
Ownership Transfer
Typical distributed sim. function
Gateway
Multi-architecture test case
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
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
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