1EdTech Course Management Service Information Model

Version 1.0

 

 

Final Release
Version 1.0

 

Date Issued:            30 June 2011

Latest version:         /lis/

IPR and Distribution Notices

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.

1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on 1EdTech’s procedures with respect to rights in 1EdTech specifications can be found at the 1EdTech Intellectual Property Rights web page: /imsipr_policyFinal.pdf.

Copyright © 2011 1EdTech Consortium. All Rights Reserved.

Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: /license.html.

Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.

The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns.

THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.

Table of Contents

List of Figures

List of Tables

1          Introduction

1.1      Course Management Service Overview

1.2      Scope and Context

1.3      Structure of this Document

1.4      Compatibility Commitment

1.5      Nomenclature

1.6      References

2          Course Management Service Description

2.1      An Abstract Representation

2.2      Course Management Service Architecture & Specification Model

2.3      Course Composite Objects

2.4      Synchronous & Asynchronous Services

2.5      Handling the Service Status Codes

3          Behavioral Model

3.1      Service Definition

3.2      CourseTemplateManager Interface Description

3.2.1       CreateCourseTemplate() Operation

3.2.2       CreateByProxyCourseTemplate() Operation

3.2.3       DeleteCourseTemplate() Operation

3.2.4       ReadCourseTemplate() Operation

3.2.5       ReadAllCourseTemplateIds() Operation

3.2.6       ReadCourseTemplateIdsFromSavePoint() Operation

3.2.7       ReadCourseOfferingIdsForCourseTemplate() Operation

3.2.8       ReadCourseTemplates() Operation

3.2.9       ReadCourseTemplatesFromSavePoint() Operation

3.2.10     UpdateCourseTemplate() Operation

3.2.11     ReplaceCourseTemplate() Operation

3.2.12     DiscoverCourseTemplateIds() Operation

3.2.13     ChangeCourseTemplateIdentifier() Operation

3.3      CourseOfferingManager Interface Description

3.3.1       CreateCourseOffering() Operation

3.3.2       CreateByProxyCourseOffering() Operation

3.3.3       CreateCourseOfferingFromCourseOffering() Operation

3.3.4       DeleteCourseOffering() Operation

3.3.5       ReadCourseOffering() Operation

3.3.6       ReadAllCourseOfferingIds() Operation

3.3.7       ReadAllActiveCourseOfferingIdsForAcademicSession() Operation

3.3.8       ReadCourseSectionIdsForCourseOffering() Operation

3.3.9       ReadCourseOfferingIdsFromSavePoint() Operation

3.3.10     ReadCourseOfferings() Operation

3.3.11     ReadCourseOfferingsFromSavePoint() Operation

3.3.12     ReplaceCourseOffering() Operation

3.3.13     UpdateCourseOffering() Operation

3.3.14     UpdateCourseOfferingStatus() Operation

3.3.15     DiscoverCourseOfferingIds() Operation

3.3.16     ChangeCourseOfferingIdentifier() Operation

3.4      CourseSectionManager Interface Description

3.4.1       CreateCourseSection() Operation

3.4.2       CreateByProxyCourseSection() Operation

3.4.3       CreateCourseSectionFromCourseSection() Operation

3.4.4       DeleteCourseSection() Operation

3.4.5       ReadCourseSection() Operation

3.4.6       ReadAllCourseSectionIds() Operation

3.4.7       ReadCourseSectionIdsFromSavePoint() Operation

3.4.8       ReadCourseSections() Operation

3.4.9       ReadCourseSectionsFromSavePoint() Operation

3.4.10     ReplaceCourseSection() Operation

3.4.11     UpdateCourseSection() Operation

3.4.12     UpdateCourseSectionStatus() Operation

3.4.13     DiscoverCourseSectionIds() Operation

3.4.14     ChangeCourseSectionIdentifier() Operation

3.5      SectionAssociationManager Interface Description

3.5.1       CreateSectionAssociation() Operation

3.5.2       CreateByProxySectionAssociation() Operation

3.5.3       DeleteSectionAssociation() Operation

3.5.4       ReadSectionAssociation() Operation

3.5.5       ReadAllSectionAssociationIds() Operation

3.5.6       ReadSectionAssociationIdsFromSavePoint() Operation

3.5.7       ReadSectionAssociations() Operation

3.5.8       ReadSectionAssociationsFromSavePoint() Operation

3.5.9       AddCourseSection() Operation

3.5.10     RemoveCourseSection() Operation

3.5.11     UpdateSectionAssociation() Operation

3.5.12     ReplaceSectionAssociaton() Operation

3.5.13     DiscoverSectionAssociationIds() Operation

3.5.14     ChangeSectionAssociationIdentifier() Operation

3.6      Course Object State Machines

4          Interface Data Model

4.1      AcademicSession Class Description

4.2      CourseOfferingRecord Class Description

4.3      CourseOfferingRecordSet Class Description

4.4      CourseSectionRecord Class Description

4.5      CourseSectionRecordSet Class Description

4.6      CourseTemplateRecord Class Description

4.7      CourseTemplateRecordSet Class Description

4.8      GUID Class Description

4.9      GUIDSet Class Description

4.10    QueryObject Class Description

4.11    SectionAssociationRecord Class Description

4.12    SectionAssociationRecordSet Class Description

4.13    SequenceIdentifier Class Description

4.14    Status Class Description

4.15    StatusInfo Class Description

5          End System Data Model

5.1      Key Terms and Concepts

5.2      The Structure of a Course

5.3      CourseDatabase Class Description

5.4      CourseTemplateRecord Class Description

5.4.1       CourseTemplateId Attribute Description

5.5      CourseOfferingRecord Class Description

5.5.1       CourseOfferingId Attribute Description

5.6      CourseSectionRecord Class Description

5.6.1       CourseSectionId Attribute Description

5.7      SectionAssociationRecord Class Description

5.7.1       SectionAssociationId Attribute Description

5.8      CourseTemplate Class Description

5.8.1       Label Attribute Description

5.8.2       Title Attribute Description

5.8.3       CatalogDescription Attribute Description

5.8.4       CourseNumber Attribute Description

5.8.5       Status Attribute Description

5.8.6       DefaultCredits Attribute Description

5.8.7       Org Attribute Description

5.8.8       ListofTopics Attribute Description

5.8.9       ListofPrerequisities Attribute Description

5.8.10     DataSource Attribute Description

5.8.11     RecordInfo Attribute Description

5.8.12     Extension Attribute Description

5.9      ListofPrerequisites Class Description

5.10    ListofTopics Class Description

5.11    CourseOffering Class Description

5.11.1     Label Attribute Description

5.11.2     Title Attribute Description

5.11.3     ParentTemplateId Attribute Description

5.11.4     CatalogDescription Attribute Description

5.11.5     DefaultCredits Attribute Description

5.11.6     Status Attribute Description

5.11.7     AcademicSession Attribute Description

5.11.8     Org Attribute Description

5.11.9     TimeFrame Attribute Description

5.11.10  EnrollControl Attribute Description

5.11.11  DataSource Attribute Description

5.11.12  RecordInfo Attribute Description

5.11.13  Extension Attribute Description

5.12    CourseSection Class Description

5.12.1     Label Attribute Description

5.12.2     Title Attribute Description

5.12.3     ParentOfferingId Attribute Description

5.12.4     CatalogDescription Attribute Description

5.12.5     Status Attribute Description

5.12.6     DefaultCredits Attribute Description

5.12.7     Category Attribute Description

5.12.8     MaxNumberofStudents Attribute Description

5.12.9     NumberofStudents Attribute Description

5.12.10  AcademicSession Attribute Description

5.12.11  Org Attribute Description

5.12.12  TimeFrame Attribute Description

5.12.13  EnrollControl Attribute Description

5.12.14  Location Attribute Description

5.12.15  Notes Attribute Description

5.12.16  Meeting Attribute Description

5.12.17  DataSource Attribute Description

5.12.18  RecordInfo Attribute Description

5.12.19  Extension Attribute Description

5.13    SectionAssociation Class Description

5.13.1     Label Attribute Description

5.13.2     Title Attribute Description

5.13.3     CourseSectionIdList Attribute Description

5.13.4     Status Attribute Description

5.13.5     DataSource Attribute Description

5.13.6     RecordInfo Attribute Description

5.13.7     Extension Attribute Description

5.14    ListofCourseSectionIds Class Description

5.14.1     CourseSectionId Attribute Description

5.15    Common Classes Descriptions

5.15.1     Org Class Description

5.15.2     EnrollControl Class Description

5.15.3     TimeFrame Class Description

5.15.4     Description Class Description

5.15.5     FullDescription Class Description

5.15.6     Text Class Description

5.15.7     Metadata Class Description

5.15.8     IMSExtension Class Description

5.15.9     ExtensionField Class Description

5.15.10  SourcedGUID Class Description

6          Extending and Profiling the Service

6.1      Proprietary Extensions

6.1.1       Proprietary Operations

6.1.2       Proprietary Data Elements

6.2      Profiling the Service

Appendix A – Service Status Codes

Appendix B Vocabularies

B1       Set of Defined Vocabularies

B1.1        Implementation-dependent Vocabularies

B1.2        LineItemType Vocabulary

B1.3        FieldType Vocabulary

B1.4        Language Vocabulary

B2       Using Vocabularies for the Metadata Class

B3       Using Vocabularies for the IMSExtension Class

Appendix C – File-based Data Exchange

About This Document

List of Contributors

Revision History

Index

 

List of Figures

 

Figure 2.1 Course Management service architecture model.

Figure 2.2 Structure of a Course.

Figure 2.3 Synchronous service.

Figure 2.4 Asynchronous service.

Figure 3.1 CourseManagementService CourseTemplateManager interface definition.

Figure 3.2 CourseManagementService CourseOfferingManager interface definition.

Figure 3.3 CourseManagementService interface definition.

Figure 3.4 CourseManagementService SectionAssociationManager interface definition.

Figure 3.5 State machine for a ‘courseTemplate’ object.

Figure 3.6 State machine for a ‘courseOffering’ object.

Figure 3.7 State machine for a CourseSection’ object.

Figure 3.8 State machine for a ‘sectionAssociation’ object.

Figure 5.1 CourseDatabase class diagram.

Figure 5.2 Extending a course.

Figure 5.3 CourseTemplate class diagram.

Figure 5.4 CourseOffering class diagram.

Figure 5.5 CourseSection class diagram.

Figure 5.6 SectionAssociation class diagram.

Figure 5.7 Common class diagram.

Figure C.1 Course class diagram for file-based data exchange.

 

 

List of Tables

 

Table 3.1 Summary of operations for CourseTemplateManager.

Table 3.2 Status codes for the ‘createCourseTemplate’ operation.

Table 3.3 Status codes for the ‘createByProxyCourseTemplate’ operation.

Table 3.4 Status codes for the ‘deleteCourseTemplate’ operation.

Table 3.5 Status codes for the ‘readCourseTemplate’ operation.

Table 3.6 Status codes for the ‘readAllCourseTemplateIds’ operation.

Table 3.7 Status codes for the ‘readCourseTemplateIdsFromSavePoint’ operation.

Table 3.8 Status codes for the ‘readCourseOfferingIdsForCourseTemplate’ operation.

Table 3.9 Status codes for the ‘readCourseTemplates’ operation.

Table 3.10 Status codes for the ‘readCourseTemplatesFromSavePoint’ operation.

Table 3.11 Status codes for the ‘updateCourseTemplate’ operation.

Table 3.12 Status codes for the ‘replaceCourseTemplate’ operation.

Table 3.13 Status codes for the ‘discoverCourseTemplateIds’ operation.

Table 3.14 Status codes for the ‘changeCourseTemplateIdentifier’ operation.

Table 3.15 Summary of operations for CourseOfferingManager.

Table 3.16 Status codes for the ‘createCourseOffering’ operation.

Table 3.17 Status codes for the ‘createByProxyCourseOffering’ operation.

Table 3.18 Status codes for the ‘createCourseOfferingFromCourseOffering’ operation.

Table 3.19 Status codes for the ‘deleteCourseOffering’ operation.

Table 3.20 Status codes for the ‘readCourseOffering’ operation.

Table 3.21 Status codes for the ‘readAllCourseOfferingIds’ operation.

Table 3.22 Status codes for the ‘readAllActiveCourseOfferingIdsForAcademicSession’ operation.

Table 3.23 Status codes for the ‘readCourseSectionIdsForCourseOffering’ operation.

Table 3.24 Status codes for the ‘readCourseOfferingIdsFromSavePoint’ operation.

Table 3.25 Status codes for the ‘readCourseOfferings’ operation.

Table 3.26 Status codes for the ‘readCourseOfferingsFromSavePoint’ operation.

Table 3.27 Status codes for the ‘replaceCourseOffering’ operation.

Table 3.28 Status codes for the ‘updateCourseOffering’ operation.

Table 3.29 Status codes for the ‘updateCourseOfferingStatus’ operation.

Table 3.30 Status codes for the ‘discoverCourseOfferingIds’ operation.

Table 3.31 Status codes for the ‘changeCourseOfferingIdentifier’ operation.

Table 3.32 Summary of operations for CourseSectionManager.

Table 3.33 Status codes for the ‘createCourseSection’ operation.

Table 3.34 Status codes for the ‘createByProxyCourseSection’ operation.

Table 3.35 Status codes for the ‘createCourseSectionFromCourseSection’ operation.

Table 3.36 Status codes for the ‘deleteCourseSection’ operation.

Table 3.37 Status codes for the ‘readCourseSection’ operation.

Table 3.38 Status codes for the ‘readAllCourseSectionIds’ operation.

Table 3.39 Status codes for the ‘readCourseSectionIdsFromSavePoint’ operation.

Table 3.40 Status codes for the ‘readCourseSections’ operation.

Table 3.41 Status codes for the ‘readCourseSectionsFromSavePoint’ operation.

Table 3.42 Status codes for the ‘replaceCourseSection’ operation.

Table 3.43 Status codes for the ‘updateCourseSection’ operation.

Table 3.44 Status codes for the ‘updateCourseSectionStatus’ operation.

Table 3.45 Status codes for the ‘discoverCourseSectionIds’ operation.

Table 3.46 Status codes for the ‘changeCourseSectionIdentifier’ operation.

Table 3.47 Summary of operations for SectionAssociationManager.

Table 3.48 Status codes for the ‘createSectionAssociation’ operation.

Table 3.49 Status codes for the ‘createByProxySectionAssociation’ operation.

Table 3.50 Status codes for the ‘deleteSectionAssociation’ operation.

Table 3.51 Status codes for the ‘readSectionAssociation’ operation.

Table 3.52 Status codes for the ‘readAllSectionAssociationIds’ operation.

Table 3.53 Status codes for the ‘readSectionAssociationIdsFromSavePoint’ operation.

Table 3.54 Status codes for the ‘readSectionAssociations’ operation.

Table 3.55 Status codes for the ‘readSectionAssociationsFromSavePoint’ operation.

Table 3.56 Status codes for the ‘addCourseSection’ operation.

Table 3.57 Status codes for the ‘removeCourseSection’ operation.

Table 3.58 Status codes for the ‘updateSectionAssociation’ operation.

Table 3.59 Status codes for the ‘replaceSectionAssociation’ operation.

Table 3.60 Status codes for the ‘discoverSectionAssociationIds’ operation.

Table 3.61 Status codes for the ‘changeSectionAssociationIdentifier’ operation.

Table 5.1 Class descriptors

Table 5.1 Description of the ‘CourseDatabase’ class.

Table 5.2 Description of the ‘CourseTemplateRecord’ class.

Table 5.3 Description of the ‘sourcedGUID’ attribute for the ‘Template’ class.

Table 5.4 Description of the ‘CourseOfferingRecord’ class.

Table 5.5 Description of the ‘sourcedGUID’ attribute for the ‘Offering’ class.

Table 5.6 Description of the ‘CourseSectionRecord’ class.

Table 5.7 Description of the ‘sourcedGUID’ attribute for the ‘Section’ class.

Table 5.8 Description of the ‘SectionAssociationRecord’ class.

Table 5.9 Description of the ‘sourcedGUID’ attribute for the ‘Association’ class.

Table 5.10 Description of the ‘CourseTemplate’ class.

Table 5.11 Description of the ‘label’ attribute for the ‘CourseTemplate’ class.

Table 5.12 Description of the ‘title’ attribute for the ‘CourseTemplate’ class.

Table 5.13 Description of the ‘catalogDescription’ attribute for the ‘CourseTemplate’ class.

Table 5.14 Description of the ‘courseNumber’ attribute for the ‘CourseTemplate’ class.

Table 5.15 Description of the ‘status’ attribute for the ‘CourseTemplate’ class.

Table 5.16 Description of the ‘defaultCredits’ attribute for the ‘CourseTemplate’ class.

Table 5.17 Description of the ‘org’ attribute for the ‘CourseTemplate’ class.

Table 5.18 Description of the ‘listofTopics’ attribute for the ‘CourseTemplate’ class.

Table 5.19 Description of the ‘listofPrerequisities’ attribute for the ‘CourseTemplate’ class.

Table 5.20 Description of the ‘dataSource’ attribute for the ‘CourseTemplate’ class.

Table 5.21 Description of the ‘recordInfo’ attribute for the ‘CourseTemplate’ class.

Table 5.22 Description of the ‘extension’ attribute for the ‘CourseTemplate’ class.

Table 5.23 Description of the ‘ListofPrerequisites’ class.

Table 5.24 Description of the ‘prerequisite’ attribute for the ‘ListofPrerequisites’ class.

Table 5.25 Description of the ‘ListofTopics’ class.

Table 5.26 Description of the ‘topic’ attribute ‘ListofTopics’ class.

Table 5.27 Description of the CourseOffering class.

Table 5.28 Description of the ‘label’ attribute for the ‘CourseOffering’ class.

Table 5.29 Description of the ‘title’ attribute for the ‘CourseOffering’ class.

Table 5.30 Description of the ‘parentTemplateId’ attribute for the ‘CourseOffering’ class.

Table 5.31 Description of the ‘catalogDescription’ attribute for the ‘CourseOffering’ class.

Table 5.32 Description of the ‘defaultCredits’ attribute for the ‘CourseOffering’ class.

Table 5.33 Description of the ‘status’ attribute for the ‘CourseOffering’ class.

Table 5.34 Description of the ‘academicSession’ attribute for the ‘CourseOffering’ class.

Table 5.35 Description of the ‘org’ attribute for the ‘CourseOffering’ class.

Table 5.36 Description of the ‘timeFrame’ attribute for the ‘CourseOffering’ class.

Table 5.37 Description of the ‘enrollControl’ attribute for the ‘CourseOffering’ class.

Table 5.38 Description of the ‘dataSource’ attribute for the ‘CourseOffering’ class.

Table 5.39 Description of the ‘recordInfo’ attribute for the ‘CourseOffering’ class.

Table 5.40 Description of the ‘extension’ attribute for the ‘CourseOffering’ class.

Table 5.41 Description of the CourseSection class.

Table 5.42 Description of the ‘label’ attribute for the ‘CourseSection’ class.

Table 5.43 Description of the ‘title’ attribute for the ‘CourseSection’ class.

Table 5.44 Description of the ‘parentOfferingId’ attribute for the ‘CourseSection’ class.

Table 5.45 Description of the ‘catalogDescription’ attribute for the ‘CourseSection’ class.

Table 5.46 Description of the ‘status’ attribute. for the ‘CourseSection’ class

Table 5.47 Description of the ‘defaultCredits’ attribute for the ‘CourseSection’ class.

Table 5.48 Description of the ‘category’ attribute for the ‘CourseSection’ class.

Table 5.49 Description of the ‘maxNumberofStudents’ attribute. for the ‘CourseSection’ class

Table 5.50 Description of the ‘numberofStudents’ attribute for the ‘CourseSection’ class.

Table 5.51 Description of the ‘academicSession’ attribute for the ‘CourseSection’ class.

Table 5.52 Description of the ‘org’ attribute for the ‘CourseSection’ class.

Table 5.53 Description of the ‘timeFrame’ attribute for the ‘CourseSection’ class.

Table 5.54 Description of the ‘enrollControl’ attribute for the ‘CourseSection’ class.

Table 5.55 Description of the ‘Location’ attribute for the ‘CourseSection’ class.

Table 5.56 Description of the ‘notes’ attribute for the ‘CourseSection’ class.

Table 5.57 Description of the ‘meeting’ attribute for the ‘CourseSection’ class.

Table 5.58 Description of the ‘dataSource’ attribute for the Membership class for the ‘CourseSection’ class.

Table 5.59 Description of the ‘recordInfo’ attribute for the ‘CourseSection’ class.

Table 5.60 Description of the ‘extension’ attribute for the ‘CourseSection’ class.

Table 5.61 Description of the SectionAssociation class.

Table 5.62 Description of the ‘label’ attribute for the ‘SectionAssociation’ class.

Table 5.63 Description of the ‘title’ attribute for the ‘SectionAssociation’ class.

Table 5.64 Description of the ‘courseSectionIdList’ attribute for the ‘SectionAssociation’ class.

Table 5.65 Description of the ‘status’ attribute for the ‘SectionAssociation’ class.

Table 5.66 Description of the ‘dataSource’ attribute for the ‘SectionAssociation’ class.

Table 5.67 Description of the ‘recordInfo’ attribute for the ‘SectionAssociation’ class.

Table 5.68 Description of the ‘extension’ attribute for the ‘SectionAssociation’ class.

Table 5.69 Description of the ListofCourseSectionIds class.

Table 5.70 Description of the ‘courseSectionId’ attribute for the ‘ListofCourseSectionIds’ class.

Table 5.71 Description of the Org class.

Table 5.72 Description of the ‘orgName’ attribute for the ‘Org’ class.

Table 5.73 Description of the ‘orgUnit’ attribute for the ‘Org’ class.

Table 5.74 Description of the ‘type’ attribute for the ‘Org’ class.

Table 5.75 Description of the ‘id’ attribute for the ‘Org’ class.

Table 5.76 Description of the EnrollControl class.

Table 5.77 Description of the ‘enrollAccept’ attribute for the ‘EnrollControl’ class.

Table 5.78 Description of the ‘enrollAllowed’ attribute for the ‘EnrollControl’ class.

Table 5.79 Description of the TimeFrame class for the ‘EnrollControl’ class.

Table 5.80 Description of the ‘begin’ attribute for the ‘EnrollControl’ class.

Table 5.81 Description of the ‘end’ attribute for the ‘EnrollControl’ class.

Table 5.82 Description of the ‘restrict’ attribute for the ‘EnrollControl’ class.

Table 5.83 Description of the ‘adminPeriod’ attribute for the ‘EnrollControl’ class.

Table 5.84 Description of the Description class.

Table 5.85 Description of the ‘shortDescription’ attribute for the ‘Description’ class.

Table 5.86 Description of the ‘longDescription’ attribute for the ‘Description’ class.

Table 5.87 Description of the ‘fullDescription’ attribute for the ‘Description’ class.

Table 5.88 Description of the FullDescription class.

Table 5.89 Description of the ‘mediaMode’ attribute for the ‘FullDescription’ class.

Table 5.90 Description of the ‘contentRefType’ attribute for the ‘FullDescription’ class.

Table 5.91 Description of the ‘mimeType’ attribute for the ‘FullDescription’ class.

Table 5.92 Description of the ‘descriptionText’ attribute for the ‘FullDescription’ class.

Table 5.93 Description of the ‘Text’ class.

Table 5.94 Description of the ‘language’ attribute for the ‘Text’ class.

Table 5.95 Description of the ‘text’ attribute for the ‘Text’ class.

Table 5.96 Description of the Metadata class.

Table 5.97 Description of the ‘metadataNameVocabulary’ attribute for the Metadata class.

Table 5.98 Description of the ‘metadataTypeVocabulary’ attribute for the Metadata class.

Table 5.99 Description of the ‘metadataField’ attribute for the Metadata class.

Table 5.100 Description of the IMSExtension class.

Table 5.101 Description of the ‘extensionNameVocabulary’ attribute for the IMSExtension class.

Table 5.102 Description of the ‘extensionTypeVocabulary’ attribute for the IMSExtension class.

Table 5.103 Description of the ExtensionField class.

Table 5.104 Description of the ‘fieldName’ attribute for the ‘ExtensionField’ class.

Table 5.105 Description of the ‘fieldType’ attribute for the ‘ExtensionField’ class.

Table 5.106 Description of the ‘fieldValue’ attribute for the ‘ExtensionField’ class.

Table 5.107 Description of the SourcedGUID class.

Table 5.108 Description of the ‘refAgentInstanceID’ attribute for the SourcedGUID class.

