# Presentation: 633252

## CORBA & Space Transport Protocols

- Kevin Rice
- GSFC-588/GST
- July 2001

## Purpose of Discussion

- CORBA in Space
- Concept
- Problems areas
- Solutions?
- Feedback...

## Space CORBA Concept

- CORBA

- Key:

- TCP/IP Network

- CORBA objects may be invoked anywhere along the “end to end” path

- IIOP

- Space Transport

- GIOP

- GIOP

- ??OP

## OSI vs CORBA vs Space? Protocol Stack*

- *http://www-106.ibm.com/developerworks/components/library/underhood/?dwzone=components#1

**App/CORBA**

**GIOP**

**IIOP**

**TCP**

**IP**

**IEEE 802**

**Hardware**

**GIOP**
**Model**

**GIOP Assumes TCP-like properties in transport layer**

**Alternate **
**Framing?**

## Space CORBA w/ORBs

- End-User ORB

- Control Center
- ORB(s)

- ORB Bridge?

- Protocol
- Gateway?

- Flight ORB

- TCP/IP

- TCP/IP

- GIOP

- GIOP

- Space Transport

- CORBA

- TCP/IIOP

- Space Transport

- GIOP

- ORB Router?

## Space Transport Options

**App/CORBA**

**GIOP**

**IIOP**

**CCSDS**

**RF**

**Space**
**Model?**

**CCSDS **
**Command &**
**Telemetry**

**Reliability **
**Layer(s)?**

**CCSDS **
**CFTP**

## Space CORBA: Issue #1SCPS Remote API & IIOP Interoperability

- Protocol
- Gateway?

- Space CORBA: Issue #1SCPS Remote API & IIOP Interoperability

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- Remote Objects

- SCPS-TP

- ORB Router?

- IIOP ORB may need to send SCPS options per connection (per object) to SCPS ORB – use tags?

- An interface to SCPS options needs to be visible to remote users to set options per mission – use Naming Service?

**A**

**B**

- Objects Calls

**Separate connections**
**Different options**

## Setting SCPS-TP Options On A Per Connection Basis:  Use Object Reference Tags?

- Flight ORB

- ORB Bridge?

- Control Center
- ORB(s)

**IOR **
**Obj **
**Ref**

**Remote **
**Object**

**Arguments**

**Returns**

- IOR ID

- Tag1

- Tag2

- TagN

- SCPS-TP
- TagN+1

- SCPS-TP
- Tag...

- TCP

- SCPS-TP

## More on Tags...

- Tags are designed to carry info about multiple protocols or the same protocol.
- They are disregarded when not recognized...
- Tags could defined by the Space DTF to be SCPS specific and only interpreted by a SCPS ORB
- Used in a similar way for CORBA security (?)
- Should be applicable to other Space Transport Protocols – not just SCPS.

## SCPS-TP Options Summary

| Option | Description | User level | System level |
| --- | --- | --- | --- |
| PARTS | Ordered service w/gaps | x |  |
| Record Boundary |  | x |  |
| SNACK | Negative ACKS | x |  |
| Header Compression |  | x | x |
| Rate Control | Specify max rate per connection | x | x |
| Standard TCP options | Get/setsockopt() | x | x |
| Timestamp |  | x | x |
| Windows Scaling | TCP window | x | x |
| Sack |  | x | x |
| Freq Ack/Ack Seq? |  | x |  |
| Congesting Control | Off or ON? | x |  |
| Init Window Size | 1-4  | x | x |
| MFX Forward Error Correction |  | x | x |

## Space CORBA: Issue #2, The Naming Service

- Protocol
- Gateway?

- Space CORBA: Issue #2, The Naming Service

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- CORBA

- ORB Bridge?

- TCP/IIOP

-     Space Protocol

- Space Protocol

- ORB Router?

- Will flight objects and ground object lookups be done efficiently? And where will naming service be?

- Ground based ORBs will need access to space based ORB objects and vice-versa...

**A**

**B**

**C**

**D**

## Space CORBA: Issue #3 - Security

- Protocol
- Gateway?

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- CORBA

- ORB Bridge?

- TCP/IIOP

- Space Transport

- Space Transport

- ORB Router?

- Where is security set?
- End user? Control Center? Ground System? Satellite?
- Currently CORBA security should applicable  to the ground station.

- CORBA Security is build on-top of SSL(?).  In the case of SCPS, is this compatible with SCPS SP?

- SCPS has it own security protocol, compatible?
- What about the other potential protocols?
- Performance? Penalty?

## End to End CORBA: Issue #4, SCPS Gateway, ORB Bridges?

- Protocol
- Gateway?

- End to End CORBA: Issue #4, SCPS Gateway, ORB Bridges?

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- CORBA

