WO2013175607A1 - 通信システム、クライアント端末及びサーバ装置 - Google Patents

通信システム、クライアント端末及びサーバ装置 Download PDF

Info

Publication number
WO2013175607A1
WO2013175607A1 PCT/JP2012/063314 JP2012063314W WO2013175607A1 WO 2013175607 A1 WO2013175607 A1 WO 2013175607A1 JP 2012063314 W JP2012063314 W JP 2012063314W WO 2013175607 A1 WO2013175607 A1 WO 2013175607A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
response
pattern
execution
service
Prior art date
Application number
PCT/JP2012/063314
Other languages
English (en)
French (fr)
Inventor
淳平 羽藤
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2014516585A priority Critical patent/JP5781225B2/ja
Priority to US14/380,740 priority patent/US9680719B2/en
Priority to DE112012006414.3T priority patent/DE112012006414T5/de
Priority to CN201280072376.2A priority patent/CN104220996B/zh
Priority to PCT/JP2012/063314 priority patent/WO2013175607A1/ja
Publication of WO2013175607A1 publication Critical patent/WO2013175607A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Definitions

  • the present invention relates to a client terminal that issues a service execution request, a server apparatus that returns a processing result of a service corresponding to the execution request to the client terminal, and a communication system including the client terminal and the server apparatus.
  • a client terminal predicts a user's operation on the screen of a GUI displayed on the client terminal, and is necessary for the operation before the operation is actually performed.
  • a communication system is disclosed in which a communication process is prevented from occurring when an operation occurs by executing the cooperative process in advance.
  • the user's operation is predicted only immediately after the GUI screen is displayed. If the screen does not change with the user's operation, the prediction is not performed again. . For this reason, an application that displays the same screen for a long time cannot sufficiently reduce the number of times of network communication related to cooperation processing.
  • Patent Document 2 discloses the following communication system.
  • the server apparatus predicts a process that may be requested accompanying the execution request and performs a process corresponding to the actually issued execution request.
  • a process that may be accompanied by a request (hereinafter referred to as “prediction request”) is executed.
  • the server device returns the processing result corresponding to the actually issued execution request to the client terminal, and then sequentially returns the processing result corresponding to the prediction request to the client terminal.
  • the client terminal can use the processing result corresponding to the prediction request sent back from the server device if the prediction in the server device is correct, it sends a new execution request to the server device. This eliminates the need for the bottleneck associated with the linkage processing.
  • the server device returns the processing result corresponding to the prediction request to the client terminal, the communication processing load increases if the number of requests predicted from the actually issued execution request increases.
  • the client terminal issues the same request as the prediction request before receiving the processing result corresponding to the prediction request from the server device. There is a possibility that. If the client terminal issues the same request as the prediction request, the number of communications cannot be reduced. In the server device, it is necessary to execute a process corresponding to the same request a plurality of times.
  • JP 7-160462 A (paragraph numbers [0017] to [0019])
  • JP 2005-228228 A (paragraph numbers [0021] [0037])
  • Patent Document 1 Since the conventional communication system is configured as described above, in the case of Patent Document 1, if the screen does not change with the user's operation, the prediction is not performed again. Therefore, in an application that displays the same screen for a long time, there has been a problem that the number of network communications related to the cooperation processing cannot be sufficiently reduced. Further, in the case of Patent Document 2, when the number of requests predicted from the actually issued execution request increases, there is a problem that the communication load of the processing result corresponding to the prediction request increases. In addition, since it is unknown at the client terminal what kind of request the server device is predicting, the client terminal issues the same request as the prediction request before receiving the processing result corresponding to the prediction request from the server device. If the client terminal issues the same request as the prediction request, there is a problem that the number of communications cannot be reduced.
  • the present invention has been made to solve the above-described problems, and an object of the present invention is to obtain a communication system that can sufficiently reduce the number of times of network communication related to cooperation processing.
  • the client terminal stores a response storage means for storing a response returned from the server apparatus, an execution request issuing means for issuing a service execution request, and an execution request issued by the execution request issuing means. If the response corresponding to is stored in the response storage means, an output command for instructing to output the response to the execution request issuing means is output, while the response corresponding to the execution request is stored in the response storage means. If not, a request pattern generation unit that predicts a request that may be issued following the execution request and generates a request pattern including the prediction request and the execution request, and a request pattern generation unit While the request pattern is transmitted to the server device, it is transmitted from the server device corresponding to the execution request and the prediction request constituting the request pattern.
  • a response corresponding to the execution request stored in the response storage means is output to the execution request issuing means, and the execution request and
  • a response processing unit that stores the execution request and the response corresponding to the prediction request in the response storage unit and outputs a response corresponding to the execution request to the execution request issuing unit; It is made up of.
  • a response corresponding to the execution request issued by the execution request issuing means is stored in the response storage means, an output command for instructing to output the response to the execution request issuing means is output.
  • a response corresponding to the execution request is not stored in the response storage means, a request that may be issued following the execution request is predicted, and a request pattern including the prediction request and the execution request is determined.
  • a request pattern generating means for generating, and a request pattern generated by the request pattern generating means is transmitted to the server device, while a response transmitted from the server device corresponding to the execution request and the prediction request constituting the request pattern is sent
  • the response corresponding to the execution request and the prediction request is received by the communication unit, the response corresponding to the execution request and the prediction request is stored in the response storage unit.
  • FIG. 5 is a sequence diagram showing a processing sequence of a service providing module 22 in a service node 2. It is explanatory drawing which shows the data structure of a request pattern. It is explanatory drawing which shows the data structure of an actual request information list. It is explanatory drawing which shows the data structure of a subsequent request
  • FIG. 28 is a sequence diagram illustrating a request example associated with the screen of FIG. 27. It is explanatory drawing which shows the example of a data structure of the request
  • FIG. 1 is a block diagram showing a communication system according to Embodiment 1 of the present invention.
  • a GUI node 1 that is a client terminal is a node that implements a GUI and performs GUI control of the system. That is, the GUI node 1 is a node that realizes a service as a system in cooperation with the service node 2 via the network 3. Specifically, the GUI node 1 issues a service execution request to the service node 2 via the network 3. Then, a response that is a processing result of the service corresponding to the execution request is acquired from the service node 2 via the network 3.
  • the service node 2 that is a server device is a node that performs logic processing of a service realized as a system. Specifically, the service node 2 executes a service corresponding to the execution request issued by the client terminal 1 and processes the service. Is generated, and the response is returned to the client terminal 1 via the network 3.
  • the GUI node 1 includes a GUI processing module 11 that performs overall control related to the GUI, a display 12 that displays the GUI, an input interface 13 that receives input of various information to be reflected in the GUI processing, and an audio output device including a speaker, for example
  • the output interface 14 is connected.
  • the display 12, the input interface 13, and the output interface 14 do not have to exist in the GUI node 1, and may be distributed and arranged on other nodes connected to the network 3 as necessary. Absent. In that case, the GUI node 1 operates in cooperation with another node via the network 3.
  • GUI node 1 since it is assumed that the GUI node 1 is configured by a computer, a program indicating processing contents of a GUI processing module 11 (to be described later) is stored in the memory of the computer in advance. It is assumed that the GUI processing module 11 is constructed by the CPU of the computer executing a program stored in the memory. Although the internal configuration of the GUI processing module 11 will be described later, each component of the GUI processing module 11 is configured by dedicated hardware (for example, a semiconductor integrated circuit on which a CPU is mounted or a one-chip microcomputer). You may do it.
  • dedicated hardware for example, a semiconductor integrated circuit on which a CPU is mounted or a one-chip microcomputer. You may do it.
  • the service node 2 executes services corresponding to various execution requests, performs service-to-network communication with the service modules 21a, 21b, and 21c that generate a response that is a processing result of the service, and the GUI node 1, and the GUI node 1
  • the service providing module 22 performs processing for returning a response corresponding to the execution request transmitted from the GUI node 1 to the GUI node 1.
  • FIG. 1 shows an example in which the service node 2 is mounted with three service modules 21a, 21b, and 21c. However, the number of service modules mounted is not limited to three. That's all.
  • the service node 2 since it is assumed that the service node 2 is configured by a computer, a program indicating the processing contents of the service providing module 22 and the service modules 21a, 21b, and 21c to be described later is preliminarily stored in the computer.
  • the service providing module 22 and the service modules 21a, 21b, and 21c are constructed by the CPU of the computer executing the program stored in the memory.
  • each component of the service providing module 22 is configured by dedicated hardware (for example, a semiconductor integrated circuit on which a CPU is mounted or a one-chip microcomputer). You may do it.
  • Each of the service modules 21a, 21b, and 21c has one or more APIs (Application Program Interfaces) for calling functions defined in the service specifications. Which API is executed at which timing (1) There are two cases: according to the internal control logic of the service node 2 and (2) determined according to the API execution request transmitted from the GUI node 1. In the case of (1), the API of each service module is executed, but in the case of (2), the service providing module 22 that has received the API execution request transmitted from the GUI node 1 executes it. Since the present invention relates to the case of (2), the case of (1) is not mentioned in the specification.
  • FIG. 2 is a block diagram showing the GUI processing module 11 of the GUI node 1 applied to the communication system according to Embodiment 1 of the present invention.
  • the response storage device 31 is composed of a recording medium such as a RAM or a hard disk, and executes a process of storing a response returned from the service node 2 via the network 3.
  • the response storage device 31 constitutes response storage means.
  • the GUI processing device 32 is composed of, for example, a semiconductor integrated circuit on which a CPU is mounted or a one-chip microcomputer, and issues an API execution request (service execution request) and a response corresponding to the API execution request. And processing for displaying the response on the display 12 is performed.
  • an example is shown in which a response corresponding to the API execution request is displayed on the display 12, but the response may be output by voice.
  • the response is converted into audio data, the audio data is output to the output interface 14, and various devices connected to the output interface 14 interpret the audio data and output the audio from a speaker or the like. What is necessary is just to make it output.
  • the GUI processing device 32 constitutes an execution request issuing unit.
  • the batch request processing device 33 is composed of, for example, a semiconductor integrated circuit mounted with a CPU or a one-chip microcomputer, and a response corresponding to the API execution request issued by the GUI processing device 32 is sent to the response storage device 31. If it is stored, an output command for instructing to output the response to the GUI processing device 32 is output to the response processing device 36, while a response corresponding to the API execution request must be stored in the response storage device 31.
  • a request pattern that is likely to be issued following the API execution request (hereinafter referred to as “prediction request”) is predicted, and a request pattern including the API execution request and the prediction request is generated by request pattern management.
  • the device 34 is instructed to execute a process of outputting the request pattern generated by the request pattern management device 34 to the communication device 35.
  • the request pattern management device 34 is composed of, for example, a semiconductor integrated circuit on which a CPU is mounted or a one-chip microcomputer.
  • the request pattern management device 34 dynamically analyzes a time series pattern of an API execution request and obtains a result of the request time series analysis.
  • a management function is provided, and a request that may be issued following the API execution request output from the batch request processing device 33 is predicted with reference to the request time series analysis result, and the API execution request And a process for generating a request pattern composed of the prediction request.
  • the collective request processing device 33 and the request pattern management device 34 constitute request pattern generating means.
  • the communication device 35 is an interface device for the network 3 and transmits the request pattern generated by the request pattern management device 34 and output from the batch request processing device 33 to the service node 2 via the network 3. A process of receiving a response transmitted from the service node 2 corresponding to the configured API execution request and prediction request is performed.
  • the communication device 35 constitutes a communication means.
  • the response processing device 36 is composed of, for example, a semiconductor integrated circuit on which a CPU is mounted, a one-chip microcomputer, or the like. A process of outputting a response corresponding to the execution request to the GUI processing device 32 is performed.
  • the response processing device 36 stores the response corresponding to the API execution request and the prediction request received by the communication device 35 in the response storage device 31 and outputs the response corresponding to the API execution request to the GUI processing device 32. Perform the process.
  • the response processing device 36 constitutes response processing means.
  • each of the response storage device 31, the GUI processing device 32, the collective request processing device 33, the request pattern management device 34, the communication device 35, and the response processing device 36 which are components of the GUI processing module 11, is a dedicated hardware.
  • the GUI processing device 32, the batch request processing device 33, the request pattern management device 34, the communication device 35, and the response processing device 36 may be constructed by software.
  • a program describing the processing contents of the GUI processing device 32, the batch request processing device 33, the request pattern management device 34, the communication device 35, and the response processing device 36 is stored in the memory of the GUI node 1, and the GUI The CPU of the node 1 may execute the program stored in the memory.
  • FIG. 3 is a block diagram showing the service providing module 22 of the service node 2 applied to the communication system according to Embodiment 1 of the present invention.
  • a communication device 41 is an interface device for the network 3 and receives a request pattern transmitted from the GUI node 1, while sending a response corresponding to an API execution request and a prediction request constituting the request pattern to the network. A process of sending replies collectively to the GUI node 1 via the route 3 is performed.
  • the communication device 41 constitutes a request pattern reception unit and a response transmission unit.
  • the collective request interpreting device 42 is composed of, for example, a semiconductor integrated circuit on which a CPU is mounted, a one-chip microcomputer, or the like, and executes an API execution request and a prediction request constituting a request pattern received by the communication device 41. While decomposing and outputting each request to the request processing device 43, a response corresponding to each request output from the request processing device 43 is output to the collective response generation device 45 and generated by the collective response generation device 45. A process of outputting a collective response (a response in which responses corresponding to individual requests are collected) to the communication device 41 is performed.
  • the request processing device 43 is composed of, for example, a semiconductor integrated circuit on which a CPU is mounted or a one-chip microcomputer. For each request output from the batch request interpretation device 42, a service corresponding to the request is provided. The service module 21 to be executed is specified and the request is given to the service execution device 44 corresponding to the service module 21, while the response output from the service execution device 44 is acquired and the response is batch-request interpretation device The process which outputs to 42 is implemented. For example, if the service module 21 that executes the service corresponding to the request is the service module 21a, the request is given to the service execution device 44a, and a response corresponding to the request is sent from the service execution device 44a to the collective request interpretation device. Output to 42.
  • the service execution device 44a is composed of, for example, a semiconductor integrated circuit mounted with a CPU or a one-chip microcomputer, and responds to the request by giving the request output from the request processing device 43 to the service module 21a.
  • the service is executed, a response that is a service processing result is acquired from the service module 21a, and the response is output to the request processing device 43.
  • the service execution device 44b is composed of, for example, a semiconductor integrated circuit on which a CPU is mounted or a one-chip microcomputer.
  • the service is executed, a response that is a service processing result is acquired from the service module 21b, and the response is output to the request processing device 43.
  • the service execution device 44c is composed of, for example, a semiconductor integrated circuit on which a CPU is mounted, a one-chip microcomputer, or the like.
  • the service is executed, a response that is a service processing result is acquired from the service module 21c, and the response is output to the request processing device 43.
  • the service modules 21a, 21b, and 21c and the service execution devices 44a, 44b, and 44c constitute response generation means.
  • the collective response generation device 45 is composed of, for example, a semiconductor integrated circuit mounted with a CPU or a one-chip microcomputer. When a response corresponding to each request is received from the request processing device 43, the response is stored as a response. A process of generating a collective response by collecting the responses corresponding to all the requests that are temporarily stored in the device 46 and constituting the request pattern is performed.
  • the response storage device 46 is composed of a recording medium such as a RAM or a hard disk, and temporarily stores the response.
  • the collective request interpretation device 42, the request processing device 43, the collective response generation device 45, and the response storage device 46 constitute a response acquisition unit.
  • each of the communication device 41, the collective request interpretation device 42, the request processing device 43, the service execution devices 44a, 44b, 44c, the collective response generation device 45, and the response storage device 46, which are components of the service providing module 22, is dedicated.
  • the communication device 41, the batch request interpretation device 42, the request processing device 43, the service execution devices 44a, 44b, 44c, and the batch response generation device 45 are each constructed by software. May be.
  • a program describing the processing contents of the communication device 41, the batch request interpretation device 42, the request processing device 43, the service execution devices 44a, 44b, 44c, and the batch response generation device 45 is stored in the memory of the service node 2.
  • the program may be stored so that the CPU of the service node 2 executes the program stored in the memory.
  • An API execution request from the GUI node 1 to the service node 2 is transferred via the network 3.
  • the service node 2 receives the API execution request via the network 3, the service node 2 executes the designated API related to the service designated by the API execution request, and sends the API execution result to the GUI node 1 via the network 3 as a response. Send back.
  • the GUI node 1 and the service node 2 cooperate to provide the user with various services of the service node 2 as a whole system.
  • a service can be realized by cooperation between a GUI node and a service node.
  • the communication system which displays the surrounding map image of the present position on the display 12 is assumed.
  • a process (map display process) for displaying the map image generated by the map generation process on the display 12 is required.
  • the current position acquisition process is regarded as a service that provides information on the current position.
  • the map generation process is also regarded as a service that provides a map around the current position based on position information. That is, the current position capture process and the map generation process are the processes of the service node 2.
  • the map display process is a process of the GUI node 1 because the process result of the current position capturing process and the map generation process is processed and displayed on the display 12.
  • a map image around the current position may be displayed on the display 12, so that the API that the service node 2 should provide to the GUI node 1 is only the map providing API around the current position. Therefore, when the service node 2 receives the map providing API around the current position from the GUI node 1, the map generation process is performed using the current position information obtained by performing the current position capturing process as a parameter, and the processing result is as follows. It suffices if map information can be returned to the requesting GUI node 1 as the processing result of the map providing API around the current position.
  • the GUI processing module 11 issues an API execution request for a map providing API around the current position to the service node 2 at regular intervals, while the map obtained as a response to the API execution request from the service node 2.
  • the GUI processing module 11 By processing the information into data that can be displayed on the display 12, a process of displaying a map image on the display 12 is performed. As a result, it is possible to provide a system user with a service requested as a system.
  • HTML Hyper Text Markup Language
  • HTML is an example of GUI description data that describes a GUI realized by the GUI node 1.
  • HTML is a standard description language that can describe the structure of a document, a display method, and the like, and refers to data described in the description language.
  • HTML is a CSS (Cascade Style Sheet) that describes setting of the appearance of a document described in HTML, and JavaScript (registered trademark) that describes control of an object or the like in a document described in HTML. ) Can be used.
  • HTML is originally a language for describing the structure of a document, but its functions have been expanded, and in recent years, it has been increasingly used as a development language for applications and GUIs.
  • the GUI can express data by dividing it into a Model that defines objects and data in the GUI, a View that defines the appearance of the GUI, and a Control that defines the control of the Model and the View.
  • the GUI is described by HTML, CSS, or JavaScript
  • the GUI processing module 11 can be regarded as a browser.
  • HTML Hyper Text Transfer Protocol
  • HTML Hyper Text Transfer Protocol
  • control corresponding to an event such as a user operation or a timer for each object, or communication control using HTTP (Hyper Text Transfer Protocol) or the like can be described by JavaScript.
  • GUI node 1 As a client terminal and the service node 2 as a server device, a process for issuing an API execution request as an HTTP request to the service node 2 can be described in JavaScript. Further, by executing the JavaScript in the GUI processing module 11, it becomes possible to transmit an API execution request from the GUI node 1 to the service node 2, and the GUI node responds to the API execution request as an HTTP response. It becomes possible to receive the processing result.
  • GUI description data uses HTML, CSS, and JavaScript, and the communication protocol between the GUI node 1 and the service node 2 will be described in a method that employs HTTP. Any GUI description data may be used as long as it is possible to describe information for realizing the GUI in the GUI node 1 and describe communication with the service node 2.
  • GUI description data may be held by the GUI node 1, but may be held by the service node 2 and acquired by the GUI node 1 from the service node 2 as necessary.
  • GUI description data acquisition request is different from the above API execution request.
  • GUI description data is stored in another node connected to the network 3 (for example, a GUI data server that stores GUI description data and provides the GUI description data in response to a request), and the GUI node 1 is required. Accordingly, a method of acquiring from another node may be used.
  • FIG. 4 shows a processing sequence when the response storage device 31 does not store a response corresponding to the API execution request
  • FIG. 5 shows a processing sequence when a response corresponding to the API execution request is stored. ing.
  • the GUI processing device 32 issues an API execution request (step ST1).
  • the API execution request includes a request (indicated as “request A” in FIGS. 4 and 5) including information related to the API to be executed, and the response processing device 36 sends a response corresponding to the request. It is possible to specify a callback function to be executed when it is obtained. As a result, the GUI processing device 32 can start the processing triggered by the GUI node 1 receiving a response corresponding to the API execution request.
  • the service node 2 that can communicate is unique, the service node information indicating the transmission destination of the API execution request may not be given as a parameter. Even in this case, the service node information may be explicitly given as a parameter. In that case, the service node information may be expressed as a URL.
  • the batch request processing device 33 determines whether the request is an API execution request or a request other than an API execution request (step ST2).
  • FIG. 6 is a flowchart showing processing for determining whether the batch request processing device 33 is an API execution request or a request other than an API execution request.
  • the batch request processing device 33 stands by until a request is output from the GUI processing device 32, and when a request is output from the GUI processing device 32 (step ST51), the request is acquired (step ST52).
  • the batch request processing device 33 determines the type of the request and determines whether the request is an API execution request or a request other than an API execution request (step ST53). If the request is a request other than an API execution request, the collective request processing device 33 outputs an instruction to transmit to the request destination to the communication device 35 without changing the content of the request (step ST54). On the other hand, if the request is an API execution request, the content of the request is changed, and an instruction to transmit a request pattern (request pattern consisting of an API execution request and a prediction request) that is the changed content to the request destination is provided. (Step ST55). In this example, the request output from the GUI processing device 32 is an API execution request.
  • the response corresponding to the API execution request (referred to as “response A” in FIGS. 4 and 5). Is stored in the response storage device 31 (step ST3), and the confirmation result (presence / absence of the response A) is acquired (step ST4).
  • the response A corresponding to the API execution request is not stored in the response storage device 31.
  • the case where the response A corresponding to the API execution request is stored in the response storage device 31 will be described later.
  • the collective request processing device 33 transmits the API execution request to the service node 2, and the response corresponding to the API execution request from the service node 2. Since A needs to be acquired, a request that may be issued following the API execution request (hereinafter referred to as “prediction request”) is predicted, and the API execution request (actual request) is predicted.
  • the request pattern management device 34 is instructed to generate a request pattern consisting of a request (step ST5).
  • the request pattern is a request group including an API execution request (actual request) and one or more prediction requests.
  • the request pattern management device 34 When the request pattern management device 34 receives a request pattern generation instruction from the batch request processing device 33, the request pattern management device 34 refers to the dynamic analysis result of the time series pattern of the API execution request issued in the past, and the API issued in the past. Among execution requests, an API execution request that is most likely to be issued following an API execution request (actual request) output from the batch request processing device 33 is predicted, and the predicted API execution request is used as a prediction request. decide. The request pattern management device 34 predicts an API execution request that is most likely to be issued following the prediction request among the API execution requests issued in the past, and predicts the predicted API execution request. Decide on demand. Although the details will be described later, the prediction request determination process is repeated one or more times.
  • the request pattern management device 34 determines one or more prediction requests, the request pattern (API execution request (actual request) + prediction request + prediction request +) consisting of an API execution request (actual request) and one or more prediction requests +. ..) Is generated (step ST6), and the request pattern is output to the batch request processing device 33 (step ST7).
  • the batch request processing device 33 When receiving the request pattern from the request pattern management device 34, the batch request processing device 33 generates a batch request including the request pattern. (Step ST8).
  • the collective request processing device 33 registers handle information for transmitting the collective request to the service node 2 and a callback function corresponding to the request A that is a collective request and an API execution request (actual request) in the response processing device 36. (Steps ST9 and ST10). Further, the collective request processing device 33 outputs an instruction to transmit the collective request to the service node 2 to the communication device 35 (step ST11), and receives the receipt notification of the collective request transmission instruction from the communication device 35 (step ST12). The GUI processing device 32 is notified of the completion of the request issuing process (step ST13).
  • the communication device 35 When receiving a batch request transmission instruction from the batch request processing device 33, the communication device 35 transmits the batch request to the service node 2 via the network 3. Further, the communication device 35 corresponds to each request (API execution request (actual request) + predicted request + predicted request +...) Constituting the request pattern included in the collective request from the service node 2. When a batch response (API execution request (actual request) response + prediction request response + prediction request response +%) Is received, the batch response and the communication handle are output to the response processing device 36 (step ST14). Specific processing contents of the service node 2 will be described later.
  • the response processing device 36 When the response processing device 36 receives the batch response and the communication handle from the communication device 35, the response processing device 36 sends the response of the API execution request (actual request) included in the batch response and the response of one or more prediction requests. 31 (steps ST15 and ST16). Also, the response processing device 36 extracts a callback function corresponding to the request A that is an API execution request (actual request) from the callback functions registered in advance using the communication handle as a key, and the callback. By executing the function, the response A corresponding to the request A is notified to the GUI processing device 32 (steps ST17 and ST18). When receiving the response A corresponding to the request A, the GUI processing device 32 displays the response A on the display 12, for example.
  • the collective request processing device 33 does not need to transmit the request A that is an API execution request to the service node 2.
  • the completion is notified to the GUI processing device 32 (step ST21 in FIG. 5).
  • the batch request processing device 33 notifies the request pattern management device 34 that the request A which is an API execution request has been issued (steps ST22 and ST23).
  • the request pattern management device 34 receives a notification that the request A which is an API execution request has been issued, the request pattern management device 34 updates the dynamic analysis result of the time series pattern of the API execution request issued in the past.
  • the batch request processing device 33 handles the response A corresponding to the request A which is an API execution request as the response transmitted from the service node 2, so that the response A corresponding to the request A stored in the response storage device 31. Is output to the response processing device 36 (step ST24).
  • the instruction to the response processing device 36 is expressed as “pseudo response notification”, and the pseudo response notification includes a request A that is an API execution request and a callback function corresponding to the request A. It is.
  • the response processing device 36 When receiving the pseudo response notification from the collective request processing device 33, the response processing device 36 acquires the response A corresponding to the request A from the response storage device 31 using the request A included in the pseudo response notification as a key ( Steps ST25 and ST26). Further, the response processing device 36 notifies the response A corresponding to the request A to the GUI processing device 32 by executing the callback function included in the pseudo response notification (steps ST27 and ST28). The batch request processing device 33 is notified that the response A has been notified to the GUI processing device 32 (step ST29).
  • FIG. 7 is a sequence diagram showing a processing sequence of the service providing module 22 in the service node 2.
  • the communication device 41 of the service providing module 22 receives the batch request from the GUI node 1 because the response A corresponding to the request A which is an API execution request is not stored in the response storage device 31. And outputs the batch request to the batch request interpreter 42 (step ST31).
  • each request (API execution request (actual request) + prediction request + prediction request +) constituting the request pattern included in the batch request. ...
  • the collective request interpreting device 42 sequentially outputs a pair of individual requests and service identifiers to the request processing device 43 (step ST33). Note that the output order of the request and service identifier pair is the order of arrangement in the request pattern.
  • the API execution request (actual request) and service identifier pair are output first, the API execution request (actual request) is next.
  • the pair of the prediction request and service identifier arranged in is output. Subsequently, all prediction requests and service identifier pairs are output in order.
  • the request processing device 43 Each time the request processing device 43 receives a combination of a request and a service identifier from the collective request interpretation device 42, the request processing device 43 refers to the service identifier and specifies the service module 21 that executes the service corresponding to the request (step ST34).
  • the request is output to the service execution device 44 corresponding to the service module 21 (step ST35). For example, if the service module that executes the service corresponding to the request is the service module 21a, the request is output to the service execution device 44a. If the service module that executes the service is the service module 21b, the request is serviced. If the service module that outputs to the execution device 44b and executes the service is the service module 21c, the request is output to the service execution device 44b.
  • the service execution devices 44a, 44b, 44c When the service execution devices 44a, 44b, 44c receive a request from the request processing device 43, the service execution devices 44a, 44b, 44c execute the service corresponding to the request by giving the request to the service modules 21a, 21b, 21c. Responses as service processing results are acquired from 21b and 21c, and the responses are output to the request processing device 43 (step ST36). Upon receiving the response corresponding to the request from the service execution devices 44a, 44b, 44c, the request processing device 43 outputs the response to the collective request interpretation device 42 (step ST37).
  • the batch request interpretation device 42 When receiving the response corresponding to the request from the request processing device 43, the batch request interpretation device 42 outputs the response to the batch response generation device 45 (step ST38).
  • the collective response generation device 45 registers the response in the response storage device 46 (step ST39).
  • the response storage device 46 stores the response corresponding to the request in the storage area in a list format that maintains the registration order (steps ST40 and ST41). The processes in steps ST33 to ST41 are repeatedly performed for the number of individual requests constituting the request pattern.
  • the batch request interpretation device 42 When the processes in steps ST33 to ST41 are completed, the batch request interpretation device 42 outputs a batch response generation request to the batch response generation device 45 (step ST42).
  • the batch response generation device 45 receives a batch response generation request from the batch request interpretation device 42, the batch response generation device 45 acquires responses corresponding to the individual requests registered in the response storage device 46 (steps ST43 and ST44). Are collectively generated to generate a collective response (step ST45).
  • the responses corresponding to the individual requests are grouped according to the arrangement order of the individual requests in the request pattern by referring to the response list maintaining the registration order. Therefore, the first response of the batch response is a response corresponding to the request A which is an API execution request, and the second response of the batch response is a response corresponding to the prediction request arranged next to the request A. is there.
  • the collective response generation device 45 When the collective response is generated, the collective response generation device 45 outputs the collective response to the collective request interpretation device 42 (step ST46). When receiving the collective response from the collective response generation device 45, the collective request interpreting device 42 outputs the collective response to the communication device 41 (step ST47). When the communication device 41 receives a collective response from the collective request interpretation device 42, it returns the collective response to the GUI node 1 via the network 3.
  • FIG. 8 is an explanatory diagram showing the data structure of the request pattern.
  • the dynamic analysis result of the API execution request time series pattern records the API execution request time series pattern issued by the GUI processing device 32 and the frequency at which the API execution request is issued.
  • the requested time series analysis result element data structure is composed of “actual request information” and “following pattern list”, and the succeeding pattern list element data structure is composed of “reliability parameter” and “following pattern”. It is configured.
  • the “real request information” is an area in which information related to an API execution request (hereinafter referred to as “real request”) issued by the GUI processing device 32 is stored, and the “subsequent pattern list” is stored in the real request information. It consists of a list having one or more patterns following the actual request as elements.
  • the “subsequent pattern list” has a list structure, and the prediction requests may be sorted and managed in descending order of the probability of following the actual request.
  • the subsequent pattern list element data structure shows an example of the elements of the subsequent pattern list, the “reliability parameter” stores information indicating the reliability of the pattern, and the “subsequent pattern” is the subsequent pattern in chronological order. Is a request list.
  • the “reliability parameter” the number of times it has been confirmed that it has actually been issued (number of times of issue) is assumed.
  • information that can be used as parameters in determining the prediction request such as the latest date and time information that was actually issued, the number of times that the prediction was successful, and the number of times that the prediction was failed, may be stored together.
  • “Subsequent pattern” lists subsequent request information in chronological order.
  • the content of the request to be described in the “following pattern” element may have a data structure equivalent to “real request information”.
  • information indicating the degree of reliability of each element of the argument value list given at the time of execution and the prediction request list may be stored together.
  • a specific example is the number of successes / failures of prediction for each request.
  • FIG. 9 is an explanatory diagram showing the data structure of the actual request information list.
  • the data structure shown in FIG. 9 is a data structure corresponding to the data structure of the request pattern shown in FIG.
  • the “actual request information” is an area for storing information indicating a request that is actually issued, and means that it is a head request of the request pattern.
  • “Refer to subsequent pattern management data” is an area for referring to data for managing analysis results regarding a request actually issued after actual request information. In this reference, the subsequent request pattern list data is referred to. By tracing this reference, it is possible to refer to information on a request issued in the past after the actual request.
  • the “next actual request reference” is an area that can be referred to when there is other actual request information list data. If this area is NULL, it means that there is no more actual request information list data.
  • FIG. 10 is an explanatory diagram showing the data structure of the subsequent request pattern list.
  • the data structure shown in FIG. 10 is a data structure corresponding to the subsequent pattern list element data structure of FIG.
  • “Subsequent request information” is an area for storing request information predicted to be issued next.
  • “Reliability information” is an area for storing information serving as a scale indicating how reliable the prediction request is.
  • the “next subsequent request list reference” is an area for referring to data for managing an analysis result regarding a request actually issued subsequent to the subsequent request. In this reference, the subsequent request pattern list data is referred to. If this area is NULL, it means that there is no further issued request.
  • the “same request reference” is an area for referring to subsequent request pattern list data relating to requests issued in the same time series order, which are different from the subsequent requests. If this area is NULL, it means that there are no more requests issued in the same column.
  • FIG. 11 is an explanatory diagram showing an example of a specific request pattern using the actual request information list data structure and the subsequent request pattern list data structure.
  • the “actual request information list” is list data that configures list data with the actual request information list data as an element and enumerates requests that are the head of the request pattern.
  • the request A and the request B are requests that have been issued at the head of the requests actually issued in the past.
  • What is referenced from the subsequent request pattern management data reference of each element of the “actual request information list” constitutes tree-like data with the subsequent request pattern list data as an element, and manages the requests that follow the actual request. State data.
  • An element of a subsequent request pattern list that is directly referenced from an element of the actual request information list and an element that can be reached by recursively following the same-sequence subsequent request reference of the element relates to a request issued immediately after the actual request.
  • the information is stored in “subsequent request information”.
  • request C there are two types of request C, which is a request that can be reached by recursively tracing the same-succession request reference of the element of request C and the request C of the element that is directly referenced from the actual request A. This means that the request follows request A.
  • request for an element referenced by a subsequent request list reference next to an element in a subsequent request pattern list and an element request that can be referred to by recursively following the same-sequence subsequent request reference of the element
  • the “subsequent request information” has information related to a request that has continued after a request within the request pattern. For example, in FIG. 11, when a request C issued immediately after the actual request A is considered as a reference request, the requests that have continued after the request C are a request D and a request E. ing.
  • one piece of reliability information is set for one request pattern.
  • the reliability is set for each subsequent request unit. The difference is that information is set. That is, in the data structure shown in FIG. 8, the reliability related to the issue of the request pattern is set in the reliability information, whereas in the data structure shown in FIGS. Thus, the reliability for each request predicted to be issued next is set as the reliability information.
  • the timing at which the request pattern management device 34 knows the request that is actually issued by the GUI node 1 is the time when the request pattern generation instruction output from the batch request processing device 33 is instructed (step ST5 in FIG. 4) or the actual request notification. This is when an actual request is received as a parameter in step ST22 of FIG. At this time, the following description will be given on the assumption that a processing target request reference indicating from which position the notified request should be searched out of the entire request pattern is input to the request pattern management device 34.
  • FIG. 12 is an explanatory diagram of a reference example of the processing target list.
  • FIG. 12 is equivalent to the request pattern of FIG. 11, and shows four types a, b, c, and d as specific examples of processing target list reference.
  • FIG. 13 shows an update flow of the request time series analysis result at the time of request pattern generation instruction (step ST5 in FIG. 4), and the update of the request time series analysis result at the time of actual request notification (step ST22 in FIG. 5). The flow is shown in FIG.
  • the request pattern management device 34 Upon receiving the request pattern generation instruction (step ST101 in FIG. 13), the request pattern management device 34 uses the actual request, which is a parameter of the request pattern generation request, from the actual request information list shown in FIG. The element corresponding to the actual request is searched from the request information list (step ST102). When the element corresponding to the actual request is found (step ST103), the request pattern management device 34 substitutes the value of the subsequent request pattern management data reference of the element corresponding to the actual request into the processing target list reference, so that When there is a request notification, it becomes possible to determine from which list the request pattern should be updated, and the update process is completed (step ST104).
  • the request pattern management device 34 holds the actual request in the actual request information, generates an element in which the NULL element is set in the subsequent request pattern management data reference, and the list Update to be added to (step ST105). Thereafter, the list of NULL elements generated in step ST105 is substituted for the processing target list reference, and the update process is completed (step ST106).
  • the processing target list reference when the processing target list reference is in the position of processing target list reference a in FIG. 12, when the actual request B is received as a parameter, the actual request information list includes the element of request B. Thus, the processing target list reference is updated to the position of the processing target list reference b.
  • the processing target list reference when the actual request C is received as a parameter, the element of the request C is not included in the actual request information list. Therefore, as shown in FIG. Added to the list, the subsequent request pattern management data reference is set to have a predicted request pattern list e having only a NULL element. Further, the processing target list reference refers to the prediction request pattern list (1) as the processing target list reference e.
  • the request pattern management device 34 Upon receiving the actual request notification (step ST111 in FIG. 14), the request pattern management device 34 searches the reference list for the element corresponding to the actual request from the processing target list reference (step ST112). When the element corresponding to the actual request is found (step ST113), the request pattern management apparatus 34 updates the reliability information of the element corresponding to the actual request (step ST114). For example, when the reliability information is the number of times an actual request is actually issued, the value is incremented. Thereafter, the request pattern management device 34 substitutes the value of the subsequent request list reference of the element corresponding to the actual request into the process target list reference, and ends the update process (step ST115). When the element corresponding to the actual request is not found (step ST113), the request pattern management device 34 adds an element to the list referred to by the processing target list reference, and the subsequent request information includes the parameter actual request as The update process is terminated (step ST116).
  • the processing target list reference is the processing target list reference c in FIG. 12 and the actual request C is received as a parameter in the actual request notification
  • the reliability information of the request C is updated by the process of step ST114, and the step Through the processing of ST115, the processing target list reference is updated to the processing target list reference d.
  • the request pattern is updated as shown in FIG. Specifically, an element related to the request D is newly generated by the processing in step ST116, and the element related to the request D is referred to by the same-sequence subsequent request reference of the element related to the request B of the list referred to by the processing target list reference c.
  • the reliability information of the element related to the request D is initialized, and a list having a NULL element is referred to in the next subsequent request list reference.
  • the processing target list reference is updated like the processing target list reference f by the processing of step ST116.
  • the request pattern management apparatus 34 performs processing when a request pattern generation instruction is given (step ST5 in FIG. 4) or when an actual request is notified (step ST22 in FIG. 5).
  • request pattern generation is instructed (step ST5 in FIG. 4)
  • a request corresponding to the actual request is requested from the collective request processing device 33 to the request pattern management device 34 in a situation where the response storage device 31 does not store the response.
  • the request pattern management device 34 derives a request pattern (predicted request pattern) determined to be most issued from the request time series analysis result using the actual request received as a parameter from the collective request processing device 33 as a key, and the derivation result Process to return.
  • the actual request information of all the request time series analysis result element data of the request time series analysis results is compared with the actual request as a parameter, and the matching request time series analysis result element data is derived.
  • the request content may be completely matched, but may be determined by partial match.
  • the requested processing is the same, but the case where the contents given as parameters are partially different can be considered as the partial match.
  • the probability may be determined by the magnitude of information (for example, the number of issues) stored in the reliability parameter.
  • the probability may be calculated by applying information stored in a plurality of reliability parameters to a function for calculating the probability. For example, the probability may be calculated using a function such as multiplying the number of times of issue by the reciprocal of the difference time between the current date and time and the latest date and time information actually issued. Further, the probability may be calculated based on a determination criterion determined as a system. As a result, the request pattern with the highest probability is set as the predicted request pattern.
  • FIG. 17 is an explanatory diagram showing an example of combinations of prediction request patterns.
  • the prediction request pattern determined to have the highest probability that the prediction request pattern 1 is issued is the prediction request pattern determined to have the highest probability that the prediction request pattern 2 will be issued next.
  • a plurality of prediction request patterns can be expressed as one prediction request pattern, so that the probability of issuing can be improved.
  • a new prediction request pattern is generated by ORing the two prediction request patterns with the highest issuance probabilities.
  • the present invention is not limited to this.
  • a new prediction request pattern may be created by applying it to the synthesized function.
  • a part of the prediction request pattern derived in the process may be used as the prediction request pattern. For example, assuming that each request of the predicted request pattern holds the number of times that the prediction pattern itself has failed as a result of processing the request pattern from the beginning to itself, the value is above a certain threshold For example, a method of excluding subsequent requests from the request pattern and using the request pattern up to that point as a predicted request pattern can be considered.
  • the request pattern is processed as a processing result without considering the time-series order, it is assumed that the number of successful predictions and the number of failures in each request are retained, and requests that exceed a certain threshold from the request pattern
  • a method is also conceivable in which a new request pattern is formed from all of the above, and the new request pattern is used as a predicted request pattern.
  • one or more prediction request patterns that exceed the standard set by the system are selected based on the result of request time series analysis, and by combining them, a prediction request pattern that is predicted to be issued after the actual request is selected.
  • One decision is a process corresponding to a request pattern generation instruction (step ST5 in FIG. 4). Further, after the processing, the request pattern management device 34 maintains the prediction request pattern and the request patterns included in the request pattern list used when determining the prediction request pattern until the prediction result is determined.
  • these request patterns are referred to as prediction target request patterns.
  • a request corresponding to the actual request is requested from the collective request processing device 33 to the request pattern management device 34 in a state where a response corresponding to the actual request is stored in the response storage device 31.
  • the request pattern management device 34 receives an actual request notification as a parameter from the collective request processing device 33, the request pattern management device 34 recognizes that the prediction request constituting the request pattern generated before receiving the notification has been predicted successfully. (Recognize issued as expected). Therefore, the request pattern management device 34 updates the information stored with the request A that matches the prediction request.
  • the stored information is the number of successes, the number of successes is incremented, and if the stored information is a temporary prediction success / failure flag, updating such as setting a flag is conceivable.
  • the reliability parameter of each pattern in the subsequent pattern list may be recalculated and the value updated. By updating the reliability parameter, it is possible to construct a prediction pattern list according to the usage status of the system, and it is possible to improve the prediction accuracy. If there is no request corresponding to the parameter in the request pattern, the request is linked to the request pattern, new predicted pattern data is constructed, and newly registered as an element of the predicted pattern list. May be. By newly registering, it becomes possible to predict a new request pattern, and it is possible to improve the prediction accuracy. A method of adding the request as a new list element of the current request pattern without newly registering may be used.
  • [Service Node Domain], which is the domain name of the service node 2 is described as the host name of the URL
  • [Service Name] which is the name of the service requested by the first directory name
  • [API name] which is the name of the API (API requested in the service)
  • the GUI node 1 can uniquely identify the communication partner from the host name of the URL
  • the service node 2 uses the [service name] and [API name] of the URL. It is possible to uniquely identify which API of which service is requested.
  • API execution requests that can be issued with one URL are limited to a single API name possessed by a single service. It is not suitable for those that issue in batch. Therefore, as shown in FIG. 19, a method of excluding [service name] and [API name] from the URL and describing [collective request identification name] indicating the collective request in the URL is conceivable. In that case, by writing information corresponding to the service name and API name in the body part during HTTP communication, it is possible to notify the request destination node of such information.
  • the API of the service node 2 can be generally handled as a function, and many of them can receive arguments. That is, an argument value for the API is included as information to be described in the body part during HTTP communication. In general, since a plurality of arguments can be set in the API, the plurality of arguments are collectively referred to as an argument list.
  • FIG. 20 is an explanatory diagram showing a specific example in which a plurality of APIs for a single service and a plurality of argument lists for each API are expressed by one text format data.
  • This data is described in the JSON (Java Script Object Notation) format, and the above-described information is described as a multiple array object.
  • the uppermost array (service request array object) describes the service name of the service to be requested in the first element.
  • the second and subsequent elements express a specific API requested for the service and its arguments as an array object (API array object).
  • a plurality of API array objects can be specified. If a plurality of API array objects are specified, it means that the API is requested to execute a plurality of APIs.
  • the name of the requested API is expressed by the first element, and the array object (argument array object) expressing the argument list for executing the API is enumerated by the second and subsequent elements. Yes.
  • an API array object can be created by extracting an API for the same service included in the request pattern.
  • an actual request may be provided with a rule that the actual request is expressed by the second element (first API array object) of the service request array object that is the first element of the collective request.
  • the first element of the API array object may be expressed by adding an array element having “true” in the case of an actual request and “false” in other cases. If the order of requests should be saved, it is also possible to save the order by configuring the elements according to the order of the prediction requests registered in the prediction request pattern after the actual request. is there. In that case, the service request array object for each service is not necessarily one.
  • the batch request is started when the batch request processing device 33 issues to the communication device 35 by the processing of step ST11 in FIG. 4, and the processing result is sent to the batch request processing device 33 in step ST12 as a request availability flag. returned.
  • the request availability flag is returned to the GUI processing device 32 in step ST13.
  • the collective request processing device 33 registers information related to the collective request in the response processing device 36.
  • information related to the collective request handle information corresponding to a collective request received from the communication device 35, a callback function for processing an actual request when a process corresponding to the collective request is received, and the like can be considered.
  • the response processing device 36 Upon receiving the information related to the collective request, stores the information in a storage area managed by itself and returns the processing result to the collective request processing device 33.
  • the communication device 35 transmits a collective request to the service node 2 via the network 3 and then receives a collective response corresponding to the collective request transmitted from the service node 2.
  • the communication device 35 receives a batch response corresponding to the batch request, the communication device 35 notifies the response processing device 36 of the batch response and handles information indicating the communication processing that issued the request corresponding to the response to the response processing device 36. Notice.
  • FIG. 22 is an explanatory diagram showing a specific data expression example of a response.
  • data is expressed in the JSON format as in the case of the request.
  • the response can be expressed as a JSON array object in which the return value of the function is stored in the first element and the reference argument is stored in the second and subsequent elements.
  • the return value may be void. In this case, it is possible to cope with this by setting a null value or a null character to the first element.
  • a batch response can be expressed as an array object having the response described above as an element.
  • FIG. 23 is an explanatory diagram showing a specific data expression example of a batch response.
  • the order of the requests stored in the collective request is maintained, and each response is stored. That is, if it is specified that the first request is an actual request, the head element of the collective response is an actual response corresponding to the actual request.
  • the response processing device 36 When the response processing device 36 receives the batch response and the communication handle from the communication device 35, the response processing device 36 searches the information corresponding to the communication handle from the previously registered information, and obtains the corresponding batch request and callback function. get.
  • the response processing device 36 stores a response corresponding to each request collected in a batch response in the response storage device 31 as a pair with the request. By this processing, all responses are stored in the response storage device 31 in a form that can be searched using the request content as a key.
  • the response storage device 31 returns the stored result to the response processing device 36 in step ST16. Further, the response processing device 36 notifies the GUI processing device 32 of the response A corresponding to the request A by executing a callback function corresponding to the request A that is an API execution request (actual request).
  • the callback function is processed by passing at least an actual response corresponding to the actual request as a parameter.
  • the processing result of the callback function is returned to the response processing device 36 in step ST18.
  • the map image around the current position is drawn on the entire GUI screen, and the vehicle position icon indicating the current position is drawn on the map image.
  • a place name display for drawing the address or the like of the current position, an orientation with respect to the map drawing contents, a map scale showing the scale of the map, and the current time are drawn on the map image.
  • Information such as the map image, current position, address, orientation, scale, and current time is not generated by the GUI node 1 but is inquired (requested) from the service node 2 to be obtained by the GUI node 1 and used for drawing. To do. However, in the case of a system to which the present invention is not applied, as shown in FIG. 25, the GUI node 1 performs a data request (a map request, a map information request, a current position request, an address) in the processes of steps ST201, ST203, ST205, and ST207. Request) is made to the service node 2, and the response (map image, scale / orientation, current position, current address) corresponding to the data request is received from the service node 2 in the processing of steps ST202, ST204, ST206, ST208. In order to perform the above process, a total of four communications occur between the GUI node 1 and the service node 2. This process occurs every time the map is drawn. As for the current time, it is assumed that the time information of the GUI node 1 is used.
  • the collective request generation device 33 and the request pattern management device 34 Next, a prediction request pattern that is likely to be issued is acquired, and requests are collectively made as a batch request. Even if some or all of the predicted request patterns are wrong, the request pattern management device 34 updates the request pattern that follows the map request by repeatedly issuing the actual request that becomes the actual request. The requests following the map request are reflected as a map information request, a current position request, and an address request, and in the long term, a request pattern that can be correctly predicted can be generated.
  • the request pattern management device 34 relates to an actual request notified from the collective request processing device 33 to the request pattern management device 34 when a request pattern generation instruction is given (step ST5 in FIG. 4) or when an actual request is notified (step ST22 in FIG. 5).
  • the information it is possible to update information related to the number of times each request pattern is issued based on the time-series pattern of actual requests issued so far and the request pattern to be predicted. That is, every time a map update occurs, a request is generated in the order of a map request, a map information request, a current position request, and an address request, so that the number of times the request pattern is issued increases.
  • the request pattern with the maximum number of issuance as a prediction request pattern, it is possible to make a correct prediction, and in the long term, the number of communications required four times can be reduced to one. Become.
  • the scale change request is issued from the GUI node 1 to the service node 2 using the new scale information as a parameter in the process of step ST211. Thereafter, it is assumed that a map request, a map information request, a current position request, and an address request are issued.
  • a map request a map information request, a current position request, and an address request are issued.
  • the scale change is performed for the first time, since the request pattern when the scale change request is an actual request is not stored in the request pattern management device 34, only the scale change request is requested from the service node. The batch request process is started from the map request.
  • the request pattern management device 34 learns that a map request, a map information request, a current position request, and an address request are issued in succession, and newly creates the request pattern.
  • a second or subsequent scale change request is issued, a batch request in which a map request, a map information request, a current position request, and an address request are predicted requests according to a newly created request pattern
  • the device 33 creates and sends the collective request to the service node 2.
  • the response storage device 31 if a response corresponding to the execution request issued by the GUI processing device 32 is stored in the response storage device 31, the response is sent to the GUI processing device 32. While an output command for instructing output is output to the response processing device 36, if a response corresponding to the execution request is not stored in the response storage device 31, it may be issued following the execution request.
  • Batch request processing for predicting a request, instructing the request pattern management device 34 to generate a request pattern composed of the execution request and the prediction request, and generating a batch request including the request pattern generated by the request pattern management device 34
  • a request pattern that predicts a request that may be issued following the device 33 and its execution request and generates a request pattern composed of the execution request and the prediction request
  • a management device 34 and a communication device 35 that transmits a batch request generated by the batch request processing device 33 to the service node 2 and receives a batch response corresponding to the batch request transmitted from the service node 2,
  • the response processing device 36 receives an output command from the batch request processing device 33, it outputs a response corresponding to the execution request stored in the response storage device 31 to the GUI processing device 32, and the communication device 35 receives the batch response.
  • the response corresponding to the execution request and the prediction request included in the collective response is stored in the response storage device 31 and the response corresponding to the execution request is output to the GUI processing device 32. Therefore, if a response corresponding to the execution request is stored in the response storage device 31, it is not necessary to transmit the execution request.
  • the number of network communication according an effect which can be sufficiently reduced.
  • one or more requests that are predicted to be issued subsequently can be determined from a single actual request that is actually issued from the GUI node 1. It becomes possible. Therefore, it is possible to generate a collective request in which the actual request and one or more prediction requests are collected, and notify the collective request to the service node 2.
  • the service node 2 can receive a collective request and process the request as the content by each service, generate a collective response that summarizes one or more responses, and send the collective response to the GUI. It becomes possible to reply to the node 1.
  • the GUI node 1 that has received the collective response stores the contents of the collective response and uses the stored result in the GUI node 1 before issuing a request corresponding to the stored result.
  • the number of times of communication with the service node 2 can be reduced, and a system capable of avoiding a decrease in processing speed associated with communication is obtained.
  • the system is capable of managing the success / failure information of the prediction result, and the generation pattern of the prediction request can be updated by adjusting the prediction parameter in accordance with the usage status of the system.
  • the request pattern management device 34 predicts a request that may be issued following an API execution request, and generates a request pattern including the API execution request and the prediction request.
  • the request pattern management device 34 manages the history of execution requests issued by the GUI processing device 32 in units of screens displayed on the GUI, and executes the processing for updating the frequency of issuing the execution requests. Even if the execution request newly issued by the device 32 is the same execution request, different request patterns may be generated if the screen displayed on the GUI is different. Specifically, it is as follows.
  • FIG. 27 shows another example of the screen displayed by the GUI node 1. While the map is drawn on the screen and the direction and the vehicle position icon are drawn, it is the same as in FIG. 24. Also draws a point list button that represents in a list a point icon that shows where on the map the icon is and a button that shows basic information about the point icon (point name and distance from the current position) ing. In this case, until the request following the map request is a map information request and a current position request, it is the same as the case of FIG. 24. However, as shown in FIG. Is different.
  • the request pattern management device 34 moves to the screen of FIG. 24 after operating for a while on the screen of FIG.
  • the last prediction request of the prediction request pattern is not an address request but a peripheral search, and there is a problem that an appropriate request pattern cannot be made a prediction request pattern. Therefore, the request pattern management apparatus 34 copes with the above problem by generating an independent request time series analysis result for each screen.
  • FIG. 29 is an explanatory diagram showing an example of a data structure of a request time series analysis result when independent request pattern management is performed in units of screens.
  • the request time series analysis result of FIG. 29 is a data structure having the request time series analysis result element data structure of FIG. 8 as an element, and has a list structure having a subsequent pattern list following the actual request with the actual request as a key.
  • 29 is a data structure having the subsequent pattern list element data structure of FIG. 8 as an element, and has a list structure having a reliability parameter for each subsequent pattern.
  • the request pattern management device 34 obtains a corresponding subsequent pattern list from the request time series analysis result using the actual request as a key, and determines a predicted request pattern based on the subsequent pattern list.
  • a request time series analysis result was managed, but by introducing a screen-specific list, a different request time series analysis result is defined for each screen, It is a data structure that can manage the request time series analysis results that differ for each screen.
  • an appropriate prediction request pattern cannot be generated by prediction based on the same requested time series analysis result for each screen as described in the example of FIGS. It becomes possible to solve the problem.
  • the request pattern management device 34 can know which screen is being displayed in the screen-specific list by receiving screen information currently being processed from the batch request processing device 33 each time the screen is changed. Thus, request pattern management and prediction request determination based on an appropriate actual request list can be performed. Further, the batch request processing device 33 can notify the request pattern management device 34 of the next screen information by using a GUI description data acquisition request issued from the GUI processing device 32 to the service node 2 as a trigger. Alternatively, the same processing may be performed with the timing at which the response processing device 36 receives a response corresponding to the GUI description data acquisition request from the service node 2 as a trigger.
  • the GUI processing device 32 responds by notifying the request pattern management device 34 of the next screen information at the timing when the screen transition occurs. It becomes possible. For example, if the request pattern management device 34 has the request time-series analysis result of FIG. 29, and the screen A of the list by screen means the screen shown in FIG. 24 and the screen B means the screen shown in FIG. Is displayed, the request pattern management apparatus 34 performs processing while referring to the actual request list referred to by the element of the screen A of the screen-specific list. At that time, using the GUI description data acquisition request as a trigger, the collective request processing device 33 notifies the request pattern management device 34 of the screen B, which is screen information that is the transition destination. Upon receiving the notification, the request pattern management device 34 switches the actual request list to be processed to the actual request list referred to by the element of the screen B of the screen-specific list, and in the subsequent processing, the switched actual request list is displayed. Process while referring to.
  • the request time series analysis result is a result of collecting and analyzing information on a request pattern issued immediately after an actual request is issued, and is composed of one or more information on a finite number of requests. A collection of patterns. Based on the API execution request notified from the GUI processing device 32 to the batch request processing device 33, the pattern dynamically collects information on the request, information on the time-series order in which the request is issued, and the like. A request time series analysis result is generated as a result of the analysis. Further, when the request pattern management device 34 processes a request pattern generation instruction from the batch request processing device 33, a predicted request pattern is configured based on the contents of the request time series analysis result.
  • the request time series analysis result for example, when the first request of the request pattern is actually issued for all the collected request patterns as shown in FIG. There is a method of managing by giving a reliability parameter as a measure of whether a request is issued in the same pattern as the corresponding subsequent pattern. In that case, the number of requests included in the request pattern including each actual request and the subsequent request pattern must be finite.
  • a specific method for setting the request pattern included in the request time series analysis result to a finite number of requests will be described.
  • a method of setting the maximum number of request patterns can be considered. For example, when the maximum number of predicted request patterns is set to 5, all the predicted request patterns generated by the request pattern management device 34 are up to five, and a pattern composed of a finite number of requests can be configured. Become. FIG. 30 is an explanatory diagram showing an example of generation of request pattern data when the number of predicted request patterns is up to five.
  • the request pattern management device 34 does not have any request pattern data at first. In this state, a situation is assumed in which requests are notified from the GUI processing device 32 to the batch request processing device 33 in the order of the arrows shown in the request issuance time series list.
  • the request A is notified to the request pattern management device 34.
  • the request pattern management device 34 generates the actual request information A (request time series analysis result). (See (1)), a request pattern list having an initial value is generated and associated with the actual request information A (see request time series analysis result (2)). Up to four subsequent requests, the process proceeds to a phase of inserting into the newly generated request pattern list.
  • the request pattern management apparatus 34 sequentially inserts the requests at the end of the subsequent request list generated immediately before (request time series analysis result (3)). See).
  • request E is inserted into the subsequent request list, the number of requests in the subsequent request list is four and the number of actual requests is one, reaching the maximum number of five.
  • the process proceeds to a phase of processing as actual request information.
  • the request pattern management device 34 checks whether there is information matching the request F in the actual request information list of the request pattern data. As a result, it is determined that there is no matching information, and the request pattern management device 34 generates the actual request information F (see the request time series analysis result (4)) and generates a request pattern list having initial values. Then, association with the actual request information F is performed (see request time series analysis result (5)). Up to four subsequent requests, the process proceeds to a phase of inserting into the newly generated request pattern list.
  • the request pattern management device 34 sequentially inserts the requests at the end of the subsequent request list generated immediately before (request time series analysis result (6)). See).
  • request J is inserted into the subsequent request list, the number of requests in the subsequent request list is four and the number of actual requests is one, reaching the maximum number of five.
  • the process proceeds to a phase of processing as actual request information.
  • the request pattern management device 34 checks whether there is information matching A in the actual request information list of the request pattern data. As a result, when it is found that there is matching information, the request pattern management device 34 generates a request pattern list having an initial value for the matched actual request information and associates it as a new element (at the time of request) (See Series analysis results (7)). Up to four subsequent requests, the process proceeds to a phase of inserting into the newly generated request pattern list.
  • the request pattern management device 34 sequentially inserts the requests at the end of the subsequent request list generated immediately before (request time series analysis result (8)). See).
  • the request N is inserted into the subsequent request list, the number of requests in the subsequent request list is four and the number of actual requests is one, reaching the maximum number of five.
  • the process proceeds to a phase of processing as actual request information.
  • the maximum number of requests to be fixed may be fixed as the entire system, but may be a fixed value that is different for each GUI screen, for example.
  • the fixed value may be changed according to the situation. For example, the predicted success rate of a batch request issued from the GUI node 1 (for example, the probability that a prediction request other than an actual request is actually issued from the GUI processing device 32 to the batch request processing device 33 after the batch request is generated). If it is above a certain threshold, the fixed value is incremented, the number of elements that can be set in the request pattern is increased, and the number of requests sent in a batch request can be increased to realize further reduction in the number of communications. It is done.
  • a method of setting a fixed value for each request pattern may be used.
  • the time interval between the request notified immediately before and the request notified this time is measured, and if the time interval is less than a predetermined threshold (predetermined time interval), the two It is possible to determine that the request is included in a series of processes.
  • FIG. 31 is a flowchart showing a process for calculating the elapsed time from the previous request notification to the current request notification.
  • the request pattern management device 34 When the request pattern management device 34 receives a notification of the request A that is the current request from the batch request processing device 33 (step ST301), the request pattern management device 34 acquires the current time T1 (step ST302). Thereafter, the difference dT between the notification time T0 and the time T1 of the previous request is calculated (step ST303). This difference dT is the elapsed time for the request A. Here, dT is set to 0 when T0 is not set. The request pattern management device 34 completes the elapsed time calculation process by substituting the value of T1 as the new value of T0 (step ST304).
  • the request pattern management device 34 When the elapsed time dT calculated by this process is less than the threshold value sT determined as the system, the request pattern management device 34 requests the request pattern notified this time to the request pattern to which the previously notified request belongs. The process of adding A is performed. On the other hand, when the elapsed time dT is equal to or greater than the threshold value sT, the request pattern notified this time is not added to the request pattern to which the previously notified request belongs, and is handled as a new actual request.
  • FIG. 32 is an explanatory diagram showing an example of generation of request pattern data when the elapsed time is used.
  • a situation is assumed in which requests are notified from the GUI processing device 32 to the batch request processing device 33 in the order of the arrows shown in the request issue time series list.
  • a single-line arrow means that the elapsed time calculated from the difference between the time when the request to the right of the arrow is notified and the time when the request for the left is notified is less than the threshold value sT.
  • a line arrow means sT or more.
  • the request pattern management device 34 calculates the elapsed time, but determines that the request A is an actual request because there is no previous request. As a result, the actual request information A is generated, and a request pattern list having an initial value is generated and associated with the actual request information A (see request time series analysis result (1)). Next, when the request B is notified, the request pattern management device 34 calculates the elapsed time, and as a result, it is determined that the elapsed time is less than the threshold value sT.
  • the request B When the elapsed time is less than the threshold value sT, since the request B belongs to the request pattern to which the previous request A belongs, the request B is inserted as an element of the latest subsequent request list of the actual request A (request time series). (See analysis result (2)). Since the elapsed time is also less than the threshold sT, the requests C and D that are continuously notified are inserted as elements of the latest subsequent request list of the actual request A (request time series analysis result (3)). See).
  • the request pattern management device 34 calculates the elapsed time, and as a result, it is determined that the elapsed time is equal to or greater than the threshold value sT. If the elapsed time is equal to or greater than the threshold value sT, the request E is determined as an actual request because the current request does not belong to the request pattern to which the previous request belongs. As a result, the actual request information E is generated, and a request pattern list having an initial value is generated and associated with the actual request information E (see request time series analysis result (4)).
  • the request pattern management device 34 calculates the elapsed time, and as a result, it is determined that the elapsed time is equal to or greater than the threshold value sT. If the elapsed time is equal to or greater than the threshold value sT, the request A is determined as an actual request because the current request does not belong to the request pattern to which the previous request belongs. However, since the actual request information A already exists, the next request notification is waited for the existing actual request information A as a processing target without newly generating this time.
  • the request patterns A, B, C, and D are issued twice. However, if the elapsed time of the request E notified next is less than the threshold value sT, the current request pattern is still uncertain, but at least the requests A, B, C, D, E, or This is a request pattern in which the above requests continue. On the other hand, if it is equal to or greater than the threshold value sT, it is determined that the current request pattern is A, B, C, D, E. That is, when the threshold value is equal to or greater than the threshold value sT, it is determined that the time series pattern of the actually notified request matches the existing request pattern. In that case, it updates in the direction which strengthens the reliability parameter of the matched existing request pattern.
  • the probability that the request pattern is adopted at the time of the collective request is increased, and as a result, the probability that the prediction is successful can be improved.
  • a request pattern list having an initial value is newly generated. Then, requests B, C, D, and E are set in the subsequent request list in the list, and are associated with the actual request information A (see request time series analysis result (6)).
  • a request pattern having a long pattern can be configured, and the request pattern can be determined according to the operation status of the system.
  • the request issued from the GUI node 1 to the service node 2 is not only an API execution request but also a GUI description data acquisition request for acquiring GUI description data for displaying the next screen on the GUI node, There is a system information acquisition request such as broadcasting to all existing nodes and confirming the existence of the node, and classification can be made according to the requested content.
  • a GUI description data acquisition request When a GUI description data acquisition request is issued, it means that the content displayed on the screen at the GUI node 1 is updated.
  • a request serving as a reference for cutting off the continuation of the request pattern before and after the request is referred to as a termination request.
  • the request pattern In order to construct a finite number of request patterns using this, for example, when a GUI description data acquisition request is notified, the request pattern is set as a request pattern different from the request pattern to which the previous request belongs.
  • the request pattern management device 34 needs to hold a termination request content table indicating whether or not a request to be notified next time should be processed.
  • the termination request content table it can be considered that among all requests issued from the GUI node 1 to the service node 2, the identification information of the request to be determined as the termination request is registered in the table. That is, every time a request is notified, the request pattern management device 34 searches whether the notified request identification information is in the termination request content table, and if there is the notified request identification information. Prepares to determine the request to be notified next time as a new actual request, and waits for the next request notification. On the other hand, if there is no identification information of the notified request, prepare for adding a request to be notified next time to the request pattern to which the previously notified request belongs, and wait for the next request notification .
  • the current request determined as the termination request may be added to the request pattern to which the previously notified request belongs. Assuming that the criterion is described in the termination request content table, it may be determined to add to the request pattern according to the criterion.
  • the termination request content table may be held by the request pattern management device 34 in a fixed manner.
  • the termination request content table may be acquired by the GUI node 1 from the service node 2.
  • the request pattern management device 34 determines one or more requests that are expected to be requested after the request, using as a key the request passed by the request pattern generation instruction output from the batch request processing device 33. At this time, a result obtained by excluding a specific request from one or more determined requests is returned to the collective request processing device 33. For example, if a request that is predicted to be requested later includes a request for changing the state of the service node 2 (service state change request), a collective request is made in a state including the service state change request. When it is generated and the batch request is transmitted to the service node 2, the service node 2 executes a service state change request, and the state of the service node is updated.
  • the service state change request is not determined as a request to be actually requested by the GUI node 1, its execution may cause a state of the service node 2 that is not assumed for the GUI node 1. is there.
  • the request pattern management device 34 determines the corresponding request pattern from the request pattern data, and then excludes a specific request from the request pattern, thereby It is possible to update to a request pattern that does not cause the state change of the service node 2 that the GUI node 1 does not expect.
  • the request is excluded from the request pattern, a new request pattern is constructed, and the request pattern is batched It is returned to the request processing device 33.
  • the request pattern management device 34 updates the request pattern data
  • control is performed so that the request to be excluded is not stored in the request pattern data.
  • the process for excluding the request to be excluded from the request pattern may not be performed.
  • information that is a criterion for determining a request pattern to be excluded may be held as a fixed value in the GUI node 1. Further, the information that becomes the determination criterion may be determined based on the criterion for each service node 2 operating in cooperation with the system by making an acquisition request to the service node 2 at the time of system startup or the like.
  • the batch request interpretation device 42 on the service node 2 side It is also possible to notify the collective response generation apparatus 45 of an error response without outputting the request determined to be excluded to the request processing apparatus 43 without outputting the request. In that case, when the response processing device 36 of the GUI node 1 detects an error response, control is performed so that the error response is not stored in the response storage device 31.
  • the response processing device 36 stores information such as responses corresponding to the execution request and the prediction request included in the batch response received by the communication device 35 in the response storage device 31. However, once information is stored in the response storage device 31, it will continue to be stored if nothing is done. However, if the information continues to be stored indefinitely, there is a possibility that the information does not match the actual service node 2 information. Therefore, in the fourth embodiment, control such as deleting a response stored in the response storage device 31 at a certain timing is performed.
  • the following method can be considered.
  • the response storage device 31 receives a response storage request relating to a certain response from the response processing device 36
  • the response storage device 31 stores the response together with time information at the time of reception.
  • the response processing device 36 calculates the elapsed time from the storage start time for all responses currently stored in the response storage device 31 at regular time intervals, and sets the certain elapsed time to a certain threshold. If it has elapsed, control is performed to delete the response from the response storage device 31. By performing the above control, it is possible to eliminate a situation where a specific response is permanently stored.
  • the following method can be considered.
  • the response storage device 31 receives a response acquisition request corresponding to a request from the response processing device 36
  • the response storage device 31 searches whether the response to the specified request is stored.
  • a response is returned to the response processing device 36.
  • the response processing device 36 performs control to delete the response from the response storage device 31. By performing this control, it is possible to eliminate the situation where a specific response is permanently stored.
  • the response storage device 31 provides an area for storing how many times the acquisition request is made for the response to be saved, and stores 0 in the area when saving the response. Increment every time it is processed.
  • the response processing device 36 determines whether or not the value of the area is N, and deletes the response when the value becomes N.
  • the following method can be considered.
  • the collective response generation device 45 of the service node 2 When the collective response generation device 45 of the service node 2 generates a collective response, information (expiration date information) in which the response becomes an expiration date in the GUI node 1 together with each response, for example, the reference count or Generate survival time by including it in a batch response.
  • the response processing device 36 of the GUI node 1 that has received the collective response extracts each response included in the collective response and the expiration date information corresponding thereto, and stores them in the response storage device 31 as a set.
  • the response processing device 36 When the expiration date information is the reference count, the response processing device 36 outputs the response acquisition request corresponding to a certain request to the response storage device 31, and the response expiration date information corresponding to the request and the request If the expiration date information is smaller, control is performed to delete the response from the response storage device 31.
  • the response processing device 36 calculates the elapsed time from the storage start time for all responses stored in the response storage device 31 at regular time intervals. When the elapsed time of the response has exceeded a certain threshold, control is performed to delete the response from the response storage device 31.
  • the expiration date information may not be stored every time in a batch response.
  • an expiration date information table in which the expiration date information for all responses is described is defined, the GUI node 1 holds the response, and a response that has exceeded the expiration date is stored using the information in the expiration date information table. It may be determined and the deletion process may be performed.
  • the service node 2 holds the expiration date information table, and the service node 2 may provide the GUI node 1 as a response to the explicit request for acquiring the expiration date information table from the GUI node 1. .
  • the batch response generation apparatus 45 of the service node 2 includes response provision management means for managing to which GUI node 1 a response corresponding to which request is transmitted to which GUI node 1 when generating the batch response. Yes.
  • the response provision management means manages, for example, a response corresponding to which request and what value is transmitted to which GUI node 1 using a response provision management table as shown in FIG.
  • a provision response ID indicating which request corresponds to a response
  • a provision response value indicating a specific value of the provided response
  • the provision destination GUI node ID list may be omitted.
  • the response provision management table (1) of FIG. 33 shows a state where there are two types of responses provided to the GUI node 1.
  • the provided response ID an example in which a part of a URL serving as a request corresponding to the response is extracted and described as an ID is shown.
  • the provided response value an example of storing a value in the JSON format as a response is shown.
  • the provision destination GUI node ID list an example in which a part of the domain name of the GUI node 1 as the request source is extracted and described as an ID is shown. For example, it is shown that a response with the provided response ID “/ srv1 / getProps ()” is provided to two types of GUI nodes 1 whose domain names are “GUInode1” or “GUInode2”.
  • the collective response generation device 45 detects that the provision response ID has been updated, for example, all or part of the response value “/ srv1 / getProps ()”.
  • the collective response generation apparatus 45 sends a response ID “/ srv1 /” to the GUI node 1 registered in the provision destination GUI node ID list corresponding to the provision response ID “/ srv1 / getProps ()”.
  • a response delete request event indicating a delete request is issued from the response storage device 31 as a response of “getProps ()”.
  • FIG. 34 is an explanatory diagram of a description example of a response deletion request event.
  • a response deletion request event is described as an array object in the JSON format.
  • the first element describes the event name that is the event identification information
  • the second element describes the response ID to be deleted.
  • the event identification information need not be limited to the event name, and may be an event identification number defined for each event.
  • all elements after the second element are one response deletion request event.
  • a plurality of response IDs to be deleted may be described.
  • a method of voluntarily transmitting information from the server device to the client terminal can be realized by using Comet, Server-Sent Events, and WebSocket API.
  • the collective response generation device 45 deletes the element in which the response corresponding to the event is described from the response provision management table. For example, when a response deletion request event is issued for an element whose response ID is “/ srv1 / getProps ()” in the state of the response provision management table (1) in FIG. 33, the corresponding element is deleted. Thus, the response provision management table is updated to the state of the response provision management table (2) in FIG.
  • the response processing device 36 interprets the response deletion request event and requests the response storage device 31 to delete the response corresponding to the response ID to be deleted. By doing so, control is performed to delete the response from the response storage device 31. By performing the above control, it is possible to avoid a situation where the response storage device 31 continues to store until the response stored in the response storage device 31 of the GUI node 1 does not match the state in the service node 2.
  • the batch response generation apparatus 45 may issue a response update request event instead of a response deletion request event.
  • the response update request event is a request from the service node 2 to the GUI node 1 to update the specific response stored in the response storage device 31 of the GUI node 1 to the response value described in the event.
  • FIG. 35 is an explanatory diagram of a description example of a response update request event.
  • a response update request event is described as an array object in the JSON format.
  • the first element describes an event name that is event identification information
  • the second element describes a response ID to be updated
  • the third element describes a response value to be updated.
  • the event identification information need not be limited to the event name, and may be an event identification number defined for each event.
  • the event identification information need not be limited to the event name, and may be an event identification number defined for each event.
  • only one set of response ID to be updated and the value of the response to be updated is described, but a plurality of response IDs may be described.
  • the collective response generation device 45 After issuing the response update request event, the collective response generation device 45 searches the response provision management table for an element in which a response corresponding to the event is described, and sets the provided response value of the element to the value of the response to be updated. rewrite. For example, when the response update request event shown in FIG. 35 is issued for the element whose response ID is “/ srv1 / getProps ()” in the state of the response provision management table (1) in FIG. 33, provision of the corresponding element is provided. The value of the response value is rewritten to the value of the response to be updated in the response update request event, and updated to the state of the response provision management table (3) in FIG.
  • a response that is a target for issuing a response update request event may be limited to some responses.
  • a response corresponding to an API execution request for referring to an internal variable held by the service node 2 is frequently updated as the internal state of the service node 2 changes.
  • a response corresponding to an API execution request that calls a specific function of a service and returns a processing success / failure flag as a response is to return a success flag in the majority of cases if it is normal processing. Thus, the response is not updated frequently.
  • a response update request event may be issued only for a reference request API for a variable that represents a frequently requested response and that represents the internal state of the service node that is frequently updated.
  • the collective response generation device 45 constructs the response provision management table, it is determined whether or not the response is a response corresponding to a request to be issued of the response update request event. This can be achieved by providing a function for skipping registration processing in the response provision management table.
  • the processing in the GUI node 1 that refers to the internal state of the service node 2 varies greatly depending on the GUI contents being processed in the GUI node 1. Therefore, it is conceivable to suppress the occurrence of an event by managing the response provision management table held by the collective response generation device 45 for each GUI description data.
  • the service node 2 that has received the GUI description data acquisition request may delete the response provision management table constructed so far by the collective response generation apparatus 45 and construct a new response provision management table. In this case, when there are a plurality of GUI nodes 1 that cooperate with the service node 2, the response provision management table managed by the batch response generation device 45 is constructed for each GUI node 1, and a GUI description data acquisition request is sent from each GUI node 1.
  • the present invention is suitable for a communication system that needs to sufficiently reduce the number of network communications related to cooperation processing.
  • GUI node client terminal
  • 2 service node server device
  • 3 network 11 GUI processing module
  • 12 display 13 input interface
  • 14 output interface 21a, 21b, 21c service module (response generation means), 22 service Provision module
  • 31 response storage device response storage means
  • 32 GUI processing device execution request issuing means
  • 33 batch request processing device request pattern generation means
  • 34 request pattern management device request pattern generation means
  • 35 communication Device communication means
  • 36 response processing device response processing means
  • 41 communication device response pattern reception means, response transmission means
  • 42 collective request interpretation device response processing device
  • 43 request processing device (response acquisition means)
  • 44a, 44 , 44c service execution unit the response generation means
  • 45 collective response generator response storage device (response obtaining means).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

 GUI処理装置32により発行された実行要求に対応する応答が応答記憶装置31に記憶されていれば、その応答をGUI処理装置32に出力する旨を指示する出力指令を出力する一方、その実行要求に対応する応答が応答記憶装置31に記憶されていなければ、その実行要求に続いて発行される可能性がある要求の予測を行って、その実行要求と予測要求からなる要求パターンの生成を要求パターン管理装置34に指示し、要求パターン管理装置34により生成された要求パターンを含む一括要求を生成する一括要求処理装置33を備えている。

