CORBA over ATM

currygeckoSoftware and s/w Development

Dec 2, 2013 (3 years and 11 months ago)

120 views

CORBA over ATM

San Diego State
University

Department of
Mathematical

and Computer Sciences

San
Diego
, April 6
-
7, 2000

Workshop

ATM Networking


Worawan
Tunsiengsomjareon

, Mary Li

CORBA over ATM


CORBA Overview


Problems with Classical CORBA


CORBA over ATM


Classical IP over ATM


AREQUIPA

Middleware


CORBA:
Common Object Request Broker Architecture


Relies on a protocol called the Internet Inter
-
ORB Protocol(IIOP) for remote
Objects. Everything in the CORBA architecture depends on an Object Request
Broker(ORB).


RMI:
Remote Method Invocation


Relies on a protocol called the Java Remote Method Protocol(JRMP). Java relies
heavily on Java Object Serialization, which allows objects to be marshaled (or
transmitted) as a steam.


DCOM:
Distributed Component Object Model


Supports remote objects by running on a protocol called the Object Remote
Procedure Call (ORP).

CORBA Overview

ORB


GIOP/IIOP


Client


Server


Object
Implementation

IDL Stubs

IDL Skeleton

Object Adapter



ORB

Interface

CORBA Application using Java IDL


Writing the IDL Interface


Mapping .idl file from IDL to Java
<IDL Compiler>


Developing a Client Application


Developing the Hello World Server


Compiling and Running the Hello World
Application


Hello.idl

module HelloApp {



interface Hello


{


string sayHello();



};

};

IDL Compiler Output

Hello.java

_HelloStub.java


<Client stub>

_HelloImplBase.java


<Server skeleton>

HelloHelper.java

HelloHolder.java

Hello.idl

IDL Compiler Output

(continue)


_HelloImplBase.java


This abstract class is the server skeleton, providing basic
CORBA functionality for the server. It implements the
Hello.java interface. The server class HelloServant extends
_HelloImplBase
.


_HelloStub.java


This class is the client stub, providing CORBA
functionality for the client. It implements the Hello.java
interface.

IDL Compiler Output

(continue)


Hello.java


This interface contains the Java version of our IDL
interface. It contains the single method sayHello. The
Hello.java interface extends org.omg.CORBA.Object,


providing standard CORBA object functionality as well.


HelloHelper.java



This final class provides auxiliary functionality, notably the
narrow method required to cast CORBA object references to
their proper types.



IDL Compiler Output

(continue)


HelloHolder.java


This final class holds a public instance member of type
Hello. It provides operations for out and inout arguments,
which CORBA has but which do not map easily to Java's
semantics.

Hello World Architecture


Hardware
Network
TCP/IP
LINUX
Hardware
TCP/IP
Windows NT
(Hello.java)
ORB (WNT)
HelloServer.java
Server Skeleton
(_HelloImplBase.java)
Implementation
Code
(Hello
Servant.java
IDL
Compiler
IDL
Compiler
Interface
Description
in IDL
(Hello.idl)
Client
Stubs
(_HelloStub.java)
ORB (LINUX)
Application
(Hello
Client.java)
Problems with Classical CORBA


Lack of QoS specification and enforcement.


Lack of real
-
time features.


Lack of performance optimization.

CORBA over ATM


High bandwidth


Low latency


Scalability of endsystems and distributed
systems

Comparison of Various Options

Native ATM

IP over ATM

Application

ORB

Socket

TCP

IP

LLC 1,2

Physical (Ethenet)

Application

ORB

WinSock2

AAL

ATM

SONET/SDH

Application

ORB

Socket

TCP

CLIP/LANE

AAL

ATM

SONET/SDH

NO ATM

AREQUIPA

Application

ActiveORB

Socket

TCP/UDP

IP

AREQUIPA

AAL

ATM

SONET/SDH

Classical IP over ATM


Classical IP over ATM

uses hop by hop
connections


Hosts can not influence the QoS reserved on the
different links


Classical IP over ATM has to use routers even if a direct ATM connection could be established between
communicating hosts

Application Requested IP over ATM
(AREQUIPA)


AREQUIPA

runs TCP/IP over end to end
connections


Each application can request its own connection
with the QoS it needs



End
-
to
-
End AREQUIPA connections for three applications with QoS requirements

Communication without AREQUIPA

Upper layer

(e.g.IP)

Upper layer

(e.g. IP)

Lower layer

(e.g. ATM)

Lower layer

(e.g. ATM)

Router

Router

Application

Communication with AREQUIPA

Upper layer

(e.g.IP)

Upper layer

(e.g. IP)

Lower layer

(e.g. ATM)

Lower layer

(e.g. ATM)

Application

What is AREQUIPA ?



AREQUIPA is an extension to Classical IP over ATM
which allows applications to request their own SVCs


AREQUIPA provides two new socket primitives to
applications


Arequipa_preset
: Opens an end
-
to
-
end SVC and sends all data
from the socket over that connection


Arequipa_expect:

Allows to use incoming AREQUIPA
connections in the reverse direction


Comparison


AREQUIPA is developed by IETF (RFC 2170) to provide
end
-
to
-
end ATM connections with guaranteed QoS


Solution with NHRP (RFC 2332) also provides direct
connections which bypass the routers but must use RSVP
to provide QoS on these connections


Even if NHRP and RSVP were available now, they would
have to be deployed over the entire ATM WAN to be
usable


AREQUIPA needs only to be installed on the end systems.
It uses the standard UNI to establish the connections


AREQUIPA and the Web



Using AREQUIPA each document can be downloaded
with the QoS it needs


Required QoS is specified in meta information of Web
documents


Web browsers (or proxies) put their ATM address in every
request


Knowing the QoS from the meta
-
information and the ATM
address from the request, the server can open an ATM
connection to send the document


AREQUIPA capable servers and clients are fully
compatible with standard ones


Example

AGENT

SERVER

appl.

system

system

appl.

1, First request without
socket pragma

2. Check document for
QoS meta info send
header only

3. Open UDP socket 8090

call Arequipa_expect

read from socket

4. Request with

socket pragma

5. Open UDP socket connect
to port 8090 on agent’s
machine call
Arequipa_preset

6. Send document over UDP
socket

GET UserAgent:ATM.xxx.yyy

Header with QoS meta info

GET, UserAgent: ATM.xxx.yyy
Pragma: Socket=UDP.8090

ATM connection setup

Open AREQUIPA
connection

Accept
AREQUIPA
connection

Document over dedicated
ATM connection

Document over dedicated ATM
connection

Document over dedicated ATM
connection

Use VC on which data
is received for
outgoing traffic

Using an AREQUIPA proxy



An AREQUIPA proxy can be placed on a gateway of an
enterprise network to provide AREQUIPA for the whole
enterprise.


An AREQUIPA proxy also allows to provide AREQUIPA
service with browsers which don't know about
AREQUIPA (ie Netscape, Internet Explorer)



ActiveORB


The ORB developed in the Laboratoire de
Teleinformatique, is based on the sC++
language and has the capability to manage
different threads simultaneously and to
make asynchronous and synchronous
invocations with immediate or deferred
response collection.

Advantage of ActiveORB


Opens new opportunities for CORBA in the
exchange of continuous audio/video data
between remote objects.


Defines the interfaces needed to specify the
Quality of Services.

Architecture of ActiveORB

Client

Server

Object implementation

Stub

ORB

Interface

Skeleton

BOA

ActiveORB CORE

IIOP Handler

TCP Socket

TCP Socket

TCP Daemon

creation

call

1

6

2

3

4

5

7