Top Banner
Migrating Data Feeds to IMS Learning Information Services(LIS) Chris Greenough Enterprise Web Team Lead Northern Arizona University @GreenO
22

DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

Nov 01, 2014

Download

Technology

Blackboard Inc.

Client Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

Migrating Data Feeds to IMS Learning Information Services(LIS)

Chris GreenoughEnterprise Web Team LeadNorthern Arizona University

@GreenO

Page 2: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

2

Overview

• Background

• Enterprise 1.1 -> IMS

• Learn Setup

• Logging

• Mapping

• LIS WSDL

• Bb LIS B2 Code

• Bb Enabled Methods

• Sample Python Code

Page 3: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

3

Background

Page 4: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

4

Background – Snow Dogs in Arizona

Page 5: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

5

Enterprise 1.1 -> IMS

• Based on, but completely different than Enterprise spec

• Vocabulary• E.g. The type of formatted name vocabulary

formatnmetypevocabularyv1p0.xml

• The Vocabulary loosens the spec (Maybe you call it more extensible)

• Add the Vocabulary and it looks kinda, maybe similar to the Enterprise spec

Page 6: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

6

IMS Enterprise Person<person> <comments>An useful comment, hopefully.</comments> <sourcedid> <source>IMS-LMS</source> <id>student_123456</id> </sourcedid> <userid>ColinS</userid> <name> <fn>Chris Greenough</fn> <prefix>Mr</prefix> </name> <demographics> <gender>2</gender> <bday>1958-03-31T00:00</bday> <disability>Blind</disability> </demographics> <email>[email protected]</email> <url>http://www.imsglobal.org</url> <tel telnum="1">+44-114-2335007</tel>

<adr> <pobox>345</pobox> <extadd>Region Court</extadd> <street>56 Grange Road</street> <locality>Guildford</locality> <pcode>GU12 5XH</pcode> <country>United Kingdom</country> </adr> <photo imgtype="image/jpg"> <extref>http://www.imsglobal.org/staff/photo.jpg</extref> </photo> <systemrole systemroletype="SysAdmin"/> <institutionrole primaryrole="Yes" institutionroletype="Administrator"/> <datasource>CSU-LMS</datasource></person>

Page 7: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

7

IMS LIS Person(Simplified)

<person>

<name>

<nameType>Preferred</nameType>

<partName>

<vocab id=“First”>Chris</vocab>

<vocab id=“Last”>Greenough</vocab>

<vocab id=“Middle”>D</vocab>

</partName>

</name>

<name> <nameType>Full</nameType> <partName> <vocab id=“First”>Christopher</vocab> <vocab id=“Last”>Greenough</vocab> <vocab id=“Middle”>Douglas</vocab> </partName> </name>

Page 8: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

8

Actual Partial Person Object

"person":{ "name":{"nameType": {"instanceIdentifier":{"textString":"Preferred"}, "instanceValue":{"textString":"Preferred"}, "instanceVocabulary":"http://www.imsglobal.org/lis/pmsv2p0/nametypevocabularyv1p0"}, #B1.2 "partName": [ {"instanceIdentifier":{"textString":"First"}, "instanceName":{"textString":"First"}, "instanceVocabulary":"http://www.imsglobal.org/lis/pmsv2p0/partnamevocabularyv1p0", "instanceValue":{"textString":"Chris"} }, {"instanceIdentifier":{"textString":"Last"}, "instanceName":{"textString":"Last"}, "instanceVocabulary":"http://www.imsglobal.org/lis/pmsv2p0/partnamevocabularyv1p0", "instanceValue":{"textString":"Last"}} ] #B1.3 },

Page 9: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

9

Learn Setup

Page 10: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

10

End Points

Page 11: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

11

Logging!!!

Page 12: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

12

Mapping

Page 13: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

13

Demo

Page 14: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

14

IMS LIS WSDL

http://www.imsglobal.org/lis/

Page 15: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

15

IMS LIS WSDL Vocab

Page 16: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

16

Bb LIS B2

package blackboard.dataintegration.lis.webservice;

public class PersonManagementServiceSyncService extends BaseLISWebservice

{

public OMElement changePersonIdentifier( @SuppressWarnings( "unused" ) OMElement element )

{

return doUnsupportedOp( CHANGE_PERSON_IDENTIFIER_RESPONSE, LISWebserviceConstants.PERSON_MANAGEMENT_SERVICE_NAMESPACE );

}

LIS_B2_sample_code.zip

Page 17: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

17

Bb Enabled Methods• PersonManagementServiceSyncService

• createPerson(GUID.Type sourcedId, PersonRecord.Type personRecord, )

• deletePerson(GUID.Type sourcedId, )

• replacePerson(GUID.Type sourcedId, PersonRecord.Type personRecord, )

• BulkDataExchangeManagementServiceSyncService• announceBulkDataExchange(LUID.Type transactionId,

BulkBlockManifest.Type bulkBlockManifest, )

• CourseSectionManagerSyncService• createCourseSection(GUID.Type sourcedId,

CourseSectionRecord.Type courseSectionRecord, )

• deleteCourseSection(GUID.Type sourcedId, )

• replaceCourseSection(GUID.Type sourcedId, CourseSectionRecord.Type courseSectionRecord, )

Page 18: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

18

Bb Enabled Methods cont• GroupManagementServiceSyncService

• createGroup(GUID.Type sourcedId, GroupRecord.Type groupRecord, )

• deleteGroup(GUID.Type sourcedId, )

• replaceGroup(GUID.Type sourcedId, GroupRecord.Type groupRecord, )

• MembershipManagementServiceSyncService• createMembership(GUID.Type sourcedId,

MembershipRecord.Type membershipRecord, )

• deleteMembership(GUID.Type sourcedId, )

• replaceMembership(GUID.Type sourcedId, MembershipRecord.Type membershipRecord, )

Page 19: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

19

Python Sample Code

• GitHub

• Contains Enabled Functions

• https://github.com/greeno/PyLis

Page 20: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

20

Wrap-up

• No Read!

• Only create, delete, modify methods

• Sample Code needs to be flushed out• Start on GitHub (Fork Me!)

• Vocab make for flexible yet complicated schema

• Logging is GREAT

• Testing is GREAT

• Mapping is GREAT

• Custom scripts are GREAT!!

Page 21: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

21

Questions

Page 22: DevCon 2012 Chris Greenough Migrating Data Feeds to IMS Learning Information Services(LIS)

22

We value your feedback!Please fill out a session evaluation.