General Information
A grid computing system is a distributed collection of computers that enables Internet
Programming, i.e. the sharing, selection, and aggregation of resources across a large network like
the Internet based on their availability, capability, performance, cost, and ability to meet quality-of-
service requirements. Grid technology is fast revolutionizing business models and scientific
research methods in areas as diverse as bioinformatics and financial services industries, with
companies like IBM, Sun, Apple, and DataSynapse being among the early adopters. The
heterogeneous nature of the Internet coupled with security concerns pose many challenges for
users of the grid, particularly for grid application developers. The Globus Toolkit and the Open
Grid Services Architecture (OGSA) have emerged as de facto standards, providing a
framework for secure grid computing. The Grid Application Toolkit (GAT) [GridLab], for
example, provides an interface between the application level and the grid middleware. However,
building a grid system or application to meet the specific needs of a user currently requires the
integration of many tools and services that are available "off the shelf" or from the Grid
community. In order for users to realize the full potential of the grid as a broadly accessible
problem-solving platform, application development must be made drastically easier with tools
that facilitate the programming process.
Project History
Pulimood’s research has been primarily in using mobile computations to share resources on the
Internet [Pulimood]. A mobile computation is a program that can commence execution at one
site, discover a need for a resource at a different site, halt execution, migrate, and continue
execution at the new site [Cardelli]. In order to continue execution (without being forced to start
over) the current state of execution must migrate along with the computation. Migrating a
running process is a non-trivial task that is exacerbated by the heterogeneity of the computing
infrastructure. In the pre-web days, research efforts focused primarily on distributed computing
on local area networks with a limited number of nodes with systems like REV, Emerald, Obliq,
Orca etc., which were found to be unsuitable for large-scale heterogeneous networks. Systems
like D'Agents, MobileML, and Mobile UNITY are extensions of languages that were originally
designed for non-mobile environments. Since the Java Virtual Machine (JVM) does not allow
capture of closure of running processes, efforts have been made to explore various techniques,
like checkpointing, to serve the purpose. While there are advantages to be gained by utilizing
features already available, the constraints, disadvantages, and overheads of circumventing the
inherently non-mobile nature, are detrimental to the concept of mobile computation. For
example, systems that attempt to leverage Java's ubiquity have to contend with its security gaps,
and lack of strong (closure) mobility features. [Pulimood]. Pulimood theorized that native
support for strongly mobile computations is an essential prerequisite for a user-friendly
programming language that can produce efficient and secure grid applications. As a proof-ofconcept,
she designed and implemented a prototype of a Mobile Computational Model that
includes the Mobile Computational Language (MCL), for developing applications with mobile
computations, and the RISC-based Virtual Machine (RVM), that performs the actual execution
of the computations. Preliminary performance testing of the RVM has yielded promising results.