Thursday, April 24, 2008

Using the SIF Data Model in Software for Schools

Introduction

The SIF Data Model, which consists of the XML data “objects” that make up the bulk of the specification, has grown and evolved from the expertise that application vendors contribute to the SIF Association. Traditionally, Working Groups within the SIF Association have aligned on particular "vertical" areas of focus within the K-12 software market. Examples of Working Groups within the SIF Association include Student Information Systems, Human Resources and Financials, Transportation, and Food Services. Using a community-based process, members of these working groups collaborate to build their respective areas of the SIF Data Model. In summary, the SIF Data Model has evolved from the bottom-up versus being specified from the top-down.

It is probably useful to first understand what the SIF Data Model is, and what it is not. Foremost, the SIF Data Model was developed around interoperability business and use cases. That is to say, it was never intended to be an optimized, normalized application-level schema. It is intended to facilitate the exchange of data between two or more applications connected to a common message bus. As a result of this, and the fact that a community-based process, rather than a single mind or focused team, produced the data model, you will notice varying consistency within the SIF Data Model. The purpose of this writing is to provide some thoughts on how best to use the SIF Data Model when building new, or enhancing existing, K-12 software products.


Logical Structure of the SIF Data Model

Reasons for Using the SIF Data Model in Your Application

If you are building or enhancing a software application for K-12 schools you may want to take a close look at the SIF Data Model for a few reasons, even if you do not immediately plan to build a SIF Agent.

1. Ensuring Completeness
The first, and probably most obvious comparison point between your application's data model and SIF, should be for completeness. When considering the full SIF Data Model, including all of its objects, elements and attributes you will notice that it has become, over time, fairly rich. This is especially true for the core objects that are most often used in the field (e.g. StudentPersonal, StaffPersonal, SchoolInfo, StudentSchoolEnrollment, StudentContact).

2. Aligning to SIF for Interoperability Market demand from schools (SEA's and LEA's) is driving SIF adoption. However, even if your application implements a data model that is an exact copy of the SIF Data Model, you do not have an interoperable application. Interoperability requires the ability to interact with other applications over the SIF Infrastructure, according to the rules defined in the SIF Implementation Specification. Implementing an application data model that resembles the SIF Data Model, or that is easily mapped to the SIF Data Model, definitely puts you a step closer to interoperability via SIF.

3. Relating to Other Software Systems
By using the information that is available in the SIF Certification Register, you can analyze the capabilities of other applications from which you wish to obtain data today, and to which you may wish to publish data. Depending on your target market, you may wish to analyze specific applications or broad categories of applications to determine how your system may interoperate with other systems. I also highly recommend talking to your customers, or potential customers, about their specific needs when it comes to interoperability. Most technically savvy people within schools have at least heard of SIF, and many will have excellent ideas to share about how they wish their systems to work together.

4. Decreasing the Level of Effort to Support Data Exchange
The vision behind SIF is to make data exchange easier for both the end-users in schools and software vendors. While it is true there can be a relatively high learning curve in the beginning to implement SIF, over time the benefits of automated processes become evident. Depending on how you support your customers' data import/export needs, there is great potential for you as a software vendor to reduce the overall level of effort in managing data exchange processes.

No comments: