Download Middleware - San Diego State University

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
CORBA over ATM
Worawan Tunsiengsomjareon , Mary Li
Workshop ATM Networking
San Diego State University
Department of Mathematical and Computer Sciences
San Diego, April 6-7, 2000
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
Server
Object
Implementation
Client
IDL Skeleton
IDL Stubs
ORB
Interface
ORB
Object Adapter
GIOP/IIOP
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.idl
HelloHolder.java
Hello.java
HelloHelper.java
_HelloImplBase.java
<Server skeleton>
_HelloStub.java
<Client stub>
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
HelloServer.java
Application
(Hello
Client.java)
Interface
Description
in IDL
(Hello.idl)
Client Stubs
Implementation
Code
(Hello
Servant.java
Server Skeleton
(_HelloImplBase.java)
(_HelloStub.java)
(Hello.java)
ORB (LINUX)
ORB (WNT)
TCP/IP
LINUX
Hardware
IDL
Compiler
IDL
Compiler
Network
TCP/IP
Windows NT
Hardware
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
AREQUIPA
NO ATM
Application
IP over ATM
Application
Application
Native ATM
ActiveORB
Application
ORB
ORB
Socket
ORB
Socket
Socket
TCP/UDP
WinSock2
TCP
TCP
IP
AAL
IP
CLIP/LANE
AREQUIPA
ATM
LLC 1,2
AAL
AAL
SONET/SDH
ATM
ATM
Physical (Ethenet)
SONET/SDH
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
Application
Upper layer
Upper layer
(e.g. IP)
(e.g.IP)
Router
(e.g. ATM)
Router
Lower layer
Lower layer
(e.g. ATM)
Communication with AREQUIPA
Application
Upper layer
Upper layer
(e.g. IP)
(e.g.IP)
Lower layer
Lower layer
(e.g. ATM)
(e.g. ATM)
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
appl.
SERVER
system
1, First request without
socket pragma
system
appl.
GET UserAgent:ATM.xxx.yyy
2. Check document for
QoS meta info send
header only
Header with QoS meta info
3. Open UDP socket 8090
call Arequipa_expect
read from socket
4. Request with
GET, UserAgent: ATM.xxx.yyy
Pragma: Socket=UDP.8090
socket pragma
5. Open UDP socket connect
to port 8090 on agent’s
machine call
Arequipa_preset
ATM connection setup
Accept
AREQUIPA
connection
Use VC on which data
is received for
outgoing traffic
Document over dedicated
ATM connection
Document over dedicated ATM
connection
Document over dedicated ATM
connection
Open AREQUIPA
connection
6. Send document over UDP
socket
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
Server
Object implementation
Client
ORB
Stub
1
Skeleton
Interface
IIOP Handler
7
2
3
TCP Socket
TCP Socket
5
4
ActiveORB CORE
creation
call
BOA
6
TCP Daemon