Title: ESME as Chat in OfBiz
{section}
{column:width=70%}
#### General Use case
1. A new user visits the ecommerce site
1. This new user enters a microblog message with a question to the
administrator of the site.
1. One of the system administrators answers the microblog question as quick
as possible
1. 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
The basic idea is that an OFBiz UI will be created to capsule the Apache
ESME functionality
#### Apache ESME as separate component
{gliffy:name=ESME - OFBiz collaboration - Separate|space=ESME|page=ESME as
Chat+ in OfBiz|pageid=9373498|align=left|size=M}
#### Apache ESME as OFBiz component
##### Advantges
* let it use the OFBiz 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
1. Create two users in Apache ESME: newuser and administrator.
1. 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
1. The administrator could use the same OfBiz UI component but you have to
set the token to the administrator user.
1. If you don't want to deploy Apache ESME locally, then you could use [our test server in the cloud](http://esmecloudserverapache.dickhirsch.staxapps.net/)
## 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}
{column:width=30%}
*Contents*
*Iterations*
1. Use Apache ESME as a separate component
1. Make Apache ESME an OFBiz component
{column}
{section}