Mazarin

Articles

Java Enterprise Base (Version 1)

Project Summary

Java Enterprise Base nicknamed as Je-Base; is an internal Mazarin project initiative started in May 2009 to build a foundation implementation for Java enterprise application development projects. In the past Mazarin used AppFuse initially and Bloom later as the foundation projects. But lately due to weak responding nature of application to application (A2A) integration, which is required due to the evolving customer requirements; both AppFuse and Bloom fell short of the ideal foundation project requirements. Further Mazarin's move into enterprise applications development, specifically for JBoss server rendered that AppFuse and Bloom is non productive.

Therefore a solution to overcome these limitations the Java engineering domain's technology leadership decided to move ahead with a new foundation implementation that is robust, flexible and supporting both web applications and enterprise applications.

Project Objectives

  • To build a foundation java application and value adding modules that can be used to build specific customer applications as a web-application or as an enterprise-application.
  • The Je-Base foundation code must be able to start a customer project quickly with all basic features needed for an application.
  • The Je-Base modules must be able to integrate to any project build on Je-Base foundation.
  • To keep the Je-Base project as an ongoing effort to collect and reuse all learning during customer projects.
  • To reduce customer project development effort and provide value addition to the customer.

At the project start the Je-Base was divided into two phases while the project is also sub-divided into two sub-projects. Each phase saw certain percentage of the two sub-projects being developed and released. These two sub-projects were;

Je-Base Core

This encompass the design and developing the foundation for any java web/enterprise application using all technologies used today and future trends that Mazarin anticipated. The project structure is developed according to the standard java enterprise application guidelines. A light weight application for web containers (servlet engines) such as tomcat, jetty is also developed with full compliant of Sun's web application guidelines.

Initially the 'Core' was designed to have a Java implementation and augment an Ant task that would transform relevant component of a web application to relevant enterprise application counterparts. But later it was change to have single code base as enterprise application contain the web application as a sub structure of its applications, so that it can be achieved through configuration changes where necessary.

Je-Base Administration

Since an administration module is a necessity for any customer project an administration module was decided to be build with key functionalities and service that would add value to customer as well as that would add value to Mazarin for better control of systems. It was decided to move common functionality such as user maintenance, user authentication, access control and dynamic content control into this module so that the module can be included in all customer projects without additional development.

Je-Base Visualized

Feature Grouping

Usage Visualization

Je-Base Feature Grouping Je-Base Usage Visualization

Implemented Features

Je-Base is built with many features to reduce development effort of individual projects. Some of those features are explained below.

EJB/Hibernate as Persistent Mechanism

EJB3 Java Persistence API key mechanism which is used in persistence layer for enterprise applications while persistence layer operations in web application, is delegated to Hibernate. Unlike in EJB 2.1, EJB 3 Java Persistence API defines O-R mapping using java metadata annotations or XML descriptors. This enables designing persistence layer using both variants are very similar to each other, without considering container managed services provided by EJB containers such as container manged transactions.

Spring MVC in Presentation Layer

Spring MVC is used as the MVC framework in the presentation layer. Its Java Annotation based configuration brings in the flexibility to be deployed over web servers such as Apache Tomcat or in application servers such as JBoss. Further annotations are extensively exploited in Je-Base to manage the complex module dependency and also project specific customization required.

Templating using Sitemesh

Sitemesh has proven to be a good template API. It has been used in AppFuse and in Bloom and Mazarin has seen its great potential to control and manage flexible presentation layer. Hence Je-Base is also built and shipped with Sitemesh. In addition Je-Base is incorporated with a set of Cascading Style Sheets (CSS) that present a basic theme to any Je-Base base project startups. This will assist engineers to quickly start building project features and further help UI engineers to easily customize the template and theme to suite the customer project. Further the CSS structure is highly extensible allowing multiple themes and dynamic presentation within a single project.

I18N

The Je-Base is designed to support Internationalization at all levels including multi language support and data formats. The projects that use Je-Base can extend this support and override or add additional languages, formats and content. In addition Je-Base is built to include static content multi language support. This is to increase performance of static content than using the Java code to include the language specific content. A project can have a subset of pages that have substantial static HTML content and yet configure it to render in multiple languages depending on user's language preference.

AJAX Support

Je-Base has integrated Direct Web Remoting (DWR) API which is an AJAX implementation. All projects that are based on Je-Base can use the DWR API with quick integration and present rich client experience. The DWR 3.0 version used support reverse AJAX as well. Further AJAX Anywhere, which is another AJAX implementation, is also optionally available to be used in areas that DWR does not have built in support.

Web Services Support

Web Services support is built into Je-Base so that the client projects can leverage on web services infrastructure. Je-Base consisting of JAX-WS and JAXB APIs which enable developers to create and deploy secure, reliable, transactional, interoperable web services and clients.

Value Added Module

In addition to the Je-Base Admin module, Mazarin will develop several other value added modules into the Je-Base project structure. These will also be integrated as sub-projects with Maven integration allowing them to be used in client projects as per the need. Some of those value added modules are explained below.

Je-Base Message

Je-Base Message is a message center supporting sending and receiving messages to and from users in an application. It works similar to an email client with address books, inbox, sent items, etc.

Je-Base Chat

Je-Base Chat is an instance messaging module, that allows chatting with other users in an application. The module is meant to be used in professional environment and hence will contain only the basic chat services.

Je-Base Work Log

Je-Base Work Log is a work effort reporting tool. It can record time entries and work descriptions, generate reports and also version time entries.

Je-Base HRM

Je-Base HRM is an human resource management module that contains managing people, their salary information, promotions and also performance.

| Share