IP Library Granted Patent US 12,373,251
Granted Patent B2
US 12,373,251 · App. 18/086,514 · Granted Jul 29, 2025

Techniques for handling polling frequency in event delivery network (EDN)

Inventor: Tapan Kanti Saha (Bangalore, IN)
Assignee: Oracle International Corporation
G06F9/4881G06F9/542H04L43/103H04L69/28H04W72/0453
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 12,373,251
App. No.
18/086,514
Granted
Jul 29, 2025
Kind
B2
Abstract

Techniques are described for reducing the polling requests received at the event delivery network (EDN) of the service-oriented architecture system (e.g., a cluster of SOA server instances). An on-demand parallel polling technique may be implemented by doing one or more of categories for events, consumer applications and/or polling threads with different polling time intervals; thread-sharing in a thread pool of a SOA server instance between polling threads and scheduler threads; polling status (e.g., active/inactive) assigned to the SOA server instances, and/or on-demand polling where active SOA server instances may activate inactive SOA server instances on demand.

Claims (86)

1. A method performed by a network device in a service-oriented architecture system, the method comprising:

receiving a plurality of events at an event delivery network of the service-oriented architecture system;

receiving a plurality of requests from a plurality of consumer applications for polling one or more of the plurality of events;

identifying one or more successfully polled events;

identifying a first set of events, among the successfully polled events, that appear at a first frequency;

assigning a first category to the first set of events;

categorizing consumer applications subscribed to the first set of events in the first category associated with a first polling time interval; and

processing a first portion of the plurality of requests from the plurality of consumer applications at the first polling time interval thereby reducing a polling frequency of the event delivery network, wherein the first portion of the plurality of requests are from the consumer applications in the first category,

wherein a service-oriented architecture server instance includes a first set of threads for polling the event delivery network and a second set of threads for scheduling the first set of threads, the method further comprises:

when processing a first polling request:

assigning a first thread to the consumer applications in the first category;

scheduling, using a second thread, the first thread to poll the event delivery network at the first polling time interval, wherein the first thread is a polling thread and the second thread is a scheduling thread during processing of the first polling request;

when processing a second polling request upon completion of the first polling request:

assigning the second thread to the consumer applications in the first category;

scheduling, using a third thread, the second thread to poll the event delivery network at the first polling time interval, wherein the second thread is a polling thread during processing of the second polling request.

2. The method of claim 1 , further comprising:

identifying a second set of events, among the successfully polled events, that appear at a second frequency,

assigning a second category to the second set of events;

categorizing consumer applications subscribed to the second set of events in the second category associated with a second polling time interval different than the first polling time interval; and

processing a second portion of the plurality of requests from the plurality of consumer applications at the second polling time interval, wherein the second portion of the plurality of requests are from the consumer applications in the second category.

3. The method of claim 1 , wherein the plurality of events are categorized into at least two categories of events based on a dynamic scheme such that a first event is categorized in the first category and polled at the first polling time interval during a first polling request and the first event is categorized in a second category and polled at a second polling time interval during a second polling request.

4. The method of claim 3 , wherein a number of categories and events assigned to each category changes based on a number of the plurality of requests for polling one or more of the plurality of events posted to the event delivery network.

5. The method of claim 1 , wherein the plurality of consumer applications are associated with one or more applications on the service-oriented architecture server instance, wherein the service-oriented architecture system includes a plurality of service-oriented architecture server instances that are identical to each other, wherein each service-oriented architecture server instance includes one or more consumer applications.

6. The method of claim 5 , further comprising:

determining that a number of the plurality of requests for polling one or more of the plurality of events posted to the event delivery network is below a predetermined threshold;

assigning an active status to a first set of service-oriented architecture server instances, wherein consumer applications of the first set of service-oriented architecture server instances are allowed to poll the event delivery network at assigned polling time intervals; and

assigning an inactive status to a second set of service-oriented architecture server instances, wherein consumer applications of the second set of service-oriented architecture server instances are prevented from polling the event delivery network.

7. The method of claim 6 , further comprising:

determining that the number of the plurality of requests for polling one or more of the plurality of events posted to the event delivery network matches or surpasses the predetermined threshold;

