В последнее десятилетие благодаря успехам в создании высоконадежного оборудования проблемы информационной надежности как-то отступили на задний план. Представляя продукт или технологию, при оценке системной надежности сплошь и рядом ограничиваются лишь ее структурной составляющей. Кроме того, исключительное возрастание роли программных технологий в проектировании и функционировании информационных систем заставляет их создателей и пользователей концентрировать внимание прежде всего на скорости и объеме передаваемой информации, поэтому очень редко появляются книги, посвященные вопросам информационной надежности. Приятным исключением стал выпущенный издательством «Техносфера» в серии «Мир программирования» учебник Мартина Вернера «Основы кодирования» в переводе с немецкого известного специалиста по теории информации Д. К. Зигангирова. Книга рекомендована ИППИ РАН в качестве учебного пособия для вузов, вполне согласующегося с современными образовательными стандартами по преподаванию дисциплин computer science.
М. Вернер Основы кодирования М.: Техносфера, 2004. 288 с. |
Учебник состоит из двух частей: «Информация и кодирование» и «Помехоустойчивое кодирование». В первой дается определение таких понятий, как «информация», «энтропия» и «избыточность». В изложении данного материала автор опирается на классические представления, развитые Норбертом Винером и Клодом Шенноном. В результате у читателя формируются вполне правильные в научном и техническом отношении представления о кодировании для различных источников информации (с памятью и без нее), об энтропии связанных источников, сжатии данных (например, с помощью кодов арифметических и Лемпеля—Зива), а также о дискретных и непрерывных моделях каналов связи. Все это должно заинтересовать не только сетевых специалистов, но и программистов, выбирающих надежные способы обработки данных внутри информационных систем и использующих веб-технологии.
Во второй части книги рассматриваются вопросы помехоустойчивого кодирования информационных сообщений. В качестве основных классов кодов описаны линейные блоковые, циклические, сверточные и Рида—Соломона. К первым отнесены известные коды Хэмминга и их расширения, применяемые для простейших моделей каналов связи. Для более общего случая, включающего модели с пакетами ошибок, в книге рассмотрены CRC (Cyclic Redundancy Codes, циклические избыточные коды) и как пример их использования описывается передача данных по технологии ATM (Asynchronous Transfer Mode, асинхронный режим передачи). Класс кодов, получивших название сверточных, нашел широкое распространение в современных системах связи, например GSM. Их применение позволяет кодировать и декодировать потоки данных для непрерывных каналов связи. При этом не требуется блоковая синхронизация и можно достичь высокой надежности передаваемой информации.
Поскольку вызывают интерес и более общие модели каналов, появившиеся благодаря использованию новых видов связи, в частности космической, в учебнике рассмотрены коды не только над полем Галуа по модулю 2, но и над более общими полями, например по модулю q>2, в том числе коды Рида—Соломона. Последние гарантируют надежность веб-услуг, требующих передачи информации по спутниковым каналам связи, где возможны очень длинные пакеты ошибок.
Учебник Мартина Вернера удачно сочетает строгость и доступность подачи материала. Например, сведения по алгебре конечных полей изложены весьма приемлемо даже для студента, не слишком обремененного математическими знаниями. И вместе с тем он может получить вполне современное представление о помехоустойчивом кодировании информации и использовать эти знания в дальнейшей практической работе. Преподаватели различных дисциплин по computer science, можно надеяться, найдут в данной книге не только полезные сведения, но и примеры педагогического мастерства. И пожалуй, в качестве не последнего достоинства данного учебника стоит упомянуть его компактность.