Wednesday, January 12, 2011

Systems Interoperability Framework for Schools

The Australian Government is funding work on adopting the Systems Interoperability Framework (SIF) for Australian schools. Previously called the Schools Interoperability Framework, this is a set of XML specifications for defining educational data and a Service-Oriented Architecture (SOA) interface for kindergarten to grade 12 schools (k12). A SIF Implementation Specification (Australia) (Version 1.0, November 20, 2009) has been produced.

The Australian Government is also funding activity on e-Portfolios for vocational (VET E-portfolio Roadmap) and higher education (Australian ePortfolio Project). I realise it is hard enough to get universities and TAFEs to agree on standards, but is there any work on getting the schools and higher education to use the same standards for reporting?

SIF appears to be a standard for real time exchange of data between applications. This appears to be about administrative management of schools and students (that is recording, monitoring and reporting student progress). As an example, one of the SIF certified software products is Blackboard Connect 1.0 . This is used for schools to communicate to parents.

SIF appears to be separate from the actual delivery of education, for which there are separate technical standards for content. An example is the IMS Global Learning Consortium's Common Cartridge (CC) standard and Sharable Content Object Reference Model (SCORM). There is also the IEEE 1484.12.1 – 2002 Standard for Learning Object Metadata (which I managed to get my name in, just by voting for ;-)

While SIF will be useful, particularly if already implemented in software products purchased by Australian schools, it will not in itself significantly improve education. SIF is mostly about better administration, not education. Investment in the use of IT for education and training teachers in its use is likely to have much more effect in producing the Federal Government's desired "Education Revolution".

Previous attempts at fully integrated IT systems for education ha
ve proved problematic in Australia. The SIF Newsletter indicates that progress has been made with a SIF Pilot in Western Australia developing an open source "agent development framework" to be reused across Australia. A useful approach might be to apply the technology and development philosophy which Richard Volpato has applied at the Copyright Agency Limited. With this approach a set of open source tools would be used to build a system which allows resource intensive processing to not be done in real time and which allows end users to customise reports. Rather than just producing a set of standards, with Australian schools then need to purchase overseas developed software in order to comply with, the Australian government could fund the development of free open source software which implements the standards and can be used for free by Australian schools. This approach was used successfully by the New Zealand government's Tertiary Education Commission's e-learning Collaborative Development Fund (eCDF), to develop the Mahara ePortfolio software for use by NZ schools (and now used in Australia).

1 Preamble

1.1 Abstract

1.1.1 What is SIF?

1.1.1.1 What is SIF (AU)?

1.1.2 Schools Interoperability Framework Association

1.2 Disclaimer

1.3 Certification and Compliance Claims

2 Introduction

2.1 Specification Organization

2.2 Document Conventions

2.2.1 Definitions

2.2.2 Structure and Values

2.2.3 Examples

2.2.4 References

2.2.5 Terminology

2.2.6 XML Diagrams

2.3 Version Numbers

2.4 Highlighted Additions/Changes Since Version 2.x

2.4.1 Data Model

3 Architecture

3.1 Assumptions

3.1.1 Notes on Related Technologies

3.2 Concepts

3.2.1 Data Model

3.2.2 Zone Architecture

3.2.2.1 Contexts

3.2.3 Infrastructure and Messaging

3.2.4 Data Provision: A Request/Response Model

3.2.5 Event Reporting: A Publish/Subscribe Model

3.2.6 Communication: An Asynchronous Model

3.2.7 Security Model

3.2.7.1 Encryption
3.2.7.2 Authentication and Validation
3.2.7.3 Access Control

3.3 SIF Architecture

3.3.1 Architectural Components

3.3.2 Naming Conventions for Agents and Zone Integration Servers

3.3.3 Object Identifiers

3.3.3.1 Persistence

3.3.4 Agent/Application Requirements

3.3.4.1 Communicate with the ZIS
3.3.4.2 Transmit Application Changes to the ZIS
3.3.4.3 Respond to Requests
3.3.4.4 Changes Required to the Vendor's Application
3.3.4.5 Support Authentication and Digital Signatures
3.3.4.6 Agent Local Queue
3.3.4.7 Wildcard Version Support

3.3.5 Zone Integration Server Requirements

