BigAdmin: Java SE
Java SE - Deploy
Begin Tab Sub Links
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:

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

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

BigAdmin
  
 
BigAdmin Upgrade Hub