IP Library Granted Patent US 7,640,348
Granted Patent B2
US 7,640,348 · App. 10/252,871 · Granted Dec 29, 2009

System and method of managing access to web services

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,640,348
App. No.
10/252,871
Granted
Dec 29, 2009
Kind
B2
Abstract

A gateway module for managing functionality for one or more web services is provided. The web services gateway module comprises a client application interface unit for receiving communication from a client application over a standard protocol, a communication processor for processing the communication for a web service, and a web services interface unit for delegating the processed communication to the web service.

Claims (91)

1. A gateway module stored in a computer readable storage medium for managing functionality for a plurality of web services, the gateway module comprising:

a client application interface unit for receiving a communication from a client application over a standard protocol, the communication including a service load request or a contract request, wherein:

the service request is a request for a web service of the plurality of web services, the service request including authorization information; and

the contract request is a request for requesting a web service application programming interface (API) contract of the web service;

a web services interface unit for sending a web service communication to the web service and receiving a corresponding response from the web service, the web service communication comprising a web service request or the contract request wherein:

web service request is a request for processing by the web service; and

the corresponding response from the web service comprising a web service response or a contract response wherein:

the web service response is based on the processing of the web service request; and

the contract response describing the web service API contract of the web service;

a communication processor for processing the communication received by the client application interface unit and the web service response received by the web services interface unit, the communication processor having:

a method call processor for modifying the received service request by removing at least the authorization information to create the web service request sent to the web service; and

a response processor for modifying the web service API contract of the contract response received from the web service to create a gateway API contract for use by the client application in accessing the web service through the gateway; and

an authorization module for authorizing the client application to access the web service using at least the authorization information of the service request, the authorization being transparent to the web service.

2. The gateway module as claimed in claim 1 , further comprising a centralized repository for storing information relating to the client application and the plurality of web services.

3. The gateway module as claimed in claim 1 , wherein the method call processor modifies a simple object access protocol (SOAP) method call received by the client application interface unit.

4. The gateway module as claimed in claim 1 , wherein the client application interface unit sends extensible markup language (XML)/simple object access protocol (SOAP) communication to the client application; and

the web services interface unit receives XML/SOAP communication from the web service.

5. The gateway module as claimed in claim 1 , wherein the response processor includes a simple object access protocol (SOAP) response processor for modifying responses to simple object access protocol method calls.

6. The gateway module as claimed in claim 1 , wherein the web service API contract is described using web service description language (WSDL).

7. The gateway module as claimed in claim 1 , further comprising an authentication module for authenticating the client application, the authentication being transparent to the web service.

8. The gateway module as claimed in claim 1 , further comprising a login services module comprising:

the authorization module; and

an authentication module for checking the authenticity of the client application, the authentication being transparent to the web service.

9. The gateway module as claimed in claim 8 , wherein the login services module further comprises:

an authentication identifier provider for providing the client application a pool of authentication identifiers for use in subsequent communication with the web service; and

an authentication identifier validator for checking the validity of an authentication identifier from a pool of authentication identifiers sent with the subsequent communication.

10. The gateway module as claimed in claim 9 , wherein each authentication identifier is limited to be used in one communication.

11. The gateway module as claimed in claim 9 , wherein the pool of authentication identifiers are provided to the client application through a secured channel.

12. The gateway module as claimed in claim 9 , wherein each communication from the client application to the web service containing one of the authentication identifiers is made through an unsecured channel.

13. The gateway module as claimed in claim 1 , further comprising a metering module for metering web service usage of the client application, the metering being transparent to the web service.

14. The gateway module as claimed in claim 1 , wherein the standard protocol for messaging between the client application and the web service is simple object access protocol (SOAP).

15. The gateway module as claimed in claim 1 , wherein the client application is another web service.

16. The gateway module as claimed in claim 1 , further comprising a billing unit for billing the client application, wherein the billing unit bills a client application for the use of a package of bundles assigned to the client application, the bundles comprising one or more methods from a plurality of web services.

17. The gateway module as claimed in claim 1 , further comprising a logging and metering module for logging and metering the usage of the gateway module by the client application.

18. The gateway module as claimed in claim 1 , further comprising:

a repository for storing information relating to methods of a plurality of web services organized into bundles, each bundle having one or more methods from one or more web services; and

the authorization module for authorizing a client application to access methods in one of the bundles.

19. The gateway module as claimed in claim 18 , wherein at least one bundle has one or more methods from at least two web services.

20. The gateway module as claimed in claim 18 , wherein the bundles are organized into packages.

21. A method for managing functionality for a plurality of web services, the method comprising steps of:

receiving at a gateway a contract request for a web service application programming interface (API) contract of the web service of the plurality of web services; sending the contract request to the web service;

receiving at the gateway a web service API contract response comprising an API contract description of the web service;

generating a gateway API contract based on the received web service API contract description;

sending the gateway API contract for use by a client application in accessing the web service through the gateway;

receiving at the gateway a service request from the client application, the service request for processing by the web service and complying with the gateway API contract and including authorization information;

authorizing the client application for using the web service based on the authorization information;

generating a web service request based on the service request received from the client application by removing at least the authorization information; and

sending the generated web service request to the web service for processing.

22. The method as claimed in claim 21 , further comprising the step of storing information relating to the client application and the web service.

23. The method as claimed in claim 21 , wherein the service request received at the gateway is a simple object access protocol (SOAP) method call.

24. The method as claimed in claim 21 , further comprising steps of:

receiving extensible markup language (XML)/simple object access protocol (SOAP) communication from the web service; and

sending XML/SOAP communication to the client application.

25. The method as claimed in claim 24 , further comprising the step of modifying responses to simple object access protocol (SOAP) method calls.

26. The method as claimed in claim 24 , wherein the step of generating the gateway API contract includes the step of modifying a web service description language contract.

27. The method as claimed in claim 21 , further comprising the step of authenticating the client application, the authentication being transparent to the web service.

28. The method claimed in claim 27 , further comprising the steps of:

providing the client application a pool of authentication identifiers for use in subsequent communication with the web service; and

checking the validity of an authentication identifier from a pool of authentication identifiers sent with the subsequent communication.

29. The method as claimed in claim 28 , further comprising the step of limiting each authentication identifier to be used in only one communication.

30. The method as claimed in claim 28 , wherein the step of providing comprises the step of providing the pool of authentication identifiers to the client application through a secured channel.

31. The method as claimed in claim 28 , further comprising receiving subsequent communication from the client application to the web service containing one of the authentication identifiers through an unsecured channel.

32. The method as claimed in claim 21 , further comprising the step of metering web service usage of the client application, the metering being transparent to the web service.

33. The method as claimed in claim 21 , wherein the communications with the client application and the web service use simple object access protocol (SOAP).

34. The method as claimed in claim 21 , wherein the client application is another web service.

35. The method as claimed in claim 21 , further comprising the step of billing a client application for the use of a package of bundles assigned to the client application, the bundles comprising one or more methods from a plurality of web services.

36. The method as claimed in claim 21 , further comprising the step of logging and metering the usage of the gateway module by the client application.

37. The method as claimed in claim 21 , further comprising the steps of:

storing information relating to methods of a plurality of web services organized into bundles, each bundle having one or more methods from one or more web services; and

authorizing a client application to access methods in one of the bundles.

38. The method as claimed in claim 37 , wherein the step of storing comprises storing at least one bundle having one or more methods from at least two web services.

39. The gateway module as claimed in claim 37 , further comprising the step of organizing the bundles into packages.

40. A computer readable storage media for storing instructions and/or statements for use in the execution in a computer of a method for managing functionality for a plurality of web services, the method comprising steps of:

receiving at a gateway a contract request for a web service application programming interface (API) contract of the web service of the plurality of web services; sending the contract request to the web service;

receiving at the gateway a web service API contract response comprising an API contract description of the web service;

generating a gateway API contract based on the received web service API contract description;

sending the gateway API contract for use by a client application in accessing the web service through the gateway;

receiving at the gateway a service request from the client application, the service request for processing by the web service and complying with the gateway API contract and including authorization information;

authorizing the client application for using the web service based on the authorization information;

generating a web service request based on the service request received from the client application by removing at least the authorization information; and

sending the generated web service request to the web service for processing.

41. A computer program product stored in a computer readable storage medium for use in the execution in a computer of a method for managing functionality for a plurality of web services, the method comprising:

receiving at a gateway a contract request for a web service application programming interface (API) contract of the web service of the plurality of web services;

sending the contract request to the web service;

receiving at the gateway a web service API contract response comprising an API contract description of the web service;

generating a gateway API contract based on the received web service API contract description;

sending the gateway API contract for use by a client application in accessing the web service through the gateway;

