incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Incubator Wiki] Update of "ESMEProposal" by RichardHirsch
Date Mon, 03 Nov 2008 04:04:26 GMT
Dear Wiki user,

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

The following page has been changed by RichardHirsch:

New page:

= Abstract = 
Enterprise Social Messaging Experiment (ESME) is a secure and highly scalable microsharing
and micromessaging platform that allows people to discover and meet one another and get controlled
access to other sources of information, all in a business process context. 

= Proposal = 
We propose to move future development of ESME to the Apache Software Foundation in order to
build a broader user and developer community. We hope to encourage contributions to and use
of ESME, especially as an enterprise-grade text messaging platform for use behind the corporate
= Background =
Adopting social networking concepts such as tags and groups, ESME provides the business communications
framework that allows for the fastest and most reliable way of discovering the best solution
to everyday problems for people working in peer and extended networks. It reduces the risk
of applying suboptimal solutions by making it easy to find the right people at the right time
with the expertise for a given situation by allowing the participation of mobile workers,
integrating with existing systems, and providing for contextually appropriate document attachments.
The ESME architecture has been devised to meet the business requirements associated with reliability
and scalability.   The use of the Scala programming language and the Lift web framework on
the server provides rapid development capability as well as browser push functionality ("Comet")
as standard.  The open server side architecture allows other messaging environments - internal
(Alerts, Enterprise Services, etc.) as well as public (Twitter, external web-services, etc.)
- to be consumed as messaging sources. An event-driven actions framework within ESME allows
users to filter their information flow as well as to forward ESME messages to other systems
via HTTP or email.
The ESME server is written in Scala and uses the Lift web framework to produce a browser-based
user interface and also to expose a REST API. This allows for other clients, and an Adobe
Flex/Air client using the REST API is a part of the project. Search functionality and textual
analysis is provided by using the Compass wrapper for Lucene.

The use of  Adobe Flex/AIR on the client assures that business users are given a user interface
that meets their needs regarding functionality without clutter. ESME's open architecture enables
the possibility of other client technologies such as Symbian S60 mobile, SAP Web Dynpro, RIM
BlackBerry and Apple iPhone as examples.

\The alpha version of ESME is currently "live" at and the AIR
client is also available to download from the same address. This version was presented in
front of around 5,000 developers at the Demo Jam events during SAP's TechEd conferences in
Las Vegas and Berlin.
ESME focuses primarily on usage in enterprise settings where the use of open-source software
is often controversial. Our decision to move to Apache will help further the use of open-source
software in corporate settings especially as it has already been architected for inclusion
in SAP environments. 

= Rationale =

ESME has attracted a great deal of media and end-user attention based on its unique feature-set
and the underlying technology (see  We
believe that ESME's vision is unique in the area of microsharing.
The ESME project team is interested in joining the Apache Software Foundation for several
To help the project attract contributors and service providers who will feel more comfortable
with the licensing coming through a respected, well known and established organization such
as Apache. 

To facilitate the growth of a broader community of users. The project currently lacks sufficiently
clear direction, leadership, and process; we believe the project will benefit greatly from
Incubator mentorship.

As the only open-source micro-messaging ("Twitter-like") project which is both enterprise-oriented
and targeted at the Java platform, we think the ESME project is an ideal fit for the Apache
Software Foundation.

= Current Status =

== Meritocracy ==

Since the project's inception, its development has been coordinated through collaborative
decision-making on the mailing list, daily scrum calls, Twitter and open discussion on ESME
itself. The ESME community encourages suggestions and contributions from any potential users
and developers. The ESME team has no leader, merely a set of core contributors and others
who help the project in any way they can. All of the core developers are committers to the
current repository; new committers are granted access once they have demonstrated an understanding
of ESME and have at least a proof-of-concept of their patch working.

== Community ==
Many of the team are SAP Mentors: "SAP Mentors are role models who differentiate themselves
through the high quality and frequency of their community contributions, their perspectives,
attitudes, and interaction styles. They are subject-matter experts who are passionate about
SAP and share their opinions and insights with the community" (Source:
In addition, team member David Pollak also runs the Lift project, and is an active member
of the Lift and Scala communities.

The important role that the community plays is also evident in the number of ESME clients
that are now available (ABAP, VBA, Java, Javascript, etc.) that were contributed by the community
and which are either available in the Google Code repository (
or on the ESME blog (
The community has been active in guiding the features that were developed and which are currently
being planned for future releases. 

== Core Developers ==
David Pollak (most of the Scala code)
Darren Hague (some Java, Scala and JavaScript code)
Mrinal Wadhwa (most of the AIR/Flex code, some HTML)
Thomas Jung (most of ABAP code)
Athavan Raja (some of the ABAP code)
Vassil Dichev (some Scala code)
Dick Hirsch (VBA & JavaScript code)
Anne Kathrine Petterøe (some HTML)

== Alignment ==
ESME aligns well with ASF projects utilizing J2EE infrastructure such as Tomcat. Of particular
relevance are projects such as Lucene (which is used for searches in messages) and Apache
Maven. Key libraries used include Lift and Compass, both Apache-licensed projects. ESME does
not use any GPL code.

Although ESME has come from the SAP community and has SAP-specific extensions, the core server
code will always be designed to run on any J2EE-compliant server. SAP- (or other vendor-)
specific extensions will always be implemented as modular plug-ins, so as not to create a
dependency on SAP or any other vendor.

== License ==
The ESME codebase is Apache 2.0 licensed, and currently hosted at Google Code.

= Known Risks / Avoiding the Warning Signs =
Orphaned Products 
Most of the active developers would like to become "Committers" and have a long term interest
to develop and maintain the code. 

Most of the Scala and Lift knowledge for the ESME server resides with David Pollak at the
present time, although Darren Hague, Vassil Dichev, Mrinal Wadhwa and others have all spent
time working with the server code. If David were to leave the project, this would significantly
affect the pace of server-side development. One of the reasons for coming to the Apache Software
Foundation is to help bring in more developers who interested in using ESME to learn or polish
their Scala & Lift skills, and this would in time mitigate the dependence on David's knowledge.
Another mitigation is that the Scala and Lift communities have active and helpful mailing
lists for any queries that the ESME team may have.

Inexperience with Open Source 
As a lead developer, David Pollak has long experience in open-source projects including Lift,
social fabric, etc. His guidance has been extremely useful so far in keeping us to Apache-compatible
licenses for any libraries we use. For many of the team, however, this is their first open-source
project as a committer. In mitigation, the project has been community-based from the start,
and moved source control and issue tracking into the open on Google Code in September. One
of the benefits of moving to the Apache Software Foundation is to learn  more about open source
project governance and to correct some of our bad habits (e.g. a tendency to use our private
Google group for discussion and a tendency not to record minutes during our team conference
Homogenous Developers 
ESME is a project that is made up of much more than just developers. Our team reflects our
focus on the enterprise; thus, we have a diverse group of individuals involved ranging from
process experts, UI designers, bloggers, marketing gurus, Java developers, Scala developers,
ABAP developers, etc. We are joined by a common desire to bring microsharing to the enterprise.

The current list of committers includes developers from several different companies plus many
independent volunteers. The committers are geographically distributed across the U.S., Europe,
and Asia, and they are all experienced with working in a distributed environment. 
Reliance on Salaried Developers 
Some of the initial committers are salaried developers employed by SAP, although like everyone
involved in the project they work on ESME in their own time, and SAP does not own any of the
ESME code. The remaining developers are individual volunteers who are passionate about the
technology / vision. The involved companies have reached out and will continue to reach out
in their efforts to build a diverse community. 

Relationships with Other Apache Products
ESME uses Maven for its builds, and the current stable release is deployed on Tomcat at
When run by developers during testing (mvn jetty:run), Derby is used as the database. Lucene
is used for the search engine, wrapped by the Apache-licensed Compass library.

A Excessive Fascination with the Apache Brand 
One can’t ignore the impact the Apache brand has on a project, but what this project needs
isn’t branding -- it is benefiting from experience accumulated at the Incubator based on
the diverse number / characteristics of those projects with which it has been involved. This
resulting experience would provide us direction and improve our processes. We will be sensitive
to inadvertent abuse of the Apache brand and will work with the Incubator to ensure the brand
policies are respected.

Maturity of the Lift Framework
The Lift framework, used heavily by the ESME server, is not yet at version 1.0 and has been
subject to breaking changes in the API; in order to get support from the Lift developer community,
ESME must be built against the nightly builds of Lift. In mitigation, the 1.0 release candidate
is expected to be ready at the end of 2008, and stability of the API is expected as a result.


Initial Source 
Originally hosted on Assembla, the code is currently hosted on a GoogleCode Subversion server. 


All dependencies have Apache compatible licenses 

Source and Intellectual Property Submission Plan 
ESME is based on the Apache 2.0 license. 

External Dependencies 
Since ESME is based on the scala-based lift framework, many of the dependecies are to be taken
care of with this framework.  

Required Resources 
Mailing lists 



Subversion Directory 

Issue Tracking 

Initial Committers 
Name  Email  CLA  
David Pollak   feeder.of.the.bears at  
Darren Hague 
 d.hague at  
Vassil Dichev  vdichev at  
Mrinal Wadhwa  mrinal.wadhwa at  

Name  Affiliation 
Darren Hague 
Thomas Jung 
Dick Hirsch 
 Siemens SIS 
Anne Kathrine Petterøe 
 Pearl Consulting  

J. Aaron Farr Champion and Mentor for the project, (as defined in


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

View raw message