Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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