# US 12,010,198 B2 · Systems and methods for building and providing polymorphic rest services for heterogeneous repositories

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,010,198 B2
- Document ID: US12010198B2
- Status: Granted
- Kind: B2
- Application number: 18/342,657
- Filed: 2023-06-27
- Published: 2023-10-26
- Granted: 2024-06-11
- Earliest claimed: 2017-08-09
- Assignees: Open Text Corporation
- Applicants: Open Text Corporation
- Inventors: Wei Zhou; Muhua Chen; Wei Ruan; Chen Wang
- Web page: https://patentgrep.com/patent/US12010198B2

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 16/252: {between a Database Management System and a front-end application}
- G06F 16/951: Indexing; Web crawling techniques
- G06F 16/955: using information identifiers, e.g. uniform resource locators [URL]
- H04L 41/5041: characterised by the time relationship between creation and deployment of a service
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/133: Protocols for remote procedure calls [RPC]
- H04L 67/61: taking into account QoS or priority requirements
- H04L 67/63: Routing a service request depending on the request content or context
- H04L 67/563: Data redirection of data network streams
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Responsive to a request to access heterogeneous repositories, a REST server queries a resource registry to find resources that match mapping information contained in the request. The resource registry returns resource registry tables containing the matching resources. The resource registry tables implement a unified data structure of a resource registry model and are generated at runtime by the resource registry mapping REST service configuration parameters to the fields of the unified data structure. The REST service configuration parameters are added to an extension SDK for REST extension developers to enhance REST service configuration for extension applications. The REST service configuration parameters are configured at implementation time and loaded/scanned into the REST server at runtime. The REST server iteratively evaluates the resource registry tables until all the matching resources have been evaluated. The evaluation result is used to determine whether to reject, accept, or redirect the request from the client device.

## Claims

### Claim 1

A method, comprising:
receiving, by a computer from client devices, requests for resources provided by heterogeneous repositories, the heterogeneous repositories including a non-provisioned repository and a provisioned repository;
determining, by the computer, scoped resources from among the resources provided by the heterogeneous repositories, the scoped resources having scopes corresponding to repository types, wherein the determining comprises, responsive to each respective request of the requests, querying a resource registry using mapping information contained in the respective request, and wherein the resource registry is operable to respond to the respective request with runtime tables containing matching resources that represent a subset of the resources that are potentially available to service the respective request;
evaluating, by the computer for each respective request of the requests, the runtime tables based at least on a resource registry model definition until all the scoped resources are evaluated, wherein the evaluating produces prioritized evaluation results for handing the respective request of the requests;
obtaining, by the computer for each respective request of the requests, a resource handling method for a prioritized evaluation result having a highest priority among the prioritized evaluation results; and
invoking, by the computer, the resource handling method to reject, accept, redirect, or ignore the respective request of the requests from the client devices.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the resources provided by the heterogeneous repositories comprise heterogeneous data structures and wherein the runtime tables comprise a unified data structure.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the runtime tables are created at runtime by mapping or translating, independently of the requests from the client devices, a Representational State Transfer (REST) extension configuration into a unified data structure of a resource registry model, the unified data structure having fields specified by the resource registry model.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the REST extension configuration comprises a disabling configuration parameter, an overriding configuration parameter, or a mix of disabling and overriding configuration parameters.

### Claim 5 (depends on 3)

The method according to claim 3, wherein the runtime tables are updatable utilizing user-specified REST extension configuration parameters.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the mapping information comprises at least one of:
a user-specified Representational State Transfer (REST) extension configuration parameter;
a Hypertext Transfer Protocol header;
a target repository identifier;
a resource identifier;
a query parameter; or
a media type.

### Claim 7 (depends on 1)

The method according to claim 1, further comprising:
determining, for each respective request of the requests using the mapping information contained in the respective request, whether the respective request meets a default condition for accessing the non-provisioned repository;
responsive to the respective request meeting the default condition, determining whether the respective request meeting a custom condition for accessing the provisioned repository; and
responsive to the respective request not meeting the default condition or the custom condition, returning an error message.

### Claim 8

A system, comprising:
a processor;
a non-transitory computer-readable medium; and
instructions stored on the non-transitory computer-readable medium and translatable by the processor for:
receiving, from client devices, requests for resources provided by heterogeneous repositories, the heterogeneous repositories including a non-provisioned repository and a provisioned repository;
determining scoped resources from among the resources provided by the heterogeneous repositories, the scoped resources having scopes corresponding to repository types, wherein the determining comprises, responsive to each respective request of the requests, querying a resource registry using mapping information contained in the respective request, and wherein the resource registry is operable to respond to the respective request with runtime tables containing matching resources that represent a subset of the resources that are potentially available to service the respective request;
evaluating, for each respective request of the requests, the runtime tables based at least on a resource registry model definition until all the scoped resources are evaluated, wherein the evaluating produces prioritized evaluation results for handing the respective request of the requests;
obtaining, for each respective request of the requests, a resource handling method for a prioritized evaluation result having a highest priority among the prioritized evaluation results; and
invoking the resource handling method to reject, accept, redirect, or ignore the respective request of the requests from the client devices.

### Claim 9 (depends on 8)

The system of claim 8, wherein the resources provided by the heterogeneous repositories comprise heterogeneous data structures and wherein the runtime tables comprise a unified data structure.

### Claim 10 (depends on 8)

The system of claim 8, wherein the runtime tables are created at runtime by mapping or translating, independently of the requests from the client devices, a Representational State Transfer (REST) extension configuration into a unified data structure of a resource registry model, the unified data structure having fields specified by the resource registry model.

### Claim 11 (depends on 10)

The system of claim 10, wherein the REST extension configuration comprises a disabling configuration parameter, an overriding configuration parameter, or a mix of disabling and overriding configuration parameters.

### Claim 12 (depends on 10)

The system of claim 10, wherein the runtime tables are updatable utilizing user-specified REST extension configuration parameters.

### Claim 13 (depends on 8)

The system of claim 8, wherein the mapping information comprises at least one of:
a user-specified Representational State Transfer (REST) extension configuration parameter;
a Hypertext Transfer Protocol header;
a target repository identifier;
a resource identifier;
a query parameter; or
a media type.

### Claim 14 (depends on 8)

The system of claim 8, wherein the instructions are further translatable by the processor for:
determining, for each respective request of the requests using the mapping information contained in the respective request, whether the respective request meets a default condition for accessing the non-provisioned repository;
responsive to the respective request meeting the default condition, determining whether the respective request meeting a custom condition for accessing the provisioned repository; and
responsive to the respective request not meeting the default condition or the custom condition, returning an error message.

### Claim 15

A computer program product comprising a non-transitory computer-readable medium storing instructions translatable by a processor for:
receiving, from client devices, requests for resources provided by heterogeneous repositories, the heterogeneous repositories including a non-provisioned repository and a provisioned repository;
determining scoped resources from among the resources provided by the heterogeneous repositories, the scoped resources having scopes corresponding to repository types, wherein the determining comprises, responsive to each respective request of the requests, querying a resource registry using mapping information contained in the respective request, and wherein the resource registry is operable to respond to the respective request with runtime tables containing matching resources that represent a subset of the resources that are potentially available to service the respective request;
evaluating, for each respective request of the requests, the runtime tables based at least on a resource registry model definition until all the scoped resources are evaluated, wherein the evaluating produces prioritized evaluation results for handing the respective request of the requests;
obtaining, for each respective request of the requests, a resource handling method for a prioritized evaluation result having a highest priority among the prioritized evaluation results; and
invoking the resource handling method to reject, accept, redirect, or ignore the respective request of the requests from the client devices.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the resources provided by the heterogeneous repositories comprise heterogeneous data structures and wherein the runtime tables comprise a unified data structure.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the runtime tables are created at runtime by mapping or translating, independently of the requests from the client devices, a Representational State Transfer (REST) extension configuration into a unified data structure of a resource registry model, the unified data structure having fields specified by the resource registry model.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the REST extension configuration comprises a disabling configuration parameter, an overriding configuration parameter, or a mix of disabling and overriding configuration parameters.

### Claim 19 (depends on 17)

The computer program product of claim 17, wherein the runtime tables are updatable utilizing user-specified REST extension configuration parameters.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein the instructions are further translatable by the processor for:
determining, for each respective request of the requests using the mapping information contained in the respective request, whether the respective request meets a default condition for accessing the non-provisioned repository;
responsive to the respective request meeting the default condition, determining whether the respective request meeting a custom condition for accessing the provisioned repository; and
responsive to the respective request not meeting the default condition or the custom condition, returning an error message.
