Мобильность кода - Code mobility

В распределенных вычислений, мобильность кода это способность бегать программы, код или объекты, которые будут мигрировал (или перемещены) с одного компьютера или приложения на другое.[1] Это процесс перемещения мобильный код через узлы сеть в отличие от распределенных вычислений, где данные перемещен.

В распределенных системах распространено требование перемещения кода или процессов между частями системы вместо данных.[1]

Примеры мобильности кода включают скрипты, загружаемые по сети (например, JavaScript, VBScript ), Java-апплеты, Элементы управления ActiveX, Flash анимация, Фильмы Shockwave (и Xtras) и макросы встроенный в Microsoft Office документы.[2]

Обзор

Цель мобильности кода - поддерживать сложные операции. Например, приложение может отправить объект на другую машину, и объект может возобновить выполнение внутри приложения на удаленной машине с тем же состоянием, что и в исходном приложении.

Согласно классификации, предложенной Фуггеттой, Пикко и Винья,[1] мобильность кода может быть сильной или слабой:сильная мобильность кода предполагает перемещение как код, данные и состояние выполнения от одного хоста к другому, особенно через образ процесса (это важно в тех случаях, когда запущенное приложение должно поддерживать свое состояние при переходе с хоста на хост), а слабая мобильность кода предполагает перемещение только кода и данных. Следовательно, может потребоваться перезапустить выполнение программы на целевом хосте.

Несколько парадигм, или архитектурные стили, существуют в рамках мобильности кода:[1]

  • Удаленная оценка - Клиент отправляет код на удаленную машину для выполнения.
  • Код по запросу - Клиент загружает код с удаленной машины для локального выполнения.
  • Мобильные агенты - Объекты или код с возможностью автономной миграции между машинами.

Реализации

Что касается мобильности кода, то парадигма мобильного агента традиционно привлекает наибольший интерес и исследования.[3] однако некоторые недавние работы привели к созданию универсальных реализаций.[4]

Фреймворки мобильных агентов

Мобильный код также может быть инкапсулирован или встроен в другие форматы файлов, которые традиционно не связаны с исполняемым кодом. Примером такой формы инкапсуляции является наличие JavaScript в PDF.[6]

Вирусы

Мобильный код также можно загрузить и выполнить на клиентской рабочей станции по электронной почте. Мобильный код может загружаться через вложение электронной почты (например, макрос в файле Word) или через тело электронной почты в формате HTML (например, JavaScript). Например, Я ТЕБЯ ЛЮБЛЮ, Вирусы / черви в электронных письмах TRUELOVE и AnnaK были реализованы в виде мобильного кода (VBScript во вложении электронной почты .vbs, выполняемом в Windows Scripting Host). Практически во всех ситуациях пользователь не знает, что мобильный код загружается и выполняется на его рабочей станции.[нужна цитата ]

Код аренды

Под мобильным кодом также понимается код, «используемый для аренды», способ сделать программные пакеты более доступными. т.е. использовать по запросу. Это особенно актуально для разрабатываемых мобильных устройств, которые представляют собой сотовые телефоны, КПК и т. Д. Все в одном. Вместо того, чтобы устанавливать пакеты программного обеспечения, их можно «сдавать в аренду» и оплачивать по факту использования.[нужна цитата ]

Смотрите также

Рекомендации

  1. ^ а б c d Фуггетта, Альфонсо; Джан Пьетро Пикко; Джованни Винья (1998). «Понимание мобильности кода». IEEE Transactions по разработке программного обеспечения. 24 (5): 342–361. CiteSeerX  10.1.1.20.3442. Дои:10.1109/32.685258. ISSN  0098-5589. Получено 29 июля 2009.
  2. ^ Доктор Лори Браун. «Безопасность мобильного кода». Академия Сил обороны Австралии. Архивировано из оригинал 3 апреля 2012 г.. Получено 23 апреля 2012.
  3. ^ Карзанига, Антонио; Джан Пьетро Пикко; Джованни Винья (2007). Код все еще движется? Оглядываясь назад на десятилетие мобильности кода. ICSE COMPANION '07 Сборник материалов 29-й Международной конференции по программной инженерии. Вашингтон, округ Колумбия, США: Компьютерное общество IEEE. С. 9–20. CiteSeerX  10.1.1.119.5295. Дои:10.1109 / ICSECOMPANION.2007.44. ISBN  978-0-7695-2892-2.
  4. ^ «Mobility-RPC - Полная мобильность кода и RPC для платформы Java». Получено 15 июн 2012.
  5. ^ «Mobile-C: мультиагентная платформа для мобильных агентов C / C ++». Получено 15 июн 2012.
  6. ^ «Спецификация Acrobat JavaScript» (PDF). Получено 18 ноября 2009.