Our open source flagship, Expresso,
is a freely available, architectural framework for building
Open Standards based enterprise Java web components. With
170,000 downloads, this popular framework offers a stable
open platform to base your development. It also boasts
the largest framework community globally of over 34,000
members.
What is the Expresso Framework ?
The Expresso Java Development Framework
provides a flexible, configurable and highly secure architectural
framework for supporting the development of J2EE based portfolios
of applications. The Expresso aggregates and extends traditional
J2EE and generic Object Oriented design patterns to achieve
these objectives.
An open source, Java application development
(AD) framework featuring a foundations set of reusable, standards-based
software components designed to shorten time-to-delivery
of Web-based applications enabling the developer to concentrate
on application logic.
Expresso
5.6 release. 
Our approach is to adhere to Java 2 Enterprise Edition (J2EE)
utilising JavaServer Pages, Servlets, XML and Custom Tags.
By supporting J2EE, Expresso benefits from the infrastructure-level
services and integration capabilities that these platform approaches
deliver. Expresso provides the invisible underpinnings that
complex J2EE applications need to survive. Expresso is built
on Struts and together they own >85% of the open source
framework market making them a defacto standard to base your
other applications on. Given that J2EE remains fast-changing
standard even today -- Expresso's framework architecture makes
it easier to swap in new technologies and even whole new components
based on evolving standards such as found in the JSRs. This
improves your applications ability to evolve with J2EE.
Expresso is a next-generation tool for developing and deploying
dynamic applications. The links below will give you an good
idea of what Expresso delivers:
| Application
Components Layer |
| Expresso
Framework Layer
|
HTML
Javascript
XML |
Servlet
JSP |
JDBC |
EJB |
JMS |
|
| J2EE Layer |
| Database
Layer |
Expresso spans the logical layers
of your application: presentation/interaction,
application logic, and integration/persistence. The advantages
of having multi-tiered systems is the separation of functionality
into standalone processes which can be developed in different
technologies or which can distribute processing to different
physical resources.The use of a DBMS for persistent storage
has meant that JDBC is used for efficient access to the
database.
Also see the Expresso
Developer's Guide and the design for Struts
integration.
| "By 2003 at
least 70% of the total number of new applications will
be built primarily from "building blocks" such
as software components and application frameworks,
increasing both products speed to market and enterprises
ability to cope with change." "The future
of application development lies with an open architecture
that facilitates component choice, assembly and integration." "IS
organizations must have a strategy for the inevitable
shift to component based development. Components in
the form of design patterns, application frameworks
and business and technical components can significantly
increase quality and productivity in development through
reuse. Reuse, in turn, can significantly lower
cost and shorten time-to-market."
-
Michael Blechar, VP Internet & eBusiness Technologies,
GartnerGroup.
|
Build Sophisticated Web Applications Quickly
Expresso provides components which make it
very easy to quickly
build sophisticated web applications. Rather than simple
servlets that merely enable access to a database, Expresso
allows you to build entire systems, with secure, high-performance
database access via an object-to -relational mapping (no
need to embed SQL in your code), background job queuing and
handling with dynamic invocation of custom server-side objects,
and sophisticated event notifications and logging to facilitate
management of your completed application.
Using Expresso, developers focus on creating
the business logic and layout of the UI. All the tedious
infrastructure work is already there to build upon, so that
creating applications is easy and fast.
Expresso is based on Sun's J2EE (Java 2 enterprise Edition)
architecture and utilises a mixture of JavaServer Pages (JSP)
, JavaBeans, JDBC, JavaMail, Java Messaging Services (JMS) & Enterprise
JavaBeans (EJB) to provide a robust, scalable, open standards-based
solution. J2EE provides a good fit with current technological
thinking and is a standard for enterprise development.

Expresso has been designed from the ground up
to capitalize on the reuse of large components in system development.
|
 |
