Showing posts with label software development. Show all posts
Showing posts with label software development. Show all posts

Friday, July 11, 2008

SIF and Open Source

Outside observers of SIF often make the comment that the SIF Association (SIFA) should implement an Open Source Zone Integration Server, or an Open Source Agent development tool set. I generally respond to these comments by analogizing SIF with other standards bodies, like the W3C. Similarly to the W3C, the primary output of SIFA is its standards.

Take as an example the W3C's XHTML specification. Under the auspices of the W3C, member organizations collaborate to draft, test, refine, and release the detailed technical definition of the XHTML technology. Acting as individual organizations, these members implement software that leverage, for commercial and non-commercial purposes, the specification developed by the standards body. It would be, however, very unlikely for the W3C to actually develop a web browser or web server that implemented XHTML in software.

Many standards bodies, like SIFA and the W3C, publish their works openly. Any organization or individual, including Open Source projects, may benefit by deciphering, adopting, and implementing the standards, regardless of membership status, and without paying licensing fees to the standards body. Other standards bodies, in contrast, choose to sell their work using fee-based licenses. Although SIFA is not an Open Source initiative, the open publication of its standards is certainly an enabler for industrious Open Source developers.

SIFA, its members, and the wider world of educational technology would greatly benefit from additional documentation to fill the void between the SIF specifications and their implementation in software. To that end, one of the purposes of this blog is to share some of my practical experience with SIF. I would like to take this opportunity to encourage SIFA to work towards providing more developer-centric documentation, including code samples, as part of its work. Since SIF's core technologies (XML and HTTP) are ubiquitous, basic code samples could be developed for every modern programming language and platform. The results of such work would be clarity for a wider audience of developers in the school market, the demystification of SIF, and, ultimately, wider adoption.

I would also encourage individuals and groups developing Open Source SIF software to become involved in the Association. Involvement will greatly accelerate your efforts in building good software that solves schools’ interoperability and data management needs.

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.