Recherche Images Maps Play YouTube Actualités Gmail Drive Plus »
Recherche avancée dans les brevets | Images de page | Historique Web | Connexion

Brevets

  
[blocks in formation]
[merged small][graphic][merged small][subsumed][subsumed][subsumed][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][table][merged small][merged small][merged small][merged small][merged small]

CLIENT/SERVER COMMUNICATION SYSTEM
UTILIZING A SELF-GENERATING NODAL
NETWORK

5

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention pertains to a method and apparatus for managing communication in a client/server system utilizing a self-generating nodal network. More ^ specifically, the present invention relates to a collection of specialized network node types that when generated and connected together form a nodal network which provides a client with access to a server device in a network. 15

2. Description of The Related Art

Application programs executed on today's computing equipment rarely possess all the functionality that is required for the application program to execute a task fully. That is, most application programs rely on other 20 libraries to provide parameters to access a peripheral device in order to execute a function. For example, if a user requests a printing operation to be performed by an application program, both the user and at least one stored library of printing parameters and task informa- 25 tion must be accessed in order for that application program to fully execute the request. Traditionally, upon initialization of an application program, the user is prompted to enter certain parameters for each peripheral device used with the system. This information is 30 stored in separate files for each individual peripheral device. In addition, once a user has requested a service to be performed by the application program, the user must designate the server (peripheral device) to perform the function as well as designating scheduling 35 when to perform the task. Thus, when the application program is requested by the user to perform a function utilizing a peripheral device, the application program must first obtain the destination and scheduling of the task from the user and, second, the program application 40 must access additional parameter information regarding the task and the peripheral device from an external library or file.

Heretofore, it has not been possible for an application program simply to perform a task without having to 45 access further information in order to carry out the requested task. Consequently, conventional application programs have complex as well as different interface processes for accessing a peripheral device. In addition, application programs must access additional informa- 50 tion from external libraries and in some instances the user in order to carry out a requested task.

SUMMARY OF THE INVENTION

It is the object of the present invention to address the 55 foregoing difficulties.

The invention provides a self-generating nodal network client/server communication system which provides an interface to an application that manages the complex and different interfaces between peripheral 60 device servers. In this aspect, the invention is a method for building a self-generating nodal network for communicating in a client/server system, the method comprising the steps of creating a server nodal network tree which includes the steps of generating a server root 65 node which includes both process steps for communicating with an operating system and with service nodes and process steps for building service nodes which cor

2

respond to servers within the client/server system, each service node includes both process steps for advertising a service to the server root node and process steps for building a topic node which includes both process steps for accessing a server and process steps for building a job node for storing a job request. The method further includes the step of generating a client root node which includes both process steps for communicating with the operating system and with client service nodes and process steps for building client service nodes corresponding to each service node of the server nodal network tree, each client service nodes includes both process steps for communicating with an application program and process steps to create a job request in accordance with a job request designated by the application program. The client service node receives a job request from the application program and propagates the request back through the client nodal network tree to the server nodal network tree for execution.

By virtue of the above arrangement, the client-side interface with a peripheral device can be simplified since the nodal network of the present invention manages the interface in order to execute the requested task after the client has issued a request to perform the task.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a representational view of a local area network according to the present invention;

FIG. 2 is a functional block diagram of network communications between a first computer process comprising an application program executing in a first network station, and a second computer process comprising a print server executing in a second network station;

FIG. 3 is a general representational view of the client/server communication system of the present invention;

FIG. 4 is a representational view of the server nodal network tree provided with a ready-queue and a timerqueue; and

FIG. 5 is an illustration of a self-generating nodal network according to the present invention implemented in a networked system.

DETAILED DESCRIPTION OF THE
PREFERRED EMBODIMENT

FIG. 1 is a representational view of a local area network ("LAN") 10 according to the invention. As seen in FIG. 1, LAN 10 includes LAN communication bus

11 such as EtherNet, for carrying LAN communications among the network devices attached to the bus. File server 12 is attached to LAN bus 11 and acts as a file manager for receiving, storing, queuing, caching, and transmitting files between LAN devices. File server

12 typically includes a large capacity memory storage device, such as a 10 gigabyte hard disk, for performing its file manager duties. File server 12 operates under a network operating system such as NetWare @.

Also attached to LAN bus 11 are work stations 14, 15, 16, 17, 18 and 19 which in this case are shown as personal computing equipment such as IBM PC or PC-compatible computer. Work stations 14-16 are network user work stations and includes various application programs such as word processing application programs, spreadsheet application programs, optical character recognition application programs, and other information and data processing programs. Those programs may be stored physically in work stations 14-16, or they

3 4

may be retrieved for execution at those work stations devices, the program requests access via a nodal net

from file server 12. work of the present invention.

Work stations 17-19 are peripheral server work sta- A detailed description of the functional capabilities of

tions and are used primarily to provide network ser- a server root and a client root will be given in detail in

vices for the peripherals for which they are connected. 5 connection with FIGS. 3, 4, and 5, respectively, and

Thus, work station 17 is a print server work stations and with respect to a representative self-generating node

provides network services for printer 21. Likewise, network constructed in accordance with the invention

work station 18 is a scanner server work station and is shown in FIG. 5.

provides network services for scanner 22, and work FIG. 3 is a general representational view of the clientstation 19 is a facsimile server work stations and pro- 10 /server communication system of the present invention, vides network services for facsimile 23. Other periph- As shown in FIG.-3, server root node 102 is a node eral devices may also be connected to the network, and which comprises a process but also contains a list of it is possible for a single work station to service more nodes contained within the server node network. The than one peripheral device. In particular, it is possible process aspect of the server root node 102 includes for work station 17 to service more than one printer, 15 process steps for building service nodes 103. In addition, and it is possible, with appropriate equipment, for a server root node 101 is provided with communication single work station to service a variety of different types capabilities for communication to the operating system of devices. 110.

While it is ordinarily necessary to provide a dedi- Server root node 102 interfaces with the operating

cated work station to service one or more peripheral 20 system program by passing communication information

devices, in some instances this is not necessary. Thus, from/to the operating system from service node 103. (It

for example, printer 25 is connected directly to LAN is noted that the number of service nodes on a server

bus 11 via network expansion board 26 which provides nodal network is only limited by available system re

the necessary print server functions without the neces- sources and that only one service node is mentioned for

sity of dedicating a work station for those printer ser- 25 the purpose of simplifying the description.) Service

vices. node 103 advertises a particular server to clients on the

Other devices may be connected to LAN 10 and network through the operating system 110. For examindeed LAN 10 may be connected as part of a wide area pie, service node 103 may be a scanner, printer, or facnetwork ("WAN") to various backbone and transpon- simile machine. Service node 103 sends a communicader connectors. These arrangements are well known to 30 tion through server root node 102 which communicates those skilled in the art and are omitted in the interest of through operating system 110. Service node 103 probrevity, vides service information to server root node 102 which

FIG. 2 is a functional block diagram showing infor- receives queries from clients as to What services are

mation exchange according to the present invention. In available. Server root node 102 returns the service ad

FIG. 2, information exchange is illustrated between a 35 vertisements from all service nodes in the server nodal

first computer process such as an application program network tree 101 to the client.

executing from one of the work stations illustrated in Service node 103 advertises its particular function as

FIG. 1 (here, work station 16), to a second computer well as server type. Service node 103 receives service

process such as printer server executing on work station information from server topic node 104 which contains

17. It is to be understood that the computer processes 40 information regarding type of server help information,

illustrated in FIG. 2 are representative only; informa- interface information, etc. For example, server topic

tion exchange can take place between any of the devices node 104 would contain such information as the type of

illustrated in FIG. 1 such as between work stations 15 printer (i.e., the manufacturer of the printer) and the and 16 or between one of the work stations in either of proper parameters (interface language) which are re

the scanner server work station 18 or the facsimile work 45 quired to access the device.

station 19. Moreover, information exchange shown in Server topic node also creates a server job node 105 FIG. 2 is illustrated between different work stations on to manage each task. Server job node 105 creates a a local area network where the need for flexible task server item node for each item within the task requested handling is the most critical. It is to be understood, by the client. Server item node 106 contains a single however, that task handling according to the invention 50 piece of information specific to the requested task. For may occur between different computing processes example, in the case of sending a facsimile message, within the same work station, for example, between a server item node 106 may contain only one of the folword processing application program that is importing lowing: a database file name for retrieving the facsimile numerical data and a spreadsheet processing application message, routing information, or a parameter for printprogram which is providing the numerical data. 55 ing the message such as height, width or line spacing.

In the course of execution of an application program, Accordingly, server job node 105 creates as many

the services of a peripheral device are required. The server item nodes as there are parameter items for a

application program obtains those services via a single task.

device driver 31 such as printer driver, scanner driver, Upon initialization of the program of the present

or a facsimile driver. The device driver, in turn, acts as 60 invention, the self-generating server nodal network

the device which communicates between an application portion of the client/server communication system is

program and a peripheral server. built. First, server nodal network tree 101 is created

In general, the present invention provides the ability from the root node. Server root node 102 interfaces

to schedule tasks for peripheral devices 21,22,23 and 25 directly with operating system 110. Server root node

on a real time basis. The present invention dynamically 65 102 is created as a process provided with both commu

configures itself via an initialization file to support addi- nication capabilities and a listing of pointer tags which

tional peripheral devices. Accordingly, when an appli- designate server nodes of the server tree. That is, server

cation program needs access to one of the peripheral root node 101 utilizes these pointer tags to retrieve from

5

initialization file 111 (not shown) process programs for each peripheral device which is a part of the server tree.

