SlideShare a Scribd company logo
1 of 30
Using Sakai Site Archive
                               for Good not Evil
                                         Cris J. Holdorph
                                             Unicon, Inc.
                                    holdorph@unicon.net




June 10-15, 2012

Growing Community:
Growing Possibilities
Agenda

● Introduction

● What is Site Archive

● Modifying Site Archive

● Lessons Learned


                           2012 Jasig Sakai Conference
Introduction




               2012 Jasig Sakai Conference
Unicon

● In Business Since 1993

● Focus on Open Source Software and
  Education

● Support and Services for uPortal, CAS,
  Sakai, Grouper and soon SSP

● Cooperative Support Program
                                 2012 Jasig Sakai Conference
International MyLabs Project

● Pearson International

● Localized Sakai

● Publisher Content

● Authoring Sakai / Customer Sakai
  ○ Two different Sakai systems

                                2012 Jasig Sakai Conference
What is Site Archive




                   2012 Jasig Sakai Conference
Problem Definition

● Create and Export content in one Sakai
  system

● Import Content into a different Sakai
  system




                                   2012 Jasig Sakai Conference
Possible Solutions

● IMS Common Cartridge

● Sakai Site Archive

● Invent our own




                         2012 Jasig Sakai Conference
IMS Common Cartridge

● Industry Recognized Specification

● Lesson Builder only supported IMS CC
  import

● Some Sakai data would have no simple
  way to be represented in IMS CC


                                 2012 Jasig Sakai Conference
Sakai Site Archive

● Part of Sakai since release 2.0

● Created for archiving existing Sakai sites
  to preserve disk space and/or maintain
  performance

● Allows for bringing sites back if needed

● Simplified backup and restore for Sites
                                    2012 Jasig Sakai Conference
Invent Our Own

● No existing code we need to figure out

● Build everything (increased effort)

● Less likely to get support from Community




                                   2012 Jasig Sakai Conference
Decision

● Leverage existing code and use Sakai Site
  Archive

● Contribute changes to Site Archive back to
  community

● Benefit from community maintenance of
  Site Archive code

                                 2012 Jasig Sakai Conference
Modifying Site Archive




                    2012 Jasig Sakai Conference
Learning to Use Site Archive - Tool




                              2012 Jasig Sakai Conference
Learning to Use Site Archive - Tool

● Export - Enter Sakai Site ID

● Import
   ○ File: Enter top level directory name for
     the archive directory
      ■ site-id-archive
   ○ To Site: Enter Target Sakai Site ID
      ■ If Target Site ID doesn't exist Sakai
        will create a new Site with that ID
                                    2012 Jasig Sakai Conference
Learning to Use Site Archive -
Properties
mergeFilterSakaiServices@org.sakaiproject.archive.api.ArchiveService=true
mergeFilteredSakaiServices@org.sakaiproject.archive.api.ArchiveService=
AnnouncementService,AssignmentService,sakai:content,
LessonBuilderEntityProducer,DiscussionForumService,NewsService,
PollListManager,sakai:site,WebService,WikiObjectService,
ContentHostingService,AssessmentEntityProducer,BasicLTISecurityService
storagePath@org.sakaiproject.archive.api.ArchiveService=
${sakai.home}/archive/




                                                          2012 Jasig Sakai Conference
Learning to Use Site Archive - Code

package org.sakaiproject.entity.api;

public interface EntityProducer {

    public boolean willArchiveMerge();

    public String archive(String siteId, .);

    public String merge(String siteId, ...);
    ...
}

                                  2012 Jasig Sakai Conference
Learning to Use Site Archive - Code (2)

