В распределенной вычислительной , мобильность кода является возможность для запуска программы , кода или объекты , которые будут перенесены (или перемещены) от одной машины или приложения в другое. [1] Это процесс перемещения мобильного кода по узлам сети в отличие от распределенных вычислений, при которых перемещаются данные .
В распределенных системах распространено требование перемещения кода или процессов между частями системы вместо данных. [1]
Примеры мобильности кода включают скрипты, загружаемые по сети (например, JavaScript , VBScript ), апплеты Java , элементы управления ActiveX , Flash-анимацию , фильмы Shockwave (и Xtras) и макросы, встроенные в документы Microsoft Office . [2]
Обзор
Цель мобильности кода - поддерживать сложные операции. Например, приложение может отправить объект на другую машину, и объект может возобновить выполнение внутри приложения на удаленной машине с тем же состоянием, что и в исходном приложении.
Согласно классификации, предложенной Fuggetta, Picco и Vigna, [1] мобильность кода может быть сильной или слабой: сильная мобильность кода включает перемещение кода , данных и состояния выполнения с одного хоста на другой, в частности, через образ процесса ( это важно в случаях, когда запущенное приложение должно поддерживать свое состояние при миграции с хоста на хост), в то время как слабая мобильность кода включает перемещение только кода и данных. Следовательно, может потребоваться перезапустить выполнение программы на целевом хосте.
В рамках мобильности кода существует несколько парадигм или архитектурных стилей : [1]
- Удаленная оценка - клиент отправляет код на удаленный компьютер для выполнения.
- Код по запросу - клиент загружает код с удаленного компьютера для локального выполнения.
- Мобильные агенты - объекты или код с возможностью автономной миграции между машинами.
Реализации
В рамках мобильности кода парадигма мобильного агента традиционно привлекала наибольший интерес и исследования [3], однако некоторые недавние работы привели к созданию универсальных реализаций. [4]
- Фреймворки мобильных агентов
- Аглетс - Фреймворк мобильных агентов, Java
- Java Agent Development Framework - среда мобильных агентов, Java
- Mobile-C - платформа мобильного агента, C / C ++ [5]
Мобильный код также может быть инкапсулирован или встроен в другие форматы файлов, традиционно не связанные с исполняемым кодом. Примером такой формы инкапсуляции является наличие JavaScript в PDF . [6]
Вирусы
Мобильный код также можно загрузить и выполнить на клиентской рабочей станции по электронной почте. Мобильный код может загружаться через вложение электронной почты (например, макрос в файле Word) или через тело электронной почты в формате HTML (например, JavaScript). Например, вирусы / черви в электронных письмах ILOVEYOU , TRUELOVE и AnnaK были реализованы в виде мобильного кода (VBScript во вложении электронной почты .vbs, выполняемом в Windows Scripting Host). Практически во всех ситуациях пользователь не знает, что мобильный код загружается и выполняется на его рабочей станции. [ необходима цитата ]
Код аренды
Мобильный код также относится к коду, «используемому для сдачи в аренду», способу сделать программные пакеты более доступными. т.е. использовать по запросу. Это особенно актуально для разрабатываемых мобильных устройств, которые представляют собой сотовые телефоны, КПК и т. Д. Все в одном. Вместо установки пакетов программного обеспечения их можно «сдавать в аренду» и оплачивать по факту использования. [ необходима цитата ]
Смотрите также
Рекомендации
- ^ a b c d Фуггетта, Альфонсо; Джан Пьетро Пикко; Джованни Винья (1998). «Понимание мобильности кода» . IEEE Transactions по разработке программного обеспечения . 24 (5): 342–361. CiteSeerX 10.1.1.20.3442 . DOI : 10.1109 / 32.685258 . ISSN 0098-5589 . Проверено 29 июля 2009 года .
- ^ Доктор Лори Браун. «Безопасность мобильного кода» . Академия Сил обороны Австралии. Архивировано из оригинала 3 апреля 2012 года . Проверено 23 апреля 2012 года .
- ^ Карзанига, Антонио; Джан Пьетро Пикко; Джованни Винья (2007). Код все еще движется? Оглядываясь назад на десятилетие мобильности кода . ICSE COMPANION '07 Сборник материалов 29-й Международной конференции по программной инженерии . Вашингтон, округ Колумбия, США: Компьютерное общество IEEE. С. 9–20. CiteSeerX 10.1.1.119.5295 . DOI : 10.1109 / ICSECOMPANION.2007.44 . ISBN 978-0-7695-2892-2.
- ^ «Mobility-RPC - Бесшовная мобильность кода и RPC для платформы Java» . Проверено 15 июня 2012 года .
- ^ «Mobile-C: мультиагентная платформа для мобильных агентов C / C ++» . Проверено 15 июня 2012 года .
- ^ «Спецификация Acrobat JavaScript» (PDF) . Проверено 18 ноября 2009 года .