Abstract:
A functionally structured distributed data processing system includes a plurality of independently operating user station processors for servicing users, a data center for storing data to be processed by the user stations, and a communication network for coupling each user station to one or more data centers. The data center includes its own processor and mass storage devices for managing a data base of data for the user stations. Each user station executes application programs to which is linked a data base simulator which formulates requests or data operations to calls to the data base at the data center. Communications between the user stations and the data center are usually initiated only by the user stations.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present invention is a continuation of Ser. No. 826,721 for FUNCTIONALLY STRUCTURED DISTRIBUTED DATA PROCESSING SYSTEM filed Feb. 6, 1986, and now abandoned which was a continuation of Ser. No. 350,159 for DISTRIBUTED DATA PROCESSING SYSTEM filed Feb. 19, 1982, and now abandoned. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to distributed data processing systems and, more particularly, to such a system including a data center computer managing data bases for a plurality of independently operating user station computers which process their own data and which store and retrieve data items related thereto in the data bases of the data center computer by communicating data base calls to the data center computer. 
     BACKGROUND OF THE INVENTION 
     Data processing systems in common use today generally include a large main frame computer having a plurality of input/output terminals by which users communicate with the computer. The main frame computer serves to manipulate data, perform calculations, etc., pursuant to applications programs, and store and retrieve data either for use in the manipulation, calculations, etc., or simply for delivery to one of the terminals. Although such a conventional arrangement provides significant computing power and access by numerous user terminals, the main frame computer necessary for servicing the terminals and providing the data processing capabilities is large, complex, and costly. Further, the computing power of such systems, although significant, generally cannot be increased except by provision of an entire new system. 
     It has been suggested that dividing up the data processing task and distributing it among more than one central processing unit would provide certain economies and advantages not achievable with the use of a single, large main frame central processing unit. (See, e.g., publication A20-710-101, &#34;Evolving Office of the Future&#34;, January 1980, by Datapro Research Corp.) An example of one such advantage is to allow for piece-wise growth of a small system into a larger system as needs increase, rather than starting out with a full-blown large scale system initially. Typically, the various central processing units for use in a distributed data processing system have the capability of communicating with one another, and, in fact, to achieve full processing capability, it is generally essential in such systems to provide for communication among the various central processing units. However, implementation of the capability of inter-processor communication results in a sacrifice of some of the economies and simplicity which was desired in proposing the distributed data processing system. This is because of the increased complexity of programming each central processing unit to not only store, retrieve and process data, but also initiate, respond to, and monitor inter-processor communication requests. That is, a significant part of each central processing unit&#39;s operation time (and operating system) is taken up in simply accommodating communication with the other central processing units. This difficulty becomes more severe each time another processor is added to the system. Also, any change in the programming of one central processing unit or its associated storage files generally requires changes in the programming or associated data files of the other related central processing units. Thus far, there have been no distributed data processing configuration offered which would provide the apparent advantages of distributed data processing without the attendant problems. 
     SUMMARY OF THE INVENTION 
     The present invention grows out of and is founded upon the unique premise that computer operations can be broken down into two basic categories or functions--(1) servicing a user by receiving input information, operating upon information, and supplying information to the user (this function is hereinafter referred to as the user station function), and (2) storing and retrieving information from information storage equipment. (This function is hereinafter referred to as the data center function.) In the system of the present invention, these two basic functions are segregated in a way which accommodates simplified planning and implementation of large multi-user distributed data processing systems at a far lower cost and complexity than heretofore thought possible, and with more flexibility and adaptability to growth in both capacity (number of users serviced and amount of data processed) and capability (kinds of data processing which can be performed). The segregation is carried out by dedicating or assigning each central processing unit to one of the above two functions or classifications of computer operations. Thus, the system of the present invention includes a plurality of user stations each dedicated to servicing a user (which could be a person, another device, or machine) and each functioning as a stand-alone computer, having its own central processing unit, typically a microprocessor, and equipment by which the user can communicate with the central processing unit, typically a video display and keyboard terminal. The user stations may have other peripheral equipment as well, such as disk drives, printers, card readers, or the like. The user stations service the users by executing application programs supplied by the users. 
     The system of the present invention also includes one or more data centers dedicated to the storage and retrieval of data which may be required by two or more user stations, or, in some instances, of data which is required by only one user station but which is more economically stored at the data center. Each data center includes its own central processing unit, mass storage unit such as a hard disk drive, and a data access control program. The data access control programs are essentially the same for all data centers in a system for reasons which will become apparent. The data center functions to respond to inquiries from the user stations to either receive and store data supplied by a user station or retrieve previously stored data and supply it to a user station, all under the control of the data access control program. 
     The system operates pursuant to certain rules of interaction or specifications which greatly simplify the implementation of the system, without restricting its flexibility or adaptability for growth. Pursuant to these rules, usually only a user station may initiate communication between the user station and the data center, and there is normally no communication directly between user stations or between data centers. In operation, a user station initiates contact (inquires) with a data center using any of a variety of conventional protocol procedures, and the data center, which is always operating in an access mode under control of a data access control program, responds to the inquiry and communication is established. The user station communicates a request to the data center&#39;s data access control program either to store data supplied or to retrieve already stored data. The data center&#39;s data access control program then carries out the request by either storing supplied data in a mass storage or retrieving data and sending it to the user station. 
     Because of the segregation of functions and the implementation of the rules of interaction, the programming of the user stations is greatly simplified. The user station programs need not accommodate instructions for communicating with other user stations and, because the data center&#39;s data access control programs are essentially the same, one set of user station application program techniques is suitable for communicating with any of the data centers. The data center access control program need not accommodate instructions for interfacing directly with other data centers, for carrying out application data processing, or for initiating contact with user stations, and thus is greatly simplified. 
     In a preferred embodiment of the present invention, the data center computer manages data bases for the independently operating user computers by means of a data base manager program. The user computers store, retrieve, and update data items in their data bases by communicating data base calls to the data center computer. The user computers run respective user application programs to process their data and to each of which is linked a data base simulator program. When a user application program reaches a point in processing at which a data operation on a data item is needed, the user application program calls the data base simulator program and supplies it with sufficient information to issue a data base call to the data center computer to perform the required data operation. The data access control program of the data center computer, of which the data base manager is a component, controls the access of users to the data bases such that users can maintain data bases not accessible to other users. 
     OBJECTS OF THE INVENTION 
     The principal objects of the present invention are: to provide a new and improved distributed data processing system which is simple in design, easy and inexpensive to implement, and structured according to the functions to be performed; to provide such a system which readily accommodates expansion without a corresponding increase in complexity; to provide such a system wherein the throughput of the system can be selectively increased as desired by the user; to provide such a system wherein modifications may be made in one part of the system without requiring significant changes in other parts of the system; to provide such a system which is suitable for handling a variety of data processing needs; to provide such a system in which failure in one part of the system will not obviate use of the entire system; and to provide such a system which is economical to manufacture and maintain and which is particularly well adapted for its intended purpose. 
     Other objects and advantages of this invention will become apparent from the following description taken in conjunction with the accompanying drawings wherein are set forth, by way of illustration and example, certain embodiments of this invention. 
     The drawings constitute a part of this specification and include exemplary embodiments of the present invention and illustrate various objects and features thereof. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram illustrating a distributed data processing system made in accordance with the principles of the present invention. 
     FIG. 2 is a block diagram illustrating further details of a user station and a data center which can be used in the system of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention, which may be embodied in various forms. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present invention in virtually any appropriately detailed structure. 
     Referring to FIG. 1, there is shown a specific illustrative embodiment of a distributed data processing system 1 made in accordance with the present invention. The system includes a plurality of user stations 4 for interfacing with and carrying out the processing needs of users, with the user stations being coupled directly to a data center 8 for storing data of common interest to the user stations. Two of the user stations 4 are also coupled by way of modems 12 to a switching network 16 which could, for example, be the Bell System telephone switching network. The data center 8 is also coupled by way of a modem 20 to the switching network 16. Other user stations and data centers are also connected to the switching network 16 by way of modems 24 so that such user stations can connect to the data center 8 and so that the user stations 4 can connect to such data centers. The modems 12, 20 and 24 are conventional modulator/demodulators for enabling transmission of data over the switching network 16. The switching network 16, in addition to being the Bell System telephone network, could also be a private network used to interconnect user stations with data centers, a packet (message) switched network, etc. 
     In accordance with the present invention, the system of FIG. 1 is designed to operate according to certain &#34;rules of interaction&#34; which serve to reduce the complexity of the system, without reducing its flexibility and adaptability to growth. These rules specify that usually a user station initiate communication between the user station and a data center, and that there be no direct communication between user stations or between data centers in normal applications. These rules may be implemented in the system of FIG. 1 either by hardware design or by appropriate programming. In the former case, no direct communication links between user stations 4 or between the data center 8 and any other data center are necessary, and the switching network 16 could be designed so that no wire path between user stations or between data centers would be required. If the rules were implemented by programming, then each user station 4 would include instructions and addresses enabling connection of the user station only to data centers, while the data center programs would usually contain no instructions whatever for allowing connection to another data center or for initiating a connection with a user station. The rules of interaction also require that the data center 8 and any other data centers continually operate in an access mode--a mode in which the data centers are conditioned to respond to any &#34;request&#34; which may be received from any user station. 
     Each user station 4 is equipped to service a user by receiving input information, operating upon or processing such information, and supplying information to the user. Each user station 4 is also equipped to request service of at least one of the data centers, establish communication therewith, and supply data to and receive data from the data centers. Each data center 8 is equipped to respond to requests for service from the user stations, receive data from user stations and store such data in mass storage, and retrieve data from mass storage and supply it to requesting user stations. These functions are carried out by providing each user station 4 and each data center with its own central processing unit as will be discussed in greater detail hereafter. 
     FIG. 2 shows specific illustrative embodiments of a user station 4 and a data center 8 connected by a direct link. The user station 4 includes a microprocessor 100, which could be any conventional microprocesor currently available on the market such as the Zilog Z-80 microprocessor. Coupled to the microprocessor 100 is a conventional hard copy printer 104 for receiving data from the microprocessor 100 and for printing such data for use by a user, a conventional cathode ray tube terminal 108 having a keyboard by which information may be communicated to the microprocessor and a screen for displaying information either typed on the keyboard or received from the microprocessor, and a main memory 112, such as a random access memory (RAM), for temporarily storing data to be processed by the microprocessor and application program instructions 116 which are to be executed by the microprocessor. Also coupled to the microprocessor 100 is a conventional floppy disk controller 120 (such as Western Digital 1791 controller) which, in turn, is coupled to a conventional floppy disk drive 124. Other peripheral units such as card readers, hard disk drives, etc., could also be coupled to the microprocessor 100. 
     In order to communicate with a data center, the user station 4 includes a serial input/output device 128 having two ports, one of which is used for coupling the user station directly to the data center 8 and the other of which may be used to connect the user station to a modem and from there to the switching network 16 (FIG. 1.) An exemplary serial input/output device suitable for use as the device 128 in the user station 4 is the Zilog Z-80 SIO. 
     The data center 8 includes a microprocessor 200 coupled to a plurality of serial input/output ports 204. These ports, which again could be driven by the Zilog Z-80 SIO, enable the data center 8 to communicate either directly to user stations or via modems to the switching network 16 (FIG. 1) so that the data center 8 may service a number of user stations essentially simultaneously. The data center 8 also includes a main memory 208 for temporarily storing data and programs to be executed by the microprocessor 200. In particular, the main memory 208 would store a data access control program 212 for controlling the microprocessor 200 to respond to requests from user stations by storing data in or retrieving data from a mass storage device such as a hard disk drive 220 coupled by way of a disk controller 216 to the microprocessor. 
     Although specific equipments are shown for the user station 4 and data center 8 of FIG. 2, it should be understood that a variety of configurations could be utilized to enable the user station 4 to operate as an interface with users and to process application programs 116, and to enable the data center 8 to serve as a storage and retrieval center for data of common interest to the user stations. Illustratively, the user station 4 would be utilized to interact with the operator, generate payroll information, produce accounting reports, process accounts payable and accounts receivable, sort, compile, process hotel or airline reservation requests, and in general process data pursuant to a variety of conventional application programs 116. The data centers 8 illustratively would serve to store data relating to the personnel of a company, payroll information regarding such personnel, accounts payable and accounts receivable data, information regarding occupancies and vacancies in a hotel chain or airline system, and generally any type of data which may be of interest to more than one user station 4. As a user station 4 executes an application program 116 and the program reaches a point where stored data is required, the user station initiates communication with the data center 8 so that the appropriate data can be retrieved and transmitted to the requesting user station 4. When the data is received by the user station 4, the user station utilizes the data in the manner directed by the application program 116. Similarly, if a user station 4 in the course of executing an application program 116 needs to store, update, or modify data in the data center 8, it initiates communication with the data center 8 and transmits the data to be stored. 
     There are a variety of methods by which a user station 4 might establish communication with a data center 8. For one such illustrative method, the data center 8 has stored in its memory 208 a data access control program 212 which includes a conventional data base manager program (D.B.M. Prog.) 213 for controlling the storage and retrieval of data at the data center 8, a communications program (Comm. Prog.) 214 for controlling communication with the user station, and a data center program (D.C. Prog.) 215 for interfacing with the communications program 214 and data base manager 213. The user station 4 similarly has stored in its memory 112 a user communications program (User Comm.) 117 for controlling communication with the data center 8, and a data base simulator program (D.B. Sim.) 118 which interfaces with the communications program 117 and whatever application program 116 is being executed by the user station. The data base simulator program 118 is somewhat similar in operation to a data base manager and enables an application program 116 at the user station to call for storage or retrieval of data from the data center as though it were calling for data from a data base resident at the user station 4. 
     The use of the data base manager program 213 at the data center 8 and the data base simulator program 118 at the user stations 4 provides an inherent and heretofore unprecedented level of data security in distributed data processing systems since typical data base management systems are accessed by data base calls, that is, high-level compiler-like languages that are used to describe the location, contents, relationships, and security level of data that are stored in the data center 8. Since communications from the user stations 4 to the data center 8 in the preferred embodiment are exclusively in the form of data base calls, accesses to the operating system utilities of the data center 8 are inherently precluded. If the data access control program 212 in its protocol check determines that a received communication is other than a call to the data base manager program 213, access will be denied. Further, the data access control program 212 may perform additional security checks to prevent user stations 4 from accessing data bases other than their own or those that the particular user stations 4 have specific authorization to access. 
     When an application program 116 being executed at the user station 4 reaches a point where stored data is needed or where it is necessary to store (or update or modify) data, the application program 116 calls the data base simulator program 118 and identifies what action is to be taken and the record location in the data center where data is to be stored or from which data is to be retrieved. The data base simulator program 118 automatically passes this information to the communications program 117. The communications program 117 responds by adding appropriate communication protocol to this information or message such as sync characters, error checking characters, etc., and generally prepares the message for transmittal. The communications program 117 then supplies the message to the serial input/output device 128 which transmits it to the data center 8. 
     At the data center 8, the serial input/output device 204b receives the transmitted message and interrupts the data center communications program 214 which operates continually in an access mode in the data center. The communications program 214 checks the protocol and, if the protocol is in order indicating that the message is permitted one and was correctly received, the communications program 214 causes transmittal of an acknowledgment signal to the user station 4. If the protocol is not in order, the communications program 214 causes transmittal of signals to the user station 4 to indicate the problem and cause retransmittal of the message. Assuming the protocol is in order, the communications program 214 calls the data center program 215 which determines whether the requested action is allowable. If the request is allowable, the data center program 215 then calls the data base manager 213 and links therewith. The data base manager 213 responds by carrying out the action called for in the received message--either storing data in the identified file in the hard disk drive 220 or retrieving data therefrom. After the action is performed, the data base manager 213 passes a response to the data center program 215--a verification if data was stored, or the data retrieved if that occurred. The data center program 215 calls the communication program 214 which then adds appropriate communication protocol to the response and supplies the response to the serial input/output device 204b for transmittal to the user station. In this manner, communication between a user station and data center may be established, and data exchanged. 
     With the distributed data processing system 1 of the present invention, a plurality of users may be serviced in a simple, efficient and inexpensive fashion. Although specific illustrative embodiments have been described, it should be understood that the invention is not limited to these embodiments. For example, the invention contemplates and encompasses a data center multiprocessing system where a portion of the multiprocessor is dedicated to servicing the data storage needs of not only remote user stations 4, but also resident data center application programs 225. Also, although the distributed data processing system 1 was described to prohibit communication between user stations 4, some nominal provision for such communication on a limited basis would not be considered a departure from the present invention. Finally, it is considered within the skill of the art to provide detailed programs for implementing the invention in a variety of specific alternative embodiments and the appended claims are intended to cover all such alternative embodiments or arrangements. 
     Therefore, it is to be understood that while certain forms of the present invention have been illustrated and described herein, it is not to be limited to the specific forms or arrangement of parts described and shown.