plug code generation tool
DESCRIPTION
IDL template based code generation toolTRANSCRIPT
![Page 1: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/1.jpg)
PLUG PLUG Presentation Layer Universal GeneratorPresentation Layer Universal Generator
P&D/SSD/TCE/TFP/AST- 28/09/98P&D/SSD/TCE/TFP/AST- 28/09/98
A joint company of Thomson-CSF Airsys and Siemens
![Page 2: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/2.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/232
OVERVIEW
ATC requirements : Plug & Play (flexibility) Object Oriented Design to automatic code generation Compiler & Parser PLUG (Presentation Layer Universal Generator) through
applications : Stub generation : PATIO API Coder generation : Object Message Passing
Future
* PATIO : Platform for ATM Tools Integration to Pre-operation
![Page 3: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/3.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/233
ATC processus
AdjacentAir Traffic ControlCenter
AdjacentAir Traffic ControlCenter
AirportsAirports Flight Data Processing
Flight Data Processing
METEO DataMETEO DataRadar Data Processing
Radar Data Processing
transmetterReceiverHF/VHF
transmetterReceiverHF/VHF
Flight PlanFlight Plan
Radar Data
Radar Data
Tracks
Primary
and secondary RADAR
WAN
LAN
+
-
![Page 4: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/4.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/234
ATC centre Architecture
Radar Data ProcessingRadar Data
Processing
Flight PlanProcessingFlight Plan
Processing
SupervisoryControlSupervisory
Control
SimulatorSimulator
RecordingReplayRecording
Replay
ControlerWorkingPosition
ControlerWorkingPosition
Voice control and
communicationsVoice control
and communications
Radar FrontProcessingRadar Front
Processing
Dual LANFDDI
AFTN/CIDINATFM
ADJACENTFIR'S/TWR'S
MET Centres
RADAR
• Intercom• Priority• Public• RADIO A/G
ControlerWorkingPosition
ControlerWorkingPosition
![Page 5: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/5.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/235
PLUG : Presentation Layer Universal Generator
OSI layer 6 & 7 services Manages heterogeneous programming
languages and hardware Provides Plug & Play (flexibility)
=> Automatic code generation
=> Object Oriented Design
Application
Presentation
Session
ASN.1*
7
6
5
ASE* ASE ASE ASE
![Page 6: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/6.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/236
Object analogy
Implementation Interface
A driver doesn't care of engine's internal working.He only knows the interface
![Page 7: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/7.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/237
Specification Language
Network
Node A Node B
IRS (IDL)Struct message1
Item1 : short;
Item2 : long;
Item3 : char;
Item4 : Boolean;
Item4 : Struct data
Item1 : :char;
Item2 : long;
Item3 : char;
Item4 : Boolean
Item4 : char;
end struct data;
end struct message1
Communication Language
ProgrammingLanguage (C++)
ProgrammingLanguage (Ada)
Communication Object Design
![Page 8: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/8.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/238
Syntax and Language
Abstract Syntax : specification language : ASN.1, IDL, (ADA)
Working Syntax : programming language : ADA, C, C++
Transfert (concrete) Syntax : communication language : BER/PER, XDR, CDR, ASTERIX, ADEXP, ICAO
![Page 9: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/9.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/239
Compiler VS Parser
Abstract Syntax is independent of Transfert syntax :
Automatic code generation : Compilers
If no Abstract Syntax (AS = TS) : Manual code generation : Parsers
![Page 10: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/10.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2310
PLUG Compilers
ABSTRACT SYNTAX PLUG Ada RPC : API PLUG ASN.1 : ATN PLUG IDL : CORBA
Front End (FE)
TRANSFERT SYNTAX PLUG XDR : API PLUG BER/PER : ATN PLUG CDR : CORBA, ESIOP
Back End (BE)
![Page 11: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/11.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2311
PLUG Parsers
PLUG ASTERIX : Radar, Meteo, Categorie XX
PLUG ADEXP : Flight Plan, ATS, AIS, CFMU, IFPS,
OLDI PLUG ICAO :
Flight Plan, Meteo, Notam, ATS, OLDI
Tracks
Primary
and secondary RADAR
![Page 12: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/12.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2312
PLUG Compilers through applications
Distributed Object Design : API (IDL) PATIO UBSS based Ada RPC Stub generator
Message passing object design XDR Coder generator
Miscellanous Symbolic trace and debug functions Programming Language translator
![Page 13: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/13.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2313
PATIO API paradigm Software components Plug & Play
Vertical services, Frame work, Design Patterns
Business Middleware = OSI layers 7,5,6 = ORB Core services
Business APIs = OSI layer 7 ASEs = CORBA objects
Business Middleware is also called API layer because it exhibits only application APIs.
An API (as an ASE) is : A protocol and A logical interface (API = abstract syntax) : IRS
* IRS : Interface Requirements Specification.
![Page 14: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/14.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2314
API protocol
UBSS
API(SKELETON)
APPLI
UBSS
API(STUBS)
APPLI
ServerClient
API PROTOCOL
UNIX
LAN
UNIX
API
![Page 15: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/15.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2315
API : How it works
API protocol is equivalent to Sun RPC (Remote Procedure Call) with asynchronous events
Servers Publish service interface and clients subscribe to services Client invokes remote procedures executed by the server or
receives asynchronous event Each server exports interfaces. RPC encapsulates network access :
Send/Receive are hidden by Application functions call RPC protocol manages parameters passing between client to
server. XDR (External Data Representation) manages heterogeneous
programming language and hardware : Ada, C, C++.
![Page 16: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/16.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2316
RPC principle
Library
Main
Push
Pop
Unix process
Library
Main
Send
Receive
Unix process
Client Server
Marshalling
Unmarshalling
=>XDR
XDR
Unix process
S = A+ B
A, B, +
S
![Page 17: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/17.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2317
API : Ada distributed Package
Ada Package specificationc
Ada PackageImplementation
OperationsOperations
DATAand
Operations Implementation
DATAand
Operations Implementation
OperationsOperations
EmptyImplementation
Comms
EmptyImplementation
Comms
OperationsOperations
DATAand
Operations Implementation
DATAand
Operations Implementation
Client side Server side
=>
![Page 18: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/18.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2318
Heterogeneous Distributed System : Language or Hardware
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Main API interface Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Ada ServerUnix Process
C ServerUnix Process
C++ ServerUnix Process
Ada or C or C++Client
Unix Process
![Page 19: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/19.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2319
API Programming model : Client Register;
Start Supervision API
Register with supervisor; Subscribe to supervision events
Program Main Loop
Wait next event
Case API
Supervision :
peek event from supervision :
process supervision events : Initialise, start, stop, kill
API1 :
peek event from API 1 :
process AP1 events : ............
API2 :
peek event from API 2 :
process AP2 events : ............
End loop
Stop event processing
Stop API1, API2
Stop supervision API
Unregister
Underlying code is the stub automatically generatedby PLUG.
Itallic code is written by applicationprogrammer.
![Page 20: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/20.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2320
Supervised
Initialised
Running
Initialise / Start Services & Subscribe
Start / Process Events
Kill / Unregister
Unsupervised
/ Start supervision, Register & Subscribe
Unregistered
/ RegisterEvent/Action
Frozen
Unfreeze / Process Events
Stop / Stop services
Kill / Stop Services & Unregister
Freeze / Don't process Events
Client state diagram
![Page 21: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/21.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2321
XDR
Stub Generator Coder Generator
C Ada
Ada API
C Ada
PLUG : Presentation Layer Universal Generator
(IDL)
(CDR)(IDL,C++)
![Page 22: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/22.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2322
PLUG Stub Generator
Register; Start Supervion API
Register with supervisor; Subscribe to supervision events
Program Main Loop
Wait next event
Case API
Supervision :
peek event from supervision :
process supervision events : Initialise, start, stop, kill
API1 :
peek event from API 1 :
process AP1 events : .
API2 :
peek event from API 2 :
process AP2 events : ............
API3 :
peek event from API 2 :
process AP2 events : ............
End loop
Stop event processing
Stop API1, API2
Stop supervision API
Unregister
• Program skeltons are automatically generated by PLUG.• Stub generation is template driven.• Templates are written with PLUG Template Description Language (TDL).
Template
All Technical Middelware details are hidden to the programmer : Registry, Supervision, Subscription.
![Page 23: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/23.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2323
PLUG Coder generator
IFF
XDR/C generatedencoding source files
Front End(lex/yacc)
Back End
XDR/ADA generatedencoding source files
Ada Grammar
(BNF)
grammar analyzegrammar analyze
XDR Templatesexpansion
XDR Templatesexpansion
XDR Templates
(TDL)
AdaAPI
Independant Format File
Independant Format File
Abstract Syntax Tree
![Page 24: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/24.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2324
Object message passing with PLUG
UBSS manages pipes not the semantic of transported messages
PLUG Coder are used to manage FIFO and CDC messages.
Ada type specification is used as Specification input file (AS)
IRS documents are replaced by Ada specification
![Page 25: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/25.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2325
Plug coder use : FIFO encode/decode
FIFOEnqueue Dequeue
Type AType BType Simple 1Type Simple 2
End Type BType CType Simple 1Type Simple 3Type D
Type Simple 3Type Simple 2
End Type DEnd Type C
End Type A
Type AType BType Simple 1Type Simple 2
End Type BType CType Simple 1Type Simple 3Type D
Type Simple 3Type Simple 2
End Type DEnd Type C
End Type A
Type Ada Type C
Ada
XDR
XDR
C
Call Back encoding routing
XDR buffer
ToolsUser Tools User
![Page 26: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/26.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2326
Plug coder use : CDC encode/decode
Ada
XDR
XDR
C
Type AType BType Simple 1Type Simple 2
End Type BType CType Simple 1Type Simple 3Type D
Type Simple 3Type Simple 2
End Type DEnd Type C
End Type A
Type AType BType Simple 1Type Simple 2
End Type BType CType Simple 1Type Simple 3Type D
Type Simple 3Type Simple 2
End Type DEnd Type C
End Type A
Type Ada Type CCall Back encoding routing
CDCCDC_write() CDC_read()
![Page 27: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/27.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2327
AdaCSCI
CCSCI
XDR
Ada Compiler C Compiler
XDR : How it works.
![Page 28: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/28.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2328
Coder : Structure Serialization
Struct Message Type 1
Field AField B
Field CField D
Field EField FField G
End struct Message type1
Ada or C structure
XDR Stream
XDR Convertor
Elementary types are : Int, Char, float, Boolean Field 1Field 2Field 3Field 4Field 5 Header
Type 1
A B
C D
E
F G
![Page 29: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/29.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2329
C/XDRCoder
(C)
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
C structure
Field 1Field 2Field 3Field 4Field 5Field 6Field 7Field 8Field 9
XDR StreamAda/XDRCoder(Ada)
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
Ada structure
InterfaceSpecification
Abstract Syntax
Transfert Syntax
Programming SyntaxProgramming Syntax
Object Message Passing Syntax
![Page 30: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/30.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2330
C/XDRCoder
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
C structure
Field 1Field 2Field 3Field 4Field 5Field 6Field 7Field 8Field 9
XDR StreamAda/XDR
Coder
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
Ada structure
InterfaceSpecification
C/XDRCoder
Generator
Ada to CTranslator
Ada/XDRCoder
Generator
Ada PackageSpecification
(With)
Code generation output
![Page 31: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/31.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2331
C/XDRCoder
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
C structure
Field 1Field 2Field 3Field 4Field 5Field 6Field 7Field 8Field 9
XDR StreamC/XDRCoder
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
C structure
C/XDRCoder
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
C structure
Field 1Field 2Field 3Field 4Field 5Field 6Field 7Field 8Field 9
XDR StreamAda/XDR
Coder
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
Ada structure
Ada/XDRCoder
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
Ada structure
Field 1Field 2Field 3Field 4Field 5Field 6Field 7Field 8Field 9
XDR StreamAda/XDR
Coder
Struct Message Type 1 Field A
Field BField C
Field DField E
Field FField GField H
Field IEnd struct Message Type1
Ada structure
Coder context
![Page 32: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/32.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2332
Plug other possible applications
Symbolic trace and debug functions Complex structure symbolic dump
Programming Language Translator Ada to C, Ada to C++
Off line and recording files management XDR standard file format
![Page 33: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/33.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2333
Sum Up
Object Oriented Design is mandatory to manage heterogeneous programming language and hardware to provide P&P.
Three kinds of services UBSS based Object Middleware : API Ada abstract syntax for Object Message Passing Handcrafted Parser for ATC specific Transfer
Syntax
![Page 34: PLUG code generation tool](https://reader033.vdocument.in/reader033/viewer/2022061216/54b34f8c4a7959ae248b4595/html5/thumbnails/34.jpg)
E. F
UC
HS
plug
.ppt
P&D/SSD/TCE/TFP/AST - 04/10/2334
Future
IDL based ASTERIX compiler States chart based code generation for Object
dymanic ASE Skelton automatic generation Business Object Skelton automatic generation Ada/C++ translator