Depending on what the more specific requirements are the usual (and by
FAR the easiest) way to do this is to use the same software on the
ecommerce and back-end servers, but have configuration differences so
that only the ecommerce webapp is available on ecommerce sever (ie
turn off the other webapps), and only the non-ecommerce applications
are enabled on the back-end servers (unless you want to use them for
ecommerce staging as well, then you can certainly leave that on, but
that server is generally ONLY accessible internally of course).
In this scenario all app servers are communicating with the database
server and coordinate that way. There is no need for communication
between the servers except for the Entity Engine distributed cache
clearing.
If you use a pattern of a webapp server that talks to an app server
that talks to a database you have an extra level of remote
communications and that will significantly slow down your response
times... as well as add the need for LOTS of coding! There is only one
reason I know of for doing such things: a very stubborn person with
his hands on the purse strings. That's it, there is NO good technical
or business reason for such things. Some claim greater scalability,
but real-world testing proves otherwise.
-David
On Apr 15, 2009, at 11:14 AM, Vince Clark wrote:
Our client has a requirement to deploy their ecommerce storefront on
a physically separate server from the back office apps. We have been
experimenting with other frameworks and integrating via web services
for some time, and this requirement pushes up the urgency.
Options we are considering:
• Use OFBiz MVC framework to build the ecommerce site and deploy
it on a separate server. Use RMI to communicate between two OFBiz
instances.
• Tapestry - Java based, so maybe RMI is still an option. But not
sure if that really makes it any easier than using web services.
• Symfony - we have prototyped this and exposed things like user
login and shopping cart via web services on the OFBiz side. Have
tested this with Axis2 and Mule.
• DJango - Just looking into this.
Our primary motivation for going with Symfony or DJango is to keep
the web tier as light weight as possible. It would be all about
presentation, and would consume all functionality from OFBiz.
Looking forward to feedback from the community on this topic.