US10567507B2 - Message processing method and apparatus, and message processing system - Google Patents
Message processing method and apparatus, and message processing system Download PDFInfo
- Publication number
- US10567507B2 US10567507B2 US15/481,962 US201715481962A US10567507B2 US 10567507 B2 US10567507 B2 US 10567507B2 US 201715481962 A US201715481962 A US 201715481962A US 10567507 B2 US10567507 B2 US 10567507B2
- Authority
- US
- United States
- Prior art keywords
- server
- standby
- active server
- message
- input response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H04L67/322—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- H04L2029/06054—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
Definitions
- the present disclosure relates to the field of communications technologies, and in particular, to a message processing method and apparatus on a cloud computing platform, and a message processing system on a cloud computing platform.
- a telecommunication service such as a call service or a charging service has an extremely high requirement for reliability, which reaches five 9s (99.999%), and is far greater than enterprise-level reliability.
- reliability of a cloud computing system is about 95% to 98%, which is far less than a reliability requirement of a telecommunication service.
- cloudification is a megatrend, how to continue keeping telecommunication-level reliability of a telecommunication service after migrating the telecommunication service to cloud is a technical problem that needs to be resolved.
- dual servers for example, an active server and a standby server
- the active server executes an external request and performs synchronization with the standby server after executing the external request.
- a synchronization process includes data synchronization and status synchronization.
- dual-server standby reliability reduces when a volume of data requiring synchronization is relatively great, resulting in an obvious delay of dual-server switch, and further reducing service reliability.
- Embodiments of the present disclosure provide a message processing method and apparatus and a message processing system, to improve standby reliability in a dual-server standby scenario.
- an embodiment of the present disclosure provides a message processing method on a cloud computing platform, including receiving an input request message, and sending the request message to an active server and a standby server that are deployed on the cloud computing platform, where a same application program runs on the active server and the standby server; and receiving multiple input response messages returned by the active server and the standby server and sending one of the input response messages.
- the receiving multiple input response messages returned by the active server and the standby server and sending one of the input response messages includes receiving the multiple input response messages returned by the active server and the standby server, and sending a response message that first arrives; or receiving the multiple input response messages returned by the active server and the standby server, where the input response messages carry response results, determining first-type input response messages corresponding to a response result that appears repeatedly for maximum times, and sending one input response message of the first-type input response messages; or receiving the multiple input response messages returned by the active server and the standby server, where the input response messages carry response results, and when the response results of the multiple input response messages are all different, selecting and sending an input response message of a predefined active server or standby server; or receiving the multiple input response messages returned by the active server and the standby server, and sending an input response message returned by a virtual machine with a maximum health degree in the active server and the standby server.
- the method further includes updating a health degree of the active server and a health degree of the standby server according to the received input response messages, where the health degree of the active server and the health degree of the standby server are obtained by computing quantities of input response messages that carry correct response results and that are separately sent by the active server and the standby server.
- the method further includes receiving multiple output request messages sent by the active server and the standby server and sending one of the output request messages; and receiving an output response message, and sending the output response message to the active server and the standby server.
- the method further includes receiving multiple storage access requests sent by the active server and the standby server, and sending one of the storage access requests to an Infrastructure as a Service (IaaS) layer storage device shared by the active server and the standby server; and receiving a storage access response returned by the IaaS layer storage device, and sending the storage access response to the active server and the standby server.
- IaaS Infrastructure as a Service
- an embodiment of the present disclosure provides a message processing apparatus on a cloud computing platform, including an input message processing unit configured to receive an input request message and send the request message to an active server and a standby server that are deployed on the cloud computing platform, where the active server and the standby server are configured to implement dual-server standby, and a same application program runs on the active server and the standby server; and an input response processing unit configured to receive multiple input response messages returned by the active server and the standby server and send one of the input response messages.
- the receiving, by the input response processing unit, multiple input response messages returned by the active server and the standby server and sending one of the input response messages includes receiving, by the input response processing unit, the multiple input response messages returned by the active server and the standby server, and sending a response message that first arrives; or receiving, by the input response processing unit, the multiple input response messages returned by the active server and the standby server, where the input response messages carry response results, determining first-type input response messages corresponding to a response result that appears repeatedly for maximum times, and sending one input response message of the first-type input response messages; or receiving, by the input response processing unit, the multiple input response messages returned by the active server and the standby server, where the input response messages carry response results, and when the response results of the multiple input response messages are all different, selecting and sending an input response message of a predefined active server or standby server; or receiving, by the input response processing unit, the multiple input response messages returned by the active server and the standby server, and sending an input response response
- the apparatus further includes an output message processing unit configured to receive the multiple output request messages sent by the active server and the standby server and send one of the output request messages; and an output response processing unit configured to receive an output response message, and send the output response message to the active server and the standby server.
- the apparatus further includes: a storage message processing unit configured to receive multiple storage access requests sent by the active server and the standby server, and send one of the storage access requests to an IaaS layer storage device shared by the active server and the standby server; and a storage response processing unit configured to receive a storage access response returned by the IaaS layer storage device and send the storage access response to the active server and the standby server.
- an embodiment of the present disclosure further provides a message processing system on a cloud computing platform, including an active server and a standby server that are deployed on the cloud computing platform, and further including the message processing apparatus according to the second aspect.
- the message processing method on a cloud computing platform includes after receiving an input request message sent to an active server and a standby server, sending the input request message to all active servers and standby servers; and after receiving input response messages returned by the active server and the standby server, sending one of the input response messages.
- an input request is sent to all active servers and standby servers for execution and the active servers and the standby servers execute the same input request. Therefore, data synchronization and status synchronization do not need to be performed between the active servers and the standby servers, so that stability of dual-server standby is improved, and a dual-server switch speed is further improved.
- FIG. 1 is a schematic diagram of deployment of an active server and a standby server according to an embodiment of the present disclosure
- FIG. 2 is a flowchart of a message processing method according to Embodiment 1 of the present disclosure
- FIG. 3 is a flowchart of a message processing method according to Embodiment 2 of the present disclosure.
- FIG. 4 is a flowchart of a message processing method according to Embodiment 3 of the present disclosure.
- FIG. 5 is a flowchart of a message processing method according to Embodiment 4 of the present disclosure.
- FIG. 6 is a schematic structural diagram of a message processing apparatus according to Embodiment 5 of the present disclosure.
- FIG. 7 is a schematic structural diagram of a message processing apparatus according to Embodiment 6 of the present disclosure.
- FIG. 8 is a schematic structural diagram of a message processing system according to Embodiment 7 of the present disclosure.
- FIG. 1 is a schematic diagram of deployment of an active server and a standby server according to an embodiment of the present disclosure.
- the active server and the standby server are virtual machines (which may also be referred to as virtualization containers) deployed on the cloud computing platform, and a same application runs on the active server and the standby server.
- An application program (for example, App 1 ) runs in a virtualization container 1 as an active server, and an image of the application program (for example, App 1 image) runs in a virtualization container 2 as a standby server.
- a quantity of standby servers may be flexibly increased according to requirements.
- the concepts of the active server and the standby server are relative. All the virtual machines may be referred to as active servers, or all the virtual machines may be referred to as standby servers.
- the virtualization container 1 and the virtualization container 2 use network resources, storage resources, and computation resources in a central processing unit (CPU) of a IaaS layer (also referred to as layer-I in the disclosure) of cloud computing.
- the virtualization container 1 and the virtualization container 2 may share same network resources and storage resources, or may use independent network resources and storage resources.
- a message processing apparatus (which may also be understood as an interface adaptation layer) is also included between the application program and the IaaS layer.
- FIG. 2 is a flowchart of a message processing method on a cloud computing platform according to Embodiment 1 of the present disclosure.
- the message processing method on a cloud computing platform mainly includes:
- Step 101 Receive an input request message, and send the request message to an active server and a standby server that are deployed on a cloud computing platform, where a same application program runs on the active server and the standby server.
- a message processing apparatus when receiving an input request message such as a charging request from an external device (“the external device” refers to an external device except the active server and the standby server), a message processing apparatus duplicates and sends the request message to the active server and the standby server.
- the active server and the standby server independently execute the input request message, and return corresponding input response messages.
- the received input request message may be sent to the active server and/or the standby server, or may be sent to the message processing apparatus, that is, a destination address of the input request message may be the active server and/or the standby server, or the message processing apparatus in this embodiment.
- the message processing apparatuses may also receive the input request message.
- the active server and the standby server may have a same address, or may have addresses independent of each other.
- Step 102 Receive multiple input response messages returned by the active server and the standby server, and send one of the input response messages.
- the message processing apparatus may identify duplicate input response messages and send one of the input response messages.
- the multiple input response messages returned by the active server and the standby server may be received, and a response message that first arrives is sent, so as to improve the message sending efficiency.
- a message that is a duplicate of the input response message that is first returned may further be quickly identified according to a message feature such as, for example, a session identifier (session-id) of the input response message and be discarded.
- the message processing apparatus may also identify, by means of complete message matching, the input response messages sent by the active server and the standby server.
- the multiple input response messages returned by the active server and the standby server may be received, where the input response messages carry response results.
- first-type input response messages corresponding to a response result that appears repeatedly for maximum times are determined, and one input response message of the first-type input response messages is sent, so as to further improve correctness for sending the response message.
- the response result may be included in a message body of the response message, or may be directly the response message.
- the multiple input response messages returned by the active server and the standby server may be received, where the input response messages carry response results, and when it is determined that the response results of the multiple input response messages are all different, an input response message of a predefined active server or standby server is selected and sent, that is, an input response message of a virtual machine specified in advance is selected preferentially and sent.
- a specific process for processing the multiple input response messages returned by the active server and the standby server in this embodiment of the present disclosure may be applicable to the following other embodiments in Embodiment 1 of the present disclosure.
- the message processing apparatus in order to enable the message processing apparatus to receive all input request messages sent to the active server and the standby server, the message processing apparatus may be configured to a routing node that must be passed through.
- the message processing apparatus may intercept the input request message sent to the active server and the standby server and intercept the multiple input response messages returned by the active server and the standby server.
- the message processing apparatus may identify duplicate input response messages according to the message feature, and may match the input request message with the input response message according to the message feature.
- a globally unique message feature such as, for example, a session-id
- the message processing apparatus may identify duplicate input response messages according to the message feature, and may match the input request message with the input response message according to the message feature.
- the specific description of the message feature may be applicable to the following other embodiments in Embodiment 1 of the present disclosure.
- the message processing apparatus may add some related information in the input request message to be sent, for example, add an identifier (ID) of each virtual machine such as, for example, a process ID of a virtual machine or a Media Access Control (MAC) address of a virtual machine and a sequence number to an input request message sent to the virtual machine, and then send the modified input request message to the active server and the standby server.
- ID identifier
- the sequence number may correspond to an input request message.
- related information may be added to an interface layer of a layer I, so as to facilitate the message processing apparatus to perform identification.
- an input response message to be returned also carries the related information.
- the message processing apparatus may identify duplicate input response messages according to a sequence number in related information, and identify, according to virtual machine identifiers in related information, input response messages returned by different virtual machines, and may also match the input request message with the input response message according to the related information. Because the foregoing related information is added to the interface layer of the layer I, the message processing apparatus may not add the related information when sending the input request message to the active server and the standby server.
- Step 103 Reconstruct the active server and the standby server when response results of the multiple input response messages are abnormal.
- the response results of the multiple input response messages are abnormal, for example, the response results of the multiple input response messages are all different or response results of only some response messages of the multiple input response messages are different, that is, response results of other input response messages are the same, it indicates that some virtual machines in the active server and the standby server may have faults.
- the active server and the standby server are reconstructed.
- the active server and the standby server may be reconstructed according to a predefined rule (for example, reinstalling an application program or restoring data), so that the active server and the standby server are restored.
- the active server and the standby server in this embodiment of the present disclosure may further respectively correspond to a health degree (or reliability).
- the health degree is determined according to a proportion of a quantity of correct input response messages returned to a quantity of total input response messages returned.
- the health degree of the corresponding active server and the health degree of the corresponding standby server are updated according to a determining result. For example, if the input response message is correct, the health degree increases. Further, when an input response message is sent, an input response message returned by a virtual machine with a high health degree is sent. A process of determining whether the input response messages are correct may be based on a principle that the minority is subordinate to the majority.
- the health degree of the active server and the health degree of the standby server in this embodiment of the present disclosure may be applicable to the following other embodiments in Embodiment 1 of the present disclosure.
- the health degree of the active server or the health degree of the standby server is less than a threshold
- the active server or the standby server with the health degree being less than the threshold is reconstructed.
- the virtual machine is reconstructed according to a predefined rule, or the active server or the standby server with the health degree being less than the threshold is reconstructed according to a virtual machine with a maximum health degree.
- FIG. 3 is a flowchart of a message processing method on a cloud computing platform according to Embodiment 2 of the present disclosure.
- the message processing method on a cloud computing platform includes:
- Step 201 Receive multiple output request messages returned by an active server and a standby server and send one of the output request messages.
- the active server that operates an application program and the standby server that operates an application program send output request messages, for example, send a location request message to a terminal.
- output request messages for example, send a location request message to a terminal.
- one of the output request messages is sent, for example, an output request message that is received first is sent.
- duplicate output request messages are identified according to a message feature of an output request message, for example, the duplicate output request messages are identified according to a session-id.
- the active server and the standby server may add, to an output request message sent to a message processing apparatus, a sequence number of the message, and the message processing apparatus quickly identifies a duplicate output request message according to the sequence number.
- the message processing apparatus in order to enable the message processing apparatus to receive all the output request messages sent by the active server or the standby server, the message processing apparatus may be configured to a routing node that must be passed through, and the message processing apparatus may intercept all the output request messages sent by the active server and the standby server.
- Step 202 Receive an output response message and send the output response message to the active server and the standby server.
- the received location response message is sent to the active server and the standby server.
- the active server and the standby server perform data processing according to the received output response message.
- a processing result may further be stored after data processing is performed, that is, the active server and the standby server send a storage access request to a layer-I storage device.
- the message processing apparatus may send an output response message to the active server and the standby server according to a locally stored routing table, or broadcast the output response message to the active server and the standby server.
- the output request message in Embodiment 2 of the present disclosure may be an output request message actively triggered by the active server and the standby server, or may be an output request message returned by the active server and the standby server according to the input request message received in Embodiment 1, and in this case, the input response message returned by the active server and the standby server is the output request message.
- step 102 of sending one of the input response messages is executed, step 202 of receiving an output response message is also executed.
- Step 203 Receive multiple storage access requests sent by the active server and the standby server, and send one of the storage access requests to a layer-I storage device shared by the active server and the standby server.
- the active server and the standby server share a same layer-I storage device. Therefore, when the multiple storage access requests (for example, storage access requests returned according to the output response messages) sent by the active server and the standby server are received, one of the storage access requests is sent to the shared layer-I storage device, for example, a storage access request that first arrives is sent.
- the message processing apparatus may also send a storage access request of a virtual machine with a maximum health degree.
- the message processing apparatus if the storage access request carries a message feature, the message processing apparatus identifies duplicate storage access requests according to the message feature.
- the active server and the standby server may also add a sequence number of the access request to the sent storage access request, and the message processing apparatus quickly identifies duplicate storage access requests according to the sequence number.
- the foregoing sequence number may be added to an interface layer of the layer I, so as to facilitate the message processing apparatus to perform identification.
- the active server and the standby server do not share the same layer-I storage device, that is, the active server and the standby server are configured with independent storage devices, and in this case, the active server and the standby server separately send a storage access request to a corresponding storage device and receive a storage access response, and the message processing apparatus does not process the storage access request.
- Step 204 Receive a storage access response returned by the layer-I storage device, and send the storage access response to the active server and the standby server.
- a corresponding storage access request is matched according to the message feature or the sequence number of the storage access response, and then the storage access response is duplicated and sent to the active server and the standby server, so that the active server and the standby server obtain a storage access result.
- the output response message is sent to all active servers and standby servers, and the active servers and the standby servers execute the same output response message. Therefore, data synchronization and status synchronization do not need to be performed between the active servers and the standby servers, so that stability of dual-server standby is improved, and a dual-server switch speed is further improved.
- one of the storage access requests is sent to a shared layer-I storage device, and a received storage access response is sent to all the active servers and the standby servers, so as to implement access of the shared storage device.
- the active server and the standby server in this embodiment of the present disclosure may share a layer-I storage device, so as to reduce redundancy of storage resources in a dual-server standby scenario.
- FIG. 4 is a flowchart of a message processing method on a cloud computing platform according to Embodiment 3 of the present disclosure.
- an application program such as, for example, a charging application runs in a virtualization container, and the virtualization container takes over all requests of the charging application that are used to access a resource, including a network resource, a magnetic disk resource, and a CPU resource.
- This embodiment provides a description by using a convergent billing part (CBP) in the charging application as an example.
- the virtualization container in which the charging application is located shares a storage resource.
- a network resource and a storage resource of the virtualization container are deployed independently.
- CBPs are deployed in the CBP active server and CBP standby servers 1 and 2 .
- the message processing apparatus After the active server and the standby server complete deployment, the message processing apparatus locally stores a routing table, so as to facilitate subsequent message sending.
- Step 301 Receive an external charging request message.
- a charging request received by the message processing apparatus carries a message feature, and the message feature in this embodiment may be a session-id and a charging request number.
- Charging request messages sequentially sent by different external devices may be distinguished by using identifiers such as, for example, user equipment (UE) identifiers of the external devices.
- UE user equipment
- a destination address of an external charging request message may be an active server and/or a standby server, or may be a message processing apparatus in this embodiment, and message processing apparatuses may all receive the external charging request message.
- Step 302 Send the charging request message to the active server and the standby servers.
- the message processing apparatus sends the charging request message to the active server and the standby servers 1 and 2 according to a local routing table.
- Step 303 The active server and the standby servers process the charging request message and returns charging response messages.
- the active server and the standby servers 1 and 2 independently execute charging processing according to the charging request and return charging response messages, and the message processing apparatus executes step 304 .
- the active server and the standby servers 1 and 2 in this embodiment of the present disclosure also need to write data into the layer-I storage device, that is, execute step 306 .
- Step 304 Receive the charging response messages sent by the active server and the standby server, and send a first-type charging response message.
- the message processing apparatus may identify, by means of the session-id and the request number, charging response messages returned by different virtual machines in response to a same charging request message.
- charging results in the charging response messages returned after the active server or the standby server executes the charging request message may be different.
- the message processing apparatus obtains first-type charging response messages corresponding to a charging result that appears repeatedly for maximum times, and selects one of the first-type charging response messages for sending.
- Step 305 Reconstruct, according to virtual machines corresponding to the first-type charging response messages, active servers or standby servers except the virtual machines corresponding to the first-type charging response messages.
- the message processing apparatus reconstructs, according to the virtual machines corresponding to the first-type charging response messages, virtual machines (which may be active servers or standby servers), with the exception of the virtual machines corresponding to the first-type charging response messages, so that the active servers or standby servers with the exception of the virtual machines corresponding to the first-type charging response messages are restored, thereby improving reliability of dual-server standby.
- virtual machines which may be active servers or standby servers
- all the virtual machines are reconstructed according to a predefined virtual machine construction rule.
- the virtual machine when a virtual machine obviously operates abnormally (for example, cannot return a response message), the virtual machine is reconstructed, for example, the virtual machine that cannot return a response message is reconstructed according to a virtual machine corresponding to the first charging response message.
- Step 306 The active server and the standby servers send a data write request to a layer-I storage device.
- the active server and the standby servers 1 and 2 also need to store charging information in the layer-I storage device, and send a storage access request to the layer-I storage device.
- the message processing apparatus may intercept all storage access requests, and the storage access requests may be data write requests.
- data in the data write requests sent by the active server and the standby servers 1 and 2 may be inconsistent.
- Step 307 Receive multiple data write requests sent by the active server and the standby server, and send a first-type data write request to the layer-I storage device.
- a message feature in the data write request is a keyword (corresponding to different to-be-written data) in the data write request.
- the data write request carries to-be-written data.
- first-type data write requests corresponding to to-be-written data that appears repeatedly for maximum times are determined in multiple data write requests with a same keyword, and one data write request of the first-type data write requests is sent to the layer-I storage device, so as to further improve correctness of data writing.
- the layer-I storage device writes charging data according to the received data write request, and returns a data write response.
- Step 308 Receive a data write response returned by the layer-I storage device.
- the message processing apparatus receives the data write response returned by the layer-I storage device.
- Step 309 Duplicate and send the data write response to the active server and the standby servers.
- the message processing apparatus After receiving the data write response corresponding to the data write request, the message processing apparatus matches a corresponding data write request according to a keyword, then sends the received data write response to the active server and the standby servers 1 and 2 according to an internally stored routing table, and completes a data write process.
- FIG. 5 is a flowchart of a method for processing a message on a cloud computing platform according to Embodiment 4 of the present disclosure.
- an application program such as, for example, a call processing application runs in a virtualization container, and the virtualization container takes over all requests of the application that are used to access a resource, including, for example, a network resource, a magnetic disk resource, and a CPU resource.
- a service control part SCPs are deployed in all of an active server and standby servers 1 and 2 .
- a call message processing method of an intelligent network in a dual-server standby scenario mainly includes the following steps.
- Step 501 Receive a call control request reported externally.
- a message processing apparatus receives a call control request reported by an external service switching point (SSP).
- SSP external service switching point
- Step 502 Send the call control request to an active server and standby servers.
- the message processing apparatus sends the call control request to all active servers and standby servers according to an internally stored routing table.
- the active server and the standby server independently execute call control and return call control responses.
- a dialogue identifier (dialog id) of a transaction processing capability application part (TCAP) layer of a Customized Application for Mobile Network Enhanced Logic Application Part (CAMEL Application Part or CAP) protocol in the call control responses may uniquely identify the call request.
- TCAP transaction processing capability application part
- CAMEL Application Part or CAP Customized Application for Mobile Network Enhanced Logic Application Part
- Step 503 Receive call control responses sent by the active server and the standby servers.
- the message processing apparatus may receive call control responses returned by all the active servers and standby servers 1 and 2 .
- Step 504 Send a call control response returned by a virtual machine with a maximum health degree.
- the message processing apparatus stores health degree data of each active server and each standby server, and the health degree data is obtained by computing history call control responses, for example, the health degree data is determined according to a proportion of a quantity of correct call control responses returned to a quantity of total call control responses returned.
- the message processing apparatus sends the call control response returned by the virtual machine with a maximum health degree, distinguishes duplicate call control responses according to a dialogue identifier of a TCAP layer of the CAP protocol in the call control response, and discards the duplicate call control responses, so as to complete a call control process.
- Step 505 Update a health degree of the active server and a health degree of the standby server according to the received call control responses.
- call control responses after the call control responses are sent, whether the call control responses returned by all the active servers and the standby servers currently are correct is determined. That is, quantities of times different call control results appear repeatedly in all the call control responses are counted, a call control response corresponding to a response result that appears repeatedly for maximum times is determined as a correct call control response (if the call control results in all the call control responses are different, all the call control responses are determined as wrong call control responses), call control responses corresponding to other response results are determined as wrong call control responses, and the health degree of the active server and the standby server corresponding to the call control responses is updated, so that the virtual machine with the maximum health degree is determined when the call control response is sent.
- the active server or the standby server may determine that the virtual machine on one or both of the active or standby servers returns a wrong call control response, and a health degree of the virtual machine is updated.
- Step 506 Reconstruct an active server or a standby server with a health degree being less than a threshold.
- the health degree of the active server or the health degree of the standby server is less than the threshold (such as 95%), it is determined that the virtual machine is abnormal, and the virtual machine is reconstructed.
- the virtual machine is reconstructed according to a predefined rule, or the active server or the standby server with the health degree being less than the threshold is reconstructed according to the virtual machine with a maximum health degree.
- the active servers and the standby servers synchronously execute a call request, and dual-server standby improves stability of a call control process.
- a single application program configuration in a cloud environment may be very low, and therefore, this embodiment of the present disclosure may reduce costs of telecommunication hardware by using low-cost virtual machines on a large scale.
- FIG. 6 is a schematic structural diagram of a message processing apparatus according to Embodiment 5 of the present disclosure.
- the message processing apparatus mainly includes an input request processing unit 610 configured to receive an input request message and send the request message to an active server and a standby server that are deployed on the cloud computing platform, where a same application program runs on the active server and the standby server, and the active server and the standby server are configured to implement dual-server standby; and an input response processing unit 620 configured to receive multiple input response messages returned by the active server and the standby server and send one of the input response messages.
- receiving, by the input response processing unit 620 , the multiple input response messages returned by the active server and the standby server and sending one of the input response messages may include receiving, by the input response processing unit 620 , the multiple input response messages returned by the active server and the standby server, and sending a response message that first arrives; or receiving, by the input response processing unit 620 , the multiple input response messages returned by the active server and the standby server, where the input response messages carry response results, determining first-type input response messages corresponding to a response result that appears repeatedly for maximum times, and sending one input response message of the first-type input response messages; or receiving, by the input response processing unit 620 , the multiple input response messages returned by the active server and the standby server, where the input response messages carry response results, and when the response results of the multiple input response messages are all different, selecting and sending input response messages of a predefined active server or standby server; or receiving, by the input response processing unit 620 , the multiple input response messages returned by
- the processing process of the input response processing unit 620 is similar to the foregoing relevant description of step 102 in Embodiment 1 which was shown and described in FIG. 2 .
- the message processing apparatus includes a virtual machine reconstructing unit 630 , a health degree updating unit 640 , an output request processing unit 650 , an output response processing unit 660 , a storage request processing unit 670 , and a storage response processing unit 680 .
- the virtual machine reconstructing unit 630 is configured to reconstruct the active server and the standby server when the response results of the multiple input response messages are abnormal, or reconstruct, when a health degree of the active server or a health degree of the standby server is less than a threshold, the active server or the standby server with the health degree being less than the threshold.
- a health degree updating unit 640 is configured to update the health degree of the active server and the health degree of the standby server according to the received input response messages, where the health degree of the active server and the health degree of the standby server are obtained by computing quantities of input response messages that carry correct response results and that are separately sent by the active server and the standby server.
- the health degree updating unit 640 may specifically obtain the health degree of the active server and the health degree of the standby server by computing a total quantity of input response messages sent by the virtual machines and input response messages that carry correct response results.
- An output request processing unit 650 is configured to receive multiple output request messages sent by the active server and the standby server.
- An output response processing unit 660 is configured to receive an output response message, and send the output response message to the active server and the standby server.
- the processes of processing the output request message and the output response message by the output request processing unit 650 and the output response processing unit 660 is similar to the foregoing relevant descriptions of steps 201 and 202 in Embodiment 2, which was shown and described in FIG. 2 , and details are not described herein.
- a storage request processing unit 670 is configured to receive multiple storage access requests sent by the active server and the standby server, and send one of the storage access requests to a layer-I storage device shared by the active server and the standby server.
- a storage response processing unit 680 is configured to receive a storage access response returned by the layer-I storage device, and send the storage access response to the active server and the standby server.
- the sending, by the storage request processing unit 670 , one of the storage access requests to a layer-I storage device shared by the active server and the standby server includes sending, by the storage request processing unit 670 to the layer-I storage device shared by the active server and the standby server, a storage access request that first arrives.
- the message processing apparatus in this embodiment of the present disclosure may enable the active server and the standby server to share a layer-I storage device, so as to reduce redundancy of storage resources in a dual-server standby scenario.
- FIG. 7 is a schematic structural diagram of a message processing apparatus according to Embodiment 6 of the present disclosure.
- the message processing apparatus includes a processor 710 , a memory 720 , and a bus 730 .
- the memory 720 is configured to store a computer execution instruction.
- the processor 710 and the memory 720 are connected by using the bus 730 , and when the apparatus runs, the processor 710 executes the computer execution instruction, so as to enable the apparatus to execute the following method: receiving an input request message, and sending the request message to an active server and a standby server that are deployed on a cloud computing platform, where a same application program runs on the active server and the standby server; and receiving multiple input response messages returned by the active server and the standby server and sending one of the input response messages.
- the process for executing the foregoing method by the message processing apparatus provided in Embodiment 6 of the present disclosure and shown in FIG. 7 is the same as an execution process in Embodiment 1, Embodiment 2, Embodiment 3, and Embodiment 4 of the foregoing corresponding message processing method, and has a same beneficial effect.
- Embodiment 1 Embodiment 1
- Embodiment 2 Embodiment 3
- Embodiment 4 Embodiment 4 of the foregoing corresponding message processing method
- FIG. 8 is a schematic structural diagram of a message processing system according to Embodiment 7 of the present disclosure.
- the message processing system provided in this embodiment of the present disclosure mainly includes an active server 810 , a standby server 820 , and a message processing apparatus 830 .
- the structure and function of the message processing apparatus 830 are the same as those of the message processing apparatus provided in the foregoing Embodiments 5 and 6.
- the message processing system provided in the embodiments of the present disclosure sends an input request to all active servers and standby servers for execution, and the active servers and the standby servers execute the same input request. Therefore, data synchronization and status synchronization do not need to be performed between the active servers and the standby servers, so that stability of dual-server standby is improved, and a dual-server switch speed is further improved.
- each aspect of the present disclosure or a possible implementation manner of each aspect may be specifically implemented as a system, a method, or a computer program product. Therefore, each aspect of the present disclosure or a possible implementation manner of each aspect may use forms of hardware only embodiments, software only embodiments (including firmware, resident software, and the like), or embodiments with a combination of software and hardware, which are uniformly referred to as “circuit”, “module”, or “system” herein.
- each aspect of the present disclosure or the possible implementation manner of each aspect may take a form of a computer program product, where the computer program product refers to computer-readable program code stored in a computer-readable medium.
- the computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium.
- the computer-readable storage medium includes but is not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semi-conductive system, device, or apparatus, or any appropriate combination thereof, such as a random access memory (RAM), a read-only memory (ROM), an erasable programmable read only memory (EPROM or flash memory), an optical fiber, and a compact disc read only memory (CD-ROM).
- a processor in a computer reads computer-readable program code stored in a computer-readable medium, so that the processor can perform a function and an action specified in each step or a combination of steps in a flowchart; an apparatus is generated to implement a function and an action specified in each block or a combination of blocks in a block diagram.
- All computer-readable program code may be executed on a user computer, or some may be executed on a user computer as a standalone software package, or some may be executed on a computer of a user while some is executed on a remote computer, or all the code may be executed on a remote computer or a server. It should also be noted that, in some alternative implementation solutions, each step in the flowcharts or functions specified in each block in the block diagrams may not occur in the illustrated order. For example, two consecutive steps or two blocks in the illustration, which are dependent on an involved function, may in fact be executed substantially at the same time, or these blocks may sometimes be executed in reverse order.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Hardware Redundancy (AREA)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410528631.0A CN105577711B (zh) | 2014-10-08 | 2014-10-08 | 消息处理方法、装置及消息处理系统 |
CN201410528631 | 2014-10-08 | ||
CN201410528631.0 | 2014-10-08 | ||
PCT/CN2015/076985 WO2016054906A1 (zh) | 2014-10-08 | 2015-04-20 | 计费方法和设备、接入设备、服务质量控制方法和设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2015/076985 Continuation WO2016054906A1 (zh) | 2014-10-08 | 2015-04-20 | 计费方法和设备、接入设备、服务质量控制方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170214742A1 US20170214742A1 (en) | 2017-07-27 |
US10567507B2 true US10567507B2 (en) | 2020-02-18 |
Family
ID=55652540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/481,962 Active 2036-04-22 US10567507B2 (en) | 2014-10-08 | 2017-04-07 | Message processing method and apparatus, and message processing system |
Country Status (4)
Country | Link |
---|---|
US (1) | US10567507B2 (zh) |
EP (1) | EP3193482B1 (zh) |
CN (1) | CN105577711B (zh) |
WO (1) | WO2016054906A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7028503B2 (ja) * | 2018-03-29 | 2022-03-02 | Necプラットフォームズ株式会社 | コンピュータシステム、通信システム、コンピュータシステムによる制御方法及びプログラム |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037283A1 (en) | 2001-08-15 | 2003-02-20 | Anand Srinivasan | Electing a master server using election periodic timer in fault-tolerant distributed dynamic network systems |
US20080126833A1 (en) * | 2006-08-11 | 2008-05-29 | Callaway Paul J | Match server for a financial exchange having fault tolerant operation |
US20100004930A1 (en) | 2008-07-02 | 2010-01-07 | Brian Strope | Speech Recognition with Parallel Recognition Tasks |
US20130007759A1 (en) * | 2011-06-28 | 2013-01-03 | International Business Machines Cororation | Unified, workload-optimized, adaptive ras for hybrid systems |
US20130030928A1 (en) * | 2011-07-25 | 2013-01-31 | Lopez Eric R | Methods and systems for electronically marketing a product through affiliate sponsorships via a computer network |
WO2013154010A1 (ja) | 2012-04-09 | 2013-10-17 | クラリオン株式会社 | 音声認識サーバ統合装置および音声認識サーバ統合方法 |
CN103368993A (zh) | 2012-03-28 | 2013-10-23 | 上海地面通信息网络有限公司 | 一种虚拟云主机备份控制装置 |
WO2013158514A1 (en) | 2012-04-20 | 2013-10-24 | Microsoft Corporation | Binding crud-type protocols in distributed agreement protocols |
US20130311520A1 (en) * | 2010-10-22 | 2013-11-21 | Intec Inc. | Storage-service-provision apparatus,system, service-provision method, and service-provision program |
US8615584B2 (en) | 2009-12-03 | 2013-12-24 | International Business Machines Corporation | Reserving services within a cloud computing environment |
CN103501290A (zh) * | 2013-09-18 | 2014-01-08 | 万达信息股份有限公司 | 一种基于动态备份虚拟机的高可靠服务系统构建方法 |
CN103532764A (zh) | 2013-10-24 | 2014-01-22 | 中国科学院信息工程研究所 | 多机热备份方法及系统 |
CN103761166A (zh) | 2014-01-22 | 2014-04-30 | 上海交通大学 | 一种虚拟化环境下针对网络服务的双机热备份容灾系统及其方法 |
CN103885857A (zh) | 2014-03-10 | 2014-06-25 | 中标软件有限公司 | 虚拟机容错方法以及设备 |
US20150172760A1 (en) * | 2013-12-16 | 2015-06-18 | Vmware, Inc. | Multi-User Support for Set Top Boxes and Game Consoles |
US20160286001A1 (en) * | 2014-04-22 | 2016-09-29 | Pismo Labs Technology Limited | Methods and systems for processing a dns request |
-
2014
- 2014-10-08 CN CN201410528631.0A patent/CN105577711B/zh active Active
-
2015
- 2015-04-20 WO PCT/CN2015/076985 patent/WO2016054906A1/zh active Application Filing
- 2015-04-20 EP EP15848459.2A patent/EP3193482B1/en active Active
-
2017
- 2017-04-07 US US15/481,962 patent/US10567507B2/en active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037283A1 (en) | 2001-08-15 | 2003-02-20 | Anand Srinivasan | Electing a master server using election periodic timer in fault-tolerant distributed dynamic network systems |
US20080126833A1 (en) * | 2006-08-11 | 2008-05-29 | Callaway Paul J | Match server for a financial exchange having fault tolerant operation |
US20100004930A1 (en) | 2008-07-02 | 2010-01-07 | Brian Strope | Speech Recognition with Parallel Recognition Tasks |
US8615584B2 (en) | 2009-12-03 | 2013-12-24 | International Business Machines Corporation | Reserving services within a cloud computing environment |
US20130311520A1 (en) * | 2010-10-22 | 2013-11-21 | Intec Inc. | Storage-service-provision apparatus,system, service-provision method, and service-provision program |
US20130007759A1 (en) * | 2011-06-28 | 2013-01-03 | International Business Machines Cororation | Unified, workload-optimized, adaptive ras for hybrid systems |
US20130030928A1 (en) * | 2011-07-25 | 2013-01-31 | Lopez Eric R | Methods and systems for electronically marketing a product through affiliate sponsorships via a computer network |
CN103368993A (zh) | 2012-03-28 | 2013-10-23 | 上海地面通信息网络有限公司 | 一种虚拟云主机备份控制装置 |
WO2013154010A1 (ja) | 2012-04-09 | 2013-10-17 | クラリオン株式会社 | 音声認識サーバ統合装置および音声認識サーバ統合方法 |
EP2838085A1 (en) | 2012-04-09 | 2015-02-18 | Clarion Co., Ltd. | Voice recognition server integration device and voice recognition server integration method |
WO2013158514A1 (en) | 2012-04-20 | 2013-10-24 | Microsoft Corporation | Binding crud-type protocols in distributed agreement protocols |
CN103501290A (zh) * | 2013-09-18 | 2014-01-08 | 万达信息股份有限公司 | 一种基于动态备份虚拟机的高可靠服务系统构建方法 |
CN103532764A (zh) | 2013-10-24 | 2014-01-22 | 中国科学院信息工程研究所 | 多机热备份方法及系统 |
US20150172760A1 (en) * | 2013-12-16 | 2015-06-18 | Vmware, Inc. | Multi-User Support for Set Top Boxes and Game Consoles |
CN103761166A (zh) | 2014-01-22 | 2014-04-30 | 上海交通大学 | 一种虚拟化环境下针对网络服务的双机热备份容灾系统及其方法 |
US20160323427A1 (en) | 2014-01-22 | 2016-11-03 | Shanghai Jiao Tong University | A dual-machine hot standby disaster tolerance system and method for network services in virtualilzed environment |
CN103885857A (zh) | 2014-03-10 | 2014-06-25 | 中标软件有限公司 | 虚拟机容错方法以及设备 |
US20160286001A1 (en) * | 2014-04-22 | 2016-09-29 | Pismo Labs Technology Limited | Methods and systems for processing a dns request |
Non-Patent Citations (8)
Title |
---|
Foreign Communication From a Counterpart Application, Chinese Application No. 201410528631.0, Chinese Office Action dated Mar. 16, 2018, 6 pages. |
Foreign Communication From a Counterpart Application, European Application No. 15848459.2, European Office Action dated Jun. 3, 2019, 9 pages. |
Foreign Communication From a Counterpart Application, European Application No. 15848459.2, Partial Supplementary European Search Report dated Jun. 21, 2017, 15 pages. |
Foreign Communication From a Counterpart Application, PCT Application No. PCT/CN2015/076985, English Translation of International Search Report dated Jul. 2, 2015, 2 pages. |
Foreign Communication From a Counterpart Application, PCT Application No. PCT/CN2015/076985, English Translation of Written Opinion dated Jul. 2, 2015, 7 pages. |
Machine Translation and Abstract of Chinese Publication No. CN103368993, dated Oct. 23, 2013, 5 pages. |
Machine Translation and Abstract of Chinese Publication No. CN103532764, dated Jan. 22, 2014, 15 pages. |
Machine Translation and Abstract of Chinese Publication No. CN103885857, dated Jun. 25, 2014, 17 pages. |
Also Published As
Publication number | Publication date |
---|---|
CN105577711B (zh) | 2019-05-03 |
EP3193482B1 (en) | 2020-02-05 |
WO2016054906A1 (zh) | 2016-04-14 |
EP3193482A1 (en) | 2017-07-19 |
US20170214742A1 (en) | 2017-07-27 |
CN105577711A (zh) | 2016-05-11 |
EP3193482A4 (en) | 2017-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10331468B2 (en) | Techniques for routing service chain flow packets between virtual machines | |
US9389903B2 (en) | Method, system and apparatus for creating virtual machine | |
US9887875B2 (en) | Layer 3 high availability router | |
JP6466003B2 (ja) | Vnfフェイルオーバの方法及び装置 | |
EP3291499A1 (en) | Method and apparatus for network service capacity expansion | |
CN107402722B (zh) | 一种数据迁移方法及存储设备 | |
JP6325001B2 (ja) | 階層データ構造のノードにおいて再帰的イベントリスナを用いる方法およびシステム | |
US10541862B2 (en) | VNF processing policy determining method, apparatus, and system | |
CN107077366B (zh) | 用于主与辅虚拟机之间的检查点/传递的方法和设备 | |
EP3353671A1 (en) | Distributed data processing method and system | |
US10771318B1 (en) | High availability on a distributed networking platform | |
CN106034112B (zh) | 访问控制、策略获取、属性获取方法及相关装置 | |
US9882855B1 (en) | Instance messaging service | |
US10860375B1 (en) | Singleton coordination in an actor-based system | |
US10979317B2 (en) | Service registration method and usage method, and related apparatus | |
US11263184B1 (en) | Partition splitting in a distributed database | |
US11070614B2 (en) | Load balancing method and related apparatus | |
CN110764705B (zh) | 一种数据的读写方法、装置、设备和存储介质 | |
CN113411363A (zh) | 一种镜像文件的上传方法、相关设备及计算机存储介质 | |
US10567507B2 (en) | Message processing method and apparatus, and message processing system | |
CN107426012B (zh) | 一种基于超融合架构的故障恢复方法及其装置 | |
CN116095145B (zh) | 一种vpc集群的数据控制方法和系统 | |
US10951732B2 (en) | Service processing method and device | |
CN115037627B (zh) | 网络配置信息处理方法、sdn控制器、系统及存储介质 | |
US9348672B1 (en) | Singleton coordination in an actor-based system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HUAWEI TECHNOLOGIES CO., LTD., CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZHU, JIAN;REEL/FRAME:042345/0149 Effective date: 20170510 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |