Difference between revisions of "FileFerret design"

From HypertWiki
Jump to navigation Jump to search
(→‎Data Concepts: Locations are one-to-one mapping with Folders)
(→‎Data Concepts: unique ID for Mappings)
Line 11: Line 11:
* A '''Folder''' corresponds to the traditional operating system concept of a folder or directory, i.e. it is a named location which may contain zero or more files, and also has a number of OS-dependent attributes such as creation time, access permissions, etc. Any given folder may or may not be reachable by any particular machine; if a folder is reachable by a particular machine, however, it is assumed that all folders underneath it are also reachable by that machine (although a given folder's contents may be inaccessible due to security restrictions).
* A '''Folder''' corresponds to the traditional operating system concept of a folder or directory, i.e. it is a named location which may contain zero or more files, and also has a number of OS-dependent attributes such as creation time, access permissions, etc. Any given folder may or may not be reachable by any particular machine; if a folder is reachable by a particular machine, however, it is assumed that all folders underneath it are also reachable by that machine (although a given folder's contents may be inaccessible due to security restrictions).
* A '''Location''' is a record of the highest-level folders which are accessible to any particular class of machine. It consists of:
* A '''Location''' is a record of the highest-level folders which are accessible to any particular class of machine. It consists of:
** '''ID''' unique ID, to be mapped (by a Mapping) for each machine-class
** '''ID''' unique identifier, referred to by Mappings
** '''ID_Folder''': ID of highest-level Folder which is being pinned down
** '''ID_Folder''': ID of highest-level Folder which is being pinned down
*: Locations will be entirely human-maintained in early versions of FileFerret; later on it may be possible to have FileFerret detect known folders which have been moved to other filespecs
*: Locations will be entirely human-maintained in early versions of FileFerret; later on it may be possible to have FileFerret detect known folders which have been moved to other filespecs
Line 19: Line 19:
*:* "Windows" machines can only access explicitly shared folders (via Samba or other network file-sharing protocols)
*:* "Windows" machines can only access explicitly shared folders (via Samba or other network file-sharing protocols)
* A '''Mapping''' represents to a particular machine's view of a Location, i.e. how to access it. Mappings generally correspond to storage media reading devices (including fixed disks) and network shares. Each mapping consists of:
* A '''Mapping''' represents to a particular machine's view of a Location, i.e. how to access it. Mappings generally correspond to storage media reading devices (including fixed disks) and network shares. Each mapping consists of:
** '''ID''': unique identifier for easy reference
** '''ID_Location''': which location is being mapped
** '''ID_Location''': which location is being mapped
** '''ID_Machine''': which machine this location is being mapped for
** '''ID_Machine''': which machine this location is being mapped for
** '''FileSpec''': how to access the location on the specified machine; includes "protocol://user@servername:password" where applicable
** '''FileSpec''': how to access the location on the specified machine; includes "protocol://user@servername:password" where applicable
** '''isPrimary''': is Machine primarily responsible for maintaining the record of this Location (i.e. the mapped Folder and all files under it)?
** '''isPrimary''': is Machine primarily responsible for maintaining the record of this Location (i.e. the mapped Folder and all files under it)?
*: '''Note''': Location x Machine must be unique

Revision as of 14:17, 1 January 2007

Woozle: Projects: FileFerret: design

Overview

This page is for FileFerret design details, as I create them.

Data Concepts

  • A File corresponds to the traditional operating system concept of a file, extended somewhat by:
    • the ability to locate files in non-local and offline media
    • the need for different machines to be able to locate the same file from the same information
  • A Filament (portmanteau for "elemental file") corresponds to a particular ordered set of data values which in turn may correspond to zero or more actual files (if more than one file corresponds to the same filament, then those files contain identical data, though they do not necessarily have the same filename, timestamps, security attributes, etc.). Any filament may also have the following attributes in FileFerret's database:
    • a description
    • one or more topics
  • A Folder corresponds to the traditional operating system concept of a folder or directory, i.e. it is a named location which may contain zero or more files, and also has a number of OS-dependent attributes such as creation time, access permissions, etc. Any given folder may or may not be reachable by any particular machine; if a folder is reachable by a particular machine, however, it is assumed that all folders underneath it are also reachable by that machine (although a given folder's contents may be inaccessible due to security restrictions).
  • A Location is a record of the highest-level folders which are accessible to any particular class of machine. It consists of:
    • ID unique identifier, referred to by Mappings
    • ID_Folder: ID of highest-level Folder which is being pinned down
    Locations will be entirely human-maintained in early versions of FileFerret; later on it may be possible to have FileFerret detect known folders which have been moved to other filespecs
    Locations generally correspond to the root folders of storage media (including fixed disks) and folders shared over the network.
    There are currently two classes of machine, from a file-access point of view:
    • "root level" machines can access the entire file structure (including local file structures) if they have the right user/password
    • "Windows" machines can only access explicitly shared folders (via Samba or other network file-sharing protocols)
  • A Mapping represents to a particular machine's view of a Location, i.e. how to access it. Mappings generally correspond to storage media reading devices (including fixed disks) and network shares. Each mapping consists of:
    • ID: unique identifier for easy reference
    • ID_Location: which location is being mapped
    • ID_Machine: which machine this location is being mapped for
    • FileSpec: how to access the location on the specified machine; includes "protocol://user@servername:password" where applicable
    • isPrimary: is Machine primarily responsible for maintaining the record of this Location (i.e. the mapped Folder and all files under it)?
    Note: Location x Machine must be unique