IP Library › Granted Patent US 9,729,668
Granted Patent B2
US 9,729,668 · App. 14/560,942 · Granted Aug 8, 2017

Automatic service extensibility

Inventors: Olaf Tennie (Heidelberg, DE); Christoph Scheiber (Reilingen, DE)
Assignee: SAP SE
H04L67/32G06Q10/10H04L67/16
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,729,668
App. No.
14/560,942
Granted
Aug 8, 2017
Kind
B2
Abstract

The disclosure generally describes computer-implemented methods, software, and systems, including a method for automatically extending a service associated with data access. A request is received from a client, the request being for data associated with a first service. The first service is identified by a service identifier included in the request and defining a first behavior associated with the first service and use of the requested data. Using the service identifier, an extension service is identified that is associated with the first service. The identifying occurs automatically based on additional registry entries for the extension service, without modifying original registry entries for the first service, and without modifying a first service implementation associated with the first service. Data responsive to the received request is provided to the client. The data is provided according to a second behavior associated with the extension service.

Claims (104)

1. A method, comprising:

receiving, from a client, a request for data associated with a first service, the first service identified by a service identifier included in the request and defining a first behavior associated with the first service and use of the requested data;

identifying, using the service identifier, an extension service associated with the first service, the identifying occurring automatically based on additional registry entries for the extension service without modifying original registry entries for the first service and without modifying a first service implementation associated with the first service; and

providing, to the client, data responsive to the received request, the data provided according to a second behavior associated with the extension service, wherein a difference between the first behavior and the second behavior includes use of data not available in the other behavior, including one or more of:

a difference between a first data model associated with the first service and a second data model associated with the extension service, including deviating behavior associated with at least one of validation and determination; and

different capabilities between the first service and the extension service regarding read-only versus modifiable data.

2. The method of claim 1 , wherein identifying the extension service includes:

determining, at the gateway and using a service configuration, if the first service is active;

determining, at the gateway and using an authorization configuration, if a user associated with the request is allowed to use the first service;

generating, at the gateway and using routing customizing, a backend request using the received request and the service identifier;

providing, by the gateway, the backend request to a backend;

identifying, at the backend and using a service registration, an original service implementation for the first service; and

setting, at the backend, a current service implementation to the original service implementation.

3. The method of claim 2 , wherein identifying the extension service further includes:

determining, using the service registration, if an extension exists for the current service implementation; and

when an extension does not exist for the current service implementation:

accessing the current service implementation; and

providing, through the gateway, the current service implementation in response to the received request.

4. The method of claim 3 , wherein identifying the extension service further includes:

when an extension exists for the current service implementation:

determining if a customer/partner rule exists for the current service implementation;

when a customer/partner rule exists for the current service implementation:

selecting, using a rule engine and the customer/partner rule, an extension for the current service implementation; and

when a customer/partner rule does not exist for the current service implementation:

selecting, using the backend, an extension for the current service implementation; and

using the extension as the current service implementation and repeating determining if an extension exists for the current service implementation.

5. The method of claim 1 , further comprising;

defining the extension service, based on the first service and associated with the service identifier; and

registering the extension service for use by clients.

6. The method of claim 5 , wherein creating the extension service includes using a modeling tool.

7. The method of claim 1 , wherein the extension service is extensible to an extended extension service.

8. The method of claim 1 , wherein the service identifier includes a name and a version.

9. The method of claim 1 , wherein:

the extension service is assigned to a software component and the extension service is used automatically after installing the software component on the backend; and

enabling or disabling the software component by a configuration switch instead of installing/de-installing the software component.

10. A computer system comprising:

memory operable to store content, including static and dynamic content; and

at least one hardware processor interoperably coupled to the memory and operable to perform instructions to:

receive, from a client, a request for data associated with a first service, the first service identified by a service identifier included in the request and defining a first behavior associated with the first service and use of the requested data;

identify, using the service identifier, an extension service associated with the first service, the identifying occurring automatically based on additional registry entries for the extension service without modifying original registry entries for the first service and without modifying a first service implementation associated with the first service; and

provide, to the client, data responsive to the received request, the data provided according to a second behavior associated with the extension service, wherein a difference between the first behavior and the second behavior includes use of data not available in the other behavior, including one or more of:

a difference between a first data model associated with the first service and a second data model associated with the extension service, including deviating behavior associated with at least one of validation and determination; and

different capabilities between the first service and the extension service regarding read-only versus modifiable data.

11. The computer system of claim 10 , wherein identifying the extension service includes:

