ESME Blog

enterprise microsharing in a process context
January 24, 2010

Integration with Thingamy

Author: anne - Categories: Uncategorized

We have over the last weeks been working closely with Thingamy on integrating ESME with their work processor. The result can be seen in the video below.

A few words from Sig Rinde from Thingamy:
Thingamy’s ‘Work Processor’ runs the workflow without glitch with path choices at most corners – punting a little ‘train’ of relevant and inter-realted objects (Workflow/issue/request/idea object – the main one + Assignment objects) through a workflow. The Assignment objects holds the task instructions and captures what’s done in the assignment while the Workflow objects holds the details about the issue/idea/request. That way an Assignee is presented with a list of relevant objects, all the pertinent information required for a specific task + the Assignment object to fill in with result and files.

When having been assigned a task, or when trying to get one’s head around the progress of a workflow there is always a need for ad-hoc communication with co-workers and/or other participants, “anybody
know…?”, “Could somebody help with…?” etc. Normally that would happen by email, phone or walking over – all of which limits the discovery of the unknown, like a co-worker having unknown but useful knowledge or ideas.

ESME adds that crucial part of ‘Discovery & Discussion’ that inevitably happens during any process, in a task or when studying the progress. In addition it should become the natural in-system conduit
for communication as well as the social pivot point, the water cooler, for the group/department/firm.

Most other E 2.0 efforts tries to add some notion of ‘process’ on top of separate and siloed apps drifting towards becoming middleware 2.0 – better is to have an underlying ‘process engine’ that gives the main
flow framework and datamodel using social media for the in-task ‘Discovery & Discussion’. Crucial is that the data in the two parts are related – in this case any ESME message can be related to any
Thingamy object adding context to both sides.

I don’t know what next step, as in features, will be – our philosophy is to keep it as simple as possible in the beginning and only add if it makes huge sense and works in practice. So we’ll see, the good thing is that both ESME and Thingamy are extremely nimble and doing crazy stunts underway should be easy!

 

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.