receiving at the gateway a service request from the client application, the service request for processing by the web service and complying with the gateway API contract and including authorization information;

authorizing the client application for using the web service based on the authorization information;

generating a web service request based on the service request received from the client application by removing at least the authorization information; and

sending the generated web service request to the web service for processing.

Assignments (18)
TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded May 6, 2026
From: CANTOR FITZGERALD SECURITIES, AS COLLATERAL AGENT
To: CLEARSLIDE INC.; COREL CORPORATION (AS SUCCESSOR IN INTEREST TO CASCADE BIDCO CORP.)
Reel/Frame 075522/0510 →
RELEASE OF SECURITY INTEREST Recorded May 5, 2026
From: CITIBANK, N.A., AS AGENT
To: COREL CORPORATION; CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
Reel/Frame 075559/0953 →
SECURITY INTEREST Recorded Jul 3, 2019
From: CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
To: CITIBANK, N.A.
Reel/Frame 049678/0950 →
SECURITY INTEREST Recorded Jul 3, 2019
From: CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
To: CANTOR FITZGERALD SECURITIES
Reel/Frame 049678/0980 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2019
From: COREL SOFTWARE LLC
To: COREL CORPORATION
Reel/Frame 048067/0586 →
CHANGE OF NAME Recorded Nov 29, 2018
From: 8324450 CANADA INC.
To: COREL SOFTWARE LLC
Reel/Frame 047675/0950 →
ENTITY DOMICILE CHANGE Recorded Dec 17, 2014
From: 8324450 CANADA INC.
To: 8324450 DELAWARE LLC
Reel/Frame 034651/0817 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE, AND REPLACE THE ASSIGNMENT PREVIOUSLY RECORDED ON REEL 030427 FRAME 0331. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT TO 8324450 CANADA INC. Recorded Aug 1, 2013
From: COREL CORPORATION
To: 8324450 CANADA INC.
Reel/Frame 030986/0268 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2013
From: JPMORGAN CHASE BANK, N.A.
To: COREL CORPORATION; COREL INC.; COREL HOLDINGS CORPORATION; WINZIP COMPUTING LP; WINZIP INTERNATIONAL LLC; WINZIP COMPUTING LLC
Reel/Frame 030591/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2013
From: VECTOR CC HOLDINGS, SRL; VECTOR CC HOLDINGS III, SRL; VECTOR CC HOLDINGS IV, SRL
To: 8324450 CANADA INC.
Reel/Frame 030427/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2013
From: COREL CORPORATION
To: VECTOR CC HOLDINGS, SRL; VECTOR CC HOLDINGS III, SRL; VECTOR CC HOLDINGS IV, SRL
Reel/Frame 030427/0331 →
ASSIGNMENT AND ASSUMPTION Recorded Dec 29, 2006
From: MORGAN STANLEY & COMPANY INCORPORATED
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 018688/0422 →
SECURITY AGREEMENT Recorded May 19, 2006
From: COREL CORPORATION; COREL INC.; COREL HOLDINGS CORPORATION; WINZIP COMPUTING LLC; WINZIP INTERNATIONAL LLC; WINZIP COMPUTING LP
To: MORGAN STANLEY & COMPANY INC.
Reel/Frame 017656/0072 →
SECOND LIEN SECURITY AGREEMENT Recorded Aug 2, 2005
From: COREL CORPORATION; COREL US HOLDINGS, LLC
To: CREDIT SUISSE FIRST BOSTON TORONTO BRANON
Reel/Frame 016784/0245 →
SECURITY AGREEMENT Recorded Feb 28, 2005
From: COREL CORPORATION
To: CREDIT SUISSE FIRST BOSTON TORONTO BRANCH
Reel/Frame 016309/0733 →
RELEASE OF SECURITY INTEREST Recorded Feb 17, 2005
From: WELLS FARGO FOOTHILL, INC.
To: COREL INC.; COREL CORPORATION
Reel/Frame 015687/0779 →
SECURITY INTEREST Recorded Jul 22, 2004
From: COREL CORPORATION
To: WELLS FARGO FOOTHILL, INC.
Reel/Frame 015596/0932 →
SECURITY INTEREST Recorded Oct 6, 2003
From: COREL CORPORATION, AN ONTARIO CORPORATION
To: WELLS FARGO FOOTHILL, INC.
Reel/Frame 014560/0455 →