Croquet Project
Encyclopedia
The Croquet Project was an international
International
----International mostly means something that involves more than one country. The term international as a word means involvement of, interaction between or encompassing more than one nation, or generally beyond national boundaries...

 effort to promote the continued development of the Croquet open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 software development kit
Software development kit
A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

 for creating and delivering deeply collaborative multi-user
Multi-user
Multi-user is a term that defines an operating system or application software that allows concurrent access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving the...

 online
ONLINE
ONLINE is a magazine for information systems first published in 1977. The publisher Online, Inc. was founded the year before. In May 2002, Information Today, Inc. acquired the assets of Online Inc....

 applications
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

.

Implemented in Squeak
Squeak
The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...

 Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...

, Croquet supports communication, collaboration
Collaboration
Collaboration is working together to achieve a goal. It is a recursive process where two or more people or organizations work together to realize shared goals, — for example, an intriguing endeavor that is creative in nature—by sharing...

, resource sharing, and synchronous computation among multiple users. Applications created with the Croquet Software Developer's Kit (SDK) can be used to support highly scalable collaborative data visualization, virtual learning and problem solving environments, 3D wiki
Wiki
A wiki is a website that allows the creation and editing of any number of interlinked web pages via a web browser using a simplified markup language or a WYSIWYG text editor. Wikis are typically powered by wiki software and are often used collaboratively by multiple users. Examples include...

s, online gaming environments (MMORPG
MMORPG
Massively multiplayer online role-playing game is a genre of role-playing video games in which a very large number of players interact with one another within a virtual game world....

s), and privately maintained/interconnected multiuser virtual environments.

Since release of the Croquet SDK in 2007, the SDK has not been under active development. All continued development of the technology has taken place under the very active Open Cobalt
Open Cobalt
Open Cobalt is a free and open source software platform for constructing, accessing, and sharing virtual world both on local area networks or across the Internet, without any requirement for centralized servers....

 effort.

Technical functionality

Croquet is a software developer's toolkit (SDK) for use in developing collaborative virtual world
Virtual world
A virtual world is an online community that takes the form of a computer-based simulated environment through which users can interact with one another and use and create objects. The term has become largely synonymous with interactive 3D virtual environments, where the users take the form of...

 applications.

Applications created using the Croquet SDK are automatically collaborative since application objects in Croquet share a common protocol that allows them to cooperate with each other by employing the principle of replicated computation (synchronization) together with a peer-based messaging protocol. The technology is designed to facilitate replication of computation between peers in order to greatly reduce the overhead required for widespread deployment of collaborative virtual worlds.

This efficiency, combined with the ability to deploy Croquet-based virtual worlds on consumer-level hardware, makes it possible for developers to deploy large-scale and highly-participatory collaborative worlds at very low cost compared with virtual world technologies that are entirely dependent on server-based infrastructures to support the activities of their users.

Virtual machine

Croquet’s virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

 (VM) runs bit identically on multiple platforms and it supports a number of capabilities that could only be provided by a true late bound, message sending language.

Croquet’s relationship to Squeak
Squeak
The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...

 gives Croquet the property of a purely object-oriented
