[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

US20050033799A1 - Method, server, and client used in client-server distributed system - Google Patents

Method, server, and client used in client-server distributed system Download PDF

Info

Publication number
US20050033799A1
US20050033799A1 US10/910,322 US91032204A US2005033799A1 US 20050033799 A1 US20050033799 A1 US 20050033799A1 US 91032204 A US91032204 A US 91032204A US 2005033799 A1 US2005033799 A1 US 2005033799A1
Authority
US
United States
Prior art keywords
processing
server
client
server function
post
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/910,322
Other versions
US7017163B2 (en
Inventor
Hidehiko Shin
Ken Yamashita
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Panasonic Intellectual Property Corp of America
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Assigned to MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD. reassignment MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SHIN, HIDEHIKO, YAMASHITA, KEN
Publication of US20050033799A1 publication Critical patent/US20050033799A1/en
Application granted granted Critical
Publication of US7017163B2 publication Critical patent/US7017163B2/en
Assigned to PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA reassignment PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PANASONIC CORPORATION
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request control

Definitions

  • the present invention relates to a method, a server, and a client used in a client-server distributed system which uses synchronous communication. More particularly, the present invention relates to a method, a server, and a client with which the turnaround time from when the client makes a server function call to the server until the client receives a notification that the server function has been completed, can be reduced.
  • a client makes a server function call to a server.
  • the server executes processing corresponding to the called server function.
  • the server sends a notification of completion to the client.
  • FIG. 13 is a sequence diagram showing the flow of processing between a server and a client in a conventional synchronous communication method such as that described above.
  • the time the client is able to perform processing operations is indicated by hatching.
  • the client makes a server function call to the server, the client cannot perform any process until receiving a notification from the server that the server function has been completed.
  • the time from when the client calls a server function until the client is notified that the server function has been completed is called the “turnaround time”.
  • a technique for reducing turnaround time i.e., a technique for reducing the client's wait time (see Japanese Laid-Open Patent Publication No. 9-330287, for example).
  • FIG. 14 is a sequence diagram showing the flow for a conventional synchronous communication method described in Japanese Laid-Open Patent Publication No. 9-330287.
  • a client includes a client command section for executing a process on the client side and calling a server function; and a communication control section for communicating with a server.
  • the client command section requests the communication control section to call the server function.
  • the communication control section immediately returns a completion notification to the client command section indicating that the server function call has been failed.
  • the communication control section sends a request message to the server through asynchronous communication to request for the execution of the server function.
  • the server having received the request message executes processing corresponding to the requested server function.
  • the server Upon completion of the server function processing, the server sends a completion message to the client.
  • the communication control section of the client holds the content of the completion message having been sent from the server.
  • the communication control section receives a request from the client command section to call the server function again, the communication control section notifies the client command section of completion of the server function, based on the content of the completion message held thereby.
  • the communication control section immediately returns a completion notification to the client command section that the execution of the server function has been failed, whereby the turn around time for the client can be reduced.
  • the client command section needs to call the server function at least twice to confirm the processing result of the server function call.
  • the client may possibly make the second server function call before receiving a completion message from the server, resulting in creation of an unnecessary process.
  • an object of the present invention is to provide a synchronous communication method, a server, and a client for a client-server system, with which in the case where the server executes processing corresponding to a server function, the turnaround time from when the client calls a server function until the client receives a notification that the server function has been completed can be reduced without causing the client to call the server function multiple times.
  • a first aspect of the present invention is directed to a method used in a client-server distributed system in which a client makes a desired server function call to a server and the server executes processing corresponding to the called server function, the method comprising the steps of: registering pre-processing which is a part of the processing corresponding to the server function and which is processing up to the point where the minimum information necessary for the client is obtained; registering post-processing which is a part of the processing corresponding to the server function and which is processing to be executed after the pre-processing; and establishing correspondence between the registered pre-processing and the registered post-processing with a server function identifier indicating the server function.
  • processing corresponding to the server function can be divided into pre-processing and post-processing.
  • the method further comprises the steps of: sending by the client a request message to the server to call a desired server function, the request message including a server function identifier which indicates the desired server function; receiving by the server the request message from the client; executing by the server pre-processing corresponding to the server function identifier included in the request message; obtaining by the server an execution result of the pre-processing; sending by the server a completion message to the client, the completion message including the execution result of the pre-processing; after the completion message has been sent, executing by the server post-processing corresponding to the server function identifier included in the request message; and executing, by the client, processing based on the execution result of the pre-processing.
  • a completion message is returned to the client upon completion of the pre-processing. Since the minimum information necessary for the client is obtained through the pre-processing, the client can continue processing after receiving the completion message. Accordingly, the turnaround time can be reduced.
  • the server executes the post-processing after the pre-processing, whereby a desired server function is called.
  • the method further comprises the steps of: obtaining by the server an execution result of the post-processing; sending by the server a post-processing result message to the client, the post-processing result message including the execution result of the post-processing; and executing, by the client, processing based on the execution result of the post-processing.
  • the client since the client is notified of the execution result of the post-processing, the client can execute desired processing based on the execution result of the post-processing.
  • the method further comprises the steps of: if a cancel instruction to cancel the server function call is received, pre-registering by the client a condition used to determine whether to cancel the server function call based on the cancel instruction; if the cancel instruction is received, determining by the client whether to cancel the server function call based on the cancel instruction; and if it is determined to cancel the server function call, canceling by the client the server function call.
  • a second aspect of the present invention is directed to a server for executing a server function to be called by a client, comprising: a pre-processing registration section for registering pre-processing which is a part of processing corresponding to the server function and which is processing up to the point where the minimum information necessary for the client is obtained; a post-processing registration section for registering post-processing which is a part of the processing corresponding to the server function and which is processing to be executed after the pre-processing; and a server function correspondence section for establishing correspondence between the registered pre-processing and the registered post-processing with a server function identifier indicating the server function.
  • the server further comprises a receiving section for receiving from the client a request message which includes a server function identifier indicating a server function called by the client; a pre-processing execution section for executing pre-processing corresponding to the server function identifier included in the request message and outputting an execution result of the pre-processing; a sending section for sending to the client a completion message which includes the execution result of the pre-processing having been outputted by the pre-processing execution section; and a post-processing execution section for executing, after the sending section has sent the completion message, post-processing corresponding to the server function identifier included in the request message.
  • the post-processing execution section outputs an execution result of the post-processing, and the sending section sends to the client a post-processing result message which includes the execution result of the post-processing having been outputted by the post-processing execution section.
  • a third aspect of the present invention is directed to a client for making a desired server function call to a server, comprising: a sending section for sending a request message to the server to call a desired server function, the request message including a server function identifier which indicates the desired server function; a receiving section for receiving from the server a completion message which includes an execution result of pre-processing corresponding to the server function identifier included in the request message, the pre-processing being performed by the server; and a control section for executing processing based on the execution result of the pre-processing having been received by the receiving section, wherein the server function identifier has a correspondence with the pre-processing and pro-processing, the pre-processing being a part of processing corresponding to the server function and being processing up to the point where the minimum information necessary for the client is obtained, and the post-processing being a part of the processing corresponding to the server function and being processing to be executed after the pre-processing.
  • the server sends to the client a post-processing result message which includes an execution result of the post-processing
  • the receiving section receives the post-processing result message having been sent from the server
  • the control section executes processing based on the execution result of the post-processing included in the post-processing result message.
  • processing corresponding to the server function is divided into pre-processing and post-processing, and a completion message is returned to the client upon completion of the pre-processing. Since the minimum information necessary for the client is obtained through the pre-processing, the client can continue processing after receiving the completion message. Accordingly, the turnaround time can be reduced.
  • the server executes the post-processing after the pre-processing, whereby a desired server function is called.
  • FIG. 1 is a block diagram showing an exemplary configuration of a client-server system according to a first embodiment of the present invention
  • FIG. 2 is a diagram showing an exemplary correspondence table between server functions and pre- and post-processing which is held in a server function correspondence section 103 ;
  • FIG. 5 is a flowchart showing the details of the whole operation of a client-server system capable of obtaining the execution result of post-processing
  • FIG. 6 is a block diagram showing an exemplary configuration of the entire client-server system according to a second embodiment of the present invention.
  • FIG. 7 is a flowchart showing the whole operation of the client-server system according to the second embodiment.
  • FIG. 11 is a sequence diagram schematically showing the flow of processing in a client-server system according to a second example
  • FIG. 14 is a sequence diagram showing the flow for a conventional synchronous communication method described in Japanese Laid-Open Patent Publication No. 9-330287.
  • the client-server system includes a client 10 a and a server 10 b .
  • the client 10 a and the server 10 b can communicate with each other.
  • the present embodiment shows a client-server system in which the client 10 a makes a server function call which is processed and executed on the server 10 b to the server 10 b through synchronous communication.
  • the client 10 a and the server 10 b intercommunicate using wireless communication, such as Bluetooth, a wireless LAN, or infrared wireless communication, or wired communication, such as ISDN, ADSL, a serial cable, or a parallel cable, for example.
  • wireless communication such as Bluetooth, a wireless LAN, or infrared wireless communication
  • wired communication such as ISDN, ADSL, a serial cable, or a parallel cable
  • the client 10 a and the server 10 b intercommunicate between processes, tasks, or threads.
  • FIG. 1 a single client 10 a and a single server 10 b are provided, a plurality of clients 10 a may be provided or a plurality of servers 10 b may be provided.
  • the client 10 a includes a client command section 104 and a communication control section 112 .
  • the client command section 104 executes a process on the client side and calls a server function in accordance with the process.
  • the communication control section 112 controls communication between the client command section 104 and the server 10 b.
  • the communication control section 112 has a synchronous communication section 105 , an asynchronous communication sending section 106 , and an asynchronous communication receiving section 111 .
  • the synchronous communication section 105 receives a server function call from the client command section 104 through synchronous communication and sends a request to the asynchronous communication sending section 106 to call the server function.
  • the synchronous communication section 105 receives from the asynchronous communication receiving section 111 a completion message from the server and notifies the client command section 104 of completion of the server function.
  • the asynchronous communication sending section 106 receives the call request from the synchronous communication section 105 and sends a request message to the server through asynchronous communication.
  • the asynchronous communication receiving section 111 receives a completion message from the server and notifies the synchronous communication section 105 of completion.
  • the server command section 100 requests the pre-processing registration section 101 or the post-processing registration section 102 to register pre-processing or post-processing in response to an instruction of a server operator.
  • the server command section 100 may make such a request in response to an instruction from a client connected to the server 10 b or in response to an instruction from an application being executed on the server 10 b.
  • the server function correspondence section 103 Based on instructions from the pre-processing registration section 101 and the post-processing registration section 102 , the server function correspondence section 103 creates and holds a correspondence table between server functions and pre- and post-processing.
  • FIG. 2 is a diagram showing an exemplary correspondence table between server functions and pre- and post-processing, which is held in the server function correspondence section 103 .
  • the server function correspondence section 103 registers identifiers representing server functions (hereinafter referred to as “server function identifiers”) and their corresponding pre- and post-processing in a tabulated format.
  • server function identifiers representing server functions
  • pre-processing 1 is registered as the pre-processing of server function A and post-processing 2 is registered as the post-processing of server function A;
  • pre-processing 2 is registered as the pre-processing of server function B and post-processing 1 is registered as the post-processing of server function B; and
  • pre-processing 3 is registered as the pre-processing of server function C.
  • server function correspondence section 103 for example, when server function A is requested by the client 10 a , the server 10 b executes pre-processing 1 , sends the execution result of pre-processing 1 to the client 10 a , and then executes post-processing 2 .
  • the asynchronous communication receiving section 107 receives a request message from the client 10 a to call a server function and passes the request message to the server function correspondence section 103 .
  • the server function correspondence section 103 requests the pre-processing execution section 108 to execute pre-processing.
  • the pre-processing execution section 108 then returns the execution result of the pre-processing to the server function correspondence section 103 .
  • the server function correspondence section 103 creates a completion message based on the execution result of the pre-processing having been returned from the pre-processing execution section 108 and passes the completion message to the asynchronous communication sending section 109 .
  • the asynchronous communication sending section 109 sends the completion message to the client 10 a through a synchronous communication.
  • the server function correspondence section 103 After the server function correspondence section 103 has passed the completion message to the asynchronous communication sending section 109 , the server function correspondence section 103 requests the post-processing execution section 110 to execute post-processing corresponding to the called server function. In response to the request from the server function correspondence section 103 , the post-processing execution section 110 executes the post-processing.
  • the communication control section 112 sends a request message to the server 10 b though asynchronous communication to call the server function.
  • the server 10 b having received the request message executes only pre-processing corresponding to the requested server function. Upon completion of the pre-processing, the server 10 b sends a completion message to the client 10 a to notify the client 10 a of the execution result of the pre-processing. Thereafter, the server 10 b executes post-processing.
  • the communication control section 112 of the client 10 a When the communication control section 112 of the client 10 a receives the completion message from the server 10 b , the communication control section 112 notifies the client command section 104 that the server function call has been completed. In this manner, the client command section 104 can receive the execution result of the pre-processing.
  • FIG. 4 is a flowchart showing the details of the whole operation of the client-server system according to the first embodiment of the present invention. With reference to FIG. 4 , the details of the whole operation of the client-server system according to the first embodiment will be described below.
  • steps S 201 to S 203 are operations performed by the server 10 b .
  • Steps S 204 and S 205 are operations performed by the client 10 a .
  • Steps S 206 to S 210 are operations performed by the server 10 b .
  • Steps S 211 and S 212 are operations performed by the client 10 a.
  • the pre-processing registration section 101 of the server 10 b receives a request from the server command section 100 to register pre-processing and performs a registration process (step S 201 ).
  • the post-processing registration section 102 receives a request from the server command section 100 to register post-processing and performs a registration process (step S 202 ).
  • the registration requests at steps S 201 and S 202 are made by the server command section 100
  • the registration processes may be performed such that the server 10 b receives registration requests from the client command section 104 of the client 10 a and the registration requests are sent to the pre-processing registration section 101 and the post-processing registration section 102 , respectively.
  • Steps S 201 and S 202 may be performed when the server receives an instruction from a server operator, or when the server receives an instruction from a client connected thereto, or when the server receives an instruction from an application being executed on the server 10 b.
  • the server function correspondence section 103 stores the registered pre- and post-processing so as to correspond to server function identifiers (step S 203 ). Note that although in the present embodiment the server function correspondence section 103 establishes correspondence between the pre- and post-processing and the server function identifiers at a time after registering the pre- and post-processing, the correspondence may be established each time a registration process is performed at steps S 201 and S 202 .
  • the synchronous communication section 105 receives the call request through synchronous communication (step S 204 ).
  • the server function call request includes information required to call the server function and address information required to establish synchronous communication by asynchronous communication, such as the server function identifier of the requested server function, source information, destination information, data required at the time of execution of pre-processing, and data required at the time of execution of post-processing.
  • the synchronous communication section 105 having received the server function call request allows the asynchronous communication sending section 106 to send a request message to the server 10 b through asynchronous communication to call the server function (step S 205 ).
  • the asynchronous communication receiving section 107 of the server 10 b receives the request message from the client 10 a (step S 206 ).
  • the server function correspondence section 103 determines, with reference to a table held therein, pre-processing which corresponds to the server function identifier included in the received request message and then allows the pre-processing execution section 108 to execute the corresponding pre-processing (step S 207 ). Note that only when data required at the time of execution of pre-processing is included in the request message received at step S 206 , the pre-processing execution section 108 executes the pre-processing using the data at step S 207 .
  • the pre-processing execution section 108 outputs the execution result of the pre-processing executed at step S 207 to the server function correspondence section 103 (step S 208 ).
  • the server function correspondence section 103 passes the execution result obtained from the pre-processing execution section 108 to the asynchronous communication sending section 109 and then allows the asynchronous communication sending section 109 to create a completion message which includes the execution result and to send the completion message to the client 10 a through asynchronous communication (step S 209 ).
  • the completion message includes information necessary to inform the client 10 a that the server function request has been completed, such as source information and destination information, as well as the execution result of the pre-processing.
  • the address of the client 10 a which is the destination is determined based on the source information included in the request message.
  • the server function correspondence section 103 determines post-processing which corresponds to the server function identifier and allows the post-processing execution section 110 to execute post-processing (step S 210 ). Note that only when data required at the time of execution of post-processing is included in the request message received at step S 206 , the post-processing execution section 110 executes the post-processing using the data at step S 210 .
  • the asynchronous communication receiving section 111 of the client 10 a receives the completion message from the server 10 b and notifies the synchronous communication section 105 of completion (step S 211 ).
  • the synchronous communication section 105 accordingly notifies the client command section 104 that the server function call has been completed (step S 212 ).
  • the completion notification includes the execution result of the pre-processing which is included in the completion message.
  • the client command section 104 having received the notification continues desired processing.
  • the server 10 b registers processing corresponding to a server function so as to be divided into pre-processing and post-processing.
  • the server 10 b executes pre-processing corresponding to the server function and sends a completion message to the client 10 a upon completion of the execution of the pre-processing.
  • the client 10 a can receive a completion message before all processing (i.e., pre- and post-processing) corresponding to the server function has been completed and can execute desired processing, and thus the turnaround time can be reduced compared to the case where the client 10 a receives a completion message after all processing corresponding to the server function has been completed and executes desired processing.
  • the client 10 a can identify the point where the minimum necessary processing corresponding to the server function is completed, and thus the client 10 a does not need to call the server function a plurality of times.
  • step S 201 the process of registering pre-processing
  • step S 202 the process of registering post-processing
  • step S 203 the process of establishing correspondence
  • step S 201 where pre-processing is registered had not been performed in advance at the time of performing step S 206 where the server 10 b receives a request message from the client 10 a
  • the server 10 b may skip step S 207 where pre-processing is executed and step S 208 where the execution result of the pre-processing is outputted.
  • a completion message which does not include the execution result of pre-processing is sent at step S 209 .
  • step S 202 where post-processing is registered had not been performed in advance at the time of performing step S 206 where the server 10 b receives a request message from the client 10 a
  • the server 10 b may skip step S 208 where post-processing is executed. That is, it is not always necessary to perform both steps S 201 and S 202 where pre-processing and post-processing are registered, respectively.
  • the server 10 b may notify the client 10 a of the execution result of post-processing.
  • FIG. 5 is a flowchart showing the details of the whole operation of a client-server system capable of obtaining the execution result of post-processing.
  • steps S 401 and S 402 are operations performed by the server 10 b .
  • the server 10 b performs step S 210 and then steps S 401 and S 402 .
  • Steps S 403 and S 404 are operations performed by the client 10 a.
  • the post-processing execution section 110 of the server 10 b having executed post-processing at step S 210 outputs the execution result of the post-processing to the server function correspondence section 103 (step S 401 ).
  • the server function correspondence section 103 then passes the execution result of the post-processing to the asynchronous communication sending section 109 and allows the asynchronous communication sending section 109 to create a post-processing result message which includes the execution result and then to send the post-processing result message to the client 10 a through asynchronous communication (step S 402 ).
  • the post-processing result message includes information necessary to inform the client 10 a that the server has completed all processing corresponding to the server function call, such as source information and destination information, as well as the execution result of the post-processing.
  • the address of the client 10 a which is the destination is determined based on the source information included in the request message.
  • the asynchronous communication receiving section 111 of the client 10 a receives the post-processing result message from the server 10 b (step S 403 ).
  • the synchronous communication section 105 notifies the client command section 104 of the execution result of the post-processing which is included in the received post-processing result message, thereby notifying that the server has completed all processing corresponding to the server function call (step S 404 ).
  • the client command section 104 accordingly continues desired processing based on the execution result of the post-processing.
  • the client can obtain the execution result of post-processing, whereby the client is informed that the server has completed all processing corresponding to the server function call.
  • a second embodiment of the present invention has a function in addition to the function described in the first embodiment that the client can process not only a completion message but also a cancel message indicating that the server function call has been canceled.
  • the client having received a cancel message cancels the server function call.
  • the second embodiment will be described below.
  • FIG. 6 is a block diagram showing an exemplary configuration of the entire client-server system according to the second embodiment of the present invention. Note that in FIG. 6 the same components having the same functions as those shown in FIG. 1 are designated by the same reference numerals, and the description thereof will be omitted.
  • a client 10 c includes a client command section 104 c and a communication control section 502 .
  • the communication control section 502 has a synchronous communication section 105 c , an asynchronous communication sending section 106 , an asynchronous communication receiving section 111 c , and a cancel condition registration section 501 .
  • the cancel condition registration section 501 registers a condition used to determine whether to cancel the server function call based on information included in a cancel message.
  • FIG. 7 is a flowchart showing the whole operation of the client-server system according to the second embodiment. With reference to FIG. 7 , the operation where the client clears a state of waiting for a complete message will be described below. Note that in FIG. 7 the same operations as those shown in FIG. 4 are designated by the same step numbers, and the description thereof will be omitted.
  • the client command section 104 c pre-registers in the cancel condition registration section 501 a condition used to determine, when the client 10 c receives a cancel message, whether to cancel the server function call based on the cancel message (step S 601 ).
  • the operation of step S 601 can be performed anytime before or after any of steps S 201 , S 202 , S 203 , and S 204 or can be performed in advance totally independently of these operations.
  • the asynchronous communication receiving section 111 c determines whether to cancel the server function call based on the determination condition registered at step S 601 in the cancel condition registration section 501 (step S 604 ).
  • the asynchronous communication receiving section 111 c notifies the synchronous communication section 105 c that the server function call has been canceled.
  • the synchronous communication section 105 c accordingly notifies the client command section 104 c that the server function call has been cancelled (step S 605 ).
  • the client command section 104 c clears its synchronization return wait state.
  • the asynchronous communication receiving section 111 c returns to the operation of step S 602 and resumes receiving a message.
  • the communication control section 502 of the client 10 c can receive a cancel message as well as a completion message.
  • the communication control section 502 can register therein a condition used to determine, when receiving a cancel message, whether to cancel the server function call.
  • the communication control section 502 determines whether to cancel the server function call process based on the above-described condition. If it is determined to cancel the server function call, the server function call made by the client is cancelled in the middle of the process, whereby the turnaround time can be reduced.
  • the client 10 c may discard the completion message.
  • the server 10 b determines whether the server 10 b has received a client-to-server cancel message from the client 10 c (step S 702 ). If it is determined at step S 702 that the server 10 b has not received a client-to-server cancel message, the server 10 b proceeds to the operation of step S 209 . On the other hand, if it is determined that the server 10 b has received a client-to-server cancel message, the server 10 b proceeds to the operation of step S 206 where the server 10 b receives another request message from the client 10 c , without performing the operations of steps S 209 and S 210 , and suspends or completes the execution of the server function.
  • the server 10 b in the case where a client-to-server cancel message is sent to the server 10 b from the client 10 c , the server 10 b does need to send a response to the server function call to the client 10 c . That is, after executing the pre-processing, the server 10 b does not notify the client 10 c of the execution result of the pre-processing. In addition, even if post-processing is registered at step S 202 , the server 10 b does not need to execute the post-processing which has become unnecessary.
  • the server 10 b When the server 10 b receives a resume message from the client 10 c to resume the execution of the suspended server function, the server 10 b executes post-processing which has not been executed in response to the reception of the client-to-server cancel message, whereby the execution of the suspended server function can be resumed. The operation will be described in detail in FIG. 9 .
  • FIG. 9 is a flowchart showing the whole operation of a client-server system in the case where the client sends a resume message to the server.
  • the operation of a client-server system in the case where the client sends a resume message to the server will be described below.
  • the steps indicating the same operations as those of FIG. 8 are designated by the same step numbers, and the description thereof will be omitted.
  • step S 801 the client command section 104 c determines whether to send a resume message to the server 10 b to resume the execution of a suspended server function. If it is determined to send a resume message, the client command section 104 c allows the synchronous communication section 105 c and the asynchronous communication sending section 106 to send a resume message to the server 10 b (step S 802 ). Note that the operation of step S 801 can be performed anytime after the operation of step S 701 .
  • step S 205 the server 10 b receives either a request message or a resume message from the client 10 c (step S 803 ).
  • the server 10 b determines whether the message received at step S 803 is a request message or a resume message (step S 804 ). If it is determined that the message is a request message, the server 10 b proceeds to the operation of step S 207 . On the other hand, if it is determined that the message is a resume message, the server 10 b proceeds to the operation of step S 210 and executes post-processing.
  • the server 10 b executes post-processing which has not been executed because of the cancellation of the server function call. By this, the execution of the suspended server function can be resumed.
  • a first example of the present invention describes a client-server system in the case where an image decode server is used as the server.
  • an image decode server registers, among image decoding processes, the processing for obtaining the size of an image as pre-processing and registers the processing for decoding the image as post-processing. By this, the problem of the delay in displaying a layout can be overcome.
  • information about the size of a requested image is obtained as the minimum necessary information for the client.
  • FIG. 10 is a sequence diagram schematically showing the flow of processing in a client-server system according to the first example.
  • the client selects a URL (step S 1 )
  • the client sends image data displayed in the URL to an image decode server and requests, as a server function, the image decode server to decode the image (step S 2 ).
  • the image decode server obtains, as pre-processing, the size of the requested image (step S 3 ) and notifies the client of the size of the image as the execution result of the pre-processing (step S 4 ).
  • the client waits for layout information which includes the size of the requested image (step S 5 ).
  • layout information which includes the size of the requested image
  • the client arranges an image region where the image is embedded based on the size of the image and then displays a layout (step S 6 ).
  • the image decode server decodes the image as post-processing (step S 7 ). Upon completion of the post-processing, the image decode server sends the decoded image to the client as the execution result of the post-processing (step S 8 ).
  • the client accordingly displays the image having been sent thereto in the image region (step S 9 ).
  • the server in pre-processing, obtains in advance information only about the size of an image which is the minimum necessity for the client to display a layout, and then sends the size information to the client. Thereafter, the server decodes the image as post-processing and then sends the decoded image to the client. In this manner, the client can start the layout process without the need to wait for the server to complete the decode processing.
  • a second example of the present invention describes a client-server system in the case where a Kana-Kanji conversion server is used as the server.
  • a Kana-Kanji conversion server registers, among Kana-Kanji conversion processing, the processing for extracting candidates as pre-processing and registers the processing for obtaining predictive data as post-processing.
  • information about Kana-Kanji conversion candidates is obtained as the minimum necessary information for the client.
  • FIG. 11 is a sequence diagram schematically showing the flow of processing in a client-server system according to the second example. As shown in FIG. 11 , when the client inputs Kana (step S 11 ), the client requests the Kana-Kanji conversion server to obtain conversion candidates (step S 12 ).
  • the Kana-Kanji conversion server extracts, as pre-processing, conversion candidates corresponding to the sent Kana (step S 13 ), and then sends the conversion candidates to the client as the execution result of the pre-processing (step S 14 ).
  • the client waits to perform processing until the client is notified of the conversion candidates by the Kana-Kanji conversion server (step S 15 ).
  • the client displays the conversion candidates (step S 16 ).
  • the client select one candidate from the conversion candidates and notifies the server of the determined result (step S 17 ).
  • the Kana-Kanji conversion server organizes, as post-processing, predictive data corresponding to the conversion candidates (step S 18 ). For example, the Kana-Kanji conversion server organizes predictive data such that if “ ” is selected, “ ” is extracted as predictive data, and if “ ” is selected, “ ” and “ ” are extracted as predictive data. Since in the present example, “ ” has been selected, the Kana-Kanji conversion server notifies the client of predictive data corresponding to “ ” as the result of the post-processing (step S 19 ).
  • the client accordingly displays the notified predictive data (step S 20 ).
  • the processing for extracting conversion candidates is registered as pre-processing and the processing for organizing predictive data is registered as post-processing.
  • the server allows the client to resume control. In this manner, since the display of conversion candidates by the client and the organization of predictive data by the server are performed concurrently, the response time to display predictive data at the time of specifying a Kanji candidate can be reduced.
  • a third example of the present invention describes a client-server system in the case where a video playback application server is used as the server.
  • the “active state” indicates that an application is being currently operated by a user and the “inactive state” indicates that an application is not being currently operated by the user.
  • An application used in the third example may be a resident application or may be a non-resident application.
  • the resident application refers to an application which, after receiving an inactive request, goes into an inactive state while operating.
  • the non-resident application refers to an application which is completely stopped upon reception of an inactive request.
  • each application is a resident application.
  • a contention arbitration application determines contention between applications (e.g., the telephone application and the video playback application server) and allows each application to transition from its active state to its inactive state.
  • applications e.g., the telephone application and the video playback application server
  • the telephone application requests the contention arbitration application to bring the telephone application to an active state.
  • the contention arbitration application then requests the video playback application server to go into an inactive state.
  • the video playback application server stops video playback with sound, stores intermediate information, and then notifies the contention arbitration application that the video playback application has gone into an inactive state.
  • the contention arbitration application accordingly notifies the telephone application that the telephone application is permitted to go into an active state.
  • the telephone application then starts playing the ringtone.
  • the telephone application has to wait to start playing the ringtone until the video playback application stores intermediate information, resulting in a long turnaround period.
  • FIG. 12 is a sequence diagram schematically showing the flow of processing in a client-server system according to the third example.
  • a telephone application when a telephone application is in an inactive state (step S 21 ), the telephone application has received an incoming call notification (step S 22 ).
  • the telephone application accordingly requests through synchronous communication a contention arbitration application to determine whether the telephone application is permitted to go into an active state (step S 23 ), and thereby going into a synchronization return wait state (step S 35 ).
  • the contention arbitration application being in an event wait state (step S 24 ) accordingly requests through synchronous communication a video playback application server to go into an inactive state (step S 25 ), and thereby going into a synchronization return wait state (step S 31 ).
  • the video playback application server being in an active state (step S 26 ) stops video playback with sound being performed (step S 27 ), and thereby going into an inactive state (step S 28 ).
  • the video playback application sever then sends an OK notification to the contention arbitration application that the video playback application server has gone into an inactive state (step S 29 ).
  • the video playback application server stores intermediate information about the video playback application as a file (step S 30 ).
  • the intermediate information includes information about the stopping point, the display position of a moving image, color adjustment, etc. By storing such intermediate information as a file, the video playback application server can resume the video playback.
  • step S 31 When the contention arbitration application being in a synchronization return wait state (step S 31 ) receives the OK notification from the video playback application server, the contention arbitration application clears its synchronization return wait state (step S 32 ), and sends an OK notification to the telephone application that the telephone application is permitted to go into an active state (step S 33 ), and thereby going into an event wait state (step S 34 ).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

In synchronous communication in a client-server-distributed data system, the turnaround time from when a client calls a server function until the client receives a notification of completion of the server function is reduced. A server includes a pre-processing registration section for registering pre-processing; a post-processing registration section for registering post-processing; a server command section for requesting to register the pre-processing and the post-processing; and a server function correspondence section for establishing correspondence between the pre-processing and the post-processing with a server function identifier. When the server receives a request message from a client to call a server function, the server execute pre-processing and sends a completion message including the execution result of the pre-processing to the client. After sending the completion message, the server executes post-processing.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates to a method, a server, and a client used in a client-server distributed system which uses synchronous communication. More particularly, the present invention relates to a method, a server, and a client with which the turnaround time from when the client makes a server function call to the server until the client receives a notification that the server function has been completed, can be reduced.
  • 2. Description of the Background Art
  • In conventional synchronous communication in a client-server distributed system using information processing terminals such as computers, a client makes a server function call to a server. The server executes processing corresponding to the called server function. When the processing has been completed, the server sends a notification of completion to the client.
  • FIG. 13 is a sequence diagram showing the flow of processing between a server and a client in a conventional synchronous communication method such as that described above. In FIG. 13, the time the client is able to perform processing operations is indicated by hatching. When the client makes a server function call to the server, the client cannot perform any process until receiving a notification from the server that the server function has been completed. The time from when the client calls a server function until the client is notified that the server function has been completed is called the “turnaround time”. In view of the problem that the client cannot perform any process during the turnaround time, there is proposed a technique for reducing turnaround time, i.e., a technique for reducing the client's wait time (see Japanese Laid-Open Patent Publication No. 9-330287, for example).
  • FIG. 14 is a sequence diagram showing the flow for a conventional synchronous communication method described in Japanese Laid-Open Patent Publication No. 9-330287. In FIG. 14, a client includes a client command section for executing a process on the client side and calling a server function; and a communication control section for communicating with a server. When the need to call a server function arises, the client command section requests the communication control section to call the server function. In response to the request, the communication control section immediately returns a completion notification to the client command section indicating that the server function call has been failed. At the same time, the communication control section sends a request message to the server through asynchronous communication to request for the execution of the server function. The server having received the request message executes processing corresponding to the requested server function. Upon completion of the server function processing, the server sends a completion message to the client. The communication control section of the client holds the content of the completion message having been sent from the server. When the communication control section receives a request from the client command section to call the server function again, the communication control section notifies the client command section of completion of the server function, based on the content of the completion message held thereby.
  • As described above, by employing the synchronous communication method described in Japanese Laid-Open Patent Publication No. 9-330287, the turnaround time for the client can be reduced.
  • In the above-described conventional synchronous communication method, the communication control section immediately returns a completion notification to the client command section that the execution of the server function has been failed, whereby the turn around time for the client can be reduced. However, since the actual server function call is not made at the time when a server function completion notification is returned to the client command section, the client command section needs to call the server function at least twice to confirm the processing result of the server function call.
  • In addition, since the timing at which the server function processing is completed is unknown, the client may possibly make the second server function call before receiving a completion message from the server, resulting in creation of an unnecessary process.
  • SUMMARY OF THE INVENTION
  • Therefore, an object of the present invention is to provide a synchronous communication method, a server, and a client for a client-server system, with which in the case where the server executes processing corresponding to a server function, the turnaround time from when the client calls a server function until the client receives a notification that the server function has been completed can be reduced without causing the client to call the server function multiple times.
  • The present invention has the following features to attain the object mentioned above. A first aspect of the present invention is directed to a method used in a client-server distributed system in which a client makes a desired server function call to a server and the server executes processing corresponding to the called server function, the method comprising the steps of: registering pre-processing which is a part of the processing corresponding to the server function and which is processing up to the point where the minimum information necessary for the client is obtained; registering post-processing which is a part of the processing corresponding to the server function and which is processing to be executed after the pre-processing; and establishing correspondence between the registered pre-processing and the registered post-processing with a server function identifier indicating the server function.
  • In the above-described method, processing corresponding to the server function can be divided into pre-processing and post-processing.
  • It is preferred that the method further comprises the steps of: sending by the client a request message to the server to call a desired server function, the request message including a server function identifier which indicates the desired server function; receiving by the server the request message from the client; executing by the server pre-processing corresponding to the server function identifier included in the request message; obtaining by the server an execution result of the pre-processing; sending by the server a completion message to the client, the completion message including the execution result of the pre-processing; after the completion message has been sent, executing by the server post-processing corresponding to the server function identifier included in the request message; and executing, by the client, processing based on the execution result of the pre-processing.
  • In the above-described method, a completion message is returned to the client upon completion of the pre-processing. Since the minimum information necessary for the client is obtained through the pre-processing, the client can continue processing after receiving the completion message. Accordingly, the turnaround time can be reduced. In addition, the server executes the post-processing after the pre-processing, whereby a desired server function is called.
  • It is preferred that the method further comprises the steps of: obtaining by the server an execution result of the post-processing; sending by the server a post-processing result message to the client, the post-processing result message including the execution result of the post-processing; and executing, by the client, processing based on the execution result of the post-processing.
  • In the above-described method, since the client is notified of the execution result of the post-processing, the client can execute desired processing based on the execution result of the post-processing.
  • It is preferred that the method further comprises the steps of: if a cancel instruction to cancel the server function call is received, pre-registering by the client a condition used to determine whether to cancel the server function call based on the cancel instruction; if the cancel instruction is received, determining by the client whether to cancel the server function call based on the cancel instruction; and if it is determined to cancel the server function call, canceling by the client the server function call.
  • In the above-described method, since the server function call can be cancelled, the turnaround time in the case where an unnecessary server function call has been made, for example, can be reduced.
  • A second aspect of the present invention is directed to a server for executing a server function to be called by a client, comprising: a pre-processing registration section for registering pre-processing which is a part of processing corresponding to the server function and which is processing up to the point where the minimum information necessary for the client is obtained; a post-processing registration section for registering post-processing which is a part of the processing corresponding to the server function and which is processing to be executed after the pre-processing; and a server function correspondence section for establishing correspondence between the registered pre-processing and the registered post-processing with a server function identifier indicating the server function.
  • It is preferred that the server further comprises a receiving section for receiving from the client a request message which includes a server function identifier indicating a server function called by the client; a pre-processing execution section for executing pre-processing corresponding to the server function identifier included in the request message and outputting an execution result of the pre-processing; a sending section for sending to the client a completion message which includes the execution result of the pre-processing having been outputted by the pre-processing execution section; and a post-processing execution section for executing, after the sending section has sent the completion message, post-processing corresponding to the server function identifier included in the request message.
  • It is preferred that the post-processing execution section outputs an execution result of the post-processing, and the sending section sends to the client a post-processing result message which includes the execution result of the post-processing having been outputted by the post-processing execution section.
  • A third aspect of the present invention is directed to a client for making a desired server function call to a server, comprising: a sending section for sending a request message to the server to call a desired server function, the request message including a server function identifier which indicates the desired server function; a receiving section for receiving from the server a completion message which includes an execution result of pre-processing corresponding to the server function identifier included in the request message, the pre-processing being performed by the server; and a control section for executing processing based on the execution result of the pre-processing having been received by the receiving section, wherein the server function identifier has a correspondence with the pre-processing and pro-processing, the pre-processing being a part of processing corresponding to the server function and being processing up to the point where the minimum information necessary for the client is obtained, and the post-processing being a part of the processing corresponding to the server function and being processing to be executed after the pre-processing.
  • It is preferred that the server sends to the client a post-processing result message which includes an execution result of the post-processing, the receiving section receives the post-processing result message having been sent from the server, and the control section executes processing based on the execution result of the post-processing included in the post-processing result message.
  • It is preferred that the client further comprises: a cancel condition registration section for pre-registering, if a cancel instruction to cancel the server function call is received, a condition used to determine whether to cancel the server function call based on the cancel instruction, and that if the cancel instruction is received, the control section determines whether to cancel the server function call based on the condition registered in the cancel condition registration section, and if it is determined to cancel the server function call, the control section cancels the server function call.
  • As described above, according to the present invention, processing corresponding to the server function is divided into pre-processing and post-processing, and a completion message is returned to the client upon completion of the pre-processing. Since the minimum information necessary for the client is obtained through the pre-processing, the client can continue processing after receiving the completion message. Accordingly, the turnaround time can be reduced. In addition, the server executes the post-processing after the pre-processing, whereby a desired server function is called.
  • These and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram showing an exemplary configuration of a client-server system according to a first embodiment of the present invention;
  • FIG. 2 is a diagram showing an exemplary correspondence table between server functions and pre- and post-processing which is held in a server function correspondence section 103;
  • FIG. 3 is a sequence diagram for describing an outline of processing between a server 10 b and a client 10 a in the client-server system according to the first embodiment;
  • FIG. 4 is a flowchart showing the details of the whole operation of the client-server system according to the first embodiment of the present invention;
  • FIG. 5 is a flowchart showing the details of the whole operation of a client-server system capable of obtaining the execution result of post-processing;
  • FIG. 6 is a block diagram showing an exemplary configuration of the entire client-server system according to a second embodiment of the present invention;
  • FIG. 7 is a flowchart showing the whole operation of the client-server system according to the second embodiment;
  • FIG. 8 is a flowchart showing the whole operation of a client-server system in the case where a client notifies a server that a server function call has been cancelled;
  • FIG. 9 is a flowchart showing the whole operation of a client-server system in the case where a client sends a resume message to a server;
  • FIG. 10 is a sequence diagram schematically showing the flow of processing in a client-server system according to a first example;
  • FIG. 11 is a sequence diagram schematically showing the flow of processing in a client-server system according to a second example;
  • FIG. 12 is a sequence diagram schematically showing the flow of processing in a client-server system according to a third example;
  • FIG. 13 is a sequence diagram showing the flow of processing between a server and a client in a conventional synchronous communication method; and
  • FIG. 14 is a sequence diagram showing the flow for a conventional synchronous communication method described in Japanese Laid-Open Patent Publication No. 9-330287.
  • DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • With reference to the drawings, embodiments of the present invention will be described below.
  • (First Embodiment)
  • FIG. 1 is a block diagram showing an exemplary configuration of a client-server system according to a first embodiment of the present invention.
  • In FIG. 1, the client-server system includes a client 10 a and a server 10 b. The client 10 a and the server 10 b can communicate with each other. The present embodiment shows a client-server system in which the client 10 a makes a server function call which is processed and executed on the server 10 b to the server 10 b through synchronous communication.
  • In the case where the client 10 a and the server 10 b are separate, individual apparatuses, the client 10 a and the server 10 b intercommunicate using wireless communication, such as Bluetooth, a wireless LAN, or infrared wireless communication, or wired communication, such as ISDN, ADSL, a serial cable, or a parallel cable, for example. In the case where the client 10 a and the server 10 b are provided in a single device, the client 10 a and the server 10 b intercommunicate between processes, tasks, or threads. Note that although in FIG. 1 a single client 10 a and a single server 10 b are provided, a plurality of clients 10 a may be provided or a plurality of servers 10 b may be provided.
  • The client 10 a includes a client command section 104 and a communication control section 112. The client command section 104 executes a process on the client side and calls a server function in accordance with the process. The communication control section 112 controls communication between the client command section 104 and the server 10 b.
  • The communication control section 112 has a synchronous communication section 105, an asynchronous communication sending section 106, and an asynchronous communication receiving section 111. The synchronous communication section 105 receives a server function call from the client command section 104 through synchronous communication and sends a request to the asynchronous communication sending section 106 to call the server function. In addition, the synchronous communication section 105 receives from the asynchronous communication receiving section 111 a completion message from the server and notifies the client command section 104 of completion of the server function. The asynchronous communication sending section 106 receives the call request from the synchronous communication section 105 and sends a request message to the server through asynchronous communication. The asynchronous communication receiving section 111 receives a completion message from the server and notifies the synchronous communication section 105 of completion.
  • The server 10 b includes a server command section 100, a pre-processing registration section 101, a post-processing registration section 102, a server function correspondence section 103, an asynchronous communication receiving section 107, a pre-processing execution section 108, an asynchronous communication sending section 109, and a post-processing execution section 110.
  • The pre-processing registration section 101 registers pre-processing. Pre-processing is a part of processing corresponding to the server function having been called by the client 10 a and is processing up to the point where the minimum information necessary for the client 10 a is obtained. The server 10 b sends the execution result of pre-processing to the client 10 a before executing processing subsequent to the pre-processing (i.e., post-processing which will be described later).
  • The post-processing registration section 102 registers post-processing. Post-processing is a part of processing corresponding to the server function having been called by the client 10 a and is processing to be executed after the server 10 b sends the execution result of the pre-processing to the client 10 a, i.e., apart of processing corresponding to the server function other than the pre-processing.
  • Pre- and post-processing will be described in examples described later.
  • The server command section 100 requests the pre-processing registration section 101 or the post-processing registration section 102 to register pre-processing or post-processing in response to an instruction of a server operator. The server command section 100 may make such a request in response to an instruction from a client connected to the server 10 b or in response to an instruction from an application being executed on the server 10 b.
  • Based on instructions from the pre-processing registration section 101 and the post-processing registration section 102, the server function correspondence section 103 creates and holds a correspondence table between server functions and pre- and post-processing. FIG. 2 is a diagram showing an exemplary correspondence table between server functions and pre- and post-processing, which is held in the server function correspondence section 103. As shown in FIG. 2, the server function correspondence section 103 registers identifiers representing server functions (hereinafter referred to as “server function identifiers”) and their corresponding pre- and post-processing in a tabulated format. In the example shown in FIG. 2, pre-processing 1 is registered as the pre-processing of server function A and post-processing 2 is registered as the post-processing of server function A; pre-processing 2 is registered as the pre-processing of server function B and post-processing 1 is registered as the post-processing of server function B; and pre-processing 3 is registered as the pre-processing of server function C. In the case where such a table is registered in the server function correspondence section 103, for example, when server function A is requested by the client 10 a, the server 10 b executes pre-processing 1, sends the execution result of pre-processing 1 to the client 10 a, and then executes post-processing 2.
  • The asynchronous communication receiving section 107 receives a request message from the client 10 a to call a server function and passes the request message to the server function correspondence section 103. The server function correspondence section 103 requests the pre-processing execution section 108 to execute pre-processing. The pre-processing execution section 108 then returns the execution result of the pre-processing to the server function correspondence section 103. The server function correspondence section 103 creates a completion message based on the execution result of the pre-processing having been returned from the pre-processing execution section 108 and passes the completion message to the asynchronous communication sending section 109. The asynchronous communication sending section 109 sends the completion message to the client 10 a through a synchronous communication. After the server function correspondence section 103 has passed the completion message to the asynchronous communication sending section 109, the server function correspondence section 103 requests the post-processing execution section 110 to execute post-processing corresponding to the called server function. In response to the request from the server function correspondence section 103, the post-processing execution section 110 executes the post-processing.
  • FIG. 3 is a sequence diagram for explaining an outline of processing between the server 10 b and the client 10 a in the client-server system according to the first embodiment. With reference to FIG. 3, the outline of processing between the server 10 b and the client 10 a in the client-server system according to the first embodiment will be described below.
  • In the case where the client command section 104 of the client 10 a makes a request to call a server function, the communication control section 112 sends a request message to the server 10 b though asynchronous communication to call the server function.
  • The server 10 b having received the request message executes only pre-processing corresponding to the requested server function. Upon completion of the pre-processing, the server 10 b sends a completion message to the client 10 a to notify the client 10 a of the execution result of the pre-processing. Thereafter, the server 10 b executes post-processing.
  • When the communication control section 112 of the client 10 a receives the completion message from the server 10 b, the communication control section 112 notifies the client command section 104 that the server function call has been completed. In this manner, the client command section 104 can receive the execution result of the pre-processing.
  • FIG. 4 is a flowchart showing the details of the whole operation of the client-server system according to the first embodiment of the present invention. With reference to FIG. 4, the details of the whole operation of the client-server system according to the first embodiment will be described below. In FIG. 4, steps S201 to S203 are operations performed by the server 10 b. Steps S204 and S205 are operations performed by the client 10 a. Steps S206 to S210 are operations performed by the server 10 b. Steps S211 and S212 are operations performed by the client 10 a.
  • First, the pre-processing registration section 101 of the server 10 b receives a request from the server command section 100 to register pre-processing and performs a registration process (step S201). Subsequently, the post-processing registration section 102 receives a request from the server command section 100 to register post-processing and performs a registration process (step S202). Note that although in the present embodiment the registration requests at steps S201 and S202 are made by the server command section 100, the registration processes may be performed such that the server 10 b receives registration requests from the client command section 104 of the client 10 a and the registration requests are sent to the pre-processing registration section 101 and the post-processing registration section 102, respectively. Steps S201 and S202 may be performed when the server receives an instruction from a server operator, or when the server receives an instruction from a client connected thereto, or when the server receives an instruction from an application being executed on the server 10 b.
  • Subsequently, the server function correspondence section 103 stores the registered pre- and post-processing so as to correspond to server function identifiers (step S203). Note that although in the present embodiment the server function correspondence section 103 establishes correspondence between the pre- and post-processing and the server function identifiers at a time after registering the pre- and post-processing, the correspondence may be established each time a registration process is performed at steps S201 and S202.
  • In the case where a request is made by the client command section 104 of the client 10 a to call a specific server function, the synchronous communication section 105 receives the call request through synchronous communication (step S204). The server function call request includes information required to call the server function and address information required to establish synchronous communication by asynchronous communication, such as the server function identifier of the requested server function, source information, destination information, data required at the time of execution of pre-processing, and data required at the time of execution of post-processing.
  • Subsequently, the synchronous communication section 105 having received the server function call request allows the asynchronous communication sending section 106 to send a request message to the server 10 b through asynchronous communication to call the server function (step S205).
  • The asynchronous communication receiving section 107 of the server 10 b receives the request message from the client 10 a (step S206).
  • The server function correspondence section 103 determines, with reference to a table held therein, pre-processing which corresponds to the server function identifier included in the received request message and then allows the pre-processing execution section 108 to execute the corresponding pre-processing (step S207). Note that only when data required at the time of execution of pre-processing is included in the request message received at step S206, the pre-processing execution section 108 executes the pre-processing using the data at step S207.
  • The pre-processing execution section 108 outputs the execution result of the pre-processing executed at step S207 to the server function correspondence section 103 (step S208).
  • The server function correspondence section 103 passes the execution result obtained from the pre-processing execution section 108 to the asynchronous communication sending section 109 and then allows the asynchronous communication sending section 109 to create a completion message which includes the execution result and to send the completion message to the client 10 a through asynchronous communication (step S209). The completion message includes information necessary to inform the client 10 a that the server function request has been completed, such as source information and destination information, as well as the execution result of the pre-processing. The address of the client 10 a which is the destination is determined based on the source information included in the request message.
  • After the completion message has been sent to the client 10 a at step S209, the server function correspondence section 103 determines post-processing which corresponds to the server function identifier and allows the post-processing execution section 110 to execute post-processing (step S210). Note that only when data required at the time of execution of post-processing is included in the request message received at step S206, the post-processing execution section 110 executes the post-processing using the data at step S210.
  • The asynchronous communication receiving section 111 of the client 10 a receives the completion message from the server 10 b and notifies the synchronous communication section 105 of completion (step S211).
  • The synchronous communication section 105 accordingly notifies the client command section 104 that the server function call has been completed (step S212). The completion notification includes the execution result of the pre-processing which is included in the completion message. The client command section 104 having received the notification continues desired processing.
  • As described above, in the first embodiment, the server 10 b registers processing corresponding to a server function so as to be divided into pre-processing and post-processing. In the case where a request is made by the client 10 a to execute a server function, the server 10 b executes pre-processing corresponding to the server function and sends a completion message to the client 10 a upon completion of the execution of the pre-processing. In this manner, the client 10 a can receive a completion message before all processing (i.e., pre- and post-processing) corresponding to the server function has been completed and can execute desired processing, and thus the turnaround time can be reduced compared to the case where the client 10 a receives a completion message after all processing corresponding to the server function has been completed and executes desired processing. In addition, by calling a server function only once, the client 10 a can identify the point where the minimum necessary processing corresponding to the server function is completed, and thus the client 10 a does not need to call the server function a plurality of times.
  • Note that the flowchart shown in FIG. 4 describes that the process of registering pre-processing (step S201), the process of registering post-processing (step S202), and the process of establishing correspondence (step S203) are performed sequentially with processes following the process at step S204; however, the processes at steps S201 to S203 are typically performed in advance independently of the processes following the process at step S204.
  • In the first embodiment, if step S201 where pre-processing is registered had not been performed in advance at the time of performing step S206 where the server 10 b receives a request message from the client 10 a, the server 10 b may skip step S207 where pre-processing is executed and step S208 where the execution result of the pre-processing is outputted. In the present case, a completion message which does not include the execution result of pre-processing is sent at step S209.
  • In the first embodiment, as in the case of server function C shown in FIG. 2, for example, if step S202 where post-processing is registered had not been performed in advance at the time of performing step S206 where the server 10 b receives a request message from the client 10 a, the server 10 b may skip step S208 where post-processing is executed. That is, it is not always necessary to perform both steps S201 and S202 where pre-processing and post-processing are registered, respectively.
  • (Variant of First Embodiment)
  • The foregoing first embodiment does not specifically describe the operation performed after the post-processing execution section 110 has completed the execution of post-processing. On the other hand, in a variant of the first embodiment, the server 10 b may notify the client 10 a of the execution result of post-processing.
  • FIG. 5 is a flowchart showing the details of the whole operation of a client-server system capable of obtaining the execution result of post-processing. With reference to FIG. 5, the details of the whole operation of a client-server system capable of obtaining the execution result of post-processing will be described below. Note that in FIG. 5 the steps indicating the same operations as those of the client-server system shown in FIG. 4 are designated by the same step numbers, and the description thereof will be omitted. In FIG. 5, steps S401 and S402 are operations performed by the server 10 b. Specifically, the server 10 b performs step S210 and then steps S401 and S402. Steps S403 and S404 are operations performed by the client 10 a.
  • The post-processing execution section 110 of the server 10 b having executed post-processing at step S210 outputs the execution result of the post-processing to the server function correspondence section 103 (step S401).
  • The server function correspondence section 103 then passes the execution result of the post-processing to the asynchronous communication sending section 109 and allows the asynchronous communication sending section 109 to create a post-processing result message which includes the execution result and then to send the post-processing result message to the client 10 a through asynchronous communication (step S402). The post-processing result message includes information necessary to inform the client 10 a that the server has completed all processing corresponding to the server function call, such as source information and destination information, as well as the execution result of the post-processing. The address of the client 10 a which is the destination is determined based on the source information included in the request message.
  • Subsequently, the asynchronous communication receiving section 111 of the client 10 a receives the post-processing result message from the server 10 b (step S403).
  • The synchronous communication section 105 notifies the client command section 104 of the execution result of the post-processing which is included in the received post-processing result message, thereby notifying that the server has completed all processing corresponding to the server function call (step S404). The client command section 104 accordingly continues desired processing based on the execution result of the post-processing.
  • In this manner, the client can obtain the execution result of post-processing, whereby the client is informed that the server has completed all processing corresponding to the server function call.
  • (Second Embodiment)
  • A second embodiment of the present invention has a function in addition to the function described in the first embodiment that the client can process not only a completion message but also a cancel message indicating that the server function call has been canceled. The client having received a cancel message cancels the server function call. With reference to the drawings, the second embodiment will be described below.
  • FIG. 6 is a block diagram showing an exemplary configuration of the entire client-server system according to the second embodiment of the present invention. Note that in FIG. 6 the same components having the same functions as those shown in FIG. 1 are designated by the same reference numerals, and the description thereof will be omitted.
  • In FIG. 6, a client 10 c according to the second embodiment includes a client command section 104 c and a communication control section 502. The communication control section 502 has a synchronous communication section 105 c, an asynchronous communication sending section 106, an asynchronous communication receiving section 111 c, and a cancel condition registration section 501.
  • The cancel condition registration section 501 registers a condition used to determine whether to cancel the server function call based on information included in a cancel message.
  • FIG. 7 is a flowchart showing the whole operation of the client-server system according to the second embodiment. With reference to FIG. 7, the operation where the client clears a state of waiting for a complete message will be described below. Note that in FIG. 7 the same operations as those shown in FIG. 4 are designated by the same step numbers, and the description thereof will be omitted.
  • The client command section 104 c pre-registers in the cancel condition registration section 501 a condition used to determine, when the client 10 c receives a cancel message, whether to cancel the server function call based on the cancel message (step S601). The operation of step S601 can be performed anytime before or after any of steps S201, S202, S203, and S204 or can be performed in advance totally independently of these operations.
  • At step S602, the asynchronous communication sending section 111 c of the client 10 c receives a completion message from the server 10 b or a cancel message. Note that the message the asynchronous communication receiving section 111 c receives at S602 is any of a completion message sent from the server 10 b at step S209, a cancel message sent from the client command section 104 c, and a cancel message sent from another client 50 a.
  • Subsequently, the asynchronous communication receiving section 111 c determines whether the message received at step S602 is a cancel message or a completion message (step S603). If it is determined to be a completion message, the client 10 c proceeds to the operation of step S212.
  • On the other hand if it is determined to be a cancel message, the asynchronous communication receiving section 111 c determines whether to cancel the server function call based on the determination condition registered at step S601 in the cancel condition registration section 501 (step S604).
  • If it is determined at step S604 to cancel the server function call, the asynchronous communication receiving section 111 c notifies the synchronous communication section 105 c that the server function call has been canceled. The synchronous communication section 105 c accordingly notifies the client command section 104 c that the server function call has been cancelled (step S605). Upon reception of notification, the client command section 104 c clears its synchronization return wait state. On the other hand, if it is determined at step S604 not to cancel the server function call, the asynchronous communication receiving section 111 c returns to the operation of step S602 and resumes receiving a message.
  • As described above, according to the second embodiment, the communication control section 502 of the client 10 c can receive a cancel message as well as a completion message. The communication control section 502 can register therein a condition used to determine, when receiving a cancel message, whether to cancel the server function call. In the case where the communication control section 502 receives a cancel message, the communication control section 502 determines whether to cancel the server function call process based on the above-described condition. If it is determined to cancel the server function call, the server function call made by the client is cancelled in the middle of the process, whereby the turnaround time can be reduced.
  • If the client 10 c receives a completion message from the server 10 b after the server function call has been cancelled, the client 10 c may discard the completion message.
  • (First Variant of Second Embodiment)
  • The asynchronous communication sending section 106 of the client 10 c which has cancelled the server function call in response to the reception of a cancel message may send to the server 10 b not only a request message but also a client-to-server cancel message indicating that the server function call has been cancelled. In this case, the asynchronous communication receiving section 107 of the server 10 b may receive not only a request message but also a client-to-server cancel message as the message to be sent from the asynchronous communication sending section 106. In the case where the asynchronous communication receiving section 107 receives a client-to-server cancel message, the server 10 b suspends or completes the execution of the server function, and does not send a response to the server function call to the client 10 c. This operation will be described in detail in FIG. 8.
  • FIG. 8 is a flowchart showing the whole operation of a client-server system in the case where the client notifies the server that the server function call has been cancelled. With reference to FIG. 8, the whole operation of a client-server system in the case where the client has cancelled the server function call will be described below. Note that in FIG. 8 the steps indicating the same operations as those of FIG. 7 are designated by the same step numbers, and the description thereof will be omitted.
  • If it is determined at step S604 to cancel the server function call, the asynchronous communication receiving section 111 c notifies the synchronous communication section 105 c that the server function call has been cancelled (step S605). The synchronous communication section 105 c accordingly allows the asynchronous communication sending section 106 to send a client-to-server cancel message to the server 10 b (step S701).
  • After the execution result of pre-processing has been outputted (step S208), the server 10 b determines whether the server 10 b has received a client-to-server cancel message from the client 10 c (step S702). If it is determined at step S702 that the server 10 b has not received a client-to-server cancel message, the server 10 b proceeds to the operation of step S209. On the other hand, if it is determined that the server 10 b has received a client-to-server cancel message, the server 10 b proceeds to the operation of step S206 where the server 10 b receives another request message from the client 10 c, without performing the operations of steps S209 and S210, and suspends or completes the execution of the server function.
  • According to the above method, in the case where a client-to-server cancel message is sent to the server 10 b from the client 10 c, the server 10 b does need to send a response to the server function call to the client 10 c. That is, after executing the pre-processing, the server 10 b does not notify the client 10 c of the execution result of the pre-processing. In addition, even if post-processing is registered at step S202, the server 10 b does not need to execute the post-processing which has become unnecessary.
  • (Second Variant of Second Embodiment)
  • In the foregoing first variant, in the case where the client 10 c receives a cancel message, the asynchronous communication sending section 106 of the client 10 c cancels the server function call and then sends a client-to-server cancel message to the server 10 c. In this case, the asynchronous communication sending section 106 having sent the client-to-server cancel message may send a resume message to resume the execution of the suspended server function. Here, the asynchronous communication receiving section 107 of the server 10 b can receive not only a request message and a client-to-server cancel message but also a resume message. When the server 10 b receives a resume message from the client 10 c to resume the execution of the suspended server function, the server 10 b executes post-processing which has not been executed in response to the reception of the client-to-server cancel message, whereby the execution of the suspended server function can be resumed. The operation will be described in detail in FIG. 9.
  • FIG. 9 is a flowchart showing the whole operation of a client-server system in the case where the client sends a resume message to the server. With reference to FIG. 9, the operation of a client-server system in the case where the client sends a resume message to the server will be described below. In FIG. 9, the steps indicating the same operations as those of FIG. 8 are designated by the same step numbers, and the description thereof will be omitted.
  • After the client 10 c has sent a client-to-server message to the server 10 b at step S701, the client command section 104 c determines whether to send a resume message to the server 10 b to resume the execution of a suspended server function (step S801). If it is determined to send a resume message, the client command section 104 c allows the synchronous communication section 105 c and the asynchronous communication sending section 106 to send a resume message to the server 10 b (step S802). Note that the operation of step S801 can be performed anytime after the operation of step S701.
  • After step S205, the server 10 b receives either a request message or a resume message from the client 10 c (step S803).
  • The server 10 b then determines whether the message received at step S803 is a request message or a resume message (step S804). If it is determined that the message is a request message, the server 10 b proceeds to the operation of step S207. On the other hand, if it is determined that the message is a resume message, the server 10 b proceeds to the operation of step S210 and executes post-processing.
  • According to the above method, in the case where the server 10 b receives a resume message from the client 10 c after receiving a client-to-server cancel message, the server 10 b executes post-processing which has not been executed because of the cancellation of the server function call. By this, the execution of the suspended server function can be resumed.
  • Now, examples of the present invention will be described using concrete examples as to a server function, pre-processing, and post-processing.
  • (First Example)
  • A first example of the present invention describes a client-server system in the case where an image decode server is used as the server.
  • Conventionally, in the case where a client requests the server to perform an image decoding process as a server function, the server performs an image decoding process and then sends a decoded image to the client, and then the server resumes control. This processing flow, however, causes a delay in displaying a layout on the client. To overcome this problem, an image decode server according to the first example of the present invention registers, among image decoding processes, the processing for obtaining the size of an image as pre-processing and registers the processing for decoding the image as post-processing. By this, the problem of the delay in displaying a layout can be overcome. In the pre-processing in the present example, information about the size of a requested image is obtained as the minimum necessary information for the client.
  • FIG. 10 is a sequence diagram schematically showing the flow of processing in a client-server system according to the first example. As shown in FIG. 10, when the client selects a URL (step S1), the client sends image data displayed in the URL to an image decode server and requests, as a server function, the image decode server to decode the image (step S2).
  • In response to the request, the image decode server obtains, as pre-processing, the size of the requested image (step S3) and notifies the client of the size of the image as the execution result of the pre-processing (step S4).
  • The client waits for layout information which includes the size of the requested image (step S5). When the client receives a notification of the size of the image, the client arranges an image region where the image is embedded based on the size of the image and then displays a layout (step S6).
  • After the pre-processing, the image decode server decodes the image as post-processing (step S7). Upon completion of the post-processing, the image decode server sends the decoded image to the client as the execution result of the post-processing (step S8).
  • The client accordingly displays the image having been sent thereto in the image region (step S9).
  • As described above, in the first example, in pre-processing, the server obtains in advance information only about the size of an image which is the minimum necessity for the client to display a layout, and then sends the size information to the client. Thereafter, the server decodes the image as post-processing and then sends the decoded image to the client. In this manner, the client can start the layout process without the need to wait for the server to complete the decode processing.
  • (Second Example)
  • A second example of the present invention describes a client-server system in the case where a Kana-Kanji conversion server is used as the server.
  • Conventionally, in the case where the server attempts to perform the process of obtaining predictive data at the point when the client specifies Kanji candidates, the obtaining process requires some time and therefore it takes time for the client to display the predictive data. On the other hand, in order to improve the response time to display predictive data, if the client attempts to obtain predictive data at the same time as the client requests the server to obtain candidates, it takes time for the client to display the candidates. To overcome the problems, a Kana-Kanji conversion server according to the second example of the present invention registers, among Kana-Kanji conversion processing, the processing for extracting candidates as pre-processing and registers the processing for obtaining predictive data as post-processing. In the pre-processing in the present example, information about Kana-Kanji conversion candidates is obtained as the minimum necessary information for the client.
  • FIG. 11 is a sequence diagram schematically showing the flow of processing in a client-server system according to the second example. As shown in FIG. 11, when the client inputs Kana (step S11), the client requests the Kana-Kanji conversion server to obtain conversion candidates (step S12).
  • In response to the request, the Kana-Kanji conversion server extracts, as pre-processing, conversion candidates corresponding to the sent Kana (step S13), and then sends the conversion candidates to the client as the execution result of the pre-processing (step S14).
  • The client waits to perform processing until the client is notified of the conversion candidates by the Kana-Kanji conversion server (step S15). When the client is notified of the conversion candidates, the client displays the conversion candidates (step S16). Subsequently, the client select one candidate from the conversion candidates and notifies the server of the determined result (step S17). Here, it is assumed that “
    Figure US20050033799A1-20050210-P00900
    ” is selected.
  • After the pre-processing, the Kana-Kanji conversion server organizes, as post-processing, predictive data corresponding to the conversion candidates (step S18). For example, the Kana-Kanji conversion server organizes predictive data such that if “
    Figure US20050033799A1-20050210-P00901
    ” is selected, “
    Figure US20050033799A1-20050210-P00902
    ” is extracted as predictive data, and if “
    Figure US20050033799A1-20050210-P00900
    ” is selected, “
    Figure US20050033799A1-20050210-P00903
    ” and “
    Figure US20050033799A1-20050210-P00904
    ” are extracted as predictive data. Since in the present example, “
    Figure US20050033799A1-20050210-P00900
    ” has been selected, the Kana-Kanji conversion server notifies the client of predictive data corresponding to “
    Figure US20050033799A1-20050210-P00900
    ” as the result of the post-processing (step S19).
  • The client accordingly displays the notified predictive data (step S20).
  • As described above, in the second example, the processing for extracting conversion candidates is registered as pre-processing and the processing for organizing predictive data is registered as post-processing. At the time when the processing for extracting conversion candidates has been completed, the server allows the client to resume control. In this manner, since the display of conversion candidates by the client and the organization of predictive data by the server are performed concurrently, the response time to display predictive data at the time of specifying a Kanji candidate can be reduced.
  • (Third Example)
  • A third example of the present invention describes a client-server system in the case where a video playback application server is used as the server.
  • In the third example, the “active state” indicates that an application is being currently operated by a user and the “inactive state” indicates that an application is not being currently operated by the user. An application used in the third example may be a resident application or may be a non-resident application. Here, the resident application refers to an application which, after receiving an inactive request, goes into an inactive state while operating. The non-resident application refers to an application which is completely stopped upon reception of an inactive request. In the following description, each application is a resident application.
  • In mobile terminals such as mobile phones, when a telephone application receives a phone call request, the telephone application plays the ring tone to inform the user that there is an incoming call. A video playback application server reproduces a moving image with sound. Since mobile terminals can not normally output two or more sounds at the same time, a contention arbitration application determines contention between applications (e.g., the telephone application and the video playback application server) and allows each application to transition from its active state to its inactive state. Conventionally, in the case where there is an incoming call when the video playback application server is in an active state, the telephone application requests the contention arbitration application to bring the telephone application to an active state. The contention arbitration application then requests the video playback application server to go into an inactive state. In response to the inactive request, the video playback application server stops video playback with sound, stores intermediate information, and then notifies the contention arbitration application that the video playback application has gone into an inactive state. The contention arbitration application accordingly notifies the telephone application that the telephone application is permitted to go into an active state. The telephone application then starts playing the ringtone. In the conventional method, as described above, the telephone application has to wait to start playing the ringtone until the video playback application stores intermediate information, resulting in a long turnaround period.
  • To overcome the problem, upon reception of an inactive request, a video playback application according to the third example of the present invention registers, among processing for bringing the video playback application to an inactive state, the processing for stopping video playback with sound as pre-processing and registers the processing for storing intermediate information about the video playback application as a file as post-processing.
  • FIG. 12 is a sequence diagram schematically showing the flow of processing in a client-server system according to the third example. As shown in FIG. 12, when a telephone application is in an inactive state (step S21), the telephone application has received an incoming call notification (step S22). The telephone application accordingly requests through synchronous communication a contention arbitration application to determine whether the telephone application is permitted to go into an active state (step S23), and thereby going into a synchronization return wait state (step S35).
  • The contention arbitration application being in an event wait state (step S24) accordingly requests through synchronous communication a video playback application server to go into an inactive state (step S25), and thereby going into a synchronization return wait state (step S31).
  • As pre-processing, the video playback application server being in an active state (step S26) stops video playback with sound being performed (step S27), and thereby going into an inactive state (step S28). The video playback application sever then sends an OK notification to the contention arbitration application that the video playback application server has gone into an inactive state (step S29). Thereafter, as post-processing, the video playback application server stores intermediate information about the video playback application as a file (step S30). The intermediate information includes information about the stopping point, the display position of a moving image, color adjustment, etc. By storing such intermediate information as a file, the video playback application server can resume the video playback.
  • When the contention arbitration application being in a synchronization return wait state (step S31) receives the OK notification from the video playback application server, the contention arbitration application clears its synchronization return wait state (step S32), and sends an OK notification to the telephone application that the telephone application is permitted to go into an active state (step S33), and thereby going into an event wait state (step S34).
  • In response to the OK notification from the contention arbitration server, the telephone application transitions from the synchronization return wait state (step S35) to an active state (step S36), and then starts playing the ringtone thereof (step S37). In this manner, contention between sounds can be avoided.
  • As described above, in the third example, the minimum necessary processing for avoiding contention between sounds is registered as pre-processing and the processing for preparing for video playback again is registered as post-processing, whereby the turnaround period in the telephone application and the contention arbitration application can be reduced.
  • As described above, the method, server, and client used in a client-server system according to the present invention make it possible to reduce the turnaround time from when the client makes a server function request through synchronous communication until the client receives a notification of completion of the server function, and thus are useful for apparatuses or systems with poor hardware performance, such as mobile phones and PDAs.
  • While the invention has been described in detail, the foregoing description is in all aspects illustrative and not restrictive. It is understood that numerous other modifications and variations can be devised without departing from the scope of the invention.

Claims (10)

1. A method used in a client-server distributed system in which a client makes a desired server function call to a server and the server executes processing corresponding to the called server function, the method comprising the steps of:
registering pre-processing which is a part of the processing corresponding to the server function and which is processing up to the point where the minimum information necessary for the client is obtained;
registering post-processing which is a part of the processing corresponding to the server function and which is processing to be executed after the pre-processing; and
establishing correspondence between the registered pre-processing and the registered post-processing with a server function identifier indicating the server function.
2. The method according to claim 1 further comprising the steps of:
sending by the client a request message to the server to call a desired server function, the request message including a server function identifier which indicates the desired server function;
receiving by the server the request message from the client;
executing by the server pre-processing corresponding to the server function identifier included in the request message;
obtaining by the server an execution result of the pre-processing;
sending by the server a completion message to the client, the completion message including the execution result of the pre-processing;
after the completion message has been sent, executing by the server post-processing corresponding to the server function identifier included in the request message; and
executing, by the client, processing based on the execution result of the pre-processing.
3. The method according to claim 2 further comprising the steps of:
obtaining by the server an execution result of the post-processing;
sending by the server a post-processing result message to the client, the post-processing result message including the execution result of the post-processing; and
executing, by the client, processing based on the execution result of the post-processing.
4. The method according to claim 2 further comprising the steps of:
if a cancel instruction to cancel the server function call is received, pre-registering by the client a condition used to determine whether to cancel the server function call based on the cancel instruction;
if the cancel instruction is received, determining by the client whether to cancel the server function call based on the cancel instruction; and
if it is determined to cancel the server function call, canceling by the client the server function call.
5. A server for executing a server function to be called by a client, comprising:
a pre-processing registration section for registering pre-processing which is a part of processing corresponding to the server function and which is processing up to the point where the minimum information necessary for the client is obtained;
a post-processing registration section for registering post-processing which is a part of the processing corresponding to the server function and which is processing to be executed after the pre-processing; and
a server function correspondence section for establishing correspondence between the registered pre-processing and the registered post-processing with a server function identifier indicating the server function.
6. The server according to claim 5 further comprising:
a receiving section for receiving from the client a request message which includes a server function identifier indicating a server function called by the client;
a pre-processing execution section for executing pre-processing corresponding to the server function identifier included in the request message and outputting an execution result of the pre-processing;
a sending section for sending to the client a completion message which includes the execution result of the pre-processing having been outputted by the pre-processing execution section; and
a post-processing execution section for executing, after the sending section has sent the completion message, post-processing corresponding to the server function identifier included in the request message.
7. The server according to claim 6, wherein the post-processing execution section outputs an execution result of the post-processing, and the sending section sends to the client a post-processing result message which includes the execution result of the post-processing having been outputted by the post-processing execution section.
8. A client for making a desired server function call to a server, comprising:
a sending section for sending a request message to the server to call a desired server function, the request message including a server function identifier which indicates the desired server function;
a receiving section for receiving from the server a completion message which includes an execution result of pre-processing corresponding to the server function identifier included in the request message, the pre-processing being performed by the server; and
a control section for executing processing based on the execution result of the pre-processing having been received by the receiving section,
wherein the server function identifier has a correspondence with the pre-processing and post-processing, the pre-processing being a part of processing corresponding to the server function and being processing up to the point where the minimum information necessary for the client is obtained, and the post-processing being a part of the processing corresponding to the server function and being processing to be executed after the pre-processing.
9. The client according to claim 8, wherein
the server sends to the client a post-processing result message which includes an execution result of the post-processing,
the receiving section receives the post-processing result message having been sent from the server, and
the control section executes processing based on the execution result of the post-processing included in the post-processing result message.
10. The client according to claim 9 further comprising:
a cancel condition registration section for pre-registering, if a cancel instruction to cancel the server function call is received, a condition used to determine whether to cancel the server function call based on the cancel instruction, wherein
if the cancel instruction is received, the control section determines whether to cancel the server function call based on the condition registered in the cancel condition registration section, and if it is determined to cancel the server function call, the control section cancels the server function call.
US10/910,322 2003-08-06 2004-08-04 Method, server, and client used in client-server distributed system Expired - Lifetime US7017163B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-288093 2003-08-06
JP2003288093 2003-08-06

Publications (2)

Publication Number Publication Date
US20050033799A1 true US20050033799A1 (en) 2005-02-10
US7017163B2 US7017163B2 (en) 2006-03-21

Family

ID=34114036

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/910,322 Expired - Lifetime US7017163B2 (en) 2003-08-06 2004-08-04 Method, server, and client used in client-server distributed system

Country Status (5)

Country Link
US (1) US7017163B2 (en)
EP (2) EP2045744A1 (en)
JP (1) JP4728442B2 (en)
KR (1) KR101076115B1 (en)
CN (1) CN100367266C (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070121939A1 (en) * 2004-01-13 2007-05-31 Interdigital Technology Corporation Watermarks for wireless communications
US20080301261A1 (en) * 2007-05-30 2008-12-04 Fuji Xerox Co., Ltd. Data file edit system, storage medium, process server, and user client
CN102024048A (en) * 2010-12-15 2011-04-20 中兴通讯股份有限公司 Implementation method of mobile terminal and browser thereof
US20110161673A1 (en) * 2005-01-12 2011-06-30 Interdigital Technology Corporation Method and apparatus for enhancing security of wireless communications
US8504539B2 (en) 2009-04-14 2013-08-06 Lg Electronics Inc. Method of XML document management to selectively cancel specific past operation and system using the same
US8638923B1 (en) * 2007-02-16 2014-01-28 Sprint Spectrum L.P. Dynamic registration for call-pickup group membership, and selective rerouting of calls
US9367214B2 (en) 2008-06-05 2016-06-14 Qualcomm Incorporated Wireless communication device having deterministic control of foreground access of the user interface
US20160306782A1 (en) * 2015-04-20 2016-10-20 Infraware Inc. Method and apparatus for sharing common documents using dualized server
US11500672B2 (en) * 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004605A (en) * 2005-06-24 2007-01-11 Brother Ind Ltd Communication system, client, server, and program
US7606937B2 (en) * 2005-12-02 2009-10-20 Microsoft Corporation Next site for distributed service connections
WO2007088582A1 (en) * 2006-01-31 2007-08-09 Fujitsu Limited Asynchronous remote procedure calling method in shared-memory multiprocessor, asynchronous remote procedure calling program, and recording medium
US8250195B2 (en) * 2008-09-10 2012-08-21 Microsoft Corporation Leveraging synchronous communication protocols to enable asynchronous application and line-of-business behaviors
US7904508B2 (en) * 2008-10-24 2011-03-08 Microsoft Corporation Providing functionality to client services by implementing and binding contracts
CN101572710B (en) * 2009-06-03 2012-06-27 杭州华三通信技术有限公司 Interprocess communication method and system
CN101968815B (en) * 2010-10-29 2012-07-25 西本新干线电子商务有限公司 Processing method of concurrent requests
CN101976257A (en) * 2010-10-29 2011-02-16 西本新干线股份有限公司 Concurrency control pre-processing method for data processing system
CN102035879B (en) * 2010-10-29 2013-07-10 西本新干线电子商务有限公司 Server and data processing system using same
CN101968816A (en) * 2010-10-29 2011-02-09 西本新干线股份有限公司 Data processing system and server
CN102096700A (en) * 2010-12-15 2011-06-15 中兴通讯股份有限公司 Mobile terminal and implementation method of browser of same
US8549094B2 (en) * 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating communication between isolated memory spaces of a communications environment
JP6442760B2 (en) * 2014-07-29 2018-12-26 富士通コネクテッドテクノロジーズ株式会社 Information processing apparatus, information processing method, and information processing program
CN108762895B (en) * 2018-05-17 2021-11-19 创新先进技术有限公司 Method and device for processing distributed transaction

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6661881B1 (en) * 2000-02-15 2003-12-09 Lucent Technologies Inc. Method and system for controlling functional capabilities of a telephonic switch employing control and status messages

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08166918A (en) * 1994-12-13 1996-06-25 Pfu Ltd Job information management method in server client processing system
US6311197B2 (en) * 1996-06-03 2001-10-30 Webtv Networks, Inc. Method for downloading a web page to a client for efficient display on a television screen
JP3418500B2 (en) 1996-06-12 2003-06-23 株式会社日立製作所 Function asynchronous invocation method of client-server type system
US5758087A (en) * 1996-06-14 1998-05-26 International Business Machines Corporation Apparatus and method for predicted response generation
US20010037400A1 (en) * 1998-07-22 2001-11-01 Uri Raz Method and system for decreasing the user-perceived system response time in web-based systems
US20010044850A1 (en) * 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US8291007B2 (en) * 2000-02-22 2012-10-16 Flash Networks Ltd System and method to accelerate client/server interactions using predictive requests
SE0003647D0 (en) 2000-10-09 2000-10-09 Mydata Automation Ab Method, apparatus and use
US7451205B2 (en) * 2001-10-01 2008-11-11 Hewlett-Packard Development Company, L.P. Multimedia stream pre-fetching and redistribution in servers to accommodate mobile clients
WO2003032200A1 (en) * 2001-10-09 2003-04-17 Wildblue Communications, Inc. System and method for managing an exchange between a gateway server and a client-side module

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6661881B1 (en) * 2000-02-15 2003-12-09 Lucent Technologies Inc. Method and system for controlling functional capabilities of a telephonic switch employing control and status messages

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070121939A1 (en) * 2004-01-13 2007-05-31 Interdigital Technology Corporation Watermarks for wireless communications
US20110161673A1 (en) * 2005-01-12 2011-06-30 Interdigital Technology Corporation Method and apparatus for enhancing security of wireless communications
US8638923B1 (en) * 2007-02-16 2014-01-28 Sprint Spectrum L.P. Dynamic registration for call-pickup group membership, and selective rerouting of calls
US8938057B1 (en) 2007-02-16 2015-01-20 Sprint Spectrum L.P. Dynamic registration for call-pickup group membership, and selective rerouting of calls
US20080301261A1 (en) * 2007-05-30 2008-12-04 Fuji Xerox Co., Ltd. Data file edit system, storage medium, process server, and user client
US9367214B2 (en) 2008-06-05 2016-06-14 Qualcomm Incorporated Wireless communication device having deterministic control of foreground access of the user interface
US8504539B2 (en) 2009-04-14 2013-08-06 Lg Electronics Inc. Method of XML document management to selectively cancel specific past operation and system using the same
CN102024048A (en) * 2010-12-15 2011-04-20 中兴通讯股份有限公司 Implementation method of mobile terminal and browser thereof
US9172741B2 (en) 2010-12-15 2015-10-27 Zte Corporation Mobile terminal and method for implementing browser thereof
US20160306782A1 (en) * 2015-04-20 2016-10-20 Infraware Inc. Method and apparatus for sharing common documents using dualized server
US11500672B2 (en) * 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant

Also Published As

Publication number Publication date
US7017163B2 (en) 2006-03-21
KR101076115B1 (en) 2011-10-21
CN1581142A (en) 2005-02-16
CN100367266C (en) 2008-02-06
EP1515233A3 (en) 2007-03-14
JP4728442B2 (en) 2011-07-20
EP1515233A2 (en) 2005-03-16
KR20050016161A (en) 2005-02-21
EP2045744A1 (en) 2009-04-08
JP2011003198A (en) 2011-01-06

Similar Documents

Publication Publication Date Title
US7017163B2 (en) Method, server, and client used in client-server distributed system
US9438697B2 (en) User interface content state synchronization across devices
AU2014309155B2 (en) Seamless call transitions
US8189754B2 (en) Image sharing system
US20150049164A1 (en) Seamless call transitions with escalation-aware notifications
US20180338054A1 (en) Image reading apparatus transmitting device identification information and reading information to push notification server, and method for controlling the image reading apparatus
EP4057145A1 (en) Method for multi-core communication, electronic device and storage medium
JP2006100885A (en) Streaming data receiving and reproducing terminal
JP2018093433A (en) Communication system, image forming device and control method thereof, and program
US20100291913A1 (en) Remote control method between mobile phones
JP5133659B2 (en) Virtual terminal server, mobile communication terminal, communication control system, and communication control method
JP4727954B2 (en) Method, server, and client used in client-server distributed system
JP2010124425A (en) Information processor, method of data transfer, and communication system
JP6756779B2 (en) Information processing system, information processing system control method, and information processing system control program
JP4333998B2 (en) Streaming data reception / playback terminal
KR100674179B1 (en) Method and apparatus for caller's detailed identification display
JP2019101594A (en) Communication device, communication method, and program
JP4657647B2 (en) Mobile communication terminal
JP2000349909A (en) Virtual multi-processing system by flow definition file
JP2010009527A (en) Information processor
CN117499780A (en) Photographing method, electronic equipment and collaborative work system
JP2002236591A (en) Communication association system and recording medium with program actualizing the communication association system recorded thereon
CN116126425A (en) Adaptation method and device for VST plug-in and network live broadcast system
CN112783623A (en) Process scheduling method and device, electronic equipment and storage medium
CN114339112A (en) Video call method, electronic equipment and system

Legal Events

Date Code Title Description
AS Assignment

Owner name: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHIN, HIDEHIKO;YAMASHITA, KEN;REEL/FRAME:015659/0019

Effective date: 20040728

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PANASONIC CORPORATION;REEL/FRAME:033033/0163

Effective date: 20140527

Owner name: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AME

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PANASONIC CORPORATION;REEL/FRAME:033033/0163

Effective date: 20140527

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553)

Year of fee payment: 12