Description

通信システム、クライアント端末及びサーバ装置
 この発明は、サービスの実行要求を発行するクライアント端末と、実行要求に対応するサービスの処理結果をクライアント端末に返信するサーバ装置と、クライアント端末及びサーバ装置からなる通信システムとに関するものである。
 組み込み機器上でGUI(Graphical User Interface)を持つアプリケーションを動作させる場合、従来は、アプリケーションの挙動を規定するサービスロジックとGUIを同一の組み込み機器に実装し、そのサービスロジックとGUIを連携動作させる方式が主流である。
 ただし、PC(Personal Computer)を中心とする環境では、インターネットを代表とするネットワーク技術を利用し、サービスロジックとGUIをネットワーク上の別ノードに実装するサーバ・クライアント方式が主流になってきている。
 具体的には、サービスロジックをサーバ装置(ノード)に実装して、GUIをクライアント端末(ノード)に実装し、クライアント端末がネットワーク経由でサーバ装置にアクセスすることで連携動作を実現し、その結果、1つのアプリケーションを構成することが考えられる。
 近年、無線ネットワーク技術の普及によって、組み込み機器でも、常時ネットワークに接続可能な環境が整いつつある。また、組み込み機器の処理性能の向上が進んでいる。
 このため、サーバ・クライアント方式のアプリケーションを組み込み機器上で実現することが現実的になってきている。
 しかし、従来は、同一ノード内のプロセス間通信によって、サービスロジックとGUIが連携動作していたが、ネットワーク間通信での連携に変更する必要があるため、その連携処理がボトルネックになる。そのため、連携処理に係るネットワーク通信の回数を削減するなどの対策が必要となる。
 以下の特許文献1には、クライアント端末に表示されるGUIの画面単位に、その画面上での利用者の操作をクライアント端末が予測し、その操作が実際に行われる前に、その操作で必要となる連携処理を予め実行しておくことで、操作発生時に通信処理が発生しないようにしている通信システムが開示されている。
 ただし、この通信システムでは、GUIの画面が表示された直後にだけ、利用者の操作を予測するものであり、利用者の操作に伴って画面が遷移しなければ、再度の予測が行われない。
 そのため、同一画面を長時間表示するようなアプリケーションでは、連携処理に係るネットワーク通信の回数を十分に削減することができない。
 また、特許文献2には、以下の通信システムが開示されている。
 クライアント端末から何らかの処理の実行要求が発行された場合、サーバ装置が、その実行要求に付随して要求される可能性のある処理を予測して、実際に発行された実行要求に対応する処理を実行するとともに、付随して要求(以下、「予測要求」と称する)される可能性のある処理を実行する。
 サーバ装置は、実際に発行された実行要求に対応する処理結果をクライアント端末に返信した後、順次、予測要求に対応する処理結果をクライアント端末に返信する。
 クライアント端末では、サーバ装置における予測が的中していれば、サーバ装置から返信されている予測要求に対応する処理結果を利用することが可能であるため、新たな実行要求をサーバ装置に送信する必要がなくなり、連携処理に係るボトルネックを軽減することができる。
 しかし、サーバ装置が、予測要求に対応する処理結果をクライアント端末に返信する際、実際に発行された実行要求から予測される要求数が増加すると、通信処理負荷が増大する。
 また、クライアント端末では、サーバ装置が如何なる要求を予測しているのかが不明であるため、サーバ装置から予測要求に対応する処理結果を受信する前に、クライアント端末が当該予測要求と同じ要求を発行してしまう可能性がある。
 クライアント端末が予測要求と同じ要求を発行してしまうと、通信回数を削減することができない。また、サーバ装置では、同じ要求に対応する処理を複数回実行する必要が生じる。