Table 5.109 Description of the ‘sourcedId’ attribute for the SourcedGUID class.

Table A.1 Status codes for the service operations.

Table A.2 Common status codes for the service operations.

Table B1.1 Set of implementation dependent vocabularies.

Table B1.2 The status attribute external vocabulary.

Table B1.3 The fieldType external vocabulary.

 

1                  Introduction

1.1            Course Management Service Overview

The Course Management Service (CMS) specification is the definition of how systems manage the exchange of information that describes courses.  The Course Management Service specification is constructed following the recommendations documented in the 1EdTech GLC Abstract Framework (IAF) [IAF, 03a], [IAF, 03b], [IAF, 03c].  This means that this specification is based upon the concepts of:

·         Interoperability – Course Management Service focuses on the exchange of information about Courses between systems.  There are no definitions in the specification on how the data is managed within the systems;

·         Service-oriented – Course Management Service defines the exchange of information in terms of the services being supplied by the collaboration of the systems;

·         Component-based – for example, the Course Management Service is combined with the Group Management Service, Membership Management Service, Person Management Service, Outcomes Management Service and Bulk Data Exchange Management Service to provide the Learning Information Services [LIS, 11a];

·         Layering – the Course Management Service is a part of the Application Services layer but it interacts with the services available in the Common Services layer e.g., authentication;

·         Behaviors and Data Models – the Course Management Service is defined in terms of its behaviors and data models.  The behaviors cause changes in the state of the data model and the state of the data model will only be altered as a result of a clearly defined behavior;

·         Multiple Bindings – the Course Management Service information model is defined using the Unified Modeling Language (UML).  This enables reliable mapping of the information model into a range of different bindings.  The binding of immediate importance is to the Web Services Description Language (WSDL);

·         Adoption – whenever appropriate, the Course Management Service specification makes use of other 1EdTech GLC and non-1EdTech GLC standards and specifications.

The logical structure of a Course is defined as composed of Templates, Offerings, Sections and Associations.  A Template may have one or more Offering and each Offering may have one of more Sections. Templates, Offerings and Sections define the logical structure of a Course. Associations are collections of Sections that have some educational collaborative relevance.  Participation in the activity defined in a Template, Offering and Section is described using a mapping to the equivalent Membership.  The structure of a course can be extended using Groups i.e., either as sub-structures below the Section or as organizational structures above a Template.  A Group is as defined in the Group Management Service specification [GMS, 11].  The standard create, read, update, replace, delete and simple discovery operations are available for managing Templates, Offerings and Sections.  Other operations are defined to support specific business requirements. 

1.2            Scope and Context

This document is the 1EdTech Course Management Service Information Model v1.0 and as such it is used as the basis for the development of the following documents:

a)       1EdTech Course Management Service WSDL Binding v1.0 [CMS, 11] – the description of the WSDL binding of the Information Model.

The core uses-cases for the Course Management Service are described as a subset of the Learning Information Services Specification [LIS, 11b].

This information model defines the Course Management Service Abstract Application Programming Interface (a-API).  The Learning Information Services specification, of which the Course Management Service is a component, is a series of behavioral models that define how the data models are to be manipulated.  These behavioral models are described using the Unified Modeling Language (UML) [SDN07, 07].

1.3            Structure of this Document

The structure of this document is:

2.     Course Management Service Description

The description of the overall structure and operation of the Course Management Service.  This includes the description of the architectural model and the domain object model;

3.     Behavioral Model

The definition of the operations of Course Management Service application service.  This focuses on the description of the behaviors supported by the service;

4.     Interface Data Model

The definition of the data models exchanged between the Course Management Service End Systems.  These are the parameters exchanged across the interoperability interface;

5.     End System Data Model

The definition of the data models in the Course Management Service End Systems.  This addresses the persistence of the data with respect to interoperability;

6.     Extending and Profiling the Service

Identification of the ways in which the Course Management Service can be extended both in terms of the addition of new constituent services and proprietary extensions to a service;

Appendix A Service Status Codes

A summary list of the status codes, and their causes, that can be returned by each of the operations forming the Course Management Service;

Appendix B Vocabularies

A summary of the set of vocabularies that are used within the specification;

Appendix C File-based Data Exchange

The out-of-band file exchange used in response to receiving a URL for an external data file that contains the request data.

1.4            Compatibility Commitment

The Course Management Service was not part of the 1EdTech GLC Enterprise Services v1.0 specification [ES, 06].  Instead, this functionality was supported using the 1EdTech GLC Group Management Service v1.0 [GMS, 06] specification in a variety of different ways.  This created interoperability problems hence the creation of this service specification.  The Course Management Service v1.0 is closely linked to the Group Management Service (GMS) v2.0 [GMS, 11] and Membership Management Service (MMS) v2.0 [MMS, 11].  The MMS is used to define the participants in a Course defined by the CMS and Courses are extended using the GMS.  Therefore the GMS and MMS must be implemented to obtain the full functionality of the CMS.

In general, there is NO backwards compatibility between the usage of the CMSv1.0 and the ways in which GMS v1.0 has been implemented to support course management.  Vendors may define compatibility bridges for their own implementations but these are outside the scope of this specification.

1.5            Nomenclature

a-API                     Abstract Application Programming Interface

API                         Application Programming Interface

CMS                       Course Management Service

GMS                       Group Management Service

IAF                         1EdTech GLC Abstract Framework

LIS                         Learning Information Services

MMS                      Membership Management Service

PIM                        Platform Independent Model

PSM                       Platform Specific Model

RFC                        Request For Comment

SDN                        Specification Development Note

UML                      Unified Modeling Language

URL                       Uniform Resource Locator

WSDL                    Web Services Description Language

1.6            References

[APG, 05a]            1EdTech GLC Application Profile Guidelines Overview: Part 1 – Management Overview v1.0, 1EdTech Consortium, K.Riley, October 2005. /ap/index.html.

[APG, 05b]            1EdTech GLC Application Profile Guidelines White Paper: Part 2 Technical Manual, S.Wilson and K.Riley, Version 1.0, 1EdTech Consortium, October 2005. /ap/index.html.

[BDEMS, 11]        1EdTech GLC Bulk Data Exchange Management Service v1.0 Information Model v1.0 Final Release, L.Feng, W.Lee and C.Smythe, 1EdTech Consortium, June 2011.

[CMS, 11]             1EdTech GLC Course Management Service v1.0 WSDL Binding v1.0 Final Release, L.Feng, W.Lee and C.Smythe, 1EdTech Consortium, June 2011.

[ES, 06]                  1EdTech GLC Enterprise Services Overview v1.0 Final Release, C.Vento and C.Smythe, 1EdTech Consortium, June 2006.

[GMS, 06]             1EdTech/GLC Group Management Services Information Model v1.0 Final Release, C.Vento and C.Smythe, 1EdTech Consortium, June 2006.

[GMS, 11]             1EdTech GLC Group Management Service v2.0 Information Model v1.0 Final Release, L.Feng, W.Lee and C.Smythe, 1EdTech Consortium, June 2011.

[GWS, 05]             1EdTech GLC General Web Services WSDL Binding Guidelines v1.0 Final Specification, C.Schroeder, J.Simon and C.Smythe, 1EdTech Consortium, December 2005.

[IAF, 03a]             1EdTech Abstract Framework: Applications, Services & Components v1.0, Ed. C.Smythe, 1EdTech Consortium, July 2003.

[IAF, 03b]             1EdTech GLC Abstract Framework: Glossary v1.0, Ed. C.Smythe, 1EdTech Consortium, July 2003.

[IAF, 03c]              1EdTech GLC Abstract Framework: White Paper v1.0, Ed. C.Smythe, 1EdTech Consortium, July 2003.

[LIS, 11a]              1EdTech GLC Learning Information Services v2.0 Overview v1.0 Final Release, L.Feng, W.Lee and C.Smythe, 1EdTech Consortium, June 2011.

[LIS, 11b]              1EdTech GLC Learning Information Services v2.0 Specification v1.0 Final Release, L.Feng, W.Lee and C.Smythe, 1EdTech Consortium, June 2011.

[LIS, 11c]              1EdTech GLC Learning Information Services v2.0 Best Practices & Implementation Guide v1.0 Final Release, L.Feng, W.Lee and C.Smythe, 1EdTech Consortium, June 2011.

[MMS, 11]            1EdTech GLC Membership Management Service v2.0 Information Model v1.0 Final Release, L.Feng, W.Lee and C.Smythe, 1EdTech Consortium, June 2011.

[SDN07, 06]          1EdTech GLC Specification Note: UML Profile for Platform Independent Model Descriptions of Specifications for Data Models v1.0, C.Smythe, 1EdTech Consortium, October 2006.

[SDN11, 06]          1EdTech GLC Specification Note 11: Vocabulary Definition, Registration & Maintenance Procedures, C.Smythe, 1EdTech Consortium, October 2006.

[VDEX, 04]           1EdTech Vocabulary Definition Exchange Best Practice and Implementation Guide, Version 1.0 Final Specification, A. Cooper, 1EdTech Consortium, 2005. Online version:  /vdex/vdexv1p0/imsvdex_bestv1p0.html

 

2                  Course Management Service Description

2.1            An Abstract Representation

It is important to remember that this document contains a description of the underlying information model in terms of the abstract API.  The manner in which this abstract representation is visualized is not intended to dictate the implementation form of a Course Management System.  The breakdown of the service into its interface classes is a convenient way to document the set of behaviors. The objective for producing these interfaces is to identify and define the messages that are exchanged between the end-systems to realize the system behaviors required of the service.

The internal organization of an implementation of the full abstract API is beyond the scope of this specification.  The only constraint is that the external behavior of the abstract API complies with this specification.  This means that a .NET, J2EE, etc. physical implementation of this abstract API does not have to represent the functionality using the same breakdown of operations/methods.  This physical implementation is not subject to the conformance specification.

It is important to note that the UML representation of the interfaces is used to help develop and document the Course Management Service Information Model.  It is not a requirement for an implementation to implement this interface as defined i.e., to use the same parameters, etc.  Conformance against this specification will be confirmed by inspecting the appropriate binding of the information model and ensuring that the relevant information is present and that different sequences of activity result in the predicted and mandated behavior.  It is essential that the behaviors described by each of the operations are fully supported and that the behaviors described by different sequences be also maintained.

2.2            Course Management Service Architecture & Specification Model

The basic architectural model for the Course Management Service specification is shown in Figure 2.1. In this architecture the scope of the Course Management Service specification is shown as the dotted line.  The scope of the interoperability is the data and behavioral models of the objects being exchanged.

Figure 2.1 Course Management service architecture model.

It is important to remember that the structure of the exchanged information has NO bearing on how the same information is contained within the ‘source’ and ‘target’ Learning Information Services systems (the Course object repositories in the two end-systems).  It is simply a representation of the data used to facilitate exchange between the end-systems.  The only constraint on the end-system repositories is that they provide data persistence consistent with the required behavior.

2.3            Course Composite Objects

It is important to note that this is an interoperability specification and as such it makes no statements about how information is stored within the exchanging end systems.  The objects in the end-systems must be persistent otherwise sequences of operation on the same object will not be possible.  Reference to these objects in the interface is through a SourcedId however this identifier does not have to be the key stored within the end-systems.  If different keys are used in the end-systems then it is the responsibility of the end-systems to maintain the mapping between that key and the SourcedId, i.e., the interface must never be exposed to the keys of the end-systems.

There is no such thing as a Course object.  Instead, Courses are reflected in four types of object each of which has its own SourcedId.  The structure of a Course is shown schematically in Figure 2.2.

Figure 2.2 Structure of a Course.

The components of a Course are:

·         Course Template (or just Template) – the identification of the basic and definition of the course e.g., Biology 101.  A CourseTemplate will, in general, have one or more CourseOfferings associated with it;

·         Course Offering (or just Offering) – the allocation of the course to an academic session e.g., Maths 101 Semester 1.  A CourseOffering will, in general, have one or more CourseSections associated with it;

·         Course Section (or just Section) – the assignment of teaching resources to the scheduled activities that constitute the course e.g., English 101 Semester 2 Seminars;

·         Section Association (or just Association) – the association of two or more Course Sections for some educational purpose.

Groups, as defined in the 1EdTech Group Management Service specification v2.0 [GMS, 11], can be used to extend the basic structure of a Course (See Sub-section 5.2).

2.4            Synchronous & Asynchronous Services

Within the context of the Course Management Service the definition of synchronous and asynchronous services is:

·         Synchronous – the source service is blocked until the final response from the target service is received. A schematic representation of the information flow for a synchronous service is shown in Figure 2.3;

·         Asynchronous – the source service is not blocked and so more than one request can be outstanding at any moment in time. A schematic representation of the information flow for an asynchronous service is shown in Figure 2.4.

Figure 2.3 Synchronous service.

Figure 2.4 Asynchronous service.

It is stressed that the abstract-API dos not differentiate between synchronous and asynchronous services[1].  The support for these two approaches is at the binding level only.

The key difference is that for an asynchronous service more than one request can be issued at any one time (it should be noted that an asynchronous service can be supported using synchronous messaging).  In both cases the service assumes a perfect messaging system i.e., request, response and acknowledgement messages have a guaranteed delivery grade of service.

2.5            Handling the Service Status Codes

Each operation in a service is mapped to an appropriate message exchange pattern.  Any response/acknowledgement message will contain status information.  This status information provides contextual information about the completed success or otherwise of the operation.  There are two types of status information that are available to the end-systems:

·         Business transaction – these are the status reports that reflect the business logic of the transactions being exchanged by the end-systems.  This status information will be contained within the message header under a specially defined data structure.  The status information contained herein is also used to contain any error codes i.e., error reporting is handled as a subset of status information reporting;

·         Messaging fault– these are fault codes that are reported by the messaging infrastructure and which are carried in the messages.

It is important to note that messaging errors may indicate that the original request never reached the service provider end-system.  In this case the service consumer implementation that handles the status information is responsible for mapping the message infrastructure failure codes to the equivalent business transaction status code.  The message infrastructure failure codes have no meaning with respect to an 1EdTech GLC specification.  The 1EdTech GLC specifications do not describe how the status information is to be handled within an end-system i.e., this will depend on how the abstract API is physically realized within an implementation.  Therefore, it is important that an implementation can:

·         Combine the transaction status information and any message fault error codes in a single integrated status reporting mechanism.  Any other system failure information that is made available by an implementation should also use the same mechanism;

·         Examine the status information reported after the completion of the appropriate phase of an operation and especially once the operation has been completed.  This may require an explicit status information call or it may be reported as part of the API call;

·         Differentiate the status information reports for each transaction within an operation.  Remember that some specifications provide operations that can contain more than one transaction request and that a different status report may be given for each of those transactions.

Exception handling is the system’s response to known or unknown error conditions.  Exception handling is outside the scope of an 1EdTech GLC specification.  However, an error condition should not cause the end-systems to fail in an uncontrolled manner.  The requirement for every operation to return status information is to enable an implementation to terminate in a controlled fashion.

 

3                  Behavioral Model

3.1            Service Definition

The CourseManagementService is used to model the service responsible for manipulating information about course structures.  The CourseManagementService interfaces are shown in Figures 3.1, 3.2, 3.3 and 3.4.  The CourseManagementService is defined as a four interfaces: CourseTemplateManager that supports the manipulation of CoureTemplates; CourseOfferingManager that supports the manipulation of CourseOfferings; CourseSectionManager that supports the manipulation of CourseSections; and SectionAssociation Manager that supports the manipulation of SectionAssociations.

3.2            CourseTemplateManager Interface Description

The CourseTemplateManager interface class, as shown in Figure 3.1, describes the operations on a CourseTemplate.  The interface stereotype indicates that there are no attributes for this class.  The set of operations are summarized in Table 3.1.

 

 

Figure 3.1 CourseManagementService CourseTemplateManager interface definition.

 


Table 3.1 Summary of operations for CourseTemplateManager.

Operation

Description

createCourseTemplate

To request the creation of a populated CourseTemplate object on the target system where the source is responsible for the allocation of the unique identifier.

createByProxyCourseTemplate

To request the creation of a populated CourseTemplate object on the target system where the target is responsible for the allocation of the unique identifier.

deleteCourseTemplate

To request the deletion of a CourseTemplate object.  The CourseTemplate object is deleted and all of its associated relationships.

readCourseTemplate

To read the full contents of the identified CourseTemplate object.  The target must return all of the data it has for the CourseTemplate object.

readAllCourseTemplateIds

To obtain the set of SourcedIds which have been assigned to CourseTemplate objects.

readCourseOfferingIdsForCourseTemplate

To obtain the set of SourcedIds of the CourseOfferings associated with the CourseTemplate.

readCourseTemplateIdsFromSavePoint

To obtain the set of SourcedIds for CourseTemplates objects which have been altered since the requested reference point.  The reference point is set as zero at creation and incremented after every write operation.

readCourseTemplates

To obtain the CourseTemplate objects for a defined set of SourcedIds. This results in a single transaction that may require the exchange of a large volume of data in the response message.

readCourseTemplatesFromSavePoint

To obtain the set of CourseTemplate objects which have been altered since the requested reference point.  The reference point is set as ‘zero’ at creation and incremented after every write operation. This results in a single transaction that may require the exchange of a large volume of data in the response message.

updateCourseTemplate

To write new content into the identified CourseTemplate object.  The target must write the new data into the CourseTemplate object.  This is an additive operation.

replaceCourseTemplate

To replace the content of the identified CourseTemplate object.  The target must write the new data into the CourseTemplate object.  This is a destructive write-over of all of the original information.  In the case of the object not existing, this operation acts as an implied ‘createCourseTemplate’.

discoverCourseTemplateIds

To obtain the set of SourcedIds for CourseTemplate objects whose properties agree with those defined in the query/filter.

changeCourseTemplateIdentifier

To change the SourcedId of the CourseTemplate record.  The completion of this operation will result in later actions using the original SourcedId reporting an unknown identifier status. 

 

Note: In most cases the above operations act on a single instance of a CourseTemplate object i.e., ‘createCourseTemplate’, ‘createByProxyCourseTemplate’, ‘deleteCourseTemplate’, ‘readCourseTemplate’, ‘replaceCourseTemplate’ and ‘updateCourseTemplate’.

 


3.2.1           CreateCourseTemplate() Operation

 

Name:

createCourseTemplate

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.2 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the sourcedId allocated by the source system.  This is the identifier that must also be assigned within the target system.

courseTemplateRecord:CourseTemplateRecord – the CourseTemplate data that is to be stored in the new object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘createCourseTemplate’ request the target is instructed to create the populated CourseTemplate object and to allocate that structure the ‘sourcedId’ passed by the source.  If the supplied ‘sourcedId’ has already been allocated to another object then the request is rejected and the appropriate failure code is returned.  The reference point identifier is set to zero for the CourseTemplate object in both the source and target.

Notes:

This request contains the initial content for the CourseTemplate object.  More content can be added/replaced using the ‘updateCourseTemplate’ and/or ‘replaceCourseTemplate’ requests.

 

Table 3.2 Status codes for the ‘createCourseTemplate’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the CourseTemplate object has been created with a unique identifier.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the required unique SourcedId to the CourseTemplate object as it is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the CourseTemplate object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process and store the proprietary data model extensions used in the object.

 


3.2.2           CreateByProxyCourseTemplate() Operation

 

Name:

createByProxyCourseTemplate

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.3 and A.2.

Supplied (in) Parameters:

courseTemplateRecord:CourseTemplateRecord – the CourseTemplate data that is to be stored in the new object.

Returned (out) Parameters:

sourcedId:GUID – the identifier allocated by the target to the newly created CourseTemplate object.

Behavior:

When the source issues the ‘createByProxyCourseTemplate’ request the target is instructed to create the populated CourseTemplate object and to allocate that record a unique ‘sourcedId’. The reference point identifier is set to zero for the ‘courseTemplate’ object in both the source and target.

Notes:

This request contains the initial content for the CourseTemplate object.  More content can be added/replaced using the ‘updateCourseTemplate’ and/or ‘replaceCourseTemplate’  requests.

 

Table 3.3 Status codes for the ‘createByProxyCourseTemplate’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the CourseTemplate object has been created with the identifier supplied by the source.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocfail’

The target could not allocate a unique ‘identifier’ to the CourseTemplate object because there are no more spare identifiers available.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the CourseTemplate object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process and store the proprietary data model extensions used in the object.

 


3.2.3           DeleteCourseTemplate() Operation

 

Name:

deleteCourseTemplate

Return Function Parameter:

StatusInfo – the status of the delete request.  The permitted status codes are defined in Tables 3.4 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier to be used by the target to identify the CourseTemplate object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘deleteCourseTemplate’ request the target is instructed to delete the identified CourseTemplate object and to remove the reference to the CourseTemplate from any of the related CourseOffering objects.  All Membership associations are also deleted.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

Deletion of the CourseTemplate object does not necessarily result in the destruction of the data within the server.  The true state of the data in the target is unknown.

 

Table 3.4 Status codes for the ‘deleteCourseTemplate’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The deletion request has been fully and successfully implemented by the target system and the CourseTemplate object has been deleted.  The corresponding membership records have also been deleted.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseTemplate object identifier is unknown in the target system and so the object could not be deleted.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor= deletefailure’

The target system has not been able to delete the identified CourseTemplate object.

 


3.2.4           ReadCourseTemplate() Operation

 

Name:

readCourseTemplate

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are given in Tables 3.5 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the courseTemplate object to be read.

Returned (out) Parameters:

courseTemplateRecord:CourseTemplateRecord – the CourseTemplate data that is read from the object.

Behavior:

When the source issues the ‘readCourseTemplate’ request the target is charged with retrieving the identified record from its database and returning this data to the source.  The target is responsible for ensuring that the object contains valid data.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

The returned CourseTemplate object can only be trusted if the corresponding status code is ‘success’.

 

Table 3.5 Status codes for the ‘readCourseTemplate’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified courseTemplate object has been read from the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseTemplate object identifier is unknown in the target system and so the object could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored CourseTemplate object and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the source system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has only returned a subset of the data expected by the source e.g., only the mandatory parts.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The source system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The source cannot process and store the proprietary data model extensions used in the object.

 


3.2.5           ReadAllCourseTemplateIds() Operation

 

Name:

readAllCourseTemplateIds

Return Function Parameter:

statusInfo:StatusInfo – the status of the read request.  The permitted status codes are given in Tables 3.6 and A.2.

Supplied (in) Parameters:

None.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of SourcedIds for all of the CourseTemplate objects in the target’s course template database.

Behavior:

When the source issues the ‘readAllCourseTemplateIds’ request the target is charged with returning the sourcedIds of all of the CourseTemplates in its course template database.

Notes:

The returned set of sourcedIds may or may not already be identified as allocated in the CourseTemplates database in the source system. If no SourcedIds have been allocated then the returned data set is empty and the success status code returned.

 

Table 3.6 Status codes for the ‘readAllCourseTemplateIds’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseTemplate object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The requested data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.2.6           ReadCourseTemplateIdsFromSavePoint() Operation

 

Name:

readCourseTemplateIdsFromSavePoint

Return Function Parameter:

statusInfo:StatusInfo – the status of the read request.  The permitted status codes are given in Tables 3.7 and A.2.

Supplied (in) Parameters:

fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read.  This is the value in the source system.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of sourcedIds of the CourseTemplate objects stored on the target.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseTemplateIdsFromSavePoint’ the target returns the set of SourcedIds that have been altered from the defined reference point.

If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned.

Notes:

If no SourcedIds have been allocated then the returned data set is empty and the success status code returned.

 

Table 3.7 Status codes for the ‘readCourseTemplateIdsFromSavePoint’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseTemplate object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=savepointerror’

An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=savepointsyncerror’

The value of the save point reference from the source was later than that of the target system.  No identifiers have been returned.  The target system savepoint value is returned to the source system for information.

 


3.2.7           ReadCourseOfferingIdsForCourseTemplate() Operation

 

Name:

readCourseOfferingIdsForCourseTemplate

Return Function Parameter:

statusInfo:StatusInfo – the status of the update request.  The permitted status codes are given in Tables 3.8 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the sourcedId of the CourseTemplate whose associated CourseOfferings are to be identified.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of sourcedIds for all of the associated CourseOffering objects in the target’s database.

Behavior:

When the source issues the ‘readCourseOfferingIdsForCourseTemplate’ request the target is charged with using the supplied SourcedId of the reference CourseTemplate to return the SourcedIds of all the associated course offerings.  These relationships are identified by searching the set of CourseOfferings for the appropriate parent CourseTemplate.

An error code is returned if the target does not recognize the SourcedId as a valid CourseTemplate.

Notes:

The returned set of SourcedIds may or may not already be allocated in the CourseOffering database in the source system. If no associated course offerings are found then the returned data set is empty and the success status code returned.

 

Table 3.8 Status codes for the ‘readCourseOfferingIdsForCourseTemplate’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the set of associated CourseOffering identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseTemplate object identifier is unknown in the target system and so the request cannot be processed.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the LineItem database and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The requested data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.2.8           ReadCourseTemplates() Operation

 

Name:

readCourseTemplates

Return Function Parameter:

statusInfo:StatusInfo – the status of the read request.  The permitted status codes are given in Tables 3.9 and A.2.

Supplied (in) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the CourseTemplate objects to be read.

Returned (out) Parameters:

courseTemplateRecordSet:CourseTemplateRecordSet – the set of course template records.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseTemplates’ request the target is charged with retrieving the identified set of objects from its database. The associated read savePoint reference is updated and returned.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and a partial success code is returned for the operation.  The target is responsible for ensuring that the records contain valid data.  The target should attempt to successfully complete as much of the request as possible.

Notes:

A returned CourseTemplate record is only present if the object has been located in the target system and the full data set returned.

The enclosed data may result in a long response message.

 

Table 3.9 Status codes for the ‘readCourseTemplates’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=partialreadfail’

Some of the CourseTemplate object identifiers are unknown in the target system and so those objects could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The source system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored CourseTemplate objects and so cannot return the data.

3.2.9           ReadCourseTemplatesFromSavePoint() Operation

 

Name:

readCourseTemplatesFromSavePoint

Return Function Parameter:

statusInfo:StatusInfo – the status of the read request.  The permitted status codes are given in Tables 3.10 and A.2.

Supplied (in) Parameters:

fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read.  This is the value in the source system.

Returned (out) Parameters:

coureTemplateRecordSet: coureTemplateRecordSet – the set of course template records.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseTemplatesFromSavePoint’ request the target is charged with reading the objects that have been altered from the defined reference.

If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned.

Notes:

If no objects have been allocated then the data file will be empty (the file must be created and its URL returned) and the success status code returned.

The enclosed data may result in a long response message.

 

Table 3.10 Status codes for the ‘readCourseTemplatesFromSavePoint’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseTemplate objects have been read from the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=savepointerror’

An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=savepointsyncerror’

The value of the save point reference from the source was later than that of the target system.  No identifiers have been returned.  The target system savepoint value has been updated to that supplied by the source system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatareturn’

The target has only returned a subset of the data object e.g., only the mandatory parts.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored LineItem object and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

3.2.10       UpdateCourseTemplate() Operation

 

Name:

updateCourseTemplate

Return Function Parameter:

StatusInfo – the status of the update request.  The permitted status codes are given in Tables 3.11 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseTemplate object to be updated.

courseTemplateRecord:CourseTemplateRecord – the CourseTemplate data that is to be stored in the  object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘updateCourseTemplate’ request the target is charged with writing the supplied information into the identified record.  If any part of the write fails e.g., due to partial invalid data then the whole request is rejected and the record is left in its original state. This is an additive write operation of all the data fields supplied in the update request and fields not supplied remain unchanged.  If a field is constrained with a multiplicity of one then the ‘updateCourseTemplate’ request acts as a ‘replaceCourseTemplate’ request for that field.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

The reference counter for the object is incremented in the target system.

Notes:

The source is responsible for determining the reason of the failure.

 

Table 3.11 Status codes for the ‘updateCourseTemplate’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The update request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseTemplate object identifier is unknown in the target system and so the object could not be updated.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the received data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process the proprietary data model extensions used in the object.

 


3.2.11       ReplaceCourseTemplate() Operation

 

Name:

replaceCourseTemplate

Return Function Parameter:

statusInfo:StatusInfo – the status of the replace request.  The permitted status codes are given in Tables 3.12 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseTemplate object to be replaced.

courseTemplateRecord:TemplateRecord – the CourseTemplate data that is to be stored in the  object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘replaceCourseTemplate’ request the target is charged with writing the supplied information into the identified object.  If any part of the write fails e.g., due to partial invalid data then the whole request is rejected and the record is left in its original state. This is a destructive write-over operation of the entire CourseTemplate object.  This is equivalent to a ‘createCourseTemplate’ but for an object that already exists.

If the object identified by the supplied SourcedId cannot be located then the request is interpreted as a ‘createCourseTemplate’ invocation.

The reference counter for the object is incremented by one in the target system.

Notes:

The source is responsible for determining the reason of the failure.

 

Table 3.12 Status codes for the ‘replaceCourseTemplate’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The replace request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been changed on the target system.

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=createsuccess’

The CourseTemplate object identifier is unknown in the target system and so a new object has been successfully created instead.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process the proprietary data model extensions used in the object.

 


3.2.12       DiscoverCourseTemplateIds() Operation

 

Name:

discoverCourseTemplateIds

Return Function Parameter:

statusInfo:StatusInfo – the status of the discover request.  The permitted status codes are given in Tables 3.13 and A.2.

Supplied (in) Parameters:

queryObject:QueryObject – this is the query/filter instruction that is to be applied by the target to discover the corresponding CourseTemplate objects.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the CourseTemplate objects whose content conform to the query/filter conditions.

Behavior:

When the source issues the ‘discoverCourseTemplate Ids’ the target applies the query/filter instructions to the set of CourseTemplate objects and returns the set of SourcedIds that uphold the query/filter. 

If no CourseTemplate objects have the required properties the returned data set is empty and the success status code returned.

If the target does not understand or cannot apply the requested query/filter then an error status is returned.

Notes:

The internal structure of this QueryObject is undefined (it is should be treated as a String encoded ‘blob).  Later versions of this specification will look at the established best practices for clarification on the use of this operation.

 

Table 3.13 Status codes for the ‘discoverCourseTemplateIds’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The query/filter request has been fully and successfully implemented by the target system and the appropriate CourseTemplate identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The discover request has been fully and successfully implemented by the target system and no CourseTemplate object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownquery’

The target system cannot understand the query request that has been received i.e., the query/filter language is unknown.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.2.13       ChangeCourseTemplateIdentifier() Operation

 

Name:

changeCourseTemplateIdentifier

Return Function Parameter:

StatusInfo – the status of the change request.  The permitted status codes are given in Tables 3.14 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseTemplate object to be changed.

newSourcedId:GUID – the new identifier to be allocated to the CourseTemplate object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘changeCourseTemplateIdentifier’ request the target is charged with replacing the original SourcedId with the new supplied SourcedId.  All membership entries must be similarly changed.  All further references to the object must use the new SourcedId otherwise an ‘unknown’ object failure status code is returned.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

The reference pointer value remains unchanged.

 

Table 3.14 Status codes for the ‘changeCourseTemplateIdentifier’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The change identifier request has been fully and successfully implemented by the target system and the CourseTemplate object SourcedId has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the new unique ‘identifier’ to the CourseTemplate object as the identifier is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The current CourseTemplate identifier is unknown in the target system and so the object identifier could not be changed.

 


3.3            CourseOfferingManager Interface Description

The CourseOfferingManager interface class, as shown in Figure 3.2, describes the operations that are permitted on a CourseOfferings.  The interface stereotype indicates that there are no attributes for this class.  The set of operations are summarized in Table 3.15.

 

 

Figure 3.2 CourseManagementService CourseOfferingManager interface definition.

 

Table 3.15 Summary of operations for CourseOfferingManager.

Operation

Description

createCourseOffering

To request the creation of a populated CourseOffering object on the target system where the source is responsible for the allocation of the unique identifier.

createByProxyCourseOffering

To request the creation of a populated CourseOffering object on the target system where the target is responsible for the allocation of the unique identifier.

createCourseOfferingFromCourseOffering

To create a new CourseOffering from the supplied CourseOffering for a particular academic session.

deleteCourseOffering

To request the deletion of a CourseOffering object.  The CourseOffering object is deleted and all of its associated relationships.

readCourseOffering

To read the full contents of the identified CourseOffering object.  The target must return all of the data it has for the identified CourseOffering object.

readAllCourseOfferingIds

To obtain the set of SourcedIds which have been assigned to CourseOffering objects.

readAllActiveCourseOfferingIdsForAcademicSession

To obtain the set of SourcedIds for all of the active CourseOfferings for the identified academic session.

readCourseSectionIdsForCourseOffering

To obtain the set of SourcedIds of the CourseSections associated with the CourseOffering.

readCourseOfferingIdsFromSavePoint

To obtain the set of SourcedIds for CourseOfferings objects which have been altered since the requested reference point.  The reference point is set as zero at creation and incremented after every write operation.

readCourseOfferings

To obtain the CourseOffering objects for a defined set of identifiers. This results in a single transaction that may require the exchange of a large volume of data in the response message.

readCourseOfferingsFromSavePoint

To obtain the set of CourseOffering objects which have been altered since the requested reference point.  The reference point is set as ‘zero’ at creation and incremented after every write operation. This results in a single transaction that may require the exchange of a large volume of data in the response message.

replaceCourseOffering

To replace the content of the identified CourseOffering object.  The target must write the new data into the CourseOffering object.  This is a destructive write-over of all of the original information.  In the case of the object not existing, this operation acts as an implied ‘createCourseOffering’.

updateCourseOffering

To write new content into the identified CourseOffering object.  The target must write the new data into the CourseOffering object.  This is an additive operation.

updateCourseOfferingStatus

To change the status of the identified CourseOffering to the supplied value.

discoverCourseOfferingIds

To obtain the set of SourcedIds for CourseOffering objects whose properties agree with those defined in the query/filter.

changeCourseOfferingIdentifier

To change the SourcedId of the CourseOffering record.  The completion of this operation will result in later actions using the original SourcedId reporting an unknown identifier status. 

 

Note: In most cases the above operations act on a single instance of a CourseOffering object i.e., ‘createCourseOffering’, ‘createByProxyCourseOffering’, ‘deleteCourseOffering’, ‘readCourseOffering’, ‘replaceCourseOffering’ and ‘updateCourseOffering’.


3.3.1           CreateCourseOffering() Operation

 

Name:

createCourseOffering

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.16 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the SourcedId allocated by the source system.  This is the identifier that must also be assigned within the target system.

courseOfferingRecord:CourseOfferingRecord – the CourseOffering data that is to be stored in the new object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘createCourseOffering’ request the target is instructed to create the populated CourseOffering object and to allocate that structure the SourcedId passed by the source.  If the supplied SourcedId has already been allocated to another object then the request is rejected and the appropriate failure code is returned.  The reference point identifier is set to zero for the CourseOffering object in both the source and target.

Notes:

This request contains the initial content for the CourseOffering record.  More content can be added/replaced using the ‘updateCourseOffering’ and/or ‘replaceCourseOffering’ requests.

 

Table 3.16 Status codes for the ‘createCourseOffering’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the CourseOffering object has been created with a unique identifier.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the required unique SourcedId to the CourseOffering object as it is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the CourseOffering object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process and store the proprietary data model extensions used in the object.

 


3.3.2           CreateByProxyCourseOffering() Operation

 

Name:

createByProxyCourseOffering

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.17 and A.2.

Supplied (in) Parameters:

courseOfferingRecord:CourseOfferingRecord – the CourseOffering data that is to be stored in the new object.

Returned (out) Parameters:

sourcedId:GUID – the identifier allocated by the target to the newly created CourseOffering object.

Behavior:

When the source issues the ‘createByProxyCourseOffering’ request the target is instructed to create the populated CourseOffering object and to allocate that record a unique SourcedId. The reference point identifier is set to zero for the CourseOffering object in both the source and target.

Notes:

This request contains the initial content for the CourseOffering object.  More content can be added/replaced using the ‘updateCourseOffering’ and/or ‘replaceCourseOffering’ requests.

 

Table 3.17 Status codes for the ‘createByProxyCourseOffering’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the CourseOffering object has been created with the identifier supplied by the source.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocfail’

The target could not allocate a unique SourcedId to the CourseOffering object because there are no more spare identifiers available.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the CourseOffering object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process and store the proprietary data model extensions used in the object.

 


3.3.3           CreateCourseOfferingFromCourseOffering() Operation

 

Name:

createCourseOfferingFromCourseOffering

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.18 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the SourcedId for the CourseOffering to be cloned.

academicSession:AcademicSession – the academic session (from a pre-defined vocabulary) of the new CourseOffering object.

newSourcedId:GUID – the SourcedId to be allocated to the newly created ‘courseOffering’ object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘createCourseOfferingFromCourseOffering’ request the target is instructed to find the source CourseOffering object and to create an equivalent CourseOffering but with the new SourcedId and academic session. The reference point identifier is set to zero for the new CourseOffering object in both the source and target.

Notes:

An invalid status code will be returned if the new SourcedId has already been allocated or the academic session is incorrect.

 

Table 3.18 Status codes for the ‘createCourseOfferingFromCourseOffering’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the new CourseOffering object has been created with a unique identifier.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseOffering object identifier is unknown in the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the required unique SourcedId to the new CourseOffering object as it is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the CourseOffering object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

An invalid academic session value has been received by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

 


3.3.4           DeleteCourseOffering() Operation

 

Name:

deleteCourseOffering

Return Function Parameter:

StatusInfo – the status of the delete request.  The permitted status codes are defined in Tables 3.19 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier to be used by the target to identify the ‘courseOffering’ object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘deleteCourseOffering’ request the target is instructed to delete the identified CourseOffering object and to remove the reference to the CourseOffering from any of the related CourseTemplate, CourseSection and Membership objects.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

Deletion of the CourseOffering record does not necessarily result in the destruction of the data within the server.  The true state of the data in the target is unknown.

 

Table 3.19 Status codes for the ‘deleteCourseOffering’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The deletion request has been fully and successfully implemented by the target system and the CourseOffering object has been deleted.  The corresponding Membership objects and other relationships have also been deleted.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseOffering object identifier is unknown in the target system and so the object could not be deleted.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor= deletefailure’

The target system has not been able to delete the identified CourseOffering object.

 


3.3.5           ReadCourseOffering() Operation

 

Name:

readCourseOffering

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.20 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseOffering object to be read.

Returned (out) Parameters:

courseOfferingRecord:CourseOfferingRecord – the CourseOffering data that is read from the object.

Behavior:

When the source issues the ‘readCourseOffering’ request the target is charged with retrieving the identified record from its database and returning this data to the source.  The target is responsible for ensuring that the object contains valid data.  If the object identified by the SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

The returned CourseOffering object can only be trusted if the corresponding status code is ‘success’.

 

Table 3.20 Status codes for the ‘readCourseOffering’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseOffering object has been read from the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseOffering object identifier is unknown in the target system and so the object could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored CourseOffering object and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the source system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has only returned a subset of the data expected by the source e.g., only the mandatory parts.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The source system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The source cannot process and store the proprietary data model extensions used in the object.

 


3.3.6           ReadAllCourseOfferingIds() Operation

 

Name:

readAllCourseOfferingIds

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.21 and A.2.

Supplied (in) Parameters:

None.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of SourcedIds for all of the CourseOffering objects in the target’s database.

Behavior:

When the source issues the ‘readAllCourseOfferingIds’ request the target is charged with returning the SourcedIds of all of the CourseOfferings in its course offering database.

Notes:

If no SourcedIds have been allocated then the returned data set is empty and the success status code returned.

 

Table 3.21 Status codes for the ‘readAllCourseOfferingIds’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and all the CourseOffering object identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The requested data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.3.7           ReadAllActiveCourseOfferingIdsForAcademicSession() Operation

 

Name:

readAllActiveCourseOfferingIdsForAcademicSession

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.22 and A.2.

Supplied (in) Parameters:

academicSession:AcademicSession – the academic session (from a pre-defined vocabulary).

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the active CourseOffering objects.

Behavior:

When the source issues the ‘readAllActiveCourseOfferingIdsForAcademicSession’ request the target is charged with returning the identifiers of all active CourseOfferings for the defined academic session.  The state of a CourseOffering is held within its ‘status’ field in the data model.

Notes:

If there are no active CourseOfferings in the academic session, an empty set of SourcedIds is returned and the success status code returned.

 

Table 3.22 Status codes for the ‘readAllActiveCourseOfferingIdsForAcademicSession’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the set of associated CourseOffering identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The requested data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

An invalid academic session value has been received by the target system.

 


3.3.8           ReadCourseSectionIdsForCourseOffering() Operation

 

Name:

readCourseOfferingSectionIdList

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.23 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the sourcedId of the CourseOffering whose associated CourseSections are to be identified.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of SourcedIds for all of the associated CourseSection objects in the target’s CourseSection database.

Behavior:

When the source issues the ‘readCourseOfferingSectionIdList’ request the target is charged with using the supplied sourcedId of the reference CourseOffering to return the SourcedIds of all the associated course sections.  These relationships are identified by searching the CourseSection database for the appropriate parent CourseOffering.

An error code is returned if the target does not recognize the sourcedId as a valid CourseOffering.

Notes:

The returned set of SourcedIds may or may not already be identified as allocated in the CourseSection database in the source system. If no associated CourseSections are found then the returned data set is empty and the success status code returned.

 

Table 3.23 Status codes for the ‘readCourseSectionIdsForCourseOffering’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the set of associated CourseSection identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseSection object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseOffering object identifier is unknown in the target system and so the object could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The requested data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

 


3.3.9           ReadCourseOfferingIdsFromSavePoint() Operation

 

Name:

readCourseOfferingIdsFromSavePoint

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.24 and A.2.

Supplied (in) Parameters:

fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read.  This is the value in the source system.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of SourcedIds of the CourseOffering objects stored on the target.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseOfferingIdsFromSavePoint’ the target returns the set of SourcedIds that have been altered from the defined reference point.

If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned.

Notes:

If no SourcedIds have been allocated then the returned data set is empty and the success status code returned.

 

Table 3.24 Status codes for the ‘readCourseOfferingIdsFromSavePoint’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseOffering object has been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=savepointerror’

An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=savepointsyncerror’

The value of the save point reference from the source was later than that of the target system.  No identifiers have been returned.  The target system savepoint value has been updated to that supplied by the source system.

 


3.3.10       ReadCourseOfferings() Operation

 

Name:

readCourseOfferings

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.25 and A.2.

Supplied (in) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the CourseOffering objects to be read.

Returned (out) Parameters:

courseOfferingRecordSet:CourseOfferingRecordSet – the set of course offering records.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseOfferings’ request the target is charged with retrieving the identified set of objects from its database and placing this information in a persistent data file.  The associated read savePoint reference is updated and returned.

If the object identified by the supplied ‘SourcedId’ cannot be located then the request is rejected and a partial success code is returned for the operation.  The target is responsible for ensuring that the records contain valid data.  The target should attempt to successfully complete as much of the request as possible.

Notes:

A returned CourseOffering object is only present in the data file if the object has been located in the target system and the full data set returned.

The enclosed data may result in a long response message.

 

Table 3.25 Status codes for the ‘readCourseOfferings’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseOffering objects have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=partialreadfail’

Some of the CourseOffering object identifiers are unknown in the target system and so those objects could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The source system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored CourseTemplate objects and so cannot return the data.

3.3.11       ReadCourseOfferingsFromSavePoint() Operation

 

Name:

readCourseOfferingsFromSavePoint

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.26 and A.2.

Supplied (in) Parameters:

fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read.  This is the value in the source system.

Returned (out) Parameters:

courseOfferingRecordSet:CourseOfferingRecordSet – the set of course offering records.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseOfferingsFromSavePoint’ request the target is charged with reading the objects that have been altered from the defined reference point.

If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned.

Notes:

If no objects have been allocated then the return message will be empty.

The enclosed data may result in a long response message.

 

Table 3.26 Status codes for the ‘readCourseOfferingsFromSavePoint’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseOffering objects have been read from the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=savepointerror’

An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=savepointsyncerror’

The value of the save point reference from the source was later than that of the target system.  No identifiers have been returned.  The target system savepoint value is returned to the source system for information.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatareturn’

The target has only returned a subset of the data object e.g., only the mandatory parts.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored LineItem object and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

3.3.12       ReplaceCourseOffering() Operation

 

Name:

replaceCourseOffering

Return Function Parameter:

StatusInfo – the status of the replace request.  The permitted status codes are defined in Tables 3.27 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseOffering object to be replaced.

courseOfferingRecord:OfferingRecord – the CourseOffering data that is to be stored in the  object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘replaceCourseOffering’ request the target is charged with writing the supplied information into the identified object.  If any part of the write fails e.g., due to partial invalid data then the whole request is rejected and the record is left in its original state. This is a destructive write-over operation of the entire CourseOffering object.  This is equivalent to a ‘createCourseOffering’ but for an object that already exists.

If the object identified by the supplied SourcedId cannot be located then the request is interpreted as a ‘createCourseOffering’ invocation.

The reference counter for the object is incremented by one in the target system.

Notes:

The source is responsible for determining the reason of the failure.

 

Table 3.27 Status codes for the ‘replaceCourseOffering’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The replace request has been fully and successfully implemented by the target system and the identified CourseOffering object has been changed on the target system.

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=createsuccess’

The CourseOffering object identifier is unknown in the target system and so a new object has been successfully created instead.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process the proprietary data model extensions used in the object.

 


3.3.13       UpdateCourseOffering() Operation

 

Name:

updateCourseOffering

Return Function Parameter:

StatusInfo – the status of the update request.  The permitted status codes are defined in Tables 3.28 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseOffering object to be updated.

courseOfferingRecord:CourseOfferingRecord – the CourseOffering data that is to be stored in the  object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘updateCourseOffering’ request the target is charged with writing the supplied information into the identified record.  If any part of the write fails e.g., due to partial invalid data then the whole request is rejected and the record is left in its original state. This is an additive write operation of all the data fields supplied in the update request and fields not supplied remain unchanged.  If a field is constrained with a multiplicity of one then the ‘updateCourseOffering’ request acts as a replaceCourseOffering’ request for that field.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

The reference counter for the object is incremented in the target system.

Notes:

The source is responsible for determining the reason of the failure.

 

Table 3.28 Status codes for the ‘updateCourseOffering’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The update request has been fully and successfully implemented by the target system and the identified CourseOffering object has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseOffering object identifier is unknown in the target system and so the object could not be updated.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process the proprietary data model extensions used in the object.

 


3.3.14       UpdateCourseOfferingStatus() Operation

 

Name:

updateCourseOfferingStatus

Return Function Parameter:

StatusInfo – the status of the update request.  The permitted status codes are defined in Tables 3.29 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseOffering object whose status is to be updated.

status:Status – the new Status (form an agreed vocabulary) that is to be assigned to the CourseOffering object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘updateCourseOfferingStatus’ request the target is charged with changing the status of the associated object.  This is a destructive write i.e., the previous status is replaced.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

The reference counter for the object is incremented by one in the target system.

Notes:

None.

 

Table 3.29 Status codes for the ‘updateCourseOfferingStatus’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The update status request has been fully and successfully implemented by the target system and the status of the identified CourseOffering object has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseOffering object identifier is unknown in the target system and so the object could not be updated.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

The target system has received and invalid status value.

 


3.3.15       DiscoverCourseOfferingIds() Operation

 

Name:

discoverCourseOfferingIds

Return Function Parameter:

StatusInfo – the status of the discover request.  The permitted status codes are defined in Tables 3.30 and A.2.

Supplied (in) Parameters:

queryObject:QueryObject – this is the query/filter instruction that is to be applied by the target to discover the corresponding CourseOffering objects.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the CourseOffering objects whose content conform to the query/filter conditions.

Behavior:

When the source issues the ‘discoverCourseOfferingIds’ the target applies the query/filter instructions to the set of CourseOffering objects and returns the set of SourcedIds that uphold the query/filter. 

If no CourseOffering objects have the required properties the returned data set is empty and the success status code returned.

If the target does not understand or cannot apply the requested query/filter then an error status is returned.

Notes:

The internal structure of this QueryObject is undefined (it is should be treated as a String encoded ‘blob).  Later versions of this specification will look at the established best practices for clarification on the use of this operation.

 

Table 3.30 Status codes for the ‘discoverCourseOfferingIds’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The discover request has been fully and successfully implemented by the target system and the appropriate CourseOffering identifiers have been retrieved from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The discover request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownquery’

The target system cannot understand the query request that has been received i.e., the query/filter language is unknown.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.3.16       ChangeCourseOfferingIdentifier() Operation

 

Name:

changeCourseOfferingIdentifier

Return Function Parameter:

StatusInfo – the status of the change identifier request.  The permitted status codes are given in Tables 3.31 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseOffering object to be changed.

