IP Library Granted Patent US 7,716,353
Granted Patent B2
US 7,716,353 · App. 11/306,290 · Granted May 11, 2010

Web services availability cache

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 7,716,353
App. No.
11/306,290
Granted
May 11, 2010
Kind
B2
Abstract

A Web Services availability cache is part of a computer system, such as an enterprise system of a business or organization. The availability cache is populated with information from Web Services communicatively connected to the computer system by a network connection. In one embodiment, the availability cache is populated based on each request handled by a server process associated with the availability cache. A server receives a request from a client having an application dependent upon information from the Web Service. The server sends the request to the Web Service and stores returned information in the availability cache. Also, the server sends the returned information to the client, which initiated to request. Once the cache is populated, the server handles subsequent requests for information from the client by using the Web Service if it is available or by using the availability cache if the Web Service is not available.

Claims (64)

1. A Web Services availability method, comprising:

passively populating an availability cache in a computer system with discrete business objects from a Web Service communicatively connectable to the computer system via a network by storing business objects in the availability cache received in response to client applications in the computer system making client-based requests to the Web Service, the business objects being directly usable by the client applications;

actively populating the availability cache with business objects from the Web Service by directly requesting business objects from the Web Service with an automated controller associated with the availability cache, wherein directly requesting business objects from the Web Service comprises:

independently sending controller-based requests with the automated controller to the Web Service independent of any client-based requests from the client applications, the controller-based requests including one or more periodic requests for business objects issued from the automated controller directly to the Web Service,

receiving controller-based responses at the automated controller from the Web Service, at least some of the controller-based responses being in response to the one or more periodic requests, and

storing business objects from the controller-based responses in the availability cache with the automated controller;

routing a new client-based request from one of the client applications in the computer system to the Web Service; and

responding to the new client-based request with one of the stored business objects from the availability cache if the Web Service fails to respond to the new client-based request, otherwise responding to the new client-based request with a new business object received from the Web Service in response to the new client-based request.

2. The method of claim 1 , wherein the act of responding comprises replacing the stored business object in the availability cache related to the new client-based request with the new business object received from the Web Service in response to the new client-based request.

3. The method of claim 1 , wherein the act of responding further comprises identifying the stored business object returned to the client application from the availability cache as coming from the availability cache.

4. The method of claim 1 , wherein the act of responding comprises determining that the Web Service is unavailable to respond to the new client-based request from the client application.

5. The method of claim 4 , wherein the act of determining that the Web Service is unavailable comprises determining that more than a specified time interval has elapsed since the act of routing the new client-based request from the client application to the Web Service.

6. A computer system, comprising:

one or more client applications executing on a client computer system; and

a server application executing on a server computer system communicatively coupled to the client computer system and to a Web Service, the server application configured to

store discrete business objects directly useable by the client application in an availability cache resulting from the one or more client applications making client-based requests to the Web Service to passively populate the availability cache with business objects from the Web Service;

an automated controller executing on the server computer system, the automated controller associated with the availability cache and directly requesting business objects from the Web Service to actively populate the availability cache with business objects from the Web Service, wherein to directly request business objects from the Web Service, the automated controller is configured to:

independently send controller-based requests with the automated controller to the Web Service independent of any client-based requests from the client applications, the controller-based requests including one or more periodic requests for business objects issued from the automated controller directly to the Web Service,

receive controller-based responses at the automated controller from the Web Service, at least some of the controller based-responses being in response to the one or more periodic requests, and

store business objects from the controller-based responses in the availability cache with the automated controller;

wherein the server application is configured to

route a new client-based request from one of the client applications to the Web Service, and

respond to the new client-based request with one of the stored business objects from the availability cache if the Web Service fails to respond to the routed new client-based request, otherwise respond to the client application request with a new business object received from the Web Service in response to the routed new client-based request.

7. The computer system of claim 6 , wherein the client computer system comprises a first computer system, the Web Service is provided by a second computer system, and the server computer system comprises a third computer system.

8. The computer system of claim 6 , wherein the client computer system and the server computer system comprise a first computer system and the Web Service is provided by a second computer system.

9. The computer system of claim 6 , wherein the server computer system is communicatively coupled to the Web Service through one or more computer networks.

10. The computer system of claim 6 , wherein to respond, the server application is configured to replace the stored business object in the availability cache related to the new client-based request with the new business object received from the Web Service in response to the new client-based request.

11. The computer system of claim 6 , wherein to respond, the server application is further configured to identify the stored business object returned from the availability cache as coming from the availability cache.

