SlideShare une entreprise Scribd logo
1  sur  73
The Memento Team Herbert Van de Sompel   Michael L. Nelson Robert Sanderson Lyudmila Balakireva Scott Ainsworth Harihar Shankar Memento: Time Travel for the Web Memento is partially funded by the Library of Congress
"I love to look at HTTP in the morning… …looks like…  history.
TBL on Generic vs. Specific Resources http://www.w3.org/DesignIssues/Generic.html
In The Beginning… there was the inode struct stat { dev_t  st_dev;  /* ID of device containing file */ ino_t  st_ino;  /* inode number */ mode_t  st_mode;  /* protection */ nlink_t  st_nlink;  /* number of hard links */ uid_t  st_uid;  /* user ID of owner */ gid_t  st_gid;  /* group ID of owner */ dev_t  st_rdev;  /* device ID (if special file) */ off_t  st_size;  /* total size, in bytes */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t  st_blocks;  /* number of blocks allocated */ time_t  st_atime;  /* time of last access */ time_t  st_mtime;  /* time of last modification */ time_t  st_ctime;  /* time of last status change */ };
Limited Time Semantics… % telnet www.digitalpreservation.gov 80 Trying 140.147.249.7... Connected to www.digitalpreservation.gov. Escape character is '^]'. HEAD /images/ndiipp_header6.jpg HTTP/1.1 Host: www.digitalpreservation.gov Connection: close HTTP/1.1 200 OK Date: Mon, 19 Jul 2010 21:41:04 GMT Server: Apache Last-Modified: Thu, 18 Jun 2009 16:25:54 GMT ETag: "1bc861-10935-dca24880" Accept-Ranges: bytes Content-Length: 67893 Connection: close Content-Type: image/jpeg Connection closed by foreign host.
Time Semantics Becoming Less, Not More Available  % telnet www.digitalpreservation.gov 80 Trying 140.147.249.7... Connected to www.digitalpreservation.gov. Escape character is '^]'. HEAD / HTTP/1.1 Host: www.digitalpreservation.gov Connection: close HTTP/1.1 200 OK Date: Mon, 19 Jul 2010 21:36:00 GMT Server: Apache Accept-Ranges: bytes Connection: close Content-Type: text/html Connection closed by foreign host.
Archived Resources http://web.archive.org/web/20010911203610/http://www.cnn.com/  archived resource for  http://cnn.com http://en.wikipedia.org/w/index.php?title=September_11_attacks&oldid=282333  archived resource for  http://en.wikipedia.org/wiki/September_11_attacks Sep 11 2001, 20:36:10 UTC  Dec 20 2001, 4:51:00 UTC
Finding Archived Resources Go to  http://www.archive.org/  and search http://cnn.com On  http://web.archive.org/web/*/http://cnn.com , select desired datetime
Finding Archived Resources Go to  http://en.wikipedia.org/wiki/September_11_attacks   and click History Browse History
The Past Links to the Present… explicit HTML link; no HTTP links; opaque URI
The Past Links to the Present… no HTML links; no HTTP links; implicit from URI
But the Present Does Not Link to the Past % telnet www.digitalpreservation.gov 80 Trying 140.147.249.7... Connected to www.digitalpreservation.gov. Escape character is '^]'. HEAD / HTTP/1.1 Host: www.digitalpreservation.gov Connection: close HTTP/1.1 200 OK Date: Mon, 19 Jul 2010 21:36:00 GMT Server: Apache Accept-Ranges: bytes Connection: close Content-Type: text/html Connection closed by foreign host. no hints in HTML, HTTP, or URI
Linking the Past and the Present ,[object Object],[object Object],[object Object],[object Object]
Normal HTTP Flow GET R 200 OK
Normal HTTP Flow GET R 200 OK
The Web without a Time Dimension
The Web without a Time Dimension
The Web without a Time Dimension Need to use a different URI to access archived versions of a resource and its current version
The Web with Time Dimension added by Memento In Memento: use URI of the current version to access archived versions, but qualify it with datetime
The Web with Time Dimension added by Memento …  and arrive at an archived version via level of indirection TimeGate
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Content Negotiation in the datetime dimension
Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
The Memento Framework
Why Not Bypass URI-R and Go Directly to TimeGate? ,[object Object],[object Object],[object Object],[object Object]
Long Tail of Archives A: There is no one true TimeGate. We envision a competitive marketplace for TimeGates and Aggregators. Q: Which TimeGate should my server (or  client) Link to?
Transition Period ,[object Object],[object Object]
Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200 Client detects absence of Link header in response from  URI-R, discards it, then constructs its own URI-G value
Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
Compliant Server, Non-Compliant Client GET R 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
Compliant Server, Non-Compliant Client GET R 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
Compliant Server, Non-Compliant Client GET R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
Some Issues ,[object Object],[object Object],[object Object]
No Uncertainty With Self-Archiving Systems t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html foo.html pic.gif foo.html pic.gif foo.html has <img src=pic.gif> pic.gif
foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html foo.html pic.gif foo.html pic.gif foo.html has <img src=pic.gif> pic.gif
foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 foo.html correct pic.gif correct t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html foo.html pic.gif foo.html pic.gif foo.html has <img src=pic.gif> pic.gif
Uncertainty in Third-Party Archives t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html foo.html pic.gif foo.html pic.gif foo.html has <img src=pic.gif> pic.gif
Missed Updates red italics = missed updates t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 foo.html correct pic.gif incorrect (should be t4)  t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 foo.html correct pic.gif incorrect (should be t4)  this combination (foo@t4, pic@t0) never existed! t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
Decrease Uncertainty With More Observations? red italics = missed updates t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
Three Notions of Time: Cr, CD, LM ,[object Object],[object Object],[object Object],[object Object],[object Object]
Cr == CD == LM Cr CD LM
Cr == CD < LM Cr CD LM
Cr < CD <= LM Cr CD LM
CD < Cr <= LM Cr CD LM
When is the Past? cf. the &quot;chronoscope&quot; in Asimov's &quot;The Dead Past&quot; easy challenging challenging doable but hard tough yikes!
Why Care About The Past? From an anonymous reviewer ( emphasis  mine): &quot;Is there any statistics to show that many or a good number of Web  users would like to get obsolete data or resources?  &quot;
Replaying the Experience… ,[object Object]
 
vs. ,[object Object]
 
 
 
 
 
 
 
 
 
 
 
 
Memento wants to make navigating the Web’s Past Easy ,[object Object],[object Object]

Contenu connexe

En vedette

En vedette (15)

Music Video Redundancy and Half-Life in YouTube
Music Video Redundancy and Half-Life in YouTubeMusic Video Redundancy and Half-Life in YouTube
Music Video Redundancy and Half-Life in YouTube
 
A Research Agenda for "Obsolete Data or Resources"
A Research Agenda for "Obsolete Data or Resources"A Research Agenda for "Obsolete Data or Resources"
A Research Agenda for "Obsolete Data or Resources"
 
Can’t Find Your 404s?
Can’t Find Your 404s?Can’t Find Your 404s?
Can’t Find Your 404s?
 
(Re-) Discovering Lost Web Pages
(Re-) Discovering Lost Web Pages(Re-) Discovering Lost Web Pages
(Re-) Discovering Lost Web Pages
 
My Point of View: Michael L. Nelson Web Archiving Cooperative
My Point of View: Michael L. Nelson  Web Archiving CooperativeMy Point of View: Michael L. Nelson  Web Archiving Cooperative
My Point of View: Michael L. Nelson Web Archiving Cooperative
 
Memento: Time Travel for the Web
Memento: Time Travel for the WebMemento: Time Travel for the Web
Memento: Time Travel for the Web
 
Memento: Time Travel for the Web
Memento: Time Travel for the WebMemento: Time Travel for the Web
Memento: Time Travel for the Web
 
Synchronicity: Just-In-Time Discovery of Lost Web Pages
Synchronicity: Just-In-Time Discovery of Lost Web PagesSynchronicity: Just-In-Time Discovery of Lost Web Pages
Synchronicity: Just-In-Time Discovery of Lost Web Pages
 
Using timed-release cryptography to mitigate the preservation risk of embargo...
Using timed-release cryptography to mitigate the preservation risk of embargo...Using timed-release cryptography to mitigate the preservation risk of embargo...
Using timed-release cryptography to mitigate the preservation risk of embargo...
 
Tools for A Preservation Ready Web
Tools for A Preservation Ready WebTools for A Preservation Ready Web
Tools for A Preservation Ready Web
 
The Open Archives Initiative
The Open Archives InitiativeThe Open Archives Initiative
The Open Archives Initiative
 
(Re-)Discovering Lost Web Pages
(Re-)Discovering Lost Web Pages(Re-)Discovering Lost Web Pages
(Re-)Discovering Lost Web Pages
 
Review of Web Archiving
Review of Web ArchivingReview of Web Archiving
Review of Web Archiving
 
OAI-ORE: The Open Archives Initiative Object Reuse and Exchange Project
OAI-ORE:  The Open Archives Initiative  Object Reuse and Exchange ProjectOAI-ORE:  The Open Archives Initiative  Object Reuse and Exchange Project
OAI-ORE: The Open Archives Initiative Object Reuse and Exchange Project
 
Why Care About the Past?
Why Care About the Past?Why Care About the Past?
Why Care About the Past?
 

Similaire à Memento: Time Travel for the Web

Programming Assignment 3 CSCE 3530 Introduction to Comput.pdf
Programming Assignment 3 CSCE 3530  Introduction to Comput.pdfProgramming Assignment 3 CSCE 3530  Introduction to Comput.pdf
Programming Assignment 3 CSCE 3530 Introduction to Comput.pdf
addtechglobalmarketi
 
Testing REST Web Services
Testing REST Web ServicesTesting REST Web Services
Testing REST Web Services
Jan Algermissen
 

Similaire à Memento: Time Travel for the Web (20)

Starting With Php
Starting With PhpStarting With Php
Starting With Php
 
The Memento protocol
The Memento protocolThe Memento protocol
The Memento protocol
 
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio LopesHTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
 
HTTP
HTTPHTTP
HTTP
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1
 
Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]
 
www and http services
www and http serviceswww and http services
www and http services
 
Making the Most of HTTP In Your Apps
Making the Most of HTTP In Your AppsMaking the Most of HTTP In Your Apps
Making the Most of HTTP In Your Apps
 
WWW and HTTP
WWW and HTTPWWW and HTTP
WWW and HTTP
 
Programming Assignment 3 CSCE 3530 Introduction to Comput.pdf
Programming Assignment 3 CSCE 3530  Introduction to Comput.pdfProgramming Assignment 3 CSCE 3530  Introduction to Comput.pdf
Programming Assignment 3 CSCE 3530 Introduction to Comput.pdf
 
You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!
 
Grokking the REST Architectural Style
Grokking the REST Architectural StyleGrokking the REST Architectural Style
Grokking the REST Architectural Style
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developers
 
Http2.0 Guide 2013-08-14 #http2study
Http2.0 Guide 2013-08-14 #http2studyHttp2.0 Guide 2013-08-14 #http2study
Http2.0 Guide 2013-08-14 #http2study
 
Caching on the Edge
Caching on the EdgeCaching on the Edge
Caching on the Edge
 
Hidden Gems in HTTP
Hidden Gems in HTTPHidden Gems in HTTP
Hidden Gems in HTTP
 
Testing REST Web Services
Testing REST Web ServicesTesting REST Web Services
Testing REST Web Services
 
Deep Dive on Accelerating Content, APIs, and Applications with Amazon CloudFr...
Deep Dive on Accelerating Content, APIs, and Applications with Amazon CloudFr...Deep Dive on Accelerating Content, APIs, and Applications with Amazon CloudFr...
Deep Dive on Accelerating Content, APIs, and Applications with Amazon CloudFr...
 
application of http.pptx
application of http.pptxapplication of http.pptx
application of http.pptx
 

Plus de Michael Nelson

Plus de Michael Nelson (20)

Web Archiving in the Year eaee1902f186819154789ee22ca30035
Web Archiving in the Year eaee1902f186819154789ee22ca30035Web Archiving in the Year eaee1902f186819154789ee22ca30035
Web Archiving in the Year eaee1902f186819154789ee22ca30035
 
Uncertainty in replaying archived Twitter pages
Uncertainty in replaying archived Twitter pagesUncertainty in replaying archived Twitter pages
Uncertainty in replaying archived Twitter pages
 
Web Archives at the Nexus of Good Fakes and Flawed Originals
Web Archives at the Nexus of Good Fakes and Flawed OriginalsWeb Archives at the Nexus of Good Fakes and Flawed Originals
Web Archives at the Nexus of Good Fakes and Flawed Originals
 
Web Archives at the Nexus of Good Fakes and Flawed Originals
Web Archives at the Nexus of Good Fakes and Flawed OriginalsWeb Archives at the Nexus of Good Fakes and Flawed Originals
Web Archives at the Nexus of Good Fakes and Flawed Originals
 
Blockchain Can Not Be Used To Verify Replayed Archived Web Pages
Blockchain Can Not Be Used To Verify Replayed Archived Web PagesBlockchain Can Not Be Used To Verify Replayed Archived Web Pages
Blockchain Can Not Be Used To Verify Replayed Archived Web Pages
 
Blockchain Can Not Be Used To Verify Replayed Archived Web Pages
Blockchain Can Not Be Used To Verify Replayed Archived Web PagesBlockchain Can Not Be Used To Verify Replayed Archived Web Pages
Blockchain Can Not Be Used To Verify Replayed Archived Web Pages
 
Weaponized Web Archives: Provenance Laundering of Short Order Evidence
Weaponized Web Archives: Provenance Laundering of Short Order Evidence Weaponized Web Archives: Provenance Laundering of Short Order Evidence
Weaponized Web Archives: Provenance Laundering of Short Order Evidence
 
Weaponized Web Archives: Provenance Laundering of Short Order Evidence
Weaponized Web Archives: Provenance Laundering of Short Order Evidence Weaponized Web Archives: Provenance Laundering of Short Order Evidence
Weaponized Web Archives: Provenance Laundering of Short Order Evidence
 
Weaponized Web Archives: Provenance Laundering of Short Order Evidence
Weaponized Web Archives: Provenance Laundering of Short Order Evidence Weaponized Web Archives: Provenance Laundering of Short Order Evidence
Weaponized Web Archives: Provenance Laundering of Short Order Evidence
 
Web Archiving Activities of ODU’s Web Science and Digital Library Research G...
Web Archiving Activities of ODU’s Web Science and Digital Library Research G...Web Archiving Activities of ODU’s Web Science and Digital Library Research G...
Web Archiving Activities of ODU’s Web Science and Digital Library Research G...
 
Summarizing archival collections using storytelling techniques
Summarizing archival collections using storytelling techniquesSummarizing archival collections using storytelling techniques
Summarizing archival collections using storytelling techniques
 
The Memento Protocol and Research Issues With Web Archiving
The Memento Protocol and Research Issues With Web ArchivingThe Memento Protocol and Research Issues With Web Archiving
The Memento Protocol and Research Issues With Web Archiving
 
We Need Multiple, Independent Web Archives
We Need Multiple, Independent Web ArchivesWe Need Multiple, Independent Web Archives
We Need Multiple, Independent Web Archives
 
Combining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
Combining Heritrix and PhantomJS for Better Crawling of Pages with JavascriptCombining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
Combining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
 
Storytelling for Summarizing Collections in Web Archives
Storytelling for Summarizing Collections in Web ArchivesStorytelling for Summarizing Collections in Web Archives
Storytelling for Summarizing Collections in Web Archives
 
