Abstract:
A method and system for providing security to a Network Job Entry (NJE) network. A first NJE node and a third NJE node are connected by a second NJE node. The second NJE node conducts a security check of NJE packets traveling between the first and third NJE nodes. The security check performed by the second NJE node includes checking the userid of the person or job that sent the NJE packet, as well as the NJE data type. The NJE data type may be classified by the type of operation being performed, such as a batch job, sysout, command, message, as well as what application is being used. In one preferred embodiment, the security check includes checking the security level of the source of the data being transferred, such as a sensitive application. The security check can be based on the size of the data packet, such that excessively large data packets from a particular user are not permitted to be transmitted outside a secure NJE network.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Technical Field  
         [0002]     The present invention relates in general to the field of computers, and in particular to networked computers. Still more particularly, the present invention relates to a method and system for controlling communication between a first node in a first network and a second node in a second network.  
         [0003]     2. Description of the Related Art  
         [0004]     Systems Network Architecture (SNA) is an architecture and set of implementing products for network computing within an enterprise developed by International Business Machines (IBM) or Armonk, N.Y. Details of this architecture are found in “Systems Network Architecture: Format and Protocol Reference Manual—Architecture Logic for LU Type 6.2 (SC30-3269)”, published by IBM, and herein incorporated by reference in its entirety. Capable of operating within the SNA architecture is Network Job Entry (NJE), which is a mechanism that allows host computer systems to transfer jobs, output, messages and commands between each other. Each host computer is a multi-user mainframe or midrange computer, the largest of which can support thousands of users. The host computer and its users are defined as a “node” (also called a “complex” or a “system”). Each “user” on the host computer is identified using a unique userid. All work on the computer, such as batch jobs, online transactions, time sharing sessions, system tasks etc., is associated with a specific userid for ownership purposes. Customers typically use their userid to gain access to the computer using client computers or workstations. While userids are used to identify customers or end-users requiring host computer services, they are also used to identify running applications and system tasks.  
         [0005]     An NJE network is a group of two or more nodes that communicate with each other. With reference to  FIG. 1   a , an NJE network  102  is made up of Node A ( 104 ), Node B ( 106 ), Node C ( 108 ), Node D ( 110 ), and Node E ( 112 ). To become part of NJE network  102 , each node&#39;s operating system must support an NJE facility (communication utility). Acceptable NJE facilities are JES2 (Job Entry Subsystem, Version 2), JES3 (Job Entry Subsystem, Version 3), RSCS (Remote Spooling Communications Subsystem), VSE/POWER (Virtual Storage Extended/Priority Output Writers, Execution Processors and Input Readers), and AS/400 Communication Utilities. Different nodes may use the same facilities, but are shown using a different named NJE facility in each of the nodes in  FIG. 1   a.    
         [0006]     Nodes can be classified as “originating,” “intermediate” or “target” nodes. With reference to  FIG. 1   b , assume that Node A ( 104 ) is sending data to Node D ( 110 ) to be processed, with the results printed on Node E ( 112 ). Node A, being the node where a user submitted a request to transmit data to another node, is the “originating node.” Node D is a target node where a NJE job (a transfer unit that contains data to be processed) is received for execution, and thus is called an “execution node.” Node E ( 112 ) is a target node where the results of the execution of the NJE job in Node D are sent, and thus Node E is called a “destination node.” Nodes B-C ( 106 - 108 ) lie in the path between Node A and Nodes D and E, and thus are called “intermediate nodes.” 
         [0007]     Intermediate nodes simply pass through NJE data (or jobs) using a function known as “store-and-forward.” In the example of nodes shown in  FIG. 1   b , Node B and Node C do no validation of NJE work (data or jobs) being passed on to Nodes D and E. Thus, any security control of NJE data is only found in the originating node (Node A) and the target nodes (Nodes D and E).  
         [0008]     When an NJE network consists of nodes that are all part of the same corporation or institution, then nodes are considered trusted and little or no security is required to control the ability of NJE data to pass through the network. However, sometimes an NJE network includes “semi-trusted” or “untrusted” nodes from outside the corporation. When this happens, the corporation must implement security policies to control unauthorized work from and to the non-corporate node(s).  
         [0009]     Consider an NJE network  200  depicted in  FIG. 2   a . NJE network  200  includes a first node identified as Corporation ABC&#39;s NJE network  202 , and second and third nodes identified as Node X ( 204 ) and Node Y ( 206 ). ABCSYS 1 , ABCSYS 2  and ABCSYS 3  are trusted nodes (a.k.a., “sub-nodes”) within Corporation ABC&#39;s NJE network  202 . Since all users on the nodes ABCSYS 1 , ABCSYS 2  and ABCSYS 3  are part of the Corporation ABC&#39;s network  202 , there is no need to control NJE data between these nodes. Now, assume that Node X ( 204 ) is a vendor supplier for ABC Corporation that has connected to Corporation ABC&#39;s NJE Network  202 . Node X is not part of the ABC Corporation (and so is not a trusted node), but is considered to be a semi-trusted node, since only certain users on Node X are authorized to send work to ABCSYS 1 , ABCSYS 2 , or ABCSYS 3 . Node Y ( 206 ) is connected to Node X ( 204 ), and is therefore now also part of NJE network  200 , and has access to Corporation ABC&#39;s network  202 . However, since Node Y is not authorized to send work to ABCSYS 1 , ABCSYS 2 , or ABCSYS 3 , Node Y is considered an “untrusted node”.  
         [0010]     ABC Corporation&#39;s security administrator must implement a security policy to control NJE traffic. The policy must allow authorized users from Node X to send data to ABCSYS 1 , ABCSYS 2 , and ABCSYS 3 . The policy must also delete any work arriving from Node Y. An example of such a policy profile is shown in  FIG. 2   b . Note that since security profiles can only be established at the originating or destination node according to NJE protocol, the security profile shown in  FIG. 2   b  must be applied to every node (ABCSYS 1 , ABCSYS 2 , ABCSYS 3 ) in Corporation ABC&#39;s NJE network  202 . Similarly, the security administrators for Node X and Node Y would also likely want to set up similar profiles to protect Nodes X and Y from semi/untrusted nodes in Corporation ABC&#39;s NJE network  202 . In a small configuration such as depicted in  FIG. 2   a , setting up such profiles in all nodes would require minimal effort. However, if Corporation ABC&#39;s NJE network  202  were made up of thousands of nodes supporting many subsidiary corporations (a common scenario), the necessary security administration would likely prohibit any NJE connections outside of Corporation ABC&#39;s NJE network  202 .  
         [0011]     What is needed, therefore, is an improved method and system of security checking that permits NJE data communication between NJE nodes. Preferably, such a method and system would be scalable with minimal adaptation.  
       SUMMARY OF THE INVENTION  
       [0012]     The present invention is thus directed to an improved method and system for providing security to a Network Job Entry (NJE) network. A first NJE node and a third NJE node are connected by a second NJE node. The second NJE node conducts a security check of NJE packets traveling between the first and third NJE nodes. The security check performed by the second NJE node includes checking the userid of the person or job that sent the NJE packet, as well as the NJE data type. The NJE data type may be classified by the type of operation being performed, such as a batch job, sysout, command, or message. In one preferred embodiment, the security check includes checking the security level of the source of the data being transferred, such as a sensitive application. The security check can be based on the size of the data packet, such that excessively large data packets from a particular user are not permitted to be transmitted outside a secure NJE network.  
         [0013]     The above, as well as additional purposes, features, and advantages of the present invention will become apparent in the following detailed written description.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0014]     The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further purposes and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, where:  
         [0015]      FIGS. 1   a - b  depict a prior art Network Job Entry (NJE) network;  
         [0016]      FIGS. 2   a - b  illustrate a prior art security protocol for the NJE network implemented at an originating or target node;  
         [0017]      FIG. 3  depict an exemplary computer system which can be used as part or all of a node in a NJE network that is incorporating the present invention;  
         [0018]      FIGS. 4   a - b  illustrate an NJE network incorporating an inventive gateway node; and  
         [0019]      FIG. 5  is a flow-chart of steps taken in a preferred embodiment of the present invention.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0020]     With reference now to the  FIG. 3 , there is depicted a block diagram of an exemplary data processing system that may be used by a server or client user in an NJE node in accordance with the present invention. Data processing system  300  may be, for example, one of the models of personal or server computers available from International Business Machines Corporation of Armonk, N.Y. Data processing system  300  includes a central processing unit (CPU)  302 , which is connected to a system bus  308 . In the exemplary embodiment, data processing system  300  includes a graphics adapter  304  also connected to system bus  308 , for providing user interface information to a display  306 .  
         [0021]     Also connected to system bus  308  are a system memory  310  and an input/output (I/O) bus bridge  312 . I/O bus bridge  312  couples an I/O bus  314  to system bus  308 , relaying and/or transforming data transactions from one bus to the other. Peripheral devices such as nonvolatile storage  316 , which may be a hard disk drive, and input device  318 , which may include a conventional mouse, a trackball, or the like, is connected to I/O bus  314 .  
         [0022]     Communication with processing system  300  is via a network interface  320 , which is preferably a Network Interface Card (NIC) or similar logic known to those skilled in the art of network communication. Network interface  320  couples to a network  322  (e.g., the Internet, an enterprise Wide Area Network WAN, et al.) to a third party administrator  324 . Third party administrator is a computer system operable by a third party, preferably for implementing the invention described below for a customer (enterprise, corporation, node, etc.)  
         [0023]     The exemplary embodiment shown in  FIG. 3  is provided solely for the purposes of explaining the invention and those skilled in the art will recognize that numerous variations are possible, both in form and function. For instance, data processing system  300  might also include a compact disk read-only memory (CD-ROM) digital versatile disk (DVD) drive, a sound card and audio speakers, and numerous other optional components. All such variations are believed to be within the spirit and scope of the present invention.  
         [0024]     With reference now to  FIG. 4 , there is depicted a block diagram of NJE networks for Corporations ABC, XYZ, XXX, QRS and LMN, respectively numbered  402  through  410 . While each corporate network may contain between one node or thousands of nodes or more (with each node having a host server and multiple client computers), only an exemplary number of nodes are depicted. For example, Corporation ABC&#39;s NJE network  402  contains eight nodes, labeled ABCSYS 1 - 8 , while Corporation XYZ&#39;s NJE network  404  and Corporation QRS&#39;s NJE network  408  each contain two nodes, and Corporation XXX&#39;s NJE network  406  and Corporation LMN&#39;s NJE network  410  each have only a single node.  
         [0025]     The gateway node for Corporation ABC&#39;s NJE network  402  is the ABCSYS 3  node, which preferably is a node that acts only as an intermediate node, performing only store-and-forward functions to communicate NJE data to and from the rest of the nodes in the Corporation ABC&#39;s NJE network  402 . Thus, communication between Corporation ABC&#39;s NJE network  402  and Corporation XYZ&#39;s NJE network  404 , Corporation QRS&#39;s NJE network  408 , and Corporation LMN&#39;s NJE network  410  are directly through the ABCSYS 3  node. Communication between Corporation ABC&#39;s NJE network  402  and Corporation XXX&#39;s NJE network  406  are via Corporation XYZ&#39;s NJE network  404 , whose nodes XYZSYS 1  and XYZSYS 2  function in such a circumstance only as store-and-forward intermediate nodes.  
         [0026]     The gateway node ABCSYS 3  includes a security profile  412 . Security profile  412  contains the protocol required for a NJE data message (job or data) to enter or leave Corporation ABC&#39;s NJE network  402 . For example, as shown in  FIG. 4 , the only NJE data messages that can pass back and forth through ABCSYS 3  to an outside NJE network are those NJE messages that are from any node in Corporation XYZ&#39;s NJE network  404  (“XYZSYS*”) but only from a particular person or job identified as “user 1 ”, whose NJE message is addressed to any node in the Corporation ABC&#39;s NJE network  402  (“ABCSYS*”), but only those addressed to a particular person or job identified as “usera.” (Note that “user 1 ” and “usera” are examples of userid&#39;s, which are defined as either identifiers for specific persons or specific jobs.) Any NJE message not meeting these parameters will not be allowed to enter or leave the Corporation ABC&#39;s NJE network  402 . Note that by having ABCSYS 3  as a single gateway, the rest of the nodes in the Corporation ABC&#39;s NJE network  402  do not have to implement security profiles.  
         [0027]     An additional feature of the described gateway is the ability to control groups of users with a single profile. The grouping can be based on the users&#39; security classification, their group membership, or session type (e.g. all time sharing users). For example, if a business relationship exists between Corporation ABC and Corporation XYZ such that a group of ABC employees provide Information Technology (I/T) services for XYZSYS 1  and XYZSYS 2 , a single profile could be used on ABCSYS 3  to allow the ABC employees to send data to XYZSYS 1  and XYZSYS 2 .  
         [0028]     As noted, security profile  412  can be based on the session type. The session type refers to the environment that created the NJE data that is (or is attempted to be) transmitted. Thus, security profile  412  can filter NJE data traffic according to whether it was created as a system task, a batch job, by a time sharing user, etc.  
         [0029]     Besides monitoring for authorized origination and destination nodes and userids, security profile  412  can also monitor the type of NJE data, including batch jobs, sysout, system commands, and messages. For example, in security profile  412 , user 1  can be allowed to send sysout to usera, but he can also be prevented from sending messages to usera or commands to nodes in XYZ&#39;s network  404 .  
         [0030]     Likewise, the ABCSYS 3  node may prohibit the exit from or entrance to Corporation ABC&#39;s NJE network  402  of any data that is part of a named job. For example, a job named “Batch Job  987 ” may be allowed to be passed back and forth to only specified outside node(s) and/or userid(s).  
         [0031]     Additionally, the gateway node provides the capability to filter NJE sysout based on sysout characteristics such as line count, class, and writer id. Furthermore, the gateway node can limit the size of data packets being allowed to enter or leave an NJE network according to a pre-determined maximum (or minimum) size limit.  
         [0032]     The gateway node also provides the functionality to send a failure message to the originator when the security profile  412  disallow the file transfer.  
         [0033]     Note that if the security profile  412  is based on application type or job number, then the top Application Layer 7 of the Seven Layer Open System Interconnection (OSI) Model (which is herein incorporated by reference in its entirety) is monitored. Thus, security profile  412  may or may not monitor NJE node or physical addresses in lower layers of the OSI mode, if monitoring for application types or job numbers, then the top Application Layer 7 must be monitored.  
         [0034]     While security profile  412  is depicted as a “positive” parameter (i.e., any NJE data from usera on node ABCSYS* can communicate with an outside node), the security profile  412  can also be defined in a “negative” manner (i.e., any NJE data from usera may NOT be communicated with an outside node).  
         [0035]     As noted above, the present invention is preferably directed to NJE networks, whose functions, formats, abilities, limitations and protocols are described in “Network Job Entry Formats and Protocol, Fourth Edition, Document Number SC23-0070-03” published by International Business Machines Corporation, June 1998, which is herein incorporated by reference in it entirety.  
         [0036]     The NJE networks described above can consist of up to 32K computer systems (or complexes) running either AS/400, JES2, JES3, VM/RSCS, or VSE/POWER. Therefore, the following documents are herein incorporated by reference in their entirety: “AS/400 VM/MVS Bridge Configuration and Operations, Document Number GG24-4382-00,” Published by the International Technical Support Organization, Raleigh Center of International Business Machines Corporation, November, 1994; “JES2 Introduction, Document Number GC28-1794-02, Third Edition,” Published by International Business Machines Corporation, September, 1997; “Virtual Machine Remote Spooling Communications Subsystem Networking General Information, Version 3, Release 2, Fourth Edition, Document Number GH24-5218-03,” Published by International Business Machines Corporation, July 1999; and “VSE/POWER and OS/400 NJE Configuration Examples, Document Number GG24-4259-00,” Published by International Business Machines Corporation, June 1994.  
         [0037]     With reference now to  FIG. 5 , exemplary steps taken by the present invention are depicted. After originating block  502 , a gateway node is set up for an NJE network (block  504 ), as described above in  FIG. 4  for node ABCSYS 3 . This gateway node is strictly a store-and-forward node for all NJE connections outside the NJE network being protected. As described in block  506 , a security protocol (such as security protocol  412 ) is set up in the gateway node. As described above, this security protocol can be designed to monitor and control which types of data, such as batch jobs, sysout, commands, messages, applications and databases, can enter or leave the protected NJE network. If, after receiving an NJE data at the gate way node (block  508 ), the security protocol is not satisfied, then the NJE data is rejected (discarded), and a notification message (block  512 ) is sent to the originating node (whether internal or external) stating that the NJE data message was blocked. If, however, the security protocol is satisfied (block  514 ), then the NJE data message is sent to the target node, and the process ends (terminator block  516 ).  
         [0038]     The invention described above may be utilized internally by an enterprise&#39;s own I/T department. In a preferred embodiment, however, the above described invention is useful in allowing a third party to administer security profiles for multiple enterprises, particularly enterprises that communicate with each other. With reference to  FIG. 4   b  for example, the gateway node ABCSYS 3  may actually be a remote logic operated by third party administrator  324  (such as shown in  FIG. 3 ). This remote administrator is thus able to use the present invention to remotely define and implement security profile  412  as well as any other security profile for other enterprises (e.g., corporations) to which the third party administrator  324  is authorized in a manner described above. Of course, third party administrator  324  could implement the same described system from one of the customer&#39;s own nodes, if so desired.  
         [0039]     It should be understood that at least some aspects of the present invention may alternatively be implemented in a program product. Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., a floppy diskette, hard disk drive, read/write CD ROM, optical media), and communication media, such as computer and telephone networks including Ethernet. It should be understood, therefore in such signal-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.  
         [0040]     The present invention thus provides a method and system for dedicating an intermediate NJE node as a security protocol node. Since the NJE protocol allows for security definitions only at “terminal” nodes, the security protocol node (e.g., ABCSYS 3 ) is a proxy terminal node for the rest of the nodes in the Corporation ABC&#39;s NJE network  402 . Likewise, other NJE networks can have similar security protocol nodes that function in a similar manner as described for the ABCSYS 3  node of Corporation ABC&#39;s NJE network  402 .  
         [0041]     While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.