You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@esme.apache.org by es...@apache.org on 2011/06/27 15:54:25 UTC

svn commit: r1140161 [2/6] - in /esme/site/trunk: ./ content/

Added: esme/site/trunk/content/api.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/api.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/api.cwiki (added)
+++ esme/site/trunk/content/api.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,21 @@
+h3. APIs
+
+|| Name || Description \\ || Default URL prefix \\ || Status \\ ||
+| [Original|Original API]\\ | *Deprecated* \- This is our original "REST-like" API \\ | /api \\ | Available \\ |
+| [Streaming|ESME:API 2.0 - Design]\\ | *Current* \- This is our newest API that deals allows for streaming-based access \\ | /api2 \\ | Available \\ |
+| [Twitter|Twitter API]\\ | *Twitter* \- We also support the Twitter API which allows for clients that support laconica to also use Apache ESME \\ | /twitter \\ | Available |
+| [JMX|ESME:JMX REST API]\\ | This is an API that will users to access JMX-based \\ | /jmx \\ | Currently being designed \\ |
+*Note*: _It is possible to change the used URL prefixes for the individual APIs via properties._
+
+h4. Using an API
+
+*Clients should be developed using /api2.*
+
+
+If you wish to use a API, then you must take the server name and add the URL prefix.
+
+For example, _[http://esmecloudserverapache.dickhirsch.staxapps.net/twitter|http://esmecloudserverapache.dickhirsch.staxapps.net/twitter_]_
+
+h5. Token
+
+All these APIs require that you use a token.
\ No newline at end of file

Added: esme/site/trunk/content/api.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/api.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/api.mdtext (added)
+++ esme/site/trunk/content/api.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,33 @@
+Title: API
+<a name="API-APIs"></a>
+### APIs
+
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+*Note*: _It is possible to change the used URL prefixes for the individual
+APIs via properties._
+
+<a name="API-UsinganAPI"></a>
+#### Using an API
+
+*Clients should be developed using /api2.*
+
+
+If you wish to use a API, then you must take the server name and add the
+URL prefix.
+
+For example, _[http://esmecloudserverapache.dickhirsch.staxapps.net/twitter](http://esmecloudserverapache.dickhirsch.staxapps.net/twitter_)
+_
+
+<a name="API-Token"></a>
+##### Token
+
+All these APIs require that you use a token.

Added: esme/site/trunk/content/architecture-patterns.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/architecture-patterns.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/architecture-patterns.cwiki (added)
+++ esme/site/trunk/content/architecture-patterns.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,31 @@
+Possible variants on the uses of Apache ESME in the Internet (cloud-based), in an extranet and in an intranet. We have also looked at different configurations for Apache ESME’s database as well as its user management functionality (”Corporate LDAP”).
+
+
+!Slide01.jpg|border=1!
+
+
+!Slide02.jpg|border=1!
+
+
+!Slide03.jpg|border=1!
+
+
+!Slide04.jpg|border=1!
+
+
+!Slide05.jpg|border=1!
+
+
+!Slide06.jpg|border=1!
+
+
+!Slide07.jpg|border=1!
+
+
+!Slide08.jpg|border=1!
+
+
+!Slide09.jpg|border=1!
+
+
+!Slide10.jpg|border=1!

Added: esme/site/trunk/content/architecture-patterns.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/architecture-patterns.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/architecture-patterns.mdtext (added)
+++ esme/site/trunk/content/architecture-patterns.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,35 @@
+Title: Architecture Patterns
+Possible variants on the uses of Apache ESME in the Internet (cloud-based),
+in an extranet and in an intranet. We have also looked at different
+configurations for Apache ESME’s database as well as its user management
+functionality (”Corporate LDAP”).
+
+
+!Slide01.jpg|border=1!
+
+
+!Slide02.jpg|border=1!
+
+
+!Slide03.jpg|border=1!
+
+
+!Slide04.jpg|border=1!
+
+
+!Slide05.jpg|border=1!
+
+
+!Slide06.jpg|border=1!
+
+
+!Slide07.jpg|border=1!
+
+
+!Slide08.jpg|border=1!
+
+
+!Slide09.jpg|border=1!
+
+
+!Slide10.jpg|border=1!

Added: esme/site/trunk/content/branding.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/branding.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/branding.cwiki (added)
+++ esme/site/trunk/content/branding.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,31 @@
+h4. New Logo
+
+h5. Alternative 1:
+
+
+!4-600.jpg|border=1!
+
+
+h5. Alternative 2:
+
+
+!LOGO ESME #2 variations 1.jpg|border=1!
+
+h5. Alternative 3:
+
+!LOGO ESME blue.jpg|border=1!
+
+
+h4. ESME Inside logo:
+
+
+!ESME LOGO inside-variations.jpg|border=1!
+
+
+h4. Powered by ESME logo:
+
+
+!powered.jpg|border=1!
+
+
+!4powered.gif|border=1!

Added: esme/site/trunk/content/branding.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/branding.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/branding.mdtext (added)
+++ esme/site/trunk/content/branding.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,38 @@
+Title: Branding
+<a name="Branding-NewLogo"></a>
+#### New Logo
+
+<a name="Branding-Alternative1:"></a>
+##### Alternative 1:
+
+
+!4-600.jpg|border=1!
+
+
+<a name="Branding-Alternative2:"></a>
+##### Alternative 2:
+
+
+!LOGO ESME #2 variations 1.jpg|border=1!
+
+<a name="Branding-Alternative3:"></a>
+##### Alternative 3:
+
+!LOGO ESME blue.jpg|border=1!
+
+
+<a name="Branding-ESMEInsidelogo:"></a>
+#### ESME Inside logo:
+
+
+!ESME LOGO inside-variations.jpg|border=1!
+
+
+<a name="Branding-PoweredbyESMElogo:"></a>
+#### Powered by ESME logo:
+
+
+!powered.jpg|border=1!
+
+
+!4powered.gif|border=1!

Added: esme/site/trunk/content/build-apache-esme-from-subversion.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/build-apache-esme-from-subversion.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/build-apache-esme-from-subversion.cwiki (added)
+++ esme/site/trunk/content/build-apache-esme-from-subversion.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,34 @@
+h3. Mac OS X 10.5/6
+
+h4. Prerequisites
+
+* MacPorts (recommended) - install instructions at [http://www.macports.org/install.php]
+* Maven - with MacPorts run command "sudo port install maven"
+* Subversion - comes with Mac OS X 10.5/6
+
+h4. Checkout latest Apache ESME, build, and run
+
+Run the following commands, starting in the directory where you want to download Apache ESME:
+
+# svn checkout [http://svn.apache.org/repos/asf/esme/] esme
+# cd esme/server/
+# mvn jetty:run
+
+The third step can take a while the first time it is run as it needs to download all of Apache ESME's dependencies (and there are quite a few of those).
+
+After this you should be able to open your web browser and navigate to [http://localhost:80/esme_server_SNAPSHOT_3.0] and see ESME running\!
+
+h4. Optionally running under a separate Tomcat installation
+
+# Install Tomcat
+#* Download latest Tomcat 6 Core .zip file from [http://tomcat.apache.org/download-60.cgi]
+# In esme/server directory run "mvn package"
+# Copy .war file in esme/server/target directory into the webapps/ directory of your Tomcat installation
+# Start Tomcat (bin/startup.sh in the main Tomcat directory)
+# Navigate your browser to [http://localhost:80/esme_server_SNAPSHOT_3.0]
+
+
+h3. Windows
+
+
+h3. Linux
\ No newline at end of file

Added: esme/site/trunk/content/build-apache-esme-from-subversion.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/build-apache-esme-from-subversion.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/build-apache-esme-from-subversion.mdtext (added)
+++ esme/site/trunk/content/build-apache-esme-from-subversion.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,47 @@
+Title: Build Apache ESME from Subversion
+<a name="BuildApacheESMEfromSubversion-MacOSX10.5/6"></a>
+### Mac OS X 10.5/6
+
+<a name="BuildApacheESMEfromSubversion-Prerequisites"></a>
+#### Prerequisites
+
+* MacPorts (recommended) - install instructions at [http://www.macports.org/install.php](http://www.macports.org/install.php)
+* Maven - with MacPorts run command "sudo port install maven"
+* Subversion - comes with Mac OS X 10.5/6
+
+<a name="BuildApacheESMEfromSubversion-CheckoutlatestApacheESME,build,andrun"></a>
+#### Checkout latest Apache ESME, build, and run
+
+Run the following commands, starting in the directory where you want to
+download Apache ESME:
+
+1. svn checkout [http://svn.apache.org/repos/asf/esme/](http://svn.apache.org/repos/asf/esme/)
+ esme
+1. cd esme/server/
+1. mvn jetty:run
+
+The third step can take a while the first time it is run as it needs to
+download all of Apache ESME's dependencies (and there are quite a few of
+those).
+
+After this you should be able to open your web browser and navigate to [http://localhost:80/esme_server_SNAPSHOT_3.0](http://localhost:80/esme_server_SNAPSHOT_3.0)
+ and see ESME running\!
+
+<a name="BuildApacheESMEfromSubversion-OptionallyrunningunderaseparateTomcatinstallation"></a>
+#### Optionally running under a separate Tomcat installation
+
+1. Install Tomcat
+1. * Download latest Tomcat 6 Core .zip file from [http://tomcat.apache.org/download-60.cgi](http://tomcat.apache.org/download-60.cgi)
+1. In esme/server directory run "mvn package"
+1. Copy .war file in esme/server/target directory into the webapps/
+directory of your Tomcat installation
+1. Start Tomcat (bin/startup.sh in the main Tomcat directory)
+1. Navigate your browser to [http://localhost:80/esme_server_SNAPSHOT_3.0](http://localhost:80/esme_server_SNAPSHOT_3.0)
+
+
+<a name="BuildApacheESMEfromSubversion-Windows"></a>
+### Windows
+
+
+<a name="BuildApacheESMEfromSubversion-Linux"></a>
+### Linux

Added: esme/site/trunk/content/ce-installation-guide.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/ce-installation-guide.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/ce-installation-guide.cwiki (added)
+++ esme/site/trunk/content/ce-installation-guide.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,61 @@
+*Note: this is currently a work in progress.*
+
+This guide describes how to build ESME and deploy it to the SAP NetWeaver Composition Environment (aka "CE"), which is SAP's Java EE 5-compliant application server and integration platform.
+
+h3. 1. Build ESME from the latest code drop
+
+
+h3. 2. Convert the esme.war into a deployable element
+
+On your CE installation, there are [scripts|http://help.sap.com/saphelp_nwce71/helpdata/en/46/1bd4293d034f08e10000000a114a6b/content.htm] to do such actions
+
+
+D:\usr\sap\CE1\J00\j2ee\deployment\scripts>make_SDA esme.war \-pr esme.propertiesContents of esme.properties file
+
+{noformat}
+softwaretype=single-module
+subtype=war
+context-root=/esme
+vendor=esme.apache.org
+location=Deployment Manager
+counter=1
+{noformat}
+
+h3. 3. Deploy
+
+
+h4. 3.1. via the Netweaver Developer Studio
+
+Deploy the war file created in step 2 via the Deplyoment Perspective in NWDS.
+
+
+h4. 3.2 via telnet
+
+you can also deploy using telnet ([http://help.sap.com/saphelp_nwpi711/helpdata/en/45/0ad8e787652d6ae10000000a11466f/content.htm|http://help.sap.com/saphelp_nwpi711/helpdata/en/45/0ad8e787652d6ae10000000a11466f/content.htm]):
+
+h4. 3.3 via script
+
+D:\usr\sap\CE1\J00\j2ee\deployment\scripts> deploy administrator:abcd1234@localhost:50004 esme.war
+
+h3. Tips
+
+
+h5. Using container-based autnetication
+
+You must also change the web.xml file
+
+{noformat}
+<resource-ref>
+<res-ref-name>esme</res-ref-name>
+<res-type>javax.sql.DataSource</res-type>
+<res-auth>Container</res-auth>
+</resource-ref>
+{noformat}
+You also have to of course create a data source and the necessary JDBC drivers to the CE environment. Here are two blogs with details on how to do this:
+* [Creating JDBC Data sources using NWA for different Databases in CE|http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12141]
+* [Connecting an Application to an External Database in SAP NW CE 7.1|http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/8675]
+
+If you are using derby as your DB to perform tests, the following info is useful:
+* DB driver class: _org.apache.derby.jdbc.EmbeddedDriver_
+* URL: _jdbc:derby:esme_db;create=true_
+* JAR_: derby-10.5.1.1.jar\_
\ No newline at end of file

Added: esme/site/trunk/content/ce-installation-guide.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/ce-installation-guide.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/ce-installation-guide.mdtext (added)
+++ esme/site/trunk/content/ce-installation-guide.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,80 @@
+Title: CE Installation Guide
+*Note: this is currently a work in progress.*
+
+This guide describes how to build ESME and deploy it to the SAP NetWeaver
+Composition Environment (aka "CE"), which is SAP's Java EE 5-compliant
+application server and integration platform.
+
+<a name="CEInstallationGuide-1.BuildESMEfromthelatestcodedrop"></a>
+### 1. Build ESME from the latest code drop
+
+
+<a name="CEInstallationGuide-2.Converttheesme.warintoadeployableelement"></a>
+### 2. Convert the esme.war into a deployable element
+
+On your CE installation, there are [scripts](http://help.sap.com/saphelp_nwce71/helpdata/en/46/1bd4293d034f08e10000000a114a6b/content.htm)
+ to do such actions
+
+
+D:\usr\sap\CE1\J00\j2ee\deployment\scripts>make_SDA esme.war \-pr
+esme.propertiesContents of esme.properties file
+
+
+    softwaretype=single-module
+    subtype=war
+    context-root=/esme
+    vendor=esme.apache.org
+    location=Deployment Manager
+    counter=1
+
+
+<a name="CEInstallationGuide-3.Deploy"></a>
+### 3. Deploy
+
+
+<a name="CEInstallationGuide-3.1.viatheNetweaverDeveloperStudio"></a>
+#### 3.1. via the Netweaver Developer Studio
+
+Deploy the war file created in step 2 via the Deplyoment Perspective in
+NWDS.
+
+
+<a name="CEInstallationGuide-3.2viatelnet"></a>
+#### 3.2 via telnet
+
+you can also deploy using telnet ([http://help.sap.com/saphelp_nwpi711/helpdata/en/45/0ad8e787652d6ae10000000a11466f/content.htm](http://help.sap.com/saphelp_nwpi711/helpdata/en/45/0ad8e787652d6ae10000000a11466f/content.htm)
+):
+
+<a name="CEInstallationGuide-3.3viascript"></a>
+#### 3.3 via script
+
+D:\usr\sap\CE1\J00\j2ee\deployment\scripts> deploy
+administrator:abcd1234@localhost:50004 esme.war
+
+<a name="CEInstallationGuide-Tips"></a>
+### Tips
+
+
+<a name="CEInstallationGuide-Usingcontainer-basedautnetication"></a>
+##### Using container-based autnetication
+
+You must also change the web.xml file
+
+
+    <resource-ref>
+    <res-ref-name>esme</res-ref-name>
+    <res-type>javax.sql.DataSource</res-type>
+    <res-auth>Container</res-auth>
+    </resource-ref>
+
+You also have to of course create a data source and the necessary JDBC
+drivers to the CE environment. Here are two blogs with details on how to do
+this:
+* [Creating JDBC Data sources using NWA for different Databases in CE](http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12141)
+* [Connecting an Application to an External Database in SAP NW CE 7.1](http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/8675)
+
+If you are using derby as your DB to perform tests, the following info is
+useful:
+* DB driver class: _org.apache.derby.jdbc.EmbeddedDriver_
+* URL: _jdbc:derby:esme_db;create=true_
+* JAR_: derby-10.5.1.1.jar\_

Added: esme/site/trunk/content/collaboration-with-akibot.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/collaboration-with-akibot.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/collaboration-with-akibot.cwiki (added)
+++ esme/site/trunk/content/collaboration-with-akibot.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,56 @@
+{section:border=true}
+{column:width=70%}
+h4. Background
+
+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.
+
+A good description is provided by this ReadWriteWeb [blog|http://www.readwriteweb.com/archives/akibot_an_enterprise_twitter_clone_infused_with_ai.php].
+
+
+h4. Technical Description of the architecture
+
+
+Akibot works with 2 modules: the front end (the microblog) and the robot (the "brain"). Both modules are completely independent and&nbsp;separate, and they communicate via HTTP POST and XML. When you write a message and post it in the microblog module, it does an HTTP POST call to the robot with the message. The robot gets the message and sends back an XML acknowledging the receipt.&nbsp;
+
+In the background the robot queues the message for processing. Processing means the message goes through the robot's Contextual Analyzer. The Contextual Analyzer determines the entity (inventory item, vendor, client. contact, marketing campaign, etc. etc.) and the situation (how that entity is being affected in the message/conversation), and, if applicable, makes an HTTP call to inquiry information from the corresponding software (e.g. ERP \-SAP; Navision; etc-, Groupware \-Exchange, Salesforce, etc. etc).
+
+Once the robot has all this information, it decides if an action is required (usually the action is a response back to the microblog module - but can also be updates, alerts, pushing data to other applications, etc) and proceeds to do so by pushing a message back to the microblog module via HTTP POST (the actions are defined by directives, Akibot comes equipped with some standard directives but you can teach him more that are more specific to your industry). &nbsp;&nbsp;
+
+h2. Suggested architecture
+
+{gliffy:name=Collaboration with Akibot\|space=ESME\|page=Collaboration with Akibot\|pageid=5965899\|align=left\|size=M}
+
+
+h4. General Use Case
+
+Basically this is how it is working now. The only change would be that Apache ESME would be posting messages to Akibot (robot module, just like the microblog module is doing now) and Akibot would reply back to Apache ESME if needed, and would interface with enterprise software (ERP, Groupware applications).
+
+h4. Integration possibilitites: Overview
+
+
+There are three basic scenarios
+# &nbsp;via an Apache ESME action that posts messages to the Akibot API.
+# A bot that follows the Apache ESME message stream and either 1) makes a remote call to the RESTAPIlocated on another server or, if the bot was located on the GAE then accesses your API without making a remote call.
+# Another idea would be to directly embed akibot functionality in Apache ESME as some sort of a plug-in.
+
+
+
+{column}
+
+h5.
+
+{column:width=30%}
+
+h3. Use Cases
+
+h5. Use Messages for Back-end Requests
+
+* The idea here would be to use Apache ESME to ask the back-end for certain pieces of information.
+* [Detailed description of use case|ESME:Akibot Use Case description]
+
+h5.
+
+h3.
+
+{column}
+{section}
\ No newline at end of file

Added: esme/site/trunk/content/collaboration-with-akibot.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/collaboration-with-akibot.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/collaboration-with-akibot.mdtext (added)
+++ esme/site/trunk/content/collaboration-with-akibot.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,97 @@
+Title: Collaboration with Akibot
+{section:border=true}
+{column:width=70%}
+<a name="CollaborationwithAkibot-Background"></a>
+#### Background
+
+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.
+
+A good description is provided by this ReadWriteWeb [blog](http://www.readwriteweb.com/archives/akibot_an_enterprise_twitter_clone_infused_with_ai.php)
+.
+
+
+<a name="CollaborationwithAkibot-TechnicalDescriptionofthearchitecture"></a>
+#### Technical Description of the architecture
+
+
+Akibot works with 2 modules: the front end (the microblog) and the robot
+(the "brain"). Both modules are completely independent and&nbsp;separate,
+and they communicate via HTTP POST and XML. When you write a message and
+post it in the microblog module, it does an HTTP POST call to the robot
+with the message. The robot gets the message and sends back an XML
+acknowledging the receipt.&nbsp;
+
+In the background the robot queues the message for processing. Processing
+means the message goes through the robot's Contextual Analyzer. The
+Contextual Analyzer determines the entity (inventory item, vendor, client.
+contact, marketing campaign, etc. etc.) and the situation (how that entity
+is being affected in the message/conversation), and, if applicable, makes
+an HTTP call to inquiry information from the corresponding software (e.g.
+ERP \-SAP; Navision; etc-, Groupware \-Exchange, Salesforce, etc. etc).
+
+Once the robot has all this information, it decides if an action is
+required (usually the action is a response back to the microblog module -
+but can also be updates, alerts, pushing data to other applications, etc)
+and proceeds to do so by pushing a message back to the microblog module via
+HTTP POST (the actions are defined by directives, Akibot comes equipped
+with some standard directives but you can teach him more that are more
+specific to your industry). &nbsp;&nbsp;
+
+<a name="CollaborationwithAkibot-Suggestedarchitecture"></a>
+## Suggested architecture
+
+{gliffy:name=Collaboration with Akibot\|space=ESME\|page=Collaboration with
+Akibot\|pageid=5965899\|align=left\|size=M}
+
+
+<a name="CollaborationwithAkibot-GeneralUseCase"></a>
+#### General Use Case
+
+Basically this is how it is working now. The only change would be that
+Apache ESME would be posting messages to Akibot (robot module, just like
+the microblog module is doing now) and Akibot would reply back to Apache
+ESME if needed, and would interface with enterprise software (ERP,
+Groupware applications).
+
+<a name="CollaborationwithAkibot-Integrationpossibilitites:Overview"></a>
+#### Integration possibilitites: Overview
+
+
+There are three basic scenarios
+1. &nbsp;via an Apache ESME action that posts messages to the Akibot API.
+1. A bot that follows the Apache ESME message stream and either 1) makes a
+remote call to the RESTAPIlocated on another server or, if the bot was
+located on the GAE then accesses your API without making a remote call.
+1. Another idea would be to directly embed akibot functionality in Apache
+ESME as some sort of a plug-in.
+
+
+
+{column}
+
+<a name="CollaborationwithAkibot-"></a>
+##### 
+
+{column:width=30%}
+
+<a name="CollaborationwithAkibot-UseCases"></a>
+### Use Cases
+
+<a name="CollaborationwithAkibot-UseMessagesforBack-endRequests"></a>
+##### Use Messages for Back-end Requests
+
+* The idea here would be to use Apache ESME to ask the back-end for certain
+pieces of information.
+* [Detailed description of use case](esme:akibot-use-case-description.html)
+
+<a name="CollaborationwithAkibot-"></a>
+##### 
+
+<a name="CollaborationwithAkibot-"></a>
+### 
+
+{column}
+{section}

Added: esme/site/trunk/content/collaboration-with-ofbiz.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/collaboration-with-ofbiz.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/collaboration-with-ofbiz.cwiki (added)
+++ esme/site/trunk/content/collaboration-with-ofbiz.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,67 @@
+{section:border=true}
+{column:width=70%}
+
+h2. Background
+
+The [Apache Open For Business Project|http://ofbiz.apache.org/] 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.
+
+h2. Suggested architecture
+
+h4. Integration possibilitites: Initial thoughts
+
+There are two basic scenarios&nbsp;
+
+# &nbsp;via an ESME action that posts messages to a OfBiz API. The easiest way may be to have ESME just send an email to the OFBiz environment.
+# A bot that follows the ESME message stream and either 1) makes a remote call to the OfBiz API
+
+The fundamental idea is to use [OFBiz Event Condition Action (ECAs)|http://ofbiz.apache.org/docs/services.html#ECAs] as the basis for the integration.
+
+h5. About ECAs:
+
+ECAs are pretty straight forward: when an Event occurs, if the Condition(s) are met then Action(s) are performed. &nbsp;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.
+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.
+
+h5. 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. &nbsp;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.
+
+
+h5. Receiving messages
+
+For this we could either create a new type of ECA specifically for ESME messages or perhaps even generalize MECAs to support any type of message so that it stands for Message rather then Mail. &nbsp;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. &nbsp;If OFBiz has a RESTAPI for ECAs, then you can create an [ESME action|http://cwiki.apache.org/confluence/display/ESME/Actions] to send messages to OFBiz when certain ESME events occur.&nbsp; Or if there some sort of ECA for dealing with email events, then we can also use an action that sends email. If you want a deeper integration, you could have a bot that uses one of our various [APIs|http://cwiki.apache.org/confluence/display/ESME/API] to read the message queue and then create OFBiz events.
+
+
+ECAs are only triggered by internal events, as I described above: an OFBiz service invocation, database operation or email receipt. &nbsp;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). &nbsp;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.
+
+
+
+
+
+
+
+{column}
+
+h5.
+
+{column:width=30%}
+
+h3. Use Cases
+
+h5. Send users status information from OfBiz
+
+* The idea here would be to use Apache ESME to send users status messages based on events in OfBiz (ala SalesForce "Chatter")
+* [Initial description for simple use case.|ESME:Simple Use Case - OFBiz sends message to ESME]
+
+h5. Use Apache ESME to provide Chat\+ functionality
+
+
+* The idea here would be to use Apache ESME to provide chat functionality to OfBiz
+* [Initial description of the use case|ESME as Chat in OfBiz]
+
+{column}
+{section}
\ No newline at end of file

Added: esme/site/trunk/content/collaboration-with-ofbiz.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/collaboration-with-ofbiz.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/collaboration-with-ofbiz.mdtext (added)
+++ esme/site/trunk/content/collaboration-with-ofbiz.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,117 @@
+Title: Collaboration with OFbiz
+{section:border=true}
+{column:width=70%}
+
+<a name="CollaborationwithOFbiz-Background"></a>
+## Background
+
+The [Apache Open For Business Project](http://ofbiz.apache.org/)
+ 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.
+
+<a name="CollaborationwithOFbiz-Suggestedarchitecture"></a>
+## Suggested architecture
+
+<a name="CollaborationwithOFbiz-Integrationpossibilitites:Initialthoughts"></a>
+#### Integration possibilitites: Initial thoughts
+
+There are two basic scenarios&nbsp;
+
+1. &nbsp;via an ESME action that posts messages to a OfBiz API. The easiest
+way may be to have ESME just send an email to the OFBiz environment.
+1. A bot that follows the ESME message stream and either 1) makes a remote
+call to the OfBiz API
+
+The fundamental idea is to use [OFBiz Event Condition Action (ECAs)](http://ofbiz.apache.org/docs/services.html#ECAs)
+ as the basis for the integration.
+
+<a name="CollaborationwithOFbiz-AboutECAs:"></a>
+##### About ECAs:
+
+ECAs are pretty straight forward: when an Event occurs, if the Condition(s)
+are met then Action(s) are performed. &nbsp;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.
+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.
+
+<a name="CollaborationwithOFbiz-Sendingeventnotifications"></a>
+##### 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. &nbsp;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.
+
+
+<a name="CollaborationwithOFbiz-Receivingmessages"></a>
+##### Receiving messages
+
+For this we could either create a new type of ECA specifically for ESME
+messages or perhaps even generalize MECAs to support any type of message so
+that it stands for Message rather then Mail. &nbsp;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. &nbsp;If
+OFBiz has a RESTAPI for ECAs, then you can create an [ESME action](http://cwiki.apache.org/confluence/display/ESME/Actions)
+ to send messages to OFBiz when certain ESME events occur.&nbsp; Or if
+there some sort of ECA for dealing with email events, then we can also use
+an action that sends email. If you want a deeper integration, you could
+have a bot that uses one of our various [APIs|http://cwiki.apache.org/confluence/display/ESME/API]
+ to read the message queue and then create OFBiz events.
+
+
+ECAs are only triggered by internal events, as I described above: an OFBiz
+service invocation, database operation or email receipt. &nbsp;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). &nbsp;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.
+
+
+
+
+
+
+
+{column}
+
+<a name="CollaborationwithOFbiz-"></a>
+##### 
+
+{column:width=30%}
+
+<a name="CollaborationwithOFbiz-UseCases"></a>
+### Use Cases
+
+<a name="CollaborationwithOFbiz-SendusersstatusinformationfromOfBiz"></a>
+##### Send users status information from OfBiz
+
+* The idea here would be to use Apache ESME to send users status messages
+based on events in OfBiz (ala SalesForce "Chatter")
+* [Initial description for simple use case.](esme:simple-use-case---ofbiz-sends-message-to-esme.html)
+
+<a name="CollaborationwithOFbiz-UseApacheESMEtoprovideChat\+functionality"></a>
+##### Use Apache ESME to provide Chat\+ functionality
+
+
+* The idea here would be to use Apache ESME to provide chat functionality
+to OfBiz
+* [Initial description of the use case](esme-as-chat-in-ofbiz.html)
+
+{column}
+{section}

Added: esme/site/trunk/content/collaboration-with-ubimic.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/collaboration-with-ubimic.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/collaboration-with-ubimic.cwiki (added)
+++ esme/site/trunk/content/collaboration-with-ubimic.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,61 @@
+{section:border=true}
+{column:width=70%}
+
+h4. Background
+
+[http://ubimic.org]. 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.
+
+h3. SAP Bot
+{gliffy:name=ubimic - SAP Bot|space=ESME|page=Collaboration with ubimic|pageid=5964323|align=left|size=S}
+
+h4. General Use Case
+
+The idea is to show how microblogging can act as a integration platform for man-machine interaction.
+# The user creates mesages on Apache ESME with a certain tag and having a certain format
+# The Apache ESME bot listens to the Apache ESME message stream for messages with a certain tag.
+# After receiving messages from Apache ESME with the desired tag, the Apache ESME bot reformats the message and posts the message to an SAP back-end.
+# Based on the status of the back-end interaction, the Apache ESME bot posts an Apache ESME message with the status of the interaction.
+
+h4. Technical details
+
+* The Apache ESME Bot could be developed in any language but we have examples code for accessing the REST API for clients written in [Java|http://svn.apache.org/repos/asf/incubator/esme/trunk/esme-java-client/] and [ABAP|http://code.google.com/p/esmeproject/source/browse/#svn/trunk/esme-abap].
+* The access to the SAP system could be performed via various means (web-services, RFC call, etc.) depending on what sort of system (version, etc.) you guys have on the university.
+* There are two ways to get data from Apache ESME via a bot.
+** You can access the Apache ESME core directly via API - polling for messages
+** You can set an [action|http://cwiki.apache.org/confluence/display/ESME/Actions]that responds to certain tags and then calls your Apache ESME bot via an HTTP call. We've done something like this for forwarding messages to twitter.
+
+{column}
+{column:width=30%}
+
+h4. Use Cases
+
+h5. Use Messages for Back-end Requests
+
+* The idea here would be to use Apache ESME to ask the back-end for certain pieces of information.
+* Example: "@sapstockbot how many T60 laptops do we have in stock?". The answer could be "@boehr there are 3 items left where 2 are already booked. Till now, no orders for new items are in the system."
+* Example: "@sappurchaseorders I need 4 new T60 laptops for #projectx asap\!" and the bot creates the Purchase Order in the system on behalf of the project manager's user name (if he has the rights for this).
+* Business users may have difficulty in using such systems, so text analysis of the messages is very useful. Research work in this direction is promising (for example, "[TextAnalysis in Information Streams: Status Quo and Future Perspectives|http://www.tu-chemnitz.de/wirtschaft/wi2/wp/en/2009/08/10/text-analysis-in-information-streams-status-quo-and-future-perspectives/]"
+* One idea might be to use the code for the&nbsp; [SAP ES Google Wave Bot|http://wave-samples-gallery.appspot.com/about_app?app_id=31006]from [Daniel Graversen|http://wave-samples-gallery.appspot.com/profile?id=63059] that uses Enterprise Service (ES) data to post to a blip. The code is available. *{_}Note{_}{*}_: just looked at the code. It would very easy to re-use it have a ESME bot that queries an ES that returns a material_
+* [Details|ESME:Use Case - Posting from SAP back-end]
+
+h5. Microblogging SAP System
+
+* There is an Apache ESME pool that is restricted to certain individuals (for example, accounting staff, which reports about latest paid orders). Origin of this group should probably be container-based (for example, LDAP).
+* The SAP back-end is also a member of this group (for example, the user "sappaidorders") and posts messages to the group like "Order XYZ has been paid by customer KN30292938".
+* Let's say order XYZ is very valuable but there were problems with the customer. The accounting person would then say "RT @sappaidorders Order XYZ has been paid by customer KN30292938 // well, finally. Good work guys\!".
+* Based on ESME's pool concept, this message would only be visible to individuals in this pool.
+* The different permission schemes between the microblogging environment and the backend would also be a topic to be examined.
+* Example of research in this area: "[Microblogging and ERP systems: use cases and prototype|http://www.tu-chemnitz.de/wirtschaft/wi2/wp/en/2009/08/10/microblogging-and-erp-systems-use-cases-and-prototype/]"
+
+h5. Taskmanagement
+
+* See the suggestion for task-related mesages used by [Remember the Milk|http://www.rememberthemilk.com]for its [Twitter format|http://www.rememberthemilk.com/services/twitter/]
+* The SAP back-end system must be a xRPM
+
+h5. Device-related Use Case
+
+* RFID-enhanced devices send messages to microblogging system
+* Use case should also describe why inclusion of microblogging system brings advantages over direct data insertion into back-end system.
+
+{column}
+{section}
\ No newline at end of file

Added: esme/site/trunk/content/collaboration-with-ubimic.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/collaboration-with-ubimic.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/collaboration-with-ubimic.mdtext (added)
+++ esme/site/trunk/content/collaboration-with-ubimic.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,115 @@
+Title: Collaboration with ubimic
+{section:border=true}
+{column:width=70%}
+
+<a name="Collaborationwithubimic-Background"></a>
+#### Background
+
+[http://ubimic.org](http://ubimic.org)
+. 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.
+
+<a name="Collaborationwithubimic-SAPBot"></a>
+### SAP Bot
+{gliffy:name=ubimic - SAP Bot|space=ESME|page=Collaboration with
+ubimic|pageid=5964323|align=left|size=S}
+
+<a name="Collaborationwithubimic-GeneralUseCase"></a>
+#### General Use Case
+
+The idea is to show how microblogging can act as a integration platform for
+man-machine interaction.
+1. The user creates mesages on Apache ESME with a certain tag and having a
+certain format
+1. The Apache ESME bot listens to the Apache ESME message stream for
+messages with a certain tag.
+1. After receiving messages from Apache ESME with the desired tag, the
+Apache ESME bot reformats the message and posts the message to an SAP
+back-end.
+1. Based on the status of the back-end interaction, the Apache ESME bot
+posts an Apache ESME message with the status of the interaction.
+
+<a name="Collaborationwithubimic-Technicaldetails"></a>
+#### Technical details
+
+* The Apache ESME Bot could be developed in any language but we have
+examples code for accessing the REST API for clients written in [Java](http://svn.apache.org/repos/asf/incubator/esme/trunk/esme-java-client/)
+ and [ABAP|http://code.google.com/p/esmeproject/source/browse/#svn/trunk/esme-abap]
+.
+* The access to the SAP system could be performed via various means
+(web-services, RFC call, etc.) depending on what sort of system (version,
+etc.) you guys have on the university.
+* There are two ways to get data from Apache ESME via a bot.
+** You can access the Apache ESME core directly via API - polling for
+messages
+** You can set an [action](http://cwiki.apache.org/confluence/display/ESME/Actions)
+that responds to certain tags and then calls your Apache ESME bot via an
+HTTP call. We've done something like this for forwarding messages to
+twitter.
+
+{column}
+{column:width=30%}
+
+<a name="Collaborationwithubimic-UseCases"></a>
+#### Use Cases
+
+<a name="Collaborationwithubimic-UseMessagesforBack-endRequests"></a>
+##### Use Messages for Back-end Requests
+
+* The idea here would be to use Apache ESME to ask the back-end for certain
+pieces of information.
+* Example: "@sapstockbot how many T60 laptops do we have in stock?". The
+answer could be "@boehr there are 3 items left where 2 are already booked.
+Till now, no orders for new items are in the system."
+* Example: "@sappurchaseorders I need 4 new T60 laptops for #projectx
+asap\!" and the bot creates the Purchase Order in the system on behalf of
+the project manager's user name (if he has the rights for this).
+* Business users may have difficulty in using such systems, so text analysis of the messages is very useful. Research work in this direction is promising (for example, "[TextAnalysis in Information Streams: Status Quo and Future Perspectives](http://www.tu-chemnitz.de/wirtschaft/wi2/wp/en/2009/08/10/text-analysis-in-information-streams-status-quo-and-future-perspectives/)
+"
+* One idea might be to use the code for the&nbsp; [SAP ES Google Wave Bot](http://wave-samples-gallery.appspot.com/about_app?app_id=31006)
+from [Daniel Graversen|http://wave-samples-gallery.appspot.com/profile?id=63059]
+ that uses Enterprise Service (ES) data to post to a blip. The code is
+available. *{_}Note{_}{*}_: just looked at the code. It would very easy to
+re-use it have a ESME bot that queries an ES that returns a material_
+* [Details](esme:use-case---posting-from-sap-back-end.html)
+
+<a name="Collaborationwithubimic-MicrobloggingSAPSystem"></a>
+##### Microblogging SAP System
+
+* There is an Apache ESME pool that is restricted to certain individuals
+(for example, accounting staff, which reports about latest paid orders).
+Origin of this group should probably be container-based (for example,
+LDAP).
+* The SAP back-end is also a member of this group (for example, the user
+"sappaidorders") and posts messages to the group like "Order XYZ has been
+paid by customer KN30292938".
+* Let's say order XYZ is very valuable but there were problems with the
+customer. The accounting person would then say "RT @sappaidorders Order XYZ
+has been paid by customer KN30292938 // well, finally. Good work guys\!".
+* Based on ESME's pool concept, this message would only be visible to
+individuals in this pool.
+* The different permission schemes between the microblogging environment
+and the backend would also be a topic to be examined.
+* Example of research in this area: "[Microblogging and ERP systems: use cases and prototype](http://www.tu-chemnitz.de/wirtschaft/wi2/wp/en/2009/08/10/microblogging-and-erp-systems-use-cases-and-prototype/)
+"
+
+<a name="Collaborationwithubimic-Taskmanagement"></a>
+##### Taskmanagement
+
+* See the suggestion for task-related mesages used by [Remember the Milk](http://www.rememberthemilk.com)
+for its [Twitter format|http://www.rememberthemilk.com/services/twitter/]
+* The SAP back-end system must be a xRPM
+
+<a name="Collaborationwithubimic-Device-relatedUseCase"></a>
+##### Device-related Use Case
+
+* RFID-enhanced devices send messages to microblogging system
+* Use case should also describe why inclusion of microblogging system
+brings advantages over direct data insertion into back-end system.
+
+{column}
+{section}

Added: esme/site/trunk/content/collaborations-with-other-organizations.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/collaborations-with-other-organizations.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/collaborations-with-other-organizations.cwiki (added)
+++ esme/site/trunk/content/collaborations-with-other-organizations.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,9 @@
+Our intention is to collaborate with as many different organizations as possible in order to provide the best value for those using this technology.
+
+
+
+|| Organization || Description \\ || Status \\ ||
+| akibot | [Akibot|http://akibot.blogspot.com/] 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. | [Overview and detailed use case available|ESME:Collaboration with Akibot]\\ |
+| OFBiz \\ | [The Apache Open For Business Project|http://ofbiz.apache.org/] 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. | [Initial brainstorming|http://cwiki.apache.org/confluence/display/ESME/Collaboration+with+OFbiz]\\ |
+| Thingamy | [http://thingamy.com/|http://thingamy.com/] Thingamy the Work processor adds a framework to the whole process of delivering a value, it be a service or a product. It starts out with a template closely suitable to your business workflow - project, legal advice, advertising, whatever - and lets you tweak the process. | [Overview and use cases|http://cwiki.apache.org/confluence/display/ESME/Collaboration+with+Thingamy]\\ |
+| \#ubimic | [http://ubimic.org|http://ubimic.org/]. is a group of university researchers interested in microblogging from different points of view (computer science, information systems, organizational science) | [Use case description currently in progress|ESME:Collaboration with ubimic]\\ |

Added: esme/site/trunk/content/collaborations-with-other-organizations.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/collaborations-with-other-organizations.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/collaborations-with-other-organizations.mdtext (added)
+++ esme/site/trunk/content/collaborations-with-other-organizations.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,17 @@
+Title: Collaborations with other Organizations
+Our intention is to collaborate with as many different organizations as
+possible in order to provide the best value for those using this
+technology.
+
+
+
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  

Added: esme/site/trunk/content/database-scheme.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/database-scheme.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/database-scheme.cwiki (added)
+++ esme/site/trunk/content/database-scheme.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,4 @@
+Below you can see the database scheme for the current Apache ESME server. This might be especially relevant for those developing administration applications.
+
+
+!1195121.jpg|border=1!

Added: esme/site/trunk/content/database-scheme.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/database-scheme.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/database-scheme.mdtext (added)
+++ esme/site/trunk/content/database-scheme.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,7 @@
+Title: Database Scheme
+Below you can see the database scheme for the current Apache ESME server.
+This might be especially relevant for those developing administration
+applications.
+
+
+!1195121.jpg|border=1!

Added: esme/site/trunk/content/esme-as-chat-in-ofbiz.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-as-chat-in-ofbiz.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-as-chat-in-ofbiz.cwiki (added)
+++ esme/site/trunk/content/esme-as-chat-in-ofbiz.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,76 @@
+{section}
+{column:width=70%}
+
+h4. General Use case
+
+# &nbsp;A new user visits the ecommerce site
+# This new user enters a microblog message with a question to the administrator of the site.
+# One of the system administrators answers the microblog question as quick as possible
+# Further conversation follows.
+
+h4. Technical Prerequisites
+
+* You would need an Apache ESME instance (either on a separate server or in the same container).&nbsp;
+* 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.&nbsp; If you had multiple unauthenticated users using the same&nbsp; 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.
+
+
+h4. Technical Description
+
+The basic idea is that an OFBiz UI will be created to capsule the Apache ESME functionality
+
+
+
+h4. 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}
+
+
+h4. Apache ESME as OFBiz component
+
+
+
+
+h5. Advantges
+
+
+* let it use the OFBiz authentication
+* allows Apache ESME to use essential system functions like system messages and ease of installation
+
+
+h2. Prototype
+
+# Deploy Apache ESME in your existing tomcat
+# Create two users in Apache ESME: newuser and administrator.&nbsp;
+# 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
+# The administrator could use the same OfBiz UI component but you have to set the token to the administrator user.&nbsp;
+# 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/]
+
+
+h2. 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.&nbsp;
+
+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.&nbsp; 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*
+{toc}
+
+
+*Iterations*
+
+# Use Apache ESME as a separate component
+# Make Apache ESME an OFBiz component
+
+
+{column}
+{section}
\ No newline at end of file

Added: esme/site/trunk/content/esme-as-chat-in-ofbiz.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-as-chat-in-ofbiz.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-as-chat-in-ofbiz.mdtext (added)
+++ esme/site/trunk/content/esme-as-chat-in-ofbiz.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,113 @@
+Title: ESME as Chat in OfBiz
+{section}
+{column:width=70%}
+
+<a name="ESMEasChatinOfBiz-GeneralUsecase"></a>
+#### General Use case
+
+1. &nbsp;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.
+
+<a name="ESMEasChatinOfBiz-TechnicalPrerequisites"></a>
+#### Technical Prerequisites
+
+* You would need an Apache ESME instance (either on a separate server or in
+the same container).&nbsp;
+* 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.&nbsp; If you had multiple unauthenticated users using the
+same&nbsp; 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.
+
+
+<a name="ESMEasChatinOfBiz-TechnicalDescription"></a>
+#### Technical Description
+
+The basic idea is that an OFBiz UI will be created to capsule the Apache
+ESME functionality
+
+
+
+<a name="ESMEasChatinOfBiz-ApacheESMEasseparatecomponent"></a>
+#### 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}
+
+
+<a name="ESMEasChatinOfBiz-ApacheESMEasOFBizcomponent"></a>
+#### Apache ESME as OFBiz component
+
+
+
+
+<a name="ESMEasChatinOfBiz-Advantges"></a>
+##### Advantges
+
+
+* let it use the OFBiz authentication
+* allows Apache ESME to use essential system functions like system messages
+and ease of installation
+
+
+<a name="ESMEasChatinOfBiz-Prototype"></a>
+## Prototype
+
+1. Deploy Apache ESME in your existing tomcat
+1. Create two users in Apache ESME: newuser and administrator.&nbsp;
+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.&nbsp;
+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/)
+
+
+<a name="ESMEasChatinOfBiz-Thoughtsonauthentication"></a>
+## 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.&nbsp;
+
+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.&nbsp; 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}

Added: esme/site/trunk/content/esme-desktop-client-server-config.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-desktop-client-server-config.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-desktop-client-server-config.cwiki (added)
+++ esme/site/trunk/content/esme-desktop-client-server-config.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,22 @@
+h1. How to configure the ESME server ESME Desktop connects to ..
+
+By default ESME Desktop connects to the ESME instance running at http://www.esme.us, but if you are running your own instance of the server, you will need to change the server that ESME Desktop connects to .. here's how ..
+
+This setting is stored in your application storage directory in a file called preferences.xml ... the application storage directory path varies based on your operating system and your username
+
+h1. MacOS:
+
+/Users/username/Library/Preferences/ESMEDesktop.05D8320A56ED876B4DC203B7387C89522DDC092F.1/Local Store/preferences.xml The GUID in the path may vary.
+
+h1. Windows:
+
+C:\Documents and Settings\username\Application Data\ESMEDesktop.05D8320A56ED876B4DC203B7387C89522DDC092F.1\Local Store\preferences.xml
+
+If the file does not exist create preferences.xml and drop in the following xml and save .. <preferences> <preference name="ESME_APISERVER" value="http://api.esme.us/esme/api/"/>  <preference name="ESME_SERVER" value="http://www.esme.us/esme/"/> </preferences>
+If the file exists then edit the values to your server urls. The new setting will be picked up the next time you start ESME Desktop.
+
+An example preferences file. The value for _token_ is from the Manage Tokens link, after you log in via the web. <preferences>
+  <preference name="ESME_APISERVER" value="http://api.esme.us/esme/api/"/>
+  <preference name="ESME_SERVER" value="http://www.esme.us/esme/"/>
+  <preference name="token" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
+</preferences>
\ No newline at end of file

Added: esme/site/trunk/content/esme-desktop-client-server-config.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-desktop-client-server-config.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-desktop-client-server-config.mdtext (added)
+++ esme/site/trunk/content/esme-desktop-client-server-config.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,39 @@
+Title: ESME Desktop Client Server Config
+<a name="ESMEDesktopClientServerConfig-HowtoconfiguretheESMEserverESMEDesktopconnectsto.."></a>
+# How to configure the ESME server ESME Desktop connects to ..
+
+By default ESME Desktop connects to the ESME instance running at
+http://www.esme.us, but if you are running your own instance of the server,
+you will need to change the server that ESME Desktop connects to .. here's
+how ..
+
+This setting is stored in your application storage directory in a file
+called preferences.xml ... the application storage directory path varies
+based on your operating system and your username
+
+<a name="ESMEDesktopClientServerConfig-MacOS:"></a>
+# MacOS:
+
+/Users/username/Library/Preferences/ESMEDesktop.05D8320A56ED876B4DC203B7387C89522DDC092F.1/Local
+Store/preferences.xml The GUID in the path may vary.
+
+<a name="ESMEDesktopClientServerConfig-Windows:"></a>
+# Windows:
+
+C:\Documents and Settings\username\Application
+Data\ESMEDesktop.05D8320A56ED876B4DC203B7387C89522DDC092F.1\Local
+Store\preferences.xml
+
+If the file does not exist create preferences.xml and drop in the following
+xml and save .. <preferences> <preference name="ESME_APISERVER"
+value="http://api.esme.us/esme/api/"/>	<preference name="ESME_SERVER"
+value="http://www.esme.us/esme/"/> </preferences>
+If the file exists then edit the values to your server urls. The new
+setting will be picked up the next time you start ESME Desktop.
+
+An example preferences file. The value for _token_ is from the Manage
+Tokens link, after you log in via the web. <preferences>
+  <preference name="ESME_APISERVER" value="http://api.esme.us/esme/api/"/>
+  <preference name="ESME_SERVER" value="http://www.esme.us/esme/"/>
+  <preference name="token" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
+</preferences>

Added: esme/site/trunk/content/esme-installation-guides.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-installation-guides.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-installation-guides.cwiki (added)
+++ esme/site/trunk/content/esme-installation-guides.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,58 @@
+h4. Windows
+
+* [Windows Vista|http://cwiki.apache.org/confluence/display/ESME/Windows+Vista+Installation+Guide]\\
+
+* [Windows XP - Revision 885445|http://cwiki.apache.org/confluence/display/ESME/Windows+XP+Installation+Guide+%28revision+885445%29]
+
+h4.
+\\
+
+h4. Mac OS X
+
+* [10.6|http://cwiki.apache.org/confluence/display/ESME/Mac+OS+X+10.6+Installation+Guide]\\
+
+h4.
+\\
+
+h4. Linux
+
+
+* [Debian - Ubuntu|http://cwiki.apache.org/confluence/display/ESME/Linux+%28Debian+-+Ubuntu%29+Installation+Guide]
+
+h4.
+\\
+
+h4. Cloud
+
+* [Stax|ESME:Stax]
+
+h4.
+\\
+
+h4. SAP Netweaver Composition Environment (CE)
+
+
+* [7.1|ESME:CE Installation Guide] (_Note_: Still a work in progress)
+
+
+h4.
+\\
+
+h4. ESME Mailet Install Guide
+
+* [EMSE Mailet Install Guide|http://cwiki.apache.org/confluence/display/ESME/ESME+Mailet+Install+Guide]\\
+
+
+\\
+
+h4. Java Servlet Container Installation Guide
+
+* [Java Servlet Container Installation Guide]\\
+
+
+\\
+
+h4. Desktop Client Server Config
+
+* [ESME Desktop Client Server Config]\\
+\\
\ No newline at end of file

Added: esme/site/trunk/content/esme-installation-guides.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-installation-guides.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-installation-guides.mdtext (added)
+++ esme/site/trunk/content/esme-installation-guides.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,86 @@
+Title: ESME Installation Guides
+<a name="ESMEInstallationGuides-Windows"></a>
+#### Windows
+
+  
+  
+
+* [Windows XP - Revision 885445](http://cwiki.apache.org/confluence/display/ESME/Windows+XP+Installation+Guide+%28revision+885445%29)
+
+<a name="ESMEInstallationGuides-"></a>
+#### 
+  
+  
+
+<a name="ESMEInstallationGuides-MacOSX"></a>
+#### Mac OS X
+
+  
+  
+
+<a name="ESMEInstallationGuides-"></a>
+#### 
+  
+  
+
+<a name="ESMEInstallationGuides-Linux"></a>
+#### Linux
+
+
+* [Debian - Ubuntu](http://cwiki.apache.org/confluence/display/ESME/Linux+%28Debian+-+Ubuntu%29+Installation+Guide)
+
+<a name="ESMEInstallationGuides-"></a>
+#### 
+  
+  
+
+<a name="ESMEInstallationGuides-Cloud"></a>
+#### Cloud
+
+* [Stax](esme:stax.html)
+
+<a name="ESMEInstallationGuides-"></a>
+#### 
+  
+  
+
+<a name="ESMEInstallationGuides-SAPNetweaverCompositionEnvironment(CE)"></a>
+#### SAP Netweaver Composition Environment (CE)
+
+
+* [7.1](esme:ce-installation-guide.html)
+ (_Note_: Still a work in progress)
+
+
+<a name="ESMEInstallationGuides-"></a>
+#### 
+  
+  
+
+<a name="ESMEInstallationGuides-ESMEMailetInstallGuide"></a>
+#### ESME Mailet Install Guide
+
+  
+  
+
+
+  
+  
+
+<a name="ESMEInstallationGuides-JavaServletContainerInstallationGuide"></a>
+#### Java Servlet Container Installation Guide
+
+  
+  
+
+
+  
+  
+
+<a name="ESMEInstallationGuides-DesktopClientServerConfig"></a>
+#### Desktop Client Server Config
+
+  
+  
+  
+  

Added: esme/site/trunk/content/esme-mailet-install-guide.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-mailet-install-guide.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-mailet-install-guide.cwiki (added)
+++ esme/site/trunk/content/esme-mailet-install-guide.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,3 @@
+The ESME Mailet is a plugin for theOpen source [Mail Server Apache James|http://james.apache.org/server/], which allows users of an ESME infrastructure (both humans and technical systems) to send email messages to an ESME instance using their own identity. Messages sent through the mailet show up as personal messages from these end users, so people following you get them in the respective blogging timeline.
+
+You will find the guide (PDF) and the ESMEMailet.jar file under Attatchments. 
\ No newline at end of file

Added: esme/site/trunk/content/esme-mailet-install-guide.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-mailet-install-guide.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-mailet-install-guide.mdtext (added)
+++ esme/site/trunk/content/esme-mailet-install-guide.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,10 @@
+Title: ESME Mailet Install Guide
+The ESME Mailet is a plugin for theOpen source [Mail Server Apache James](http://james.apache.org/server/)
+, which allows users of an ESME infrastructure (both humans and technical
+systems) to send email messages to an ESME instance using their own
+identity. Messages sent through the mailet show up as personal messages
+from these end users, so people following you get them in the respective
+blogging timeline.
+
+You will find the guide (PDF) and the ESMEMailet.jar file under
+Attatchments. 

Added: esme/site/trunk/content/esme-privacy-policy.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-privacy-policy.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-privacy-policy.cwiki (added)
+++ esme/site/trunk/content/esme-privacy-policy.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,29 @@
+Last Updated: July 14, 2009
+
+Information about your use of this website is collected using&nbsp; a tracking cookie. The collected information consists of the following:
+
+The IP address from which you access the website;
+# The type of browser and operating system you use to access our site;
+# The date and time you access our site;
+# The pages you visit; and
+# The addresses of pages from where you followed a link to our site.
+
+Part of this information is gathered using a tracking cookie set by the [Google Analytics|http://www.google.com/analytics/] service and handled by Google as described in their [privacy policy|http://www.google.com/privacy.html]. See your browser documentation for instructions on how to disable the cookie if you prefer not to share this data with Google.
+
+We use the gathered information to help us make our site more useful to visitors and to better understand how and when our site is used. We do not track or collect personally identifiable information or associate gathered data with any personally identifying information from other sources.
+
+By using this website, you consent to the collection of this data in the manner and for the purpose described above.
+
+Occasionally, at our discretion, we may include links to other third party content or services on our website. These third party sites have separate and independent privacy policies and therefore we have no responsibility or liability for the content and activities of these linked sites.
+
+
+If we make changes to our privacy policy, we will send a notification to our mailing lists <us...@esme.apache.org> and <de...@esme.apache.org> along with updating the "Last Updated" date at the top of this page.
+
+If there are any questions regarding this privacy policy, you can contact us on the following mailing list <pr...@esme.apache.org>.
+
+\\
+
+Sincerely,
+The Apache ESME PMC
+
+\\
\ No newline at end of file

Added: esme/site/trunk/content/esme-privacy-policy.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/esme-privacy-policy.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/esme-privacy-policy.mdtext (added)
+++ esme/site/trunk/content/esme-privacy-policy.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,46 @@
+Title: ESME Privacy Policy
+Last Updated: July 14, 2009
+
+Information about your use of this website is collected using&nbsp; a
+tracking cookie. The collected information consists of the following:
+
+The IP address from which you access the website;
+1. The type of browser and operating system you use to access our site;
+1. The date and time you access our site;
+1. The pages you visit; and
+1. The addresses of pages from where you followed a link to our site.
+
+Part of this information is gathered using a tracking cookie set by the [Google Analytics](http://www.google.com/analytics/)
+ service and handled by Google as described in their [privacy policy|http://www.google.com/privacy.html]
+. See your browser documentation for instructions on how to disable the
+cookie if you prefer not to share this data with Google.
+
+We use the gathered information to help us make our site more useful to
+visitors and to better understand how and when our site is used. We do not
+track or collect personally identifiable information or associate gathered
+data with any personally identifying information from other sources.
+
+By using this website, you consent to the collection of this data in the
+manner and for the purpose described above.
+
+Occasionally, at our discretion, we may include links to other third party
+content or services on our website. These third party sites have separate
+and independent privacy policies and therefore we have no responsibility or
+liability for the content and activities of these linked sites.
+
+
+If we make changes to our privacy policy, we will send a notification to
+our mailing lists <us...@esme.apache.org> and <de...@esme.apache.org> along
+with updating the "Last Updated" date at the top of this page.
+
+If there are any questions regarding this privacy policy, you can contact
+us on the following mailing list <pr...@esme.apache.org>.
+
+  
+  
+
+Sincerely,
+The Apache ESME PMC
+
+  
+  

Added: esme/site/trunk/content/existing-public-esme-installations.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/existing-public-esme-installations.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/existing-public-esme-installations.cwiki (added)
+++ esme/site/trunk/content/existing-public-esme-installations.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,5 @@
+There are different public ESME installations: they are showcases, how an ESME setup looks like.
+
+There is not the only public production-quality ESME setup, as ESME is intended to serve as an inhouse (read: behind-firewall) microblogging system.(see ESME's [differentation from other microblogging platforms|Differentiation])
+* [http://www.esme.us/esme/]: this site hosts also the ESME blog (at [http://blog.esme.us/]). This installation is used by many people from the development team. The layout of this site does not reflect the current SVN version. This site is based on our initial UI
+* [http://esmecloudserver.dickhirsch.staxapps.net/index] and [http://esmecloudserverapache.dickhirsch.staxapps.net/] use the cloud based infrastucture from [http://stax.net] and reflect the current version in the project's SVN. The stax setups are updated regularly from SVN and are used to showcase new functions. Additionally [loadtesting|Loadtesting] takes place on these installations. The Stax server acts as a public server that displays the most recent apache svn source code and thus it isn't bug free. It is usually updated once a week.
\ No newline at end of file

Added: esme/site/trunk/content/existing-public-esme-installations.mdtext
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/existing-public-esme-installations.mdtext?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/existing-public-esme-installations.mdtext (added)
+++ esme/site/trunk/content/existing-public-esme-installations.mdtext Mon Jun 27 13:54:21 2011
@@ -0,0 +1,22 @@
+Title: Existing public ESME installations
+There are different public ESME installations: they are showcases, how an
+ESME setup looks like.
+
+There is not the only public production-quality ESME setup, as ESME is
+intended to serve as an inhouse (read: behind-firewall) microblogging
+system.(see ESME's [differentation from other microblogging platforms](differentiation.html)
+)
+* [http://www.esme.us/esme/](http://www.esme.us/esme/)
+: this site hosts also the ESME blog (at [http://blog.esme.us/]
+). This installation is used by many people from the development team. The
+layout of this site does not reflect the current SVN version. This site is
+based on our initial UI
+* [http://esmecloudserver.dickhirsch.staxapps.net/index](http://esmecloudserver.dickhirsch.staxapps.net/index)
+ and [http://esmecloudserverapache.dickhirsch.staxapps.net/]
+ use the cloud based infrastucture from [http://stax.net]
+ and reflect the current version in the project's SVN. The stax setups are
+updated regularly from SVN and are used to showcase new functions.
+Additionally [loadtesting|Loadtesting]
+ takes place on these installations. The Stax server acts as a public
+server that displays the most recent apache svn source code and thus it
+isn't bug free. It is usually updated once a week.

Added: esme/site/trunk/content/faq.cwiki
URL: http://svn.apache.org/viewvc/esme/site/trunk/content/faq.cwiki?rev=1140161&view=auto
==============================================================================
--- esme/site/trunk/content/faq.cwiki (added)
+++ esme/site/trunk/content/faq.cwiki Mon Jun 27 13:54:21 2011
@@ -0,0 +1,219 @@
+{section}{column:width=70%}
+
+h1. Questions
+
+h2. General
+
+[Can I use OpenJDK and ESME together?|#OPENJDK1]
+
+[Why can't you delete messages in ESME?|#delete1]
+
+[On which J2EE containers has ESME been tested?|#J2EE_container1]
+
+[How does search work in ESME?|#compass1]
+
+[How do you configure OpenID?|#openid1]
+
+[Does ESME support LDAP integration?|#ldap1]
+
+[Does ESME work with JDK 1.5|#JDK_1.5_1]
+
+[How do you start jetty with a different port when using maven?|#maven_1]
+
+[How do you run ESME in production-mode?|#prod_1]
+
+[How do you run ESME with CURL?|#curl_1]
+
+
+
+h2. Design-related
+
+[How does Twitter's new streaming API differ from ESME's design?|#twitter_api1]
+
+[In an enterprise context could it be an requirement to send a link to someone else pointing to a specific potentially old message in a certain Pool. How would this work?|#design1]
+
+[Would it be costly in your model to get the message nr. X  (  n  older messages) in a users' timeline?|#design2]
+
+[I don't get why it has to be in the session's state because you could as well use the information that a user is online as a guidance, even if the state would be stored somewhere out of the session. Wouldn't make a difference I guess and storing it in the session looks natural.|#design3]
+
+[I don't understand why ESME would need to store all entries in a cache, instead of only keeping the last n entries for each user based on some heuristics such as the last 3 days or something. I would somehow expect that the probability that a user wants to see a message is exponentially decreasing with the messages age. For example that someone wants to see a message that is the 1000 newest message in his timeline is probably almost zero|#design4].
+
+
+h2. Actions
+
+[How do I add a content type to a HTTP Post action?|#action_content_type1]
+
+
+
+
+
+
+
+h2. Platform Specific
+
+
+h3. Apple
+
+[Are there are tips for building on Apples?|#apple1]
+
+
+----
+----
+h1. Answers
+
+
+h2. General
+
+*Can I use OpenJDK and ESME together?* {anchor:OPENJDK1}
+
+Don't use OpenJDK and ESME together. YUI compressor fails with OpenJDK.
+
+----
+*Why can't you delete messages in ESME?* {anchor:delete1}
+
+There is a long discussion of the dangers of [deleting messages |ESME:Message Deletion] on the mailing list.
+
+
+----
+*On which J2EE containers has ESME been tested?* {anchor:J2EE_container1}
+
+* Tomcat
+* Jetty
+* SAP Netweaver CE
+* Glassfish
+
+----
+*How does search work in ESME?* {anchor:compass1}
+
+ESME uses [Compass|http://www.compass-project.org/]to perform full-text searches.
+
+*Selecting different usage patterns*
+
+There are different ways to use compass in ESME. The selection of which approach to use depends on what your requirements are.
+
+To select the option that you wish to use, you must set this option in [your property file|ESME:Server Configuration]. To set the option, please use the following syntax:
+{code}
+compass_config_file=/props/compass.filesystem.cfg.xml
+{code}
+Currently, there are three examples of different compass based options in the _/server/src/main/resources/props/ folder._
+|| File name || Description ||
+| compass.filesystem.cfg.xml | Using the file system to store index related data |
+| compass.jdbc.cfg.xml | Using the&nbsp;a database&nbsp;to store index related data - access via JDBC |
+| compass.jndi.cfg.xml | Using the&nbsp;a database&nbsp;to store index related data - access via JNDI |
+
+----
+*How do you configure OpenID?* {anchor:openid1}
+
+_Using a proxy with OpenID_
+
+Often you may wish to install ESME behind the firewall. In most cases, you won't have an internal OpenId provider, which means that your users are going to use OpenIds from external providers. Usually, you will have to go through an internal proxy.
+
+If this is the case, then you must set the proxy server.&nbsp; To do this use [the property file|ESME:Server Configuration], This file must include the following lines:
+{code}
+http.proxyHost=[proxy - look in your browser]
+http.proxyPort=[proxy port - look in your browser]
+{code}
+----
+*Does ESME support LDAP integration?* {anchor:ldap1}
+
+Currently, ESME doesn't support LDAP usage. We are looking at a new [LDAP component for lift|http://jgoday.wordpress.com/2009/11/27/lift-ldap/]as the basis for our implementation.
+----
+*Does ESME work with JDK 1.5{*}*?* {anchor:JDK_1.5_1}
+
+Currently, there are some issues dealing with JDK 1.5. Many of these issues are related to restrictions associated with Scala itself.
+----
+*How do you start jetty with a different port when using maven?* {anchor:maven_1}
+
+_mvn jetty:run \-Djetty.port=8081_
+----
+*How do you run ESME in production-mode?* {anchor:prod_1}
+
+Start the container with the following environment variable (from lift list) _\-Drun.mode=production_
+----
+*How do you run ESME with CURL?* {anchor:curl_1}
+
+_Step-0: Generate Token:_Login to ESME via WebGui and used the Tokens menu at the top to create a new token_.
+
+_Step-1:Construct the curl command:_Here is my example\-_curl \-X POST \-v \-u \[your user id\]:\[your token from step-0\] \-d status="my curl message on feb 24"[http://localhost:8080/esme/twitter/statuses/update.xml|http://localhost:8080/esme/twitter/statuses/update.xml]
+
+My ESME has 'esme' context running in Jetty. I didn't make any config change and is the default deployment. My WebGUI login is,[http://localhost:8080/esme/|http://localhost:8080/esme/]
+
+
+_Step-2: Execute curl command_:
+Make sure you have curl installed on your system. My system is Ubuntu. Cut n paste the curl command in the terminal and hit enter. (For convenience you can keep your WebGui running to check the message).
+After you hit enter, you should get 200 ok status from the server and a XML response. You can check the new message in the WebGUI and it updates REAL TIME\! ( no&nbsp;refresh&nbsp;needed)
+
+
+Run multiple times curl to see the updates in WebGui. I used Firefox.
+
+
+
+h2. Design-related
+
+*How does Twitter's new streaming API differ from ESME's design?* {anchor:twitter_api1}
+
+Twitter now has another take on a message-streaming API over HTTP, using what looks like a non-HTTP-1.1-compliant form of request pipelining (sending multiple responses over a single open connection). See the documentation at [http://apiwiki.twitter.com/Streaming-API-Documentation|http://apiwiki.twitter.com/Streaming-API-Documentation]
+
+The advantage of their mechanism is that it's a smoother experience. &nbsp;What we've done with chunking/long polling is to simulate a stream of data on top of a non-streaming protocol. &nbsp;What Twitter has done is to say "this is a one-way conversation, we've got an open TCP/IP connection, so let's use it."&nbsp; Implementing what they have would require going below the current set of abstractions that Lift provides above the Servlets.
+At a practical level, the difference is at one layer... the one dealing with the HTTP requests. &nbsp;At the layers above, events flow either way.
+
+At the basic philosophical level, Twitter's implementation is purer. &nbsp;It treats a stream of information as a stream of information.
+I like it, but I'm not sure what the benefits would be vs. the development costs of implementing such a mechanism (unless there's an en mass migration of microblogging clients to such a mechanism).
+
+A significant disadvantage of Twitter's design is the requirement of only one streaming connection per account. As much as I dislike the approach of using session cookies to uniquely identify API message
+queues, it is a heck of a lot better than what is going to happen when Twitter clients start to implement this API, which will be:
+1. I log in with Seesmic Web (which has implemented the Twitter streaming API)
+2. I receive messages 1, 2, and 3.
+3. I log in on a different computer with Twhirl (which has also
+implemented the Twitter streaming API)
+(3.1 Twitter disconnects the Seesmic connection invisibly from the user)
+4. I receive message 4 in Twhirl
+(4.1 Seesmic tries to reconnect, which results in Twhirl being disconnected)
+5. I receive message 5 in Seesmic
+6. And so on....
+End result: 1 really confused user trying to connect from two banned IP addresses.
+I think this is a good illustration of why we need some client-specific identifier for a streaming/delta-queue API. It doesn't need to be a session, but that's working pretty nicely for now.
+I would prefer to stick with what Lift provides for the moment. I need to do the conceptual exercise, but on first glance I don't think Twitter's approach results in much of a gain over our approach. Fewer
+connection attempts, which will help a lot at Twitter-scale, but which I'm not sure makes a big difference at Enterprise-scale.
+Another drawback (and I'm really not sure on this one) is that I don't think a lot of HTTP client libraries give easy access to a request that is still open. The design of&nbsp; the queue API is extremely simple from a client programming perspective. I think that's a big upside.
+
+h2.
+
+----
+*Question: In an enterprise context it could be an requirement to send a link to someone else pointing to a specific potentially old message in a certain Pool.* {anchor:design1}
+
+Yes. &nbsp;That's perfectly reasonable. &nbsp;That message is like a static file on disk. &nbsp;Once it's written, it remains unchanged until it's deleted. &nbsp;This is an ideal application of a REST-style approach. &nbsp;That's why I've advocated
+for a "message based" approach first, but a REST/static approach when the message based approach doesn't make sense. &nbsp;What I am opposed to is a "try to make everything fit the REST model" approach to API design.
+----
+*Question: Would it be costly in your model to get the message nr. X &nbsp;(\+ n &nbsp;older messages) in a users timeline?* {anchor:design2}
+A message will exist outside of a timeline. &nbsp;There exists a cache of recently accessed messages. &nbsp;Sometimes there will be a historic message that is referenced and that will be materialized from backing store and rendered.&nbsp; It will likely fall out of cache if it's historical and not accessed again.
+----
+*Question: I don't get why it has to be in the session's state because you could as well use the information that a user is online as a guidance, even if the state would be stored somewhere out of the session. Wouldn't make a difference I guess and storing it in the session looks natural.* {anchor:design3}
+
+The state itself is not in the session. &nbsp;The session is the guide that the user is online. &nbsp;The session contains a listener that is attached to the User. &nbsp;The only real state that resides in the session is the state
+necessary to batch up any messages that the User has forwarded to the listener in between the HTTP polling requests. &nbsp;If there is an HTML front end, state about that front end will reside in the session as well, but
+that's a different issue.
+----
+*Question: I don't understand why we would need to store all entries in a cache, instead of only keeping the last n entries for each user based on some heuristics such as the last 3 days or something. I would somehow expect that the probability that a user wants to see a message is exponentially decreasing with the messages age. For example that someone wants to see a message that is the 1000 newest message in his timeline is probably almost zero.* {anchor:design4}
+Some people mine their timelines for information. &nbsp;I agree that some aging policy is necessary as 36B entries will consume a lot of storage in RAM or on disk, but the last 1,000 is likely too few based on what I have seen of actual user behavior.
+In terms of an aging policy in an RDBMS, the cost of aging out old entries is likely to be an index scan or something on that order (DELETE FROM mailbox WHERE date < xxx or a user-by-user DELETE WHERE id IN (SELECT messages > 1000 in mailbox))
+
+h2. Actions
+
+*How do I add a content type to a HTTP Post action?* {anchor:action_content_type1}
+{code}
+http://localhost:1234
+header:Content-Type=text%2fxml
+<text>%s</text>
+{code}
+
+h2. Platform Specific
+
+h3. Apple
+
+*Are there are tips for building on Apples?* {anchor:apple1}
+
+Usually, JDK 6 is the best choice. JDK 5 currently doesn't work
+----
+{column}{column:width=30%}{*}Table of Contents*
+{toc:mminLevel=3}{column}{section}
\ No newline at end of file