IP Library Granted Patent US 8,943,472
Granted Patent B1
US 8,943,472 · App. 13/902,960 · Granted Jan 27, 2015

System and method for directly accessing SAS datasets from a JAVA program

Inventor: Pavel Ganelin (Rockville, MD)
Assignee: Dulles Research LLC
G06F9/445
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 8,943,472
App. No.
13/902,960
Granted
Jan 27, 2015
Kind
B1
Abstract

A system and method for reading and writing datasets (SAS datasets) written in a proprietary runtime macro language (SAS, owned by the SAS Institute, Inc.) directly, without going through a system that uses the SAS proprietary runtime macro language. The system employs a JAVA Database Connectivity (JDBC) application program interface (API) driver usable by JDBC enabled JAVA applications. The driver extracts from the SAS dataset information from a header page that enables identification of information on metadata pages which in turn are used by the driver to present to the JAVA application a view of the data as a database table, from which the JAVA application can request reading and writing of the SAS dataset.

Claims (49)

1. A computer implemented method for direct access by a JAVA application to a SAS dataset, comprising:

providing on a computer system a driver that accesses a SAS dataset, further comprising:

extracting from said SAS dataset header information;

using said header information to identify metadata information regarding data in said SAS dataset; and

returning to said JAVA application a view of the SAS dataset as a database table, and

enabling said driver to be operated by said JAVA application directly, without going through a SAS system, to read and write said SAS dataset, wherein said driver and said JAVA application comply with JAVA Database Connectivity (JDBC) standard, said JAVA application thereby being JDBC enabled.

2. A method as in claim 1 , further comprising:

receiving from the JAVA application requests to read or write data in the database table; and

using said metadata information to apply said read or write requests to said SAS dataset.

3. A method as in claim 2 , wherein said header information comprises:

page size and page count;

endianness;

character set; and

header length.

4. A method as in claim 3 , wherein said SAS dataset is characterized by records of data, where all records have the same size;

each said record contains a value of a variable;

variables can be of two types: character and numeric; and

names of variables, together with labels, formats and informats associated with each variable, are identified in the metadata.

5. A method as in claim 2 , wherein applying read or write requests to the SAS dataset further comprises:

determining if a new page is needed from the SAS dataset;

retrieving a new page, if needed;

retrieving a requested record; and

writing the retrieved record, if requested.

6. A method as in claim 1 , further comprising:

receiving from the JAVA application a request for metadata information; and

returning to the JAVA application said metadata information.

7. A computer implemented system for direct access by a JAVA application to a SAS dataset, comprising:

a processor operable on a computer to execute instructions, wherein said driver instructions extract from said SAS dataset header information, use said header information to identify metadata information regarding data in said SAS dataset, and return to said JAVA application a view of the SAS dataset as a database table; and

a driver that accesses a SAS dataset directly via instructions executable by the processor, without going through a SAS system, to read and write said SAS dataset,

wherein said driver and said JAVA application comply with JAVA Database Connectivity (JDBC) standard, said JAVA application thereby being JDBC enabled.

8. A system as in claim 7 , wherein said driver receives from the JAVA application requests to read or write data in the database table, and uses said metadata information to read or write to the SAS dataset as requested.

9. A system as in claim 8 , wherein said header information comprises:

page size and page count;

endianness;

character set; and

header length.

10. A system as in claim 9 , wherein said SAS dataset is characterized by records of data, where all records have the same size;

each said record contains a value of a variable;

variables can be of two types: character and numeric; and names of variables, together with labels, formats and informats associated with each variable, are identified in the metadata.

11. A method as in claim 8 , wherein the driver determines if a new page is needed from the SAS dataset, retrieves a new page, if needed, retrieves a requested record, and writes the retrieved record, if requested.

12. A system as in claim 7 , wherein the driver receives from the JAVA application a request for metadata information and returns to the JAVA application said metadata information.

13. A computer implemented system for direct access by a JDBC-enabled JAVA application to a SAS dataset, the computer system having software instructions stored thereon and having a processor operable to execute the software instructions, comprising:

computer code comprised of software instructions for accessing a SAS dataset directly, without going through a SAS system, to read and write said SAS dataset, wherein said computer code and said JAVA application comply with JAVA Database Connectivity (JDBC) standard, said JAVA application thereby being JDBC enabled;

second computer code that extracts from the SAS dataset header information;

third computer code that uses the header information to identify metadata information regarding data in the SAS dataset; and

fourth computer code that returns to the JAVA application a view of the SAS dataset as a database table.

14. A system as in claim 13 , wherein said computer code further comprises:

fifth computer code that receives from the JAVA application requests to read or write data in the database table; and

sixth computer code that uses said metadata information to apply said read or write requests to the SAS dataset.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2025
From: CITIBANK, N.A.
To: DATAROBOT, INC.; ALGORITHMIA, INC.; DULLES RESEARCH, LLC
Reel/Frame 070750/0866 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2024
From: DULLES RESEARCH, LLC.
To: DATAROBOT, INC.
Reel/Frame 067633/0656 →
SECURITY INTEREST Recorded Mar 22, 2023
From: DATAROBOT, INC.; ALGORITHMIA, INC.; DULLES RESEARCH, LLC
To: CITIBANK, N.A.
Reel/Frame 063263/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2013
From: GANELIN, PAVEL
To: DULLES RESEARCH LLC
Reel/Frame 030490/0757 →
Continuity (2)
Continuation In Part 12512983 · Jul 30, 2009
Provisional Application 61084996 · Jul 30, 2008