Browse Prior Art Database

Generalized Inter-task Communication on MVS/ESA

IP.com Disclosure Number: IPCOM000109163D
Original Publication Date: 1992-Aug-01
Included in the Prior Art Database: 2005-Mar-23
Document File: 3 page(s) / 149K

Publishing Venue

IBM

Related People

Schmidt, DW: AUTHOR

Abstract

Disclosed is a program that provides a generalized call interface to cross address space, inter-task communication. This interface was specifically designed to exploit the services provided by the base MVS/ESA* architecture. This interface is unique in that it makes the full functionality of the low-level MVS/ESA architecture readily available for invocation from the high-level 'C' programming language. The interface packages all the annoying details, while at the same time, provides the ability for applications built upon it, to directly and efficiently exploit the architecture themselves, if they so desire.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 45% of the total text.

Generalized Inter-task Communication on MVS/ESA

       Disclosed is a program that provides a generalized call
interface to cross address space, inter-task communication.  This
interface was specifically designed to exploit the services provided
by the base MVS/ESA* architecture.  This interface is unique in that
it makes the full functionality of the low-level MVS/ESA architecture
readily available for invocation from the high-level 'C' programming
language.  The interface packages all the annoying details, while at
the same time, provides the ability for applications built upon it,
to directly and efficiently exploit the architecture themselves, if
they so desire.

      The services provided by this interface range from high-level
message passing (in an extremely efficient fashion) between multiple
tasks within a single MVS image (system), to the ability for a task
within one address space to remotely invoke a procedure provided by a
task in a different (or same) address space, and optionally obtain a
result.  It must be noted that this interface does not require/allow
the application code to execute in supervisor state, although most of
the interface itself does execute in supervisor mode.

      As part of the definition process, a task specifies a list of
procedures that it provides, once a connection is established with
it.  These procedures can optionally be broken into multiple classes
of services, such that only a subset of all the services a given task
provides, are available to a given partner.  This can be used by the
service provider task, to restrict access to certain services, by
rejecting connection requests made by unauthorized tasks.

      This interface both maintains system integrity, by validating
the existence of connections in such a way that only 'trusted' MVS
tasks could bypass the validation, and is secure in that no
communication can occur until the target task accepts a connection
request.

      Tasks are logically grouped, in that once a task is
successfully defined, only other tasks within that group are visible
to it (i.e., can be connected to).  Any number of groups can be
defined within a single system, and a single task can be defined any
number times, in any combination of groups.  Also, any number of
tasks within a single address space can be defined.

      Groups are defined by non-swappable address spaces, which
generally either provide application-specific services which can be
consumed by the other tasks within the group, or control the other
tasks within the group.  This address space then becomes the 'master'
address space for that group.  The interface treats all other address
spaces that enter the group as slave spaces.

      Once a connection is established with another task within the
group, full bidirectional communication can occur.  The
sending/requesting task can optionally be blocked until the data is
received/ processed by the target task.  If t...