12. The computer system of claim 6 , wherein to respond, the server application is configured to determine that the Web Service is unavailable to respond to the new client-based request from the client application.

13. The computer system of claim 12 , wherein to determine that the Web Service is unavailable, the server application is configured to determine that more than a specified time interval has elapsed since routing the new client-based request from the client application to the Web Service.

14. A Web Services availability method, comprising:

receiving a plurality of client-based requests for discrete business objects from one or more client applications, the business objects being directly usable by the one or more client applications, the client-based requests directed to a Web Service;

routing the client-based requests for business objects to the Web Service;

receiving business objects from the Web Service in response to at least some of the routed client-based requests;

passively populating an availability cache with the business objects received from the Web Service in response to the routed client-based requests;

actively populating the availability cache with business objects by directly requesting business objects from the Web Service with an automated controller associated with the availability cache, wherein directly requesting business objects from the Web Service comprises:

independently sending controller-based requests with the automated controller to the Web Service independent of any of the client-based requests from client applications, the controller-based requests including one or more periodic requests for business objects issued from the automated controller directly to the Web Service,

receiving controller-based responses at the automated controller from the Web Service, at least some of the controller based-responses being in response to the one or more periodic requests, and

storing business objects from the controller-based responses in the availability cache with the automated controller; and

returning, to the client application, one of the stored business objects from the availability cache in response to a specific client-based request only if a new business object from the Web Service is not received in response to the specific client-based request.

15. The method of claim 14 , wherein the business objects received from the one or more periodic requests replace the business objects already stored in the availability cache.

16. The method of claim 14 , wherein the act of returning further comprises identifying the stored business objects returned from the availability cache as coming from the availability cache.

17. The method of claim 14 , wherein the act of returning comprises determining that the Web Service is unavailable to respond to the specific request from the client application.

18. The method of claim 17 , wherein the act of determining that the Web Service is unavailable comprises determining that more than a specified time interval has elapsed since the act of routing the request from the client application to the Web Service.

19. A Web Service method, comprising:

passively populating an availability cache with discrete business objects from a Web Service by storing business objects in the availability cache resulting from one or more client applications making client-based requests to the Web Service, the business object being directly usable by the one or more client applications;

actively populating the availability cache with business objects by directly requesting business objects from the Web Service with an automated controller associated with the availability cache, wherein directly requesting business objects from the Web Service comprises:

independently sending controller-based requests with the automated controller to the Web Service independent of any client-based requests from client applications, the controller-based requests including one or more periodic requests for business objects issued from the automated controller directly to the Web Service,

receiving controller-based responses at the automated controller from the Web Service, at least some of the controller based-responses being in response to the one or more periodic requests, and

storing business objects from the controller-based responses in the availability cache with the automated controller;

receiving a plurality of new client-based requests for business objects from one or more client applications, the new client-based requests directed to the Web Service;

routing the new client-based requests for business objects to the Web Service;

responding to specific client-based requests for business objects from the one or more client applications by returning the stored business objects from the availability cache to the one or more client applications if the Web Service fails to respond to the specific client-based requests, otherwise returning new business objects received from the Web Service in response to the specific client-based requests.

20. The method of claim 19 , wherein the act of responding comprises storing in the availability cache the new business objects received from the Web Service in response to the specific client-based requests.

21. The method of claim 19 , wherein the business objects received from the one or more periodic requests replace the business objects already stored in the availability cache.

22. The method of claim 19 , wherein the act of responding further comprises identifying the stored business objects returned from the availability cache as coming from the availability cache.

23. The method of claim 19 , wherein the act of responding comprises determining that the Web Service is unavailable to respond to the specific requests from the client applications.

24. The method of claim 23 , wherein the act of determining that the Web Service is unavailable comprises determining that more than a specified time interval has elapsed since the act of routing the specific request to the Web Service.

25. The method of claim 1 , wherein the business objects received from the one or more periodic requests replace the business objects already stored in the availability cache.

26. The method of claim 1 , wherein the business objects received from the one or more periodic requests are stored as part of a history of the business objects stored in the availability cache.

27. The system of claim 6 , wherein the business objects received from the one or more periodic requests replace the business objects already stored in the availability cache.

28. The system of claim 6 , wherein the business objects received from the one or more periodic requests are stored as part of a history of the business objects stored in the availability cache.

29. The method of claim 14 , wherein the business objects received from the one or more periodic requests are stored as part of a history of the business objects stored in the availability cache.

30. The method of claim 19 , wherein the business objects received from the one or more periodic requests are stored as part of a history of the business objects stored in the availability cache.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →