Saturday, August 22, 2009

Cloud Computing Demystified

After a two months summer vacation, my college reopened the previous month. With the already hectic schedule involving placements and strenuous classes, we (the fourth year students) were also asked to start our preparation for the final semester projects. :(

We were asked to pursue our projects in various domains like Grid Computing, Distributed Systems, Image Processing, etc. with the help of the faculty. Cloud Computing was one of these domains.

Realizing that cloud computing is an activity topic in the campus ambassador program and understanding that most of my classmates were new to this domain, I decided to present a small presentation giving an introduction on cloud computing to my classmates.

With the support from the faculty of my college, a concise presentation covering the basics of cloud computing was presented on 10th August.

The presentation covered the following topics -

  • The Basics of Cloud Computing
  • A Brief History of Cloud Computing
  • Various delivery mechanisms of Cloud Computing like Infrastructure as a Service, Platform as a Service, Software as a Service, Data as a Service

As the target audience for the presentation was primarily the final year students, we had around 50 students participating in the seminar.

At the end we provided a link to the Sun’s white paper on Cloud Computing - "Introduction to Cloud Computing Architecture" for the audience to get a better grasp on the domain - www.sun.com/featured-articles/CloudComputing.pdf

Check out the photos at http://picasaweb.google.com/osum.source/CloudComputingDemystified#

Sunday, August 02, 2009

Sun Certified Java Programmer

I recently attempted the "Sun Certified Programmer for the Java Platform, Standard Edition 5.0" exam and passed with a score of 97%.

The SCJP exam is primarily for programmers interested in demonstrating proficiency in the fundamentals of the Java programming language.

The certification tests the programmer if he/she understands the basic syntax and structure of the Java programming language and if he/she can create Java technology applications that run on server and desktop systems using J2SE.

The certification, as of today is available in two flavors - 5.0 and 6.0.

Moreover, SCJP is the primary pre-requisite for more complex exams like Sun Certified Java Developer (SCJD), Sun Certified Web Component Developer (SCWCD), Sun Certified Business Component Developer (SCBCD), Sun Certified Developer for Java Web Services (SCDJWS) and Sun Certified Mobile Application Developer (SCMAD).

Check out the entire java certification path at http://www.sun.com/training/certification/java/scjp.xml.

The "Sun Certified Programmer for the Java Platform, Standard Edition 5.0" exam covers objectives like -

  • Declarations, Initialization and Scoping
  • Flow Control
  • API Contents
  • Concurrency
  • OO Concepts
  • Collections and Generics
  • Fundamentals

The exam actually costs $150, but being a Sun employee I got it for free under SAI. :)

A minimum of 58.33% (35 questions out of 60) is required to clear the exam. And the time duration for the exam is 3 hours.

For preparation of the exam, here is the material that I followed; I think this should be enough to get a respectable score -

Sun Certified Java Programmer 5.0 - Kathy Sierra

This is a comprehensive book for the SCJP 5.0 exam, it covers all the objectives of the exam in a structured approach. Anybody attempting the exam should go through this book at least once.

Buy the book from Amazon.com at http://www.amazon.com/Certified-Programmer-Study-310-055-Certification/dp/0072253606

Saturday, August 01, 2009

MySQL Clustering

As a part of Industry Association Program (IAP), we (J. Kamala Ramya, K. Laxman Bharadwaj and me) had been assigned to Sun Microsystems Inc.

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 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.

We completed the project in approximately 2 months and learnt a lot it. Starting a project from scratch and completing it in these 8 weeks was a whole new exuberant experience.

Projects Galore At Osmania University

The month of May was a very critical month, filled with exams and lab assignments. The second year students (presently third year) were encouraged to submit a miniature project displaying their skill in Java, as a part of the curriculum.

Initially, the idea of motivating students to build their miniature projects was crafted by Mr. Hameed, a faculty member of my college.

The students worked on their projects under the guidance of the faculty, with support from the college management and S.O.U.R.C.E. All the labs were equipped with NetBeans to make project development easy.

There were 11 groups, each consisting of 5 members, and thereby 11 different projects. The projects included different applications like -

  1. Media Player
  2. Movie Ticketing Application
  3. Download Manager
  4. Beat Box

And many more.

After completion of the projects, each team gave a presentation about their project showcasing their theme and the methodology of implementation.

Overall, the entire concept was a huge success and the students gained a lot of exposure to the Java programming language.

Industry Association Program

To provide students with an exposure to industry practices and work environment, Osmania University started the Industry Association Program (A.K.A Industry Attachment Program, Summer Internship Program), as a part of the curriculum.

Under the IAP, the third year students are encouraged to work in a professional organization or a R&D organization to help students get acquainted with industry practices and the work environment.

Several government and private organization have been assisting the IAP for the past eight years and students of Osmania University have benefited immensely from the program.

This year, Sun Microsystems Inc. has extended its cooperation in the program and helped a lot of students get introduced to the work culture of corporate organizations.

There were 18 students working on 6 different projects, each executed by 3 students. Several technologies of Sun like OpenSolaris, MySQL, NetBeans, etc. were utilized in the development of these projects.

We are extremely grateful and express our profound gratitude and indebtedness to the entire Sun team for their constant support and inspiring guidance, throughout the IAP.

Wednesday, July 22, 2009

MySQL Clustering - Technology Summary

The demo framework not only showcases the MySQL capability but also demonstrates a 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 Services
  • 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

Download the entire project here.

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) -

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.

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 Services layer. CRUD functionality has been implemented using Web Services.

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.

Exhaustive test cases have been written to demonstrate the functionality covering both success and failure situations.

MySQL Clustering - Project Design

Project Goals

The goal of the project is to provide a snapshot capability for three types of audience -

  • Database Administrators - Installation, Replication and Clustering of MySQL databases both in standalone and virtualized Operating System Environments covering Windows, Linux and Solaris
  • Business Logic Developers - CRUD (Create, Retrieve, Update, Delete) operations using Web Services to interact with the MySQL database adopting JDBC and Hibernate interfaces
  • 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.

Tuesday, July 21, 2009

MySQL Clustering - Project Backdrop

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 (J. Kamala Ramya, K. Laxman Bharadwaj and me) 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. 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 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.

Globalized Solutions - Summary

For every new program that is being developed fresh, it is recommended that it should follow the MVC pattern and that it satisfies the criteria for an internationalized program. Going forward, internationalization is an unspoken requirement that every application in global markets should satisfy.

Using translation and transliteration features to the maximum reduces the requirement of a language expert and there-by obtain project profitability.

Whichever project is being worked upon, development, migration, enhancement or QA, thinking of ways to apply the concept of Globalization will improve the robustness of the application.