About libGlass
Glass is a library for distributed computing and cloud computing, focusing in
high performance, low lag applications, particularly
virtual and augmented
reality.
The Glass framework is a scalable set of components that can be used by
applications to perform distributed computing. Applications are built
reusing the available components as needed. One of the major goals of
Glass is to be a user-friendly framework, not only suitable for new
applications, but also for legacy code. This is an important feature,
as most available solutions for distributed computing require a
substantial amount of rewrite of legacy code; some of them require a
complete change of the application design.
Glass was designed to achieve the following goals:
-
User transparency: the library must be as transparent as
possible. Any tasks that are repetitive or that can be done automatically
should be done by the library, without user intervention. The API (Application
Programmer's Interface) should be simple and intuitive, with a smooth learning
curve and provide high level primitives that can be easily used to solve any
problems. Legacy code should be easy to port.
-
Extensibility: the library must be easily extensible,
requiring no recompilation or any other modification to support new features;
they must work as plug-ins.
-
Performance and efficiency: since the library is for
distributed computing, it has to be efficient, consuming as little processing
time as possible.
-
Network protocol independence: an abstraction layer makes it
possible to change the underlying network protocols easily. The application can
use the network protocol most efficient for its needs.
-
Portability and interoperability: heterogeneous clusters and
grid computing being every day more common, the library must be not only
portable, but allow different architectures to interoperate seamlessly,
something that is not true for most implementations of distributed computing
solutions.
-
Scalability: there is no use for a distributed solution that
does not scale well. Glass has to work well in all sorts of environments, from
small clusters to huge grids, and be able to adapt itself to achieve best
results.
-
Reconfigurable network architecture: most existing solutions
are based on a fixed network architecture, usually Master/Slave or
Client/Server. Given the requirements of scalability and performance, and the
fact that peer-to-peer applications are everyday more common, it's unreasonable
to fix the network architecture: the developer should be free to define how
nodes will connect with each other.
-
Reliability and fault tolerance: distributed computing often
requires reliability. It's not acceptable that the misbehavior or crash of a
single node crashes the entire computation. As clusters grow in size and grid
computing becomes more common, the MTBF (Mean Time Between Failures) shrinks to
a point that it cannot be ignored. Glass must be able to handle node crashes
gracefully, keeping the application running and avoiding deadlocks and other
problems that could arise from the node crash. Nodes should be allowed to join
or leave at anytime.
-
Thread support: the library must be completely thread-safe.
With multicore processors now very common, it's unacceptable for a
distributed computing framework to have thread issues.
Features
Glass is already stable and contains many useful features for distributed
programmming:
-
Plugins:
- Synchronous shared memory;
- Distributed asynchronous events;
- Synchronization barriers;
- Remote aliases;
- Streaming;
-
Protocols:
- TCP/IP;
- UDP/IP (unfinished);
- SCTP/IP (under development);
-
Architectures:
- Client/Server;
- Pure peer to peer;
- Hierarchical;
-
Bindings for:
- Java;
- SWIG (Python, Perl, etc, under development);
News
- 21 September 2010
-
Release 1.0.0 is online. Download it
- 28 May 2010
-
A new release, 0.9.0, is near. We are making the final tests and it should be online at some point in
June. The documentation was moved to a wiki
and is also being updated and extended.
- 13 Apr 2010
-
A new release has been made, 0.9.0rc1.
This version contains some minor fixes, improved support for sending arrays (including bags of bytes
of any size, which makes it possible to send any data easily) and Java support through JNI. It's a
release candidate--bugs may exist. The next full release is scheduled for June 2010. The new version
depends on Boost (ptypes was dropped).
- 20 Jan 2010
-
libGlass has been recently chosen as part of the XPTA.lab
project, in which it is being improved and used by 12
independent applications.
- 19 Dec 2009
-
Despite the lack of news, libGlass is under active development and usage. A page about it
has recently been created on the
virtual and augmented reality wiki
and its portuguese counterpart,
wiki de realidade virtual e aumentada.
- 23 Apr 2006
-
A new version is in the works. It solves several issues with memory
allocation and performance. The CVS version may be used
meanwhile, although it's not guaranteed to be 100% working all the time.
Please email us for help and inquiries. There's also plans to modify the
network system to avoid memory copies, even when serialization of data
is not trivial.
- 03 Mar 2005
-
Streamcast, a new P2P
application for distributing streaming data that is just starting, will use
libGlass.
- 01 Mar 2005
-
Well, things are a bit later than expected due to that thing called "life".
But at last a new version is being finished. The code is frozen and we are
now finishing the automatic test suite and looking for some forgotten bugs.
- 06 Oct 2004
-
Thanks to Russell Coggrave, libGlass was ported to MSVC. Get the CVS
code if you want it. A new release is scheduled for the end of October.
- 02 Sep 2004
-
Version 0.7.0 had a slight problems that could abort the compilation.
Version 0.7.1 was released
to fix this.
- 30 Aug 2004
-
First public release is ready!!! libglass 0.7.0 can be
downloaded
now!
- 28 Aug 2004
-
A patch to run Celestia in
multi-display systems is now on the CVS.
- 19 Aug 2004
-
Lucas ported Glass to Mac OSX. We are packing and testing, the packages should be release
in the next few days.
- 10 Aug 2004
-
New website layout. Moved to PHP.
- 07 Aug 2004
-
Java bindings added to the CVS.
- 01 Aug 2004
-
An overview with screenshots of the GUI editor is
online.
- 26 Jul 2004
-
Added gEditor and gPDA to the CVS. They allow one to
create GUIs using Glass for remote updates. Documentation for them is
here. Some papers were uploaded
as well, see the documentation page.
- 14 Jul 2004
-
Updated webpages. Source code on the CVS repository, go download it now!
- 13 Jul 2004
-
Uploaded the webpages. This is the now the official libGlass website.
- 08 Jul 2004
-
The project is moving in. Source code should be uploaded to the CVS server
before July 15. A packed, beta version of the library will be released shortly
after.
|
|
Thanks to:
|
|
|
|