Difference between revisions of "Archivematica 0.9 Micro-services"

From Archivematica
Jump to navigation Jump to search
(Created page with "Main Page > Documentation > Technical Architecture > Micro-services > Archivematica 0.9 Micro-services This page describes the key micro-services that are und...")
 
 
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Main Page]] > [[Documentation]] > [[Technical Architecture]] > [[Micro-services]] > Archivematica 0.9 Micro-services
 
[[Main Page]] > [[Documentation]] > [[Technical Architecture]] > [[Micro-services]] > Archivematica 0.9 Micro-services
  
This page describes the key micro-services that are undertaken during transfer and ingest.
+
<blockquote style="background-color:orange;">
 +
'''Note: The documentation on this page is out of date. Please see the [https://www.archivematica.org/docs official documentation page] for the latest.'''
 +
</blockquote>
  
=Transfer=
+
A micro-service may consist of a number of discrete tasks, or jobs. In the Archivematica 0.9 dashboard, micro-services are always shown, while jobs may be viewed by expanding the micro-service (i.e. by clicking on the grey background behind the micro-service name).
  
{| border="1" cellpadding="10" cellspacing="0" width=90%
 
|-
 
|- style="background-color:#cccccc;"
 
!style="width:30%"|'''Micro-service'''
 
!style="width:70%"|'''Description'''
 
|-
 
|Approve transfer
 
|Once the transfer has all its digital objects and has been formatted for processing, the user selects "Transfer complete" from the Actions drop-down menu.
 
|-
 
|Verify transfer compliance
 
|Verifies that the transfer conforms to the folder structure required for processing in Archivematica. The structure is as follows: ''/logs/'', ''/metadata/'', ''/metadata/submissionDocumentation/'', ''/objects/''.
 
|-
 
|Rename with transfer UUID
 
|Adds a unique universal identifier to the transfer folder name.
 
|-
 
|Include default Transfer processingMCP.xml
 
|Adds ''defaultTransferProcessing.xml'' file from ''/sharedDirectoryStructure/sharedMicroServiceTasksConfigs/'' to the transfer directory. This xml file can configure workflow options such as creating transfer backups, quarantining the transfer and selecting a SIP creation option.
 
|-
 
|Workflow decision - create transfer backup
 
|The user can choose to create a complete backup of the transfer in case transfer or ingest are interrupted or fail. The transfer backup is placed in ''/sharedDirectoryStructure/transferBackups/'' and will automatically be deleted once the AIP has been moved into storage.
 
|-
 
|Assign file UUIDs to objects
 
|Assigns a unique universal identifier to each file in the ''/objects/'' directory.
 
|-
 
|Assign checksums and file sizes to objects
 
|Assigns a sha-256 checksum to each file in the ''/objects/'' directory and calculates file sizes.
 
|-
 
|Verify metadata directory checksums
 
|Checks any checksum files that were placed in the /metadata/ folder of the SIP prior to ingest. Note that the filenames need to be named based on their algorithm: ''checksum.sha1'', ''checksum.sha256'', ''checksum.md5''.
 
|-
 
|Generate METS.xml document
 
|Generates a basic mets file with a fileSec and structMap to record the presence of all objects in the ''/objects/'' directory and their location in any subdirectories. Designed to capture the original order of the transfer in the event the user chooses subsequently to delete, rename or move files or break the transfer into multiple SIPs. The mets file is automatically added to any SIP generated from the transfer.
 
|-
 
|Extract packages
 
|Extracts objects from any zipped files or other packages.
 
|-
 
|Scan for viruses
 
|Uses [http://www.clamav.net/lang/en/ ClamAV], parses the output and creates a PREMIS event. If a virus is found, the SIP is automatically placed in ''/sharedDirectoryStructure/failed/''.
 
|-
 
|Sanitize object's file and directory names
 
|Some file systems do not support unicode or other special characters in filenames. This micro-service removes prohibited characters and replaces them with dashes. Original filenames are preserved in the PREMIS metadata.
 
|-
 
|Sanitize transfer name
 
|Same as above except does it for the transfer folder name.
 
|-
 
|Characterize and extract metadata
 
|Identifies and validates formats and extracts object metadata using the [http://code.google.com/p/fits/ File Information Tool Set (FITS)]. Adds output to the PREMIS metadata.
 
|-
 
|Create SIP(s)
 
|The user chooses among a number of SIP creation options. See the [[UM ingest|user manual]] for details.
 
|-
 
|}
 
 
</br>
 
</br>
  
=Ingest=
+
[[Image:Micro-services.png|600px|center|thumb|Arhivematica dashboard showing a micro-service and its jobs]]
 
 
{| border="1" cellpadding="10" cellspacing="0" width=90%
 
|-
 
|- style="background-color:#cccccc;"
 
!style="width:30%"|'''Micro-service'''
 
!style="width:70%"|'''Description'''
 
|-
 
|Verify SIP compliance
 
|Verifies that the SIP conforms to the folder structure required for processing in Archivematica. The structure is as follows: ''/logs/'', ''/metadata/'', ''/metadata/submissionDocumentation/'', ''/objects/''.
 
|-
 
|Rename SIP directory with SIP UUID
 
|Adds a unique universal identifier to the SIP folder name.
 
|-
 
|Include default SIP processingMCP.xml
 
|Adds ''defaultSIPProcessing.xml'' file from ''/sharedDirectoryStructure/sharedMicroServiceTasksConfigs/'' to the transfer directory. This xml file canbe used to configure SIP workflow options.
 
|-
 
|Remove thumbs.db files
 
|Removes any [http://en.wikipedia.org/wiki/Windows_thumbnail_cache Thumbs.db] files. May be expanded to others in future releases.
 
|-
 
|Sanitize object's file and directory names
 
|If user created new folder and/or file names during SIP creation, any prhobited characters are removed from these names and replaced with dashes.
 
|-
 
|Sanitize SIP name
 
|Same as above except that it's done for the SIP folder name.
 
|-
 
|Check for Service directory
 
|For digitization output workflows, checks to see if the SIP contains any service copies of master files. See the [[UM digitization output|user manual]] for details.
 
|-
 
|Check for Access directory
 
|For digitization output workflows, checks to see if the SIP contains any access copies of master files. See the [[UM digitization output|user manual]] for details.
 
|-
 
|Normalize
 
|The user can choose to create preservation and/or access copies of the ingested files based on rules in the transcoder database. These rules can be seen under the '''Preservation planning''' tab in the Archivematica dashboard.
 
|-
 
|Normalize access
 
|Creates access copies to be added to the DIP.
 
|-
 
|Normalize preservation
 
|Creates preservation copies to be included in the AIP along with the original files.
 
|-
 
|Approve normalization
 
|If desired, the user can verify the quality of normalized files in ''/sharedDirectoryStructure/watchedDirectories/approveNormalization/''.
 
|-
 
|Check for submission documentation
 
|Checks for files in ''/metadata/submissionDocumentation/''.
 
|-
 
|Move submission documentation to objects directory
 
|Moves the ''/submissionDocumentation/'' directory from ''/metadata/'' to ''/objects/'' for ingest processing.
 
|-
 
|Assign file UUIDs to submission documentation
 
|Assigns a unique universal identifier to each file in the ''/objects/submissionDocumentation/'' directory.
 
|-
 
|Assign checksums and filesizes to submission documentation
 
|Assigns a sha-256 checksum to each file in the ''/objects/submissionDocumentation'' directory and calculates file sizes.
 
|-
 
|Extract packages in submission documentation
 
|Extracts objects from any zipped files or other packages in the ''/objects/'' directory.
 
|-
 
|Characterize and extract metadata on submission documentation
 
|Identifies and validates formats and extracts object metadata for files in the ''/objects/submissionDocumentation'' directory using the [http://code.google.com/p/fits/ File Information Tool Set (FITS)]. Adds output to the PREMIS metadata.
 
|-
 
|Normalize submission documentation to preservation format
 
|Creates preservation copies of all files in the ''/objects/submissionDocumentation'' directory to be included in the AIP along with the original files.
 
|-
 
|Verify checksums generated on ingest
 
|Verifies checksums that were generated during transfer processing to ensure that the files have not been corrupted during transfer or ingest.
 
|-
 
|Remove empty directories
 
|Removes any empty directories from the SIP.
 
|-
 
|Generate METS.xml document
 
|Generates a METS file with PREMIS metadata. For more information on the METS file, see [[METS]].
 
|-
 
|Copy transfers metadata and logs
 
|Copies all submission documentation included in the original transfer to the SIP. Copies all logs generated during transfer processing to the SIP.
 
|-
 
|Copy METS to DIP directory
 
|Creates a copy of the METS file in the DIP directory.
 
|-
 
|Generate DIP
 
|Moves the DIP to the DIP upload directory.
 
|-
 
|Upload DIP
 
|The user uploads the DIP to a selected description in the access system. See the [[UM access|user manual]] for details.
 
|-
 
|Prepare AIP
 
|Packages the SIP into an AIP using [http://sourceforge.net/projects/loc-xferutils/ BagIt]
 
|-
 
|Compress AIP
 
|Losslessly compresses the AIP for storage using [http://p7zip.sourceforge.net/ p7zip].
 
|-
 
|Store AIP
 
|Moves the AIP to a specified directory. In the demo version of Archivematica the directory is ''/sharedDirectoryStructure/www/AIPsStore/''. In other environments it can be a remote network mounted directory. The directory structure of the AIP store contains UUID quad directories and an ''index.html'' file listing the AIPs in storage. The ''index.html'' file is displayed in the dashboard in the '''Archival storage''' tab. </br>
 
Once the AIP has been stored, a copy of the AIP is extracted from storage to a local temp directory, and is validated with the various BagIt checks: verifyvalid, checkpayloadoxum, verifycomplete, verifypayloadmanifests, verifytagmanifests.
 
|-
 
|}
 
 
 
 
 
=0.9=
 
  
 +
</br>
  
 +
The table below shows micro-services and jobs in Archivematica 0.9. Note that this is is only a list of micro-services; detailed user instructions are available in the [[User manual 0.9|user manual]].
 +
</br>
 +
=Transfer=
 
{| border="1" cellpadding="10" cellspacing="0" width=90%
 
{| border="1" cellpadding="10" cellspacing="0" width=90%
 
|-
 
|-
Line 168: Line 23:
 
|-
 
|-
 
|-  
 
|-  
'''Normalize'''<br/>
+
|  <div class="toccolours mw-collapsible mw-collapsed">'''Approve Transfer'''<div class="mw-collapsible-content">
thumbnail normalization failed - copying
 
|                                           
 
|-  
 
|  '''Normalize'''<br/>
 
Access normalization failed - copying
 
|                                             
 
|-
 
'''Normalize'''<br/>
 
Normalize thumbnail
 
|                                                               
 
|-  
 
|  '''Normalize'''<br/>
 
Normalize access - exclude
 
|                                                         
 
|-  
 
|  '''Rename with transfer UUID'''<br/>
 
 
Set file permissions
 
Set file permissions
|                                                              
+
</div>
 +
</div>
 +
| This is the approval step that moves the transfer into the Archivematica processing pipeline.
 
|-  
 
|-  
|  '''Rename with transfer UUID'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Verify transfer compliance'''<div class="mw-collapsible-content">
Move to processing directory
+
<br/>Set file permissions
|                                                      
+
<br/>Move to processing directory
 +
<br/>Set transfer type
 +
<br/>Remove hidden files and directories
 +
<br/>Attempt restructure for compliance
 +
<br/>Verify transfer compliance
 +
</div>
 +
</div>
 +
| Moves the transfer to a processing directory based on selected transfer type (standard, zipped bag, unzipped bag, DSPace export or maildir). Verifies that the transfer conforms to the folder structure required for processing in Archivematica and restructures if required. The structure is as follows: ''/logs/'', ''/metadata/'', ''/metadata/submissionDocumentation/'', ''/objects/''.
 
|-  
 
|-  
|  '''Rename with transfer UUID'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Rename with transfer UUID'''<div class="mw-collapsible-content">
Set transfer type: Maildir
+
<br/>Rename with transfer UUID
|                                                        
+
</div>
 +
</div>
 +
| Directly associates the transfer with its metadata by appending the transfer UUID to the transfer directory name.
 
|-  
 
|-  
|  '''Rename with transfer UUID'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Include default Transfer processingMCP.xml'''<div class="mw-collapsible-content">
Attempt restructure for compliance
+
<br/>Include default Transfer processingMCP.xml
|                                                
+
</div>
 +
</div>
 +
| Adds a file named processingMCP.xml to the root of the transfer. This is a configurable xml file to pre-configure processing decisions. It can configure workflow options such as creating transfer backups, quarantining the transfer and selecting a SIP creation option.
 
|-  
 
|-  
|  '''Extract packages'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Assign file UUIDs and checksums'''<div class="mw-collapsible-content">
Extract attachments
+
<br/>Assign file UUIDs to objects
|                                                                
+
<br/>Assign checksums and file sizes to objects
 +
</div>
 +
</div>
 +
| Assigns a unique universal identifier and sha-256 checksum to each file in the ''/objects/'' directory.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Verify transfer checksums'''<div class="mw-collapsible-content">
Approve bagit transfer
+
<br/>Verify metadata directory checksums
|                                                            
+
</div>
 +
</div>
 +
| Checks any checksum files that were placed in the ''/metadata/'' folder of the transfer prior to moving the transfer into Archivematica.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Generate METS.xml document'''<div class="mw-collapsible-content">
Extract zipped bag transfer
+
<br/>Generate METS.xml document
|                                                        
+
</div>
 +
</div>
 +
| Generates a basic METS file with a fileSec and structMap to record the presence of all objects in the ''/objects/'' directory and their locations in any subdirectories. Designed to capture the original order of the transfer in the event the user chooses subsequently to delete, rename or move files or break the transfer into multiple SIPs. A copy of the METS file is automatically added to any SIP generated from the transfer.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Extract packages'''<div class="mw-collapsible-content">
Set file permissions
+
<br/>Extract packages
|                                                              
+
<br/>Extract attachments
 +
</div>
 +
</div>
 +
| Extracts objects from any zipped files or other packages. Extracts attachments from maildir transfers.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Scan for viruses'''<div class="mw-collapsible-content">
Move to processing directory
+
<br/>Scan for viruses
|                                                       
+
</div>
 +
</div>
 +
| Uses ClamAV to scan for viruses and other malware. If a virus is found, the transfer is automatically placed in ''/sharedDirectoryStructure/failed/'' and all processing on the transfer is stopped.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Clean up names'''<div class="mw-collapsible-content">
Rename with transfer UUID
+
<br/>Sanitize object's file and directory names
|                                                          
+
<br/>Sanitize Transfer name
 +
</div>
 +
</div>
 +
| Some file systems do not support unicode or other special characters in filenames. This micro-service removes prohibited characters and replaces them with dashes. Original filenames are preserved in the PREMIS metadata.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Characterize and extract metadata'''<div class="mw-collapsible-content">
Assign file UUIDs to objects
+
<br/>Characterize and extract metadata
|                                                      
+
<br/>Identify Files ByExtension
 +
<br/>Load labels from metadata/file_labels.csv
 +
</div>
 +
</div>
 +
| Identifies and validates formats and extracts object metadata using the File Information Tool Set (FITS). Also identifies file extensions, which are used for selecting normalization paths.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Complete transfer'''<div class="mw-collapsible-content">
Assign checksums and file sizes to objects
+
<br/>Index transfer contents
|                                        
+
<br/>Set file permissions
 +
<br/>Move to completedTransfers directory
 +
</div>
 +
</div>
 +
| Indexes transfer contents, then marks the transfer as complete.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Create SIP from Transfer'''<div class="mw-collapsible-content">
Verify bag, and restructure for compliance
+
<br/>Check transfer directory for objects
|                                        
+
<br/>Create SIP(s)
 +
<br/>Create SIP from transfer objects
 +
</div>
 +
</div>
 +
| This is the approval step that moves the transfer to the SIP packaging micro-services (Ingest).
 +
|-
 +
|}
 +
</br>
 +
 
 +
=Ingest=
 +
{| border="1" cellpadding="10" cellspacing="0" width=90%
 +
|-
 +
|- style="background-color:#cccccc;"
 +
!style="width:30%"|'''Micro-service'''
 +
!style="width:70%"|'''Description'''
 +
|-
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Verify SIP compliance'''<div class="mw-collapsible-content">
Include default Transfer processingMCP.xml
+
<br/>Set file permissions
|                                        
+
<br/>Move to processing directory
 +
<br/>Verify SIP compliance
 +
</div>
 +
</div>
 +
| Verifies that the SIP conforms to the folder structure required for processing in Archivematica. The structure is as follows: ''/logs/'', ''/metadata/'', ''/metadata/submissionDocumentation/'', ''/objects/''.
 
|-  
 
|-  
|  '''Approve transfer'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Rename SIP directory with SIP UUID'''<div class="mw-collapsible-content">
Approve DSpace transfer
+
<br/>Rename SIP directory with SIP UUID
|                                                            
+
</div>
 +
</div>
 +
| Directly associates the SIP with its metadata by appending the SIP UUID to the SIP directory name.
 
|-  
 
|-  
|  '''Verify transfer compliance'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Include default SIP processingMCP.xml'''<div class="mw-collapsible-content">
Set transfer type: DSpace
+
<br/>Include default SIP processingMCP.xml
|                                                          
+
</div>
 +
</div>
 +
| Copies the processing config file added to the transfer in '''Include default Transfer processingMCP.xml''', above, to the SIP.
 
|-  
 
|-  
|  '''Include default Transfer processingMCP.xml'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Remove cache files'''<div class="mw-collapsible-content">
Failed compliance. See output in dashboard. Transfer moved back to activeTransfers.
+
<br/>Remove cache files
|
+
</div>
 +
</div>
 +
| Removes any Thumbs.db files.
 
|-  
 
|-  
|  '''Include default Transfer processingMCP.xml'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Normalize'''<div class="mw-collapsible-content">
Rename with transfer UUID
+
<br/>Check for Service directory
|                                                          
+
<br/>Check for Access directory
 +
<br/>Find options to normalize as
 +
<br/>Create DIP directory
 +
<br/>Normalize
 +
<br/>Normalize access
 +
<br/>Normalize preservation
 +
<br/>Remove files without linking information (failed normalization artifacts etc.)
 +
<br/>Create thumbnails directory
 +
<br/>Normalize thumbnails
 +
<br/>Verify checksums generated on ingest
 +
<br/>Approve normalization
 +
</div>
 +
</div>
 +
| Determines which normalization options are available for the SIP and presents them to the user as choices. Normalizes (i.e. generates preservation and/or access copies) based on selection. Thumbnail files are also generated during this micro-service.
 
|-  
 
|-  
|  '''Include default Transfer processingMCP.xml'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Process submission documentation'''<div class="mw-collapsible-content">
Create transfer backup (sharedDirectory/transferBackups)
+
<br/>Check for submission documentation
|                          
+
<br/>Copy transfer submission documentation
 +
<br/>Move to processing directory
 +
<br/>Set file permissions
 +
<br/>Assign file UUIDs to submission documentation
 +
<br/>Assign checksums and file sizes to submissionDocumentation
 +
<br/>Extract packages in submission documentation
 +
<br/>Sanitize file and directory names in submission documentation
 +
<br/>Scan for viruses in submission documentation
 +
<br/>Characterize and extract metadata on submission documentation
 +
<br/>Identify Files ByExtension
 +
<br/>Normalize submission documentation to preservation format
 +
</div>
 +
</div>
 +
| Processes any submission documentation included in the SIP and adds it to the ''/objects/'' directory.
 
|-  
 
|-  
|  '''Verify transfer checksum'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Prepare DIP'''<div class="mw-collapsible-content">
Verify metadata directory checksums
+
<br/>Copy thumbnails to DIP directory
|                                                
+
<br/>Copy METS to DIP directory
 +
<br/>Set file permissions
 +
<br/>Generate DIP
 +
</div>
 +
</div>
 +
| Creates a DIP containing access copies of the objects, thumbnails and a copy of the METS file.
 
|-  
 
|-  
|  '''Generate METS.xml'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP'''<div class="mw-collapsible-content">
Generate METS.xml document
+
<br/>Upload DIP
|                                                        
+
</div>
 +
</div>
 +
| Allows the user to choose to upload the DIP to either ICA-AtoM or CONTENTdm.
 
|-  
 
|-  
|  '''Quarantine'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP  to ICA-AtoM'''<div class="mw-collapsible-content">
Designate to process as a DSpace transfer
+
<br/>Upload DIP 
|                                          
+
<br/>Move to the uploadedDIPs directory
 +
</div>
 +
</div>
 +
| The user uploads the DIP to a selected description in ICA-AtoM.
 
|-  
 
|-  
|  '''Quarantine'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP  to CONTENTdm'''<div class="mw-collapsible-content">
Designate to process as a DSpace transfer when unquarantined
+
<br/>Restructure DIP for CONTENTdm upload
|                      
+
<br/>Select upload type (Project Client or direct upload)
 +
<br/>Select target CONTENTdm server
 +
<br/>Get list of collections on server
 +
<br/>Select destination collection
 +
<br/>Upload DIP to contentDM
 +
<br/>Move to the uploadedDIPs directory
 +
</div>
 +
</div>
 +
| The user uploads the DIP to a selected description in CONTENTdm.
 
|-  
 
|-  
|  '''Quarantine'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Prepare AIP'''<div class="mw-collapsible-content">
Move to quarantined
+
<br/>Copy transfers metadata and logs
|                                                                
+
<br/>Remove files without linking information (failed normalization artifacts etc.)
 +
<br/>Verify checksums generated on ingest
 +
<br/>Generate METS.xml document
 +
<br/>Index AIP contents
 +
<br/>Prepare AIP 
 +
<br/>Select compression algorithm
 +
<br/>Select compression level
 +
<br/>Compress AIP
 +
<br/>Set bag file permissions
 +
<br/>Removed bagged files
 +
</div>
 +
</div>
 +
| Creates an AIP in Bagit format. Indexes the AIP, then losslessly compresses it.
 
|-  
 
|-  
|  '''Verify transfer checksums'''<br/>
+
<div class="toccolours mw-collapsible mw-collapsed">'''Store AIP'''<div class="mw-collapsible-content">
Verify checksums in fileSec of DSpace METS files
+
<br/>Move to the store AIP approval directory
|                                  
+
<br/>Store AIP   
 +
<br/>Store AIP location
 +
<br/>Store the AIP
 +
</div>
 +
</div>
 +
| Moves the AIP to ''/sharedDirectoryStructure/www/AIPsStore/'' or another specified directory. Once the AIP has been stored, a copy of it is extracted from storage to a local temp directory, where it is subjected to standard BagIt checks: verifyvalid, checkpayloadoxum, verifycomplete, verifypayloadmanifests, verifytagmanifests.
 
|-  
 
|-  
|  '''Clean up names'''<br/>
 
Identify DSpace text files
 
|                                                         
 
|-
 
|  '''Clean up names'''<br/>
 
Identify DSpace license files
 
|                                                     
 
|-
 
|  '''Clean up names'''<br/>
 
Identify DSpace mets files
 
|                                                         
 
|-
 
|  '''Characterize and extract metadata'''<br/>
 
Characterize and extract metadata on objects
 
|                                       
 
|-
 
|  '''Approve transfer'''<br/>
 
Approve transfer
 
|                                                                   
 
|-
 
|  '''Verify transfer compliance'''<br/>
 
Set file permissions
 
|                                                               
 
|-
 
|  '''Verify transfer compliance'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Verify transfer compliance'''<br/>
 
Set transfer type: Standard
 
|                                                       
 
|-
 
|  '''Verify transfer compliance'''<br/>
 
Remove hidden files and directories
 
|                                               
 
|-
 
|  '''Verify transfer compliance'''<br/>
 
Attempt restructure for compliance
 
|                                                 
 
|-
 
|  '''Verify transfer compliance'''<br/>
 
Verify transfer compliance
 
|                                                         
 
|-
 
|  '''Failed transfer compliance'''<br/>
 
Designate to process as a standard transfer
 
|                                       
 
|-
 
|  '''Failed transfer compliance'''<br/>
 
Failed compliance.
 
|                                                                 
 
|-
 
|  '''Failed transfer compliance'''<br/>
 
Find branch to continue processing
 
|                                                 
 
|-
 
|  '''Failed transfer compliance'''<br/>
 
Attempt restructure for compliance?
 
|                                               
 
|-
 
|  '''Failed transfer compliance'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Failed transfer compliance'''<br/>
 
Attempt restructure for compliance
 
|                                                 
 
|-
 
|  '''Failed transfer compliance'''<br/>
 
Move transfer back to activeTransfers directory.
 
|                                   
 
|-
 
|  '''Rename with transfer UUID'''<br/>
 
Rename with transfer UUID
 
|                                                         
 
|-
 
|  '''Include default Transfer processingMCP.xml'''<br/>
 
Include default Transfer processingMCP.xml
 
|                                         
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Designate to process as a standard transfer
 
|                                       
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Move to workFlowDecisions-createTransferBackup directory
 
|                           
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Find type to process as
 
|                                                           
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Workflow decision - create transfer backup
 
|                                         
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Create transfer backup (sharedDirectory/transferBackups)
 
|                           
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Set file permissions
 
|                                                               
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Assign file UUIDs to objects
 
|                                                       
 
|-
 
|  '''Assign file UUIDs and checksums'''<br/>
 
Assign checksums and file sizes to objects
 
|                                         
 
|-
 
|  '''Verify transfer checksums'''<br/>
 
Verify metadata directory checksums
 
|                                               
 
|-
 
|  '''Generate METS.xml document'''<br/>
 
Generate METS.xml document
 
|                                                         
 
|-
 
|  '''Quarantine'''<br/>
 
Designate to process as a standard transfer
 
|                                       
 
|-
 
|  '''Quarantine'''<br/>
 
Move to workFlowDecisions-quarantineSIP directory
 
|                                 
 
|-
 
|  '''Quarantine'''<br/>
 
Find type to process as
 
|                                                           
 
|-
 
|  '''Quarantine'''<br/>
 
Workflow decision - send transfer to quarantine
 
|                                   
 
|-
 
|  '''Quarantine'''<br/>
 
Set quarantine permissions on transfer
 
|                                             
 
|-
 
|  '''Quarantine'''<br/>
 
Create quarantine PREMIS events
 
|                                                   
 
|-
 
|  '''Quarantine'''<br/>
 
Designate to process as a standard transfer when unquarantined
 
|                     
 
|-
 
|  '''Quarantine'''<br/>
 
Move to quarantine
 
|                                                                 
 
|-
 
|  '''Quarantine'''<br/>
 
Find type to remove from quarantine as
 
|                                             
 
|-
 
|  '''Quarantine'''<br/>
 
Remove from quarantine
 
|                                                             
 
|-
 
|  '''Quarantine'''<br/>
 
Set unquarantined file permissions on Transfer
 
|                                     
 
|-
 
|  '''Quarantine'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Quarantine'''<br/>
 
Create unquarantine PREMIS events
 
|                                                 
 
|-
 
|  '''Extract packages'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Extract packages'''<br/>
 
Extract packages
 
|                                                                   
 
|-
 
|  '''Scan for viruses'''<br/>
 
Scan for viruses
 
|                                                                   
 
|-
 
|  '''Clean up names'''<br/>
 
Sanitize object's file and directory names
 
|                                         
 
|-
 
|  '''Clean up names'''<br/>
 
Sanitize Transfer name
 
|                                                             
 
|-
 
|  '''Characterize and extract metadata'''<br/>
 
Characterize and extract metadata
 
|                                                 
 
|-
 
|  '''Characterize and extract metadata'''<br/>
 
Identify Files ByExtension
 
|                                                         
 
|-
 
|  '''Characterize and extract metadata'''<br/>
 
Load labels from metadata/file_labels.csv
 
|                                         
 
|-
 
|  '''Complete transfer'''<br/>
 
Set file permissions
 
|                                                               
 
|-
 
|  '''Complete transfer'''<br/>
 
Move to completedTransfers directory
 
|                                               
 
|-
 
|  '''Complete transfer'''<br/>
 
Index transfer contents
 
|                                                           
 
|-
 
|  '''Create SIP from Transfer'''<br/>
 
Check transfer directory for objects
 
|                                               
 
|-
 
|  '''Create SIP from Transfer'''<br/>
 
Create SIP(s)
 
|                                                                     
 
|-
 
|  '''Create SIP from Transfer'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Create SIP from Transfer'''<br/>
 
Create SIP from transfer objects
 
|                                                   
 
|-
 
|  '''Create SIP from Transfer'''<br/>
 
Move to completedTransfers directory
 
|                                               
 
|-
 
|  '''Reject transfer'''<br/>
 
Move to the rejected directory
 
|                                                     
 
|-
 
|  '''Failed transfer'''<br/>
 
Move to the failed directory
 
|                                                       
 
|-
 
|  '''Approve SIP creation'''<br/>
 
Approve SIP Creation
 
|                                                               
 
|-
 
|  '''Verify SIP compliance'''<br/>
 
Set file permissions
 
|                                                               
 
|-
 
|  '''Verify SIP compliance'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Verify SIP compliance'''<br/>
 
Verify SIP compliance
 
|                                                             
 
|-
 
|  '''Verify transfer compliance'''<br/>
 
Verify mets_structmap.xml compliance
 
|                                               
 
|-
 
|  '''Failed compliance'''<br/>
 
Failed compliance. See output in dashboard. SIP moved back to SIPsUnderConstruction
 
|
 
|-
 
|  '''Rename SIP directory with SIP UUID'''<br/>
 
Rename SIP directory with SIP UUID
 
|                                                 
 
|-
 
|  '''Include default SIP processingMCP.xml'''<br/>
 
Include default SIP processingMCP.xml
 
|                                             
 
|-
 
|  '''Remove cache files'''<br/>
 
Remove cache files
 
|                                                                 
 
|-
 
|  '''Clean up names'''<br/>
 
Set file permissions
 
|                                                               
 
|-
 
|  '''Clean up names'''<br/>
 
Sanitize SIP name
 
|                                                                 
 
|-
 
|  '''Normalize'''<br/>
 
Check for Service directory
 
|                                                       
 
|-
 
|  '''Normalize'''<br/>
 
Check for Access directory
 
|                                                         
 
|-
 
|  '''Normalize'''<br/>
 
Grant normalization options for pre-existing DIP
 
|                                   
 
|-
 
|  '''Normalize'''<br/>
 
Grant normalization options for no pre-existing DIP
 
|                               
 
|-
 
|  '''Normalize'''<br/>
 
Move to workFlowDecisions-createDip directory
 
|                                     
 
|-
 
|  '''Normalize'''<br/>
 
Find options to normalize as
 
|                                                       
 
|-
 
|  '''Normalize'''<br/>
 
Normalize   
 
|                                                                     
 
|-
 
|  '''Process submission documentation'''<br/>
 
Remove files without linking information (failed normalization artifacts etc.)
 
|     
 
|-
 
|  '''Process submission documentation'''<br/>
 
Normalize submission documentation to thumbnail format
 
|                             
 
|-
 
|  '''Normalize'''<br/>
 
Verify checksums generated on ingest
 
|                                               
 
|-
 
|  '''Normalize'''<br/>
 
Copy transfers metadata and logs
 
|                                                   
 
|-
 
|  '''Normalize'''<br/>
 
Generate METS.xml document
 
|                                                         
 
|-
 
|  '''Normalize'''<br/>
 
Normalize service files for access
 
|                                                 
 
|-
 
|  '''Normalize'''<br/>
 
Normalize access
 
|                                                                   
 
|-
 
|  '''Normalize'''<br/>
 
Create DIP directory
 
|                                                               
 
|-
 
|  '''Normalize'''<br/>
 
Normalize for preservation and access
 
|                                             
 
|-
 
|  '''Normalize'''<br/>
 
Normalize preservation
 
|                                                             
 
|-
 
|  '''Normalize'''<br/>
 
Remove files without linking information (failed normalization artifacts etc.)
 
|     
 
|-
 
|  '''Normalize'''<br/>
 
Move to approve normalization directory
 
|                                           
 
|-
 
|  '''Normalize'''<br/>
 
Approve normalization
 
|                                                             
 
|-
 
|  '''Normalize'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Normalize'''<br/>
 
Set file permissions
 
|                                                               
 
|-
 
|  '''Normalize'''<br/>
 
Create thumbnails directory
 
|                                                       
 
|-
 
|  '''Normalize'''<br/>
 
Normalize thumbnails
 
|                                                               
 
|-
 
|  '''Process submission documentation'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Process submission documentation'''<br/>
 
Set file permissions
 
|                                                               
 
|-
 
|  '''Process submission documentation'''<br/>
 
Copy transfer submission documentation
 
|                                             
 
|-
 
|  '''Process submission documentation'''<br/>
 
Check for submission documentation
 
|                                                 
 
|-
 
|  '''Process submission documentation'''<br/>
 
Move submission documentation into objects directory
 
|                               
 
|-
 
|  '''Process submission documentation'''<br/>
 
Assign file UUIDs to submission documentation
 
|                                     
 
|-
 
|  '''Process submission documentation'''<br/>
 
Assign checksums and file sizes to submissionDocumentation
 
|                         
 
|-
 
|  '''Process submission documentation'''<br/>
 
Extract packages in submission documentation
 
|                                       
 
|-
 
|  '''Process submission documentation'''<br/>
 
Sanitize file and directory names in submission documentation
 
|                     
 
|-
 
|  '''Process submission documentation'''<br/>
 
Scan for viruses in submission documentation
 
|                                       
 
|-
 
|  '''Process submission documentation'''<br/>
 
Characterize and extract metadata on submission documentation
 
|                     
 
|-
 
|  '''Process submission documentation'''<br/>
 
Identify Files ByExtension
 
|                                                         
 
|-
 
|  '''Process submission documentation'''<br/>
 
Normalize submission documentation to preservation format
 
|                         
 
|-
 
|  '''Prepare AIP'''<br/>
 
Remove files without linking information (failed normalization artifacts etc.)
 
|     
 
|-
 
|  '''Prepare AIP'''<br/>
 
Verify checksums generated on ingest
 
|                                               
 
|-
 
|  '''Prepare AIP'''<br/>
 
Copy transfers metadata and logs
 
|                                                   
 
|-
 
|  '''Prepare AIP'''<br/>
 
Generate METS.xml document
 
|                                                         
 
|-
 
|  '''Prepare DIP'''<br/>
 
Copy thumbnails to DIP directory
 
|                                                   
 
|-
 
|  '''Prepare DIP'''<br/>
 
Copy METS to DIP directory
 
|                                                         
 
|-
 
|  '''Prepare DIP'''<br/>
 
Set file permissions
 
|                                                               
 
|-
 
|  '''Prepare DIP'''<br/>
 
Generate DIP
 
|                                                                     
 
|-
 
|  '''Prepare AIP'''<br/>
 
Index AIP contents
 
|                                                                 
 
|-
 
|  '''Prepare AIP'''<br/>
 
Prepare AIP 
 
|                                                                     
 
|-
 
|  '''Prepare AIP'''<br/>
 
Select compression algorithm
 
|                                                       
 
|-
 
|  '''Prepare AIP'''<br/>
 
Select compression level
 
|                                                           
 
|-
 
|  '''Prepare AIP'''<br/>
 
Compress AIP
 
|                                                                     
 
|-
 
|  '''Prepare AIP'''<br/>
 
Set bag file permissions
 
|                                                           
 
|-
 
|  '''Prepare AIP'''<br/>
 
Removed bagged files
 
|                                                               
 
|-
 
|  '''Store AIP'''<br/>
 
Move to the store AIP approval directory
 
|                                           
 
|-
 
|  '''Store AIP'''<br/>
 
Store AIP   
 
|                                                                     
 
|-
 
|  '''Store AIP'''<br/>
 
Store AIP location
 
|                                                                 
 
|-
 
|  '''Store AIP'''<br/>
 
Move to processing directory
 
|                                                       
 
|-
 
|  '''Store AIP'''<br/>
 
Store the AIP
 
|                                                                     
 
|-
 
|  '''Store AIP'''<br/>
 
Remove the processing directory
 
|                                                   
 
|-
 
|  '''Upload DIP'''<br/>
 
Select target CONTENTdm server
 
|                                                     
 
|-
 
|  '''Upload DIP'''<br/>
 
Get list of collections on server
 
|                                                 
 
|-
 
|  '''Upload DIP'''<br/>
 
Select destination collection
 
|                                                     
 
|-
 
|  '''Upload DIP'''<br/>
 
Select upload type (Project Client or direct upload)
 
|                               
 
|-
 
|  '''Upload DIP'''<br/>
 
Restructure DIP for CONTENTdm upload
 
|                                               
 
|-
 
|  '''Upload DIP'''<br/>
 
Upload DIP to contentDM
 
|                                                           
 
|-
 
|  '''Upload DIP'''<br/>
 
Upload DIP 
 
|                                                                     
 
|-
 
|  '''Upload DIP'''<br/>
 
Move to the uploadedDIPs directory
 
|                                                 
 
|-
 
|  '''Reject DIP'''<br/>
 
Move to the rejected directory
 
|                                                     
 
|-
 
|  '''Reject SIP'''<br/>
 
Move to the rejected directory
 
|                                                     
 
|-
 
|  '''Failed SIP'''<br/>
 
Move to the failed directory
 
|                                                       
 
|-
 
|  '''Normalize'''<br/>
 
Find preservation links to run.
 
|                                                   
 
|-
 
|  '''Normalize'''<br/>
 
Find access links to run.
 
|                                                         
 
|-
 
|  '''Normalize'''<br/>
 
Find thumbnail links to run.
 
|                                                       
 
|-
 
|  '''Process submission documentation'''<br/>
 
Find thumbnail links to run.
 
|                                                       
 
|-
 
|  '''Process submission documentation'''<br/>
 
Find preservation links to run.                                                    |
 
|
 
|-
 
 
|}
 
|}

Latest revision as of 15:14, 11 December 2019

Main Page > Documentation > Technical Architecture > Micro-services > Archivematica 0.9 Micro-services

Note: The documentation on this page is out of date. Please see the official documentation page for the latest.

A micro-service may consist of a number of discrete tasks, or jobs. In the Archivematica 0.9 dashboard, micro-services are always shown, while jobs may be viewed by expanding the micro-service (i.e. by clicking on the grey background behind the micro-service name).


Arhivematica dashboard showing a micro-service and its jobs


The table below shows micro-services and jobs in Archivematica 0.9. Note that this is is only a list of micro-services; detailed user instructions are available in the user manual.

Transfer[edit]

Micro-service Description
Approve Transfer

Set file permissions

This is the approval step that moves the transfer into the Archivematica processing pipeline.
Verify transfer compliance


Set file permissions
Move to processing directory
Set transfer type
Remove hidden files and directories
Attempt restructure for compliance
Verify transfer compliance

Moves the transfer to a processing directory based on selected transfer type (standard, zipped bag, unzipped bag, DSPace export or maildir). Verifies that the transfer conforms to the folder structure required for processing in Archivematica and restructures if required. The structure is as follows: /logs/, /metadata/, /metadata/submissionDocumentation/, /objects/.
Rename with transfer UUID


Rename with transfer UUID

Directly associates the transfer with its metadata by appending the transfer UUID to the transfer directory name.
Include default Transfer processingMCP.xml


Include default Transfer processingMCP.xml

Adds a file named processingMCP.xml to the root of the transfer. This is a configurable xml file to pre-configure processing decisions. It can configure workflow options such as creating transfer backups, quarantining the transfer and selecting a SIP creation option.
Assign file UUIDs and checksums


Assign file UUIDs to objects
Assign checksums and file sizes to objects

Assigns a unique universal identifier and sha-256 checksum to each file in the /objects/ directory.
Verify transfer checksums


Verify metadata directory checksums

Checks any checksum files that were placed in the /metadata/ folder of the transfer prior to moving the transfer into Archivematica.
Generate METS.xml document


Generate METS.xml document

Generates a basic METS file with a fileSec and structMap to record the presence of all objects in the /objects/ directory and their locations in any subdirectories. Designed to capture the original order of the transfer in the event the user chooses subsequently to delete, rename or move files or break the transfer into multiple SIPs. A copy of the METS file is automatically added to any SIP generated from the transfer.
Extract packages


Extract packages
Extract attachments

Extracts objects from any zipped files or other packages. Extracts attachments from maildir transfers.
Scan for viruses


Scan for viruses

Uses ClamAV to scan for viruses and other malware. If a virus is found, the transfer is automatically placed in /sharedDirectoryStructure/failed/ and all processing on the transfer is stopped.
Clean up names


Sanitize object's file and directory names
Sanitize Transfer name

Some file systems do not support unicode or other special characters in filenames. This micro-service removes prohibited characters and replaces them with dashes. Original filenames are preserved in the PREMIS metadata.
Characterize and extract metadata


Characterize and extract metadata
Identify Files ByExtension
Load labels from metadata/file_labels.csv

Identifies and validates formats and extracts object metadata using the File Information Tool Set (FITS). Also identifies file extensions, which are used for selecting normalization paths.
Complete transfer


Index transfer contents
Set file permissions
Move to completedTransfers directory

Indexes transfer contents, then marks the transfer as complete.
Create SIP from Transfer


Check transfer directory for objects
Create SIP(s)
Create SIP from transfer objects

This is the approval step that moves the transfer to the SIP packaging micro-services (Ingest).


Ingest[edit]

Micro-service Description
Verify SIP compliance


Set file permissions
Move to processing directory
Verify SIP compliance

Verifies that the SIP conforms to the folder structure required for processing in Archivematica. The structure is as follows: /logs/, /metadata/, /metadata/submissionDocumentation/, /objects/.
Rename SIP directory with SIP UUID


Rename SIP directory with SIP UUID

Directly associates the SIP with its metadata by appending the SIP UUID to the SIP directory name.
Include default SIP processingMCP.xml


Include default SIP processingMCP.xml

Copies the processing config file added to the transfer in Include default Transfer processingMCP.xml, above, to the SIP.
Remove cache files


Remove cache files

Removes any Thumbs.db files.
Normalize


Check for Service directory
Check for Access directory
Find options to normalize as
Create DIP directory
Normalize
Normalize access
Normalize preservation
Remove files without linking information (failed normalization artifacts etc.)
Create thumbnails directory
Normalize thumbnails
Verify checksums generated on ingest
Approve normalization

Determines which normalization options are available for the SIP and presents them to the user as choices. Normalizes (i.e. generates preservation and/or access copies) based on selection. Thumbnail files are also generated during this micro-service.
Process submission documentation


Check for submission documentation
Copy transfer submission documentation
Move to processing directory
Set file permissions
Assign file UUIDs to submission documentation
Assign checksums and file sizes to submissionDocumentation
Extract packages in submission documentation
Sanitize file and directory names in submission documentation
Scan for viruses in submission documentation
Characterize and extract metadata on submission documentation
Identify Files ByExtension
Normalize submission documentation to preservation format

Processes any submission documentation included in the SIP and adds it to the /objects/ directory.
Prepare DIP


Copy thumbnails to DIP directory
Copy METS to DIP directory
Set file permissions
Generate DIP

Creates a DIP containing access copies of the objects, thumbnails and a copy of the METS file.
Upload DIP


Upload DIP

Allows the user to choose to upload the DIP to either ICA-AtoM or CONTENTdm.
Upload DIP to ICA-AtoM


Upload DIP
Move to the uploadedDIPs directory

The user uploads the DIP to a selected description in ICA-AtoM.
Upload DIP to CONTENTdm


Restructure DIP for CONTENTdm upload
Select upload type (Project Client or direct upload)
Select target CONTENTdm server
Get list of collections on server
Select destination collection
Upload DIP to contentDM
Move to the uploadedDIPs directory

The user uploads the DIP to a selected description in CONTENTdm.
Prepare AIP


Copy transfers metadata and logs
Remove files without linking information (failed normalization artifacts etc.)
Verify checksums generated on ingest
Generate METS.xml document
Index AIP contents
Prepare AIP
Select compression algorithm
Select compression level
Compress AIP
Set bag file permissions
Removed bagged files

Creates an AIP in Bagit format. Indexes the AIP, then losslessly compresses it.
Store AIP


Move to the store AIP approval directory
Store AIP
Store AIP location
Store the AIP

Moves the AIP to /sharedDirectoryStructure/www/AIPsStore/ or another specified directory. Once the AIP has been stored, a copy of it is extracted from storage to a local temp directory, where it is subjected to standard BagIt checks: verifyvalid, checkpayloadoxum, verifycomplete, verifypayloadmanifests, verifytagmanifests.