[Музей программирования ]
Главная » 2015 » Сентябрь » 10 » Сквозная нумерация независимых потоков
07:37
Сквозная нумерация независимых потоков
Возможно заголовок получился неправильный, но все очень просто. Есть неограниченное количество клиентов (человек, который пользуется программой) для написания сообщений. Все похоже на форум или чат, но нет сервера, который принимает и отправляет (а значит и синхронизирует) сообщения. Нужно, чтобы общий поток имел сквозную нумерацию, чтобы:1) нельзя было изменить порядок сообщений (время появления)2) передавать сообшения целыми серями.С первым пунктов примерно понятно - нужно, чтобы сообщения отображились в том порядке, в котором были созданы, плюс-минус какое-то разумное время, но чтобы у всех участников порядок был одинаковым. Одинаковый порядок нужен для того, чтобы при запросе вновь подключившегося участника он бы мог запросить: "у меня последнее сообщение номер 1000, есть ли что-то новенькое?". Будет ли система работать (без злоумышленников), если использовать просто метку времени (хватит ли точности часов у пользователей, чтобы не было пропущенных сообщений, например). И будет ли она работать, если злоумышленник укажет меньшее время, чтобы его сообщение появилось раньше какого-либо.То есть нужна какая-то нумерация, которая привязана к уже существующим сообщениям. Сначала показалось, что можно делать хэш сообщений, которые есть у клиента и отправлять его как подпись вместе с новым сообщением, но это не снимает проблемы со "старыми" сообщениями, когда можно посчитать хэш только десяти первых сообщений вместо тысячи(текущего количества).Мне кажется, что эта проблема уже где-то была решена. Вдруг кто-то знает, как такое можно сделать?
Просмотров: 376 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar