Croquet Project — это программный проект, призванный содействовать дальнейшей разработке комплекта разработки программного обеспечения с открытым исходным кодом Croquet для создания и доставки совместных многопользовательских онлайн- приложений . Croquet реализован в Squeak Smalltalk .
Croquet поддерживает общение, совместную работу , совместное использование ресурсов и синхронные вычисления между несколькими пользователями.
Приложения, созданные с помощью комплекта средств разработки программного обеспечения Croquet, можно использовать для поддержки совместной визуализации данных, виртуальных сред обучения и решения проблем, 3D- вики , игровых сред ( многопользовательских ролевых игр (MMORPG)) и многопользовательских виртуальных сред, поддерживаемых частным образом или связанных между собой.
Дальнейшее развитие технологии также разветвилось на проекты Open Cobalt и Open Croquet. [2]
Последняя версия Croquet — это коммерческий продукт, разработанный Croquet Labs. [3] Эта версия Croquet работает в веб-браузере и позволяет писать программы на Javascript или WebAssembly.
Croquet — это комплект средств разработки программного обеспечения (SDK), предназначенный для разработки приложений для совместной работы в виртуальном мире .
Приложения, созданные с использованием Croquet SDK, автоматически являются совместными, поскольку объекты приложений в Croquet используют общий протокол, позволяющий им взаимодействовать друг с другом, используя принцип реплицированных вычислений (синхронизации) вместе с протоколом обмена сообщениями на основе одноранговых узлов. Технология предназначена для облегчения такой репликации между одноранговыми узлами, чтобы значительно сократить накладные расходы, необходимые для широкомасштабного развертывания совместных виртуальных миров.
Такая эффективность в сочетании с возможностью развертывания виртуальных миров на основе Croquet на оборудовании потребительского уровня позволяет разработчикам развертывать крупномасштабные и высокоинтерактивные совместные миры с очень низкими затратами по сравнению с технологиями виртуальных миров, которые полностью зависят от серверных инфраструктур для поддержки деятельности своих пользователей.
Виртуальная машина Croquet (VM) работает идентично на нескольких платформах и поддерживает множество возможностей, которые может предоставить только настоящий язык поздней отправки сообщений.
Связь Croquet со Squeak придает Croquet свойство чисто объектно-ориентированной системы, что обеспечивает значительную гибкость в проектировании и характере протоколов и архитектур, разработанных для системы.
Благодаря этому Croquet может продолжать работать, пока код модифицируется и тестируется, пока вносятся изменения, что является неотъемлемой частью возможности совместной разработки Croquet. Пользователи могут изменять код, запускающий среду, пока среда работает.
Возможности синхронизации Croquet на основе времени позволяют осуществлять идентичные взаимодействия между группами пользователей в реальном времени , при этом значительно сокращая потребность в серверных инфраструктурах для поддержки развертывания виртуального мира. Архитектура Croquet упрощает разработку глубоко совместных приложений без необходимости тратить много усилий и опыта на понимание того, как работают реплицированные приложения.
TeaTime — это масштабируемая многопользовательская архитектура реального времени, которая является основой для объектно-объектной коммуникации и синхронизации Croquet. Она разработана для поддержки многопользовательских приложений, которые могут масштабироваться до огромного числа одновременно взаимодействующих пользователей в общем виртуальном пространстве. Наиболее непосредственно видимой частью этой архитектуры является класс TObject, который используется для определения и создания подклассифицированных объектов Tea. Все интересные объекты внутри Croquet созданы из подклассов TObject.
Объект Tea действует со свойством, что сообщения, отправленные ему, перенаправляются на реплицированные копии самого себя на участвующих машинах других пользователей в одноранговой сети . Этот протокол обмена сообщениями поддерживает скоординированную распределенную двухфазную фиксацию , которая используется для управления ходом вычислений на участвующих пользовательских сайтах. Таким образом, сообщения могут динамически перенаправляться большому количеству пользователей, сохраняя при этом соответствующее планирование на основе крайнего срока. Таким образом, TeaTime разработан для обеспечения большой адаптивности и устойчивости и работает на гетерогенном наборе ресурсов. Это фреймворк абстракции, который работает в диапазоне реализаций и который может развиваться и настраиваться с течением времени как внутри приложения, так и между приложениями.
Ключевые элементы архитектуры синхронизации TeaTime включают в себя:
Первоначальные авторы Croquet открыли коммерческую компанию Qwaq, которая позже была переименована в Teleplace. Эта технология была позже продана обратно группе первоначальных разработчиков Croquet и стала Immersive Terf. [4] [5]
Croquet — это слияние нескольких независимых направлений работы, которые велись шестью его главными архитекторами: Аланом Кеем , Дэвидом А. Смитом , Дэвидом П. Ридом , Андреасом Раабом , Джулианом Ломбарди и Марком МакКахиллом . Нынешняя идентичность проекта берет свое начало в разговоре между Смитом и Кеем в 1990 году, где оба выразили свое разочарование состоянием операционных систем в то время.
В 1994 году Смит построил ICE, рабочий прототип двухпользовательской системы совместной работы, которая была предшественником ядра того, чем является Croquet сегодня. Также в 1994 году команда Марка МакКахилла в Университете Миннесоты разработала GopherVR , трехмерный пользовательский интерфейс для Internet Gopher, чтобы исследовать, как пространственные метафоры могут быть использованы для организации информации и создания социальных пространств. В 1996 году Джулиан Ломбарди обратился к Смиту с просьбой изучить разработку высокорасширяемых интерфейсов совместной работы для Всемирной паутины . Позже, в 1999 году, Смит построил систему под названием OpenSpace, которая была ранним вариантом Croquet. Также в 1999 году Ломбарди начал работать со Смитом над прототипными реализациями высокорасширяемых совместных онлайн-сред на основе OpenSpace. Одной из таких реализаций была реализация прототипа ViOS , способа пространственной организации всех ресурсов, предоставляемых Интернетом (включая веб-страницы), в масштабируемую многопользовательскую трехмерную среду.
Смит и Кей официально начали проект Croquet в конце 2001 года, и к ним сразу же присоединились Дэвид Рид и Андреас Рааб. Рид привнес в проект свою многолетнюю работу над масштабируемыми архитектурами обмена сообщениями в форме, вытекающей из его докторской диссертации , опубликованной в 1978 году. Первый рабочий код Croquet был разработан в январе 2002 года. Одновременно и независимо Ломбарди и МакКахилл начали сотрудничать в определении и реализации масштабируемых и интегрированных в корпоративном масштабе архитектур для многопользовательского взаимодействия и были приглашены Кей присоединиться к основной архитектурной группе в 2003 году.
С 2003 по 2006 год технология разрабатывалась под руководством шести главных архитекторов при финансовой поддержке Hewlett-Packard , Viewpoints Research Institute Inc., Университета Висконсин-Мэдисон , Университета Миннесоты , Японского национального института коммуникационных технологий (NICT) и частных лиц. 18 апреля 2006 года проект выпустил бета-версию комплекта разработки программного обеспечения Croquet 1.0 в открытом исходном коде . С тех пор инфраструктура технологии Croquet успешно использовалась частной промышленностью для создания и развертывания коммерческих приложений для совместной работы с закрытым исходным кодом. Реализации программного обеспечения с открытым исходным кодом промышленного уровня для предоставления безопасных, интерактивных, постоянных виртуальных рабочих пространств для образования и обучения были в то же время разработаны и развернуты в Университете Миннесоты , Университете Висконсин-Мэдисон, Университете Британской Колумбии и Университете Дьюка .
Начиная с 2009 года [обновлять], продолжалось развитие оригинальной технологии Croquet в рамках проектов Open Cobalt и Open Croquet. [2]