Much of today's Grid technologies are appropriate for networks of powerful desktop computers, servers, super-computers
and clusters. However, they are not so obviously applicable in other networks, particularly those that consist of
resource constrained or unusual devices.
Among the resources that need to be accessed through a Grid are: CPUs, data, services and devices.
The Grid communities are exploring ways in which these resources can be represented and accessed from afar.
An emerging consensus is leaning towards a Grid Services interface built on Web Services technologies.
Whilst for some computers such an interface may work well, there are many others for which it is inappropriate.
For example:
-
Small resource constrained devices
-
Devices that have no IP address and do not communicate using Internet protocols
-
Services that, for efficiency reasons, cannot use XML based messages
And yet we still want these resources to participate in larger networks of computers.
A Web Services gateway may help address the first two but there still remains the problem of how to organize the
communication between components behind the gateway.
The Inferno operating system provides an appealing solution to this problem.
Underpinning Inferno is an architecture for distribution which is described in a paper by
Rob Pike and Dennis Ritchie:
The Styx Architecture for Distributed Systems.
This paper describes the Styx protocol which is the common language of communication that Inferno uses to
communicate between resources.
Protocol is a necessary but not sufficient requirement in order to easily build distributed systems.
One of the major problems when creating distributed applications across heterogeneous devices is that
there is no common environment that you can code to.
As a consequence most distributed systems are merely networked applications where each component
of the application is tied through linguistics and environment to a particular hardware or software platform.
This web site contains a wealth of information on Inferno and free versions of the software that can be
used to build real systems. You can access this information from www.vitanuova.com/inferno/index.html.
Before you build your own Inferno applications, you may wish to experiment with some of the Inferno
services that we have written.
The
demo section
of this web page gives access to a variety of interesting
devices and programs including:
-
Unusual hardware devices such as a digital camera and Lego robot
-
Collaborative activities such as shared whiteboard, chat rooms and multi-player card games
-
ODBC data sources
-
Remote execution of programs within a CPU Pool
These are examples of some of the common problems encountered by those building Grids.
The techniques we have used should prove useful when considering how to address your own problems;
full source code is provided for all the applications.
|