broadcasting, by the consumer applications of the first set of service-oriented architecture server instances, a message to activate one or more of the consumer applications of the second set of service-oriented architecture server instances;

upon activation, the activated one or more of the consumer applications of the second set of service-oriented architecture server instances poll the event delivery network at assigned polling time intervals;

upon completing one round of polling, the activated one or more of the consumer applications of the second set of service-oriented architecture server instances re-assume an inactive status.

8. The method of claim 1 , wherein allocation of a thread as a polling thread or a scheduling thread is based on a number of the plurality of requests for polling one or more of the plurality of events posted to the event delivery network.

9. The method of claim 1 , wherein the plurality of consumer applications are one or more service-oriented architecture server instances of the service-oriented architecture system.

10. The method of claim 1 , wherein identifying the one or more successfully polled events further comprises:

storing a list of events polled within a predetermined amount of time; and

identifying, on the list of events, the one or more events that were successfully polled.

11. A system comprising:

one or more processors; and

a storage device storing program instructions that, when executed by the one or more processors, cause the one or more processors to:

receive a plurality of events at an event delivery network of a service-oriented architecture system;

receive a plurality of requests from a plurality of consumer applications for polling one or more of the plurality of events;

identify one or more successfully polled events;

identify a first set of events, among the successfully polled events, that appear at a first frequency;

assign a first category to the first set of events;

categorize consumer applications subscribed to the first set of events in the first category associated with a first polling time interval; and

process a first portion of the plurality of requests from the plurality of consumer applications at the first polling time interval thereby reducing a polling frequency of the event delivery network, wherein the first portion of the plurality of requests are from the consumer applications in the first category,

wherein a given service-oriented architecture server instance includes a first set of threads for polling the event delivery network and a second set of threads for scheduling the first set of threads, wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

when processing a first polling request:

assign a first thread to the consumer applications in the first category;

schedule, using a second thread, the first thread to poll the event delivery network at the first polling time interval, wherein the first thread is a polling thread and the second thread is a scheduling thread during processing of the first polling request;

when processing a second polling request upon completion of the first polling request:

assign the second thread to the consumer applications in the first category;

schedule, using a third thread, the second thread to poll the event delivery network at the first polling time interval, wherein the second thread is a polling thread during processing of the second polling request.

12. The system of claim 11 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

identify a second set of events, among the successfully polled events, that appear at a second frequency;

assign a second category to the second set of events;

categorize consumer applications subscribed to the second set of events in the second category associated with a second polling time interval different than the first polling time interval; and

processing a second portion of the plurality of requests from the plurality of consumer applications at the second polling time interval, wherein the second portion of the plurality of requests are from the consumer applications in the second category.

13. The system of claim 11 , wherein the plurality of events are categorized into at least two categories of events based on a dynamic scheme such that a first event is categorized in the first category and polled at the first polling time interval during a first polling request and the first event is categorized in a second category and polled at a second polling time interval during a second polling request.

14. The system of claim 11 , wherein the plurality of consumer applications are associated with one or more applications on a service-oriented architecture server instance, wherein the service-oriented architecture system includes a plurality of service-oriented architecture server instance that are identical to each other, wherein each service-oriented architecture server instance includes one or more consumer applications.

15. The system of claim 14 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

determine that a number of the plurality of requests for polling one or more of the plurality of events posted to the event delivery network is below a predetermined threshold;

assign an active status to a first set of service-oriented architecture server instances, wherein consumer applications of the first set of service-oriented architecture server instances are allowed to poll the event delivery network at assigned polling time intervals; and

assign an inactive status to a second set of service-oriented architecture server instances, wherein consumer applications of the second set of service-oriented architecture server instances are prevented from polling the event delivery network.

16. The system of claim 15 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

determine that the number of the plurality of requests for polling one or more of the plurality of events posted to the event delivery network matches or surpasses the predetermined threshold, wherein:

the consumer applications of the first set of service-oriented architecture server instances broadcast a message to activate one or more of the consumer applications of the second set of service-oriented architecture server instances;

upon activation, the activated one or more of the consumer applications of the second set of service-oriented architecture server instances poll the event delivery network at assigned polling time intervals; and

