Assignment title: Information
Introduction:
This project builds the interface for accessing the database which is remotely located, this gives you a graphical user interface to access the database with authorization and authentication. The user will have permission to do all the CURD operations on DB, on the cost perspective there is no need of spending on license fee to purchase any tool to connect to the database as the command prompts are little difficult for access.
Though with the tools like (SQL Developer) the user must be aware of the SQL queries to access the database, with the help of this project the user got the flexibility to access the database without any SQL knowledge.
As the application developed based on web technology, this gives the flexibility to the user to login from anywhere in the world and access the data. The user doesn't require any client to access the application, as the tools are machine specific in the sense that wherever the application (tool) got installed the user can access only in that machine, but this application gives the flexibility that with the internet and browser, it can be accessed.
As the application will be developed with java technologies, the application can be run on any Operating System, there is no restriction on the type of operating system to deploy this application or to prepare the application which can be readily deployed.
AIM:
The AIM of this project is to create an interface to perform the Database Administration by using graphical user interface (GUI) starting from creating the tables to perform CURD operations on Database. Create, insert, delete, update and view tables could be done in a remote machine in the user-friendly manner. This project helps to connect any database over the internet.
Literature:
As the project has been developed with the help of open-source software's cost and maintenance of the project will be less.
Language: Java (JDK1.6)
Java Technologies: Servlets, JSP, JDBC
Web Server: Apache Tomcat 7.0
IDE: NetBeans 6.0
RDBMS: MySQL
Operating System: Windows 2000/XP
Short description on Software Used/Reviewed
Java:
Java is a software language which helps to communicate between different machines, prior to java they are some other languages like c, C++ helps to develop the software which is best suitable for standalone applications likes drivers and there is no much GUI (Graphical User Interface) support from this software's. Java is developed based on OOPs (Object Oriented programming) principles, and the best features like the multithreading, net package and (AWT) this is the tools kit in java made java to be widely accepted by the Information technology like Graphical user interface.
Java opened the doors for open source software's, which is not only license free but also the source code of java is available for modification. All the applications developed with respect to java are "Write Once and Run Anywhere", though the program is written on any operating system and it can run on any operating system without any compilation, to just run because of its byte code.
Java is initially from Sun Microsystems and now with Oracle Corporation, which is one of the best language which supporting web based applications by its various versions and upgrading to its latest features as per industry needs, challenging opponents with its flexible to use features.
JDBC Diagram 1.1:
The JDBC steps:
• Connect the database
• Query database (insert/update/delete)
• Process result
• Close connection to database
Java is one of the best technology to interact with the database, this made the application to interact with the backend software's, as the previously everything need to be stored in the file system, but with the help of JDBC drivers the language made easy to interact with any database which is remotely located by just collecting the basic information like what is the type of database by collecting driver name, and the host, port number where the database is running and username, the password of the user who want to interact with this database.
Servlets -JSP:
Servlets are the part of web-based technologies, which is part of the J2EE specification. Sun Microsystems which gave the specification about the way to communicate with different systems over the internet, different vendors followed that specification and provided the implementation for that specification, the most popular implementations of this specification are Apache Tomcat on the web server and WebLogic on the Application Server.
Whenever we want to work with J2EE specifications, first we need to install any of the servers which implemented the J2EE specification that means from Sun Microsystems, we didn't get the installable software for J2EE.
Servlets technology got the wide support for different protocols , the most popular protocol or widely used protocol which supports is Http (Hyper Text Transfer Protocol) supported through Http Servlet . This opened the doors for transferring the data or accessing the applications remotely through http: protocol with the help of browser. Servlets got the flexibility to pull the data dynamically and converts the text into html with the help of MIME type.
The servlets needs to be built into war files, needs to be deployed into servers with that it will be available globally through client –server architecture, which is shown below.
Diagram 1.2
Java Server Pages (JSP) is the server side technology, which simplified the process by writing the code in tag format, this is the mirror image of the servlet, the code written in the JSP with the help of JSP tags and scrip lets internally it converts this into servlets, this process will be taken care by the server once it got installed.
With the help of JSP, there is no much need of knowing java, as it is little difficult to learn, everything will be done through tags, the major benefit of JSP's over the servlets is the changes done in servlet needs to be built and deployed, but with respect to JSPs, once the file had been replaced with the latest JSP the changes will be reflected immediately.
Apache Tomcat- Server:
Tomcat server is one of the best implementation on the J2EE specification in the format of Web-Servers, provided by the Apache foundation which is a non-profitable organization which got motivated by Sun Microsystems and formed by the set of software engineers. The server is an open source software which is the license free and the code is revealed out for any custom notification as per client requirement.
This provides the web-container to deploy the web-applications which are developed by following the J2EE specification. In the client server architecture when the client wants to reach the server the client needs to provide the IP address and the port number to reach the server and the context path which will identify the resource what it needs to reach, with the help of URL patterns specified by the J2EE specification.
The server software helps to add the plugins, if the server needs to support the additional functionalities, which is available in the market, these server software's are easy to install and provides the console for maintenance activities.
MySQL:
MySQL software belongs to the database family, which has the mechanism to store and organize the data as per RDBMS principles. The data storing and retrieval process is easy then the legacy way of organizing the data with respect to the file system. The data stored in the database is secured enough, which cannot be accessed through authentication and authorization. Based on the roles and responsibilities of the users, the user can access the data.
The RDBMS, provides the specification for the administrators to grant the roles to the users, based on the roles and privileges the user can act on the data.
Challenges:
• As the application is mainly working with the database need to see, there will not be any collection leaks.
• The application must be free from dirty read as java has been the multi-threaded environment.
• Need to avoid the deadlocks as the programs run with database resources; there is a chance of the table locking in the case of right operations.
• Designing and implementing the communication protocol between the client and the server
• Designing and implementing the most appropriate method for the server to connect to the database
• Translating user requests into database (SQL) commands
• Returning the results of database query/manipulation requests in a suitable form
• Creating a simple and efficient Graphical User Interface for the client