



	IDevelopment and Usage of a Local Laboratory NetworkJ



			 H.T.M. Haenen
	Department Clinical Neurology and Information Processing
		 University Hospital Groningen
			The Netherlands



			 IIntroductionJ

Around 1980 our laboratory had two PDP-11 systems available for real-time
data-acquisition and processing. These systems were not equal configured:
while one had a newer large capacity disk, the other had several printers and
a plotter. These devices could not be exchanged at that time due to the
Unibus / Q-bus difference. So, we strongly felt the need for fast data
exchange as it was highly desirable that BOTH systems could take advantage of
the large disk and printers / plotter. As at that time no mature
communication systems existed, some pioneering work was done which led to the
design of a data communication facility between the two PDP-11's.

As a growth of the number of computer systems could be foreseen, a modular
design was mandatory so that starting from a single data-link a whole network
could be build up. With the modules developped a mixture of star, ring and
chain network topologies is possible. The design goal is strongly influenced
by the laboratory environment (real-time data-acquisition, fast data analysis
requiring computing power and fast graphics) and can be summarized as
follows: 

	- high speed:   the amount of data to be exchanged may be quite
			large (signals, pictures)
	- low overhead: contributes to effective speed, keeps CPU load low
		        and facilitates real-time (parallel) processing
	- no restriction to a single network topology
	- no modification of operating system components or it's utilities
	- hardware dependent code should only appear in device handlers
	- low cost as well as high performance communication hardware

The main principle underlying the network designed was what we would like to
call "transparent remote device usage". By this we mean that a device which
is available on a remote computer system, looks just as if it were available
locally and can also we used as a local device. Nowadays a "transparent
device usage" facility can be found in many network services (e.g. VMS
MSDOS-services, LAVC: local area vaxcluster).


		   IThe network and it's componentsJ

First of all let's have a look at the hardware we use. When we started and
wanted fast data-exchange, our preference was to use common available fast
interface such as the parallel interfaces DR-11C/K / DRV-11. Having a
electronic workshop at hand it turned out to be easy to link two of these
devices in a such a way that a handshake connection was possible. In that way
no data overrun could occur and a data transmission speed of ca. 40 Kw./s.
(640 Kbaud) was attained. Later also interfaces from 3rd companies became
available having higher speed and/or longer data link distances (e.g.
WB(V)-11 and a DMA interface: the Qnector).





The software components of a basic data link consist of a DC-handler (DC ==
data communication) on one side and a server on the other side of the link
(fig. 1). The DC-handler drives the DC-interface and can accept I/O transfer
commands such as read, write, special function or directory requests. The
server job ("task" or "process") links with the help of a job-handler to the
other data communication interface. The DC- as well as the job-handler
perform internally the communication protocol processing (e.g. error
checking, packing / unpacking packets for the modified Radial Serial
Protocol). The DC-handler on one side and the server on the other side can
maintain up to 256 logical links (LL). The server now ties to each LL an I/O
channel to a device unit in the system. It may allocate the whole unit or
just a file on it. On the other hand also the DC-handler ties each of it's
device units to a LL. In this way each device unit of the DC-handler is
directly linked to a remote device unit or file.























			Fig. 1 The basic data link.
 
Unit 0-6 of the DC-handler use the first six logical links in order to acces
six device units on the remote system. Logical link 7, corresponding to
DC-handler unit 7 is reserved for mail and server settings (e.g. protection
codes) exchange. If the first six remote device units are disks, then the
DC-handler is also configured within it's own system as a disk device. Since
the remote disk units may vary in size, the DC-handler is set to be a
variable volume device. This means that the O.S. has to issue a special
function request in order to get the disk storage size. The problem now
arises is how to access a remote printer since in our example the DC-handler
was configured as a disk. This problem is solved with the introduction of the
so-called "pseudo-handlers" (fig. 2). Such a handler looks to the local
system as a normal device handler but, in fact, drives no physical device.
Instead the pseudo-handlers pass requests to the DC-handler. In our case for
example a pseudo-handler may be configured as a printer. The pseudo handler
now drives the remote printer by forwarding the print request to the
DC-handler which on his turn sends the request with it's data to the server.
This server then actually does the printing on the printer.
























		Fig. 2 The DC-handler and the pseudo-handler



			  IUsage of the networkJ