Why Use Expresso?
Expresso enables rapidly developing
web based applications, in a fraction of the time required
to develop these applications normally. Most importantly Expresso
is highly scalable, robust, portable, stable and secure.
Expresso is built around
a core of 16 separate, but highly integrated, application
framework components for J2EE. Individually, each of these
framework components solves complex technical challenges that
developers traditionally must solve on their own before writing
a given business application. When combined together, they
solve innumerable application development challenges, and
free a development team from having to write application
architecture, allowing the team to focus on writing the applications
that support the business at hand.
Expresso reflects the industry movement towards
openness, towards standards, towards more and more dynamic
interaction, towards loose coupling, towards methodology.
- Standardized methodologies and
objects for reuse across
applications. Reuse of
fundamental application structures and utilities
reduce the end-to-end maintenance and avoid 'reinventing
the wheel'.
- Ensuring clarity by communicating
in common concepts, terminology and design
patterns
- Abstracting the
solution of commonly found problems into generic
components.
- Promoting a unified production
vision by enforcing symmetry.
|
Expresso Benefits
Expresso can best be described through
the architectural values, both technical and business, which
it delivers.
Expresso Technical Benefits
In addition to being the
largest framework community globally, Expresso is built using
proven design patterns and architectural practices including
Sun's J2EE BluePrints design patterns so you know that your
applications are being built upon the best possible application
architecture solution available.
Expresso has been developed
by Expresso technical architects who have extensive experience
in the design of technical architectures and frameworks which
are robust, scalable and maintainable. It is also the result
of our deep understanding of Object based development and
the J2EE technology domain.
The Expresso architecture delivers the
following technical values:
- Most popular architectural
framework: Expresso
has the largest user-base. Mass
use by industry assures tried and true quality;
and evolving best practices.
- Open Standards Based: Expresso
delivers an open architecture based on open standards
that facilitates component choice, assembly and
integration. Expresso builds on numerous other open
source projects including the defacto MVC standard Struts.
- Sun's J2EE based
architecture: While Expresso is fully
J2EE (Java 2 Enterprise Edition) compliant, it
is also compatible in non-EJB environments.
- Customizable:
Full source means greater flexibility for customization
to your requirements
- Platform and Operating
System Independent: Expresso leverages
J2EE to provide independence from operating systems
and platforms.
- Database Independent:
Expresso can run against any SQL 92 compliant relational
database via a J2EE compliant JDBC driver.
- Application Server independence:
Expresso can be successfully deployed/configured
with various servlet-containers including Tomcat,
Resin, Jrun and J2EE-compliant application-servers
including but not limited to: BEA
WebLogic, IBM Websphere, JBoss, and iPlanet (NAS).
- View independence: Every View is
pluggable
- HTTPS Compatible:-
Expresso is able to support HTTPS (secure HTTP).
|
Expresso Business Benefits
The Expresso architecture delivers the
following business values:
Benefits include:
- Maintainable:
simplifies development, quick to learn, intuitively
coded and simple to modify.
- Scalable: can
readily scale with growing user adoption.
- Componentised/Modularised:
provides loose coupling and strong cohesion, so
that components can be easily interchanged.
- Internationalised:
provides multiple language support.
- Highly Configurable:
supports ease of change of application behaviour
by being extremely configurable.
- Secure:
Every Model and Controller object is secured, by
a programmable security role.
- Lowers
Costs : by dramatically
lowering the amount of low-level coding for
quicker delivery and Time to Market.
- Reduced
Risk: in project
deployment by Promoting Quality and Consistency
through Code Reuse
- Increased utilisation of staff
across different project solutions.
- Add-on applications available:
Expresso is complemented by JCorporate's CMS, forum,
FAQ and Helpdesk systems.
|
Expresso Enterprise
Expresso
Web Services component is the first component of Expresso
Enterprise that is now available. Deploying Web Services
requires integration with existing software infrastructure
and the development of new functionality that supports
new business processes. Expresso Enterprise now delivers
this functionality with Web Services on a J2EE Enterprise
Platform.
Additional Expresso Enterprise components
are in the works to extend Expresso which will each sold
separately:
- Web Services Component
- Basic Scalability (e.g. clustering support)
including Clustered Cache Syncing mechanism and a Clustered
NextNumber mechanism since for major enterprise capability;
- EJB Integration with an EJB Stateless Session
bean for controller state handling
- JMS/JTA Integration
- LDAP Integration.
The perfect launch pad for EJB applications.
Expresso Enterprise extends Expresso to integrate with EJB
servers, such that Expresso applications can be scaled up
take immediate advantage of the capabilities of an EJB server.
We have made a Bean-managed persistance Entity bean that
'wraps' a DBObject. This effectively allows any DBObject
to be 'repackaged' as a BMP Entity Bean & deployed on
an EJB server. We have created a Session bean for Controller
objects and have made connection pooling 'pluggable' so that
an EJB server's connection pool can be used instead of the
standard Expresso pool if desired. 
|