Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Section
Column
width70%

General Use case

(Taken from comments from original page)

  1.  a  A new user visits the ecommerce site
  2. this This new user enters a microblog message with a question to the administrator of the site.
  3. One of the system administrators answers the microblog question as quick as possible
  4. further Further conversation follows.

Technical Prerequisites

  • You would need an Apache ESME instance (either on a separate server or in the same container). 
  • You would need at least two users (administrator, newuser) "newuser" would not be associated with a particular user but would be more of an anonymous user.  If you had multiple unauthenticated users using the same  e-commerce site, then they would also see / join the same conversation. Depending on the question, they might be able to help the new user as well.

Technical Description

Architecture

The basic idea is that an OFBiz UI will be created to capsule the Apache ESME functionality

Apache ESME as separate component

Gliffy Diagram
sizeM
nameESME - OFBiz collaboration - Separate
pageESME as
OFBiz componentMaking ESME an
Chat+ in OfBiz
pageid9373498
spaceESME

Apache ESME as OFBiz component

Advantges
  • let it use the OFBiz authentiation 3. and make a ofbiz userinterface.authentication
  • allows Apache ESME to use essential system functions like system messages and ease of installation

Prototype

  1. Deploy Apache ESME in your existing tomcat
  2. Create two users in Apache ESME: newuser and administrator. 
  3. Create a very rough OfBiz UI component to read and post Apache ESME messages. This is the UI for new users. Use the token for the new users in this UI
  4. The administrator could use the same OfBiz UI component but you have to set the token to the administrator user. 
  5. If you don't want to deploy Apache ESME locally, then you could use our test server in the cloud

Thoughts on authentication

Obviously, the goal would be to have some sort of a common authentication between Apache ESME and OFBiz. In the basic use case, all you really need are two users - anonymous and administrator. Anonymous would be for those users who are not administrators. Since I'm assuming that chat would be available for all users, this would mean that users would see the conversations between other users and the administrators. This would also mean that all users could participate in such conversations.

In future iterations of the OfBiz / Apache ESME collaboration, other options would be available. 

Currently, Apache ESME has its own user administration and can't use the user administration from the container. We are looking at various means to overcome this gap but we haven't had time to implement them yet. This means that initially there would be a double administration of users. Adding, deleting users and changing user properties would have to occur twice - once in Apache ESME and once in OfBiz.  One way to get around this would be to expand our API to deal with such administrative tasks.

Since our APis are based on tokens, you would need to store a token in the user object in OFBiz that could later be used when making calls to Apache ESME.

Column
width30%

Contents

Table of Contents

Iterations

  1. Use Apache ESME as a separate component
  2. Make Apache ESME an OFBiz component
Column
width30%

Iterations

  1. Use ESME as a seprate component
  2. Make ESME an OFBiz component

Questions

  1. What sort of back-end system are we talking about? Are you already using a system that we can re-use for initial tests?
  2. We also have to agree on what sort of message contents (formats, etc.) will be used Are there special words (invoice, etc.) that are necessary. This is, of course, linked to what sort of back-end you guys are using.
  3. What sort of rules are present in the DP? The obvious one would be to create an ESME message.
  4. Regarding 10, we do respond with a XML response to those submitting messages via REST API
  5. Do you want to use the old REST API or the new "Streaming API" (Ethan's baby :->)?
  6. We just probably use a POST action as Ethan suggests as a first step
  7. You are right about the messaging threads needing standardization (especially 2 and 9). Maybe you can look at my table in the wiki page and tell me about what the parameters mean and whether they are optional or not. We will have to map them to our fields.
  8. We also have to think about user-ids. Do they need to be synchronized? Probably....