The most important guide to the usage of the network is the network lay-out
plan, an example of which is given in Fig. 3. Along the connecting lines, the
data communication links, the names of the pseudo-, DC-handlers and server
jobs, job-handlers to be used are indicated. So addressing in this network is
done by using the appropriate unit of a pseudo- or DC-handler.
The appropriate unit number itself can be found from the so-called device
list of each system. This list specifies which device (unit) in the system is
connected to which logical data communication link. In fig. 4 three device
listst of three connected systems are presented. Local or remote device lists
can be on-line displayed using network utilities. In order to access a
certain device in these lists one needs a pseudo- or DC-handler that can
access the corresponding logical link. Therefore all handlers have settable
logical link numbers and can display the current setting with a SET SHOW
command. Each device in the list can have a read-only, write-only or
no-access protection. Network utilities can display these protection and
optionally modify them.

Other utilities can send messages to a local or remote mailbox and display
new received messages. The remote date & time can be displayed and optionally
set locally. Full information on remote systems is on-line available: display
of remote system parameters and spooler status. As remote disks can be used
as if they were present locally, they also can be used to boot from.
Therefore also "memory-only" systems can be put to work. Also multiple
systems can, in this way, use the same system disk. However, in this case, a
disk-cache is needed which swaps temporary system data to the local memory
instead of the remote disk. 



						[-- DX (RX01) : floppy drive
			       __________	[             
			      +---------+|	[-- XZ   : video black/white
	       RK,JP (WBV-11) |  LSI3   ||	[	   (512*512)
		   ___________| (EMG2)  ||......[-- DU   : winchester 30 Mb.
                  | DCJOB0,WJ |  11/23  ||	[
		  |	      +---------+	[-- ADC  : Anal.Dig.Conv
		  |				[-- KWV  : Real-time Clock
                  |
	     	  |
	     	  |				[-- DM  (RK07) : disk 28 Mb.
	DCJOB2,WK | RM 	(WB-11)			[-- DX  (RX01) : floppy drive
	      __________			[
	     +---------+|			[-- LP  : fast printer
	     |         ||			[
             |  PDP2   ||.......................{-- LS  : wide printer
	     |  11/34  ||			[
	     +---------+  			[-- CP/XY  : plotter
      DCJOB1,WJ |  | DCJOB0,DJ	(DR-11C)	[
        (WB-11)	|  |	      _________		[-- LQ  : quality  printer
		|  |  	     +--------+|
		|  | 	     |	PC    ||
	       	|  |         |        ||
	      	|  |         |MSKERMIT||
	      	|  |         +--------+         [-- RK0/1 (RK05F): fixed 5 Mb.
	      	|  |           XL |     	[-- RK2   (RK05J): removable
	      	|  |          _________		[
	      	|  | 	     +--------+|	[-- MT  : Magtape
		|  |	     |Kermit11||	[
		|  |_________|  PDP1  ||........[__ LPS : Lab.Periph.System
		|    DP,JP   |  11/34 ||        [	 (A/D,clock,dig. I/O)
		|   (DR-11C) +--------+		[-- XZ  : video black/white
		|	         | DCJOB1,KJ		   (512*512)
		|		 |(DR-11K)
		|	         |
		|		 |
		|	   DR,JP | (DRV-11)	[-- ADC : Anal.Digit.Convers.
		|	      _________		[-- KWV : Real-time Clock
		|	     +--------+|	[
		|	     |	      ||	[
		|	     |  LSI1  ||........[-- XC  : video color
		|	     |	11/73 ||	[	   (512*512)
		|	     +--------+		[-- DRV : parallel I/O
		|	   QN,LP |(Qnector)
		|		 |
		|		 |
		|          	 |		[-- DL  : winchester 30 Mb. 
		|		 |		[
		|      DCJOB0,QJ | (Qnector)	[-- DY (RX02) : floppy drive
		|             _________		[
		|	     +--------+|	[-- EP  : printer (epson)
		|	     |	      ||	[	
		|____________|  LSI2  ||........[-- ADC : Anal.Digit.Convers.
		   RK ,JP    |	11/23 ||	[-- KWV : Real-time Clock
		  (WBV-11)   +--------+		[-- XC  : video color
						[	   (512*512)
						[-- XZ  : video black/white
							   (512*512)

		Fig. 3 Example network plan (NKG-AZG 23-dec-86)


  SYSTEM 1 (memory-only)  SYSTEM 2		  SYSTEM 3
  ========		  ========		  ========
  LL device/file	  LL device/file	  LL device/file
  -- -----------	  -- ---------------	  -- -------------------
   0 DR0: O. S.            0 RK0: O.S.     *       0 DX0:	       *
   1 DR1:                  1 RK1:          *       1 DX1:	       *
   2 DR2:                  2 RK2:          *       2 VM :	       *
   3 DR3:                  3 VM :          *       3 DM0:APPL1.DSK     *
   4 DR4:                  4 LD1:                  4 DM0:APPL2.DSK     *
   5 DR5:                  5 LD2:                  5 DM0:APPL3.DSK     *
   6 DR6:                  6 RK1:APPL0.DSK *       6 DM0:APPL4.DSK     *
   7 DR7:                  7 DP7:                  7 DM0: O.S.	       *
   8 Mailbox               8 Mailbox               8 Mailbox	       *
   9 HL:  Hello to next    9 HL:  Hello to next    9 ---
  10 SP0: Remote Spooler  10 SP0: Remote Spooler  10 LP0: Fast printer *
  11 SP1:		  11 SP1:      	          11 LS0: Wide printer *
  12 SP2:                 12 SP2:                 12 CP : Plotter      *
  13 SP3:                 13 SP3:                 13 LQ : Quality prnt *
  14 PP :		  14 PP :		  14 PP :
  15 MT:  Magtape         15 MT:  Magtape  *      15 ---

     *  = physical device on this system
     LL = logical link number

	Fig. 4. Device lists of three connected systems.



The network has grown around the more or less central system, the PDP2. Here
the central databases are stored. Also the programs like the database
utilities and programs from packages (e.g. the statistical BMDP) are stored
here and can be run on every other system. All the disks in the network can be
backed up with the Magtape on PDP1. The reason that the Magtape is located on
this system and not on the more central PDP2 is that a special real-time
application designed for PDP1 needs the Magtape for the output of compressed
data. This application is very time critical and needs full system resources.
The powerfull LSI-11/73, LSI1, is located between PDP1 and LSI2. In this way
it can assist both connected systems in providing additonal computing power.
An other reason is that with this location it can gather large data files
produced on LSI1, compress them (CPU intensive), and store them on the Magtape
of PDP1.

Finally, the advantages of the network can be summarized as follows:

	- undisturbed real-time processing for selected nodes
	- highly fail-safe: when the hardware of one system fails, the
	  other systems continue to work (when the spooler system fails,
	  data are kept in files)
	- shared access to centralized devices such as large disk,
	  fast printers, tape units.
	- access to shared data, large scratch area can be reserved and
	  claimed by users sequentially
	- many centrally stored programs can be executed everywhere
	- simplified backup procedures, all disks can be backed up by a
	  single central available tape unit
	- parallel processing: data can be send from the memory of one
	  system to the memory of another, multiple systems may be computing
	  on the same data in real-time.
	- mail exchange, full remote systems information
	- the network is reconfigured quickly when usage this requires
	- as most users by experience are familiar with the network concept,
	  the introduction of newer networks (e.g. LAVC) is likely to
	  proceed smoothly



			IThe future of the networkJ

Many applications of which several perform real-time data-acquisition have
been developped for the systems in the current network. Until nowadays this
has proved to be a good investment due to the high reliability of the
PDP/LSI-11 systems and the continuing support of DEC. However, the
maintenance of the PDP-11/34's is costly and may become cumbersome in near
future. So they have to be replaced soon. For compatiblity and performance
reasons the best replacement is probably a local area cluster of e.g. a
microVAX 2000 running VMS and one or two (memory-only ?) microVAX II running
VAXELN for the real-time applications. But now the problem arises how to
interface the remaining network with LAVC? The nicest, 'transparent',
solution would be to have a compatible server running under VMS. Development
of such a server is estimated to be a small investment as it can be
programmed in a high-level language. A larger investment in man-power could
be the development of the server's device driver, although several example
device drivers for the hardware of interest are public available (DECUS
Library: VAX-48, 89, 124, 126). For not-compatible communication (probably
restricted to file transfer) with the our network there are already many
solutions: TRANSF or DECNET (however, no ethernet support), ETHERLINK (based
on Ethernet) or user developped communication packages (e.g. DECUS Library
VAX-126). Once VAX/VMS is available also the introduction of IBM-compatible
PC's is solved using the MSDOS services.


			     IConclusionsJ

A collection of programs and device handlers realises a network with high
speed data communication links. Transparent remote device usage: remote
devices are used in the same way as if they were local. High performance
processing, also in real-time and fail-safe The well-structured software
allows many network-topologies to be setup. Low cost as well as high
performance hardware is implemented. Moreover implementing new hardware is a
relative small task as only two handlers have to be coded. Cheap memory-only
systems can be put to work due to boot capabilities.

A very important advantage of the experience with the current network is
that users and system manager will have little difficulty in familiarizing
with e.g. PC-networks and networks like the LAVC.


			       IReferencesJ


1.  Haenen, H.T.M.
    "A Modular Data Communication Package Providing
     a Multiuser Environment and Parallel Processing"
    Proceedings DECUS EUROPE
    Coventry U.K., Sept. 1982, pp. 81-88

2.  Haenen H.T.M.
    "Multiprocessing and High Speed Datacommunication"
    Proceedings DECUS U.S.A.
    Anaheim, California, Dec. 1985, pp. 505-510

3.  The "Radial Serial Protocol (RSP)".
    Microcomputer Interfaces Handbook. DEC 1980, p. 640

4.  Haenen, H.T.M.
    "Disk Usage Analysis and Disk Data Caching"
    Proceedings DECUS EUROPE
    Zuerich, Switzerland, August/Sept. 1983, pp. 247-252

5.  Haenen H.T.M.
    "The Disk Data Cache"
    Proceedings DECUS U.S.A.
    New Orleans, Louisiana, May 1985, pp. 379-383

6.  Haenen H.T.M.
    "Handler versus IN-LINE interrupt code"
    Proceedings DECUS EUROPE
    Cannes, France, Sept. 1985, pp. 313-323

7.  Haenen H.T.M.
    "The System Display"
    Proceedings DECUS EUROPE
    Hamburg, West-Germany, Sept. 1986, pp. 477-489

Applications:

8.  Weerden T.W. van, Haenen H.T.M.
    "The different Components determining the physiological Tremor
     of the Hand"
    6th Intern. Congr. Electromyography
    Acta Neurol. Scand. 60 (1979) Suppl. 73, 238

9.  R. Sia, S. Boonstra, P. Westra, H. Haenen
    "An EEG Study of 4-Aminopyridine"
    Anesth. Analg. 1982, Vol. 61, pp. 354-357

10. Haenen H.T.M., Scheltinga D. van
    "Evoked Potential Processing based on multiple Processors"   
    Proceedings DECUS EUROPE
    Amsterdam, The Netherlands, Sept., 1984, pp. 65-81



11. Haenen H.T.M., Scheltinga D. van
    "An intelligent recording System for Signal Analysis"   
    Proceedings DECUS EUROPE
    Amsterdam, The Netherlands, Sept., 1984, pp. 20-28

12. Zwarts M.J., Haenen H.T.M.
    "Muscle Fiber Conduction Velocities and Power Spectra during
     sustained Isometric Muscle Contractions"
    EEG & Clin. Neurophys., Vol. 61, No. 3, Sept. 1985, p. S59
    (XIth Internat. Congress of EEG & Clin. Neurophys.)

13. Zwarts M.J., Van Weerden T.W., Haenen H.T.M.
    "Relationship between average muscle fiber conduction velocity and
     EMG power spectra during isometric contraction, recovery and applied
     ischemia"
    Eur. J. Appl. Physiol. (1987) 56: 212-216

14. Zwarts M.J., Links T.P., Haenen H.T.M., Oosterhuis H.J.G.H.
    "Muscle fiber conduction velocity and EMG powerspectra in
     familial Hypokalemic Periodic Paralysis"
    6th International Symposium in SFEMG and Quantitative EMG
    Analysis, june 16-17, 1986, Vienna, Austria

15. Haenen H.T.M.
    "Data Reduction of Visual Evoked Potentials using a Dipole Model"
    EEG & Clin. Neurophys., Vol. 61, No. 3, Sept. 1985, p. S227
    (XIth Internat. Congress of EEG & Clin. Neurophys.)

16. Haenen H.T.M.
    "A new color display method for Evoked Potential reliability"
    To be presented at 8th Int. Congress of EMG and related Clin. Neurophys.,
    Sorrento, Italy, May 1987.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     