Server root node 102 builds only one server branch of the tree at a time. Each server branch of the tree represents an operation function of each of the peripheral 5 devices in the network. After each server branch has built its last node, server root node 102 grows the next server branch until the tree is fully populated with server branches for that network.

In order to build a first branch of the server tree, 10 server root node 102 utilizes one of the pointer tags provided within its listing to retrieve service node 103 from initialization file 111. Service node 103 is primarily a process, but also contains a node list from which it retrieves and builds the next node in the branch. The 15 process aspects of service node 103 include process steps for building an additional node as well as process steps for advertising a particular server to server root node 102. That is, service node 103 has the ability to advertise the type and function of a server to server root 20 node 102. Service node 103 further includes communication capabilities to communicate to the parent node, namely, server root node 102. Since service node 103 does not contain communication capabilities to communicate directly with operating system 110, it is necessary 25 for service node 103 to pass its service advertisement to the communication capabilities of the parent node. Since server root node 102 is the parent node and it can only communicate the operating system 110, the advertisement from service node 103 will be passed to the 30 operating system 110 in order to have the server advertisement passed onto the client nodal network tree. In the present implementation, a client sends a query to the server nodal network requesting the types of services available. Server root node 102 will return the adver- 35 tised services to the client from each service node in the network.

Service node 103 builds its portion of the nodal network tree by retrieving server topic node 104 from initialization file 111. Server topic 104 is primarily a 40 process, but it also contains a pointer tag which points to the location of the next node in the nodal network, namely, server job 105. In addition, server topic node 104 includes process steps for providing a particular type of server function information to the service node. 45 The process aspects of server topic 104 includes process steps to provide the specific parameters of the peripheral device as well as process steps to communicate with the parent node.

Server topic 104 builds its portion of the nodal net- 50 work by retrieving server job 105 from initialization file 111. Server job 105 includes process steps for building an additional node, process steps for accessing the peripheral device with the actual process steps and attributes needed to operate the peripheral device. The 55 process aspect of server job 105 include process steps of communicating with the parent node, namely, server topic node 104. Server job node 105 manages a conversation with a client allowing a client to control a peripheral device. 60

Upon completing a branch of server tree 101, server topic 104 returns control to service node 103. Service node 103 which receives an end-of-branch indication, returns control to server root node 102. The foregoing process is performed for each of the servers in the 65 server nodal network until the entire server tree is complete. When server root node 102 receives the last endof-branch indication from the server branch created

6

last, server root node 102 generates a signal to the operating system indicating that the server nodal network is complete. In response to the completion signal, a command may be issued from the operating system 110 to server root node 102 to initiate accepting task requests for servers within the server tree.

Once server nodal network tree 101 has been created and the signal indicating that server nodal network tree 101 is complete, client server nodal network tree 120 is then created in a similar manner to server nodal network tree 101. However, it is noted that client nodal network tree 120 aiso may be created either simultaneously with or before the server nodal network tree 101. A detailed description of the process of creating client nodal network tree 120 will now be discussed with reference to FIG. 3.

Upon receiving the completion signal from server nodal network tree 101, the program application of the present invention creates a client root node. Client root node 122 is primarily a process with both communication capabilities to communicate with operating system 110 and process steps for creating client topic nodes 124.

Client topic node 124 includes process steps for requesting a job directly from application program 130. Each client topic node 124 is associated with a specific server. In this regard, each client topic node 124 has a corresponding server topic 104 in the server nodal network tree 101. For example, if there exists a printer server on the network, there will exist server topic 104 as well as client topic node 124 associated therewith for sending requests to that particular server. In addition, client topic node 124 includes process steps for creating client item node 126. Client item node 126 includes pertinent information for performing a specific job. For example, client topic node 124 includes information regarding the number of pages to be printed, font type, paper size, etc. In this regard, client topic node 124 receives job requests from the application program with the specifics for carrying out the required task.

Client topic node 124 further includes communication capabilities to communicate to the parent node, namely, client root node 122. Since client topic node 124 can not communicate directly to operating system 110, it is necessary to client topic node 124 to pass the client request from client item node 126 to client topic node 124 and then onto client root node 122 for it to be propagated through operating system 110.

The foregoing discussion of client nodal network tree 120 has been described as having client root node 122, client topic node 124, and client item node 126. However, client nodal network tree 120 may take on a different structural appearance so as to correspond directly to each of the server nodes in the server nodal tree. It is also to be understood that for each server in the server nodal network, there is a corresponding client topic 124. The foregoing discussion with regards to one client topic node has been provided only for the purpose of brevity.

The present application program has the capability of scheduling tasks by providing scheduling queues. As shown in FIG. 4, server root node 102 is connected to two queues, ready-queue 140 and timer-queue 142, which handle scheduling and timer call-back services, respectively. These queues contain pointers to server jobs such as server job 105. Ready-queue 140 and timerqueue 142 do not contain the server job node itself, but rather contain a pointer to that server job node. The

« PrécédentContinuer »