特開平7-160462号公報(段落番号[0017]から[0019]) 特開2005-228228号公報(段落番号[0021][0037])
 従来の通信システムは以上のように構成されているので、特許文献1の場合、利用者の操作に伴って画面が遷移しなければ、再度の予測が行われない。そのため、同一画面を長時間表示するようなアプリケーションでは、連携処理に係るネットワーク通信の回数を十分に削減することができない課題があった。
 また、特許文献2の場合、実際に発行された実行要求から予測される要求数が増加すると、予測要求に対応する処理結果の通信負荷が増大する課題があった。また、クライアント端末では、サーバ装置が如何なる要求を予測しているのかが不明であるため、サーバ装置から予測要求に対応する処理結果を受信する前に、クライアント端末が当該予測要求と同じ要求を発行してしまう可能性があり、クライアント端末が予測要求と同じ要求を発行してしまうと、通信回数を削減することができない課題があった。
 この発明は上記のような課題を解決するためになされたもので、連携処理に係るネットワーク通信の回数を十分に削減することができる通信システムを得ることを目的とする。
 この発明に係る通信システムは、クライアント端末が、サーバ装置から返信された応答を記憶する応答記憶手段と、サービスの実行要求を発行する実行要求発行手段と、実行要求発行手段により発行された実行要求に対応する応答が応答記憶手段に記憶されていれば、その応答を実行要求発行手段に出力する旨を指示する出力指令を出力する一方、その実行要求に対応する応答が応答記憶手段に記憶されていなければ、その実行要求に続いて発行される可能性がある要求を予測し、その予測要求と上記実行要求からなる要求パターンを生成する要求パターン生成手段と、要求パターン生成手段により生成された要求パターンをサーバ装置に送信する一方、その要求パターンを構成している実行要求及び予測要求に対応するサーバ装置から送信された応答を受信する通信手段と、要求パターン生成手段から出力指令を受けると、応答記憶手段に記憶されている実行要求に対応する応答を実行要求発行手段に出力し、通信手段により実行要求及び予測要求に対応する応答が受信されると、その実行要求及び予測要求に対応する応答を応答記憶手段に格納するとともに、その実行要求に対応する応答を実行要求発行手段に出力する応答処理手段とから構成されているようにしたものである。
 この発明によれば、実行要求発行手段により発行された実行要求に対応する応答が応答記憶手段に記憶されていれば、その応答を実行要求発行手段に出力する旨を指示する出力指令を出力する一方、その実行要求に対応する応答が応答記憶手段に記憶されていなければ、その実行要求に続いて発行される可能性がある要求を予測し、その予測要求と上記実行要求からなる要求パターンを生成する要求パターン生成手段と、要求パターン生成手段により生成された要求パターンをサーバ装置に送信する一方、その要求パターンを構成している実行要求及び予測要求に対応するサーバ装置から送信された応答を受信する通信手段とを設け、応答処理手段が、要求パターン生成手段から出力指令を受けると、応答記憶手段に記憶されている実行要求に対応する応答を実行要求発行手段に出力し、通信手段により実行要求及び予測要求に対応する応答が受信されると、その実行要求及び予測要求に対応する応答を応答記憶手段に格納するとともに、その実行要求に対応する応答を実行要求発行手段に出力するように構成したので、実行要求に対応する応答が応答記憶手段に記憶されていれば、その実行要求を送信する必要がなくなり、その結果、連携処理に係るネットワーク通信の回数を十分に削減することができる効果がある。
