File Access and Storage
with the TYPO3 Content Repository
Master Thesis Presentation – 04/20/2009
Eastern Michigan Univers...
Overview
   Introduction
   General Problem
   What have others done?
   TYPO3 Content Repository
   WebDAV
   Imple...
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




          ...
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




          ...
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




          ...
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




          ...
Introduction
 What is:
     Content?
     Content Repository?
     JCR?
     TYPO3 Content Repository?




          ...
General Problem
 How do I store files?
 Images and other
  documents need to be
  transferred into the
  content reposit...
What have others done?
 HTTP/1.0 – GET, HEAD and POST
 HTTP/1.1 – OPTIONS, DELETE, PUT
 FTP
 CMIS – Content Management...
Goal of study
 To create an
  implementation of the WebDAV protocol
  to access files
  in the TYPO3 Content Repository

...
TYPO3 Content Repository – What?
 A JCR compliant repository in PHP
 JCR combines best
  of both worlds
 JCR is a stand...
TYPO3 Content Repository – Why?
 Current situation




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




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




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




             File Access and Storage
             with the TYPO3 Conte...
TYPO3 Content Repository – How?
 JCR defines three levels
   Level 1 – Read access
   Level 2 – Write access
   Option...
TYPO3 Content Repository – How?
 JCR defines three levels
   Level 1 – Read access
   Level 2 – Write access
   Option...
WebDAV
 Web-based Distributed Authoring and Versioning
 A set of extensions to the HTTP/1.1 protocol
     PROPFIND
   ...
WebDAV - Benefits
 Locking of resources
 Same user for the content repository as for
  the content-application
 Change ...
Implementation - Requirements
 Define an information model
   add extra informations from files
 Map WebDAV to JCR
 En...
Implementation - Requirements
 Non-functional Requirements
     Interoperability
     Efficiency
     Usability
     ...
Filename (nt:file)
                                      - jcr:created (date)
Implementation                        - jcr:...
Implementation
 Map WebDAV to JCR
                            JCR
 WebDAV
                            jcr:created
 DAV:cr...
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

C...
Results
 Introduced
     TYPO3 Content Repository
     WebDAV
   Determined requirements
   Created a design
   Deve...
Results
 Extra information from a file is stored
 Content Repository provides a solution to
  consistently store informa...
Results - Efficiency
Action                Latency          Duration
PROPFIND (15 files)   +2.40s (+300%)   +65ms (130%)
P...
Results - Interoperability
User-Agent             Encoding of foldername ÄÖÜäöü

WebFolders (Win)       %C3%84%C3%96%C3%9C...
Results - Usability
 Not all functionality could be implemented.
 An error occurs when the user tries to
    move a fil...
Results
 Confidentiality is not provided
    Access Control has not been implemented in the
     content repository
 In...
Results - Challenges
 Request Handler doesn‘t support WebDAV requests
 Request Handler couldn‘t be replaced
 MVC Routin...
Conclusion
 Content Repository has been introduced
 WebDAV has been introduced
 A prototype has been created that store...
Conclusion
 TYPO3 Content Repository is not ready for
  production use but ready for pilot projects
 TYPO3 Association p...
Future work
   Support locking, versioning and authentication
   Tagging content / Virtual folders
   Performance impro...
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
File Access and Storage with the TYPO3 Content Repository
Upcoming SlideShare
Loading in …5
×

File Access and Storage with the TYPO3 Content Repository

3,346 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,346
On SlideShare
0
From Embeds
0
Number of Embeds
86
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

File Access and Storage with the TYPO3 Content Repository

  1. 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. 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. 3. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  4. 4. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  5. 5. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  6. 6. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  7. 7. Introduction  What is:  Content?  Content Repository?  JCR?  TYPO3 Content Repository? File Access and Storage with the TYPO3 Content Repository
  8. 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. 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. 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. 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. 12. TYPO3 Content Repository – Why?  Current situation File Access and Storage with the TYPO3 Content Repository
  13. 13. TYPO3 Content Repository – Why?  First migration step File Access and Storage with the TYPO3 Content Repository
  14. 14. TYPO3 Content Repository – Why?  Last migration step File Access and Storage with the TYPO3 Content Repository
  15. 15. TYPO3 Content Repository – How?  Tree of nodes File Access and Storage with the TYPO3 Content Repository
  16. 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. 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. 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. 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. 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. 21. Implementation - Requirements  Non-functional Requirements  Interoperability  Efficiency  Usability  Confidentiality  Integrity  Recoverability File Access and Storage with the TYPO3 Content Repository
  22. 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. 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. 24. Implementation  Component overview File Access and Storage with the TYPO3 Content Repository
  25. 25. File Access and Storage with the TYPO3 Content Repository
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. DEMO File Access and Storage with the TYPO3 Content Repository
  38. 38. Questions? File Access and Storage with the TYPO3 Content Repository
  39. 39. Thank you File Access and Storage with the TYPO3 Content Repository

×