WO2017200037A1 - 処理システムおよびそのプログラム - Google Patents

処理システムおよびそのプログラム Download PDF

Info

Publication number
WO2017200037A1
WO2017200037A1 PCT/JP2017/018651 JP2017018651W WO2017200037A1 WO 2017200037 A1 WO2017200037 A1 WO 2017200037A1 JP 2017018651 W JP2017018651 W JP 2017018651W WO 2017200037 A1 WO2017200037 A1 WO 2017200037A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
processing server
server
application
data
Prior art date
Application number
PCT/JP2017/018651
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 EP17799461.3A priority Critical patent/EP3460661A4/en
Priority to JP2018518349A priority patent/JP6668465B2/ja
Priority to US16/303,499 priority patent/US11340969B2/en
Publication of WO2017200037A1 publication Critical patent/WO2017200037A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Definitions

  • the present invention relates to a processing system and its program.
  • Patent Document 1 As a background art of such a field, in Patent Document 1, a load distribution device is prepared for each application, and a plurality of processing servers that execute application data processing are arranged under the load distribution device to perform load distribution. Is described (FIG. 1).
  • Patent Document 1 a plurality of applications are arranged on one processing server, and resource allocation is dynamically performed among a plurality of applications according to load data and performance data related to the application, so that the peak load period It is described that computer resources can be effectively utilized between different applications (paragraphs 0004 and 0025).
  • a layer 7 level protocol of received data for distributing data to the load balancer is analyzed, an application is specified, and the load is distributed to the load balancer according to the specified application.
  • the load of a series of data distribution processing increases.
  • a device that performs this data distribution processing (for example, a load balancer capable of processing at the layer 7 level) becomes a bottleneck, and even if the number of processing servers is large, a large amount of data cannot be processed in the first place.
  • protocol at the layer 7 level includes, for example, HTTP (Hyper Text Transfer Protocol) REST (Representational State Transfer) and MQTT (MQ Telemetry Transport).
  • HTTP Hyper Text Transfer Protocol
  • REST Real Text Transfer Protocol
  • MQTT MQ Telemetry Transport
  • Patent Document 1 describes routing to a load balancer by cluster aliasing (paragraph 0015), there is no disclosure of technology relating to protocol analysis or application specific processing.
  • a load balancer that distributes data to devices that perform multiple data distribution processing by layer 4 level protocol analysis is placed in front of the device that performs data distribution processing Although it is possible to increase the number of devices, this leads to an increase in cost.
  • the present invention has been made in view of the above problems, and an object of the present invention is to provide a load distribution processing system in which a processing server can distribute the load of data distribution processing in addition to the distribution of data processing.
  • a typical processing system is a processing system including a data distribution device and a plurality of processing servers, and the data distribution device includes information for identifying an application program. And the received data or a message generated from the received data is transferred to one of the plurality of processing servers, and the processing server A server determination information storage unit that stores registration information, load information of each of the plurality of processing servers, and a transfer determination information storage unit for each application that stores conditions specific to the application program. Data or messages containing information that identifies the program If the received data or message is determined to be data, a message is generated from the received data. If the received data or message is determined to be a message, the application program is identified from the received message.
  • a load distribution processing system in which a processing server can also distribute data distribution processing load.
  • FIG. 1 is an example of the overall system configuration.
  • This system includes a plurality of client terminals 101 (one of which is representatively represented as the client terminal 101 without any particular distinction between the client terminals 101a to 101d, and the other symbols are also denoted in the same manner hereinafter), a client
  • the data distribution device 103 is connected to the terminal 101 via the network 102, a plurality of processing servers 104 connected to the data distribution device 103, and a deployed application management server 105.
  • the data distribution device 103 and the processing server 104 may be called a processing system.
  • the client terminal 101 is a terminal that generates and transmits data for executing application processing, and is a data management server in a company or factory, a communication device such as a smartphone or a tablet terminal, and recently, a sensor device, Some devices such as smart meters and cars have a communication function, and are devices having such a communication function.
  • the network 102 is a wireless network or a wired network provided by a communication carrier or the like.
  • the network 102 may include a network owned by an individual company or the like as a part of the network 102, or may be a network that allows a plurality of types of protocols to pass.
  • the data distribution device 103 is a device that receives data from the client terminal 101 and distributes the received data to a plurality of processing servers 104.
  • data is distributed to a load distribution device for each application or a cluster node corresponding to the application by a routing or load distribution device.
  • the load of the distribution process in the data distribution apparatus 103 is reduced, and a large amount of data can be processed by one data distribution apparatus 103.
  • the data distribution device 103 may be, for example, a computer including a central processing unit, a communication I / F (Interface), a data storage device, and a program storage device. Each of these devices may have the same structure as each of the devices in the processing server 104 described with reference to FIG. Further, a part of the operation of the central processing unit that executes the program stored in the program storage device may be hardware such as an integrated circuit that performs the same operation.
  • the processing server 104 is a server that executes application processing in response to data transmitted from the client terminal 101.
  • execution of application processing is execution of an application program, and hereinafter, the application program is abbreviated as an application.
  • FIG. 1 shows an example of a logical configuration of the processing server 104, and the processing server 104 has an execution platform and middleware for executing the application.
  • the application may be different for each processing server 104.
  • the processing server 104a has three applications (AppA, AppB, and AppC), and the processing server 104b has two applications (AppA and AppC).
  • the processing server 104c has two applications (AppA and AppB).
  • the configuration of the processing server 104 will be described in detail with reference to FIG.
  • the deployed application management server 105 is a server that manages the type of application installed in the processing server 104, load information of the processing server 104, information related to execution of the application, and the like. The configuration of the deployed application management server 105 will be described in detail with reference to FIG.
  • these servers are examples of different physical machines, but these servers may be different virtual machines of the same physical machine, or different virtual machines of different physical machines. Alternatively, physical machines and virtual machines may be mixed.
  • FIG. 2 shows an example of the configuration of the processing server 104.
  • the processing server 104 includes a communication I / F 210 that communicates with the outside, a data storage device 220 that stores information to be persisted, a program storage device 230 that stores programs, information that is necessary from the data storage device 220 and the program storage device 230. Or a central processing unit 211 that reads and executes a program, and is configured by connecting components included in a general computer via a bus.
  • the communication I / F 210 is an interface for connecting to, for example, Ethernet (registered trademark) and communicating with another processing server 104 or the data distribution device 103.
  • the communication I / F 210 may be controlled by a program of the execution platform 240 described later. In particular, a protocol at a layer 4 level or higher may be processed by the program.
  • the data storage device 220 in the processing server 104 is installed in each processing server 104 and the application-message management storage unit 221 in which the relationship between the message corresponding to the data transmitted from the client terminal 101 and the application 261 is stored.
  • the server determination information storage unit 222 that stores the information of the application 261 and the load information of the processing server 104, and a condition that is unique to the application 261 and that determines whether to transfer between the processing servers 104 ,
  • Each of the application-message management storage unit 221, the server determination information storage unit 222, and the application-specific transfer determination information storage unit 223 may be a different storage area in the data storage device 220. Further, the data storage device 220 may be a hard disk drive, a solid state drive, a flash memory, or the like.
  • the message is information used for data transfer between the processing servers 104, and may be information for identifying a combination of types and types of a plurality of data to be transferred. It may be information for identifying a combination of variable names of the data.
  • the message itself is not the content of data, but may be information indicating what kind of data is combined.
  • the message may be information corresponding to the application 261, or may be information indicating a combination of data items to be processed by the application 261.
  • the message may be transferred along with data indicated by the message information, and is transferred according to a protocol uniquely defined between the processing servers 104.
  • the AppA transfer determination information storage used when using the data held in the cache of each processing server 104 as the transfer determination process of the application 261a (AppA).
  • the program storage device 230 in the processing server 104 includes an execution platform 240, a middleware 250, and an application group 260.
  • the execution platform 240 is an execution environment of Java (registered trademark), Apache Hadoop (registered trademark), or the like, and is a distributed processing execution environment, which is an environment for executing a program.
  • the execution platform 240 may include an OS (Operating System), and the OS may include a part of a communication protocol stack.
  • the middleware 250 is so-called middleware, and is a program that operates on the execution platform 240 and provides a common function used by the plurality of applications 261 of the application group 260 and a framework for embedding individual functions of each of the applications 261. is there. Therefore, the middleware 250 may be a set of programs having an interface with the application group 260 (the application 261) and / or an interface with the execution platform 240.
  • the middleware 250 generates a message based on the data transmitted from the client terminal 101, or receives a message transferred from another processing server 104, and receives an application, that is, an application for the generated or received message.
  • a processing server selection unit 252 that selects the processing server 104 for executing the processing execution unit 262 and an application execution unit 253 that calls and executes the processing execution unit 262 are included.
  • the middleware 250 updates the determination information update that notifies the deployment application management server 105 of the update information.
  • the check unit 254 and the deployed application management server 105 are notified of the update of the server determination information of the other processing server 104 or the transfer determination information for each application, the notification is received and the transfer determination for the server determination information storage unit 222 or the application A determination information reception update unit 255 that updates the information storage unit 223 is included.
  • the message reception generation unit 251 receives the message common to the processing servers 104 and specifies the application 261, and in addition, the application 261 is developed so that data of a different protocol can be received for each application 261.
  • the application-specific reception processing unit 264 that can be newly added by the user is activated to wait for reception of data of a plurality of protocols.
  • the message reception generation unit 251 and the processing server selection unit 252 will be described in detail with reference to FIGS.
  • the application group 260 includes one or a plurality of applications 261.
  • the process execution unit 262 of the application 261 is a main program for performing an operation according to the message.
  • the process execution unit 262 is added when the transfer determination process is performed under conditions specific to the application 261.
  • An application-specific processing server selection unit 263 and an application-specific reception processing unit 264 that receives data of a different protocol for each application 261 and generates a message may be included.
  • each processing server 104 operates as a cluster capable of executing the application.
  • the application-specific reception processing unit 264 is not limited to a set of three, and the application-specific reception processing unit 264 is arranged in many processing servers 104, and the application-specific reception processing unit 264 is arranged in the processing server 104.
  • the processing execution unit 262 and the application-specific processing server selection unit 263 may be arranged in a small number of processing servers 104 according to the processing amount of the application.
  • the protocol of data can be analyzed by many processing servers 104, and the processing server 104 is selected from the processing servers 104 in which the processing execution unit 262 is arranged, and the selected processing server 104 is selected. Data (message) is transferred to.
  • the processing execution unit 262 and the application-specific processing server selection unit 263 may be the application 261, and the application-specific reception processing unit 264 may not be included in the application 261. Further, the process execution unit 262 may be the application 261.
  • each unit included in the program storage device 230 is a program read and executed by the central processing unit 211, but two or more units may constitute one program. In the following description, the description mainly of each unit included in the program storage device 230 may be replaced with the description mainly of the central processing unit 211 that reads and executes each unit.
  • the program storage device 230 may be a memory, and each unit included in the program storage device 230 may be stored in the data storage device 220 and loaded from the data storage device 220. You may load from the reading device of the omitted storage medium.
  • the application processing server selection unit 263 and the application reception processing unit 264 delegate the protocol analysis processing and server selection processing conventionally performed by the data distribution device 103 to the processing server 104 side. And the processing load on the data distribution device 103 can be reduced.
  • FIG. 3 shows an example of the configuration of the deployed application management server 105.
  • the deployed application management server 105 is a server that manages the latest server determination information or application-specific transfer determination information notified from each processing server 104 and distributes it to the processing servers 104 other than the notified processing server 104.
  • the notified processing server 104 may be included in the distribution destination.
  • the deployed application management server 105 is a communication I / F 310 that communicates with the outside, a data storage device 320 that stores information to be persisted, a program storage device 330 that stores program processing, Components such as a central processing unit 311 that reads and executes necessary information and programs from the data storage device 320 and the program storage device 330 are connected by a bus.
  • the data storage device 320 in the deployed application management server 105 includes a server determination information storage unit 322 that holds the latest information of the server determination information and the transfer determination information for each application held by each processing server 104, and the transfer determination information storage for each application. Part 223.
  • Each processing server 104 holds information related to the application 261 arranged in itself, whereas the deployed application management server 105 is arranged if it is arranged in any of the processing servers 104. The difference is that information about the application 261 is also held.
  • the program storage device 330 in the deployed application management server 105 stores the server determination information storage unit 322 and the application-specific transfer determination information storage unit 323 based on the server determination information or the application-specific transfer determination information notified from each processing server 104. It includes a determination information update transfer unit 331 that updates the latest state, extracts the processing server 104 that holds the information before the update, and distributes the latest information to the extracted processing server 104.
  • the determination information update transfer unit 331 is a program that is read and executed by the central processing unit 311. In the following description, the determination information update transfer unit 331 is mainly described by reading the determination information update transfer unit 331. The description may be replaced by a description mainly performed by the central processing unit 311 to be executed.
  • the program storage device 330 may be a memory, and the determination information update transfer unit 331 may also be stored in the data storage device 320 and loaded from the data storage device 320, and the communication I / F 310 or illustration is omitted. It may be loaded from a storage medium reader.
  • the determination information update check unit 254 of each processing server 104 is updated by detecting that the information in its own server determination information storage unit 222 or the transfer determination information storage unit 223 for each application has been updated or updated. Information is notified by communication I / F210.
  • the determination information update transfer unit 331 of the deployed application management server 105 receives the notification through the communication I / F 310 and updates the server determination information storage unit 322 or the application-specific transfer determination information storage unit 323 based on the notified update information. And distributed via the communication I / F 310.
  • This distribution may be a distribution in which the processing server 104 that holds the information before the update is extracted based on the update information and the extracted processing server 104 is the destination.
  • the determination information reception update unit 255 of the processing server 104 receives the distribution through the communication I / F 210 and updates its own server determination information storage unit 222 or application-specific transfer determination information storage unit 223 based on the distributed update information. To do.
  • processing server selection unit 252 of the processing server 104 only needs to be able to refer to the latest server determination information and application-specific transfer determination information. For example, the processing server 104 does not hold these pieces of information but holds them in the deployed application management server 105. Then, the processing server 104 may access the deployed application management server 105 each time the processing server selection unit 252 refers.
  • the processing server selection unit 252 preferably refers to the server determination information storage unit 222 and the application-specific transfer determination information storage unit 223 of its own processing server 104 so as not to increase.
  • FIG. 4 is an example in which the application-message management storage unit 221 held in the processing server 104 is configured as a table.
  • the application-message management storage unit 221 stores information defining the relationship between the application 261 and the message.
  • an application name 401 that specifies the application 261 and a message type 402 that specifies a message are included, and the information of the application name 401 and the information of the message type 402 are associated with each other.
  • Application names 401 “AppA”, “AppB”, and “AppC” respectively identify the applications 261a, 261b, and 261c shown in FIG.
  • Information stored in the application-message management storage unit 221 is set in advance via the communication I / F 210 or by an input device (not shown).
  • FIG. 5 shows an example in which the server determination information storage units 222 and 322 held in the processing server 104 and the deployed application management server 105 are configured as a table.
  • the server determination information storage units 222 and 322 information on the application 261 arranged in each processing server 104 and load information on each processing server 104 are stored.
  • a processing server name 501 that identifies the processing server 104
  • a deployed application name 502 that represents the application 261 that is arranged in the processing server 104
  • load information 503 that represents the load state of the processing server 104 are included.
  • “Server A”, “Server B”, and “Server C” of the processing server name 501 respectively identify the processing server 104a, the processing server 104b, and the processing server 104c illustrated in FIG.
  • the load state of the load information 503 may be a guideline such as a load on the central processing unit 211 or an amount obtained by multiplying the amount of messages assigned to the processing execution unit 262 and waiting for processing by a predetermined weighting factor.
  • the expression of the load state may be “Busy”, “Free”, or a numerical value.
  • Information on the processing server name 501 and the deployed application name 502 is set in advance via the communication I / F 210 or by an input device (not shown), and information on the load information 503 is periodically detected and updated by the central processing unit 211.
  • an operation management server or the like different from the system shown in FIG. 1 may monitor each processing server 104 to collect the load state and be updated periodically.
  • FIG. 6A is an example in which the AppA transfer determination information storage units (caches) 224a and 324a held in the processing server 104 and the deployed application management server 105 are configured as a table.
  • the AppA transfer determination information storage units (caches) 224a and 324a data (cache data) cached in the processing server 104 that has been executed when each processing server 104 executed the application 261a (AppA) in the past. Thereafter, information for specifying data held as a cache is stored.
  • the processing server name 601 that identifies the processing server 104 and the retained cache information 602 in which the processing server 104 represents cache data information are included, and these pieces of information are associated with each other.
  • “ServerA” or the like of the processing server name 601 matches “ServerA” or the like of the processing server name 501 corresponding to “AppA” of the deployed application name 502.
  • AAAAAA or the like of the retained cache information 602 may be information that can identify the cache data, and may be the content of the cache data itself when the amount of data is small, or an identifier or an identifier assigned to identify the content of the cache data. It may be a hash function value of cache data.
  • the information of the processing server name 601 may be set in advance via the communication I / F 210 or by an input device (not shown), and the information of the retained cache information 602 may be updated by the central processing unit 211 during cache processing.
  • FIG. 6B is an example in which the AppC transfer determination information storage units (ID transactions) 224c and 324c held in the processing server 104 and the deployed application management server 105 are configured as a table.
  • the AppC transfer determination information storage units (ID transactions) 224c and 324c store transaction IDs related to the application 261c (AppC) currently being processed by each processing server 104.
  • a processing server name 611 that identifies the processing server 104 and a processing ID 612 that is an ID of a transaction related to the application 261 currently processed by the processing server 104 are included, and these pieces of information are associated with each other.
  • “ServerA” or the like of the processing server name 611 matches “ServerA” or the like of the processing server name 501 corresponding to “AppC” of the deployed application name 502.
  • the information of the processing server name 611 may be set in advance via the communication I / F 210 or by an input device (not shown), and the information of the processing ID 612 may be updated by the central processing unit 211 when the transaction starts or ends.
  • FIG. 7 is an example of an operation flow for receiving data or messages of the processing server 104.
  • the middleware 250 or the message reception generation unit 251 sets each of the application-specific reception processing units 264 and the message reception generation unit 251 in a receivable state.
  • the reception server included in each of the application-specific reception processing units 264 and the reception server included in the message reception generation unit 251 are activated (step 701).
  • a message reception server there is a reception server waiting for reception at a TCP (Transmission Control Protocol) port number 12345
  • an application protocol reception server is a reception server such as an HTTP server or an MQTT server.
  • One application protocol reception server may be activated for each application 261, and even if different applications 261 have the same protocol, there is only one reception server, an identifier in the data, etc. From the above, the application 261 may be identified. In this way, in the case of the same protocol, the application-specific reception processing unit 264 may be shared between the applications 261.
  • each receiving server When the receiving server is activated, each receiving server enters a message or data reception waiting state (step 702).
  • the processing server 104 When the processing server 104 receives data, for example, when the data transmitted from the client terminal 101 is HTTP protocol data, that is, data processed by the application 261a (AppA), the reception processing unit for each A application in the application 261a H.264a receives the data, analyzes the protocol (step 703), and generates one or more messages corresponding to the application 261a (AppA) (step 704).
  • HTTP protocol data that is, data processed by the application 261a (AppA)
  • the reception processing unit for each A application in the application 261a H.264a receives the data, analyzes the protocol (step 703), and generates one or more messages corresponding to the application 261a (AppA) (step 704).
  • the processing proceeds to the processing described with reference to FIG. 8 (step 706).
  • the data since the data includes information for identifying the application 261, it is not necessary to perform processing for identifying the application 261 from the data, but the message itself includes the information for identifying the application 261. Therefore, the following processing is performed.
  • the processing server 104 When the processing server 104 receives a message, for example, when it receives a message converted not by the client terminal 101 but by another processing server 104 or the like, the message type 402 of the application-message management storage unit 221 is set in the received message. The information of the application name 401 corresponding to the received message is retrieved, and the application 261 is specified (step 705). Then, in order to select the processing server 104, the processing proceeds to the processing described with reference to FIG. 8 (step 706).
  • the protocol stack included in the OS of the execution platform 240 processes the TCP and sets the TCP port number to the same as the operation of a general computer.
  • the corresponding program may be called to pass data or a message.
  • the OS receives the message reception generation unit 251 reception server, the A application-specific reception processing unit 264a, and the B application-specific reception processing unit 264b. Either the server or the reception server of the reception processing unit 264c for each C application may be called. Further, the message reception generation unit 251 may call a program corresponding to the TCP port number.
  • FIG. 8 is an example of an operation flow for selecting a processing server of the processing server 104.
  • the processing server selection unit 252 determines whether the application 261 specified by the message reception generation unit 251 or the application 261 specified by the information included in the data is registered in the processing server 104 that executes the determination. (Step 801).
  • the processing server selection unit 252 may acquire the data from the reception processing unit 264 for each application.
  • the processing server selection unit 252 searches the processing server 104 of the processing server selection unit 252 executing the step 801 with the processing server name 501 in the server determination information storage unit 222, and matches the processing server in the search. It may be determined whether the identified application 261 is registered in the deployed application name 502 corresponding to 104.
  • the processing server selection unit 252 determines whether or not there is a transfer determination process under a condition unique to the application 261 (step 802). For example, when the identified application 261 is the application 261a (AppA), it may be determined that the A application-specific processing server selection unit (cache) 263a exists, or the identified application 261 is the application 261b (AppB). In this case, it may be determined that there is no transfer determination process under conditions unique to the application 261b.
  • the processing server selection unit 252 selects the processing server 104 including the identified application 261 in the deployed application name 502 based on the server determination information storage unit 222. (Step 803).
  • the processing server 104 with a low load may be selected from among the plurality of processing servers 104 as this selection. You may select by round robin, and you may select by the information independent of the application 261 other than that. This selection is supported by the middleware 250 as a standard.
  • the processing server selection unit 252 calls a transfer determination process under conditions specific to the identified application 261 (step 804).
  • the called application-specific processing server selection unit 263 selects the processing server 104 using information in the application-specific transfer determination information storage unit 223 and the server determination information storage unit 222 (step 805).
  • the A-application-specific processing server selection unit (cache) 263a is called, and the A-application-specific processing server selection unit (cache) 263a displays the AppA transfer determination information storage unit.
  • the processing server 104 having a low load is selected while giving priority to the processing server 104 holding the cache data.
  • the plurality of processing servers 104 are specified, and a processing server 104 having a relatively low load is selected from the specified processing servers 104. May be. Further, when the load is the same among the specified processing servers 104, for example, round robin may be selected.
  • the processing server selection unit 252 determines whether or not the selected processing server 104 is the processing server 104 itself (step 806), and if it is determined that the processing server 104 itself is, calls the application execution unit 253. (Step 807). Then, the application execution unit 253 calls the application 261. For example, when the identified application 261 is the application 261a (AppA), the A process execution unit 262a is called.
  • AppA application 261a
  • step 806 If it is determined in step 806 that it is not the processing server 104 itself, the processing server selection unit 252 sends the message received in step 802 or the message generated in step 704 to the processing server 104 selected in step 803 or step 805. Transfer (step 808).
  • FIG. 9 is an example of the entire operation sequence in which the operation flows described with reference to FIGS. 7 and 8 are combined.
  • This operation sequence is an example in the case of using a data distribution device 103 that analyzes a layer 4 level protocol and selects a processing server 104 without depending on data.
  • Each of the processing servers 104a, 104b, and 104c has a processing execution unit 262 of each application 261 and an application-specific processing server selection unit 263 as shown in “AppA”, “AppB”, and “AppC” shown in FIG. Further, each of the processing servers 104a, 104b, and 104c has at least a C application-specific reception processing unit 264c.
  • the client terminal 101 transmits data 901 corresponding to “AppC” and having a transaction ID “101” using REST as a protocol.
  • the data distribution apparatus 103 performs TCP protocol analysis of the received data 901 at the layer 4 level (step 902), selects the transfer destination processing server 104c by a lightweight process such as round robin (step 903), and continues as it is. Transfer as data 904.
  • processing server 104c is selected by round robin, but the processing server 104c does not register the C processing execution unit 262c for “AppC” and cannot execute the processing of the application 261c.
  • the processing server 104c performs layer 7 level “AppC” protocol analysis by the C application-specific reception processing unit 264c (step 905), returns OK 906 to the data distribution device 103, and generates a message (MessageC) ( In step 908), standard support is selected in step 803 shown in FIG. 8 (step 909).
  • processing server 104 corresponding to “AppC” is selected from the server determination information storage unit 222 and has a low load, and there are a plurality of processing servers 104 having the same load, Among them, “Server A” (processing server 104a) is selected by round robin. The processing server 104c transfers the message 910 to the selected processing server 104a.
  • the middleware 250 selects the processing server 104a by the selection supported by the standard. become.
  • the processing server 104a Upon receiving the message 910, the processing server 104a specifies “AppC” (application 261c) corresponding to the message 910 (MessageC) from the application-message management storage unit 221 (step 911), returns OK 912, and returns the application 261c. Since there is a transfer determination process under a condition unique to the C application, the C application-specific process server selection unit 263c is called to select the process server 104 (step 913).
  • the processing server 104b Upon receiving the message 914, the processing server 104b specifies the corresponding application 261c from the app-message management storage unit 221 as in the processing server 104a (step 915), returns OK 916, and conditions unique to the application 261c. Since there is a transfer determination process in C, the C application-specific processing server selection unit 263c is called, the processing server 104b is selected (step 917), the C process execution unit 262c of the application 261c (AppC) is called, and the application Process (step 918).
  • the data distribution device 103 even if the data distribution device 103 appropriately selects the processing server 104 without performing the processing at the layer 7 level or the load on the processing server 104, the data corresponds to the layer 7 level or the load.
  • the data is transferred to the processing server 104 and executed. Further, the processing that has been a processing load of the conventional data distribution device can be transferred to the processing server 104 side, and the data distribution device 103 becomes a bottleneck even in various data having a large amount of data and a plurality of protocols. Instead, the load can be distributed to the processing servers 104.
  • the data distribution device 103 can be transferred by the layer 4 level protocol analysis, the data distribution device 103 introduces a commercially available load balancer as the data distribution device 103 without depending on the layer 7 level protocol and the arrangement of the application 261. It is also possible to do.
  • the load on the processing server 104 increases and the data distribution device 103 has a margin. In some cases, the number of processing servers 104 must be expanded.
  • the application 261 analyzes the layer 7 level protocol and performs message generation. Transfer to the processing server 104 without specifying the application, an example of selecting and transferring to the processing server 104 to which the application 261 is registered, and selecting and transferring the processing server 104 after performing the transfer determination process for each application.
  • the processing server 104 can cope with a stepwise change in the processing contents of the data distribution device 103.
  • FIG. 10 to 12 are examples of an operation sequence of the entire system in accordance with the stepwise change of processing contents of the data distribution device 103.
  • FIG. The data distribution device 103 in each figure is physically the same device, but the processing content may be different because some setting is different, and will be described with the same reference numerals as the data distribution device 103, but the processing content is different. It may be a physically separate device.
  • the processing servers 104a, 104b, and 104c are common to the processing servers 104a, 104b, and 104c described with reference to FIGS. However, since the data or messages received by the processing servers 104a, 104b, and 104c are different depending on the figure, the operations of the processing servers 104a, 104b, and 104c are different.
  • FIG. 10 shows an example of an operation sequence in which the data distribution device 103 performs protocol analysis and message generation, but transfers the application 261 to the processing server 104 without specifying it.
  • the client terminal 101 transmits data 1001 corresponding to “AppC” and having a transaction ID “101” using REST as a protocol.
  • the data distribution apparatus 103 analyzes the layer 7 level protocol of the received data 1001 (step 1002), returns OK 1003 to the client terminal 101, and generates a message (MessageC) (step 1004). Then, the message 1006 is transferred to the processing server 104c which is a result of random selection such as round robin without specifying the processing server 104 to which the application 261c (AppC) corresponding to the message (MessageC) is registered. .
  • the processing server 104c Upon receiving the message 1006, the processing server 104c specifies “AppC” (application 261c) corresponding to the message 1006 (MessageC) from the application-message management storage unit 221 (step 1007), and returns OK 1008. Steps 1009 to 1018 after “AppC” is specified are the same operation sequence as steps 909 to 918 described with reference to FIG. 9, and the processing server 104b performs the C process execution unit 262c of the application 261c (AppC). To process the application.
  • the data distribution device 103 performs layer 7 level protocol analysis and message generation, and forwards the application 261 to the processing server 104 without specifying it.
  • the processing of 104c is reduced in weight, and the processing of the data distribution device 103 is reduced in weight than the application 261 is specified by the data distribution device 103. Further, there is no need to change the configuration or settings of the processing server 104c.
  • FIG. 11 is an example of an operation sequence in which the data distribution device 103 selects and transfers to the processing server 104 in which the application 261 is registered.
  • the client terminal 101 transmits data 1101 corresponding to “AppA” using HTTP as a protocol and having data “AAAAA” used for processing of the application 261a (AppA).
  • “AAAAA” is information corresponding to the retained cache information 602.
  • the data distribution apparatus 103 analyzes the layer 7 level protocol of the received data 1101 (step 1102), returns OK 1103 to the client terminal 101, and generates a message (Message A) (step 1104).
  • the processing server 104a in which “AppA” is registered is selected (step 1105).
  • the processing server 104a is selected at random such as round robin from the processing servers 104a and 104c in which “AppA” is registered, and the message 1106 is transferred.
  • the processing server 104a When the processing server 104a receives the message 1106, the processing server 104a identifies “AppA” (application 261a) corresponding to the message 1106 (MessageA) from the application-message management storage unit 221 (step 1107), returns an OK 1108, and returns the application. Since there is a transfer determination process under conditions unique to 261a, the application server-specific process server selection unit (cache) 263a is called to select the process server 104 (step 1109).
  • “ServerC” processing server 104c
  • the processing server 104a further transfers the same message 1110 as the message 1106 to the processing server 104c.
  • the processing server 104c Upon receiving the message 1110, the processing server 104c specifies the corresponding application 261a from the application-message management storage unit 221 as in the processing server 104a (step 1111), returns OK 1112, and conditions unique to the application 261a. Since there is a transfer determination process, the A application-specific processing server selection unit (cache) 263a is called to select the processing server 104c itself (step 1113), and the A process execution unit 262a of the application 261a (AppA) is selected. Call and application processing (step 1114).
  • the received processing server 104 Since the message is transferred to the processing server 104 in which the application 261 is registered in the data distribution device 103, the received processing server 104 performs one transfer if there is a transfer determination process under the unique conditions of the application 261. However, there is no possibility that two transfers occur as in the examples shown in FIGS. 9 and 10.
  • the data distribution device 103 performs protocol analysis and message generation, and further selects the processing server 104 in which the application 261 corresponding to the message is registered. Information corresponding to the determination information storage unit 222 is managed. However, since round robin or the like is performed without performing the transfer determination process under conditions unique to the application 261, an increase in the type of the application 261 does not increase the transfer determination processing load.
  • FIG. 12 is an example of an operation sequence in which the data distribution device 103 performs a transfer determination process under conditions unique to the application 261, selects the processing server 104, and transfers it.
  • the client terminal 101 transmits data 1201 corresponding to “AppA” using HTTP as a protocol and having data “AAAAA” used for processing of the application 261a (AppA).
  • the data distribution apparatus 103 analyzes the layer 7 level protocol of the received data 1201 (step 1202), returns OK 1203 to the client terminal 101, and generates a message (Message A) (step 1204).
  • the processing server 104 as a transfer destination of the message (Message A) is selected by the same processing as the processing server selection unit 263 by application (step 1205).
  • the data distribution apparatus 103 has information equivalent to the AppA transfer determination information storage unit (cache) 224a and information equivalent to the server determination information storage unit 222, and “ServerA” and “ServerC” in which “AppA” is registered. Since the data is “AAAAA”, “ServerC” (processing server 104c) is selected.
  • Steps 1207 to 1210 are the same operation sequence as Steps 1111 to 1114 described with reference to FIG. Calls the A process execution unit 262a of the application 261a (AppA) to perform application processing.
  • AppA application 261a
  • protocol analysis and message generation are performed by the data distribution device 103, the application 261 corresponding to the message is registered, and transfer determination processing is performed under conditions specific to the application 261.
  • the transfer determination processing load of the data distribution device 103 increases.
  • the processing server 104 reduces the processing load without causing transfer.
  • the processing server 104 can operate flexibly according to the change. Further, even if the processing load level of the data distribution device 103 is different for each application 261, the processing server 104 can operate in accordance with the content received from the data distribution device 103 for each application 261. .
  • the data distribution device 103 selects and transfers the application 261a (AppA) to the processing server 104 in which the application 261a is registered, and the application 261b (AppB) performs round-robin without analyzing the layer 7 level protocol.
  • the processing server 104 may be selected and transferred.
  • the operation management server increases the processing load of the data distribution device 103 when the amount of data is small or the number of corresponding applications 261 is small. Set so that load distribution is performed with the minimum number of processing servers 104, and when the amount of data increases, the processing load of the data distribution device 103 is set to decrease step by step starting from the application 261 with the largest amount of data. May be.
  • 101 Client terminal, 102: Network, 103: Data distribution device, 104: Processing server, 105: Deployment application management server

Abstract

データ振り分け装置と複数の処理サーバから構成される処理システムであって、前記データ振り分け装置はデータを複数の前記処理サーバのいずれかに転送し、前記処理サーバは、複数の前記処理サーバそれぞれの負荷情報が格納されたサーバ判定情報記憶部と、アプリケーションに固有の転送する条件が格納されたアプリ別転送判定情報記憶部と、を有し、アプリケーションが特定される情報を含むデータを受信したと判定するとメッセージを生成し、メッセージを受信したと判定するとアプリケーションを特定し、前記サーバ判定情報記憶部と前記アプリ別転送判定情報記憶部に格納された情報に基づいて処理サーバを選定し、選定された処理サーバに応じて、アプリケーションを実行するか、選定された処理サーバにメッセージを転送する。

Description

処理システムおよびそのプログラム
 本発明は、処理システムおよびそのプログラムに関するものである。
 近年、クラウド等の潤沢なコンピューティング環境を利用し、デバイスなどのクライアント端末から送信されるデータを活用するアプリケーションにおいて、大量かつ多様なデータを適切なアプリケーションに振り分けながら負荷分散を行える高性能な処理システムが望まれている。
 このような分野の背景技術として、特許文献1では、アプリケーションごとに負荷分散装置を用意して、負荷分散装置配下にアプリケーションのデータ処理を実行する処理サーバを複数配置して、負荷分散を行うことが記載されている(図1)。
 さらに、特許文献1では、1台の処理サーバに複数のアプリケーションが配置されており、アプリケーションに関する負荷データや性能データに応じて複数のアプリケーション間で資源割り当てを動的に行うことで、ピーク負荷期間の異なるアプリケーション間でコンピュータリソースを有効に活用することができることが記載されている(段落0004、0025)。
