Latest News
2004-11-28:
JChassis version 0.2.1 has been released. This version introduces minor
changes to make JChassis compatible with J2SDK version 1.5.0.
2004-03-21:
The second release of JChassis, version 0.2, has arrived! This release now
uses the kXML2 package, making the code size
overhead of using the full JChassis framework less than 60KB. Other new
features include a resource location service, an object storage/retrieval
service, and a shutdown service. The modules to control ANSI-compliant
terminals and to generate simple user interfaces on them have been
improved considerably.
Overview
What is JChassis?
JChassis is a component framework for writing efficient and modular Java
applications. Some application frameworks require developers to import
large libraries into their code, making the framework unsuitable for
creating smaller application and tools that might be required for
constrained devices or environments. Not so with JChassis — the
motto here is "do simple things simply". With JChassis you add
as much, or as little, as you want to your application, depending on
your requirements. The "core" JChassis framework is about 15 KB of
bytecode, though its functionality is quite limited. The next
level up is the "basic" framework, which is more suitable for
general applications, and currently weighs in at under 60KB,
plus any optional components. Both framworks can run on cut down
Java runtime such as J2ME Foundation Profile
JChassis is designed to promote sharing and reusing of components, and
provides a growing collection of components that can take care of the
mundane functions of an application such as command line parsing and
logging, and eventually more advanced features such as GUI configuration,
managing user preferences, common server functions, etc.
JChassis components provide "services" to an application. Every
service is represented by a Java interface and each service can
have any number of different implementations. Implementations that
a particular application uses can be replaced simply by changing a
configuration file, avoiding the need to recompile the application.
Different parts of an application may use different implementations
of the same interface. Finally, the configuration file can be used
to set properties (in the JavaBean sense) on each implementation as
it is instantiated, providing a powerful configuration facility for
your application.
What JChassis is Not
JChassis is not a web application framework. It is designed by
experienced developers, for Java developers. Neither is it a
visual programming tool. It is not a GUI framework, although some
components will cater for GUI-specific functions at a later stage.
It is not EJB (Enterprise Java Beans).
Motivation
The primary motivation for JChassis is to promote code reuse. I won't go
into the details of the benefits of code reuse — see any good text
book on software engineering. All experienced Java developers are aware
of these benefits, except perhaps those that don't learn from their
mistakes. Those developers usually spend their lives trying to maintain the
reams of "cut-and-paste" code that they have created. Personally, I have
better things to do!
The goal is that the JChassis framework and components will give
developers a head start when creating applications, and that in turn,
developers will contribute components to the JChassis collection. This
way developers can spend time writing the "interesting parts" of their
applications and leave the boring stuff to be carefully polished and
tested by the JChassis team.
System Requirements
JChassis frameworks will run on Java 1.1 or later. One major aim is to
scale it down further to run under Personal Java and J2ME. So far, most
components can run under Java 1.1, but this is not always going to be
the general rule. Alternative Java 1.1 compatible components will be
provided where possible.
License
JChassis is licensed under version 2.1 of the
GNU Lesser General Public License (LGPL).
Status
See the status page.
Copyright © 2002-2004 Sam Stainsby.
All rights reserved. Verbatim copying and distribution of this entire
document is permitted in any medium, provided this notice is preserved.
$Id: overview.html,v 1.7 2004/12/20 09:24:27 stainsby Exp $