A newer version of the Ed-Fi ODS / API is available. See the Ed-Fi Technology Version Index for a link to the latest version.
Platform Dev Guide - Overview
- Ian Christopher (Deactivated)
- Vinaya Mayya
This section provides important conceptual material related to the Ed-Fi ODS / API platform.
Solution Overview
The Ed-Fi Alliance publishes the Ed-Fi Data Standard, which models a broad spectrum of commonly exchanged and shared K–12 education data. The Ed-Fi ODS / API is a concrete implementation of a relational database and a companion API harmonized with the Ed-Fi Data Standard. The Ed-Fi ODS / API is tuned to the security and performance needs of K–12 organizations and the education technology vendors who serve them.
The ODS implementation uses Microsoft SQL Server as a database platform. The API implementation is written in C#. Together, these form a data platform to host student-centric data. The ODS / API platform is vendor neutral, meaning that client applications may be written in any language.
Conceptual Overview
Education enterprises like schools, districts, and states often have student-centric information spanning several systems. Even though there is a wealth of data, the information is essentially siloed, which makes it difficult to get a holistic picture of a student or the performance of the enterprise as a whole.
Having data in silos causes other issues like duplicate and conflicting information. In the case of standardized test results that arrive on disconnected media, enterprises struggle with finding a place to store that information in a way that it can be connected with students.
The ODS / API addresses these problems by centralizing data in a relational database (in the ODS), and providing secure access back to the siloed systems and to reporting tools like dashboards or BI analysis platforms (via the API). Additionally, some implementers have used the ODS / API in different ways, for example, as the primary data store for a custom student information system or as the data store solely for a centralized BI report source. The key point is that the ODS / API have structures that cover a broad swath of educational data and interface to the data that can be configured for a variety of scenarios.
What Does the ODS / API Do?
The Ed-Fi ODS / API can be useful in the following common technology tasks:
- Integration of data from siloed source systems.
- Quality checking and cleansing data, and de-duplicating records.
- Operational reporting on data from a single source.
- Providing authoritative information to client applications.
A discussion of the components follows.
The Operational Data Store Component
What draws implementers to the Ed-Fi ODS / API is that the ODS provides a rich and detailed data model out of the box, which means that it can handle the real-world complexities of student attendance, grades, discipline events, and so forth. The data model is extensible, which means that it also allows for the inevitable customizations that are necessary to suit a particular enterprise’s needs.
Specifically, the ODS contains detailed tables, structures, and associations for the following domains:
- Assessment
- Bell Schedule
- Discipline
- Education Organization
- Enrollment
- Finance
- Graduation
- Intervention
- School Calendar
- Staff
- Student Academic Record
- Student Attendance
- Student Cohort
- Student Identification and Demographics
- Teaching and Learning
- Alternative/Supplemental Services, including:
- Career and Technical Education
- Migrant Education
- Special Education
- Title I Part A Services
- Survey
If you’re new to the Ed-Fi Data Standard, the Unifying Data Model documentation is useful in exploring the domain models.
The Ed-Fi ODS / API isn’t magic. It takes analysis and integration efforts to connect systems that populate the ODS data store. However, the ODS / API source code comes with code to bulk load the data store, and the RESTful interface makes it easy for client systems to keep the data up to date in real time.
The Application Programming Interface Component
Once you have data in the ODS, you’ll want to put it to use and keep it up to date. That’s where the API comes in. The API that comes with the source code is a secure, modern, RESTful, interface to your data that can be accessed by any client application on any platform.
Like the ODS, the API is harmonized with the Ed-Fi Data Standard. The resources accessible from the API share the same naming conventions, definitions, and organization as the ODS. This makes it easy to understand where data is coming from and what it means.
The API is secure. It uses HTTPS for communication, the OAuth 2 specification for authentication, and comes with a rich and customizable claimset model so platform hosts have fine-grained control over which applications and users can see particular pieces of data. See the API Claim Sets & Resources section in this documentation for complete details.
Technology Stack
The core ODS / API technologies are essentially built on a Microsoft stack, including C# and ASP.NET, Microsoft SQL Server, and Internet Information Services.
A high-level view looks something like this:
A few things to note:
- The Ed-Fi ODS / API platform may run on a Microsoft technology stack, but clients and consumers of the platform can be written in practically any language for any modern operating system. See the API Client Developers' Guide for details.
- The Ed-Fi ODS / API platform can run in a variety of server environments, including on-premises hardware or cloud-based platforms like AWS and Azure. See the Deployment section in this documentation for details.
- Many ODS / API implementers use the solution as a data source for the Ed-Fi Dashboards.1 As noted in the diagram above, the dashboards use the ODS as a data source, but leverage their own data access layer to pull information from a performance-optimized data mart. This direct approach may be suitable for some kinds of business intelligence systems as well.
1 See the Ed-Fi Technical Suite Compatibility Matrix for the latest details on the Ed-Fi products that are compatible with the ODS / API.