3.3.5.1 Access Control List
3.3.5.2 Zone Status
3.3.5.3 Zone Context Registry
3.3.5.4 Administration
3.3.5.5 Support Selective Message Blocking (SMB) to Resolve Deadlocks
3.3.5.5.1 Description
3.3.5.5.2 Requirements
3.3.5.5.3 Example

3.3.6 Message Processing

3.3.6.1 Message Validation
3.3.6.2 Message Identification
3.3.6.3 Message Security ...
3.3.6.4 Message Robustness
3.3.6.5 Message Cycle
3.3.6.6 Message Delivery ...
3.3.6.6.1 The "Push" Model
3.3.6.6.2 The "Pull" Model
3.3.6.6.3 "Multiple Version" Zones

3.3.7 Infrastructure Transport Layer

3.3.7.1 SIF HTTPS Transport
3.3.7.1.1 HTTPS Request/Response Model
3.3.7.1.2 HTTP Request Headers
3.3.7.1.3 HTTP Response Headers
3.3.7.1.4 100 (Continue)
3.3.7.1.5 3XX, 4XX, 5XX Notices
3.3.7.2 SIF HTTP Transport
3.3.7.3 SIF HTTP(S) Transport Compression
3.3.7.4 SIF_Protocol/SIF_Property Accept-Encoding
3.3.7.5 HTTP Client Requirements
3.3.7.6 HTTP Server Requirements
3.3.7.7 Push-Mode Agent Requirements
3.3.7.8 Zone Integration Server Requirements

4 Messaging

4.1 Agent Protocols

4.1.1 Agent Messaging Protocols

4.1.1.1 SIF_Register
4.1.1.2 SIF_Unregister
4.1.1.3 SIF_Provide
4.1.1.4 SIF_Unprovide
4.1.1.5 SIF_Subscribe
4.1.1.6 SIF_Unsubscribe
4.1.1.7 SIF_Provision
4.1.1.8 SIF_Event
4.1.1.9 SIF_Request
4.1.1.10 SIF_Ping
4.1.1.11 SIF_Sleep
4.1.1.12 SIF_Wakeup
4.1.1.13 SIF_GetZoneStatus
4.1.1.14 SIF_GetAgentACL
4.1.1.15 SIF_CancelRequests
4.1.1.16 SIF_GetMessage (Pull-Mode only)
4.1.1.17 SIF_Ack (Push-Mode)
4.1.1.18 SIF_Ack (Pull-Mode)

4.1.2 Agent Message Handling Protocols

4.1.2.1 SIF_Message
4.1.2.2 SIF_Event
4.1.2.3 SIF_Request
4.1.2.4 SIF_Response
4.1.2.5 SIF_Ping (Push-Mode only)
4.1.2.6 SIF_Sleep (Push-Mode only)
4.1.2.7 SIF_Wakeup (Push-Mode only)
4.1.2.8 SIF_CancelRequests (Push-Mode only) (optional)

4.2 ZIS Protocols

4.2.1 ZIS Messaging Protocols

4.2.1.1 SIF_Message Delivery (SIF_Event, SIF_Request, SIF_Response to a Push-mode Agent)
4.2.1.2 SIF_Ping (to a Push-mode Agent)
4.2.1.3 SIF_Sleep (to a Push-mode Agent)
4.2.1.4 SIF_Wakeup (to a Push-mode Agent)
4.2.1.5 SIF_CancelRequests (to a Push-mode Agent)

4.2.2 ZIS Message Handling Protocols

4.2.2.1 SIF_Message
4.2.2.2 SIF_Register
4.2.2.3 SIF_Unregister
4.2.2.4 SIF_Provide
4.2.2.5 SIF_Unprovide
4.2.2.6 SIF_Subscribe
4.2.2.7 SIF_Unsubscribe
4.2.2.8 SIF_Provision
4.2.2.9 SIF_Event
4.2.2.10 SIF_Request
4.2.2.11 SIF_Response
4.2.2.11.1 Implementation Notes
4.2.2.12 SIF_Ping
4.2.2.13 SIF_Sleep
4.2.2.14 SIF_Wakeup
4.2.2.15 SIF_GetZoneStatus
4.2.2.16 SIF_GetAgentACL
4.2.2.17 SIF_CancelRequests
4.2.2.18 SIF_GetMessage
4.2.2.19 SIF_Ack (from a Push-Mode Agent)
4.2.2.20 SIF_Ack (from a Pull-Mode Agent)

