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

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

description

Client Presentation

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

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.