incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Incubator Wiki] Update of "JSpiritProposal" by GregoireRolland
Date Fri, 16 Jul 2010 09:08:47 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The "JSpiritProposal" page has been changed by GregoireRolland.


New page:
= Abstract =
jSpirit will be a platform to develop efficiently enterprise class application for SaaS with
real Multi-tenant support and cloud deployement.

= Proposal =
jSpirit will provide technical foundation on which application developper will create enterprise
software distributed as services. jSpirit vill implement global and out-of-box architecture
supporting multi-tenancy. As multi-tenancy, I mean architecture that share the same application
for multiple client, with support of specifics comportements. The technical foundation will
include an integration framework designed for simplify and abstract technical complexity of
J2EE for the final developper, a set of tools to industrialize production of applications,
a complete applications stack, and a set of methods and recommandation to develop efficiently.

= Background =
jSpirit was initialy developped for a french company who wants to create a multi-tenant SaaS
ERP for trading in the agribusiness world. The application is now finnished and this company
opens the codes of the foundation of this project.  At this time, there is no foundation framework
whose provide multi-tenancy support so it was a need to develop something like jSpirit. The
experience of developping such application point there is a need to have tools and method
to do this.

= Rationale =
I think there is a strong need of architecture and simplicity in the java world. The multi-tenancy
problems are difficult to resolve and the needs of such application will grow in the future.
jSpirit will implements out-of-box architecure, a seamless programming model and technical
module to simplify developpement. jSpirit goals is to become a concentrate of experience of
open-source and advanced J2EE developpers to provide a platform for efficiently develop application
in the SaaS and Multi-tenant world.

= Initial Goals =
All the code base is here : [[|Sourceforge]]. 
The current code base implements all functionnalities below.

== Architecture ==
 * Multi-tiered Architecture out-of-the-box : Implementation of Integration Layer, Business
Layer, Client Layer
 * Java 5 annotation and auto-injection based lookup of services
 * Classpath scanning for auto-discovering components
 * Modular and plugable architecture : automatic activation of modules in the classpath, ready
for seamless integration
 * Implementation of Long-Conversation pattern, with JTA 2PC support (with Geronimo Transaction
Manager), and implicit demarcation (explicit demarcation is always possible)
 * [in progress] AOP interceptor on top of each layer

== Integration Layer ==
 * Implementation of abstract integration services and abstract persister based on JPA technology
 * Maven plugins for code generation of integration layer from xml description of component
business model : generate persistent class, access services, queries, constraints, JPA annotation,
 lucene indexation of business model
 * bean validation integration
 * Full Multi-tenancy integration on EntityManager and Caches
 * Multi-tenant Postgresql support

== Business Layer ==
 * Implementation of abstract business services and infrastructure
 * Annotation discovering and injection of dependents services
 * Multi-tenant replacement of services at runtime
 * Simple Asynchronous and distributed business services with Apache ActiveMQ : this is annotation

== Client Layer ==
 * JSF 2.0 predefined integration
 * Abstract Managed Bean for simple developpement of list and forms
 * Integration of restful url for JSF 2
 * Multi-tenant interceptor for determining tenant context based on full qualified domain

== Scheduling ==
 * Distributed and load adaptative voting peer-to-peer scheduler
 * voting task execution with Condorcet Method

== Security ==
 * Simple security integration : form login, http basic security
 * Multi-tenant support for authentications and authorizations
 * peer-to-peer sessions id replications for support max session per user in a cluster
 * Regexp filters on urls
 * JSF function and bean to manage security on pages

== i18n ==
 * Full i18n support
 * Multi-tenacy i18n : overriding label per tenant
 * JSF function for accessing labels and locale
 * JSF bean for controlling user locale on web page

== Data Import/Export ==
 * XML data importer/exporter customizable by tenant with scripting services
 * ready for "open-SaaS" to guarantee application users data integration and recuperation

== Web Services ==
 * Simple export of business services to Soap Web Services with Apache CXF
 * [in progress] REstfull web services with Apache Abdera integration (and XStream)
 * Atom 1.0 support with Apache Abdera (only GET method now)

== Search ==
 * Indexation of data model
 * Simple Query interface for searching in the data model
 * Multi-tenant support of the Lucene Indexes

== JCR ==
 * Multi-tenant integration of Apache JackRabbit : workspaces based
 * Implementation of injectable service for JackRabbit access
 * JTA transaction participation

== Mail ==
 * Injectable mail services out-of-box

== Reporting ==
 * Report module on top of the business layer
 * based on Castor XML and Apache FOP
 * Pluggable Reporting Provider architecture
 * Multi-tenant report replacement at runtime

== Tools ==
 * Set of Maven archetype mapped on architecture to create one project by layer

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message