1 / 24

A Plug-in Transport with Dissimilar ORBs and a Connectionless Network Nathan Scandella Boeing Phantom Works

A Plug-in Transport with Dissimilar ORBs and a Connectionless Network Nathan Scandella Boeing Phantom Works. OMG Embedded Object-Based Workshop 19 January, 2001 Santa Clara, CA. Plug-in Transports for CORBA. Introduction to DARPA/Air Force Project Design Motivators system architecture

daire
Download Presentation

A Plug-in Transport with Dissimilar ORBs and a Connectionless Network Nathan Scandella Boeing Phantom Works

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Plug-in Transport with Dissimilar ORBs and a Connectionless NetworkNathan ScandellaBoeing Phantom Works OMG Embedded Object-Based Workshop 19 January, 2001 Santa Clara, CA

  2. Plug-in Transports for CORBA • Introduction to DARPA/Air Force Project • Design Motivators • system architecture • description of our transport • CORBA Solution • How to Plug In a Transport • Lessons Learned • recommendations for RT CORBA

  3. punch line: • TAO and ORBexpress real-time ORBs chosen • Datalink transport plugged-in to ORBs WSOA Introduction • Case Study - DARPA/Air Force sponsored flight demonstration project • Weapons System Open Architecture (WSOA) • Standards-based middleware desired • Secure tactical datalink available between aircraft

  4. WSOA Project Concept Commercial Satellite / GBS • Broadcast of Time Critical Data Airborne C2 Node • Collaborates for Target Validation • Retasks Enroute Strike • Net Meeting with Warrior to replan route • JTIDS RF Net • Browser Requests • Low Volume Imagery • Backbone for Tactical “Net Meeting” Warrior Virtual Data Archive • IPL Provides Target Imagery • Generates Mission Preview • Injects Time Critical Tactical Data into Broadcast • “Browser” Requests for Target and Imagery data • Net Meeting with C2 Node for Target Review and Mission Replan • “Browser” Requests for Mission Rehearsal • Pulls Imagery and Rehearsal Data • Previews Updated Mission Enroute C2 = Command & Control (e.g. AWACS)

  5. VTF ATO Data Display IPL VTF Shared Display Data WSOA Software Architecture C2 F-15 “Server” “Client” IPL Server VTF Server Collaboration Server ATO Server Collaboration Mgmt Task Shared Display Task Collaboration Client Server-side delegate Client-side delegate IDL IDL ORBexpress RT CORBA BUS TAO

  6. VTF ATO Data Display IPL VTF Shared Display Data WSOA Software Architecture C2 F-15 IPL Server VTF Server Collaboration Server ATO Server Collaboration Mgmt Task Shared Display Task Collaboration Client Server-side delegate Client-side delegate IDL IDL ORBexpress RT CORBABUS TAO

  7. Time Division Multiple Access (TDMA) Nodeless Message and Transmission Encryption Frequency Hopping UHF, LX Band Line of Sight Link 16 Transport Mil-Std-6016 Tactical Digital Information Link - Joint Tactical Information Distribution System (JTIDS)

  8. Link 16 Transport • Secure RF broadcast network • no connections! • Reliable delivery, error detection and correction • Most messages are content specific, except JTIDS free text message • this message used to transmit secure digital voice data • compressed imagery not tolerant of transmission errors • Free text (~byte stream) effective data rate < 16kbps • “Transport” is really a network application • GIOP could be tunneled thru JTIDS messages, though

  9. header 1 GIOP ... 2 3 Free Text Message Transport Layer • message sequence number • subaddress • ala TCP “port” • currently, no host identifier • message status • start, during, end • message byte count • overhead • approx. 4 bytes per (GIOP) message + 2 bytes for each 54 bytes of (GIOP) message length • compatible with other free text data applications “link16://00041:12”

  10. Aside: Why Else to Replace TCP/IP? From OIS, CORBA Programming with ORBexpress in Ada 95

  11. CORBA Implementation - Inline Bridge Client Application Socket simulation or ORB API (pluggable protocols) TAO “Server” Which API? Transport interface ORBexpress Which API? Transport interface Connectionless datalink messaging Connectionless datalink messaging

  12. Delegate or Proxy Server Server Application ORBexpress Transport interface Java ORB IIOP/TCP (sockets) Connectionless datalink messaging IIOP/TCP (sockets) CORBA Implementation - Inline Bridge Client Application Socket simulation or ORB API (pluggable protocols) TAO Which API? Transport interface the delegate sits on a “firewall” and uses two transports concurrently! Which API? Connectionless datalink messaging

  13. CORBA Implementation - Transport Native ORB transport Plug-in transport IIOP • Pluggable transport protocol between TAO and ORBexpress RT • Each ORB has unique transport interface • Future CORBA specification should standardize this From OIS, CORBA Programming with ORBexpress in Ada 95

  14. CORBA recommended method for inline bridging in CORBA spec in the future? uses GIOP clean integration into ORB multiple transports OK simple high level API for ORBexpressRT experience with this method standard network interface for other network apps uses IIOP (GIOP over ~TCP) requires namespace resolution for using real IPC sockets AND socket emulation may have complex system calls to emulate true POSIX sockets experience with this method CORBA Implementation - Inline Bridge Which Network API? ORB Pluggable Protocol Socket API

  15. Imagery Server Client-Side Delegate CORBA Implementation C2 F-15E Client-Server Request for Imagery Application Client 1: getImage(ref ) 11: getImage(ref ) Server-side Delegate 2: getImage(ref ) 10: getImage(ref ) TAO ORB OIS ORB 3: write(address, GIOPmsg) 18: listen(address, GIOPmsg) 9: listen(address, GIOPmsg) 12: write(address, GIOPmsg) Network Transport Network Transport Interface Interface 4: sendMsg(GIOPmsg ) 17: callbackFreeText(GIOPmsg) 13: sendMsg(GIOPmsg ) 8: callbackFreeText(GIOPmsg) Link-16 Link-16 s/w s/w 14: sendFreeText (GIOPmsg) 5: sendFreeText (GIOPmsg) 16: recvFreeText(data) 7: recvFreeText(data) 6: xmitFreeText (bits) JTIDS JTIDS h/w h/w * AMI not shown 15: xmitFreeText (bits)

  16. Connection-oriented Reliable Stream-based Notification of connection-loss Connection-initiation model Wrap Link-16 addressing info into transport messages. Transport includes orderly delivery. Implemented by free text transport layer. Asynchronous messaging used to avoid timeouts. Dummy connect() call implemented. IOR strings used. GIOP Transport Requirements Requirement Comments From OIS, CORBA Programming with ORBexpress in Ada 95

  17. classes to implement Plug-in Transport Framework TAO Client Class Diagram from Kuhns et al., The Design and Performance of a Pluggable Protocols Framework for Real-time Distributed Object Computing Middleware

  18. classes to implement Plug-in Transport Framework TAO Server Class Diagram from Kuhns et al., The Design and Performance of a Pluggable Protocols Framework for Real-time Distributed Object Computing Middleware

  19. l l l l WSOA Server Side Architecture Existing Command and Control Architecture Program Layer COTS/GOTS UNIX Compatible Applications Link 16 Weapons Tracker Link 11 Link 4 ATOs IJMS ESM Etc. Tactical Services (datalink interface) Human Machine Interface (HMI) Executive Services Ada Run Time System Operating System (UNIX) Hardware (Compaq Alpha) COTS LAN Mission Computer Program

  20. Program Layer Shared Display Task Collaboration Server C2 Display ORB Database (VTF, ATO, IPL) Mgmt Java Class Libraries Java Run Time Operating System (UNIX) Hardware (Compaq Alpha) COTS LAN WSOA Server Application WSOA Server Delegate Architecture Detailed WSOA CORBA Architecture ProgramLayer COTS/GOTS UNIX Compatible Applications Delegate Etc. Link 16 Weapons Tracker Link 11 Link 4 ATOs IJMS ESM ORB Etc. Tactical Services (DI xport) Human Machine Interface (HMI) Executive Services Ada Run Time System Operating System (UNIX) Hardware (Compaq Alpha) COTS LAN Mission Computer Program

  21. WSOA C2 Tasking Model (Simpler) Concurrency Model - C2 (Server) Mission Computer Program (Ada) Delegate (Ada) WSOA Server (Java) Link 16 Processing Server side delegate Collab & Imagery Server Free text xmit/recv ORBexpress Data, Events Data, Events Transport (Datalink Interface) imagery db database manager Tactical Core Process intRA-process communication IIOP NFS Library or subroutines Thread

  22. Client-Side Delegate TAO ORB Concurrency Model - Client/Server Application Client async return keeps client middleware from blocking with our Link 16 transport C2 ECS-1: getImage (in imageName, out image) Server Interface Image Imagery Server Manager client’s local version of imagery server Server Interface ECS-2: getImage (in imageName) BOA-2: getImage(in imageName, out image) Server Interface Server-Side Delegate Notify Interface Request Interface ECS-3: sendc_getImage (ImageManager *, in imageName, out image) BOA-1: getImage (in imageName, out image) POA-1: getImage (in image) F-15E ECS-4: getTile (in imageName, out image) OIS ORB Asynchronous Callback AMI Programming Model

  23. Full performance data and results available late 2001 two way interoperability verified Separate transport mapping for each ORB my OE mapping layer: ~ 500 SLOC so far ProfileId Tags must match _IOP Profiles not standard TAO flexible enough to match recommend standardizing on OE’s UIOP profile Integration Issues and Lessons Learned standard profile for IIOP module IIOP{ // IDL struct Version{ char major; char minor; }; struct ProfileBody{ Version iiop_version; string host; unsigned short port; sequence object_key; }; };

  24. Simple IDL interfaces work well don’t push on all sides of the envelope at once! A RT CORBA standard for plug-in transports would be extremely valuable Pluggable Protocol Services, too? we built our own COS Name Service wrapper Integration Issues and Lessons Learned module WSOA { typedef string token; typedef sequence <octet> rawImageData; exception INVALID_TOKEN { string explanation; }; interface ClientImage { rawImageData getImage (in token imageID) raises (INVALID_TOKEN); }; };

More Related