Open Wonderland (первоначально Project Wonderland ) — это набор инструментов с открытым исходным кодом , написанный на Java для создания совместных 3D- виртуальных миров. В этих мирах пользователи могут общаться с помощью высококачественного , захватывающего звука, делиться живыми настольными приложениями и документами, а также вести реальный бизнес. Open Wonderland полностью расширяем; разработчики и графические художники могут расширять его функциональность для создания совершенно новых миров, включая, помимо прочего, добавление новых функций в существующие миры.
Видение Open Wonderland заключается в предоставлении среды, которая достаточно надежна с точки зрения безопасности, масштабируемости , надежности и функциональности, чтобы организации могли положиться на нее как на место для ведения реального бизнеса. Организации должны иметь возможность использовать Open Wonderland для создания виртуального присутствия для лучшего общения с клиентами, партнерами и сотрудниками. Отдельные лица должны иметь возможность выполнять свою реальную работу в виртуальном мире, устраняя необходимость в отдельном инструменте для совместной работы, когда они хотят работать вместе с другими. Отдельные лица также должны иметь возможность настраивать части мира, чтобы адаптировать их к своим рабочим потребностям и выражать свой личный стиль. Типы совместной работы, которые могут происходить в этом пространстве, включают аудиосвязь, живые настольные приложения всех видов и, в конечном итоге, совместное создание контента мира (как графического, так и процедурного).
Project Wonderland финансировался Sun Microsystems с самого начала разработки. 27 января 2010 года Sun Microsystems была приобретена Oracle [2], которая решила прекратить финансирование. [3] Project Wonderland продолжился как независимый проект с открытым исходным кодом, поддерживаемый сообществом, под названием «Open Wonderland». [4]
Архитектура клиент/сервер Open Wonderland toolkit поддерживает создание широкого спектра интерактивных, динамических виртуальных миров. Это стало возможным благодаря гибкой модульной системе. Эта схема позволяет разработчикам расширять не только клиент и сервер Wonderland, но и упаковывать художественные работы и целые миры в виде простых в установке модулей. Модули также могут быть написаны для соединения Wonderland с неограниченным количеством внешних сервисов.
Безопасность и федерация — еще две ключевые функции, предоставляемые набором инструментов Wonderland. При желании миры Open Wonderland могут быть защищены корпоративным брандмауэром, и они могут интегрироваться с существующей инфраструктурой аутентификации и управления идентификацией предприятия. По умолчанию предоставляется модуль для подключения к системам аутентификации LDAP . Для обеспечения детальной безопасности любой объект в мире Open Wonderland может быть связан со списком контроля доступа, чтобы определять, какие пользователи могут видеть, взаимодействовать с объектом или редактировать его. Эти элементы управления доступом являются иерархическими, поэтому доступ может быть применен к одному объекту в пространстве или ко всем объектам в комнате, здании или другой охватывающей трехмерной структуре. Безопасность — это функция на стороне сервера. Это означает, что объекты никогда не отправляются клиенту, у которого нет разрешения на просмотр объекта, что затрудняет обход системы безопасности.
Федерация позволяет пользователям миров Open Wonderland перемещаться из одного мира в другой с помощью ряда различных механизмов пользовательского интерфейса. Эти миры могут кардинально отличаться друг от друга с точки зрения содержания, кода и организации, которая управляет сервером. Например, пользователь может начать в виртуальном лекционном зале корпорации и пройти через портал в симуляцию подводной лодки университета. В лекционном зале могут быть установлены модули для виртуальных микрофонов, презентаций слайд-шоу и анализа бизнес-аналитики, в то время как симуляция подводной лодки может включать модуль динамики жидкости, рабочую консоль подводной лодки и интеграцию с телеметрическими данными с реальной подводной лодки. Хотя большая часть кода для запуска миров Open Wonderland является общей, специализированные 2D и 3D программы, которые работают в этих мирах, не являются общими. Схема федерации Wonderland, которая в полной мере использует способность языка программирования Java динамически загружать код, означает, что когда пользователь переходит из одного мира в другой, необходимый отсутствующий код загружается по мере необходимости. Кроме того, информация об аватарах пользователей хранится в их локальной системе, так что их аватар перемещается вместе с ними из одного мира в другой.
Open Wonderland отличается тесной интеграцией захватывающего высококачественного стереозвука. Используя голосовой мост с открытым исходным кодом, 'jVoiceBridge', вы не только слышите записанный звук в стерео в CD-качестве, но и можете слышать других живых людей в этом качестве. jVoiceBridge адаптируется, чтобы позволить удаленным пользователям с более низкой пропускной способностью подключения использовать более низкое качество звука, включая телефонное качество.
Если вы ведете разговор, высококачественный звук позволяет вам слышать голоса людей, доносящиеся с соответствующих направлений, как в реальном мире. Поскольку голоса или другие звуки становятся тише по мере удаления от них, Open Wonderland легко поддерживает несколько одновременных разговоров в одном и том же виртуальном пространстве.
С помощью jVoiceBridge можно создать широкий спектр модулей, связанных со звуком. Например, виртуальный телефон в мире позволяет пользователям без доступа к компьютеру подключаться к собранию в мире Open Wonderland. Виртуальные микрофоны, аудиорекордеры и конус тишины для приватного голосового чата — другие примеры модулей, связанных со звуком. Кроме того, записанный звук может быть связан с объектами в мире, включая смоделированных персонажей. Это позволяет разработчикам виртуального мира создавать насыщенный звуковой опыт для посетителей.
Wonderland поддерживает три типа общих приложений. Первый тип — это прямая поддержка приложений 2D X (практически любого приложения, которое будет работать в исходной системе Linux). С этим типом общего приложения один пользователь может взять под контроль и редактировать документ в мире, в то время как другие, находящиеся поблизости, могут наблюдать. Легко передавать управление от одного пользователя другому. Эти приложения, которые были разработаны для отдельных пользователей, удобны для совместного устранения неполадок в окне терминала или совместной работы в стандартных настольных приложениях, таких как Open Office, или совместного просмотра веб-страниц.
Второй тип общих приложений — многопользовательские 2D- приложения Java. Wonderland предоставляет фреймворк для создания таких приложений, чтобы помочь разработчикам создавать настоящие инструменты для совместной работы — те, которые изначально разрабатывались с учетом потребностей нескольких пользователей. Одним из примеров приложения для совместной работы является просмотрщик слайд-шоу, в котором каждый человек получает копию слайдов. Затем пользователи могут либо синхронизироваться с докладчиком, либо перемещаться по слайдам независимо. Другим примером является общая доска. Это позволяет нескольким пользователям рисовать на доске одновременно. Эти приложения не только имеют преимущество многопользовательского режима, но и работают лучше, поскольку код каждого приложения выполняется на клиентском компьютере, и только минимальные объемы данных передаются через сервер для синхронизации состояния.
В большинстве типов 2D-приложений разработчики могут включить функцию перетаскивания контента с рабочего стола пользователя в окно Open Wonderland. Например, пользователи могут перетащить любое изображение .png или .jpg в Wonderland и увидеть его в приложении для просмотра изображений. Пользователи также могут перетаскивать веб-страницы в мир и продолжать просмотр в многопользовательском контексте. Любые документы .svg, перетащенные в мир, автоматически создадут доску в мире для совместного редактирования документа. После редактирования документы доски можно перетащить обратно на рабочий стол для отправки по электронной почте другим лицам или для редактирования в другом приложении.
Последний тип общих приложений — многопользовательские 3D-приложения Java. Упакованные в виде модулей, эти приложения могут содержать любую комбинацию графических изображений и кода. Примером может служить упомянутый выше аудиорекордер. Это небольшое приложение включает код для захвата, хранения и воспроизведения звука. Оно также включает графические изображения для рекордера, дополненные барабанами, которые вращаются, когда рекордер включен, и 3D-кнопками для записи, воспроизведения и остановки. Приложения могут быть такими же маленькими, как аудиорекордер, большими, как целый мир, или где-то посередине. Например, «Glasshouse world» от Green Phosphor включает динамически генерируемые интерактивные 3D-графики, созданные на основе данных, хранящихся во внешних корпоративных хранилищах данных, базах данных или электронных таблицах. Во время совместной работы пользователи могут выделять строки, столбцы или ячейки, а также углубляться в данные, создавая подграфики.
Возможность смешивать и сочетать эти три типа приложений в мире Wonderland позволяет разработчикам создавать насыщенные интерактивные среды совместной работы для распределенных групп пользователей.