From: isc30248@nusunix3.nus.sg (LEE BOON PENG)
Subject: SHILPA Distributed Computing Enviroment
Organization: National University of Singapore
Date: Fri, 14 Aug 1992 12:10:59 GMT


The SHILPA Distributed Computing Environment 
--------------------------------------------

This is a source distribution of SHILPA version 1.0. SHILPA is a distributed
communication architecture developed at the National University of Singapore,
Department of Information Systems and Computer Science. It provides a set
of different communication mechansims for distributed computing.

This distribution contains source for both SunOS (SunOS 4.0 and above) & IBMPC
environment. Please read README.PC for details of PC source and dependants. 
Moreover, SHILPA Intra-machine Message Passing (or RPC call) uses System V 
Shared Memory in SunOS. As such, the shared memory must be configured in SunOS 
kernel. Note that this portion of code (Intra-machine call) is not stable. 
We welcome any reports of bugs. However, no promise is given that the bugs 
would be fixed. We also welcome any suggestions for bug fixes. Please send 
any bug reports, fixes, comments, suggestions, etc to:

		<shilpa@iscs.nus.sg>
	
The entire source package can be obtained through anonymous ftp from 
nuscc.nus.sg (137.132.5.2) at the National University of Singapore. Please
retrieve: shilpa_sun.tar.Z for the SUNOS version or shil_ibm.zip, the PC
version. They can be found under /pub/SHILPA. Please note that the PC 
version only implements the client-side of the package.

About the SHILPA Project
------------------------
 
The SHILPA Distributed Computing Environment  research program was initiated as
a joint collaboration between the  Department of Information Systems and
Computer Science and the High Performance Computing Applications group of ITI
in June 1990. The objectives of the research are:
 
    1.To develop a communication architectural reference model for distributed
      computing within a heterogeneous environment.
 
    2.To design and develop a set of comprehensive communication mechanisms to
      support general distributed computing across heterogeneous hardwares
      and operating systems.
 
    3.To develop various classes of services within each communication mechanism
         for different distributed applications.
 
    4.To  develop distributed applications using  the communication mechanisms
      available within SHILPA.
 
The aim of this project is to address these issues within the scope of the
hardware/software heterogeneity available within the department. Much of
the distributed systems software research has been experimental work in which
actual systems are built, and this project is no exception to that.
 
About  SHILPA
-------------

	SHILPA is layered communication architecture.

	There are many communication mechanisms available for distributed 
computing. However, one single communication mechanism cannot cater to all 
kinds of applications. For example, low-level message-passing mechanism is 
well suited for bulk data transfer, while remote procedure calls (RPC) are 
mainly used in request-response type of client-server applications.  

	Moreover, an architecture to provide an integrated, comprehensive 
and coherent view of useful communication mechanisms is not available.  
Instead, many of the existing distributed systems only define a distributed 
system architecture, and provide only one communication mechanism for 
distributed computing.  On the other hand, although the OSI model defined by 
ISO can be used as a communication architecture for distributed computing, 
it is not specially designed for that purpose; instead its main objective 
has been to provide a general reference model for interconnecting 
heterogeneous computer systems. SHILPA provides a layered communication 
architecture that incorporates several useful communication mechanisms.
 
SHILPA provides a rich set of communication mechanisms to the application
programmer .  This is to facilitate the building of diverse distributed
applications since no single communication mechanism is able to meet all
application requirements. The communication mechanisms defined include an
asynchronous remote procedure call mechanism (ASTRA), a Type-safe
Message-Passing mechanism (TMP), a Sun eXternal Data Representation (XDR) layer,
   a Byte-stream oriented Message-Passing mechanism (BMP), and a Reliable
Datagram Transport Protocol (SRDTP).  Each of these communication mechanisms
forms part of a layered architecture with consistent interfaces between them.
 
About ASTRA
-----------
The top layer is the RPC layer.  RPC is a useful mechanism for distributed
computing.  However, existing RPCs fail to exploit the parallelism inherent
in a distributed application.  This is because the client blocks while waiting
for the server to complete execution.  To remedy this shortcoming, we have
developed a new asynchronous RPC - ASTRA.  ASTRA calls do not block the client,
   thus allowing the client execution to proceed in parallel with the server
invocation.  The result is buffered at the client side when it is returned
by the server, and the client can claim the results later.  ASTRA also allows
a client to specify explicitly whether a call is to be optimized for
low-latency or high throughput.  Moreover, ASTRA optimizes any intra-machine
RPC calls by bypassing expensive network and data conversion operations.
ASTRA is fully compatible with SUN RPC; ASTRA clients can call SUN RPC servers
and vice versa. It provides a general purpose and familiar paradigm for
developing high performance distributed applications.
 
Availability
------------
The entire SHILPA architecture is portable. SHILPA is currently available on
Unix workstations such as the SUN 3, SPARCs, and the AT&T  3B4000. A simplified
version to support client applications development is available on MS DOS
platforms, and a similar version will be developed for the MAC platforms by
the first quarter of next year.
 
SRDTP is currently implemented as a separate daemon process. It will be
incorporated as part of the kernel by implementing it on top of System V
Streams. SRDTP will also be enhanced to include compression, and will be
extended to support audio, video, and graphics transport.
 
Several applications including distributed make, alphabeta serach,  raytracing
algorithm and  volume rendering and visualization applications have been
developed or in the process of development.
 
We have also designed and implemented a test tool for distributed applications
development; it is built on ASTRA. The test tool allows a programmer to
independently verify client or server application behavior. It greatly
simplifies distributed applications development.
 
Acknowledgement
---------------
This research & development is supported by a grant from NUS DISCS.
 
For  Further Information
------------------------
For more information on SHILPA, ASTRA, SRDTP or the distributed test tool,
please contact the SHILPA group at shilpa@iscs.nus.sg