Spread Toolkit
Encyclopedia
The Spread Toolkit is a computer software package that provides a high performance group communication system
that is resilient to faults across local and wide area networks. Spread functions as a unified message bus for distributed applications, and provides highly tuned application-level multicast, group communication, and point to point support. Spread services range from reliable messaging to fully ordered messages with delivery guarantees.
The toolkit consists of a messaging server, and client libraries for many software development environments, including C
/C++ libraries (with and without thread support), a Java
Class to be used by applets or applications, and interfaces for Perl
, Python
, and Ruby
. Additional interfaces for many other software environments have been provided by third parties.
In typical operation, each computer in a cluster runs its own instance of the Spread server, and client applications connect locally to that server process. The spread servers, in turn, communicate with each other to pass messages to subscriber applications. It can also be configured such that clients distributed across the network all communicate with a Spread server process on a single host.
The Spread Toolkit is developed by Spread Concepts LLC, with much support by the Distributed Systems and Networks Lab (DSN) at Johns Hopkins University
and the Experimental Networked Systems Lab (not found, 2010-12-08) at George Washington University
.
Partial funding was provided by the Defense Advanced Research Projects Agency
(DARPA) and The National Security Agency
(NSA).
Group communication system
The term Group Communication System refers to a software platform that implements some form of group communication. Examples of group communication systems include IS-IS, JGroups, Spread Toolkit, Appia framework, QuickSilver, and the group services component of IBM's RSCT...
that is resilient to faults across local and wide area networks. Spread functions as a unified message bus for distributed applications, and provides highly tuned application-level multicast, group communication, and point to point support. Spread services range from reliable messaging to fully ordered messages with delivery guarantees.
The toolkit consists of a messaging server, and client libraries for many software development environments, including C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
/C++ libraries (with and without thread support), a Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
Class to be used by applets or applications, and interfaces for Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, and Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
. Additional interfaces for many other software environments have been provided by third parties.
In typical operation, each computer in a cluster runs its own instance of the Spread server, and client applications connect locally to that server process. The spread servers, in turn, communicate with each other to pass messages to subscriber applications. It can also be configured such that clients distributed across the network all communicate with a Spread server process on a single host.
The Spread Toolkit is developed by Spread Concepts LLC, with much support by the Distributed Systems and Networks Lab (DSN) at Johns Hopkins University
Johns Hopkins University
The Johns Hopkins University, commonly referred to as Johns Hopkins, JHU, or simply Hopkins, is a private research university based in Baltimore, Maryland, United States...
and the Experimental Networked Systems Lab (not found, 2010-12-08) at George Washington University
George Washington University
The George Washington University is a private, coeducational comprehensive university located in Washington, D.C. in the United States...
.
Partial funding was provided by the Defense Advanced Research Projects Agency
Defense Advanced Research Projects Agency
The Defense Advanced Research Projects Agency is an agency of the United States Department of Defense responsible for the development of new technology for use by the military...
(DARPA) and The National Security Agency
National Security Agency
The National Security Agency/Central Security Service is a cryptologic intelligence agency of the United States Department of Defense responsible for the collection and analysis of foreign communications and foreign signals intelligence, as well as protecting U.S...
(NSA).
Bindings
Bindings for Spread Toolkit exist in the following languages/platforms:- AdaAda (programming language)Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...
- CC (programming language)C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
- C++C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
- C#
- C# bindings and sample programs by Darin Peshev
- HaskellHaskell (programming language)Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...
- JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
- Lua
- libssrcspread Bindings for Spread
- luaspread by Taj Khattra
- Microsoft ExcelMicrosoft ExcelMicrosoft Excel is a proprietary commercial spreadsheet application written and distributed by Microsoft for Microsoft Windows and Mac OS X. It features calculation, graphing tools, pivot tables, and a macro programming language called Visual Basic for Applications...
- spread-excel by Jim Kleckner
- OCaml
- OcamlSpread (Early release, looking for maintainer)
- PerlPerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
- PHPPHPPHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
- PECL::Spread by George Schlossnagle and Rob Richards
- PythonPython (programming language)Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
- Python binding by ZopeZopeZope is a free and open-source, object-oriented Web application server written in the Python programming language. Zope stands for "Z Object Publishing Environment", and was the first system using the now common object publishing methodology for the Web...
Team - libssrcspread Bindings for Spread
- Python binding by Zope
- RubyRuby (programming language)Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
- SqueakSqueakThe 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...
- Scheme
- spread.egg by Felix Winkelmann
- TCLTCLTCL or Tcl may mean:* Biochemistry** TCL * Companies** TCL Corporation, a Chinese electronics company** Twin City Lines, former public transit via streetcar in Minneapolis*Computer languages...