Миграция приложений
Миграция приложений (англ. migration) — процедура перевода программных продуктов (исходного кода и структуры базы данных) с одной платформы (технологии) на другую (чаще всего из устаревшей в более современную).
Есть два способа осуществления миграции — ручная и автоматическая.
При ручной миграции команда программистов берёт исходные коды приложения, изучает документацию к приложению и заново программирует всю описанную функциональность. Таким образом, приложение разрабатывается с нуля.
При автоматической миграции используются специальные программы, позволяющие автоматизировать этот процесс. В этом случае программа берёт исходный код приложения и преобразует его в целевой код на новой технологии. Преобразование основано на применении определённых спецификаций (описание реализации в различных технологиях одних и тех же элементарных функциональностей), которые реализованы в программе, осуществляющей миграцию.
Пример спецификации[править]
C++ | PL/SQL |
---|---|
<source lang="cpp">void proc_name ()
//comment line { int j = 10, k = 10; // simple for loop for (int i=1; i<=k; i++) j = j + 1; for (int i=1; i<k; i++) j = j + 1; // reversed loop for (int i=5; i>=k; i--) j = j + 1; // reversed loop for (int i=5; i>k; i--) j = j + 1; // multilined for loop for (int i=1; i<=k; i++) { j = j + 1; j = j + 1; } }</source> |
<source lang="mysql">
create or replace procedure proc_name AS --comment line j number(10,0); k number(10,0); begin -- simple for loop for i in 1..k loop j := j + 1; end loop; for i in 1..k-1 loop j := j + 1; end loop; -- reversed loop for i in reverse k..5 loop j := j + 1; end loop; -- reversed loop for i in reverse k+1..5 loop j := j + 1; end loop; -- multilined for loop for i in 1..k loop j := j + 1; j := j + 1; end loop; end proc_name; </source> |
По окончании автоматической миграции программист или вручную проводит доработку целевого кода, или дорабатывает программу для миграции, а именно те или иные спецификации, которые некорректно сработали.
В целом, применение автоматической миграции экономит 50—60 % трудозатрат по сравнению с ручной миграцией.