Sandbox (software development)

Sandbox (software development)

A sandbox is a testing (or "virtual") environment that isolates untested code changes and outright experimentation from the production environment or repository, in the context of software development including web development and revision control, and by extension in web-based editing environments including wikis.

Sandboxing protects "live" servers and their data, vetted source code distributions and other collections of code, data and/or content, proprietary or public, from changes that could be damaging (regardless of the intent of the author of those changes) to a mission-critical system or which could simply be difficult to revert. Sandboxes replicate at least the minimal functionality needed to test "accurately" the programs or other code under development (e.g. usage of the same environment variables as, or access to an identical database to that used by, the stable prior implementation intended to be modified; there are many other possibilities, as the specific functionality needs vary widely with the nature of the code and the applications for which it is intended.)

The concept of the sandbox (sometimes also called a "working directory") is built into revision control software such as CVS and Subversion (SVN), in which developers "check out" a "copy" of the source code tree, or a branch thereof, to examine and work on. Only after the developer has (hopefully) fully tested the code changes in their own sandbox should the changes be checked back into and merged with the repository and thereby made available to other developers or end users of the software.Vivek Venugopalan, " [http://www.sanchivi.com/cm/cvs-bestpractices/ar01s04.html Developer Sandbox] " chapter 4, "CVS Best Practices", The Linux Documentation Project, 2005. (See also [http://www.google.ca/search?q=CVS+sandbox Google] for numerous other examples from the CVS FAQ, SourceForge, etc.)]

By further analogy, the term "sandbox" can also be applied in computing and networking to other temporary or indefinite isolation areas, such as security sandboxes and search engine sandboxes (both of which have highly specific meanings; see their main articles for details), that prevent incoming data from affecting a "live" system (or aspects thereof) unless/until defined requirements or criteria have been met.

In web development

Sandboxes are equally common, though less formal, in the area of web development projects (that are not version-controlled as software projects); web developers commonly call them "test servers" or "development servers". Under this variety of project management, each developer typically has a [http://httpd.apache.org/docs/1.3/vhosts/ webserver "virtual host"] instance of the site (locally or on a different machine), which can be altered and tested at a particular hostname, directory path or data port, though smaller projects may simply provide a common sandbox for all developers to use jointly. While application software development sandboxing focuses on protecting the developers from other developers' changes, web development sandboxing tends to concentrate on ensuring that changes are appearing and functioning as intended before being merged into the master copy of the pages, scripts, text, etc. that are actually being served to the real userbase.

In web services

The term sandbox is commonly used in the development of Web services to refer to a mirrored production environment for use by external developers. Typically, a third-party developer will develop and create an application that will use a web service from the sandbox, which is used to allow third-party team to validate their code before migrating it to the production environment. This technique is used by
Microsoft, [ [http://test.uddi.microsoft.com/default.aspx] clarifyme|subst:DATE ]
Amazon.com, [ [http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=25&externalID=775] clarifyme|subst:DATE ]
PayPal, [ [https://developer.paypal.com/en_US/pdf/PP_Sandbox_UserGuide.pdf] clarifyme|subst:DATE ]
eBay, [ [http://sandbox.ebay.com/] clarifyme|subst:DATE ]
Yahoo, [ [http://searchmarketing.yahoo.com/developer/docs/V2/sandbox/index.php] clarifyme|subst:DATE ] and SoftPurse, [ [http://sandbox.softpurse.com/] clarifyme|subst:DATE ] among others.

In wikis

Wikis also typically employ a shared sandbox model of testing, though it is intended principally for learning and outright experimentation with features rather than for testing of alterations to existing content (the wiki analog of source code). An edit preview mode is usually used instead to test specific changes made to the text or layout of wiki pages.

References

See also

* Sandbox (computer security)
* Sandbox effect (search engines)
* Sandbox (videos)
* (an example of a shared sandbox in action)


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Reversion (software development) — In software development (and by extension in content editing environments, especially wikis, that make use of the software development process of revision control), reversion or reverting is the abandonment of one or more recent changes in favor… …   Wikipedia

  • Sandbox — may refer to: * Litter box, an indoor box for cats to relieve themselves * Sandpit or sandbox, a wide, shallow playground construction to hold sand often made of wood or plastic * Sandbox (railways), a container that holds sand for use in… …   Wikipedia

  • Sandbox (computer security) — This article is about the computer security mechanism. For the Wikipedia feature, where newcomers can experiment with editing or established editors can experiment with new features, see . : For the software testing practice, see sandbox… …   Wikipedia

  • Development environment — may also refer to an integrated development environment. In hosted software (e.g., web site/application, database not shrinkwrap software) development, a development environment refers to a server tier designated to a specific stage in a release… …   Wikipedia

  • Cryengine Sandbox — Far Cry Entwickler: Crytek Verleger: Ubisoft …   Deutsch Wikipedia

  • Timeline of virtualization development — Timelines Note: This timeline is missing data for important historical systems, including: Atlas Computer (Manchester), GE 645, Burroughs B5000* 1964 ** IBM Cambridge Scientific Center begins development of CP 40. * 1965 ** IBM M44/44X,… …   Wikipedia

  • Sandboxing — may refer to:* Sandbox (computer security), a mechanism for safely running untrusted programs * Sandbox (software development), a testing environment isolated from the production environment See also * Sandbox (disambiguation) …   Wikipedia

  • Crytek — GmbH Тип Общество с ограниченной ответственностью ( …   Википедия

  • Mac OS X — Basisdaten Entwickler Apple …   Deutsch Wikipedia

  • Крайзис — Crysis Разработчик Издатели Electronic Arts Steam) Локализатор Софт Клаб Дизайнеры …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”