libGlass
The transparent solution for distributed computing

About libGlass

Glass is a library for distributed computing that makes its programming easy.

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 clusters of symmetric multiprocessors (SMP) computers becoming more common and new technologies such as HyperThreadingTM, 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;
  • Protocols:
    • TCP/IP;
    • UDP/IP (unfinished);
  • Architectures:
    • Client/Server;
    • Pure peer to peer (planned);
    • Hierarchical (planned);
    • Anonymous peer to peer (planned);
  • Bindings for:
    • Java (mostly finished);
Other planned features include:
  • Distributed file system;
  • Data streaming (started);
  • Grid system;
  • Safe RPC;



News

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.
Project libGlass
Project Homepage
Tracker Tracker

 - Bugs ( 0 open / 0 total )
Bug Tracking System

 - Support Requests ( 0 open / 0 total )
Tech Support Tracking System

 - Patches ( 0 open / 0 total )
Patch Tracking System

 - Feature Requests ( 0 open / 0 total )
Feature Request Tracking System


Forums Forums ( 2 messages in 2 forums )
Docs Doc Manager
Mail Lists Mailing Lists ( 1 mailing lists )
Screenshots Screenshots
Tasks Task Manager
There are no public subprojects available
CVS CVS Tree ( commits, adds ) known bug
FTP Released Files
Sponsored by
Corollarium Technologies
Trivially the best solutions.
Thanks to:
SourceForge Logo

libGlass © 2003-2008 Bruno Barberi Gnecco
All rights reserved.