... я тут на досуге подумал, что если все устройства будут выполнять минимум три роли: локальный контроллер безопасности, планировщик задач и вычислитель, то все они смогут стать логически идентичны. Это существенно упростит архитектуру всей сети. Однако возникающая при этом проблема адресации (когда устройство не знает все другие устройства сети, а только знает своих ближайших соседей) может быть легко решена с помощью механизма "плавающих задач". Т.е. устройство 1 ставит задачу своему соседу 2, а тот в случае не возможности "помочь" ставит ее же уже своему соседу 3, сообщая что это нужно для устройства 1, о существовании которого устройство 3 даже не знало до этого момента. И уже устройство 3 выполняет задачу, отсылая результат непосредственно устройству 1 и внося его в свой список "сотрудников"... Кроме того устройство 2 через определенный промежуток времени спрашивает устройство 3 о ходе выполнения задачи и следит за этим. Тем самым обеспечивая часть отказоустойчивости системы.
Так любая задача может плавать по сети находя свободные ресурсы... При этом заголовок сообщения задачи должен содержать минимум: адрес автора задачи, цифровую метку автора (по которой автор соотнесет результат с задачей), адрес выполнителя, возможно маршрут прохождения.
Акромя этого при проектировании ПО необходимо учесть чтобы каждая выполняемая задача выполнялась отдельным процессом в ОС. Это позволит переложить задачи распределения потоков на ОС.
Комментариев нет:
Отправить комментарий