diff --git a/libs/middletier/MigrationRoute.cpp b/libs/middletier/ArchiveRoute.cpp
similarity index 79%
rename from libs/middletier/MigrationRoute.cpp
rename to libs/middletier/ArchiveRoute.cpp
index dd41809a8bf1cb5c58dba4aaa3666a7ec1a06f97..0079ca603e10ef28bfa09fd682fb08554360c1dc 100644
--- a/libs/middletier/MigrationRoute.cpp
+++ b/libs/middletier/ArchiveRoute.cpp
@@ -1,9 +1,9 @@
-#include "MigrationRoute.hpp"
+#include "ArchiveRoute.hpp"
 
 //------------------------------------------------------------------------------
 // constructor
 //------------------------------------------------------------------------------
-cta::MigrationRoute::MigrationRoute():
+cta::ArchiveRoute::ArchiveRoute():
   m_copyNb(0),
   m_creationTime(time(NULL)) {
 }
@@ -11,7 +11,7 @@ cta::MigrationRoute::MigrationRoute():
 //------------------------------------------------------------------------------
 // constructor
 //------------------------------------------------------------------------------
-cta::MigrationRoute::MigrationRoute(
+cta::ArchiveRoute::ArchiveRoute(
   const std::string &storageClassName,
   const uint8_t copyNb,
   const std::string &tapePoolName,
@@ -29,34 +29,34 @@ cta::MigrationRoute::MigrationRoute(
 //------------------------------------------------------------------------------
 // getStorageClassName
 //------------------------------------------------------------------------------
-const std::string &cta::MigrationRoute::getStorageClassName() const throw() {
+const std::string &cta::ArchiveRoute::getStorageClassName() const throw() {
   return m_storageClassName;
 }
 
 //------------------------------------------------------------------------------
 // getCopyNb
 //------------------------------------------------------------------------------
-uint8_t cta::MigrationRoute::getCopyNb() const throw() {
+uint8_t cta::ArchiveRoute::getCopyNb() const throw() {
   return m_copyNb;
 }
 
 //------------------------------------------------------------------------------
 // getTapePoolName
 //------------------------------------------------------------------------------
-const std::string &cta::MigrationRoute::getTapePoolName() const throw() {
+const std::string &cta::ArchiveRoute::getTapePoolName() const throw() {
   return m_tapePoolName;
 }
 
 //------------------------------------------------------------------------------
 // getCreator
 //------------------------------------------------------------------------------
-const cta::UserIdentity &cta::MigrationRoute::getCreator() const throw() {
+const cta::UserIdentity &cta::ArchiveRoute::getCreator() const throw() {
   return m_creator;
 }
 
 //------------------------------------------------------------------------------
 // getComment
 //------------------------------------------------------------------------------
-const std::string &cta::MigrationRoute::getComment() const throw() {
+const std::string &cta::ArchiveRoute::getComment() const throw() {
   return m_comment;
 }
diff --git a/libs/middletier/MigrationRoute.hpp b/libs/middletier/ArchiveRoute.hpp
similarity index 95%
rename from libs/middletier/MigrationRoute.hpp
rename to libs/middletier/ArchiveRoute.hpp
index a388084a8d6a6ab1fa8b3597957b1862f9749115..1c93c1e0ba22caf07901d9a216c8fd7c36ae6160 100644
--- a/libs/middletier/MigrationRoute.hpp
+++ b/libs/middletier/ArchiveRoute.hpp
@@ -9,15 +9,15 @@
 namespace cta {
 
 /**
- * A migration route.
+ * An archive route.
  */
-class MigrationRoute {
+class ArchiveRoute {
 public:
 
   /**
    * Constructor.
    */
-  MigrationRoute();
+  ArchiveRoute();
 
   /**
    * Constructor.
@@ -29,7 +29,7 @@ public:
    * @param creator The identity of the user that created the storage class.
    * @param comment Comment describing the storage class.
    */
-  MigrationRoute(
+  ArchiveRoute(
     const std::string &storageClassName,
     const uint8_t copyNb,
     const std::string &tapePoolName,
@@ -106,6 +106,6 @@ private:
    */
   std::string m_comment;
 
-}; // class MigrationRoute
+}; // class ArchiveRoute
 
 } // namespace cta
diff --git a/libs/middletier/MigrationRouteId.cpp b/libs/middletier/ArchiveRouteId.cpp
similarity index 79%
rename from libs/middletier/MigrationRouteId.cpp
rename to libs/middletier/ArchiveRouteId.cpp
index c64cac83562cddc55b2b9f5cf2fe98e0b45127ff..02aaea87be1f5d1ef8281b221cc2d47d381f80b6 100644
--- a/libs/middletier/MigrationRouteId.cpp
+++ b/libs/middletier/ArchiveRouteId.cpp
@@ -1,16 +1,16 @@
-#include "MigrationRouteId.hpp"
+#include "ArchiveRouteId.hpp"
 
 //------------------------------------------------------------------------------
 // constructor
 //------------------------------------------------------------------------------
-cta::MigrationRouteId::MigrationRouteId():
+cta::ArchiveRouteId::ArchiveRouteId():
   m_copyNb(0) {
 }
 
 //------------------------------------------------------------------------------
 // constructor
 //------------------------------------------------------------------------------
-cta::MigrationRouteId::MigrationRouteId(
+cta::ArchiveRouteId::ArchiveRouteId(
   const std::string &storageClassName,
   const uint8_t copyNb):
   m_storageClassName(storageClassName),
@@ -20,7 +20,7 @@ cta::MigrationRouteId::MigrationRouteId(
 //------------------------------------------------------------------------------
 // operator<
 //------------------------------------------------------------------------------
-bool cta::MigrationRouteId::operator<(const MigrationRouteId &rhs) const {
+bool cta::ArchiveRouteId::operator<(const ArchiveRouteId &rhs) const {
   if(m_storageClassName != rhs.m_storageClassName) {
     return m_storageClassName < rhs.m_storageClassName;
   } else {
@@ -31,13 +31,13 @@ bool cta::MigrationRouteId::operator<(const MigrationRouteId &rhs) const {
 //------------------------------------------------------------------------------
 // getStorageClassName
 //------------------------------------------------------------------------------
-const std::string &cta::MigrationRouteId::getStorageClassName() const throw() {
+const std::string &cta::ArchiveRouteId::getStorageClassName() const throw() {
   return m_storageClassName;
 }
 
 //------------------------------------------------------------------------------
 // getCopyNb
 //------------------------------------------------------------------------------
-uint8_t cta::MigrationRouteId::getCopyNb() const throw() {
+uint8_t cta::ArchiveRouteId::getCopyNb() const throw() {
   return m_copyNb;
 }
diff --git a/libs/middletier/MigrationRouteId.hpp b/libs/middletier/ArchiveRouteId.hpp
similarity index 84%
rename from libs/middletier/MigrationRouteId.hpp
rename to libs/middletier/ArchiveRouteId.hpp
index 3d548c7f804752281677461c6f9baee91ac86a26..a8988e48a1297f2027dc0112d866bac9a549b892 100644
--- a/libs/middletier/MigrationRouteId.hpp
+++ b/libs/middletier/ArchiveRouteId.hpp
@@ -6,15 +6,15 @@
 namespace cta {
 
 /**
- * Class used to identify a migration route.
+ * Class used to identify an archive route.
  */
-class MigrationRouteId {
+class ArchiveRouteId {
 public:
 
   /**
    * Constructor.
    */
-  MigrationRouteId();
+  ArchiveRouteId();
 
   /**
    * Constructor.
@@ -23,7 +23,7 @@ public:
    * source disk files.
    * @param copyNb The tape copy number.
    */
-  MigrationRouteId(
+  ArchiveRouteId(
     const std::string &storageClassName,
     const uint8_t copyNb);
 
@@ -32,7 +32,7 @@ public:
    *
    * @param rhs The object on the right hand side of the operator.
    */
-  bool operator<(const MigrationRouteId &rhs) const;
+  bool operator<(const ArchiveRouteId &rhs) const;
 
   /**
    * Returns the name of the storage class that identifies the source disk
@@ -62,6 +62,6 @@ private:
    */
   uint8_t m_copyNb;
 
-}; // class MigrationRouteId
+}; // class ArchiveRouteId
 
 } // namespace cta
diff --git a/libs/middletier/CMakeLists.txt b/libs/middletier/CMakeLists.txt
index e001320cf17ca3185ad1ca788db0d8ff78cd4220..8173d6ebae276c6420138f103d19ea946e1a47ba 100644
--- a/libs/middletier/CMakeLists.txt
+++ b/libs/middletier/CMakeLists.txt
@@ -8,6 +8,8 @@ set (MIDDLE_TIER_LIB_SRC_FILES
   AdminUser.cpp
   ArchivalJob.cpp
   ArchivalJobState.cpp
+  ArchiveRoute.cpp
+  ArchiveRouteId.cpp
   DirectoryEntry.cpp
   DirectoryIterator.cpp
   Exception.cpp
@@ -19,9 +21,8 @@ set (MIDDLE_TIER_LIB_SRC_FILES
   LogicalLibrary.cpp
   MiddleTierAdmin.cpp
   MiddleTierUser.cpp
-  MigrationRoute.cpp
-  MigrationRouteId.cpp
   MockArchivalJobTable.cpp
+  MockArchiveRouteTable.cpp
   MockAdminHostTable.cpp
   MockAdminUserTable.cpp
   MockDatabase.cpp
@@ -29,7 +30,6 @@ set (MIDDLE_TIER_LIB_SRC_FILES
   MockMiddleTierAdmin.cpp
   MockMiddleTierUser.cpp
   MockMiddleTierUser.cpp
-  MockMigrationRouteTable.cpp
   MockRetrievalJobTable.cpp
   MockTapeTable.cpp
   MockTapePoolTable.cpp
diff --git a/libs/middletier/MiddleTierAdmin.hpp b/libs/middletier/MiddleTierAdmin.hpp
index aceb5dd506f28068d21547df60f0657fa20b9dea..962d0426fcebfa4554d4495559169382f08024cd 100644
--- a/libs/middletier/MiddleTierAdmin.hpp
+++ b/libs/middletier/MiddleTierAdmin.hpp
@@ -3,9 +3,9 @@
 #include "AdminHost.hpp"
 #include "AdminUser.hpp"
 #include "ArchivalJob.hpp"
+#include "ArchiveRoute.hpp"
 #include "DirectoryIterator.hpp"
 #include "LogicalLibrary.hpp"
-#include "MigrationRoute.hpp"
 #include "SecurityIdentity.hpp"
 #include "StorageClass.hpp"
 #include "Tape.hpp"
@@ -173,17 +173,17 @@ public:
     const SecurityIdentity &requester) const = 0;
 
   /**
-   * Creates the specified migration route.
+   * Creates the specified archive route.
    *
    * @param requester The identity of the user requesting the creation of the
-   * migration route.
+   * archive route.
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
    * @param copyNb The tape copy number.
    * @param tapePoolName The name of the destination tape pool.
-   * @param comment The comment describing the migration route.
+   * @param comment The comment describing the archive route.
    */
-  virtual void createMigrationRoute(
+  virtual void createArchiveRoute(
     const SecurityIdentity &requester,
     const std::string &storageClassName,
     const uint8_t copyNb,
@@ -191,25 +191,25 @@ public:
     const std::string &comment) = 0;
 
   /**
-   * Deletes the specified migration route.
+   * Deletes the specified archive route.
    *
    * @param requester The identity of the user requesting the deletion of the
-   * migration route.
+   * archive route.
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
    * @param copyNb The tape copy number.
    */
-  virtual void deleteMigrationRoute(
+  virtual void deleteArchiveRoute(
     const SecurityIdentity &requester,
     const std::string &storageClassName,
     const uint8_t copyNb) = 0;
 
   /**
-   * Gets the current list of migration routes.
+   * Gets the current list of archive routes.
    *
    * @param requester The identity of the user requesting the list.
    */
-  virtual std::list<MigrationRoute> getMigrationRoutes(
+  virtual std::list<ArchiveRoute> getArchiveRoutes(
     const SecurityIdentity &requester) const = 0;
 
   /**
diff --git a/libs/middletier/MiddleTierUser.hpp b/libs/middletier/MiddleTierUser.hpp
index 6ebf33048592fde7f37f98a3e5f6cf4526dbb0ca..bcc514b75b1a7cfc79e82975a2a6d7c4041c146c 100644
--- a/libs/middletier/MiddleTierUser.hpp
+++ b/libs/middletier/MiddleTierUser.hpp
@@ -1,9 +1,9 @@
 #pragma once
 
 #include "ArchivalJob.hpp"
+#include "ArchiveRoute.hpp"
 #include "DirectoryIterator.hpp"
 #include "LogicalLibrary.hpp"
-#include "MigrationRoute.hpp"
 #include "RetrievalJob.hpp"
 #include "SecurityIdentity.hpp"
 #include "StorageClass.hpp"
diff --git a/libs/middletier/MockMigrationRouteTable.cpp b/libs/middletier/MockArchiveRouteTable.cpp
similarity index 54%
rename from libs/middletier/MockMigrationRouteTable.cpp
rename to libs/middletier/MockArchiveRouteTable.cpp
index 6f79d7e4bfbd8a6e6989df0dabbc611d976b4b5e..06d5d7fade29daa03e6dbc4f656f536c3caca470 100644
--- a/libs/middletier/MockMigrationRouteTable.cpp
+++ b/libs/middletier/MockArchiveRouteTable.cpp
@@ -1,39 +1,39 @@
 #include "Exception.hpp"
-#include "MockMigrationRouteTable.hpp"
+#include "MockArchiveRouteTable.hpp"
 
 #include <sstream>
 
 //------------------------------------------------------------------------------
-// createMigrationRoute
+// createArchiveRoute
 //------------------------------------------------------------------------------
-void cta::MockMigrationRouteTable::createMigrationRoute(
+void cta::MockArchiveRouteTable::createArchiveRoute(
   const std::string &storageClassName,
   const uint8_t copyNb,
   const std::string &tapePoolName,
   const UserIdentity &creator,
   const std::string &comment) {
-  const MigrationRouteId routeId(storageClassName, copyNb);
-  checkMigrationRouteDoesNotAlreadyExists(routeId);
-  MigrationRoute route(
+  const ArchiveRouteId routeId(storageClassName, copyNb);
+  checkArchiveRouteDoesNotAlreadyExists(routeId);
+  ArchiveRoute route(
     storageClassName,
     copyNb,
     tapePoolName,
     creator, 
     time(NULL),
     comment);
-  m_migrationRoutes[routeId] = route;
+  m_archiveRoutes[routeId] = route;
 }
 
 //------------------------------------------------------------------------------
-// checkMigrationRouteDoesNotAlreadyExists
+// checkArchiveRouteDoesNotAlreadyExists
 //------------------------------------------------------------------------------
-void cta::MockMigrationRouteTable::checkMigrationRouteDoesNotAlreadyExists(
-  const MigrationRouteId &routeId) const {
-  std::map<MigrationRouteId, MigrationRoute>::const_iterator itor =
-    m_migrationRoutes.find(routeId);
-  if(itor != m_migrationRoutes.end()) {
+void cta::MockArchiveRouteTable::checkArchiveRouteDoesNotAlreadyExists(
+  const ArchiveRouteId &routeId) const {
+  std::map<ArchiveRouteId, ArchiveRoute>::const_iterator itor =
+    m_archiveRoutes.find(routeId);
+  if(itor != m_archiveRoutes.end()) {
     std::ostringstream message;
-    message << "A migration route for storage class " <<
+    message << "A archive route for storage class " <<
       routeId.getStorageClassName() << " and copy number " <<
       routeId.getCopyNb() << " already exists";
     throw Exception(message.str());
@@ -41,51 +41,51 @@ void cta::MockMigrationRouteTable::checkMigrationRouteDoesNotAlreadyExists(
 }
 
 //------------------------------------------------------------------------------
-// deleteMigrationRoute
+// deleteArchiveRoute
 //------------------------------------------------------------------------------
-void cta::MockMigrationRouteTable::deleteMigrationRoute(
+void cta::MockArchiveRouteTable::deleteArchiveRoute(
   const std::string &storageClassName,
   const uint8_t copyNb) {
-  const MigrationRouteId routeId(storageClassName, copyNb);
-  std::map<MigrationRouteId, MigrationRoute>::iterator itor =
-    m_migrationRoutes.find(routeId);
-  if(itor == m_migrationRoutes.end()) {
+  const ArchiveRouteId routeId(storageClassName, copyNb);
+  std::map<ArchiveRouteId, ArchiveRoute>::iterator itor =
+    m_archiveRoutes.find(routeId);
+  if(itor == m_archiveRoutes.end()) {
     std::ostringstream message;
-    message << "A migration route for storage class " <<
+    message << "A archive route for storage class " <<
       routeId.getStorageClassName() << " and copy number " <<
       routeId.getCopyNb() << " does not exist";
     throw Exception(message.str());
   }
-  m_migrationRoutes.erase(routeId);
+  m_archiveRoutes.erase(routeId);
 }
 
 //------------------------------------------------------------------------------
-// getMigrationRoutes
+// getArchiveRoutes
 //------------------------------------------------------------------------------
-std::list<cta::MigrationRoute> cta::MockMigrationRouteTable::
-  getMigrationRoutes() const {
-  std::list<cta::MigrationRoute> routes;
-  for(std::map<MigrationRouteId, MigrationRoute>::const_iterator itor =
-    m_migrationRoutes.begin(); itor != m_migrationRoutes.end(); itor++) {
+std::list<cta::ArchiveRoute> cta::MockArchiveRouteTable::
+  getArchiveRoutes() const {
+  std::list<cta::ArchiveRoute> routes;
+  for(std::map<ArchiveRouteId, ArchiveRoute>::const_iterator itor =
+    m_archiveRoutes.begin(); itor != m_archiveRoutes.end(); itor++) {
     routes.push_back(itor->second);
   }
   return routes;
 }
 
 //------------------------------------------------------------------------------
-// checkMigrationRouteExists
+// checkArchiveRouteExists
 //------------------------------------------------------------------------------
-void cta::MockMigrationRouteTable::checkMigrationRouteExists(
+void cta::MockArchiveRouteTable::checkArchiveRouteExists(
   const std::string &storageClassName, const uint8_t copyNb) const {
 }
 
 //------------------------------------------------------------------------------
-// tapePoolIsInAMigrationRoute
+// tapePoolIsInAArchiveRoute
 //------------------------------------------------------------------------------
-bool cta::MockMigrationRouteTable::tapePoolIsInAMigrationRoute(
+bool cta::MockArchiveRouteTable::tapePoolIsInAArchiveRoute(
   const std::string &name) const {
-  for(std::map<MigrationRouteId, MigrationRoute>::const_iterator itor =
-    m_migrationRoutes.begin(); itor != m_migrationRoutes.end(); itor++) {
+  for(std::map<ArchiveRouteId, ArchiveRoute>::const_iterator itor =
+    m_archiveRoutes.begin(); itor != m_archiveRoutes.end(); itor++) {
     if(name == itor->second.getTapePoolName()) {
       return true;
     }
@@ -94,12 +94,12 @@ bool cta::MockMigrationRouteTable::tapePoolIsInAMigrationRoute(
 }
 
 //------------------------------------------------------------------------------
-// storageClassIsInAMigrationRoute
+// storageClassIsInAArchiveRoute
 //------------------------------------------------------------------------------
-bool cta::MockMigrationRouteTable::storageClassIsInAMigrationRoute(
+bool cta::MockArchiveRouteTable::storageClassIsInAArchiveRoute(
   const std::string &name) const {
-  for(std::map<MigrationRouteId, MigrationRoute>::const_iterator itor =
-    m_migrationRoutes.begin(); itor != m_migrationRoutes.end(); itor++) {
+  for(std::map<ArchiveRouteId, ArchiveRoute>::const_iterator itor =
+    m_archiveRoutes.begin(); itor != m_archiveRoutes.end(); itor++) {
     if(name == itor->second.getStorageClassName()) {
       return true;
     }
diff --git a/libs/middletier/MockMigrationRouteTable.hpp b/libs/middletier/MockArchiveRouteTable.hpp
similarity index 55%
rename from libs/middletier/MockMigrationRouteTable.hpp
rename to libs/middletier/MockArchiveRouteTable.hpp
index f813aadc4151a85126743b039e3602bbd3ef12ac..14577e792ebc99fb5ad69a94fb13e6de7a690ce1 100644
--- a/libs/middletier/MockMigrationRouteTable.hpp
+++ b/libs/middletier/MockArchiveRouteTable.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
-#include "MigrationRoute.hpp"
-#include "MigrationRouteId.hpp"
+#include "ArchiveRoute.hpp"
+#include "ArchiveRouteId.hpp"
 
 #include <list>
 #include <map>
@@ -11,13 +11,13 @@
 namespace cta {
 
 /**
- * Mock database-table of migration routes.
+ * Mock database-table of archive routes.
  */
-class MockMigrationRouteTable {
+class MockArchiveRouteTable {
 public:
 
   /**
-   * Creates the specified migration route.
+   * Creates the specified archive route.
    *
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
@@ -26,7 +26,7 @@ public:
    * @param creator The identity of the user that created the storage class.
    * @param comment Comment describing the storage class.
    */
-  void createMigrationRoute(
+  void createArchiveRoute(
     const std::string &storageClassName,
     const uint8_t copyNb,
     const std::string &tapePoolName,
@@ -34,64 +34,64 @@ public:
     const std::string &comment);
 
   /**
-   * Deletes the specified migration route.
+   * Deletes the specified archive route.
    *
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
    * @param copyNb The tape copy number.
    */
-  void deleteMigrationRoute(
+  void deleteArchiveRoute(
     const std::string &storageClassName,
     const uint8_t copyNb);
 
   /**
-   * Gets the current list of migration routes.
+   * Gets the current list of archive routes.
    *
-   * @return The current list of migration routes.
+   * @return The current list of archive routes.
    */
-  std::list<MigrationRoute> getMigrationRoutes() const;
+  std::list<ArchiveRoute> getArchiveRoutes() const;
 
   /**
-   * Throws an exception if the specified migration route does not exist.
+   * Throws an exception if the specified archive route does not exist.
    *
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
    * @param copyNb The tape copy number.
    */
-  void checkMigrationRouteExists(const std::string &storageClassName,
+  void checkArchiveRouteExists(const std::string &storageClassName,
     const uint8_t copyNb) const;
 
   /**
-   * Returns true if the specified tape pool is in one of the current migration
+   * Returns true if the specified tape pool is in one of the current archive
    * routes.
    *
    * @param name The name of the tape pool.
    */
-  bool tapePoolIsInAMigrationRoute(const std::string &name) const;
+  bool tapePoolIsInAArchiveRoute(const std::string &name) const;
 
   /**
    * Returns true if the specified storage class is in one of the current
-   * migration routes.
+   * archive routes.
    *
    * @param name The name of the storage class.
    */
-  bool storageClassIsInAMigrationRoute(const std::string &name) const;
+  bool storageClassIsInAArchiveRoute(const std::string &name) const;
 
 private:
 
   /**
-   * The current mapping from migration-route identifier to migration route.
+   * The current mapping from archive-route identifier to archive route.
    */
-  std::map<MigrationRouteId, MigrationRoute> m_migrationRoutes;
+  std::map<ArchiveRouteId, ArchiveRoute> m_archiveRoutes;
 
   /**
-   * Throws an exception if the specified migration route already exists.
+   * Throws an exception if the specified archive route already exists.
    *
-   * @param routeId The identity of the migration route.
+   * @param routeId The identity of the archive route.
    */
-  void checkMigrationRouteDoesNotAlreadyExists(const MigrationRouteId &routeId)
+  void checkArchiveRouteDoesNotAlreadyExists(const ArchiveRouteId &routeId)
     const;
 
-}; // class MockMigrationRouteTable
+}; // class MockArchiveRouteTable
 
 } // namespace cta
diff --git a/libs/middletier/MockDatabase.hpp b/libs/middletier/MockDatabase.hpp
index 49c46934d56a848c1889d5e5ffdc0af1f677448f..05e9afe2f4dcfc26967fa4bd688a48f676e27966 100644
--- a/libs/middletier/MockDatabase.hpp
+++ b/libs/middletier/MockDatabase.hpp
@@ -5,8 +5,8 @@
 #include "MockAdminHostTable.hpp"
 #include "MockAdminUserTable.hpp"
 #include "MockArchivalJobTable.hpp"
+#include "MockArchiveRouteTable.hpp"
 #include "MockLogicalLibraryTable.hpp"
-#include "MockMigrationRouteTable.hpp"
 #include "MockRetrievalJobTable.hpp"
 #include "MockTapeTable.hpp"
 #include "MockTapePoolTable.hpp"
@@ -51,9 +51,9 @@ struct MockDatabase {
   MockTapePoolTable tapePools;
 
   /**
-   * Container of migration routes.
+   * Container of archive routes.
    */
-  MockMigrationRouteTable migrationRoutes;
+  MockArchiveRouteTable archiveRoutes;
 
   /**
    * The root node of the file-system.
diff --git a/libs/middletier/MockMiddleTierAdmin.cpp b/libs/middletier/MockMiddleTierAdmin.cpp
index cf5eee5cb10845dd8e4e6dc8ee0853088c124ff8..39d8c1c7a16b9f7e32dd70695cc2699573a8ea9f 100644
--- a/libs/middletier/MockMiddleTierAdmin.cpp
+++ b/libs/middletier/MockMiddleTierAdmin.cpp
@@ -87,16 +87,16 @@ void cta::MockMiddleTierAdmin::createStorageClass(
 //------------------------------------------------------------------------------
 void cta::MockMiddleTierAdmin::deleteStorageClass(const SecurityIdentity &requester,
   const std::string &name) {
-  checkStorageClassIsNotInAMigrationRoute(name);
+  checkStorageClassIsNotInAArchiveRoute(name);
   m_db.storageClasses.deleteStorageClass(name);
 }
 
 //------------------------------------------------------------------------------
-// checkStorageClassIsNotInAMigrationRoute
+// checkStorageClassIsNotInAArchiveRoute
 //------------------------------------------------------------------------------
-void cta::MockMiddleTierAdmin::checkStorageClassIsNotInAMigrationRoute(
+void cta::MockMiddleTierAdmin::checkStorageClassIsNotInAArchiveRoute(
   const std::string &name) const {
-  if(m_db.migrationRoutes.storageClassIsInAMigrationRoute(name)) {
+  if(m_db.archiveRoutes.storageClassIsInAArchiveRoute(name)) {
     std::ostringstream message;
     message << "The " << name << " storage class is in use";
     throw Exception(message.str());
@@ -138,7 +138,7 @@ void cta::MockMiddleTierAdmin::deleteTapePool(const SecurityIdentity &requester,
 //------------------------------------------------------------------------------
 void cta::MockMiddleTierAdmin::checkTapePoolIsNotInUse(const std::string &name)
   const {
-  if(m_db.migrationRoutes.tapePoolIsInAMigrationRoute(name)) {
+  if(m_db.archiveRoutes.tapePoolIsInAArchiveRoute(name)) {
     std::ostringstream message;
     message << "The " << name << " tape pool is in use";
     throw Exception(message.str());
@@ -154,15 +154,15 @@ std::list<cta::TapePool> cta::MockMiddleTierAdmin::getTapePools(
 }
 
 //------------------------------------------------------------------------------
-// createMigrationRoute
+// createArchiveRoute
 //------------------------------------------------------------------------------
-void cta::MockMiddleTierAdmin::createMigrationRoute(
+void cta::MockMiddleTierAdmin::createArchiveRoute(
   const SecurityIdentity &requester,
   const std::string &storageClassName,
   const uint8_t copyNb,
   const std::string &tapePoolName,
   const std::string &comment) {
-  return m_db.migrationRoutes.createMigrationRoute(
+  return m_db.archiveRoutes.createArchiveRoute(
     storageClassName,
     copyNb,
     tapePoolName,
@@ -171,21 +171,21 @@ void cta::MockMiddleTierAdmin::createMigrationRoute(
 }
 
 //------------------------------------------------------------------------------
-// deleteMigrationRoute
+// deleteArchiveRoute
 //------------------------------------------------------------------------------
-void cta::MockMiddleTierAdmin::deleteMigrationRoute(
+void cta::MockMiddleTierAdmin::deleteArchiveRoute(
   const SecurityIdentity &requester,
   const std::string &storageClassName,
   const uint8_t copyNb) {
-  return m_db.migrationRoutes.deleteMigrationRoute(storageClassName, copyNb);
+  return m_db.archiveRoutes.deleteArchiveRoute(storageClassName, copyNb);
 }
 
 //------------------------------------------------------------------------------
-// getMigrationRoutes
+// getArchiveRoutes
 //------------------------------------------------------------------------------
-std::list<cta::MigrationRoute> cta::MockMiddleTierAdmin::getMigrationRoutes(
+std::list<cta::ArchiveRoute> cta::MockMiddleTierAdmin::getArchiveRoutes(
   const SecurityIdentity &requester) const {
-  return m_db.migrationRoutes.getMigrationRoutes();
+  return m_db.archiveRoutes.getArchiveRoutes();
 }
 
 //------------------------------------------------------------------------------
diff --git a/libs/middletier/MockMiddleTierAdmin.hpp b/libs/middletier/MockMiddleTierAdmin.hpp
index ef523542067ae4168261708f68446374952670a4..aaad2c57e97ff5205211a91c1025405ca1b9aced 100644
--- a/libs/middletier/MockMiddleTierAdmin.hpp
+++ b/libs/middletier/MockMiddleTierAdmin.hpp
@@ -164,17 +164,17 @@ public:
     const SecurityIdentity &requester) const;
 
   /**
-   * Creates the specified migration route.
+   * Creates the specified archive route.
    *
    * @param requester The identity of the user requesting the creation of the
-   * migration route.
+   * archive route.
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
    * @param copyNb The tape copy number.
    * @param tapePoolName The name of the destination tape pool.
-   * @param comment The comment describing the migration route.
+   * @param comment The comment describing the archive route.
    */
-  void createMigrationRoute(
+  void createArchiveRoute(
     const SecurityIdentity &requester,
     const std::string &storageClassName,
     const uint8_t copyNb,
@@ -182,25 +182,25 @@ public:
     const std::string &comment);
 
   /**
-   * Deletes the specified migration route.
+   * Deletes the specified archive route.
    *
    * @param requester The identity of the user requesting the deletion of the
-   * migration route.
+   * archive route.
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
    * @param copyNb The tape copy number.
    */
-  void deleteMigrationRoute(
+  void deleteArchiveRoute(
     const SecurityIdentity &requester,
     const std::string &storageClassName,
     const uint8_t copyNb);
 
   /**
-   * Gets the current list of migration routes.
+   * Gets the current list of archive routes.
    *
    * @param requester The identity of the user requesting the list.
    */
-  std::list<MigrationRoute> getMigrationRoutes(
+  std::list<ArchiveRoute> getArchiveRoutes(
     const SecurityIdentity &requester) const;
 
   /**
@@ -304,12 +304,12 @@ protected:
   void checkTapePoolIsNotInUse(const std::string &name) const;
 
   /**
-   * Throws an exception if the specified storage class is used in a migration
+   * Throws an exception if the specified storage class is used in an archive
    * route.
    *
    * @param name The name of the storage class.
    */
-  void checkStorageClassIsNotInAMigrationRoute(const std::string &name) const;
+  void checkStorageClassIsNotInAArchiveRoute(const std::string &name) const;
 
   /**
    * Returns true if the specified absolute path is that of an existing
diff --git a/libs/middletier/MockMiddleTierAdminTest.cpp b/libs/middletier/MockMiddleTierAdminTest.cpp
index 0e496e5380a6bf0f96762f47c379caedb2602cba..dca72fc7d8f529e72df89d4c0c41aea2ed58bc5c 100644
--- a/libs/middletier/MockMiddleTierAdminTest.cpp
+++ b/libs/middletier/MockMiddleTierAdminTest.cpp
@@ -259,19 +259,19 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteStorageClass_in_use_by_route) {
   }
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 
   ASSERT_THROW(adminApi.deleteStorageClass(requester, storageClassName),
@@ -288,13 +288,13 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteStorageClass_in_use_by_route) {
     ASSERT_EQ(nbCopies, storageClass.getNbCopies());
   }
 
-  ASSERT_NO_THROW(adminApi.deleteMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.deleteArchiveRoute(requester, storageClassName,
     copyNb));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   ASSERT_NO_THROW(adminApi.deleteStorageClass(requester, storageClassName));
@@ -337,9 +337,9 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteTapePool_in_use) {
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -357,37 +357,37 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteTapePool_in_use) {
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 
   ASSERT_THROW(adminApi.deleteTapePool(requester, tapePoolName), std::exception);
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 }
 
-TEST_F(cta_client_MockMiddleTierAdminTest, createMigrationRoute_new) {
+TEST_F(cta_client_MockMiddleTierAdminTest, createArchiveRoute_new) {
   using namespace cta;
 
   MockDatabase db;
@@ -395,9 +395,9 @@ TEST_F(cta_client_MockMiddleTierAdminTest, createMigrationRoute_new) {
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -415,24 +415,24 @@ TEST_F(cta_client_MockMiddleTierAdminTest, createMigrationRoute_new) {
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 }
 
 TEST_F(cta_client_MockMiddleTierAdminTest,
-  createMigrationRoute_already_existing) {
+  createArchiveRoute_already_existing) {
   using namespace cta;
 
   MockDatabase db;
@@ -440,9 +440,9 @@ TEST_F(cta_client_MockMiddleTierAdminTest,
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -460,26 +460,26 @@ TEST_F(cta_client_MockMiddleTierAdminTest,
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 
-  ASSERT_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment), std::exception);
 }
 
-TEST_F(cta_client_MockMiddleTierAdminTest, deleteMigrationRoute_existing) {
+TEST_F(cta_client_MockMiddleTierAdminTest, deleteArchiveRoute_existing) {
   using namespace cta;
 
   MockDatabase db;
@@ -487,9 +487,9 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteMigrationRoute_existing) {
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -507,32 +507,32 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteMigrationRoute_existing) {
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 
-  ASSERT_NO_THROW(adminApi.deleteMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.deleteArchiveRoute(requester, storageClassName,
     copyNb));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 }
 
-TEST_F(cta_client_MockMiddleTierAdminTest, deleteMigrationRoute_non_existing) {
+TEST_F(cta_client_MockMiddleTierAdminTest, deleteArchiveRoute_non_existing) {
   using namespace cta;
 
   MockDatabase db;
@@ -540,9 +540,9 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteMigrationRoute_non_existing) {
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -560,7 +560,7 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteMigrationRoute_non_existing) {
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_THROW(adminApi.deleteMigrationRoute(requester, tapePoolName, copyNb),
+  ASSERT_THROW(adminApi.deleteArchiveRoute(requester, tapePoolName, copyNb),
     std::exception);
 }
 
diff --git a/libs/middletier/MockMiddleTierUserTest.cpp b/libs/middletier/MockMiddleTierUserTest.cpp
index c5b728f4839cd5fdea2de0cb490d2608c1fa4495..4e5302a0fc7a23cc89e2140cccae606e1bff0ea2 100644
--- a/libs/middletier/MockMiddleTierUserTest.cpp
+++ b/libs/middletier/MockMiddleTierUserTest.cpp
@@ -505,9 +505,9 @@ TEST_F(cta_client_MockMiddleTierUserTest, archive_to_new_file) {
     nbPartialTapes, tapePoolComment));
 
   const uint8_t copyNb = 1;
-  const std::string migrationRouteComment = "Migration-route comment";
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
-    copyNb, tapePoolName, migrationRouteComment));
+  const std::string archiveRouteComment = "Archive-route comment";
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
+    copyNb, tapePoolName, archiveRouteComment));
 
   std::list<std::string> srcUrls;
   srcUrls.push_back("diskUrl");
@@ -571,9 +571,9 @@ TEST_F(cta_client_MockMiddleTierUserTest, archive_to_directory) {
     nbPartialTapes, tapePoolComment));
 
   const uint8_t copyNb = 1;
-  const std::string migrationRouteComment = "Migration-route comment";
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
-    copyNb, tapePoolName, migrationRouteComment));
+  const std::string archiveRouteComment = "Archive-route comment";
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
+    copyNb, tapePoolName, archiveRouteComment));
 
   std::list<std::string> srcUrls;
   srcUrls.push_back("diskUrl1");
diff --git a/libs/middletier/SqliteDatabase.cpp b/libs/middletier/SqliteDatabase.cpp
index 8e87c422ab81556436771c6e79ea4be5decd09e5..47a9f32e72b675ff27c3670b907ae04bf0c4a690 100644
--- a/libs/middletier/SqliteDatabase.cpp
+++ b/libs/middletier/SqliteDatabase.cpp
@@ -40,9 +40,9 @@ cta::SqliteDatabase::~SqliteDatabase() throw() {
 }
 
 //------------------------------------------------------------------------------
-// createMigrationRouteTable
+// createArchiveRouteTable
 //------------------------------------------------------------------------------
-void cta::SqliteDatabase::createMigrationRouteTable() {
+void cta::SqliteDatabase::createArchiveRouteTable() {
   char *zErrMsg = 0;
   int rc = sqlite3_exec(m_dbHandle, 
           "CREATE TABLE MIGRATIONROUTE("
@@ -60,7 +60,7 @@ void cta::SqliteDatabase::createMigrationRouteTable() {
           0, 0, &zErrMsg);
   if(rc!=SQLITE_OK){    
       std::ostringstream message;
-      message << "createMigrationRouteTable() - SQLite error: " << zErrMsg;
+      message << "createArchiveRouteTable() - SQLite error: " << zErrMsg;
       sqlite3_free(zErrMsg);
       throw(Exception(message.str()));
   }
@@ -323,7 +323,7 @@ void cta::SqliteDatabase::createRetrievalJobTable() {
 void cta::SqliteDatabase::createSchema() {
   createStorageClassTable();
   createTapePoolTable();
-  createMigrationRouteTable();
+  createArchiveRouteTable();
   createDirectoryTable();
   createFileTable();
   createLogicalLibraryTable();
@@ -644,16 +644,16 @@ void cta::SqliteDatabase::insertStorageClass(const SecurityIdentity &requester,
 }
 
 //------------------------------------------------------------------------------
-// insertMigrationRoute
+// insertArchiveRoute
 //------------------------------------------------------------------------------
-void cta::SqliteDatabase::insertMigrationRoute(const SecurityIdentity &requester, const std::string &storageClassName, const uint8_t copyNb, const std::string &tapePoolName, const std::string &comment) {
+void cta::SqliteDatabase::insertArchiveRoute(const SecurityIdentity &requester, const std::string &storageClassName, const uint8_t copyNb, const std::string &tapePoolName, const std::string &comment) {
   char *zErrMsg = 0;
   std::ostringstream query;
   query << "INSERT INTO MIGRATIONROUTE VALUES('" << storageClassName << "'," << (int)copyNb << ",'" << tapePoolName << "'," << requester.user.getUid() << "," << requester.user.getGid() << "," << (int)time(NULL) << ",'" << comment << "');";
   int rc = sqlite3_exec(m_dbHandle, query.str().c_str(), 0, 0, &zErrMsg);
   if(rc!=SQLITE_OK){    
       std::ostringstream message;
-      message << "insertMigrationRoute() - SQLite error: " << zErrMsg;
+      message << "insertArchiveRoute() - SQLite error: " << zErrMsg;
       sqlite3_free(zErrMsg);
       throw(Exception(message.str()));
   }
@@ -694,10 +694,10 @@ void cta::SqliteDatabase::deleteStorageClass(const SecurityIdentity &requester,
 }
 
 //------------------------------------------------------------------------------
-// deleteMigrationRoute
+// deleteArchiveRoute
 //------------------------------------------------------------------------------
-void cta::SqliteDatabase::deleteMigrationRoute(const SecurityIdentity &requester, const std::string &storageClassName, const uint8_t copyNb) {
-  checkMigrationRouteExists(storageClassName, copyNb);
+void cta::SqliteDatabase::deleteArchiveRoute(const SecurityIdentity &requester, const std::string &storageClassName, const uint8_t copyNb) {
+  checkArchiveRouteExists(storageClassName, copyNb);
   char *zErrMsg = 0;
   std::ostringstream query;
   query << "DELETE FROM MIGRATIONROUTE WHERE STORAGECLASS_NAME='" << storageClassName << "' AND COPYNB=" << (int)copyNb << ";";
@@ -774,9 +774,9 @@ void cta::SqliteDatabase::checkStorageClassExists(const std::string &name){
 }
  
 //------------------------------------------------------------------------------
-// checkMigrationRouteExists
+// checkArchiveRouteExists
 //------------------------------------------------------------------------------
-void cta::SqliteDatabase::checkMigrationRouteExists(const std::string &name, const uint8_t copyNb){
+void cta::SqliteDatabase::checkArchiveRouteExists(const std::string &name, const uint8_t copyNb){
   char *zErrMsg = 0;
   std::ostringstream query;
   query << "SELECT * FROM MIGRATIONROUTE WHERE STORAGECLASS_NAME='" << name << "' AND COPYNB=" << (int)copyNb << ";";
@@ -784,7 +784,7 @@ void cta::SqliteDatabase::checkMigrationRouteExists(const std::string &name, con
   int rc = sqlite3_prepare(m_dbHandle, query.str().c_str(), -1, &statement, 0 );
   if(rc!=SQLITE_OK){    
       std::ostringstream message;
-      message << "checkMigrationRouteExists() - SQLite error: " << zErrMsg;
+      message << "checkArchiveRouteExists() - SQLite error: " << zErrMsg;
       sqlite3_free(zErrMsg);
       throw(Exception(message.str()));
   }
@@ -799,7 +799,7 @@ void cta::SqliteDatabase::checkMigrationRouteExists(const std::string &name, con
   }
   else {
     std::ostringstream message;
-    message << "checkMigrationRouteExists() - SQLite error: " << zErrMsg;
+    message << "checkArchiveRouteExists() - SQLite error: " << zErrMsg;
     sqlite3_free(zErrMsg);
     throw(Exception(message.str()));    
   }  
@@ -865,23 +865,23 @@ std::list<cta::StorageClass> cta::SqliteDatabase::selectAllStorageClasses(const
 }
 
 //------------------------------------------------------------------------------
-// selectAllMigrationRoutes
+// selectAllArchiveRoutes
 //------------------------------------------------------------------------------
-std::list<cta::MigrationRoute>  cta::SqliteDatabase::selectAllMigrationRoutes(const SecurityIdentity &requester) {
+std::list<cta::ArchiveRoute>  cta::SqliteDatabase::selectAllArchiveRoutes(const SecurityIdentity &requester) {
   char *zErrMsg = 0;
   std::ostringstream query;
-  std::list<cta::MigrationRoute> routes;
+  std::list<cta::ArchiveRoute> routes;
   query << "SELECT * FROM MIGRATIONROUTE ORDER BY STORAGECLASS_NAME, COPYNB;";
   sqlite3_stmt *statement;
   int rc = sqlite3_prepare(m_dbHandle, query.str().c_str(), -1, &statement, 0 );
   if(rc!=SQLITE_OK){    
       std::ostringstream message;
-      message << "selectAllMigrationRoutes() - SQLite error: " << zErrMsg;
+      message << "selectAllArchiveRoutes() - SQLite error: " << zErrMsg;
       sqlite3_free(zErrMsg);
       throw(Exception(message.str()));
   }
   while(sqlite3_step(statement)==SQLITE_ROW) {
-    routes.push_back(cta::MigrationRoute(
+    routes.push_back(cta::ArchiveRoute(
             std::string((char *)sqlite3_column_text(statement,0)),
             sqlite3_column_int(statement,1),
             std::string((char *)sqlite3_column_text(statement,2)),
@@ -892,4 +892,4 @@ std::list<cta::MigrationRoute>  cta::SqliteDatabase::selectAllMigrationRoutes(co
   }
   sqlite3_finalize(statement);
   return routes;
-}
\ No newline at end of file
+}
diff --git a/libs/middletier/SqliteDatabase.hpp b/libs/middletier/SqliteDatabase.hpp
index e46d25e949dcab7b75df69c4aea6ea5b00e883fb..ba71a79078ca1a168b9c890b21a8126dbf4c66b7 100644
--- a/libs/middletier/SqliteDatabase.hpp
+++ b/libs/middletier/SqliteDatabase.hpp
@@ -6,8 +6,8 @@
 #include "FileSystemStorageClasses.hpp"
 #include "MockAdminHostTable.hpp"
 #include "MockAdminUserTable.hpp"
+#include "MockArchiveRouteTable.hpp"
 #include "MockLogicalLibraryTable.hpp"
-#include "MockMigrationRouteTable.hpp"
 #include "MockTapeTable.hpp"
 #include "MockTapePoolTable.hpp"
 
@@ -34,7 +34,7 @@ public:
   
   void insertStorageClass(const SecurityIdentity &requester, const std::string &name, const uint8_t nbCopies, const std::string &comment);
   
-  void insertMigrationRoute(const SecurityIdentity &requester, const std::string &storageClassName, const uint8_t copyNb, const std::string &tapePoolName, const std::string &comment);
+  void insertArchiveRoute(const SecurityIdentity &requester, const std::string &storageClassName, const uint8_t copyNb, const std::string &tapePoolName, const std::string &comment);
   
   void insertFile(const SecurityIdentity &requester, const std::string &pathname, const uint16_t mode);
   
@@ -44,7 +44,7 @@ public:
   
   void deleteStorageClass(const SecurityIdentity &requester, const std::string &name);
 
-  void deleteMigrationRoute(const SecurityIdentity &requester, const std::string &storageClassName, const uint8_t copyNb);
+  void deleteArchiveRoute(const SecurityIdentity &requester, const std::string &storageClassName, const uint8_t copyNb);
   
   void deleteFile(const SecurityIdentity &requester, const std::string &pathname);
   
@@ -54,7 +54,7 @@ public:
 
   std::list<cta::StorageClass> selectAllStorageClasses(const SecurityIdentity &requester);
 
-  std::list<cta::MigrationRoute> selectAllMigrationRoutes(const SecurityIdentity &requester);
+  std::list<cta::ArchiveRoute> selectAllArchiveRoutes(const SecurityIdentity &requester);
   
   void setDirectoryStorageClass(const SecurityIdentity &requester, const std::string &path, const std::string &storageClassName);
   
@@ -69,7 +69,7 @@ private:
    */
   sqlite3 *m_dbHandle;
   
-  void createMigrationRouteTable();
+  void createArchiveRouteTable();
 
   void createStorageClassTable();
 
@@ -97,7 +97,7 @@ private:
   
   void checkStorageClassExists(const std::string &name);
   
-  void checkMigrationRouteExists(const std::string &name, const uint8_t copyNb);
+  void checkArchiveRouteExists(const std::string &name, const uint8_t copyNb);
   
   void checkFileExists(const std::string &path, const std::string &name);
   
diff --git a/libs/middletier/SqliteMiddleTierAdmin.cpp b/libs/middletier/SqliteMiddleTierAdmin.cpp
index 229bd798876594679bceee8290fe682618a3ecf7..0547c65ce1b46663aad06e456778397264250543 100644
--- a/libs/middletier/SqliteMiddleTierAdmin.cpp
+++ b/libs/middletier/SqliteMiddleTierAdmin.cpp
@@ -126,33 +126,33 @@ std::list<cta::TapePool> cta::SqliteMiddleTierAdmin::getTapePools(
 }
 
 //------------------------------------------------------------------------------
-// createMigrationRoute
+// createArchiveRoute
 //------------------------------------------------------------------------------
-void cta::SqliteMiddleTierAdmin::createMigrationRoute(
+void cta::SqliteMiddleTierAdmin::createArchiveRoute(
   const SecurityIdentity &requester,
   const std::string &storageClassName,
   const uint8_t copyNb,
   const std::string &tapePoolName,
   const std::string &comment) {
-  return m_sqlite_db.insertMigrationRoute(requester, storageClassName, copyNb, tapePoolName, comment);
+  return m_sqlite_db.insertArchiveRoute(requester, storageClassName, copyNb, tapePoolName, comment);
 }
 
 //------------------------------------------------------------------------------
-// deleteMigrationRoute
+// deleteArchiveRoute
 //------------------------------------------------------------------------------
-void cta::SqliteMiddleTierAdmin::deleteMigrationRoute(
+void cta::SqliteMiddleTierAdmin::deleteArchiveRoute(
   const SecurityIdentity &requester,
   const std::string &storageClassName,
   const uint8_t copyNb) {
-  return m_sqlite_db.deleteMigrationRoute(requester, storageClassName, copyNb);
+  return m_sqlite_db.deleteArchiveRoute(requester, storageClassName, copyNb);
 }
 
 //------------------------------------------------------------------------------
-// getMigrationRoutes
+// getArchiveRoutes
 //------------------------------------------------------------------------------
-std::list<cta::MigrationRoute> cta::SqliteMiddleTierAdmin::getMigrationRoutes(
+std::list<cta::ArchiveRoute> cta::SqliteMiddleTierAdmin::getArchiveRoutes(
   const SecurityIdentity &requester) const {
-  return m_sqlite_db.selectAllMigrationRoutes(requester);
+  return m_sqlite_db.selectAllArchiveRoutes(requester);
 }
 
 //------------------------------------------------------------------------------
diff --git a/libs/middletier/SqliteMiddleTierAdmin.hpp b/libs/middletier/SqliteMiddleTierAdmin.hpp
index 82ded68610b9d8be1acf925b6c8a282acd6ff871..8dfb930a4dc5854b11aba0aadba1fb1a7bd77dab 100644
--- a/libs/middletier/SqliteMiddleTierAdmin.hpp
+++ b/libs/middletier/SqliteMiddleTierAdmin.hpp
@@ -165,17 +165,17 @@ public:
     const SecurityIdentity &requester) const;
 
   /**
-   * Creates the specified migration route.
+   * Creates the specified archive route.
    *
    * @param requester The identity of the user requesting the creation of the
-   * migration route.
+   * archive route.
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
    * @param copyNb The tape copy number.
    * @param tapePoolName The name of the destination tape pool.
-   * @param comment The comment describing the migration route.
+   * @param comment The comment describing the archive route.
    */
-  void createMigrationRoute(
+  void createArchiveRoute(
     const SecurityIdentity &requester,
     const std::string &storageClassName,
     const uint8_t copyNb,
@@ -183,25 +183,25 @@ public:
     const std::string &comment);
 
   /**
-   * Deletes the specified migration route.
+   * Deletes the specified archive route.
    *
    * @param requester The identity of the user requesting the deletion of the
-   * migration route.
+   * archive route.
    * @param storageClassName The name of the storage class that identifies the
    * source disk files.
    * @param copyNb The tape copy number.
    */
-  void deleteMigrationRoute(
+  void deleteArchiveRoute(
     const SecurityIdentity &requester,
     const std::string &storageClassName,
     const uint8_t copyNb);
 
   /**
-   * Gets the current list of migration routes.
+   * Gets the current list of archive routes.
    *
    * @param requester The identity of the user requesting the list.
    */
-  std::list<MigrationRoute> getMigrationRoutes(
+  std::list<ArchiveRoute> getArchiveRoutes(
     const SecurityIdentity &requester) const;
 
   /**
diff --git a/libs/middletier/SqliteMiddleTierAdminTest.cpp b/libs/middletier/SqliteMiddleTierAdminTest.cpp
index 059456285e728d87ebb4069eba03a66fd62260bf..14a00e6009be2fa9a7487c04f079da5152c93572 100644
--- a/libs/middletier/SqliteMiddleTierAdminTest.cpp
+++ b/libs/middletier/SqliteMiddleTierAdminTest.cpp
@@ -267,19 +267,19 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteStorageClass_in_use_by_route)
   }
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 
   ASSERT_THROW(adminApi.deleteStorageClass(requester, storageClassName),
@@ -296,13 +296,13 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteStorageClass_in_use_by_route)
     ASSERT_EQ(nbCopies, storageClass.getNbCopies());
   }
 
-  ASSERT_NO_THROW(adminApi.deleteMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.deleteArchiveRoute(requester, storageClassName,
     copyNb));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   ASSERT_NO_THROW(adminApi.deleteStorageClass(requester, storageClassName));
@@ -347,9 +347,9 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteTapePool_in_use) {
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -367,37 +367,37 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteTapePool_in_use) {
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 
   ASSERT_THROW(adminApi.deleteTapePool(requester, tapePoolName), std::exception);
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 }
 
-TEST_F(cta_client_SqliteMiddleTierAdminTest, createMigrationRoute_new) {
+TEST_F(cta_client_SqliteMiddleTierAdminTest, createArchiveRoute_new) {
   using namespace cta;
 
   MockDatabase db;
@@ -406,9 +406,9 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, createMigrationRoute_new) {
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -426,24 +426,24 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, createMigrationRoute_new) {
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 }
 
 TEST_F(cta_client_SqliteMiddleTierAdminTest,
-  createMigrationRoute_already_existing) {
+  createArchiveRoute_already_existing) {
   using namespace cta;
 
   MockDatabase db;
@@ -452,9 +452,9 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest,
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -472,26 +472,26 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest,
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 
-  ASSERT_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment), std::exception);
 }
 
-TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteMigrationRoute_existing) {
+TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteArchiveRoute_existing) {
   using namespace cta;
 
   MockDatabase db;
@@ -500,9 +500,9 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteMigrationRoute_existing) {
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -520,32 +520,32 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteMigrationRoute_existing) {
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
     copyNb, tapePoolName, comment));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_EQ(1, migrationRoutes.size());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_EQ(1, archiveRoutes.size());
 
-    MigrationRoute migrationRoute;
-    ASSERT_NO_THROW(migrationRoute = migrationRoutes.front());
-    ASSERT_EQ(storageClassName, migrationRoute.getStorageClassName());
-    ASSERT_EQ(copyNb, migrationRoute.getCopyNb());
-    ASSERT_EQ(tapePoolName, migrationRoute.getTapePoolName());
+    ArchiveRoute archiveRoute;
+    ASSERT_NO_THROW(archiveRoute = archiveRoutes.front());
+    ASSERT_EQ(storageClassName, archiveRoute.getStorageClassName());
+    ASSERT_EQ(copyNb, archiveRoute.getCopyNb());
+    ASSERT_EQ(tapePoolName, archiveRoute.getTapePoolName());
   }
 
-  ASSERT_NO_THROW(adminApi.deleteMigrationRoute(requester, storageClassName,
+  ASSERT_NO_THROW(adminApi.deleteArchiveRoute(requester, storageClassName,
     copyNb));
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 }
 
-TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteMigrationRoute_non_existing) {
+TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteArchiveRoute_non_existing) {
   using namespace cta;
 
   MockDatabase db;
@@ -554,9 +554,9 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteMigrationRoute_non_existing)
   const SecurityIdentity requester;
 
   {
-    std::list<MigrationRoute> migrationRoutes;
-    ASSERT_NO_THROW(migrationRoutes = adminApi.getMigrationRoutes(requester));
-    ASSERT_TRUE(migrationRoutes.empty());
+    std::list<ArchiveRoute> archiveRoutes;
+    ASSERT_NO_THROW(archiveRoutes = adminApi.getArchiveRoutes(requester));
+    ASSERT_TRUE(archiveRoutes.empty());
   }
 
   const std::string storageClassName = "TestStorageClass";
@@ -574,7 +574,7 @@ TEST_F(cta_client_SqliteMiddleTierAdminTest, deleteMigrationRoute_non_existing)
     nbPartialTapes, comment));
 
   const uint8_t copyNb = 1;
-  ASSERT_THROW(adminApi.deleteMigrationRoute(requester, tapePoolName, copyNb),
+  ASSERT_THROW(adminApi.deleteArchiveRoute(requester, tapePoolName, copyNb),
     std::exception);
 }
 
diff --git a/libs/middletier/SqliteMiddleTierUserTest.cpp b/libs/middletier/SqliteMiddleTierUserTest.cpp
index 8b3994d6a1994632dee87cf61b66d6f0de036bc0..1cdb14e7ab13a18352b775263f3f8fe5bb57f8ed 100644
--- a/libs/middletier/SqliteMiddleTierUserTest.cpp
+++ b/libs/middletier/SqliteMiddleTierUserTest.cpp
@@ -505,9 +505,9 @@ TEST_F(cta_client_SqliteMiddleTierUserTest, archive_to_new_file) {
     nbPartialTapes, tapePoolComment));
 
   const uint8_t copyNb = 1;
-  const std::string migrationRouteComment = "Migration-route comment";
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
-    copyNb, tapePoolName, migrationRouteComment));
+  const std::string archiveRouteComment = "Archive-route comment";
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
+    copyNb, tapePoolName, archiveRouteComment));
 
   std::list<std::string> srcUrls;
   srcUrls.push_back("diskUrl");
@@ -571,9 +571,9 @@ TEST_F(cta_client_SqliteMiddleTierUserTest, archive_to_directory) {
     nbPartialTapes, tapePoolComment));
 
   const uint8_t copyNb = 1;
-  const std::string migrationRouteComment = "Migration-route comment";
-  ASSERT_NO_THROW(adminApi.createMigrationRoute(requester, storageClassName,
-    copyNb, tapePoolName, migrationRouteComment));
+  const std::string archiveRouteComment = "Archive-route comment";
+  ASSERT_NO_THROW(adminApi.createArchiveRoute(requester, storageClassName,
+    copyNb, tapePoolName, archiveRouteComment));
 
   std::list<std::string> srcUrls;
   srcUrls.push_back("diskUrl1");
diff --git a/xroot_plugins/XrdProFilesystem.cpp b/xroot_plugins/XrdProFilesystem.cpp
index 2194938f92b141dcb96a2fb21d55cc791dd21981..e3146565d76bc917b8f78cd58daff28a39f3cb8e 100644
--- a/xroot_plugins/XrdProFilesystem.cpp
+++ b/xroot_plugins/XrdProFilesystem.cpp
@@ -733,9 +733,9 @@ int XrdProFilesystem::executeMkrouteCommand(const ParsedRequest &req, XrdOucErrI
     uint8_t copyNo;
     std::istringstream ss(req.args.at(1));
     ss >> copyNo;
-    m_adminApi.createMigrationRoute(requester, req.args.at(0), copyNo, req.args.at(2), req.args.at(3));
+    m_adminApi.createArchiveRoute(requester, req.args.at(0), copyNo, req.args.at(2), req.args.at(3));
     std::ostringstream responseSS;
-    responseSS << "[OK] Migration route from storage class " << req.args.at(0) << " with copy number " << copyNo << " to tape pool " << req.args.at(2) << " created with comment \"" << req.args.at(3) << "\"";
+    responseSS << "[OK] Archive route from storage class " << req.args.at(0) << " with copy number " << copyNo << " to tape pool " << req.args.at(2) << " created with comment \"" << req.args.at(3) << "\"";
     eInfo.setErrInfo(responseSS.str().length()+1, responseSS.str().c_str());
     return SFS_DATA;
   } catch (cta::Exception &ex) {
@@ -768,9 +768,9 @@ int XrdProFilesystem::executeRmrouteCommand(const ParsedRequest &req, XrdOucErrI
     uint8_t copyNo;
     std::istringstream ss(req.args.at(1));
     ss >> copyNo;
-    m_adminApi.deleteMigrationRoute(requester, req.args.at(0), copyNo);
+    m_adminApi.deleteArchiveRoute(requester, req.args.at(0), copyNo);
     std::ostringstream responseSS;
-    responseSS << "[OK] Migration route from storage class " << req.args.at(0) << " with copy number " << copyNo << " removed";
+    responseSS << "[OK] Archive route from storage class " << req.args.at(0) << " with copy number " << copyNo << " removed";
     eInfo.setErrInfo(responseSS.str().length()+1, responseSS.str().c_str());
     return SFS_DATA;
   } catch (cta::Exception &ex) {
@@ -800,10 +800,10 @@ int XrdProFilesystem::executeLsrouteCommand(const ParsedRequest &req, XrdOucErrI
     return SFS_DATA;
   }
   try {
-    std::list<cta::MigrationRoute> routeList = m_adminApi.getMigrationRoutes(requester);
+    std::list<cta::ArchiveRoute> routeList = m_adminApi.getArchiveRoutes(requester);
     std::ostringstream responseSS;
-    responseSS << "[OK] Listing of the migration routes:";
-    for(std::list<cta::MigrationRoute>::iterator it = routeList.begin(); it != routeList.end(); it++) {
+    responseSS << "[OK] Listing of the archive routes:";
+    for(std::list<cta::ArchiveRoute>::iterator it = routeList.begin(); it != routeList.end(); it++) {
       responseSS << "\n" << it->getStorageClassName() << ":" << it->getCopyNb() 
               << " " << it->getTapePoolName()
               << " " << it->getCreator().getUid()
@@ -905,7 +905,7 @@ int XrdProFilesystem::executeLsllibCommand(const ParsedRequest &req, XrdOucErrIn
   try {
     std::list<cta::LogicalLibrary> llibs = m_adminApi.getLogicalLibraries(requester);
     std::ostringstream responseSS;
-    responseSS << "[OK] Listing of the migration routes:";
+    responseSS << "[OK] Listing of the archive routes:";
     for(std::list<cta::LogicalLibrary>::iterator it = llibs.begin(); it != llibs.end(); it++) {
       responseSS  << "\n" << it->getName()
               << " " << it->getCreator().getUid()