Да, если именно для корректности данных, то очень подходит и CRC16 и CRC32, зависимости от блока данных. Маленькие блоки - CRC16, большие - СRC32. Хотя я думаю CRC32 и нужно.
В общем, по делу, наверное можно только кольцевой буфер и оставить. Ну а там уже сами смотрите...
Кстати, как пример реализации, модуль dbg_mod.l в документации к OS-9000, функции называются dbg_XXX, описание и принцип работы можно посмотреть в документации в приложении "Debugging: dbg_mod.l Overview" - а скачать здесь - rab.ict.pwr.wroc.pl/dydaktyka/supwa/os9/MWARE/pdf/...
ЗЫ. Я некромант :-( В добавок и ностальгия приперлась...
А собсьвенно, вопрос, а что мы хотим защитить и от чего? Ведь CRC16 очень легко подделать. Он подходит лишь для того, чтобы вычислить только некорректность данных, например при сбое блока во flash...
Во это неправильно! (при условии, что data_crc16 библиотечная) result += crc; Либо считайте сразу для всех блоков по CRC32, либо результат для КАЖДОГО блока сохраняйте в отдельный элемент массива.
Ну, как бы это выразиться... С одной стороны это устоявшийся стек технологий, вроде бы как должный работать на любом ESB провайдере. С другой, из-за разных соглашений между вендорами, много упущений и недосказанности. Вы пробовали, например, приложение, написанное под JBoss просто запустить, без переделки, на каком нибудь GlassFish? Конечно там есть куча протоколов, соглашений, реализаций. В типичном случае, как это задумывалось, должно бы обходиться только связыванием уже готовых компонентов через дескриптор описания, и всё. Максимум что, по идее (задумывалось), написать какой нибудь фильтр или коннектор, и, типа, дело в шляпе... Но дьявол, обычно, в мелочах. И начинается, а вот мы сейчас здесь применим кучу JEB, тут напишем правила на BMP, тут применим фильтр (напишем), тут кофеварку включим.. И это для того, чтобы просто отпарсить файл по крону и загнать его в базу данных, уведомив почтовиком...
ESB хороши, но это боооольшой, очень бооольшой, карьерный самосвал, и чтобы его внедрять, нужно сотню раз подумать., а оно действительно так нужно?
Ах, да, совсем забыл! многие серверы ESB поддерживают транзакции, распределенные, с откатом, по возможности... Но как-то я забил на этих монстров :-( Предпочитаю паттерн KISS всем остальным паттернам.
У!! Сейчаз... Как вариант начать отсюда (для ESB) -www.mulesoft.org
Ну и также почитать конкурентов apache servicemix и apache camel. На просторах интернета также встречал кучу книжек по ним. Ну а про MQ, смотрите rabbitmq, zeromq и далее. Документации и книжек полно!
С другой стороны, чаще для связки легче нарисовать простой скрипт на bash/python/perl или java и не пытаться внедрить ESB-монстров.
И кстати! как пример ESB-подобной архитектуры - spring framework! Хотя они себя так не пропагандируют.
FloorZ: Нужно найти концы с той стороны и посмотреть куда они подключены. Ищется либо по маркировке кабеля (отметки длины проставлены через каждый метр), либо можно использовать звуковую прозвонку (когда не подключено в активное оборудование). Конечно сгореть ничего не должно, но всякое бывает, так что никаким тестером в активное подключение лучше не лазить.
Arkasha18: речь шла о десяти, речь не шла о динамике.
Собственно это сути не меняет, настройте ансибл и прописывайте параметры как хотите! Или напишите свой плагин с пингером к коллекту, который будет лазить в общую базу и пингать нужные хосты. Шурик: причин особых почти не было, за исключением того, что он перестал развиваться, а инфлюкс с графаной ставятся за 10 минут..
result += crc;
Это неправильно!!!
Делайте так
result[block_num] = crc;