Why We Need Multiple Archives
Why We Need Multiple ArchivesWhy We Need Multiple Archives
Why We Need Multiple Archives
 
Combining Storytelling and Web Archives
Combining Storytelling and Web ArchivesCombining Storytelling and Web Archives
Combining Storytelling and Web Archives
 
@WebSciDL PhD Student Project Reviews August 5&6, 2015
@WebSciDL PhD Student Project Reviews August 5&6, 2015@WebSciDL PhD Student Project Reviews August 5&6, 2015
@WebSciDL PhD Student Project Reviews August 5&6, 2015
 
Evaluating the Temporal Coherence of Archived Pages
Evaluating the Temporal Coherence of Archived PagesEvaluating the Temporal Coherence of Archived Pages
Evaluating the Temporal Coherence of Archived Pages
 
When Should I Make Preservation Copies of Myself?
When Should I Make Preservation Copies of Myself?�When Should I Make Preservation Copies of Myself?�
When Should I Make Preservation Copies of Myself?
 

Dernier

+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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
+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...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
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 ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
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
 
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
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
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
 
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
 

Memento: Time Travel for the Web

  • 1. The Memento Team Herbert Van de Sompel Michael L. Nelson Robert Sanderson Lyudmila Balakireva Scott Ainsworth Harihar Shankar Memento: Time Travel for the Web Memento is partially funded by the Library of Congress
  • 2. &quot;I love to look at HTTP in the morning… …looks like… history.
  • 3. TBL on Generic vs. Specific Resources http://www.w3.org/DesignIssues/Generic.html
  • 4. In The Beginning… there was the inode struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device ID (if special file) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last status change */ };
  • 5. Limited Time Semantics… % telnet www.digitalpreservation.gov 80 Trying 140.147.249.7... Connected to www.digitalpreservation.gov. Escape character is '^]'. HEAD /images/ndiipp_header6.jpg HTTP/1.1 Host: www.digitalpreservation.gov Connection: close HTTP/1.1 200 OK Date: Mon, 19 Jul 2010 21:41:04 GMT Server: Apache Last-Modified: Thu, 18 Jun 2009 16:25:54 GMT ETag: &quot;1bc861-10935-dca24880&quot; Accept-Ranges: bytes Content-Length: 67893 Connection: close Content-Type: image/jpeg Connection closed by foreign host.
  • 6. Time Semantics Becoming Less, Not More Available % telnet www.digitalpreservation.gov 80 Trying 140.147.249.7... Connected to www.digitalpreservation.gov. Escape character is '^]'. HEAD / HTTP/1.1 Host: www.digitalpreservation.gov Connection: close HTTP/1.1 200 OK Date: Mon, 19 Jul 2010 21:36:00 GMT Server: Apache Accept-Ranges: bytes Connection: close Content-Type: text/html Connection closed by foreign host.
  • 7. Archived Resources http://web.archive.org/web/20010911203610/http://www.cnn.com/ archived resource for http://cnn.com http://en.wikipedia.org/w/index.php?title=September_11_attacks&oldid=282333 archived resource for http://en.wikipedia.org/wiki/September_11_attacks Sep 11 2001, 20:36:10 UTC Dec 20 2001, 4:51:00 UTC
  • 8. Finding Archived Resources Go to http://www.archive.org/ and search http://cnn.com On http://web.archive.org/web/*/http://cnn.com , select desired datetime
  • 9. Finding Archived Resources Go to http://en.wikipedia.org/wiki/September_11_attacks and click History Browse History
  • 10. The Past Links to the Present… explicit HTML link; no HTTP links; opaque URI
  • 11. The Past Links to the Present… no HTML links; no HTTP links; implicit from URI
  • 12. But the Present Does Not Link to the Past % telnet www.digitalpreservation.gov 80 Trying 140.147.249.7... Connected to www.digitalpreservation.gov. Escape character is '^]'. HEAD / HTTP/1.1 Host: www.digitalpreservation.gov Connection: close HTTP/1.1 200 OK Date: Mon, 19 Jul 2010 21:36:00 GMT Server: Apache Accept-Ranges: bytes Connection: close Content-Type: text/html Connection closed by foreign host. no hints in HTML, HTTP, or URI
  • 13.
  • 14. Normal HTTP Flow GET R 200 OK
  • 15. Normal HTTP Flow GET R 200 OK
  • 16. The Web without a Time Dimension
  • 17. The Web without a Time Dimension
  • 18. The Web without a Time Dimension Need to use a different URI to access archived versions of a resource and its current version
  • 19. The Web with Time Dimension added by Memento In Memento: use URI of the current version to access archived versions, but qualify it with datetime
  • 20. The Web with Time Dimension added by Memento … and arrive at an archived version via level of indirection TimeGate
  • 21.
  • 22. Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 23. Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 24. Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 25. Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 26. Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 27. Memento HTTP Flow HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 29.
  • 30. Long Tail of Archives A: There is no one true TimeGate. We envision a competitive marketplace for TimeGates and Aggregators. Q: Which TimeGate should my server (or client) Link to?
  • 31.
  • 32. Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
  • 33. Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
  • 34. Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200 Client detects absence of Link header in response from URI-R, discards it, then constructs its own URI-G value
  • 35. Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
  • 36. Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
  • 37. Compliant Client, Non-Compliant Server HEAD R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200
  • 38. Compliant Server, Non-Compliant Client GET R 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 39. Compliant Server, Non-Compliant Client GET R 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 40. Compliant Server, Non-Compliant Client GET R, Accept-Datetime 302  M, Vary, TCN, Link  R,B,M 200, Content-Datetime, Link  R,B,M GET G, Accept-Datetime GET M, Accept-Datetime 200, Link  G
  • 41.
  • 42. No Uncertainty With Self-Archiving Systems t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html foo.html pic.gif foo.html pic.gif foo.html has <img src=pic.gif> pic.gif
  • 43. foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html foo.html pic.gif foo.html pic.gif foo.html has <img src=pic.gif> pic.gif
  • 44. foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 foo.html correct pic.gif correct t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html foo.html pic.gif foo.html pic.gif foo.html has <img src=pic.gif> pic.gif
  • 45. Uncertainty in Third-Party Archives t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html foo.html pic.gif foo.html pic.gif foo.html has <img src=pic.gif> pic.gif
  • 46. Missed Updates red italics = missed updates t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
  • 47. foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
  • 48. foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 foo.html correct pic.gif incorrect (should be t4) t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
  • 49. foo.html @ t4 GET /foo.html Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t4 GET /pic.gif Accept-Datetime: t4 HTTP/1.1 200 OK Content-Datetime: t0 foo.html correct pic.gif incorrect (should be t4) this combination (foo@t4, pic@t0) never existed! t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
  • 50. Decrease Uncertainty With More Observations? red italics = missed updates t0 | t1 | t2 | t3 | t4 | t5 | t6 | t7 | foo.html pic.gif foo.html pic.gif foo.html pic.gif pic.gif foo.html pic.gif foo.html has <img src=pic.gif> foo.html pic.gif
  • 51.
  • 52. Cr == CD == LM Cr CD LM
  • 53. Cr == CD < LM Cr CD LM
  • 54. Cr < CD <= LM Cr CD LM
  • 55. CD < Cr <= LM Cr CD LM
  • 56. When is the Past? cf. the &quot;chronoscope&quot; in Asimov's &quot;The Dead Past&quot; easy challenging challenging doable but hard tough yikes!
  • 57. Why Care About The Past? From an anonymous reviewer ( emphasis mine): &quot;Is there any statistics to show that many or a good number of Web users would like to get obsolete data or resources? &quot;
  • 58.
  • 59.  
  • 60.
  • 61.  
  • 62.  
  • 63.  
  • 64.  
  • 65.  
  • 66.  
  • 67.  
  • 68.  
  • 69.  
  • 70.  
  • 71.  
  • 72.  
  • 73.