One big difference in JRuby compared to C Ruby is the fact that for concurrency most Rubyists are used to running N processes and tools/etc are geared toward that scenario. There are plenty of problems with running this way, like the requirement for stateless servers, external caching, and lack of sharing of VM, framework, and application state across instances. One advantage is real process isolation and cross-request (or cross-user) security.
I am interested in the state of the art for doing this on the JVM. Before you try to call out Java security policies, note that they can do nothing about malicious code that wants to consume all available heap, occupy a thread forever, or use up all available file descriptors. All of these can be done with isolated processes, usually using an external monitoring tool like God. Azul has something called JVM virtualization that may be able to handle these cases, but I am not sure if it is available for their commodity-hardware-based Zing (for which they are very reluctant to give trial licenses, anyway). It would probably be possible to roll your own, using a combination of God (or similar), mod_jk*, and a lightweight sever like Tomcat. But of course you are rolling your own AND paying the cost of JVM, Tomcat, and application invariants for each instance. So, anyone else looked into this or have suggestions? - Charlie (mobile) -- You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en.