5 Infrastructure

5.1 Common Elements

5.1.1 SIF_Message

5.1.2 SIF_Header

5.1.3 SIF_EncryptionLevel

5.1.4 SIF_AuthenticationLevel

5.1.5 SIF_Contexts

5.1.6 SIF_Context

5.1.7 SIF_Protocol

5.1.8 SIF_Status

5.1.9 SIF_Error

5.1.10 SIF_Query

5.1.10.1 SIF_ConditionGroup
5.1.10.2 SIF_Element Syntax

5.1.11 SIF_ExtendedQuery

5.1.11.1 Mapping SIF_Query to SIF_ExtendedQuery

5.1.12 SIF_ExtendedQueryResults

5.2 Messages

5.2.1 SIF_Ack

5.2.2 SIF_Event

5.2.3 SIF_Provide

5.2.4 SIF_Provision

5.2.5 SIF_Register

5.2.6 SIF_Request

5.2.7 SIF_Response

5.2.8 SIF_Subscribe

5.2.9 SIF_SystemControl

5.2.10 SIF_Ping

5.2.11 SIF_Sleep

5.2.12 SIF_Wakeup

5.2.12.1 SIF_Sleep/SIF_Wakeup versus SIF_Register/SIF_Unregister

5.2.13 SIF_GetMessage

5.2.14 SIF_GetZoneStatus

5.2.15 SIF_GetAgentACL

5.2.16 SIF_CancelRequests

5.2.17 SIF_Unprovide

5.2.18 SIF_Unregister

5.2.19 SIF_Unsubscribe

5.3 Objects

5.3.1 SIF_AgentACL

5.3.2 SIF_LogEntry

5.3.3 SIF_ZoneStatus

6 Data Model

6.1 Introduction

6.1.1 Format

6.1.2 Conventions

6.1.2.1 Object Attributes/Primary Keys
6.1.2.2 Object References
6.1.2.3 Lists/Repeatable Elements
6.1.2.3.1 ActionList
6.1.2.3.2 List
6.1.2.4 Supported Optional Elements Without Values
6.1.2.5 Externally-Defined XML

6.2 Common Elements

6.2.1 Address

6.2.2 AddressList

6.2.3 AttendanceCode

6.2.4 BirthDate

6.2.5 ContactInfo

6.2.6 Country

6.2.7 Demographics

6.2.8 EducationalLevel

6.2.9 ElectronicId

6.2.10 ElectronicIdList

6.2.11 Email

6.2.12 EmailList

6.2.13 EnglishProficiency

6.2.14 GraduationDate

6.2.15 GridLocation

6.2.16 HomeroomNumber

6.2.17 LanguageList

6.2.18 LifeCycle

6.2.19 LocalId

6.2.20 Location

6.2.21 Name

6.2.22 OnTimeGraduationYear

6.2.23 OperationalStatus

6.2.24 OtherCodeList

6.2.25 OtherNames

6.2.26 PersonInfo

6.2.27 PhoneNumber

6.2.28 PhoneNumberList

6.2.29 PrincipalInfo

6.2.30 ProjectedGraduationYear

6.2.31 PublishInDirectory

6.2.32 Relationship

6.2.33 SchoolContactList

6.2.34 SchoolURL

6.2.35 SchoolYear

6.2.36 SIF_ExtendedElements

6.2.37 SIF_Metadata

6.2.38 StateProvince

6.2.39 StateProvinceId

6.2.40 SubjectArea

6.2.41 SubjectAreaList

6.2.42 TimeElement

6.2.43 YearLevel

6.2.44 YearLevels

6.3 SIF AU

6.3.1 CalendarDate

6.3.2 CalendarSummary

6.3.3 Identity

6.3.4 LEAInfo

6.3.5 PersonPicture

6.3.6 ReportAuthorityInfo

6.3.7 ReportManifest

6.3.8 RoomInfo

6.3.9 SchoolCourseInfo

6.3.10 SchoolInfo

6.3.11 SchoolPrograms

6.3.12 SessionInfo

6.3.13 SIF_ReportObject

6.3.14 StaffAssignment

6.3.15 StaffPersonal

6.3.16 StudentActivityInfo

6.3.17 StudentActivityParticipation

6.3.18 StudentAttendanceSummary

6.3.19 StudentContactPersonal

6.3.20 StudentContactRelationship

