Difference between revisions of "Micro-services"
(→Ingest) |
|||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Main Page]] > [[Documentation]] > [[Technical Architecture]] > Micro-services | [[Main Page]] > [[Documentation]] > [[Technical Architecture]] > Micro-services | ||
+ | <div style="padding: 10px 10px; border: 1px solid black; background-color: #F79086;">This page is no longer being maintained and may contain inaccurate information. Please see the [https://www.archivematica.org/docs/latest/ Archivematica documentation] for up-to-date information.</div><p> | ||
[[File:Micro-service.png|320px|thumb|right]] | [[File:Micro-service.png|320px|thumb|right]] | ||
Line 93: | Line 94: | ||
</div> | </div> | ||
</div> | </div> | ||
− | | | + | | Quarantines the transfer for a set duration, to allow virus definitions to update, before virus scan. |
|- | |- | ||
| <div class="toccolours mw-collapsible mw-collapsed">'''Scan for viruses'''<div class="mw-collapsible-content"> | | <div class="toccolours mw-collapsible mw-collapsed">'''Scan for viruses'''<div class="mw-collapsible-content"> | ||
Line 265: | Line 266: | ||
<br/>Move to processing directory | <br/>Move to processing directory | ||
<br/>Set file permissions | <br/>Set file permissions | ||
− | |||
<br/>Load finished with manual normalized link | <br/>Load finished with manual normalized link | ||
</div> | </div> | ||
</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. | | 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. | ||
+ | |- | ||
+ | | <div class="toccolours mw-collapsible mw-collapsed">'''Process manually normalized files'''<div class="mw-collapsible-content"> | ||
+ | <br/>Check for manual normalized files | ||
+ | </div> | ||
+ | </div> | ||
+ | | Processed files manually normalized during processing | ||
+ | |- | ||
+ | | <div class="toccolours mw-collapsible mw-collapsed">'''Add final metadata'''<div class="mw-collapsible-content"> | ||
+ | <br/> Move to metadata reminder | ||
+ | <br/>Reminder: add metadata if desired | ||
+ | <br/>Set file permissions | ||
+ | </div> | ||
+ | </div> | ||
+ | | Provides the operator a reminder to add metadata through the UI if desired. | ||
+ | |- | ||
+ | | <div class="toccolours mw-collapsible mw-collapsed">'''Transcribe SIP contents'''<div class="mw-collapsible-content"> | ||
+ | <br/>Transcribe SIP contents | ||
+ | <br/>Transcribe | ||
+ | </div> | ||
+ | </div> | ||
+ | | Runs Tesseract OCR tool on any JPG or TIFF image files in SIP. | ||
|- | |- | ||
| <div class="toccolours mw-collapsible mw-collapsed">'''Process submission documentation'''<div class="mw-collapsible-content"> | | <div class="toccolours mw-collapsible mw-collapsed">'''Process submission documentation'''<div class="mw-collapsible-content"> | ||
Line 279: | Line 300: | ||
<br/>Sanitize file and directory names in submission documentation | <br/>Sanitize file and directory names in submission documentation | ||
<br/>Scan for viruses in submission documentation | <br/>Scan for viruses in submission documentation | ||
+ | <br/>Select file format identification command | ||
+ | <br/>Identify file format | ||
<br/>Characterize and extract metadata on submission documentation | <br/>Characterize and extract metadata on submission documentation | ||
+ | <br/>Remove files without linking information (failed normalization artifacts etc.) | ||
</div> | </div> | ||
</div> | </div> | ||
Line 285: | Line 309: | ||
|- | |- | ||
| <div class="toccolours mw-collapsible mw-collapsed">'''Process metadata directory'''<div class="mw-collapsible-content"> | | <div class="toccolours mw-collapsible mw-collapsed">'''Process metadata directory'''<div class="mw-collapsible-content"> | ||
− | <br/> | + | <br/>Copy transfers metadata and logs |
− | <br/>Move metadata to objects directory | + | <br/>Process JSON metadata |
− | <br/>Assign file UUIDs to metadata | + | <br/>Move metadata to objects directory |
− | <br/>Assign checksums and file | + | <br/>Assign file UUIDs to metadata |
− | <br/>Sanitize file and directory names in metadata | + | <br/>Assign checksums and file sizes to metadata |
− | <br/> | + | <br/>Sanitize file and directory names in metadata |
− | <br/> | + | <br/>Scan for viruses in metadata |
+ | <br/>Identify file format of metadata files | ||
+ | <br/>Characterize and extract metadata on metadata files | ||
+ | <br/>Remove empty manual normalization directories | ||
</div> | </div> | ||
</div> | </div> | ||
| Processes metadata. | | Processes metadata. | ||
+ | |- | ||
+ | | <div class="toccolours mw-collapsible mw-collapsed">'''Verify checksums'''<div class="mw-collapsible-content"> | ||
+ | <br/>Verify checksums generated on ingest | ||
+ | </div> | ||
+ | </div> | ||
+ | | Verifies checksums generated on ingest | ||
+ | |- | ||
+ | | <div class="toccolours mw-collapsible mw-collapsed">'''Generate AIP METS'''<div class="mw-collapsible-content"> | ||
+ | <br/>Generate METS.xml document | ||
+ | </div> | ||
+ | </div> | ||
+ | | Generates Archivematica AIP METS.xml document | ||
|- | |- | ||
| <div class="toccolours mw-collapsible mw-collapsed">'''Prepare DIP'''<div class="mw-collapsible-content"> | | <div class="toccolours mw-collapsible mw-collapsed">'''Prepare DIP'''<div class="mw-collapsible-content"> | ||
− | <br/>Copy thumbnails to DIP directory | + | <br/>Copy thumbnails to DIP directory |
− | <br/>Copy METS to DIP directory | + | <br/>Copy METS to DIP directory |
+ | <br/>Copy preconfigured choice XML to DIP directory | ||
+ | <br/>Generate DIP | ||
+ | <br/>Copy OCR data to DIP directory | ||
<br/>Set file permissions | <br/>Set file permissions | ||
− | |||
</div> | </div> | ||
</div> | </div> | ||
| Creates a DIP containing access copies of the objects, thumbnails and a copy of the METS file. | | Creates a DIP containing access copies of the objects, thumbnails and a copy of the METS file. | ||
+ | |- | ||
+ | | <div class="toccolours mw-collapsible mw-collapsed">'''Prepare AIP'''<div class="mw-collapsible-content"> | ||
+ | <br/>Check if DIP should be generated | ||
+ | <br/>Prepare AIP | ||
+ | <br/>Move to compressionAIPDecisions directory | ||
+ | <br/>Select compression algorithm | ||
+ | <br/>Select compression level | ||
+ | <br/>Compress AIP | ||
+ | <br/>Copy submission documentation | ||
+ | <br/>Create AIP pointer file | ||
+ | <br/>Set bag file permissions | ||
+ | <br/>Check if AIP is a file or directory | ||
+ | <br/>Removed bagged files | ||
+ | </div> | ||
+ | </div> | ||
+ | | Creates an AIP in Bagit format. Creates the AIP pointer file. Indexes the AIP, then losslessly compresses it. | ||
|- | |- | ||
| <div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP'''<div class="mw-collapsible-content"> | | <div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP'''<div class="mw-collapsible-content"> | ||
Line 309: | Line 366: | ||
</div> | </div> | ||
</div> | </div> | ||
− | | Allows the user to choose to upload the DIP to | + | | Allows the user to choose to upload the DIP AtoM, CONTENTdm, Archivist's Toolkit. Also allows user to store DIP or reject DIP. |
|- | |- | ||
− | | <div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP to | + | | <div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP to AtoM'''<div class="mw-collapsible-content"> |
<br/>Upload DIP | <br/>Upload DIP | ||
<br/>Move to the uploadedDIPs directory | <br/>Move to the uploadedDIPs directory | ||
</div> | </div> | ||
</div> | </div> | ||
− | | The user uploads the DIP to a selected description in | + | | The user uploads the DIP to a selected description in AtoM. |
|- | |- | ||
| <div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP to CONTENTdm'''<div class="mw-collapsible-content"> | | <div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP to CONTENTdm'''<div class="mw-collapsible-content"> | ||
+ | <br/>Upload DIP | ||
<br/>Restructure DIP for CONTENTdm upload | <br/>Restructure DIP for CONTENTdm upload | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<br/>Move to the uploadedDIPs directory | <br/>Move to the uploadedDIPs directory | ||
</div> | </div> | ||
</div> | </div> | ||
− | | The user | + | | The user creates a DIP suitable for upload to CONTENTdm using Project Client. |
|- | |- | ||
− | | <div class="toccolours mw-collapsible mw-collapsed">''' | + | | <div class="toccolours mw-collapsible mw-collapsed">'''Upload DIP to Archivists' Toolkit'''<div class="mw-collapsible-content"> |
− | <br/> | + | <br/> |
− | < | + | </div> |
− | < | + | </div> |
− | + | | The user uploads the DIP metadata to Archivists' Toolkit | |
− | + | |- | |
− | + | | <div class="toccolours mw-collapsible mw-collapsed">'''Store DIP'''<div class="mw-collapsible-content"> | |
− | + | <br/>Upload DIP | |
− | < | + | <br/>Retrieve DIP Storage Locations |
− | < | + | <br/>Store DIP location |
− | <br/> | + | <br/>Store DIP |
− | <br/> | + | <br/>Move to the uploadedDIPs directory |
− | <br/> | ||
− | <br/> | ||
− | <br/> | ||
</div> | </div> | ||
</div> | </div> | ||
− | | | + | | The user stores the DIP in a location pre-configured in the Storage Service. |
|- | |- | ||
| <div class="toccolours mw-collapsible mw-collapsed">'''Store AIP'''<div class="mw-collapsible-content"> | | <div class="toccolours mw-collapsible mw-collapsed">'''Store AIP'''<div class="mw-collapsible-content"> | ||
Line 358: | Line 408: | ||
<br/>Store the AIP | <br/>Store the AIP | ||
<br/>Index AIP | <br/>Index AIP | ||
+ | <br/>Clean up after storing AIP | ||
<br/>Remove processing directory | <br/>Remove processing directory | ||
</div> | </div> | ||
</div> | </div> | ||
− | | Moves the AIP to ''/sharedDirectoryStructure/www/AIPsStore/'' or another specified directory. | + | | Moves the AIP to ''/sharedDirectoryStructure/www/AIPsStore/'' or another specified directory. Before the AIP has been stored, a copy of it is extracted to a local temp directory, where it is subjected to standard BagIt checks: verifyvalid, checkpayloadoxum, verifycomplete, verifypayloadmanifests, verifytagmanifests. |
|- | |- | ||
|} | |} |
Latest revision as of 16:36, 11 February 2020
Main Page > Documentation > Technical Architecture > Micro-services
Archivematica implements a micro-service approach to digital preservation. The Archivematica micro-services are granular system tasks which operate on a conceptual entity that is equivalent to an OAIS information package: Submission Information Package (SIP), Archival Information Package (AIP), Dissemination Information Package (DIP). The physical structure of an information package will include files, checksums, logs, submission documentation, XML metadata, etc..
These information packages are processed using a series of micro-services. Micro-services are provided by a combination of Archivematica Python scripts and one or more of the free, open-source software tools bundled in the Archivematica system. Each micro-service results in a success or error state and the information package is processed accordingly by the next micro-service. There are a variety of mechanisms used to connect the various micro-services together into complex, custom workflows. Resulting in a complete ingest to access system.
Archivematica implements a default ingest to access workflow that is compliant with the ISO-OAIS functional model. Micro-services can be distributed to processing clusters for highly scalable configurations.
Current Micro-services in Archivematica[edit]
A micro-service may consist of a number of discrete tasks, or jobs. In the Archivematica 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).
The table below shows micro-services and jobs in the current release of Archivematica (Updated July 2015 for release 1.4.1).
Transfer[edit]
Micro-service | Description |
---|---|
Approve Transfer
|
This is the approval step that moves the transfer into the Archivematica processing pipeline. |
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
|
Directly associates the transfer with its metadata by appending the transfer UUID to the transfer directory name. |
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
|
Assigns a unique universal identifier and sha-256 checksum to each file in the /objects/ directory and sets file permission to allow for continued processing. |
Verify transfer 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
|
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. |
Reformat metadata files
|
Transforms JSON metadata included with transfer to metadata.csv |
Quarantine
|
Quarantines the transfer for a set duration, to allow virus definitions to update, before virus scan. |
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. |
Generate transfer structure report
|
Uses Tree to create transfer structure report (original order report) in txt format |
Clean up 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. |
Identify file format
|
Identifies formats of the objects in the transfer using either FIDO or file extension based on user choice. Format types are managed in the Format Policy Registry. This micro-service can be skipped and done in Ingest instead. |
Extract packages
|
Extracts objects from any zipped files or other packages. Extracts attachments from maildir transfers. User can preconfigure choices about whether to extract and whether to keep one or both of extracted object contents and/or the package itself. |
Update METS.xml document
|
Creates a structMap in the transfer METS to reflect structure of transfer |
Characterize and extract metadata
|
Characterizes formats and extracts object metadata using File Information Tool Set (FITS), FFprobe, Exiftool and/or Mediainfo |
Validation
|
Validates formats using JHOVE. |
Examine Contents
|
Runs Bulk Extractor on transfer contents and creates reports |
Complete transfer
|
Indexes transfer contents, creates transfer METS XML, then marks the transfer as complete. |
Create SIP from Transfer
|
This is the approval step that moves the transfer to the SIP packaging micro-services (Ingest) if user chooses to Create single SIP and continue processing. User can also choose to Send transfer to backlog at this time, which creates an associated PREMIS event. |
Ingest[edit]
Micro-service | Description |
---|---|
Approve SIP creation
|
Applies to SIPs that have been created from backlog. Approves creation of SIP, and creates PREMIS event for removal from backlog. |
Verify transfer compliance
|
Verifies the METS from the transfer. |
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
|
Directly associates the SIP with its metadata by appending the SIP UUID to the SIP directory name and checks if SIP is from Maildir transfer type to determine workflow. |
Include default SIP processingMCP.xml
|
Copies the processing configuration file added to the transfer in Include default Transfer processingMCP.xml, above, to the SIP. |
Remove cache files
|
Removes any thumbs.db files. |
Clean up 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. |
Normalize
|
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 manually normalized files
|
Processed files manually normalized during processing |
Add final metadata
|
Provides the operator a reminder to add metadata through the UI if desired. |
Transcribe SIP contents
|
Runs Tesseract OCR tool on any JPG or TIFF image files in SIP. |
Process submission documentation
|
Processes any submission documentation included in the SIP and adds it to the /objects/ directory. |
Process metadata directory
|
Processes metadata. |
Verify checksums
|
Verifies checksums generated on ingest |
Generate AIP METS
|
Generates Archivematica AIP METS.xml document |
Prepare DIP
|
Creates a DIP containing access copies of the objects, thumbnails and a copy of the METS file. |
Prepare AIP
|
Creates an AIP in Bagit format. Creates the AIP pointer file. Indexes the AIP, then losslessly compresses it. |
Upload DIP
|
Allows the user to choose to upload the DIP AtoM, CONTENTdm, Archivist's Toolkit. Also allows user to store DIP or reject DIP. |
Upload DIP to AtoM
|
The user uploads the DIP to a selected description in AtoM. |
Upload DIP to CONTENTdm
|
The user creates a DIP suitable for upload to CONTENTdm using Project Client. |
Upload DIP to Archivists' Toolkit
|
The user uploads the DIP metadata to Archivists' Toolkit |
Store DIP
|
The user stores the DIP in a location pre-configured in the Storage Service. |
Store AIP
|
Moves the AIP to /sharedDirectoryStructure/www/AIPsStore/ or another specified directory. Before the AIP has been stored, a copy of it is extracted to a local temp directory, where it is subjected to standard BagIt checks: verifyvalid, checkpayloadoxum, verifycomplete, verifypayloadmanifests, verifytagmanifests. |