この発明の実施の形態1による通信システムを示す構成図である。 この発明の実施の形態1による通信システムに適用するGUIノード1のGUI処理モジュール11を示す構成図である。 この発明の実施の形態1による通信システムに適用するサービスノード2のサービス提供モジュール22を示す構成図である。 GUIノード1におけるGUI処理装置32の処理シーケンス(API実行要求に対応する応答の記憶がない場合)を示すシーケンス図である。 GUIノード1におけるGUI処理装置32の処理シーケンス(API実行要求に対応する応答の記憶がある場合)を示すシーケンス図である。 一括要求処理装置33がAPI実行要求であるのか、API実行要求以外の要求であるのかを判定する処理を示すフローチャートである。 サービスノード2におけるサービス提供モジュール22の処理シーケンスを示すシーケンス図である。 要求パターンのデータ構造を示す説明図である。 実要求情報リストのデータ構造を示す説明図である。 後続要求パターンリストのデータ構造を示す説明図である。 実要求情報リストデータ構造及び後続要求パターンリストデータ構造を用いた具体的な要求パターンの一例を示す説明図である。 処理対象リストの参照例を示す説明図である。 要求パターン取得時の要求時系列解析結果の更新処理を示すフローチャートである。 実要求通知時の要求時系列解析結果の更新処理を示すフローチャートである。 処理対象リストの参照例を示す説明図である。 処理対象リストの参照例を示す説明図である。 予測要求パターンの組み合わせ例を示す説明図である。 URLによるAPIの識別情報の記述例を示す説明図である。 URLによるAPIの識別情報の記述例を示す説明図である。 単一のサービスに対する複数のAPIと、各APIに対する複数の引数リストを1つのテキスト形式データで表現している具体例を示す説明図である。 一括要求表現形式例を示す説明図である。 応答の具体的なデータ表現例を示す説明図である。 一括応答の具体的なデータ表現例を示す説明図である。 GUIに表示される地図画像の一例を示す説明図である。 地図更新に伴う要求例を示すシーケンス図である。 縮尺変更に伴う要求例を示すシーケンス図である。 GUIに表示される地図画像の一例を示す説明図である。 図27の画面に伴う要求例を示すシーケンス図である。 画面単位で独立した要求パターン管理を行う場合の要求時系列解析結果のデータ構造例を示す説明図である。 予測要求パターン数を最大5個までとした場合の要求パターンデータの生成例を示す説明図である。 前回の要求通知から今回の要求通知までの経過時間を算出する処理を示すフローチャートである。 経過時間を利用した場合の要求パターンデータの生成例を示す説明図である。 応答提供管理テーブルの一例を示す説明図である。 応答削除要求イベントの記述例を示す説明図である。 応答更新要求イベントの記述例を示す説明図である。
 以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態1.
 図1はこの発明の実施の形態1による通信システムを示す構成図である。
 図1において、クライアント端末であるGUIノード1はGUIを実装し、システムのGUI制御を行うノードである。
 即ち、GUIノード1はネットワーク3経由でサービスノード2と連携して、システムとしてのサービスを実現するノードであり、具体的には、サービスの実行要求をネットワーク3経由でサービスノード2に発行して、サービスノード2からネットワーク3経由で実行要求に対応するサービスの処理結果である応答を取得する。
 サーバ装置であるサービスノード2はシステムとして実現するサービスのロジック処理を行うノードであり、具体的には、クライアント端末1により発行された実行要求に対応するサービスを実行して、そのサービスの処理結果である応答を生成し、その応答をネットワーク3経由でクライアント端末1に返信する。
 GUIノード1はGUIに関する制御全般を行うGUI処理モジュール11と、GUIを表示するディスプレイ12と、例えばGUI処理に反映させる各種情報の入力を受け付ける入力インタフェース13と、例えばスピーカを含む音声出力機器等が接続されている出力インタフェース14とから構成されている。
 ただし、ディスプレイ12、入力インタフェース13及び出力インタフェース14は、GUIノード1内に存在していなくてもよく、必要に応じてネットワーク3に接続されている別ノード上に分散して配置しても構わない。その場合には、GUIノード1は、ネットワーク3経由で別ノードと連携動作することになる。
 この実施の形態1では、GUIノード1がコンピュータで構成されているものを想定しているので、事前に、後述するGUI処理モジュール11の処理内容を示すプログラムをコンピュータのメモリに格納しておき、コンピュータのCPUが当該メモリに格納されているプログラムを実行することで、GUI処理モジュール11を構築するものとする。
 なお、GUI処理モジュール11の内部構成は後述するが、GUI処理モジュール11の構成要素のそれぞれを専用のハードウェア(例えば、CPUを実装している半導体集積回路、あるいは、ワンチップマイコン)で構成するようにしてもよい。
 サービスノード2は各種の実行要求に対応するサービスを実行し、そのサービスの処理結果である応答を生成するサービスモジュール21a,21b,21cと、GUIノード1とネットワーク間通信を実施し、GUIノード1から送信された実行要求に対応する応答をGUIノード1に返信する処理などを行うサービス提供モジュール22とから構成されている。
 図1では、サービスノード2が3つのサービスモジュール21a,21b,21cを実装している例を示しているが、サービスモジュールの実装数は3つに限るものではなく、3つ未満でも、4つ以上でもよい。
 この実施の形態1では、サービスノード2がコンピュータで構成されているものを想定しているので、事前に、後述するサービス提供モジュール22及びサービスモジュール21a,21b,21cの処理内容を示すプログラムをコンピュータのメモリに格納しておき、コンピュータのCPUが当該メモリに格納されているプログラムを実行することで、サービス提供モジュール22及びサービスモジュール21a,21b,21cを構築するものとする。
 なお、サービス提供モジュール22の内部構成は後述するが、サービス提供モジュール22の構成要素のそれぞれを専用のハードウェア(例えば、CPUを実装している半導体集積回路、あるいは、ワンチップマイコン)で構成するようにしてもよい。
 サービスモジュール21a,21b,21cは、サービス仕様で定義されている機能を呼び出すためのAPI(Application Program Interface)を一つ以上有しており、どのタイミングで、どのAPIを実行するかは、(1)サービスノード2の内部制御ロジックに従う場合と、(2)GUIノード1から送信されるAPI実行要求に従って決まる場合の2通りが存在する。
 (1)の場合には、各サービスモジュールが有するAPIを実行するが、(2)の場合には、GUIノード1から送信されたAPI実行要求を受信したサービス提供モジュール22が実行する。
 本発明は、(2)の場合に関するものであるため、明細書中では、(1)の場合については言及しない。
 図2はこの発明の実施の形態1による通信システムに適用するGUIノード1のGUI処理モジュール11を示す構成図である。
 図2において、応答記憶装置31は例えばRAMやハードディスクなどの記録媒体から構成されており、サービスノード2からネットワーク3経由で返信された応答を記憶する処理を実施する。なお、応答記憶装置31は応答記憶手段を構成している。
 GUI処理装置32は例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、API実行要求(サービスの実行要求)を発行して、そのAPI実行要求に対応する応答を取得し、その応答をディスプレイ12に表示する処理を実施する。
 ここでは、API実行要求に対応する応答をディスプレイ12に表示する例を示しているが、その応答を音声で出力するようにしてもよい。具体的には、その応答を音声データに変換して、その音声データを出力インタフェース14に出力し、その出力インタフェース14に接続されている各種機器が音声データを解釈して、スピーカ等から音声を出力するようにすればよい。
 なお、GUI処理装置32は実行要求発行手段を構成している。
 一括要求処理装置33は例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、GUI処理装置32により発行されたAPI実行要求に対応する応答が応答記憶装置31に記憶されていれば、その応答をGUI処理装置32に出力する旨を指示する出力指令を応答処理装置36に出力する一方、そのAPI実行要求に対応する応答が応答記憶装置31に記憶されていなければ、そのAPI実行要求に続いて発行される可能性がある要求(以下、「予測要求」と称する)の予測を行って、そのAPI実行要求と予測要求からなる要求パターンの生成を要求パターン管理装置34に指示し、要求パターン管理装置34により生成された要求パターンを通信装置35に出力する処理を実施する。
 要求パターン管理装置34は例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、API実行要求の時系列パターンを動的解析して、その要求時系列解析結果を管理する機能を備えており、その要求時系列解析結果を参照して、一括要求処理装置33から出力されたAPI実行要求に続いて発行される可能性がある要求を予測し、そのAPI実行要求と予測要求からなる要求パターンを生成する処理を実施する。
 なお、一括要求処理装置33及び要求パターン管理装置34から要求パターン生成手段が構成されている。
 通信装置35はネットワーク3に対するインタフェース機器であり、要求パターン管理装置34により生成されて、一括要求処理装置33から出力された要求パターンをネットワーク3経由でサービスノード2に送信する一方、その要求パターンを構成しているAPI実行要求及び予測要求に対応するサービスノード2から送信された応答を受信する処理を実施する。なお、通信装置35は通信手段を構成している。
 応答処理装置36は例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、一括要求処理装置33から出力指令を受けると、応答記憶装置31に記憶されているAPI実行要求に対応する応答をGUI処理装置32に出力する処理を実施する。
 また、応答処理装置36は通信装置35により受信されたAPI実行要求及び予測要求に対応する応答を応答記憶装置31に格納するとともに、そのAPI実行要求に対応する応答をGUI処理装置32に出力する処理を実施する。なお、応答処理装置36は応答処理手段を構成している。
 ここでは、GUI処理モジュール11の構成要素である応答記憶装置31、GUI処理装置32、一括要求処理装置33、要求パターン管理装置34、通信装置35及び応答処理装置36のそれぞれが専用のハードウェアで構成されている例を示しているが、GUI処理装置32、一括要求処理装置33、要求パターン管理装置34、通信装置35及び応答処理装置36のそれぞれがソフトウェアで構築されていてもよい。
 その場合には、GUI処理装置32、一括要求処理装置33、要求パターン管理装置34、通信装置35及び応答処理装置36の処理内容を記述しているプログラムをGUIノード1のメモリに格納し、GUIノード1のCPUが当該メモリに格納されているプログラムを実行するようにすればよい。
 図3はこの発明の実施の形態1による通信システムに適用するサービスノード2のサービス提供モジュール22を示す構成図である。
 図3において、通信装置41はネットワーク3に対するインタフェース機器であり、GUIノード1から送信された要求パターンを受信する一方、その要求パターンを構成しているAPI実行要求及び予測要求に対応する応答をネットワーク経由3でGUIノード1にまとめて返信する処理を実施する。なお、通信装置41は要求パターン受信手段及び応答送信手段を構成している。
 一括要求解釈装置42は例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、通信装置41により受信された要求パターンを構成しているAPI実行要求及び予測要求を分解して、個々の要求を要求処理装置43に出力する一方、要求処理装置43から出力された個々の要求に対応する応答を一括応答生成装置45に出力し、一括応答生成装置45により生成された一括応答(個々の要求に対応する応答がまとめられている応答)を通信装置41に出力する処理を実施する。
 要求処理装置43は例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、一括要求解釈装置42から出力された個々の要求毎に、当該要求に対応するサービスを実行するサービスモジュール21を特定して、当該要求を当該サービスモジュール21に対応するサービス実行装置44に与える一方、そのサービス実行装置44から出力された応答を取得して、その応答を一括要求解釈装置42に出力する処理を実施する。
 例えば、当該要求に対応するサービスを実行するサービスモジュール21がサービスモジュール21aであれば、当該要求をサービス実行装置44aに与えて、そのサービス実行装置44aから当該要求に対応する応答を一括要求解釈装置42に出力する。
 サービス実行装置44aは例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、要求処理装置43から出力された要求をサービスモジュール21aに与えることで、その要求に対応するサービスを実行させて、サービスモジュール21aからサービスの処理結果である応答を取得し、その応答を要求処理装置43に出力する処理を実施する。
 サービス実行装置44bは例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、要求処理装置43から出力された要求をサービスモジュール21bに与えることで、その要求に対応するサービスを実行させて、サービスモジュール21bからサービスの処理結果である応答を取得し、その応答を要求処理装置43に出力する処理を実施する。
 サービス実行装置44cは例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、要求処理装置43から出力された要求をサービスモジュール21cに与えることで、その要求に対応するサービスを実行させて、サービスモジュール21cからサービスの処理結果である応答を取得し、その応答を要求処理装置43に出力する処理を実施する。
 なお、サービスモジュール21a,21b,21c及びサービス実行装置44a,44b,44cから応答生成手段が構成されている。
 一括応答生成装置45は例えばCPUを実装している半導体集積回路、あるいは、ワンチップマイコンなどから構成されており、要求処理装置43から個々の要求に対応する応答を受けると、その応答を応答記憶装置46に一時的に格納し、要求パターンを構成している全ての要求に対応する応答をまとめて、一括応答を生成する処理を実施する。
 応答記憶装置46は例えばRAMやハードディスクなどの記録媒体から構成されており、応答を一時的に格納する。
 なお、一括要求解釈装置42、要求処理装置43、一括応答生成装置45及び応答記憶装置46から応答取得手段が構成されている。
 ここでは、サービス提供モジュール22の構成要素である通信装置41、一括要求解釈装置42、要求処理装置43、サービス実行装置44a,44b,44c、一括応答生成装置45及び応答記憶装置46のそれぞれが専用のハードウェアで構成されている例を示しているが、通信装置41、一括要求解釈装置42、要求処理装置43、サービス実行装置44a,44b,44c及び一括応答生成装置45のそれぞれがソフトウェアで構築されていてもよい。
 その場合には、通信装置41、一括要求解釈装置42、要求処理装置43、サービス実行装置44a,44b,44c及び一括応答生成装置45の処理内容を記述しているプログラムをサービスノード2のメモリに格納し、サービスノード2のCPUが当該メモリに格納されているプログラムを実行するようにすればよい。
 次に動作について説明する。
 GUIノード1からサービスノード2へのAPI実行要求は、ネットワーク3経由で転送される。
 サービスノード2はネットワーク3経由でAPI実行要求を受信すると、そのAPI実行要求で指定されたサービスに係る指定のAPIを実行し、そのAPIの実行結果を応答として、ネットワーク3経由でGUIノード1に返信する。
 上記の通り、GUIノード1とサービスノード2が連携することで、システム全体として、サービスノード2が有する各種のサービスをユーザに提供する。
 以下、具体例をあげて、GUIノードとサービスノードが連携することで、サービスの実現が可能であることを説明する。
 ここでは、現在位置の周辺地図画像をディスプレイ12に表示する通信システムを想定する。
 この場合、現在位置の座標情報を定期的に取得する処理(現在位置捕捉処理)と、現在位置の座標情報に基づいて、指定された縮尺で地図画像を生成する処理(地図生成処理)と、地図生成処理により生成された地図画像をディスプレイ12に表示する処理(地図表示処理)とが必要になる。
 このとき、現在位置捕捉処理は、現在位置に関する情報を提供するサービスと捉えられる。同様に、地図生成処理も、位置情報に基づいて現在位置の周辺地図を提供するサービスと捉えられる。つまり、現在位置捕捉処理及び地図生成処理は、サービスノード2の処理となる。
 一方、地図表示処理は、現在位置捕捉処理及び地図生成処理の処理結果を加工してディスプレイ12に表示する処理であるため、GUIノード1の処理となる。
 次に、サービスノード2がGUIノード1に提供すべきAPIについて説明する。
 システム全体として、現在位置の周辺地図画像をディスプレイ12に表示すればよいため、サービスノード2がGUIノード1に提供すべきAPIは、現在位置周辺の地図提供APIのみとなる。
 したがって、サービスノード2がGUIノード1から現在位置周辺の地図提供APIを受けると、現在位置捕捉処理を実施することで得られる現在位置情報をパラメータとして地図生成処理を実施し、その処理結果である地図情報を現在位置周辺の地図提供APIの処理結果として、要求元であるGUIノード1に返信できればよい。
 GUIノード1では、GUI処理モジュール11が、サービスノード2に対して、現在位置周辺の地図提供APIのAPI実行要求を一定間隔で発行する一方、サービスノード2からAPI実行要求の応答として得られる地図情報をディスプレイ12に表示可能なデータに加工することで、地図画像をディスプレイ12に表示する処理を実施する。
 これにより、システムとして要求されているサービスをシステム利用者に提供することが可能になる。
 GUIノード1とサービスノード2間の具体的な処理シーケンスを説明する前に、GUIノード1が取り扱うGUI記述データについて説明する。
 GUIノード1で実現するGUIを記述しているGUI記述データの一例として、HTML(Hyper Text Markup Language)が挙げられる。
 HTMLは、文書の構造や表示の仕方などを記述することが可能な標準記述言語であり、その記述言語によって記述されたデータを指すものである。
 また、HTMLは、HTMLで記述された文書の外観の設定を記述するCSS(Cascade Style Sheet)や、HTMLで記述された文書内のオブジェクト等の制御を記述するJavaScript(登録商標。以下省略する。)を利用することが可能である。
 上述の通り、HTMLは、本来文書の構造を記述する言語であるが、機能が拡充されており、近年では、アプリケーションやGUIの開発言語としても利用されることが多くなってきている。
 一般的に、GUIは、GUI中のオブジェクトやデータを規定するModel、GUIの外観を規定するView、ModelやViewの制御を規定するControlに分けてデータ表現が可能である。
 HTML、CSS、JavaScriptによってGUIの記述を行う場合、GUI処理モジュール11は、ブラウザとして捉えることが可能である。
 HTMLをGUI記述データに採用することで、画面に表示するテキストやボタン等のGUIに必要なオブジェクトの配置や外観を、HTMLによって記述することが可能である。また、各オブジェクトに対するユーザ操作やタイマー等のイベントに対応する制御や、HTTP(Hyper Text Transfer Protocol)等を用いた通信制御は、JavaScriptによって記述することが可能である。
 GUIノード1をクライアント端末、サービスノード2をサーバ装置として捉えることで、サービスノード2に対するHTTPリクエストとして、API実行要求を発行する処理をJavaScriptで記述ことが可能である。
 また、GUI処理モジュール11で、そのJavaScriptを実行することで、GUIノード1からサービスノード2へAPI実行要求を送信することが可能になり、HTTPレスポンスとして、GUIノードが、そのAPI実行要求に対応する処理結果を受信することが可能になる。
 これ以降では、GUI記述データは、HTML、CSS及びJavaScriptを利用し、GUIノード1とサービスノード2との間の通信プロトコルは、HTTPを採用する方式で説明を行うが、本発明は、その方式に限定するものではなく、GUIノード1でGUIを実現するための情報を記述することが可能であり、かつ、サービスノード2との通信を記述可能なGUI記述データであれば構わない。
 なお、GUI記述データは、GUIノード1が保持していても構わないが、サービスノード2が保持しており、GUIノード1が必要に応じて、サービスノード2から取得する方式でも構わない。
 その場合、GUI記述データの取得要求は、上記のAPI実行要求とは異なるものとして扱うものとする。以降、特に断りがなければ、要求と記述している場合には、API実行要求のことを指すものとする。
 また、ネットワーク3に接続される別のノード(例えば、GUI記述データを保管し、要求に応じて当該GUI記述データを提供するGUIデータサーバ)にGUI記述データを保管し、GUIノード1が必要に応じて、別のノードから取得する方式としても構わない。
 次に、GUIノード1がAPI実行要求を発行して、API実行要求の処理結果を取得する際の処理内容を説明する。
 図4及び図5はGUIノード1におけるGUI処理装置32の処理シーケンスを示すシーケンス図である。
 ただし、図4は応答記憶装置31がAPI実行要求に対応する応答を記憶していない場合の処理シーケンスを示し、図5はAPI実行要求に対応する応答を記憶している場合の処理シーケンスを示している。
 まず、GUI処理装置32は、API実行要求を発行する(ステップST1)。
 このAPI実行要求は、実行対象となるAPIに関する情報を含む要求(図4及び図5では、「要求A」と表記している)と一緒に、その要求に対応する応答を応答処理装置36が取得した際に実行すべきコールバック関数を指定することが可能であるものとする。
 これにより、GUI処理装置32は、API実行要求に対応する応答をGUIノード1が受け取ったことをトリガーとして処理を開始することが可能になる。
 なお、通信可能なサービスノード2が唯一である場合には、API実行要求の送信先を示すサービスノード情報をパラメータで与えなくてもよいが、通信可能なサービスノード2が複数ある場合や、唯一である場合でも明示的にサービスノード情報をパラメータとして与えるとしてもよい。その場合、サービスノード情報をURLとして表現しても構わない。
 一括要求処理装置33は、GUI処理装置32から要求を受けると、その要求がAPI実行要求であるのか、API実行要求以外の要求であるのかを判定する(ステップST2)。
 ここで、図6は一括要求処理装置33がAPI実行要求であるのか、API実行要求以外の要求であるのかを判定する処理を示すフローチャートである。
 一括要求処理装置33は、GUI処理装置32から要求が出力されるまで待機し、GUI処理装置32から要求が出力されると(ステップST51)、その要求を取得する(ステップST52)。
 一括要求処理装置33は、要求を取得すると、その要求の種別を判別して、その要求がAPI実行要求であるのか、API実行要求以外の要求であるのかを判定する(ステップST53)。
 一括要求処理装置33は、その要求がAPI実行要求以外の要求であれば、その要求の内容を変更することなく、要求先に送信する指示を通信装置35に出力する(ステップST54)。
 一方、その要求がAPI実行要求であれば、その要求の内容を変更し、変更後の内容である要求パターン(API実行要求及び予測要求からなる要求パターン)を要求先に送信する指示を通信装置35に出力する(ステップST55)。
 ここでは、GUI処理装置32から出力された要求がAPI実行要求である例を示している。
 一括要求処理装置33は、GUI処理装置32から出力された要求がAPI実行要求であると判定すると、そのAPI実行要求に対応する応答(図4及び図5では、「応答A」と表記している)が応答記憶装置31に記憶されているか否かを確認し(ステップST3)、その確認結果(応答Aの有無)を取得する(ステップST4)。
 ここでは、API実行要求に対応する応答Aが応答記憶装置31に記憶されていない場合を説明する。API実行要求に対応する応答Aが応答記憶装置31に記憶されている場合は後述する。
 一括要求処理装置33は、API実行要求に対応する応答Aが応答記憶装置31に記憶されていない場合、API実行要求をサービスノード2に送信して、サービスノード2からAPI実行要求に対応する応答Aを取得する必要があるため、そのAPI実行要求に続いて発行される可能性がある要求(以下、「予測要求」と称する)の予測を行って、そのAPI実行要求(実要求)と予測要求からなる要求パターンの生成を要求パターン管理装置34に指示する(ステップST5)。
 なお、要求パターンは、API実行要求(実要求)と1以上の予測要求とからなる要求群である。
 要求パターン管理装置34は、一括要求処理装置33から要求パターンの生成指示を受けると、過去に発行されたAPI実行要求の時系列パターンの動的解析結果を参照して、過去に発行されたAPI実行要求の中で、一括要求処理装置33から出力されたAPI実行要求(実要求)に続いて発行される可能性が最も高いAPI実行要求を予測し、その予測したAPI実行要求を予測要求に決定する。
 また、要求パターン管理装置34は、過去に発行されたAPI実行要求の中で、その予測要求に続いて発行される可能性が最も高いAPI実行要求を予測し、その予測したAPI実行要求を予測要求に決定する。詳細は後述するが、この予測要求の決定処理を1回以上繰り返し実施する。
 要求パターン管理装置34は、1以上の予測要求を決定すると、API実行要求(実要求)と1以上の予測要求とからなる要求パターン(API実行要求(実要求)+予測要求+予測要求+・・・)を生成し(ステップST6)、その要求パターンを一括要求処理装置33に出力する(ステップST7)。
 一括要求処理装置33は、要求パターン管理装置34から要求パターンを受けると、その要求パターンを含む一括要求を生成する。(ステップST8)。
 また、一括要求処理装置33は、一括要求をサービスノード2に送信するためのハンドル情報、一括要求及びAPI実行要求(実要求)である要求Aに対応するコールバック関数を応答処理装置36に登録する(ステップST9,ST10)。
 また、一括要求処理装置33は、一括要求をサービスノード2に送信する指示を通信装置35に出力し(ステップST11)、通信装置35から一括要求の送信指示の受領通知を受け取ると(ステップST12)、要求発行処理が完了した旨をGUI処理装置32に通知する(ステップST13)。
 通信装置35は、一括要求処理装置33から一括要求の送信指示を受けると、その一括要求をネットワーク3経由でサービスノード2に送信する。
 また、通信装置35は、サービスノード2から一括要求に含まれている要求パターンを構成している個々の要求(API実行要求(実要求)+予測要求+予測要求+・・・)に対応する一括応答(API実行要求(実要求)の応答+予測要求の応答+予測要求の応答+・・・)を受信すると、その一括応答と通信ハンドルを応答処理装置36に出力する(ステップST14)。
 サービスノード2の具体的な処理内容は後述する。
 応答処理装置36は、通信装置35から一括応答と通信ハンドルを受けると、その一括応答に含まれているAPI実行要求(実要求)の応答と、1以上の予測要求の応答とを応答記憶装置31に格納する(ステップST15,ST16)。
 また、応答処理装置36は、通信ハンドルをキーとして、先に登録されているコールバック関数の中から、API実行要求(実要求)である要求Aに対応するコールバック関数を取り出し、そのコールバック関数を実行することで、その要求Aに対応する応答AをGUI処理装置32に通知する(ステップST17,ST18)。
 GUI処理装置32は、その要求Aに対応する応答Aを受け取ると、例えば、その応答Aをディスプレイ12に表示する。
 次に、API実行要求に対応する応答Aが応答記憶装置31に記憶されている場合を説明する。
 ステップST1~ST4までの処理内容は、API実行要求に対応する応答Aが記憶されていない場合と同様であるため説明を省略する。
 一括要求処理装置33は、API実行要求に対応する応答Aが応答記憶装置31に記憶されている場合、API実行要求である要求Aをサービスノード2に送信する必要がないため、要求発行処理が完了した旨をGUI処理装置32に通知する(図5のステップST21)。
 また、一括要求処理装置33は、API実行要求である要求Aが発行された旨を要求パターン管理装置34に通知する(ステップST22,ST23)。
 要求パターン管理装置34は、API実行要求である要求Aが発行された旨の通知を受けると、過去に発行されたAPI実行要求の時系列パターンの動的解析結果を更新する。
 また、一括要求処理装置33は、API実行要求である要求Aに対応する応答Aをサービスノード2から送信された応答として取り扱うため、応答記憶装置31に記憶されている要求Aに対応する応答AをGUI処理装置32に出力する旨を指示する出力指令を応答処理装置36に出力する(ステップST24)。
 図5では、応答処理装置36に対する当該指示を「疑似応答通知」と表記しており、この疑似応答通知には、API実行要求である要求Aと、要求Aに対応するコールバック関数とが含まれている。
 応答処理装置36は、一括要求処理装置33から疑似応答通知を受けると、その疑似応答通知に含まれている要求Aをキーとして、応答記憶装置31から要求Aに対応する応答Aを取得する(ステップST25,ST26)。
 また、応答処理装置36は、その疑似応答通知に含まれているコールバック関数を実行することで、その要求Aに対応する応答AをGUI処理装置32に通知するとともに(ステップST27,ST28)、その応答AをGUI処理装置32に通知した旨を一括要求処理装置33に通知する(ステップST29)。
 以上の通り、GUIノード1で処理を行うことで、既に応答を受け取っている要求をサービスノード2に発行することなく、処理を継続させることが可能になる。
 また、上記の説明では、要求を受けるスレッドと応答を受けるスレッドが異なる非同期処理で、要求・応答の一連の処理を行うことを前提にしているが、必ずしも非同期処理である必要はない。要求処理を行うスレッドが、応答を受け取れるまで待機する同期処理であっても構わない。
 次に、サービスノード2におけるサービス提供モジュール22の処理内容を具体的に説明する。
 図7はサービスノード2におけるサービス提供モジュール22の処理シーケンスを示すシーケンス図である。
 サービス提供モジュール22の通信装置41は、API実行要求である要求Aに対応する応答Aが応答記憶装置31に記憶されていないために、GUIノード1から一括要求が送信されると、その一括要求を受信して、その一括要求を一括要求解釈装置42に出力する(ステップST31)。
 一括要求解釈装置42は、通信装置41から一括要求を受けると、その一括要求に含まれている要求パターンを構成している個々の要求(API実行要求(実要求)+予測要求+予測要求+・・・)を分解し、個々の要求の要求先となるサービスのサービス識別子を抽出する(ステップST32)。
 一括要求解釈装置42は、個々の要求とサービス識別子の組を順番に要求処理装置43に出力する(ステップST33)。
 なお、要求とサービス識別子の組の出力順は、要求パターンにおける配列順であり、最初にAPI実行要求(実要求)とサービス識別子の組を出力してから、API実行要求(実要求)の次に配列されている予測要求とサービス識別子の組を出力する。以下、順番に全ての予測要求とサービス識別子の組を出力する。
 要求処理装置43は、一括要求解釈装置42から要求とサービス識別子の組を受ける毎に、そのサービス識別子を参照して、当該要求に対応するサービスを実行するサービスモジュール21を特定し(ステップST34)、当該要求を当該サービスモジュール21に対応するサービス実行装置44に出力する(ステップST35)。
 例えば、当該要求に対応するサービスを実行するサービスモジュールがサービスモジュール21aであれば、当該要求をサービス実行装置44aに出力し、サービスを実行するサービスモジュールがサービスモジュール21bであれば、当該要求をサービス実行装置44bに出力し、サービスを実行するサービスモジュールがサービスモジュール21cであれば、当該要求をサービス実行装置44bに出力する。
 サービス実行装置44a,44b,44cは、要求処理装置43から要求を受けると、その要求をサービスモジュール21a,21b,21cに与えることで、その要求に対応するサービスを実行させて、サービスモジュール21a,21b,21cからサービスの処理結果である応答を取得し、その応答を要求処理装置43に出力する(ステップST36)。
 要求処理装置43は、サービス実行装置44a,44b,44cから要求に対応する応答を受けると、その応答を一括要求解釈装置42に出力する(ステップST37)。
 一括要求解釈装置42は、要求処理装置43から要求に対応する応答を受けると、その応答を一括応答生成装置45に出力する(ステップST38)。
 一括応答生成装置45は、要求処理装置43から要求に対応する応答を受けると、その応答を応答記憶装置46に登録する(ステップST39)。
 応答記憶装置46は、登録順序を維持したリスト形式で、要求に対応する応答を記憶領域に記憶する(ステップST40,ST41)。
 ステップST33~ST41の処理は、要求パターンを構成している個々の要求の個数分だけ繰り返し実施される。
 一括要求解釈装置42は、ステップST33~ST41の処理が完了すると、一括応答の生成要求を一括応答生成装置45に出力する(ステップST42)。
 一括応答生成装置45は、一括要求解釈装置42から一括応答の生成要求を受けると、応答記憶装置46に登録済みの個々の要求に対応する応答を取得し(ステップST43,ST44)、それらの応答をまとめて、一括応答を生成する(ステップST45)。
 なお、複数の応答をまとめる処理では、登録順序を維持している応答リストを参照することで、要求パターンにおける個々の要求の配列順通りに、個々の要求に対応する応答をまとめる。
 したがって、一括応答の先頭の応答は、API実行要求である要求Aに対応する応答であり、一括応答の2番目の応答は、その要求Aの次に配列されている予測要求に対応する応答である。
 一括応答生成装置45は、一括応答を生成すると、その一括応答を一括要求解釈装置42に出力する(ステップST46)。
 一括要求解釈装置42は、一括応答生成装置45から一括応答を受けると、その一括応答を通信装置41に出力する(ステップST47)。
 通信装置41は、一括要求解釈装置42から一括応答を受けると、その一括応答をネットワーク3経由でGUIノード1に返信する。
 以上により、GUIノード1とサービスノード2間の具体的な処理シーケンスが明らかになったが、以下、GUIノード1における構成要素の処理内容などを更に具体的に説明する。
