SlideShare a Scribd company logo
1 of 55
Download to read offline
The Role of Atom/AtomPub in
Digital Archive Services at The
 University of Texas at Austin


      Peter Keane, UT Austin
Some Terms

• Atom -- syndication format
• AtomPub -- a “write-back” protocol
• REST -- architectural style of the Web
• AJAX -- Javascript-based rich interface
  technique
Presentation Outline

   • DASe
   • REST
   • Atom/AtomPub
Digital Archive Services
         (DASe)

 • lightweight digital repository
 • 100+ subject-specific collections
   comprising 190K items

 • 1.2 million images, audio, video, pdf
 • 3 million pieces of metadata
Why Build?
• what are we building?
• must be simple and extensible
• importance of being RESTful
• new opportunities for reuse
Types of Reuse

• open-source applications
• code libraries/frameworks
• interaction design
Data First Approach
• meet the information provider where they
  are

• spreadsheets, FileMaker, Flickr, iPhoto, etc.
• model data close to the source
• map/transform to and from standard
  schemas
Atom Syndication Format

 • Atom is an XML-based document
   format that describes lists of related
   information known as "feeds". Feeds
   are composed of a number of items,
   known as "entries", each with an
   extensible set of attached metadata.
   For example, each entry has a title.
DASe Item in Atom
DASe Item in Atom
Everything is a Feed in DASe

   • Collection
   • Search Result
   • User “Set”
   • A User’s Sets
   • Collection Attributes
Feeds in DASe
http://dase.laits.utexas.edu/collection/plan2.atom
Feeds in DASe
http://www.laits.utexas.edu/dasebeta/search.atom?q=paul+klee
Feeds in DASe
http://www.laits.utexas.edu/dasebeta/tag/pkeane/ben_shahn.atom
Feeds in DASe
http://www.laits.utexas.edu/dasebeta/user/pkeane/sets.atom
Feeds in DASe
http://www.laits.utexas.edu/dasebeta/collection/bsls/attributes.atom
• WS-*/RPC/Service-Oriented Architecture
                 vs
• REST/Resource-Oriented Architecture
try to build a better front door...
...or knock down the walls.
What is REST?


• Representational State Transfer
• Coined by Roy Fielding for his PhD thesis
• Describes the architecture of the web
• Is robust and scalable
Designing a RESTful
    Application

 • Identify resources and
   representations

 • Give them names (URIs)
 • Define operations for each
   (GET, POST, PUT, DELETE)
URI Templates


'user/{eid}/sets' => 'sets',
'collection{collection_ascii_id}' => 'collection',
'collection{collection_ascii_id}/serial_numbers' => 'serial_numbers',
'collection{collection_ascii_id}/archive' => 'archive',
'collection{collection_ascii_id}/attributes' => 'attributes',
'collection{collection_ascii_id}/items/by/md5/{md5}' => 'items_by_md5',
DASe as REST framework
  • name resources (URI template)
  • provide per-format per-method
    actions:
   •   getCollectionsAtom

   •   putItem

   •   postToMedia

   •   deleteUser
Atom Publishing Protocol

 • The Atom Publishing Protocol is an
   application-level protocol for
   publishing and editing Web
   Resources using HTTP and XML.
Atom Publishing Protocol

  • Collections: Sets of Resources,
    which can be retrieved in whole or
    in part.

  • Editing: Creating, editing, and
    deleting Resources.
Atom Publishing Protocol

  • Follows the principles of RESTful
    architectural design

  • Is widely used: Google GData,
    Microsoft Windows Live Writer, IBM
    Lotus Connectios, etc.
in Object-Oriented Terms...

• REST as an “abstract interface” for
  the web

• Atom/AtomPub provides a concrete
  implementation

• Atom/AtomPub can be further
  subclassed for particular cases
SynOA: Syndication Oriented
         Architecture
• Feeds not only for sharing Information
  with the world

• Feeds for sharing data between parts of
  a system

• plus AtomPub: application becomes a set
  of small pieces loosely joined

• microcosm of the web
DASe & REST: five
  case studies
• DASe itself
• Simple Uploader
• eLucy.org
• Blackboard Integration
• Google Spreadsheet Interop
URI Templates


'user/{eid}/sets' => 'sets',
'collection{collection_ascii_id}' => 'collection',
'collection{collection_ascii_id}/serial_numbers' => 'serial_numbers',
'collection{collection_ascii_id}/archive' => 'archive',
'collection{collection_ascii_id}/attributes' => 'attributes',
'collection{collection_ascii_id}/items/by/md5/{md5}' => 'items_by_md5',
Atom Inside
Atom Inside
Simple Uploader
Simple Uploader
Simple Uploader


• get a list of collections
• authenticate user
• check for duplicate
• post file and return http code
Example: eLucy.org
Example: eLucy.org
Example: eLucy.org
Example: eLucy.org
Example: eLucy.org
DASe/Blackboard Integration

• OAuth - style authentication
  (interaction resuse!)

• Users view their own DASE “sets” in
  Blackboard

• Faculty “publish” a set to a course
• Students access course sets in
  Blackboard
Google Spreasheet Interop
Google Spreasheet Interop
OAI-ORE and Atom
• Atom is one possible serialization of a
  Resource Map OAI-ORE

• ORE/Atom is Atom and will be useful in
  an Atom-aware system

• ORE offers a valuable way to think about
  aggregated resources

• AtomPub can enable Resource Map
  creation
get the code:
dase.googlecode.com

More Related Content

What's hot

Introduction to Apache Hive(Big Data, Final Seminar)
Introduction to Apache Hive(Big Data, Final Seminar)Introduction to Apache Hive(Big Data, Final Seminar)
Introduction to Apache Hive(Big Data, Final Seminar)
Takrim Ul Islam Laskar
 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solr
macrochen
 

What's hot (20)

Improving DSpace Backups, Restores & Migrations
Improving DSpace Backups, Restores & MigrationsImproving DSpace Backups, Restores & Migrations
Improving DSpace Backups, Restores & Migrations
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document database
 
Advanced topics in hive
Advanced topics in hiveAdvanced topics in hive
Advanced topics in hive
 
Elasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetupElasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetup
 
Introduction to apache nutch
Introduction to apache nutchIntroduction to apache nutch
Introduction to apache nutch
 
Solr vs. Elasticsearch - Case by Case
Solr vs. Elasticsearch - Case by CaseSolr vs. Elasticsearch - Case by Case
Solr vs. Elasticsearch - Case by Case
 
3Camp2015_prod
3Camp2015_prod3Camp2015_prod
3Camp2015_prod
 
Web Crawling with Apache Nutch
Web Crawling with Apache NutchWeb Crawling with Apache Nutch
Web Crawling with Apache Nutch
 
An introduction to Storm Crawler
An introduction to Storm CrawlerAn introduction to Storm Crawler
An introduction to Storm Crawler
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucene
 
ElasticSearch Basic Introduction
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic Introduction
 
Introduction to Hive
Introduction to HiveIntroduction to Hive
Introduction to Hive
 
Hive commands
Hive commandsHive commands
Hive commands
 
Introduction to Apache Hive(Big Data, Final Seminar)
Introduction to Apache Hive(Big Data, Final Seminar)Introduction to Apache Hive(Big Data, Final Seminar)
Introduction to Apache Hive(Big Data, Final Seminar)
 
Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of LuceneIntroduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of Lucene
 
Hive(ppt)
Hive(ppt)Hive(ppt)
Hive(ppt)
 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solr
 
Elasticsearch - Devoxx France 2012 - English version
Elasticsearch - Devoxx France 2012 - English versionElasticsearch - Devoxx France 2012 - English version
Elasticsearch - Devoxx France 2012 - English version
 
Subsetting at UAH
Subsetting at UAHSubsetting at UAH
Subsetting at UAH
 
Hive Hadoop
Hive HadoopHive Hadoop
Hive Hadoop
 

Similar to The Role of Atom/AtomPub in Digital Archive Services at The University of Texas at Austin

How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
琛琳 饶
 
Solr Recipes Workshop
Solr Recipes WorkshopSolr Recipes Workshop
Solr Recipes Workshop
Erik Hatcher
 
End-to-end Data Governance with Apache Avro and Atlas
End-to-end Data Governance with Apache Avro and AtlasEnd-to-end Data Governance with Apache Avro and Atlas
End-to-end Data Governance with Apache Avro and Atlas
DataWorks Summit
 

Similar to The Role of Atom/AtomPub in Digital Archive Services at The University of Texas at Austin (20)

Using Document Databases with TYPO3 Flow
Using Document Databases with TYPO3 FlowUsing Document Databases with TYPO3 Flow
Using Document Databases with TYPO3 Flow
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
 
Solr Recipes Workshop
Solr Recipes WorkshopSolr Recipes Workshop
Solr Recipes Workshop
 
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017Interactive Analytics on AWS - AWS Summit Tel Aviv 2017
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017
 
Centralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackCentralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stack
 
Introduction to Monsoon PHP framework
Introduction to Monsoon PHP frameworkIntroduction to Monsoon PHP framework
Introduction to Monsoon PHP framework
 
Tthornton code4lib
Tthornton code4libTthornton code4lib
Tthornton code4lib
 
Hot tutorials
Hot tutorialsHot tutorials
Hot tutorials
 
Accelerating Data Ingestion with Databricks Autoloader
Accelerating Data Ingestion with Databricks AutoloaderAccelerating Data Ingestion with Databricks Autoloader
Accelerating Data Ingestion with Databricks Autoloader
 
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in Grails
 
Apache Kite
Apache KiteApache Kite
Apache Kite
 
Introduction to Amazon Athena
Introduction to Amazon AthenaIntroduction to Amazon Athena
Introduction to Amazon Athena
 
Azure DocumentDB
Azure DocumentDBAzure DocumentDB
Azure DocumentDB
 
End-to-end Data Governance with Apache Avro and Atlas
End-to-end Data Governance with Apache Avro and AtlasEnd-to-end Data Governance with Apache Avro and Atlas
End-to-end Data Governance with Apache Avro and Atlas
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
 

Recently uploaded

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Recently uploaded (20)

Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 

The Role of Atom/AtomPub in Digital Archive Services at The University of Texas at Austin