System for controlling communications between an application and a remote system using a protocol identifier and an application context identifier

In a distributed system having a plurality of interconnected computer systems each having an application program, a process manager which determines the need for a communication process, determines an identifier of a destination system and a protocol and issues a communication process request in response to a process request for database access from the application program, and a virtual communication user for determining an application context in response to the communication process request from the process manager are provided, and a communication path a protocol machine establishes for the virtual communication user. A plurality of virtual communication users for managing the communication process are provided and each virtual communication user manages a plurality of protocol machines so that a plurality of protocols and application programs are simultaneously used for a plurality of destination systems from one application program.

BACKGROUND OF THE INVENTION 
Field of the Invention 
The present invention relates to a method for controlling a plurality of 
protocols and a plurality of application contexts in a distributed system 
connected through a communication network, and more particularly to a 
method for efficiently establishing a connecting line from a user 
application to a plurality of distributed database systems. 
When a communication path is to be established from a system which executes 
a user application to distributed databases, it is performed by using a 
predetermined protocol. Detailed specification of the protocol is defined 
by an application context. The application context is defined by a 
standard such as ISO and a communication path may not be established if 
the application context does not match even if the protocol matches. 
In the past, in establishing a communication path from a system which 
executes an application program, communication with a destination system 
may be done by the application program which uses an already established 
logical communication path by communication path allocating means, as 
disclosed in JP-A-4-23155. Since the number of times of 
establishment/release of the communication path by communicating with the 
destination system by using the already established communication path, a 
communication fee in a packet transmission system can be reduced. 
In the prior art, the communication path, the communication protocol to be 
used and the application context are preestablished, and no attention is 
paid for the use of a plurality of protocols or application contexts by 
one application program. 
When the application program uses a plurality of protocols or application 
contexts, it is necessary to program by the application program to permit 
the use of a plurality of communication control programs but it is not 
easy to modify the protocols and the application contexts. 
SUMMARY OF THE INVENTION 
It is an object of the present invention to provide a method for 
controlling a plurality of protocols and application contexts in 
distributed systems to realize the easy establishment of the communication 
path to a destination system by using a plurality of protocols and 
application contexts from an application program. 
It is another object of the present invention to provide a method for 
establishing a communication path to a destination system without need for 
an application program to recognize the detail of the protocol and the 
application context of the destination system. 
In order to achieve the above objects, in accordance with the distributed 
system of the present invention, a requesting system (client system) which 
executes the application program is configured as follows. 
A process manager is provided as means for controlling a process for 
indicating an operation (start, end, transaction, etc.) of the application 
program, and of the processes of the application program, a communication 
process (start/end of communication, start/end of transaction to a server, 
etc.) of a remote database access is recognized. The process manager 
determines the connection form and the protocol to be used for the 
communication format and the destination system designated by the 
application. The process manager connects a plurality of virtual 
communication users, which recognize the application context for the 
protocol designated by the process manager. A plurality of protocol 
machines are connected to the virtual communication users. One protocol 
machine is provided for each virtual communication path. By the term 
"virtual communication path" is meant a communication path virtualized by 
classifying a real communication path by the protocols and application 
contexts used. 
Through interaction of the above means, the application program can execute 
the plurality of communication processes using the plurality of protocols 
by using the plurality of virtual communication users through the process 
manager. Further, since the plurality of communication processes which use 
the plurality of application contexts using the plurality of protocol 
machines controlled by the virtual communication users are provided, a 
plurality of communications of different natures or different purposes can 
be concurrently executed to a plurality of destinations.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
One embodiment of the present invention is now explained in detail with 
reference to the drawings. 
FIG. 4 shows an overall configuration of a distributed system for realizing 
the present invention. A client system 401 on a client station and a 
server system 402 are interconnected through a communication network 405. 
Connected to the client system 401 are an application program 101 to be 
used by a user, a client controller for controlling the execution of the 
application program, an internal memory 407, and a database 408. The 
internal memory 407 stores a table of a table name versus an identifier of 
a destination system as shown in FIG. 6 and a table of the identifier of 
the destination system versus an identifier of a corresponding protocol as 
shown in FIG. 7, which will be described later. 
The server system 402 has a server controller 404 to which a database 406 
is connected. Various databases 406 may be applicable. For example, it may 
be a relational database. 
FIG. 1 conceptually shows an embodiment of the present invention. 
An application program 101 is a user program which may execute a business 
application and it commands an access to the server system 402. The access 
is made by directly or indirectly designating a protocol and an 
application context. By directly, it is meant that an identifier 
identifying the types of the protocol and the application context is 
described in the application program, and by indirectly, it is meant that 
an identifier of the destination system is described and a program other 
than the application program or control means determines the protocol and 
the application context by using the directory information based on the 
identifier. 
An example of the description of the application program 101 is explained 
with reference to FIG. 5. In the present example, a major part thereof is 
described by SQL (structured query language) which is a database language 
of ISO/IEC 9075 protocol. Written in the application program 101 are 
statements 501 and 502 for accessing a table located in the database 406 
of the server system 402, a statement for executing a remote procedure 
call, and statements 503 and 506 for opening a table located in the 
database in the client system. The statement 501 declares a cursor for 
accessing data and it is a command for generating a cursor to columns C1 
and C2 from a table 1. This declaration is indirect designation for 
designating TABLE which is to be accessed in the destination system 
without specifying the destination system. The statement 502 is same as 
the statements 501. The statements 503 and 506 are commands to open 
cursors CR1 and CR2. The statement 504 is a command to get data from a 
location designated by CR1 and substitute it for data 1 and data 2. The 
statement 502 is same as the statement 504. 
The statement 505 is a command to call a remote procedure. It is written 
not by SQL but by a description form which directly designates a node of a 
called station. In the present example, it represents that the station to 
be called is a node N2 and an argument is DATA 1-DATA 4. 
Turning back to FIG. 1, the process manager 102 is a program which controls 
the operation (start, end, transaction, etc.) of the application program 
101, and it controls to connect to the database 406 during the execution 
(run time) of the process of the application such as a database management 
system (DBMS) or an on-line transaction management program. Specifically, 
it recognizes the command designated by the application program 101, 
recognizes the protocol of the destination system and selects the virtual 
communication user 103 corresponding to the protocol. The virtual 
communication program 103 may be selected by a command described in the 
application program 101. The virtual communication user 103 may be 
uniquely determined by the destination system or it may be determined in 
accordance with the type of protocol. 
The virtual communication user 103 is a program which controls the 
communication process (start/end of communication, start/end of 
transaction to the destination system, etc.) such as access to a remote 
database contained in the process, and it functions as a virtual user 
program to the protocol machine 104. The virtual communication user 103 
centrally controls the communication designated by the process manager, 
recognizes the application context to be used for the protocol, and 
selects the protocol machine 104 corresponding to the application context. 
The protocol machine 104 may be uniquely determined by the destination 
system or it may be determined in accordance with the type of application 
context. 
The protocol machine 104 is a program which controls the establishment of a 
communication path by using the determined protocol and application 
context. For the process of a plurality of protocol machines 104, a table 
is allotted for each protocol machine and the information on the 
destination system and the information on the application context of the 
communication protocol under use are managed for each table so that the 
communication is executed by using different application contexts. 
The communication path 105 is a virtual communication path, and in a real 
communication path, it is virtualized for each protocol and application 
context to be used. 
A section 106 encircled by broken lines and including the process manger 
102, the virtual communication user 103 and the protocol machine 104 may 
be implemented by software in the client controller 403 shown in FIG. 4. 
A flow of a call process of the virtual communication user 103 of the 
process manager 102 is now explained with reference to FIG. 2. 
When a statement 501 for accessing the table located in the database 406 is 
executed, the process manager 102 receives a process request of the 
statement (step 201). It analyzes the statement and determines whether the 
process requires a communication process or not by using a table of a 
table name versus a destination system shown in FIG. 6 stored in the 
internal memory 407 by using the table name (TABLE 1) as a key. An 
identifier (N1) of the destination system is derived based on the table 
name (step 202). In the process which does not require the communication 
process such as the access to the database 408, the requested process is 
executed (step 203). 
Then, an identifier (RDA) of the protocol is derived from the table of the 
identifier of the destination system versus the protocol identifier shown 
in FIG. 7 based on the identifier (N1) of the destination system (step 
204). In the protocol identifier in FIG. 7 RDA and RPC respectively denote 
remote database access and remote procedure call in open systems 
interconnection prescribed in the ISO/IEC 9579 and the ISO/IEC CD 7347 
protocols. The process manager 102 determines whether the protocol for 
accessing the database is the protocol corresponding to the virtual 
communication user 103 in use or not. If the virtual communication user 
corresponding to that protocol has not yet been started, one virtual 
communication user is selected and started (step 206), and if it has been 
started, the communication process is requested to that virtual 
communication user 103 (step 207). In this manner, the process manager 102 
shifts the control to the virtual communication user 103, and when a 
series of steps are thereafter completed, it receives the process result 
from the virtual communication user (step 208) and returns the process 
result to the application program 101 (step 209). 
A flow of a process of the virtual communication user 103 is now explained 
with reference to FIG. 3. 
When the virtual communication user 103 receives the process request from 
the process manager 102, it analyzes the content to specify the type of 
application context and the destination system (step 301). The application 
context may be selected by retaining in a table the information on the 
destination system and the information on the application context of the 
communication protocol to be used for each process of the protocol machine 
104 and selecting a basic application context of the RDA or a TP (OSI 
distributed Transaction Processing protocol in ISO/IEC 1002 6-3) 
application context based on the management level of a transaction of the 
destination system and the process content (update or non-update) of the 
application program. Then, it determines whether the connection with the 
destination system is under process or not based on the identifier 
identifying the type of the specified application context and the 
identifier identifying the destination system, that is, it determines 
whether the protocol machine which is being connected with the destination 
system is present or not based on the application context (step 302). If 
the connection with the destination system is not yet established, that 
is, if the protocol machine 104 has not yet been started, one protocol 
machine 104 is started by using the identifier of the destination system 
and the identifier of the application context as the parameters (step 
303). 
A communication request is issued to the protocol machine 104 (step 304). 
The protocol machine 104 establishes the communication path, execute a 
series of communication processes and returns the process result to the 
virtual communication user 103, which receives the process result (step 
305) and returns the process result to the process manager 102 (step 306). 
In this manner, the statement 501 of the application program 101 is 
executed. An operation when the statement 505 (RPC-CALL) is executed is 
now explained. The process manager 102 analyzes the process statement 505, 
takes out the identifier (N2) identifying the destination system, and 
starts the virtual communication user 103 for the RPC by using the table 
of FIG. 7 based on the identifier. The virtual communication user 103 for 
the RPC executes the communication process by using the RPC protocol 
machine 104. Where the direct designation is made such as by the statement 
505, it is not necessary to use the table of FIG. 6. 
A relation between the management tables for the process manager 102, the 
virtual communication user 103 and the protocol machine 104 is explained 
with reference to FIG. 8, in which arrows show the relations between the 
tables. The management tables may be stored in the internal memory 407. 
The management table 801 of process manager 102, the management table 802 
of the virtual communication user and the management table 804 of the 
protocol machine 104 have a hierarchy relation. 
Chaining to the corresponding management table 802 is made by the handling 
810 of the virtual communication user 103 stored in the management table 
801 to the management table 802, and the chaining to the management tables 
803 and 804 is made by the stored protocol identifier 820 (RDA, RPC). The 
application contexts 831 and 841 are stored in the management tables 803 
and 804, respectively. 
In the above embodiment, the process manager 102 sequentially and 
time-serially processes the process requests of the application program 
101 and sequentially uses the virtual communication users 103. 
Alternatively, a plurality of virtual communication users 103 may be 
parallelly controlled to improve the performance of the distributed 
system. 
In the above embodiment, the protocol is selected by the process manager 
102 and the application context is determined by the virtual communication 
user 103. Alternatively, they may be directly described in the application 
program as the identifiers identifying themselves and commanded to the 
virtual communication user 103 and the protocol machine 104 by using the 
parameters. 
In accordance with the present invention, in the requesting station (client 
system) which controls the application program in the distributed system 
such as a client-server system, the application program may execute jobs 
without recognizing the communication protocol and the application 
context, and the simultaneous communication from one application program 
may be realized by using a plurality of protocols and a plurality of 
application contexts. Namely, the distributed system may be structured 
without restriction by the type and function of the destination system and 
without regard to the type of the computer system.