[要求パターン管理装置34の説明]
 図8は要求パターンのデータ構造を示す説明図である。
 まず、API実行要求の時系列パターンの動的解析結果は、GUI処理装置32により発行されたAPI実行要求の時系列パターンと、そのAPI実行要求が発行される頻度を記録しているものである。
 図8において、要求時系列解析結果要素データ構造は、「実要求情報」と「後続パターンリスト」から構成されており、後続パターンリスト要素データ構造は、「信頼度パラメータ」と「後続パターン」から構成されている。
 「実要求情報」は、GUI処理装置32により発行されるAPI実行要求(以下、「実要求」と称する)に関する情報が格納される領域であり、「後続パターンリスト」は実要求情報に格納される実要求に続くパターンを要素として1つ以上持つリストで構成される。
 「後続パターンリスト」はリスト構造をなしており、実要求に続く確率が高い順に予測要求をソートして管理しても構わない。
 後続パターンリスト要素データ構造は、後続パターンリストの要素の一例を示しており、「信頼度パラメータ」は、そのパターンの信頼性を示す情報を格納し、「後続パターン」は、時系列順に後続パターンが並んでいる要求リストである。
 「信頼度パラメータ」としては、実際に発行されたことが確認された回数(発行回数)等が想定される。
 その他、実際に発行された最新の日時情報、予測要求として、その予測が成功した回数や失敗した回数など、予測要求を決定するに当たり、パラメータとして利用可能な情報を併せて格納しても構わない。
 「後続パターン」は、後続する要求情報を時系列順序で列挙している。
 「後続パターン」の要素に記述すべき要求の内容は、「実要求情報」と同等のデータ構造で構わない。それ以外にも、実行時に与える引数の値リストや、予測要求リストの各要素が、どの程度の信頼度であるかを示す情報を併せて格納しても構わない。その具体例は、要求毎の予測の成功・失敗の回数などが考えられる。
 次に、その他の表現形式での要求時系列解析結果の具体例を説明する。
 図9は実要求情報リストのデータ構造を示す説明図であり、図9に示すデータ構造は、図8の要求パターンのデータ構造に対応するデータ構造である。
 「実要求情報」は、実際に発行されることになった要求を示す情報を格納する領域であり、要求パターンの先頭要求になることを意味する。
 「後続パターン管理データ参照」は、実要求情報の後に実際に発行された要求に関する解析結果を管理するデータを参照する領域である。この参照では、後続用要求パターンリストデータが参照される。この参照を辿ることで、実要求の次に過去発行された要求の情報を参照することができる。
 「次実要求参照」は、その他の実要求情報リストデータがある場合に参照可能とする領域である。この領域がNULLである場合には、それ以上の実要求情報リストデータは存在しないことを意味する。
 図10は後続要求パターンリストのデータ構造を示す説明図であり、図10に示すデータ構造は、図8の後続パターンリスト要素データ構造に対応するデータ構造である。
 「後続要求情報」は、次に発行されると予測される要求情報を格納する領域である。
 「信頼度情報」は、その予測要求が、どの程度信頼できるかを示す尺度となる情報を格納する領域である。
 「次後続要求リスト参照」は、その後続要求の後に続いて実際に発行された要求に関する解析結果を管理するデータを参照する領域である。この参照では、後続用要求パターンリストデータが参照される。この領域がNULLである場合には、それ以上、次に発行された要求が存在しないことを意味する。
 「同列要求参照」は、その後続要求とは異なる要求で、同一の時系列順序で発行された要求に関する後続要求パターンリストデータを参照する領域である。この領域がNULLである場合には、それ以上、同列で発行された要求が存在していないことを意味する。
 図11は実要求情報リストデータ構造及び後続要求パターンリストデータ構造を用いた具体的な要求パターンの一例を示す説明図である。
 「実要求情報リスト」が実要求情報リストデータを要素としてリストデータを構成し、要求パターンの先頭となる要求を列挙したリストデータである。
 図11の例では、要求Aと要求Bが過去に実際に発行された要求の中で、先頭に発行されたことがある要求であることを示している。
 「実要求情報リスト」の各要素の後続要求パターン管理データ参照から参照しているものが、後続要求パターンリストデータを要素として樹状データを構成し、その実要求の後に続いた要求を管理する樹状データである。
 実要求情報リストの要素から直接参照されている後続要求パターンリストの要素と、その要素の同列後続要求参照を再帰的に辿ることで到達可能な要素が、実要求の直後に発行された要求に関する情報を「後続要求情報」に持っている。
 例えば、図11では、実要求Aから直接参照されている要素の要求Cと、要求Cの要素の同列後続要求参照を再帰的に辿ることで到達可能な要求である要求Bの二種類が、要求Aの後に続く要求であることを意味する。
 同様に、後続要求パターンリストのある要素の次の後続要求リスト参照で参照される要素の要求と、その要素の同列後続要求参照を再帰的に辿ることで参照可能な要素の要求全ては、その要求パターン内である要求の後に続いたことがある要求に関する情報を「後続要求情報」に持っている。
 例えば、図11では、実要求Aの直後に発行される要求Cを基準の要求として考えた場合、その要求Cの後に続いたことがある要求は、要求Dと要求Eであることを意味している。
 以上のことを繰り返すことによって、要求Aが実際に発行された場合、続く要求パターンは、下記の5通りであることを意味する。
   A
   A→C
   A→C→D
   A→C→E
   A→B
 図8に示しているデータ構造では、1つの要求パターンに対して、1つの信頼度情報を設定しているが、図9及び図10に示しているデータ構造では、各後続要求単位で信頼度情報を設定している点が異なる。
 つまり、図8に示しているデータ構造では、要求パターンの発行に関する信頼度を信頼度情報に設定しているのに対して、図9及び図10に示しているデータ構造では、ある要求に対して、次に発行されると予測される要求毎の信頼度を信頼度情報として設定している点が異なる。
 以下、図9及び図10に示しているデータ構造で要求パターンを管理する場合において、要求パターン管理装置34がその要求パターンを動的に更新する具体例を説明する。
 要求パターン管理装置34が、GUIノード1で実際に発行される要求を知るタイミングは、一括要求処理装置33から出力される要求パターンの生成指示時(図4のステップST5)、もしくは、実要求通知(図5のステップST22)でパラメータとして実要求を受ける時である。
 その際、要求パターンの全体のうち、通知された要求が、どの位置から検索すべきかを示す処理対象要求参照が要求パターン管理装置34に入力されるものとして、以下の説明を行う。
 図12は処理対象リストの参照例を示す説明図である。
 図12は図11の要求パターンと同等であり、処理対象リスト参照の具体例として、a,b,c,dの4種類を示している。加えて、要求パターンの生成指示時(図4のステップST5)の要求時系列解析結果の更新フローを図13に示し、実要求通知時(図5のステップST22)の要求時系列解析結果の更新フローを図14に示している。
 まず、要求パターンの生成指示時における要求時系列解析結果の更新処理を説明する。
 要求パターン管理装置34は、要求パターンの生成指示を受けると(図13のステップST101)と、例えば、図12に示す実要求情報リストから要求パターン生成要求のパラメータである実要求をキーとして、実要求情報リストから実要求に対応する要素を検索する(ステップST102)。
 要求パターン管理装置34は、実要求に対応する要素が見つかると(ステップST103)、実要求に対応する要素の後続要求パターン管理データ参照の値を処理対象リスト参照に代入することで、次に実要求通知があった場合に、どのリストから要求パターンを更新すればよいのかが判別可能になり、更新処理を完了する(ステップST104)。
 要求パターン管理装置34は、実要求に対応する要素が見つからない場合(ステップST103)、実要求を実要求情報に保持し、後続要求パターン管理データ参照にNULL要素を設定した要素を生成し、リストに追加する更新を行う(ステップST105)。
 その後、ステップST105で生成したNULL要素のリストを処理対象リスト参照に代入して、更新処理を完了する(ステップST106)。
 例えば、処理対象リスト参照が図12の処理対象リスト参照aの位置にある場合において、実要求Bをパラメータとして受けた場合、実要求情報リストには要求Bの要素があるため、ステップST104の処理によって、処理対象リスト参照が処理対象リスト参照bの位置に更新される。
 もしくは、実要求Cをパラメータに受けた場合、実要求情報リストには、要求Cの要素がないため、ステップST105,ST106の処理によって、図15に示すように、要求Cに関する要素が実要求情報リストに追加され、その後続要求パターン管理データ参照はNULL要素のみを持つ予測要求パターンリストeを持つように設定される。また、処理対象リスト参照は処理対象リスト参照eの通り、予測要求パターンリスト(1)を参照する。
 次に、実要求通知時における要求時系列解析結果の更新処理を説明する。
 要求パターン管理装置34は、実要求通知を受けると(図14のステップST111)、処理対象リスト参照が参照リストから実要求に対応する要素を検索する(ステップST112)。
 要求パターン管理装置34は、実要求に対応する要素が見つかると(ステップST113)、実要求に対応する要素の信頼度情報を更新する(ステップST114)。
 例えば、信頼度情報を実要求が実際に発行された回数とした場合には、その値をインクリメントする。
 その後、要求パターン管理装置34は、実要求に対応する要素の後続要求リスト参照の値を処理対象リスト参照に代入して、更新処理を終了する(ステップST115)。
 要求パターン管理装置34は、実要求に対応する要素が見つからない場合(ステップST113)、処理対象リスト参照が参照するリストに対して要素を追加し、その後続要求情報にはパラメータの実要求として、更新処理を終了する(ステップST116)。
 例えば、処理対象リスト参照が図12の処理対象リスト参照cの場合において、実要求通知でパラメータとして実要求Cを受けたとすると、ステップST114の処理によって、要求Cの信頼度情報を更新し、ステップST115の処理によって、処理対象リスト参照は処理対象リスト参照dに更新される。
 同様に、パラメータとして実要求Dを受けた場合には、図16に示すように、要求パターンが更新される。
 具体的には、ステップST116の処理によって、要求Dに関する要素を新規生成し、処理対象リスト参照cが参照するリストの要求Bに関する要素の同列後続要求参照に要求Dに関する要素を参照させる。また、要求Dに関する要素の信頼度情報を初期化し、次の後続要求リスト参照ではNULL要素を持つリストを参照させる。そのうち、ステップST116の処理によって、処理対象リスト参照は処理対象リスト参照fのように更新される。
 次に、要求パターン管理装置34の具体的な処理を説明する。
 要求パターン管理装置34は、要求パターンの生成指示時(図4のステップST5)、あるいは、実要求通知時(図5のステップST22)に処理を行う。
