В статье TheServerSide.com на java.sun.com обсуждается проект Barcelona , исследовательская работа Sun по внедрению многозадачной виртуальной машины (MVM). В случае успеха Барселона разрешит нескольким настольным программам или веб-приложениям, написанным на Java, использовать одну и ту же виртуальную машину (ВМ). Каждой программе будет казаться, что в ней есть виртуальная машина.
Вплоть до версии Java 2 Standard Editon (J2SE) включительно каждая загруженная программа Java загружала в память новую копию среды выполнения Java (ВМ) и основных классов Java. J2SE 5.0 несколько улучшил эту ситуацию, разделив одну копию основных классов Java между всеми загруженными виртуальными машинами, но ресурсы, используемые этими отдельными виртуальными машинами, все еще складываются.
Многие разработчики надеются, что Mustang (кодовое имя для Java 6.0, в настоящее время находящееся в стадии разработки ) пойдет по этому пути до конца и разделит одну виртуальную машину между всеми активными приложениями Java, хотя может быть более реалистичным ожидать этого в Java 7.0. Чтобы это произошло без разрушения многих существующих Java-приложений, Sun должна будет совместно использовать виртуальную машину, не позволяя приложениям наступать друг другу на ноги. Вот что такое Барселона.
Вот что говорит статья о преимуществах многозадачной виртуальной машины для веб-разработки на Java с J2EE:
Платформа Java 2 Enterprise Edition (J2EE) аналогична операционной системе в том смысле, что на сервере J2EE могут размещаться несколько приложений. На практике это делается редко из-за ограничений масштабируемости, слабой изоляции между приложениями и неадекватных средств управления ресурсами в базовой платформе Java. Это приводит к увеличению количества серверных экземпляров, каждый из которых, как правило, содержит одно приложение, с последующим резким увеличением общего объема памяти и более сложным системным администрированием. MVM поддерживал множественные экземпляры эталонной реализации J2EE 1.3.1 посредством эффективной реализации изолятов, таким образом, существенно увеличивая масштабируемость, уменьшая объем памяти и время запуска сервера по сравнению с виртуальной машиной Java HotSpot. Это было достигнуто без изменения кода сервера и без потери производительности.