Introduction MySQL Clustering
Introduction
Industry Association Program
To provide students with an exposure to industry practices and work environment,
Osmania University started the Industry Association Program (IAP), as a part of the
curriculum, wherein the third year students are encouraged to work in a professional
organization.
As a part of IAP, we had been assigned to Sun Microsystems Inc.
Organization Profile
Sun Microsystems Inc. is a multi-national vendor of several software and hardware
products. The Headquarters of Sun Microsystems is at Santa Clara, California, United
States. It has branches in several countries covering APAC, America and Europe.
Its contribution to the field of hardware has been marvelous, especially with the SPARC
architecture.
Sun has several software products to its credit, which include Solaris, Star Office,
VirtualBox, MySQL, etc.
And the most significant contribution of Sun Microsystems to the field of computers and
electronics has been the “Java programming language”, which is widely used in several
devices, which include computers and mobile phones.
Sun is a big supporter of Open Systems and is one of the major contributors of Open
Source Software.
Project Identification
Our initial interactions with Sun Team was to identity a task which would benefit Sun as
an organization and for us to improve capability and be industry ready after our BE
course.
After evaluating various product lines and discussions with Sun Team, a decision was
made in concurrence with Sun Team to focus on a Demo Framework which would
Introduction MySQL Clustering
showcase MySQL capabilities and how it would interface with various layers in a typical
application environment.
After the $1 billion acquisition of MySQL, Sun has been actively propagating the product
to its clients. It was felt that a demo framework encompassing standard frontend
interfaces, standard database interfaces and standard database functionality would help
the clients to make a knowledgeable assessment of the product.
The demo suite proposed was expected to cover the replication features of MySQL to
demonstrate how MySQL can fit in a complete commercial application involving various
layers like – Databases, Business Logic and GUI.
Project Goals
The goal of the project is to provide a snapshot capability for three types of audience:
1. Database Administrators
Installation, Replication and Clustering of MySQL databases both in standalone
and virtualized Operating System Environments covering Windows, Linux and
Solaris.
2. Business Logic Developers
CRUD (Create, Retrieve, Update, Delete) operations using Web Services to
interact with the MySQL database adopting JDBC and Hibernate interfaces.
3. Client Side GUI Developers
Provide sample codes to access and implement data management through above
Web Services. The Client interfaces are diversified covering J2ME, JSF, Java Swing,
and ASP.net to demonstrate the versatility of the seamless interface to MySQL
database.
Project Architecture
The project as depicted below implements the Model-View-Controller (MVC)
architectural pattern, with the database layer representing the model, the business logic
layer representing the controller and the font-end GUI representing the view.
Introduction MySQL Clustering
Introduction MySQL Clustering
Introduction MySQL Clustering
Project Approach
As per the advice of Sun Team, the project has been implemented in a staggered model
as outlined below with a use case that covered a Telephone Enterprise Customer
Database wherein each Customer is uniquely identified by phone number (country code
+ phone number):
1. Database Administration
This Phase covered the Hardware Setup, Operating System Setup, and Installation
of MySQL. The major focus during this phase was to setup Replication features of
MySQL using two different approaches – Asynchronous and Synchronous.
Both the replication approaches were implemented against two MySQL engines –
InnoDB and MyISAM.
Implementation and comprehensive testing was performed at this stage which
also covered failures of databases and scalability under the available hardware
configuration.
2. Business Logic Development
This Phase covered the business logic requirement where the stress and focus
was on standard database interfaces. The demo implemented Hibernate, an ORM
model and JDBC to connect to MySQL database.
The connection to the database using these technologies is achieved through a
web-service layer. CRUD functionality has been implemented using Web Services.
3. Graphical User Interface Development
The focus of this phase is to demonstrate how an end-user application would
interact with MySQL database using the Web Service Layer. The demo
implemented various client-side GUIs in the form of front-end technologies like
Java Swing, Visual Web Java Server Faces (JSF), Java Micro Edition and ASP.net.
Introduction MySQL Clustering
Exhaustive test cases have been written to demonstrate the functionality
covering both success and failure situations.
Project Technology Summary
The demo framework not only showcases the MySQL capability but also demonstrates
variety of Sun Technologies and Industry Standard Interfaces. The implementation has
been modular so that the demo can be downsized but still the features can be
demonstrated. The various components that have been utilized are listed below:
• Hardware – Intel Quad Core Desktop with 4GB RAM
• Virtualization – Sun VirtualBox
• Operating Systems – Windows Vista, Windows Server 2003, Fedora Linux,
OpenSolaris
• Database – MySQL
• Web Servers – GlassFish and Internet Information Server
• IDEs – NetBeans and Microsoft Visual Studio
• Web Service Layer – Java API for XML Web Services
• Front End GUI - Java Swing, HTML, JavaScript, Visual Web Java Server Faces, Java
Micro Edition, C# and ASP.net