The IPSIS LIS v2.0 Adapter implements the necessary LIS Services and operations to support the following IMS LIS Profiles:
- IMS Global LIS v2.0 Core Profile
- IMS Global LIS v2.0 Full Course Hierarchy Profile
- IMS Global LIS v2.0 Combined Sections Profile
Each service implemented by D2L as part of the LIS v2.0 Adapter has been done such that fields in the LIS requests can be mapped to D2L fields based on an institution's requirements. This is done by way of configurable and extensible Translators, which effectively map LIS fields to fields in the D2L Learning Platform.
Further details about the available mappings and behaviors are outlined within the specific LIS Service Operation and the Translator interfaces each leverages.
LIS v2.0 Service Endpoints
There are separate endpoints for HTTP and HTTPS. You must use the appropriate service endpoint for your implementation depending on how the site is seen by IIS. If your SSL Support is provided by a load balancer you may need to use the HTTP endpoints.
HTTP
Service Name
|
Service Endpoint
|
Bulk Data Exchange Management Service (BDEMS)
|
/d2l/im/ipsis/lis/bdemsv1p0/BulkDataExchangeManagementServices.svc
|
Course Offering Management Service (COMS)
|
/d2l/im/ipsis/lis/cmsv1p0/CourseOfferingManagementServices.svc
|
Course Section Management Service (CSMS)
|
/d2l/im/ipsis/lis/cmsv1p0/CourseSectionManagementServices.svc
|
Course Template Management Service (CTMS)
|
/d2l/im/ipsis/lis/cmsv1p0/CourseTemplateManagementServices.svc
|
Group Management Service (GMS)
|
/d2l/im/ipsis/lis/gmsv2p0/GroupManagementServices.svc
|
Membership Management Service (MMS)
|
/d2l/im/ipsis/lis/mmsv2p0/MembershipManagementServices.svc
|
Outcomes Management Service (OMS)
|
d2l/im/ipsis/lis/omsv1p0/ResultManagementServices.svc
|
Person Management Service (PMS)
|
/d2l/im/ipsis/lis/pmsv2p0/PersonManagementServices.svc
|
Section Association Management Service (SAMS)
|
/d2l/im/ipsis/lis/cmsv1p0/SectionAssociationManagementServices.svc
|
HTTPS
Service Name
|
Service Endpoint
|
Bulk Data Exchange Management Service (BDEMS)
|
/d2l/im/ipsis/lis/ssl/bdemsv1p0/BulkDataExchangeManagementServices.svc
|
Course Offering Management Service (COMS)
|
/d2l/im/ipsis/lis/ssl/cmsv1p0/CourseOfferingManagementServices.svc
|
Course Section Management Service (CSMS)
|
/d2l/im/ipsis/lis/ssl/cmsv1p0/CourseSectionManagementServices.svc
|
Course Template Management Service (CTMS)
|
/d2l/im/ipsis/lis/ssl/cmsv1p0/CourseTemplateManagementServices.svc
|
Group Management Service (GMS)
|
/d2l/im/ipsis/lis/ssl/gmsv2p0/GroupManagementServices.svc
|
Membership Management Service (MMS)
|
/d2l/im/ipsis/lis/ssl/mmsv2p0/MembershipManagementServices.svc
|
Outcomes Management Service (OMS)
|
/d2l/im/ipsis/lis/ssl/omsv1p0/ResultManagementServices.svc
|
Person Management Service (PMS)
|
/d2l/im/ipsis/lis/ssl/pmsv2p0/PersonManagementServices.svc
|
Section Association Management Service (SAMS)
|
/d2l/im/ipsis/lis/ssl/cmsv1p0/SectionAssociationManagementServices.svc
|
LIS v2.0 Service WSDLS
If the WSDL is required, you should not use the WSDLs found at the Service Endpoints, but rather the WSDLs found at the following locations:
HTTP
LIS Service
|
WSDL
|
Bulk Data Exchange Management Service (BDEMS)
|
/d2l/im/ipsis/lis/bdemsv1p0/wsdl/BulkDataExchangeManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Course Offering Management Service (COMS)
|
/d2l/im/ipsis/lis/cmsv1p0/wsdl/CourseManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Course Section Management Service (CSMS)
|
/d2l/im/ipsis/lis/cmsv1p0/wsdl/CourseManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Course Template Management Service (CTMS)
|
/d2l/im/ipsis/lis/cmsv1p0/wsdl/CourseManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Group Management Service (GMS)
|
/d2l/im/ipsis/lis/gmsv2p0/wsdl/GroupManagementServicev2p0_SyncSingle_v1p0.wsdl
|
Membership Management Service (MMS)
|
/d2l/im/ipsis/lis/mmsv2p0/wsdl/MembershipManagementServicev2p0_SyncSingle_v1p0.wsdl
|
Outcomes Management Service (OMS)
|
/d2l/im/ipsis/lis/omsv1p0/wsdl/OutcomesManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Person Management Service (PMS)
|
/d2l/im/ipsis/lis/pmsv2p0/wsdl/PersonManagementServicev2p0_SyncSingle_v1p0.wsdl
|
Section Association Management Service (SAMS)
|
/d2l/im/ipsis/lis/cmsv1p0/wsdl/CourseManagementServicev1p0_SyncSingle_v1p0.wsdl
|
HTTPS
LIS Service
|
WSDL
|
Bulk Data Exchange Management Service (BDEMS)
|
/d2l/im/ipsis/lis/ssl/bdemsv1p0/wsdl/BulkDataExchangeManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Course Offering Management Service (COMS)
|
/d2l/im/ipsis/lis/ssl/cmsv1p0/wsdl/CourseManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Course Section Management Service (CSMS)
|
/d2l/im/ipsis/lis/ssl/cmsv1p0/wsdl/CourseManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Course Template Management Service (CTMS)
|
/d2l/im/ipsis/lis/ssl/cmsv1p0/wsdl/CourseManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Group Management Service (GMS)
|
/d2l/im/ipsis/lis/ssl/gmsv2p0/wsdl/GroupManagementServicev2p0_SyncSingle_v1p0.wsdl
|
Membership Management Service (MMS)
|
/d2l/im/ipsis/lis/ssl/mmsv2p0/wsdl/MembershipManagementServicev2p0_SyncSingle_v1p0.wsdl
|
Outcomes Management Service (OMS)
|
/d2l/im/ipsis/lis/ssl/omsv1p0/wsdl/OutcomesManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Person Management Service (PMS)
|
/d2l/im/ipsis/lis/ssl/pmsv2p0/wsdl/PersonManagementServicev2p0_SyncSingle_v1p0.wsdl
|
Section Association Management Service (SAMS)
|
/d2l/im/ipsis/lis/ssl/cmsv1p0/wsdl/CourseManagementServicev1p0_SyncSingle_v1p0.wsdl
|
Authentication
IPSIS LIS v2.0 Services require authentication via WS-Security or HTTP Basic Authentication, and use the D2L database to authenticate the username and password. In order for any of the services to be used, the userid used to authenticate must be associated with a source system.
The Services all handle authentication by attempting to validate the username and password against the Learning Platform. If a valid Username and Password from the Learning Platform is provided, and there is an active IPSIS source system associated with that user, then any LIS service requests will be acknowledged and processed.
If an invalid username and password is provided, or the user is not associated with an active IPSIS source system, the request will be denied with an appropriate response message as per the LIS specification. For troubleshooting purposes, debug logging can be turned on to help determine why authentication is not being successfully performed.
The IMS LIS working group has settled on the use of WS-Security or Http Basic Authentication for authenticating the sender of LIS Service Requests.
Request headers
All LIS Request Headers contain the same fields, and D2L handles them as follows:
Header
|
Purpose
|
Note
|
imsx_syncRequestHeaderInfo.imsx_messageIdentifier
|
This header is required.
The request message identifier is returned in the response (imsx_syncResponseHeaderInfo.imsx_statusInfo.imsx_messageRefIdentifier) to allow association of the response to an originating request.
|
Not all vendors send a valid value, so D2L handles it either way. If they do send it, D2L returns it in the response.
|
imsx_syncRequestHeaderInfo.imsx_version
|
This header is required.
The version is intended to allow the service to ensure the two systems are expecting the same version of the service.
|
At this point we do nothing with the incoming version.
|
imsx_syncRequestHeaderInfo.imsx_sendingAgentIdentifier
|
This header is optional (Added to 2012-01-31 WSDL). The sending agent identifier is used to identify the sending party. For outgoing requests from D2L the value is populated using the Source System Name value from IM_Sources.
|
Not all vendors send this, and D2L does not use it at all for incoming requests. D2L uses the userid that was used to authenticate to determine the sending party.
|
Response headers
All LIS Response Headers contain the same fields. D2L handles them as follows:
Header
|
Response
|
Value
|
imsx_syncResponseHeaderInfo.imsx_version
|
D2L returns "V1.0" regardless of the value in the Request Header.
|
|
imsx_syncResponseHeaderInfo.imsx_messageIdentifier
|
D2L generates and returns a unique identifier for this header.
|
|
imsx_syncResponseHeaderInfo.imsx_statusInfo.imsx_codeMajor
|
D2L returns the Major Status Code as defined by IMS.
|
Failure - When there is a problem processing the request.
Processing - When the request is processing.
Success - When the processing of the request is successful.
Unsupported - When there is no implementation for the LIS request, or there are no Translators registered for the operation.
|
imsx_syncResponseHeaderInfo.imsx_statusInfo.imsx_severity
|
D2L returns the severity as defined by IMS.
|
Error - When something bad or unexpected has occurred. The calling system may need to take appropriate action.
Status - Information. Action not usually required by the calling system.
Warning - When something unexpected has occurred. The calling system may need to take appropriate action.
|
imsx_syncResponseHeaderInfo.imsx_statusInfo.imsx_messageRefIdentifier
|
D2L returns the value from the imsx_syncRequestHeaderInfo.imsx_messageIdentifier.
If a message identifier was not sent in the request, this field will not be included.
|
|
imsx_syncResponseHeaderInfo.imsx_statusInfo.imsx_description
|
D2L returns a message containing a human readable description of any status messages.
|
|
imsx_syncResponseHeaderInfo.imsx_statusInfo.imsx_codeMinor.imsx_codeMinorField.imsx_codeMinorFieldName
|
D2L returns the Minor Status Code Field Name as defined by IMS.
|
TargetEndSystem
|
imsx_syncResponseHeaderInfo.imsx_statusInfo.imsx_codeMinor.imsx_codeMinorField.imsx_codeMinorFieldValue
|
D2L returns the Minor Status Code Field Value as defined by IMS.
|
deletefailure - When there is a problem in processing a delete request.
fullsuccess - When everything is processed successfully.
invaliddata - When the request is missing required fields, and therefore processing cannot continue.
partialdatastorage - When D2L successfully saves some of the request to the database.
unknownobject - When the request references an object that is not found in IPSIS, and therefore D2L cannot take the action requested.
unsupportedLISoperation - When there is currently no implementation for the LIS request, or there are no translators registered for the operation.
idallocinusefail - When the request is trying to re-use or change an existing entity of a different type (e.g., if a replaceGroupRequest tries to change a College to a Semester).
|