Concurrency reduction through publish-subscribe patterns

US11323534B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11323534-B2
Application numberUS-201715485511-A
CountryUS
Kind codeB2
Filing dateApr 12, 2017
Priority dateApr 12, 2017
Publication dateMay 3, 2022
Grant dateMay 3, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Receiving a plurality of concurrent incoming requests from the plurality of services, with each incoming request and each service subscribing to a topic in a shared message queue. The queue is used for: notifying other subscribers when a request to a back-end service is being made; and/or notifying other subscribers when a response from the back-end service is received.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of reducing concurrency in a system having a plurality of services sending a plurality of concurrent requests to a back-end service, the method comprising the steps of: a service computer subscribing over a network to a thread of a concurrency reduction message service comprising messages regarding data requested from the back-end service, wherein the messages are viewable to each of the plurality of services; the service computer searching the messages in the thread of the concurrency reduction message service to find messages from another service which requested data needed by the service computer from the back-end service; for a non-occurrence of any messages from other services in the thread of the concurrency reduction message service which requested the data needed by the service, the service computer configured to: map a data request to a key; publish a message to the thread of the concurrency reduction message service with the key mapped to the data request, wherein publishing the message notifies each of the plurality of services waiting for a similar data request; add the key mapped to the data request to a local cache of the service; block the thread of the concurrency reduction message service with the published message having the key mapped to the data request; submit the key mapped to the data request to the back-end service; receive a response from the back-end service; publish a message with the response to the data request to the thread of the concurrency reduction message service; remove the key from the local cache of the service; and unblock the thread of the concurrency reduction message service with the published message having the key mapped to the data request; the service computer finds a message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service. 2. The method of claim 1 , wherein when a response is not received from the back-end service within a time period, the service computer configured to notify all blocked threads that a timeout has occurred. 3. The method of claim 2 , further comprising the service computer publishing a new message to the thread notifying other subscribers that another service can make the same request to the back-end service after notifying all blocked threads that timeout occurred. 4. The method of claim 1 , wherein determining the service computer finds the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, the service computer configured to: determine a response exists to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service; determine a response does not exist to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, then waiting for a response to appear in the thread; and determine a response does exist to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, then: determining the key mapped to the data requested has been stored in a local cache of the service; determine the key mapped to the data requested has been stored in a local cache of the service, then notifying the threads mapped to the key waiting for a response from the back-end service with the response to the data request and clearing the key from the local cache; and determine the key mapped to the data requested has not been stored in a local cache of the service, then blocking the thread of the concurrency reduction message service containing the message which requested the data needed by the service computer from other services and storing the key in the local cache of the service computer. 5. A computer program product for reducing concurrency in a system having a plurality of services sending a plurality of concurrent requests to a back-end service, the services each comprising a computer comprising at least one processor, one or more memories, one or more computer readable storage media, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by the computer to perform a method comprising: subscribing, by the service computer, to a thread of a concurrency reduction message service comprising messages regarding data requested from the back-end service, wherein the messages are viewable to each of the plurality of services; searching, by the service computer, the messages in the thread of the concurrency reduction message service to find messages from another service which requested data needed by the service computer from the back-end service; for a non-occurrence of any messages from other services in the thread of the concurrency reduction message service which requested the data needed by the service computer, the service computer configured to: map a data request to a key; publish a message to the thread of the concurrency reduction message service with the key mapped to the data request, wherein publishing the message notifies each of the plurality of services waiting for a similar data request; add the key mapped to the data request to a local cache of the service; block the thread of the concurrency reduction message service with the published message having the key mapped to the data request; submit the key mapped to the data request to the back-end service; receive a response from the back-end service; publish a message with the response to the data request to the thread of the concurrency reduction message service; remove the key from the local cache of the service; and unblock the thread of the concurrency reduction message service with the published message having the key mapped to the data request; and finding, by the service computer, a message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service. 6. The computer program product of claim 5 , wherein when a response is not received from the back-end service within a time period, configured to notify, by the service computer, all blocked threads that a timeout has occurred. 7. The computer program product of claim 6 , further comprising publishing, by the service computer, a new message to the thread notifying other subscribers that another service can make the same request to the back-end service after notifying all blocked threads that timeout has occurred. 8. The computer program product of claim 5 , wherein determining the service computer finds the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, the service computer configured to: determine a response exists to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service; determining a response does not exist to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, then waiting for a response to appear in the thread; and determining a response does exist to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, then the service computer: determining the key mapped to the data requested has been stored in a local cache of the service; determining the

Assignees

Inventors

Classifications

  • Routing a service request depending on the request content or context · CPC title

  • Reducing the amount or size of exchanged application data · CPC title

  • H04L67/562Primary

    Brokering proxy services · CPC title

  • Electricity · mapped topic

  • Electricity · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11323534B2 cover?
Receiving a plurality of concurrent incoming requests from the plurality of services, with each incoming request and each service subscribing to a topic in a shared message queue. The queue is used for: notifying other subscribers when a request to a back-end service is being made; and/or notifying other subscribers when a response from the back-end service is received.
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification H04L67/5651. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).