Chapter 5. Why Use Expresso?

Table of Contents

An Example of a Java Application Services Framework
Expresso Embraces Model/View/Controller Paradigm
Conclusion
Contributors

Note

If you find this EDG documentation helpful please consider DONATING! to keep the doc alive and current.

 Maintainer:David Lloyd

An Example of a Java Application Services Framework

After working on a few projects in which software for similar tasks was reinvented, re-tested, and re-deployed using differing standards and methodologies, we went through an exhaustive search for a standard platform on which to build web applications. We evaluated open source frameworks and proprietary vendor platforms. We chose Expresso from Jcorporate as our standard development platform. Expresso has a number of advantages over other frameworks and platforms, and results in a drastic shortening of the development cycle. It allows us to focus our efforts on business modeling rather then lower level web programming. Expresso, and the Jcorporate line of products based on Expresso, have been developed with respect for Java standards and specifications. You will not find proprietary methodologies that limit your ability to use the products, and the learning curve is reduced for developers familiar with Java specifications. Jcorporate provides source code with all of its products, which aids development, allows enhancements and modifications, and provides peace of mind.

Expresso , the framework showcased in this article does the simple things you need every day: logging, exception handling, configuration, and database management. Delving deeper into the design and implementation however, you will see that the framework also provides application server independence, future hooks for adding management services, and a well-defined extension mechanism. Most web applications have a few common needs, and Expresso was built to meet these needs with good design principals.

In answer to the need for a toolbox of framework components and libraries specific to building web applications, Jcorporate has been developing Expresso - a Java Application Services Framework since 1996. In 1999, Jcorporate offered as open source the Expresso Framework enabling it to be downloaded freely from the www.jcorporate.com site. Expresso Framework, is an application development framework for building Open Standards based enterprise Java web components, a toolbox of components specifically tailored for production of web applications, either with Servlets, JSP's or both. Expresso Framework is a large toolkit of classes. I am really impressed with Expresso 4.0. The Struts integration represents a huge step forward. I know that this is going to have a big impact on the open source community, and Java web application development. This is the foundation release that we have been waiting for.

Strengths:

  • Wide range of services

  • Excellent persistence tools

  • Thorough administrative functionality

  • XML capabilities

  • Easy prototyping

  • MVC Struts Framework Integration

Many of it's components can be used outside the realm of Servlets and JSP's as well. Jcorporate significantly increasing quality and productivity in development through code reuse that greatly lowers cost and shortens time-to-market. This popular framework offers a stable open platform to base your development with almost 100,000 downloads. It is the largest framework community with an active mailing list of 4700 members for your questions. As an active member of the community our company has since contributed code to the Expresso project, and it has evolved a great deal over the past year.

Expresso has been designed to expose the power of shared industry open standard solutions such as those created by Sun Microsystems, IBM, and the Apache Software Foundation. With Release 4.0, Expresso has further strengthened the power of shared industry open standard solutions with the integration of the Apache Jakarta Struts framework. By leveraging shared standards such as Java, JSP, Servlet, XML, EJB, J2EE, Bouncycastle, Cactus, Log4J, JUnit, Xerces, Xalan and Struts, Jcorporate empowers businesses to design and implement unique, adaptable, and unrestricted solutions that are independent of platform and application server.

After exploring Expresso, I found a lot of extra functionality that we have found very useful on our projects. The security capabilities are excellent, including nested security groups that allow very fine-grained access control to database objects, controller objects, and servlets/jsp's. Logging, server health, persistence, and XML messaging are some of the services that are included in the framework. These services allow you to avoid reinventing the wheel on your projects and concentrate on business logic. Building on Sun's standard APIs, the Expresso Framework includes components for:

  • Security

  • Expresso XML - 1st Finalist XML Readers Choice Award for Best XML Development Tool

  • DB Connection Pooling and Database Access

  • Configuration and Setup Values

  • Logging

  • Event Notification and Error Handling

  • Database Objects (Object/relational mapping and more)

  • MVC-Based UI-independant Application Logic development

  • Email Connectivity

  • Caching

  • Health Check

  • Job Control

Getting started can be overwhelming because there are so many classes [well over 600] to look at. The frameworks can be divided technically in four essential parts:

  • schemas

  • database object persistence

  • controller design

  • and the rest of the kit, which involves job control, utilities, etc.

It is essential that you understand the first three parts. Expresso Framework is also very much database-driven. That is, you will need to use a reliable, scalable relational database to make full use of the kit. Mysql, Sybase, Oracle, DB2, and PostgreSQL are all suitable candidates. Expresso can be used across platforms including both Windows and non-Windows platforms supporting JDK 1.3 and further. Expresso is designed to support both Java stand-alone applications and component development (JavaBeans, Enterprise JavaBeans, servlets) running under any webserver like WEBLogic, Websphere or IAS. Expresso supports Open Architecture, where new services can be designed easily and added to the library at any time. Services from the same type can be extended with a new implementation at any time. Each "consumer" class can reuse one or several "services", instantiating them on an as-needed basis. Using WebAppWriter Expresso, offers a convenient code generator, which facilitates creation of a new basic database-oriented components within seconds.

Expresso handles creating/destroying/pooling services - giving "consumer" classes a layer of abstraction for using demanded services and also minimizing the amount of required resources. Each service is an abstract Java class encapsulating a clear service idea, such as a "Log Service", and has one or many implementation classes such as File Log Service or DB Log Service. Each Service can be a consumer of another service(s) or can communicate to other service(s). As database functionality is an important part of Expresso, several Connection Services are implemented based on ODBC, OLE-DB, JDBC, JDBC-ODBC, and EJB connections. Each consumer class can mix several connections from the same type or different types.

Expresso is mainly tailored towards creating middle-tier Java-based components (EJB, servlets, CORBA), but can be successfully used in Java applications/Applets as well.

Expresso Embraces Model/View/Controller Paradigm

TODO

Conclusion

Contributors

The following persons have contributed their time to this chapter:

Note

Was this EDG documentation helpful? Do you wish to express your appreciation for the time expended over years developing the EDG doc? We now accept and appreciate monetary donations. Your support will keep the EDG doc alive and current. Please click the Donate button and enter ANY amount you think the EDG doc is worth. In appreciation of a $35+ donation, we'll give you a subscription service by emailing you notifications of doc updates; and donations $75+ will also receive an Expresso T-shirt. All online donation forms are SSL secured and payment can be made via Credit Card or your Paypal account. Thank you in advance.

Copyright © 2001-2004 Jcorporate Ltd. All rights reserved.