Pawn:WebDav Package Creation
From Adapt
NOT IMPLEMENTED, NOTES ONLY
Introduction
In a perfect world, everyone would write <nop>PAWN plugins to manage data, metadata, and package accessioning. However that's highly unrealistic and the really, most applications want direct file access to data. Without running applications directly on the receiving server, this leaves us w/ three possibilities.
- nfs / samba
- Expose the package directly. These won't work w/o writing our own protocol since the internal package representation of <nop>PAWN is meaningless outside the receiving servers
- ftp / http
- Expose the collection through an ftp or http interface. This allows the package to be laid out hierarchically by descriptive name. However clients still need to download packages in order to modify them, and re-upload the result.
- webdav
- Provide a webdav folder for each package. The folder can be provided hierarchically, most modern operating systems support mounting of webdav folders. There are servlet-based handlers for the protocol already, so we can track all changes.
Client Interaction
A client will be able to perform the following actions from this feature:
- Create new packages from a web-interface
- View available packages and open as webdav (ms webfolder)
- Modify packages using webdav and have all actions logged
The workflow for accessing packages follows:
- 1. Login using the normal pawn name/password
- 2. Create new package
- Client will be presented with a web page to create a new package. The client will select which record-set they wish to use if there is more than one available. Under the hood, the standard package creation calls will be made, calls will come from the manager instead of the client.
- 3. View available packages
- A list of available package will be shown along w/ their status
- 4. Open package
- Webdav connection to receiving server is made. If the browser is IE, the folder will automatically open when clicked, for firefox a plugin is available. For all others the link can be plugged into a standard webdav browser
- 5. Modify package contents
- This is limited to simple add/remove/open/move filesystem type comments. Any higher level PAWN functions such as approving, archiving, etc are not supported through webdav at this time.
Most standard ldap actions will run without change, add/remove/etc, however for certain items in PAWN special behavior may be needed. Specifically, these are the record-set items at the top-level of a package and metadata.
- Record Set Items
- The top-level folder will contain a set of read-only list of record set items.
- Metadata
- Each folder (record set and below) will have a special PAWN Metadata folder that will host any attached metadata for that folder. Each item will have an Item Name - PAWN Metadata folder in the directory as well.
- Move Support
- Initially data moving will not be supported, however the final plan is for the following to be allowed. Note, these will only work within a package, not across packages. Cross-package will be a copy and no logs will be generated linking the two items.
- Move items to other directories.
- Move metadata from one folder to another metadata folder.
- Move items from being metadata to being real files
- Move real files to metadata status. (Note, file1 cannot move to file1.metadata, also files w/ existing metadata cannot be moved.)
Implementation
Resources
- [Automatic webfolder in XP] - How to create webdav-links for IE (ie, click to open using webdav)
- [webdav servlet] - Webdav servlet gateway
- [firefox webfolder] - Use the ms webfolder stuff in firefox as a plugin
-- Main.MikeSmorul - 09 Feb 2007