IP Library Granted Patent US 9,459,941
Granted Patent B2
US 9,459,941 · App. 13/383,494 · Granted Oct 4, 2016

Apparatus and method for synchronizing the processing of events associated with application sessions in a telecommunications network

Inventor: Frederik Hugo Zwaal (Breda, NL)
Assignee: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
G06F9/546G06F9/5027G06F9/52G06F9/4812G06F9/526G06F9/54G06F9/542G06F2209/5018
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,459,941
App. No.
13/383,494
Granted
Oct 4, 2016
Kind
B2
Abstract

A processing platform, for example a Java Enterprise Edition (JEE) platform comprises a JEE cluster ( 1 ) having a plurality of processors ( 3 ), which include a resource adapter ( 11 ) for handling events associated with one or more application sessions Si to Sn. Each application session Si to Sn comprises a session state ( 15 ) and an event queue ( 17 ), the event queue ( 17 ) containing a list of events to be executed for a particular one of the sessions S 1 to S n . A thread pool ( 19 ) comprises one or more processing threads t 1 to t N for enabling the processor ( 3 ) to perform multiple tasks in parallel. The thread pool ( 19 ) comprises a task queue ( 21 ) containing the tasks to be executed by the processing threads t 1 to t N . The resource adapter ( 11 ) comprises a synchronizing unit ( 23 ) for controlling how the plurality of threads t 1 to t N from the thread pool handle the events in the plurality of application sessions S 1 to S n . In particular, the synchronizing unit ( 23 ) is configured such that only one event queued in an event queue ( 17 ) has a task scheduled thereto in the task queue ( 21 ), thereby preventing more than one event from a particular event queue of an application session being executed in parallel.

Claims (40)

1. A method of synchronising the processing of events associated with application sessions in a telecommunications processing platform, the telecommunications processing platform having a plurality of processing threads for handling multiple tasks in parallel, the tasks being stored in a task queue, the method comprising:

storing an inserted event in an event queue associated with a particular application session;

assigning a task to only one event in said event queue after determining that the inserted event is a first event in the event queue, wherein said storing and said determining comprise indivisible actions; and

scheduling the task by storing it in the task queue.

2. The method as claimed in claim 1 further comprising:

removing a processed event from the event queue associated with the particular application session;

determining if the event queue is empty and, if not, assigning another task to one other event in the event queue.

3. The method as claimed in claim 2 wherein assigning the another task to the one other event comprises assigning the another task to the one other event when the one other event comprises the first event in the event queue.

4. The method as claimed in claim 2 wherein removing the processed event comprises an indivisible action executed without influence from any other processing threads, and wherein determining if the event queue is empty comprises an indivisible action executed without influence from any other processing threads.

5. The method as claimed in claim 4 further comprising using a lock to perform the indivisible actions.

6. The method as claimed in claim 4 further comprising using an atomic counter to perform the indivisible actions.

7. The method as claimed in claim 6 further comprising decrementing a count value of the atomic counter when removing the processed event from the event queue, the count value indicating whether the event queue is empty or whether the processed event is the first event in the event queue.

8. The method as claimed in claim 1 wherein storing the inserted event in the event queue and determining that the inserted event is the first event in the event queue comprise indivisible actions executed without influence from any other processing threads.

9. The method as claimed in claim 8 further comprising using a lock to perform the indivisible actions.

10. The method as claimed in claim 8 further comprising using an atomic counter to perform the indivisible actions.

11. The method as claimed in claim 10 further comprising incrementing a count value of the atomic counter when storing the inserted event in the event queue, the count value indicating whether the event queue is empty or whether the inserted event is the first event in the event queue.

12. The method as claimed in claim 1 wherein the telecommunications processing platform comprises a Java Enterprise Edition (JEE) processing platform.

13. A resource adapter for use in a telecommunications processing platform having a plurality of processing threads for processing multiple tasks in parallel, the tasks being stored in a task queue, the resource adapter disposed in a processor configured to include:

one or more event queues, each event queue associated with an application session and configured to store an event associated with a corresponding application session;

a synchronising unit configured to synchronise the processing of events in an event queue, the synchronising unit being configured to:

assign a task to only one event in an event queue after determining that the event comprises a first event in the event queue, wherein said storing and said determining comprise indivisible actions; and

schedule the task by storing it in the task queue.

14. The resource adapter as claimed in claim 13 wherein the synchronising unit is further configured to:

remove a processed event from the event queue associated with a particular application session;

determine if the event queue is empty and, if not, assign a task to one other event in the event queue.

15. The resource adapter as claimed in claim 14 wherein the one other event to which the task is assigned comprises the first event in the event queue.

16. The resource adapter as claimed in claim 13 further comprising an atomic counter, the atomic counter having a count value for indicating whether a corresponding event queue is empty.

17. The resource adapter as claimed in claim 16 wherein the synchronising unit is configured to increment the count value of the atomic counter when storing an event in the event queue.

18. The resource adapter as claimed in claim 16 wherein the synchronising unit is configured to decrement the count value of the atomic counter when removing an event from the event queue.

19. The resource adapter as claimed in claim 13 wherein the event queue comprises a first-in-first-out queue.

20. The resource adapter as claimed in claim 13 wherein the telecommunications processing platform comprises a Java Enterprise Edition (JEE) processing platform.

21. A Java Enterprise Edition (JEE) cluster comprising a resource adapter disposed in a processor for use in a telecommunications processing platform having a plurality of processing threads for processing multiple tasks in parallel, the tasks being stored in a task queue, the processor comprising:

one or more event queues, each event queue associated with an application session, and configured to store an event associated with a corresponding application session;

a synchronising unit configured to synchronise the processing of events in an event queue, the synchronising unit being configured to:

assign a task to only one event in an event queue after determining that the event comprises a first event in the event queue, wherein said storing and said determining comprise indivisible actions; and

schedule the task by storing it in the task queue.

22. A Java Enterprise Edition (JEE) cluster configured to perform a method of synchronising the processing of events associated with application sessions in a telecommunications processing platform, the telecommunications processing platform having a plurality of processing threads for handling multiple tasks in parallel, the tasks being stored in a task queue, the method comprising:

storing an inserted event in an event queue associated with a particular application session;

assigning a task to only one event in said event queue after determining that the inserted event is a first event in the event queue, wherein said storing and said determining comprise indivisible actions; and

scheduling the task by storing it in the task queue.

Assignments (2)
CHANGE OF NAME Recorded Aug 3, 2016
From: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 039551/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2012
From: ZWAAL, FREDERIK HUGO
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 027638/0738 →
Continuity (1)
Related Publication 20120284725A1 · Nov 8, 2012