determining, at the gateway and using a service configuration, if the first service is active;

determining, at the gateway and using an authorization configuration, if a user associated with the request is allowed to use the first service;

generating, at the gateway and using routing customizing, a backend request using the received request and the service identifier;

providing, by the gateway, the backend request to a backend;

identifying, at the backend and using a service registration, an original service implementation for the first service; and

setting, at the backend, a current service implementation to the original service implementation.

12. The computer system of claim 11 , wherein identifying the extension service further includes:

determining, using the service registration, if an extension exists for the current service implementation; and

when an extension does not exist for the current service implementation:

accessing the current service implementation; and

providing, through the gateway, the current service implementation in response to the received request.

13. The computer system of claim 12 , wherein identifying the extension service further includes:

when an extension exists for the current service implementation:

determining if a customer/partner rule exists for the current service implementation;

when a customer/partner rule exists for the current service implementation:

selecting, using a rule engine and the customer/partner rule, an extension for the current service implementation; and

when a customer/partner rule does not exist for the current service implementation:

selecting, using the backend, an extension for the current service implementation; and

using the extension as the current service implementation and repeating determining if an extension exists for the current service implementation.

14. The computer system of claim 10 , further comprising instructions to;

define the extension service, based on the first service and associated with the service identifier; and

register the extension service for use by clients.

15. The computer system of claim 14 , wherein creating the extension service includes using a modeling tool.

16. The computer system of claim 10 , wherein the extension service is extensible to an extended extension service.

17. The computer system of claim 10 , wherein the service identifier includes a name and a version.

18. The computer system of claim 10 , wherein:

the extension service is assigned to a software component and the extension service is used automatically after installing the software component on the backend; and

enabling or disabling the software component by a configuration switch instead of installing/de-installing the software component.

19. A computer-readable media, the computer-readable media comprising computer-readable instructions embodied on tangible, non-transitory media, the instructions operable when executed by at least one computer to:

receive, from a client, a request for data associated with a first service, the first service identified by a service identifier included in the request and defining a first behavior associated with the first service and use of the requested data;

identify, using the service identifier, an extension service associated with the first service, the identifying occurring automatically based on additional registry entries for the extension service without modifying original registry entries for the first service and without modifying a first service implementation associated with the first service; and

provide, to the client, data responsive to the received request, the data provided according to a second behavior associated with the extension service, wherein a difference between the first behavior and the second behavior includes use of data not available in the other behavior, including one or more of:

a difference between a first data model associated with the first service and a second data model associated with the extension service, including deviating behavior associated with at least one of validation and determination; and

different capabilities between the first service and the extension service regarding read-only versus modifiable data.

20. The computer-readable media of claim 19 , wherein identifying the extension service includes:

determining, at the gateway and using a service configuration, if the first service is active;

determining, at the gateway and using an authorization configuration, if a user associated with the request is allowed to use the first service;

generating, at the gateway and using routing customizing, a backend request using the received request and the service identifier;

providing, by the gateway, the backend request to a backend;

identifying, at the backend and using a service registration, an original service implementation for the first service; and

setting, at the backend, a current service implementation to the original service implementation.

21. The computer-readable media of claim 20 , wherein identifying the extension service further includes:

determining, using the service registration, if an extension exists for the current service implementation; and

when an extension does not exist for the current service implementation:

accessing the current service implementation; and

providing, through the gateway, the current service implementation in response to the received request.

22. The computer-readable media of claim 21 , wherein identifying the extension service further includes:

when an extension exists for the current service implementation:

determining if a customer/partner rule exists for the current service implementation;

when a customer/partner rule exists for the current service implementation:

selecting, using a rule engine and the customer/partner rule, an extension for the current service implementation; and

when a customer/partner rule does not exist for the current service implementation:

selecting, using the backend, an extension for the current service implementation; and

using the extension as the current service implementation and repeating determining if an extension exists for the current service implementation.

23. The computer-readable media of claim 19 , further comprising instructions to;

define the extension service, based on the first service and associated with the service identifier; and

register the extension service for use by clients.

24. The computer-readable media of claim 19 , wherein:

the extension service is assigned to a software component and the extension service is used automatically after installing the software component on the backend; and

enabling or disabling the software component by a configuration switch instead of installing/de-installing the software component.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2014
From: TENNIE, OLAF; SCHEIBER, CHRISTOPH, DR.
To: SAP SE
Reel/Frame 034380/0677 →
Continuity (1)
Related Publication 20160165004A1 · Jun 9, 2016