В распределенных вычислениях мобильность кода — это возможность миграции (или перемещения) работающих программ , кода или объектов с одной машины или приложения на другую. [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). Почти во всех ситуациях пользователь не знает, что мобильный код загружается и выполняется на его рабочей станции. [ необходима цитата ]
Мобильный код также относится к коду, «используемому в аренду», способу сделать программные пакеты более доступными. т.е. для использования по требованию. Это особенно актуально для разрабатываемых мобильных устройств, которые представляют собой сотовые телефоны, КПК и т.д. в одном. Вместо установки программных пакетов их можно «арендовать» и оплачивать по факту использования. [ необходима цитата ]