200 likes | 344 Vues
Location Based Information Service using CORBA. CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee. Architecture of mobile network and LBIS. Every geographical area is headed by a base-station
E N D
Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee
Architecture of mobile network and LBIS • Every geographical area is headed by a base-station • The base station is responsible to keep all the clients, within its area within the network • Ideally each base-station is accompanied by a computing resource which consists of components used for LBIS • If the cost of maintaining all the components at every base station is high, they can be placed remotely and used by the client. This may cause latency in transition of information.
Architecture of our LBIS • The architecture we are following is based on the middleware to support QoS (Quality of Services) such as scalability, reliability, security, client preferences. • The system consists of client, server, two middle-layer components and databases. • The Server instantiates the components, client asks the services from these components by method of invocation. • Components interact with the database and provide the output at the client.
Why N Tier? • A middle tier was added between the user system interface client environment and the database management server environment. • The middle tier can perform queuing, application execution, and database staging. • The three tier client/server architecture has been shown to improve performance for groups with a large number of users (in the thousands) • Improves flexibility when compared to the two tier approach
Middleware • Middleware is a layer of software between the network and the applications that provides services such as identification, authentication, authorization, directories, and security • In today's Internet, applications usually have to provide these services themselves, which leads to competing and incompatible standards
Logical Flow of Execution (Cont…) • The input parameters are appended as one string and passed to the scheduler module as one string object. • The scheduler de-fragments the string takes the cell number of the customer alone and sends a query to the customer database asking for the corresponding priority lever for that number and the cell id (which is randomly assigned). • The priority level is returned to the scheduler which queues requests based on the priority levels.
Logical Flow of Execution (Cont…) • The request string query with the highest priority is sent to the position locator database which has entry for the zip code based on the location ID. • The zip codes passed to the CPU is appended to the string and sent along with the information type as query to the information database, which returns the corresponding information. • The information retrieved from the information database is sent to the client applet for display.
Our Implementation • Technology: • Programming Language: Java • Middleware: CORBA (VisiBroker) • Database: Access • JDBC-OBDC for connectivity • Tools: JDK 1.3, and Visibroker
IDL File module Infoprovider { interface CPU{ string infoop(); }; interface Scheduler{ queue(in string name); }; };
Implementation Files • CPUImpl {Performs the function of locating the client and getting the information he has requested for} • SchedulerImpl { Schedules the incoming requests and creates an instance of CPUImpl and calls it with parameters passed}
Server file • //Initialize the ORB.org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null); • //Get a reference to the root POAPOA rootPOA = POAHelper.narrowa(orb.resolve_initial_references("RootPOA"));
Server Cont… • //Create policies for our persistent POA org.omg.CORBA.Policy[] policies = { rootPOA.create_lifespan_policy(LifespanPolicyValue.PERSISTENT) • //Create the servant Create Instance of SchedulerImpl and Wait for incoming requests orb.run();
Client file • //Initialize the ORB. org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null); • //Basic bind function for ORB Infoprovider.Scheduler manager = Infoprovider.SchedulerHelper.bind(orb, "/infoprovider_poa", userId);
Benefits of using CORBA (1) • CORBA implements the specifications of OMG. They are written and adopted by nearly 800 member companies of OMG. Any company, institution or government agency can join OMG, and influence the specifications • CORBA Orbs are available on every major operating system in use today • CORBA Orbs also exist to bind to a wide variety of languages including C++, Ada, COBOL, Smalltalk, and Java. • Using IIOP, a CORBA ORB developed by one vendor (Visigenic, for instance) can retrieve and manipulate objects obtained from a remote ORB developed by another vendor (IONA, for instance)
Benefits of using CORBA (2) • Object Based • Supports transaction processing between two systems • Easy integration with existing computer systems guarantees that the investment is risk free • New components can be easily added to the existing ones • Proven Interoperability
Conclusion • CORBA being open source, is being widely used in the industry • LBIS system requires a middleware architecture which needs to be scalable and reliable due to frequent hand-offs, resource fluctuations, and the complexity involved due to large amount of data processing. CORBA with its inherent features perfectly fits the picture • CORBA has proven interoperability and is a must feature for LBIS due the variety of clients using different platforms.