[要求パターンの生成指示時の処理内容]
 要求パターンの生成指示時(図4のステップST5)は、実要求に対応する応答が応答記憶装置31に格納されていない状況で、一括要求処理装置33から要求パターン管理装置34に要求される。
 要求パターン管理装置34は、一括要求処理装置33からパラメータとして受け取る実要求をキーとして、最も発行されると判定される要求パターン(予測要求パターン)を要求時系列解析結果から導出し、その導出結果を返す処理を行う。
 具体的には、要求時系列解析結果の全要求時系列解析結果要素データの実要求情報と、パラメータである実要求とを比較して、一致する要求時系列解析結果要素データを導出する。
 一致判定では、要求内容の完全一致としても構わないが、部分一致による判定などでも構わない。具体的には、要求する処理は一致しているが、パラメータとして与える内容が一部異なる場合などが部分一致として考えられる。
 次に、その要求時系列解析結果要素データの後続パターンリストから信頼度パラメータを用いて、発行する確率が最も高い後続パターンを見つけ出し、実要求を先頭要素として、その後に見つけ出した後続パターンの要求を時系列順に連結したパターンを予測要求パターンとする。
 確率は、信頼度パラメータに格納される情報(例えば、発行回数)の大小で決定しても構わない。それ以外にも、複数の信頼度パラメータに格納される情報を、確率を算出する関数に適用することで、確率を算出するようにしても構わない。
 例えば、発行回数に対して、現在日時と実際に発行された最新の日時情報との差分時間の逆数をかける等の関数を用いて、確率を算出するようにしてもよい。また、システムとして定められた判定基準の元で確率を算出するようにしてもよい。その結果、最も確率の高い要求パターンを予測要求パターンとする。
 また、別の方法の要求パターンの決定方法として、2種類以上の要求パターンを候補として選定し、複数の予測要求パターンを組み合わせて、新たな1つの予測要求パターンとしても構わない。
 図17は予測要求パターンの組み合わせ例を示す説明図である。
 図17の例では、予測要求パターン1が最も発行される確率が最も高いと判定された予測要求パターン、予測要求パターン2が次に発行される確率が高いと判定された予測要求パターンである。
 この場合、例えば、2種類の予測要求パターン1,2の論理和を求め、その論理和で構成された予測要求パターン3を処理結果として返すことが考えられる。
 この方法を採用することによって、複数の予測要求パターンを1つの予測要求パターンとして表現することが可能になるため、発行する確率を向上させることが可能になる。
 この例では、発行確率が上位2個の予測要求パターンを論理和とすることで、新たな予測要求パターンを生成しているが、これに限定するものではなく、複数の予測要求パターンをある定められた合成関数に適用することで、新たな予測要求パターンを作成するようにしてもよい。
 また、別の予測要求パターンの決定方法として、処理過程で導出された予測要求パターンの一部を予測要求パターンとしても構わない。
 例えば、予測要求パターンの各要求が、先頭から自身までの要求パターンをシステムで処理した結果、その自身で予測に失敗した回数を保持していると仮定すると、その値がある閾値以上となる場合には、それ以降の要求を要求パターンから排除して、そこまでの要求パターンを予測要求パターンとする方法が考えられる。
 時系列順を考慮せず、あくまで、その要求パターンを処理結果とした際に、各要求で予測が成功した回数や失敗した回数を保持していると仮定し、要求パターンからある閾値以上の要求の全てで新たな要求パターンを構成し、新たな要求パターンを予測要求パターンとする方法も考えられる。
 上記の通り、システムで定められた基準以上の予測要求パターンを要求時系列解析結果に基づいて1つ以上選定し、それらを組み合わせることで実要求の後に発行されると予測される予測要求パターンを1つ決定するのが要求パターンの生成指示時(図4のステップST5)に対応する処理である。
 また、その処理の後、予測要求パターンや、その予測要求パターンを決定する際に利用した要求パターンリストに含まれる要求パターンは、その予測結果が確定するまで要求パターン管理装置34が維持する。以下、それらの要求パターンのことを予測対象要求パターンと称する。
[実要求通知時の処理内容]
 実要求通知時(図5のステップST22)は、実要求に対応する応答が応答記憶装置31に格納されている状況で、一括要求処理装置33から要求パターン管理装置34に要求される。
 要求パターン管理装置34は、一括要求処理装置33からパラメータとして実要求通知を受け取ると、その通知を受ける前に生成している要求パターンを構成している予測要求の予測が成功していると認識する(予測通りに発行された認識する)。
 そこで、要求パターン管理装置34は、その予測要求と一致している要求Aと共に格納されている情報を更新する。
 例えば、格納されている情報が成功回数あれば、その成功回数のインクリメントを行い、格納されている情報が一時的な予測成否フラグであれば、フラグを立てるなどの更新が考えられる。
 また、後続パターンリスト中の各パターンの信頼度パラメータを再計算し、その値を更新するようにしてもよい。信頼度パラメータを更新することによって、そのシステムの利用状況に応じた予測パターンリストの構築が可能となり、予測確度を向上させることが可能になる。
 また、パラメータに対応する要求が上記要求パターンの中にない場合には、その要求を上記要求パターンに連結して、新たな予測パターンデータを構築し、予測パターンリストの要素として新規登録するようにしてもよい。新規登録することで新たな要求パターンを予測することが可能になり、予測確度を向上させることが可能となる。新規登録せずに、現在の要求パターンの新たなリスト要素として、その要求を追加する方法でも構わない。
 次に、一括要求処理装置33の具体的な処理を説明する。
[一括要求の生成処理]
 GUIノード1からサービスノード2への要求をHTTPで行う方法として、URL(Uniform Resource Locator)によって要求先ノードと要求リソースを記述する方法が考えられる。URIによる記述方式は複数考えられるが、例えば、図18に示すような記述方法が挙げられる。
 図18の例では、サービスノード2のドメイン名である[サービスノードドメイン]をURLのホスト名として記述し、第1のディレクトリ名で要求するサービスの名前である[サービス名]、第2のディレクトリ名でAPI(サービス内の要求するAPI)の名前である[API名]を記述している。
 このようにURLを用いることで、GUIノード1は、通信相手をURLのホスト名から一意に識別することが可能であり、サービスノード2は、URLの[サービス名]と[API名]によって、どのサービスのどのAPIを要求されているのかを一意に識別することが可能になる。
 ただし、図18の記述方式では、1つのURLで発行可能なAPI実行要求は、単一のサービスが持つ単一のAPI名に限定されるため、本発明のように、複数のAPI実行要求を一括して発行する方式のものには適さない。
 そこで、図19に示すように、URLから[サービス名]と[API名]を除外し、一括要求であることを示す[一括要求識別名]をURLの中に記述する方法が考えられる。
 その場合、サービス名とAPI名に相当する情報をHTTP通信時のボディ部に記述することで、それらの情報を要求先ノードに通知することが可能である。
 ここで、サービスノード2が有するAPIは、一般的に関数として扱うことが可能であり、その多くは、引数を受け取ることが可能である。
 つまり、HTTP通信時にボディ部に記述すべき情報として、APIに対する引数の値も含まれることになる。なお、通常は複数の引数をAPIに設定することが可能であるため、複数の引数をまとめて引数リストと称する。
 図20は単一のサービスに対する複数のAPIと、各APIに対する複数の引数リストを1つのテキスト形式データで表現している具体例を示す説明図である。
 このデータはJSON(JavaScript Object Notation)形式で、多重配列オブジェクトとして前述の情報を記述している。
 最上位の配列(サービス要求配列オブジェクト)は、1番目の要素で要求対象となるサービスのサービス名を記述している。2番目以降の要素で、そのサービスに対して要求する具体的なAPIと、その引数を配列オブジェクト(API配列オブジェクト)として表現している。
 API配列オブジェクトは複数指定することが可能であり、複数指定されている場合には、そのサービスに対して複数のAPIを実行する旨を要求していることを意味する。
 API配列オブジェクトは、1番目の要素で、要求するAPIの名前を表現し、2番目以降の要素で、そのAPIを実行する際の引数リストを表現した配列オブジェクト(引数配列オブジェクト)を列挙している。
 引数配列オブジェクトを生成するためには、要求パターンの生成指示時(図4のステップST5)に取得した要求パターンの各要求に付随する引数リストを利用して作成することが可能である。
 また、API配列オブジェクトも同様に、要求パターンに含まれている同一サービスに対するAPIを抽出することで作成することが可能である。
 引数配列オブジェクトが複数ある場合には、引数配列オブジェクトの個数だけAPIを実行することを意味し、各実行では、それぞれの引数配列オブジェクトの内容を引数として与えて実行することを意味する。
 図21に示すように、サービス要求配列オブジェクトを1つ以上持つ配列(一括要求配列オブジェクト)を構成することによって、複数のサービスに対する要求を一括して表現可能なデータ構造を構築することが可能になる。
 ここで、一括要求を発行する際、実要求と予測要求を区別する必要がある。
 区別する方法として、実要求については、一括要求の第1要素であるサービス要求配列オブジェクトの第2要素(先頭API配列オブジェクト)で表現するという規定を設ける方法が考えられる。
 それ以外にも、API配列オブジェクトの第1要素に実要求の場合には「true」、それ以外の場合には「false」を持つ配列要素を追加することで表現するようにしてもよい。
 また、要求の順序を保存すべき場合には、実要求を先頭とし、その後に予測要求パターンに登録されている予測要求の順番通りに要素を構成することでも、順序を保存することが可能である。その場合、各サービスに対するサービス要求配列オブジェクトは必ずしも1つとなるとは限らない。
 以上の一括要求配列オブジェクトをボディ部に持ち、図19に示すURLを指定し、POST命令を行うHTTP要求を一括要求の具体例の一つと考えることが可能である。
 一括要求は、一括要求処理装置33が、図4のステップST11の処理によって、通信装置35に発行することで開始され、その処理結果は要求可否のフラグとして、ステップST12で一括要求処理装置33に返される。
 また、その要求可否フラグは、ステップST13でGUI処理装置32に返される。
[ハンドル情報、一括要求及びコールバック関数の登録処理]
 一括要求処理装置33は、一括要求を生成すると、その一括要求と関連する情報を応答処理装置36に登録する。
 関連する情報としては、通信装置35から受け取る一括要求に対応するハンドル情報、一括要求に対応する処理を受けた際に実要求を処理するためのコールバック関数等が考えられる。
 一括要求と関連する情報を受け取った応答処理装置36は、その情報を自身で管理する記憶領域に保存し、その処理結果を一括要求処理装置33に返信する。
[一括応答と通信ハンドルの通知処理]
 通信装置35は、一括要求をネットワーク経由3でサービスノード2に送信したのち、サービスノード2から送信される一括要求に対応する一括応答を受信する。
 通信装置35は、一括要求に対応する一括応答を受信すると、その一括応答を応答処理装置36に通知するとともに、その応答に対応する要求を発行した通信処理を示すハンドル情報を応答処理装置36に通知する。
 ここで、サービスノード2から返信される一括応答の具体例について説明する。
 図22は応答の具体的なデータ表現例を示す説明図である。
 図22の例では、要求の場合と同様に、データをJSON形式で表現している。
 一般的な関数では、関数の戻り値と、参照引数による応答の2種類が存在する。戻り値に関しては、通常、1つのオブジェクトのみとなるが、参照引数については、複数の設定が可能である。
 そこで、応答は、第1要素に関数の戻り値、第2要素以降に参照引数を格納するJSONの配列オブジェクトとして表現することが可能である。
 また、戻り値はvoidの場合があるが、その場合には、第1要素にnull値もしくは空文字等を設定することで対処可能である。
 一括応答は、上記で説明した応答を要素として持つ配列オブジェクトとして表現することが可能である。図23は一括応答の具体的なデータ表現例を示す説明図である。
 図23の例では、一括要求に格納されている要求の順番を維持して、それぞれの応答を格納している。つまり、最初の要求が実要求である規定がなされていれば、この一括応答の先頭要素は、実要求に対応する実応答であることになる。
 応答処理装置36は、通信装置35から一括応答と通信ハンドルを受けると、先に登録されている情報の中から、その通信ハンドルに対応する情報を検索し、対応する一括要求とコールバック関数を取得する。
 応答処理装置36は、一括応答にまとまられている個々の要求に対応する応答を要求とペアにして応答記憶装置31に保存する。この処理によって、全ての応答は、要求内容をキーとして検索可能な形で応答記憶装置31に格納される。応答記憶装置31は格納した結果をステップST16で応答処理装置36に返信する。
 また、応答処理装置36は、API実行要求(実要求)である要求Aに対応するコールバック関数を実行することで、その要求Aに対応する応答AをGUI処理装置32に通知する。コールバック関数には、少なくとも実要求に対応する実応答をパラメータとして渡して処理を行う。コールバック関数の処理結果は、ステップST18で応答処理装置36に返される。
 以下、具体的なサービスへの適用を例示する。
 例えば、カーナビゲーションシステムにおける現在位置周辺の地図画像を描画するサービスを例として、図24の地図画像を用いて、更なる具体例を説明する。
 通常、現在位置周辺の地図画像を描画するサービスの場合、GUIの画面には現在位置周辺の地図画像を全面に描画し、その地図画像上に、現在位置を示す自車位置アイコンを描画して、地図上の現在位置を視覚的に表現する。
 それ以外に現在位置の住所等を描画する地名表示、地図描画内容に対する方位、地図の縮尺を示す地図縮尺、現在時刻を地図画像上に描画する。
 これら地図画像、現在位置、住所、方位、縮尺、現在時刻など情報は、GUIノード1では生成せずに、サービスノード2に問い合わせる(要求する)ことで、GUIノード1が入手して描画に利用する。
 ただし、本発明を適用しないシステムの場合、図25に示すように、GUIノード1が、ステップST201,ST203,ST205,ST207の処理で、データ要求(地図要求、地図情報要求、現在位置要求、住所要求)をサービスノード2に行って、ステップST202,ST204,ST206,ST208の処理で、サービスノード2からデータ要求に対応する応答(地図画像、縮尺・方位、現在位置、現在住所)を受け取る。
 上記の処理を行うには、計4回の通信がGUIノード1とサービスノード2間で発生することになる。この処理が地図描画タイミングの度に発生することになる。現在時刻については、GUIノード1の持つ時刻情報を使うことを想定する。
 一方、本発明を適用するシステムでは、GUIノード1が、ステップST201の処理に相当する地図要求をサービスノード2に発行する前に、一括要求生成装置33と要求パターン管理装置34によって、地図要求の次に発行される可能性の高い予測要求パターンを取得し、一括要求としてまとめて要求を行う。
 仮に、予測要求パターンの一部もしくは全てが間違っていたとしても、実際の要求となる実要求の発行を繰り返すことによって、要求パターン管理装置34では、地図要求の後に続く要求パターンの更新が行われ、地図要求の後に続く要求は地図情報要求、現在位置要求、住所要求であることが反映され、長期的には、正しい予測が可能な要求パターンを生成することが可能になる。
 具体的には、要求パターンの生成指示時(図4のステップST5)や実要求通知時(図5のステップST22)に、一括要求処理装置33から要求パターン管理装置34に通知される実要求に関する情報を利用し、それまでに発行された実要求の時系列パターンや予測対象要求パターンをもとに、各要求パターンの発行回数に関する情報を更新することが可能である。つまり、地図更新が発生する度に、地図要求、地図情報要求、現在位置要求、住所要求の順で要求が発生するため、その要求パターンの発行回数が増加する。
 その結果、発行回数が最大の要求パターンを予測要求パターンとして採用することで、正しい予測が可能になり、長期的には、4回必要であった通信回数を1回に削減することが可能になる。
 一方で、ユーザが途中で地図縮尺の強制変更を行った場合、図26に示すように、ステップST211の処理で、GUIノード1からサービスノード2に新たな縮尺情報をパラメータとして縮尺変更要求を発行し、その後、地図要求、地図情報要求、現在位置要求、住所要求を発行すると仮定する。
 上記の場合、初めて縮尺変更する際には、縮尺変更要求を実要求とした場合の要求パターンが要求パターン管理装置34には保存されていないため、縮尺変更要求のみをサービスノードに要求し、次の地図要求から一括要求処理が開始される。その処理によって、縮尺変更要求の後には、地図要求、地図情報要求、現在位置要求、住所要求が連続して発行することを要求パターン管理装置34が学習し、その要求パターンを新規に作成する。
 これにより、2回目以降の縮尺変更要求が発行された場合には、新たに作成された要求パターンに従って地図要求、地図情報要求、現在位置要求、住所要求が予測要求となる一括要求を一括要求処理装置33が作成して、その一括要求をサービスノード2に送信することになる。
 以上で明らかなように、この実施の形態1によれば、GUI処理装置32により発行された実行要求に対応する応答が応答記憶装置31に記憶されていれば、その応答をGUI処理装置32に出力する旨を指示する出力指令を応答処理装置36に出力する一方、その実行要求に対応する応答が応答記憶装置31に記憶されていなければ、その実行要求に続いて発行される可能性がある要求の予測を行って、その実行要求と予測要求からなる要求パターンの生成を要求パターン管理装置34に指示し、要求パターン管理装置34により生成された要求パターンを含む一括要求を生成する一括要求処理装置33と、その実行要求に続いて発行される可能性がある要求を予測し、その実行要求と予測要求からなる要求パターンを生成する要求パターン管理装置34と、一括要求処理装置33により生成された一括要求をサービスノード2に送信する一方、サービスノード2から送信された一括要求に対応する一括応答を受信する通信装置35とを設け、応答処理装置36が、一括要求処理装置33から出力指令を受けると、応答記憶装置31に記憶されている実行要求に対応する応答をGUI処理装置32に出力し、通信装置35により一括応答が受信されると、その一括応答に含まれている実行要求及び予測要求に対応する応答を応答記憶装置31に格納するとともに、その実行要求に対応する応答をGUI処理装置32に出力するように構成したので、実行要求に対応する応答が応答記憶装置31に記憶されていれば、その実行要求を送信する必要がなくなり、その結果、連携処理に係るネットワーク通信の回数を十分に削減することができる効果を奏する。
 即ち、一連のGUIノード1とサービスノード2の処理によって、GUIノード1から実際に発行される単一の実要求から、それに続いて発行されると予測される要求を1つ以上決定することが可能になる。そのため、実要求と1つ以上の予測要求をまとめた一括要求を生成して、一括要求をサービスノード2に通知することが可能になる。
 また、サービスノード2は、一括要求を受けて、その内容となる要求を各サービスで処理することが可能になるとともに、その1つ以上の応答をまとめた一括応答を生成し、一括応答をGUIノード1に返信することが可能になる。
 また、その一括応答を受信したGUIノード1は、一括応答の内容を記憶し、その記憶した結果に対応する要求を発行する前に、その記憶した結果をGUIノード1内で使いまわすことによって、サービスノード2への通信回数を削減することができ、通信に伴う処理速度の低下を回避することが可能なシステムとなる。
 また、予測結果の成否情報を管理することが可能なシステムであり、システムの使用状況等に応じて、予測パラメータを調整することで、予測要求の生成パターンを更新することが可能である。
実施の形態2.
 上記実施の形態1では、要求パターン管理装置34が、API実行要求に続いて発行される可能性がある要求を予測し、そのAPI実行要求と予測要求からなる要求パターンを生成するものを示したが、要求パターン管理装置34が、GUIに表示される画面単位に、GUI処理装置32により発行された実行要求の履歴を管理して、実行要求の発行頻度を更新する処理を実施し、GUI処理装置32により新たに発行された実行要求が同じ実行要求であっても、GUIに表示されている画面が異なれば、異なる要求パターンを生成する場合があるようにしてもよい。
 具体的には、以下の通りである。
 サービス全体を想定した場合、GUIノード1で表示する画面毎に、同じ要求であっても、その後に続く要求のパターンは、異なることが想定される。
 例えば、図24に示すような現在位置周辺の地図画面を表示する場合の地図要求と同一の要求であっても、画面に表示する内容が異なれば、その後に続く要求も異なる可能性が高い。
 図27はGUIノード1が表示する別の画面例であるが、地図を画面上に描画するとともに、方位や自車位置アイコンを描画するまでは図24の場合と同様であるが、ある地点が、地図上のどこに存在するかをアイコンで描画する地点アイコンと、その地点アイコンに関する基本情報(地点名と、現在位置からの距離)を示すボタンをリスト形式で表している地点リストボタンも描画している。
 この場合、地図要求の後に続く要求が、地図情報要求、現在位置要求であるところまでは図24の場合と同様であるが、図28に示すように、その後に周辺検索要求が続いている点で異なっている。
 そのため、要求パターン管理装置34は、図24の画面と図27の画面で同じ要求時系列解析結果でパターン管理を行った場合、例えば、図27の画面でしばらく動作した後に図24の画面に遷移して動作させた場合、予測要求パターンの最後の予測要求が住所要求ではなく、周辺検索となり、適切な要求パターンを予測要求パターンとすることができなくなる問題がある。
 そこで、要求パターン管理装置34は、画面単位で独立した要求時系列解析結果の生成を行うことで、上記の問題に対処している。
 図29は画面単位で独立した要求パターン管理を行う場合の要求時系列解析結果のデータ構造例を示す説明図である。
 図29の要求時系列解析結果は、図8の要求時系列解析結果要素データ構造を要素に持つデータ構造であり、実要求をキーとして、その実要求の後に続く後続パターンリストを持つリスト構造になっている。
 また、図29の後続パターンリストは、図8の後続パターンリスト要素データ構造を要素に持つデータ構造であり、後続パターン別に信頼度パラメータを持つリスト構造になっている。
 要求パターン管理装置34は、実要求をキーとして、その要求時系列解析結果から対応する後続パターンリストを取得し、その後続パターンリストに基づいて予測要求パターンを決定する。
 これまでの説明では、画面が変化したとしても単一の要求時系列解析結果を管理していたが、画面別リストを導入することにより、画面毎に異なる要求時系列解析結果を定義して、画面毎に異なる要求時系列解析結果を管理することができるデータ構造である。
 画面毎に要求時系列解析結果を定義することで、図24及び図27の例で説明したような、画面毎に同一の要求時系列解析結果に基づいた予測によって適切な予測要求パターンを生成できない問題を解消することが可能になる。
 要求パターン管理装置34は、現在処理中の画面情報を一括要求処理装置33から画面が変更される度に受け取ることで、画面別リストのうち、どの画面を表示しているのかを知ることが可能になり、適切な実要求リストを基準とする要求パターン管理及び予測要求の決定が可能になる。
 また、一括要求処理装置33は、GUI処理装置32からサービスノード2に発行されるGUI記述データ取得要求をトリガーとして、次の画面情報を要求パターン管理装置34に通知することができる。もしくは、応答処理装置36がサービスノード2からのGUI記述データ取得要求に対応する応答を受信したタイミングをトリガーとして、同様の処理を行っても構わない。
 また、GUIノード1が画面情報を保持している場合には、GUI処理装置32は、画面遷移が発生するタイミングで、要求パターン管理装置34に対して、次の画面情報を通知することで対応可能になる。
 例えば、要求パターン管理装置34が図29の要求時系列解析結果を持ち、画面別リストの画面Aを図24に示す画面、画面Bを図27に示す画面を意味するとすれば、図24の画面を表示している場合には、要求パターン管理装置34は、画面別リストの画面Aの要素が参照する実要求リストを参照しながら処理を行う。
 そのとき、GUI記述データ取得要求をトリガーとして、一括要求処理装置33が、遷移先となる画面情報である画面Bを要求パターン管理装置34に通知する。
 要求パターン管理装置34は、その通知を受けると、処理対象となる実要求リストを画面別リストの画面Bの要素が参照する実要求リストに切り替え、それ以降の処理では、切り替えた実要求リストを参照しながら処理を行う。
実施の形態3.
 この実施の形態3では、要求パターン管理装置34における要求時系列解析結果の生成方式について説明する。
 要求時系列解析結果は、ある実要求が発行された直後に続いて発行された要求のパターンに関する情報を収集して解析した結果であり、1つ以上で有限数の要求に関する情報で構成されたパターンの集合体である。
 そのパターンは、GUI処理装置32から一括要求処理装置33に通知されるAPI実行要求を基に、その要求に関する情報や、その要求が発行される時系列順序に関する情報等を動的に収集して解析した結果となる要求時系列解析結果が生成される。
 また、要求パターン管理装置34が一括要求処理装置33からの要求パターンの生成指示を処理する場合、要求時系列解析結果の内容に基づいて予測要求パターンを構成する。
 要求時系列解析結果の具体的な形態としては、例えば、図29に示すような収集された全ての要求パターンに対して、その要求パターンの先頭の要求が実際に発行されたときに、その後に対応する後続パターンと同じパターンの要求発行が行われるかの尺度となる信頼度パラメータを持たせて管理する方法がある。その場合には、それぞれの実要求と後続要求パターンを併せた要求パターンに含まれる要求数は有限でなければならない。
 以下、要求時系列解析結果に含まれる要求パターンを有限の要求数とするための具体的な方法を説明する。
(1)有限数の要求パターンを構成する方法の1つとして、要求パターンの要求数の最大数を設定する方式が考えられる。
 例えば、予測要求パターン数の最大数を5とする場合、要求パターン管理装置34が生成する全ての予測要求パターンは最大で5個までとなり、有限数の要求で構成されたパターンの構成が可能になる。
 図30は予測要求パターン数を最大5個までとした場合の要求パターンデータの生成例を示す説明図である。
 ここでは、説明の簡単化のため、要求パターン管理装置34は、最初に一切の要求パターンデータを持っていない状態とする。
 その状態で、要求発行時系列リストに示す矢印の順番で、GUI処理装置32から要求が一括要求処理装置33に通知される状況を想定する。
 最初の要求Aが一括要求処理装置33に通知されると、その要求Aが要求パターン管理装置34に通知され、要求パターン管理装置34は、実要求情報Aを生成するとともに(要求時系列解析結果(1)を参照)、初期値を持つ要求パターンリストを生成して、実要求情報Aとの関連付けを行う(要求時系列解析結果(2)を参照)。
 その後に続く要求4個までは、新たに生成した要求パターンリストに挿入するフェーズに移行する。
 その後、順番に要求B、C、D、Eが通知されると、要求パターン管理装置34は、直前に生成した後続要求リストの最後尾に要求を順次挿入する(要求時系列解析結果(3)を参照)。
 要求Eが後続要求リストに挿入された時点で、後続要求リストの要求数が4個で実要求が1個となり、最大数の5個に達したため、要求パターン管理装置34は、次の要求が通知されたときは、実要求情報として処理するフェーズに移行する。
 その後、要求Fが通知されると、要求パターン管理装置34は、要求パターンデータの実要求情報リストに要求Fと一致する情報があるか否かを確認する。
 その結果、一致する情報がないことが判明し、要求パターン管理装置34は、実要求情報Fを生成するとともに(要求時系列解析結果(4)を参照)、初期値を持つ要求パターンリストを生成して、実要求情報Fとの関連付けを行う(要求時系列解析結果(5)を参照)。
 その後に続く要求4個までは、新たに生成した要求パターンリストに挿入するフェーズに移行する。
 その後、順番に要求G、H、I、Jが通知されると、要求パターン管理装置34は、直前に生成した後続要求リストの最後尾に要求を順次挿入する(要求時系列解析結果(6)を参照)。
 要求Jが後続要求リストに挿入された時点で、後続要求リストの要求数が4個で実要求が1個となり、最大数の5個に達したため、要求パターン管理装置34は、次の要求が通知されたときは、実要求情報として処理するフェーズに移行する。
 その後、要求Aが通知されると、要求パターン管理装置34は、要求パターンデータの実要求情報リストにAと一致する情報があるか否かを確認する。
 その結果、一致する情報があることが判明すると、要求パターン管理装置34は、一致した実要求情報に対して、初期値を持つ要求パターンリストを生成し、新たな要素として関連付けを行う(要求時系列解析結果(7)を参照)。
 その後に続く要求4個までは、新たに生成した要求パターンリストに挿入するフェーズに移行する。
 その後、順番に要求K、L、M、Nが通知されると、要求パターン管理装置34は、直前に生成した後続要求リストの最後尾に要求を順次挿入する(要求時系列解析結果(8)を参照)。
 要求Nが後続要求リストに挿入された時点で、後続要求リストの要求数が4個で実要求が1個となり、最大数の5個に達したため、要求パターン管理装置34は、次の要求が通知されたときは、実要求情報として処理するフェーズに移行する。
 以上の処理を繰り返すことによって、要求最大数が固定で指定された要求パターンを構成することが可能になる。
 ここで、固定される要求最大数であるが、システム全体として固定しても構わないが、例えば、GUI画面単位で異なる値の固定値としても構わない。それ以外にも、状況に応じて、固定値を変動しても構わない。例えば、GUIノード1から発行される一括要求の予測成功率(例えば、実要求以外の予測要求が、一括要求生成後にGUI処理装置32から実際に一括要求処理装置33に発行要求された確率)がある閾値以上であれば、その固定値をインクリメントして、要求パターンに設定可能な要素数を増やし、一括要求で送信する要求数を増やすことで、更なる通信回数の削減を実現するなどが考えられる。
 この成功率に応じて変動させる場合には、要求パターン毎に固定値を設定する方法でも構わない。
(2)有限数の要求パターンを構成する別の方法として、GUI処理装置32から一括要求処理装置33に通知されるAPI実行要求の時間間隔を利用する方法が考えられる。
 通常、ある一連の処理が開始され、その一連の処理の中で複数のAPIを実行する場合、そのAPIの実行間隔は、一般的に、ユーザ操作間隔等と比較して短い場合が多い。そのため、一連の処理が完了した後に、再度、ユーザ操作等のトリガーによって異なる一連の処理が発生するまでの時間は、一連の処理中のAPIの実行間隔と比較すると、長い時間間隔である場合が多い。
 そのような状況を利用して、直前に通知された要求と、今回通知された要求の時間間隔を計測し、その時間間隔が所定の閾値(所定の時間間隔)未満であれば、その2つの要求は、一連の処理に含まれると判断することが可能となる。
 具体的には、図25の地図更新処理に含まれる一連の要求である地図要求、地図情報要求、現在位置要求、住所要求の要求間の時間間隔は短くなるが、住所要求から次の地図要求が発行されるまでは、新たな画面更新タイミングが発生するまでとなるため、時間間隔が長くなることを意味している。
 上記の処理を行うため、この方法を採用した要求パターン管理装置34は、要求が通知された際、前回の要求通知からの経過時間を算出する必要がある。
 図31は前回の要求通知から今回の要求通知までの経過時間を算出する処理を示すフローチャートである。
 要求パターン管理装置34は、一括要求処理装置33から今回の要求となる要求Aの通知を受けると(ステップST301)、現在時刻T1を取得する(ステップST302)。
 その後、前回の要求の通知時刻T0と時刻T1の差分dTを算出する(ステップST303)。この差分dTが要求Aに対する経過時間となる。ここで、T0が未設定の場合には、dTを0とする。
 要求パターン管理装置34は、新たなT0の値として、T1の値を代入することで、経過時間算出処理を完了する(ステップST304)。
 要求パターン管理装置34は、この処理によって算出した経過時間dTが、システムとして定められた閾値sT未満である場合には、前回通知された要求が所属する要求パターンに対して、今回通知された要求Aを追加する処理を実施する。
 一方、経過時間dTが閾値sT以上である場合には、前回通知された要求が所属する要求パターンには、今回通知された要求Aを追加せずに、新たな実要求として扱うことにする。
 図32は経過時間を利用した場合の要求パターンデータの生成例を示す説明図である。
 要求発行時系列リストに示す矢印の順番で、GUI処理装置32から要求が一括要求処理装置33に通知される状況を想定する。
 また、矢印のうち、単線矢印は、矢印の右の要求が通知された時刻と左の要求が通知された時刻の差分から算出された経過時間が閾値sT未満である事を意味し、二重線矢印は、sT以上であることを意味する。
 最初の要求Aが通知されると、要求パターン管理装置34は、経過時間を算出するが、前回の要求がないため、要求Aを実要求として判定する。その結果、実要求情報Aを生成するとともに、初期値を持つ要求パターンリストを生成して、実要求情報Aとの関連付けを行う(要求時系列解析結果(1)を参照)。
 次に要求Bが通知されると、要求パターン管理装置34は、経過時間を算出し、その結果、経過時間が閾値sT未満であることが判定される。
 経過時間が閾値sT未満の場合には、前回の要求Aが属する要求パターンに対して、要求Bも属するため、要求Bを実要求Aの最新の後続要求リストの要素として挿入する(要求時系列解析結果(2)を参照)。
 引き続き通知される要求C、Dについても、経過時間が閾値sT未満であるため、要求Bと同様に、実要求Aの最新の後続要求リストの要素として挿入する(要求時系列解析結果(3)を参照)。
 次に要求Eが通知されると、要求パターン管理装置34は、経過時間を算出し、その結果、経過時間が閾値sT以上であることが判定される。
 経過時間が閾値sT以上の場合には、前回の要求が属する要求パターンに、今回の要求が属さないため、要求Eを実要求として判定する。その結果、実要求情報Eを生成するとともに、初期値を持つ要求パターンリストを生成して、実要求情報Eとの関連付けを行う(要求時系列解析結果(4)を参照)。
 その後、2個目となる要求Aが通知されると、要求パターン管理装置34は、経過時間を算出し、その結果、経過時間が閾値sT以上であることが判定される。
 経過時間が閾値sT以上の場合には、前回の要求が属する要求パターンに、今回の要求が属さないため、要求Aを実要求として判定する。ただし、実要求情報Aは既に存在しているため、今回は新たに生成せずに、既存の実要求情報Aを処理対象として、次の要求通知を待機する。
 次に要求B,C,Dが順次通知されると、それら全ての経過時間を算出し、全ての経過時間が閾値sT未満であることが判定され、実要求Aに連続する要求パターンであると判定される。ただし、ここでは、既存の後続要求リストB,C,Dとパターンが一致しているため、現在の要求が、その後続要求リストのどの要素に対応する内容であるかを保持し続ける。つまり、要求Bが通知された場合には、後続要求リストの1番目の要求Bを指し示す情報を保持し、要求Cが通知された場合には、後続要求リストの2番目の要求Cを指し示す情報を保持し、要求Dが通知された場合には、後続要求リストの3番目の要求Dを指し示す情報を保持する。
 最終的に要求Dが通知された時点で、要求パターンとなるA,B,C,Dは2回発行していることになる。
 しかし、その次に通知される要求Eの経過時間が閾値sT未満であるならば、今回の要求パターンは、まだ未確定であるが、少なくとも要求A,B,C,D,E、もしくは、それ以上の要求が続く要求パターンとなる。一方で、閾値sT以上であれば、今回の要求パターンはA,B,C,D,Eであることが確定する。
 つまり、閾値sT以上である場合、実際に通知された要求の時系列パターンが既存の要求パターンと一致することが確定する。その場合、一致した既存の要求パターンの信頼度パラメータを強化する方向で更新する。強化する方向で更新することによって、その要求パターンが一括要求の際に採用される確度を高めることになり、結果として、予測が成功する確率を向上させることが可能になる。
 一方、閾値sT未満の場合には、実際に通知された要求の時系列パターンが既存の要求パターンと一致しないことが確定するため、その場合には、初期値を持つ要求パターンリストを新たに生成し、その中の後続要求リストに要求B,C,D,Eを設定し、実要求情報Aとの関連付けを行う(要求時系列解析結果(6)を参照)。
 以上のように、前回の要求通知から今回の要求通知までの経過時間によって、要求パターンの構成を判別する方法を利用することで、要求リストの要素最大数を指定する方法と比較して、より長いパターンの要求パターンを構成することが可能になるとともに、システムの動作状況に応じた要求パターンの判定が可能になる。
(3)有限数の要求パターンを構成する別の方法として、要求種別を利用する方法が考えられる。
 GUIノード1からサービスノード2に発行される要求は、API実行要求以外にも、次の画面をGUIノードで表示するためのGUI記述データを取得するためのGUI記述データ取得要求や、ネットワーク上に存在するノード全体にブロードキャストを行い、ノードの存在確認を行う等のシステム情報取得要求などがあり、要求する内容によって、分類することが可能である。
 GUI記述データ取得要求が発行された場合、GUIノード1で画面上に表示する内容が更新されることを意味するため、その前後で、要求パターンが連続することは好ましくない。このGUI記述データ取得要求のように、その前後で、要求パターンの連続を断ち切る基準となる要求を終端要求と呼ぶことにする。
 そのことを利用して、有限数の要求パターンを構成するためには、例えば、GUI記述データ取得要求が通知された場合に、前回の要求が属する要求パターンとは別の要求パターンとして、その要求もしくは次回通知されることになる要求を処理すべきか否かを示す終端要求内容テーブルを要求パターン管理装置34が保持する必要がある。
 終端要求内容テーブルの1つの具体例として、GUIノード1からサービスノード2に発行される全ての要求のうち、終端要求と判定すべき要求の識別情報をテーブルに登録したものが考えられる。
 つまり、要求パターン管理装置34は、要求が通知される度に、通知された要求の識別情報が終端要求内容テーブルにあるか否かの検索を行い、通知された要求の識別情報がある場合には、次回通知されることになる要求を新たな実要求として判定する準備を行い、次の要求通知を待機する。
 一方、通知された要求の識別情報がない場合には、前回通知された要求が属する要求パターンに対して、次回通知されることになる要求を追加する準備を行い、次の要求通知を待機する。このとき、終端要求と判定された今回の要求を前回通知された要求が属する要求パターンに追加しても構わない。その基準を終端要求内容テーブルに記述してあるとして、その基準に従って要求パターンへの追加の実施を決定するとしてもよい。
 終端要求内容テーブルは、要求パターン管理装置34が固定で保持しているとしても構わない。一方で、終端要求内容テーブルは、サービスノード2からGUIノード1が取得するようにしてもよい。
 サービスノード2から取得する方式を採用することで、サービスノード2が提供するサービスに適合する終端要求内容テーブルを用いた判定が行えるため、より確度の高い一括要求の生成が可能になる。
 更なる実施例として、新たな要求パターン管理装置34の動作を説明する。
 要求パターン管理装置34は、一括要求処理装置33から出力される要求パターンの生成指示によって渡される要求をキーとして、その要求の後に要求されると予測される1つ以上の要求を決定する。その際に、決定した一つ以上の要求の中から、ある特定の要求を除外した結果を一括要求処理装置33に返信する。
 例えば、後に要求されると予測される要求の中に、サービスノード2の状態を変更する要求(サービス状態変更要求)が含まれている場合、そのサービス状態変更要求を含めた状態で一括要求を生成して、その一括要求をサービスノード2に送信すると、サービスノード2は、サービス状態変更要求を実行することになり、サービスノードの状態が更新される。
 しかし、そのサービス状態変更要求は、GUIノード1で実際に要求すべき要求と決定しているわけではないため、その実行がGUIノード1にとって想定していないサービスノード2の状態を引き起こす可能性がある。
 一括要求処理装置33から要求パターンの生成指示を受けた要求パターン管理装置34は、要求パターンデータから対応する要求パターンを決定した後に、ある特定の要求をその要求パターンから除外することによって、上記のようなGUIノード1が想定しないサービスノード2の状態変更が発生しない要求パターンに更新することが可能になる。
 上記の例では、サービス状態変更要求に分類される要求が要求パターンに含まれている場合には、その要求を要求パターンから除外して、新たな要求パターンを構築して、その要求パターンを一括要求処理装置33に返すことになる。
 また、上記の処理以外にも、要求パターン管理装置34が要求パターンデータを更新する際に、除外対象となる要求を要求パターンデータに格納しない制御を行うこととし、一括要求処理装置33から要求パターンの生成指示を受けた際には、除外対象となる要求を要求パターンから除外する処理を実施しないこととしても構わない。
 上記の2種類の処理方式と共に、除外対象となる要求パターンの判定基準となる情報は、GUIノード1内で固定値として保持するとしても構わない。また、判定基準となる情報は、システム起動時等でサービスノード2に対して取得要求を行うことで、システムとして連携して動作するサービスノード2毎の基準で判定可能としても構わない。
 さらに、上記の処理以外にも、除外対象となる要求を含めて一括要求を生成し、GUIノード1からサービスノード2に発行した後に、サービスノード2側の一括要求解釈装置42が、除外対象となる要求判定を行い、除外対象と判定された要求は要求処理装置43に出力せずに、エラー応答を一括応答生成装置45に通知するようにしても構わない。
 その場合には、GUIノード1の応答処理装置36でエラー応答を検出したとき、そのエラー応答を応答記憶装置31に記憶しない制御を行う。