newSourcedId:GUID – the new identifier to be allocated to the CourseOffering object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘changeCourseOfferingIdentifier’ request the target is charged with replacing the original SourcedId with the new supplied SourcedId.  All membership entries must be similarly changed.  All further references to the object must use the new SourcedId otherwise an ‘unknown’ object failure status code is returned.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

The reference pointer value remains unchanged.

 

Table 3.31 Status codes for the ‘changeCourseOfferingIdentifier’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The change identifier request has been fully and successfully implemented by the target system and the CourseOffering object SourcedId has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the new unique ‘identifier’ to the CourseOffering object as the identifier is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The current CourseOffering SourcedId identifier is unknown in the target system and so the object identifier could not be changed.

 


3.4            CourseSectionManager Interface Description

The CourseSectionManager interface class, as shown in Figure 3.3, describes the operations that are permitted on a CourseSections.  The interface stereotype indicates that there are no attributes for this class.  The set of operations are summarized in Table 3.32.

 

 

Figure 3.3 CourseManagementService interface definition.

 


Table 3.32 Summary of operations for CourseSectionManager.

Operation

Description

createCourseSection

To request the creation of a populated CourseSection object on the target system where the source is responsible for the allocation of the unique identifier.

createByProxyCourseSection

To request the creation of a populated CourseSection object on the target system where the target is responsible for the allocation of the unique identifier.

createCourseSectionFromCourseSection

To create a new CourseSection from the supplied CourseSection for a particular academic session.

deleteCourseSection

To request the deletion of a CourseSection object.  The CourseSection object is deleted along with all of its associated Memberships.

readCourseSection

To read the full contents of the identified CourseSection object.  The target must return all of the data it has for the identified CourseSection object.

readAllCourseSectionIds

To obtain the set of sourcedIds which have been assigned to CourseSection objects.

readCourseSectionIdsFromSavePoint

To obtain the set of sourcedIds for CourseSection objects which have been altered since the supplied reference point.  The reference point is set as ‘zero’ at creation and incremented after every write operation.

readCourseSections

To obtain the CourseSection objects for a defined set of identifiers. This results in a single transaction that may require the exchange of a large volume of data in the response message.

readCourseSectionsFromSavePoint

To obtain the set of CourseSection objects which have been altered since the requested reference point.  The reference point is set as ‘zero’ at creation and incremented after every write operation.  This results in a single transaction that may require the exchange of a large volume of data in the response message.

replaceCourseSection

To replace the content of the identified CourseSection object.  The target must write the new data into the CourseSection object.  This is a destructive write-over of all of the original information.  In the case of the object not existing, this operation acts as an implied ‘createCourseSection’.

updateCourseSection

To write new content into the identified CourseSection object.  The target must write the new data into the CourseSection object.  This is an additive operation.

updateCourseSectionStatus

To change the status of the identified CourseSection.

discoverCourseSectionIds

To obtain the set of SourcedIds for CourseSection objects whose properties agree with those defined in the query/filter.

changeCourseSectionIdentifier

To change the SourcedId of the CourseSection record.  The completion of this operation will result in later actions using the original SourcedId reporting an unknown identifier status. 

Note: In most cases the above operations act on a single instance of a CourseSection object i.e., ‘createCourseSection’, ‘createByProxyCourseSection’, ‘deleteCourseSection’, ‘readCourseSection’, ‘replaceCourseSection’ and ‘updateCourseSection’.


3.4.1           CreateCourseSection() Operation

 

Name:

createCourseSection

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.33 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the sourcedId allocated by the source system.  This is the identifier that must also be assigned within the target system.

courseSectionRecord:CourseSectionRecord – the CourseSection data that is to be stored in the new object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘createCourseSection’ request the target is instructed to create the populated CourseSection object and to allocate that structure the SourcedId passed by the source.  If the supplied SourcedId has already been allocated to another object then the request is rejected and the appropriate failure code is returned.  The reference point identifier is set to zero for the ‘person’ object in both the source and target.

Notes:

This request contains the initial content for the CourseSection record.  More content can be added/replaced using the ‘updateCourseSection’ and/or ‘replaceCourseSection’ requests.

 

Table 3.33 Status codes for the ‘createCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the CourseSection object has been created with the identifier supplied by the source.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the required unique SourcedId to the CourseSection object as it is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the CourseSection object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process and store the proprietary data model extensions used in the object.

 


3.4.2           CreateByProxyCourseSection() Operation

 

Name:

createByProxyCourseSection

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.34 and A.2.

Supplied (in) Parameters:

courseSectionRecord:CourseSectionRecord – the CourseSection data that is to be stored in the new object.

Returned (out) Parameters:

sourcedId:GUID – the identifier allocated by the target to the newly created CourseSection object.

Behavior:

When the source issues the ‘createByProxyCourseSection’ request the target is instructed to create the populated CourseSection object and to allocate that record a unique SourcedId. The reference point identifier is set to zero for the CourseSection object in both the source and target.

Notes:

This request contains the initial content for the CourseSection object.  More content can be added/replaced using the ‘updateCourseSection’ and/or ‘replaceCourseSection’ requests.

 

Table 3.34 Status codes for the ‘createByProxyCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the CourseSection object has been created with an identifier supplied by the target.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocfail’

The target could not allocate a unique ‘identifier’ to the CourseSection object because there are no more spare identifiers available.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the CourseSection object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process and store the proprietary data model extensions used in the object.

 


3.4.3           CreateCourseSectionFromCourseSection() Operation

 

Name:

createCourseSectionFromCourseSection

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.35 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the SourcedId for the CourseSection to be cloned.

academicSession:AcademicSession – the academic session (from a pre-defined vocabulary) of the new CourseSection object.

newSourcedId:GUID – the sourcedId to be allocated to the newly created CourseSection object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘createCourseSectionFromCourseSection’ request the target is instructed to find the source CourseSection object and to create an equivalent CourseSection but with the new SourcedId and academic session. The reference point identifier is set to zero for the CourseSection object in both the source and target.

Notes:

An invalid status code will be returned if the new SourcedId has already been allocated or the academic session is incorrect.

 

Table 3.35 Status codes for the ‘createCourseSectionFromCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the new CourseSection object has been created with a unique identifier.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseSection object identifier is unknown in the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the required unique ‘identifier’ to the new CourseSection object as it is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the CourseSection object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

An invalid academic session value has been received by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

 


3.4.4           DeleteCourseSection() Operation

 

Name:

deleteCourseSection

Return Function Parameter:

StatusInfo – the status of the delete request.  The permitted status codes are defined in Tables 3.36 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier to be used by the target to identify the CourseSection object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘deleteCourseSection’ request the target is instructed to delete the identified CourseSection object and to remove the reference to the CourseSection from any of the related CourseOffering and Membership objects.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

Deletion of the CourseSection object does not necessarily result in the destruction of the data within the server.  The true state of the data in the target is unknown.

 

Table 3.36 Status codes for the ‘deleteCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The deletion request has been fully and successfully implemented by the target system and the CourseSection object has been deleted.  The corresponding Membership records have also been deleted.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseSection object identifier is unknown in the target system and so the object could not be deleted.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor= deletefailure’

The target system has not been able to delete the identified CourseSection object.

 


3.4.5           ReadCourseSection() Operation

 

Name:

readCourseSection

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.37 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseSection object to be read.

Returned (out) Parameters:

courseSectionRecord:CourseSectionRecord – the CourseSection data that is read from the object.

Behavior:

When the source issues the ‘readCourseSection’ request the target is charged with retrieving the identified object from its database and returning this data to the source.  The target is responsible for ensuring that the object contains valid data.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

The returned CourseSection object can only be trusted if the corresponding status code is ‘success’.

 

Table 3.37 Status codes for the ‘readCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseSection object has been read from the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseSection object identifier is unknown in the target system and so the object could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored CourseSection object and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the source system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has only returned a subset of the data expected by the source e.g., only the mandatory parts.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The source system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The source cannot process and store the proprietary data model extensions used in the object.

 


3.4.6           ReadAllCourseSectionIds() Operation

 

Name:

readAllCourseSectionIds

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.38 and A.2.

Supplied (in) Parameters:

None.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of SourcedIds for all of the CourseSection objects in the target’s CourseSection database.

Behavior:

When the source issues the ‘readAllCourseSectionIds’ request the target is charged with returning the SourcedIds of all of the CourseSection objects in the database.

Notes:

The returned set of SourcedIds may or may not already be identified as allocated in the CourseSections database in the source system. If no SourcedIds have been allocated then the returned data set is empty and the success status code returned.

 

Table 3.38 Status codes for the ‘readAllCourseSectionIds’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseSection object identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseSection object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The requested data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.4.7            ReadCourseSectionIdsFromSavePoint() Operation

 

Name:

readCourseSectionIdsFromSavePoint

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.39 and A.2.

Supplied (in) Parameters:

fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read.  This is the value in the source system.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of SourcedIds of the CourseSection objects stored on the target.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseSectionIdsFromSavePoint’ the target returns the set of SourcedIds that have been altered from the defined reference point.

If the reference counter in the source is greater than that in the target then an empty set is returned for the SourcedIds and the target value for the reference point is returned.

Notes:

If no SourcedIds have been allocated then the returned data set is empty and the success status code returned.

 

Table 3.39 Status codes for the ‘readCourseSectionIdsFromSavePoint’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseSection objects have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no CourseSection object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The requested data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=savepointerror’

An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=savepointsyncerror’

The value of the save point reference from the source was later than that of the target system.  No identifiers have been returned.  The target system savepoint value is returned to the source system for information.

 


3.4.8           ReadCourseSections() Operation

 

Name:

readCourseSections

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.40 and A.2.

Supplied (in) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the CourseSection objects to be read.

Returned (out) Parameters:

courseSectionRecordSet:CourseSectionRecordSet – the set of course section records.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseSections’ request the target is charged with retrieving the identified set of objects from its database and placing this information in a persistent data file.  The associated read savePoint reference is updated and returned.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and a partial success code is returned for the operation.  The target is responsible for ensuring that the records contain valid data.  The target should attempt to successfully complete as much of the request as possible.

Notes:

A returned CourseSection object is only present if the object has been located in the target system and the full data set returned.

The enclosed data may result in a long response message.

 

Table 3.40 Status codes for the ‘readCourseSections’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified CourseSection objects have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=partialreadfail’

Some of the CourseSection object identifiers are unknown in the target system and so those objects could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The source system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored CourseTemplate objects and so cannot return the data.

3.4.9           ReadCourseSectionsFromSavePoint() Operation

 

Name:

readCourseSectionsFromSavePoint

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.41 and A.2.

Supplied (in) Parameters:

fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read.  This is the value in the source system.

Returned (out) Parameters:

courseSectionRecordSet:CourseSectionRecordSet – the set of course section records.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readCourseSectionsFromSavePoint’ request the target is charged with reading the objects that have been altered from the defined reference point.

If the reference counter in the source is greater than that in the target then an empty data file is returned and the target value for the reference point is returned.

Notes:

If no objects have been allocated then the return message will be empty.

The enclosed data may result in a long response message.

 

Table 3.41 Status codes for the ‘readCourseSectionsFromSavePoint’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and copies of the identified CourseSection objects have been placed in the data file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=savepointerror’

An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=savepointsyncerror’

The value of the save point reference from the source was later than that of the target system.  No identifiers have been returned. The target system savepoint value is returned to the source system for information.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatareturn’

The target has only returned a subset of the data object e.g., only the mandatory parts.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored LineItem object and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

3.4.10       ReplaceCourseSection() Operation

 

Name:

replaceCourseSection

Return Function Parameter:

StatusInfo – the status of the replace request.  The permitted status codes are defined in Tables 3.42 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseSection object to be replaced.

courseSectionRecord:CourseSectionRecord – the CourseSection data that is to be stored in the  object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘replaceCourseSection’ request the target is charged with writing the supplied information into the identified object.  If any part of the write fails e.g., due to partial invalid data then the whole request is rejected and the object is left in its original state. This is a destructive write-over operation of the entire CourseSection object.  This is equivalent to a ‘createCourseSection’ but for an object that already exists.

If the object identified by the supplied SourcedId cannot be located then the request is interpreted as a ‘createCourseSection’ inv ocation.

The reference counter for the object is incremented by one in the target system.

Notes:

The source is responsible for determining the reason of the failure.

 

Table 3.42 Status codes for the ‘replaceCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The replace request has been fully and successfully implemented by the target system and the identified CourseSection object has been changed on the target system.

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=createsuccess’

The CourseTemplate object identifier is unknown in the target system and so a new object has been successfully created instead.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process the proprietary data model extensions used in the object.

 


3.4.11       UpdateCourseSection() Operation

 

Name:

updateCourseSection

Return Function Parameter:

StatusInfo – the status of the update request.  The permitted status codes are defined in Tables 3.43 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseSection object to be updated.

courseSectionRecord:CourseSectionRecord – the CourseSection data that is to be stored in the  object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘updateCourseSection’ request the target is charged with writing the supplied information into the identified object.  If any part of the write fails e.g., due to partial invalid data then the whole request is rejected and the object is left in its original state. This is an additive write operation of all the data fields supplied in the update request and fields not supplied remain unchanged.  If a field is constrained with a multiplicity of one then the ‘updateCourseSection’ request acts as a ‘replaceCourseSection’ request for that field.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

The reference counter for the object is incremented in the target system.

Notes:

The source is responsible for determining the reason of the failure.

 

Table 3.43 Status codes for the ‘updateCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The update request has been fully and successfully implemented by the target system and the identified CourseSection object has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseSection object identifier is unknown in the target system and so the object could not be updated.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process the proprietary data model extensions used in the object.

 


3.4.12       UpdateCourseSectionStatus() Operation

 

Name:

updateCourseSectionStatus

Return Function Parameter:

StatusInfo – the status of the update request.  The permitted status codes are defined in Tables 3.44 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseSection object whose status is to be updated.

status:Status – the new Status (from an agreed vocabulary) that is to be assigned to the CourseSection object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘updateCourseSectionStatus’ request the target is charged with changing the status of the associated object.  This is a destructive write i.e., the previous status is replaced.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

The reference counter for the object is incremented by one in the target system.

Notes:

None.

 

Table 3.44 Status codes for the ‘updateCourseSectionStatus’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The update status request has been fully and successfully implemented by the target system and the status of the identified CourseSection object has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The CourseSection object identifier is unknown in the target system and so the object status could not be updated.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

The target system has received and invalid status value.

 


3.4.13       DiscoverCourseSectionIds() Operation

 

Name:

discoverCourseSectionIds

Return Function Parameter:

StatusInfo – the status of the discover request.  The permitted status codes are defined in Tables 3.45 and A.2.

Supplied (in) Parameters:

queryObject:QueryObject – this is the query/filter instruction that is to be applied by the target to discover the corresponding CourseSection objects.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the CourseSection objects whose content conform to the query/filter conditions.

Behavior:

When the source issues the ‘discoverCourseSectionIds’ the target applies the query/filter instructions to the set of CourseSection objects and returns the set of SourcedIds that uphold the query/filter. 

If no CourseSection objects have the required properties the returned data set is empty and the success status code returned.

If the target does not understand or cannot apply the requested query/filter then an error status is returned.

Notes:

The internal structure of this QueryObject is undefined (it is should be treated as a String encoded ‘blob).  Later versions of this specification will look at the established best practices for clarification on the use of this operation.

 

Table 3.45 Status codes for the ‘discoverCourseSectionIds’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The discover request has been fully and successfully implemented by the target system and the appropriate CourseSection identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The discover request has been fully and successfully implemented by the target system and no CourseSection object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownquery’

The target system cannot understand the query request that has been received i.e., the query/filter language is unknown.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.4.14       ChangeCourseSectionIdentifier() Operation

 

Name:

changeCourseSectionIdentifier

Return Function Parameter:

StatusInfo – the status of the change identifier request.  The permitted status codes are given in Tables 3.46 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the CourseSection object to be changed.

newSourcedId:GUID – the new identifier to be allocated to the CourseSection object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘changeCourseSectionIdentifier’ request the target is charged with replacing the original SourcedId with the new supplied SourcedId.  All membership entries must be similarly changed.  All further references to the object must use the new SourcedId otherwise an ‘unknown’ object failure status code is returned.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

The reference pointer value remains unchanged.

 

Table 3.46 Status codes for the ‘changeCourseSectionIdentifier’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The change identifier request has been fully and successfully implemented by the target system and the CourseSection object SourcedId has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the new unique ‘identifier’ to the CourseSection object as the identifier is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The current CourseSection SourcedId identifier is unknown in the target system and so the object identifier could not be changed.

 


3.5            SectionAssociationManager Interface Description

The SectionAssociationManager interface class, as shown in Figure 3.4, describes the operations that are permitted on a SectionAssociation.  The interface stereotype indicates that there are no attributes for this class.  The set of operations are summarized in Table 3.47.

 

 

Figure 3.4 CourseManagementService SectionAssociationManager interface definition.

 


Table 3.47 Summary of operations for SectionAssociationManager.

Operation

Description

createSectionAssociation

To request the creation of a populated SectionAssociation object on the target system where the source is responsible for the allocation of the unique identifier.

createByProxySectionAssociation

To request the creation of a populated SectionAssociation object on the target system where the target is responsible for the allocation of the unique identifier.

deleteSectionAssociation

To request the deletion of a SectionAssociation object.  The SectionAssociation object is deleted and all of its associated relationships.

readSectionAssociation

To read the full contents of the identified SectionAssociation object.  The target must return all of the data it has for the identified SectionAssociation object.

readAllSectionsAssociationIds

To obtain the set of SourcedIds which have been assigned to SectionAssociation objects.

readSectionAssociationIdsFromSavePoint

To obtain the set of SourcedIds for SectionAssociations objects which have been altered since the requested reference point.  The reference point is set as ‘zero’ at creation and incremented after every write operation.

readCourseSectionAssociations

To obtain the SectionAssociation objects for a defined set of identifiers.  This results in a single transaction that may require the exchange of a large volume of data in the response message.

readSectionAssociationsFromSavePoint

To obtain the set of SectionAssociation objects which have been altered since the requested reference point.  The reference point is set as ‘zero’ at creation and incremented after every write operation. This results in a single transaction that may require the exchange of a large volume of data in the response message.

addCourseSectionId

To add a new CourseSection identifier to the SectionAssociation. 

removeCourseSectionId

To remove a CourseSection identifier from the SectionAssociation.

replaceSectionAssociation

To replace the content of the identified SectionAssociation object.  The target must write the new data into the SectionAssociation object.  This is a destructive write-over of the original information.  In the case of the object not existing, this operation acts as an implied ‘createSectionAssociation’.

updateSectionAssociation

To write new content into the identified SectionAssociation object.  The target must write the new data into the SectionAssociation object.  This is an additive operation.

discoverSectionAssociationIds

To obtain the set of sourcedIds for SectionAssociation objects whose properties agree with those defined in the query/filter.

changeSectionAssociationIdentifier

To change the sourcedId of the SectionAssociation record.  The completion of this operation will result in later actions using the original sourcedId reporting an unknown identifier status. 

Note: In most cases the above operations act on a single instance of a SectionAssociation object i.e., ‘createSectionAssociation’, ‘createByProxySectionAssociation’, ‘deleteSectionAssociation’, ‘readSectionAssociation’, ‘replaceSectionAssociation’ and ‘updateSectionAssociation’.


3.5.1           CreateSectionAssociation() Operation

 

Name:

createSectionAssociation

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.48 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the SourcedId allocated by the source system.  This is the identifier that must also be assigned within the target system.

sectionAssociationRecord:SectionAssociationRecord – the SectionAssociation data that is to be stored in the new object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘createSectionAssociation’ request the target is instructed to create the populated SectionAssociation object and to allocate that structure the SourcedId passed by the source.  If the supplied SourcedId has already been allocated to another object then the request is rejected and the appropriate failure code is returned.  The reference point identifier is set to ‘zero’ for the SectionAssociation object in both the source and target.

Notes:

This request contains the initial content for the SectionAssociationRecord.  More content can be added/replaced using the ‘updateSectionAssociation’ and/or ‘replaceSectionAssociation’ requests.

 

Table 3.48 Status codes for the ‘createSectionAssociation’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the SectionAssociation object has been created with a unique identifier.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the required unique ‘identifier’ to the SectionAssociation object as it is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the SectionAssociation object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process and store the proprietary data model extensions used in the object.

 


3.5.2           CreateByProxySectionAssociation() Operation

 

Name:

createByProxySectionAssociation

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.49 and A.2.

Supplied (in) Parameters:

sectionAssociationRecord:SectionAssociationRecord – the SectionAssociation data that is to be stored in the new object.

Returned (out) Parameters:

sourcedId:GUID – the identifier allocated by the target to the newly created SectionAssociation object.

Behavior:

When the source issues the ‘createByProxySectionAssociation’ request the target is instructed to create the populated SectionAssociation object and to allocate that record a unique SourcedId. The reference point identifier is set to ‘zero’ for the SectionAssociation object in both the source and target.

Notes:

This request contains the initial content for the SectionAssociation object.  More content can be added/replaced using the ‘updateSectionAssociation’ and/or ‘replaceSectionAssociation’ requests.

 

Table 3.49 Status codes for the ‘createByProxySectionAssociation’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The creation request has been fully and successfully implemented by the target system and the SectionAssociation object has been created with the identifier supplied by the target.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocfail’

The target could not allocate a unique SourcedId to the SectionAssociation object because there are no unused identifiers available.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=overflowfail’

The target could not create the SectionAssociation object due to lack of target allocation memory.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process and store the proprietary data model extensions used in the object.

 


3.5.3           DeleteSectionAssociation() Operation

 

Name:

deleteSectionAssociation

Return Function Parameter:

StatusInfo – the status of the delete request.  The permitted status codes are defined in Tables 3.50 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier to be used by the target to identify the SectionAssociation object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘deleteSectionAssociation’ request the target is instructed to delete the identified SectionAssociation object and to remove the reference to the SectionAssociation from any of the related Membership objects.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

Deletion of the SectionAssociation object does not necessarily result in the destruction of the data within the server.  The true state of the data in the target is unknown.

 

Table 3.50 Status codes for the ‘deleteSectionAssociation’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The deletion request has been fully and successfully implemented by the target system and the SectionAssociation object has been deleted.  The corresponding Membership records have also been deleted.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The SectionAssociation object identifier is unknown in the target system and so the object could not be deleted.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor= deletefailure’

The target system has not been able to delete the identified SectionAssociation object.

 


3.5.4           ReadSectionAssociation() Operation

 

Name:

readSectionAssociation

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.51 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the SectionAssociation object to be read.

Returned (out) Parameters:

sectionAssociationRecord:SectionAssociationRecord – the SectionAssociation data that is read from the object.

Behavior:

When the source issues the ‘readSectionAssociation’ request the target is charged with retrieving the identified record from its database and returning this data to the source.  The target is responsible for ensuring that the object contains valid data.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

The returned SectionAssociation object can only be trusted if the corresponding status code is ‘success’.

 

Table 3.51 Status codes for the ‘readSectionAssociation’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified SectionAssociation object has been read from the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The SectionAssociation object identifier is unknown in the target system and so the object could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored SectionAssociation object and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the source system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has only returned a subset of the data expected by the source e.g., only the mandatory parts.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The source system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The source cannot process and store the proprietary data model extensions used in the object.

 


3.5.5           ReadAllSectionAssociationIds() Operation

 

Name:

readAllSectionAssociationIds

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.52 and A.2.

Supplied (in) Parameters:

None.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of SourcedIds for all of the SectionAssociation objects in the target’s database.

Behavior:

When the source issues the ‘readAllSectionAssociationIds’ request the target is charged with returning the SourcedIds of all of the SectionAssociations in its database.

Notes:

The returned set of SourcedIds may or may not already be identified as allocated in the SectionAssociations database in the source system. If no SourcedIds have been allocated then the returned data set is empty and the success status code returned.

 

Table 3.52 Status codes for the ‘readAllSectionAssociationIds’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the corresponding SectionAssociation identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no SectionAssociation object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The requested data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.5.6           ReadSectionAssociationIdsFromSavePoint() Operation

 

Name:

readSectionAssociationIdsFromSavePoint

Return Function Parameter:

StatusInfo – the status of the creation request.  The permitted status codes are defined in Tables 3.53 and A.2.

Supplied (in) Parameters:

fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read.  This is the value in the source system.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of SourcedIds of the SectionAssociation objects stored on the target.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readSectionAssociationIdsFromSavePoint’ the target returns the set of SourcedIds that have been altered after the defined reference point.

