|
|
|
| United States Patent | 5636371 |
| Link to this page | http://www.wikipatents.com/5636371.html |
| Inventor(s) | Yu; Kin C. (Burlington, MA) |
| Abstract | A local host data processing system operating under the control of a local
host operating system includes components of a hosted operating system.
The host operating system further include a TCP/IP network protocol stack
which couples to the communications facilities of the host system
connected to a local area network for communicating with a number of
remote host systems. Host and hosted operating systems share the same
TCP/IP network protocol stack. A virtual network mechanism is configured
within the local host system to be operatively coupled to the host network
protocol stack and provide access to well-known port application programs.
When so configured, the mechanism functions as another LAN to which the
hosted operating system is attached. The mechanism transforms the
well-known port identifier of each inbound packet into a non-well-known
port identifier in addition to other station address identifier fields. It
then redirects the transformed packet back to the IP layer of the stack
for transfer to the appropriate well-known port application program of the
hosted operating system. It reverses this operation for each reply packet
which is also redirected back to the IP layer for forwarding to the remote
system. This eliminates the need to specify additional protocol stacks and
to provide additional communication hardware facilities for handling
multiple instances of well-known port applications programs. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5636371 |
|
|
Virtual network mechanism to access well known port application programs
running on a single host system |
|
|
|
|
|
| Publication Date |
June 3, 1997 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
RELATED PATENT APPLICATIONS
1. The patent application of Richard S. Bianchi, Dennis R. Flynn, Marcia T.
Fogelgren, Richard A. Lemay, Mary E. Toyell and William E. Woods entitled,
"Executing Programs of a First System on a Second System," filed on Sep.
28, 1993 bearing Ser. No. 08/128,456 which is assigned to the same
assignee as this patent application.
2. The patent application of Kin C. Yu and John L. Curley entitled "Sockets
Application Program Mechanism for Proprietary Based Application Programs
Running in an Emulation Environment", filed on Mar. 30, 1995, bearing Ser.
No. 08/413,333 which is assigned to the same assignee as this patent
application. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
Claims  |
|
|
What is claimed is:
1. A method which allows a local host system to share a communications
network software facility of the local host system operating system
between a number of data communications application servers operating
under the host operating system and a corresponding number of data
communications application servers operating under components of a hosted
operating system running under control of the local host operating system,
the local host system being coupled to at least one remote host system
through a local area network (LAN) and an internetwork, the network
software facility being coupled to a communications network interface unit
which includes interfacing hardware and software for connecting the local
host system to the LAN for communicating with the remote host system using
a standard communications network protocol which is characterized by
assigning different station address identifier values to each host system
requiring that the local host system and hosted operating system be
assigned different station address identifier values and well-known
services function identifier values to the different data communications
application servers associated with local host system and hosted operating
systems so that servers performing the same service function are assigned
the same well-known services function identifier value for directing
incoming packets sent by the remote host system to the appropriate
application server, said method comprising the steps of:
(a) configuring a virtual network mechanism within the local host operating
system to be operatively coupled to the host operating system
communication network software facility and to function as if an another
LAN connected to a virtual host system running the hosted operating system
and operating as if it contained its own communications network software
facility;
(b) mapping predetermined portions of each incoming packet by the virtual
network mechanism sent by the remote host system and received from the
local host communications network software facility by (1) changing the
station address identifier value of each incoming packet to specify the
local host system as a destination and the virtual network mechanism as a
source of the packet for returning any reply packet thereto and (2)
changing the well-known services identifier value to a virtual identifier
value so that the mapped incoming packet received from the virtual network
mechanism is directed by the host operating system communications network
software facility to the appropriate communications application server of
the hosted operating system for processing; and;
(c) remapping the predetermined portions of each outgoing reply packet sent
by the hosted system communications application server through the
communications network software facility to the virtual network interface
mechanism by restoring the remote host station address identifier and
well-known service identifier values so each outgoing reply packet sent by
the virtual network mechanism to the internetwork appears to the remote
host system as a reply packet to the communication between the remote host
system and the hosted system communications application server as if the
server had been reached through the LAN using the originally sent station
address assigned to the hosted operating system and well-known services
identifier value.
2. The method of claim 1 wherein the virtual network mechanism includes
interfacing software similar to the network interface unit for minimizing
the amount of software required to be added to the local host operating
system and for utilizing the network routing capabilities of the
communications network software facility.
3. The method of claim 2 wherein the communications network software
facility includes a TCP/IP protocol stack containing TCP and IP layers and
the virtual network mechanism utilizes the network routing capabilities of
the IP layer.
4. The method of claim 1 wherein the standard communications network
protocol is the TCP/IP protocol, the station address identifier value
corresponds to an IP address containing IP source and IP destination
addresses and the well-known service function identifier value corresponds
to a TCP well-known port number value containing TCP source and TCP
destination port numbers.
5. The method of claim 1 wherein configuring step (a) of the method
includes the step of:
(d) performing an initialization operation by the virtual network mechanism
which setups and builds a predetermined types of control data structures
for enabling processing of each incoming and outgoing packet through the
interfacing software included in the virtual network mechanism.
6. The method of claim 5 wherein the predetermined types of control data
structures includes a first structure which defines the existence of the
virtual network mechanism to the network software facility and a second
structure which defines the virtual network mechanism.
7. The method of claim 6 wherein the first structure is an interface
network structure utilized by the host operating system and the second
structure is a software control structure which is used to manage packet
processing for each of the client application programs running on the
remote host system.
8. The method of claim 7 wherein the second structure contains a
predetermined number of fields, a first field for storing the state of the
virtual network mechanism, a second field for maintaining a count of the
number of different client entries being managed by the virtual network
mechanism, third and fourth fields for storing the local host and virtual
host station address identifier values wherein the virtual host station
value is generated by performing an arithmetic operation on the local host
station address identifier value and a fifth field for storing a client
pointer value for accessing the first client table structure generated by
the virtual network mechanism.
9. The method of claim 6 wherein the predetermined types of control data
structures includes a number of client table structures, each client table
structure being associated with a different client application program of
the remote host system which has established communication with the local
host system.
10. The method of claim 9 wherein a new client table is assigned by the
virtual network mechanism each time a connection packet is sent by a
different client application program running on the remote host system.
11. The method of claim 10 wherein the remote host system establishes
connection with the hosted operating system data communication services
application servers by configuring the remote host to have the local host
system function as a "gateway" so that the local host system
communications network software facility automatically routes incoming
packets sent by the remote host system to the virtual network mechanism.
12. The method of claim 10 wherein the client table includes a
predetermined number of fields, a first field for storing the station
address identifier value of the remote system client application program,
a second field defining the operational state of the client table, third
and fourth fields for defining different client application program port
identifier values and a fifth field for storing a timer count value
defining client application program activity.
13. The method of claim 1 wherein each mapping step of the method of claim
1 further includes the step of:
(e) regenerating the checksum for each incoming and outgoing packet for
enabling the network software facility of the local host system to
correctly process said each incoming and outgoing packet by standard
protocol procedures.
14. The method of claim 1 wherein the method further includes the step of:
(f) saving the station address identifier value of the remote host system
and the well-known services identifier value contained in each incoming
packet in a client table structure generated by the virtual network
mechanism which can be indexed through the virtual identifier in response
to having received an initial connection packet from a client application
program running on the remote host system for enabling the subsequent
mapping of each reply packet.
15. The method of claim 1 wherein the mapping step (a) of the method
includes the step of mapping the well-known services identifier value to a
non-well-known services identifier value containing the well-known
services identifier value.
16. The mechanism of claim 15 wherein each of said first and second mapping
components includes means for regenerating checksum for each inbound and
outbound packet for enabling the network software facility of the lock
host system to correctly process said each inbound and outbound packet by
standard protocol procedures.
17. A virtual network mechanism which allows a local host system to share a
communications network software facility of the local host system
operating system between a number of data communications application
servers operating under the host operating system and a corresponding
number of application servers operating under components of a hosted
operating system running under control of the local host operating system,
the local host system being coupled to at least one remote host system
through a local area network (LAN) and an internetwork, the network
software facility being operatively coupled to a network interface unit
which includes interfacing hardware and a software for connecting the
local host system to the LAN for communicating with the remote host system
using a standard communications network protocol which is characterized by
assigning different station address identifier values to each host system
such that the local host system and hosted system are assigned different
station addresses and well-known services function identifier values to
the different data communications applications servers associated with
local host system and hosted operating systems so that servers performing
the same service function are assigned the same well-known services
function identifier value for directing incoming communications data
packets sent by the remote host system to the appropriate communications
application server running on the hosted system, said mechanism
comprising:
(a) an interface component configured within the local host operating
system to operatively couple the virtual network mechanism to the host
operating system communications network software facility as if an another
LAN which connects to a virtual host system, the interface component
serving as the equivalent of the components of the hosted operating
system;
(b) a first mapping component coupled to the interface component for
mapping predetermined portions of each incoming packet sent by the remote
host system and received from the interface component through the local
host communications network software facility so that the station address
identifier value of each incoming packet is changed to specify the local
host system as a destination and the virtual network interface mechanism
as a source of the packet for receiving for processing each reply packet
sent by a hosted communications application server and the well-known
services identifier value is changed to a virtual identifier value so that
the packet is directed by the communications network software facility to
the appropriate communications application server of the hosted operating
system for processing; and,
(c) a second mapping component for mapping the predetermined portions of
each outgoing reply packet sent by a hosted system communications
application server to the interface component by restoring the remote host
station address identifier and well-known service identifier values so
each outgoing reply packet appears to the remote host system as a reply
packet to the communication initiated by a client application program
running on the remote host system and the hosted system communications
application server as if the server had been accessed through the LAN
using the station address assigned to the hosted system and well-known
service identifier value previously established for designating that
service function.
18. The mechanism of claim 17 wherein the mechanism further includes an
initialization component for setting up and building predetermined types
of control data structures for enabling processing of each incoming and
outgoing packet received from the interface component.
19. The mechanism of claim 18 wherein the predetermined types of structures
include a first structure which defines the existence of the virtual
network mechanism to the network software facility and a second structure
which defines the virtual host system.
20. The mechanism of claim 18 wherein the first structure is an interface
network structure utilized by the host operating system and the second
structure is a software control structure which is used to manage packet
processing for each of the client application programs running on the
remote host system, the software control structure containing a
predetermined number of fields, a first field for storing the state of the
virtual network mechanism, a second field for maintaining a count of the
number of different client entries being managed by the virtual network
mechanism, third and fourth fields for storing the local host and virtual
host station address identifier values wherein the virtual host station
value is generated by performing an arithmetic operation on the local host
station address identifier value and a fifth field for storing a client
pointer value for accessing the first client table structure generated by
the virtual network mechanism. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
RELATED PATENT APPLICATIONS
1. The patent application of Richard S. Bianchi, Dennis R. Flynn, Marcia T.
Fogelgren, Richard A. Lemay, Mary E. Toyell and William E. Woods entitled,
"Executing Programs of a First System on a Second System," filed on Sep.
28, 1993 bearing Ser. No. 08/128,456 which is assigned to the same
assignee as this patent application.
2. The patent application of Kin C. Yu and John L. Curley entitled "Sockets
Application Program Mechanism for Proprietary Based Application Programs
Running in an Emulation Environment", filed on Mar. 30, 1995, bearing Ser.
No. 08/413,333 which is assigned to the same assignee as this patent
application.
BACKGROUND OF THE INVENTION
1. Field of Use
The present invention generally relates to methods and mechanisms for
conducting internetwork communications. More particularly, the present
invention relates to methods and mechanisms used by a computer system
which executes application programs originally developed to run on another
computer system and provides network facilities to carry out
communications over a network with other computer systems.
2. Related Art
With the advent of open system platforms which operate under the control of
versions of the UNIX operating system, it becomes more and more desirable
to be able to efficiently run application programs developed for earlier
computer systems, such as proprietary based systems on such open systems
without having to rewrite or port such application programs. A computer
system which accommodates such application programs is described in
related copending patent application of Richard S. Bianchi, Dennis R.
Flynn, Marcia T. Fogelgren, Richard A. Lemay, Mary E. Tovell and William
E. Woods entitled, "Executing Programs of a First System on a Second
System".
Generally, such application programs are required to operate in conjunction
with and communicate with other computer systems over internetworks. Many
of these computer systems utilized standard communication network
protocols, such as TCP/IP, which are normally implemented as part of the
computer system's operating system (i.e. kernel). Also, such computer
systems generally support multiuser environments in which it was possible
for more than one user process at a time to be using such networking
facilities. To implement this, the communication protocol implementation
required the adoption of a method for identifying the data associated with
each user process. That is, when a client process wanted to contact a
server process, such as FTP or Telenet, the client process must have a way
of identifying the server process that it wants to use. In TCP/IP, if the
client process knows the 32 bit Internet address of the host computer on
which the server resides, it can contact that host. But, the client
process must still have some way of identifying that particular server
process.
To solve this problem, the TCP protocol defined a group of well-known ports
or well-known addresses which identify the well-known services that a host
computer can provide. For example, most TCP/IP implementations provide a
file transfer server named FTP that a client process can utilize to
transfer a file via a network to another computer system. The 16 bit
integer port established for FTP is 21 (decimal). Thus, every TCP/IP
implementation that supports FTP, must assign the well-known port of 21
(decimal) to that server.
While this solved the problem of identifying well-known services, the
utilization of this convention creates problems where a computer system
which implements TCP/IP and supports FTP is required to run multiple
well-known port multiple application programs associated with different
operating systems components which share a common host communications
protocol stack. Here, the well-known application programs associated with
the different operating system components, such as those of an emulator
and host system are both required to utilize the same identical well-known
ports in identifying like application program services. This gives rise to
a naming conflict between the different application program services.
Relative to problems relating to process migration, one author has observed
that support for process migration is a characteristic that is
increasingly important. Protocols such as OSI, X.25 and TCP/IP that use
such machine addresses to identify processes make migration difficult
because a process cannot take its address with it when it moves. The
author describes the use of a new custom protocol called a Fast Local
Interact Protocol (FLIP) and an architecture which permits servers to
migrate to new machines without requiring any manual reconfiguration, such
as TCP/IP requires. For further information regarding this protocol,
reference may be made to a section 14.5 entitled "Communication in Amoeba"
of the text entitled "Modern Operating Systems" by Andrew S. Tanenbaum
published by Prentice-Hall, Inc., copyright 1992. One problem noted
relative to this solution is that the new protocol requires considerable
changes to be made to a host system. Hence, this approach is not practical
where it is essential that the host computer system's operating system
remain intact.
Another approach which has been considered is to provide duplicate
communication facilities wherein a separate TCP/IP protocol stack and
separate hardware facilities are provided for servicing the network
demands of two distinct sets of well-known port application programs.
While this solution may be satisfactory in terms of eliminating the naming
conflict, it would create considerable processing delays causing
application programs executing under control of an emulator to run too
slow resulting in decreased overall system performance. Also, this
approach is too costly in terms of system resources and is unable to take
direct advantage of existing host facilities.
Accordingly, it is a primary object of the present invention to provide a
method and system which enables application programs running in under
control of different operating system components sharing a common
communications protocol stack to utilize well-known ports for identifying
like protocol application program services.
It is another object of the present invention to provide a method and
system for executing application programs which share a common
communications protocol stack to utilize well-known port addresses for
designating well-known application programs accessible by client
application programs on a remote host system which is transparent to the
remote system and requires minimal change to the host system thereby
facilitating debugging, modifying and maintaining of such application
programs.
SUMMARY OF THE INVENTION
The above and other objects of the present invention are achieved in a
preferred embodiment of the virtual network mechanism of the present
invention which operates under the control of a host operating system, as
for example, an enhanced version of the UNIX operating system running on a
local host computer system which connects to a local area network (LAN) or
internetwork for communicating with a number of remote host systems using
a standard communications protocol. In the preferred embodiment, the host
system also includes the components of a hosted operating system
components, such as for example, an emulator.
The host operating system further includes a communications network
protocol stack which in the preferred embodiment corresponds to a host
TCP/IP protocol stack. Both the hosted and host application programs share
the single protocol stack. The virtual network mechanism of the present
invention resolves the naming conflict arising from the use of multiple
instances of well-known port application programs being run by the hosted
and host operating systems. In the preferred embodiment, each remote host
computer system which communicates with the host system of the present
invention via the internetwork is configured either statically or
dynamically to have the local host system function as a "gateway" (a host
system that connects two different networks) wherein the host system
causes packets to be routed from the internetwork (heterogeneous networks
connected together) to "another network" according to the network
identifier information contained in the network address.
The mechanism of the present invention is configured within the host
operating system as a separate network interface which couples to the
network protocol stack just as "another physical network". This allows the
mechanism to make use of the standard internetwork gateway functionality
associated with such communication networks. The IP layer routes each
packet addressed to the hosted system to the virtual network mechanism as
if it were another network (i.e. as if the packets were being transferred
from one network to another network through an internetwork gateway).
The virtual network mechanism contains a mapping component which maps the
different IP address portions in a predetermined manner. The mechanism
then reintroduces the packet containing the mapped IP address onto the
interface of the IP module just as if it had been received from the other
network. In greater detail, the IP destination address is mapped to now
identify the host system in lieu of the hosted system and to replace the
"well-known" port number with non-well-known port identifier of the
services application program/server (e.g. FTP application server).
Additionally, the mapping unit substitutes a virtual address for the IP
source address of the requesting client application program on the remote
host system so that any reply packets provided by the application services
server in response to the request are automatically directed back to the
virtual network mechanism.
For each reply packet received, the mechanism substitutes/restores the
appropriate IP source and destination address portions in the IP address
and reintroduces the packet onto the network interface as if it had been
received from the other network. The IP stack layer now directs the reply
packets back to the requesting client application program on the remote
host computer in a transparent manner. This ensures that the sharing of
the host system communication protocol stack remains completely
undetectable to client programs running on the remote system.
The present invention eliminates the need to communicate through additional
protocol stacks or to provide additional communication hardware
facilities. This in turn enhances overall system performance as well as
eliminating the need for having to allocate additional system resources
(e.g. memory).
While the preferred embodiment of the present invention is described in
terms of an emulator environment, its teachings can be generally applied
to systems which share a single protocol stack on the same host system.
For example, it may be desirable to have multiple processing units run
different copies of the same operating system and share the same protocol
stack. Also, it may be equally desirable to have different operating
systems running on the same host system share the same protocol stack.
Also, it will be noted that the teachings of the present invention are not
limited to requiring that the other system or party to the communications,
typically an executing client program, be located in a physically separate
computer system. The communications could take place between the host
system and one of the hosted systems or between two hosted systems.
The above objects and advantages of the present invention will be better
understood from the following description when taken in conjunction with
the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a host system which incorporates the method
and virtual network mechanism of the present invention.
FIG. 2 is a simplified system block diagram illustrating the use of the
virtual network of the present invention in an internetwork.
FIG. 3 is a diagram illustrating the positioning of the virtual network
mechanism within a layered communication network, according to the
teachings of the present invention.
FIG. 4 is a block diagram of the virtual network mechanism of the present
invention.
FIG. 5 illustrates in greater detail, the different structures utilized by
the virtual network mechanism of the present invention.
FIGS. 6, 7a through 7g and 8 are flow diagrams and associated data
structures used in describing the operation of the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENT
FIG. 1 is a block diagram of a host system 54 which incorporates the
virtual network mechanism of the present invention. As shown, the system
54 includes a hardware platform 56 which contains the hardware elements
such as a central processing unit 58a, a main memory 58b and a number of
input/output peripheral devices 58c and a communications facility such as
an Ethernet local area network (LAN) 58d for connecting system 54 to other
processing systems via standard communication network facilities.
The central processing unit (CPU) represented by block 58a is a reduced
instruction set (RISC) based processing unit which takes the form of the
RS6000 microprocessor manufactured by IBM Corporation. As seen from FIG.
1, hardware platform including processing unit 58a operates under the
control of an enhanced version of the UNIX.TM. operating system such as
the AIX.TM. operating system. Portions of physical memory represented by
MEM block 58b are illustrated in terms of the layered construction. As
shown, memory is divided into two basic levels, a user level and an
operating system level. The user level is divided into emulated system
(ES) and host shared memory space and host or an operating system kernel
native memory space. The shared memory space contains the ES executive
level 16 which includes a plurality of executive program tasks 30 spawned
by ES executive services components of block 28 for executing ES TCP
services application programs/servers 22 and system administrator programs
24.
In the preferred embodiment, the well known port application programs, such
as for example, TCP application programs provide FTP and Telenet services
to client programs. As well-known in the art, telenet service application
program allows an interactive user on a client system to start a login
session on a remote system wherein the client process passes the user's
keystrokes to the server process on the remote system. The FTP services
application program permits the transfer of files from one system to
another and provides a rich set of features and options, such as user
authentication, data conversion, directory listings etc. In operation, the
interactive user invokes an FTP client process on the local system. The
client process establishes a connection with an FTP server process on the
remote system using TCP. The FTP program establishes two connections
between the client and server processes, one for control information and
the other for the data being transferred. The interactive user is prompted
for access information on the remote system and the files then can be
transferred in both directions.
In the emulated system, each task 30 utilizes a plurality of data control
structures, such as a task control block (TCB) structure 32, an indirect
request block (IRB) structure 36, an input/output request block (IORB)
structure 38 and a resource control table (RCT) structure 40. The task
control block (TCB) structure 32 contains information pertaining to the
state of execution of the associated task as well as pointers to interrupt
save areas for storing hardware parameters related to the task. The
indirect request block ORB) structure 36 contains information defining the
operation requested by an associated task and includes pointers
identifying the task and its associated task control block (TCB) and a
pointer to the associated IORB structure.
The input/output request block (IORB) structure 38 is used as the standard
means of requesting a physical I/O service. It contains information such
as a logical resource number (LRN) that identifies the I/O device being
addressed as well as the location and size of the buffer to be used for
the transfer and the specific function (operation) requested. The resource
control table (RCT) structure 40 contains information describing the
resources, such as its characteristics or information regarding the tasks
or requests being executed by a corresponding resource as well as pointers
to its associated task control block (TCB) structure.
Additionally, two other structures depicted in FIG. 1 are a group control
block (GCB) structure and a user control block structure of block 29. The
GCB structure contains information required to define and control the
operations of a specific task group which defines a named set of one or
more tasks with a common set of resources within which a user and system
function must operate. Each group has a two character name (e.g., $L, $S)
by which the group is uniquely known to the system. The GCB structure
includes information identifying the lead task whose execution spawns all
other tasks required for executing group programs. As indicated, the GCB
structure includes a number of user control blocks (UCB), each of which
contains information defining the user's personality such as user node
identification, user group id within a node, user task id within group,
user person id and pointer information to directories to which the user
has access.
As shown, the emulated system utilizes a further data structure
corresponding to system control block (SCB) structure 27. This data
structure is created at system startup and contains information defining
system resources and pointers to the different task groups established by
the system represented by a corresponding number of group control blocks
in the system. For further information regarding such structures and their
relationships to each other, reference may be made to U.S. Pat. No.
5,111,384 and the publication entitled "HVS PLUS Systems Concepts"
published by Bull HN Information Systems Inc., Order No. HE03-01.
As indicated in FIG. 1, the shared memory space further includes a memory
queued interface (MQI) represented by block 84 which provides a form of
interprocess communication mechanism and a software active queue (SAQ) of
block 88. SAQ block 88 represents a data structure used to provide the
path by which the results of the operations performed by the kernel level
components are passed back or returned by the host processes to the
requesting emulated system user level tasks 30 being executed. Thus, it
can be viewed as functioning as an output stage of MQI 84. This data
structure is similar to data structures which are used by the emulated
system operating system..
MQI block 84 is a semaphore data structure which takes the form of a single
linked list controlled by semaphores through a set of routines which are
executed by the various host processes operating within different levels
or layers that want to communicate with each other. Its routines are used
to manage queues within the pseudo device drivers 74 and the software
active queue 88.
Executive Services Components 28
As seen in FIG. 1, the executive services components 28 of executive layer
16 includes a plurality of components or facilities which are equivalent
to those facilities normally included in emulated system. The emulated
system is a multiprogrammed multiprocessor system. The facilities
illustrated in FIG. 1 include a listener module 280, a file management
facility 282, a socket monitor call command handler unit 284, and an ES
socket library 286 which are arranged as shown. The listener module 280 is
responsible for monitoring the operations of terminals configured for
login and for initiating user tasks in response to user commands. As
indicated in FIG. 1, listener module 280 runs as a task 30 with its own
set of unique data structures.
The listener module 280 is able to consult a profiles file containing user
specific registration information such as user id, login id and password
requirements tabulated by the system administrator for all registered
users. The listener module 280 checks the user profile when monitoring the
privileges and/or restrictions given to each user. The file management
facility 282 includes the conventional shared data structures and set of
routines normally provided to perform functions that access such data
structures to control the synchronization of concurrent processes or tasks
in addition to performing various system services or functions. That is,
the facility responds to system service monitor calls identifying the
types of services requested (e.g. creating or deleting files, reading or
writing records or blocks in files) which result in the specified system
services being executed by the emulated system on behalf of executing user
application programs.
A monitor call unit (not shown) receives monitor calls from the interpreter
component 72 which are in turn to be executed interpretively using the ES
executive service components of block 28. A command handler unit (not
shown) contains the routines that respond to user commands entered via a
terminal or program. In response to such commands, the command handler
unit routines invoke the appropriate tasks for executing such commands.
The E | | |