Distributed Database Querying System (DDQS)
The project aims to develop an application which could query multiple heterogeneous databases in a distributed fashion. The project would provide me familiarity with the RMI mechanism as implemented in Java. It will also give me an insight into some of the challenges involved with designing and building a distributed application.
The problem involves developing a distributed database querying system. The system has three databases. These databases are MS Access databases as used in this implementation. However, these databases could be of varying architectures like Oracle or MS SQL server and so on.
The system has three Access databases on three different machines. The database structures are as described in the problem statement earlier. Just above the databases on each machine is a Query Database object. The Query Database object can talk to the Database and make queries on it. Since the Query Database objects are on the same Machine as the database they are interacting with, it is assumed that the individual Query Database objects would know the structure of the database they are querying. The Query Database object talks to the database using JDBC (Java Database Connectivity) calls. Unfortunately, the Access databases do not recognize JDBC calls. However, Access understands another standard i.e. ODBC (Open Database Connectivity). Thus the Query Database objects use a JDBC-ODBC bridge to connect to the database.
Each machine implements a server that implements a MyServer interface. These servers have the job of binding the name of the particular machine with the RMI registry. The servers implement among other things, a method called ProcessData. The Process Data method is the remote method that would be called using RMI.
So the execution goes on like this,
- A client takes a query from the user. This query is a pid of a student whose information is required.
- The client calls the Process Data method of the second machine remotely and passes it the query string and a result string (which is initially null). The Process Data calls the corresponding Query Database method and store the results got into the result string. It then calls the Process Data of the third machine remotely.
- The Process Data method on the third machine does a similar job and calls the Process Data method on the first machine (on which the client was run). It then contacts the Query Database object and gets the results from the first database which are appended to the result string and finally, the Process Data method on the first machine will write out the result string to a file which is named as query.
We can’t access more than one databases existing in different servers.
By using this we can overcome the drawback of existing one.
Unique ID : SBW15016
Domain : Web Application