gocr ep0193933-001
(PICTURE)(PICTURE) (PICTURE)Europäi _hes Patentamt _ (PICTURE) EuroPean Patent offi_e (PICTURE) Offi_e euroPeen des brevets _ PubIication number . O 193 933 B1 _ EUROPEA_ PATE_T SPECIFICATlO_ _ Date oF pubI_i_t_ion oF patent spec_ifcat_ion .. _ _nt. __.6 .. _O6F __J_6, _O6F 9/46 26.O4.9_ Bulletin 9_l_l _ APPlication number . 86_o28_3.8 _ Date of filing . o_.o3.86 (PICTURE) (PICTURE)_ APParatus for _ontrol d one _omPuter system by another _omPuter system. __ Note . Within nine months from the publication of the mention of the grant of the European patent, any penon may give notice to the European Patent Office of opposition to the European patent granted. _ Notice of opposition shall be fled in a written reasoned statement. It shall not be deemed to have been W fled until the opposition fee has been paid (Art. 99(1) European patent convention). (PICTURE)Jouve, 18, rue Saint-Denis, 75OO1 PARIS
gocr ep0193933-002
1 EP O _93 933 B_ 2 Des_ription When PC 1 O5 is acting as a source for batchjobs, it creates a file which contains a program executable The present invention relates to digital computer by CPU 1 O3 and anydata required forexecution ofthe systems and more specifically to means and methods program and then transfers the file to CPU 1 O3. CPU for controlling digital computer systems. _ 1 O3 then executes the program and returns the result As digital computer systems have grown more to PC 1 O5. In this arrangement, there is no interaction ubiquitous and varied in size and function, the need during execution of the batch program between PC for cooperation among computer systems has in- 1 O5 and CPU 1 O3. creased and is presently a dominant consideration in Finally, PC 1 O5 may be a source ofordestination the design of computer systems. Traditionally, there 1o forfiles for CPU 1 O3. In general, what is involved is a have been two models for cooperation. In one, the transfer of entire files between the systems. For ex- single-system model, all of the cooperating systems ample, a userof PC 1 O5 may produce a documentfile are treated as components of a single system. Typi- and then transfer the complete document file to CPU cally, one of the cooperating systems functions as a 1 O3, and a later user may transfer the document file coordinating CPU, and the othercooperating systems 1_ from CPU 1 O3 to PC 1 O5 for another editing session. function as peripheral devices forthe CPU system. In Again, there is no interaction between CPU 1 O3 and the other, the network model, all of the cooperating PC 1 O5 beyond that required to transfer the docu- systems are connected to a networkand the network, ment. In some cases, however, specific records may instead of any of the cooperating systems, defines be transferred from a file in CPU 1 O3 to PC 1 O5. An the manner in which the cooperation takes place. _o example of a system involving a CPU 1 O3 and PCs 1 O5 having different instruction sets in which the PC a. The single system model 1 O5 operates asjustdescribed is the IBM 327O-PC at- (PICTURE) tached to an IBM 37O PC. An example of a system in In Figure 1 , single system 1 O1 illustrates a con- which a PC 1 O5 receives individual records from afile temporary example ofthe single-system model. CPU __ is an IBM personal computer attached to an IBM sys- 1 O3, usually a minicomputer or a mainframe, is con- tem 38 computerwhich is executing the IBM personal nected to a group of personal computers 1 O5. Each computer-systeml38 transfer facility. personal computer 1 O5 has its own CPU and mem- Ofthe above systems, the onlyonewhich permits ory, and is capable ofexecuting programs on its own. extensive cooperation between PC 1 O5 and CPU 1 O3 However, when CPU 1 O3 and PC 1 O5 are cooperat- 3o is the one(PICTURE)in hich both PC 1 O5 and CPU 1 O3 can ing, CPU 1 O3 deals with PC 1 O5 as a coprocessor, an execute the same instruction set. In the other cases, interactive terminal, as a source for batch jobs, or as PC 1 O5 functions either as an IlO device connected a source or destination for file transfers. to CPU 1 O3 or as a mere source of or destination for CPU 1 O3 and PC 1 O5 can serve as coprocessors data. The disadvantages of the prior-art arrange- only if both systems execute the same instruction set 3_ ments are obvious. First, the requirementthat PC 1 O5 and have the same operating system. When this is the must execute the same instruction set as CPU 1 O3 in case, the systems may interact to the extent that PC order for the two systems to cooperate effectively 1 O5 can receive and execute a program from CPU puts severe constraints on the designs of CPU 1 O3 1 O3, and vice-versa. An example of such a system is and PC 1 O5 and of the system to which they belong. provided by an IBM PC-XTl37O connected to an IBM 4o Second, when the two systems are different, PC 1 O5 37O main frame. The PC-XT 37O is capable ofexecut- cannot simultaneously use its own local intelligence ing the IBM 37O instruction set, and consequently, and the greater power of CPU 1 O3. If PC 1 O5 has ac- the PC-XT 37O may execute a program such as a cess to CPU 1 O3, it is operating as a terminal or as a compiler available on the IBM 37O main frame. source ofordestination forfiles, and is not effectively In the other arrangements, CPU 1 O3 and PC 1 O5 4_ using its own processing power; on the other hand, if may execute different instruction sets and have dif- PC 1 O5 is executing a program on its own, it has no ferent operating systems. When PC 1 O5 is acting as effective access to CPU 1 O3. The userofsystem 1 O1 an interactive terminal, it operates under control of a thus has the choice between burdening CPU 1 O3with program in CPU 1 O3. In response to that program, tasks which could be more effectively performed by CPU 1 O3 provides data to and receives data from PC _o PC 1 O5 and burdening PC 1 O5 with tasks which could 1 O5. In this arrangement, PC 1 O5 is functionally no be more effectively performed by CPU 1 O3. different from any other terminal attached to CPU 1 O3. Since PC 1 O5 is functionally a terminal, there is b. The network model no direct interaction in this mode between a program (PICTURE) executing on PC 1 O5 and CPU 1 O3. At most, a pro- __ The most effective means heretofore available gram executing on PC 1 O5 may use data which PC for achieving cooperation between different comput- 1 O5 receives as a terminal and provide data which PC er systems has been the network. A typical prior-art 1 O5 operating as a terminal provides to CPU 1 O3. network is the IBM system network architecture 2
gocr ep0193933-003
3 EP O _93 933 B_ 4 (SNA), as described in Systems NetworkArchitecture recently and described in detail by John A. Stankovic Concepts and Produc(PICTURE)ts, GC O-3O72-1 , 2.ed, IBM, in an article ''Software Communication Mecha- (PICTURE)Feb. 1 84. Network 1 O7 consists of some number of nismus. Procedure Calls versus Messages'' in COM- computer systems 111 connected by network system PUTER, Vol.15, No.4, April 1 982, pages 19-25, IEEE. 117. Communication between two computersystems _ Parameters can be either passed by reference 111 attached to network system 117 is by means of (shared memory available for the parameters) or by network protocols 113 specifying operations to be value for the parameters which are not in the shared performed using the network. When computer sys- memory. tem 1 111 requires resources available in computer Amethod ofperforming a sequence ofrelated ac- system 2 111 to perform an operation, computer sys- 1o tivities in multiple independent digital processors per- tem 1 111 provides a network protocol 113 to network forming a remote call ofa callable program is the sub- system 117. Protocol 113 is received by logical unit ject of European patent application publication O 132 (LU) 11 5 connected to system 1 111 . LU 115 is net- 1 58 by Unisys Corporation. work system 117's interface to individual computer The present invention thus relates to a method of systems 111 . LU 115 then directs protocol 113 via net- 1_ performing a remote call as set out in claim 5 and to work system 11 7 to LU 115 forcomputersystem 2 111 a digital data processing system as set out in claim 1 and computer system 2 111 performs the operation which has a destination data processing means cou- specified by protocol 11 3. Ifthe operation involves re- pled by message transport means to a source data turn ofdata to system 1 111 , system 2 111 sends a re- processing means and wherein the source data proc- turn protocol as just described. _o essing means has remote call providing means for The kinds ofcooperation which may take place in providing a remote call to a callable program in the network 1 O7 are determined entirely by network sys- destination data processing means, and the destina- tem 117. Network system 11_es the form and tion data processing means has remote call receiving semantics of network protocols 113. Consequently, if means for receiving the remote call and performing a system 2 111 performs an operation for which there __ call and performing a call to the callable program. is no network protocol 113, system 1 111 cannot use In further aspects of the invention, the program network system 11 7 to have system 2 111 perform in the firstcomputersystem forms a ''message'' called thatoperation for it. The advantage ofhaving network a return protocol containing data returned by the spe- system 11 7 define the protocols is that the behavior cified routine. The first computer system sends the of network system 117 is not affected by the kinds of 3o return protocol via the data transfermeans tothe sec- computer systems attached to it; the disadvantage is ond computer system, where the program in the first that features of the attached computer systems for computersystem obtains the data returned in the pro- which there are no system protocols are simply un- tocol from the protocol. Additionally, the call protocol available to other attached computer systems. An- may contain arguments to be used in calling the spe- other disadvantage of cooperation via network sys- 3_ cified routine. Each ofthe cooperating computer sys- tem 117 is the relatively high overhead. All forms of tems may send call protocols and receive return pro- cooperation, no matter how simple, must be handled tocols. by network system 117. In particular, the high over- It is thus an object of the invention to provide an head of network systems of the SNA type have pro- improved digital data processing system forcontrol of hibited their use where only a small number of sys- 4o one computersystem by anothercomputersystem so tems need cooperate. that the digital computer systems may cooperate and The prior art thus has provided for close cooper- one computer system may call routines in another ation among systems capable ofexecuting the same computer system. instruction set, has provided systems which ''cooper- It is another object of the invention to provide in ate'' by treating one of the computer systems as a 4_ such system a control means comprising protocols component of the other, and has provided networks produced by one computersystem which specify rou- which allow systems to cooperate only as defined by tines to be called in another computer system and the network. There is, however, a need for close co- comprising protocols for returning data produced by operation among machines having different instruc- a call to another computer system, and especially tion sets without the limitations and overhead of co- _o comprising call protocols which include data to be operation across a network. used in an invocation of the routine specified in the Other forms of software communication have call protocol. been developed to overcome such restrictions im- In a digital data processing system a means for posed by excessive overhead. Such communication control of a first computer system responsive to call- techniques comprise what is called ''procedure calls'' __ able programs by a second computer system con- and ''messages''. Whereas the semantics of the pro- nected by message transport means to the first com- cedure call are known for some time the message puter system, solving the problem underlying the in- communication technique has been developed more vention is defined in the appended claims together 3
gocr ep0193933-004
5 EP O _93 933 B_ 6 with its further developments and alternatives. 1 . Overview of the Invention. Figures 2, 2A, and 3 Other objects and advantages of the invention (PICTURE) will be understood by those of ordinary skill i the art As indicated in the Summary ofthe Invention, the after referring to the detailed description of a prefer- present invention permits two computer systems to red embodiment and the drawings, wherein. _ cooperate at the level of the call and return opera- Fig. 1 is block diagrams showing prior-art coop- tions. The call and return operations are well-known eration between systems; in the art. In the call operation, one routine, termed Fig. 2 is a block diagram showing cooperating the caller, performs instructions which suspend the systems of the present invention; caller's execution by saving the present state of the Fig. 2A is a diagram showing the general form of 1o execution ofthe callerand commencing an execution call and return protocols in the present invention; ofanother routine, called the callee. In the return op- Fig. 3 is a diagram showing mutually cooperating eration. the callee performs instructions which ter- systems employing call protocols; minate its own execution and restore the saved state Fig. 4 is a block diagram of a preferred embodi- ofthe caller, thereby causing caller's suspended exe- ment; 1_ cution to resume. In addition, the caller may place Fig. 5 is a detailed diagram of Request 429 in a data termed parameters at a location in memory preferred embodiment; known to both the caller and the callee. By means of Fig. 6 is a detailed diagram ofllO structures in VS the parameters, the callermay provide dataforuse by 4O1 in a preferred embodiment; the callee and the callee may return the results of its Fig. 7 is a block diagram of MP 435 in a preferred _o operation to the caller. The machine instruction sets embodiment; for some computers contain call and return instruc- Fig. 7A is a block diagram of IP 414 in a preferred tions which perform the operations described above. embodiment; However, the operations may be performed on any Fig. 8 is a flow chart of the WS IlO loop in a pre- system by using operations such as load, store, and ferred embodiment; __ branch to perform the functions necessary for call Fig. 9 is a detail of block 8O3 of the flow chart of and return. figure 8; Present-day programming practice uses call and Figs 1 O and 1 OA are detailed flow charts of CPR return toconstruct large programs outofsubroutines. 751 in IP 435; Call and return are particularly advantageous be- Fig. 11 is a flow chart of a typical level 767 han- 3o cause they insulate the callerfrom the detailed imple- dler in a preferred embodiment; mentation of the callee. All that the caller needs to Fig. 12 presents the data structures forvsopen in know to use the function provided by the callee is the a preferred embodiment; - callee's interface, that is, the means used by the sys- Fig. 13 shows the OPEN call protocol in a prefer- tem to identify the callee (usuallythe callee's address red embodiment; 3_ in memory), the parameters required by the callee, Fig. 13A shows the OPEN return protocol in a and the effect of the callee's execution. Any callee preferred embodiment; can be called by any callerwhich knows the interface, Fig. 14 shows the data structures for the OPEN and as long as the interface does not change, operation in VS 4O1 in a preferred embodiment; changes to the callee will not affect callers. and 4o The present invention permits computersystems Fig. 15 is a flowchart for the level 769 OPEN rou- to communicate with each other by means of call in- tine in a preferred embodiment. terfaces. In its most general form, the invention per- Reference numbers employed in the drawings mits a caller executing on one system to call a callee have three digits. The most significant digit is the on anothersystem. The invention may be used to call numberofthe drawing in which the item referred to by 4_ any kind of routine which is available in the system, the reference number first appears; thus, reference but is particulary adapted for calling system routines. number 215 refers to an item shown in figure 2 or 2A. System routines are routines which applications pro- grams running on the system can invoke when they DETAILED DESCRIPTlON OF A PREFERRED need to use system resources. Among the resources EMBODIMENT _o accessible by means ofsystem routines are the func- tions provided by the system's operating system, The following detailed description of a preferred those provided by its file system, and those provided embodiment ofthe invention will begin with a general by its data base system. Thus, communication by overview of the invention, will then show how the in- means ofcall interfaces permits a program executing vention is embodied in a particular set ofcooperating __ on one system easy access to the system resources computer systems, and finally provide examples of of another system. operations which are performed in the cooperating Communication using the call interface is partic- computer systems using the invention. ularly useful when the communicating machines 4
gocr ep0193933-005
7 EP O _93 933 B_ 8 have different instruction sets or different operating the routine in system 231 which it wishes to call in systems. The properties previously described for the storage 225 and then invokes MP 227. Depending on call interface are retained, and consequently a caller the implementation, the routine to be called may be on one system which calls a callee on anothersystem specified either in the parameters or in the call to MP need only know the callee's interface, and need have _ 227. MP 227 uses the contents ofstorage 225 toform no knowledge ofspecific characteristics ofthe callee the proper call protocol, places the protocol in proto- or the system in which the callee will execute. Com- col buffer 223, and does whatever is required in sys- munication between different types ofsystems is be- tem 233 to cause DT 213 to transfer the protocol to coming increasingly important as small systems such system 231 . Calling program 229 resumes execution as personal computers are connected to large sys- 1o after MP 227 receives the return protocol from sys- tems. In such an environment, the present invention tem 231 in prot 223, places data obtained from the re- permits the personal computer full access to the fa- turn protocol in call params 225, and returns. cilities ofthe large system. Forexample, the size and IP 211 in system 231 has suspended execution until complexity ofthe file systems used with a typical per- DT 213 indicates that it has received a call protocol sonal computer are limited; however, if the personal 1_ from system 233. DT 213 places the call protocol in computer is connected to a minicomputer or a main protocol memory 2O9, and IP 211 uses the data in the frame, the present invention permits the personal call protocol to set up parameters for the call in stor- computerto use anyfunction provided by the file sys- age 2O7 and then to call called program 2O5. When tem on the minicomputer or main frame. called program 2O5 does a return operation, the val- Figure 2 presents a block diagram of two coop- _o ues returned are in storage 2O7. IP 211 uses those erating computer systems incorporating the present values to form a return protocol, places the return invention. Computer systems 231 and 233 may be protocol in storage 2O9, and causes DT 213 to trans- similar or different computer systems. Each contains fer the return protocol to system 233. When DT 213 memory (2O3 and 21 9) for storing data and programs in system 233 receives the return protocol, it stores it and a CPU (2O1 , 221) formanipulating the data under __ in protocol storage 223 and causes MP 227 to resume control of the programs. It is immaterial for the pres- execution. MP 227 takes the values returned by the ent invention whether either ofthe computer systems return protocol, puts them into parameter storage contains more than one memory or more than one 225, and returns. Calling program 229 then retrieves CPU. Systems 231 and 233 are connected by means the returned values from call parameters 225. ofdata transport (DT) 213. DT 213 includes the phys- 3o Figure 2A presents generalized representations ical means used to transfer data from one system to of call protocols 21 5 and return protocols 217. While the other and the programs required to control the the precise form of a given call or return protocol is physical means. Again, the exact nature of DT 21 3 is dependent on the called procedure and on the imple- immaterial to the present invention. For example, mentation ofthe present invention, a call protocol 215 when the two systems are closely linked, it may be a 3_ will in general contain at least an identifierforthe rou- means of exchanging interprocessor messages be- tine being called, shown in figure 2Aas Rl 235 and the tween the systems. In less closely linked systems, va- call parameters, shown as CPAR 239. In some em- rious asynchronous and synchronous data transport bodiments, the call protocol will contain a value spec- systems may be employed, and the physical means ifying the length ofthe protocol, here CPL237; in oth- used to transferthe data may be any meanswhich will 4o ers, there may be a terminatorvalue marking the end transfer representations of data from one system to of the protocol. Return protocol 21 7 has the same the other. general form. Rl 235 indicates the routine whose The present invention has components in both parameter values are being returned, RPL 241 indi- system 233 and system 231 . Arrows connecting the cates the length ofthe return protocol, and RPAR243 components indicate flow of data between them. Ac- 4_ contains the return parametervalues. Again, a termi- tual movement of data is performed by CPU 2O1 or nator may be used to indicate the end of the return 221 in response to instructions in the program com- protocol. ponents. In system 233, there are a program, MP 227, An important advantage of the present invention which produces call protocols, storage 225 for the lies in the fact that from calling program 229's point parameters for the call, and protocol buffer 223 for _o ofview, there is no difference between a call to a rou- storing the call protocol until it is output over DT 213 tine in system 233 and the call to the routine in system to system 231 . In system 231 , there are a program, IP 231 . In both cases, calling program 229 places the 211 , which interprets the call protocols produced by parameters in memory, specifies the location of the MP 227 and performs the call in system 231 , protocol callee, and suspends execution. When the called pro- buffer 2O9, for storing the protocols received from __ gram does a return, calling program 229's execution system 233, and parameter storage 2O7 for storing resumes and the data received from the called pro- the parameters forthe call. The invention operates as gram is available in the parameters. Indeed, the only follows. Calling program 229 places parameters for practical distinction between the two calls is that the _
gocr ep0193933-006
9 EP O _93 933 B_ 1O call to the routine in system 231 requires more time. vice is performed using the lOP 413 associated with The foregoing discussion has dealtonlywith calls it. from system 233 to routines in system 231 . It is, how- Operation of CPU 4O3 and an lOP 413 are coor- ever, also possible to use the invention for calls in dinated as follows. instructions in the program exe- both directions. Such a form ofthe invention is shown _ cuting the IlO operation must first cause CPU 4O3 to in figure 3. Figure 3 shows the memories (3O5, 343) place an IlO command word (lOC_ 412 in memory of two systems (3O1 , 3O3). In figure 3, each system area for IlO 41 O. In a preferred embodiment, memory has components for providing calls to and receiving area41 O is located in the first64KofVS memory4O2. calls from the other system, and DT 325 includes a lOCW 412 for a given IlO operation specifies the op- path for calls from 3O1 to 3O3 and another for calls 1o eration to be performed and the location in memory from 3O3 to 3O1 . System 3O1 uses MP 317, parameter 4O2 which is to provide or receive the data. Next, the memory 321 , and protocol memory 323 to make a call instructions must cause CPU 4O3 to place an IlO received from calling program 31 9 into a call protocol command address (lOCA) 416 in a location reserved 215 forsystem 3O3, and system 3O3 uses IP 327, pro- forthe lOCAofthe device to be used in the operation. tocol memory 341 , and parameter memory 339 to call 1_ lOCA 416 contains the address of lOCW 412. Then, called program 337 in response to the protocol re- the program's instructions cause CPU 4O3 to place ceived from system 3O1 . Data returned by called pro- the address of lOCA416 in a register in CPU 413. Fi- gram 337 goes backto system 3O1 via return protocol nally, the program contains a start IlO (SlO) instruc- 217 as described above. System 3O3 uses MP 329, tion which specifies the register containing the ad- parameter memory 333, and protocol memory 331 to _o dress oflOCA416. In response to the SlO instruction, make a call received from calling program 335 into a lOP 4O3 associated with the device with which lOCA call protocol 215 forsystem 3O1 , and system 3O1 uses 416 is associated executes the IlO operation speci- IP 315, protocol memory 3O9, and parametermemory fied in lOCW 412 using the memory location speci- 3O7 to call called program 311 . Again, data returned fied therein, in this case Prot 4O7. At the end of the by called program 311 is returned to system 3O3 via __ IlO operation, lOP 4O3 writes an IlO status word a return protocol 217, as previously described. By ex- (lOSW) to location O in VS memory 4O2 and sends an changing calls as described above, systems 3O1 and interrupt415 to CPU 4O3. On receipt of interrupt 41 5, 3O3 can jointly perform a task which neither could CPU 4O3 executes an IlO interrupt program which ex- perform by itself. For example, if the task involved amines lOSW 411 to determine what device finished two data bases, one accessible tosystem 3O3 and the 3o an IlO operation and what the status ofthe operation other accessible to system 3O1 , either system could is and performs whateverfurthersteps are needed to access the other's data base as it required. complete the operation. In the implementation presently being described, 2. A System Embodying the Invention. Figure 4 lOSW 411 and lOCW 412 have the contents shown (PICTURE) 3_ in detail in Figure 6. IOSW 411 is 6 bytes long. The A preferred embodiment ofthe present invention fields are the following. is implemented in a VS computer system (VS) and a GS 6O1 contains a general status code for the Professional Computer system (PC), both manufac- IlO operation. tured by Wang Laboratories, Inc. The PC must in- ERR 6O5 contains an error code when GS 6O1 clude a 928 data link board. Acoaxial cable connects 4o indicates that there was an error in the IlO operation. the PC and the VS. Rcode 6O7 in the present implementation is a Figure 4 is a block diagram of the above imple- device-dependent code indicating that the IlO opera- mentation. In the block diagram, components which tion is part of a call by one system to another. have the same names as components of Figure 2 per- DD 6O9 contains further device dependent form the same functions. Thus, IP 414, like IP 211 , 4_ codes. processes call protocols. As in Figure 2, solid arrows RBC 611 is a value indicating how many bytes indicate flow of data between components of the in- remain to be transferred in the IlO operation. vention; dashed arrows indicate that the data struc- lOCW 412 in a present embodiment has the fol- ture which is the source ofthe arrow contains a poin- lowing fields. ter specifying the data structure which is the destin- _o CM 61 3, a code indicating the operation to be ation of the arrow. performed VS system 4O1 is a minicomputerwhich has as its Daddr 615, the address in VS memory 4O2 of main components CPU 4O3, memory4O2, and one or the source ordestination ofthe data being transferred more IlO processors 413. CPU 4O3 performs general in the IlO operation. data processing operations, while IlO processors 413 __ DLEN 617, the length of the data to be trans- operate under control of CPU 4O3 to perform IlO op- ferred. erations to IlO devices. Each IlO processor413 is as- Status 619, a code indicating the status ofthe sociated with at least one IlO device, and IlO fora de- IlO operation. 6
gocr ep0193933-007
1 1 EP O _93 933 B_ 12 PC 421 includes PC CPU 423, PC memory 422, Mess. Buff432. Z8O 425 responds when Rcode 5O1 and 928 board 424. As disclosed in U.S. Pat. Ser. No. has been set byforming an lOSW411 using thevalue 4, 145,739, Dunning et al., Distributed Data Process- ofRcode 5O1 from Req429 in Rcode6O7, setting Sta- ing System, issued March (PICTURE)2O, 19 9, 928 board 424 tus 5O3to indicate thata request has been sentto lOP (PICTURE)per orms IlO for a workstation in a distributed data _ 413, and setting SEM 427 to indicate that 928 board processing system. In PC 421, 928 board 424 func- 424 has data for lOP 413. IOP 413 periodically polls tions as a specialized lOP which permits PC 421 to SEM 427, and when it indicates that 928 board 424 be used as a workstation. 928 board 424 includes a has data, lOP 413 takes the data, in this case lOSW Z8O microprocessor 425 and shared memory 425. 411. IOP413 places lOSWatlocation O in VS memory Shared memory 426 is addressable by both PC CPU 1o 4O2 and sends an interrupt to CPU 4O3. CPU 4O3 is 423 and Z8O 425. 928 board 424 is connected via co- executing IP 414, which responds to the interrupt by axial cable 417 to lOP 413 in system 4O1 . Undercon- reading Rcode 6O7. When Rcode 6O7 indicates that trol of PC 428, Z8O 425 receives data from coaxial a call protocol 215 is to be received, IP 414 performs cable 417 and places it in shared memory426 orout- a read IlO operation specifying 928 board 424. As de- puts data from shared memory 426 to coaxial cable 1_ scribed above, it does so by setting up an lOCW 412 417. for the operation. IOP 413 associated with 928 board In the embodiment of the invention described 424 responds to lOCW 412 for the read operation by herein lOP 413 and the storage in memory4O2which setting SEM 427 to indicate that it is ready to receive it uses for data to be input and output and for control data from 928 board 424. Z8O 425 then responds to data, together with 928 board 424, make up data _o the change in SEM 427 by transferring the numberof transport (DT) 4O4. 928 board 424 appears to lOP bytes of data specified in Byte Ct. 5O5 of Req. 429 413 as a device towhich it can outputand from which from the location specified in BuffAddr5O7, i.e., from it can receive data in the mannerdescribed above. In Mess. Buff. 432. It then sets Status 5O3 to indicate 928 board 424, shared memory 426 contains data at thatcall protocol 215 has been accepted. As lOP 413 reserved locations which is used to coordinate oper- __ receives protocol 215, it places it in Prot 4O7, as spe- ation of lOP 413 associated with 928 board 424, Z8O cified in UFB 4O9 for the file corresponding to 928 425, and PC CPU 423. Coordination between lOP board 424. IP program 414 then reads protocol 215 413 and Z8O 425 is achieved by means ofsemaphore from Prot427 and performs the call. When the called (SEM) 427. SEM 427 is a location which may be read program returns, IP 414 constructs return protocol and set byeitherlOP413orZ8O425. Thevalue itcon- 3o 217, stores it in Prot 4O7, and performs a write oper- tains indicates whether data is being transferred be- ation tothe 928 board. IOP413 performsthewrite op- tween lOP413and Z8O425and ifit is, thecurrentsta- eration by setting SEM 427 to indicate that data is tus of the IlO operation. Coordination between Z8O available to be transferred from VS 4O1 to Z8O 425. 425 and PC CPU 423 is achieved by means of Req Z8O 425 responds to SEM 427 by receiving the data 429, which specifies the kind of IlO operation which 3_ from VS 4O1 . As Z8O 425 receives the data, it places PC CPU 423 wishes Z8O 425 to perform, the location it in Mess Buf432, as specified in Req 429. When all and size of the data in shared memory 426, and the ofthe data has been received, Z8O425 sets SEM 427 status ofthe operation. to indicate to VS 4O1 that it is finished receiving data Figure 5 is a detailed representation of Req 429. and Status 5O3 to indicate to PC 421 that it has re- RCode 5O1 is a byte which indicates the kind of IlO 4o ceived return protocol 217. Undercontrol of MP 435, operation to be performed; status 5O3containsstatus PC 421 has periodically polled Status 5O3 to deter- codes for the operation; Byte Ct 5O5 contains the mine whether return protocol 5O3 has been received. number of bytes to be transferred in the operation; When the value of Status 5O3 indicates that it has BuffAddr 5O7 contains the address of Mess Buf432, been, MP 435 processes return protocol 217 in Prot the area in shared memory 426 containing the data 4_ 431. sentorreceived. In this case, thedata iscall protocols With DT 4O4 functioning as just described, the 215, which are copied from Prot431 to Mess Buf432 other components of the invention work in the same when a call protocol 215 is sent, and return protocols fashion as described with regard to Figure 2. calling 217, which are copied from Mess Buf432 to Prot431 program 437 executing in PC 421 stores parameters when a return protocol is received. _o for the call in params 433 and calls MP 435; MP 435 In transferring protocols 215 and 217 via DT4O4, uses the parameters to constructcall protocol 215 for VS 4O1, Z8O 425, and PC 421 interact as follows. the specified call, places it in Prot 431 , and copies it when PC421 wishes tosend a call protocol 215 toVS into Mess Buf 432; DT 4O4 transfers protocol 215 to 4O1, it places call protocol 215 in Mess Buf432. Itfur- VS 4O1 in the manner just described; IP 414 reads thersets the fields of Req 429 as follows. Rcode 5O1 __ protocol 215 from Prot 4O7, constructs params 418 indicates the general kind of call protocol 215 being for the call, and calls called program 419. On return sent, byte ct 5O5 indicates the length of the call pro- from called program 419, IP 414 constructs return tocol, and buff addr 5O7 indicates the location of protocol 217 from the data in Params 418 and places l
gocr ep0193933-008
13 EP O _93 933 B_ 14 return protocol 217 in Prot 4O7; DT 4O4 transfers re- the value of Status 5O3. When Status 5O3 indicates turn protocol 217 to Mess Buf432 in PC 421 ; MP 435 that VS 4O1 has sentdata to PC 421 , CPS 7O7 copies copies protocol 217 from Mess Buf432 into Prot 431 , return protocol 215 into the response bufferspecified places the returned data in Params 433, and returns in the call to CPS 7O7 and returns. The routine in level to calling program 437. _ 7O9 which invoked CPS 7O7 then puts the data re- turned in return protocol 215 into the proper form for 3. MP 435 and IP 414 in a Preferred Embodiment. the routine which called the routine in level 7O9 and (PICTURE)Figures 7 an 7A returns. (PICTURE) Turning now to IP 414 in VS 4O1 , figure 7A pro- Figure 7 is a functional block diagram of MP 435 1o vides a block diagram of the structure of that pro- in a preferred embodiment. MP 435 has two levels. gram. IP414 has three levels, 765, 767, and 769. Lev- Ievel 7O9 and level 711 . The routines at level 7O9 con- el 769 consists of the routines which perform the ac- struct call protocols 215 and receive return protocols tual calls to user routines and system routines; Level 217; the routine at level 711 sends call protocols 215 767 consists of routine 753, which is a general han- to VS 4O1 and receives return protocols 21 7 from VS 1_ dler for call protocols specifying user services, and 4O1 . The routines in level 7O9 correspond to the calls routines 755 through 757, each ofwhich is a general to be made to VS 4O1 ; in a present embodiment, handler for call protocols 215 specifying routines be- these routines are subdivided into groups termed ser- longing to a set ofsystem services. Each routine 753 vers. One group, shown in Figure 7 as PC userserver and the level 769 routines it invokes makes up a VS 71 O, containing UCR routines O through n 7O1 , con- _o server. Thus, user handler 753 and user callers 759 sists ofroutines which call non-system routines in VS make up VS userserver771 , while Sys handlerA755 system 4O1 ; the other groups, shown as PC system and the level 769 routines it invokes make up VS sys- server 711 A through N, containing routines SCRA tem server 773. In a present embodiment, there is a 7O3 O through n through routines SCRN 7O5 O through VS server corresponding to each PC server. N, correspond to different sets of system routines in __ Level 765 consists of the call protocol receiving VS system 4O1 . The numberofgroups ofroutines and (CPR) routine, which receives Rcode 6O1 and call the number of routines in each group are implemen- protocol 215 and begins processing them. As may be tation dependent, depending on the number of non- seen from the arrows in figure 7A, each of the rou- system routines which are to be made available, the tines at level 767 receives the location of a call pro- kinds of system services which are to be made avail- 3o tocol 215 from CPR 751 and returns the location ofa able, and the number of routines provided for each return protocol 21 7 to it. Each ofthe routines at level group ofservices. All ofthe routines in level 7O9 have 769 has access to the specified locations. the inputs and outputs shown for UCRO 7O1 . each re- General operation of IP 414 is as follows. as pre- ceives a call, produces a call protocol 215, and proc- viously described, transfer of a call protocol 21 5 be- esses the return protocol received in response to the 3_ gins with transfer of lOSW 411 containing Rcode 6O7 call protocol. from Req 429. CPR 751 determines from Rcode 6O7 When a program in PC 421 wishes to call a rou- which VS server is being invoked. It then performs tine in VS 4O1 , it invokes the corresponding routine in the read operation which results in the transferofcall Ievel 7O9, providing the parameters needed by the VS protocol 215 from PC421 toVS 4O1 , as previouslyde- 4O1 routine as parameters to the corresponding rou- 4o scribed, and thereupon calls the level 767 handler tine in level 7O9. The routine in level 7O9 constructs routine corresponding to the VS server specified by the proper call protocol 215, places it in Prot431 , and Rcode 6O7. The level 767 handler routine then deter- calls call protocol sender (CPS) 7O7, giving as para- mines from the call protocol what call is to be per- meters a code indicating the general type of the call formed and invokes the routine at level 769 which ac- being made, pointers to locations in prot 431 for the 4_ tually performs the call. That routine uses call proto- call protocol 215 provided by the routine in level 7O9 col 215 to form the parameters for the call and does and the return protocol 217 which is to be returned, the call. On return from the call, the routine at level a value indicating the length of call protocol 215, and 769 makes the proper return protocol 217, and on re- a pointer to a location at which the length of return turn from that routine, the 767-level handler returns protocol 21 7 may be stored. CPS 7O7 then reads Buff _o and CPR 751 performs the write operation to 928 Addr5O7 in Req 429 todetermine the location ofMess board 424, thereby transferring return protocol 21 7 to Buff 432, moves the call protocol into Mess Buf 432 PC 421 . and sets Req 429 so that Rcode 5O1 indicates the general type of the call being made and Byte Ct 5O5 4. Detailed Operation of IP 414. Figures 8-11 contains the length of call protocol 215. IOCW 411 __ (PICTURE) containing Rcode 5O1 and call protocol 215 are then Figures 8-11 are detailed flowcharts ofoperation transferred in the manner previously described, and of IP 414 and its components in the embodiment of CPS 7O7 executes a loop which continually checks figure 4. Figure 8 is the loop executed by the system 8
gocr ep0193933-009
15 EP O _93 933 B_ 16 program in VS 4O1 which performsworkstation IlO for awaits a request from PC 421 (block 1 OO5). As previ- PC 421 . The program executes as long as VS 4O1 is ously explained, in a present embodiment, the re- running and performs two operations. first, it waits quest takes the form of an lOSW 411 sent from 928 until PC 421 issues a request to log on as a worksta- board 424 to lOP 413. PR 751 reads Rcode 6O9 from tion via Rcode 429 (block 8O1), and then, when PC _ lOSW 411 (block 1 OO7). 421 issues the request, the program responds by per- Further processing depends on the value of forming whatever processing is required during logon Rcode 6O9. If the value is one which indicates a new (block 8O3). When PC 421 logs off, the program re- call protocol (block 1 OO9), CPR 751 frees the storage sumes waiting at block 8O1 . reserved for processing the last call protocol (block Continuing with figure 9, which is a detail of block 1o 1 O1 O). The next step is decision block 1 O11 . If Rcode 8O3, when PC 421 logs on, it specifies what kind of 6O9 indicates that more data is to be received from PC interaction it desires with VS 4O1 . It may either spec- 421 , CPR 751 performs a read operation on 928 ifythe interaction in response toa queryfrom VS4O1 , board 424 (block 1 O13) and branches to block 1 OO5, or it may do so by means ofa message which it sends where it awaits the arrival of the data read from PC VS 4O1 when it logs on. In either case, as shown in 1_ 421 . Rcode 6O9 indicating that more data is to be re- block 9O1 , the program determines the kind of inter- ceived from PC 421 is issued by MP 435 when either action and then, as shown in block 9O3, if the kind is Mess Buf 432 in PC 421 or Prot 4O7 in VS 4O1 is too a call from PC 421 to VS 4O1 , the program calls CPR small to hold the entire protocol. routine 751 . Otherwise, it calls an equivalent routine Next comes decision block 1 O11 . If Rcode 6O9 in- for any other interaction desired (block 9O5). _o dicates that more data is to be sent to PC 421 , CPR Figures 1 O and 1 OA are a flowchart of CPR 9O7. 751 performs a write operation on 928 board 924 Flow of control in CPR 9O7 is controlled by the value (block 1 O17) and again branches to block 1 OO5. of Rcode 6O7 in lOSW 411 . In a present embodiment, Rcode 6O9 indicating that more data is to be sent will Rcode 6O7 may specify actions including the follow- be sent by PC 421 when a return protocol for a call ing. __ contains more data than can be stored in Prot 4O7 or 1 . continue sending the return protocol from the Mess Buf 432. previous request If there is no branch at decision block 1 O15, exe- 2. call a system image handling program cution continues with decision block 1 O19. If Rcode 3. call an operating system program 6O9 specifies logoff, the program branches to block 4. call a file system program 3o 1 O21 , does the final processing necessary for logoff, 5. call a linking system program and returns (block 1 O23). If there is no branch at de- 6. call a program invoked by one of four VS user cision block 1 O19, execution continues with block servers 771 . 1 O25, in which call protocol 215 is read from PC 421 7. continue receiving the current call protocol. into Prot 4O7. CPR 751 then determines from Rcode 8. Iog off 3_ 6O9 which VS server it is to use and invokes the level There is a VS system server 773 corresponding 767 handler routine for that server (block 1 O27). to each ofactions 2 through 5 above. The linking sys- When the routine returns return protocol 217 is avail- tem programs permit PC 421 to log on as a terminal able to be sent to PC 421 , and CPR sends it (block for VS 4O1 . Actions 1 and 7 permit the use ofcall and 1 O29) and branches to block 1 OO5 to await the next return protocols which contain more data than can be 4o request from PC 421 . stored at one time in mess buff 432 or prot 4O7. An Figure 11 is a flowchartfora typical level 767 rou- example of such a call protocol 21 5 is the write file tine. Processing by the routine begins with call 11 O1 protocol, in which the protocol includes the data being and continues with allocation of storage for params written to the file. Similarly, the return protocol 217 418 as required for the class of calls handled by the for the read file operation includes the data being 4_ VS server to which the level 767 handler routine be- read from the file. In a present embodiment, users longs (block 11 O3). The routine next determines the may provide up to four VS user servers 771 . The rou- kind of call to be performed from Rl 235 in call proto- tines making up the VS userservers 771 are statically col 215 (block 11 O5). Thereupon, it performs the call linked to the VS 4O1 operating system. In other em- to the 769 routine (block 11 O7) performing that call, bodiments, more or fewer user servers 771 may be _o and when the 769 routine returns, the level 767 rou- provided and it may be possible to dynamically link tine returns (block 11 O9). the user servers to the operating system. The operations performed by a given level 769 As may be seen from figures 1 O and 1 OA, CPR routine is strongly dependent on the kind ofcall being 751 is implemented as a loop which continues proc- performed. Generally speaking, a level 769 routine essing call protocols 215 until Rcode 6O7 specifies __ uses the information in the call protocol to set up the that PC 421 wishes to log off. After call 1 OO1 , CPR parameters for the call it performs, performs the call, 751 first performs the actions necessary to perform and on return from the call, constructs the return pro- IlO to 928 board 424 (block 1 OO3). Then CPR 751 tocol. An exemplary description ofa level 769 routine 9
gocr ep0193933-010
17 EP O _93 933 B_ 18 will be given below. ignation of parameters by means of Ols 1218 makes it possible to omit unnecessary parameters from 5. Implementation ofthe OPEN System Call. open parameter block 1215 and to give the parame- (PICTURE)Figures 12- 5 ters in block 1215 in any order. (PICTURE) _ vsopen uses the information in parameter block The OPEN system call in VS 4O1 is a file system 12O2_pen param block 1215 toconstructthe call call which prepares a fileforuse bya program. In log- protocol for OPEN in prot 431. Figure 13 shows the ical terms, the OPEN system call defines the manner OPEN call protocol. OPEN call protocol 13O1 has in which the file will be used by the program. In phys- three main parts. header 1313, required data 1315, ical terms, the OPEN system call establishes a rela- 1o containing data required forevery OPEN call, and op- tionship between a user file block (UFB) and a file. tional data 1331 , whose contents depend on the kind The UFB contains values which determine the man- offile being opened. All call protocolsforsystem calls ner in which the file may be used and the address of in a present embodiment have header 1313 and re- an area in memory 4O2 for the data to be received quired data 1315, and all headers contain a code from or output to the file. Since the UFB for the file 1_ specifying the system call, bytes containing control must exist before the OPEN system call can be per- data supplied by PC 421 and unchanged by VS 4O1, formed, opening a file in VS 4O1 in fact always in- and a value specifying the number of bytes in the volves two operations. setting up the UFB for the file message which follows the header. The other con- and then performing the open operation. tents ofthe headerdepend on the kind ofsystem call. The call in PC421 which results in an OPEN sys- _o In header 1313 forthe call protocol forthe OPEN tem call in VS 4O1 is thefunction call vsopen. The call system call, the first field is routine identifier (Rl) hasasingleargument. a pointerto Pa_35,which 13O3, which identifies the system call to be made by forvsopen contains a data structure whose contents VS4O1; next is requestflags (RF) 13O5, which are un- are _p rameters required to set up the UFB and used in the present embodiment but may be used in perform the OPEN system call. If the call succeeds, __ other embodiments as modifiers for Rl 13O3. CTL vsopen has the Boolean value T; otherwise, it has the INFO 13O7 contains information used only by PC421; _n value F. Figure 12 shows the data structure it is not modified byVS4O1 and is returned to PC421 used in vsopen. Param ptr 12O1 points to parameter in the return protocol. FH 13O9 contains a null file block 12_, ch hasspaceforthefollowing informa- handle. LCM 1311 specifies the length of the call tion. 3o message following header 1313. FH 12O3 contains the file handle, a VS 4O1 Required data 1315 contains OM 1317, specify- identifier for the file, on return(PICTURE)fro vsopen. ing the mode in which the file is to be opened in VS OM 12O7 indicates the file's o_p ode. Ex- 4O1; FO 1319 specifies the type of organization amples of modes of opening a file are opening it for which thefile is to have; DT 1321 specifiesthe device input, opening it for output, or opening it for both 3_ the file is associated with. LN 1323 specifies the FO 12O9 indicates how the file is organized, length ofthe following field, FN 1325, which contains i.e., how its contents are arranged. thefile name. In VS4O1, afile name always hasthree DT 1211 indicates the kind of device the file components. a volume number, a library, and a file may be used with. For example, a file which is to be name. output to a printer has the print device type. 4o The contents ofoptional data 1331, as previously FN ptr 1212 is a pointerto FN 1214, which con- mentioned, varies from OPEN call to OPEN call, de- tains the name ofthe file to be opened. pending on the kind of file being opened. Optional OP ptr 1213 is a pointer to open parameter data 1331 contains optional items (Ols) 133O, each block 1215, which contains the parameters for the one of which has two parts. tag 1327 indicating the UFB for the file. 4_ data's significance, and item value 1329, which is the PLN 1221 specifies the length of open para- data itself. The use of tag 1327 permits Ols 133O to meter block 1215. be omitted from optional data 1331 and to occur in AK ptr 1223 is a pointer to altkey info buffer any order therein. 1224, which contains alternate keys for the file re- As may beseen bycomparing OPEN call protocol turned by the return protocol. _o 13O1 with the data structures forvsopen in figure 12, Ret ptr 1225 is a pointer to return code area vsopen constructs protocol 13O1_p t 431 as fol- 1228 which is used to store status codes and the pri- _rst, it provides the proper value for the OPEN mary key returned in the return protocol. operation in Rl 13O3; then it sets FH 13O9 to the null Each parameter in open parameter block 1215 is value, copies OM 12O7, FO 12O9, and DT 1211 from specified by means of an optional item 1218. Each __ parameter block 212 to the corresponding fields in optional item (Ol) 1218 contains a tag 1217 which protocol 13O1, uses FNptr 1212 to locate FN 1214, specifies the kind of parameter and item value (IV) storing thecontents ofFN 1214 in FN 1325, computes 1219, which contains thevalueofthe parameter. Des- the length of the file name as it is stored, and places _O
gocr ep0193933-011
19 EP O _93 933 B_ 2O the length in LN 1323. vsopen finishes protocol 1 3O1 contains the file identifier for the opened file. LRM by using OP ptr 1213 to_open param block 1215 1 339 specifies the length ofthe return message; OM and copying each Ol 1218 therein into an Ol 133O in 1 341 indicates the mode in which thefilewas opened, protocol 13O1 . Finally, it uses PLN 1221 to calculate FO 1 343 the file organization, and FN is the file LCM 1 311 . After protocol 1 3O1 has thus been formed, _ name. IXL 1347 is the length ofthe following field, In- vsopen calls CPS 7O7, which, as previously men- dex Info 1349, which contains information required for _, copies the protocol from prot 431 to mess buf locating individual indexed records in the file. The ex- 432 and sends protocol 13O1 to VS 4O1 . act contents of Index Info 1349 depend on the kind of As previously explained, in a present embodi- file being opened. As previously mentioned, return ment, protocol 1 3O1 is preceded by Rcode 5O1 , which 1o protocol 1332 is returned by CPR 751 to PC 421 , specifies that protocol 13O1 is a file system protocol. where it is received by CPS 7O7. CPR 751 consequently selects and invokes the level vsopen receives return protocol 1332 from CPS 767 system handler for the file system. That handler 7O7._present embodiment, CPS 7O7 is imple- determines from Rl 13O3 that an OPEN call is re- mented as a function which returns a value indicating quired and calls the level 769 routine for OPEN. Fig- 1_ the status ofthe call made bythe call protocol. vsopen ure 14 shows the data structures used bythatroutine. first places the value returned by CPS 7O7, to_g UFB 14O7 is the user file block for the file to be with Stat 1 1 333 and Stat 2 1335 from return protocol opened; it is constructed in Params 418; Open argu- 1 332 in return code area 1228. It then checks the val- ment 14O1 is the argument used in the VS OPEN sys- ues to determine whether the OPEN operation suc- tem call; it consists of two parts. a byte in which VS _o ceeded. If the operation did not succeed, vsopen re- 4O1 returns an error code and UFB pointer 14O5, turns the value F; if it did, vsopen updates_2O3, which points to UFB 14O7. OM 12O7, FO 12O9, and _14 from the corre- Figure 15 is a flowchart for the level 769 OPEN sponding values of return protocol 1 332. Then it routine. The routine first sets fields in UFB 14O7 from writes partofindex info 1349 to return code area 1228 protocol 13O1 and then does the VS OPEN system __ and the remainder to altkey info buffer 1225 and re- call. As shown by block 1 5O3, the routine first sets turns T. UFB 14O7 fields from required data 131 5 of protocol As will be readily understood by those skilled in 1 3O1 . Then it enters a loop (blocks 1 5O5 and 15O7) in the art, the apparatus and methods used to perform which itworks through optional data 1331 from begin- the OPEN system call in VS 4O1 from PC 421 may be ning to end under control of LCM 1311 . For each Ol 3o used for other system calls as well. In a present em- 1 33O, tag 1 327 is fetched to determine what kind of bodiment, the following system calls are performed. value isfollowing in item value 1329 and then itemval- ue 1329 is placed in the field of UFB 14O7 required by 5. File system calls. tag 1327. When there are no more Ols 133O to be processed, the level 769 OPEN routine does the VS 3_ OPEN system OPEN call, using OPEN argument 14O1 CLOSE (close an open file) (block 15O9). When the system OPEN call returns, READ (read data from a file) the level 769 OPEN routine makes the return protocol WRITE (write data to a file) and returns. REWRITE (rewrite a portion of a file) The return protocol for OPEN is shown in Figure 4o DELETE (delete a portion of a file) 1 3A. Return protocol 1332 has two parts. header 1 351 and location dependent return data 1353. All re- B. Operating System Calls turn protocols for system calls in the present inven- tion have at least the header, and the headercontains MOUNT and DISMOUNT (mounting and dis- at least an identifier specifying the system call, the 4_ mounting disk drives) control information, and a value indicating the length EXTRACT (extracting data from the system of the remainder of the return protocol. The signifi- control blocks maintained by the operating system) cance of the data in location dependent return data LINK (using the operating system to invoke a 1 353 is determined by its location, and consequently, program) Ols are not employed in system return protocols. _o PUTPARM (providing parameters toa program In OPEN return protocol 1332, header 1351 be- invoked with LINK) gins with Rl 13O3, which has the same value as in call PROTECT (change the protection on a file) protocol 13O1 and thereby identifies return protocol READFDR (request information about a file) 1 332 as the return protocol corresponding to call pro- READVTOC (request information about a vol- tocol 13O1 . Stat 1 1333 and Stat2 1335 are statusval- __ ume table of contents) ues returned by the level 769 OPEN routine; CTL RENAME (rename a file) INFO 1 3O7 is returned unchanged from call protocol SCRATCH (delete a file or library) 1 3O1 . If the system OPEN call succeeded, FH 1 337 __ SET (set operating system constants)
gocr ep0193933-012
21 EP O _93 933 B_ 22 SUBMIT (submit a batch job) tion-dependent data which specifies whetherthe pro- TIME (get the system time and date) gram is from a system libraryora userlibrary, various CREATE (create a port for intertask messag- link options, and the program name, specified as vol- es) ume.library.file. The LINK return protocol consists XMIT (send an intertask message) _ only of the header, which contains the identifier for DESTROY (destroy an intertask message the LINK system call, a status byte which contains port) values indicating whether the operation succeeded CHECK (wait for an intertask message and re- and if it did not, what the error was, the control infor- trieve it) mation, and the value indicating the length of the re- MOREDATA (used when a single call or return 1o maining message, which in this case is O. protocol cannot transfer all of the data required) All of the above system calls may be performed 7. User-Supplied Call and Return Protocols using call and return protocols similartothose descri- (PICTURE) bed for OPEN. Where a call protocol carries only a A user ofthe computer system in which the pres- small fixed set of information, it may contain location 1_ ent invention is embodied may define his own call and dependent data like that in OPEN return protocol return protocols and may use the present invention to 1 332 instead of optional data 1331 . call procedures in VS 4O1 using his own call and re- turn protocols. In order to do so, the user must write 6. Invoking Routines using Call and Return his own PC userserver 71 O for MP435 in PC421 and (PICTURE)Protocols fo PUTPARM and LINK _o his own VS userserver771 for IP 414 in VS 4O1 . CPS (PICTURE) 7O7will transferusercall protocolsfrom PC421 to VS System and non-system routines can be invoked 4O1 , and CPR 751 will receive the call protocols and using the call protocols for the PUTPARM and LINK invoke the proper user-provided level 767 routine. system calls. With PUTPARM and LINK, a call proto- Beginning with the Level 7O9 routine in PC user col for PUTPARM is first used to provide the parame- __ server 71 O, as pointed out in the description ofvsop- ters for the routine to be called and a call protocol for en, a level 7O9 routine constructs a call protoco_ LINK is then used to invoke the routine. Both the PUT- -and then invokes CPS 7O7, using as parameters a PARM and LINK call protocols specify the routine for value for Rcode 5O1 and values specifying the loca- which parameters are to be provided orwhich is to be tions and lengths of the buffers for call protocol 215 called. The PUTPARM system call provides parame- 3o and return protocol 217. Alevel 7O9 user routine does ters for the specified routine, and the LINK system exactlythe same thing. itconstructs call protocol 21 5, call invokes the specified routine. Given the differ- which contains the values required by the userroutine ences in functions of the system calls, operation of in VS 4O1 being invoked. However, instead of provid- the present invention with these call protocols is gen- ing avaluefor Rcode 5O1 specifying a VS system ser- erally the same as described for OPEN. 3_ ver 773, it provides one of the values which may be The call protocol forthe PUTPARM system call is used in a present embodiment to specify a VS user made up of a header and location dependent data. server 771 . The header contains the request code, a status byte, Presently, fourvalues of Rcode 5O1 are available 8 bytes ofcontrol information, and 2 bytes specifying for this purpose. Thus, a user may write four VS user the message length. The location dependent part 4o servers 771 . When CPR 751 receives a value for contains a byte specifying putparm options, 8 bytes Rcode 5O1 specifying one of the VS user servers specifying the name of the program the parameters 771 , CPR 751 reads the user-provided protocol into are intended for, a byte specifying a program function Prot 4O7 and invokes the specified user server 771's key, and for each parameter specified in PUTPARM, level 767 handler routine. The contents of the level a field specification consisting of a field type identi- 4_ 767 handler routine may vary; however, in a present fying the parameter's data type, a keyword identify- embodiment, the names and parameters of level 767 ing the parameter, a field length specifier, a data handler routines in VS user servers 771 are defined Iength specifier, and thefield containing the data. The by the VS 4O1 operating system. The names are PUTPARM return protocol contains the PUTPARM USEROO through USERO3, and the parameters are a request code, a status byte which indicates whether _o value specifying the length of the input data, the ad- the system call succeeded and an error code if it did dress in VS 4O1 at which the input data is located, a not, the 8 bytes of control information, and two bytes value specifying the length ofthe outputdata, and the indicating the length of the message body, which in address in VS 4O1 atwhich the output data is located. this case, are set to O. CPR 751 supplies the first two parameters when it The LINK call protocol includes a headerwith the __ calls the level 767 user handler routine; the length identifierfor the LINK system call, a status byte, con- specifies the currentsize of Prot4O7 and the address trol information, and a value specifying the length of is the address of Prot 4O7; the level 767 user handler the message. The remainder of the protocol is loca- routine sets the values ofthe second two parameters _2
gocr ep0193933-013
23 EP O _93 933 B_ 24 to specify the size and location ofthe return protocol. Thus, the preferred embodiment disclosed herein is Prot 4O7 ofcourse contains the user call protocol to be considered in all respects illustrative and not re- received from PC421 . The level 767 user handlerrou- strictive. tine will generally deal with the user call protocol in the same fashion as the level 767 system handlerrou- _ tines. it will determine from the call protocol which of Claims the set of user routines associated with the specified VS user server 771 is to be called and then invoke a _. Adigital data processing system which has a des- Ievel 769 routine in VS server 771 to perform the ac- tination data processing means (231) coupled by tual invocation. The level 769 routine will then read 1o message transport means (21 O) to a source data the user call protocol, set up Params 418 for the call, processing means (233) and wherein the source perform the call, and when the called routine has re- data processing means (233) has remote call pro- turned, construct the user return protocol and return viding means (227) for providing a remote call to the location and length of the user return protocol to a callable program (2O5) in the destination data the level 767 routine, which passes that data back to 1_ processing means (231), and the destination CPR 751 . CPR 751 then sends the user return proto- data processing means (231) has remote call re- col backto PC421 , where CPS 7O7 puts it in Prot431 . ceiving means (211) for receiving the remote call The level 7O9 routine in the PC user server which in- and performing a call to the callable program voked CPS 7O7 then processes the return protocol. (2O5), While the exact form of user-defined call and re- _o and comprises a call protocol (215) which is pro- turn protocols and the actions performed by routines duced by the remote call providing means (227) in PC use4 servers 71 O and VS user servers 771 are in the source data processing means (233), determined by the user, these protocols and routines transferred via the message transport means perform functions analogous to those performed by (21 O) to the destination data processing means the protocols and routines described for the system __ (231), and which is received by the remote call re- OPEN call, and one skilled in the art may easily de- ceiving means (211) termine from the foregoing description how he might and the call protocol (21 5) includes a program write his PC user servers 71 O and VS user servers identifier (Rl235) and call parameters (CPAR 771 and how he might define his own protocols. 239) for specifying the callable program (2O5), 3o characterized in that 8. Conclusion each call protocol (21 5) may contain an optional (PICTURE) part (1331) containing one or more optional The foregoing Specification has shown how in- Items, said item not being required in every call teraction by computer systems using call and return to the callable program but being used by the re- protocols solves important prior-art problems, has 3_ mote call receiving means in making the call disclosed the general principles involved in construct- when the optional items are present in the proto- ing computer systems in which a first computer sys- col, tem provides a protocol specifying a call to be per- each optional item including a parameter value formed by the second computer system and the sec- and an item tag specifying the use ofthe parame- ond system performs the call and provides a return 4o ter value in the call, protocol, and has disclosed a preferred embodiment the remote call receiving means using each op- of the invention. The disclosure of the preferred em- tional item's parameter value in the call as speci- bodiment has shown in detail how a Wang Laborator- fied by the optional item's tag. ies, Inc. PC computer may form a call protocol and provide it to a Wang Laboratories, Inc. VS computer, 4_ 2. A digital data processing system as set forth in how the Wang Laboratories, Inc. VS computer inter- claim 1 , wherein there is no required order ofthe prets the call protocol, executes the call, and provides optional items in the optional part. a return protocol to the PC computer, and howthe PC computer interprets the return protocol. As pointed 3. A digital data processing system as set forth in out in the detailed disclosure, the invention may be _o claim 1 , further including a length specifier for used to call both system routines and user routines. specifying the length of the call protocol. As pointed out in the Specification, the invention may be practiced in any system involving more than 4. A digital data processing system as set forth in one processing unit, and is in no way limited to Wang claim 1 , further including a required data part re- Laboratories, Inc. computers, to the specific commu- __ quired forevery call to the callable program (2O5). nications devices used in the preferred embodiment, to the specific protocols described herein, or to the _. Amethod ofperforming a remote call ofa callable particular programs which produce and interpret it. program within a digital data processing system _3
gocr ep0193933-014
25 EP O _93 933 B_ 26 which may be called with one or more optional ar- (1 331 ) enthalten kann, der ein oder mehre- guments which are not required in every call to re wahlweise Datenelemente enthält, wobei the program including the steps of das Datenelement nicht in jedem Aufruffür in a source data processing means which is the das aufrufbare Programm erforderlich ist, source of the remote call, forming a call message _ sondern von der Fernaufruf-Empfangsein- including a program identifier and call parame- richtung beim Ausführen des Aufrufes be- ters which specify the callable program, nutzt wird, wenn die wahlweisen Datenele- sending the call message via message transport mente im Protokoll vorhanden sind, means to a destination data processing system at - jedes wahlweise Datenelement einen Para- which the callable program is located, and 1o meterwert und ein Datenelement-ldentifi- calling the called program in the destination sys- zierungskennzeichen, das die Verwendung tem, des Parameterwertes im Aufruf vor- further characterized by the steps of. schreibt, enthält, including in the callable program an optional item - die Fernaufruf-Empfangseinrichtung den representing each optional argument used in the 1_ Parameterwert jedes wahlweisen Daten- call and for each optional item including an item elementes im Aufruf entsprechend dem value representing the value ofthe optional argu- Identifizierungskennzeichen des wahlwei- ment represented by the optional item and an sen Datenelementes benutzt. item tag specifying which optional argument the item value represents; and _o 2. Digitaldaten-Verarbeitungssystem nach An- in the destination data processing system, re- spruch 1 , bei dem im Wahl-Teil keine erforderli- sponding to the call message by calling the call- che Reihenfolge der wahlweisen Datenelemente able program using each of the optional items as besteht. an optional argument and said item value ofeach optional item to form the optional argument spe- __ 3. Digitaldaten-Verarbeitungseinrichtung nach An- cified by the optional item's item tag. spruch 1 , ferner mit einem Längenspezifizierer zum Vorschreiben der Länge des Aufrufproto- kolls. Patentansprü_he 3o 4. Digitaldaten-Verarbeitungssystem nach An- _ . Digitaldaten-Verarbeitungssystem mit einer Ziel- spruch 1 , ferner mit einem Mu_-Datenteil, derfür Datenverarbeitungseinrichtung (231), die durch jeden Aufruf für das aufrufbare Programm (2O5) eine Nachrichtenübertragungseinrichtung (21 O) erforderlich ist. mit einer Quellen-Datenverarbeitungseinrichtung (233) verbunden ist, und bei dem die Quellen-Da- 3_ _. Verfahren zum Ausführen eines Fernaufrufs für tenverarbeitungseinrichtung (233) eine Fernaufruf- ein aufrufbares Programm in einem Digitaldaten- Bereitstellungseinrichtung (227) zum Bereitstellen Verarbeitungssystem, das mit einem odermehre- eines Fernaufrufs für ein aufrufbares Programm ren wahlweisen Argumenten aufgerufen werden (2O5) in der Ziel-Datenverarbeitungseinrichtung kann, die nicht bei jedem Aufruf des Programms (231) aufweist und die Ziel-Datenverarbeitungs- 4o erforderlich sind, mit den Arbeitsschritten. einrichtung (231) eine Fernaufruf-Empfangsein- - in einer Quellen-Datenverarbeitungeinrich- richtung (21 1) zum Empfangen des Fernaufrufs tung, von welcher der Fernaufruf ausgeht, und zum Ausführen eines Aufrufes fürdas aufruf- das Erstellen einer Aufrufnachricht, ein- bare Programm (2O5) aufweist, schlie_lich eines Progammidentifizierers und das ein Aufrufprotokoll (21 5) aufweist, das 4_ und Aufrufparameter, die das aufrufbare von der Fernaufruf-Bereitstellungseinrichtung Programm vorschreiben, (227) in der Quellen-Datenverarbeitungseinrich- - das Senden der Aufrufnachricht über eine tung (233) erzeugt, durch die Nachrichtenüber- Nachrichtübertragungseinrichtung an eine tragungseinrichtung (21 O) zur Ziel-Datenverar- Ziel-Datenverarbeitungseinrichtung, in der beitungseinrichtung (231) übertragen und von _o das aufrufbare Programm eingerichtet ist, der Fernaufruf-Empfangseinrichtung (211 ) emp- und fangen wird, - das Aufrufen des aufgerufenen Programms und das Aufrufprotokoll (21 5) einen Programm- im Zielsystem, ferner gekenn_ei_hnet identifizierer (Rl 235) und Aufrufparameter durch die Arbeitsschritte. (CPAR 239) zum Spezifizieren des aufrufbaren __ - Einsetzen in das aufrufbare Programm ei- Programms (2O5) umfa_t, nes wahlweisen Datenelementes, das je- dadurch gekenn_ei_hnet, da_ des im Aufrufverwendete wahlweise Argu- - jedes Aufrufprotokoll (21 5) einen Wahl-Teil ment darstellt, und fürjedes wahlweise Da- _4
gocr ep0193933-015
27 EP O _93 933 B_ 28 tenelement eines Datenelementwertes, der l'appel, den Wert des durch das wahlweise Daten- le moyen de réception d'appel à distance utilisant element dargestellten wahlweisen Argu- chaque valeur de paramètre d'élément facultatif mentes darstellt, und eines Datenelement- de l'appel de la façon indiquée par l'indicateur Identifizierungskennzeichens, das vor- _ d'élément facultatif. schreibt, welches wahlweise Argument der Datenelementwert darstellt, und 2. Système informatique numérique selon la reven- - in der Ziel-Datenverarbeitungseinrichtung dication 1 , dans lequel il n'y a pas d'ordre imposé das Ansprechen auf die Aufrufnachricht des éléments facultatifs dans la partie facultati- durch das Aufrufen des aufrufbaren Pro- 1o ve. gramms unter Verwendung jedes der wahl- weisen Datenelemente als wahlweises Ar- 3. Système informatique numérique selon la reven- gument und des Datenelementwertes je- dication 1 , comprenant de plus un indicateur de des wahlweisen Datenelements zu Bildung longueur pour indiquer la longueur du protocole des wahlweisen Argumentes, das vom Da- 1_ d'appel. tenelement-ldentifizierungskennzeichen des wahlweisen Datenelementes vorge- 4. Système informatique numérique selon la reven- schrieben ist. dication 1 , comprenant de plus une partie de don- nées nécessaires demandées à chaque appel du _o programme pouvant être appelé (2O5). Revendi_ations _. Procédé d'appel à distance d'un programme pou- _ . Système informatique numérique qui possède un vant être appelé dans un système informatique moyen informatique récepteur (231) relié par un numérique qui peut être appelé avec un ou plu- moyen d'acheminement de message (21 O) à un __ sieurs arguments facultatifs qui ne sont pas né- moyen informatique émetteur (233) et dans le- cessaires dans chaque appel du programme quel le moyen informatique émetteur (233) pos- comprenant les étapes consistant à sède un moyen générateur d'appel à distance former dans un moyen informatique émetteur qui (227) pour générer un appel à distance à un pro- émet l'appel à distance, un message d'appel gramme pouvant être appelé (2O5) du moyen in- 3o comprenant un identificateur de programme et formatique récepteur (231), et le moyen informa- des paramètres d'appel qui désignent le pro- tique récepteur (231) possède un moyen de ré- gramme pouvant être appelé, ception d'appel à distance (21 1) pour recevoir envoyer le message d'appel par l'intermédiaire l'appel à distance et effectuer un appel du pro- d'un moyen d'acheminement de message au sys- gramme pouvant être appelé (2O5), 3_ tème informatique récepteur dans lequel se trou- et comprend un protocole d'appel (21 5) qui est ve le programme pouvant être appelé, et produit par le moyen générateur d'appel à distan- appeler le programme appelé dans le système ré- ce (227) du moyen informatique émetteur (233), cepteur, transmis par l'intermédiaire du moyen d'achemi- caractérisé en outre par les étapes consistant à . nement de message (21 O) au moyen informati- 4o incorporer dans le programme pouvant être ap- que récepteur (231 ), et qui est reçu par le moyen pelé un élément facultatif représentant chaque de réception d'appel à distance (21 1) argument facultatif utilisé dans l'appel et pour Ie protocole d'appel (21 5) comprenant un identi- chaque élément facultatif incorporer une valeur ficateur de programme (Rl235) et des paramè- d'élément représentant la valeur de l'argument tres d'appel (CPAR 239) pour désigner le pro- 4_ facultatif représenté par l'élément facultatif et un gramme pouvant être appelé (2O5), indicateur d'élément indiquant quel argument fa- caractérisé en ce que cultatif la valeur d'élément représente; et chaque protocole d'appel (21 5) peut contenir une répondre dans le système informatique récep- partie facultative (1 331) contenant un ou plu- teur, au message d'appel en appelant le program- sieurs éléments facultatifs, lesdits éléments _o me pouvant être appelé en utilisant chacun des n'étant pas nécessaires dans tous les appels du éléments facultatifs comme un argument faculta- programme pouvant être appelé mais étant utili- tif et ladite valeur d'élément de chaque élément sés par le moyen de réception d'appel à distance facultatif pour former l'argument facultatif spéci- Iors de l'appel lorsque les éléments facultatifs fié par l'indicateur d'élément d'élément facultatif. sont présents dans le protocole, __ chaque élément facultatifcomprenant une valeur de paramètre et un indicateur d'élément indi- quant l'utilisation de la valeur de paramètre de __
gocr ep0193933-016
(PICTURE) EP O _93 933 B_ _ E __ _ _ _ ___ _ D E (PICTURE) O _ _ _ _i __ _ _ -O _O_ _ D O O _ __O_ .O_- o- __ E _ __ __ _' _ _ -_ _ __ _ _6
gocr ep0193933-017
(PICTURE) EP O _93 933 B_ _ _ _ _ . E _ _W_ _ E .O- _t _ t _E _E _ _ __ _ _ __ _O _ E __ W _ Ut _ .E- ___ _ _ O O _ -ft _. _ _ -E _ __ __ __ _ _l
gocr ep0193933-018
(PICTURE) EPO_93933B_ (PICTURE)C(PICTURE) oIl Proto_ol 2l5 (PICTURE)(PICTURE) Ratur_ Protocol 2l7 FIG. 2A. Generol Forms o_ coll ond Raturn pro_o_ols Req. 429 FIG. 5. Raquast q29 _eto_l (PICTURE)IOsW 4ll _atolJ (PICTURE)IOCW 4l2 _atoll FIG. 6. us qol __o structures _8
gocr ep0193933-019
(PICTURE) EP O _93 933 B_ _ O_ __' _ _ _ E _ ___ _ _ .__ _O_ _ _ O _ _ __ -_ __ _ _ _ O _ _' _$ __ _ _9
gocr ep0193933-020
(PICTURE) EP O _93 933 B_ (PICTURE) _ O _ O_ __ $ E -_ O ' _ E W _ __ ___ $_ lt _ _O E __ _ _ _ __ _ _. 2O
gocr ep0193933-021
(PICTURE) EPO_93933 B_ _ _ -$ j j - _ O _ - _---j h--_ j h O _ _ _j O i$io h ___ _ ii ô $ _ E iO i _ ij _ o O _ __ _ U_ 'j _ W _ $_ $ $_ _ _ Oo- $ _ _ _ _ lt O HE _ _ _ _ _ h j _ L- -- -- _ 2_
gocr ep0193933-022
EP O _93933 B_ -_ _ _ h _ t _ j j _ _ _ _ _ iD j h j h j _ _ (PICTURE) h (PICTURE) h _ __j __ _ _____ h Ut _O Ut ii_ > t_ __ _ _ _ h _ __h O. ii_ 4 --O __ u j_ _ _ t _ Oe _ h _- Ut o _ _ _e _ j O W _ _ _ __ ___ __ lt O .t- _ _ _ H _4 --O U __ _ 22
gocr ep0193933-023
(PICTURE) EP O _93933 B_ 8Ol 8O3 (PICTURE) lOOl FIG, 8. Ge_e_o_ wo__ s_o__o__/ (PICTURE) lOO_ IOO_ IOO7 IOO9 FIG. 9. _lo__ 8o_ Dg____ FIG, lO. cpR 7__ Flo______ 23
gocr ep0193933-024
(PICTURE) EP O _93 933 B_ (PICTURE) l lOl llO_ Fl G. l OA . cpff Flo_G_o__ co__ llO_ ' IlO7 llO9 Fl G_ l l . T_p__o_ Lavel _767 Rou_l_e 24
gocr ep0193933-025
(PICTURE) EPO_93933B_ _l $ D O _ _ _O_ hl _ _ _ -_ _ $_ __ _ __ __ _O O _ O -N _ _ 2_
gocr ep0193933-026
EPO_93933B_ (PICTURE) (PICTURE)__ E _ _ _ _- _ (PICTURE) ft- (PICTURE)(PICTURE)-__(PICTURE)- -_ _O O O (PICTURE) _ _ _ _O _ _ _ (PICTURE) _ _ _ _- _- _O _O O O O O O _' (PICTURE) (PICTURE)t _ .O- _ __ _ o $ O u _O -o _ _- _O o __ o _ i _O -_ _ O _ _ ( ii_ _ N_i_ O _ = $ ft$ o O i -_ U - _ ft _ _ O_ - _ _ O _W iij o =o W _ _ _Oii - ~ _ _ _ _o i _ o O $ W _i.. _ _ _ ij 4 _ - O .. o E O H iii_ $ i _$ o - i ___ _ o_ _ _$_ _ U__ O _ i _ _ __ O W_ O W_ __ __ uj __ - -O - O 26
gocr ep0193933-027
_ EP O _93 933 B_ (PICTURE) E .O_ _O_ _ _ O _ _ Ito O _ _ > _O_ _ __ __ _ __ __ __ _ O -_ _ _ _ -E __ O _ _ _ O = O- _ O O _ - - - _ (PICTURE) O (PICTURE) _ _ h _ t j_ _O_ ___ _ _i O _ -_ _ _ 2l
gocr ep0193933-028
pagenbr: 0 pagenbr: 0 pagenbr: 27