Proceedings from OMG embedded middleware workshop
Download
Report
Transcript Proceedings from OMG embedded middleware workshop
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
BBN Technologies
a part of
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
BBN Technologies
a part of
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
BBN Technologies
a part of
WSOA Project Concept
Commercial Satellite / GBS
Airborne C2 Node
• Broadcast of Time Critical
Data
• 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
•“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
• IPL Provides Target Imagery
• Generates Mission Preview
• Injects Time Critical Tactical
Data into Broadcast
C2 = Command & Control (e.g. AWACS)
BBN Technologies
a part of
WSOA Software Architecture
C2
F-15
IPL
“Server”
VTF
ATO
Data
IPL Server
Collaboration Server
VTF Server
“Client”
Display
Shared Display
Data
ATO Server
Shared Display
Task
Collaboration
Client
Collaboration
Mgmt Task
Server-side
delegate
IDL
ORBexpress RT
CORBA BUS
BBN Technologies
a part of
Client-side
delegate
IDL
TAO
VTF
WSOA Software Architecture
C2
F-15
IPL
VTF
ATO
Data
IPL Server
Collaboration Server
VTF Server
Display
Shared Display
Data
ATO Server
Shared Display
Task
Collaboration
Client
Collaboration
Mgmt Task
Server-side
delegate
IDL
ORBexpress RT
CORBA BUS
BBN Technologies
a part of
Client-side
delegate
IDL
TAO
VTF
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
BBN Technologies
a part of
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
BBN Technologies
a part of
Free Text Message Transport Layer
• message sequence number
• subaddress
“link16://00041:12”
– ala TCP “port”
– currently, no host identifier
header
• message status
GIOP ...
– 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
BBN Technologies
a part of
1
2
3
Aside: Why Else to Replace TCP/IP?
From OIS, CORBA Programming with ORBexpress in Ada 95
BBN Technologies
a part of
CORBA Implementation - Inline Bridge
Socket simulation or
Client Application
ORB API (pluggable protocols)
TAO
Which API?
“Server”
Transport interface
ORBexpress
Which API?
Transport interface
Connectionless
datalink
messaging
BBN Technologies
a part of
Connectionless
datalink
messaging
CORBA Implementation - Inline Bridge
Server
Application
Socket simulation or
ORB API (pluggable protocols)
TAO
Java ORB
IIOP/TCP
(sockets)
the delegate sits
on a “firewall”
and uses two
transports
concurrently!
Client Application
Which API?
Delegate
or
Proxy Server
Transport interface
ORBexpress
Which API?
Transport interface
IIOP/TCP
(sockets)
Connectionless
datalink
messaging
BBN Technologies
a part of
Connectionless
datalink
messaging
CORBA Implementation - Transport
• Pluggable transport protocol between TAO and
Plug-in
Native ORB
ORBexpress RT
transport
transport
IIOP
• Each ORB has unique transport interface
• Future CORBA specification should standardize this
From OIS, CORBA Programming with ORBexpress in Ada 95
BBN Technologies
a part of
CORBA Implementation - Inline Bridge
Which Network API?
ORB Pluggable Protocol
– CORBA recommended method
for inline bridging
– in CORBA spec in the future?
– uses GIOP
– clean integration into ORB
– multiple transports OK
Socket API
– standard network interface for
other network apps
– simple high level API for
ORBexpressRT
– 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
– experience with this method
BBN Technologies
a part of
CORBA Implementation
Client-Server Request
for Imagery
C2
F-15E
Application
Client
Imagery
Server
1: getImage(ref )
11: getImage(ref )
Client-Side
Delegate
Server-side
Delegate
2: getImage(ref )
10: getImage(ref )
9: listen(address,
GIOPmsg)
OIS
ORB
3: write(address,
GIOPmsg)
12: write(address,
GIOPmsg)
Interface
13: sendMsg(GIOPmsg )
4: sendMsg(GIOPmsg )
14: sendFreeText (GIOPmsg)
JTIDS
h/w
* AMI not shown
17: callbackFreeText(GIOPmsg)
Link-16
s/w
Link-16
s/w
7: recvFreeText(data)
18: listen(address,
GIOPmsg)
Network Transport
Interface
Network Transport
8: callbackFreeText(GIOPmsg)
TAO
ORB
5: sendFreeText (GIOPmsg)
6: xmitFreeText (bits)
15: xmitFreeText (bits)
BBN Technologies
a part of
16: recvFreeText(data)
JTIDS
h/w
GIOP Transport Requirements
Requirement
Comments
• Connection-oriented
•
Wrap Link-16 addressing info into
transport messages.
• Reliable
•
Transport includes orderly delivery.
•
Implemented by free text transport
layer.
• Notification of connection-loss
•
Asynchronous messaging used to avoid
timeouts.
• Connection-initiation model
•
Dummy connect() call implemented.
IOR strings used.
• Stream-based
From OIS, CORBA Programming with ORBexpress in Ada 95
BBN Technologies
a part of
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
BBN Technologies
a part of
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
BBN Technologies
a part of
WSOA Server Side Architecture
Existing Command and Control Architecture
llll
Etc.
ESM
ATOs
Tracker
Weapons
IJMS
Link 4
Link 16
Link 11
Program Layer
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
BBN Technologies
a part of
COTS/GOTS
UNIX
Compatible
Applications
WSOA Server Delegate Architecture
Detailed WSOA CORBA Architecture
Program Layer
Database (VTF, ATO, IPL) Mgmt
ORB
Human Machine Interface (HMI)
Executive Services
Java Run Time
Ada Run Time System
Operating System (UNIX)
Operating System (UNIX)
Hardware (Compaq Alpha)
Hardware (Compaq Alpha)
COTS LAN
COTS LAN
Mission Computer Program
BBN Technologies
a part of
Etc.
Delegate
Etc.
ESM
ATOs
Tracker
ORB
Tactical Services (DI xport)
Java Class Libraries
WSOA Server Application
Weapons
IJMS
Link 4
C2
Display
Link 16
Collaboration
Server
Link 11
Shared
Display
Task
Program Layer
COTS/GOTS
UNIX
Compatible
Applications
Concurrency Model - C2 (Server)
Server
side
delegate
Collab &
Imagery
Server
ORBexpress
database
manager
imagery
db
Free text
xmit/recv
Data,
Events
Transport
(Datalink
Interface)
Data,
Events
Link 16 Processing
Delegate (Ada)
WSOA Server
(Java)
Tactical Core
Mission Computer Program (Ada)
intRA-process
communication
IIOP
NFS
BBN Technologies
a part of
Thread
Process
Library or
subroutines
Concurrency Model - Client/Server
Application
Client
async return keeps
client middleware
from blocking
with our Link 16
transport
C2
Imagery
Server
ECS-1: getImage (in imageName, out image)
Server Interface
Image
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
BOA-1: getImage (in imageName,
out image)
OIS
ORB
POA-1: getImage (in image)
ECS-4: getTile (in imageName,
out image)
ECS-3: sendc_getImage (ImageManager *,
in imageName,
out image)
TAO
ORB
F-15E
Asynchronous Callback AMI Programming Model
BBN Technologies
a part of
Integration Issues and Lessons Learned
• Full performance data and results
available late 2001
º two way interoperability verified
• Separate transport mapping for each
ORB
standard
profile for
IIOP
° my OE mapping layer:
~ 500 SLOC so far
• ProfileId Tags must match
module IIOP{
// IDL
struct Version{
char
major;
char
minor;
};
struct ProfileBody{
Version
iiop_version;
string
host;
unsigned short
port;
sequence
object_key;
};
};
• _IOP Profiles not standard
º TAO flexible enough to match
º recommend standardizing on OE’s
UIOP profile
BBN Technologies
a part of
Integration Issues and Lessons Learned
• Simple IDL interfaces work well
– don’t push on all sides of the
envelope at once!
module WSOA
{
typedef string token;
typedef sequence <octet> rawImageData;
exception INVALID_TOKEN
{
string explanation;
};
interface ClientImage
{
rawImageData getImage (in token imageID)
raises (INVALID_TOKEN);
};
• A RT CORBA standard for plug-in
transports would be extremely
valuable
};
• Pluggable Protocol Services, too?
– we built our own COS Name
Service wrapper
BBN Technologies
a part of