実施の形態4.
 上記実施の形態1~3では、応答処理装置36が、通信装置35により受信された一括応答に含まれている実行要求及び予測要求に対応する応答などの情報を応答記憶装置31に格納するものを示したが、応答記憶装置31に一旦情報が記憶されると、何もしなければ記憶され続けることになる。
 しかし、いつまでも、その情報が記憶され続けると、その情報が実際のサービスノード2の情報と合致しない状態になる可能性がある。
 そこで、この実施の形態4では、応答記憶装置31に記憶されている応答などの情報を、あるタイミングで削除する制御を行うようにしている。
 応答記憶装置31に記憶されている応答を削除する1つの方法として、以下の方法が考えられる。
 応答記憶装置31は、応答処理装置36から、ある応答に関する応答保存要求を受けると、受付時の時刻情報と一緒に、その応答を保存する。
 応答処理装置36は、一定時間間隔で、応答記憶装置31により現在保存されている全応答に対して、保存開始時点からの経過時間を算出し、ある応答の経過時間が、ある一定の閾値を経過している場合には、その応答を応答記憶装置31から削除する制御を行う。
 上記の制御を行うことで、永久的に特定の応答が保存され続ける状況を解消することが可能になる。
 応答を削除する別の方法として、以下の方法が考えられる。
 応答記憶装置31は、応答処理装置36から、ある要求に対応する応答の取得要求を受けると、指定された要求に対する応答が保存されているか否か検索し、保存されている場合には、その応答を応答処理装置36に返信する。
 応答処理装置36は、要求に対する応答が保存されている場合、その応答を応答記憶装置31から削除する制御を行う。
 この制御を行うことで、永久的に特定の応答が保存され続ける状況を解消することが可能になる。
 上記の制御は1回目の取得要求で削除する例として説明しているが、必ずしも1回目で削除する必要はなく、N回目の取得要求で削除するとしても構わない。その場合には、応答記憶装置31は、保存する応答に対して、何回取得要求されたかを記憶する領域を設けて保存し、応答の保存時に、その領域には0を記録し、取得要求で処理される度にインクリメントを行う。
 応答処理装置36は、その領域の値がNであるか否かを判定し、Nになった時点で、その応答を削除するようにする。
 応答を削除する別の方法として、以下の方法が考えられる。
 サービスノード2の一括応答生成装置45は、一括応答を生成する際に、各応答と一緒に、その応答がGUIノード1内での有効期限となる情報(有効期限情報)、例えば、参照回数や生存時間などを一括応答に組み込んで生成する。
 一括応答を受信したGUIノード1の応答処理装置36は、一括応答に含まれている各応答と、それに対応する有効期限情報を抽出し、それらを組として応答記憶装置31に保存する。
 有効期限情報が参照回数である場合、応答処理装置36は、ある要求に対応する応答の取得要求を応答記憶装置31に出力するタイミングで、その要求に対応する応答の有効期限情報と、その要求の参照回数情報を比較し、有効期限情報の方が小さければ、その応答を応答記憶装置31から削除する制御を行う。
 また、有効期限情報が生存時間である場合、応答処理装置36は、一定時間間隔で、応答記憶装置31に保存されている全応答に対して、保存開始時点からの経過時間を算出し、ある応答の経過時間が、ある一定の閾値を経過している場合には、その応答を応答記憶装置31から削除する制御を行う。
 その有効期限情報については、一括応答に毎回格納する処理としなくても構わない。例えば、全ての応答に対する有効期限情報が記述された有効期限情報テーブルを定義し、それをGUIノード1が保持しており、その有効期限情報テーブルの情報を用いて、有効期限を超過した応答を判定して、削除処理を行うとしても構わない。
 また、有効期限情報テーブルは、サービスノード2が保持しており、GUIノード1からの明示的な有効期限情報テーブルの取得要求の応答として、サービスノード2からGUIノード1に提供する方式でも構わない。
 応答を削除する別の方法として、以下の方法が考えられる。
 サービスノード2の一括応答生成装置45は、一括応答を生成する際に、どの要求に対応する応答を、どんな値で、どのGUIノード1に送信しているかを管理する応答提供管理手段を備えている。
 応答提供管理手段では、例えば、図33に示すような応答提供管理テーブル等で、どの要求に対応する応答を、どんな値で、どのGUIノード1に送信しているかを管理する。
 応答提供管理テーブルには、どの要求に対応する応答であるかを示す提供応答IDと、提供した応答の具体的な値を示す提供応答値と、その応答をどのGUIノード1に提供したのかを示す提供先GUIノードIDリストとを備えたテーブルである。
 ただし、サービスノード2が連携するGUIノード1がシステム上唯一であれば、提供先GUIノードIDリストは省略しても構わない。
 図33の応答提供管理テーブル(1)では、GUIノード1に提供した応答が2種類ある状態を示している。
 提供応答IDには、その応答に対応する要求となるURLの一部を抽出してIDとして記述する例を示している。
 提供応答値には、応答となるJSON形式の値を格納する例を示している。
 提供先GUIノードIDリストには、要求元となるGUIノード1のドメイン名の一部を抽出してIDとして記述する例を示している。
 例えば、提供応答IDが“/srv1/getProps()”の応答をドメイン名の一部が“GUInode1”、または、“GUInode2”の2種類のGUIノード1に提供していることを示している。
 この応答提供管理テーブル(1)の状態において、一括応答生成装置45が、提供応答IDが、例えば、“/srv1/getProps()”の応答の値の全て又は一部が更新されたことを検知したとする。
 その場合、一括応答生成装置45は、提供応答IDが“/srv1/getProps()”に対応する提供先GUIノードIDリストに登録されているGUIノード1に対して、応答IDが“/srv1/getProps()”の応答を応答記憶装置31から削除要求を意味する応答削除要求イベントを発行する。
 図34は応答削除要求イベントの記述例を示す説明図である。
 図34の例では、JSON形式の配列オブジェクトとして、応答削除要求イベントを記述している。第1要素でイベントの識別情報となるイベント名を記述し、第2要素で削除対象となる応答IDを記述している。
 イベントの識別情報は、イベント名に限る必要はなく、個々のイベントに定義したイベント識別番号等でも構わない。
 また、図34の例では、削除対象となる応答IDは1つとなっているが、第2要素以降の要素は全て削除対象となる応答IDを記述する仕様として、1つの応答削除要求イベントで、複数の削除対象となる応答IDを記述可能としても構わない。
 なお、HTTPを利用したクライアント・サーバシステムでは、サーバ装置からクライアント端末に対して、自発的に情報を発信する方法としてはCometやServer-Sent Events、WebSocket APIを利用することで実現可能である。
 応答削除要求イベントを発行後、一括応答生成装置45は、そのイベントに対応する応答が記述されている要素を応答提供管理テーブルから削除する。
 例えば、図33の応答提供管理テーブル(1)の状態で、応答IDが“/srv1/getProps()”の要素に対して、応答削除要求イベントを発行した場合には、対応する要素を削除して、応答提供管理テーブルは図33の応答提供管理テーブル(2)の状態に更新される。
 一方で、応答削除要求イベントを受信したGUIノード1では、応答処理装置36が、応答削除要求イベントを解釈し、削除対象となる応答IDに対応する応答を削除するように応答記憶装置31に要求することで、その応答を応答記憶装置31から削除する制御を行う。
 以上の制御を行うことによって、GUIノード1の応答記憶装置31に記憶された応答がサービスノード2内の状態と一致しなくなるまで、応答記憶装置31が記憶し続ける状況を回避することができる。
 また、一括応答生成装置45が、ある応答値の更新を検知した場合に、応答削除要求イベントではなく、応答更新要求イベントを発行することにしてもよい。
 応答更新要求イベントは、GUIノード1の応答記憶装置31に記憶されている特定の応答を、そのイベントに記述されている応答の値に更新するように、サービスノード2からGUIノード1への要求を記述したイベントである。
 図35は応答更新要求イベントの記述例を示す説明図である。
 図35の例では、JSON形式の配列オブジェクトとして、応答更新要求イベントを記述している。第1要素でイベントの識別情報となるイベント名を記述し、第2要素で更新対象となる応答IDを記述し、第3要素で更新すべき応答の値を記述している。
 イベントの識別情報はイベント名に限る必要はなく、個々のイベントに定義したイベント識別番号等でも構わない。
 また、図35の例では、更新対象となる応答IDと、その更新すべき応答の値は一組しか記述されていないが、複数個記述しても構わない。
 応答更新要求イベントを発行後、一括応答生成装置45は、そのイベントに対応する応答が記述されている要素を応答提供管理テーブルから検索し、その要素の提供応答値を更新すべき応答の値に書き換える。
 例えば、図33の応答提供管理テーブル(1)の状態で応答IDが“/srv1/getProps()”の要素に対して、図35に示す応答更新要求イベントを発行した場合、対応する要素の提供応答値の値を応答更新要求イベントの更新すべき応答の値に書き換え、図33の応答提供管理テーブル(3)の状態に更新される。
 また、応答更新要求イベントを発行する対象となる応答を一部の応答に制限をかけても構わない。
 例えば、サービスノード2が保持する内部変数を参照するためのAPIの実行要求に対応する応答は、サービスノード2の内部状態の変更に伴って頻繁に更新されることになる。
 一方で、サービスのある特定の機能を呼び出し、応答として処理成功・失敗フラグを返すようなAPIの実行要求に対応する応答は、正常処理であれば、大多数の場合、成功フラグを返すことになり、応答が更新される頻度は低い。
 そこで、頻繁に要求される応答で、かつ、頻繁に応答が更新されるような上述のサービスノードの内部状態を表す変数の参照要求APIのみに限り、応答更新要求イベントを発行するとしても構わない。
 その場合には、一括応答生成装置45が応答提供管理テーブルを構築する際に、応答更新要求イベントの発行対象の要求に対応する応答であるか否かを判定し、発行対象でない場合には、応答提供管理テーブルへの登録処理をスキップする機能を持たせることで可能になる。
 加えて、サービスノード2の内部状態を参照するGUIノード1での処理は、GUIノード1で処理中のGUI内容に依存して大きく変化することが考えられる。
 そのため、一括応答生成装置45が持つ応答提供管理テーブルをGUI記述データ別に管理することとして、イベント発生を抑制することが考えられる。
 GUI記述データ取得要求を受けたサービスノード2は、一括応答生成装置45が、それまでに構築した応答提供管理テーブルを消去し、新たな応答提供管理テーブルを構築するとしてもよい。
 その場合、サービスノード2と連携するGUIノード1が複数ある場合には、一括応答生成装置45が管理する応答提供管理テーブルはGUIノード1別に構築し、各GUIノード1からGUI記述データ取得要求を受けた場合には、そのGUIノード1に対応する応答提供管理テーブルのみを消去することで、複数のGUIノード1と連携する場合でも対応可能である。
 また、GUI記述データ取得要求のみをトリガーとして対応する応答提供管理テーブルの消去を行う必要はなく、1つ以上の特定の要求の受信をトリガーとしてもよいし、あるパラメータが設定されているある特定の要求の受信をトリガーとしても構わない。
 なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
 この発明は、連携処理に係るネットワーク通信の回数を十分に削減する必要がある通信システムに適している。
 1 GUIノード(クライアント端末)、2 サービスノード(サーバ装置)、3 ネットワーク、11 GUI処理モジュール、12 ディスプレイ、13 入力インタフェース、14 出力インタフェース、21a,21b,21c サービスモジュール(応答生成手段)、22 サービス提供モジュール、31 応答記憶装置(応答記憶手段)、32 GUI処理装置(実行要求発行手段)、33 一括要求処理装置(要求パターン生成手段)、34 要求パターン管理装置(要求パターン生成手段)、35 通信装置(通信手段)、36 応答処理装置(応答処理手段)、41 通信装置(要求パターン受信手段、応答送信手段)、42 一括要求解釈装置(応答取得手段)、43 要求処理装置(応答取得手段)、44a,44b,44c サービス実行装置(応答生成手段)、45 一括応答生成装置(応答取得手段)、46 応答記憶装置(応答取得手段)。

Claims (15)

  1.  サービスの実行要求を発行するクライアント端末と、上記クライアント端末により発行された実行要求に対応するサービスを実行して、上記サービスの処理結果である応答を生成し、上記応答を上記クライアント端末に返信するサーバ装置とを備えた通信システムにおいて、
     上記クライアント端末は、上記サーバ装置から返信された応答を記憶する応答記憶手段と、サービスの実行要求を発行する実行要求発行手段と、上記実行要求発行手段により発行された実行要求に対応する応答が上記応答記憶手段に記憶されていれば、上記応答を上記実行要求発行手段に出力する旨を指示する出力指令を出力する一方、上記実行要求に対応する応答が上記応答記憶手段に記憶されていなければ、上記実行要求に続いて発行される可能性がある要求を予測し、その予測要求と上記実行要求からなる要求パターンを生成する要求パターン生成手段と、上記要求パターン生成手段により生成された要求パターンを上記サーバ装置に送信する一方、上記要求パターンを構成している実行要求及び予測要求に対応する上記サーバ装置から送信された応答を受信する通信手段と、上記要求パターン生成手段から出力指令を受けると、上記応答記憶手段に記憶されている実行要求に対応する応答を上記実行要求発行手段に出力し、上記通信手段により実行要求及び予測要求に対応する応答が受信されると、上記実行要求及び上記予測要求に対応する応答を上記応答記憶手段に格納するとともに、上記実行要求に対応する応答を上記実行要求発行手段に出力する応答処理手段とから構成されていることを特徴とする通信システム。
  2.  サーバ装置は、各種の実行要求に対応するサービスを実行し、上記サービスの処理結果である応答を生成する1以上の応答生成手段と、クライアント端末から送信された要求パターンを受信する要求パターン受信手段と、上記要求パターン受信手段により受信された要求パターンを構成している個々の要求毎に、当該要求に対応するサービスを実行する応答生成手段を特定して、当該要求を上記応答生成手段に与え、上記応答生成手段により生成された応答を取得する応答取得手段と、上記応答取得手段により取得された個々の要求に対応する応答を上記クライアント端末にまとめて送信する応答送信手段とから構成されていることを特徴とする請求項1記載の通信システム。
  3.  要求パターン生成手段は、実行要求発行手段により発行された実行要求の履歴を管理して、ある実行要求が発行された後、上記実行要求に続いて発行された実行要求の発行頻度を更新する処理を実施する一方、
     上記実行要求発行手段から新たに実行要求が発行されると、上記実行要求を要求パターンの先頭要素に決定するとともに、過去に上記実行要求に続いて発行された実行要求の中で、発行頻度が最高の実行要求を上記要求パターンの次要素に決定する処理を実施し、
     上記要求パターンの次要素を決定する処理を1回以上繰り返し実施することを特徴とする請求項1記載の通信システム。
  4.  要求パターン生成手段は、GUIに表示される画面単位に、実行要求発行手段により発行された実行要求の履歴を管理して、実行要求の発行頻度を更新する処理を実施し、
     上記実行要求発行手段により新たに発行された実行要求が同じ実行要求であっても、GUIに表示されている画面が異なれば、異なる要求パターンを生成することがあることを特徴とする請求項3記載の通信システム。
  5.  要求パターン生成手段は、要求パターンに含まれる要求の個数が予め設定されている上限数を超えないように、要求パターンを生成することを特徴とする請求項1記載の通信システム。
  6.  要求パターン生成手段は、実行要求発行手段により前回発行された実行要求の発行時刻と、今回発行された実行要求の発行時刻との時刻差が閾値以上であれば、前回発行された実行要求と今回発行された実行要求を異なる要求パターンに含めることを特徴とする請求項1記載の通信システム。
  7.  要求パターン生成手段は、要求パターンの中に特定の要求が含まれないように要求パターンを生成することを特徴とする請求項1記載の通信システム。
  8.  要求パターン生成手段は、サーバ装置により実行されるサービスの状態の変更要求を特定の要求として、その変更要求を要求パターンに含めないようにすることを特徴とする請求項7記載の通信システム。
  9.  応答取得手段は、要求パターン受信手段により受信された要求パターンに含まれている要求が特定の要求である場合、クライアント端末に対するエラー応答の通知を応答送信手段に指示することを特徴とする請求項2記載の通信システム。
  10.  応答処理手段は、応答記憶手段に記憶されている1以上の応答のうち、所定の削除条件を満足する応答を削除することを特徴とする請求項2記載の通信システム。
  11.  応答処理手段は、削除条件が保存期間である場合、応答記憶手段に記憶されている期間が上記保存期間を超えている応答を削除することを特徴とする請求項10記載の通信システム。
  12.  応答処理手段は、削除条件が参照回数である場合、実行要求発行手段に出力された回数が上記参照回数を超えている応答を削除することを特徴とする請求項10記載の通信システム。
  13.  応答取得手段は、応答生成手段により生成された応答の削除条件を設定し、
     応答送信手段は、個々の要求に対応する応答をクライアント端末に送信する際、上記応答取得手段により設定された削除条件を上記クライアント端末に送信することを特徴とする請求項10記載の通信システム。
  14.  サーバ装置から返信された応答を記憶する応答記憶手段と、サービスの実行要求を発行する実行要求発行手段と、上記実行要求発行手段により発行された実行要求に対応する応答が上記応答記憶手段に記憶されていれば、上記応答を上記実行要求発行手段に出力する旨を指示する出力指令を出力する一方、上記実行要求に対応する応答が上記応答記憶手段に記憶されていなければ、上記実行要求に続いて発行される可能性がある要求を予測し、その予測要求と上記実行要求からなる要求パターンを生成する要求パターン生成手段と、上記要求パターン生成手段により生成された要求パターンを上記サーバ装置に送信する一方、上記要求パターンを構成している実行要求及び予測要求に対応する上記サーバ装置から送信された応答を受信する通信手段と、上記要求パターン生成手段から出力指令を受けると、上記応答記憶手段に記憶されている実行要求に対応する応答を上記実行要求発行手段に出力し、上記通信手段により実行要求及び予測要求に対応する応答が受信されると、上記実行要求及び上記予測要求に対応する応答を上記応答記憶手段に格納するとともに、上記実行要求に対応する応答を上記実行要求発行手段に出力する応答処理手段とを備えたクライアント端末。
  15.  各種の実行要求に対応するサービスを実行し、上記サービスの処理結果である応答を生成する1以上の応答生成手段と、クライアント端末から送信された要求パターンを受信する要求パターン受信手段と、上記要求パターン受信手段により受信された要求パターンを構成している個々の要求毎に、当該要求に対応するサービスを実行する応答生成手段を特定して、当該要求を上記応答生成手段に与え、上記応答生成手段により生成された応答を取得する応答取得手段と、上記応答取得手段により取得された個々の要求に対応する応答を上記クライアント端末にまとめて送信する応答送信手段とを備えたサーバ装置。
PCT/JP2012/063314 2012-05-24 2012-05-24 通信システム、クライアント端末及びサーバ装置 WO2013175607A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014516585A JP5781225B2 (ja) 2012-05-24 2012-05-24 通信システム、クライアント端末及びサーバ装置
US14/380,740 US9680719B2 (en) 2012-05-24 2012-05-24 Communication system, client terminal, and server
DE112012006414.3T DE112012006414T5 (de) 2012-05-24 2012-05-24 Kommunikationssystem, Client-Endgerät, und Server-Gerät
CN201280072376.2A CN104220996B (zh) 2012-05-24 2012-05-24 通信系统、客户端终端以及服务器装置
PCT/JP2012/063314 WO2013175607A1 (ja) 2012-05-24 2012-05-24 通信システム、クライアント端末及びサーバ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063314 WO2013175607A1 (ja) 2012-05-24 2012-05-24 通信システム、クライアント端末及びサーバ装置

Publications (1)

Publication Number Publication Date
WO2013175607A1 true WO2013175607A1 (ja) 2013-11-28

Family

ID=49623338

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/063314 WO2013175607A1 (ja) 2012-05-24 2012-05-24 通信システム、クライアント端末及びサーバ装置

Country Status (5)

Country Link
US (1) US9680719B2 (ja)
JP (1) JP5781225B2 (ja)
CN (1) CN104220996B (ja)
DE (1) DE112012006414T5 (ja)
WO (1) WO2013175607A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465885B2 (en) * 2010-12-03 2016-10-11 Salesforce.Com, Inc. Method and system for providing information to a mobile handheld device from a database system
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
CN112737895A (zh) * 2015-03-11 2021-04-30 法斯埃托股份有限公司 用于web api通信的系统和方法
JP6444263B2 (ja) * 2015-05-27 2018-12-26 クラリオン株式会社 コンテンツ配信システム、コンテンツ配信方法
US10075422B2 (en) * 2015-06-30 2018-09-11 Amazon Technologies, Inc. Device communication environment
US10523537B2 (en) 2015-06-30 2019-12-31 Amazon Technologies, Inc. Device state management
US10958648B2 (en) * 2015-06-30 2021-03-23 Amazon Technologies, Inc. Device communication environment
WO2019157274A1 (en) * 2018-02-09 2019-08-15 Convida Wireless, Llc Service layer methods for offloading iot application message generation and response handling
US11556403B1 (en) * 2021-10-19 2023-01-17 Bank Of America Corporation System and method for an application programming interface (API) service modification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002116032A (ja) * 2000-10-06 2002-04-19 Mitsubishi Electric Corp 地図情報ナビゲーション送信サーバ
JP2005056284A (ja) * 2003-08-07 2005-03-03 Pfu Ltd ファイル管理装置
WO2011077642A1 (ja) * 2009-12-22 2011-06-30 パナソニック株式会社 コンテンツ先読み制御装置及び先読み制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
JPH04369076A (ja) 1991-06-18 1992-12-21 Nec Corp 分散型データベース処理システム
JPH07160462A (ja) 1993-12-06 1995-06-23 Nissan Motor Co Ltd 画面表示制御装置
US5758087A (en) 1996-06-14 1998-05-26 International Business Machines Corporation Apparatus and method for predicted response generation
US5878223A (en) * 1997-05-07 1999-03-02 International Business Machines Corporation System and method for predictive caching of information pages
JP2005228228A (ja) 2004-02-16 2005-08-25 Nippon Telegr & Teleph Corp <Ntt> クライアントサーバシステム及びそのgui表示方法
US20080301300A1 (en) * 2007-06-01 2008-12-04 Microsoft Corporation Predictive asynchronous web pre-fetch
CN101325602A (zh) * 2008-07-30 2008-12-17 广州市动景计算机科技有限公司 一种微浏览器智能预读网页的方法及系统
CN102104494B (zh) * 2009-12-18 2013-11-06 华为技术有限公司 元数据服务器、带外网络文件系统及其处理方法
US8473688B2 (en) 2010-03-26 2013-06-25 Microsoft Corporation Anticipatory response pre-caching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002116032A (ja) * 2000-10-06 2002-04-19 Mitsubishi Electric Corp 地図情報ナビゲーション送信サーバ
JP2005056284A (ja) * 2003-08-07 2005-03-03 Pfu Ltd ファイル管理装置
WO2011077642A1 (ja) * 2009-12-22 2011-06-30 パナソニック株式会社 コンテンツ先読み制御装置及び先読み制御方法

Also Published As

Publication number Publication date
JP5781225B2 (ja) 2015-09-16
JPWO2013175607A1 (ja) 2016-01-12
DE112012006414T5 (de) 2015-03-26
US9680719B2 (en) 2017-06-13
CN104220996A (zh) 2014-12-17
US20150026244A1 (en) 2015-01-22
CN104220996B (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
JP5781225B2 (ja) 通信システム、クライアント端末及びサーバ装置
JP5230642B2 (ja) ウェブページの表示方法およびシステム
CN111897638B (zh) 分布式任务调度方法及系统
US10275398B2 (en) Content display device, content display method, and content display program
US7225252B2 (en) Observation display method for dynamically changing on monitor screen object information observed on computer network and observation display system using computer network
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
JP4846832B2 (ja) Webページの表示方法、計算機システム及びプログラム
JP2015052821A (ja) 通信装置および通信方法
JP2008112311A (ja) ビジネスプロセス実行方法、ビジネスプロセス実行システムおよびプログラム
JP5742666B2 (ja) 状態グラフを同期させる方法、製品及び電子装置
JP2003303152A (ja) コンテンツ送信システム
JP4689635B2 (ja) メタデータ管理方法、メタデータ管理システム、及び、メタデータ管理プログラム
JP2020013223A (ja) 制御システム、検索装置および検索プログラム
JP3842549B2 (ja) 情報収集システム、情報収集方法及び記憶媒体
JP3726459B2 (ja) データ中継装置、データ中継方法、情報端末装置、情報端末装置の情報処理方法、データ通信システムおよび記録媒体
US7155503B2 (en) Data server
JP2001325238A (ja) 分散オブジェクトシステムにおける処理進捗状況表示方法
JP4719243B2 (ja) データ同期方法および通信装置
KR20120118866A (ko) 웹기술을 이용하여 저성능 원격지 장치를 제어하기 위한 인터페이스 구축 시스템 및 그 방법
JP5979223B2 (ja) 分散処理におけるサービス検索方法、プログラム、およびサーバ装置
JP5891313B2 (ja) 計算機、計算機システム、及びデータ管理方法
KR20110005013A (ko) 모바일 인터넷 서비스 시스템 및 그 동작 방법
JP2019021238A (ja) 検索制御プログラム、検索制御方法および検索制御装置
KR20100070100A (ko) 데이터베이스 기반 노드 갱신 방법 및 그에 따른 타겟 노드운용 방법
JP2014026620A (ja) 情報処理装置及びコンテンツ管理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12877575

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014516585

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14380740

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112012006414

Country of ref document: DE

Ref document number: 1120120064143

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12877575

Country of ref document: EP

Kind code of ref document: A1