esme-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Gray <>
Subject Re: I'm interested in integrating microblogging into OFBiz
Date Sat, 28 Nov 2009 11:40:19 GMT
Hi Richard,


On 28/11/2009, at 8:43 PM, Richard Hirsch wrote:

> Hi Scott,
> Comments inline
> On Sat, Nov 28, 2009 at 1:08 AM, Scott Gray < 
> > wrote:
>> Hi Richard,
>> Thanks for getting in touch with us, it's always good to hear from  
>> other ASF
>> projects.
>> I agree that an integration between the two projects could be quite
>> interesting, and could actually be an extremely useful means of  
>> facilitating
>> system<->user and user<->user communication.  Here's a few thoughts:
>> About ECAs:
>> 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  
>> 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.
>> Conditions are defined against whatever context is will be  
>> available when
>> the event occurs, the record fields for an EECA, the in/out  
>> parameters for a
>> SECA and the email contents for a MECA (from, to, subject, etc.)
>> Actions are just OFBiz services to be invoked when the conditions  
>> are met.
> Can you point me to some more technical documentation regarding  
> EECAs, etc.

This is probably the best we've got:
It only relates to SECAs although ECAs are pretty similar, differing  
mostly by the event type that triggers their evaluation.

>> Sending event notifications:
>> ECAs are the way to go for this and we'd just define services to be  
>> used as
>> actions which send the message to ESME.  You'd probably create a  
>> single
>> generic service that is used to send any message and then use that  
>> service
>> within other services for sending specific messages e.g. an ECA  
>> would invoke
>> sendPurchaseOrderChangeNotification which would prepare the message  
>> contents
>> and call sendEsmeMessage to actually send the message.
> This is also the same pattern that we use in ABAP.  Once you have
> sendEsmeMessage piece, you could embed the functionality easily and
> then have functionality like SalesForce Chatter.
>> Receiving messages:
>> For this we could either create a new type of ECA specifically for  
>> messages or perhaps even generalize MECAs to support any type of  
>> message so
>> that it stands for Message rather then Mail.  ECAs would then be  
>> defined and
>> evaluated when an ESME message is received and service actions  
>> invoked to
>> handle any processing and responses that need to occur.
> The receipt of the message in OFBiz can occur via various means.  If
> OFBiz has a RESTAPI for ECAs, then you can create an ESME action
> ( to send
> messages to OFBiz when certain ESME events occur.

ECAs are only triggered by internal events, as I described above: an  
OFBiz service invocation, database operation or email receipt.  We  
don't have a REST API for invoking services, there is basic support  
via SOAP, JMS or HTTPS (but not what you'd call REST).  Services can  
also be invoked using HTTP(S) POSTs via our standard request handler  
(typically used for serving regular web pages and ajax calls) but that  
requires a little additional legwork in that you have to define  
request-event-response mappings in our XML based web app controllers.

> Or if there some
> sort of ECA for dealing with email events, then we can also use an
> action that sends email.

Possible, but I'd prefer:
> If you want a deeper integration, you could
> have a bot that uses one of our various APIs
> ( to read the
> message queue and then create OFBiz events.

This sounds like the way to go, I'll take a look at the link as soon  
as I get a chance.
With that said, is there any way to push the messages to OFBiz rather  
than polling a message queue?

> The integration via actions is very easy from the ESME side but on the
> OFBiz side you would need some sort of mechanism to parse the message
> to be able to call the appropriate OFBiz functionality.

Yeah that should be pretty straight forward using an ECA style  
approach, whenever a message comes in the ECAs are evaluated.  For the  
conditions against the message bodies we could perhaps start off with  
regex pattern matching conditions and maybe evolve it to conditions  
like "contains-tag" or something like that (I still have reading to  
do, a lot of this is foreign to me having never used twitter).

>> Additionally as part of the sending/receiving process we'd probably  
>> want to
>> store the messages an CommunicationEvent records but that should be  
>> pretty
>> straightforward using the existing services that are available.   
>> For storing
>> each user's ESME address we'd just use the ContactMech entity with  
>> a new
>> ContactMechType.
> Why would you need to store the user's ESME address?  OFBiz would post
> messages to ESME in the form of a ESME user (for example,
> "OFBizBackend"). Users who were interested in messages would follow
> the user and would receive the messages from this user.  If you want
> to restrict the access of messages, then you could use ESME's pool
> mechanism.

I guess I still have some reading to do before the concepts are clear  
to me but I was picturing something along the lines of "tweet me when  
my order has shipped" for customer notifications or other types of  
private messages, I'd need a username or some other sort of target  
address for these right?

>> For chat I guess things will be a little more complicated because  
>> OFBiz
>> would want to play some sort of a role in logging messages
> You could probably create an ESME bot that listens to either an entire
> group and copies the message into some sort of archive. Ideally, you
> would write a bot that creates JMS messages that anyone can store. We
> talked about this but have had no time to develop it yet.

I'm thinking mostly in terms of things like a sales rep wanting to  
review their communication history with a customer, we typically use  
our CommunicationEvent db table for that, e.g. logging phone calls,  
user and system generated emails and the like.
For general archiving I guess we'd just rely on whatever ESME has in  
place (if anything).

>> mentioned restricting communication between parties depending on  
>> there roles
>> and permissions within the system.
> ESME has the idea of pools to deal with restricting access.

Thanks, I'll take a look at it.

> I'm also assuming that ESME is only
>> concerned with sending and receiving messages so the responsibility  
>> of
>> managing things like this and other chat features (chat buddies,  
>> rooms,
>> status, etc.) would fall upon the chat client rather than ESME?
> Much of this is handled by ESME.  ESME has a variety of clients
> available (see the bottom the page on
> ) and supports
> the twitter API as well (so some existing twiter clients can be used
> to access ESME)

I haven't actually visited the link yet but this sounds cool and I'll  
be sure to take a look.

>> But anyway I hope some of this is helpful and although I don't  
>> really have
>> any time to spare at the moment to work on an integration, I just  
>> wanted to
>> send something along to let you know that I think an integration  
>> would be
>> quite useful and that there is some interest among the community.
> I'll create a wiki page in the ESME Space to collect our ideas on the
> integration.  I can do most of the ESME integration work but I'll ned
> some assistance on the OFBiz side.

Great, I'll help out where I can but won't have much free time so it  
may progress a little more slowly on our end unless someone else jumps  
It'll probably take me a few days just to go over your docs and get a  
better understanding of the concepts involved.

> We have a test instance in the cloud.
It's raining here, I wonder if those are ESME messages hitting my  
roof :-)

> Is there a test OFBiz instance
> where we might test the integration.

We have nightly build instance running here:
Once things are further along we can patch it with the configurations  
necessary to speak to your ESME instance.


> D.
>> Regards
>> Scott
>> HotWax Media
>> On 27/11/2009, at 9:19 PM, Richard Hirsch wrote:
>>>> if you would like to work with us to get this implemented, you  
>>>> are very
>>>> welcome.
>>> Of course.  We have a test server in the cloud that we can use and
>>> REST APIs to create messages. We have also various clients
>>> (Javascript, AIr client, etc.) that users can also use to view  
>>> status
>>> messages from different sources.
>>> What I don't know is how the integration with OFBiz would look  
>>> like. I
>>> read about ECAs but didn't find very many details. Ideal would to  
>>> use
>>> ECAs (when I understand them correctly) to use ESME's REST API to  
>>> send
>>> messages.
>>> What are the next steps?  Should I create a wiki page in the ESME  
>>> wiki
>>> space where we  can discuss this?
>>> D.
>>> On Fri, Nov 27, 2009 at 9:08 AM, Hans Bakker
>>> <> wrote:
>>>> Yes i have a request from a customer to add a chat function within
>>>> ofbiz.
>>>> we are looking at 2 frameworks:
>>>> the license is not compatible however i have a part confirmation  
>>>> they
>>>> are willing to change the license
>>>> and:
>>>> if you would like to work with us to get this implemented, you  
>>>> are very
>>>> welcome.
>>>> Regards,
>>>> Hans
>>>> On Fri, 2009-11-27 at 05:05 +0100, Richard Hirsch wrote:
>>>>> Hi,
>>>>> Has anyone thought about adding social components (ala Chatter in
>>>>> SalesForce - in particular -  
>>>>> to
>>>>> OFBiz?
>>>>> I'm one of the Project Leads for the Apache Incubator Project ESME
>>>>> (Enterprise Social Messaging Experiment)
>>>>> ( ) and I was thinking about  
>>>>> how ESME
>>>>> might be integrated into OFbiz. I'm assuming that ECAs are  
>>>>> probably
>>>>> the best place to start but I didn't find enough information.
>>>>> There are various integration possibilities / use cases. A few
>>>>> examples: a purchase order is changed and a short message is  
>>>>> sent to
>>>>> those in ESME who are interested or the user makes an enquiry  
>>>>> about a
>>>>> particular material and OFBiz sends a short message via ESME  
>>>>> with a
>>>>> status.
>>>>> Thanks.
>>>>> D.
>>>> --
>>>> Quality OFBiz services for competitive rates

View raw message