The reality of today’s Open Source poses several issues that may be daunting to “NEW” Open Source Developers, Administrators and enthusiasts. One of theses issues is “Where to start?” This document starts at the very point of this elementary issue. Providing a Base Line Java EE environment assists the context to discuss relevant technical issues regardsless of operating systems. When the operating system details require clarification in terms of installation, the relevent and appropriate details will be provided.
These operating system installation procedures will be clearly defined and be updated as versions and issues become available. Any new technologies can be deployed in these systems and a focus on new API’s, technologies or integrations can be deployed in these none environments. Familiarity of the Base Line Java EE allows us to focus on learning!!
There are some decisions to be made as to the which user target should be indentified. The user types that appear to be relevant to this effort are as follows:
1. Developers (local user, local desktop)
2. Administrators focused on deployment and maintenance of Java EE Applications.
3. Production level deployment and administrators for the enterprise
In order to provide the most potent information on this general subject, the first type, Development, is the target the following blog entries. The reason for this is the need to create a Base Line Environment that is just important to developers and administrators
The initial effort is to setup environments that use similar open source systems across disparate operating systems. The result here is to identify several Java EE systems to build a proper "Bare Minimum" environment. The first definition that we must agree upon is a "Bare Minimum" Java EE Environment.
For a system to be of any use it must have a client, a system delivery method to the client, processing data in context of the system and a method of persistence and retrieval of information (Database). In regard to the bare essentials this definition is satisfied by a Browser for a client, an HTTP server to deliver an application to the client, servlet container to process the application’s data and finally a database to persist and retrieve this data.
The following list identifies the target for all three operating systems.
1. Jetty HTTP
2. Jetty Servlet
3. MySql Database
HTTP Server
Jetty HTTP server is open source, provides HTTP functionality and marries the servlet container, as described in the next section, very nicely. Remember the “Bare Minimum” includes the factor of time in terms of getting this system up and running at the fastest, comprehensible rate as possible
Java Servlet
The Jetty Servlet container interacts with the HTTP server naturally provides the Java Servlet specification very well. Furthermore, the configuration also includes the JSP processing implementation for use of JSP demonstrations and other tutorials.
MySQL Database
The effort requires a database, MySQL is more than competent and has enough similarity to the SQL space that learning this will only be helpful toward using Oracle/MSSQL/POSTGRES or any other SQL compliant technology. Bottom line, it’s a responsible place to start.
Getting The Technologies
Jetty :
HTTP and Servlet Container http://jetty.mortbay.org/jetty/
MySQL :
Database http://www.mysql.com/
Adminstration Tool http://www.mysql.com/products/tools/administrator/
Internet Browser
Just a quick word about the role of an Internet Browser! In testing and rendering a client via an Internet Browser (IE, FireFox, Mozilla and Safari) provides a good test base.
However, in terms of testing round trips Ant is perfectly normal to use. Though, the use of Ant is a very quick testing tool the actual effort may prove a difficult learning curve and takes a little more explanation than the browser. Therefore, for matters of simplicity we will use the browser for now and leave Ant as a lesson for future use.
Our next entry in this series is to step through installation of the Open Source systems outlined above in Windows, Mac OS X and Linux. Once all three topics are compeleted we will then identify how to install further technologies, administer the environments, and provide maintenance support issues for production quality environments.