20
Location Based Location Based Information Service Information Service using CORBA using CORBA CS597 Direct Reading CS597 Direct Reading Madhu Narayanan & Madhu Narayanan & Rahul Vaghela Rahul Vaghela Advisor: Dr. Yugi Lee Advisor: Dr. Yugi Lee

Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Embed Size (px)

Citation preview

Page 1: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Location Based Information Location Based Information Service using CORBAService using CORBA

CS597 Direct ReadingCS597 Direct Reading

Madhu Narayanan & Madhu Narayanan &

Rahul VaghelaRahul Vaghela

Advisor: Dr. Yugi LeeAdvisor: Dr. Yugi Lee

Page 2: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Architecture of mobile network Architecture of mobile network and LBISand LBIS

Every geographical area is headed by a base-stationEvery geographical area is headed by a base-station The base station is responsible to keep all the clients, The base station is responsible to keep all the clients,

within its area within the networkwithin its area within the network Ideally each base-station is accompanied by a Ideally each base-station is accompanied by a

computing resource which consists of components computing resource which consists of components used for LBISused for LBIS

If the cost of maintaining all the components at every If the cost of maintaining all the components at every base station is high, they can be placed remotely and base station is high, they can be placed remotely and used by the client. This may cause latency in used by the client. This may cause latency in transition of information.transition of information.

Page 3: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Architecture of our LBISArchitecture of our LBIS

The architecture we are following is based on the The architecture we are following is based on the middleware to support QoS (Quality of Services) such middleware to support QoS (Quality of Services) such as scalability, reliability, security, client preferences.as scalability, reliability, security, client preferences.

The system consists of client, server, two middle-layer The system consists of client, server, two middle-layer components and databases.components and databases.

The Server instantiates the components, client asks The Server instantiates the components, client asks the services from these components by method of the services from these components by method of invocation.invocation.

Components interact with the database and provide Components interact with the database and provide the output at the client.the output at the client.

Page 4: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Why N Tier?Why N Tier?

• A middle tier was added between the user system A middle tier was added between the user system interface client environment and the database interface client environment and the database management server environment. management server environment.

• The middle tier can perform queuing, application The middle tier can perform queuing, application execution, and database staging.execution, and database staging.– The three tier client/server architecture has been The three tier client/server architecture has been

shown to improve performance for groups with a shown to improve performance for groups with a large number of users (in the thousands) large number of users (in the thousands)

– Improves flexibility when compared to the two tier Improves flexibility when compared to the two tier approachapproach

Page 5: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

MiddlewareMiddleware

• Middleware is a layer of software between the Middleware is a layer of software between the network and the applications that provides services network and the applications that provides services such as identification, authentication, authorization, such as identification, authentication, authorization, directories, and securitydirectories, and security

• In today's Internet, applications usually have to In today's Internet, applications usually have to provide these services themselves, which leads to provide these services themselves, which leads to competing and incompatible standardscompeting and incompatible standards

Page 6: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

CORBA Architecture in CORBA Architecture in nutshellnutshell

Page 7: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Flow of OperationsFlow of Operations

Page 8: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

ArchitectureArchitecture

Page 9: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

UML Sequence DiagramUML Sequence Diagram

Page 10: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Logical Flow of Execution Logical Flow of Execution (Cont…)(Cont…)

The input parameters are appended as one string and The input parameters are appended as one string and passed to the scheduler module as one string object. passed to the scheduler module as one string object.

The scheduler de-fragments the string takes the cell The scheduler de-fragments the string takes the cell number of the customer alone and sends a query to number of the customer alone and sends a query to the customer database asking for the corresponding the customer database asking for the corresponding priority lever for that number and the cell id (which is priority lever for that number and the cell id (which is randomly assigned).randomly assigned).

The priority level is returned to the scheduler which The priority level is returned to the scheduler which queues requests based on the priority levels.queues requests based on the priority levels.

Page 11: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Logical Flow of Execution Logical Flow of Execution (Cont…)(Cont…)

The request string query with the highest priority is The request string query with the highest priority is sent to the position locator database which has entry sent to the position locator database which has entry for the zip code based on the location ID.for the zip code based on the location ID.

The zip codes passed to the CPU is appended to the The zip codes passed to the CPU is appended to the string and sent along with the information type as string and sent along with the information type as query to the information database, which returns the query to the information database, which returns the corresponding information.corresponding information.

The information retrieved from the information The information retrieved from the information database is sent to the client applet for display.database is sent to the client applet for display.

Page 12: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Our ImplementationOur Implementation

