Программное обеспечение для путешествий. Это концепция? - PullRequest
6 голосов
/ 29 мая 2010

Я хотел бы спросить, существует ли программа, предназначенная для перемещения (например, после некоторых физических сил) через планету, возможно, занимая и освобождая вычислительные ресурсы / узлы. Буквально это означает, что некоторая агентная система просто регулярно меняет свое местоположение и (неизбежно в некоторой степени) конфигурацию.

Примером может быть: предположим, у вас есть внешние датчики и свободные компьютеры - узлы - по всему пространству; Было бы целесообразно, чтобы самовоспроизводящиеся агенты следовали за инициализаторами от датчиков, но таким ограничительным образом, что вычисления локализуются только там, где происходит физический бизнес.

Я хочу подчеркнуть, что этот вопрос только для «теоретического» веселья, потому что я не вижу никакой практической выгоды от упомянутых ограничений, кроме оптимизации «устаревшего» (отстраненного?) Удаления агента. Но, может быть, это может быть интересно. Спасибо!

РЕДАКТИРОВАТЬ: Очевидно, что вирус является подходящим примером, хотя удаление таких агентов редко беспокоит разработчиков. Точнее, меня интересует «программное обеспечение для путешествий», то есть когда количество (или, по крайней мере, порядок) агентов является своего рода константой, и путешествует только вся система.

Ответы [ 7 ]

5 голосов
/ 29 мая 2010

Исследовательское сообщество в области массовых вычислений проделывает большую работу по решению подобных проблем.

Например, если вы работаете с документом, он отображается с определенной формой взаимодействия, основанной на устройствах вокруг вас. Если вы общаетесь, то же самое. Можно утверждать, что многие вычислительные приложения на основе определения местоположения делают нечто подобное. Министерство обороны спонсировало некоторые исследования в области контекстно-зависимых автоматических помощников и т. Д.

Если мы примем распределенное «облако», охватывающее весь земной шар, то место, где на самом деле происходят вычисления, будет для вас неизвестным и прозрачным. Все, что имеет значение, это контекст. Учитывая, что устройства с поддержкой GPS становятся повсеместными и обработка видео становится дешевле (моя камера за 50 долларов может распознать лица), качество контекста, безусловно, возрастает. В этом смысле многие программы уже демонстрируют видение, которое вы описываете.

2 голосов
/ 29 мая 2010

Все, что может быть сделано хорошо с помощью движущейся программы, кажется, что это может быть сделано лучше с помощью широко распространенной программы.

1 голос
/ 29 мая 2010

Это, возможно, косвенно, является одним из принципов Джини. В этом случае, возможно, речь идет о загрузке драйверов. Но поскольку он основан на Java, концепция переноса кода с устройства на устройство является одной из основных философий системы.

Теперь, с этой целью, этот код не «перемещается» сам по себе, а скорее копируется. Он не «покидает» сервер.

Но вы можете видеть, особенно в Java, что если начать с пустой JVM и какой-то оболочки, было бы довольно просто получить код для «перемещения» из одной JVM в другую.

Вы можете видеть процесс следующим образом.

1) Система A имеет запущенное приложение с классами состояния и локальными классами. 2) Система B имеет «оболочку переноса», выполняющуюся в системе. 3) A хочет переместить приложение в B 4) Приостановка приложения и сериализация его состояния может быть такой же простой, как и просто использование серийной Java-объектной сериализации. Этот сериализованный объект имеет метод перезапуска. 5) B устанавливает ClassLoader, который ссылается на классы в Системе A. Этот загрузчик классов будет копировать классы по запросу из A в B, а затем сохранять их локально. 6) A отправляет сериализованное состояние приложения B, который десериализует его. 7) ClassLoader на B начинает вытягивать файлы классов из A, поскольку приложение десериализовано 8) После десериализации объекта B вызывает метод restart, и приложение продолжает работать. 9) A «забывает» о приложении, и B продолжает работать без подключения к A.

Очевидно, что это наивно и чревато потенциальными проблемами.

Но вы можете видеть, как, в частности, с виртуальной машиной, как что-то подобное может работать.

Современные архитектуры виртуальных машин работают над этим процессом, а на самом деле с этим процессом: моментального снимка запущенных виртуальных машин, перемещения образов на другие машины и их запуска. Основы виртуальных машин делают это "легко".

Пример Java - это то, с чем вы можете играть, не становясь инженером виртуализации.

1 голос
/ 29 мая 2010

Я считаю, что то, что вы ищете, называется Мобильные агенты .

Кстати: я не верю, что вирус подходит. Одной из определяющих характеристик вируса является то, что он не может путешествовать сам по себе, но зависит от человека, который распространит его. Черви будут соответствовать требованиям.

1 голос
/ 29 мая 2010

Я никогда не работал с ним сам, но язык программирования Obliq , похоже, ориентирован на подобные вычисления. От Бумага Obliq (стр. 12), на которую есть ссылки на этой веб-странице:

Obliq обращается к очень динамичной форме распределенное программирование, где объекты может перенаправить их поведение над сеть, и где вычисления могут роуминг между сетевыми сайтами.

0 голосов
/ 29 мая 2010

Может быть, мастер ботнета близок к тому, что вы ищете? Очевидно, что он очень похож на ответ «вируса» выше: разница в том, что хотя вирусы обычно «реплицируются, распространяются, делают заранее запрограммированные неудобные вещи», ботнет - это скорее «контроль над вашей машиной в будущем», обычно гнусный, но динамическое назначение. Я думаю, что хосты (ваш «агент») также могут легко меняться с помощью ботнета.

0 голосов
/ 29 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...