Article View: comp.protocols.iso
Article #1223Re: ISODE high-level explanation
From: Marshall Rose
Date: Mon, 15 Apr 1991 16:36
Date: Mon, 15 Apr 1991 16:36
188 lines
10134 bytes
10134 bytes
saint@stonyman.hac.com (Kathy Saint) writes:
>We're looking for a high-level explanation of ISODE to give to someone
>who is somewhat familiar with computer science. If anyone has such an
>explanation, or a reference to an article in a magazine or journal, I'd
>appreciate a reply.
>Thanks in advance,
>Kathy.
Here is an extract from something that appeared in print last year.
/mtr
///////
The ISODE (pronounced I-SO-D-E), or ISO Development Environment, is
a collection of library routines and programs that implements an
extensive set of OSI upper-layer services. The ISODE
implementation of the upper-layers of OSI is interesting in four
respects:
- it provides extensive automatic tools for the development of
OSI applications;
- it supports OSI applications on top of both OSI and TCP/IP-based
networks;
- it provides a novel approach to the problems of OSI coexistence
with and transition from the Internet suite of protocols; and,
- it is openly available (non-proprietary).
The ISODE was originally developed in 1986 at the Northrop Research
and Technology Center as a means to experiment with OSI
applications. Current support for the ISODE comes from Performance
Systems International (PSI) and partially from the U.S.~Defense
Advanced Research Projects Agency (DARPA).
The ISODE is an openly available implementation, available for a
minimal distribution fee from any of several international
distribution sites, via both postal and on-line means. There is an
implicit ``hold-harmless'' clause contained in the software,
although no signatures, letters of intent, or other such legal
encumbrances need be exchanged in order to receive a source release
of the software. Once a copy of the ISODE is obtained, any party
is free to make use of the software for any legal purpose,
including re-selling it for a profit (modified or not), providing
that the authors and distribution sites are held harmless from any
legal entanglements.
This style of openly available source coupled with contributions
from the user community is reminiscent of the early days of
DARPA-sponsored networking, when researchers freely exchanged their
findings in order to facilitate rapid understanding of the
technology. However, the policy is in sharp contrast to the modern
trend of so-called ``public domain'' software that can be used only
for non-commercial purposes. The openly-available/no restrictions
model is particularly appropriate for the ISODE, whose original
authors felt that the dearth of OSI implementations combined with
the frenzy for OSI-based systems outweighed the potentially huge
financial opportunity that could be made with a high-quality,
relatively complete implementation of OSI. Northrop management was
far-sighted enough to agree with this posture, which in turn set
the tone for subsequent sponsors of the ISODE.
The ISODE contains four parts:
- a set of application service elements;
- a collection of ASN.1 tools;
- presentation and session services; and,
- interfaces to transport and network layer realizations.
The ISODE currently reflects the Standards as they existed towards
the end of~1988.
As a result of continuing development and cooperation, the ISODE
now contains implementations of the four main OSI applications:
message handling (MHS), file service (FTAM), directory services,
and terminal service, plus a gateway between FTAM and the Internet
File Transfer Protocol (FTP), and a gateway between MHS and the
Internet Simple Mail Transfer Protocol (SMTP). Finally, the ISODE
contains a network management implementation, but not the OSI
network management protocol.
The ISODE was initially developed as a tool for studying how OSI
applications could be built. However, since then it has grown into
a system extensively used in international pilots of OSI services,
and it been pressed into service as a reference implementation of
the core aspects of OSI.
The ISODE is really a programming kit: the 6.0 release available in
January of 1990, contained everything but the message handling
software, and consisted of approximately~250,000 lines of C code,
along with a five volume user's manual of over~1000 pages. ISODE
runs on different variants of the \unix/ operating system, and does
not require any changes to the operating system.
Building Distributed Applications
Although the ISODE can be programmed at several levels, it provides
a set of semi-automatic tools, termed The Applications Cookbook,
which can be used to rapidly construct OSI applications.
In OSI, there is a concise notation for describing programs that
use remote operations. The ISODE contains a compiler which reads
this notation and produces equivalent procedure calls in the C
programming language. When a program calls one of these routines, a
run-time library is invoked which initiates a remote procedure call
across the network. Another compiler defines C data structures
equivalent to the ASN.1 structures defined by the notation.
Finally, a third compiler generates C code to map between the C and
ASN.1 structures.
The impact of a system such as the Applications Cookbook is that it
frees the programmer from worrying about network-specifics: the
programmer deals with the application-specific aspects of the
system, and the Cookbook deals with how the application talks to
the network.
Transport-Independence
When the ISODE was originally developed in January of 1986, there
were very few networks and systems which supported the OSI
transport service. In contrast, the Internet suite of protocols,
and in particular, it's reliable transport protocol, the TCP, were
widely deployed even at that time (and are even more so today).
To solve this problem, a transport service convergence protocol
(TSCP) between the TCP and the OSI transport service was developed,
known as the RFC1006 method. This particular TSCP is a simple
protocol that runs over the TCP and makes the service it offers
appear to be identical to the OSI transport service. This is an
important abstraction in that it allowed the development of native
OSI applications, that behaved as if they were running in a pure
OSI environment. Later, when some pure OSI environments became
available, the same applications ran without even being
re-compiled: they were simply reloaded with a new transport library!
This development led to an important abstraction in the ISODE
called the transport switch. When the ISODE is configured, one or
more transport-stacks are defined. A transport-stack is simply a
combination of protocols which offer the OSI transport service,
e.g., TP4 over CLNP, or TP0 over X.25, or RFC1006 over TCP. When a
connection is to be initiated, the transport-switch examines the
destination address and automatically invokes the correct
transport-stack. Once a connection is established, the appropriate
transport-stack is used exclusively for that connection.
Initially, the transport-switch was written with the belief that
there would be only a few transport-stacks that it would have to
know about. However, many in the new generation of network
technologies are likely to use their own transport service. As a
result, some predict that by mid-90's there will be many competing
transport services, all useful, but few interworking. In cases such
as these, the transport-switch will prove useful in providing a
transparent mechanism for OSI applications to run on these new
technologies.
Transition to OSI
Being able to run OSI applications over TCP/IP-based networks might
be an interesting approach towards the transition to OSI. But, if
one site has OSI applications running on top of TP4/CLNP, and
another runs the same applications over RFC1006/TCP, then how can
these two sites interoperate?
The solution is to provide a device called a transport-service
bridge (or active transport layer relay in ISO parlance). This is a
device which supports at least two different transport-stacks.
When a connection comes in on one stack, it starts a connection
with the second stack and then starts shuffling data.
Of course, such a device is outside the scope of OSI as it performs
functions which are not allowed within the framework of the OSI
model. As such, it should not be surprising that this ``solution''
is not perfect: issues such as accounting, access control, and load
balancing have yet to be resolved. But, in many environments, the
use of TS-bridges has proven crucial in achieving interoperability
between communities. For example, many sites run TCP/IP over their
local area network and also have a host with an international-X.25
connection. By running a TS-bridge on this host, all of the
machines on the local area network are able to access OSI services
available anywhere in the international-X.25 network.---
Marshall Rose
------- End of Forwarded Message
Technical Details
Message-ID:
<6470.671733389@cheetah.ca.psi.com>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!bionet!agate!ucbvax!CHEETAH.CA.PSI.COM!mroseShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!bionet!agate!ucbvax!CHEETAH.CA.PSI.COM!mrose From: mrose@CHEETAH.CA.PSI.COM (Marshall Rose) Newsgroups: comp.protocols.iso Subject: Re: ISODE high-level explanation Message-ID: <6470.671733389@cheetah.ca.psi.com> Date: 15 Apr 91 16:36:29 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: iso@nic.ddn.mil Organization: The Internet Lines: 188