6.3.21 StudentDailyAttendance

6.3.22 StudentParticipation

6.3.23 StudentPeriodAttendance

6.3.24 StudentPersonal

6.3.25 StudentSchoolEnrollment

6.3.26 StudentSDTN

6.3.27 StudentSnapshot

6.3.28 SummaryEnrollmentInfo

6.3.29 TeachingGroup

6.3.30 TermInfo

6.3.31 TimeTable

6.3.32 TimeTableCell

6.3.33 TimeTableSubject


A Common Types

A.1 AbstractContentPackageType

A.2 BaseNameType

A.3 DefinedProtocolsType

A.4 ExtendedContentType

A.5 GUIDType

A.6 IdRefType

A.7 MonetaryAmountType

A.8 MsgIdType

A.9 NameOfRecordType

A.10 ObjectNameType

A.11 OtherNameType

A.12 PartialDateType

A.13 RefIdType

A.14 ReportDataObjectType

A.15 ReportPackageType

A.16 SelectedContentType

A.17 SIF_EventObjectType

A.18 SIF_ExampleObjectType

A.19 SIF_LogEntryExtendedContentType

A.20 SIF_ProvideObjectNamesType

A.21 SIF_RequestObjectNamesType

A.22 SIF_ResponseObjectsType

A.23 SIF_ResponseObjectType

A.24 SIF_SubscribeObjectNamesType

A.25 URIOrBinaryType

A.26 VersionType

A.27 VersionWithWildcardsType

B Code Sets

AU Code Sets

Activity Involvement Code

Activity Type

Address Role

Address Type

Attendance Code

Attendance Status

Australian Citizenship Status

Australian Standard Classification of Cultural and Ethnic Groups (ASCCEG)

Australian Standard Classification of Languages (ASCL)

Australian Standard Classification of Religious Groups (ASCRG)

Australian Standard Geographical Classification (ASGC)

Birthdate Verification

Calendar Event

Day Value Code

Dwelling Arrangement

Education Agency Type

Electronic Id Type

Email Type

Employment Type

English Proficiency

Enrollment Time Frame

Entry Type

Exit/Withdrawal Status

Exit/Withdrawal Type

Federal Electorate

FTPT Status Code

Immunisation Certificate Status

Indigenous Status

Language Type

Name Usage Type

Non-School Education

Operational Status

Permanent Resident Status

Picture Source

Program Funding Source Code

Progress Level

Public School Catchment Status

Relationship To Student

School Co-Ed Status

School Education Level Type

School Enrollment Type

School Focus Code

School Level

School Location

School Sector Code

School System

Session Type

Sex Code

Source Code Type

Standard Australian Classification of Countries (SACC)

State Territory Code

Student/Family Program Type

Systemic Status

Telephone Number Type

Visa Statistical Code

Visa Sub Class

Year Level Code

Yes Or No Category

Infrastructure

Status Code

Error Category

XML Validation Error

Encryption Error

Authentication Error

Access and Permission Error

Registration Error

Provision Error

Subscription Error

Request and Response Error

Event Reporting and Processing Error

Transport Error

System Error

Generic Message Handling Error

SMB Error

SIF_LogEntry

Agent Error Condition

Data Issues with Failure Result

Data Issues with Success Result

Success Category

ZIS Error Condition

C External Code Sets

International Standards Organization (ISO)

4217 Currency names and code elements

D Notes on Related Technologies

D.1 SIF and HTTP(S)

D.2 SIF and URLs

D.3 SIF and XML

D.4 SIF and Unicode

D.5 SIF and XPath

D.6 SIF and XML Schema

D.6.1 xs:boolean

D.6.2 xs:time

D.6.3 xs:date

D.6.4 xs:dateTime

D.7 SIF and XML Namespaces

D.8 SIF and UUIDs/GUIDs

D.9 SIF and Web Services

E Wildcard Version Support Implementation Notes

E.1 XML Parsing

E.2 XML Validation

E.3 SIF_Message Handling

F Selective Message Blocking (SMB) Example

F.1 Example

G Background/Supplementary Documentation (non-normative)

H Index of Tables

I Index of Examples

J Index of Figures

K Index of Objects

L Index of Common Elements

M Index of Common Types

N Index of Elements

O Index of Attributes

P References

From: SIF Implementation Specification (Australia), Version 1.0, November 20, 2009




No comments: