SlideShare ist ein Scribd-Unternehmen logo
1 von 40
File Access and Storage
with the TYPO3 Content Repository
Master Thesis Presentation – 04/20/2009
Eastern Michigan University – Department of Computer Science

Thesis Chair:          Professor William Sverdlik
Committee Member:      Professor Michael Zeiger
Committee Member:      Professor Augustine C. Ikeji
Overview
   Introduction
   General Problem
   What have others done?
   TYPO3 Content Repository
   WebDAV
   Implementation
   Results
   Conclusion / Future work

               File Access and Storage
               with the TYPO3 Content Repository
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




               File Access and Storage
               with the TYPO3 Content Repository
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




               File Access and Storage
               with the TYPO3 Content Repository
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




               File Access and Storage
               with the TYPO3 Content Repository
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




               File Access and Storage
               with the TYPO3 Content Repository
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




               File Access and Storage
               with the TYPO3 Content Repository
General Problem
 How do I store files?
 Images and other
  documents need to be
  transferred into the
  content repository

„Content is everything“
                 David Nüscheler

             File Access and Storage
             with the TYPO3 Content Repository
What have others done?
 HTTP/1.0 – GET, HEAD and POST
 HTTP/1.1 – OPTIONS, DELETE, PUT
 FTP
 CMIS – Content Management Interoperability
  Services v0.5
 WebDAV – set of extension to the HTTP/1.1
  protocol

             File Access and Storage
             with the TYPO3 Content Repository
Goal of study
 To create an
  implementation of the WebDAV protocol
  to access files
  in the TYPO3 Content Repository




            File Access and Storage
            with the TYPO3 Content Repository
TYPO3 Content Repository – What?
 A JCR compliant repository in PHP
 JCR combines best
  of both worlds
 JCR is a standard
  to access a
  content repository



             File Access and Storage
             with the TYPO3 Content Repository
TYPO3 Content Repository – Why?
 Current situation




              File Access and Storage
              with the TYPO3 Content Repository
TYPO3 Content Repository – Why?
 First migration step




              File Access and Storage
              with the TYPO3 Content Repository
TYPO3 Content Repository – Why?
 Last migration step




              File Access and Storage
              with the TYPO3 Content Repository
TYPO3 Content Repository – How?
 Tree of nodes




             File Access and Storage
             with the TYPO3 Content Repository
TYPO3 Content Repository – How?
 JCR defines three levels
   Level 1 – Read access
   Level 2 – Write access
   Optional
      Transactions
      Versioning
      Locking
      Observations
      Access Control

                File Access and Storage
                with the TYPO3 Content Repository
TYPO3 Content Repository – How?
 JCR defines three levels
   Level 1 – Read access
   Level 2 – Write access
   Optional
      Transactions
      Versioning
      Locking
      Observations
      Access Control           Not implemented yet!


                File Access and Storage
                with the TYPO3 Content Repository
WebDAV
 Web-based Distributed Authoring and Versioning
 A set of extensions to the HTTP/1.1 protocol
     PROPFIND
     PROPPATCH
     MOVE
     COPY
     UNLOCK
     LOCK
 Uses XML and additional headers to transport
  information.
              File Access and Storage
              with the TYPO3 Content Repository
WebDAV - Benefits
 Locking of resources
 Same user for the content repository as for
  the content-application
 Change properties
 Find properties
 Define own properties
 Listing hierarchical data

              File Access and Storage
              with the TYPO3 Content Repository
Implementation - Requirements
 Define an information model
   add extra informations from files
 Map WebDAV to JCR
 Ensure compatibility to different clients
 Create reusable components
  to replace the storage backend
 Support basic file-system functionality

               File Access and Storage
               with the TYPO3 Content Repository
Implementation - Requirements
 Non-functional Requirements
     Interoperability
     Efficiency
     Usability
     Confidentiality
     Integrity
     Recoverability


                 File Access and Storage
                 with the TYPO3 Content Repository
Filename (nt:file)
                                      - jcr:created (date)
Implementation                        - jcr:createdBy (string)
                                      + jcr:content (nt:resource)
                                         - jcr:data (binary)
 Information model                      - jcr:mimeType (string)
                                         - jcr:encoding (string)
                                         - jcr:lastModified (date)
   Basic resource information           - jcr:lastModifiedBy (string)
   Additional file information          - flow3:contentLength (integer)
                                         - flow3:title (string)
      E.g. image with exif and GPS      - flow3:author (string)
                                         - flow3:comments (string)
                                         - flow3:keywords (string)
                                         - flow3:cameraModel (string)
                                         - flow3:imageHeight (string)
                                         - flow3:imageWidth (string)
                                         - gps:latitude (string)
                                         - gps:longitude (string)
                                         - gps:altitude (string)

                File Access and Storage
                with the TYPO3 Content Repository
Implementation
 Map WebDAV to JCR
                            JCR
 WebDAV
                            jcr:created
 DAV:creationdate
                            jcr:lastModied
 DAV:getlastmodied
                            flow3:contentLength
 DAV:getcontentlength
                            jcr:mimeType / jcr:encoding
 DAV:getcontenttype
                            primary type: nt:file / nt:folder
 DAV:resourcetype
                            jcr:data
 GET and PUT Message-Body




                   File Access and Storage
                   with the TYPO3 Content Repository
Implementation
 Component overview




           File Access and Storage
           with the TYPO3 Content Repository
File Access and Storage
with the TYPO3 Content Repository
Implementation - Review
Feature         Content Repository   File-system
                connector            connector

Create folder   YES                  YES
Create file     YES                  YES
Delete folder   YES                  YES
Delete file     YES                  YES
Edit file       YES                  YES
List contents   YES                  YES
Copy folder     NO                   YES
Copy file       NO                   YES
Move folder     NO                   YES
Move file       NO                   YES
User auth.      NO                   NO
Versioning      NO                   NO
Locking         NO                   NO

                      File Access and Storage
                      with the TYPO3 Content Repository
Results
 Introduced
     TYPO3 Content Repository
     WebDAV
   Determined requirements
   Created a design
   Developed a prototype
   Prototype can transfer files into the repository

                File Access and Storage
                with the TYPO3 Content Repository
Results
 Extra information from a file is stored
 Content Repository provides a solution to
  consistently store information
 Files are handled in the same way as other
  content / no file specific functions
 Content Repository combines benefits of a
  Database, a file-system and XML

             File Access and Storage
             with the TYPO3 Content Repository
Results - Efficiency
Action                Latency          Duration
PROPFIND (15 files)   +2.40s (+300%)   +65ms (130%)
PROPPATCH             +0.35s (+44%)    +0ms (+0%)
GET                   +0.35s (+44%)    +12ms(+120%)
HEAD                  +0.35s (+44%)    +12ms(+120%)
DELETE                +0.60s (+75%)    +0ms (+0%)
PUT                   +1.50s (+187%)   +1ms(+100%)
MOVE                  -                -
COPY                  -                -

                  File Access and Storage
                  with the TYPO3 Content Repository
Results - Interoperability
User-Agent             Encoding of foldername ÄÖÜäöü

WebFolders (Win)       %C3%84%C3%96%C3%9C%C3%A4%C3%B6%C3%BC
DAV Explorer (Win)     %C4%D6%DC%E4%F6%FC
Naja (Win)             (international characters not supported)
Cyberduck (Mac)        %C3%84%C3%96%C3%9C%C3%A4%C3%B6%C3%BC
WebDAV-FS (Mac)        A%CC%88O%CC%88U%CC%88a%CC%88o%CC%88u%CC%88




                     File Access and Storage
                     with the TYPO3 Content Repository
Results - Usability
 Not all functionality could be implemented.
 An error occurs when the user tries to
    move a file / folder
    copy a file / folder
    rename a file / folder
 This reduces the usability



                  File Access and Storage
                  with the TYPO3 Content Repository
Results
 Confidentiality is not provided
    Access Control has not been implemented in the
     content repository
 Integrity is provided
    Content-length is checked against the content-length
     header
 Recoverability is not provided
    Versioning has not been implemented in the content
     repository

               File Access and Storage
               with the TYPO3 Content Repository
Results - Challenges
 Request Handler doesn‘t support WebDAV requests
 Request Handler couldn‘t be replaced
 MVC Routing Mechanism couldn‘t redirect
  to Default Controller of the prototype
 Session->isNodeType was not implemented
 Value->getBinary was not implemented
 PHP 5.3 RC1 is unstable / throws segmentation faults
 Interoperability with different clients

               File Access and Storage
               with the TYPO3 Content Repository
Conclusion
 Content Repository has been introduced
 WebDAV has been introduced
 A prototype has been created that stores
  successfully files with the content repository
 WebDAV is an appropriate protocol
 A standard to use
  international characters is missing

              File Access and Storage
              with the TYPO3 Content Repository
Conclusion
 TYPO3 Content Repository is not ready for
  production use but ready for pilot projects
 TYPO3 Association provides a perfect plattform
  to develop projects
 The community around TYPO3 is very helpful
  and provides useful feedback



             File Access and Storage
             with the TYPO3 Content Repository
Future work
   Support locking, versioning and authentication
   Tagging content / Virtual folders
   Performance improvements through caching
   Additional filters to extract file information
   Observation of CMIS – Content Management
    Information Services


               File Access and Storage
               with the TYPO3 Content Repository
DEMO
File Access and Storage
with the TYPO3 Content Repository
Questions?
  File Access and Storage
  with the TYPO3 Content Repository
Thank you
  File Access and Storage
  with the TYPO3 Content Repository

Weitere ähnliche Inhalte

Ähnlich wie File Access and Storage with the TYPO3 Content Repository

Javase7 1641812
Javase7 1641812Javase7 1641812
Javase7 1641812
Vinay H G
 

Ähnlich wie File Access and Storage with the TYPO3 Content Repository (20)

Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHP
 
Sword 2007 06 22
Sword 2007 06 22Sword 2007 06 22
Sword 2007 06 22
 
IPWB and IPFS at WAC2017
IPWB and IPFS at WAC2017IPWB and IPFS at WAC2017
IPWB and IPFS at WAC2017
 
A Collaborative, Secure, and Private InterPlanetary Wayback Web Archiving Sys...
A Collaborative, Secure, and Private InterPlanetary Wayback Web Archiving Sys...A Collaborative, Secure, and Private InterPlanetary Wayback Web Archiving Sys...
A Collaborative, Secure, and Private InterPlanetary Wayback Web Archiving Sys...
 
Plank
PlankPlank
Plank
 
TYPO3 6.0. What's new
TYPO3 6.0. What's newTYPO3 6.0. What's new
TYPO3 6.0. What's new
 
Django Files — A Short Talk (slides only)
Django Files — A Short Talk (slides only)Django Files — A Short Talk (slides only)
Django Files — A Short Talk (slides only)
 
Implementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHPImplementing a JSR-283 Content Repository in PHP
Implementing a JSR-283 Content Repository in PHP
 
Oxford Common File Layout (OCFL)
Oxford Common File Layout (OCFL)Oxford Common File Layout (OCFL)
Oxford Common File Layout (OCFL)
 
Javase7 1641812
Javase7 1641812Javase7 1641812
Javase7 1641812
 
TYPO3 at UNESCO.org
TYPO3 at UNESCO.orgTYPO3 at UNESCO.org
TYPO3 at UNESCO.org
 
Lightweight Deposit using SWORD
Lightweight Deposit using SWORDLightweight Deposit using SWORD
Lightweight Deposit using SWORD
 
Streaming ETL for Data Lakes using Amazon Kinesis Firehose - May 2017 AWS Onl...
Streaming ETL for Data Lakes using Amazon Kinesis Firehose - May 2017 AWS Onl...Streaming ETL for Data Lakes using Amazon Kinesis Firehose - May 2017 AWS Onl...
Streaming ETL for Data Lakes using Amazon Kinesis Firehose - May 2017 AWS Onl...
 
Going on an HTTP Diet: Front-End Web Performance
Going on an HTTP Diet: Front-End Web PerformanceGoing on an HTTP Diet: Front-End Web Performance
Going on an HTTP Diet: Front-End Web Performance
 
Integrating On-premises Enterprise Storage Workloads with AWS (ENT301) | AWS ...
Integrating On-premises Enterprise Storage Workloads with AWS (ENT301) | AWS ...Integrating On-premises Enterprise Storage Workloads with AWS (ENT301) | AWS ...
Integrating On-premises Enterprise Storage Workloads with AWS (ENT301) | AWS ...
 
Using Archivematica 0.8 for Digitized Content
Using Archivematica 0.8 for Digitized ContentUsing Archivematica 0.8 for Digitized Content
Using Archivematica 0.8 for Digitized Content
 
Sword Crig 2007 12 06
Sword Crig 2007 12 06Sword Crig 2007 12 06
Sword Crig 2007 12 06
 
JCDL 2016 Doctoral Consortium - Web Archive Profiling
JCDL 2016 Doctoral Consortium - Web Archive ProfilingJCDL 2016 Doctoral Consortium - Web Archive Profiling
JCDL 2016 Doctoral Consortium - Web Archive Profiling
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
 
