J2SE 1.6, which is scheduled for a beta release this fall with general availability eyed for 2005, is slated to feature an "isolates" function to boost application-sharing in the JVM, according to Murali Kaundinya, senior Java architect for Sun Software Services. The isolates capability would enable isolated entities to perform localized computation without requiring a second JVM, thus enabling multitasking within the JVM, according to Kaundinya.
Now that there going to allow multiple independent programs to run under a single JVM instance, I guess they're going to have to come up with some protocol for the two programs to talk to each other in a loosely couple protocol (events, semaphores, etc...).
Unless they go that route, I'm not sure what the feature buys, other than rubber stamping a JVM design that can handle more than one program instance (something which an optimizing JVM environment could probably do under the hood, if the implementers were so inclined). But then, I haven't seen the specs on invocation.
Posted to OOP by Chris Rathman on 4/8/04; 10:12:43 PM
Separate copies of XML parsers, Swing toolkits, etc add up eventually. Freeing up memory so that developers don't have to try so hard to accommodate Java's general tendency to be a memory hog is a development in the right direction.
On the other hand, if the usage of this feature requires an explicit protocol from the programs, how do I get all the different players to cooperate? Do I have to upgrade all my software to the latest compiler in order to take advantage of what is essentially just an optimization trick?
If the JVM becomes an OS, would that also not impinge on Sun's other money making market?
"the only safe way to execute multiple applications, written in the Java programming language, on the same computer is to use a separate JVM for each of them, and execute each JVM in a separate OS process."Multitasking without Compromise: a Virtual Machine Evolution
i wrote a very simplistic program that tries to accomodate multiple programs within the same JVM using bytecode manipulation and classloader tricks, without much success. good to see someone gave it more thought than i did.
I tried to follow the Isolate stuff at first, but I never understood exactly what they intend it to be used for. It didn't actually look like the plan was to run lots of unmodified Java programs together in a shared runtime system.