Presentation is loading. Please wait.

Presentation is loading. Please wait.

OMG Embedded Object-Based Workshop 19 January, 2001 Santa Clara, CA

Similar presentations


Presentation on theme: "OMG Embedded Object-Based Workshop 19 January, 2001 Santa Clara, CA"— Presentation transcript:

1 OMG Embedded Object-Based Workshop 19 January, 2001 Santa Clara, CA
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

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 Things to be sure to add: performance numbers for JTIDS properties of JTIDS and desired ORB properties list (table side by side) list of contacts (OIS, steve, chrisgill, ) need to standardize the address format in the IOP profile or make the profile flexible no QoS management done here no hard real time deadlines or priority schemes sloc count for the transport including my new line count use of one-ways and TAO AMI here simplicity of IDL interfaces IOR tweaking multiple transports at once (IIOP to the Java ORB) not tested with real hardware class diagrams for both ORB’s transport framework describe the free text header format (at least what it allows us to do) maybe the OE doc list of TCP features that are bad for real-time systems lack of Profile class in OE class diagram

3 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 punch line: TAO and ORBexpress real-time ORBs chosen Datalink transport plugged-in to ORBs

4 Commercial Satellite / GBS
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 WSOA Software Architecture
IPL “Server” VTF ATO Data “Client” IPL Server VTF Server Collaboration Server Display VTF Shared Display Data ATO Server Shared Display Task Collaboration Mgmt Task Collaboration Client . Server-side delegate Client-side delegate IDL IDL ORBexpress RT CORBA BUS TAO

6 WSOA Software Architecture
IPL VTF ATO Data IPL Server VTF Server Collaboration Server Display VTF Shared Display Data ATO Server Shared Display Task Collaboration Mgmt Task Collaboration Client Server-side delegate Client-side delegate IDL IDL ORBexpress RT CORBA BUS TAO

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

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 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” header GIOP ... 1 2 3

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

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

14 CORBA Implementation - Inline Bridge
Which Network API? ORB Pluggable Protocol Socket API 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

15 Client-Server Request
CORBA Implementation C2 F-15E Client-Server Request for Imagery Imagery Server Application Client 1: getImage(ref ) 11: getImage(ref ) Client-Side Delegate Server-side Delegate 2: getImage(ref ) 10: getImage(ref ) TAO ORB OIS ORB 3: write(address, GIOPmsg) 9: listen(address, GIOPmsg) 18: 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 GIOP Transport Requirements
Comments 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. Connection-oriented Reliable Stream-based Notification of connection-loss Connection-initiation model From OIS, CORBA Programming with ORBexpress in Ada 95

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

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

19 WSOA Server Side Architecture
Existing Command and Control Architecture Program Layer COTS/GOTS UNIX Compatible Applications Link 16 Weapons Link 11 Tracker Link 4 IJMS ATOs ESM l 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 WSOA Server Delegate Architecture
Detailed WSOA CORBA Architecture WSOA Server Application Java Run Time Operating System (UNIX) COTS LAN Hardware (Compaq Alpha) Java Class Libraries ORB Database (VTF, ATO, IPL) Mgmt Collaboration Server C2 Display Program Layer Shared Display Task Program Layer Etc. Delegate COTS/GOTS UNIX Compatible Applications Link 16 Link 11 Weapons Tracker Link 4 IJMS ATOs 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 Concurrency Model - C2 (Server)
WSOA C2 Tasking Model (Simpler) Concurrency Model - C2 (Server) Mission Computer Program (Ada) WSOA Server (Java) Delegate (Ada) Server side delegate Link 16 Processing 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 Thread Library or subroutines

22 Concurrency Model - Client/Server
async return keeps client middleware from blocking with our Link 16 transport Application Client 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 Client-Side Delegate 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) TAO ORB OIS ORB Asynchronous Callback AMI Programming Model

23 Integration Issues and Lessons Learned
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 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 Integration Issues and Lessons Learned
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 module WSOA { typedef string token; typedef sequence <octet> rawImageData; exception INVALID_TOKEN string explanation; }; interface ClientImage rawImageData getImage (in token imageID) raises (INVALID_TOKEN);


Download ppt "OMG Embedded Object-Based Workshop 19 January, 2001 Santa Clara, CA"

Similar presentations


Ads by Google