upon completing one round of polling, the activated one or more of the consumer applications of the second set of service-oriented architecture server instances re-assume an inactive status.

17. The system of claim 11 , wherein allocation of a thread as a polling thread or a scheduling thread is based on a number of the plurality of requests for polling one or more of the plurality of events posted to the event delivery network.

18. A non-transitory computer-readable storage medium storing a plurality of instructions executable by one or more processors, wherein the plurality of instructions when executed by the one or more processors causes the one or more processors to perform processing comprising:

receiving a plurality of events at an event delivery network of a service-oriented architecture system;

receiving a plurality of requests from a plurality of consumer applications for polling one or more of the plurality of events;

identifying one or more successfully polled events;

identifying a first set of events, among the successfully polled events, that appear at a first frequency;

assigning a first category to the first set of events;

categorizing consumer applications subscribed to the first set of events in the first category associated with a first polling time interval; and

processing a first portion of the plurality of requests from the plurality of consumer applications at the first polling time interval thereby reducing a polling frequency of the event delivery network, wherein the first portion of the plurality of requests are from the consumer applications in the first category,

wherein a service-oriented architecture server instance includes a first set of threads for polling the event delivery network and a second set of threads for scheduling the first set of threads, the processing further comprises:

when processing a first polling request:

assigning a first thread to the consumer applications in the first category;

scheduling, using a second thread, the first thread to poll the event delivery network at the first polling time interval, wherein the first thread is a polling thread and the second thread is a scheduling thread during processing of the first polling request;

when processing a second polling request upon completion of the first polling request:

assigning the second thread to the consumer applications in the first category;

scheduling, using a third thread, the second thread to poll the event delivery network at the first polling time interval, wherein the second thread is a polling thread during processing of the second polling request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2022
From: SAHA, TAPAN KANTI
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 062236/0559 →
Continuity (1)
Related Publication 20240211306A1 · Jun 27, 2024
References Cited (19)
US 8150429B1 · Zheng · 2012 [cited by examiner]
US 9632850B1 · Emam · 2017 [cited by examiner]
US 20030042731A1 · Li · 2003 [cited by examiner]
US 20070027987A1 · Tripp · 2007 [cited by examiner]
US 20070294392A1 · Balasubramanian · 2007 [cited by examiner]
US 20080270389A1 · Jones · 2008 [cited by examiner]
US 20110289431A1 · Olumoko · 2011 [cited by examiner]
US 20120131095A1 · Luna · 2012 [cited by examiner]
US 20150081906A1 · Backholm · 2015 [cited by examiner]
US 20160127292A1 · Birger · 2016 [cited by examiner]
US 20220283874A1 · Reyes Lozano · 2022 [cited by examiner]
H'sien J. Wong, The Design of MPI Based Distributed Shared Memory Systems to Support OpenMP on Clusters. (Year: 2007). [cited by examiner]
“Adjusting Polling Bandwidth”, Tivoli Network Manager IP Edition 4.2.0, Jun. 10, 2022, 1 page. [cited by applicant]
“Administering Multiple Pollers”, Tivoli Network Manager IP Edition 4.2.0, Jun. 10, 2022, 1 page. [cited by applicant]
“Multiple Poller Overview”, Tivoli Network Manager IP Edition 4.2.0, Jun. 10, 2022, 2 pages. [cited by applicant]
“Optimize Polling Engines in Your SolarWinds Platform Deployment”, Available Online at: https://documentation.solarwinds.com/en/success_center/orionplatform/content/core-optimization-polling-engines.htm, Accessed from i… [cited by applicant]
“Polling the Network”, Tivoli Network Manager IP Edition 4.2.0, Jun. 10, 2022, 1 page. [cited by applicant]
“Setting Up an Additional Poller”, Tivoli Network Manager IP Edition 4.2.0, Jun. 10, 2022, 3 pages. [cited by applicant]
Appel et al., “Eventlets: Components for the Integration of Event Streams with SOA”, Conference: 5th IEEE International Conference on Service-Oriented Computing and Applications (SOCA), Dec. 2012, 9 pages. [cited by applicant]