- ORB Bridge?

- TCP/IP

- Space Transport

- Space Transport

- An “ORB Bridge” might be appropriate to convert CORBA IIOP between the different networks

- SCPS architecture usually implies use of protocol gateway.  Is this an appropriate model? For other protocols too?

## End to End CORBA: Issue #5ORB Router, TII, “Kill”

- End to End CORBA: Issue #5ORB Router, TII, “Kill”

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- CORBA

- TCP/IIOP

- Space Transport

- Space Transport

- ORB Router?

- CORBA Routers define TII – Time Independent Invocation.   Main feature: queue RMI calls on intermittent link, wait for reconnection to continue call....
- BUT what do we need more features?
- “kill” queued RMI calls...
- Routing to another ground station that has established contact...
- ETC...

**Will these **
**thing work**
** ****together?**

## End to End CORBA: Issue #6,Micro Flight ORBs?

- End to End CORBA: Issue #6,Micro Flight ORBs?

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- CORBA

- TCP/IIOP

- Space Transport

- Space Transport

- ORB Router?

- Flight ORBs may not support full CORBA functionality because of limited processor, memory resources

- In general, flight CPUs all seem to be ~2 orders of magnitude slower than current desktop models.  Ex.  GSFC Mongoose V: 14mhz, RAD-6000: 25mhz.
- This seems likely to continue to be true...the fastest next gen. Space CPUs I’ve heard mentioned are ~100mhz?

- Ultimately this may be a limiting factor... *UNLESS someone wants to try to put an ORB into a RAD hardened FPGA!? Any takers?*

## End to End CORBA: Issue #7,ORB level “transport protocol” using datagrams?

- End to End CORBA: Issue #7,ORB level “transport protocol” using datagrams?

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- CORBA

- TCP/IP

- Datagram +
-  Reliability Layer

- CCSDS Cmd/Tel
- CCSDS CFDP
- UDP

- ORB Router?

- CORBA over UDP has been accomplished using a **reliability** layer by several people. This seems directly applicable to CORBA over CCSDS Cmd/Telemetry?

## End to End CORBA: Issue #8,CORBA Message State Problems?

- End to End CORBA: Issue #8,CORBA Message State Problems?

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- CORBA

- TCP/IIOP

- Space Transport

- Space Transport

- ORB Router?

- Transient nature of satellite contact might result in GIOP state issues because neither end may know which messages were sent or received when contact broke off...

## End to End CORBA: Issue #9,Applicability of  CORBA over Wireless

- End to End CORBA: Issue #9,Applicability of  CORBA over Wireless

- End-User ORB

- Control Center
- ORB(s)

- Flight ORB

- IIOP

- IIOP

- GIOP

- GIOP

- GIOP

- CORBA

- Space Transport

- ORB Router?

- Transient nature of satellite contact  & multiple ground stations seems similar to other wireless problems that have already been covered or are being activelty researched-leverage!

## Issues Summary

| Issue | Description | Comments |
| --- | --- | --- |
| SCPS-TP ORB API | ORB level API for setting SCPS-TP options in a standard way |  |
| IIOP  SCPS-TP Interoperability? | Possibly using IOR tags, send SCPS-TP options from IIOP ORB to SCPS knowledgeable ORB.  Requires interface to set options, or remote OBJECT?  Some other Mechanism? |  |
| Naming Service | How will Naming Service work for satellite, ground station, control center and end user ORBs.  How will satellite set its remote object names up?  Once, pre-flight? Etc... |  |
| Security Issues | CORBA Sec uses SSL, does SSL run over SCPS-TP.  Is this “end to end” security?  Does SCPS-SP work with SSL?  What is SP?  What are security policies needed in this area? |  |
| SCPS Gateway/ORB Bridge | If SCSP is being used it will probably be in a protocol gateway configuration.  Is an ORB Bridge applicable? |  |
| ORB Routers, TII, & “kill” problem | ORB routers with time independent invocation (TII) will allow for queuing of RMI calls when there’s a disconnection.  This might be applicable to satellite service & there may need to be a way to “kill” or remove queued calls |  |
| Micro Flight ORBs | Satellites often have limited computing resources, many flight ORBs may not have the full range of functionality as Enterprise level ORBs |  |
| ORB level transport “protocol” | CORBA over UDP has been done by adding a reliability layer. This should be applicable to CCSDS command and telemetry & CFDP? |  |
| Message State Issues? | If a ground system sends a GIOP message out of its buffer and on to the RF link... and then contact is lost.  The receiver may or may not have gotten it.  Is this bad? |  |
| Wireless | Work is on-going in the wireless world for CORBA.  One place to start is a project called ALICE – see web! |  |