TYPO3 Performance (T3DD18)
TYPO3 Performance (T3DD18)TYPO3 Performance (T3DD18)
TYPO3 Performance (T3DD18)
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+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@
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

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
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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​
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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 ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+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...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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
 
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
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

File Access and Storage with the TYPO3 Content Repository

  • 1. File Access and Storage with the TYPO3 Content Repository Master Thesis Presentation – 04/20/2009 Eastern Michigan University – Department of Computer Science Thesis Chair: Professor William Sverdlik Committee Member: Professor Michael Zeiger Committee Member: Professor Augustine C. Ikeji
  • 2. Overview  Introduction  General Problem  What have others done?  TYPO3 Content Repository  WebDAV  Implementation  Results  Conclusion / Future work File Access and Storage with the TYPO3 Content Repository
  • 3. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  • 4. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  • 5. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  • 6. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  • 7. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  • 8. General Problem  How do I store files?  Images and other documents need to be transferred into the content repository „Content is everything“ David Nüscheler File Access and Storage with the TYPO3 Content Repository
  • 9. What have others done?  HTTP/1.0 – GET, HEAD and POST  HTTP/1.1 – OPTIONS, DELETE, PUT  FTP  CMIS – Content Management Interoperability Services v0.5  WebDAV – set of extension to the HTTP/1.1 protocol File Access and Storage with the TYPO3 Content Repository
  • 10. Goal of study  To create an implementation of the WebDAV protocol to access files in the TYPO3 Content Repository File Access and Storage with the TYPO3 Content Repository
  • 11. TYPO3 Content Repository – What?  A JCR compliant repository in PHP  JCR combines best of both worlds  JCR is a standard to access a content repository File Access and Storage with the TYPO3 Content Repository
  • 12. TYPO3 Content Repository – Why?  Current situation File Access and Storage with the TYPO3 Content Repository
  • 13. TYPO3 Content Repository – Why?  First migration step File Access and Storage with the TYPO3 Content Repository
  • 14. TYPO3 Content Repository – Why?  Last migration step File Access and Storage with the TYPO3 Content Repository
  • 15. TYPO3 Content Repository – How?  Tree of nodes File Access and Storage with the TYPO3 Content Repository
  • 16. TYPO3 Content Repository – How?  JCR defines three levels  Level 1 – Read access  Level 2 – Write access  Optional  Transactions  Versioning  Locking  Observations  Access Control File Access and Storage with the TYPO3 Content Repository
  • 17. TYPO3 Content Repository – How?  JCR defines three levels  Level 1 – Read access  Level 2 – Write access  Optional  Transactions  Versioning  Locking  Observations  Access Control Not implemented yet! File Access and Storage with the TYPO3 Content Repository
  • 18. WebDAV  Web-based Distributed Authoring and Versioning  A set of extensions to the HTTP/1.1 protocol  PROPFIND  PROPPATCH  MOVE  COPY  UNLOCK  LOCK  Uses XML and additional headers to transport information. File Access and Storage with the TYPO3 Content Repository
  • 19. WebDAV - Benefits  Locking of resources  Same user for the content repository as for the content-application  Change properties  Find properties  Define own properties  Listing hierarchical data File Access and Storage with the TYPO3 Content Repository
  • 20. Implementation - Requirements  Define an information model  add extra informations from files  Map WebDAV to JCR  Ensure compatibility to different clients  Create reusable components to replace the storage backend  Support basic file-system functionality File Access and Storage with the TYPO3 Content Repository
  • 21. Implementation - Requirements  Non-functional Requirements  Interoperability  Efficiency  Usability  Confidentiality  Integrity  Recoverability File Access and Storage with the TYPO3 Content Repository
  • 22. Filename (nt:file) - jcr:created (date) Implementation - jcr:createdBy (string) + jcr:content (nt:resource) - jcr:data (binary)  Information model - jcr:mimeType (string) - jcr:encoding (string) - jcr:lastModified (date)  Basic resource information - jcr:lastModifiedBy (string)  Additional file information - flow3:contentLength (integer) - flow3:title (string)  E.g. image with exif and GPS - flow3:author (string) - flow3:comments (string) - flow3:keywords (string) - flow3:cameraModel (string) - flow3:imageHeight (string) - flow3:imageWidth (string) - gps:latitude (string) - gps:longitude (string) - gps:altitude (string) File Access and Storage with the TYPO3 Content Repository
  • 23. Implementation  Map WebDAV to JCR JCR WebDAV jcr:created DAV:creationdate jcr:lastModied DAV:getlastmodied flow3:contentLength DAV:getcontentlength jcr:mimeType / jcr:encoding DAV:getcontenttype primary type: nt:file / nt:folder DAV:resourcetype jcr:data GET and PUT Message-Body File Access and Storage with the TYPO3 Content Repository
  • 24. Implementation  Component overview File Access and Storage with the TYPO3 Content Repository
  • 25.
  • 26. File Access and Storage with the TYPO3 Content Repository
  • 27. Implementation - Review Feature Content Repository File-system connector connector Create folder YES YES Create file YES YES Delete folder YES YES Delete file YES YES Edit file YES YES List contents YES YES Copy folder NO YES Copy file NO YES Move folder NO YES Move file NO YES User auth. NO NO Versioning NO NO Locking NO NO File Access and Storage with the TYPO3 Content Repository
  • 28. Results  Introduced  TYPO3 Content Repository  WebDAV  Determined requirements  Created a design  Developed a prototype  Prototype can transfer files into the repository File Access and Storage with the TYPO3 Content Repository
  • 29. Results  Extra information from a file is stored  Content Repository provides a solution to consistently store information  Files are handled in the same way as other content / no file specific functions  Content Repository combines benefits of a Database, a file-system and XML File Access and Storage with the TYPO3 Content Repository
  • 30. Results - Efficiency Action Latency Duration PROPFIND (15 files) +2.40s (+300%) +65ms (130%) PROPPATCH +0.35s (+44%) +0ms (+0%) GET +0.35s (+44%) +12ms(+120%) HEAD +0.35s (+44%) +12ms(+120%) DELETE +0.60s (+75%) +0ms (+0%) PUT +1.50s (+187%) +1ms(+100%) MOVE - - COPY - - File Access and Storage with the TYPO3 Content Repository
  • 31. Results - Interoperability User-Agent Encoding of foldername ÄÖÜäöü WebFolders (Win) %C3%84%C3%96%C3%9C%C3%A4%C3%B6%C3%BC DAV Explorer (Win) %C4%D6%DC%E4%F6%FC Naja (Win) (international characters not supported) Cyberduck (Mac) %C3%84%C3%96%C3%9C%C3%A4%C3%B6%C3%BC WebDAV-FS (Mac) A%CC%88O%CC%88U%CC%88a%CC%88o%CC%88u%CC%88 File Access and Storage with the TYPO3 Content Repository
  • 32. Results - Usability  Not all functionality could be implemented.  An error occurs when the user tries to  move a file / folder  copy a file / folder  rename a file / folder  This reduces the usability File Access and Storage with the TYPO3 Content Repository
  • 33. Results  Confidentiality is not provided  Access Control has not been implemented in the content repository  Integrity is provided  Content-length is checked against the content-length header  Recoverability is not provided  Versioning has not been implemented in the content repository File Access and Storage with the TYPO3 Content Repository
  • 34. Results - Challenges  Request Handler doesn‘t support WebDAV requests  Request Handler couldn‘t be replaced  MVC Routing Mechanism couldn‘t redirect to Default Controller of the prototype  Session->isNodeType was not implemented  Value->getBinary was not implemented  PHP 5.3 RC1 is unstable / throws segmentation faults  Interoperability with different clients File Access and Storage with the TYPO3 Content Repository
  • 35. Conclusion  Content Repository has been introduced  WebDAV has been introduced  A prototype has been created that stores successfully files with the content repository  WebDAV is an appropriate protocol  A standard to use international characters is missing File Access and Storage with the TYPO3 Content Repository
  • 36. Conclusion  TYPO3 Content Repository is not ready for production use but ready for pilot projects  TYPO3 Association provides a perfect plattform to develop projects  The community around TYPO3 is very helpful and provides useful feedback File Access and Storage with the TYPO3 Content Repository
  • 37. Future work  Support locking, versioning and authentication  Tagging content / Virtual folders  Performance improvements through caching  Additional filters to extract file information  Observation of CMIS – Content Management Information Services File Access and Storage with the TYPO3 Content Repository
  • 38. DEMO File Access and Storage with the TYPO3 Content Repository
  • 39. Questions? File Access and Storage with the TYPO3 Content Repository
  • 40. Thank you File Access and Storage with the TYPO3 Content Repository