El proyecto Croquet es un proyecto de software cuyo objetivo era promover el desarrollo continuo del kit de desarrollo de software de código abierto Croquet para crear y ofrecer aplicaciones colaborativas en línea para múltiples usuarios . Croquet está implementado en Squeak Smalltalk .
Croquet admite la comunicación, la colaboración , el intercambio de recursos y el cálculo sincrónico entre múltiples usuarios.
Las aplicaciones creadas con el kit de desarrollo de software Croquet se pueden utilizar para respaldar la visualización colaborativa de datos, entornos virtuales de aprendizaje y resolución de problemas, wikis 3D , entornos de juegos en línea ( juegos de rol multijugador masivos en línea (MMORPG)) y entornos virtuales multiusuario interconectados o mantenidos de forma privada.
El desarrollo posterior de la tecnología también se ha extendido a los proyectos Open Cobalt y Open Croquet. [2]
La iteración más reciente de Croquet es un producto comercial desarrollado por Croquet Labs. [3] Esta versión de Croquet se ejecuta en un navegador web y permite escribir programas en Javascript o WebAssembly.
Croquet es un kit de desarrollo de software (SDK) para utilizar en el desarrollo de aplicaciones colaborativas de mundo virtual .
Las aplicaciones creadas con el SDK de Croquet son automáticamente colaborativas, ya que los objetos de aplicación en Croquet comparten un protocolo común que les permite cooperar entre sí empleando el principio de computación replicada (sincronización) junto con un protocolo de mensajería entre pares. La tecnología está diseñada para facilitar dicha replicación entre pares, a fin de reducir en gran medida la sobrecarga necesaria para la implementación generalizada de mundos virtuales colaborativos.
Esta eficiencia, combinada con la capacidad de implementar mundos virtuales basados en Croquet en hardware de nivel de consumidor, permite a los desarrolladores implementar mundos colaborativos a gran escala y altamente participativos a un costo muy bajo en comparación con las tecnologías de mundos virtuales que dependen completamente de infraestructuras basadas en servidores para respaldar las actividades de sus usuarios.
La máquina virtual (VM) de Croquet se ejecuta de forma idéntica en múltiples plataformas y admite múltiples capacidades que solo podrían proporcionarse mediante un verdadero lenguaje de envío de mensajes con enlace tardío .
La relación de Croquet con Squeak le otorga a Croquet la propiedad de un sistema puramente orientado a objetos , lo que permite una flexibilidad significativa en el diseño y la naturaleza de los protocolos y arquitecturas que se han desarrollado para el sistema.
Gracias a esto, Croquet tiene la capacidad de seguir ejecutándose mientras se modifica y prueba el código, mientras se realizan cambios, una parte esencial de la capacidad de desarrollo colaborativo de Croquet. Los usuarios pueden cambiar el código que ejecuta el entorno mientras este se ejecuta.
Las capacidades de sincronización basadas en el tiempo de Croquet permiten interacciones idénticas en tiempo real entre grupos de usuarios, al tiempo que reducen drásticamente la necesidad de infraestructuras de servidores para respaldar la implementación del mundo virtual. La arquitectura de Croquet facilita el desarrollo de aplicaciones profundamente colaborativas sin tener que dedicar mucho esfuerzo y experiencia a comprender cómo funcionan las aplicaciones replicadas.
TeaTime es una arquitectura multiusuario escalable en tiempo real que constituye la base de la comunicación y sincronización entre objetos de Croquet. Está diseñada para admitir aplicaciones multiusuario que se pueden escalar a una cantidad masiva de usuarios que interactúan simultáneamente en un espacio virtual compartido. La parte más directamente visible de esta arquitectura es la clase TObject, que se utiliza para definir y construir objetos Tea subclasificados. Todos los objetos interesantes dentro de Croquet se construyen a partir de subclases de TObject.
Un objeto Tea actúa con la propiedad de que los mensajes que se le envían se redirigen a copias replicadas de sí mismo en las máquinas de otros usuarios que participan en una red peer-to-peer . Este protocolo de mensajería admite una confirmación distribuida y coordinada de dos fases que se utiliza para controlar la progresión de los cálculos en los sitios de los usuarios participantes. De esta manera, los mensajes se pueden redirigir dinámicamente a un gran número de usuarios mientras se mantiene la programación adecuada basada en plazos. Por lo tanto, TeaTime está diseñado para permitir una gran adaptabilidad y resiliencia y funciona en un conjunto heterogéneo de recursos. Es un marco de abstracción que funciona en una variedad de implementaciones y que se puede desarrollar y ajustar con el tiempo, tanto dentro de una aplicación como entre aplicaciones.
Los elementos clave de la arquitectura de sincronización de TeaTime incluyen:
Los autores originales de Croquet abrieron una empresa comercial llamada Qwaq, que luego pasó a llamarse Teleplace. Esa tecnología se vendió más tarde a un grupo de los desarrolladores originales de Croquet y se convirtió en Immersive Terf. [4] [5]
Croquet es la confluencia de varias líneas de trabajo independientes que estaban llevando a cabo sus seis arquitectos principales, Alan Kay , David A. Smith , David P. Reed , Andreas Raab , Julian Lombardi y Mark McCahill . La identidad actual del proyecto tiene su origen en una conversación entre Smith y Kay en 1990, donde ambos expresaron su frustración con el estado de los sistemas operativos en ese momento.
En 1994, Smith construyó ICE, un prototipo funcional de un sistema colaborativo para dos usuarios que fue un predecesor del núcleo de lo que Croquet es hoy. También en 1994, el equipo de Mark McCahill en la Universidad de Minnesota desarrolló GopherVR , una interfaz de usuario 3D para Internet Gopher para explorar cómo se podrían usar las metáforas espaciales para organizar la información y crear espacios sociales. En 1996, Julian Lombardi se acercó a Smith para explorar el desarrollo de interfaces colaborativas altamente extensibles para la World Wide Web . Más tarde, en 1999, Smith construyó un sistema llamado OpenSpace, que era una variante temprana de Croquet. También en 1999, Lombardi comenzó a trabajar con Smith en implementaciones de prototipos de entornos colaborativos en línea altamente extensibles basados en OpenSpace. Una de estas implementaciones fue una implementación prototipo de ViOS , una forma de organizar espacialmente todos los recursos entregables de Internet (incluidas las páginas web) en un entorno 3D multiusuario de escala masiva.
Smith y Kay iniciaron oficialmente el Proyecto Croquet a finales de 2001, y se les unieron inmediatamente David Reed y Andreas Raab. Reed aportó al proyecto su dilatada experiencia en arquitecturas de mensajería entre pares escalables de forma masiva , en una forma derivada de su tesis doctoral publicada en 1978. El primer código funcional de Croquet se desarrolló en enero de 2002. De forma simultánea e independiente, Lombardi y McCahill comenzaron a colaborar en la definición e implementación de arquitecturas altamente escalables e integradas a la empresa para la colaboración entre múltiples usuarios, y Kay los invitó a unirse al grupo de arquitectura central en 2003.
De 2003 a 2006, la tecnología se desarrolló bajo el liderazgo de sus seis arquitectos principales con el apoyo financiero de Hewlett-Packard , Viewpoints Research Institute Inc., la Universidad de Wisconsin-Madison , la Universidad de Minnesota , el Instituto Nacional Japonés de Tecnología de la Comunicación (NICT) y particulares. El 18 de abril de 2006, el proyecto lanzó una versión beta del kit de desarrollo de software Croquet 1.0 en código abierto . Desde entonces, la infraestructura tecnológica de Croquet ha sido utilizada con éxito por la industria privada para construir e implementar aplicaciones colaborativas de código cerrado de calidad comercial. Al mismo tiempo, se han desarrollado e implementado implementaciones de software de producción de código abierto para ofrecer espacios de trabajo virtuales seguros, interactivos y persistentes para la educación y la formación en la Universidad de Minnesota , la Universidad de Wisconsin-Madison, la Universidad de Columbia Británica y la Universidad de Duke .
A partir de 2009 [actualizar], también se continuó desarrollando la tecnología Croquet original a través de los proyectos Open Cobalt y Open Croquet. [2]