Wireless CORBA Richard Verhoeven
Content Quick Introduction to CORBA Wireless & Mobile Wireless CORBA Test Case Conclusions
What is CORBA? Common Object Request Broker Architecture Distributed object-oriented middleware –Network abstraction of object location –Independent of programming language, platform or operating system Set of open standards defined by the OMG –interface definition language (IDL) –interoperability standards (GIOP, IIOP) –collection of services
How does it work? Write the interface definition in IDL Use the ORB-specific IDL compiler to generate client stubs and server skeletons Use the stubs in the client application Fill the skeletons with the server implementation Compile everything
Example: IDL interface Account { void deposit(in unsigned long amount); void withdraw(in unsigned long amount); long balance(); };
Example: client CORBA::Object_var obj = orb->string_to_object( uri ); Account_var account = Account::_narrow( obj );... if (account->balance() < 100) { account->deposit( 500 ); } else { account->withdraw( 100 ); }
Example: server (1) class Account_impl : virtual public POA_Account {... CORBA::Long _current_balance;... void deposit( CORBA::ULong amount) { _current_balance += amount; };... CORBA::Long balance() { return _current_balance; }; }
Example: server (2) … // orb, poa and mgr setup Account_impl* servant = new Account_impl(); PortableServer::ObjectId_var oid = poa->activate_object(servant); … // construct object uri mgr->activate(); orb->run();
In more detail ORB interface allows generic configuration settings and ORB startup Portable Object Adaptor provides a server with common service features Support for dynamic and static method invocation Interceptors allow extra services
Implementation Layer
Interoperability Layer
Locating a server Object references are standardised (IOR) With a naming service: Client & server use the same naming service Server publishes an IOR at the naming service Client queries the naming service for IORs Or: Exchange the IOR as a string Use a CORBA URL ( corbaloc:// )
Sizes of ORBs
Interoperability Timing
Wireless & Mobile Wireless protocols InfraRed, BlueTooth, b, GSM, GPRS, UMTS Wireless issues packet loss, network congestion, packet cost Mobile issues hand-off, roaming, address changes Location based services wireless range, position & direction detection
MobileIP IETF solution (RFC 2002) Addresses macro-mobility home-office, office-travel Requires an active home agent
Wireless CORBA Issues MobileIP Architecture Mobile IORs Handoff & Access Recovery
Wireless CORBA - Issues CORBA relies on fixed end-points for connections Nomadic computing Wireless transport issues Mobility transparency Handoff Backwards compatible
Why not MobileIP? It only addresses macro-mobility, not the movement between small cells The home agent is too important It does not address wireless protocols It hides all handoff events, thus making location-aware services difficult.
Architecture
Redirects requests for services on the terminal Keeps track of the current access bridge
Architecture Encapsulates, forwards or ignores incoming GIOP messages Decapsulates and forwards messages from the GIOP tunnel Generates mobility events Lists available services
Architecture Similar to the Access Bridge Does not provide forwarding Generates mobility events Does not list services
Architecture Abstract transport-independent tunnel for GIOP messages Concrete tunnels for TCP/IP, UDP/IP and WAP. Protocol requires reliable and ordered delivery
Mobile IORs Contain a special Mobile Terminal Profile Use the Access Bridge or Home Location Agent in the IIOP profile Have a limited lifetime if no Home Location Agent is used Work backwards compatible
Mobile IOR usage
Handoff & Access Recovery Network initiated handoff –started by an external application –optional to support make-before-break Terminal initiated handoff –terminal discovered a new Access Bridge –make-before-break is required Access recovery
Handoff Issues The Home Location Agent is informed Old Access Bridges are informed to allow forwarding of open connection Mobility events are generated in the visited domain and the terminal domain
Message Forwarding Old access bridges forward open connections
Network Initiated Handoff
Test Case ITEA Project “Vivian” Common platform for mobile phones CORBA for distributed middleware SOAP as alternative
Test Case Mobile device (Psion Revo) Java virtual machine Java ORB XML sax parser Remote User Interface Protocol Conclusion: it works reasonable (Wireless CORBA not used yet)
Conclusions Wireless CORBA addresses wireless & mobility, not low resource constraints. CORBA works on a mobile device, but it requires lots of resources Handoff notification breaks the layered network model