|
|
|
REMOTE PROCEDURE CALL (RPC) |
Remote procedure processing device used by at least two linked computer systems6016516
Abstract
To provide a device for processing remote procedures that makes it possible to easily obtain a desired service by combining multiple remote procedures, and that allows a user of a client application to know the parameters provided to each remote procedure and the execution results from each procedure. A message entered by a user is sent to a remote procedure server, and a first procedure execution component is selected from a first remote procedure holding component and executed. If a parameter contains a hyperlink, a corresponding message is generated by a message generating component and the message is sent to a second remote procedure holding component. The second remote procedure holding component receives the hypertext and analyzes it with a hypertext analysis component. After the first procedure execution component is executed, the parameters and execution results are sent back as hypertext by a hypertext generating component to the client. This message is then analyzed by a hypertext analysis component, and the results are displayed on a hypertext display component.
Claims
What is claimed is:
1. A remote procedure processing device for processing remote procedures, the remote procedures performed by at least two linked computer systems, comprising:
communication means for receiving remote procedure execution requests and transmitting execution results;
means for holding said remote procedures and executing said remote procedures in response to said execution requests;
means for analyzing said execution requests received by said communication means and extracting a retrieval expression and a parameter to be used in the execution of said requested procedures; and
means for retrieving said remote procedures from said remote procedure holding means corresponding to said retrieval expression extracted by said analyzing means and sending said parameter to a first remote procedure holding means;
wherein said first remote procedure holding means executes a first procedure using said parameter received from said remote procedure retrieving means; and
a message containing a retrieval expression and a parameter for another remote procedure holding means is generated during execution of said first procedure by said remote procedure holding means, said message being transmitted to said remote procedure retrieving means, said remote procedure retrieving means sending a reply to said message, said reply to said message being received by said first remote procedure holding means, and said execution of said first procedure being continued.
2. The device for processing remote procedures according to claim 1, wherein said remote procedure holding means generates a message, said message transmitted by said communication means to another device for processing remote procedures, and wherein said communication means can also receive replies sent from said other device for processing remote procedures.
3. The device for processing remote procedures according to claim 1, wherein said remote procedure holding means comprises:
means for storing attributes;
means for executing procedures and generating results from said execution;
means for generating hypertext messages requesting a second remote procedure holding means to execute a second procedure if said second remote procedure holding means is to be used during said execution of said second procedure, said hypertext message containing said parameter needed for the execution of said requested procedures;
means for analyzing hypertext messages, wherein said reply from said remote procedure retrieving means is in hypertext and contains execution results from said second remote procedure holding means, and extracting parameters needed for the execution of the original procedure holding means from said hypertext; and
means for generating hypertext containing execution results from said remote procedure executing means.
4. The device for processing remote procedures of claim 3, said remote procedure holding means further comprising:
means for disclosing procedure specifications for remote procedures containing at least one of: a formal language description relating to a parameter for said remote procedure, a natural language description relating to said parameter, a formal language description relating to a reply sent back from said remote procedure, a natural language description relating to said reply, a formal language description of the procedures of said remote procedures, a natural language description of said procedures, a hyperlink for executing said remote procedures, and generating a hypertext in response to a request containing said specifications of said remote procedures, and
means for controlling remote procedures activating either said specification disclosing means or said procedure executing means based on said parameter sent from said remote procedure retrieving means.
5. The device for processing remote procedures of claim 3, wherein:
said message generating means generates a message containing said hyperlink if said parameter includes a hyperlink indicating execution of another remote procedure.
6. The device for processing remote procedures of claim 3, wherein:
said hypertext generating means generates a hypertext containing a parameter extracted from said message analyzing means in the form of a hyperlink.
7. The device for processing remote procedures of claim 1, further comprising:
means for holding procedure specifications, said procedure specification holding means comprising: means for storing attributes attached to said procedure specifications holding means, and means for disclosing specifications for remote procedures containing one or more of the following: a formal language description relating to a parameter for said remote procedure, a natural language description relating to said parameter, a formal language description relating to a reply sent back from said remote procedure, a natural language description relating to said reply, a formal language description of the procedures of said remote procedure, a natural language description of said procedures, a hyperlink for executing said remote procedure, and generating a hypertext in response to a request containing said specifications of said remote procedures.
8. A remote procedure processing device for processing remote procedures, the remote procedures performed by at least two linked computer systems, comprising:
at least one remote procedure server and at least one remote procedure client;
wherein:
said remote procedure server further comprising a means for disclosing specifications of a remote procedure, including parameter data that can be specified remotely via a network;
means for generating hypertext containing said specifications of said remote procedure in response to a request, said hypertext linked to an attribute;
first communications means for receiving a message containing a retrieval expression and sending hypertext generated by said specification disclosing means;
means for analyzing messages received from said first communications means and extracting a retrieval expression;
means for retrieving remote procedures, retrieving said specification disclosing means that matches said retrieval expression extracted by said message analyzing means and requesting said retrieved specification disclosing means to generate hypertext; and wherein
said remote procedure client comprises:
means for requesting specification disclosure, receiving a retrieval expression for specifying said specification disclosing means;
means for generating messages, said message generating means generating a first message containing said retrieval expression received by said specification disclosure requesting means, generating a second message for requesting a procedure call, and generating a third message in which said second message is substituted for the parameter value;
second communications means for sending said first message generated by said message generating means and receiving hypertext sent from said first communications means of said remote procedure server in response to said message;
means for analyzing hypertext received from said second communications means and extracting parameter data contained in the specifications of said remote procedures; and
means for storing messages generated by said message means.
9. The device for processing remote procedures of claim 8, further comprising:
means for displaying hypertext containing a parameter substitution component that allows a user to substitute values for parameters based on said parameter data extracted by said hypertext analyzing means.
10. The device for processing remote procedures of claim 8, wherein:
said remote procedure server sends and receives messages via the Internet;
said message storing means stores a URL; and
said message generating means substitutes said URL stored by said message storing means for the value of a parameter extracted by said hypertext analyzing means, and generates a second URL containing said substituted URL, in a nested manner, in said parameter.
11. The device for processing remote procedures of claim 8, wherein:
said remote procedure server sends and receives messages via the Internet;
said message storing means stores a protocol message in an HTTP; and
said message generating means substitutes said protocol message stored by said message storing means for the value of a parameter extracted by said hypertext analyzing means, and generates a second protocol message containing said substituted protocol, in a nested manner, in said parameter.
12. A remote procedure processing device for processing remote procedures, the remote procedures performed by a network information system having a plurality of computer systems performing information processing linked via a network, comprising:
communication means for receiving a first procedure call expression, the first procedure call expression further comprises a first bind expression, the first bind expression having a first argument value and a first argument assignment;
second procedure call expression, the second procedure call expression further comprises a second bind expression having a second argument value and a second argument assignment;
bind replacement means wherein the second argument value and the second argument assignment are replaced by the first argument value from the first procedure call expression, and generates the second procedure call expression indicating the replacement of the second argument assignment;
procedure call expression analysis means for accepting the second procedure call expression and deriving from said second procedure call expression the values assigned to the second argument and generating a remote procedure expression;
at least one remote procedure holding means;
remote procedure retrieval means for searching the remote procedure holding means, the remote procedure means inputting the value assigned to the second argument based on the remote procedure expression created by the procedure call expression analysis means, the remote means accepts the value assigned to the second argument by the procedure call expression analysis means;
said remote procedure means further comprises: procedure specification disclosure means for storing at least one specification of the remote procedures, said at least one specification including information of arguments required for the remote procedure, the procedure specification disclosure means outputting a specification after accepting the specification disclosure request from the procedure execution means; procedure execution means for inputting an assigned argument from the procedure call expression analysis means and executing the procedure according to the assigned argument and outputting a specification disclosure request when the argument is unassigned; and bind request processing means for outputting a new specification which includes the assignment of any unassigned argument.
13. A remote procedure processing device for processing remote procedures, the remote procedures performed by a network information system having a plurality of computer systems performing information processing linked via a network, comprising:
at least one remote procedure client and at least one remote procedure server;
first communication means, said first communication receiving a first procedure call expression, the first procedure call expression further comprises a first bind expression, the first bind expression having a first argument value and a first argument assignment;
second procedure call expression, the second procedure call expression further comprises a second bind expression having a second argument value and a second argument assignment;
bind replacement means wherein the second argument value and the second argument assignment are replaced by the first argument value from the first procedure call expression, and generates the second procedure call expression indicating the replacement of the second argument assignment;
procedure call expression analysis means for accepting the second procedure call expression and deriving from said second procedure call expression the values assigned to the second argument and generating a remote procedure retrieval expression;
remote procedure means for retrieving the remote procedure means, the remote procedure means inputting the value assigned to the second argument based on the remote procedure expression created by the procedure call expression analysis means, the remote means accepts the value assigned to the second argument by the procedure call expression analysis means;
said remote procedure means further comprising: procedure specification disclosure means; procedure execution means; and bind request processing means;
the procedure execution means inputs an assigned argument from the procedure call expression analysis means and executes the procedure according to the assigned argument and outputs either first reply to the first communication means a specification disclosure request when the argument is unassigned; and
the procedure specification disclosure means stores at least one specification of the remote procedures, said at least one specification including information of arguments required for the remote procedure, the procedure specification disclosure means outputting a specification after accepting the specification disclosure request from the procedure execution means, and
the bind request processing means outputs to the first communication means a new specification which includes the assignment of any unassigned argument, and whereby said first communication means transmits the first reply put out by said procedure execution means as well as being that which transmits the new specification put out by the bind request processing means;
said remote procedure client further comprising:
second communication means said second communication means receiving the first reply and the new specification from said remote procedure server while sending the procedure call expression to said remote procedure server;
reply analysis means said reply analysis means analyzing and outputting procedure call expression generating a proposed second procedure call expression based on the new specification when receiving the new specification from the second communication means;
user output means for displaying the first reply and the new specification received by said second communication means;
the reply analysis means requests the display of the reply to the user according to the user output means;
user input means which accepts an entry from the user in orer to create the second procedure call expression; and
procedure call expression generation means which creates the second procedure call expression based upon the entry from the user input means as well as the procedure call expression generation information from the reply analysis means.
14. The remote procedure processing device according to claim 13 wherein said second procedure call expression is a bind expression and said first communication means sends said bind expression to the second communication means.
15. A remote procedure processing device for processing remote procedures, the remote procedures performed by a network information system having a plurality of computer systems performing information processing linked via a network, comprising:
at least one remote procedure client and at least one remote procedure server;
the remote procedure server further comprising:
first communication means said first communication means for receiving a message;
message analysis means for analyzing the received message and generating a remote procedure expression, the message analysis means derives values to be assigned to the remote procedure expression and values to be assigned to assignment arguments;
bind replacement means said bind replacement means replacing the value of the assignment argument in a replacement message when said received message is the replacement message indicating the replacement of the argument assignment;
at least one remote procedure means;
remote procedure means for searching the remote procedure maintenance means, the remote procedure means inputting the value assigned to the argument based on the remote procedure expression derived by the message analysis means;
said remote procedure means further comprising: procedure specification disclosure means; procedure execution means; and bind request processing means;
the remote procedure means accepts the value assigned to the argument;
wherein the procedure execution means executes the remote procedure and outputs a first hyper-text indicating results of the execution;
and wherein the procedure execution means outputs a specification disclosure request when the argument is unassigned, and
wherein the procedure execution means accepts a second hyper-text, the second hyper-text resulting from the calling the remote procedure based on the message when the value assigned to the argument is the specification, and
the procedure specification disclosure means stores a third hyper-text, the third hyper-text including a specification of the remote procedures, said specification including information of arguments required for the remote procedure, the procedure specification disclosure means outputting the third hyper-text after accepting the specification disclosure request from the procedure execution means, and
the bind request processing means outputs a fifth hypertext indicating the specification which includes the assignment of any unassigned argument according to either the third hyper-text stored by the specification disclosure means or the second hyper-text when the second hyper-text accepted by the procedure execution means is the specification, and
said first communication means transmits the first hypertext and the fifth hyper-text;
said remote procedure client further comprising:
second communication means said second communication means receiving as reply to the message the first hyper-text and the fifth hyper-text from the first communication;
hyper-text analysis means said hyper-text analysis means outputting message retrieval information used to generate a second message based on the fifth hyper-text;
user output means for displaying the first hyper-text and the fifth hyper-text received by the second communication means;
user input means for accepting entry of instructions from a user in order to create the second message; and
message generation means which creates the second message based upon the entry of instructions from the user input means as well as the message generation information from the hyper-text analysis means.
16. The remote procedure processing device according to claim 15, wherein said second message is the replacement message, and said first communication means transmits said replacement message to said second communication means.
17. The remote procedure processing device according to claim 15, wherein said second message is the replacement message, and said first communication means transmits said replacement message to said second communication means.
18. A remote procedure processing device for processing remote procedures, the remote procedures performed by a network information system having a plurality of computer systems performing information processing linked via a network, comprising:
communication means for receiving a first procedure call expression, the first procedure call expression further comprises a first bind expression, the first bind expression having a first argument value and a first argument assignment;
second procedure call expression, the second procedure call expression further comprises a second bind expression having a second argument value and a second argument assignment;
bind replacement means wherein the second argument value and the second argument assignment are replaced by the first argument value from the first procedure call expression, and generates the second procedure call expression indicating the replacement of the second argument assignment;
procedure call expression analysis means for accepting the second procedure call expression and deriving from said second procedure call expression the values assigned to the second argument and generating a remote procedure expression;
at least one remote procedure holding means;
remote procedure retrieval means for retrieving the remote procedure holding means, the remote procedure retrieval means inputting the value assigned to the second argument based on the remote procedure retrieval expression created by the procedure call expression analysis means, the remote holding means accepts the value assigned to the second argument by the procedure call expression analysis means;
said remote procedure holding means further comprises: procedure specification disclosure means; procedure execution means; and bind request processing means;
the procedure execution means inputs an assigned argument from the procedure call expression analysis means and executes the procedure according to the assigned argument and outputs a specification disclosure request when the argument is unassigned; and
the procedure specification disclosure means stores at least one specification of the remote procedures, said at least one specification including information of arguments required for the remote procedure, the procedure specification disclosure means outputting a specification after accepting the specification disclosure request from the procedure execution means, and
the bind request processing means outputs a new specification which includes the assignment of any unassigned argument.
19. A remote procedure processing device for processing remote procedures, the remote procedures performed by a network information system having a plurality of computer systems performing information processing linked via a network, comprising:
at least one remote procedure client and at least one remote procedure server;
first communication means, said first communication means receiving for accepting a first procedure call expression, the first procedure call expression further comprises a first bind expression, the first bind expression having a first argument value and a first argument assignment;
a second procedure call expression, the second procedure call expression further comprises a second bind expression having a second argument value and a second argument assignment;
bind replacement means wherein the second argument value and the second argument assignment are replaced by the first argument value from the first procedure call expression, and generates the second procedure call expression indicating the replacement of the second argument assignment;
procedure call expression analysis means for accepting the second procedure call expression and deriving from said second procedure call expression the values assigned to the second argument and generating a remote procedure retrieval expression;
at least one remote procedure processing means;
remote procedure retrieval means for retrieving the remote procedure holding means, the remote procedure retrieval means inputting the value assigned to the second argument based on the remote procedure retrieval expression created by the procedure call expression analysis means, the remote holding means accepts the value assigned to the second argument by the procedure call expression analysis means;
said remote procedure holding means further comprising: procedure specification disclosure means; procedure execution means; and bind request processing means;
the procedure execution means inputs an assigned argument from the procedure call expression analysis means and executes the procedure according to the assigned argument and outputs either a first reply to the first communication means a specification disclosure request when the argument is unassigned; and
the procedure specification disclosure means stores at least one specification of the remote procedures, said at least one specification including information of arguments required for the remote procedure, the procedure specification disclosure means outputting a specification after accepting the specification disclosure request from the procedure execution means, and
the bind request processing means outputs to the first communication means a new specification which includes the assignment of any unassigned argument; and
said first communication means transmitting the first reply transmits the new specification put out by the bind request processing means;
said remote procedure client further comprising:
second communication means said second communication means receiving the first reply and the new specification from said remote procedure server while sending the procedure call expression to said remote procedure server;
reply analysis means said reply analysis means analyzing and outputting procedure call expression generation information and generating approved the second procedure call expression based on the new specification when receiving the new specification from the second communication means;
user output means for displaying the first reply and the new specification received by said second communication means;
the reply analysis means requests the display of the reply to the user according to the user output means;
user input means which accepts an entry from the user in order to create the second procedure call expression; and
procedure call expression generation means for generating the second procedure call expression based upon the entry from the user input means as well as the procedure call expression generation information from the reply analysis means.
20. The remote procedure processing device according to claim 13, wherein said second procedure call expression is a bind expression and said first communication means sends said bind expression to the second communication means.
21. A remote procedure processing device for processing remote procedures, the remote procedures performed by a network information system having a plurality of computer systems performing information processing linked via a network, comprising:
at least one remote procedure client and at least one remote procedure server;
the remote procedure server further comprising:
first communication means said first communication means receiving a message;
message analysis means for analyzing the received message and generating a remote procedure retrieval expression, the message analysis means derives values to be assigned to the remote procedure retrieval expression and values to be assigned to assignment arguments;
bind replacement means said bind replacement means replacing the value of the assignment argument in a replacement message when said received message is the replacement message indicating the replacement of the argument assignment;
at least one remote procedure holding means;
remote procedure retrieval means for retrieving the remote procedure holding means, the remote procedure retrieval means inputting the value assigned to the argument based into the remote procedure retrieval expression derived by the message analysis means;
said remote procedure holding means further comprising: procedure specification disclosure means; procedure execution means; and bind request processing means;
the remote procedure holding means accepts the value assigned to the argument;
wherein the procedure execution means executes the remote procedure and outputs a first hyper-text indicating results of the execution;
and wherein the procedure execution means outputs a specification disclosure request when the argument is unassigned, and
wherein the procedure execution means accepts a second hyper-text, the second hyper-text resulting from the calling the remote procedure based on the message when the value assigned to the argument is the specification, and
the procedure specification disclosure means stores a third hyper-text, the third hyper-text including a at least one specification of the remote procedures, said specification including information of arguments required for the remote procedure, the procedure specification disclosure means outputting the third hyper-text after accepting the specification disclosure request from the procedure execution means, and
the bind request processing means outputs a fifth hyper-text indicating the specification which includes the assignment of any unassigned argument according to either the third hyper-text stored by the specification disclosure means or the second hyper-text when the second hyper-text accepted by the procedure execution means is the specification, and
said first communication means transmits the first hyper-text and the fifth hyper-text;
said remote procedure client further comprising:
second communication means said second communication means receiving as reply to the message the first hyper-text and the fifth hyper-text from the first communication means;
hyper-text analysis means, said hyper-text analysis means outputting message retrieval information used to generate a second message based on the fifth hyper-text;
user output means for displaying the first hyper-text and the fifth hyper-text received by the second communication means for a user;
user input means for accepting entry of instructions from a user in order to create the second message; and
message generation means which creates the second message based upon the entry of instruction from the user input means as well as the message generation information from the hyper-text analysis means.
Description
BACKGROUND OF THE INVENTION
1. Field of Invention
The present invention relates to a remote procedure processing device, and more particularly to the processing of procedures used by computer systems that are connected through a network into a network information system.
2. Description of Related Art
Recently, there has been an expansion in the use of networked information systems, where computer systems are connected via a network. In a networked information system, a user can request services from another computer (e.g., a server) in order to perform procedures and obtain data. The Common Gateway Interface (CGI) is a standard that allows an application program to run by defining environment variables, command lines, standard input, and standard output to be used between an information server and an application program. Thus, the information server, such as an HTTP server, can generate data dynamically. However, the Common Gateway Interface does not provide any mechanism for services that allow an application program to perform remote procedures available on other information servers, such as HTTP servers. Thus, it has not been possible to freely combine information clients (e.g., Word Wide Web clients) with application programs which are activated by information servers such as HTTP servers.
Japanese Laid-Open Publication Number 6-75892 discloses a "device for managing remote procedures". This invention comprises: a remote procedure requesting component, a system remote procedure processing component, and a system procedure. pre-processor. The remote procedure requesting component requests a remote procedure for the service provided by the system. The system remote procedure execution component executes a remote procedure for the service provided by the system. The system remote procedure processing component manages remote procedures by linking the system remote procedure execution component with a plurality of remote procedures for the service provided by the system based on a remote procedure identifier that is unique within the network system. The system procedure pre-processor is called from a stub, which executes a remote procedure call, queries the system remote procedure processing component, determines the system's remote procedure to be called, and calls the corresponding system remote procedures execution component. This configuration allows a remote procedure provided by a system to be called even if the remote procedure on the system is not defined in the interface of the application service.
The ANSA Information Services Framework from Architecture Projects Processing Limited Corp. (U.K.) is a distributed system based on Common Object Request Broker Architecture and Specification (CORBA) and the World Wide Web. The ANSA Information Services Framework is described, for example in Rees, O., Edwards, N., Madsen, M., Beasley, M. and McClenaghan, A., in "A Web of Distributed Object", The ANSA Project Architecture Projects Processing Ltd. (1995). This system uses the Internet Inter-ORB Protocol (IIOP) in order to transfer the General Inter-ORB Protocol via the IP protocol. This technology makes it possible to access CORBA objects from the WWW by preparing a gateway for converting HTTP to IIOP and a gateway for converting IIOP to HTTP.
DeleGate is a multi-object protocol broadcasting systerr developed by the Denshi Gijutsu Sogou Kenkyuujo. DeleGate is described, for example, in "Tamenteki Purotocol Chuukei System DeleGate (DeleGate: A Multi-Object Protocol Broadcasting System)" (Denshi Gijutsu Sogou Kenkyuujo Ihou, Vol. 59, No. 6 (1995)). DeleGate provides features relating to path control, access control, protocol conversion, character code conversion, MIME code conversion, data caching, connection caching, broadcasting for existing applications, mounting features, and the like.
However, with both of these devices, it is difficult for the user of a remote procedure client application to combine a plurality of remote procedure servers to obtain a desired service. Also, when services are provided through a combination of remote procedure calls, it is difficult for the user of the client application to know the execution results from each of the remote procedures and the parameters provided to these procedures.
Another problem exists when using this type of service if the user is not thoroughly familiar with the specifications of the server that executes the remote procedure. The user will be unable to use the server because a complete request for the remote procedure must be made from the beginning of the communication.
For example, CORBA is the standard specification relating to the dispersed object developed by the standardization group Object Management Group (OMG) in regards to object direction. The Interface Repository is one component of the Object Request Broker (ORB) designated by CORBA, and which has the function of perpetuating the interface definition which corresponds to the object.
ORB makes possible the use of the interface definition of the object that is managed by the Interface Repository, including:
a check of the type of request
a check of the suitability of the interface, inheritance, and graph
the supply of the inter-operability between the realization of differing ORBs
the installation and distribution of the interface definition
the support of the interface and browser environment
the supply of the interface information for the language system
the supply of the component(s) for the end user
However, the Interface Repository stipulated by the OMG does not mnake the stipulations for an object to return the interface information directly to the object of the source of the message transmission when an error exists in the, message for the object, or to return the interface information to the source of the message transmission in multiple stages when a multistage connection of the object is being performed. Thus, a meaningful execution cannot be performed even when executing a remote procedure with the argument in an unconfirmed state to a remote procedure management system. Additionally, unconfirmed arguments are unable to be asked to the called client with the execution process, and hence the user is unable to change the argument interactively.
Another example is the interface definition file generation device disclosed in Japanese Laid-Open Patent Publication No. 7-282017. A device is provided from a source program defined by the process supplied to the client by the server, creating the interface definition file describing the process specification by the language stipulated by the compiler for stub creation to provide a dispersed processing environment. In this way, the interface information can be passed to the client from the server. However, even with this device, it is not supposed that a remote procedure call with the argument in an unconfirmed state can be executed to a remote procedure management system, nor can this device inform the called client with the execution process that it is undefined. For this reason, it is not possible to change the argument interactively.
SUMMARY OF THE INVENTION
It is accordingly one object of the present invention to overcome the problems described above and to provide a device for processing remote procedures that makes it possible to easily obtain a desired service by combining a plurality of remote procedures, and that allows a user of a client application to know the parameters provided to each remote procedure and the execution results from each procedure.
Another object of this invention is a remote procedure processing device which has the ability to re-execute remote procedures by the user interactively providing an argument in the case where the remote procedure is executed by an unconfirmed argument or in the case where a remote procedure is executed due to an improper argument being provided.
The invention is a device for processing remote procedures comprising: communication means for receiving remote procedure execution requests and sending execution results; one or more means for executing remote procedures in response to the execution requests; message analyzing means for analyzing the execution requests received by the communication means and extracting a retrieval expression and a parameter to be used in the execution of the requested procedures; and means for retrieving remote procedures corresponding to the retrieval expression extracted by the message analyzing means and sending the parameter to the means for executing remote procedures. The means for executing remote procedures executes a procedure using the parameters received from the remote procedure retrieving means. Messages containing a retrieval expression and a parameter for another remote procedure means are generated during execution of the procedure if needed. These messages are sent to the remote procedure retrieving means. A reply to the message is received, and the execution of the procedure is continued.
In another embodiment of the device for processing remote procedures the communicating means sends a message generated by the remote procedure means to another device for processing remote procedures. The communicating means is also capable of receiving replies to the message sent from the other device for processing remote procedures.
In still another embodiment of the device for processing remote procedures, the remote procedures means has a means for storing attributes added to the remote procedures means; a means for executing procedures and obtaining results from the execution; a means for generating messages requesting another remote procedure means to execute a procedure if the other remote procedures means is to be used during the execution of the remote procedure means, the message containing a parameter needed for the execution for the procedure of the other remote procedure means; a means for analyzing received hypertext containing execution results from the other remote procedure means sent as a reply to a message generated by the message generating means, and extracting parameters needed for the execution of the original procedure from the hypertext; and a means for generating hypertext containing execution results from the procedure executing means.
In another embodiment of the device for processing remote procedures, a remote procedure holding means also has means for disclosing stored specifications. The specification disclosing means also generates a hypertext in response to a request containing the specifications of the remote procedures. The specifications contain one or more of the following list: a formal language description relating to a parameter for the remote procedure, a natural language description relating to the parameter, a formal language description relating to a reply sent back from the remote procedure, a natural language description relating to the reply, a formal language description of the procedures of the remote procedure, a natural language description of the procedures, a hyperlink for executing the remote procedure; and means for controlling remote procedures activating either the specification disclosing means or the procedure executing means based on the parameter sent from the remote procedure retrieving means.
In yet another embodiment of the device for processing remote procedures, the message generating means generates a message containing a hyperlink if the parameter includes a hyperlink indicating execution of another remote procedure.
In still another embodiment of the device for processing remote procedures the hypertext generating means generates hypertext containing a parameter extracted from the message analyzing means in the form of a hyperlink.
A still further embodiment of the device for processing remote procedures has one or more means for holding procedure specifications. The procedure specification holding means has a means for storing attributes attached to the procedure specifications holding means; and a means for disclosing stored specifications for remote procedures containing one or more of the following and generating a hypertext in response to a request for the specifications of the remote procedures: a formal language description relating to a parameter for the remote procedure, a natural language description relating to the parameter, a formal language description relating to a reply sent back from the remote procedure, a natural language description relating to the reply, a formal language description of the remote procedure, a natural language description of the procedures, and a hyperlink for executing the remote procedure.
In another embodiment of the device for processing remote procedures, the network includes one or more remote procedure servers and one or more remote procedure clients. The remote procedure server has one or more means for disclosing specifications of a remote procedure, including parameter data referred to during execution by a remote procedure that can be specified remotely via a network, generating hypertext containing the specifications of the remote procedure in response to a request, and linked to an attribute. The remote procedure server also has a first means for communicating a received message containing a retrieval expression and sending hypertext generated by the specification disclosing the first means; a second means for analyzing messages received from the first communicating means and extracting a retrieval expression; and a means for retrieving the specification disclosing means that matches the retrieval expression extracted by the message analyzing means and requesting the retrieved specification disclosing means to generate hypertext. The remote procedure client has a means for requesting specification disclosure receiving a retrieval expression for specifying the specification disclosing means; a means for generating messages, generating a first message containing the retrieval expression received by the specification disclosure requesting means, generating a second message for requesting a procedure call, and generating a third message in which the second message is substituted for the parameter value; a second means for communicating sending of the first message generated by the message generating means and receiving hypertext sent from the first communication, means of the remote procedure server in response to the message; a means for analyzing hypertext, analyzing the hypertext received from the second communicating means and extracting parameter data contained in the specifications of the remote procedure; and a means for storing the second message generated by the message means.
In another embodiment of the device for processing remote procedures, the remote procedures are performed by a network information system having a plurality of computer systems performing information processing linked via a network. The device has a communication means for accepting a first procedure call expression, the first procedure call expression having a first bind expression, and the first bind expression having a first argument value and a first argument assignment. The device also has a second procedure call expression having a second bind expression, with the second bind expression having a second argument value and a second argument assignment. A bind replacement means is also part of the device, where the second argument value and the second argument assignment are replaced by the first argument value from the first procedure call expression, resulting in the generation of a revised second procedure call expression, indicating the replacement of the second argument assignment. Also part of the device is a procedure call expression analysis means for accepting the second procedure call expression and deriving from said second procedure call expression the values assigned to the second argument and generating a remote procedure retrieval expression. At least one remote procedure holding means is available, along with a remote procedure search means for searching the remote procedure holding means, the remote procedure search means inputting the value assigned to the second argument based on the remote procedure retrieval expression created by the procedure call expression analysis means, whereby the remote holding means accepts the value assigned to the second argument by the procedure call expression analysis means. The remote procedure holding means also has a procedure specification disclosure means, a procedure execution means, and a bind request processing means, whereby the procedure execution means inputs an assigned argument from the procedure call expression analysis means and executes the procedure according to the assigned argument and outputs a specification, disclosure request when the argument is unassigned. The procedure specification disclosure means stores at least one specification of the remote procedures, each specification including information of arguments required for the remote procedure, and the procedure specification disclosure means outputting a specification after accepting the specification disclosure request from the procedure execution means. Lastly, the bind request processing means outputs a new specification which includes the assignment of any unassigned argument. In this manner, for example, the necessary binding rules for a client and server are exchanged between a client and a server, and the network handshaking completed.
A still further embodiment of the device for processing remote procedures comprises a means for displaying hypertext containing a parameter substitution component that allows a user to substitute values for parameters based on the parameter data extracted by the hypertext analyzing means.
In yet another embodiment of the device for processing remote procedures, the remote procedure server sends and receives messages via the Internet, and the message storing means stores a URL. The message generating means substitutes the URL stored by the message storing means for the value of a parameter extracted by the hypertext analyzing means, and generates a second URL containing the substituted URL, in a nested manner, in the parameter.
In a still further embodiment of this invention for processing remote procedures, the remote procedure server sends and receives messages via the Internet, and the message storing means stores a protocol message in an HTTP. The message generating means substitutes the protocol message stored by the message storing means for the value of a parameter extracted by the hypertext analyzing means, and generates a second protocol message containing the protocol message substituted, in a nested manner, in the parameter.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram showing the first embodiment of the device for processing remote procedures.
FIG. 2 depicts a sample display on hypertext display component 13 of the first embodiment of the device for processing remote procedures.
FIG. 3 depicts another display on hypertext display component 13 of the first embodiment of the device for processing remote procedures.
FIG. 4 is a block diagram of the second embodiment of the device for processing remote procedures.
FIG. 5 is a schematic flowchart showing the procedure of remote procedure client 1 of the second embodiment of the device for processing remote procedures.
FIG. 6 is a schematic flowchart showing the flow of remote procedure server 2 of the second embodiment of the device for processing remote procedures.
FIG. 7 is a block diagram showing the third embodiment of the device for processing remote procedures.
FIG. 8 is a flowchart showing a sample procedure of the remote procedure client 1 in the third embodiment of the device for processing remote procedures.
FIG. 9 is a flowchart showing a sample procedure of the remote procedure server 2 in the third embodiment of the device for processing remote procedures.
FIG. 10 is a flowchart showing a sample procedure of the remote specification holding components 41-1 through 41-M in the third embodiment of the device for processing remote procedures.
FIG. 11 is a flowchart showing a sample flow of the remote procedure holding components 24-1 through 24-M in the third embodiment of the device processing remote procedures.
FIG. 12(A), FIG. 12(B), and FIG. 12(C) depict a sample of a portion of data used in a sample procedure of the third embodiment of the device for processing remote procedures.
FIG. 13(A) and FIG. 13(B) depict sample of a portion of data used in a sample procedure of the third embodiment of the device for processing remote procedures.
FIG. 14 depicts a sample display on hypertext display component 13 of the third embodiment of the device for processing remote procedures.
FIG. 15 shows a block diagram of the fourth embodiment of the remote procedure processing device.
FIG. 16 is a flowchart showing one example of the operation of the procedure call expression analysis component which occurs in the fourth embodiment of the remote procedure processing device.
FIG. 17 is a flow chart showing one example of the process for creating the call expression from the semi-call expression which is executed by one example of the operation of the procedure call expression analysis component which occurs in the fourth embodiment of the remote procedure processing device.
FIG. 18 is a flow chart showing one example of the operation of the bind replacement component which occurs in the fourth embodiment of the remote procedure processing device.
FIG. 19(A) and FIG. 19(B) is a flow chart showing one example of the operation of the procedure execution component which occurs in the fourth embodiment of the remote procedure processing device.
FIG. 20 is a flow chart showing one example of the operation of the bind request processing component which occurs in the fourth embodiment of the remote procedure processing device.
FIG. 21 shows a block diagram of the fifth embodiment of the remote procedure processing device.
FIG. 22 shows one of the illustrations of the hyper-text which is output by the procedure specification disclosure component which occurs in the fifth embodiment of the remote procedure processing device.
FIG. 23 is a flowchart indicating one operation example of the bind replacement component in the fifth embodiment of the remote procedure processing device.
FIG. 24(A) and FIG. 24(B) is a flowchart showing one example of the operation of the procedure execution component which occurs in the fifth embodiment of the remote procedure processing device.
FIG. 25 is a flow chart showing one example of the operation of the bind request processing component which occurs in the fifth embodiment of the remote procedure processing device.
FIG. 26 is an illustration of one example of the hyper-text which is maintained by the procedure specification disclosure component in the fifth embodiment of the remote procedure processing device.
FIG. 27(A), FIG. 27(B), FIG. 27(C) and FIG. 27(D) is an illustration of one example of a portion of the data which exchanges in an example of the specific operations which occur in the fifth embodiment of the remote procedure processing device.
FIG. 28(A), FIG. 28(B), FIG. 28(C) and FIG. 28(D) is an illustration (cont.) of one example of a portion of the data which exchanges in an example of the specific operations which occur in the fifth embodiment of the remote procedure processing device.
FIG. 29(A), FIG. 29(B), FIG. 29(C) and FIG. 29(D) is an illustration (cont.) of one example of a portion of the data which exchanges in an example of the specific operations which occur in the fifth embodiment of the remote procedure processing device.
DETAILED DISCLOSURE OF PREFERRED EMBODIMENTS
FIG. 1 is a block diagram showing the first embodiment of the device for processing remote procedures according to the present invention. In the drawing, there is shown a remote procedure client 1, a remote procedure server 2, a communications components 11 and 21, a hypertext analysis component 12, a hypertext display component 13, a user input component 14, a message generation component 15, a message analysis component 22, a remote procedure retrieval component 23, remote procedure holding components 24-1 through 24-M, attribute holding component 25-1 through 25-M, procedure specification disclosure components 26-1 through 26-M, message generation components 27-1 through 27-M hypertext analysis components 28-1 through 28-M, procedure execution components 29-1 through 29-M, and hypertext generation components 30-1 through 30-M.
The device for processing remote procedures described in this first embodiment has a remote procedure client 1 and a remote procedure server 2. Alternatively, the device for processing remote procedures can generally have one or ore remote procedure clients 1 and one or more remote procedure servers 2.
Remote procedure client 1 has a communication component 11, a hypertext analysis component 12, a hypertext display component 13, a user input component 14, and a message generation component 15. Communication component 11 transmits
1. messages received from message generation component 15 to another communication component, and
2. sends the hypertext received as a response to hypertext analysis component 12.
Hypertext. analysis component 12 analyzes the hypertext received from communication component 11 and requests hypertext display component 13 to display the hypertext to the user. Hypertext analysis component 12 also sends message generation data to message generation component 15 so that a message based on the user input from user input component 14 is generated. In response to the requests from the hypertext analysis component 12 and user input component 14, hypertext display component 13 displays the hypertext to the user as images and audio data. User input component 14 sends message generation requests to message generation component 15 and display requests to hypertext display component 13 based on input from a keyboard, a pointing device, and the like. In response to the requests from user input component 14, message generation component 15 generates a first message containing a retrieval expression specifying a remote procedure holding component 24 and sends this first message to communication component 11.
Remote procedure server 2 has a single communication component 21, a single message analysis component 22, a single remote procedure retrieving component 23, and M remote procedure holding components 24-1 through 24-M. Remote procedure holding components 24-1 through 24-M include an attribute holding component 25, a procedure specification disclosure component 26, a message generation component 27, a hypertext analysis component 28, a procedure execution component 29, and a hypertext generation component 30.
Communication component 21 receives messages containing retrieval expressions and sends hypertext generated by hypertext generation components 30-1 through 30-M. Message analysis component 22 analyzes a message string received from communication component 21. Message analysis component 22 extracts a retrieval expression to be sent to the remote procedure retrieval component 23, as well as a message to be sent to one of the remote procedure holding components 24-1 through 24-M. Remote procedure retrieval component 23 searches remote procedure holding components 24-1 through 24-M for a remote procedure holding component that matches the retrieval expression.
Attribute holding components 25-1 through 25-M hold identifiers that allow remote procedure retrieval component 23 to uniquely identify one of remote procedure holding components 24-1 through 24-M. The identifiers are stored in pairs having an attribute name and an attribute value. Alternatively, any number of attribute name-attribute value pairs can generally be held in attribute holding components 25-1 through 25-M so long as remote procedure retrieval component 23 can uniquely identify one of the remote procedure holding components 24-1 through 24-M when one or more attribute is specified.
Procedure specification disclosure components 26-1 through 26-M hold formal language descriptions for procedure parameters, natural language descriptions for procedure parameters, formal language descriptions for the reply to be returned for the procedure, natural language descriptions for the reply to be returned for the procedure, formal language descriptions for how the procedure was performed, natural language descriptions for how the procedure was performed, and hyperlinks indicating the remote procedure holding component. Alternatively, the procedure specification disclosure components 26-1 through 26-M can generally be used to hold subset of these descriptions.
When message generation components 27-1 through 27-M need to send a message to another remote procedures holding component while a procedure execution component 29-1 through 29-M is executing, procedure execution components 29-1 through 29-M send parameters for message generation to message generation component 27-1 through 27-M and a message is generated.
The message generated by the message generation components 27-1 through 27-M is sent from communication component 21 to another or the same communication component. The resulting hypertext is received and analyzed by hypertext analysis components 28-1 through 28-M. The results of the analysis and the extracted parameters are sent to procedure execution components 29-1 through 29-M.
Procedure execution components 29-1 through 29-M execute procedures according to the message received via message analysis component 22. If, during execution of the procedure, it is necessary to send a message to another remote procedure holding component to execute a remote procedure, the message is sent via message generation components 27-1 through 27-M and communication component 21. When the procedure is completed, procedure execution components 29-1 through 29-M send the results of the procedure to hypertext generation components 30-1 through 30-M.
Hypertext generation components 30-1 through 30-M generate hypertext based on the execution results sent from procedure execution components 29-1 through 29-M. The response is then sent to the communication component that sent the original message.
The following is a description of a specific example. In this example, attribute holding components 25-1 through 25-M hold at least a "name" attribute. The hyperlink for specifying communication component 21 of remote procedure server 2 is "http://host1/". A message requesting retrieval with the "name" attribute is formed by adding a string for the "name" attribute to the end of the hyperlink. In order to specify parameter names and their values, "?parameter.sub.-- name=value¶meter.sub.-- name=value" is added to the end of the string for the attribute value. If "?", "=", "&", and the like appear in the parameter name or value, the entire hyperlink can be set off with "("and")" so that the parameter name and value can be extracted as one unit. In general, any encoding method for extracting parameter name/parameter value pairs can be used. Methods involving start and end symbols, as well as escaping methods that convert a character into a different string can be used.
Attribute holding component 25-1 holds a "name" attribute with the value "plus", and the remote procedure holding component 24-1 can be specified with the hyperlink "http://host1/plus". In the procedure performed by the procedure execution component 29-1, two parameters v1, v2 are used. Parameter v1 is assigned a string representing a decimal integer or a hyperlink. Parameter v2 is assigned a string representing a decimal integer or a hyperlink. If a parameter is a string representing a decimal integer, the string is converted to an integer. If a parameter is a hyperlink, the remote procedure corresponding to the hyperlink is performed and the return value is obtained. The sum of the two parameters is returned as the result.
Attribute holding component 25-2 holds a "name" attribute with the value "times". Remote procedure holding component 24-2 can be specified with the hyperlink "http://host1/times". In the procedure performed by the procedure execution component 29-2, two parameters v1, v2 are used. Parameter v1 is assigned a string representing a decimal integer or a hyperlink. Parameter v2 is assigned a string representing a decimal integer or a hyperlink. If a parameter is a string representing a decimal integer, the string is converted to an integer. If a parameter is a hyperlink, the remote procedure corresponding to the hyperlink is performed and the return value is obtained. The product of the two parameters is returned as the result.
Attribute holding component 25-2 holds a "name" attribute with the value "power". Remote procedure holding component 24-3 can be specified with the hyperlink "http://host1/power". In the procedure performed by procedure execution component 29-3, two parameters v1, v2 are used. Parameter v1 is assigned a string representing a decimal integer or a hyperlink. Parameter v2 is assigned a string representing a decimal integer or a hyperlink. If a parameter is a string representing a decimal integer, the string is converted to an integer. If a parameter is a hyperlink, the remote procedure corresponding to the hyperlink is performed and the return value is obtained. The value of parameter v1 to the power of v2 is returned as the result.
The following is an example of how the configuration described operates. In this example, a remote procedure call represented by the following hyperlink is performed: http://host1/plus?v1=1&v2=(http:///host1/times?v1=2&v2=(http://host1/power ?v1=3&v2=4)). The user enters the string "http://host1/plus?v1=1&v2=(http://host1/times?v1=2&v2=(http://host1/power ?v1=3&v2=4))" via user input component 14. This string will be referred to as string 1.
Based on string 1, message generation component 15 generates a message requesting execution of a procedure: plus?v1=1&v2=(http://host1/times?v1=2&v2=(http://host1/power?v1=3&v2=4)).
This message is sent to communication component 11, to be sent to the communication component 21 indicated by "http://host1/" in string.
Communication component 11 retrieves the communication component that corresponds to the string "http://host1/", and the message plus?v1=1&v2=(http://host1/times?v1=2&v2=(http://host1/power?v1=3&v2=4)) is sent to communication component 21. This message will be referred to as message 1.
Communication component 21 receives message 1 and sends it to the message analysis component 22. When message analysis component 22 receives message 1, message analysis component 22 requests remote procedure retrieval component 23 to retrieve a remote procedure holding component that has a "name" attribute of "plus". Remote procedure retrieval component 23 searches the remote procedures holding components and returns remote procedure holding component 24-1. Message analysis component 22 sends the message v1=1&v2=(http://host1/times?v1=2&v2=(http://host1/power?v1=3&v2=4)) to remote procedure holding component 24-1. This message will be referred to as message 2.
When message 2 is received, remote procedure holding component 24-1 sends message 2 to procedure execution component 29-1. Procedure execution component 29-1 analyzes message 2, resulting in an assignment of "1" to parameter v1 and an assignment of "http://host1/times?v1=2&v2=(http://host1/power?v1=3&v2=4)" to parameter v2. Parameter v1 is evaluated, resulting in an integer 1. In order to evaluate parameter v2, the value assigned to v2, "http://host1/times?v1=2&v2=(http://host1/power?v1=3&v2=4)" is sent to message generation component 27-1, and a message is requested.
Message generation component 27-1 generates the message "times?v1=2&v2=(http://host1/power?v1=3&v2=4)" and requests communication component 21 to send the message to the communication component represented by the string "http://host1/". This message will be referred to as message 3.
Communication component 21 sends message 3 to the communication component represented by "http://host1/", i.e., communication component 21. When message 3 is received, communication component 21 sends message 3 to message analysis component 22. Message analysis component 22 receives message 3 and requests remote procedure retrieval component 23 to retrieve a remote procedures holding component that has a "name" attribute with a value of "times". Remote procedure retrieval component 23 performs the retrieval and returns remote procedure holding component 24-2. Message analysis component 22 sends the message "v1=2&v2=(http://host1/power?v1=3&v=4)" to remote procedure holding component 24-2. This message will be referred to as message 4.
When message 4 is received, remote procedure holding component 24-2 sends message 4 to procedure execution component 29-2. Procedure execution component 29-2 analyzes message 4 and assigns parameter v1 with "2" and assigns parameter v2 with "http://host1/power?v1=3&v2=4". Parameter v1 is evaluated, resulting in an integer 2. In order to evaluate parameter v2, a message is requested and the value assigned to parameter v2, "http://host1/power?v1=3&v2=4", is sent to message generation component 27-2.
Message generation component 27-2 generates the message "power?v1=3&v2=4" and requests communication component 21 to send this message to the communication component represented by "http://host1/". This message will be referred to as message 5.
Communication component 21 sends message 5 to the communication component represented by "http://host1/", i.e., communication component 21. When message 5 is received, communication component 21 sends message 5 to message analysis component 22. When message analysis component 22 receives message 5, it requests remote procedure retrieval component 23 to retrieve a remote procedures holding component that has a "name" attribute with the value "power". Remote procedure retrieval component 23 performs the retrieval and returns remote procedure holding component 24-3. Message analysis component 22 sends the message "v1=3&v2=4" to remote procedure holding component 24-3. This message will be referred to as message 6.
When message 6 is received, remote procedure holding component 24-3 sends message 6 to procedure execution component 29-3. Procedure execution component 29-3 analyzes message 6 and assigns parameter v1 with "3" and assigns parameter v2 with "4". Parameter v1 is evaluated, resulting in an integer 3, and parameter v2 is evaluated, resulting in an integer 4. Based on its execution definition, procedure execution component 29-3 calculates 3 to the 4th power, resulting in 81. Procedure execution component 29-3 request hypertext generation component 30-3 to generate hypertext indicating that parameter v1 is assigned 3, parameter v2 is assigned 4, and the result of the procedure is 81.
Hypertext generation component 30-3 generates hypertext indicating that parameter v1 is assigned 3, parameter v2 is assigned 4, and the result of the procedure is 81. This hypertext is sent back to hypertext analysis component 28-2 via communication component 21. This hypertext will be referred to as hypertext 1.
When hypertext 1 is received, hypertext analysis component 28-2 extracts 81 (the result from the execution of the remote procedure) from hypertext 1. The parameter 81 is sent to procedure execution component 29-2. Based on its execution definition, procedure execution component 29-2 calculates the product of v1, which is assigned 2, and the value returned from the hyperlink in parameter v2, which is 81. The result is 162. Procedure execution component 29-2 requests hypertext generation component 30-2 to generate a hypertext indicating that parameter v1 is assigned 2, parameter v2 is assigned the hyperlink http://host1/power?v1=3&v2=4, the evaluation result of the hyperlink is 81, and the result from the procedure is 162.
Hypertext generation component 30-2 generates a hypertext indicating that parameter v1 is assigned 2, parameter v2 is assigned the hyperlink http://host1/power?v1=3&v2=4, the evaluation result of the hyperlink is 81, and the result from the procedure is 162. This hypertext is sent back to hypertext analysis component 28-1 via communication component 21. This hypertext will be referred to as hypertext 2.
When hypertext 2 is received, hypertext analysis component 28-1 extracts 162 (the result from the execution of the remote procedure) from hypertext 2, and the parameter 162 is sent to procedure execution component 29-1. Based on its execution definition, procedure execution component 29-1 adds the value assigned to parameter v1, 1, and the value returned from the hyperlink in parameter v2, 162. The result of the calculation is 163. Procedure execution component 29-1 then request hypertext generation component 30-1 to generate hypertext indicating that parameter v1 is assigned 1, parameter v2 is assigned the hyperlink http://host1/times?v1=2&v2=(http://host1/power?v1=3&v2=4), the results from the evaluation of the hyperlink is 162, and the result from the procedure is 163. This hypertext is sent to communication component 21 and will be referred to as hypertext 3. Communication component 21 sends hypertext 3 to communication component 11.
Communication component 11 sends hypertext 3 to hypertext analysis component 12. When hypertext 3 is received from communication component 11, hypertext analysis component 12 requests hypertext display component 13 to display that parameter v1 is assigned 1, parameter v2 is assigned the hyperlink http://host1/times?v1=2&v2=(http://host1/power?v1=3&v2=4), the results from the evaluation of the hyperlink is 162, and the result from the procedure is 163. Hypertext display component 13 displays the assignments of parameters v1, v2, the evaluation results, and the results from the execution of the procedure.
FIG. 2 is a drawing describing a sample display on hypertext display component 13 from the first embodiment of the device for processing remote procedures according to the present invention. As described above, parameter v1, parameter v2, and the results from the execution of the procedure are displayed.
In this manner, a user can perform a desired procedure by combining remote procedures. In this example, the messages generated by message generation component 27-1, 2 are received by remote procedures holding components within the same remote procedure server 2. However, the present invention is not restricted to this, and these messages can be received and processed by other remote procedure servers connected via a network.
In the procedure described above, hypertext display component 13 can display the assignments of parameter v1, v2 and evaluation results in addition to the results from the execution of the procedure. When this kind of display is shown, the user may be interested in the assignment of parameter v2 of http://host1/plus. The user operates a pointing device or the like to call up via user input component 14 the remote procedure corresponding to the hyperlink assigned to parameter v2. Alternatively, the remote procedure corresponding to the assignment of parameter v2 can be indicated by a string entered from a keyboard or the like.
User input component 14 analyzes the input from the user and sends the results of the analysis to message generation component 15. Based on the results of the analysis by hypertext analysis component 12, message generation component 15 determines that the user entry is a message generation request corresponding to hyperlink http://host1/times?v1=2&v2=(http://host1/power?v1=3&v2=4). Message generation component 15 requests the communication component represented by "http://host1/" to send the message times?v1=2&v2=(http://host1/power?v1=3&v2=4). This message will be referred to as message 7. Communication component 21 sends message 7 to the communication component represented by "http://host1/", i.e. communication component 21.
When message 7 is received, communication component 21 sends message 7 to message analysis component 22. When message 7 is received, message analysis component 22 requests remote procedure retrieval component 23 to retrieve a remote procedures holding component having a "name" attribute with a value of "times". Remote procedure retrieval component 23 returns remote procedure holding component 24-2.
Message analysis component 22 sends the message v1=2&v2=(http://host1/power?v1=3&v2=4) to remote procedure holding component 24-2. This message will be referred to as message 8. When message 8 is received remote procedure holding component 24-2 sends message 8 to procedure execution component 29-2.
Procedure execution component 29-2 analyzes message 8 and obtains an assignment of "2" for parameter v1 and an assignment of http://host1/power?v1=3&v2=4 for parameter v2. Parameter v1 is evaluated, resulting in the integer 2. In order to evaluate parameter v2, a message generation request is made and the value assigned to parameter v2, "http://host1/power?v1=3&v2=4" is sent to message generation component 27-2.
Message generation component 27-2 generates the message "power?v1=3&v2=4" and requests communication component 21 to send the message to the communication component represented by "http://host1/". This message will be referred to as message 9. Communication component 21 sends message 9 to the communication component represented by "http://host1/", i.e. communication component 21. When message 9 is received, communication component 21 sends message 9 to message analysis component 22.
When message 9 is received, message analysis component 22 requests remote procedure retrieval component 23 to retrieve a remote procedure holding component having a "name" attribute with the value "power". Remote procedure retrieval component 23 performs the retrieval and returns remote procedure holding component 24-3. Message analysis 22 component 22 sends the message v1=3&v2=4 to remote procedure holding component 24-3. This message will be referred to as message 10.
When message 10 is received, remote procedure holding component 24-3 slends message 10 to procedure execution component 29-3. Procedure execution component 29-3 analyzes message 10, and obtains the assignment of "3" to parameter v1 and an assignment of "4" to parameter v2. Parameter v1 is evaluated, resulting in the integer 3. Parameter v2 is evaluated, resulting in the integer 4. Based on the execution definition, 3 to the 4th power is calculated, resulting in 81. Procedure execution component 29-3 request hypertext generation component 30-3 to generate hypertext indicating that parameter v1 is assigned 3, parameter v2 is assigned 4, and the results of the procedure is 81.
Hypertext generation component 30-3 generates hypertext indicating that parameter v1 is assigned 3, parameter v2 is assigned 4, and the results of the procedure is 81. The hypertext is sent back to hypertext analysis component 28-2 via communication component 21. This hypertext will be referred to hypertext 1.
When hypertext 1 is received, hypertext analysis component 28-2 extracts 81 (the result from the execution of the remote procedure) from hypertext 1. The parameter 81 is sent to procedure execution component 29-2. According to the execution definition in procedure execution component 29-2, 2 and 81 are multiplied, resulting in 162. Procedure execution component 29-2 requests hypertext generation component 30-2 to generate hypertext indicating that parameter v1 is assigned 2, parameter v2 is assigned the hyperlink http://host1/power?v1=3&v2=4, the evaluation result of the hyperlink is 81, and the result from executing the procedure is 162.
Hypertext generation component 30-2 generates hypertext indicating that parameter v1 is assigned 2, parameter v2 is assigned the hyperlink http://host1/power?v1=3&v2=4, the evaluation result of the hyperlink is 81, and the result from executing the procedure is 162. The hypertext is sent back to hypertext analysis component 12 via communication component 11. This hypertext will be referred to as hypertext 2.
When hypertext 3 is received from communication component 11, hypertext analysis component 12 requests hypertext display component 13 to display information indicating that parameter v1 is assigned 2, parameter v2 is assigned the hyperlink http://host1/power?v1=3&v2=4, and the result from executing the procedure is 162.
FIG. 3 is a drawing describing a sample display from hypertext display component 13 from the first embodiment of the device for processing remote procedures of the present invention. As described above, parameter v1, parameter v2, and the result from execution of the procedures is displayed.
In this manner, the user can refer to the parameters provided to the remote procedure and the execution results. Thus, users can leave the parameters unchanged and execute the remote procedure. Here, the parameters are specified as-is, but it would also be possible to edit the displayed hypertext to perform a different remote procedure. It would also be possible to provide support for this type of remote procedure.
FIG. 4 is a block diagram of the second embodiment of the device for processing remote procedures according to the present invention. In the drawing, parts that are identical to those in FIG. 1 are assigned identical numerals. The drawing shows a message holding component 16. In the second embodiment, the user can use hypertext to recursively create hyperlinks from a leaf.
The device for processing remote procedures according to the second embodiment also comprises a remote procedure client 1 and a remote procedure server 2. Alternatively, one or more remote procedure clients and one or more remote procedure servers can be used.
Remote procedure client 1 has a communication component 11, a hypertext analysis component 12, a hypertext display component 13, a user input component 14, a message generation component 15, and a message holding component 16. Communication component 11 transmits messages received from message generation component 15 to another communication component and sends the hypertext received as a response to hypertext analysis component 12. Hypertext analysis component 12 analyzes the hypertext received from communication component 11 and requests hypertext display component 13 to display the hypertext to the user. Hypertext analysis component 12 also sends message generation data to message generation component 15 so that a message based on the user input from user input component 14 is generated. The message generation data contains data related to parameters necessary for the execution of the remote procedures. In response to the requests from hypertext analysis component 12, user input component 14, and message holding component 16, hypertext display component 13 displays the hypertext to the user as character, image and audio data. User input component 14 sends message generation requests to message generation component 15 and display requests to hypertext display component 13 based on input from a keyboard, a pointing device, and the like. In response to the requests from user input component 14, message generation component 15 generates a first message containing, a retrieval expression specifying a remote procedure holding component 24 and sends this first message to communication component 11 and message holding component 16. In response to the request from user input component 14, message generation component 15 requests message holding component 16 to send a second message held in message holding component 16. Based on the results from the hypertext analysis performed by hypertext analysis component 12, a third message is sent to communication component 11 and message holding component 16. Message holding component 16 assigns a number to the received message and manages a list comprising number/message pairs. In response to a message output request, in which a number is specified, message holding component 16 retrieves the message linked to the number from the list and sends this message to message generation component 15.
Remote procedure server 2 has a single communication component 21, a single message analysis component 22, a single remote procedure retrieval component 23, and M remote procedure holding components 24-1 through 24-M. Remote procedure holding components 24-1 through 24-M have an attribute holding component 25, a procedure specification disclosure component 26, and an procedure execution component 29.
Communication component 21 receives messages containing retrieval expressions and sends hypertext generated by specification disclosure components 26-1 through 26-M. Message analysis component 22 analyzes messages (strings received from communication component 21), and sends retrieval expressions to remote procedure retrieving component 23. Message analysis component 22 also requests the specification disclosure component held by the retrieved remote procedure holding component to disclose the procedure specifications. Remote procedure retrieval component 23 retrieves the remote procedure holding component that matches the retrieval expression.
Attribute holding components 25-1 through 25-M contain attributes that represent identifiers that allows remote procedure retrieval component 23 to uniquely identify remote procedure holding components 24-1 through 24-M. These attributes are stored as a list of attribute name/attribute value pairs. Alternatively, any number of attribute name/attribute value pairs can be held in attribute holding components 25-1 through 25-M as long as specifying one or more attributes can allow remote procedure server 2 to uniquely identify a remote procedure holding component. Specific-ition disclosure components 26-1 through 26-M contain formal language descriptions for procedure parameters, natural language descriptions for procedure parameters, formal language descriptions for the reply to be returned for the procedure, natural language descriptions for the reply to be returned for the procedure, formal language descriptions for how the procedure was performed, natural language descriptions for how the procedure was performed, and hyperlinks indicating the remote procedure holding component. Alternatively, specification disclosure components 26-1 through 26-M can generally be used to hold subsets of these descriptions. Specification disclosure components 26-1 through 26-M send hypertext containing specification descriptions in response to requests from message analysis component 22. Procedure execution components 29-1 through 29-M execute the procedures disclosed by specification disclosure components 26-1 through 26-M.
The following is a description of a specific example. Attribute holding components 25-1 through 25-M holds at least a "name" attribute. The hyperlink for specifying communication component 21 of remote procedure server 2 is "http://host1/". A string for the "name" attribute is added to the end of this hyperlink in order to form a message requesting retrieval using the "name" attribute. In order to specify parameter names and their values, "?parameter.sub.-- name=value& parameter.sub.-- name=value" is added to the end of the string for the attribute value. If"?", "=", "&", and the like appear in the parameter name or value, the entire hyperlink can be set off with "("and ")" so that the parameter name and value can be extracted as one unit. In general, any encoding method for extracting parameter name/parameter value pairs can be used. Methods involving start and end symbols, as well as escaping methods that convert a character into a different string can be used.
Attribute holding component 25-1 of remote procedure holding component 24-1 holds a "name" attribute with the value "plus". Remote procedure holding component 24-1 can be specified with the hyperlink "http://host1/plus". In response to a request for specification disclosure, procedure specification disclosure component 26-1 outputs hypertext containing information indicating that: there are two parameters v1, v2; parameter v1 is either a string representing an integer or a hyperlink; parameter v2 is either a string representing an integer or a hyperlink; if a parameter is a string representing an integer, the string is converted to an integer; if the parameter is a hyperlink, the remote procedure corresponding to the hyperlink is performed and the return value is obtained; the two values are added and the result is returned; and the hyperlink, which serves as the message generation data for executing procedure execution component 29-1.
Attribute holding component 25-2 of remote procedure holding component 24-2 holds a "name" attribute with the value "times". Remote procedure holding component 24-2 can be specified with the hyperlink "http://host1/plus". In response to a request for specification disclosure, procedure specification disclosure component 26-2 outputs hypertext containing information indicating that: there are two parameters v1, v2; parameter v1 is either a string representing an integer or a hyperlink; parameter v2 is either a string representing an integer or a hyperlink; if a parameter is a string representing an integer, the string is converted to an integer; if the parameter is a hyperlink, the remote procedure corresponding to the hyperlink is performed and the return value is obtained; the two values are multiplied and the result is returned; and the hyperlink, which serves as the message generation data for executing procedure execution component 29-2.
FIG. 5 is a schematic flowchart showing the procedures of remote procedure client 1 in the second embodiment of the device for processing remote procedures according to the present invention. At step S51, user input component 14 waits for input from the user. When user input is received, user input component 14 analyzes the input at step 52. The user input is evaluated to see if it is a request to generate a message. If the input is a request to generate a message, control proceeds to step S53. Otherwise, control proceeds to step S55.
At step 53, message generation component 15 extracts the message number and parameter name held in message holding component 16 from the data received from user input component 14. Then, at step S54, message generation component 15 sends the extracted number to message holding component 16 and requests the message having the corresponding number. Message holding component 16 sends the message corresponding to the received number to message generation component 15. At step S59, message generation component 15 assigns the message received from message holding component 16 to the parameter name and control returns to step S51.
At S55, message generation component 15 receives the analysis results from hypertext analysis component 12, the message sent from message holding component 16, and the input from user input component 14. Parameter names and parameter values are extracted from these. Based on the message generation data received from hypertext analysis component 12, a message for remote procedure server 2 is generated. The message is then sent to communication component 11 and message holding component 16.
At S56, message holding component 16 holds the message generated and sent by message generation component 15. Message holding component 16 requests hypertext display component 13 to display a list of messages being held to the user. In response to this request from message holding component 16, hypertext display component 13 displays to the user a list of messages in the form of character, image, and audio data.
At S57, communication component 11 sends a message to the communication component of the sending destination as specified in the message generated and sent by message generation component 15 at S55. If a reply is sent from the communication component of the sending destination as the result from the message transmission, the reply message is sent to hypertext analysis component 12.
At S58, hypertext analysis component 12 analyzes the reply message, which contains hypertext. Based on the results of the analysis, hypertext analysis component 12 requests the hypertext display components to show the user the hypertext. In response to the request from hypertext analysis component 12, hypertext display component 13 displays the hypertext to the user as character, image, and audio data. Hypertext analysis component 12 also sends message generation data to message generation component 15. Control then returns to S51.
FIG. 6 is a schematic flowchart showing the procedures of remote procedure server 2 in the second embodiment of the device for processing remote procedures according to the present invention. At S61 communication component 21 waits for a specification disclosure request message to arrive. If a specification disclosure request message arrives, the message is sent to message analysis component 22 and communication component 21 begins waiting for a message again.
At S62, message analysis component 22 analyzes the message received from communication component 21. Message analysis component 22 extracts a retrieval expression to be sent to remote procedure retrieval component 23 and a specification disclosure request message for disclosure from the procedure specification disclosure component held in the remote procedures holding component specified by the results from the retrieval performed by remote procedure retrieving component 23. Remote procedure retrieval component 23 then retrieves a remote procedure holding component according to the retrieval expression. Message analysis component 22 sends a specification disclosure message for the procedure specification disclosure component in the retrieved remote procedures holding component.
At S63, the procedure specification disclosure component outputs the specifications of the remote procedures holding component in hypertext format.
The following is a description of the procedures described above as they apply to a specific example. In this example, the user wants to calculate 1+2.times.3 using remote procedures. The remote procedure is called using the hyperlink http://host1/plus?v1=1&v2=(http://host1/times?v1=2&v2=3).
First, in order to obtain the specifications for the product, the user enters the string http://host1/times via user input component 14. This string will be referred to as string 21. Based on string 21, message generation component 15 generates a message to request from the communication component represented by http://host1/ a specification disclosure for the procedure specification disclosure component corresponding to the name attribute "times". This message is sent to communication component 11. Communication component 11 retrieves the communication component corresponding to the string http://host1/. Communication component 11 then sends a message requesting specification disclosure from a procedure specification disclosure component corresponding to the name attribute "times". This message will be referred to as message 21.
When message 21 is received, communication component 21 sends message 21 to message analysis component 22. Message analysis component 22 receives message 21 and requests remote procedure retrieval component 23 to retrieve a remote procedures holding component that has a "name" attribute of times". Remote procedure retrieval component 23 retrieves the remote procedure holding component and returns remote procedure holding component 24-2.
Message analysis component 22 sends a message to remote procedure holding component 24-2 requesting specification disclosure. This message will be referred to as message 22. When message 22 is received, remote procedure holding component 24-2 requests specification disclosure from specification disclosure component 26-2.
When the specification disclosure request is received, procedure specification disclosure component 26-2 outputs hypertext indicating: there are two parameters v1, v2; the two parameters are integers; the product of parameter v1 and parameter v2 are returned; and the hyperlink indicating procedure execution component 29-1 is http://host1/times. This output will be referred to as hypertext 21. Communication component 21 sends hypertext 21 back to communication component 11 as the response to message 21.
When hypertext 21 is received, communication component 11 sends, hypertext 21 to hypertext analysis component 12. Based on hypertext 21, hypertext analysis component 12 requests hypertext display component 13 to display information to the user indicating that: there are two parameters v1, v2; the two parameters are integers; the product of parameter v1 and parameter v2 are returned; and the hyperlink indicating procedure execution component 29-1 is http://host1/times. Hypertext display component 13 displays information to the user indicating: there are two parameters v1, v2; the two parameters are integers; the product of parameter v1 and parameter v2 are returned; and the hyperlink indicating procedure execution component 29-1 is http://host1/times.
The user specifies via user input component 14 that 2 is assigned to parameter v1 and 3 is assigned to parameter v2. When the instructions from the user are received from user input component 14, message generation component 15 generates the following message: http://host1/times?v1=2&v2=3. This message will be referred to as hyperlink 21. Message generation component 15 sends hyperlink 21 to message holding component 16. Message holding component 16 holds hyperlink 21 as the first message.
In order to obtain the specifications for the sum, the user next enters the string http:/host1/plus via user input component 14. This string will be referred to as string 22. Based on string 22, message generation component 15 will generate a message for the communication component indicated by http://host1/ requesting specification disclosure from the procedure specification disclosure component corresponding to the name attribute "plus". This message is sent to communication component 11. Communication component 11 retrieves the communication component corresponding to the string http://host1/ and sends a message requesting specification disclosure from the procedure specification disclosure component corresponding to the name attribute "pius". This message will be referred to as message 23.
When message 23 is received, communication component 21 sends message 23 to message analysis component 22. When message 23 is received, message analysis component 22 requests remote procedure retrieval component 23 to retrieve a remote procedures holding component having a name attribute of "plus". Remote procedure retrieval component 23 retrieves a remote procedures holding component, returning remote procedure holding component 24-1. Message analysis component 22 sends a message requesting specification disclosure to remote procedure holding component 24-1. This message will be referred to as message 24.
When message 24 is received, remote procedure holding component 24-1 requests specification disclosure from procedure specification disclosure component 26-1. In response, procedure specification disclosure component 26-1 outputs hypertext indicating that: there are two parameters v1, v2; the parameters are both integers; the sum of parameter v1 and parameter v2 are returned as the result; and the hyperlink indicating procedure execution component 29-1 is http://host1/plus. This output will be referred to as hypertext 22. Communication component 21 sends hypertext 22 back to communication component 11 as the response to message 23.
When hypertext 22 is received, communication component 11 sends message analysis component 22 to hypertext analysis component 12. Based on hypertext 22, hypertext analysis component 12 requests hypertext display component 13 to display information to the user indicating that: there are two parameters v1, v2; the parameters are both integers; the sum of parameter v1 and parameter v2 are returned as the result; and the hyperlink indicating procedure execution component 29-1 is http://host1/plus. The hypertext display component then displays to the user information indicating that: there are two parameters v1, v2; the parameters are both integers; the sum of parameter v1 and parameter v2 are returned as the result; and the hyperlink indicating procedure execution component 29-1 is http://host1/plus.
As described above, the user was able to find the specifications relating to the product and sum. Therefore, the user can generate hypertext for performing desired calculations. At this point, the specifications for the sum is displayed, so this will be used. The user specifies via user input component 14 an assignment of 1 to parameter v1 and an assignment of the first message held in message holding component 16 to parameter v2.
When the instructions from the user are received via user input component 14, message generation component 15 requests message holding component 16 to output the first message. Message holding component 16 retrieves the message linked to number 1: "http://host1/times?v1=2&v2=3". Since the first message retrieved from message holding component 16 contains a "?", message generation component 15 sets off the message with "("and ")", and this is assigned to parameter v2. Thus, message generation component 15 generates a message "http://plus?v1=1&v2=(http://host1/times?v1=2&v2=3)". This message will be referred to as message 25. Message generation component 15 sends message 25 to message holding component 16 and message holding component 16 holds message 25 as the second message.
In this manner, the procedure specification disclosure components return the specifications for remote procedures as hypertext. By saving the hypertext, the user can combine remote procedure specifications obtained from procedure specification disclosure components in order to generate new hypertext to perform desired remote procedures.
FIG. 7 shows a block diagram of the third embodiment of the device for processing remote procedures according to the present invention. Parts that are identical with those of FIG. 1 and FIG. 4 are assigned identical numerals. In the drawings, there is shown remote specification holding components 41-1 through 41-M, attribute holding components 42-1 through 42-M, and procedure specification disclosure components 43-1 through 43-M.
In the third embodiment, the device for processing remote procedures also comprises remote procedure client 1 and remote procedure server 2. Alternatively, the device for processing remote procedures can generally comprise one or more remote procedure client 1 and one or more remote procedure server 2.
Remote procedure client 1 has a communication component 11, a hypertext analysis component 12, a hypertext display component 13, a user input component 14, a message generation component 15, and a message holding component 16. Communication component 11 transmits messages received from message generation component 15 to another communication component ria a network and sends the hypertext received as a response to hypertext analysis component 12. The network can include a local area network that uses HIPPI (High-Performance Parallel Interface), ATM (Asynchronous Transfer Mode), Ethernet, FDDI, or ATOMIC, as well as an Internet or a wide area network that connects these types of local area networks. In the following description, sending and receiving information between communication component 11 and communication component 21 is performed via a network.
Hypertext analysis component 12 analyzes the hypertext received from communication component 11 and requests hypertext display component 13 to display the hypertext to the user in the form of characters, diagrams, images, and audio data. Hypertext analysis component 12 also sends input interpretation data and message generation data to message generation component 15. The input interpretation data provides information to determine whether the input from user input component 14 is a parameter assignment request, a message retrieval request, or a message generation request for message generation component 15, and also provides information for extracting the requested parameters. The message generation data is data for generating a message to be used in performing remote procedure calls. The message generation data includes at least header data providing format information at the start of the message. The message generation data can also include parameter data relating to the parameters included in the message.
In response to the requests from hypertext analysis component 12, user input component 14, and message holding component 16, hypertext display component 13 displays the hypertext to the user as character, image and audio data.
User input component 14 comprises a keyboard, pointing device, and the like, and receives input from the user. The input results are sent to message generation component 15 and hypertext display component 13.
In response to the input from user input component 14 and the input interpretation data from hypertext analysis component 12, message generation component 15 performs either parameter assignment, message retrieval, or message generation. If the input from the user relates to parameter assignment, parameters are assigned according to the user input. If the input from the user is a message retrieval request, the number specified by the user is sent to message holding component 16 and a request is made to output the message linked to the number. Based on the message generation data from hypertext analysis component 12, the parameter component contained in the message is generated. If the input from the user is a message generation request, a message is generated based on the message generation data sent from hypertext analysis component 12 in order to generate a message for performing a remote procedure call. The message is then sent to communication component 11.
Message holding component 16 adds a number to the received message and manages a list of number/message pairs. In response to message output requests that specify a number, message holding component 16 retrieves the message linked to the number from the list and sends it to message generation components 27-1 through 27-M.
Remote procedure server 2 has a single communication component 21, a single message analysis component 22, a single remote procedure retrieval component 23, M remote procedure specification holding components 41-1 through 41-M, and M remote procedure holding components 24-1 through 24-M. Remote procedure specification holding components 41-1 through 41-M comprise attribute holding components 42-1 through 42-M and procedure specification disclosure components 43-1 through 43-M. Remote procedure holding components 24-1 through 24-M comprise attribute holding components 25-1 through 25-M, message generation components 27-1 through 27-M, hypertext analysis components 28-1 through 28-M, procedure execution components 29-1 through 29-M, and hypertext generation components 30-1 through 30-M.
Communication component 21 receives messages containing retrieval expressions and also sends hypertext generated by remote procedure holding components 24-1 through 24-M or remote procedure specification holding components 41-1 through 41-M. Message analysis component 22 analyzes messages entered from communication component 21 and extracts retrieval expressions to be sent to remote procedure retrieval component 23 and messages to be sent to the retrieved remote procedure holding component or procedure specification holding component. Remote procedure retrieval component 23 retrieves from remote procedure server 2 the remote procedure holding component or the procedure specification holding component that matches the retrieval expression.
Attribute holding components 25-1 through 25-M and attribute holding components 42-1 through 42-M of remote procedure holding components 24-1 through 24-M or remote procedure specification holding components 41-1 through 41-M hold lists of attribute name/attribute value pairs representing identifiers used to allow remote procedure server 2 to uniquely identify remote procedure holding components 24-1 through 24-M and remote procedure specification holding components 41-1 through 41-M. Alternatively, any number of attribute/attribute value pairs can be held in attribute holding components 25-1 through 25-M and attribute holding components 42-1 through 42-M as long as specifying one or more attributes to remote procedure server 2 can be specified to uniquely identify a remote procedure holding component 24-1 through 24-M and remote procedure specification holding component 41-1 through 41-M.
Specification disclosure components 43-1 through 43-M contain formal language descriptions for procedure parameters, natural language descriptions for procedure parameters, formal language descriptions for the reply to be returned for the procedure, natural language descriptions for the reply to be returned for the procedure, formal language descriptions for how the procedure was performed, natural language descriptions for how the procedure was performed, and hyperlinks indicating the remote procedure holding component. Alternatively, procedure specification disclosure components 43-1 through 43-M can generally be used to hold subsets of these descriptions. Procedure specification disclosure components 43-1 through 43-M send hypertext containing specification descriptions in response to requests from message analysis component 22.
When procedure execution components 29-1 through 29-M is executing a procedure and a message needs to be sent to another remote procedure holding component, message generation components 27-1 through 27-M receives message generation data and parameters needed for generating messages from procedure execution components 29-1 through 29-M and a message is generated.
The message generated by message generation components 27-1 through 27-M is sent by hypertext analysis components 28-1 through 28-M through communication component 21 to another communication component or the same communication component. The hypertext received as the reply is analyzed, and the extracted parameters from the analysis are sent to procedure execution components 29-1 through 29-M.
Procedure execution components 29-1 through 29-M executes procedures according to the message received from message analysis component 22. When the procedure is being executed and a message requesting execution of a remote procedure needs to be sent to another remote procedure holding component, a message is sent to communication component 21 via message generation components 27-1 through 27-M. When the procedure is completed, procedure execution components 29-1 through 29-M sends the results of the procedure to hypertext generation components 30-1 through 30-M.
Hypertext generation components 30-1 through 30-M generates hypertext based on the execution results from procedure execution components 29-1 through 29-M. The hypertext is sent as a reply to the sender of the message via communication component 21.
The following is a description of another example. Attribute holding components 25-1 through 25-M and attribute holding components 42-1 through 42-M hold at least a "name" attribute. The hyperlink to specify communication component 21 of remote procedure server 2 is "http://host1/". A string for the "name" attribute is added to the end of this hyperlink in order to form a message requesting retrieval using the "name" attribute. In order to specify parameter names and their values, "?parameter.sub.-- name=value¶meter.sub.-- name=value" is added to the end of the string for the attribute value. If characters such as ":", "/", "?", "=", "&", "%" or the like appear in the parameter name or value, the ASCII code of the corresponding character is added after a "%", as set forth in the Common Gateway Interface specifications. The codes above would be expressed as "%3A", "%2F", "%3F", "%26", "%25", respectively. In order to have a parameter name/value pair extracted as a single unit, starting and stopping symbols such as "("and ")" can be used as well as escaping methods that convert a character into a different string.
Attribute holding component 42-1 of remote procedure specification holding component 41-1 holds a "name" attribute of plus". Remote procedure specification holding component 41-1 can be uniquely specified using the hyperlink "http://host1/plus".
In response to a specification disclosure request, procedure specification disclosure component 43-1 outputs hypertext containing information indicating that: the procedure executed by procedure execution component 29-1 has two parameters v1, v2; parameter v1 is assigned a string representing a decimal integer or a hyperlink, and a parameter v2 is assigned a string representing a decimal integer or a hyperlink; if a parameter is a string representing a decimal integer, the string is converted into an integer, and if a parameter is a hyperlink, the remote procedure corresponding to the hyperlink is executed and the return value is obtained; and the sum of the two values is added as the result; and the message generation data for executing procedure execution component 29-1 is "http://host1/htbin/plus".
Attribute holding component 42-2 of remote procedure specification holding component 41-2 holds a "name" attribute of "plus". Remote procedure specification holding component 41-2 can be uniquely specified using the hyperlink "http://host1/times". In response to a specification disclosure request, specification disclosure component 43-2 outputs hypertext containing information indicating that: the procedure executed by procedure execution component 29-2 has two parameters v1, v2; parameter v1 is assigned a string representing a decimal integer or a hyperlink, and parameter v2 is assigned a string representing a decimal integer or a hyperlink; if a parameter is a string representing a decimal integer, the string is converted into an integer, and if a parameter is a hyperlink, the remote procedure corresponding to the hyperlink is executed and the return value is obtained; and the sum of the two values is added as the result; and the message generation data for executing procedure execution component 29-2 is "http://host1/htbin/times".
Attribute holding component 3-1 of remote procedure holding component 24-1 has a "name" attribute of "htbin/plus". Remote procedure holding component 24-1 can be uniquely specified with the hyperlink "http://host1/htbin/plus".
Attribute holding component 3-2 of remote procedure holding component 24-2 has a "name" attribute of "htbin/times". Remote procedure holding component 24-2 can be uniquely specified with the hyperlink "http://host1/htbin/times".
FIG. 8 is a flowchart showing one example of the remote client 1 in the third embodiment of the device for processing remote procedures according to the present invention. At S71, user input component 14 waits for input from the user. The user input is sent to message generation component 15. At S72, message generation component 15 analyzes the user input. If the user input is a request for parameter assignment, control proceeds to S73. If the user input is a request for message retrieval, control proceeds to S75. If the user input is a request for message generation, control proceeds to S79.
If the user input is a request for parameter assignment, at S73 message generation component 15 extracts the parameter and value to be assigned based on the input interpretation data and the user input. At S74, message generation component 15 adds a parameter/value pair to the assignment list. This completes the parameter assignment procedure and control returns to S71.
If the user input is a message retrieval request, at S75 message generation component 15 extracts a number and a parameter name from the input from user input component 14. Then, at S76, message generation component 15 sends the extracted number to message holding component 16 and requests that a message containing the number be sent back. Message holding component 16 sends the message linked to the received number to message generation component 15. At S77, message generation component 15 adds the parameter/message pair to the assignment list. This completes the procedures for the message retrieval request, and control returns to S71.
If the user input is a message generation request, at S78 message generation component 15 generates a message for remote procedure server 2 based on the message generation request parameter, the message generation data, and the assignment list. The message is sent to communication component 11 and message holding component 16.
???? At S199, message holding component 16 holds the message received from message generation component 15. Message holding component 16 requests hypertext display component 13 to display the list of held messages to the user. Based on the request from message holding component 16, hypertext display component 13 displays to the user the message list in the form of characters, images, and audio data.
At S80, based on the message received from message generation component 15, communication component 11 sends a message to the communication component of the destination specified in the message. If the communication component of the destination replies with the results of the sent message, the reply message is sent to hypertext analysis component 12. At S81, hypertext analysis component 12 analyzes the reply message containing hypertext. Based on the results of the analysis, hypertext analysis component 12 requests hypertext display component 13 to display the hypertext to the user and send input interpretation data and message generation data to message generation component 15. Based on the request from hypertext analysis component 12, hypertext display component 13 displays the hypertext to the user in the form of characters, images, and audio data. Control then returns to S71.
FIG. 9 is a flowchart showing an example of how remote procedure server 2 operates in the third embodiment of the device for processing remote procedures according to the present invention. At S91, communication component 21 waits for the arrival of a message. When a message arrives, the message is sent to message analysis component 22, and communication component 21 begins waiting for another message.
At S92, message analysis component 22 analyzes the first message received from communication component 21. A retrieval formula to be sent to remote procedure retrieval component 23 is extracted, as well as a second message for the remote procedure holding component or remote procedure specification holding component specified by the retrieval results from remote procedure retrieving component 23.
FIG. 10 is a flowchart showing an example of the procedure of remote procedure specification holding components 41-1 through 41-M of the third embodiment of the device for processing remote procedures according to the present invention. As S101, when a message arrives, remote procedure specification holding components 41-1 through 41-M requests specification disclosure components 43-1 through 43-M to disclose a specification held in remote procedure specification holding components 41-1 through 41-M. At S102, specification disclosure components 43-1 through 43-M sends the specifications in hypertext form to communication component 21.
FIG. 11 is a flowchart showing an example of the procedure of remote procedure holding components 24-1, 2 of the third embodiment of the device for processing remote procedures according to the present invention. The procedures of remote procedure holding component 24-1 and remote procedure holding component 24-2 are almost identical so the description will cover both together. When the first message arrives at remote procedure holding components 24-1, 2, the arrived first message is sent to procedure execution components 29-1, 2 at S111.
At S112, procedure execution components 29-1, 2 examine the assignment for parameter v1 contained in the first message. If the assignment is a string representing a decimal integer, the string is converted into an integer and parameter v1 is given a second assignment. In this case, control proceeds to S115. If the parameter is the second message containing a hyperlink, the second message is sent to message generation component 27-1, 2. Then, at S113, hypertext generation component 30-1, 2 generates a fourth message based on the second message. This message is sent to communication component 21. The resulting hypertext received from communication component 21 is sent to hypertext analysis component 28-1, 2. At S14, hypertext analysis component 28-1, 2 analyzes the received hypertext and parameter v1 is given a second assignment.
At S115, procedure execution components 29-1, 2 examine the assignment for parameter v2 contained in the first message. If the assignment is a string representing a decimal integer, the string is converted into an integer and parameter v2 is given a second assignment. In this case, control proceeds to S118. If the parameter is the third message containing a hyperlink, the third message is sent to message generation component 27-1, 2. Then, at S116, hypertext generation component 30-1, 2 generates a fifth message based on the third message. This message is sent to communication component 21. The resulting hypertext received from communication component 21 is sent to hypertext analysis component 28-1, 2. At S17, hypertext analysis component 28-1, 2 analyzes the received hypertext and parameter v2 is given a second assignment.
At S118, procedure execution component 29-1 adds the second assignments for parameter v1 and parameter v2, and the results are sent to hypertext generation component 30-1. Procedure execution component 29-2 multiplies the second assignment of parameter v1 and the second assignment of parameter v2, and the results are sent to hypertext generation component 30-2. At S119, hypertext generation component 30-1, 2 generates hypertext based on the results from procedure execution component 29-1, 2, the second message, and the third message. The resulting hypertext is sent to communication component 21.
The following is a description of a specific example of the procedures of this embodiment. FIG. 12(A) through FIG. 12(C) and FIG. 13(A) through FIG. 13(B) are drawings for the purpose of describing an example of some of the data handled in a specific example of the third embodiment of the device for processing remote procedures according to the present invention. In FIG. 12(A), a remote procedure call represented by a hyperlink is performed. In order to make the description simple, this example involves a two-step remote procedure call from remote procedure client 1. However, in this embodiment, message retrieval requests can be performed multiple times so that it is possible to perform remote procedure calls having a tree-structure of arbitrary depth.
In order to obtain the specifications relating to the multiplication, the user enters the string http://host1/times via user input component 14 and issues a message generation request. This string will be referred to as string 31.
Message generation component 15 performs message generation using string 31 as the message generation data. A message is generated for the communication component represented by http://host1/ for the procedure specification holding component or the remote procedure holding component corresponding to the name attribute "times". This message is sent to communication component 11.
Communication component 11 searches for a communication component corresponding to the string http://host1/ and retrieves communication component 21. Communication component 11 sends the message "GET /times" to communication component 21. This message will be referred to as message 31.
When message 31 is received, communication component 21 sends message 31 to message analysis component 22. When message 31 is received, message analysis component 22 requests remote procedure retrieval component 23 to retrieve a remote procedure holding component or procedure specification holding component that has a "name" attribute of "times". Remote procedure retrieval component 23 performs the retrieval, returning remote specification holding component 41-2. Message analysis component 22 sends a message requesting specification disclosure to remote specification holding component 41-2. This message will be referred to as message 32.
When message 32 is received, remote specification holding component 41-2 requests procedure specification disclosure from specification disclosure component 43-2. In response, procedure specification disclosure component 43-2 outputs hypertext as shown in FIG. 12(B) containing information indicating that: there are two parameters v1, v2; each parameter is a decimal integer or a hyperlink; the product of parameter v1 and parameter v2 is returned; and the hyperlink indicating procedure execution component 29-2 is http://host1/htbin/times. This output will be referred to as hypertext 31. Communication component 21 sends back hypertext 31 as a reply to message 31.
When hypertext 31 is received, communication component 11 sends hypertext 31 to hypertext analysis component 12. Based on hypertext 31, hypertext analysis component 12 requests hypertext display component 13 to show the user information indicating that: there are two parameters v1, v2; each parameter is a decimal integer or a hyperlink; the product of parameter v1 and parameter v2 is returned; and the hyperlink indicating procedure execution component 29-2 is http://host1/htbin/times. Hypertext display component 13 displays this procedure specification information to the user.
The user specifies an assignment of 2 to parameter v1 and an assignment of 3 to parameter v2 via user input component 14. Message generation component 15 stores the 2 assigned to parameter v1 and the 3 assigned to parameter v2 in the assignment list.
A message generation request is issued by the user via user input component 14. Message generation component 15 generates the message "http://host1/times?v1=2&v2=3" based on the assignment list and the message generation data "http://host1/htbin/times". This message will be referred to as hyperlink 31. < |