Technology:Technology: Programming Language: JavaProgramming Language: Java Middleware: CORBA (VisiBroker)Middleware: CORBA (VisiBroker) Database: AccessDatabase: Access JDBC-OBDC for connectivityJDBC-OBDC for connectivity Tools: JDK 1.3, and VisibrokerTools: JDK 1.3, and Visibroker

Page 13: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

IDL FileIDL File

module Infoprovider {module Infoprovider {

interface CPU{interface CPU{

string infoop();string infoop();

};};

interface Scheduler{interface Scheduler{

queue(in string name);queue(in string name);

};};

};};

Page 14: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Implementation FilesImplementation Files

CPUImplCPUImpl {Performs the function of locating the client and {Performs the function of locating the client and getting the information he has requested for}getting the information he has requested for}

SchedulerImplSchedulerImpl { Schedules the incoming requests and creates an { Schedules the incoming requests and creates an instance of CPUImpl and calls it with parameters instance of CPUImpl and calls it with parameters passed}passed}

Page 15: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Server fileServer file

//Initialize the ORB.//Initialize the ORB.org.omg.CORBA.ORB orb = org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);org.omg.CORBA.ORB.init(args,null);

//Get a reference to the root POA//Get a reference to the root POAPOA rootPOA = POA rootPOA = POAHelper.narrowa(orb.resolve_initial_referencesPOAHelper.narrowa(orb.resolve_initial_references("RootPOA"));("RootPOA"));

Page 16: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Server Cont…Server Cont…

//Create policies for our persistent POA//Create policies for our persistent POA org.omg.CORBA.Policy[] policies = { org.omg.CORBA.Policy[] policies = {

rootPOA.create_lifespan_policy(LifespanPolicyValue.rootPOA.create_lifespan_policy(LifespanPolicyValue.PERSISTENT)PERSISTENT)

//Create the servant//Create the servantCreate Instance of SchedulerImplCreate Instance of SchedulerImpl

and Wait for incoming requests and Wait for incoming requests orb.run(); orb.run();

Page 17: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Client fileClient file

//Initialize the ORB.//Initialize the ORB.org.omg.CORBA.ORB orb = org.omg.CORBA.ORB orb =

org.omg.CORBA.ORB.init(args,null);org.omg.CORBA.ORB.init(args,null);

//Basic bind function for ORB//Basic bind function for ORBInfoprovider.Scheduler manager = Infoprovider.Scheduler manager =

Infoprovider.SchedulerHelper.bind(orb, Infoprovider.SchedulerHelper.bind(orb, "/infoprovider_poa", userId);"/infoprovider_poa", userId);

Page 18: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Benefits of using CORBA (1)Benefits of using CORBA (1)

CORBA implements the specifications of OMG. They are CORBA implements the specifications of OMG. They are written and adopted by nearly 800 member companies of written and adopted by nearly 800 member companies of OMG. Any company, institution or government agency can OMG. Any company, institution or government agency can join OMG, and influence the specificationsjoin OMG, and influence the specifications

CORBA Orbs are available on every major operating CORBA Orbs are available on every major operating system in use todaysystem in use today

CORBA Orbs also exist to bind to a wide variety of CORBA Orbs also exist to bind to a wide variety of languages including C++, Ada, COBOL, Smalltalk, and languages including C++, Ada, COBOL, Smalltalk, and Java. Java.

Using IIOP, a CORBA ORB developed by one vendor Using IIOP, a CORBA ORB developed by one vendor (Visigenic, for instance) can retrieve and manipulate (Visigenic, for instance) can retrieve and manipulate objects obtained from a remote ORB developed by another objects obtained from a remote ORB developed by another vendor (IONA, for instance)vendor (IONA, for instance)

Page 19: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

Benefits of using CORBA (2)Benefits of using CORBA (2)

Object BasedObject Based Supports transaction processing between two Supports transaction processing between two

systemssystems Easy integration with existing computer systems Easy integration with existing computer systems

guarantees that the investment is risk freeguarantees that the investment is risk free New components can be easily added to the existing New components can be easily added to the existing

onesones Proven InteroperabilityProven Interoperability

Page 20: Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee

ConclusionConclusion

CORBA being open source, is being widely used in CORBA being open source, is being widely used in the industrythe industry

LBIS system requires a middleware architecture LBIS system requires a middleware architecture which needs to be scalable and reliable due to which needs to be scalable and reliable due to frequent hand-offs, resource fluctuations, and the frequent hand-offs, resource fluctuations, and the complexity involved due to large amount of data complexity involved due to large amount of data processing. CORBA with its inherent features processing. CORBA with its inherent features perfectly fits the pictureperfectly fits the picture

CORBA has proven interoperability and is a must CORBA has proven interoperability and is a must feature for LBIS due the variety of clients using feature for LBIS due the variety of clients using different platforms.different platforms.