В распределенных вычислениях мобильность кода — это возможность запуска программ , кода или объектов для миграции (или перемещения) с одной машины или приложения на другую. [1] Это процесс перемещения мобильного кода по узлам сети , в отличие от распределенных вычислений, при которых перемещаются данные .
В распределенных системах обычной практикой является требование перемещения кода или процессов между частями системы, а не данных. [1]
Примеры мобильности кода включают сценарии, загружаемые по сети (например, JavaScript , VBScript ), Java-апплеты , элементы управления ActiveX , Flash-анимацию , фильмы Shockwave (и Xtras) и макросы , встроенные в документы Microsoft Office . [2]
Целью мобильности кода является поддержка сложных операций. Например, приложение может отправить объект на другой компьютер, и объект может возобновить выполнение внутри приложения на удаленном компьютере в том же состоянии, что и в исходном приложении.
Согласно классификации, предложенной Фуггеттой, Пикко и Винья, [1] мобильность кода может быть сильной или слабой: сильная мобильность кода предполагает перемещение как кода , данных, так и состояния выполнения с одного хоста на другой, в частности, через образ процесса ( это важно в тех случаях, когда работающему приложению необходимо сохранять свое состояние при миграции с хоста на хост), тогда как слабая мобильность кода предполагает перемещение только кода и данных. Поэтому может потребоваться перезапустить выполнение программы на целевом хосте.
В рамках мобильности кода существует несколько парадигм или архитектурных стилей : [1]
Мобильный код также можно загрузить и выполнить на клиентской рабочей станции по электронной почте. Мобильный код можно загрузить через вложение электронной почты (например, макрос в файле Word) или через тело электронного письма в формате HTML (например, JavaScript). Например, почтовые вирусы/черви ILOVEYOU , TRUELOVE и AnnaK были реализованы в виде мобильного кода (VBScript во вложении электронной почты .vbs, который выполнялся на Windows Scripting Host). Почти во всех ситуациях пользователь не знает, что мобильный код загружается и выполняется на его рабочей станции. [ нужна цитата ]
Мобильный код также относится к коду, «используемому в аренду», что позволяет сделать пакеты программного обеспечения более доступными. т.е. использовать по требованию. Это особенно актуально для разрабатываемых мобильных устройств, таких как сотовые телефоны, КПК и т. д., все в одном. Вместо установки пакетов программного обеспечения их можно «арендовать» и оплачивать по факту использования. [ нужна цитата ]