[comp.protocols.iso.dev-environ] distributed programming language/ISODE

quester@cadlab.UUCP (Remco Quester) (06/12/91)

subject:   Questions regarding the usefulness of ISODE to build a (low level)
--------   communication basis for a distributed programming language (DPL)
	   based on C++.


Dear members of the ISODE discussion group,

I do research on distributed programming languages (DPL) which is aimed to
build a DPL based on C++ to support cooperation of integrated tools (like
editors, simulators, compilers, ...) for VLSI-design in an open integrated
framework for building CAD-environments.

My understanding of a DPL is what is described in [Tanenbaum89] and where
examples of DPLs are given: Concurrent C, SR, ORCA, CSP, ADA ... .
Those DPLs support (syntactically) a broad supply of different (more or less)
high level communication semantics (guarded receive of messages, Rendezvous,
RPC, shared objects, ...).

My intention is:
"to build the one-to-many RPC/Rendezvous-like communication aspect of my
 DPL on top of the transport layer (or higher layers) of the ISO/OSI reference
 model using multicast communication semantics (n * point-to-point)".
I intend to use ISODE to implement the communication aspects of my DPL.


Reference
=========
[Tanenbaum89]
Bal, Steiner, Tanenbaum, "Programming Languages for Distributed Computing
Systems", ACM Computing Survey 21(3), pp. 261-322, September 1989.



So my questions are:
====================

1.
As far as I know there is no DPL which communication aspects are based on
ISO/OSI-communication. Therefore I want to start with a fundamental question.

Are there fundamental reasons against basing the (low level) communication
aspects of a DPL on the transport layer (or higher ones) using ISODE ?
(Why and are there articles which discuss/demonstrate usefulness or not?)

2.
Should the inherent performance-lack of the ISO/OSI-communication be an
arguement not to use it for DPLs? (Are there other arguements that dominate
performance-issues?)

3.
How can I use ISODE to build protocols that use (reliable) multicast
communication? (Do you have some simple examples?)

4.
How can I use ISODE to build protocols that use nonblocking/asynchron
communication (send/receive)? (Do you have some simple examples?)

5.
Can I use the ISODE-libraries ( those that are based on light-weight
processes) to handle a send/receive-operation as a co-routine?
(Do you have some simple examples?)

6.
Can there problems arise if I use C++-Code and ISODE libraries together?
(resp. will there be a C++ version of ISODE) ?

7.
Do you know about research in building (object-based, object-oriented, ...)
DPLs which use ISO/OSI-communication (resp. ISODE)?



I would be pleased if you have references/authors/examples that answer
(parts of) the questions or if you can give some short remarks to the
questions. A quick response would be very kind.



Yours Sincerely

R. Quester




-----------------------------------------------------------------------------
  Remco Quester                          e-mail: quester@cadlab.cadlab.de
  University of Paderborn (CADLAB)
  Bahnhofstrasse 32                      phone:  +49 5251 284 135
  D-4790 Paderborn
  Germany                                fax:    +49 5251 284 140
-----------------------------------------------------------------------------

J.Crowcroft@CS.UCL.AC.UK (Jon Crowcroft) (06/12/91)

 >My intention is:
 >"to build the one-to-many RPC/Rendezvous-like communication aspect of my
 > DPL on top of the transport layer (or higher layers) of the ISO/OSI reference
 > model using multicast communication semantic >s (n * point-to-point)".
 >I intend to use ISODE to implement the communication aspects of my DPL.

your best bet is to examine the ANSA/ISA work on GEX - the Group
EXecution RPC part of the ANSA/RPC system it is being slowly fed to
the ODP standards (GEX was the group version of REX the RPC
transport...this may have changed in more recent documents than i've
seen).... that is about the only thing i've ever seen from standards literate 
people that addresses the problems of multicast above level 3 in the stack!!

i would be extremely interested if you find any practical work in
multicast at/above transport service...(i mean multicast that not only
does group entitiy addressing, buyt admitsd of packet optimisation the
way IP multicast can..)

thanks
jon.

fbaker@acc.com (Fred Baker) (06/12/91)

>> "to build the one-to-many RPC/Rendezvous-like communication aspect of
>> my DPL on top of the transport layer (or higher layers) of the ISO/OSI
>> reference model using multicast communication semantics (n *
>> point-to-point)".  I intend to use ISODE to implement the communication
>> aspects of my DPL.