If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned.

Notes:

If no SourcedIds have been allocated then the returned data set is empty and the success status code returned.

 

Table 3.53 Status codes for the ‘readSectionAssociationIdsFromSavePoint’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and the identified SectionAssociation object has been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The read request has been fully and successfully implemented by the target system and no SectionAssociation object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=savepointerror’

An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=savepointsyncerror’

The value of the save point reference from the source was later than that of the target system.  No identifiers have been returned. The target system savepoint value is returned to the source system for information.

 


3.5.7           ReadSectionAssociations() Operation

 

Name:

readSectionAssociations

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.54 and A.2.

Supplied (in) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the SectionAssociation objects to be read.

Returned (out) Parameters:

sectionAssociationRecordSet:SectionAssociationRecordSet – the set of section association records.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readSectionAssociations’ request the target is charged with retrieving the identified set of objects from its database and placing this information in a persistent data file. The associated read savePoint reference is updated and returned.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and a partial success code is returned for the operation.  The target is responsible for ensuring that the records contain valid data.  The target should attempt to successfully complete as much of the request as possible.

Notes:

A returned SectionAssociation object is only present if the object has been located in the target system and the full data set returned.

The enclosed data may result in a long response message.

 

Table 3.54 Status codes for the ‘readSectionAssociations’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and copies of the identified SectionAssociation objects have been placed in the data file.

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=partialreadfail’

Some of the SectionAssociation object identifiers are unknown in the target system and so those objects could not be read.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The source system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored CourseTemplate objects and so cannot return the data.

3.5.8           ReadSectionAssociationsFromSavePoint() Operation

 

Name:

readSectionAssociationsFromSavePoint

Return Function Parameter:

StatusInfo – the status of the read request.  The permitted status codes are defined in Tables 3.55 and A.2.

Supplied (in) Parameters:

fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read.  This is the value in the source system.

Returned (out) Parameters:

sectionAssociationRecordSet:SectionAssociationRecordSet – the set of section association records.

savePoint:SequenceIdentifier – the value of the reference point counter in the target system.

Behavior:

When the source issues the ‘readSectionAssociationsFromSavePoint’ request the target is charged with reading the objects that have been altered from the defined reference point.

If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point is returned.

Notes:

If no objects have been allocated then the return message will be empty.

The enclosed data may result in a long response message.

 

Table 3.55 Status codes for the ‘readSectionAssociationsFromSavePoint’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The read request has been fully and successfully implemented by the target system and copies of the identified SectionAssociation objects have been stored in the data file.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatareturn’

The target has only returned a subset of the data object e.g., only the mandatory parts.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=targetreadfailure’

The target system has detected an error in the stored LineItem object and so cannot return the data.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=savepointerror’

An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=savepointsyncerror’

The value of the save point reference from the source was later than that of the target system.  No identifiers have been returned. The target system savepoint value is returned to the source system for information.

3.5.9           AddCourseSection() Operation

 

Name:

addCourseSection

Return Function Parameter:

StatusInfo – the status of the add request.  The permitted status codes are defined in Tables 3.56 and A.2.

Supplied (in) Parameters:

sectionAssociationSourcedId:GUID – the identifier of the SectionAssociation object to be updated.

courseSectionSourcedId:GUID – the identifier of the CourseSection object to be added to the SectionAssociation.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘addCourseSection’ request the target is charged with adding the new Course Section identifier to the Section Association.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

The reference counter for the object is incremented by one in the target system.

Notes:

If the SourcedId is already contained in the SectionAssociation then the ‘fullsuccess’ status is returned.

 

Table 3.56 Status codes for the ‘addCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The add request has been fully and successfully implemented by the target system and the identified CourseSection identifier has been added to the SectionAssociation.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The SectionAssociation object identifier is unknown in the target system and so the object could not be updated.

 


3.5.10       RemoveCourseSection() Operation

 

Name:

removeCourseSection

Return Function Parameter:

StatusInfo – the status of the remove request.  The permitted status codes are defined in Tables 3.57 and A.2.

Supplied (in) Parameters:

sectionAssociationSourcedId:GUID – the identifier of the SectionAssociation object to be updated.

courseSectionSourcedId:GUID – the identifier of the CourseSection object to be removed from the SectionAssociation.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘removeCourseSection’ request the target is charged with removing the given CourseSection identifier from the SectionAssociation.  If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

The reference counter for the object is incremented by one in the target system.

Notes:

None.

 

Table 3.57 Status codes for the ‘removeCourseSection’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The remove request has been fully and successfully implemented by the target system and the identified CourseSection identifier has been removed from the SectionAssociation.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The SectionAssociation object identifier is unknown in the target system and so the object could not be changed.

‘CodeMajor=Failure’
‘Severity=Status’
‘CodeMinor=invaliddata’

The CourseSection object identifier is unknown in the target system and so it could not be added to the SectionAssociation.

 


3.5.11       UpdateSectionAssociation() Operation

 

Name:

updateSectionAssociation

Return Function Parameter:

StatusInfo – the status of the update request.  The permitted status codes are defined in Tables 3.58 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the SectionAssociation object to be updated.

sectionAssociationRecord:SectionAssociationRecord – the SectionAssociation data that is to be stored in the  object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘updateSectionAssociation’ request the target is charged with writing the supplied information into the identified object.  If any part of the write fails e.g., due to partial invalid data then the whole request is rejected and the record is left in its original state. This is an additive write operation of all the data fields supplied in the update request and fields not supplied remain unchanged.  If a field is constrained with a multiplicity of one then the ‘updateSectionAssociation’ request acts as a ‘replaceSectionAssociation’ request for that field.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

The reference counter for the object is incremented in the target system.

Notes:

The source is responsible for determining the reason of the failure.

 

Table 3.58 Status codes for the ‘updateSectionAssociation’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The update request has been fully and successfully implemented by the target system and the identified SectionAssociation object has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The SectionAssociation object identifier is unknown in the target system and so the object could not be updated.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process the proprietary data model extensions used in the object.

 


3.5.12       ReplaceSectionAssociaton() Operation

 

Name:

replaceSectionAssociation

Return Function Parameter:

StatusInfo – the status of the replace request.  The permitted status codes are defined in Tables 3.59 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the SectionAssociation object to be updated.

sectionAssociationRecord:SectionAssociationRecord – the SectionAssociation data that is to be stored in the  object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘replaceSectionAssociation’ request the target is charged with writing the supplied information into the identified object.  If any part of the write fails e.g., due to partial invalid data then the whole request is rejected and the record is left in its original state. This is a destructive write-over operation of the entire SectionAssociation object.  This is equivalent to a ‘createSectionAssociation’ but for an object that already exists.

If the object identified by the supplied SourcedId cannot be located then the request is interpreted as a ‘createSectionAssociation’ invocation.

The reference counter for the object is incremented by one in the target system.

Notes:

The source is responsible for determining the reason of the failure.

 

Table 3.59 Status codes for the ‘replaceSectionAssociation’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The replace request has been fully and successfully implemented by the target system and the identified SectionAssociation object has been changed on the target system.

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=createsuccess’

The SectionAssociation object identifier is unknown in the target system and so a new object has been successfully created instead.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the supplied data was detected as invalid by the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=incompletedata’

Some mandatory part of the data has been detected as missing by the target system.

‘CodeMajor=Success’

‘Severity=Warning’

‘CodeMinor=partialdatastorage’

The target has stored a subset of the sent data record i.e., some of the optional data has not been stored (all mandatory data has been supplied and stored).

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownvocabulary’

The target system could not identify the defined vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownmdvocabulary’

The target system could not identify the defined metadata vocabulary term.  This may be due to an incorrect term or a missing vocabulary file.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownextension’

The target cannot process the proprietary data model extensions used in the object.

 


3.5.13       DiscoverSectionAssociationIds() Operation

 

Name:

discoverSectionAssociationIds

Return Function Parameter:

StatusInfo – the status of the discover request.  The permitted status codes are defined in Tables 3.60 and A.2.

Supplied (in) Parameters:

queryObject:QueryObject – this is the query/filter instruction that is to be applied by the target to discover the corresponding SectionAssociation objects.

Returned (out) Parameters:

sourcedIdSet:GUIDSet – the set of identifiers of the SectionAssociation objects whose content conform to the query conditions.

Behavior:

When the source issues the ‘discoverSectionAssociationIds’ the target applies the query/filter instructions to the set of SectionAssociation objects and returns the set of SourcedIds that uphold the query/filter. 

If no SectionAssociation objects have the required properties the returned data set is empty and the success status code returned.

If the target does not understand or cannot apply the requested query/filter then an error status is returned.

Notes:

The internal structure of this QueryObject is undefined (it is should be treated as a String encoded ‘blob).  Later versions of this specification will look at the established best practices for clarification on the use of this operation.

 

Table 3.60 Status codes for the ‘discoverSectionAssociationIds’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The discover request has been fully and successfully implemented by the target system and the appropriate SectionAssociation identifiers have been read from the target system.

‘CodeMajor=Success’

‘Severity=Status’
‘CodeMinor= nosourcedids’

The discover request has been fully and successfully implemented by the target system and no CourseSection object identifiers were found.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownquery’

The target system cannot understand the query request that has been received i.e., the query/filter language is unknown.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=toomuchdata’

The data cannot be returned because it would exceed some physical system constraint e.g., permitted size of SOAP message.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=invaliddata’

Part or all of the returned data was detected as invalid by the source system.

 


3.5.14       ChangeSectionAssociationIdentifier() Operation

 

Name:

changeSectionAssociationIdentifier

Return Function Parameter:

StatusInfo – the status of the change identifier request.  The permitted status codes are given in Tables 3.61 and A.2.

Supplied (in) Parameters:

sourcedId:GUID – the identifier of the SectionAssociation object to be changed.

newSourcedId:GUID – the new identifier to be allocated to the SectionAssociation object.

Returned (out) Parameters:

None.

Behavior:

When the source issues the ‘changeSectionAssociationIdentifier’ request the target is charged with replacing the original SourcedId with the new supplied SourcedId.  All membership entries must be similarly changed.  All further references to the object must use the new SourcedId otherwise an ‘unknown’ object failure status code is returned.

If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned.

Notes:

The reference pointer value remains unchanged.

 

Table 3.61 Status codes for the ‘changeSectionAssociationIdentifier’ operation.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Success’

‘Severity=Status’

‘CodeMinor=fullsuccess’

The change identifier request has been fully and successfully implemented by the target system and the SectionAssociation object SourcedId has been changed on the target system.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=idallocinusefail’

The target could not allocate the new unique SourcedId to the SectionAssociation object as the identifier is already in use.

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unknownobject’

The current SectionAssociation SourcedId identifier is unknown in the target system and so the object identifier could not be changed.

 


3.6            Course Object State Machines

The permitted state activity on a CourseTemplate, CourseOffering, CourseSection and SectionAssociation objects are shown in Figures 3.5, 3.6, 3.7 and 3.8 respectively.  Each state diagram has three states (the arcs are annotated with the operations that are associated with the change of state):

·         ‘No Object’ state – no object exists with a particular sourcedId;

·         ‘Object with Provider assigned sourcedId’ – an object exists with the sourcedId allocated by the Provider system;

·         ‘Object with Consumer assigned sourcedId’ – an object exists with the sourcedId allocated by the Consumer system.

The state machine for a CourseTemplate object is shown in Figure 3.5.

Figure 3.5 State machine for a ‘courseTemplate’ object.

The start state is ‘No Object’ i.e., the CourseTemplate object has not yet been created.  Only the ‘createCourseTemplate()’, ‘replaceCourseTemplate()’ and ‘createByProxyCourseTemplate()’ operations are possible.  Once the CourseTemplate object has been created it then persists until a successful ‘deleteCourseTemplate()’ operation is completed.  The ‘createCourseTemplate()’ and ‘createCourseTemplate()’ operations take the system into the ‘Object with Consumer assigned sourcedId’ state whereas the ‘createByProxyCourseTemplate()’ takes the system into the ‘Object with Provider assigned sourcedId’ state.

The system can be moved from the ‘Object with Provider assigned sourcedId’ state into the ‘Object with Consumer assigned sourcedId’ state by the successful completion of the ‘changeCourseTemplateIdentifier()’ operation.

Once the system is in the ‘Object with Consumer assigned sourcedId’ or the ‘Object with Provider assigned sourcedId’ states then the ‘readCourseTemplate()’, ‘readAllCourseTemplateIds()’,  ‘readCourseTemplateIdsFromSavePoint()’, ‘readCourseTemplates()’, ‘readCourseTemplatesFromSavePoint()’, ‘readCourseOfferingIdsForCourseTemplate()’, ‘updateCourseTemplate()’, ‘replaceCourseTemplate()’ and ‘discoverCourseTemplateIds()’ operations are now possible.

This is the state machine for each CourseTemplate object in the Service Consumer and the Service Provider.  The binding of the Information Model must guarantee that these two state machines remain synchronized for each CourseTemplate object.

The state machine for a CourseOffering object is shown in Figure 3.6.

Figure 3.6 State machine for a ‘courseOffering’ object.

The start state is ‘No Object’ i.e., the CourseOffering object has not yet been created.  Only the ‘createCourseOffering()’, ‘createByProxyCourseOffering ()’, ‘replaceCourseOffering()’ and ‘createCourseOfferingFromCourseOffering()’ operations are possible.  Once the CourseOffering object has been created it then persists until a successful ‘deleteCourseOffering()’ operation is completed.  The ‘createCourseOffering()’, ‘replaceCourseOffering()’ and ‘createCourseOfferingFromCourseOffering()’ operations take the system into the ‘Object with Consumer assigned sourcedId’ state whereas the ‘createByProxyCourseOffering()’ takes the system into the ‘Object with Provider assigned sourcedId’ state.

The system can be moved from the ‘Object with Provider assigned sourcedId’ state into the ‘Object with Consumer assigned sourcedId’ state by the successful completion of the ‘changeCourseOfferingIdentifier()’ operation.

Once the system is in the ‘Object with Consumer assigned sourcedId’ or the ‘Object with Provider assigned sourcedId’ states then the ‘readCourseOffering()’, ‘readAllCourseOfferingIds()’, ‘readCourseOfferingIdsFromSavePoint()’, ‘readAllActiveCourseOfferingIdsForAcademicSession()’, ‘readCourseSectionIdsForCourseOffering()’, ‘readCourseOfferings()’, ‘readCourseOfferingsFromSavePoint()’, ‘updateCourseOffering()’, ‘updateCourseOfferingStatus’, ‘replaceCourseOffering()’ and ‘discoverCourseOfferingIds()’ operations are now possible.

This is the state machine for each CourseOffering object in the Service Consumer and the Service Provider.  The binding of the Information Model must guarantee that these two state machines remain synchronized for each CourseOffering object.

The state machine for a CourseSection object is shown in Figure 3.7.

Figure 3.7 State machine for a CourseSection’ object.

The start state is ‘No Object’ i.e., the CourseSection object has not yet been created.  Only the ‘createCourseSection()’, ‘createByProxyCourseSection()’, ‘replaceCourseSection()’ and ‘createCourseSectionFromCourseSection()’ operations are possible.  Once the CourseSection object has been created it then persists until a successful ‘deleteCourseSection()’ operation is completed.  The ‘createCourseSection()’, ‘replaceCourseSection()’ and ‘createCourseSectionFromCourseSection’ operations take the system into the ‘Object with Consumer assigned sourcedId’ state whereas the ‘createByProxyCourseSection()’ takes the system into the ‘Object with Provider assigned sourcedId’ state.

The system can be moved from the ‘Object with Provider assigned sourcedId’ state into the ‘Object with Consumer assigned sourcedId’ state by the successful completion of the ‘changeCourseSectionIdentifier()’ operation.

Once the system is in the ‘Object with Consumer assigned sourcedId’ or the ‘Object with Provider assigned sourcedId’ states then the ‘readCourseSection()’, ‘readAllCourseSectionIds()’, ‘readCourseSectionIdsFromSavePoint()’, ‘readCourseSections()’, ‘readCourseSectionsFromSavePoint()’, ‘updateCourseSection()’, ‘updateCourseSectionStatus()’, ‘replaceCourseSection()’ and ‘discoverCourseSectionIds()’ operations are now possible.

This is the state machine for each CourseSection object in the Service Consumer and the Service Provider.  The binding of the Information Model must guarantee that these two state machines remain synchronized for each CourseSection object.

The state machine for a SectionAssociation object is shown in Figure 3.8.

Figure 3.8 State machine for a ‘sectionAssociation’ object.

The start state is ‘No Object’ i.e., the SectionAssociation object has not yet been created.  Only the ‘createSectionAssociation()’, ‘replaceSectionAssociation()’ and ‘createByProxySectionAssociation()’ operations are possible.  Once the SectionAssociation object has been created it then persists until a successful ‘deleteSectionAssociation()’ operation is completed.  The ‘createSectionAssociation()’ and ‘replaceSectionAssociation()’ operations take the system into the ‘Object with Consumer assigned sourcedId’ state whereas the ‘createByProxySectionAssociation()’ takes the system into the ‘Object with Provider assigned sourcedId’ state.

The system can be moved from the ‘Object with Provider assigned sourcedId’ state into the ‘Object with Consumer assigned sourcedId’ state by the successful completion of the ‘changeSectionAssociationIdentifier()’ operation.

Once the system is in the ‘Object with Consumer assigned sourcedId’ or the ‘Object with Provider assigned sourcedId’ states then the ‘readSectionAssociation()’, ‘readAllSectionAssociationIds()’, ‘readSectionAssociationIdsFromSavePoint()’, ‘readSectionAssociations()’, ‘addSectionAssociationId()’, ‘removeSectionAssociationId()’, ‘readSectionAssociationsFromSavePoint()’, ‘updateSectionAssociation()’, ‘replaceSectionAssociation()’ and ‘discoverSectionAssociationIds()’ operations are now possible.

This is the state machine for each CourseSection object in the Service Consumer and the Service Provider.  The binding of the Information Model must guarantee that these two state machines remain synchronized for each SectionAssociation object.

 

 

4                  Interface Data Model

The set of operations described within the behavior model (Section 3) are based upon class descriptions specific to the parameters of the operations.  It is these classes that are now described.

4.1            AcademicSession Class Description

This is the container for the states used to define the academic session for a CourseOffering and CourseSection.  This is an implementation dependent vocabulary based enumeration.

4.2            CourseOfferingRecord Class Description

This is the data-type for CourseOfferingRecords.  The data model for a Course OfferingRecord is described in Section 5.  A key difference for an object passed in the interface, as opposed to the requirement for an end-system, is that the content is dependent on the type of operation.  A CourseOfferingRecord object must consist of the SourcedId of the CourseOffering object and the CourseOffering object itself.

4.3            CourseOfferingRecordSet Class Description

This is the data-type for a set of CourseOfferingRecords (zero or more).  Any implementation of the CourseOfferingRecordSet must be able to contain at least 100,000 CourseOfferingRecords i.e., the smallest permitted maximum number.

4.4            CourseSectionRecord Class Description

This is the data-type for CourseSections.  The data model for a Course Section is described in Section 5.  A key difference for an object passed in the interface, as opposed to the requirement for an end-system, is that the content is dependent on the type of operation. A CourseSectionRecord object must consist of the SourcedId of the CourseSection object and the CourseSection object itself.

4.5            CourseSectionRecordSet Class Description

This is the data-type for a set of CourseSectionRecords (zero or more).  Any implementation of the CourseSectionRecordSet must be able to contain at least 250,000 CourseSectionRecords i.e., the smallest permitted maximum number.

4.6            CourseTemplateRecord Class Description

This is the data-type for CourseTemplates.  The data model for a Course Template is described in Section 5.  A key difference for an object passed in the interface, as opposed to the requirement for an end-system, is that the content is dependent on the type of operation. A CourseTemplateRecord object must consist of the SourcedId of the CourseTemplate object and the CourseTemplate object itself.

4.7            CourseTemplateRecordSet Class Description

This is the data-type for a set of CourseTemplateRecords (zero or more).  Any implementation of the CourseTemplateRecordSet must be able to contain at least 100,000 CourseTemplateRecords i.e., the smallest permitted maximum number.

4.8            GUID Class Description

This is the data type for the globally unique sourcedIds. These GUIDs must be unique across the set of communicating end-systems within the Learning Information Services system.  The internal format of the GUID is outside the scope of this specification but they must all be valid XML strings.  Any implementation of the GUID class must be able to support GUIDs of at least 1024 octets in length i.e., the shortest permitted maximum length.

4.9            GUIDSet Class Description

This is the data-type for a set of GUIDs (zero or more).  Any implementation of the GUIDSet must be able to contain at least 250,000 GUIDs i.e., the smallest permitted maximum number.

4.10       QueryObject Class Description

This is the data-type for the query instruction.  This is a String ‘blob’ with the smallest permitted maximum length of 4096 octets.  The internal structure of this string is undefined.  Later versions of this specification will look at the established best practices for clarification on the use of this string.

4.11       SectionAssociationRecord Class Description

This is the data-type for SectionAssociationRecords.  The data model for a SectionAssociationRecord is described in Section 5.  A key difference for an object passed in the interface, as opposed to the requirement for an end-system, is that the content is dependent on the type of operation. A SectionAssociationRecord object must consist of the SourcedId of the SectionAssociation object and the SectionAssociation object itself.

4.12       SectionAssociationRecordSet Class Description

This is the data-type for a set of SectionAssociationRecords (zero or more).  Any implementation of the SectionAssociationRecordSet must be able to contain at least 10,000 SectionAssociationRecords i.e., the smallest permitted maximum number.

4.13       SequenceIdentifier Class Description

This is the data-type for the sequence identifier used to denote identify the synchronization reference point between the two communicating systems.  The sequence is denoted by the date-time string YYYY-MM-DDTHH:MM:SS.NNN where ‘YYYY’ denotes the year, the first ‘MM’ string the month (01-12), ‘DD’ the day (01-31), ‘HH’ the hour (00-23), the second ‘MM’ string the minute (00-59), ‘SS’ the second (00-59) and ‘NN’ the millisecond value (000-999). 

At initialization the value is set to ‘1000-01-01T00:00:00.000’.  The value is changed to the current time for every operation that results in a change of the value of the data stored in the ‘group’ object.

All values are to be rounded down at the level of greatest resolution.

4.14       Status Class Description

This is the data-type for the enumerated list of states used to define the status of a CourseTemplate, CourseOffering, CourseSection and SectionAssociation.  An external vocabulary is used to store the enumerated list of vales.  The list of permitted values is: { Active, Inactive}.

4.15       StatusInfo Class Description

This is the data-type for the status information returned by the target to the source.  The structure of this class is described in the 1EdTech GLC General Web Services specification v1.0 (Appendix A) [GWS, 05].

5                  End System Data Model

The end system data model defines the persistence model that must be maintained by an end system to ensure the correct system behavior.

An informative overview of the entire Persistence Data Model is provided as a Platform Independent Model (PIM) expressed in UML constructs. All UML diagrams expressed as “Platform Independent Model” are non-normative. Normative tables defining the classes in this Information Model follow the informative UML diagrams.  A full definition of the UML Profile and the terms used in the normative tabular descriptions in this document to describe the PIM can be found in [SDN07, 06].

In the tables in this section the character sequence “n/ais used to mark a field “not applicable.” Any field so marked is not relevant to the class being defined. Features so marked shall be ignored when binding a class defined by this Information Model.

5.1            Key Terms and Concepts

Classes in this information model are classified into four abstract class types. These abstractions are bound to specific data structures for machine processing in the 1EdTech Course Management Services WSDL Binding [CMS, 011]. The four abstract class types are:

·         container: A container class may be a parent of one or more child classes;

·         value: A value class shall not be a parent. That is, it shall not be a composite of characteristic, container, value, or unspecified class types. A value class shall always be a child of a container class and shall have semantic value within the scope of its parent class’s semantic value;

·         characteristic: A characteristic class shall not be a parent. A characteristic class shall declare a trait or value that is an intrinsic feature or part of a container class. A characteristic class is tightly coupled to the container class it modifies or one of which facets it describes;

·         unspecified: An unspecified class may be a parent. An unspecified class serves as an extension point for this Information Model.

Table 5.1 lists the class descriptors used to describe the abstract classes and definitions of the descriptors.

Table 5.1 Class descriptors

Descriptor

Definition

Class name

The name given to the class being described.

Class type

The abstract class type of this class.

Data type

For value and characteristic classes, the allowed structure for valid values for the class.  Valid data types are:

AcademicSession: Used to denote the string that contains the value for the academic session.

Boolean: The primitive, two-valued data type that uses the keywords “true” and “false” to indicate the logical state of an object.

Date: The date represents a date in the format of ISO 8601 i.e., ‘YYYY-MM-DD’.

DateTime: The DateTime represents a combined date and time in the format of ISO 8601 i.e., ‘YYYY-MM-DDThh:mm:ssTZD’. The time is denoted in Coordinated Universal Time (UTC) with TZD denoting the time zone offset in hours and minutes with respect to UTC.

GUID: An identifier that is globally unique within the Learning Information Services System. This will be based upon the Normalized String data-type that has a constrained value-space. This has a length [1..4095] characters.

Integer: An integer.

Language: This data-type is used to denote that the attribute is used to identify the language of the associated entry.  The language values are defined as per RFC4646.

NormalizedString: A sequence of printable characters that does not contain carriage returns or tabs.

Status: The status of the course component.  This is an enumerated vocabulary.

String: A sequence of printable characters.

Text: A language annotated string.  The string is accompanied by a language identifier that demotes the language for the string.

Time: The time, including timezone, represents a date in the format of ISO 8601 i.e., ‘HH:MM:SSTZD’. The time is denoted in Coordinated Universal Time (UTC) with TZD denoting the time zone offset in hours and minutes with respect to UTC.

URI: Any syntactically valid instance of a URI as defined in RFC3986. Note: Many of the foundational Specifications, Standards, and Recommendations referred to by this Information Model use RFC2396 and RFC2732 as the definitions of URI. These are made obsolete by RFC3986, but many of the foundational documents have not been updated to reference RFC3986.

URL: A normalized string that is used to contain a Universal Resource Location.

unspecified: The data type is not known or is not important.

Value space

The range of valid values for this class. If the value space is unspecified, it is not known or is not important.

Multiplicity

A property of a class indicating the number of times it may be used or appear in a given parent context. The values of this property are expressed as a range or shorthand for a range using this notation:

  • ‘0..1’ [optional; restricted]
  • ‘0..unbounded’ [optional; unrestricted]
  • ‘1..1’ [mandatory; restricted]
  • ‘1..unbounded’ [mandatory; unrestricted]

Multiplicities may also appear in short-hand notation in the UML models. The short-hand equivalents shall be (exclusive of bracketed comments):

  • ‘*’ [optional; unrestricted]
  • ‘1’ [mandatory; restricted]
  • ‘1..*’ [mandatory; unrestricted]

Where multiplicity is greater than one, the importance of the ordering of siblings is also indicated by appending either “,”ordered or “,” unordered.

ordered specifies a sequence of siblings as listed, unordered specifies a collection or bag of siblings for which the order is not important.

Parents

Lists classes that may be parents of this class.

Children

Lists the possible child classes of this class in the form “[” child *“,” child “]”. One or more child classes may be expressed within square brackets. Each child class shall be separated by a comma.

Where more than one child is listed, the importance of the ordering of siblings is also indicated by appending either “,”ordered or “,” unordered.

ordered specifies a sequence of siblings as listed. unordered specifies a collection or bag of sibling for which the order is not important.

Description

Contains descriptions relating to the class and its values space.

 

In general, this specification does not define the ways in which an end system must be realized. However, the required interoperability behavior requires that an end system have certain characteristics.  The static properties of these characteristics are defined in this Section, including:

·         When an attribute has a multiplicity of ‘1..1’ then an end system must be capable of supporting one instance;

·         When an attribute has a multiplicity of ‘1..*’ then an end system must be capable of supporting at least one instance.  The specification will also define the smallest permitted maximum number of instances that must also be supported by the end system;

·         When an attribute has a multiplicity of ‘0..1’ then an end system should support a single instance;

·         When an attribute has a multiplicity of ‘0..*’ then the specification will define the smallest permitted maximum number of instances that must also be supported by the end system.

When the object is passed as part of a service call then attributes that have a ‘1..1’ or ‘1..*’ multiplicity may or may not be exchanged.  This is because the specification of an end system defines capability; an operational system may or may not exchange the associated information.

 


5.2            The Structure of a Course

The conceptual data model for the structure of a course is shown in Figure 5.1. There are three facets of a course structure:

·         The components of the core data model of the course denoted in Figure 5.1 by the CourseTemplate, CourseOffering, CourseSection and SectionAssociation classes;

·         Identification of the participants in an instance of a part of the course structure is through a Membership object;

·         The reference structures that are used to identify specific instances of each part of the course denoted in Figure 5.1 by the classes Template, Offering, Section and Association.

Figure 5.1 CourseDatabase class diagram.

The Course structure can be extended by using the GMS [GMS, 11] to create Groups that are appended to the relevant Course components.  Figure 5.2 shows how Course structures can be extended.  The two extensions are:

·         Sub-structures under CourseSection used to represent arbitrarily small course component objects e.g., part of a lecture, etc.

·         Parent structures of CourseTemplates used to represent organization structures that have hierarchical ownership of the ‘Course’ e.g., the Department, the Faculty, the University, etc.


 

 

Figure 5.2 Extending a course.

The Groups are linked to the relevant Course component using the relationship structures within the Group definition.  Multiple linked Group objects can be used to create arbitrarily large structures.  The MMS [MMS, 11] can be used to define memberships of the course structures including those defined as Groups


5.3            CourseDatabase Class Description

Table 5.1 Description of the ‘CourseDatabase’ class.

Descriptor

Definition

Class name

CourseDatabase

Class type

container

Multiplicity

1

Parents

Root

Children

[ courseTemplateRecord, courseOfferingRecord, courseSectionRecord, sectionAssociationRecord ], ordered

Description

This is the database within the end-system that contains all of the course objects.  There are four types of course object, namely: CourseTemplateRecord, CourseOfferingRecord, CourseSectionRecord and SectionAssociationRecord.  Each course object consists of a globally unique identifier, its SourcedId, and either the CourseTemplate, CourseOffering, CourseSection or SectionAssociation data itself.  The database consists of the set of course objects, the set of GUIDs and the relationship mapping between them. The manner in which this information is physically stored is outside of the scope of this specification.

An implementation must be capable of supporting at least: 2000 CourseTemplates; 10,000 CourseOfferings; 100,000 CourseSections; and 1,000 SectionAssociations. 

 

5.4            CourseTemplateRecord Class Description

Table 5.2 Description of the ‘CourseTemplateRecord’ class.

Descriptor

Definition

Class name

CourseTemplateRecord

Class type

container

Multiplicity

0..unbounded, unordered

Parents

CourseDatabase

Children

[sourcedGUID, courseTemplate ], unordered

Description

The CourseTemplateRecord object represents the association between the unique identifier (SourcedGUID) for the CourseTemplate object with the CourseTemplate object itself.  The ‘identifier’ object is not a part of the CourseTemplate object but both are managed within the Course Database.  There is an isomorphic association between each pair of SourcedGUID and CourseTemplate objects.

 


5.4.1           CourseTemplateId Attribute Description

Table 5.3 Description of the ‘sourcedGUID’ attribute for the ‘Template’ class.

Descriptor

Definition

Attribute name

sourcedGUID

Data type

SourcedGUID

Value space

container

Multiplicity

1

Description

This is the globally unique identifier that has been assigned to the associated CourseTemplate object.  Each course template  object must have only one SourcedGUID but this may be changed, any number of times, during the object’s lifetime.

 

5.5            CourseOfferingRecord Class Description

Table 5.4 Description of the ‘CourseOfferingRecord’ class.

Descriptor

Definition

Class name

CourseOfferingRecord

Class type

container

Multiplicity

0..unbounded, ordered

Parents

CourseDatabase

Children

[ sourcedGUID, courseOffering ], unordered

Description

The CourseOfferingRecord object represents the association between the unique identifier (SourcedGUID) for the CourseOffering object with the CourseOffering object itself.  The identifier object is not a part of the CourseOffering object but both are managed within the Course Database.  There is an isomorphic association between each pair of SourcedGUID and CourseOffering objects.

 


5.5.1           CourseOfferingId Attribute Description

Table 5.5 Description of the ‘sourcedGUID’ attribute for the ‘Offering’ class.

Descriptor

Definition

Attribute name

sourcedGUID

Data type

SourcedGUID

Value space

container

Multiplicity

1

Description

This is the globally unique identifier that has been assigned to the associated CourseOffering object.  Each CourseOffering object must have only one SourcedGUID but this may be changed, any number of times, during the object’s lifetime.

 

5.6            CourseSectionRecord Class Description

Table 5.6 Description of the ‘CourseSectionRecord’ class.

Descriptor

Definition

Class name

CourseSectionRecord

Class type

container

Multiplicity

0..unbounded, unordered

Parents

CourseDatabase

Children

[ sourcedGUID, courseSection ], unordered

Description

The CourseSectionRecord object represents the association between the unique identifier (SourcedGUID) for the CourseSection object with the CourseSection object itself.  The identifier object is not a part of the CourseSection object but both are managed within the Course Database.  There is an isomorphic association between each pair of SourcedGUID and CourseSection objects.

 


5.6.1           CourseSectionId Attribute Description

Table 5.7 Description of the ‘sourcedGUID’ attribute for the ‘Section’ class.

Descriptor

Definition

Attribute name

sourcedGUID

Data type

SourcedGUID

Value space

container

Multiplicity

1

Description

This is the globally unique identifier that has been assigned to the associated CourseSection object.  Each course section object must have only one SourcedGUID but this may be changed, any number of times, during the object’s lifetime.

 

5.7            SectionAssociationRecord Class Description

Table 5.8 Description of the ‘SectionAssociationRecord’ class.

Descriptor

Definition

Class name

SectionAssociationRecord

Class type

container

Multiplicity

0..unbounded, ordered

Parents

CourseDatabase

Children

[ sourcedGUID, sectionAssociation ], unordered

Description

The SectionAssociationRecord object represents the association between the unique identifier (SourcedGUID) for the SectionAssociation object with the SectionAssociation object itself.  The identifier object is not a part of the SectionAssociation object but both are managed within the Course Database.  There is an isomorphic association between each pair of SourcedGUID and SectionAssociation objects.

 


5.7.1           SectionAssociationId Attribute Description

Table 5.9 Description of the ‘sourcedGUID’ attribute for the ‘Association’ class.

Descriptor

Definition

Attribute name

sourcedGUID

Data type

SourcedGUID

Value space

container

Multiplicity

1

Description

This is the globally unique identifier that has been assigned to the associated SectionAssociation object.  Each course section object must have only one SourcedGUID but this may be changed, any number of times, during the object’s lifetime.

 

 

 


5.8            CourseTemplate Class Description

The PIM for the CourseTemplate is shown in Figure 5.3.

Figure 5.3 CourseTemplate class diagram.


Table 5.10 Description of the ‘CourseTemplate’ class.

Descriptor

Definition

Class name

CourseTemplate

Class type

container

Multiplicity

1

Parents

CourseTemplate

Children

[ label, title, catalogDescription, courseNumber, status, defaultCredits, org, listofTopics, listofPrerequisites, dataSource, recordInfo, extension ], ordered

Description

A CourseTemplate is a general course that exists across terms, semesters, etc.  It is an abstract course representation.  Examples of instances of CourseTemplates are Biology 101, Mathematics Module 2, etc.

 

5.8.1           Label Attribute Description

Table 5.11 Description of the ‘label’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

label

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

A human readable label used to help identify the CourseTemplate.

 

5.8.2           Title Attribute Description

Table 5.12 Description of the ‘title’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

title

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

The title of the CourseTemplate.

5.8.3           CatalogDescription Attribute Description

Table 5.13 Description of the ‘catalogDescription’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

catalogDescription

Data type

Description

Value space

container

Multiplicity

1

Description

This is a description of the CourseTemplate.  Several forms of description can be made i.e., short, long or full.  The full description can include multimedia materials.

 

5.8.4           CourseNumber Attribute Description

Table 5.14 Description of the ‘courseNumber’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

courseNumber

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

The course number e.g., Biology 101.  In general this number is not just a numeric value.

 


5.8.5           Status Attribute Description

Table 5.15 Description of the ‘status’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

status

Data type

Enumerated vocabulary.

Value space

Vocabulary-based.  The core vocabulary is given in Appendix B.

Multiplicity

1

Description

The data that is used to describe the status of the instance of the CourseTemplate.  The status of a CourseTemplate will change during its operational lifetime.  The value space for this vocabulary is approved by 1EdTech GLC and made available to the public as defined in [SDN11, 06].  The syntax and semantics of the approved list of terms shall be supported by all software components implementing this Information Model.

The value space for the vocabulary may be extended.  Such extending expressions may be created and used only when no approved 1EdTech GLC value satisfies the expressive need of an implementing community to define the shape of a collection.

 

5.8.6           DefaultCredits Attribute Description

Table 5.16 Description of the ‘defaultCredits’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

defaultCredits

Data type

Text

Value space

Language dependent String [1-2047 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

The default credits set for this CourseTemplate.  The unit of credits depends upon the instance.

 


5.8.7            Org Attribute Description

Table 5.17 Description of the ‘org’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

org

Data type

Org

Value space

container

Multiplicity

0..1

Description

The organization that has ‘ownership’ of the CourseTemplate in terms of administering or sponsoring it.

 

5.8.8           ListofTopics Attribute Description

Table 5.18 Description of the ‘listofTopics’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

listofTopics

Data type

ListofTopics

Value space

container

Multiplicity

0..1

Description

The list of topics that are covered in this Course.  The coverage of a topic is implementation dependent.

 

5.8.9           ListofPrerequisities Attribute Description

Table 5.19 Description of the ‘listofPrerequisities’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

listofPrerequisites

Data type

ListofPrerequisites

Value space

container

Multiplicity

0..1

Description

The list of pre-requisites for entry on courses derived from this Course Template.

 

5.8.10       DataSource Attribute Description

Table 5.20 Description of the ‘dataSource’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

dataSource

Data type

GUID

Value space

See Table 5.1.

Multiplicity

0..1

Description

An identifier of the original source system of the Membership object.

 

5.8.11       RecordInfo Attribute Description

Table 5.21 Description of the ‘recordInfo’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

recordInfo

Data type

Metadata

Value space

container

Multiplicity

0..1

Description

The container for metadata about the CourseTemplate object.  No particular form of metadata is mandated.

 

5.8.12       Extension Attribute Description

Table 5.22 Description of the ‘extension’ attribute for the ‘CourseTemplate’ class.

Descriptor

Definition

Attribute name

extension

Data type

IMSExtension

Value space

container

Multiplicity

0..1

Description

The extension mechanism for the CourseTemplate data model.

 

5.9            ListofPrerequisites Class Description

Table 5.23 Description of the ‘ListofPrerequisites’ class.

Descriptor

Definition

Class name

ListofPrerequisites

Class type

container

Multiplicity

0..1

Parents

CourseTemplate

Children

[ prerequisite ], ordered

Description

The set of pre-requisites that are assigned to a CourseTemplate.

 

Table 5.24 Description of the ‘prerequisite’ attribute for the ‘ListofPrerequisites’ class.

Descriptor

Definition

Attribute name

prerequisite

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1..unbounded, unordered

Description

The pre-requisite expressed in human readable form.  An implementation must be capable of supporting 63 pre-requisites.

 


5.10       ListofTopics Class Description

Table 5.25 Description of the ‘ListofTopics’ class.

Descriptor

Definition

Class name

ListofTopics

Class type

container

Multiplicity

0..1

Parents

CourseTemplate

Children

[ topic ], unordered

Description

The list of topics that are covered in a Course derived from the CourseTemplate.  There is no significance in the order of the topics.

 

Table 5.26 Description of the ‘topic’ attribute ‘ListofTopics’ class.

Descriptor

Definition

Attribute name

topic

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1..unbounded, unordered

Description

A topic covered in a Course expressed in human readable form. An implementation must be capable of supporting 63 topics.

 


5.11       CourseOffering Class Description

The PIM for the CourseOffering is shown in Figure 5.4.

Figure 5.4 CourseOffering class diagram.


Table 5.27 Description of the CourseOffering class.

Descriptor

Definition

Class name

CourseOffering

Class type

container

Multiplicity

1

Parents

CourseOfferingRecord

Children

[ label, title, parentTemplateId, catalogDescription, status, defaultCredits, academicSession, org, timeFrame, enrollControl, dataSource, recordInfo, extension ], ordered

Description

A CourseOffering is the occurrence of a course in a specific term, semester, etc.  A CourseTemplate can have several CourseOfferings and each CourseOffering can have several CourseSections.  If the CourseTemplate instance is English 101 then the CourseOfferings could be English 101 (Semester 1) and English 101 (Semester 2).

 

5.11.1       Label Attribute Description

Table 5.28 Description of the ‘label’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

label

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

A human readable label used to help identify the CourseOffering.

 

5.11.2       Title Attribute Description

Table 5.29 Description of the ‘title’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

title

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

The title of the CourseOffering.

5.11.3       ParentTemplateId Attribute Description

Table 5.30 Description of the ‘parentTemplateId’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

parentTemplateId

Data type

GUID

Value space

See Table 5.1.

Multiplicity

0..1

Description

The GUID for the parent CourseTemplate.  It should be noted that a CourseOffering may not have a parent CourseTemplate.

 

5.11.4       CatalogDescription Attribute Description

Table 5.31 Description of the ‘catalogDescription’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

catalogDescription

Data type

Description

Value space

Container

Multiplicity

1

Description

This is a description of the CourseOffering.  Several forms of description can be made i.e., short, long or full.  The full description can include multimedia materials.

 

5.11.5       DefaultCredits Attribute Description

Table 5.32 Description of the ‘defaultCredits’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

defaultCredits

Data type

Text

Value space

Language dependent String [1-2047 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

The default credits set for this CourseOffering.  The unit of credits depends upon the implementation.

 


5.11.6       Status Attribute Description

Table 5.33 Description of the ‘status’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

status

Data type

Enumerated vocabulary.

Value space

Vocabulary-based.  The core vocabulary is given in Appendix B.

Multiplicity

1

Description

The data that is used to describe the status of the instance of the course offering.  The status of a course template will change during its operational lifetime.  The value space for this vocabulary is approved by 1EdTech GLC and made available to the public as defined in [SDN11, 06].  The syntax and semantics of the approved list of terms shall be supported by all software components implementing this Information Model.

The value space for the vocabulary may be extended.  Such extending expressions may be created and used only when no approved 1EdTech GLC value satisfies the expressive need of an implementing community to define the shape of a collection.

 

5.11.7       AcademicSession Attribute Description

Table 5.34 Description of the ‘academicSession’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

academicSession

Data type

Enumerated vocabulary.

Value space

Implementation dependent.

Multiplicity

1

Description

The data that is used to describe the academic session for the course offering.  The value space for this vocabulary is approved by 1EdTech GLC and made available to the public as defined in [SDN11, 06].  The syntax and semantics of the approved list of terms shall be supported by all software components implementing this Information Model.

The value space for the vocabulary may be extended.  Such extending expressions may be created and used only when no approved 1EdTech GLC value satisfies the expressive need of an implementing community to define the shape of a collection.

 


5.11.8       Org Attribute Description

Table 5.35 Description of the ‘org’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

org

Data type

Org

Value space

Container

Multiplicity

0..1

Description

The organization that has ‘ownership’ of the CourseOffering in terms of administering or sponsoring it.

 

5.11.9       TimeFrame Attribute Description

Table 5.36 Description of the ‘timeFrame’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

timeFrame

Data type

TimeFrame

Value space

container

Multiplicity

0..unbounded, unordered

Description

The period when the CourseOffering is available.

 

5.11.10    EnrollControl Attribute Description

Table 5.37 Description of the ‘enrollControl’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

enrollControl

Data type

EnrollControl

Value space

container

Multiplicity

0..1

Description

Indicates if the enrolment on the CourseOffering is available.

 

5.11.11    DataSource Attribute Description

Table 5.38 Description of the ‘dataSource’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

dataSource

Data type

GUID

Value space

See Table 5.1.

Multiplicity

0..1

Description

An identifier of the original source system of the CourseOffering object.

 

5.11.12    RecordInfo Attribute Description

Table 5.39 Description of the ‘recordInfo’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

recordInfo

Data type

Metadata

Value space

container

Multiplicity

0..1

Description

The container for metadata about the CourseOffering object.  No particular form of metadata is mandated.

 

5.11.13    Extension Attribute Description

Table 5.40 Description of the ‘extension’ attribute for the ‘CourseOffering’ class.

Descriptor

Definition

Attribute name

extension

Data type

IMSExtension

Value space

container

Multiplicity

0..1

Description

The extension mechanism for the CourseOffering data model.

 

 


5.12       CourseSection Class Description

The PIM for the CourseSection is shown in Figure 5.5.

Figure 5.5 CourseSection class diagram.

 


Table 5.41 Description of the CourseSection class.

Descriptor

Definition

Class name

CourseSection

Class type

container

Multiplicity

1

Parents

CourseSectionRecord

Children

[ label, title, parentOfferingId, catalogDescription, status, defaultCredits, category, maxNumberofStudents, numberofStudents, academicSession, org, timeFrame, enrollControl, location, notes, meeting, dataSource, recordInfo, extension ], ordered

Description

A CourseSection is a way to represent a group of people associated with a course or class.  These groups may include everyone in the class or course, or may be subsets of that whole group.  CourseSections may have sub-sections (these are created as separate Group objects linked using the relationship).  Examples of a CourseSection are Lecture, Laboratory, Studio, Seminar, etc.  There may be several instances of a type of CourseSection e.g., multiple lectures.

Several CourseSections can be associated using a SectionAssociation.

 

5.12.1       Label Attribute Description

Table 5.42 Description of the ‘label’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

label

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

A human readable label used to help identify the CourseSection.

 


5.12.2       Title Attribute Description

Table 5.43 Description of the ‘title’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

title

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

The title of the CourseSection.

 

5.12.3       ParentOfferingId Attribute Description

Table 5.44 Description of the ‘parentOfferingId’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

parentOfferingId

Data type

GUID

Value space

See table 5.1.

Multiplicity

0..1

Description

The GUID for the parent CourseOffering.  It should be noted that a CourseSection may not have a parent CourseOffering.

 

5.12.4       CatalogDescription Attribute Description

Table 5.45 Description of the ‘catalogDescription’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

catalogDescription

Data type

Description

Value space

container

Multiplicity

1

Description

This is a description of the CourseSection.  Several forms of description can be made i.e., short, long or full.  The full description can include multimedia materials.

 


5.12.5       Status Attribute Description

Table 5.46 Description of the ‘status’ attribute. for the ‘CourseSection’ class

Descriptor

Definition

Attribute name

status

Data type

Enumerated vocabulary.

Value space

Vocabulary-based.  The core vocabulary is given in Appendix B.

Multiplicity

0..1

Description

The data that is used to describe the status of the instance of the CourseSection.  The status of a CourseSection will change during its operational lifetime.  The value space for this vocabulary is approved by 1EdTech GLC and made available to the public as defined in [SDN11, 06].  The syntax and semantics of the approved list of terms shall be supported by all software components implementing this Information Model.

The value space for the vocabulary may be extended.  Such extending expressions may be created and used only when no approved 1EdTech GLC value satisfies the expressive need of an implementing community to define the shape of a collection.

 

5.12.6       DefaultCredits Attribute Description

Table 5.47 Description of the ‘defaultCredits’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

defaultCredits

Data type

Text

Value space

Language dependent String [1-2047 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

The default credits set for this CourseSection.  The unit of credits depends upon the instance.

 


5.12.7       Category Attribute Description

Table 5.48 Description of the ‘category’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

category

Data type

Enumerated vocabulary.

Value space

Implementation dependent.

Multiplicity

0..1

Description

The data that is used to describe the type of CourseSection e.g., Lecture, laboratory, etc.  The value space for this vocabulary is approved by 1EdTech GLC and made available to the public as defined in [SDN11, 06].  The syntax and semantics of the approved list of terms shall be supported by all software components implementing this Information Model.

The value space for the vocabulary may be extended.  Such extending expressions may be created and used only when no approved 1EdTech GLC value satisfies the expressive need of an implementing community to define the shape of a collection.

 

5.12.8       MaxNumberofStudents Attribute Description

Table 5.49 Description of the ‘maxNumberofStudents’ attribute. for the ‘CourseSection’ class

Descriptor

Definition

Attribute name

maxNumberofStudents

Data type

Integer

Value space

Integer [1-999].

Multiplicity

1

Description

This defines the maximum number of students that can be enrolled on this CourseSection.

 


5.12.9       NumberofStudents Attribute Description

Table 5.50 Description of the ‘numberofStudents’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

numberofStudents

Data type

Integer

Value space

Integer: 1-999

Multiplicity

0..1

Description

The number of students who are enrolled on this instance of the CourseSection.

 

5.12.10    AcademicSession Attribute Description

Table 5.51 Description of the ‘academicSession’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

academicSession

Data type

Enumerated vocabulary.

Value space

Implementation dependent.

Multiplicity

1

Description

The data that is used to describe the academic session for the course section.  The value space for this vocabulary is approved by 1EdTech GLC and made available to the public as defined in [SDN11, 06].  The syntax and semantics of the approved list of terms shall be supported by all software components implementing this Information Model.

The value space for the vocabulary may be extended.  Such extending expressions may be created and used only when no approved 1EdTech GLC value satisfies the expressive need of an implementing community to define the shape of a collection.

 

 


5.12.11    Org Attribute Description

Table 5.52 Description of the ‘org’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

org

Data type

Org

Value space

container

Multiplicity

0..1

Description

The organization that has ‘ownership’ of the CourseSection in terms of administering or sponsoring it.

 

5.12.12    TimeFrame Attribute Description

Table 5.53 Description of the ‘timeFrame’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

timeFrame

Data type

TimeFrame

Value space

container

Multiplicity

0..unbounded, unordered

Description

The period when the CourseSection is available.

 

5.12.13    EnrollControl Attribute Description

Table 5.54 Description of the ‘enrollControl’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

enrollControl

Data type

EnrollControl

Value space

container

Multiplicity

0..1

Description

Indicates if the enrolment on the CourseSection is available.

 

5.12.14    Location Attribute Description

Table 5.55 Description of the ‘Location’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

location

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

The location of the CourseSection activity e.g., the building and room number of a laboratory.

 

5.12.15    Notes Attribute Description

Table 5.56 Description of the ‘notes’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

notes

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

Special notes about the CourseSection.

 


5.12.16    Meeting Attribute Description

Table 5.57 Description of the ‘meeting’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

meeting

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

Human readable information about the CourseSection.

 

5.12.17    DataSource Attribute Description

Table 5.58 Description of the ‘dataSource’ attribute for the Membership class for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

dataSource

Data type

GUID

Value space

See Table 5.1.

Multiplicity

0..1

Description

An identifier of the original source system of the CourseSection object.

 

5.12.18    RecordInfo Attribute Description

Table 5.59 Description of the ‘recordInfo’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

recordInfo

Data type

Metadata

Value space

container

Multiplicity

0..1

Description

The container for metadata about the CourseSection object.  No particular form of metadata is mandated.

 

5.12.19    Extension Attribute Description

Table 5.60 Description of the ‘extension’ attribute for the ‘CourseSection’ class.

Descriptor

Definition

Attribute name

extension

Data type

IMSExtension

Value space

container

Multiplicity

0..1

Description

The extension mechanism for the CourseSection data model.

 


5.13       SectionAssociation Class Description

The PIM for the SectionAssociation is shown in Figure 5.6.

Figure 5.6 SectionAssociation class diagram.

 

Table 5.61 Description of the SectionAssociation class.

Descriptor

Definition

Class name

SectionAssociation

Class type

container

Multiplicity

1

Parents

SectionAssociationRecord

Children

[ label, title, status, courseSectionIdList, Metadata, dataSource, recordInfo, extension ], ordered

Description

Defines which CourseSections are associated.

 


5.13.1       Label Attribute Description

Table 5.62 Description of the ‘label’ attribute for the ‘SectionAssociation’ class.

Descriptor

Definition

Attribute name

label

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

A human readable label used to help identify the SectionAssociation.

 

5.13.2       Title Attribute Description

Table 5.63 Description of the ‘title’ attribute for the ‘SectionAssociation’ class.

Descriptor

Definition

Attribute name

title

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

The title of the SectionAssociation.

 

5.13.3       CourseSectionIdList Attribute Description

Table 5.64 Description of the ‘courseSectionIdList’ attribute for the ‘SectionAssociation’ class.

Descriptor

Definition

Attribute name

courseSectionIdList

Data type

ListofCourseSectionIds

Value space

container

Multiplicity

0..1

Description

The container for the list of CourseSection identifiers that are to be associated.

 


5.13.4       Status Attribute Description

Table 5.65 Description of the ‘status’ attribute for the ‘SectionAssociation’ class.

Descriptor

Definition

Attribute name

status

Data type

Enumerated vocabulary.

Value space

Vocabulary-based.  The core vocabulary is given in Appendix B.

Multiplicity

0..1

Description

The data that is used to describe the status of the instance of the SectionAssociation.  The status of a SectionAssociation will change during its operational lifetime.  The value space for this vocabulary is approved by 1EdTech GLC and made available to the public as defined in [SDN11, 06].  The syntax and semantics of the approved list of terms shall be supported by all software components implementing this Information Model.

The value space for the vocabulary may be extended.  Such extending expressions may be created and used only when no approved 1EdTech GLC value satisfies the expressive need of an implementing community to define the shape of a collection.

 

5.13.5       DataSource Attribute Description

Table 5.66 Description of the ‘dataSource’ attribute for the ‘SectionAssociation’ class.

Descriptor

Definition

Attribute name

dataSource

Data type

GUID

Value space

See Table 5.1.

Multiplicity

0..1

Description

An identifier of the original source system of the SectionAssociation object.

 


5.13.6       RecordInfo Attribute Description

Table 5.67 Description of the ‘recordInfo’ attribute for the ‘SectionAssociation’ class.

Descriptor

Definition

Attribute name

recordInfo

Data type

Metadata

Value space

container

Multiplicity

0..1

Description

The container for metadata about the SectionAssociation object.  No particular form of metadata is mandated.

 

5.13.7       Extension Attribute Description

Table 5.68 Description of the ‘extension’ attribute for the ‘SectionAssociation’ class.

Descriptor

Definition

Attribute name

extension

Data type

IMSExtension

Value space

container

Multiplicity

0..1

Description

The extension mechanism for the SectionAssociation data model.

 


5.14       ListofCourseSectionIds Class Description

 

Table 5.69 Description of the ListofCourseSectionIds class.

Descriptor

Definition

Class name

SectionAssociation

Class type

container

Multiplicity

0..1

Parents

SectionAssociation

Children

None.

Description

The set of CourseSection identifiers that form the SectionAssociation.

 

5.14.1       CourseSectionId Attribute Description

Table 5.70 Description of the ‘courseSectionId’ attribute for the ‘ListofCourseSectionIds’ class.

Descriptor

Definition

Attribute name

courseSectionId

Data type

GUID

Value space

See Table 5.1.

Multiplicity

1..unbounded, unordered

Description

The GUID for the CourseSection that is to be a part of the SectionAssociation.  An implementation must support at least 100 instances of this attribute.

 


5.15       Common Classes Descriptions

The PIM for the common classes is shown in Figure 5.7.

Figure 5.7 Common class diagram.


5.15.1       Org Class Description

Table 5.71 Description of the Org class.

Descriptor

Definition

Class name

org

Class type

container

Children

[ orgName, orgUnit, type, id ], ordered

Description

Information about an organization that has ‘ownership’ of a Course or some component of a Course.

 

Table 5.72 Description of the ‘orgName’ attribute for the ‘Org’ class.

Descriptor

Definition

Attribute name

orgName

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

The name of the organization.

 

Table 5.73 Description of the ‘orgUnit’ attribute for the ‘Org’ class.

Descriptor

Definition

Attribute name

orgUnit

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

Name of the sponsoring or administering unit within the organization. One or more departments or units can sponsor the Group e.g., ‘0-158 – Math Department’.

 


Table 5.74 Description of the ‘type’ attribute for the ‘Org’ class.

Descriptor

Definition

Attribute name

type

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

Used to distinguish general categories of the organization e.g., ‘Academic Unit’, ‘HR Department’, etc.

 

Table 5.75 Description of the ‘id’ attribute for the ‘Org’ class.

Descriptor

Definition

Attribute name

id

Data type

Text

Value space

Language dependent String [1-255 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

Identifier of the organization. If there is a code for the organization, it can be specified separately in this field.

 

5.15.2       EnrollControl Class Description

Table 5.76 Description of the EnrollControl class.

Descriptor

Definition

Class name

EnrollControl

Class type

container

Children

[ enrollAccept, enrollAllowed ], ordered

Description

To control enrolment on the Course component.  This control is on the Course component plus the target system.

 


Table 5.77 Description of the ‘enrollAccept’ attribute for the ‘EnrollControl’ class.

Descriptor

Definition

Attribute name

enrollAccept

Data type

Boolean

Value space

Enumerated: {true=accept enrolment; false=do not accept enrolment}

Multiplicity

0..1

Description

Indicates if the Course is accepting enrolments. There can be different reasons for a Course being closed e.g., it may be full, it may be cancelled, etc

 

Table 5.78 Description of the ‘enrollAllowed’ attribute for the ‘EnrollControl’ class.

Descriptor

Definition

Attribute name

enrollAllowed

Data type

Boolean

Value space

Enumerated: {true=accept enrolment; false=do not accept enrolment}

Multiplicity

0..1

Description

Determines if the target system can enroll people. If ‘false’, then only the source system can enroll people.

 

5.15.3       TimeFrame Class Description

Table 5.79 Description of the TimeFrame class for the ‘EnrollControl’ class.

Descriptor

Definition

Class name

TimeFrame

Class type

container

Children

[ begin, end, restrict, adminPeriod ], ordered

Description

Defines the period for which a particular activity is permitted.

 


Table 5.80 Description of the ‘begin’ attribute for the ‘EnrollControl’ class.

Descriptor

Definition

Attribute name

begin

Data type

DateTime

Value space

See Table 5.1.

Multiplicity

0..1

Description

The start date/time of the activity.

 

Table 5.81 Description of the ‘end’ attribute for the ‘EnrollControl’ class.

Descriptor

Definition

Attribute name

end

Data type

DateTime

Value space

See Table 5.1.

Multiplicity

0..1

Description

The end date/time of the activity.

 

Table 5.82 Description of the ‘restrict’ attribute for the ‘EnrollControl’ class.

Descriptor

Definition

Attribute name

restrict

Data type

Boolean

Value space

Enumerated: {true=restriction is active; false=restriction is not active}

Multiplicity

0..1

Description

Define if the restriction is active or not.

 


Table 5.83 Description of the ‘adminPeriod’ attribute for the ‘EnrollControl’ class.

Descriptor

Definition

Attribute name

adminPeriod

Data type

Text

Value space

A language dependent String [1-127 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

A short descriptive name of the period being defined.  This should be human readable.

 

5.15.4       Description Class Description

Table 5.84 Description of the Description class.

Descriptor

Definition

Class name

Description

Class type

container

Children

[ shortDescription, longDescription, fullDescription ], ordered

Description

The container for descriptive material about the associated object.  The description can take the form of text, image, video, audio, etc.

 

Table 5.85 Description of the ‘shortDescription’ attribute for the ‘Description’ class.

Descriptor

Definition

Attribute name

shortDescription

Data type

Text

Value space

A language dependent String [1-127 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

A short textual description.

 


Table 5.86 Description of the ‘longDescription’ attribute for the ‘Description’ class.

Descriptor

Definition

Attribute name

longDescription

Data type

Text

Value space

A language dependent String [1-2095 characters].  The default language is ‘en-US’.

Multiplicity

0..1

Description

A long textual description.

 

Table 5.87 Description of the ‘fullDescription’ attribute for the ‘Description’ class.

Descriptor

Definition

Attribute name

fullDescription

Data type

FullDescription

Value space

container

Multiplicity

0..1

Description

The full description consists of the required material types.

 

5.15.5       FullDescription Class Description

Table 5.88 Description of the FullDescription class.

Descriptor

Definition

Class name

FullDescription

Class type

container

Multiplicity

Description

Children

[ mediamode, contentRefType, mimeType, descriptionText ], ordered

Description

A full description of the activity, etc. using text, images, etc.

 


Table 5.89 Description of the ‘mediaMode’ attribute for the ‘FullDescription’ class.

Descriptor

Definition

Attribute name

mediaMode

Data type

Enumerated

Value space

Enumerated as:{ uri, entityref, base64 }

Multiplicity

1

Description

The reference form to the material.

 

Table 5.90 Description of the ‘contentRefType’ attribute for the ‘FullDescription’ class.

Descriptor

Definition

Attribute name

contentRefType

Data type

Enumerated

Value space

{ text, image, audio, video, application, applet }

Multiplicity

1

Description

The type of the material.

 

Table 5.91 Description of the ‘mimeType’ attribute for the ‘FullDescription’ class.

Descriptor

Definition

Attribute name

mimeType

Data type

NormalizedString

Value space

Normalized String [1..63] characters.

Multiplicity

1

Description

The mime-type for the material.

 


Table 5.92 Description of the ‘descriptionText’ attribute for the ‘FullDescription’ class.

Descriptor

Definition

Attribute name

descriptionText

Data type

Text

Value space

A language dependent String [1-1027 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

A textual description of the material.

 

5.15.6       Text Class Description

Table 5.93 Description of the ‘Text’ class.

Descriptor

Definition

Class name

Text

Class type

container

Children

[ language, textString ]

Description

Text to be stored.  This is a language/string tuple.

 

Table 5.94 Description of the ‘language’ attribute for the ‘Text’ class.

Descriptor

Definition

Attribute name

language

Data type

Enumerated.

Value space

RFC4646 language codes.  The default value is: ‘en-US’.

Multiplicity

1

Description

The language for the associated text string.

 


Table 5.95 Description of the ‘text’ attribute for the ‘Text’ class.

Descriptor

Definition

Attribute name

textString

Data type

Text

Value space

String [1-4095 characters].

Multiplicity

1

Description

The container for the string.

 

5.15.7       Metadata Class Description

The PIM for the Metadata class is shown in Figure 5.7.

Table 5.96 Description of the Metadata class.

Descriptor

Definition

Class name

Metadata

Class type

container

Children

[ metadataNameVocabulary, metadataTypeVocabulary, metadataField ], ordered

Description

This is the container for meta-data about the corresponding object.  The meta-data entries are supplied using a name/type/value triple based upon external vocabularies.

 

Table 5.97 Description of the ‘metadataNameVocabulary’ attribute for the Metadata class.

Descriptor

Definition

Attribute name

metadataNameVocabulary

Data type

URI

Value space

See Table 5.1.

Multiplicity

1

Description

The URI for the vocabulary that is used to define the set of permitted fieldName values.  If this is a reference to a VDEX file it is the ‘vocabIdentifier’ of the vocabulary.

 


Table 5.98 Description of the ‘metadataTypeVocabulary’ attribute for the Metadata class.

Descriptor

Definition

Attribute name

metadataTypeVocabulary

Data type

URI

Value space

See Table 5.1.

Multiplicity

1

Description

The URI for the vocabulary that is used to define the set of permitted fieldType values.  If this is a reference to a VDEX file it is the ‘vocabIdentifier’ of the vocabulary.

 

Table 5.99 Description of the ‘metadataField’ attribute for the Metadata class.

Descriptor

Definition

Attribute name

metadataField

Data type

ExtensionField

Value space

container

Multiplicity

1..unbounded, unordered

Description

The container for the triples that are used to define each extension data element.

 

5.15.8       IMSExtension Class Description

The PIM for the IMSExtension class is shown in Figure 5.7.

Table 5.100 Description of the IMSExtension class.

Descriptor

Definition

Class name

IMSExtension

Class type

container

Children

[ extensionNameVocabulary, extensionTypeVocabulary, extensionField ], ordered

Description

The container for the extension of the Group data model.

 


Table 5.101 Description of the ‘extensionNameVocabulary’ attribute for the IMSExtension class.

Descriptor

Definition

Attribute name

extensionNameVocabulary

Data type

URI

Value space

See Table 5.1.

Multiplicity

1

Description

The URI for the vocabulary that is used to define the set of permitted fieldName values.  If this is a reference to a VDEX file it is the ‘vocabIdentifier’ of the vocabulary.

 

Table 5.102 Description of the ‘extensionTypeVocabulary’ attribute for the IMSExtension class.

Descriptor

Definition

Attribute name

extensionTypeVocabulary

Data type

URI

Value space

See Table 5.1.

Multiplicity

1

Description

The URI for the vocabulary that is used to define the set of permitted fieldType values.  If this is a reference to a VDEX file it is the ‘vocabIdentifier’ of the vocabulary.

 

5.15.9       ExtensionField Class Description

The PIM for the ExtensionField class is shown in Figure 5.7.

Table 5.103 Description of the ExtensionField class.

Descriptor

Definition

Class name

ExtensionField

Class type

container

Children

None.

Description

The container for each triple that describes an extension field.  Each triple consists of field name, field type and field value.

 


Table 5.104 Description of the ‘fieldName’ attribute for the ‘ExtensionField’ class.

Descriptor

Definition

Attribute name

fieldName

Data type

NormalizedString

Value space

A language dependent String [1-127 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

The container for the name of the extension field.  This is used to identify the full triple.

 

Table 5.105 Description of the ‘fieldType’ attribute for the ‘ExtensionField’ class.

Descriptor

Definition

Attribute name

fieldType

Data type

Enumerated vocabulary.

Value space

Vocabulary-based.  The core vocabulary is given in Appendix B.

Multiplicity

1

Description

This defines the data-type for the extension triple.  The value space for this vocabulary is approved by 1EdTech GLC and made available to the public as defined in [SDN11, 06].  The syntax and semantics of the approved list of terms shall be supported by all software components implementing this Information Model.

The value space for the vocabulary may be extended.  Such extending expressions may be created and used only when no approved 1EdTech GLC value satisfies the expressive need of an implementing community to define the shape of a collection.

 

Table 5.106 Description of the ‘fieldValue’ attribute for the ‘ExtensionField’ class.

Descriptor

Definition

Attribute name

fieldValue

Data type

NormalizedString

Value space

A language dependent String [1-127 characters].  The default language is ‘en-US’.

Multiplicity

1

Description

The container for the data value itself.  This is stored as a string but should be interpreted as per the data-type defined in the ‘fieldType’ part of the triple.

 

5.15.10    SourcedGUID Class Description

Table 5.107 Description of the SourcedGUID class.

Descriptor

Definition

Class name

SourcedGUID

Class type

container

Children

[ refAgentInstanceID, sourcedId ], ordered

Description

This is a structured GUID that consists of an instance identifier and a sourcedId.

 

Table 5.108 Description of the ‘refAgentInstanceID’ attribute for the SourcedGUID class.

Descriptor

Definition

Attribute name

refAgentInstanceID

Data type

NormalizedString

Value space

Normalized string [1..31 characters].

Multiplicity

0..1

Description

This is an instance identifier used to differentiate, if necessary, between multiple end system reference agents.

 

Table 5.109 Description of the ‘sourcedId’ attribute for the SourcedGUID class.

Descriptor

Definition

Attribute name

sourcedId

Data type

GUID

Value space

See Table 5.1.

Multiplicity

1

Description

The sourcedId for the object.  This should be a GUID.

 

 

6                  Extending and Profiling the Service

6.1            Proprietary Extensions

Proprietary extensions of the service are based upon two approaches:

a)       The extension of the data models being manipulated by the current set of operations;

b)       The inclusion of new operations to support new proprietary functionality.

It is NOT permitted to change the behavior of the current set of operations.  Such changes MUST be supported by the creation of new operations.

6.1.1           Proprietary Operations

The definition of new operations should follow the same format as adopted herein.  The new operations should be defined using a new interface type.  Every operation must result in the return of a status code that describes the final state of the request on the target end system.

An example of creating such an extension is given in the accompanying Best Practices document [LIS, 11c].

6.1.2           Proprietary Data Elements

Extensions to the data model are only permitted where the IMSExtension class is available.  Within the Course data model only the ‘CourseTemplate’, ‘CourseOffering’, ‘CourseSection’ and ‘SectionAssociation’ classes can be extended.  The extension takes the form of a Name/Type/Value triple.  Many extension fields can be added but hierarchical structures must be emulated using the appropriate delimited notation in the ‘Name’ field.  This triple consists of:

·         Name – the name assigned to the extension field (this is a string that can support any naming convention);

·         Type – the data-type that is to be used for the value (this is used for interpreting the associated value);

·         Value – the data value for the extension (the value is supplied as a string).

6.2            Profiling the Service

This Service can be profiled.  In general, Profiling is used to:

a)       Refine which Interfaces are used and which operations are supported for each Interface;

b)       Refine the data models (see the 1EdTech GLC Application Profiling guidelines for more details on how data models can be profiled [APG, 05a][APG, 05b]).

Valid Profiles must be restrictive i.e., optional features can be removed or constraints increased but new features must not be added.  A Profile of this service is made by annotating the UML supplied with the documentation for the specification.

 

Appendix A – Service Status Codes

The summary list of status codes that can be returned by the different operations through the StatusInfo object is given in Table A.1.  The key to the entries is: ‘Y’ denotes the code may be returned by that operation.  A blank entry means that the code cannot be returned by that operation.

Table A.1 Status codes for the service operations.

CodeMinor Status Code

 

 

create1

createByProxy2

delete3

read4

update5

replace6

discovery7

changeIdentifier8

‘fullsuccess’

Y

Y

Y

Y

Y

Y

Y

Y

‘createsuccess’

 

 

 

 

 

Y

 

 

‘nosourcedids’

 

 

 

Y

 

 

Y

 

‘idallocfail’

 

Y

 

 

 

 

 

 

‘overflowfail’

Y

Y

 

 

 

 

 

 

‘idallocinusefail’

Y

 

 

 

 

 

 

Y

‘invaliddata’

Y

Y

 

 

Y

Y

Y

 

‘incompletedata’

Y

Y

 

Y

Y

Y

 

 

‘toomuchdata’

 

 

 

Y

 

 

Y

 

‘partialdatastorage’

Y

Y

 

Y

Y

Y

 

 

‘unknownobject’

 

 

Y

Y

Y

 

 

Y

‘unknownmdvocabulary’

Y

Y

 

 

Y

Y

 

 

‘unknownvocabulary’

Y

Y

 

 

Y

Y

 

 

‘unknownquery’

 

 

 

 

 

 

Y

 

‘deletefailure’

 

 

Y

 

 

 

 

 

‘targetreadfailure’

 

 

 

Y

 

 

 

 

‘savepointsyncerror’

 

 

 

Y

 

 

 

 

‘savepointerror’

 

 

 

Y

 

 

 

 

unknownextension’

Y

Y

 

Y

Y

Y

 

 

‘targetisbusy’

Y

Y

Y

Y

Y

Y

Y

Y

‘linkfailure’

Y

Y

Y

Y

Y

Y

Y

Y

‘unauthorizedrequest’

Y

Y

Y

Y

Y

Y

Y

Y

‘unsupported’

Y

Y

Y

Y

Y

Y

Y

Y

 

 

Note:

1.       Denotes used by the ‘createCourseTemplate’, ‘createCourseOffering’, ‘createCourseSection’, ‘createSectionAssociation’, ‘createCourseOfferingFromCourseOffering’ and ‘createCourseSectionFromCourseSection’ operations;

2.       Denotes used by the ‘createByProxyCourseTemplate’, ‘createByProxyCourseOffering’, ‘createByProxyCourseSection’ and ‘createByProxySectionAssociation’ operations;

3.       Denotes used by the ‘deleteCourseTemplate’, ‘deleteCourseOffering’, ‘deleteCourseSection’ and ‘deleteSectionAssociation’ operations;

4.       Denotes used by the ‘readCourseTemplate’, ‘readCourseOffering’, ‘readCourseSection’, ‘readSectionAssociation’, ‘readCourseTemplates’, ‘readCourseOfferings’, ‘readCourseSections’, ‘readSectionAssociations’, ‘readCourseTemplatesFromSavePoint’, ‘readCourseOfferingsFromSavePoint’, ‘readCourseSectionsFromSavePoint’, ‘readSectionAssociationsFromSavePoint’, ‘readAllCourseTemplateIds’, ‘readCourseOfferingIdsForCourseTemplate’, ‘readCourseTemplateIdsFromSavepoint’, ‘readAllCourseOfferingIds’, ‘readAllActiveCourseOfferingIdsForAcademicSession’, ‘readCourseOfferingIdsFromSavePoint’ ‘readCourseSectionIdsForCourseOffering’, ‘readAllCourseSectionIds’, ‘readCourseSectionIdsFromSavePoint’ and ‘readSectionAssociationIdsFromSavePoint’ operations;

5.       Denotes used by the ‘updateCourseTemplate’, ‘updateCourseOffering’, ‘updateCourseSection’ and ‘updateSectionAssociation’ operations;

6.       Denotes used by the ‘replaceCourseTemplate’, ‘replaceCourseOffering’, ‘replaceCourseSection’ and ‘replaceSectionAssociation’ operations;

7.       Denotes used by the ‘discoverCourseTemplateIds’, ‘discoverCourseOfferingIds’, ‘discoverCourseSectionIds’ and ‘discoverSectionAssociationIds’ operations;

8.       Denotes used by the ‘changeCourseTemplateIdentifier’, ‘changeCourseOfferingIdentifier’, ‘changeCourseSectionIdentifier’ and ‘changeSectionAssociationIdentifier’ operations.

There is a set of status codes that must be supported by each of the Course Management Service operations.  These codes are described in Table A.2.

Table A.2 Common status codes for the service operations.

Status Code

Explanation of the Cause of the Code

‘CodeMajor=Failure’

‘Severity=Status’

‘CodeMinor=unauthorizedrequest’

The source system is not authorized to make this request of the target.  The reason for the refusal can be one of several causes.

‘CodeMajor=Failure’

‘Severity=Status’
‘CodeMinor=targetisbusy’

The target end-system received the request but is busy and cannot process the request.  The request should be resubmitted.

‘CodeMajor=Failure’

‘Severity=Error’

‘CodeMinor=linkfailure’

There has been a failure in the end-to-end system communications mechanism and so the request has not been delivered.

‘CodeMajor=UnsupportedLIS’

‘Severity=Status’

‘CodeMinor=*’

This service in LIS is not supported by the target system. Every system that implements any part of the LIS specification must return this status code for a service component in LIS that is not supported.

‘CodeMajor=UnsupportedLISoperation’

‘Severity=Status’

‘CodeMinor=*’

This operation is not supported by the target system. Every system that implements any part of the LIS specification must return this status code for an operation that is not supported in a supported service.

 

Appendix B Vocabularies

B1     Set of Defined Vocabularies

The vocabularies listed in Table B1.1, B1.2 and B1.3 are the default set maintained under the 1EdTech GLC Vocabulary Registry [SDN11, 06].  It is the responsibility of an implementation to ensure that it is using the correct and latest versions of the vocabulary files.  Changes to the default vocabularies are permitted; this results in the creation of a new vocabulary that should be registered with 1EdTech GLC.  As part of a profiling process entirely new vocabularies may be defined to replace the default set.

B1.1       Implementation-dependent Vocabularies

The implementation-dependent vocabularies are identified in Table B1.1.

Table B1.1 Set of implementation dependent vocabularies.

Vocabulary

Description

CourseOffering Class
        ‘academicSession’ attribute

The permitted values for the identification of an academic session.

This is an implementation dependent vocabulary.

CourseSection Class
        ‘category’ attribute

The permitted values for the type of CourseSection.

This is an implementation dependent vocabulary.

 

B1.2       LineItemType Vocabulary

The vocabulary for the ‘status’ attribute is listed in Table B1.2.

Table B1.2 The status attribute external vocabulary.

Vocabulary

Description

CourseTemplate Class
        ‘status’ attribute

CourseOffering Class
        ‘status’ attribute

CourseSection Class
        ‘status’ attribute

SectionAssociation Class
        ‘status’ attribute

The permitted status values for each component of a Course. The core vocabulary is:

·         Active (default)

·         Inactive

 

Rule B.2-01: Active – the associated entity is in an active state;

Rule B.2-02: Inactive – the associated entity is in an inactive state.

 


B1.3       FieldType Vocabulary

The vocabulary for type of field in ‘fieldType’ is listed in Table B1.3.

Table B1.3 The fieldType external vocabulary.

Vocabulary

Description

ExtensionField Class
        ‘fieldType’ attribute

Data types that are permitted for the extension fields.  These data-types reflect the permitted types for XML.  Enumerated as:

·         Boolean

·         DateTime

·         Integer

·         Decimal

·         String

 

Rule B.3-01: Boolean – the data-type is equivalent to the definition of a ‘Boolean’ in XML;

Rule B.3-02: DateTime – the data-type is equivalent to the definition of a ‘DateTime’ in XML;

Rule B.3-03: Integer – the data-type is equivalent to the definition of an ‘Integer’ in XML;

Rule B.3-04: Decimal – the data-type is equivalent to the definition of a ‘Decimal’ in XML;

Rule B.3-05: String – the data-type is equivalent to the definition of a ‘String’ in XML.

 

B1.4       Language Vocabulary

The language code/country code combination used to identify the language for a piece of text is an enumerated external 1EdTech GLC vocabulary that captures the full set of entries from RFC4646.

 

B2     Using Vocabularies for the Metadata Class

The Metadata class consists of attributes:

·         metadataNameVocabulary – identifies the vocabulary that contains the reference set of fieldName values for the meta-data[2];

·         metadataTypeVocabulary – identifies the vocabulary that contains the reference set of fieldType values for the meta-data.  The value for this attribute is the same as the ‘vocabIdentifier’ of the VDEX instance for this vocabulary;

·         metadataField – contains the set of triples (fieldName/fieldType/fieldValue) for each meta-data entry.

The value in the ‘fieldName’ must be from the vocabulary (identified using the metadataNameVocabulary attribute).  The value in the ‘fieldType’ must be from the external vocabulary containing the permitted set of external field types (as listed in the metadataTypeVocabulary attribute).  The value in the ‘fieldValue’ is the metadata value itself.  Nested values are possible using a dot notation in the ‘fieldName’ e.g., for LOM this could be ‘general.keyword.string’, etc.

B3     Using Vocabularies for the IMSExtension Class

The IMSExtension class consists of attributes:

·         extensionNameVocabulary[3] – identifies the vocabulary that contains the reference set of fieldName values for the extension;

·         extensionTypeVocabulary – identifies the vocabulary that contains the reference set of fieldType values for the extension. The value for this attribute is the same as the ‘vocabIdentifier’ of the VDEX instance for this vocabulary;

·         extensionField – contains the set of triples (fieldName/fieldType/fieldValue) for each extension.

The value in the ‘fieldName’ must be from the vocabulary (identified using the extensionNameVocabulary attribute).  The value in the ‘typeType’ must be from the external vocabulary containing the permitted set of external field types (as listed in the extensionTypeVocabulary attribute).  The value in the ‘fieldValue’ is the extension value itself.  Nested values are possible using a dot notation in the ‘fieldName’ cf. for meta-data.

 

Appendix C – File-based Data Exchange

The 1EdTech GLC Bulk Data Exchange Management Service [BDEMS, 11] is used to exchange bulk Outcomes and related information.  The Course information is exchanged by placing multiple CourseTemplateRecord, CourseOfferingRecord, CourseSectionRecord and SectionAssociationRecord structures within a bulk data container.  Figure C1.1 shows the key class structure and the associated definitions are provided in Section 5 of this document.

 

Figure C.1 Course class diagram for file-based data exchange.

Note that separate binding instance validation files will be used for containing the description of CourseTemplateRecords, CourseOfferingRecords, CourseSectionRecords and SectionAssociationRecords within a file.  This ensures that only the required data structures are contained in the corresponding binding validation files.

 

About This Document

 

Title:                                                      1EdTech GLC Course Management Service Information Model

Editor:                                                  Colin Smythe (1EdTech)

Co-chairs:                                            Linda Feng (Oracle) and Bill Lee (Desire2learn)

Version:                                                1.0

Version Date:                                      30 June 2010

Release:                                                Final 1.0

Status:                                                   Final Release

Summary:                                            This document contains the 1EdTech GLC Course Management Service v1.0 Information Model.  This service is used to exchange information about courses.  The conceptual data model for a course consists of templates, offerings, sections and associations.  The business transactions include create, delete, read, update, replace and simple discovery for each of the four course components.  This document contains the definition of the abstract application-programming interface for the Course Management Service.  

Revision Information:                      Original Release.

Purpose:                                               This document is made available for adoption by the public community at large.

Document Location:                          /lis/

 

 

 

 

 

 

List of Contributors

The following individuals contributed to the development of this document:


Kerry Blinco                 DEEWR (Australia)

Kirk Bunte                    SungardHE (USA)

Angus Chan                  Desire2Learn (Canada)

Adam Cooper              JISC/JISC-CETIS (UK)

Michael Feldstein        Oracle (USA)

Linda Feng                    Oracle (USA)

Chris Hatton                 Pearson (USA)

Jon Fontaine                 Blackboard (USA)

Karen Kuffner              University of Michigan (USA)

Zack Leavitt                 Pearson (USA)

Bill Lee                          Desire2Learn (Canada)

Richard Moon              SungardHE (USA)

Mike Parkhill                Desire2Learn (Canada)

Colin Smythe               1EdTech GLC (UK)

Reinhold Staudinger   Blackboard (USA)

Nick Terrible                 University of Wisconsin (USA)

Jason Zhong                 SungardHE (USA)



Revision History

 

Version No.

Release Date

Comments

Final Release v1.0

30 June 2011

The first formal release of the Final Release version of this document.

 

 

 

 

 

 

 

Index


A

Abstract Framework.. 13, 14, 15

API................................ 14, 17, 20

Attributes

Common

dataSource 10, 11, 119, 123, 127, 131, 133, 140, 142, 144

email.................................... 1

extensionField...... 157, 166

metadataField 11, 156, 157, 165

recordInfo 10, 11, 119, 123, 127, 131, 133, 140, 142, 145

sourcedId 12, 23, 25, 27, 28, 31, 34, 36, 39, 42, 44, 46, 47, 48, 51, 55, 57, 59, 61, 64, 66, 68, 69, 70, 75, 77, 79, 81, 83, 84, 86, 88, 89, 96, 98, 101, 102, 103, 104, 105, 160

timeFrame 10, 127, 130, 133, 138

Course

association 18, 92, 93, 113, 114, 115, 116

courseOffering 7, 46, 47, 103, 114

courseSection................ 115

courseTemplate 7, 25, 28, 102, 113

offering....... 49, 53, 54, 129

section 73, 74, 92, 93, 108, 116, 117, 137

sectionAssociation 7, 105, 116

template 29, 32, 33, 114, 129

Description

FullDescription 6, 11, 153, 154, 155

EnrollControl

enrollAccept... 11, 149, 150

enrollAllowed. 11, 149, 150

ExtensionField

fieldName 12, 156, 158, 159, 165, 166

fieldType 12, 157, 158, 159, 165, 166

fieldValue 12, 159, 165, 166

LangString

language 11, 38, 60, 80, 100, 108, 119, 120, 121, 124, 125, 127, 128, 133, 134, 135, 139, 140, 143, 148, 149, 152, 153, 155, 159, 165

text 11, 152, 153, 154, 155, 156, 165

Membership

membership 27, 39, 61, 81, 101

Person

dataSource 10, 11, 119, 123, 127, 131, 133, 140, 142, 144

email.................................... 1

RecordMetaData

comments.................. 1, 109

Relationship

label 9, 10, 11, 119, 127, 133, 142, 143

Result 13, 17, 22, 27, 32, 33, 41, 47, 53, 54, 63, 69, 73, 74, 83, 88, 92, 93, 161

result 13, 17, 22, 27, 32, 33, 41, 47, 53, 54, 63, 69, 73, 74, 83, 88, 92, 93, 161

Role

status 9, 10, 11, 12, 14, 20, 22, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 41, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 60, 61, 63, 64, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 79, 80, 81, 83, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 107, 108, 119, 121, 127, 129, 133, 135, 142, 144, 161, 162, 163, 164

StatusInfo

description 13, 14, 17, 120, 128, 134, 152, 153, 155, 167

TimeFrame

adminPeriod... 11, 150, 152

begin................ 11, 150, 151

end 11, 18, 108, 110, 150, 151, 160, 161

B

Binding technologies

SOAP 29, 30, 31, 32, 33, 38, 49, 50, 51, 52, 53, 54, 60, 71, 72, 73, 74, 80, 90, 91, 92, 93, 100

WSDL..................... 13, 15, 108

Bulk Data Exchange Management Service   13, 15, 167

C

Classes

Common

DataSource 4, 5, 123, 131, 140, 144

ExtensionField 6, 12, 157, 158, 159, 165

Identifier......................... 149

IMSExtension 6, 11, 12, 123, 131, 141, 145, 157, 158, 161, 166

Metadata 6, 11, 123, 131, 140, 142, 145, 156, 157, 165

StatusInfo 4, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 60, 61, 64, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 79, 80, 81, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 107, 162

Text 6, 11, 108, 119, 120, 121, 124, 125, 127, 128, 133, 134, 135, 139, 140, 143, 148, 149, 152, 153, 155, 156

TimeFrame 5, 6, 11, 130, 138, 150

Course

Association 9, 18, 94, 111, 117

CourseOffering 5, 7, 10, 18, 27, 31, 40, 41, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 60, 61, 69, 102, 103, 104, 106, 107, 111, 113, 114, 115, 126, 127, 128, 129, 130, 131, 134, 161, 164

CourseSection 5, 7, 10, 11, 47, 51, 63, 64, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 79, 80, 81, 83, 94, 95, 100, 102, 104, 105, 106, 107, 111, 113, 115, 116, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 143, 146, 161, 164

CourseTemplate 4, 7, 9, 10, 18, 21, 22, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 47, 53, 73, 75, 92, 102, 103, 106, 107, 111, 113, 114, 118, 119, 120, 121, 122, 123, 124, 125, 127, 128, 161, 164

Offering 9, 13, 18, 111, 115

Section 9, 13, 18, 94, 106, 107, 110, 111, 116, 167

SectionAssociation 5, 7, 11, 21, 82, 83, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 102, 105, 107, 111, 113, 116, 117, 133, 142, 143, 144, 145, 146, 161, 164

Template 9, 13, 18, 106, 111, 114, 122

Group 13, 14, 15, 18, 112, 133, 148, 157

Description 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 21, 22, 40, 62, 63, 82, 83, 106, 107, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 164, 165

EnrollControl 5, 6, 11, 130, 138, 149, 150, 151, 152

FullDescription 6, 11, 153, 154, 155

Org 4, 5, 6, 11, 122, 130, 138, 148, 149

LineItem..... 31, 33, 54, 74, 93

Membership 10, 13, 14, 15, 27, 47, 69, 88, 111, 123, 140

Person.................................... 13

Name 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 60, 61, 64, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 79, 80, 81, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 148, 161

Common Services.................... 13

Conformance........................... 17

Course 1, 2, 3, 4, 7, 13, 14, 15, 17, 18, 19, 94, 102, 106, 108, 111, 112, 113, 114, 115, 116, 122, 125, 148, 149, 150, 161, 163, 164, 167, 168

Course Management Service 1, 2, 13, 14, 15, 17, 19, 108, 163, 168

Course Structures

Association 9, 18, 94, 111, 117

CourseOffering 5, 7, 10, 18, 27, 31, 40, 41, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 60, 61, 69, 102, 103, 104, 106, 107, 111, 113, 114, 115, 126, 127, 128, 129, 130, 131, 134, 161, 164

CourseSection 5, 7, 10, 11, 47, 51, 63, 64, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 79, 80, 81, 83, 94, 95, 100, 102, 104, 105, 106, 107, 111, 113, 115, 116, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 143, 146, 161, 164

CourseTemplate 4, 7, 9, 10, 18, 21, 22, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 47, 53, 73, 75, 92, 102, 103, 106, 107, 111, 113, 114, 118, 119, 120, 121, 122, 123, 124, 125, 127, 128, 161, 164

Offering.... 9, 13, 18, 111, 115

Section 9, 13, 18, 94, 106, 107, 110, 111, 116, 167

SectionAssociation 5, 7, 11, 21, 82, 83, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 102, 105, 107, 111, 113, 116, 117, 133, 142, 143, 144, 145, 146, 161, 164

Template 9, 13, 18, 106, 111, 114, 122

G

Group Management Service 13, 14, 15, 18

L

Learning Information Services 13, 14, 15, 18, 106, 108

LIS

Bulk Data Exchange Management Service               13, 15, 167

Course Management Service 1, 2, 13, 14, 15, 17, 19, 108, 163, 168

Group Management Service 13, 14, 15, 18, 111

Membership Management Service              13, 14, 15, 112

Outcomes Management Service  13

Person Management Service 13

M

Membership Management Service  13, 14, 15

Metadata 6, 11, 123, 131, 140, 142, 145, 156, 157, 165

O

Operations

Course

addCourseSection...... 9, 94

changeCourseOfferingIdentifier              8, 41, 61, 103, 163

changeCourseSectionIdentifier               9, 63, 81, 104, 163

changeCourseTemplateIdentifier           8, 22, 39, 103, 163

changeSectionAssociationIdentifier       9, 83, 101, 105, 163

createByProxyCourseOffering                8, 40, 41, 44, 103, 163

createByProxyCourseSection  8, 63, 66, 104, 163

createByProxyCourseTemplate              8, 22, 25, 102, 163

createByProxySectionAssociation          9, 83, 86, 105, 163

createCourseOffering 8, 40, 41, 42, 55, 103, 163

createCourseOfferingFromCourseOffering           8, 40, 46, 103, 163

createCourseSection 8, 63, 64, 75, 104, 163

createCourseSectionFromCourseSection              8, 63, 68, 104, 163

createCourseTemplate 8, 22, 23, 36, 102, 163

createSectionAssociation 9, 83, 84, 98, 105, 163

deleteCourseOffering 8, 40, 41, 47, 103, 163

deleteCourseSection 8, 63, 69, 104, 163

deleteCourseTemplate 8, 22, 27, 102, 163

deleteSectionAssociation 9, 83, 88, 105, 163

discoverCourseOfferingIds 8, 41, 60, 104, 163

discoverCourseSectionIds 9, 63, 80, 104, 163

discoverCourseTemplateIds    8, 22, 38, 103, 163

discoverSectionAssociation..... 9, 83, 100, 105, 163

readAllActiveCourseOfferingIdsForAcademicSession       8, 41, 50, 104, 163

readAllCourseOfferingIds 8, 41, 49, 103, 163

readAllCourseSectionIds 8, 63, 71, 104, 163

readAllCourseTemplateIds 8, 22, 29, 103, 163

readAllSectionAssociationIds  9, 90, 105

readCourseOffering 8, 41, 48, 103, 163

readCourseOfferingIdsFromSavePoint  8, 41, 52, 104, 163

readCourseOfferings 8, 41, 53, 104, 163

readCourseOfferingsFromSavePoint      8, 41, 54, 104, 163

readCourseSection 8, 63, 70, 104, 163

readCourseSectionIdsForCourseOffering              8, 41, 51, 104, 163

readCourseSectionIdsFromSavePoint   9, 63, 72, 104, 163

readCourseSections 9, 63, 73, 104, 163

readCourseSectionsFromSavePoint       9, 63, 74, 104, 163

readCourseTemplate 8, 22, 28, 103, 163

readCourseTemplateIdsFromSavePoint               8, 22, 30, 103

readCourseTemplates 8, 22, 32, 103, 163

readCourseTemplatesFromSavePoint   8, 22, 33, 103, 163

readSectionAssociation 9, 83, 89, 105, 163

readSectionAssociationIdsFromSavePoint           9, 83, 91, 105, 163

readSectionAssociations 9, 92, 105, 163

readSectionAssociationsFromSavePoint               9, 83, 93, 105, 163

removeCourseSection 9, 95

replaceCourseOffering 8, 41, 42, 44, 55, 57, 103, 104, 163

replaceCourseSection 9, 63, 64, 66, 75, 77, 104, 163

replaceCourseTemplate 8, 22, 23, 25, 34, 36, 102, 103, 163

replaceSectionAssociation 9, 83, 84, 86, 96, 98, 105, 163

updateCourseOffering 8, 41, 42, 44, 57, 104, 163

updateCourseOfferingStatus   8, 41, 59, 104

updateCourseSection 9, 63, 64, 66, 77, 104, 163

updateCourseSectionStatus     9, 63, 79, 104

updateCourseTemplate 8, 22, 23, 25, 34, 103, 163

updateSectionAssociation 9, 83, 84, 86, 96, 105, 163

Outcomes Management Service 13

P

Person Management Service. 13

Profiling........................ 6, 14, 161

S

SectionAssociation 5, 7, 11, 21, 82, 83, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 102, 105, 107, 111, 113, 116, 117, 133, 142, 143, 144, 145, 146, 161, 164

Services

Bulk Data Exchange Management             13, 15, 167

Course Management Service 1, 2, 13, 14, 15, 17, 19, 108, 163, 168

Group Management 13, 14, 15, 18

Membership Management 13, 14, 15

Outcomes Management Service  13

Person Management........... 13

SOAP 29, 30, 31, 32, 33, 38, 49, 50, 51, 52, 53, 54, 60, 71, 72, 73, 74, 80, 90, 91, 92, 93, 100

Status Codes 2, 6, 14, 20, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 60, 61, 64, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 79, 80, 81, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 162, 163

createsuccess 36, 55, 75, 98, 162

deletefailure 27, 47, 69, 88, 162

fullsuccess 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 60, 61, 64, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 79, 80, 81, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 162

idallocfail. 25, 44, 66, 86, 162

idallocinusefail 23, 39, 42, 46, 61, 64, 68, 81, 84, 101, 162

incompletedata 23, 25, 28, 34, 36, 42, 44, 46, 48, 55, 57, 64, 66, 68, 70, 75, 77, 84, 86, 89, 96, 98, 162

invaliddata 23, 25, 28, 29, 30, 31, 32, 33, 34, 36, 38, 42, 44, 46, 48, 49, 50, 52, 53, 54, 55, 57, 59, 60, 64, 66, 68, 70, 71, 72, 73, 74, 75, 77, 79, 80, 84, 86, 89, 90, 91, 92, 93, 95, 96, 98, 100, 162

linkfailure................... 162, 163

overflowfail 23, 25, 42, 44, 46, 64, 66, 68, 84, 86, 162

partialdatastorage 23, 25, 28, 34, 36, 42, 44, 48, 55, 57, 64, 66, 70, 75, 77, 84, 86, 89, 96, 98, 162

savepointerror 30, 33, 52, 54, 72, 74, 91, 93, 162

savepointsyncerror 30, 33, 52, 54, 72, 74, 91, 93, 162

targetisbusy............... 162, 163

targetreadfailure 28, 31, 32, 33, 48, 53, 54, 70, 73, 74, 89, 92, 93, 162

toomuchdata 29, 30, 31, 32, 33, 38, 49, 50, 51, 52, 53, 54, 60, 71, 72, 73, 74, 80, 90, 91, 92, 93, 100, 162

unauthorizedrequest 162, 163

unknownextension 24, 25, 28, 35, 37, 43, 44, 48, 56, 58, 65, 66, 70, 76, 78, 85, 86, 89, 97, 99, 162

unknownmdvocabulary 23, 25, 28, 32, 34, 36, 42, 44, 48, 53, 55, 57, 64, 66, 70, 73, 75, 77, 84, 86, 89, 92, 96, 99, 162

unknownobject 27, 28, 31, 34, 39, 46, 47, 48, 51, 57, 59, 61, 68, 69, 70, 77, 79, 81, 88, 89, 94, 95, 96, 98, 101, 162

unknownquery 38, 60, 80, 100, 162

unknownvocabulary 23, 25, 34, 36, 42, 44, 55, 57, 64, 66, 75, 77, 84, 86, 97, 99, 162

unsupported....................... 162

V

Vocabularies 6, 14, 164, 165, 166

W

WDSL......................... 13, 15, 108


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1EdTech Consortium, Inc. (“1EdTech GLC”) is publishing the information contained in this document (“Specification”) for purposes of scientific, experimental, and scholarly collaboration only.

1EdTech GLC makes no warranty or representation regarding the accuracy or completeness of the Specification.

This material is provided on an “As Is” and “As Available” basis.

The Specification is at all times subject to change and revision without notice. 

It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.

1EdTech GLC would appreciate receiving your comments and suggestions.

Please contact 1EdTech GLC through our website at .

Please refer to Document Name: 1EdTech CMS Information Model v2.0 Final Release v2.0

Date: 30 June 2011



[1] In many implementations of the abstract-API the synchronous and asynchronous services would require different operation calls.  This is just one example where an implementation does not match the definition of the abstract-API.

[2] The corresponding vocabulary must be defined.  It is recommended that the vocabulary registered with 1EdTech GLC made available as a VDEX file.  If the vocabulary is defined as a VDEX file then the value for ‘metadataNameVocabulary’ should be the ‘vocabIdentifier’ of the VDEX instance.

[3] The corresponding vocabulary must be defined.  It is recommended that the vocabulary registered with 1EdTech GLC made available as a VDEX file.  If the vocabulary is defined as a VDEX file then the value for ‘extensionNameVocabulary’ should be the ‘vocabIdentifier’ of the VDEX instance.