Since the builders of the Rice platform constructed it on open source technologies, your scale and use of Rice software determine the layout of the logical and physical hardware you need to support your implementation. Below are several conceptual models for implementation of Rice that are certainly not end solutions. Your solution depends on your implementation scale and budget.
The production platform that you deploy for your implementation can vary quite widely. The first example, the most basic platform structure, would be the most economical solution in terms of hardware. The Tomcat server can serve up all web service and HTTP requests and store all content. (Of course, you could load-balance multiple Tomcat servers across machines.) A picture of the logical structure:
For this architecture, we recommend this minimum:
Server running Tomcat container: Minimum 2 GB main memory
The next example has you offload the web requests and content to an Apache HTTP server in front of the Tomcat server:
For this architecture, we recommend this minimum:
Server running Apache: Minimum 1 GB main memory
Server running Tomcat container: Minimum 2 GB main memory
And finally, the recommended solution, where the focus of the environment structure is based upon maximal scaling for the Rice application:
For this architecture, we recommend this minimum:
Load Balancer
Each server running Apache: Minimum 1 GB main memory
Each server running Tomcat container: Minimum 2 GB main memory
The most basic platform for development has the Tomcat container and a MySQL server running on the same machine as your development tools:
The best option is to use the Tomcat container to serve up web service and HTTP requests. This has the least number of software layers between your development/debugging/IDE environment and the Tomcat container.