sakai/common/archive-
impl/impl2/src/java/org/sakaiproject/archive/impl/SiteArchi
ver.java
...
         // create the directory for the archive
         File dir = new File(m_storagePath + siteId + "-
archive/");
         dir.mkdirs();
...
         for (Iterator iServices = services.iterator();
iServices.hasNext();)
...
             if (!service.willArchiveMerge()) {
...
                 String msg = service.archive(siteId, doc,
stack, storagePath, attachments);

                                             2012 Jasig Sakai Conference
Learning to Use Site Archive - Code (3)

sakai/basiclti-
impl/src/java/org/sakaiproject/basiclti/impl/BasicLTISecurityServ
iceImpl.java

public String archive(String siteId, Document doc, Stack stack,
  String archivePath, List attachments) {
...
  for (SitePage sitePage : site.getPages()) {
    for (ToolConfiguration toolConf : sitePage.getTools()) {
      if (toolConf.getTool().getId().equals(TOOL_REGISTRATION))
      {
        BasicLTIArchiveBean basicLTIArchiveBean =
                                        new
BasicLTIArchiveBean();
...
        Node newNode = basicLTIArchiveBean.toNode(doc);
        basicLtiList.appendChild(newNode);


                                                   2012 Jasig Sakai Conference
Supported Tools

Tools we have tested as supporting Site
Archive in Sakai 2.9.x
   ○ Lesson Builder
   ○ Tests and Quizes (partial)
   ○ Assignments (partial)
   ○ Announcements*
   ○ Resources
   ○ Forums, Podcasts, Polls, Web Content,
     Wiki, News (RSS)

                 * Restores current dates   2012 Jasig Sakai Conference
Newly Supported Tools

● These Tools have been patech to support
  Site Archive in Sakai 2.9.x
   ○ Basic LTI
   ○ Tests and Quizes (full)
   ○ Assignements (full)




               * Restores current dates   2012 Jasig Sakai Conference
New Site Archive Features

● Preserve Tool Order set by Site maintainer

● Preserve Tool Names et by Site maintainer

● Preserve Skin set by Site maintainer

● Custom merge order
   ○ Let Lesson Builder merge last



                                         2012 Jasig Sakai Conference
Lessons Learned




                  2012 Jasig Sakai Conference
Assuming Entities Exist

● Site Archive designed to dehyrdate and
  rehydrate sites from/to the same Sakai
  system
● Rehydrating (importing) into a different
  Sakai system will give mixed results
   ○ Missing entities
   ○ Different GUIDs


                                  2012 Jasig Sakai Conference
Linking

● Lesson Builder Linking
   ○ Charles Hendrick rocks

● Generic HTML (e.g., rich text editor)
  Linking
   ○ FIND HTML COMM DISCUSSION




                                  2012 Jasig Sakai Conference
Tests and Quizes (Samigo)

● Question Pools
  ○ Not included in Archive
  ○ Not specific to Site
  ○ Owned by creator, useable in any site
    they can maintain




                                 2012 Jasig Sakai Conference
Conclusion




             2012 Jasig Sakai Conference
Conclusion

● Sakai Site Archive is Good
● Linking to Sakai Entities is Bad
● Directly Linking to Sakai URLs in Rich Text
  Editors is Evil
● Sakai Site Archive was intended to archive
  existing sites, not as a content exchange
  framework
● However.... Sakai Site Archive can work
  for content exchange (with some tweaks)
                                  2012 Jasig Sakai Conference
Questions?




             2012 Jasig Sakai Conference
Cris J. Holdorph
Email: holdorph@unicon.net
Twitter: @holdorph
Google+: holdorph@gmail.com




                     2012 Jasig Sakai Conference

More Related Content

Similar to Using Sakai Site Archive for Good not Evil

Open syllabusmobileraynauldatlanta2012
Open syllabusmobileraynauldatlanta2012Open syllabusmobileraynauldatlanta2012
Open syllabusmobileraynauldatlanta2012
Raynauld Jacques
 
Localization of Sakai product with translation platform Benten
Localization of Sakai product with translation platform BentenLocalization of Sakai product with translation platform Benten
Localization of Sakai product with translation platform Benten
yuji tokiwa
 
Ja sakai update_sakai_conference_2012
Ja sakai update_sakai_conference_2012Ja sakai update_sakai_conference_2012
Ja sakai update_sakai_conference_2012
yuji tokiwa
 

Similar to Using Sakai Site Archive for Good not Evil (20)

Duke's eLearning Roadmap and the Sakai Transition
Duke's eLearning Roadmap and the Sakai TransitionDuke's eLearning Roadmap and the Sakai Transition
Duke's eLearning Roadmap and the Sakai Transition
 
Open syllabusmobileraynauldatlanta2012
Open syllabusmobileraynauldatlanta2012Open syllabusmobileraynauldatlanta2012
Open syllabusmobileraynauldatlanta2012
 
Creating, Publishing and Reusing a JET Composite Component - nlOUG TechExper...
Creating, Publishing and Reusing a JET Composite Component  - nlOUG TechExper...Creating, Publishing and Reusing a JET Composite Component  - nlOUG TechExper...
Creating, Publishing and Reusing a JET Composite Component - nlOUG TechExper...
 
deep learning in production cff 2017
deep learning in production cff 2017deep learning in production cff 2017
deep learning in production cff 2017
 
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
 
What's New in Bedework 3.8
What's New in Bedework 3.8What's New in Bedework 3.8
What's New in Bedework 3.8
 
Docs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesDocs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API Experiences
 
MySQL-InnoDB
MySQL-InnoDBMySQL-InnoDB
MySQL-InnoDB
 
High Stakes Testing on Sakai with Samigo and a Locked-down OS image
High Stakes Testing on Sakai with Samigo and a Locked-down OS imageHigh Stakes Testing on Sakai with Samigo and a Locked-down OS image
High Stakes Testing on Sakai with Samigo and a Locked-down OS image
 
Odi training
Odi trainingOdi training
Odi training
 
Localization of Sakai product with translation platform Benten
Localization of Sakai product with translation platform BentenLocalization of Sakai product with translation platform Benten
Localization of Sakai product with translation platform Benten
 
Advanced Site Studio Class, June 18, 2012
Advanced Site Studio Class, June 18, 2012Advanced Site Studio Class, June 18, 2012
Advanced Site Studio Class, June 18, 2012
 
Oracle data integrator 12c - getting started
Oracle data integrator 12c - getting startedOracle data integrator 12c - getting started
Oracle data integrator 12c - getting started
 
Bringing Archival Description and Digital Objects Together with Drupal
Bringing Archival Description and Digital Objects Together with DrupalBringing Archival Description and Digital Objects Together with Drupal
Bringing Archival Description and Digital Objects Together with Drupal
 
Run your code serverlessly on Google's open cloud
Run your code serverlessly on Google's open cloudRun your code serverlessly on Google's open cloud
Run your code serverlessly on Google's open cloud
 
Complete Dojo
Complete DojoComplete Dojo
Complete Dojo
 
Ja sakai update_sakai_conference_2012
Ja sakai update_sakai_conference_2012Ja sakai update_sakai_conference_2012
Ja sakai update_sakai_conference_2012
 
GraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdfGraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdf
 
Sakai 3 Boston
Sakai 3 BostonSakai 3 Boston
Sakai 3 Boston
 
Sakai 3 Boston V03
Sakai 3 Boston V03Sakai 3 Boston V03
Sakai 3 Boston V03
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

Using Sakai Site Archive for Good not Evil

  • 1. Using Sakai Site Archive for Good not Evil Cris J. Holdorph Unicon, Inc. holdorph@unicon.net June 10-15, 2012 Growing Community: Growing Possibilities
  • 2. Agenda ● Introduction ● What is Site Archive ● Modifying Site Archive ● Lessons Learned 2012 Jasig Sakai Conference
  • 3. Introduction 2012 Jasig Sakai Conference
  • 4. Unicon ● In Business Since 1993 ● Focus on Open Source Software and Education ● Support and Services for uPortal, CAS, Sakai, Grouper and soon SSP ● Cooperative Support Program 2012 Jasig Sakai Conference
  • 5. International MyLabs Project ● Pearson International ● Localized Sakai ● Publisher Content ● Authoring Sakai / Customer Sakai ○ Two different Sakai systems 2012 Jasig Sakai Conference
  • 6. What is Site Archive 2012 Jasig Sakai Conference
  • 7. Problem Definition ● Create and Export content in one Sakai system ● Import Content into a different Sakai system 2012 Jasig Sakai Conference
  • 8. Possible Solutions ● IMS Common Cartridge ● Sakai Site Archive ● Invent our own 2012 Jasig Sakai Conference
  • 9. IMS Common Cartridge ● Industry Recognized Specification ● Lesson Builder only supported IMS CC import ● Some Sakai data would have no simple way to be represented in IMS CC 2012 Jasig Sakai Conference
  • 10. Sakai Site Archive ● Part of Sakai since release 2.0 ● Created for archiving existing Sakai sites to preserve disk space and/or maintain performance ● Allows for bringing sites back if needed ● Simplified backup and restore for Sites 2012 Jasig Sakai Conference
  • 11. Invent Our Own ● No existing code we need to figure out ● Build everything (increased effort) ● Less likely to get support from Community 2012 Jasig Sakai Conference
  • 12. Decision ● Leverage existing code and use Sakai Site Archive ● Contribute changes to Site Archive back to community ● Benefit from community maintenance of Site Archive code 2012 Jasig Sakai Conference
  • 13. Modifying Site Archive 2012 Jasig Sakai Conference
  • 14. Learning to Use Site Archive - Tool 2012 Jasig Sakai Conference
  • 15. Learning to Use Site Archive - Tool ● Export - Enter Sakai Site ID ● Import ○ File: Enter top level directory name for the archive directory ■ site-id-archive ○ To Site: Enter Target Sakai Site ID ■ If Target Site ID doesn't exist Sakai will create a new Site with that ID 2012 Jasig Sakai Conference
  • 16. Learning to Use Site Archive - Properties mergeFilterSakaiServices@org.sakaiproject.archive.api.ArchiveService=true mergeFilteredSakaiServices@org.sakaiproject.archive.api.ArchiveService= AnnouncementService,AssignmentService,sakai:content, LessonBuilderEntityProducer,DiscussionForumService,NewsService, PollListManager,sakai:site,WebService,WikiObjectService, ContentHostingService,AssessmentEntityProducer,BasicLTISecurityService storagePath@org.sakaiproject.archive.api.ArchiveService= ${sakai.home}/archive/ 2012 Jasig Sakai Conference
  • 17. Learning to Use Site Archive - Code package org.sakaiproject.entity.api; public interface EntityProducer { public boolean willArchiveMerge(); public String archive(String siteId, .); public String merge(String siteId, ...); ... } 2012 Jasig Sakai Conference
  • 18. Learning to Use Site Archive - Code (2) sakai/common/archive- impl/impl2/src/java/org/sakaiproject/archive/impl/SiteArchi ver.java ... // create the directory for the archive File dir = new File(m_storagePath + siteId + "- archive/"); dir.mkdirs(); ... for (Iterator iServices = services.iterator(); iServices.hasNext();) ... if (!service.willArchiveMerge()) { ... String msg = service.archive(siteId, doc, stack, storagePath, attachments); 2012 Jasig Sakai Conference
  • 19. Learning to Use Site Archive - Code (3) sakai/basiclti- impl/src/java/org/sakaiproject/basiclti/impl/BasicLTISecurityServ iceImpl.java public String archive(String siteId, Document doc, Stack stack, String archivePath, List attachments) { ... for (SitePage sitePage : site.getPages()) { for (ToolConfiguration toolConf : sitePage.getTools()) { if (toolConf.getTool().getId().equals(TOOL_REGISTRATION)) { BasicLTIArchiveBean basicLTIArchiveBean = new BasicLTIArchiveBean(); ... Node newNode = basicLTIArchiveBean.toNode(doc); basicLtiList.appendChild(newNode); 2012 Jasig Sakai Conference
  • 20. Supported Tools Tools we have tested as supporting Site Archive in Sakai 2.9.x ○ Lesson Builder ○ Tests and Quizes (partial) ○ Assignments (partial) ○ Announcements* ○ Resources ○ Forums, Podcasts, Polls, Web Content, Wiki, News (RSS) * Restores current dates 2012 Jasig Sakai Conference
  • 21. Newly Supported Tools ● These Tools have been patech to support Site Archive in Sakai 2.9.x ○ Basic LTI ○ Tests and Quizes (full) ○ Assignements (full) * Restores current dates 2012 Jasig Sakai Conference
  • 22. New Site Archive Features ● Preserve Tool Order set by Site maintainer ● Preserve Tool Names et by Site maintainer ● Preserve Skin set by Site maintainer ● Custom merge order ○ Let Lesson Builder merge last 2012 Jasig Sakai Conference
  • 23. Lessons Learned 2012 Jasig Sakai Conference
  • 24. Assuming Entities Exist ● Site Archive designed to dehyrdate and rehydrate sites from/to the same Sakai system ● Rehydrating (importing) into a different Sakai system will give mixed results ○ Missing entities ○ Different GUIDs 2012 Jasig Sakai Conference
  • 25. Linking ● Lesson Builder Linking ○ Charles Hendrick rocks ● Generic HTML (e.g., rich text editor) Linking ○ FIND HTML COMM DISCUSSION 2012 Jasig Sakai Conference
  • 26. Tests and Quizes (Samigo) ● Question Pools ○ Not included in Archive ○ Not specific to Site ○ Owned by creator, useable in any site they can maintain 2012 Jasig Sakai Conference
  • 27. Conclusion 2012 Jasig Sakai Conference
  • 28. Conclusion ● Sakai Site Archive is Good ● Linking to Sakai Entities is Bad ● Directly Linking to Sakai URLs in Rich Text Editors is Evil ● Sakai Site Archive was intended to archive existing sites, not as a content exchange framework ● However.... Sakai Site Archive can work for content exchange (with some tweaks) 2012 Jasig Sakai Conference
  • 29. Questions? 2012 Jasig Sakai Conference
  • 30. Cris J. Holdorph Email: holdorph@unicon.net Twitter: @holdorph Google+: holdorph@gmail.com 2012 Jasig Sakai Conference