Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
PLUG code generation tool
1. PLUG Presentation Layer Universal Generator P&D/SSD/TCE/TFP/AST- 28/09/98 A joint company of Thomson-CSF Airsys and Siemens
2.
3. ATC processus Adjacent Air Traffic Control Cente r Airports Flight Data Processing METEO Data Radar Data Processing Flight Plan Radar Data Tracks Primary and secondary RADAR WAN LAN + - transmetter Receiver HF/VHF
4.
5.
6. Object analogy Implementation Interface A driver doesn't care of engine's internal working. He only knows the interface
7. Communication Object Design 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 Programming Language (C++) Programming Language (Ada)
8.
9.
10.
11.
12.
13.
14. API protocol UBSS API (SKELETON) APPLI UBSS API (STUBS) APPLI Server Client API PROTOCOL UNIX LAN UNIX API
15.
16. RPC principle Library Main Send Receive Unix process Client Server Marshalling Unmarshalling => XDR XDR Unix process S = A+ B A, B, + S Library Main Push Pop Unix process
17. API : Ada distributed Package Ada Package specificationc Ada Package Implementation Operations DATA and Operations Implementation Operations Empty Implementation Comms Operations DATA and Operations Implementation Client side Server side =>
18. Heterogeneous Distributed System : Language or Hardware Main API interface Ada Server Unix Process C Server Unix Process C++ Server Unix Process Ada or C or C++ Client Unix Process Operations DATA and Operations Implementation Operations DATA and Operations Implementation Operations DATA and Operations Implementation Operations DATA and Operations Implementation Operations DATA and Operations Implementation Operations DATA and Operations Implementation Operations DATA and Operations Implementation Operations DATA and Operations Implementation
21. PLUG : Presentation Layer Universal Generator XDR Stub Generator Coder Generator C Ada Ada API C Ada (IDL) (CDR) (IDL, C++)
22.
23. PLUG Coder generator IFF XDR/C generated encoding source files Front End (lex/yacc) Back End XDR/ADA generated encoding source files Ada Grammar (BNF) grammar analyze XDR Templates expansion XDR Templates (TDL) Ada API Independant Format File Abstract Syntax Tree
24.
25. Plug coder use : FIFO encode/decode FIFO Enqueue Dequeue Type A Type B Type Simple 1 Type Simple 2 End Type B Type C Type Simple 1 Type Simple 3 Type D Type Simple 3 Type Simple 2 End Type D End Type C End Type A Type A Type B Type Simple 1 Type Simple 2 End Type B Type C Type Simple 1 Type Simple 3 Type D Type Simple 3 Type Simple 2 End Type D End Type C End Type A Type Ada Type C Call Back encoding routing XDR buffer Tools User Ada XDR XDR C Tools User
26. Plug coder use : CDC encode/decode Type A Type B Type Simple 1 Type Simple 2 End Type B Type C Type Simple 1 Type Simple 3 Type D Type Simple 3 Type Simple 2 End Type D End Type C End Type A Type A Type B Type Simple 1 Type Simple 2 End Type B Type C Type Simple 1 Type Simple 3 Type D Type Simple 3 Type Simple 2 End Type D End Type C End Type A Type Ada Type C Call Back encoding routing CDC_write() CDC_read() Ada XDR XDR C CDC
27. Ada CSCI C CSCI XDR Ada Compiler C Compiler XDR : How it works.
28. Coder : Structure Serialization Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G End struct Message type1 Ada or C structure XDR Stream XDR Convertor Elementary types are : Int, Char, float, Boolean Field 1 Field 2 Field 3 Field 4 Field 5 Header Type 1 A B C D E F G
29. C/XDR Coder (C) Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 C structure XDR Stream Ada/XDR Coder (Ada) Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 Ada structure Interface Specification Abstract Syntax Transfert Syntax Programming Syntax Programming Syntax Object Message Passing Syntax Field 1 Field 2 Field 3 Field 4 Field 5 Field 6 Field 7 Field 8 Field 9
30. C/XDR Coder Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 C structure XDR Stream Ada/XDR Coder Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 Ada structure Interface Specification C/XDR Coder Generator Ada to C Translator Ada/XDR Coder Generator Ada Package Specification (With) Code generation output Field 1 Field 2 Field 3 Field 4 Field 5 Field 6 Field 7 Field 8 Field 9
31. Coder context C/XDR Coder Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 C structure Field 1 Field 2 Field 3 Field 4 Field 5 Field 6 Field 7 Field 8 Field 9 XDR Stream C/XDR Coder Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 C structure C/XDR Coder Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 C structure Field 1 Field 2 Field 3 Field 4 Field 5 Field 6 Field 7 Field 8 Field 9 XDR Stream Ada/XDR Coder Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 Ada structure Ada/XDR Coder Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 Ada structure Field 1 Field 2 Field 3 Field 4 Field 5 Field 6 Field 7 Field 8 Field 9 XDR Stream Ada/XDR Coder Struct Message Type 1 Field A Field B Field C Field D Field E Field F Field G Field H Field I End struct Message Type1 Ada structure