BigAdmin Java Collection
Setting up & Deploying Java Applications
This section provides guidance for setting up and deploying Java
applications, with a primary focus on enterprise deployments using a
Sun Java Environment.
Java Deployment is a many faceted topic. It includes, but is not limited to:
- Installation of the Java environment on a computer
- Configuring a system-wide default Java environment
- Updating the Java environment
- Setting options in the Java Control Panel
- Making Java-related files available on web servers
A more complete list is available in the JDK5.0 Deployment Guide.
Content
Where to Start?
Let's clarify the terminology we'll using: a Java environment may be either one of the following:
- Java Runtime Environment (JRE)
- Java Development Kit (JDK) also known as a Java Software Development Kit (SDK)
What you need depends on your situation.
First, find out what type of deployment you face.
Do you need to install a new general purpose system?
Or are you seeking to install and configure a specific application?
Back to top
Quick Start
-
If you are planning deployment for a general purpose computer, we
recommend starting with installing the
latest update
for your Sun Java version.
The latest Sun Java update will be most secure
due to our on-going commitment to Java security. The latest
updates aggregate all known security fixes at the time of
publication. The latest release should also be most
performant.
-
If you need further discussion on inter-version migration, here are
points of encouragement;
here are points of caution.
-
Today most common operating systems supply a pre-installed system default JRE.
You can use the following applet to determine what Java version is
operating under your browser:
Java version tester.
-
Sun supplies its Java environments in two formats: one in the native
system software management format (e.g. rpm for Linux), and
the other as a set of nested directories and files (tar archive).
The native software management format is recommended for best
interoperation with local system management tools. The tar
archive form has special purpose use.
-
While Java is available for most popular computing platforms, Sun
creates and publishes Java environments for only the following
operating systems: Microsoft Windows, various Linuxes, and Solaris.
Sun makes these all available as free
downloads.
Configuring a system default Java is platform dependent, here
are configuration notes for some popular systems:
- Solaris system
- A Sun JDK installs and operates as the system-wide Java environment by default.
- RedHat Linux system
- Microsoft operating system
-
If your deployment platform is different from these, you will
need to acquire a suitable Java environment from the platform
vendor. Availability and applicability will vary by vendor,
possibly these may be neither free nor downloadable.
- Apple Mac OS X
-
Apple ports JavaSE to their Mac OS X platform. Newer Java versions
are made available primarily with newer OS releases. See the
Apple web sites for in depth information:
Back to top
The Right Stuff for an Application
If you are planning deployment of a specific application, we recommend
beginning any deployment planning by identifying the Java environment
needed for the target application. This would be specified by the
application vendor directly.
Most likely the application documentation will stipulate a preferred
Java environment vendor and version.
If your software application does not bundle and install a Java
environment for it's use, then you will need to compare the
desired Java environment to an installed Java environment
on the target system.
Sometimes software application vendors distribute a Java environment
with their product. These application private environments may
co-exist with the system default one. Thus a typical system may
host multiple Java environments. Patches or updates applied to the
system default Java environment will effect application
private environments.
Back to top
Which Java Where?
Java makes available a variety of application execution models.
A few examples are:
- local system, stand-alone ; either with GUI or "headless",
- local system, within a browser window downloaded as an applet,
- local-system, outside a browser downloaded on demand via Java Web Start,
- local-system, invoked from a native application,
- Server-side, as a servlet or a Java Server Page (JSP),
-
- Server-side, in a web-container hosted in an application server,
-
- Distributed client+server via sockets, RMI, or CORBA.
The location to check for appropriate Java availability depends on
the deployment model the application utilizes. More details for these
execution scenarios found under these links:
Back to top
Here, There, Everywhere
Another dimension to understand is the system architecture for the
deployment. Nowadays one can choose from amongst several:
- Stand-alone application
- Distributed execution
- Remote execution displaying locally
-
Local vs. remote execution configuration is usually a matter
of locating execution on suitable computing resources.
- Virtualized or using containers
Virtualized OS deployments are becoming popular with system
administrators due to the environment isolation and control
they offer separate from the primary OS environment. Various
implementations are available such as containers vs. hypervisors.
See
Solaris Containers Learning Center
as an example of the former, and
VMware Infrastructure
as an example of the later.
- Highly-available configurations
Highly-available configurations employ a multiple system
configuration. These provide some degree of service
fail-over on fault by cooperating at the operating
system, application, or application server levels.
Some example cluster systems are:
Another high-availability strategy is through load-balanced networking.
Which is commonly employed in internet facing, edge or web-tier
computing. It uses TCP load-balancers front-ending
web-servers
enabling high volume http traffic. This works due to the
brief duration, or stateless connection nature for much internet
client traffic.
Some sample web servers are:
Back to top
So Many Systems; So Little Time
If your situation is one of needing to install Java across multiple
corporate computers, in a data-center or IT management role, Java
distribution aids may be effected from various platform software management
and distribution utilities.
Back to top
The Long-time View, or Experience Speaks
Before putting any application into production, here are some
recommendations. At some point during the production life-cycle, some
element of the software environment will need to change. Whether this
is a new version of the target application, a Java environment update,
or an OS patch, change in software configurations is a fact of life.
To provide best continued application service in the face of inevitable
change, we recommend preparing an application deployment test
environment.
This test environment should be an exact mirror of the production
configuration -- or easily reverted to same.
The uses of such a test environment are to test for both application
performance and for assessing compatibility of any
given software or configuration change. Gauging performance entails
deciding on a representative performance metric as a point of reference.
This may be absolute wall clock time for completion of a job,
computing resources consumed during job computation, transaction
throughput, or some abstract measure of performance in the application domain
(e.g. number of chess games played). Whatever the measure used, the
test configuration and driving harness should be automated and
reproducible.
Back to top
Production Deployment Essentials
To keep your software investments running at their best, we recommend acquiring Sun Services Java support as part of your production deployment toolkit.
Back to top