ESME Blog

enterprise microsharing in a process context
January 2, 2010

Integration with Apache OFBiz

Author: dick - Categories: Integration, Vision - Tags: ,

Introduction

I have just finished integrating ESME into Apache OFBiz which is an open-source ERP platform.

The Apache Open For Business Project is an open source enterprise automation software project licensed under the Apache License Version 2.0. By open source enterprise automation we mean: Open Source ERP, Open Source CRM, Open Source E-Business / E-Commerce, Open Source SCM, Open Source MRP, Open Source CMMS/EAM, and so on.

I used OFBiz’s event environment to plug-in ESME functionality.

ECAs are pretty straight forward: when an Event occurs, if the Condition(s) are met then Action(s) are performed. The Events supported currently are Entity (EECA) events which basically correspond to database record CRUD events, Service (SECA) events which correspond the various stages of a given service’s invocation (invoke, validate, commit, return, etc.) and Mail (MECA) events which occur when an email is received.

I used the entity “Facility” as a prototype but any entity would be possible. I also selected that the events would just be sent when new facilities were created but I could have just as easily responded to other entity-related events (deletes, updates, etc.)

My goal was to easily integrate the two environments as quickly as possible. Once I figured out what to do, the integration was relatively easy. I used a local ESME instance that was separate from the OFBiz instance.

Screenshots

ofbiz1

Here I create a new facility https://localhost:8443/facility/control/CreateFacility.

Here is the screenshot from ESME that shows the message that was sent in response to the creation of a new facility.

ofbiz2

Technical details

Authorization

The use of the ESME REST API requires a token. I’ve manually stored this token in the externalAuthId value of the UserLogin entity. https://localhost:8443/webtools/control/ViewGeneric?entityName=UserLogin&userLoginId=system

I added a token to the system user to be used in the ESME REST API calls.

ofbiz3

Message Contents

I’ve selected just three attributes of the Facility entity to be displayed in the ESME message. I looked at the details of the entity and just selected those that were easiest to use. Other attributes could also be used as well. https://localhost:8443/webtools/control/ViewGeneric?entityName=Facility&enableEdit=true

ofbiz4

Implementation Details

For details on the implementation, see the Apache ESME wiki page here

Improvements

1. Use of externalAuthId to store the ESME token. The use of SSO would probably be better

2. Use of system as service user. For some reason, the user who fired the event was always “system” rather than the actual user who created the facility.

3. No OFBiz UI. Right now there is no UI in OFBiz to display the ESME messages.

4. Ideally, there should be a common service that sends the message to ESME and entity-specific services that compose the message to be sent.

5. Use of the new Streaming API to send to a specific pool rather than the public pool. Right now, I’m using the Twitter API to send the message. Ideally, the new API should be used to send to a specific pool.

December 15, 2009

12sprints integration

Author: dick - Categories: Design, Integration, Vision - Tags: ,

12sprints is a new collaboration tool from SAP that was in stealth mode for a while and now has surfaced with a bang.

12sprints is part of a new product category called collaborative decision-making.  Collaborative decision-making provides tools that bring people together with the latest information and analysis or decision techniques to drive towards a particular outcome.  Unlike products in the market that offer general collaboration platforms like Microsoft SharePoint, Google Wave, or Salesforce Chatter, 12sprints is a specialized application for goal-oriented work that can be used in conjunction with any of these products. [SOURCE]

 12sprints has a REST API that is still in development and which was introduced on SDN recently.

We decided to work on two simple use cases to test out the REST API from 12 sprints.  By using ESME’s action framework  - in particular using the HTTP Post action-  we enabled ESME users to interact with 12sprints via particular message tags.  The responses from the 12sprints REST API are then posted to ESME so that users can take the information and use it for later processing.

Note: The authentication for the 12sprints REST API is currently based on basic authentication. The syntax of the authentication is [username]:[password] that is uuencoded

Note: I would love to show screenshots from 12sprints with the created objects but, since 12sprints is still in beta, publication of screenshots isn’t permitted.

Use case 1:  Creating an activity

The first use case was the creation of a 12sprints activity from ESME.  The action takes the message string and creates a 12sprints activity with the activity title being the message text. The resulting activity id is returned to the user as a message.

The syntax of the action is:

https://[username]%40[password]@beta.12sprints.com/v1/activities
header:Content-Type=text%2fxml
<activity name=”%s”></activity>

12sprints1

 

Use case 2: Creating a decision

The second use case was the creation of a decision in a particular activity and the idea is the tag of the message is the activity ID which is necessary to create data objects. The message contents are then used as the contents of the decision.  The action is fired based on messages that contain the word “choice”.

The syntax of the action is:

https://[username]%40[password]@beta.12sprints.com/v1/activities/%25t/items
header:Content-Type=text%2fxml
<item name=”Decision item from ESME”><method_item><method_type name=”Decision”/><decision_item><goal><description>%s</description></goal></decision_item></method_item></item>

12sprints2

 

Current restrictions

This functionality is currently not part of our committed code base. I used a patch from Ethan Jewett to add the action-related functionality to repost the response of the HTTP Post action.  It isn’t committed, because we are still working on the optimal functionality that doesn’t compromise our existing concepts.

If you want to play with this integration, it is currently live on our Performance Instance in the cloud

Plans

These two uses were just first steps in our planned deeper integration with 12sprints. We decided to use to actions, because they are relatively easy to implement and are easy enough for most end-users to use. For more complicated use cases,  we are looking at ESME bots as the more appropriate programming model.  For example, we have one idea of taking an ESME conversation and creating a 12sprints activity with all the individuals and messages  being transferred to the activity.  Other ideas involve sending status messages from 12sprints (activity changes, etc.)  back to ESME so that users can follow activities without having to login on to 12sprints. Another crazy idea is to use “+1″ and “-1″ in ESME to express positive or negative reactions to particular activities.

 

December 14, 2009

Collaboration with akibot

Author: dick - Categories: Design, Integration, Vision - Tags:

We are now starting a collaboration with akibot.

Akibot is the first semantic actionable micro-blogging platform for the enterprise. Akibot not only allows real-time group collaboration and awareness through short, instant messages (like a Twitter for the company), but it also understands those messages and, if applicable, takes action.

What intrigued me about akibot was the semantic analysis of microblogging messages.

The basic idea is that akibot functionality can complement existing ESME functionality. The ESME community isn’t able to do everything on its own. Therefore, we look for partners who will work with us to further establish microblogging in the enterprise.

I’ve started a wiki page to describe the collaboration. The detail description of the use case that we are currently exploring is also present in the wiki.

As the diagram below illustrates, the use case focuses on the use of akibot’s Contextual Analyzer (C>A) module to semantically analyze messages and provide functionality that is currently not present in ESME’s action framework. The akibot Directive Processor (DP) then decides if additional processing is necessary and what additional actions are required.

akibot collaboration

Initial tests between ESME and akibot have proven successful and we are now further exploring collaborative options.

November 30, 2009

Ripples from Salesforce’s Chatter

Author: dick - Categories: Background, Design, Vision - Tags:

There were three events in the last few weeks that led to an massive increase in attention about ESME (leading to a record number of page views on our wiki!)

1. On November 19, Salesforce introduced Chatter which

lets employees set up profiles to connect with coworkers, issue status updates to say what they’re up to, and subscribe to feeds from people–and from applications. Also for collaboration, it lets people join groups to share updates and content. And the service integrates with today’s two hot social-networking services, Twitter and Facebook. [Source]

There are similarities between the functionality offered by Chatter and that offered by ESME which caused many individuals to take another look at ESME and its relevance.

2. In his keynote at the SAP UK & Ireland User Group Conference 2009,  analyst Ray Wang compared ESME and Chatter.

3. ZDNet Blogger Dennis Howlett wrote a blog entitled “Fawning over Chatter and how SAP missed its chance”

All three events fit in well with the increased activity in ESME that has occurred in the last few months.  As new contributors join and old contributors become active again, there is definitely a feeling of progress that has energized the extended ESME community.

I’m sure the next few months will be even more exciting.

November 19, 2009

Collaborative efforts with #ubimic

Author: dick - Categories: Marketing, Vision - Tags: ,

We are currently collecting ideas about how to best collaborate with #ubimic.

#ubimic is a group of university researchers interested in microblogging from different points of view (computer science, information systems, organizational science). Together we think that microblogging has great potential when it comes to integrating normal users and things like sensors, machines and software. We are experimenting with different microblogging tools and scenarios.

There are interesting collaboration possibilitites and we’ve already started describing potential uses cases where we might be able to collaborate. Examples of these use cases are:

  • Use Messages for Back-end Requests
  • Microblogging SAP System
  • Task management
  • Device-related Use Case (RFID)

The big picture of the collaboration efforts might look like this:

ubimic

Take a look at our wiki page for more details about our collabortive efforts.

March 9, 2009

Official Siemens SIS Press Release about ESME

Author: dick - Categories: Background, Design, Vision - Tags:

Siemens SIS has just released an official press release about ESME and about Siemens SIS’ involvement in the project.

The official press release is available here.

February 21, 2009

Accessing ESME via existing Twitter Clients

Author: dick - Categories: Design, Development, Vision - Tags: ,

One of the main tasks for the first sprints since we joined Apache has been support of the Twitter API .  The main reason for this functionality is the ability to use existing twitter clients to access ESME. Well, Vassil Dichev  has been working hard to this important task up and running. Using Twitter clients, it is now possible to send messages, receive the public and private timelines as well as view friends/followers.

The use of other Twitter clients to access ESME isn’t always possible, because the client’s configuration must be changed so that the application accesses the Esme server rather than the main Twitter server. Unfortunately, this switch isn’t always possible, because the server which is the basis for messages is usually hardwired.  Those applications that can also access laconi.ca  servers can also be made to access ESME servers

I’ve tried it using Twhirl against the Stax deplyoment with the latest Apache code drop and was pleased to see that it works.

twhirl_esme33

If you want to try it yourself, then you to do the following steps.
1. Create a user on the ESME server at Stax
2. Click on the manage token link and create a token. This is is your password for using the Twitter client
3. Create a new account with twhirl using the laconi.ca type not the identica.ca type.

twhirl_esme41

Use this synatx “apachedick@esmecloudserverapache.dickhirsch.staxapps.net”. Instead of “apachedick” use your own user_id.
4. Click on ”Connect” and set password using your token from step 2.

twhirl_esme_pass1
5. You should now see the public timeline.

I’ve only tried accessing ESME via twhirl. If anyone has success using other clients, then please add a comment.

Please note that we have not yet done everything in the Twitter API, so some things still aren’t working (for example following users). Other functional characteristics of Twitter like DMs aren’t yet part of the ESME architecture.

Please also note that the Web UI at Stax doesn’t work properly, so bear with us. The Stax deployment is the latest code drop from Apache which means it might include bugs.

February 8, 2009

ESME Mention in Keynote at “Open Source Meets Business” Conference

Author: dick - Categories: Design, Marketing, Vision - Tags:

ESME got a nice mention in Mark Yolton’s (Senior Vice President of the SAP Community Network ) keynote at “Open Source Meets Business” (OSMB) conference. Take a look at Mark’s blog about his presentation (slides are here). The slides are interesting, because they describe the changing relationship between open- and closed-source software. This discussion is obviously relevant to the manner in which ESME evolves.

January 24, 2009

New actions empower users even more

Author: dick - Categories: Development, Vision - Tags:

One of the most powerful features of ESME are the so-called actions which allow users to individually respond to certain event types (previously primarily associated with message contents) . For example, you could send yourself an email when messages with a certain tag were created. Well, Vassil Dichev has finally merged his new actions into the main development trunk and there are some cool new features. What Vassil has done is to look at other types of microblogging events (those that aren’t necessarily associated with messages) and has created “hooks” so that users can respond to them.

Here are a few examples:

login Selects the messages generated on user login.
follow Selects the messages generated when a user follows you. %f expands to follower nickname
unfollow Selects the messages generated when a user unfollows you. %f expands to ex-follower nickname
profile Selects the messages generated when your profile is changed.
every number mins Generates messages at regular intervals and selects them. The message is not saved- too noisy, plus two identical tests never refer to the same event

Vassil also added other functionality to the “http” action so that it is now possible to create twitter and identi.ca messages as well via actions. I’ve tried it and it is pretty awesome. Here is how it is done:

http://[User]:[password]@identi.ca/api/statuses/update.xml
status=%s
(Make sure that "status=%" is on a new line)

The idea was to look at microblogging tools that supply functionality that is missing in Twitter and embed this provided functionality in ESME in the form of actions.  Therefore, it wouldn’t be necessary to have additional tools but users could have everything in one place.

The full description of the new functionality is present in the Apache wiki .

We are currently playing with ideas regarding a plug-in architecture so that others could also develop actions.

Every week, we deployed the latest version of ESME on our server in the Stax cloud. If you want to play with the actions yourself, you can login to that server and test the actions out.

Note: Please be aware that this server has a version of ESME that reflects the latest code base. Since some things are still being developed, certain functionality will not work. For example, the current release after our code restructure still can’t display actual messages and the UI is horrible. This should all change in the next few weeks.

If you have ideas for new actions, then feel free to add a feature request at our Apache Jira site.

January 9, 2009

Use case: ESME Wiki Bot

Author: dick - Categories: Integration, Vision - Tags: , ,

I’ve been thinking about how to integrate various collaboration tools into ESME based on the use case that users wish to exploit a particular ESME conversation (starting from a single ESME message to series of related messages) as the basis for another type of collaboration (discussion, wiki entry, document, etc.).  By the way, I’ve discussed such interactions in other contexts  in SAP SDN blogs.

 

I’ve come up with two basic options:

  1. The ESME UI is adapted to add new functionality via a new icon on each message panel.
  2.  Use of an ESME bot  that listens for messages with certain tags and then performs various activities on the part of users. 

Of the two options, the first involves changes in the ESME core that might cause problems inasmuch as additional functionality might lead to a cluttered UI which would reduce the ease of use associated with a simple UI. The second option appears to be more applicable to a variety of use cases and doesn’t require UI changes based on every new use case. 

  

A Concrete Use Case 

I’d like to sketch out the steps associated with the use of such a bot. Let’s focus on the use case where an ESME conversation is being used to create a wiki page with the contents of the conversation

Read it all..