TIMERS IN STATELESS ARCHITECTURE
20180004582 · 2018-01-04
Assignee
Inventors
Cpc classification
G06F16/252
PHYSICS
H04L67/10
ELECTRICITY
G06F9/542
PHYSICS
International classification
Abstract
A front end logic instance of a network function in a stateless architecture of a telecommunications network. The logic instance comprises a logic performer configured to perform network function logic to carry out at least part of a network function of the telecommunications network, the logic performer being configured to control a transmitter and receiver for transmission and reception of data with a backend database during performance of the network function logic. The logic instance comprises a timer subscriber configured to control the transmitter to transmit a request to the backend database to be notified about a timer event relating to a timer run on the backend database, the request comprising data indicating the timer event. The receiver is further configured to receive a notification that the timer event has occurred.
Claims
1. A front end logic instance of a network function in a stateless architecture of a telecommunications network, the logic instance comprising: a processor; and a memory containing instructions which, when executed by the processor, cause the front end logic instance to: perform network function logic to carry out at least part of a network function of the telecommunications network to control a transmitter and receiver for transmission and reception of data with a backend database during performance of the network function logic; and control the transmitter to transmit a request to the backend database to be notified about a timer event relating to a timer run on the backend database, the request comprising data indicating the timer event, wherein the receiver is further configured to receive a notification that the timer event has occurred.
2. A front end logic instance according to claim 1, wherein the timer event comprises a timer timeout, and wherein the request comprises data indicating a timeout value for the timer.
3. A front end logic instance according to claim 1, wherein the front end logic instance is implemented on a virtual machine.
4. A front end logic instance according to claim 1, wherein the network function is a 3GPP network function.
5. A front end logic instance according to claim 4, wherein the 3GPP network function is one of: a Proxy Call Session Control Function (P-CSCF), a Serving CSCF (S-CSCF), an Interrogating CSCF (I-CSCF), a Media Gateway Control Function (MGCF), a Serving General Packet Radio Service Support Node (SGSN), a Mobility Management Entity (MME), and a Mobile Switching Center (MSC) server.
6. A front end logic instance according to claim 1, wherein the request is transmitted using one of: a simple object access protocol (SOAP); and a lightweight directory access protocol (LDAP).
7. A front end logic instance according to claim 1, wherein the request relates to a data object stored within the backend database, and wherein the timer event comprises a time for which the data object should live.
8. A front end logic instance according to claim 1, wherein the instructions, when executed by the processor, further cause the front end logic instance to perform an action associated with the data object following receipt of the notification that the timer event has occurred.
9. A method for operating a logic instance of a network function in a stateless architecture of a telecommunications network, the method comprising: performing, by a logic performer, network function logic to carry out at least part of a network function of the telecommunications network, the logic performer controlling a transmitter and receiver for transmission and reception of data with a backend database during performance of the network function logic; controlling, by a timer subscriber, the transmitter to transmit a request to the backend database to be notified about a timer event relating to a timer run on the backend database, the request comprising data indicating the timer event; and receiving, by the receiver, a notification that the timer event has occurred.
10. A method according to claim 9, wherein the timer event comprises a timer timeout, and wherein the request comprises data indicating a timeout value for the timer.
11. A method according to claim 9, wherein the logic instance is implemented on a virtual machine.
12. A method according to claim 9, wherein the network function is a 3GPP network function.
13. A method according to claim 12, wherein the 3GPP network function is one of: a Proxy Call Session Control Function (P-CSCF), a Serving CSCF (S-CSCF), an Interrogating CSCF (I-CSCF), a Media Gateway Control Function (MGCF), a Serving General Packet Radio Service Support Node (SGSN), a Mobility Management Entity (MME), and a Mobile Switching Center (MSC) server.
14. A method according to claim 9, wherein the request is transmitted using one of: a simple object access protocol (SOAP); and a lightweight directory access protocol (LDAP).
15. A method according to claim 9, wherein the request relates to a data object stored within the backend database, and wherein the timer event comprises a time for which the data object should live.
16. A method according to claim 15, wherein the logic performer performs an action associated with the data object following receipt of the notification that the timer event has occurred.
17. A non-transitory computer readable storage medium containing instructions which, when executed on at least one processor, cause a logic instance of a network function in a stateless architecture of a telecom network to perform operations comprising: performing, by a logic performer, network function logic to carry out at least part of a network function of a telecommunications network, the logic performer controlling a transmitter and receiver for transmission and reception of data with a backend database during performance of the network function logic; controlling, by a timer subscriber, the transmitter to transmit a request to the backend database to be notified about a timer event relating to a timer run on the backend database, the request comprising data indicating the timer event; and receiving, by the receiver, a notification that the timer event has occurred.
18. (canceled)
19. A backend database for use in a stateless architecture of a telecommunications network, the backend database comprising: a receiver configured to receive a request from a front end logic instance of a network function in the telecommunications network to be notified about a timer event relating to a timer, the request comprising data indicating the timer event; a processor; and a memory containing in which, when executed by the processor, cause the backend database to: run the timer and determine whether the timer event has occurred; and based on the determination of whether the timer event has occurred, control a transmitter to transmit a notification to the front end logic instance.
20. A backend database according to claim 19, wherein the timer event comprises a timer timeout, and wherein the request comprises data indicating a timeout value for the timer.
21. A backend database according to claim 19, wherein the request is transmitted using one of: a simple object access protocol (SOAP); and a lightweight directory access protocol (LDAP).
22. A backend database according to claim 19, wherein the request relates to a data object stored within the backend database, and wherein the timer event comprises a time for which the data object should live.
23. A backend database according to claim 22, wherein the instructions which, when executed by the processor, further cause the backend database to delete the data object if it is determined that the timer event has occurred.
24. A backend database according to claim 23, wherein the instructions which, when executed by the processor, further cause the backend database to wait for a period of time before deleting the data object.
25. A method for operating a backend database for use in a stateless architecture of a telecommunications network, the method comprising: receiving, by a receiver, a request from a front end logic instance of a network function in the telecommunications network to be notified about a timer event relating to a timer, the request comprising data indicating the timer event; running, by a timer manager, the timer and determining whether the timer event has occurred; and controlling a transmitter, by a timeout notifier, based on the determination of whether the timer event has occurred, to transmit a notification to the front end logic instance.
26. A method according to claim 25, wherein the timer event comprises a timer timeout, and wherein the request comprises data indicating a timeout value for the timer.
27. A method according to claim 25, wherein the request is transmitted using one of: a simple object access protocol (SOAP); and a lightweight directory access protocol (LDAP).
28. A method according to claim 5, wherein the request relates to a data object stored within the backend database, and wherein the timer event comprises a time for which the data object should live.
29. A method according to claim 28, further comprising a garbage collector deleting the data object if it is determined that the timer event has occurred.
30. A method according to claim 29, wherein the garbage collector waits for a period of time before deleting the data object.
31. A non-transitory computer readable storage medium containing instructions which, when executed on at least one processor, cause a backend database for use in a stateless architecture of a telecommunication network to perform operations comprising: receiving, by a receiver, a request from a front end logic instance of a network function in the telecommunications network to be notified about a timer event relating a timer, the request comprising data indicating the timer event; running, by a timer manager, the timer and determining whether the timer event has occurred; and controlling a transmitter, by a timeout notifier, based on the determination of whether the timer event has occurred, to transmit a notification to the front end logic instance.
32. (canceled)
Description
BRIEF DESCRIPTION OF DRAWINGS
[0043] Exemplary embodiments of the invention are disclosed herein with reference to the accompanying drawings, in which:
[0044]
[0045]
[0046]
[0047]
DETAILED DESCRIPTION
[0048] In exemplary methods and apparatus, data objects (states) in a backend database of a network function will be associated with a timer value, which may be called a “time to live” (T2L) value. The T2L value may determine how long a data object will live for, that is, it may set a time at which the data object will be deleted. For critical timers, the front end logic may subscribe to the expiry of a T2L timer for a data object. At expiry of the T2L timer, the backend database may inform the front end logic, for example, by informing any of the VMs that hold the front end logic (i.e. any instance of the logic). This allows the execution of the front end logic to be done by any of the logic instances (VMs) with consistent and reliable timer supervision maintained by the backend database.
[0049] A subscription by a front end logic to timeout of a timer value could be implemented in a similar way to HSS front ends subscribing to changes in database objects in the HSS backend and being informed accordingly, as described in 3GPP TS 23.335.
[0050] A back end database may also use the T2L timer associated with data objects to clean up the data stored in the database. The T2L timer may therefore serve the network function to provide timer support to a front end logic in a stateless architecture and may also serve the backend database to enable deletion of expired data objects (garbage collection).
[0051] In case the action of a time out is not critical, the logic may not need to be subscribed to T2L timeout, but still the database may still use the T2L to do garbage collection.
[0052]
[0053] It is noted that the term “data communication”, unless otherwise stated, encompasses any method and associated apparatus for communicating data, for example optical and electrical methods. Data communication may be wired or wireless or a combination of both. Therefore, data communication may be, for example, a network communication over a wired connection or a network communication of over a radio frequency connection, or both.
[0054]
[0055] The Logic instance 200 further comprises a memory 206 and a processor 208. The memory 206 may comprise a non-volatile memory and/or a volatile memory. The memory 206 may have a computer program 210 stored therein. The computer program 210 may be configured to undertake the methods disclosed herein. The computer program 210 may be loaded in the memory 206 from a non-transitory computer readable medium 212, on which the computer program is stored. The processor 208 is configured to undertake at least the functions of a logic performer 214 and a timer subscriber 216, as set out below.
[0056] The memory 206 and processor 208 may be virtual resources of physical resources of a VM, present on a hypervisor.
[0057] Each of the transmitter 202 and receiver 204, memory 206, processor 208, logic performer 214 and timer subscriber 216, is in data communication with the other features 202, 204, 206, 208, 210, 214, 216 of the Logic instance 200. The Logic instance 200 can be implemented as a combination of computer hardware and software. In particular, the logic performer 214 and the timer subscriber 216 may be implemented as software configured to run on the processor 208. The memory 206 stores the various programs/executable files that are implemented by a processor 208, and also provides a storage unit for any required data. The programs/executable files stored in the memory 206, and implemented by the processor 208, can include the logic performer 214 and the timer subscriber 216, but are not limited to such.
[0058]
[0059] The database 300 further comprises a memory 306 and a processor 308. The memory 306 may comprise a non-volatile memory and/or a volatile memory. The memory 306 may have a computer program 310 stored therein. The computer program 310 may be configured to undertake the methods disclosed herein. The computer program 310 may be loaded in the memory 306 from a non-transitory computer readable medium 312, on which the computer program is stored. The processor 308 is configured to undertake at least the functions of timer manager 314, a timeout notifier 316 and a garbage collector 318, as set out below.
[0060] Each of the transmitter 302 and receiver 304, memory 306, processor 308, timer manager 314, timeout notifier 316 and garbage collector 318, is in data communication with the other features 302, 304, 306, 308, 310, 314, 316, 318 of the database 300. The database 300 can be implemented as a combination of computer hardware and software. In particular, the timer manager 314, the timeout notifier 316 and the garbage collector 318 may be implemented as software configured to run on the processor 308. The memory 306 stores the various programs/executable files that are implemented by a processor 308, and also provides a storage unit for any required data. The programs/executable files stored in the memory 306, and implemented by the processor 308, can include the timer manager 314, the timeout notifier 316 and the garbage collector 318, but are not limited to such.
[0061]
[0072] To exemplify how the exemplary methods and apparatus may be implemented and what protocols may be used, 3GPP TS29.335 may be relied upon. Exemplary methods and apparatus may use methods similar to the “subscribe and notification” methods described in 3GPP TS29.335, which uses Simple Object Access Protocol (SOAP). It is noted that this is one exemplary method, but others may be used. For example, the T2L timeout value (or other timer event value) could be part of the actual data model specification, where data objects during specification time get a T2L value. The data model specification may organise data elements and standardise how data elements relate to one another. A data model specification explicitly determines the structure of data. Data model specifications may be specified in a data modelling notation e.g. in a XML schema. In alternative exemplary methods and apparatus, the T2L timeout value (or other timer event value) can be a known element within a data object. When storing the information, using some sort of protocol it could have been specified that a certain protocol element or message (message containing several elements) has a T2L value. The element(s) is stored in the database. The protocols used for communication between the front end logic instance (102a-f) and the backend database 106 do not have to be SOAP and/or lightweight directory access protocol (LDAP) as in 29.335, but could be other protocols and associated APIs. These may be Web services, e.g. REST (API RESTful), Diameter, NetConf or FTP.
[0073] The following are XML schema showing an exemplary implementation of the methods and apparatus disclosed.
[0074] XML schema for subscription to a timer:
TABLE-US-00001 xs:element name=″subscription″> <xs:complexType> <xs:sequence> <xs:element name=″frontEndID″ type=″xs:string″/> <xs:element name=″serviceName″ type=″xs:string″ minOccurs=″0″/> <xs:element name=″originalEntity″ type=″xs:string″ minOccurs=″0″/> <xs:element ref=″requestedData″ maxOccurs=″unbounded″/> </xs:sequence> <xs:attribute name=″expiryTime″ type=″xs:dateTime″ use=″optional″/> <xs:attribute name=″TimeToLive″ type=″xs:Time″ use=″optional″/> <xs:attribute name=″typeOfSubscription″ type=″typeOfSubscriptionType″/> <xs:attribute name=″typeOfNotification″ type=″typeOfNotificationType″/> </xs:complexType> </xs:element>
[0075] It is noted that the code <xs:attribute name=“TimeToLive” type=“xs:Time” use=“optional”/> specifies subscription to the T2L timer and may be transmitted by the timer subscriber 216. The “TimeToLive” attribute may be interpreted by the timer manager 314 of the backend database 106 as how long the data object referred to can live. This sets a timeout value in the backend database 106. The timer manager 314 increments the T2L timer until it reaches the timeout value and the timeout notifier 316 controls the transmitter 302 of the backend database 106 to transmit a notification to the logic instance 102a-f.
[0076] XML schema for notification of a timer event to a logic instance:
TABLE-US-00002 <xs:simpleType name=″operationType″> <xs:restriction base=″xs:string″> <xs:enumeration value=″add″/> <xs:enumeration value=″modify″/> <xs:enumeration value=″delete″/> <xs:enumeration value=″timeout″/> <xs:enumeration value=″none″/> </xs:restriction> </xs:simpleType>
[0077] It is noted that the code <xs:enumeration value=“timeout”/> specifies that a notification should be sent when the timeout value of the timer is reached. When the logic instance 102a-f receives a notification from the backend database 106 with notification type “timeout” the logic performer 214 of the logic instance 102a-f will undertake the function it needs to do due to timeout of the timer.
[0078] The database 106 that sent the notification can after some time allowing the logic to act first, delete the data object that the timer referred to. That is, the request transmitted to the backend database 106 may associate the timer with a data object stored on the database 106. After the timer event has occurred, the data object may no longer be needed and so the garbage collector 318 of the database 106 may delete the object from the database 106. The garbage collector 318 may be configured to wait for a period of time before deleting the data object.
[0079] A computer program may be configured to provide any of the above described methods. The computer program may be provided on a computer readable medium. The computer program may be a computer program product. The product may comprise a non-transitory computer usable storage medium. The computer program product may have computer-readable program code embodied in the medium configured to perform the method. The computer program product may be configured to cause at least one processor to perform some or all of the method.
[0080] Various methods and apparatus are described herein with reference to block diagrams or flowchart illustrations of computer-implemented methods, apparatus (systems and/or devices) and/or computer program products. It is understood that a block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by computer program instructions that are performed by one or more computer circuits. These computer program instructions may be provided to a processor circuit of a general purpose computer circuit, special purpose computer circuit, and/or other programmable data processing circuit to produce a machine, such that the instructions, which execute via the processor of the computer and/or other programmable data processing apparatus, transform and control transistors, values stored in memory locations, and other hardware components within such circuitry to implement the functions/acts specified in the block diagrams and/or flowchart block or blocks, and thereby create means (functionality) and/or structure for implementing the functions/acts specified in the block diagrams and/or flowchart block(s).
[0081] Computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the functions/acts specified in the block diagrams and/or flowchart block or blocks.
[0082] A tangible, non-transitory computer-readable medium may include an electronic, magnetic, optical, electromagnetic, or semiconductor data storage system, apparatus, or device. More specific examples of the computer-readable medium would include the following: a portable computer diskette, a random access memory (RAM) circuit, a read-only memory (ROM) circuit, an erasable programmable read-only memory (EPROM or Flash memory) circuit, a portable compact disc read-only memory (CD-ROM), and a portable digital video disc read-only memory (DVD/Blu-ray).
[0083] The computer program instructions may also be loaded onto a computer and/or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer and/or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the block diagrams and/or flowchart block or blocks.
[0084] Accordingly, the invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.) that runs on a processor, which may collectively be referred to as “circuitry,” “a module” or variants thereof.
[0085] It should also be noted that in some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Moreover, the functionality of a given block of the flowcharts and/or block diagrams may be separated into multiple blocks and/or the functionality of two or more blocks of the flowcharts and/or block diagrams may be at least partially integrated. Finally, other blocks may be added/inserted between the blocks that are illustrated.
[0086] The skilled person will be able to envisage other embodiments without departing from the scope of the appended claims.