IP Library Granted Patent US 10,261,809
Granted Patent B1
US 10,261,809 · App. 15/442,287 · Granted Apr 16, 2019

Declarative driver

Inventors: Jaime Meritt (Raleigh, NC); Prasanna Reddy Anireddy (Hyderabad, IN); Devesh Kumar Singh (Hyderabad, IN); Ramesh Loganathan (Hyderabad, IN); Kumar Roshan (Hyderabad, IN); Rajagopal Guduru (Hyderabad, IN)
Assignee: Progress Software Corporation
G06F9/44526G06F17/30946
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 10,261,809
App. No.
15/442,287
Granted
Apr 16, 2019
Kind
B1
Abstract

A system and method for building a driver are disclosed. In one embodiment, the system includes one or more processors and a memory storing instructions that, when executed by the processor, cause the system to: obtain an interface description; obtain at least one mapping rule; operate a flow controller that controls a flow of operations, the operations using one or more of the interface description and the at least one mapping rule; obtain a protocol adapter; and implement access to a data source based on the operation of the flow controller using the obtained protocol adapter.

Claims (65)

1. A method comprising:

obtaining, using one or more processors, an interface description during declarative driver framework based creation of a driver to access a data source;

obtaining, using one or more processors, during declarative driver framework based creation of the driver to access the data source, at least one mapping rule for converting a query from a first semantic space associated with a client and using a first formal language to a second semantic space associated with the data source that stores data associated with the query, wherein the data source may or may not use a formal language;

the driver operating a flow controller that controls a flow of operations, the operations using one or more of the interface description and the at least one mapping rule, wherein the flow of operations includes converting the query from the first semantic space associated with the client and using the first formal language to the second semantic space associated with the data source that stores data associated with the query;

obtaining, using one or more processors, a protocol adapter during declarative driver framework based creation of the driver to access the data source; and

the driver implementing access to the data source based on the operation of the flow controller using the obtained protocol adapter.

2. The method of claim 1 , wherein the interface description includes a declarative file written in a platform or data source agnostic language.

3. The method of claim 1 , wherein obtaining the interface description comprises:

receiving a schema description, the schema description defining a logical schema for the data source.

4. The method of claim 1 , wherein obtaining the interface description comprises:

receiving a set of query conditions; and

receiving a definition of one or more service identification rules for the set of query conditions.

5. The method of claim 1 , wherein obtaining the at least one mapping rule comprises:

receiving a mapping rule for mapping a query from the client to a data source request; and

receiving a mapping rule for mapping a data source response to a logical schema defined by a schema description.

6. The method of claim 1 , wherein the flow controller provides functionality for implementing one or more of paging, splitting, merging, data transformation and mediation.

7. The method of claim 1 , wherein operating the flow controller comprises:

retrieving, from the at least one mapping rule, one or more rules for mapping the query to a data source request;

parsing query to get search conditions; and

converting the query from one semantic space to another semantic space based on one or more service identification rules.

8. The method of claim 1 , further comprising:

modifying one or more of the interface description, the at least one mapping rule and the protocol adapter that is obtained; and

implementing access to a different data source.

9. A system comprising:

a processor, and

a memory storing instructions that, when executed, cause the system to:

obtain an interface description during declarative driver framework based creation of a driver to access a data source;

obtain, during the declarative driver framework based creation of the driver to access the data source, at least one mapping rule for converting a query from a first semantic space associated with a client and using a first formal language to a second semantic space associated with the data source that stores data associated with the query, wherein the data source may or may not use a formal language;

operate a flow controller that controls a flow of operations, the operations using one or more of the interface description and the at least one mapping rule, wherein the flow of operations includes converting the query from the first semantic space associated with the client and using the first formal language to the second semantic space associated with the data source that stores data associated with the query;

obtain a protocol adapter during the declarative driver framework based creation of the driver to access the data source; and

implement access to the data source based on the operation of the flow controller using the obtained protocol adapter.

10. The system of claim 9 , wherein the interface description includes a declarative file written in a platform or data source agnostic language.

11. The system of claim 9 , wherein the instructions stored in the memory that, when executed, cause the system to obtain the interface description comprise:

instructions stored in the memory that, when executed, cause the system to:

receive a schema description, the schema description defining a logical schema for the data source.

12. The system of claim 9 , wherein the instructions stored in the memory that, when executed, cause the system to obtain the interface description comprise:

instructions stored in the memory that, when executed, cause the system to:

receiving a set of query conditions; and

receiving a definition of one or more service identification rules for the set of query conditions.

13. The system of claim 9 , wherein the instructions stored in the memory that, when executed, cause the system to obtain the at least one mapping rule comprise:

instructions stored in the memory that, when executed, cause the system to:

receive a mapping rule for mapping a query from the client to a data source request; and

receive a mapping rule for mapping a data source response to a logical schema defined by a schema description.

14. The system of claim 9 , wherein the instructions stored in the memory further include instructions that, when executed, cause the flow controller to provide functionality for implementing one or more of paging, splitting, merging, data transformation and mediation.

15. The system of claim 9 , wherein the instructions stored in the memory further include instructions that, when executed, cause the system to:

retrieve from the at least one mapping rule, one or more rules for mapping the query to a data source request;

parse a query to get search conditions; and

convert the query from one semantic space to another semantic space based on one or more service identification rules.

16. The system of claim 9 , wherein the instructions stored in the memory further include instructions that, when executed, cause the system to:

modify one or more of the interface description, the at least one mapping rule and the protocol adapter that is obtained; and

implement access to a different data source.

17. A computer program product comprising a non-transitory computer usable-medium including a computer readable program, wherein the computer readable program when executed on a computing device causes the computing device to:

obtain an interface description during declarative driver framework based creation of a driver to access a data source;

obtain, during the declarative driver framework based creation of the driver to access the data source, at least one mapping rule for converting a query from a first semantic space associated with a client and using a first formal language to a second semantic space associated with the data source that stores data associated with the query, wherein the data source may or may not use a formal language;

operate a flow controller that controls a flow of operations, the operations using one or more of the interface description and the at least one mapping rule, wherein the flow of operations includes converting the query from the first semantic space associated with the client and using the first formal language to the second semantic space associated with the data source that stores data associated with the query;

obtain a protocol adapter during the declarative driver framework based creation of the driver to access the data source; and

implement access to the data source based on the operation of the flow controller using the obtained protocol adapter.

18. The computer program product of claim 17 wherein the computer readable program when executed on a computing device causes the computing device to:

receive a schema description, the schema description defining a logical schema for the data source.

19. The computer program product of claim 17 wherein the computer readable program when executed on a computing device causes the computing device to:

receiving a set of query conditions; and

receiving a definition of one or more service identification rules for the set of query conditions.

20. The computer program product of claim 17 wherein the computer readable program when executed on a computing device causes the computing device to:

receive a mapping rule for mapping a query from the client to a data source request; and

receive a mapping rule for mapping a data source response to a logical schema defined by a schema description.

Assignments (6)
SECURITY INTEREST Recorded Jul 21, 2025
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 072094/0790 →
SECURITY INTEREST Recorded Mar 7, 2024
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 066762/0833 →
SECURITY INTEREST Recorded Jan 25, 2022
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058840/0099 →
SECURITY INTEREST Recorded Apr 30, 2019
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., ADMINISTRATIVE AGENT
Reel/Frame 049031/0684 →
SECURITY INTEREST Recorded Dec 18, 2017
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044889/0325 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2017
From: MERITT, JAIME; ANIREDDY, PRASANNA REDDY; SINGH, DEVESH KUMAR; LOGANATHAN, RAMESH; ROSHAN, KUMAR; GUDURU, RAJAGOPAL
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 041422/0825 →
Continuity (1)
Continuation 14103677 · Dec 11, 2013