Object (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...

 system allowing for significant flexibility in the design and the nature of the protocols and architectures that have been developed for the system.

Because of this, Croquet has the ability to keep running while testing, and especially while changes are made – an essential part of the Croquet collaborative development capability. Programmers can therefore modify the code running the environment while the environment is running.

Synchronization architecture

Croquet's time-based synchronization capabilities enable real-time
Real-time computing
In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...

, identical interactions between groups of users while dramatically reducing the need for server infrastructures to support virtual world deployment. Croquet's architecture makes it easy to develop deeply collaborative applications without having to spend a lot of effort and expertise in understanding how replicated applications work.

TeaTime is a scalable real-time multi-user architecture that is the basis for Croquet's object-object communication and synchronization. It is designed to support multi-user applications that can be scaled to massive numbers of concurrently interacting users in a shared virtual space. The most directly visible part of this architecture is the TObject class which is used to define and construct subclassed Tea objects. All of the interesting objects inside of Croquet are constructed from subclasses of TObject.

A Tea object acts with the property that messages sent to it are redirected to replicated copies of itself on other users' participating machines in a peer-to-peer network. This messaging protocol supports a coordinated distributed two-phase commit that is used to control the progression of computations at participating user sites. In this way messages may be dynamically redirected to large numbers of users while maintaining the appropriate deadline-based scheduling. Thus, TeaTime is designed to allow for a great deal of adaptability and resilience and works on a heterogeneous set of resources. It is a framework of abstraction that works over a range of implementations and that can be evolved and tuned over time, both within an application and across applications.

Key elements of the TeaTime synchronization architecture include:
  • A coordinated universal timebase embedded in communication protocol
  • Replicated, versioned objects that unify replicated computation and distribution of results
  • Replication strategies that separate the mechanisms of replication from the behavioral semantics of objects
  • Deadline-based scheduling extended with failure and nesting
  • Coordinated, distributed two-phase commit that is used to control the progress of computations at multiple sites, to provide resilience, deterministic results, and adaptation to available resources
  • Uses distributed sets

Open Cobalt

Open Cobalt
Open Cobalt
Open Cobalt is a free and open source software platform for constructing, accessing, and sharing virtual world both on local area networks or across the Internet, without any requirement for centralized servers....

 is a multi-institutional community software development effort to deploy an open source production-grade metaverse browser/toolkit application built using the Croquet SDK. The Open Cobalt
Open Cobalt
Open Cobalt is a free and open source software platform for constructing, accessing, and sharing virtual world both on local area networks or across the Internet, without any requirement for centralized servers....

 application is made available under the Croquet license.

History

Croquet is the confluence of several independent lines of work that were being carried out by its six principal architects, Alan Kay
Alan Kay
Alan Curtis Kay is an American computer scientist, known for his early pioneering work on object-oriented programming and windowing graphical user interface design, and for coining the phrase, "The best way to predict the future is to invent it."He is the president of the Viewpoints Research...

, David A. Smith. David P. Reed
David P. Reed
David P. Reed is an American computer scientist, educated at the Massachusetts Institute of Technology, known for a number of significant contributions to computer networking....

, Andreas Raab, Julian Lombardi
Julian Lombardi
Julian Lombardi is an American inventor, author, educator, and computer scientist known for his work with socio-computational systems, scalable virtual world technologies, and in the design and deployment of deeply collaborative virtual learning environments.- Biography :Lombardi was born to a...

, and Mark McCahill
Mark P. McCahill
Mark P. McCahill is an American programmer who has been involved in developing and popularizing a number of Internet technologies since the late 1980s....

. The present identity of the project has its origins in a conversation between Smith and Kay in 1990, where both expressed their frustration with the state of operating systems at the time.

In 1994 Smith built ICE, a working prototype of a two user collaborative system that was a predecessor of the core of what Croquet is today. Also in 1994 Mark McCahill's team at the University of Minnesota developed GopherVR
GopherVR
GopherVR is an enhanced Internet Gopher client that includes a 3D visualization tool for viewing resource collections as 3D scenes.In 1995, the Gopher developers at the University of Minnesota released GopherVR...

, a 3D user interface to Internet Gopher to explore how spatial metaphors could be used to organize information and create social spaces. In 1996 Julian Lombardi approached Smith to explore the development of highly extensible collaborative interfaces to the WWW. Later, in 1999, Smith built a system called OpenSpace, which was an early-bound
Name binding
In programming languages, name binding is the association of objects with identifiers. An identifier bound to an object is said to reference that object. Machine languages have no built-in notion of identifiers, but name-object bindings as a service and notation for the programmer is implemented...

 variant of Croquet. Also in 1999, Lombardi began working with Smith on prototype implementations of highly extensible collaborative online environments based on OpenSpace. One of these implementations was a prototype implementation of ViOS
ViOS
ViOS was a client-server software system designed by Julian Lombardi in the mid-1990s and built by a team he led at ViOS Inc. from 1999-2001 as a way of spatially organizing all Internet-deliverable resources into a massively scaled multiuser 3D environment with users of the system represented as...

, a way of spatially organizing all Internet
Internet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...

-deliverable resources (including web pages) into a massively-scaled multiuser 3D environment.

Smith and Kay officially started the Croquet Project in late 2001 and were immediately joined by David Reed and Andreas Raab. Reed brought to the project his longstanding work on massively scalable peer-to-peer
Peer-to-peer
Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...

 messaging architectures in a form deriving from his doctoral dissertation that was published in 1978. The first working Croquet code was developed in January 2002. Simultaneously and independently, Lombardi and McCahill began collaborating on defining and implementing highly scalable and enterprise-integrated architectures for multi-user collaboration and were invited by Kay to join the core architectural group in 2003.

From 2003-2006 the technology was developed under the leadership of its six principal architects with financial support from Hewlett-Packard
Hewlett-Packard
Hewlett-Packard Company or HP is an American multinational information technology corporation headquartered in Palo Alto, California, USA that provides products, technologies, softwares, solutions and services to consumers, small- and medium-sized businesses and large enterprises, including...

, Viewpoints Research Institute Inc., the University of Wisconsin–Madison
University of Wisconsin–Madison
The University of Wisconsin–Madison is a public research university located in Madison, Wisconsin, United States. Founded in 1848, UW–Madison is the flagship campus of the University of Wisconsin System. It became a land-grant institution in 1866...

, the University of Minnesota
University of Minnesota
The University of Minnesota, Twin Cities is a public research university located in Minneapolis and St. Paul, Minnesota, United States. It is the oldest and largest part of the University of Minnesota system and has the fourth-largest main campus student body in the United States, with 52,557...

, the Japanese National Institute of Communication Technology (NICT) and private individuals. On April 18, 2006 the project released a beta version of the Croquet SDK 1.0 in the open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

. Since then, the Croquet technology infrastructure has been successfully used by private industry to build and to deploy commercial-grade closed source collaborative applications. Open source production-grade software implementations for delivering secure, interactive, persistent, virtual workspaces for education and training have at the same time been developed and deployed at the University of Minnesota
University of Minnesota
The University of Minnesota, Twin Cities is a public research university located in Minneapolis and St. Paul, Minnesota, United States. It is the oldest and largest part of the University of Minnesota system and has the fourth-largest main campus student body in the United States, with 52,557...

, the University of Wisconsin–Madison
University of Wisconsin–Madison
The University of Wisconsin–Madison is a public research university located in Madison, Wisconsin, United States. Founded in 1848, UW–Madison is the flagship campus of the University of Wisconsin System. It became a land-grant institution in 1866...

, The University of British Columbia
University of British Columbia
The University of British Columbia is a public research university. UBC’s two main campuses are situated in Vancouver and in Kelowna in the Okanagan Valley...

, and Duke University
Duke University
Duke University is a private research university located in Durham, North Carolina, United States. Founded by Methodists and Quakers in the present day town of Trinity in 1838, the school moved to Durham in 1892. In 1924, tobacco industrialist James B...

.

Today, continued development of the original Croquet technology is taking place through the Open Cobalt
Open Cobalt
Open Cobalt is a free and open source software platform for constructing, accessing, and sharing virtual world both on local area networks or across the Internet, without any requirement for centralized servers....

 project.

Unique aspects

  • It is platform and device independent
  • Users/developers may freely share, modify and view the source code of the entire system (due to Croquet's liberal license)
  • The technology is not hosted on a single organization’s server (and hence not governed by any such organization)
  • It provides a complete professional programmer’s language (Smalltalk/Squeak), IDE
    Integrated development environment
    An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

    , and class library in every distributed, running participant’s copy (the programming development environment itself is simultaneously shareable and extensible)
  • Croquet based worlds can also be updated while the system is live and running.

See also

  • Open Wonderland A 100% Java open source 3D toolkit for creating collaborative virtual worlds

External links

  • Croquet Consortium Website
  • Interview with Julian Lombardi at The Coalition for Networked Information's 2007 Fall Task Force Meeting.
  • Video by David Smith & Alan Kay done for a talk at Stanford (2003)
  • Video done for the O'Reilly etech by David Smith & Alan Kay (broken up into nice bite-size chunks, also includes Alan's full Squeak demo)
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK