Upload
linda-sullivan
View
216
Download
0
Embed Size (px)
Citation preview
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
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.
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.
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
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
CORBA Architecture in CORBA Architecture in nutshellnutshell
Flow of OperationsFlow of Operations
ArchitectureArchitecture
UML Sequence DiagramUML Sequence Diagram
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.
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.
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
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);
};};
};};
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}
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"));
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();
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);
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)
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
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.