Close

Open Source Development

Solutions to real world problems

In 2010, A4L Community members saw an opportunity to provide developers implementing the SIF standard with tools and resources that made it easier to build interoperable solutions.  Since then, open source frameworks for Java and .Net have been developed for both SIF 2.x and SIF 3.x environments, which have been adopted and used in several projects.  These frameworks provide software developers with code to perform common data transactions properly within their technical environment. 

There are a number of open source projects available on GitHub relating to the SIF Specification.  The following are a guide to the current projects being worked on by A4L Community Members:

Below is a current list of vendors, government agencies, and organizations using the open source toolsets to solve real world problems.  These projects are national, state, and regional level implementations that exemplify the ongoing stability and scalability of the open source toolsets.  In addition to the SIF Java and .Net frameworks, the A4L developer community has created several other open source resources for the community to leverage, including a SIF 3 data model generator (Java), and SIF XML to JSON libraries.  You can access the A4L Community set of open source tools on GitHub.  An overview of SIF related Open-Source projects on the A4L GitHub are listed in the next section.

Project Name / Vendor ProductOrganizationLocaleOpen Source ToolDescription
HITSNational Schools Interoperability Program (NSIP)AustraliaSIF3 Framework (Java)HITS provides a learning and demonstration space for anyone interested in exploring the use of SIF 3 in the Australian marketplace. The HITS testing service allows you to test that your product can create, receive and respond to the requirements of the relevant use case.
Uses the SIF Data Model Implementation Specification (Australia) 3.4
NSIP website: http://www.nsip.edu.au/
HITS website: http://hits.nsip.edu.au/dashboard/
DoE WA SIF 3 HubDepartment of Education Western AustraliaAustraliaSIF3 Framework (Java)SIF3 Hub for Western Australian Public Schools.
Uses the SIF Data Model Implementation Specification (Australia) 3.4.
RICOneRegional Information Centers (RICs) in New York StateNorth AmericaSIF3 Framework (Java) & SPB Framework (Java)RIC One is a family of services, which enable districts to more efficiently and effectively utilize student data systems and to improve school operations and classroom instruction, while ensuring the privacy of sensitive student data.
Uses SIF xPress from the SIF Data Model Implementation Specification (North America).
RICOne API: http://www.ricone.org/districts/ric-one-api/
CESCivicaAustraliaSIF3 Framework (.Net)Civica's Education Suite (CES) is adding SIF adapters (which are responsible to connect a “product’s” internal data representation to a SIF Data model and exchanges messages with another endpoint via SIF).
Australian Schools ListACARAAustraliaSIF3 Framework (.Net)ACARA has a repository of all Australian Schools. Data can be retrieved using SIF Implementation Data Model Specification (Australia) 3.x.
EduHubDepartment of Education VictoriaAustraliaSIF3 Framework (.Net)SIF 3 Hub for the Victorian Public Schools
DET Qld SIF 3 HubDepartment of Education QueenslandAustraliaSIF3 Framework (.Net)SIF 3 Hub for the Queensland Public Schools
LMS SIFSEQTAAustraliaSIF3 Framework (Java)SIF3 Adapters for SEQTA's Learning Management System
Student Management SystemSynergeticAustraliaSIF3 Framework (.Net)SIF3 Adapters for Synergetic's SMS. This SMS is being used in the Catholic Education Office in Victoria in the 'ICON' SIF3 Hub.
Student Record ExchangeOffice of Superintendent of Public Instruction and Puget Sound ESDNorth AmericaSIF3 Framework (.Net)Pilot Project: Puget Sound ESD received a grant award to build a SIF-based student record exchange in the Puget Sound region.
More information: https://xpressapi.org/user-examples/xpress-student-record-exchange/

* SIF3 Hub: Please review the Glossary

For more information about any of the above projects, please contact us.

SIF 3 Framework features

FeatureJava.Net
Object Consumer Framework – CRUDYesYes
Object Consumer Framework – CRUDYesYes
Acts as DIRECT Environment ProviderYesYes
Brokered Connections supportedYesYes
Events supportedYesYes
Delayed Request/Response supportedYesNo (1)
xPress supportedYesYes
External Security Service SupportYes (2)No
Service Path SupportYesYes
Dynamic Query & xQueryYesNo (1)
Query By ExampleYesYes
Payload CompressionYesYes
Support for other Mime TypesYesNo (1)
Functional ServicesYespartially
Admin Directives (SIF Infrastructure Specification 3.4)YesNo
Delayed provider (SIF Infrastructure Specification 3.5)NoNo
Extended Error Support (SIF Infrastructure Specification 3.6)NoNo
(1) Future extensions expected
(2) DIRECT Environment only

Open Source Tools on GitHub

Below is a list of the public GitHub Repositories available on the A4L Github site. Details about each project can be found in the applicable Readme.md on the project specific GitHub repository.

GitHub repositoryLanguageSIF VersionShort description
SIF3 FrameworkJavaInfrastructure 3.xSDK for developing SIF 3.x Adapters for Java. This is an “infrastructure” SDK and therefore the framework can be used with any locale Data Model (Australia, North America, New Zealand, United Kingdom).
SIF3 FrameworkC#Infrastructure 3.xSDK for developing SIF 3.x Adapters for C# (.Net). This is an “infrastructure” SDK and therefore the framework can be used with any locale Data Model (Australia, North America, New Zealand, United Kingdom).
SIF3 Datamodel GeneratorJavaData Model (all versions)This project can be used to generate locale (Australia, North America, New Zealand, United Kingdom) Data Model artifacts based on a Data Model XSD provided via the A4L Community website. The generated libraries can then be used with the SIF3 Framework (Java).
Open-ADKJava2.xLow level SDK for developing SIF 2.x Agents for Java. Depending on the locale a specific version needs to be compiled because SIF 2.x infrastructure is Data Model dependent.
Open-ADKC#2.xLow level SDK for developing SIF 2.x Agents for C# (.Net). Depending on the locale a specific version needs to be compiled because SIF 2.x infrastructure is Data Model dependent.
SIF Common FrameworkJava2.xSDK for developing SIF 2.x Agents for Java. This SDK is built on top of the OpenADK and abstracts many low-level details of the OpenADK. It is recommended to use this SDK instead of the OpenADK. This is an “infrastructure” SDK and therefore the framework can be used with any locale Data Model (Australia, North America, United Kingdom). The Data Model is contained within the OpenADK library.
SIF Common DemoJava2.xA small demo project showcasing examples on how to use the SIF Common Framework. Note that these examples are built around the SIF Implementation Data Model Specification (Australia) 1.3. However the principles illustrated apply to any data model and the framework can be used with the Australian, North American, & United Kingdom Data Model.
SIF Common FrameworkC#2.xSDK for developing SIF 2.x Agents for C# (.Net). This SDK is built on top of the OpenADK and abstracts many low-level details of the OpenADK. This is an “infrastructure” SDK and therefore the framework can be used with any locale Data Model (Australia, North America, United Kingdom). It is recommended to use this SDK instead of the OpenADK. This is an “infrastructure” SDK and therefore the framework can be used with any locale Data Model (Australia, North America, United Kingdom). The Data Model is contained within the OpenADK library.
SBP Agent FrameworkJava2.xThis is a SDK to develop SIF 2.x Agents in Java. It differs from the SIF Common Framework by adding some business processes such as startup order of SIF Objects, automatically requesting & resolving missing SIF Objects and dependencies. Object dependencies are defined in a small set of tables.
SBP DemoJava2.xA small demo project showcasing examples on how to use the SBP Agent Framework. Note that these examples are built around the SIF Implementation Data Model Specification (Australia) 1.3. However the principles illustrated apply any data model and the framework can be used with the Australian, North American or United Kingdom Data Model.
SBP Agent FrameworkC#2.xThis is a SDK to develop SIF 2.x Agents in C# for the Australian Data Model. While it is currently geared to the Australian Data Model it could easily be changed to cater for the North American or United Kingdom Data Model.