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.
You can hardly turn a web page these days without seeing a story that describes how people are using social networks, whether it is Twitter, Facebook or some other service to develop and build their personal communities. In business, we increasingly see blogs and wikis demonstrating utility in problem solving and communications but the real time nature of business process problem solving largely remains untouched by social networking tools. Existing services, while attractive do not scale well and have proven unreliable. This is unacceptable to business which must be 'Always On' and able to support people in their daily working lives. Such applications must therefore be scalable and reliable but also provide a lot more.
When solving problems, how good might it be if a user was able to tap into the collective knowledge of her peers or surrounding groupsof people with whom she might naturally network in the workplace setting? How much quicker and with greater precision might she be able to solve daily problems? What if there was a communications mechanism that takes the best of what services like Twitter offers and co-mingled that with readily recognizable SAP business processes? That solution is ESME.
The ESME blog has more details about ESME as well as project news.
Overview
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. 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.
We have a created a blog entry that displays an overview of the system.
Technical architecture
ESME is based on Scala and Lift and runs in most J2EE containers.
![ESME Technical Architecture](/confluence/download/attachments/106440/ESME%20Technical%20Architecture.png?version=3&modificationDate=1374940698000&api=v2)
Scala
Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.
Lift
Lift is an expressive and elegant framework for writing web applications. Lift stresses the importance of security, maintainability, scalability and performance, while allowing for high levels of developer productivity. Lift open source software licensed under an Apache 2.0 license.
History
If you look at the origins of the ESME project, you will find that the origin was in a plurk (a micro-blogging site like Twitter) conversation that at some point moved to the SAP SDN wiki. The project then moved to Assembla and then Google Code
The team involved was originally primarily made of individuals associated with the SAP community but has since expanded to include others from outside that community. The global team includes members from a variety of different nations ranging from India, Spain, Norway, Bulgaria, UK, etc.
Highlights
- 2008 SAP TechEd Demo Jam Participant: Las Vegas
- 2008 SAP TechEd Demo Jam Participant: Berlin
- 2008 SAP TechEd Demo Jam Participant: Bangalore
Features
Present Features
Planned Features
- Federation scenarios
A few requested Features
- ERP notifictions
- Prioritization
- Show local time for users
- Rabbit Integration
Getting Started
You are a developer
- You can check out the ESME source
- You can contribute patches to the ESME Core
- You can develop your own clients using ESME's own REST API or our Twitter API; Here are the instructions to create your client.
- You can collaborate on the ESME mailing lists
You are a potential user
- You can check out existing ESME installations
- You can install ESME in your own environment;
- You are looking for support materials to justify the use enterprise microblogging.
- Here is a presentation about ESME
Clients
There are three types of ESME client.
- Those that use the internal ESME JSON interface
- Those that use ESME's REST API
- Those that use the Twitter API to access ESME
Recently Updated
As you and your team create content this area will fill up and display the latest updates.