特開2008-234651号公報
 特許文献1に記載された負荷分散システムを用いれば、アプリケーションに割り当てられたデータを、複数の処理サーバにより、効率的に負荷分散することができる。しかしながら、クライアント端末から送信される多様なデータを適切なアプリケーションの負荷分散装置に振り分ける際に、アプリケーションに応じて異なるプロトコルの解析が必要となる場合もあり、データ振り分け処理の負荷も無視することができない。
 すなわち、このような場合は、データを負荷分散装置に振り分けるための、受信データのレイヤ7レベルのプロトコルを解析して、アプリケーションを特定し、特定されたアプリケーションに応じた負荷分散装置に振り分ける、という一連のデータ振り分け処理の負荷が大きくなる。
 そして、このデータ振り分け処理を行う装置(たとえば、レイヤ7レベルの処理が可能なロードバランサなど)がボトルネックとなり、処理サーバの台数が多くても、大量のデータをそもそも処理できなくなってしまう。
 なお、レイヤ7レベルのプロトコルの種類には、たとえば、HTTP(Hyper Text Transfer Protocol)REST(Representational State Transfer)やMQTT(MQ Telemetry Transport)などがある。
 これに対して、特許文献1では、クラスタエイリアシングにより負荷分散装置にルーティングすることは記載されているが(段落0015)、プロトコル解析やアプリケーション特定処理に関する技術の開示は見当たらない。
 また、データ振り分け処理を行う装置のボトルネックを解消するために、データ振り分け処理を行う装置の前段に、レイヤ4レベルのプロトコル解析で複数のデータ振り分け処理を行う装置にデータを振り分けるロードバランサを配置することも考えられるが、装置の台数を増加させることとなり、コスト増につながる。
 本発明は、上記課題に鑑みてなされたものであり、データの処理の分散に加えて、処理サーバがデータ振り分け処理の負荷も分散できる負荷分散処理システムを提供することを目的とする。
 上記目的を達成するために、本発明に係る代表的な処理システムは、データ振り分け装置と複数の処理サーバから構成される処理システムであって、前記データ振り分け装置は、アプリケーションプログラムが特定される情報を含むデータを受信し、受信されたデータもしくは受信されたデータから生成されたメッセージを、複数の前記処理サーバのいずれかに転送し、前記処理サーバは、複数の前記処理サーバそれぞれのアプリケーションプログラムの登録情報と、複数の前記処理サーバそれぞれの負荷情報が格納されたサーバ判定情報記憶部と、アプリケーションプログラムに固有の転送する条件が格納されたアプリ別転送判定情報記憶部と、を有し、アプリケーションプログラムが特定される情報を含むデータもしくはメッセージを受信し、受信されたデータもしくはメッセージがデータであると判定すると、受信されたデータからメッセージを生成し、受信されたデータもしくはメッセージがメッセージであると判定すると、受信されたメッセージからアプリケーションプログラムを特定し、前記サーバ判定情報記憶部と前記アプリ別転送判定情報記憶部に格納された情報に基づいて、複数の前記処理サーバの中から処理サーバを選定し、選定された処理サーバが前記処理サーバ自身であると判定すると、特定されたアプリケーションプログラムを実行し、選定された処理サーバが前記処理サーバ自身でないと判定すると、受信されたもしくは生成されたメッセージを、選定された処理サーバに転送することを特徴とする。
 本発明によれば、データの処理の分散に加えて、処理サーバがデータ振り分け処理の負荷も分散できる負荷分散処理システムを提供することが可能となる。
システムの全体構成の例を示す図である。 処理サーバの構成の例を示す図である。 デプロイアプリ管理サーバの構成の例を示す図である。 アプリ-メッセージ管理記憶部のテーブルの例を示す図である。 サーバ判定情報記憶部のテーブルの例を示す図である。 アプリ別転送判定情報記憶部(キャッシュ)のテーブルの例を示す図である。 アプリ別転送判定情報記憶部(IDトラン)のテーブルの例を示す図である。 データもしくはメッセージの受信の動作フローの例を示す図である。 処理サーバ選定の動作フローの例を示す図である。 データ振り分け装置で単純に処理サーバに転送する動作シーケンスの例を示す図である。 データ振り分け装置でメッセージを生成までして処理サーバに転送する動作シーケンスの例を示す図である。 データ振り分け装置でアプリの登録されている処理サーバを選定までして転送する動作シーケンスの例を示す図である。 データ振り分け装置でアプリ別の転送判定処理により処理サーバを選定までして転送する動作シーケンスの例を示す図である。
 以下、各実施例における実施形態について図面を参照して説明する。なお、以下の実施例に用いる図において、同一の符号を付した部分は同一物を表し、それらの構造および動作は同じである。
 図1は、システムの全体構成の例である。このシステムは、複数のクライアント端末101(クライアント端末101a~101dを特に区別することなく、それらの1つをクライアント端末101と代表的に表し、以下、他の符号も同じ表記とする)と、クライアント端末101とネットワーク102などを介して接続されるデータ振り分け装置103、データ振り分け装置103と接続される複数の処理サーバ104、およびデプロイアプリ管理サーバ105から構成される。図1に示したシステムの中で、特にデータ振り分け装置103と処理サーバ104を、処理システムと呼んでもよい。
 クライアント端末101は、アプリケーションの処理を実行するためのデータを生成して送信する端末であり、会社や工場内のデータ管理サーバや、スマートフォンやタブレット端末などの通信デバイス、また近年では、センサデバイス、スマートメータや車などの装置でも通信機能を有するものがあり、そのような通信機能を有する装置である。
 ネットワーク102は、通信キャリアなどによって提供される無線ネットワークまたは有線ネットワークである。ネットワーク102は、個別の会社などが所有するネットワークを、ネットワーク102の一部に含んでもよく、複数種類のプロトコルを通過させるネットワークであってもよい。
 データ振り分け装置103は、クライアント端末101からデータを受信して、受信したデータを複数の処理サーバ104に振り分ける装置である。従来技術(特許文献1)では、ルーティングもしくは負荷分散装置により、アプリケーションごとの負荷分散装置もしくはアプリケーションに対応したクラスタノードにデータを振り分けていた。本実施例では、データ振り分け装置103における振り分け処理の負荷を軽減して、1台のデータ振り分け装置103でも大量のデータを処理できるようにする。
 データ振り分け装置103は、中央処理装置、通信I/F(Interface)、データ記憶装置、プログラム記憶装置を備えるたとえばコンピュータであってもよい。これらの装置それぞれは、図2を用いて説明する処理サーバ104内の装置それぞれと同じ構造であってもよい。また、プログラム記憶装置に格納されたプログラムを実行する中央処理装置の動作一部は、それと同じ動作をする集積回路などのハードウェアであってもよい。
 処理サーバ104は、クライアント端末101から送信されたデータに対応して、アプリケーションの処理を実行するサーバである。ここで、アプリケーションの処理の実行は、アプリケーションプログラムの実行であり、以下ではアプリケーションプログラムをアプリと略す。
 図1では処理サーバ104の論理的な構成の例を示し、処理サーバ104は、アプリを実行するために実行プラットフォームとミドルウェアを有する。処理サーバ104ごとにアプリが異なってもよく、図1の例では、処理サーバ104aが3つのアプリ(AppA、AppB、AppC)を有し、処理サーバ104bが2つのアプリ(AppA、AppC)を有し、処理サーバ104cが2つのアプリ(AppA、AppB)を有する。処理サーバ104の構成については、図2を用いて詳細に説明する。
 デプロイアプリ管理サーバ105は、処理サーバ104に搭載されているアプリの種類や処理サーバ104の負荷情報、アプリの実行に関連する情報などを管理するサーバである。デプロイアプリ管理サーバ105の構成については、図3を用いて詳細に説明する。
 ここでは、これらのサーバが別々の物理マシンの例を説明するが、これらのサーバは、同じ物理マシンの別々の仮想マシンであってもよいし、別々の物理マシンの別々の仮想マシンであってもよいし、物理マシンおよび仮想マシンとして混在してもよい。
 図2は、処理サーバ104の構成の例である。処理サーバ104は、外部と通信する通信I/F210、永続化する情報が格納されるデータ記憶装置220、プログラムが格納されるプログラム記憶装置230、データ記憶装置220やプログラム記憶装置230から必要な情報やプログラムを読み込んで実行する中央処理装置211といった、一般的なコンピュータの備える部品がバス接続されて構成される。
 通信I/F210は、たとえばEthernet(登録商標)と接続し、他の処理サーバ104やデータ振り分け装置103と通信するためのインターフェイスである。通信I/F210は、後で説明する実行プラットフォーム240のプログラムにより制御されてもよく、特にレイヤ4レベル以上のプロトコルはプログラムにより処理されてもよい。
 処理サーバ104におけるデータ記憶装置220は、クライアント端末101から送信されたデータに対応したメッセージと、アプリ261との関係が格納されるアプリ-メッセージ管理記憶部221、各処理サーバ104に搭載されているアプリ261の情報と処理サーバ104の負荷情報が格納されるサーバ判定情報記憶部222、アプリ261に固有の条件であって処理サーバ104間で転送するか否かを判定するための条件がある場合、その情報が格納されるアプリ別転送判定情報記憶部223を含む。
 アプリ-メッセージ管理記憶部221、サーバ判定情報記憶部222、アプリ別転送判定情報記憶部223のそれぞれは、データ記憶装置220内の異なる記憶領域であってもよい。また、データ記憶装置220は、ハードディスクドライブ、ソリッドステートドライブ、フラッシュメモリなどであってもよい。
 ここで、メッセージとは、処理サーバ104間でのデータ転送に使用される情報であり、転送される複数のデータの型や種類の組み合わせを識別する情報であってもよいし、転送される複数のデータの変数名の組み合わせを識別する情報であってもよい。このように、メッセージそのものはデータの内容ではなく、どのようなデータが組み合わされているかを表す情報であってもよい。
 また、メッセージは、アプリ261に対応する情報であってもよく、アプリ261が処理の対象とするデータの項目の組み合わせを表す情報であってもよい。そして、メッセージはメッセージの情報で示されるデータをともなって転送されてもよく、処理サーバ104間で固有に定められたプロトコルにしたがって転送される。
 アプリ別転送判定情報記憶部223の例として、図2では、アプリ261a(AppA)の転送判定処理として各処理サーバ104のキャッシュに保持されたデータを利用する際に使用されるAppA転送判定情報記憶部(キャッシュ)224a、アプリ261c(AppC)の転送判定処理として同一のIDを有するトランザクションを同一の処理サーバ104で実行する際に使用されるAppC転送判定情報記憶部(IDトラン)224cがある。これらについては、図6A、6Bを用いて詳細に説明する。
 処理サーバ104におけるプログラム記憶装置230は、実行プラットフォーム240、ミドルウェア250、アプリ群260の3つを含む。実行プラットフォーム240は、Java(登録商標)の実行環境やApache Hadoop(登録商標)などであり、分散処理の実行環境であって、プログラムを実行するための環境となるプログラムである。また、実行プラットフォーム240は、OS(Operating System)を含んでもよく、OSは通信のプロトコルスタックの一部を含んでもよい。
 ミドルウェア250は、いわゆるミドルウェアであり、実行プラットフォーム240上で動作して、アプリ群260の複数のアプリ261が利用する共通機能や、アプリ261それぞれの個別機能を埋め込むためのフレームワークを提供するプログラムである。このために、ミドルウェア250は、アプリ群260(アプリ261)とのインターフェイスおよび/あるいは実行プラットフォーム240とのインターフェイスを有するプログラムの集合であってもよい。
 ミドルウェア250は、クライアント端末101から送信されたデータに基づきメッセージを生成する、もしくは他の処理サーバ104から転送されたメッセージを受信するメッセージ受信生成部251、生成もしくは受信されたメッセージに対してアプリケーションすなわち処理実行部262を実行するための処理サーバ104を選定する処理サーバ選定部252、処理実行部262を呼び出し実行するアプリ実行部253を含む。
 さらに、ミドルウェア250は、アプリ261を実行することでサーバ判定情報記憶部222もしくはアプリ別転送判定情報記憶部223の情報が更新された場合、デプロイアプリ管理サーバ105に更新情報を通知する判定情報更新チェック部254、デプロイアプリ管理サーバ105から他の処理サーバ104のサーバ判定情報もしくはアプリ別転送判定情報の更新が通知されてきた場合、通知を受信してサーバ判定情報記憶部222もしくはアプリ別転送判定情報記憶部223を更新する判定情報受信更新部255を含む。
 ここで、メッセージ受信生成部251は、処理サーバ104間で共通のメッセージを受信してアプリ261を特定することに加えて、アプリ261ごとに異なるプロトコルのデータを受信できるように、アプリ261の開発者が新たに追加できるアプリ別受信処理部264を起動させて、複数のプロトコルのデータを受信できるように待機させる。メッセージ受信生成部251と処理サーバ選定部252については、図7と図8を用いて詳細に説明する。
 アプリ群260は1つまたは複数のアプリ261を含む。アプリ261の処理実行部262は、メッセージに応じた動作をするためのメインプログラムであり、この処理実行部262に加えて、アプリ261に固有の条件で転送判定処理を行いたい場合に追加されるアプリ別処理サーバ選定部263と、アプリ261ごとに異なるプロトコルのデータを受信してメッセージを生成するアプリ別受信処理部264を含んでもよい。
 これにより、アプリ261の開発者にとっては、処理実行部262、アプリ別処理サーバ選定部263、アプリ別受信処理部264の3つが開発対象となる。これら3つをセットにして1つのアプリ261として各処理サーバ104に配置すれば、配置された処理サーバ104のそれぞれはアプリケーションを実行可能なクラスタとして動作する。
 また、3つをセットにすることに限定されるものではなく、アプリ別受信処理部264は多くの処理サーバ104に配置されて、アプリ別受信処理部264の配置された処理サーバ104の中で、処理実行部262とアプリ別処理サーバ選定部263がアプリケーションの処理量に応じた少ない台数分の処理サーバ104に配置されてもよい。
 これにより、多くの処理サーバ104でデータのプロトコルを解析することができ、かつ、処理実行部262が配置されている処理サーバ104の中から処理サーバ104が選定されて、選定された処理サーバ104にデータ(メッセージ)が転送される。このような構成では、処理実行部262とアプリ別処理サーバ選定部263の2つがアプリ261であってもよく、アプリ別受信処理部264はアプリ261に含まれなくてもよい。また、処理実行部262がアプリ261であってもよい。
 なお、プログラム記憶装置230に含まれる各部は、中央処理装置211により読み込まれて実行されるプログラムであるが、2つ以上の部が1つのプログラムを構成してもよい。以下の説明において、プログラム記憶装置230に含まれる各部が主体となる説明は、その各部を読み込んで実行する中央処理装置211が主体となる説明に置き換えられてもよい。プログラム記憶装置230はメモリであってもよく、プログラム記憶装置230に含まれる各部は、データ記憶装置220にも格納されて、データ記憶装置220からロードされてもよく、通信I/F210もしくは図示を省略した記憶媒体の読み取り装置からロードされてもよい。
 以上で説明したように、アプリ別処理サーバ選定部263とアプリ別受信処理部264により、従来は、データ振り分け装置103が行っていたプロトコル解析処理やサーバ選定処理を、処理サーバ104側に委譲することができ、データ振り分け装置103の処理負担を軽減することができる。
 図3は、デプロイアプリ管理サーバ105の構成の例である。デプロイアプリ管理サーバ105は、各処理サーバ104から通知されてくる最新のサーバ判定情報もしくはアプリ別転送判定情報を管理して、通知した処理サーバ104以外の処理サーバ104に配信するサーバである。なお、通知した処理サーバ104が配信先に含まれてもよい。
 図3に示すようにデプロイアプリ管理サーバ105は、処理サーバ104と同じく、外部と通信する通信I/F310、永続化する情報を格納するデータ記憶装置320、プログラム処理を格納するプログラム記憶装置330、データ記憶装置320やプログラム記憶装置330から必要な情報やプログラムを読み込み実行する中央処理装置311といった、一般的なコンピュータの備える部品がバス接続されて構成される。
 デプロイアプリ管理サーバ105におけるデータ記憶装置320は、各処理サーバ104が保持しているサーバ判定情報とアプリ別転送判定情報の最新情報をそれぞれ保持するサーバ判定情報記憶部322とアプリ別転送判定情報記憶部223を含む。各処理サーバ104では、自身に配置されているアプリ261に関する情報を保持しているのに対し、デプロイアプリ管理サーバ105では、処理サーバ104のいずれかに配置されていれば、その配置されているアプリ261に関する情報も保持している点が異なる。
 デプロイアプリ管理サーバ105におけるプログラム記憶装置330は、各処理サーバ104から通知されてくるサーバ判定情報もしくはアプリ別転送判定情報を基に、サーバ判定情報記憶部322、アプリ別転送判定情報記憶部323を最新状態に更新し、更新前の情報を保持する処理サーバ104を抽出して、抽出された処理サーバ104に最新情報を配信するための判定情報更新転送部331を含む。
 判定情報更新転送部331は、中央処理装置311により読み込まれて実行されるプログラムであり、以下の説明において、判定情報更新転送部331が主体となる説明は、判定情報更新転送部331を読み込んで実行する中央処理装置311が主体となる説明に置き換えられてもよい。プログラム記憶装置330はメモリであってもよく、判定情報更新転送部331は、データ記憶装置320にも格納されて、データ記憶装置320からロードされてもよく、通信I/F310もしくは図示を省略した記憶媒体の読み取り装置からロードされてもよい。
 各処理サーバ104の判定情報更新チェック部254は、自身のサーバ判定情報記憶部222もしくはアプリ別転送判定情報記憶部223の情報が更新されたこと、あるいは更新する動作を検出して、更新された情報を通信I/F210で通知する。デプロイアプリ管理サーバ105の判定情報更新転送部331は、通知を通信I/F310で受け取り、通知された更新情報を基に、サーバ判定情報記憶部322もしくはアプリ別転送判定情報記憶部323を更新し、通信I/F310で配信する。
 この配信は、更新情報を基に、更新前の情報を保持する処理サーバ104を抽出して、抽出された処理サーバ104を宛先とする配信であってもよい。処理サーバ104の判定情報受信更新部255は、配信を通信I/F210で受信し、配信された更新情報を基に、自身のサーバ判定情報記憶部222もしくはアプリ別転送判定情報記憶部223を更新する。
 なお、処理サーバ104の処理サーバ選定部252が、最新のサーバ判定情報とアプリ別転送判定情報を参照できればよく、たとえば処理サーバ104内にこれらの情報を保持せず、デプロイアプリ管理サーバ105で保持して、処理サーバ選定部252が参照するたびに処理サーバ104がデプロイアプリ管理サーバ105にアクセスしてもよい。
 ただし、処理サーバ選定部252の処理負荷の比率が処理実行部262に対して大きくなると、アプリケーションの処理のオーバーヘッドとなり、負荷分散の効果が小さくなるため、処理サーバ選定部252の処理負荷の比率が大きくならないように、処理サーバ選定部252が自身の処理サーバ104のサーバ判定情報記憶部222とアプリ別転送判定情報記憶部223を参照することが好ましい。
 図4は、処理サーバ104内に保持されるアプリ-メッセージ管理記憶部221をテーブルで構成した例である。アプリ-メッセージ管理記憶部221には、アプリ261とメッセージの関係を定義した情報が記憶される。この例では、アプリ261を特定するアプリ名401とメッセージを特定するメッセージタイプ402を含み、アプリ名401の情報とメッセージタイプ402の情報が互いに対応付けられている。
 アプリ名401の「AppA」、「AppB」、「AppC」のそれぞれは、図2に示したアプリ261a、アプリ261b、アプリ261cのそれぞれを特定するものである。アプリ-メッセージ管理記憶部221に記憶される情報は、通信I/F210経由あるいは図示を省略した入力装置により予め設定される。
 図5は、処理サーバ104とデプロイアプリ管理サーバ105内に保持されるサーバ判定情報記憶部222、322をテーブルで構成した例である。サーバ判定情報記憶部222、322には、各処理サーバ104に配置されているアプリ261の情報と、各処理サーバ104の負荷情報が記憶される。
 この例では、処理サーバ104を特定する処理サーバ名501、処理サーバ104に配置されているアプリ261を表すデプロイアプリ名502、処理サーバ104の負荷状態を表す負荷情報503を含み、これらの情報が互いに対応付けられている。処理サーバ名501の「ServerA」、「ServerB」、「ServerC」のそれぞれは、図1に示した処理サーバ104a、処理サーバ104b、処理サーバ104cのそれぞれを特定するものである。
 デプロイアプリ名502の「AppA」などはアプリ名401の「AppA」などに対応する。負荷情報503の負荷状態は、中央処理装置211の負荷や、処理実行部262に割り当てられて処理待ちしているメッセージの量に所定の重み係数を乗じた量などを指針にしてもよい。負荷状態の表現は、「Busy」や「Free」でもよく、数値などでもよい。
 処理サーバ名501とデプロイアプリ名502の情報は、通信I/F210経由あるいは図示を省略した入力装置により予め設定され、負荷情報503の情報は、中央処理装置211により定期的に検出されて更新されてもよいし、図1に示したシステムとは別の運用管理サーバなどが各処理サーバ104を監視して負荷状態を収集し、定期的に更新されてもよい。
 図6Aは、処理サーバ104とデプロイアプリ管理サーバ105内に保持されるAppA転送判定情報記憶部(キャッシュ)224a、324aをテーブルで構成した例である。AppA転送判定情報記憶部(キャッシュ)224a、324aには、各処理サーバ104がアプリ261a(AppA)を過去に実行した際に、実行した処理サーバ104にキャッシュされたデータ(キャッシュデータ)であって、その後もキャッシュとして保持されているデータを特定する情報が記憶される。
 この例では、処理サーバ104を特定する処理サーバ名601と処理サーバ104がキャッシュデータの情報を表す保持キャッシュ情報602を含み、これらの情報が互いに対応付けられている。処理サーバ名601の「ServerA」などは、デプロイアプリ名502の「AppA」に対応する処理サーバ名501の「ServerA」などと一致する。
 保持キャッシュ情報602の「AAAAA」などは、キャッシュデータを特定できる情報であればよく、データ量が少ない場合はキャッシュデータの内容そのものでもよく、キャッシュデータの内容を特定するために付与された識別子やキャッシュデータのハッシュ関数値などであってもよい。
 処理サーバ名601の情報は、通信I/F210経由あるいは図示を省略した入力装置により予め設定され、保持キャッシュ情報602の情報は、中央処理装置211によりキャッシュの処理時に更新されてもよい。
 図6Bは、処理サーバ104とデプロイアプリ管理サーバ105内に保持されるAppC転送判定情報記憶部(IDトラン)224c、324cをテーブルで構成した例である。AppC転送判定情報記憶部(IDトラン)224c、324cは、各処理サーバ104が現在処理中のアプリ261c(AppC)に関するトランザクションのIDが記憶される。
 この例では、処理サーバ104を特定する処理サーバ名611と処理サーバ104が現在処理しているアプリ261に関するトランザクションのIDである処理中ID612を含み、これらの情報が互いに対応付けられている。処理サーバ名611の「ServerA」などは、デプロイアプリ名502の「AppC」に対応する処理サーバ名501の「ServerA」などと一致する。
 処理サーバ名611の情報は、通信I/F210経由あるいは図示を省略した入力装置により予め設定され、処理中ID612の情報は、中央処理装置211によりトランザクションの起動時や終了時に更新されてもよい。
 図7は、処理サーバ104のデータもしくはメッセージの受信の動作フローの例である。まず、各種プロトコルのデータやメッセージを受信するために、ミドルウェア250あるいはメッセージ受信生成部251は、アプリ別受信処理部264のそれぞれとメッセージ受信生成部251を受信可能な状態にする。具体的には、アプリ別受信処理部264のそれぞれに含まれる受信用サーバとメッセージ受信生成部251に含まれる受信用サーバを起動状態にする(ステップ701)。
 たとえば、メッセージの受信用サーバとして、TCP(Transmission Control Protocol)のポート番号12345で受信待ちする受信用サーバ、アプリケーションプロトコルの受信用サーバとして、HTTPサーバやMQTTサーバなどの受信用サーバなどがある。
 アプリケーションプロトコルの受信用サーバはアプリ261ごとに1つずつ別々に起動されてもよいし、異なるアプリ261であっても同じプロトコルの場合は、受信用サーバは1つにして、データ内の識別子などからアプリ261が識別されてもよい。このように同じプロトコルの場合は、アプリ261間でアプリ別受信処理部264が共通になってもよい。受信用サーバが起動されると、それぞれの受信用サーバはメッセージあるいはデータの受信待ち状態になる(ステップ702)。
 処理サーバ104がデータを受信した場合、たとえばクライアント端末101から送信されたデータが、HTTPのプロトコルのデータすなわちアプリ261a(AppA)で処理するデータである場合、アプリ261a内のAアプリ別受信処理部264aがデータを受信して、プロトコルを解析し(ステップ703)、アプリ261a(AppA)に対応したメッセージを1つないし複数生成する(ステップ704)。
 そして、処理サーバ104を選定するために、図8を用いて説明する処理へ進む(ステップ706)。ここで、データにはアプリ261を特定する情報が含まれているため、データからアプリ261を特定するための処理を行う必要はないが、メッセージにはアプリ261を特定する情報そのものは含まれていないため、以下の処理が行われる。
 処理サーバ104がメッセージを受信した場合、たとえばクライアント端末101からではなく他の処理サーバ104などにより変換されたメッセージを受信した場合、受信されたメッセージでアプリ-メッセージ管理記憶部221のメッセージタイプ402を検索し、受信されたメッセージに対応するアプリ名401の情報を取得し、アプリ261を特定する(ステップ705)。そして、処理サーバ104を選定するために、図8を用いて説明する処理へ進む(ステップ706)。
 なお、処理サーバ104の通信I/F210がデータあるいはメッセージを受信すると、一般的なコンピュータの動作と同じように、実行プラットフォーム240のOSに含まれるプロトコルスタックがTCPを処理し、TCPのポート番号に応じたプログラムを呼び出して、データあるいはメッセージを渡してもよい。
 たとえば、予め対応付けが設定されたポート番号に応じて、OSは、メッセージ受信生成部251の受信用サーバ、Aアプリ別受信処理部264aの受信用サーバ、Bアプリ別受信処理部264bの受信用サーバ、Cアプリ別受信処理部264cの受信用サーバのいずれかを呼び出してもよい。また、このTCPのポート番号に応じたプログラムの呼び出しを、メッセージ受信生成部251が行ってもよい。
 図8は、処理サーバ104の処理サーバ選定の動作フローの例である。まず、処理サーバ選定部252は、メッセージ受信生成部251により特定されたアプリ261あるいはデータに含まれる情報により特定されるアプリ261が、判定を実行する処理サーバ104自身に登録されているかどうかを判定する(ステップ801)。ここで、データを処理サーバ選定部252はアプリ別受信処理部264から取得してもよい。
 このために処理サーバ選定部252は、サーバ判定情報記憶部222の処理サーバ名501で、ステップ801を実行している処理サーバ選定部252自身の処理サーバ104を検索し、検索で一致した処理サーバ104に対応するデプロイアプリ名502に、特定されたアプリ261が登録されているかを判定してもよい。
 処理サーバ選定部252は、特定されたアプリ261が登録されていると判定した場合、さらにアプリ261に固有の条件での転送判定処理が存在するかどうかを判定する(ステップ802)。たとえば、特定されたアプリ261がアプリ261a(AppA)である場合は、Aアプリ別処理サーバ選定部(キャッシュ)263aが存在すると判定してもよいし、特定されたアプリ261がアプリ261b(AppB)である場合は、アプリ261bに固有の条件での転送判定処理が存在しないと判定してもよい。
 処理サーバ選定部252は、ステップ801とステップ802のどちらかでNoと判定した場合、サーバ判定情報記憶部222をもとに、特定されたアプリ261をデプロイアプリ名502に含む処理サーバ104を選定する(ステップ803)。なお、特定されたアプリ261をデプロイアプリ名502に含む処理サーバ104が複数存在する場合、この選定として、複数の存在の中から、負荷が少ない処理サーバ104を選定してもよいし、単純にラウンドロビンで選定してもよいし、それ以外のアプリ261に非依存の情報で選定してもよい。この選定は、ミドルウェア250として標準でサポートとなる。
 ステップ802でYESと判定された場合、処理サーバ選定部252は、特定されたアプリ261に固有の条件での転送判定処理を呼び出す(ステップ804)。呼び出されたアプリ別処理サーバ選定部263は、アプリ別転送判定情報記憶部223とサーバ判定情報記憶部222の情報を使って処理サーバ104を選定する(ステップ805)。
 たとえば、特定されたアプリ261がアプリ261a(AppA)の場合、Aアプリ別処理サーバ選定部(キャッシュ)263aが呼び出され、Aアプリ別処理サーバ選定部(キャッシュ)263aは、AppA転送判定情報記憶部(キャッシュ)224aとサーバ判定情報記憶部222の情報をもとに、キャッシュデータを保持する処理サーバ104を優先しつつ、負荷の小さい処理サーバ104を選定する。
 ここで、同じキャッシュデータを保持する処理サーバ104が複数存在する場合は、それら複数存在する処理サーバ104が特定され、特定された処理サーバ104の中で負荷の相対的に小さい処理サーバ104が選定されてもよい。また、特定された処理サーバ104の間で負荷が同じ場合は、たとえばラウンドロビンで選択されてもよい。
 次に、処理サーバ選定部252は、選定された処理サーバ104が処理サーバ104自身であるかどうかを判定し(ステップ806)、処理サーバ104自身であると判定した場合、アプリ実行部253を呼び出す(ステップ807)。そして、アプリ実行部253はアプリ261を呼び出す。たとえば、特定されたアプリ261がアプリ261a(AppA)の場合は、A処理実行部262aを呼び出す。
 ステップ806で処理サーバ104自身でないと判定した場合、処理サーバ選定部252は、ステップ802で受信されたメッセージあるいはステップ704で生成されたメッセージを、ステップ803あるいはステップ805で選定された処理サーバ104へ転送する(ステップ808)。
 図9は、図7と図8を用いて説明した動作フローを組合せた全体の動作シーケンスの例である。この動作シーケンスは、レイヤ4レベルのプロトコルを解析し、データに依存することなく処理サーバ104を選定するデータ振り分け装置103を用いた場合の例である。
 処理サーバ104a、104b、104cのそれぞれは、図1に示した「AppA」、「AppB」、「AppC」のとおりに、各アプリ261の処理実行部262とアプリ別処理サーバ選定部263を有する。また、処理サーバ104a、104b、104cのそれぞれが、少なくともCアプリ別受信処理部264cを有する。
 まず、クライアント端末101が、プロトコルとしてRESTを利用して、「AppC」に対応し、トランザクションのIDが「101」のデータ901を送信する。データ振り分け装置103は、受信したデータ901をレイヤ4レベルであるTCPのプロトコル解析を行い(ステップ902)、転送先の処理サーバ104cをラウンドロビンなど軽量な処理で選定し(ステップ903)、そのままのデータ904として転送する。
 ここでは、ラウンドロビンにより処理サーバ104cが選択されたとしたが、処理サーバ104cは「AppC」のためのC処理実行部262cが登録されておらず、アプリ261cの処理を実行することができない。
 処理サーバ104cは、Cアプリ別受信処理部264cにより、レイヤ7レベルの「AppC」のプロトコル解析を行い(ステップ905)、データ振り分け装置103にOK906を返信し、メッセージ(MessageC)を生成して(ステップ908)、図8に示したステップ803の標準サポートの選定を行う(ステップ909)。
 標準サポートの選定では、サーバ判定情報記憶部222から「AppC」に対応した処理サーバ104であって、負荷が少ない処理サーバ104が選定され、負荷の同じ処理サーバ104が複数存在する場合は、その中でラウンドロビンにより「ServerA」(処理サーバ104a)が選定される。処理サーバ104cは、選定された処理サーバ104aにメッセージ910を転送する。
 ここで、処理サーバ104cには、「AppC」のためのCアプリ別処理サーバ選定部263cも登録されていないため、ミドルウェア250が、標準でサポートしている選定により、処理サーバ104aを選定したことになる。
 処理サーバ104aは、メッセージ910を受信すると、アプリ-メッセージ管理記憶部221からメッセージ910(MessageC)対応した「AppC」(アプリ261c)を特定して(ステップ911)、OK912を返信するとともに、アプリ261cに固有の条件での転送判定処理が存在するために、Cアプリ別処理サーバ選定部263cが呼び出され、処理サーバ104の選定を行う(ステップ913)。
 この選定では、メッセージ910のデータに含まれるトランザクションのIDが「101」であるため、AppC転送判定情報記憶部(IDトラン)224cを参照して、「ServerB」(処理サーバ104b)が選定される。この選定にしたがって、処理サーバ104aは、メッセージ910と同じメッセージ914をさらに処理サーバ104bに転送する。
 処理サーバ104bは、メッセージ914を受信すると、処理サーバ104aと同様にアプリ-メッセージ管理記憶部221から対応したアプリ261cを特定して(ステップ915)、OK916を返信するとともに、アプリ261cに固有の条件で転送判定処理が存在するために、Cアプリ別処理サーバ選定部263cが呼び出され、処理サーバ104b自身を選定して(ステップ917)、アプリ261c(AppC)のC処理実行部262cを呼び出し、アプリケーション処理する(ステップ918)。
 以上のように、データ振り分け装置103が、レイヤ7レベルの処理や処理サーバ104の負荷の処理をせずに、処理サーバ104を適当に選定しても、データはレイヤ7レベルや負荷に応じた処理サーバ104に転送されて、処理が実行される。また、従来のデータ振り分け装置の処理負荷となっていた処理を、処理サーバ104側に委譲でき、大量データかつ複数のプロトコルが存在する多様なデータにおいても、データ振り分け装置103がボトルネックになることなく、処理サーバ104に振り分けて負荷分散を行うことができる。
 さらに、データ振り分け装置103はレイヤ4レベルのプロトコル解析で転送できることにより、データ振り分け装置103はレイヤ7レベルのプロトコルやアプリ261の配置に依存することなく、データ振り分け装置103として市販のロードバランサを導入することも可能となる。
 ただし、以上のように、処理サーバ104側でプロトコル解析、メッセージ生成、アプリ別の転送判定処理が行われると、処理サーバ104の負荷が大きくなり、データ振り分け装置103に余裕があるにも関わらず、処理サーバ104の台数を拡張せざるを得ない場合が出てくる。
 そこで、以上のようなデータ振り分け装置103側で、レイヤ7レベルのプロトコルを解析せずに処理サーバ104に転送する例に加えて、レイヤ7レベルのプロトコルを解析してメッセージ生成まで行うがアプリ261を特定せずに処理サーバ104に転送する例、アプリ261が登録されている処理サーバ104まで選定して転送する例、アプリ別の転送判定処理まで行ったうえで処理サーバ104を選定して転送する例、を用いて、データ振り分け装置103の段階的な処理内容の変更に対して、処理サーバ104は対応できることを、以下で説明する。
 図10から図12は、データ振り分け装置103の段階的な処理内容の変更に応じたシステム全体の動作シーケンスの例である。各図におけるデータ振り分け装置103は物理的に同じ装置であるが、何らかの設定が異なるため処理内容が異なるものであってもよいし、データ振り分け装置103と同じ符号で説明するが、処理内容の異なる物理的に別の装置であってもよい。
 処理サーバ104a、104b、104cは、図が異なっても共通であり、図1から図9を用いて説明した処理サーバ104a、104b、104cである。ただし、図によって、処理サーバ104a、104b、104cの受信するデータあるいはメッセージが異なるため、処理サーバ104a、104b、104cの動作が異なる。
 図10は、データ振り分け装置103が、プロトコル解析してメッセージ生成まで行うが、アプリ261を特定せずに処理サーバ104に転送する動作シーケンスの例である。まず、クライアント端末101が、プロトコルとしてRESTを利用して「AppC」に対応し、トランザクションのIDが「101」のデータ1001を送信する。
 データ振り分け装置103は、受信したデータ1001のレイヤ7レベルのプロトコルを解析して(ステップ1002)、クライアント端末101にOK1003を返信するとともに、メッセージ(MessageC)を生成する(ステップ1004)。そして、メッセージ(MessageC)に対応したアプリ261c(AppC)が登録されている処理サーバ104の特定までは行わずに、ラウンドロビンなどランダムに選定した結果である処理サーバ104cに、メッセージ1006を転送する。
 処理サーバ104cは、メッセージ1006を受信すると、アプリ-メッセージ管理記憶部221からメッセージ1006(MessageC)に対応した「AppC」(アプリ261c)を特定して(ステップ1007)、OK1008を返信する。「AppC」が特定された後のステップ1009からステップ1018は、図9を用いて説明したステップ909からステップ918と同じ動作シーケンスであり、処理サーバ104bがアプリ261c(AppC)のC処理実行部262cを呼び出してアプリケーション処理する。
 図10に示した例では、データ振り分け装置103が、レイヤ7レベルのプロトコル解析とメッセージ生成を行い、アプリ261を特定せずに処理サーバ104に転送するため、図9に示した例より処理サーバ104cの処理が軽量化され、データ振り分け装置103でアプリ261を特定までするよりデータ振り分け装置103の処理が軽量化される。また、処理サーバ104cの構成や設定を変更する必要はない。
 図11は、データ振り分け装置103が、アプリ261が登録されている処理サーバ104まで選定して転送する動作シーケンスの例である。まず、クライアント端末101が、プロトコルとしてHTTPを利用して「AppA」に対応し、アプリ261a(AppA)の処理に使用されるデータが「AAAAA」のデータ1101を送信する。ここで、「AAAAA」は保持キャッシュ情報602に対応する情報である。
 データ振り分け装置103は、受信したデータ1101のレイヤ7レベルのプロトコルを解析して(ステップ1102)、クライアント端末101にOK1103を返信するとともに、メッセージ(MessageA)を生成する(ステップ1104)。次に、「AppA」が登録されている処理サーバ104aを選定する(ステップ1105)。このとき、「AppA」が登録されている処理サーバ104a、104cの中から、ラウンドロビンなどランダムに処理サーバ104aを選定し、メッセージ1106を転送する。
 処理サーバ104aは、メッセージ1106を受信すると、アプリ-メッセージ管理記憶部221からメッセージ1106(MessageA)に対応した「AppA」(アプリ261a)を特定して(ステップ1107)、OK1108を返信するとともに、アプリ261aに固有の条件での転送判定処理が存在するために、Aアプリ別処理サーバ選定部(キャッシュ)263aが呼び出され、処理サーバ104の選定を行う(ステップ1109)。
 この選定では、メッセージ1106に含まれるデータが「AAAAA」であるため、AppA転送判定情報記憶部(キャッシュ)224aを参照して、「ServerC」(処理サーバ104c)が選定される。この選定にしたがって、処理サーバ104aは、メッセージ1106と同じメッセージ1110をさらに処理サーバ104cに転送する。
 処理サーバ104cは、メッセージ1110を受信すると、処理サーバ104aと同様にアプリ-メッセージ管理記憶部221から対応したアプリ261aを特定して(ステップ1111)、OK1112を返信するとともに、アプリ261aに固有の条件で転送判定処理が存在するために、Aアプリ別処理サーバ選定部(キャッシュ)263aが呼び出され、処理サーバ104c自身を選定して(ステップ1113)、アプリ261a(AppA)のA処理実行部262aを呼び出し、アプリケーション処理する(ステップ1114)。
 データ振り分け装置103で、アプリ261が登録されている処理サーバ104にメッセージが転送されるため、受信した処理サーバ104では、アプリ261の固有の条件での転送判定処理があれば、1回の転送が発生する可能性があるものの、図9と図10で示した例のように2回の転送が発生することはない。
 図11で示した動作シーケンスの例では、データ振り分け装置103でプロトコル解析とメッセージ生成を行い、さらにメッセージに対応したアプリ261が登録されている処理サーバ104まで選定するため、データ振り分け装置103でサーバ判定情報記憶部222相当の情報を管理する。ただし、アプリ261に固有の条件での転送判定処理を行わずに、ラウンドロビンなどを行うため、アプリ261の種類が増えても転送判定処理負荷の増加にはつながらない。
 図12は、データ振り分け装置103が、アプリ261に固有の条件で転送判定処理を行って処理サーバ104を選定して転送する動作シーケンスの例である。まず、クライアント端末101が、プロトコルとしてHTTPを利用して「AppA」に対応し、アプリ261a(AppA)の処理に使用されるデータが「AAAAA」のデータ1201を送信する。
 データ振り分け装置103は、受信したデータ1201のレイヤ7レベルのプロトコルを解析して(ステップ1202)、クライアント端末101にOK1203を返信するとともに、メッセージ(MessageA)を生成する(ステップ1204)。次に、メッセージ(MessageA)の転送先となる処理サーバ104をアプリ別処理サーバ選定部263と同じ処理により選定する(ステップ1205)。
 このためにデータ振り分け装置103は、AppA転送判定情報記憶部(キャッシュ)224a相当の情報と、サーバ判定情報記憶部222相当の情報を有し、「AppA」の登録された「ServerA」と「ServerC」の中から、データが「AAAAA」であるため、「ServerC」(処理サーバ104c)を選定する。
 データ振り分け装置103がメッセージ1206を転送し、処理サーバ104cがメッセージ1206を受信すると、ステップ1207からステップ1210は、図11を用いて説明したステップ1111からステップ1114と同じ動作シーケンスであり、処理サーバ104cがアプリ261a(AppA)のA処理実行部262aを呼び出してアプリケーション処理する。
 図12で示した動作シーケンスの例では、データ振り分け装置103でプロトコル解析とメッセージ生成を行い、さらにメッセージに対応したアプリ261が登録され、かつアプリ261に固有の条件での転送判定処理を行って選定するため、アプリ261の種類が増えると、データ振り分け装置103の転送判定処理負荷が増加する。これに対して処理サーバ104は、転送が発生することなく、処理負荷が軽減される。
 以上、図9から図12で示したように、データ振り分け装置103の処理負荷のレベルが変更されても、変更に合わせて処理サーバ104は柔軟に動作することができる。また、データ振り分け装置103において処理負荷のレベルがアプリ261ごとに異なった処理負荷にされたとしても、処理サーバ104はアプリ261ごとのデータ振り分け装置103からの受信内容に合わせて動作することができる。
 たとえば、データ振り分け装置103が、アプリ261a(AppA)はアプリ261aが登録されている処理サーバ104まで選定して転送し、アプリ261b(AppB)はレイヤ7レベルのプロトコルを解析せずにラウンドロビンで処理サーバ104を選定して転送してもよい。
 これを運用管理サーバから動的に設定可能とすることにより、運用管理サーバは、データ量が少ないときや対応するアプリ261の数が少ないときは、データ振り分け装置103の処理負荷を高くして、最小限の処理サーバ104の台数で負荷分散を行うように設定し、データ量が増えてきたら、データ量が多いアプリ261から順に、データ振り分け装置103の処理負荷を段階的に減らすように設定してもよい。
 このような設定により、全体的に最適な負荷分散システムを構築することができ、最終的に従来よりも大量のデータで多数のアプリ261に対応可能な負荷分散システムを構築することができる。
101:クライアント端末、102:ネットワーク、103:データ振り分け装置、104:処理サーバ、105:デプロイアプリ管理サーバ

Claims (12)

  1.  データ振り分け装置と複数の処理サーバから構成される処理システムであって、
     前記データ振り分け装置は、
     アプリケーションプログラムが特定される情報を含むデータを受信し、受信されたデータもしくは受信されたデータから生成されたメッセージを、複数の前記処理サーバのいずれかに転送し、
     前記処理サーバは、
     複数の前記処理サーバそれぞれのアプリケーションプログラムの登録情報と、複数の前記処理サーバそれぞれの負荷情報が格納されたサーバ判定情報記憶部と、
     アプリケーションプログラムに固有の転送する条件が格納されたアプリ別転送判定情報記憶部と、
    を有し、
     アプリケーションプログラムが特定される情報を含むデータもしくはメッセージを受信し、
     受信されたデータもしくはメッセージがデータであると判定すると、受信されたデータからメッセージを生成し、
     受信されたデータもしくはメッセージがメッセージであると判定すると、受信されたメッセージからアプリケーションプログラムを特定し、
     前記サーバ判定情報記憶部と前記アプリ別転送判定情報記憶部に格納された情報に基づいて、複数の前記処理サーバの中から処理サーバを選定し、
     選定された処理サーバが前記処理サーバ自身であると判定すると、特定されたアプリケーションプログラムを実行し、
     選定された処理サーバが前記処理サーバ自身でないと判定すると、受信されたもしくは生成されたメッセージを、選定された処理サーバに転送すること
    を特徴とする処理システム。
  2.  請求項1に記載の処理システムであって、
     前記処理サーバは、
     特定されたアプリケーションプログラムが前記処理サーバ自身に登録されていると判定すると、特定されたアプリケーションプログラムに固有の転送する条件があるかを判定し、
     特定されたアプリケーションプログラムに固有の転送する条件があると判定すると、前記サーバ判定情報記憶部に格納された情報と前記アプリ別転送判定情報記憶部に格納された情報の両方に基づいて、複数の前記処理サーバの中から処理サーバを選定すること
    を特徴とする処理システム。
  3.  請求項2に記載の処理システムであって、
     前記処理サーバは、
     特定されたアプリケーションプログラムに固有の転送する条件があると判定すると、前記アプリ別転送判定情報記憶部に格納された情報に基づいて、複数の前記処理サーバの中から、特定されたアプリケーションプログラムに固有の転送する条件に一致する処理サーバを特定し、前記サーバ判定情報記憶部に格納された情報に基づいて、特定された処理サーバの中で負荷の小さい処理サーバを選定すること
    を特徴とする処理システム。
  4.  請求項3に記載の処理システムであって、
     前記アプリ別転送判定情報記憶部に格納されたアプリケーションプログラムに固有の転送する条件は、複数の前記処理サーバそれぞれのキャッシュデータの情報であること
    を特徴とする処理システム。
  5.  請求項3に記載の処理システムであって、
     前記アプリ別転送判定情報記憶部に格納されたアプリケーションプログラムに固有の転送する条件は、複数の前記処理サーバそれぞれで実行されたトランザクションの情報であること
    を特徴とする処理システム。
  6.  請求項1に記載の処理システムであって、
     前記処理サーバは、
     特定されたアプリケーションプログラムが前記処理サーバ自身に登録されていると判定すると、特定されたアプリケーションプログラムに固有の転送する条件があるかを判定し、
     特定されたアプリケーションプログラムに固有の転送する条件がないと判定すると、前記サーバ判定情報記憶部に格納された情報に基づいて、複数の前記処理サーバの中から処理サーバを選定すること
    を特徴とする処理システム。
  7.  請求項1に記載の処理システムであって、
     特定されたアプリケーションプログラムが前記処理サーバ自身に登録されていないと判定すると、前記サーバ判定情報記憶部に格納された情報に基づいて、複数の前記処理サーバの中から処理サーバを選定すること
    を特徴とする処理システム。
  8.  請求項1に記載の処理システムであって、
     前記データ振り分け装置は、
     クライアント端末からデータを受信し、受信されたデータのレイヤ4レベルのプロトコルを解析し、受信されたデータを複数の前記処理サーバのいずれかに転送すること
    を特徴とする処理システム。
  9.  請求項1に記載の処理システムであって、
     前記データ振り分け装置は、
     クライアント端末からデータを受信し、受信されたデータのレイヤ7レベルのプロトコルを解析し、受信されたデータからメッセージを生成し、生成されたメッセージを複数の前記処理サーバのいずれかに転送すること
    を特徴とする処理システム。
  10.  請求項1に記載の処理システムであって、
     前記データ振り分け装置は、
     クライアント端末からデータを受信し、受信されたデータのレイヤ7レベルのプロトコルを解析し、受信されたデータからメッセージを生成し、複数の前記処理サーバの中でアプリケーションプログラムの登録された処理サーバを選定し、選定された処理サーバに生成されたメッセージを転送すること
    を特徴とする処理システム。
  11.  請求項1に記載の処理システムであって、
     前記データ振り分け装置は、
     クライアント端末からデータを受信し、受信されたデータのレイヤ7レベルのプロトコルを解析し、受信されたデータからメッセージを生成し、複数の前記処理サーバの中でアプリケーションプログラムの登録された処理サーバを特定し、特定された処理サーバの中でアプリケーションプログラムに固有の転送する条件と一致する処理サーバをさらに選定し、選定された処理サーバに生成されたメッセージを転送すること
    を特徴とする処理システム。
  12.  データ振り分け装置および他の処理サーバに接続された処理サーバで実行され、実行プラットフォームとのインターフェイスとアプリケーションプログラムとのインターフェイスを有するプログラムであって、
     前記データ振り分け装置もしくは前記他の処理サーバから受信されたメッセージを前記実行プラットフォームから取得してアプリケーションプログラムを特定し、
     特定されたアプリケーションプログラムに固有の転送する条件があると判定すると、特定されたアプリケーションプログラムに処理サーバを選定させ、
     特定されたアプリケーションプログラムに固有の転送する条件がないと判定すると、前記処理サーバおよび前記他の処理サーバの負荷に応じて処理サーバを選定し、
     前記他の処理サーバが選定されたと判定すると、選定された前記他の処理サーバにメッセージを転送し、
     前記処理サーバが選定されたと判定すると、特定されたアプリケーションプログラムに処理を実行させること
    を特徴とするプログラム。
PCT/JP2017/018651 2016-05-20 2017-05-18 処理システムおよびそのプログラム WO2017200037A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP17799461.3A EP3460661A4 (en) 2016-05-20 2017-05-18 TREATMENT SYSTEM AND ITS PROGRAM
JP2018518349A JP6668465B2 (ja) 2016-05-20 2017-05-18 処理システムおよびそのプログラム
US16/303,499 US11340969B2 (en) 2016-05-20 2017-05-18 Processing system for data distribution and program thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016100966 2016-05-20
JP2016-100966 2016-05-20

Publications (1)

Publication Number Publication Date
WO2017200037A1 true WO2017200037A1 (ja) 2017-11-23

Family

ID=60325347

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/018651 WO2017200037A1 (ja) 2016-05-20 2017-05-18 処理システムおよびそのプログラム

Country Status (4)

Country Link
US (1) US11340969B2 (ja)
EP (1) EP3460661A4 (ja)
JP (1) JP6668465B2 (ja)
WO (1) WO2017200037A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220030001A1 (en) * 2020-07-27 2022-01-27 Unisys Corporation Method of creating secure endpoints on a network

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113194073B (zh) * 2021-04-07 2022-07-29 中国人民解放军战略支援部队航天工程大学 基于多用户的数据传送方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013186520A (ja) * 2012-03-06 2013-09-19 Nec System Technologies Ltd コンピュータシステム、サーバ装置、負荷分散方法、及びプログラム
JP2016045802A (ja) * 2014-08-25 2016-04-04 株式会社リコー 情報処理装置、負荷分散システム、負荷分散方法、及び、プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7712102B2 (en) 2004-07-30 2010-05-04 Hewlett-Packard Development Company, L.P. System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data
US9621431B1 (en) * 2014-12-23 2017-04-11 EMC IP Holding Company LLC Classification techniques to identify network entity types and determine network topologies
US10992739B2 (en) * 2016-01-25 2021-04-27 Vmware, Inc. Integrated application-aware load balancer incorporated within a distributed-service-application-controlled distributed computer system
US10320891B2 (en) * 2016-01-25 2019-06-11 Vmware, Inc. Node selection for message redistribution in an integrated application-aware load balancer incorporated within a distributed-service-application-controlled distributed computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013186520A (ja) * 2012-03-06 2013-09-19 Nec System Technologies Ltd コンピュータシステム、サーバ装置、負荷分散方法、及びプログラム
JP2016045802A (ja) * 2014-08-25 2016-04-04 株式会社リコー 情報処理装置、負荷分散システム、負荷分散方法、及び、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3460661A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220030001A1 (en) * 2020-07-27 2022-01-27 Unisys Corporation Method of creating secure endpoints on a network

Also Published As

Publication number Publication date
US20200319946A1 (en) 2020-10-08
JPWO2017200037A1 (ja) 2019-03-14
EP3460661A4 (en) 2020-01-01
US11340969B2 (en) 2022-05-24
EP3460661A1 (en) 2019-03-27
JP6668465B2 (ja) 2020-03-18

Similar Documents

Publication Publication Date Title
US11157304B2 (en) System for peering container clusters running on different container orchestration systems
US10862760B2 (en) Network functions virtualization
US7562145B2 (en) Application instance level workload distribution affinities
US20020143953A1 (en) Automatic affinity within networks performing workload balancing
US20170093961A1 (en) Networking functions in a micro-services architecture
US7685289B2 (en) Method and apparatus for proxying initial client requests to support asynchronous resource initialization
JP5605229B2 (ja) アプリケーションサーバ管理システム、アプリケーションサーバ管理方法、管理装置、アプリケーションサーバ、および、コンピュータ・プログラム
US11283668B2 (en) Method and apparatus in a web service system
JP5352367B2 (ja) 仮想マシン起動端末および仮想マシン起動プログラム
JP6631710B2 (ja) 仮想化管理プログラム、仮想化管理装置および仮想化管理方法
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
US20140122723A1 (en) Dynamic registration of listener resources for cloud services
WO2017200037A1 (ja) 処理システムおよびそのプログラム
US9760370B2 (en) Load balancing using predictable state partitioning
Autili et al. A hybrid approach to microservices load balancing
US8370418B2 (en) Relay apparatus and method for transferring message
JP6668456B2 (ja) 処理システムおよび処理方法
US20150006620A1 (en) Scalable manufacturing facility management system
JP6740600B2 (ja) プログラム実行システム、プログラム実行方法、および、プログラム
US11652746B1 (en) Resilient consistent hashing for a distributed cache
JP7189753B2 (ja) データ流通管理システム、データ流通管理支援装置およびデータ流通管理方法
KR101648568B1 (ko) 분산된 객체를 클러스터링하여 하나의 객체처럼 활용하는 방법 및 이를 사용한 분산 시스템
CA2986758C (en) Systems and methods for server failover and load balancing
US9244741B2 (en) System and method for service mobility
US11907752B1 (en) Work distribution service

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018518349

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 17799461

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017799461

Country of ref document: EP

Effective date: 20181220