I am not altogether sure what you mean, in your note, by ISO/OSI
communication.  I think you are refering to the use of one of the ISO
stacks (X.25/CONS/TP0 or CLNS/TP4 or CLNS/CLTS); if so, the fundamental
premise of ISODE is that the underlying service isn't particularly
relevant if it can be made to provide a communication service having
the intended characteristics - isode in fact runs over IP/TCP or IP/UDP.

The issue you are going to get into using ISODE, I suspect, is that it
doesn't define a multicast service - it defines ways to have duplex
communications with many peers, not n-plex communications with a set of
peers.  You are going to have to engineer the n-plex service.

>> As far as I know there is no DPL which communication aspects are based
>> on ISO/OSI-communication. Therefore I want to start with a fundamental
>> question.

While it's not quite what you asked, you might want to consider OCCAM.
It describes a relationship between processes which are not presumed to
be in the same processor, but which ARE presumed to be connected by
reliable simplex data streams.  Implementation of what they call the
Communicating Process Architecture on top of a classic transport
service should be fairly straightforward.

>> Are there fundamental reasons against basing the (low level)
>> communication aspects of a DPL on the transport layer (or higher ones)
>> using ISODE ?  (Why and are there articles which discuss/demonstrate
>> usefulness or not?)

No, as experience with Courier (XNS) and RPC (Sun) have demonstrated in
practice.  SNMP was originally implemented using pieces of ISODE.

>> Should the inherent performance-lack of the ISO/OSI-communication be an
>> arguement not to use it for DPLs? (Are there other arguements that
>> dominate performance-issues?)

X.25 is pretty miserable for performance, but TP4 on CLNS is not
inherently much different than TCP on IP; the big differences are in
the checksum calculations, the NSAP/Address lookup, and the fact that
the installed software base lacks maturity.  If X.25 is limiting your
options, use something that doesn't.

>> How can I use ISODE to build protocols that use (reliable) multicast
>> communication? (Do you have some simple examples?)

>> Do you know about research in building (object-based, object-oriented,
>> ...) DPLs which use ISO/OSI-communication (resp. ISODE)?

I would suggest that you contact Steve Deering at Xerox PARC.  He has
done a fair amount of research on general multicast technologies, and
written some RFCs dated 1985->last year.

You should also contact Craig Partridge.  When SNMP and CMOT were first
being seriously considered by the IETF, he was championing a third
approach called HEMS, in which he viewed the network as a database
accessable by a query language/protocol.  He probably has some insights
which would apply to your application.

Fred

berlen@teculx.TECSIEL.IT (06/19/91)

Remco Quester writes:
 > 1.
 > As far as I know there is no DPL which communication aspects are based on
 > ISO/OSI-communication. Therefore I want to start with a fundamental question.
 > 
 > Are there fundamental reasons against basing the (low level) communication
 > aspects of a DPL on the transport layer (or higher ones) using ISODE ?
 > (Why and are there articles which discuss/demonstrate usefulness or not?)
 > 

Actually ISO/SC21/WG6 "OSI Session, Presentation and Common
Application Services" is Actively working on the standardization of 
a Remote Procedure Call which uses the OSI Stack (Presentation,
Session etc.).  This work is coordinated with the ODP one.

Moreover the OSF Distributed Computing Environment (DCE) Standardized
an environment composed of several components:

RPC, Security, Distributed File System, Thread, Time, Directory, and
PC integration

which were thought to be portable on several environment (not only Unix
OSF/1) and several communication protocols; it is now available on TCP-IP
and UDP-IP and is easily portable on OSI Transport (TP4 or TP2); it
should also be portable on OSI Presentation.

About DCE RPC it includes a Interface Definition Language (IDL), which
is a potential point of convergence between ISO and OSF/DCE work, and
a compiler to automatically generate application data structures and
run time support to completely hide the real communication mechanism
used.

This allows you to write your application masking the communication
stack and the to easily port it.

The DCE Developers' Kit is distributed to OSF members and now also
to third party; the first release will be shipped at the end of August
or beginning of September, snapshot 4 (i.e. 4rd pre-releases) is going
to be delivered very soon.

==============================================================================
	Oronzo Berlen
	Tecsiel s.p.a.				   tt
	(an IRI-Finsiel Company)                 tttttt	
	Via Santa Maria, 19              	   tt
	I-56126 PISA (PI)			   tt
	Italy					    ttt
	
	Phone: +39-50-512-511 (operator) 
	       +39-50-512-529 (direct)   

	Fax  : +39-50-589-016		  
	       +39-50-589-017

	E-MAIL: berlen@tecsiel.it (Arpanet)